/* ==========================================================
   MEDICAL ONE | Components CSS
   Header, Footer, Dock, Modal, Hero, Cards, Forms
   ========================================================== */

/* ============================================================
   HEADER — Glass floating pill
   ============================================================ */
.mo-header {
	position: fixed;
	top: 24px;
	left: 0;
	right: 0;
	z-index: 8000;
	transition: transform 0.4s var(--mo-ease-smooth);
}

.mo-header .mo-btn-primary{padding:7px 14px 8px 14px;}

.mo-header--hidden {
	transform: translateY(-150%);
}

.mo-header-glass {
	max-width: var(--mo-container);
	margin: 0 auto;
	width: calc(100% - 48px);
	background: var(--mo-glass-bg);
	backdrop-filter: blur(32px) saturate(150%);
	-webkit-backdrop-filter: blur(32px) saturate(150%);
	border: 1px solid var(--mo-glass-border);
	box-shadow: var(--mo-shadow-bento);
	border-radius: var(--mo-radius-pill);
	padding: 12px 16px 12px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.mo-header-logo {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.mo-header-logo img {
	height: 32px;
	width: auto;
}
.mo-logo-compact { display: none; }
@media (min-width: 1025px) and (max-width: 1190px) {
	.mo-logo-full { display: none; }
	.mo-logo-compact { display: block; height: 36px; }
}

.mo-desktop-nav {
	display: flex;
	gap: clamp(4px, 0.5vw, 8px);
	align-items: center;
}

.mo-desktop-nav a {
	align-self: start;
	font-weight: 600;
	font-size: 0.95rem;
	line-height:1rem;
	text-align: center;
	color: var(--mo-text-muted);
	padding: 8px 12px;
	border-radius: var(--mo-radius-sm);
	transition: 0.2s;
}

@media (hover: hover) {
	.mo-desktop-nav a:hover {
		color: var(--mo-text);
		background: rgba(0, 0, 0, 0.03);
	}
}

.mo-header-actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

.mo-call-link {
	display: flex;
	align-items: center;
	gap: 0;
	font-family: var(--mo-font-display);
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--mo-text);
	padding: 8px;
	border-radius: var(--mo-radius-pill);
	background: var(--mo-glass-bg);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border: 1px solid var(--mo-glass-border);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
	transition: gap 0.3s, background 0.2s, color 0.2s, box-shadow 0.2s;
	overflow: hidden;
	white-space: nowrap;
}
.mo-call-link svg { flex-shrink: 0; }
.mo-call-link-label {
	display: inline-block;
	max-width: 0;
	opacity: 0;
	overflow: hidden;
	font-size: 0.85rem;
	letter-spacing: 0.02em;
	transition: max-width 0.35s var(--mo-ease-smooth), opacity 0.25s;
}

@media (hover: hover) {
	.mo-call-link:hover {
		background: var(--mo-surface);
		color: var(--mo-brand);
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
		gap: 8px;
	}
	.mo-call-link:hover .mo-call-link-label {
		max-width: 140px;
		opacity: 1;
	}
}
.mo-call-link:focus-visible {
	outline: 2px solid var(--mo-brand);
	outline-offset: 2px;
	color: var(--mo-brand);
	gap: 8px;
}
.mo-call-link:focus-visible .mo-call-link-label {
	max-width: 140px;
	opacity: 1;
}

.mo-mobile-menu-btn {
	display: none;
	background: transparent;
	border: none;
	color: var(--mo-text);
	cursor: pointer;
	padding: 12px;
	align-items: center;
	justify-content: center;
}

/* ============================================================
   DESKTOP NAV DROPDOWNS
   ============================================================ */
.mo-nav-dropdown {
	align-self: start;
	position: relative;
}

.mo-nav-dropdown-trigger {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.mo-nav-caret {
	transition: transform 0.25s var(--mo-ease-smooth);
	flex-shrink: 0;
	opacity: 0.5;
}

.mo-nav-dropdown:hover .mo-nav-caret,
.mo-nav-dropdown.is-open .mo-nav-caret {
	transform: rotate(180deg);
	opacity: 1;
}

.mo-nav-dropdown-panel {
	position: absolute;
	top: calc(100% + 12px);
	left: 50%;
	transform: translateX(-50%) translateY(6px);
	min-width: 260px;
	background: var(--mo-surface);
	border: 1px solid var(--mo-glass-border);
	border-radius: var(--mo-radius-md);
	box-shadow: 0 12px 40px rgba(15, 23, 42, 0.12), 0 4px 12px rgba(15, 23, 42, 0.06);
	padding: 8px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.2s, transform 0.2s var(--mo-ease-smooth), visibility 0.2s;
	z-index: 100;
}

/* Invisible bridge to prevent gap hover-out */
.mo-nav-dropdown-panel::before {
	content: '';
	position: absolute;
	top: -16px;
	left: 0;
	right: 0;
	height: 16px;
}

.mo-nav-dropdown:hover .mo-nav-dropdown-panel,
.mo-nav-dropdown.is-open .mo-nav-dropdown-panel {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateX(-50%) translateY(0);
}

.mo-nav-dropdown-panel a {
	display: block;
	padding: 10px 14px;
	font-size: 0.925rem;
	font-weight: 500;
	color: var(--mo-text);
	border-radius: var(--mo-radius-sm);
	transition: background 0.15s, color 0.15s;
	white-space: nowrap;
}

.mo-nav-dropdown-panel a:hover {
	background: var(--mo-surface-2);
	color: var(--mo-brand);
}

.mo-nav-dropdown-panel a:focus-visible {
	outline: 2px solid var(--mo-brand);
	outline-offset: -2px;
}

.mo-nav-dropdown-divider {
	display: block;
	height: 1px;
	background: var(--mo-stroke);
	margin: 6px 14px;
}

.mo-nav-dropdown-all {
	font-size: 0.85rem !important;
	font-weight: 600 !important;
	color: var(--mo-brand) !important;
}

.mo-nav-dropdown-all:hover {
	color: var(--mo-brand-dark) !important;
}

/* ---- Portal Medici (desktop) ---- */
.mo-portal-medici {
	display: flex;
	align-items: center;
	gap: 0;
	padding: 8px;
	border-radius: var(--mo-radius-pill);
	color: var(--mo-text-muted);
	border: 1px solid transparent;
	transition: color 0.2s, background 0.2s, border-color 0.2s, gap 0.3s;
	position: relative;
	overflow: hidden;
	white-space: nowrap;
}

.mo-portal-medici .mo-icon {
	width:26px;
	height:26px;
	flex-shrink: 0;
	fill: var(--mo-text-muted);
	transition: fill 0.2s;
}

.mo-portal-medici-label {
	display: inline-block;
	max-width: 0;
	opacity: 0;
	overflow: hidden;
	font-family: var(--mo-font-display);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	transition: max-width 0.35s var(--mo-ease-smooth), opacity 0.25s;
}

@media (hover: hover) {
	.mo-portal-medici:hover {
		color: var(--mo-brand);
		background: var(--mo-glass-bg);
		border-color: var(--mo-glass-border);
		gap: 8px;
	}
	.mo-portal-medici:hover .mo-portal-medici-label {
		max-width: 120px;
		opacity: 1;
	}
	.mo-portal-medici:hover .mo-icon {
		fill: var(--mo-brand);
	}
}

.mo-portal-medici:focus-visible {
	outline: 2px solid var(--mo-brand);
	outline-offset: 2px;
	color: var(--mo-brand);
	gap: 8px;
}

.mo-portal-medici:focus-visible .mo-portal-medici-label {
	max-width: 120px;
	opacity: 1;
}

.mo-portal-medici:focus-visible .mo-icon {
	fill: var(--mo-brand);
}

/* ---- Search Button ---- */
.mo-search-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid var(--mo-glass-border);
	border-radius: var(--mo-radius-pill);
	background: var(--mo-glass-bg);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	color: var(--mo-text-muted);
	cursor: pointer;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.mo-search-btn:hover {
	background: var(--mo-surface);
	color: var(--mo-brand);
	border-color: var(--mo-brand-light);
}
.mo-search-btn:focus-visible {
	outline: 2px solid var(--mo-brand);
	outline-offset: 2px;
}
.mo-search-btn--mobile { display: none; }

/* ---- Search Modal ---- */
.mo-search-modal {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: clamp(80px, 15vh, 160px);
}
.mo-search-modal[hidden] { display: none; }
.mo-search-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.6);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}
.mo-search-modal-content {
	position: relative;
	width: min(640px, calc(100vw - 32px));
	max-height: calc(100vh - clamp(100px, 18vh, 200px));
	background: var(--mo-bg, #fff);
	border-radius: 16px;
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.05);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	animation: moSearchIn 0.2s ease-out;
}
@keyframes moSearchIn {
	from { opacity: 0; transform: scale(0.96) translateY(-8px); }
	to   { opacity: 1; transform: scale(1) translateY(0); }
}
.mo-search-modal-header {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 20px;
	border-bottom: 1px solid var(--mo-glass-border, #e2e8f0);
}
.mo-search-modal-input-wrap {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 12px;
}
.mo-search-modal-icon {
	flex-shrink: 0;
	color: var(--mo-text-muted);
}
.mo-search-modal-input {
	flex: 1;
	border: none;
	outline: none;
	background: transparent;
	font-family: var(--mo-font-body);
	font-size: 1.125rem;
	color: var(--mo-text);
	padding: 4px 10px;
}
.mo-search-modal-input::placeholder { color: var(--mo-text-muted); }
.mo-search-modal-kbd {
	font-family: var(--mo-font-body);
	font-size: 0.7rem;
	font-weight: 600;
	color: var(--mo-text-muted);
	background: var(--mo-surface, #f8fafc);
	border: 1px solid var(--mo-glass-border, #e2e8f0);
	border-radius: 4px;
	padding: 2px 6px;
	line-height: 1;
	flex-shrink: 0;
}
.mo-search-modal-close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border: none;
	background: transparent;
	color: var(--mo-text-muted);
	cursor: pointer;
	border-radius: 8px;
	transition: background 0.15s, color 0.15s;
}
.mo-search-modal-close:hover { background: var(--mo-surface); color: var(--mo-text); }
.mo-search-modal-results {
	overflow-y: auto;
	padding: 8px;
	max-height: 400px;
}
.mo-search-modal-empty {
	text-align: center;
	padding: 32px 16px;
	color: var(--mo-text-muted);
	font-size: 0.9rem;
}
.mo-search-result {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 14px;
	border-radius: 10px;
	text-decoration: none;
	color: var(--mo-text);
	transition: background 0.15s;
}
.mo-search-result:hover,
.mo-search-result[data-active] { background: var(--mo-surface, #f8fafc); }
.mo-search-result-icon {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--mo-brand-light, #ffe5e4);
	border-radius: 8px;
	color: var(--mo-brand);
}
.mo-search-result-icon svg { width: 18px; height: 18px; }
.mo-search-result-text { flex: 1; min-width: 0; }
.mo-search-result-title {
	font-family: var(--mo-font-display);
	font-weight: 600;
	font-size: 0.95rem;
	line-height: 1.3;
}
.mo-search-result-excerpt {
	font-size: 0.8rem;
	line-height: 1.4;
	color: var(--mo-text-muted);
	margin-top: 4px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.mo-search-result-url {
	font-size: 0.75rem;
	color: var(--mo-text-muted);
	margin-top: 4px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	opacity: 0.6;
}
.mo-search-result-type {
	flex-shrink: 0;
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--mo-text-muted);
	padding: 3px 8px;
	border-radius: 4px;
	background: var(--mo-surface);
	align-self: center;
}
.mo-search-loading {
	text-align: center;
	padding: 24px;
	color: var(--mo-text-muted);
	font-size: 0.9rem;
}
@media (max-width: 640px) {
	.mo-search-modal { padding-top: 0; align-items: flex-start; }
	.mo-search-modal-content {
		width: 100%;
		max-height: 100vh;
		border-radius: 0;
		min-height: 100vh;
	}
	.mo-search-modal-kbd { display: none; }
}

/* Hide Programare + portal between 1025-1230px to avoid crowded nav */
@media (min-width: 1025px) and (max-width: 1230px) {
	.mo-header-actions .mo-btn-primary {
		display: none;
	}
}

@media (max-width: 1024px) {
	.mo-desktop-nav,
	.mo-call-link,
	.mo-portal-medici,
	.mo-search-btn:not(.mo-search-btn--mobile) {
		display: none;
	}
	.mo-search-btn--mobile { display: flex; }
	.mo-mobile-menu-btn {
		display: flex;
	}
	.mo-header {
		top: 12px;
	}
	.mo-header-glass {
		width: calc(100% - 24px);
		padding: 12px 16px;
	}
}

/* ============================================================
   MOBILE NAV OVERLAY
   ============================================================ */
.mo-mobile-nav-overlay {
	position: fixed;
	inset: 0;
	background: var(--mo-surface);
	z-index: 10000;
	display: flex;
	flex-direction: column;
	padding: 24px;
	transform: translateY(-100%);
	transition: transform 0.4s var(--mo-ease-spring), opacity 0.4s;
	visibility: hidden;
	opacity: 0;
}

.mo-mobile-nav-overlay.is-active {
	transform: translateY(0);
	visibility: visible;
	opacity: 1;
}

.mo-mobile-nav-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 40px;
}

.mo-mobile-nav-close {
	background: none;
	border: none;
	cursor: pointer;
	color: var(--mo-text);
	padding: 12px;
	border-radius: 50%;
	transition: background 0.2s;
}

.mo-mobile-nav-close:hover {
	background: var(--mo-surface-2);
}

.mo-mobile-nav-links {
	display: flex;
	flex-direction: column;
	gap: 24px;
	margin-bottom: auto;
}

.mo-mobile-nav-links a {
	font-family: var(--mo-font-display);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--mo-text);
	transition: 0.2s;
}

.mo-mobile-nav-links a:hover {
	transform: translateX(8px);
	color: var(--mo-brand);
}

.mo-mobile-nav-links a:active {
	color: var(--mo-brand);
}

/* Mobile nav expandable groups */
.mo-mobile-nav-group {
	display: flex;
	flex-direction: column;
}

.mo-mobile-nav-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	font-family: var(--mo-font-display);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--mo-text);
	text-align: left;
	transition: color 0.2s;
	-webkit-tap-highlight-color: transparent;
}

.mo-mobile-nav-toggle:active {
	color: var(--mo-brand);
}

.mo-mobile-nav-caret {
	transition: transform 0.3s var(--mo-ease-smooth);
	opacity: 0.4;
	flex-shrink: 0;
}

.mo-mobile-nav-toggle[aria-expanded="true"] .mo-mobile-nav-caret {
	transform: rotate(180deg);
	opacity: 1;
	color: var(--mo-brand);
}

.mo-mobile-nav-sub {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding-left: 16px;
	margin-top: 12px;
	border-left: 2px solid var(--mo-stroke);
	overflow: hidden;
	transition: max-height 0.35s var(--mo-ease-smooth), opacity 0.25s;
}

.mo-mobile-nav-sub[hidden] {
	display: none;
}

.mo-mobile-nav-sub a {
	font-family: var(--mo-font-body);
	font-size: 1.1rem;
	font-weight: 500;
	color: var(--mo-text-muted);
	padding: 10px 12px;
	border-radius: var(--mo-radius-sm);
	transition: color 0.2s, background 0.2s;
}

.mo-mobile-nav-sub a:hover,
.mo-mobile-nav-sub a:active {
	color: var(--mo-brand);
	background: var(--mo-surface-2);
}

.mo-mobile-nav-footer {
	padding-bottom: 48px;
}

/* ---- Mobile Portal Quick-Access Buttons ---- */
.mo-mobile-portal-rezultate {
	display: flex;
	align-items: center;
	gap: 14px;
	width: 100%;
	padding: 10px 18px;
	margin-bottom: 12px;
	border-radius: var(--mo-radius-md);
	background: #0F172A;
	color: #fff;
	border: none;
	transition: background 0.2s, transform 0.1s;
}

.mo-mobile-portal-rezultate:active {
	background: #1E293B;
	transform: scale(0.98);
}

.mo-mobile-portal-rezultate .mo-icon {
	width: 32px;
	height: 32px;
	flex-shrink: 0;
	fill: #fff;
}

.mo-mobile-portal-rezultate-text {
	display: flex;
	flex-direction: column;
	gap: 1px;
	flex: 1;
	min-width: 0;
}

.mo-mobile-portal-rezultate-text strong {
	font-family: var(--mo-font-display);
	font-size: 1rem;
	font-weight: 600;
	text-transform: uppercase;
	line-height: 1;
}

.mo-mobile-portal-rezultate-text small {
	font-size: 0.9rem;
	opacity: 0.8;
	line-height: 0.9rem;
	font-weight: 400;
}

.mo-mobile-portal-arrow {
	flex-shrink: 0;
	opacity: 0.5;
}

.mo-mobile-portal-rezultate .mo-mobile-portal-arrow {
	opacity: 0.7;
}

.mo-mobile-nav-footer .mo-mobile-portal-medici {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 12px 18px;
	margin-top: 25px;
	margin-bottom: 25px;
	border-radius: var(--mo-radius-md);
	background: var(--mo-surface-2);
	border: 1px solid var(--mo-stroke);
	color: var(--mo-text-muted);
	font-family: var(--mo-font-display);
	font-size: 0.9rem;
	text-transform: uppercase;
	font-weight: 600;
	transition: background 0.2s, border-color 0.2s;
}

.mo-mobile-nav-footer .mo-mobile-portal-medici:active {
	background: var(--mo-surface);
	border-color: var(--mo-text-light);
}

.mo-mobile-nav-footer .mo-mobile-portal-medici .mo-icon {
	width: 30px;
	height: 30px;
	flex-shrink: 0;
	fill: var(--mo-text-muted);
}

.mo-mobile-nav-footer .mo-mobile-portal-medici span {
	flex: 1;
}

/* ---- Desktop Dropdown Highlight Item ---- */
.mo-nav-dropdown-highlight {
	display: flex !important;
	align-items: center;
	gap: 10px;
	background: var(--mo-brand-light) !important;
	color: var(--mo-brand) !important;
	font-weight: 600 !important;
	border-radius: var(--mo-radius-sm);
	padding: 12px 14px !important;
}

.mo-nav-dropdown-highlight .mo-icon {
	flex-shrink: 0;
	fill: var(--mo-brand);
	width: 20px;
	height: 20px;
}

.mo-nav-dropdown-highlight:hover {
	background: var(--mo-brand) !important;
	color: #fff !important;
}

.mo-nav-dropdown-highlight:hover .mo-icon {
	fill: #fff;
}

.mo-nav-dropdown-highlight:hover svg:last-child {
	opacity: 0.7 !important;
	stroke: #fff;
}

/* ============================================================
   FOOTER — Premium dark
   ============================================================ */
.mo-footer {
	background: #080D18;
	color: #fff;
	padding: 48px 0 0;
	margin-top: 0;
	border-top-left-radius: 40px;
	border-top-right-radius: 40px;
	position: relative;
	overflow: hidden;
}

.mo-footer::before {
	content: '';
	position: absolute;
	top: -200px;
	left: 50%;
	width: 600px;
	height: 400px;
	background: var(--mo-gradient-mesh);
	opacity: 0.12;
	filter: blur(80px);
	transform: translateX(-50%);
	pointer-events: none;
}

.mo-footer-accent {
	position: absolute;
	top: 0;
	left: 10%;
	right: 10%;
	height: 2px;
	background: var(--mo-gradient-brand);
	border-radius: 2px;
}

/* Compact CTA bar — single-line prompt + actions */
.mo-footer-cta-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 40px;
	padding: 16px 28px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: var(--mo-radius-pill);
	position: relative;
	z-index: 2;
}

.mo-footer-cta-bar p {
	color: #fff;
	font-family: var(--mo-font-display);
	font-weight: 600;
	font-size: 1.05rem;
	margin: 0;
	white-space: nowrap;
}

.mo-footer-cta-actions {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-shrink: 0;
}

.mo-footer-cta-actions .mo-btn {
	padding: 10px 20px;
	font-size: 0.875rem;
}

.mo-footer-cta-actions .mo-icon {
	width: 16px;
	height: 16px;
}

/* 4-column nav grid */
.mo-footer-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
	gap: clamp(24px, 3vw, 48px);
	padding: 48px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	position: relative;
	z-index: 2;
}

/* Brand column */
.mo-footer-brand p {
	color: rgba(255, 255, 255, 0.5);
	font-size: 0.9rem;
	line-height: 1.65;
	max-width: 320px;
	margin-top: 16px;
}

.mo-footer-social {
	display: flex;
	gap: 12px;
	margin-top: 20px;
}

.mo-footer-social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.08);
	color: rgba(255, 255, 255, 0.6);
	transition: background 0.3s, color 0.3s, border-color 0.3s;
}

@media (hover: hover) {
	.mo-footer-social a:hover {
		background: rgba(255, 69, 58, 0.15);
		border-color: rgba(255, 69, 58, 0.3);
		color: #FF453A;
	}
}

.mo-footer-anpc {
	display: flex;
	gap: 10px;
	margin-top: 16px;
}

.mo-footer-anpc a {
	display: block;
	opacity: 0.55;
	transition: opacity 0.3s;
}

.mo-footer-anpc a:hover {
	opacity: 0.85;
}

.mo-footer-anpc img {
	height: 32px;
	width: auto;
	display: block;
}

/* Nav columns */
.mo-footer-nav {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.mo-footer-contact-details {
	margin-top: 16px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.mo-footer-contact-details .mo-footer-contact-line { font-size: 0.85rem; }
.mo-footer-contact-details .mo-footer-info-block {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	color: #94a3b8;
	font-size: 0.85rem;
	line-height: 1.4;
}
.mo-footer-contact-details .mo-footer-info-block .mo-icon {
	width: 16px; height: 16px;
	color: var(--mo-brand);
	flex-shrink: 0;
	margin-top: 2px;
}
.mo-footer-nav h4 {
	font-family: var(--mo-font-display);
	color: #fff;
	margin-bottom: 12px;
	font-size: 0.85rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.mo-footer-nav a {
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.9rem;
	transition: color 0.2s, transform 0.2s;
	padding: 6px 0;
	text-decoration: none;
}

@media (hover: hover) {
	.mo-footer-nav a:hover {
		color: #fff;
		transform: translateX(3px);
	}
}

/* Contact column specifics */
.mo-footer-contact-line {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: rgba(255, 255, 255, 0.7);
	font-weight: 500;
	text-decoration: none;
	font-size: 0.9rem;
}

.mo-footer-contact-line .mo-icon {
	width: 16px;
	height: 16px;
	color: var(--mo-brand);
	stroke: var(--mo-brand);
	fill: none;
	flex-shrink: 0;
}

@media (hover: hover) {
	.mo-footer-contact-line:hover {
		color: #fff;
	}
}

.mo-footer-info-block {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 6px 0;
	color: rgba(255, 255, 255, 0.45);
	font-size: 0.85rem;
	line-height: 1.5;
}

.mo-footer-info-block .mo-icon {
	width: 16px;
	height: 16px;
	color: rgba(255, 255, 255, 0.35);
	stroke: rgba(255, 255, 255, 0.35);
	fill: none;
	flex-shrink: 0;
	margin-top: 2px;
}

/* Legal bar */
.mo-footer-legal {
	border-top: 1px solid rgba(255, 255, 255, 0.06);
	padding: 28px 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	color: rgba(255, 255, 255, 0.35);
	font-size: 0.8rem;
	position: relative;
	z-index: 2;
}

.mo-footer-legal-links {
	display: flex;
	gap: 24px;
}

.mo-footer-legal-links a {
	color: rgba(255, 255, 255, 0.35);
	padding: 8px 0;
	text-decoration: none;
	transition: color 0.2s;
}

@media (hover: hover) {
	.mo-footer-legal-links a:hover {
		color: rgba(255, 255, 255, 0.7);
	}
}

/* Tablet: 2x2 grid */
@media (max-width: 1024px) {
	.mo-footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 40px 32px;
	}
}

/* Mobile: stacked */
@media (max-width: 640px) {
	.mo-footer {
		border-top-left-radius: 24px;
		border-top-right-radius: 24px;
		padding-bottom: 96px;
	}
	.mo-footer-grid {
		grid-template-columns: 1fr;
		gap: 36px;
	}
	.mo-footer-cta-bar {
		flex-direction: column;
		text-align: center;
		padding: 20px;
		border-radius: var(--mo-radius-lg);
	}
	.mo-footer-cta-bar p {
		white-space: normal;
	}
	.mo-footer-cta-actions {
		flex-direction: column;
		width: 100%;
	}
	.mo-footer-cta-actions .mo-btn {
		width: 100%;
		justify-content: center;
	}
	.mo-footer-legal {
		flex-direction: column;
		gap: 12px;
		text-align: center;
	}
	.mo-footer-legal-links {
		flex-wrap: wrap;
		justify-content: center;
	}
}

/* ============================================================
   MOBILE DOCK — Fixed bottom bar with hide/show toggle
   ============================================================ */
.mo-dock {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 9000;
	pointer-events: none;
	transition: transform 0.35s var(--mo-ease-smooth);
}

.mo-dock.is-hidden {
	transform: translateY(160%);
}

.mo-dock.is-hidden .mo-dock-toggle {
	transform: translateY(-100%) translateX(-50%);
	opacity: 1;
	pointer-events: auto;
}

/* Toggle button (visible when dock is hidden) */
.mo-dock-toggle {
	position: absolute;
	bottom: 100%;
	left: 50%;
	transform: translateY(-100%) translateX(-50%);
	opacity: 0;
	pointer-events: none;
	width: 44px;
	height: 36px;
	border: none;
	background: var(--mo-brand);
	color: #fff;
	border-radius: 12px 12px 0 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 -4px 12px rgba(255, 69, 58, 0.25);
	transition: opacity 0.3s, transform 0.35s var(--mo-ease-smooth);
}

/* The main dock bar */
.mo-dock-bar {
	pointer-events: auto;
	position: relative;
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(24px) saturate(150%);
	-webkit-backdrop-filter: blur(24px) saturate(150%);
	padding: 6px 16px;
	padding-bottom: calc(6px + var(--mo-safe-bottom, 0px));
	border-top: 1px solid rgba(15, 23, 42, 0.06);
	box-shadow: 0 -4px 24px rgba(15, 23, 42, 0.08);
	display: flex;
	justify-content: space-around;
	align-items: flex-end;
	border-radius: 20px 20px 0 0;
}

/* Hide button (top-right of bar) */
.mo-dock-hide {
	position: absolute;
	top: -26px;
	right: 5px;
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 0;
	border: none;
	background: none;
	cursor: pointer;
	font-family: var(--mo-font-display);
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--mo-text-muted);
	transition: color 0.2s;
	pointer-events: auto;
}

.mo-dock-hide:active {
	color: var(--mo-brand);
}

.mo-dock-hide .mo-icon {
	width: 14px;
	height: 14px;
	padding: 4px;
	background: var(--mo-brand);
	color: #fff;
	border-radius: 50%;
	box-sizing: content-box;
}

/* Dock items */
.mo-dock-item {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 3px;
	color: var(--mo-text);
	text-decoration: none;
	font-size: 0.6rem;
	font-weight: 700;
	font-family: var(--mo-font-display);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.6;
	transition: 0.2s;
	border: none;
	background: transparent;
	cursor: pointer;
	padding: 6px 4px;
	min-height: 44px;
	-webkit-tap-highlight-color: transparent;
}

.mo-dock-item .mo-icon {
	width: 22px;
	height: 22px;
}

.mo-dock-item:active {
	opacity: 1;
}

/* Primary center button (Programare) */
.mo-dock-primary {
	opacity: 1;
	transform: translateY(-24px);
	z-index: 2;
	margin-bottom:-20px!important;
}

.mo-dock-orb {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--mo-gradient-brand);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 4px solid #fff;
	box-shadow:
		0 4px 16px rgba(255, 69, 58, 0.4),
		0 0 24px rgba(255, 69, 58, 0.2);
	transition: transform 0.2s;
	margin-top:-18px;
	margin-bottom: 10px;
}

.mo-dock-orb .mo-icon {
	width: 24px;
	height: 24px;
}

.mo-dock-primary:active .mo-dock-orb {
	transform: scale(0.92);
}

@media (min-width: 769px) {
	.mo-dock {
		display: none;
	}
}

/* ============================================================
   BOOKING MODAL — Native <dialog> bottom sheet
   ============================================================ */
dialog.mo-bottom-sheet {
	margin: 0;
	padding: 0;
	border: none;
	background: transparent;
	width: 100%;
	max-width: 100vw;
	height: 100vh;
	max-height: 100vh;
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.4s var(--mo-ease-smooth), visibility 0.4s;
}

dialog.mo-bottom-sheet[open] {
	pointer-events: auto;
	opacity: 1;
	visibility: visible;
}

dialog.mo-bottom-sheet::backdrop {
	background: rgba(15, 23, 42, 0.6);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.mo-sheet-content {
	background: var(--mo-surface);
	width: 100%;
	max-width: 520px;
	max-height: 90vh;
	overflow-y: auto;
	overflow-x: hidden;
	scrollbar-width: none;
	border-radius: 32px 32px 0 0;
	padding: 32px 24px calc(24px + var(--mo-safe-bottom));
	transform: translateY(100%);
	transition: transform 0.5s var(--mo-ease-spring);
	pointer-events: auto;
	box-shadow: 0 -16px 40px rgba(0, 0, 0, 0.1);
}

.mo-sheet-content::-webkit-scrollbar {
	display: none;
}

dialog.mo-bottom-sheet[open] .mo-sheet-content {
	transform: translateY(0);
}

/* Closing animation — reverse slide */
dialog.mo-bottom-sheet.is-closing {
	opacity: 0;
	transition: opacity 0.35s ease-in;
}

dialog.mo-bottom-sheet.is-closing .mo-sheet-content {
	transform: translateY(100%);
	transition: transform 0.35s ease-in;
}

/* Desktop: centered modal instead of bottom sheet */
@media (min-width: 769px) {
	dialog.mo-bottom-sheet {
		align-items: center;
	}
	.mo-sheet-content {
		border-radius: var(--mo-radius-lg);
		transform: translateY(40px) scale(0.95);
		opacity: 0;
	}
	dialog.mo-bottom-sheet[open] .mo-sheet-content {
		transform: translateY(0) scale(1);
		opacity: 1;
	}
	dialog.mo-bottom-sheet.is-closing .mo-sheet-content {
		transform: translateY(40px) scale(0.95);
		opacity: 0;
		transition: transform 0.35s ease-in, opacity 0.35s ease-in;
	}
	.mo-drag-handle {
		display: none !important;
	}
}

.mo-drag-handle {
	width: 48px;
	height: 6px;
	background: var(--mo-stroke);
	border-radius: 4px;
	margin: 0 auto 24px;
}

.mo-sheet-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 8px;
}

.mo-sheet-header h2 {
	margin: 0;
	font-size: 2rem;
}

.mo-btn-close {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--mo-surface-2);
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--mo-text);
	cursor: pointer;
	transition: 0.2s;
	flex-shrink: 0;
}

.mo-btn-close:hover {
	background: var(--mo-stroke);
}

.mo-sheet-desc {
	color: var(--mo-text-muted);
	font-size: 1.05rem;
	margin-bottom: 32px;
}

/* ============================================================
   FORM INPUTS — Floating labels
   ============================================================ */
.mo-widget-group {
	margin-bottom: 24px;
	border: none;
	padding: 0;
	min-width: 0;
}

.mo-group-label {
	display: block;
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--mo-text-muted);
	margin-bottom: 12px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.mo-segmented-control {
	display: flex;
	background: var(--mo-surface-2);
	padding: 6px;
	border-radius: var(--mo-radius-pill);
	gap: 4px;
	overflow-x: auto;
	scrollbar-width: none;
	border: 1px solid var(--mo-stroke);
}

.mo-segmented-control::-webkit-scrollbar {
	display: none;
}

.mo-segment {
	flex: 1;
	cursor: pointer;
	text-align: center;
	position: relative;
}

.mo-segment input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.mo-segment span {
	display: block;
	padding: 12px 14px;
	font-weight: 600;
	font-size: 0.9rem;
	color: var(--mo-text-muted);
	border-radius: var(--mo-radius-pill);
	transition: 0.3s;
	white-space: nowrap;
}

.mo-segment input:checked + span {
	background: var(--mo-surface);
	color: var(--mo-brand);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.mo-segment input:focus-visible + span {
	box-shadow: 0 0 0 2px var(--mo-brand);
}

.mo-input-floating {
	position: relative;
	margin-bottom: 20px;
}

.mo-form-input {
	width: 100%;
	padding: 24px 20px 12px;
	border: 2px solid var(--mo-stroke);
	border-radius: var(--mo-radius-md);
	background: var(--mo-surface-2);
	font-family: var(--mo-font-body);
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--mo-text);
	transition: 0.3s;
	appearance: none;
	-webkit-appearance: none;
}

.mo-form-input:focus {
	outline: none;
	border-color: var(--mo-brand);
	background: var(--mo-surface);
	box-shadow: 0 0 0 4px var(--mo-focus-ring);
}

.mo-input-floating label {
	position: absolute;
	left: 20px;
	top: 18px;
	color: var(--mo-text-muted);
	font-size: 1rem;
	font-weight: 500;
	pointer-events: none;
	transition: transform 0.2s cubic-bezier(0.2, 0.8, 0.2, 1), font-size 0.2s, color 0.2s;
	transform-origin: left top;
}

.mo-form-input:focus ~ label,
.mo-form-input:not(:placeholder-shown) ~ label {
	transform: translateY(-10px) scale(0.75);
	color: var(--mo-brand);
	font-weight: 700;
}

/* Select labels always float up (select always has visible text) */
select.mo-form-input ~ label {
	transform: translateY(-10px) scale(0.75);
	color: var(--mo-text-muted);
	font-weight: 600;
}

select.mo-form-input:focus ~ label {
	color: var(--mo-brand);
	font-weight: 700;
}

/* Mute the placeholder option text */
select.mo-form-input:invalid {
	color: var(--mo-text-muted);
}

textarea.mo-form-input {
	resize: vertical;
	min-height: 80px;
}

.mo-checkbox-label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 24px;
	font-size: 0.9rem;
	color: var(--mo-text-muted);
	cursor: pointer;
}

.mo-checkbox-label input[type="checkbox"] {
	width: 20px;
	height: 20px;
	margin-top: 2px;
	flex-shrink: 0;
	accent-color: var(--mo-brand);
}

.mo-sheet-actions {
	margin-top: 32px;
	text-align: center;
}

.mo-policy-text {
	margin-top: 16px;
	font-size: 1rem;
	color: var(--mo-text-muted);
	text-align: center;
}

.mo-phone-link {
	color: var(--mo-brand);
	font-weight: 600;
	transition: color 0.2s;
}

.mo-phone-link:hover {
	color: var(--mo-brand-dark);
}

.mo-widget-cta {
	margin-top: 24px;
}

/* Form validation states */
.mo-form-input.is-error {
	border-color: var(--mo-error);
}

.mo-form-input.is-error:focus {
	box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.2);
}

.mo-field-error {
	color: var(--mo-error);
	font-size: 0.8rem;
	margin-top: 4px;
}

/* Form-level messages (success / error) */
.mo-form-message {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 16px 20px;
	border-radius: var(--mo-radius-md);
	margin-top: 16px;
	font-size: 0.938rem;
	line-height: 1.5;
	transition: opacity 0.3s, transform 0.3s;
}

.mo-form-message-icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
}

.mo-form-message-icon svg {
	width: 20px;
	height: 20px;
}

.mo-form-message--success {
	background: rgba(22, 163, 74, 0.08);
	border: 1px solid rgba(22, 163, 74, 0.2);
	color: #15803d;
}

.mo-form-message--error {
	background: rgba(220, 38, 38, 0.08);
	border: 1px solid rgba(220, 38, 38, 0.2);
	color: #b91c1c;
}

/* Submit button loading state */
.mo-btn:disabled {
	opacity: 0.7;
	cursor: not-allowed;
	pointer-events: none;
}

/* Select wrapper (hero widget) */
/* Select wrapper and glass input — see hero widget section for main definitions */
/* Modal-specific select styling */
.mo-select-wrapper select {
	width: 100%;
	appearance: none;
	-webkit-appearance: none;
	padding: 14px 40px 14px 16px;
	font-size: 0.938rem;
	font-family: var(--mo-font-body);
	color: var(--mo-text);
	background: var(--mo-surface-2);
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius-md);
	cursor: pointer;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.mo-select-wrapper select:focus {
	outline: none;
	border-color: var(--mo-brand);
	box-shadow: 0 0 0 4px var(--mo-focus-ring);
}

/* ============================================================
   HERO HOME — 2-column with booking widget
   ============================================================ */
.mo-hero {
	padding-top: clamp(80px, 10vh, 110px);
	padding-bottom: var(--mo-space-section);
	min-height: auto;
	display: flex;
	align-items: center;
	position: relative;
	overflow: hidden;
}

.mo-hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr);
	gap: 24px;
	align-items: stretch;
}

.mo-hero-main {
	position: relative;
	border-radius: var(--mo-radius-lg);
	overflow: hidden;
	padding: clamp(20px, 2.5vw, 32px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	box-shadow: var(--mo-shadow-bento);
	border: 1px solid var(--mo-glass-border);
}

.mo-hero-image-wrap {
	position: absolute;
	inset: 0;
	z-index: -2;
	background: var(--mo-surface-2);
}

.mo-hero-image-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: bottom right;
}

.mo-hero-gradient-mask {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(105deg, var(--mo-surface) 0%, rgba(255, 255, 255, 0.75) 60%, transparent 100%);
	backdrop-filter: blur(1px);
	-webkit-backdrop-filter: blur(1px);
}

.mo-hero-content {
	position: relative;
	z-index: 10;
	max-width: 540px;
}

.mo-hero-title {
	font-size: clamp(2.5rem, 5vw, 4.5rem);
	margin-bottom: 24px;
}

.mo-hero-subtitle {
	font-size: clamp(1rem, 1.5vw, 1.25rem);
	font-weight: 500;
	color: var(--mo-text-muted);
	margin-bottom: 28px;
	line-height: 1.6;
}

/* Hero CTA arrow icon */
.mo-hero-ctas .mo-btn-primary svg {
	width: 18px;
	height: 18px;
	transition: transform 0.3s var(--mo-ease-spring);
}

@media (hover: hover) {
	.mo-hero-ctas .mo-btn-primary:hover svg {
		transform: translateX(4px);
	}
}

.mo-hero-ctas {
	display: flex;
	gap: 16px;
	align-items: center;
	flex-wrap: wrap;
	margin-bottom: 32px;
}

.mo-hero-trust {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 84px;
	margin-top: 32px;
	padding-top: 32px;
	border-top: 1px solid var(--mo-stroke);
}

.mo-hero-trust-icon {
	height: 60px;
	width: auto;
	opacity: 0.85;
	transition: opacity 0.3s, transform 0.3s var(--mo-ease-smooth);
}

@media (hover: hover) {
	.mo-hero-trust-icon:hover {
		opacity: 1;
		transform: scale(1.08);
	}
}

/* Booking Widget */
.mo-booking-widget {
	background: var(--mo-surface);
	border-radius: var(--mo-radius-lg);
	padding: clamp(24px, 3vw, 36px);
	box-shadow: var(--mo-shadow-bento);
	border: 1px solid var(--mo-glass-border);
	display: flex;
	flex-direction: column;
	justify-content: center;
	transition: transform 0.4s var(--mo-ease-spring), box-shadow 0.4s var(--mo-ease-smooth);
	position: relative;
	overflow: hidden;
}

/* Gradient border shimmer */
.mo-booking-widget::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
	padding: 1px;
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.5), rgba(0, 0, 0, 0.05));
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
	opacity: 0.6;
}

.mo-booking-widget:focus-within {
	transform: translateY(-4px);
	box-shadow: var(--mo-shadow-brand);
	border-color: rgba(255, 69, 58, 0.2);
}

.mo-widget-header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 32px;
}

.mo-widget-header h2 {
	margin: 0;
	font-size: 1.5rem;
}

/* Custom select for widget */
.mo-select-wrapper {
	position: relative;
}

.mo-input-glass {
	width: 100%;
	border: 2px solid var(--mo-stroke);
	background: var(--mo-bg);
	padding: 16px 20px;
	padding-right: 48px;
	border-radius: var(--mo-radius-md);
	font-family: var(--mo-font-body);
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--mo-text);
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	transition: 0.3s;
	height: 56px;
}

.mo-input-glass:focus {
	outline: none;
	border-color: var(--mo-brand);
	box-shadow: 0 0 0 4px var(--mo-focus-ring);
	background: var(--mo-surface);
}

.mo-select-caret {
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
	pointer-events: none;
	stroke: var(--mo-text-muted);
	transition: transform 0.3s, stroke 0.3s;
}

.mo-input-glass:focus ~ .mo-select-caret {
	stroke: var(--mo-brand);
	transform: translateY(-50%) rotate(180deg);
}

@media (max-width: 1024px) {
	.mo-hero-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.mo-hero-gradient-mask {
		background: linear-gradient(160deg, var(--mo-surface) 0%, var(--mo-glass-bg) 70%, transparent 100%);
	}
	.mo-hero-content {
		max-width: 100%;
	}
	.mo-hero-trust {
		flex-wrap: wrap;
		gap: 64px;
	}
}

/* ============================================================
   BENTO SERVICE CARDS
   ============================================================ */

/* Section-level background: subtle warm tint to eliminate dead white */
.mo-bento-section {
	background: linear-gradient(180deg, var(--mo-bg) 0%, #F3F1EE 40%, #F3F1EE 60%, var(--mo-bg) 100%);
	position: relative;
}

.mo-bento-item {
	background: #fff;
	border-radius: var(--mo-radius-lg);
	padding: clamp(28px, 3vw, 40px);
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	position: relative;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 8px 24px rgba(0, 0, 0, 0.06);
	border: 1px solid rgba(0, 0, 0, 0.06);
	transition: transform 0.4s var(--mo-ease-spring), border-color 0.4s, box-shadow 0.4s;
}

/* Subtle corner glow on standard cards */
.mo-bento-item::after {
	content: '';
	position: absolute;
	top: -40%;
	right: -20%;
	width: 200px;
	height: 200px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 69, 58, 0.08) 0%, transparent 70%);
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.4s;
}

@media (hover: hover) {
	.mo-bento-item:hover {
		transform: translateY(-6px);
		border-color: rgba(255, 69, 58, 0.25);
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06), 0 16px 40px rgba(0, 0, 0, 0.1);
	}
	.mo-bento-item:hover::after {
		opacity: 1;
	}
	.mo-bento-item:hover .mo-bento-content .mo-bento-icon {
		transform: scale(1.08);
	}
	.mo-bento-item:hover .mo-bento-arrow {
		background: var(--mo-brand);
		color: #fff;
		transform: translateX(8px);
	}
}

/* Bento icon (Health Icons from sprite — high specificity to override .mo-icon base) */
.mo-bento-content .mo-bento-icon {
	width: 56px;
	height: 56px;
	color: var(--mo-brand);
	margin-bottom: 20px;
	transition: transform 0.4s var(--mo-ease-spring);
}

.mo-bento-content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.mo-bento-item h3 {
	font-size: 1.5rem;
	margin-bottom: 12px;
}

.mo-bento-item p {
	font-size: 1rem;
	color: var(--mo-text-muted);
	line-height: 1.6;
	flex-grow: 1;
}

.mo-bento-arrow {
	align-self: flex-start;
	margin-top: auto;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--mo-surface);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--mo-text);
	transition: 0.3s;
}

/* Featured card (brand gradient) */
.mo-bento-item.mo-bento-featured {
	background: linear-gradient(135deg, #D42B28 0%, #9E1216 100%);
	color: #fff;
	border: none;
	min-height: 280px;
}

.mo-bento-featured::after {
	display: none;
}

.mo-bento-featured .mo-bento-content .mo-bento-icon {
	width: 64px;
	height: 64px;
	color: #fff;
	opacity: 0.9;
}

.mo-bento-item.mo-bento-featured h3 {
	color: #fff;
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	margin-top: auto;
}

.mo-bento-item.mo-bento-featured p {
	color: rgba(255, 255, 255, 0.9);
	font-size: 1.05rem;
	margin-bottom: 24px;
	max-width: 500px;
}

/* Bento wide card full width on mobile */
@media (max-width: 480px) {
	.mo-bento-item.mo-bento-featured {
		min-height: 220px;
	}
}

/* ============================================================
   SWIPE CARDS — Horizontal scroll
   ============================================================ */
.mo-swipe-section .mo-section-header {
	padding: 0 24px;
}

.mo-split-title {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 24px;
}

.mo-split-title .mo-section-subtitle {
	margin-top: 12px;
	max-width: 540px;
}

.mo-swipe-nav {
	display: flex;
	align-items: center;
	gap: 12px;
}

.mo-swipe-hint {
	color: var(--mo-brand);
	font-family: var(--mo-font-display);
	font-weight: 700;
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	display: flex;
	align-items: center;
	gap: 6px;
}

.mo-swipe-hint svg {
	animation: mo-swipe-arrow 1.5s ease-in-out infinite;
}

@keyframes mo-swipe-arrow {
	0%, 100% { transform: translateX(0); }
	50% { transform: translateX(5px); }
}

/* Arrow buttons — desktop only */
.mo-swipe-arrows {
	display: none;
	gap: 8px;
}

.mo-swipe-arrow-btn {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--mo-stroke);
	background: var(--mo-surface);
	color: var(--mo-text);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all 0.2s;
}

.mo-swipe-arrow-btn:disabled {
	opacity: 0.3;
	cursor: default;
}

@media (hover: hover) {
	.mo-swipe-arrow-btn:not(:disabled):hover {
		background: var(--mo-brand);
		color: #fff;
		border-color: var(--mo-brand);
		transform: scale(1.05);
	}
}

/* Desktop: show arrows, hide swipe hint */
@media (min-width: 769px) {
	.mo-swipe-arrows {
		display: flex;
	}
	.mo-swipe-hint {
		display: none;
	}
}

/* Edge-bleed: remove container padding so cards peek from edges */
.mo-swipe-section {
	overflow: hidden;
}

.mo-swipe-section > .mo-container {
	padding-left: 0;
	padding-right: 0;
}

.mo-swipe-track {
	display: flex;
	gap: 16px;
	padding: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.mo-swipe-track::-webkit-scrollbar {
	display: none;
}

.mo-swipe-card {
	flex: 0 0 calc(25% - 12px);
	min-width: 280px;
	scroll-snap-align: center;
	background: #fff;
	border-radius: var(--mo-radius-lg);
	padding: 32px;
	border: 1px solid rgba(0, 0, 0, 0.06);
	display: flex;
	flex-direction: column;
	outline: none;
	text-decoration: none;
	color: inherit;
	transition: transform 0.4s var(--mo-ease-spring), border-color 0.3s, box-shadow 0.3s;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 8px 24px rgba(0, 0, 0, 0.06);
}

.mo-swipe-card:focus-visible {
	border-color: var(--mo-brand);
	box-shadow: 0 0 0 4px var(--mo-focus-ring);
}

@media (hover: hover) {
	.mo-swipe-card:hover {
		border-color: rgba(255, 69, 58, 0.25);
		transform: translateY(-6px);
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06), 0 16px 40px rgba(0, 0, 0, 0.1);
	}
	.mo-swipe-card:hover .mo-swipe-card-icon {
		transform: scale(1.08);
	}
	.mo-swipe-card:hover .mo-card-cta {
		color: var(--mo-brand);
	}
	.mo-swipe-card:hover .mo-card-cta svg {
		transform: translateX(4px);
	}
}

/* Card icon (Health Icons from sprite) */
.mo-swipe-card .mo-swipe-card-icon {
	width: 48px;
	height: 48px;
	color: var(--mo-brand);
	margin-bottom: 20px;
	transition: transform 0.4s var(--mo-ease-spring);
}

/* Card CTA text link */
.mo-card-cta {
	align-self: flex-start;
	margin-top: auto;
	font-weight: 700;
	font-family: var(--mo-font-display);
	color: var(--mo-text);
	display: flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
}

.mo-card-cta svg {
	transition: transform 0.3s var(--mo-ease-spring);
}

/* Category chip */
.mo-card-chip {
	display: inline-block;
	padding: 4px 12px;
	background: var(--mo-surface-2);
	color: #475569;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.5px;
	border-radius: 6px;
	text-transform: uppercase;
	margin-bottom: 16px;
	align-self: flex-start;
}

.mo-card-chip--surgery {
	background: rgba(255, 69, 58, 0.08);
	color: var(--mo-brand);
}

/* "Toate specialitățile" link */
.mo-all-link {
	white-space: nowrap;
}

@media (max-width: 768px) {
	.mo-all-link {
		display: none;
	}
}

.mo-swipe-card h3 {
	font-size: 1.5rem;
	margin-bottom: 12px;
}

.mo-swipe-card p {
	font-size: 0.95rem;
	color: var(--mo-text-muted);
	line-height: 1.6;
	margin-bottom: 24px;
	flex-grow: 1;
}

@media (max-width: 1024px) {
	.mo-swipe-card {
		flex: 0 0 calc(40vw);
		scroll-snap-align: start;
	}
}

@media (max-width: 768px) {
	.mo-swipe-card {
		flex: 0 0 calc(85vw - 24px);
	}
}

/* ============================================================
   IMAGING GRID — Parallax cards
   ============================================================ */
.mo-imaging-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}

.mo-img-module {
	position: relative;
	height: 420px;
	border-radius: var(--mo-radius-lg);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	transform: translateZ(0);
	text-decoration: none;
	color: inherit;
	cursor: pointer;
}

/* Parallax wrapper gives extra height for scroll movement */
.mo-img-parallax-wrapper {
	position: absolute;
	inset: 0;
	overflow: hidden;
	z-index: 1;
}

/* Image styles for parallax */
.mo-img-parallax-wrapper img,
.mo-img-placeholder {
	position: absolute;
	top: -15%;
	left: 0;
	width: 100%;
	height: 120%;
	object-fit: cover;
	object-position: center;
	z-index: 1;
	filter: grayscale(0.6) brightness(0.85);
	transition:
		transform 0.8s var(--mo-ease-smooth),
		filter 0.8s var(--mo-ease-smooth);
	will-change: transform, filter;
}

/* Placeholder gradients until real photos arrive */
.mo-img-placeholder {
	background: linear-gradient(135deg, #1a1a2e, #16213e);
}

.mo-img-placeholder--ct {
	background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 50%, #0c2340 100%);
}

.mo-img-placeholder--rmn {
	background: linear-gradient(135deg, #1a0f2e 0%, #2d1b69 50%, #1a0f2e 100%);
}

.mo-img-placeholder--eco {
	background: linear-gradient(135deg, #0f2922 0%, #134e4a 50%, #0f2922 100%);
}

.mo-img-placeholder--rad {
	background: linear-gradient(135deg, #2a1a0f 0%, #5c3d2e 50%, #2a1a0f 100%);
}

/* Gradient overlay with opacity at top for icon readability */
.mo-img-module::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 2;
	background: linear-gradient(
		to top,
		rgba(15, 23, 42, 0.95) 0%,
		rgba(15, 23, 42, 0.6) 50%,
		rgba(15, 23, 42, 0.35) 100%
	);
	transition: opacity 0.5s ease;
	pointer-events: none;
}

/* Content structure */
.mo-img-module-content {
	position: relative;
	z-index: 3;
	padding: 32px;
	color: #fff;
}

/* Icon */
.mo-img-module .mo-img-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 44px;
	height: 44px;
	padding: 0;
	margin-bottom: -6px;
	color: #fff;
	background-color: transparent;
	border-radius: 50%;
	filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.5));
	transform: translateY(0) scale(1);
	transform-origin: center;
	transition:
		opacity 0.4s ease,
		transform 0.8s ease-in-out,
		color 0.8s ease-in-out,
		background-color 0.8s ease-in-out,
		padding 0.8s ease-in-out,
		box-shadow 0.8s ease-in-out;
}

/* Spec badge — key differentiator */
.mo-img-spec {
	display: inline-block;
	padding: 4px 12px;
	background: rgba(255, 69, 58, 0.9);
	color: #fff;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.5px;
	border-radius: 6px;
	text-transform: uppercase;
	margin-bottom: 12px;
	align-self: flex-start;
	box-shadow: 0 4px 12px rgba(255, 69, 58, 0.3);
}

/* Text / Headings */
.mo-img-module h3 {
	color: #fff;
	font-size: 1.5rem;
	margin-bottom: 8px;
	text-shadow: 0 2px 4px rgba(0, 0, 0, 0.6);
}

.mo-img-module p {
	color: rgba(255, 255, 255, 0.9);
	font-size: 0.95rem;
	line-height: 1.5;
	margin-bottom: 24px;
	font-weight: 500;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
	transition: opacity 0.4s ease;
}

/* Glass button */
.mo-btn-white-glass {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: 12px;
	cursor: pointer;
	text-align: center;
	color: #fff;
	font-family: var(--mo-font-body);
	font-weight: 600;
	background: rgba(255, 255, 255, 0.15);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: var(--mo-radius-pill, 50px);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	transition:
		background-color 0.3s ease,
		color 0.3s ease,
		border-color 0.3s ease,
		opacity 0.3s ease;
}

/* ── Desktop hover interaction ──────────────── */
@media (hover: hover) and (min-width: 641px) {
	.mo-img-module-content {
		transform: translateY(80px);
		transition: transform 0.4s var(--mo-ease-spring);
	}

	.mo-img-module p,
	.mo-img-module .mo-btn-white-glass {
		opacity: 0;
		transition: opacity 0.3s ease;
	}

	/* Card hover — image */
	.mo-img-module:hover img,
	.mo-img-module:hover .mo-img-placeholder {
		transform: scale(1.05);
		filter: grayscale(0) brightness(0.7);
	}

	.mo-img-module:hover .mo-img-module-content {
		transform: translateY(0);
	}

	.mo-img-module:hover p,
	.mo-img-module:hover .mo-btn-white-glass {
		opacity: 1;
	}

	/* Card hover — icon transforms to brand pill */
	.mo-img-module:hover .mo-img-icon {
		opacity: 1;
		color: #ff453a;
		background-color: #fff;
		padding: 5px;
		box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22);
		transform: translateY(-5px) scale(0.95);
	}

	.mo-btn-white-glass:hover {
		background: #fff;
		color: var(--mo-text, #111827);
	}
}

/* ── Tablet ─────────────────────────────────── */
@media (max-width: 1024px) {
	.mo-imaging-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.mo-img-module {
		height: 360px;
	}
}

/* ── Mobile ─────────────────────────────────── */
@media (max-width: 640px) {
	.mo-imaging-grid {
		grid-template-columns: 1fr;
	}

	.mo-img-module {
		height: auto;
		min-height: 280px;
	}

	.mo-img-module-content {
		padding: 24px;
	}

	.mo-img-module h3 {
		font-size: 1.25rem;
	}

	.mo-img-module p {
		font-size: 0.875rem;
		margin-bottom: 16px;
	}
}

/* ============================================================
   TRUST STRIP — Accreditation badges
   ============================================================ */
/* Trust strip removed — redundant with booking widget trust icons */

/* ============================================================
   ABOUT GRID (text + image, 2-col on desktop, stacks on mobile)
   ============================================================ */
.mo-about-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(32px, 5vw, 48px);
	align-items: center;
}

@media (min-width: 768px) {
	.mo-about-grid {
		grid-template-columns: 1fr 1fr;
		gap: clamp(40px, 5vw, 64px);
	}
}

.mo-about-text .mo-section-title {
	margin-bottom: 20px;
}

.mo-about-text p {
	color: var(--mo-text-muted);
	line-height: 1.7;
	margin-bottom: 12px;
}

.mo-about-text p:last-child {
	margin-bottom: 0;
}

.mo-about-image img {
	width: 100%;
	height: auto;
	border-radius: var(--mo-radius-lg, 16px);
	object-fit: cover;
}

/* ============================================================
   ABOUT TEASER
   ============================================================ */
/* Section warm background */
.mo-about-section {
	background: linear-gradient(180deg, var(--mo-bg) 0%, #F3F1EE 30%, #F3F1EE 70%, var(--mo-bg) 100%);
	position: relative;
}

.mo-about-teaser {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(32px, 5vw, 64px);
	align-items: center;
}

@media (max-width: 768px) {
	.mo-about-teaser {
		grid-template-columns: 1fr;
		gap: 40px;
	}
}

/* Eyebrow */
.mo-about-eyebrow {
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--mo-brand);
	margin-bottom: 12px;
}

.mo-about-teaser-content h2 {
	font-size: clamp(2rem, 3.5vw, 3rem);
	line-height: 1.15;
	margin-bottom: 20px;
}

.mo-about-teaser-content > p {
	font-size: clamp(1rem, 1.3vw, 1.125rem);
	color: var(--mo-text-muted);
	line-height: 1.7;
	max-width: 520px;
}

.mo-about-teaser-content .mo-btn-outline {
	margin-top: 32px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

/* Photo column */
.mo-about-teaser-image {
	position: relative;
	border-radius: var(--mo-radius-lg);
	overflow: hidden;
}

.mo-about-photo-wrapper {
	border-radius: var(--mo-radius-lg);
	overflow: hidden;
	box-shadow: var(--mo-shadow-bento);
	border: 1px solid var(--mo-glass-border);
}

.mo-about-photo-wrapper img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 0.6s var(--mo-ease-smooth);
}

.mo-about-teaser-image:hover .mo-about-photo-wrapper img {
	transform: scale(1.03);
}

/* Floating badge overlay */
.mo-about-badge {
	position: absolute;
	bottom: 20px;
	left: 20px;
	display: flex;
	align-items: center;
	gap: 12px;
	background: var(--mo-glass-bg);
	backdrop-filter: blur(20px) saturate(150%);
	-webkit-backdrop-filter: blur(20px) saturate(150%);
	border: 1px solid var(--mo-glass-border);
	border-radius: var(--mo-radius-md);
	padding: 12px 16px;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}

.mo-about-badge .mo-icon {
	width: 32px;
	height: 32px;
	color: var(--mo-brand);
	flex-shrink: 0;
}

.mo-about-badge strong {
	display: block;
	font-family: var(--mo-font-display);
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--mo-text);
	line-height: 1.3;
}

.mo-about-badge span {
	font-size: 0.75rem;
	color: var(--mo-text-muted);
	line-height: 1.3;
}

@media (max-width: 768px) {
	.mo-about-badge {
		bottom: 12px;
		left: 12px;
		padding: 10px 14px;
	}
}

/* Stats strip (full-width 4-col) */
.mo-stats-strip {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}

@media (max-width: 768px) {
	.mo-stats-strip {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Stats grid */
.mo-about-stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin-top: 32px;
}

.mo-stat-card {
	background: #fff;
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius-md);
	padding: 24px;
	text-align: center;
	transition: border-color 0.3s, box-shadow 0.3s;
}

.mo-stat-card:hover {
	border-color: rgba(255, 69, 58, 0.25);
	box-shadow: 0 4px 20px rgba(255, 69, 58, 0.06);
}

.mo-stat-card strong {
	display: block;
	font-family: var(--mo-font-display);
	font-size: 2rem;
	font-weight: 700;
	color: var(--mo-brand);
	line-height: 1;
	margin-bottom: 4px;
}

.mo-stat-card span {
	font-size: 0.8rem;
	color: var(--mo-text-muted);
	font-weight: 600;
	letter-spacing: 0.2px;
}

/* ============================================================
   CONTACT STRIP
   ============================================================ */
.mo-contact-strip {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 24px;
}

/* ---- Contact Hub: 2-column info + map ---- */
.mo-contact-hub {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 32px;
	align-items: start;
}

@media (max-width: 900px) {
	.mo-contact-hub {
		grid-template-columns: 1fr;
	}
}

/* Left column: stacked info blocks */
.mo-contact-info {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.mo-contact-block {
	display: flex;
	gap: 16px;
	padding: 24px 0;
	border-bottom: 1px solid var(--mo-stroke);
}

.mo-contact-block:first-child {
	padding-top: 0;
}

.mo-contact-block:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.mo-contact-block-icon {
	width: 44px;
	height: 44px;
	border-radius: var(--mo-radius-sm);
	background: var(--mo-brand-light);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--mo-brand);
	flex-shrink: 0;
}

.mo-contact-block-icon .mo-icon {
	width: 20px;
	height: 20px;
}

.mo-contact-block-body {
	flex: 1;
	min-width: 0;
}

.mo-contact-block-body h3 {
	margin: 0 0 6px;
	font-size: 1rem;
	font-weight: 600;
}

.mo-contact-block-body p {
	margin: 0;
	color: var(--mo-text-muted);
	font-size: 0.95rem;
	line-height: 1.6;
}

/* Phone numbers — big, tappable, brand color */
.mo-contact-phones {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.mo-contact-phones a {
	font-size: 1.15rem;
	font-weight: 600;
	color: var(--mo-brand);
	text-decoration: none;
	transition: opacity 0.2s;
}

.mo-contact-phones a:hover {
	opacity: 0.8;
}

/* Email link */
.mo-contact-email {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
	font-size: 0.9rem;
	color: var(--mo-text-muted);
	text-decoration: none;
	transition: color 0.2s;
}

.mo-contact-email:hover {
	color: var(--mo-brand);
}

/* Today's hours highlight */
.mo-hours-list {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.mo-hours-row {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	font-size: 0.95rem;
	color: var(--mo-text-muted);
	padding: 3px 0;
}

.mo-hours-row--today {
	color: var(--mo-brand);
	font-weight: 600;
	background: var(--mo-brand-light);
	margin: 0 -8px;
	padding: 3px 8px;
	border-radius: 4px;
}

/* Right column: map + address badge */
.mo-contact-map-col {
	position: relative;
}

.mo-contact-map-col .mo-map-wrapper {
	height: 100%;
	min-height: 420px;
}

.mo-contact-map-col .mo-map-wrapper iframe {
	height: 100%;
	min-height: 420px;
}

/* Directions card below map */
.mo-contact-directions {
	margin-top: 12px;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 12px 16px;
	background: var(--mo-surface);
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius-sm);
	font-size: 0.9rem;
	color: var(--mo-text-muted);
	text-decoration: none;
	transition: border-color 0.2s, color 0.2s;
}

.mo-contact-directions:hover {
	border-color: var(--mo-brand);
	color: var(--mo-brand);
}

.mo-contact-directions .mo-icon {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

.mo-contact-directions span {
	margin-left: auto;
	font-weight: 500;
}

/* ---- Getting Here section ---- */
.mo-getting-here {
	background: linear-gradient(180deg, var(--mo-bg) 0%, #F3F1EE 35%, #F3F1EE 65%, var(--mo-bg) 100%);
}

.mo-transport-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

@media (max-width: 768px) {
	.mo-transport-grid {
		grid-template-columns: 1fr;
	}
}

.mo-transport-card {
	background: var(--mo-surface);
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius-md);
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	transition: border-color 0.25s, box-shadow 0.25s;
}

.mo-transport-card:hover {
	border-color: var(--mo-brand);
	box-shadow: 0 4px 20px rgba(255, 69, 58, 0.08);
}

.mo-transport-card-icon {
	width: 44px;
	height: 44px;
	border-radius: var(--mo-radius-sm);
	background: var(--mo-brand-light);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--mo-brand);
}

.mo-transport-card-icon .mo-icon {
	width: 22px;
	height: 22px;
}

.mo-transport-card h3 {
	margin: 0;
	font-size: 1.05rem;
}

.mo-transport-card p {
	margin: 0;
	color: var(--mo-text-muted);
	font-size: 0.9rem;
	line-height: 1.6;
}

/* ---- Quick action buttons row ---- */
.mo-contact-actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 8px;
}

.mo-contact-actions .mo-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.mo-contact-actions .mo-btn .mo-icon {
	width: 18px;
	height: 18px;
}

/* Legacy support */
.mo-contact-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
@media (max-width: 768px) {
	.mo-contact-grid { grid-template-columns: 1fr; }
}

.mo-contact-card {
	background: var(--mo-surface);
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius-md);
	padding: 32px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
}

.mo-contact-card-icon {
	width: 56px;
	height: 56px;
	border-radius: var(--mo-radius-sm);
	background: var(--mo-brand-light);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--mo-brand);
	margin-bottom: 4px;
}

.mo-contact-card h3,
.mo-contact-card h4 {
	margin: 0;
	font-size: 1.1rem;
}

.mo-contact-card p {
	margin: 0;
	color: var(--mo-text-muted);
	font-size: 0.95rem;
	line-height: 1.5;
}

/* ============================================================
   PATIENT HUB TILES
   ============================================================ */
.mo-hub-section {
	background: linear-gradient(180deg, var(--mo-bg) 0%, #F3F1EE 35%, #F3F1EE 65%, var(--mo-bg) 100%);
}

.mo-hub-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}

@media (max-width: 1024px) {
	.mo-hub-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 560px) {
	.mo-hub-grid {
		grid-template-columns: 1fr;
	}
}

.mo-hub-tile {
	background: #fff;
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius-lg);
	padding: clamp(24px, 3vw, 32px);
	display: flex;
	flex-direction: column;
	gap: 12px;
	text-decoration: none;
	color: inherit;
	transition: transform 0.3s var(--mo-ease-spring), border-color 0.3s, box-shadow 0.3s;
	box-shadow: var(--mo-shadow-sm);
}

@media (hover: hover) {
	.mo-hub-tile:hover {
		transform: translateY(-4px);
		border-color: rgba(255, 69, 58, 0.3);
		box-shadow: 0 12px 40px rgba(255, 69, 58, 0.08), var(--mo-shadow-md);
	}
	.mo-hub-tile:hover .mo-hub-tile-icon {
		background: var(--mo-brand-soft);
	}
	.mo-hub-tile:hover .mo-hub-tile-icon .mo-icon {
		transform: scale(1.1);
	}
	.mo-hub-tile:hover .mo-hub-tile-cta {
		color: var(--mo-brand);
	}
	.mo-hub-tile:hover .mo-hub-tile-cta svg {
		transform: translateX(4px);
	}
}

.mo-hub-tile-icon {
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: var(--mo-surface-2);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.3s;
}

.mo-hub-tile-icon .mo-icon {
	width: 28px;
	height: 28px;
	color: var(--mo-brand);
	transition: transform 0.4s var(--mo-ease-spring);
}

.mo-hub-tile-icon .mo-icon--fill {
	width: 36px;
	height: 36px;
}

.mo-hub-tile h3 {
	font-size: 1.15rem;
	margin: 4px 0 0;
}

.mo-hub-tile p {
	font-size: 0.938rem;
	color: var(--mo-text-muted);
	line-height: 1.6;
	flex-grow: 1;
}

.mo-hub-tile-cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--mo-font-display);
	font-weight: 700;
	font-size: 0.875rem;
	color: var(--mo-text);
	margin-top: auto;
	padding-top: 4px;
	transition: color 0.2s;
}

.mo-hub-tile-cta svg {
	transition: transform 0.3s var(--mo-ease-spring);
}

/* ============================================================
   NO-JS FALLBACK
   If JS hasn't run (body still has .is-loading or GSAP hasn't
   initialised), ensure content is visible.
   ============================================================ */
.is-loading .mo-gsap-fade-up,
.is-loading .mo-gsap-reveal,
.is-loading [data-stagger-grid] > * {
	opacity: 1 !important;
	transform: none !important;
	visibility: visible !important;
}

/* ============================================================
   EU PROJECT DISCLOSURE — Expandable press release
   ============================================================ */
.mo-eu-section {
	padding-top: 0;
}

.mo-eu-disclosure {
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius-lg);
	overflow: hidden;
	background: var(--mo-surface);
	transition: border-color 0.3s;
}

.mo-eu-disclosure[open] {
	border-color: rgba(255, 69, 58, 0.2);
}

.mo-eu-summary {
	display: flex;
	align-items: center;
	cursor: pointer;
	padding: clamp(16px, 2.5vw, 24px) clamp(20px, 3vw, 32px);
	list-style: none;
	user-select: none;
}

.mo-eu-summary::-webkit-details-marker {
	display: none;
}

.mo-eu-summary::marker {
	display: none;
	content: '';
}

.mo-eu-summary-content {
	display: flex;
	align-items: center;
	gap: 16px;
	width: 100%;
	flex-wrap: wrap;
}

.mo-eu-badge {
	display: inline-block;
	padding: 4px 12px;
	background: rgba(0, 51, 153, 0.08);
	color: #003399;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	border-radius: 6px;
	flex-shrink: 0;
}

.mo-eu-summary h3 {
	font-size: clamp(0.9rem, 1.2vw, 1.05rem);
	font-weight: 600;
	color: var(--mo-text);
	margin: 0;
	flex: 1;
	min-width: 200px;
}

.mo-eu-toggle-label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--mo-font-display);
	font-weight: 700;
	font-size: 0.8rem;
	color: var(--mo-brand);
	flex-shrink: 0;
	margin-left: auto;
}

.mo-eu-chevron {
	transition: transform 0.3s var(--mo-ease-smooth);
}

.mo-eu-disclosure[open] .mo-eu-chevron {
	transform: rotate(180deg);
}

.mo-eu-hide {
	display: none;
}

.mo-eu-disclosure[open] .mo-eu-hide {
	display: inline;
}

.mo-eu-disclosure[open] .mo-eu-show {
	display: none;
}

.mo-eu-body {
	padding: 0 clamp(20px, 3vw, 32px) clamp(20px, 3vw, 32px);
	animation: mo-eu-fade-in 0.4s ease;
}

@keyframes mo-eu-fade-in {
	from { opacity: 0; transform: translateY(-8px); }
	to { opacity: 1; transform: translateY(0); }
}

.mo-eu-body img {
	display: block;
	width: 100%;
	max-width: 800px;
	height: auto;
	margin: 0 auto;
	border-radius: var(--mo-radius-md);
	border: 1px solid var(--mo-stroke);
}

@media (hover: hover) {
	.mo-eu-summary:hover .mo-eu-toggle-label {
		text-decoration: underline;
	}
}

/* ============================================================
   PREMIUM CTA BLOCK — Dark gradient section with glass orbs
   ============================================================ */
.mo-cta-premium {
	position: relative;
	background: linear-gradient(135deg, #0F172A 0%, #1E293B 50%, #0F172A 100%);
	border-radius: var(--mo-radius-lg);
	padding: var(--mo-space-section) clamp(24px, 4vw, 48px);
	overflow: hidden;
	text-align: center;
	color: #fff;
}

.mo-cta-premium::before {
	content: '';
	position: absolute;
	top: -50%;
	left: -20%;
	width: 60%;
	height: 200%;
	background: radial-gradient(ellipse, rgba(255, 69, 58, 0.15) 0%, transparent 70%);
	pointer-events: none;
}

.mo-cta-premium::after {
	content: '';
	position: absolute;
	bottom: -40%;
	right: -15%;
	width: 50%;
	height: 180%;
	background: radial-gradient(ellipse, rgba(255, 69, 58, 0.1) 0%, transparent 70%);
	pointer-events: none;
}

.mo-cta-premium .mo-eyebrow {
	background: rgba(255, 69, 58, 0.15);
	color: #FF453A;
	border-color: rgba(255, 69, 58, 0.3);
}

.mo-cta-premium h2 {
	font-family: var(--mo-font-display);
	font-weight: 700;
	font-size: clamp(2rem, 4vw, 3.5rem);
	line-height: 1.1;
	color: #fff;
	margin: 24px 0 16px;
	position: relative;
	z-index: 1;
}

.mo-cta-premium p {
	font-size: clamp(1rem, 1.5vw, 1.25rem);
	color: rgba(255, 255, 255, 0.7);
	max-width: 540px;
	margin: 0 auto 40px;
	line-height: 1.6;
	position: relative;
	z-index: 1;
}

.mo-cta-premium .mo-cta-actions {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
	position: relative;
	z-index: 1;
}

.mo-cta-features {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 16px;
	margin-top: 32px;
	position: relative;
	z-index: 1;
}

.mo-cta-feature {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.95rem;
	font-weight: 500;
}

.mo-cta-feature .mo-icon {
	width: 20px;
	height: 20px;
	color: #FF453A;
	flex-shrink: 0;
	stroke: #FF453A;
	fill: none;
}

/* ============================================================
   SECTION SUBTITLE FLUID SIZE
   ============================================================ */
.mo-section-subtitle {
	font-size: clamp(1rem, 1.2vw, 1.125rem);
}

/* ============================================================
   INNER PAGE HERO — Compact hero for inner pages
   ============================================================ */
.mo-page-hero {
	position: relative;
	padding: clamp(100px, 14vh, 140px) 0 var(--mo-space-section);
	background: var(--mo-surface);
	overflow: hidden;
}

.mo-page-hero-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.mo-page-hero-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.12;
	filter: grayscale(0.4);
}

.mo-page-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, var(--mo-surface) 40%, transparent 100%);
	z-index: 1;
}

.mo-page-hero .mo-container {
	position: relative;
	z-index: 2;
}

.mo-page-hero-content {
	max-width: 680px;
}

.mo-page-hero .mo-eyebrow {
	display: inline-block;
	font-family: var(--mo-font-display);
	font-weight: 600;
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--mo-brand);
	margin-bottom: 12px;
}

.mo-page-hero h1 {
	font-family: var(--mo-font-display);
	font-weight: 700;
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.1;
	color: var(--mo-text);
	margin: 0 0 16px;
}

.mo-page-hero-subtitle {
	font-size: clamp(1rem, 1.5vw, 1.15rem);
	color: var(--mo-text-muted);
	line-height: 1.6;
	max-width: 560px;
	margin: 0 0 24px;
}

.mo-page-hero .mo-btn {
	margin-top: 8px;
}

/* ============================================================
   BREADCRUMB — Inline navigation trail
   ============================================================ */
.mo-breadcrumb {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 4px;
	list-style: none;
	padding: 0;
	margin: 0 0 16px;
	font-size: 0.85rem;
	color: var(--mo-text-muted);
}

.mo-breadcrumb li {
	display: flex;
	align-items: center;
	gap: 4px;
}

.mo-breadcrumb a {
	color: var(--mo-text-muted);
	transition: color 0.2s;
}

@media (hover: hover) {
	.mo-breadcrumb a:hover {
		color: var(--mo-brand);
	}
}

.mo-breadcrumb-sep {
	color: var(--mo-stroke);
	font-size: 0.75rem;
}

.mo-breadcrumb-current {
	font-weight: 600;
	color: var(--mo-text);
}

/* ============================================================
   DOCTOR CARD — Photo + info + pricing
   ============================================================ */
.mo-doctor-grid {
	display: grid;
	gap: 24px;
}

.mo-doctor-card {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 24px;
	background: #fff;
	border: 1px solid var(--mo-glass-border);
	border-radius: var(--mo-radius-lg);
	box-shadow: var(--mo-shadow-bento);
	padding: 24px;
	overflow: hidden;
}
/* Cards without photo: single column full width */
.mo-doctor-card:not(:has(.mo-doctor-photo)) {
	grid-template-columns: 1fr;
}

.mo-doctor-photo {
	width: 200px;
	height: 250px;
	border-radius: var(--mo-radius-md);
	overflow: hidden;
	flex-shrink: 0;
}

.mo-doctor-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
}

.mo-doctor-photo-placeholder {
	width: 100%;
	height: 100%;
	background: var(--mo-gradient-brand);
	opacity: 0.15;
	border-radius: var(--mo-radius-md);
}

.mo-doctor-name {
	font-family: var(--mo-font-display);
	font-weight: 700;
	font-size: 1.25rem;
	color: var(--mo-text);
	margin: 0 0 4px;
}

.mo-doctor-title {
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--mo-brand);
	margin: 0 0 8px;
}

.mo-doctor-schedule {
	display: inline-block;
	font-size: 0.8rem;
	font-weight: 600;
	background: var(--mo-brand-soft);
	color: var(--mo-brand);
	padding: 4px 12px;
	border-radius: var(--mo-radius-pill);
	margin-bottom: 12px;
}

.mo-doctor-bio {
	font-size: 0.9rem;
	color: var(--mo-text-muted);
	line-height: 1.7;
	margin-bottom: 16px;
}

.mo-doctor-bio br {
	content: "";
	display: block;
	margin-top: 6px;
}

.mo-doctor-pricing {
	border-top: 1px solid var(--mo-stroke);
	padding-top: 16px;
}

.mo-doctor-pricing h4 {
	font-family: var(--mo-font-display);
	font-weight: 600;
	font-size: 1rem;
	margin: 0 0 12px;
	color: var(--mo-text);
}

.mo-price-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 6px 0;
	border-bottom: 1px dashed var(--mo-stroke);
	font-size: 0.9rem;
}

.mo-price-row:last-child {
	border-bottom: none;
}

.mo-price-label {
	color: var(--mo-text-muted);
}

.mo-price-value {
	font-weight: 700;
	color: var(--mo-brand);
	white-space: nowrap;
}

@media (max-width: 640px) {
	.mo-doctor-card {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.mo-doctor-photo {
		width: 140px;
		height: 175px;
		margin: 0 auto;
	}

	.mo-price-row {
		font-size: 0.85rem;
	}
}

/* ============================================================
   ACCORDION — Native <details>/<summary>
   ============================================================ */
.mo-accordion {
	display: grid;
	gap: 8px;
}

.mo-accordion details {
	background: #fff;
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius-md);
	overflow: hidden;
	transition: border-color 0.2s;
}

.mo-accordion details[open] {
	border-color: var(--mo-brand);
}

.mo-accordion summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 20px;
	font-family: var(--mo-font-display);
	font-weight: 600;
	font-size: 1rem;
	color: var(--mo-text);
	cursor: pointer;
	list-style: none;
	user-select: none;
	min-height: 44px;
}

.mo-accordion summary::-webkit-details-marker {
	display: none;
}

.mo-accordion summary::after {
	content: '';
	width: 20px;
	height: 20px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%230F172A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	flex-shrink: 0;
	transition: transform 0.3s var(--mo-ease-smooth);
}

.mo-accordion details[open] summary::after {
	transform: rotate(180deg);
}

.mo-accordion .mo-accordion-body {
	padding: 0 20px 20px;
	font-size: 0.95rem;
	line-height: 1.7;
	color: var(--mo-text-muted);
}

.mo-accordion .mo-accordion-body p {
	margin: 0 0 12px;
}

.mo-accordion .mo-accordion-body p:last-child {
	margin-bottom: 0;
}

/* ============================================================
   SPECIALTY HUB — Filter tabs + card grid
   ============================================================ */
/* -- Specialty search input -- */
.mo-specialty-search {
	position: relative;
	max-width: 480px;
	margin-bottom: 28px;
}

.mo-specialty-search-icon {
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
	color: var(--mo-text-muted);
	pointer-events: none;
}

.mo-specialty-search input {
	width: 100%;
	padding: 12px 16px 12px 48px;
	font-family: var(--mo-font-body);
	font-size: 0.95rem;
	color: var(--mo-text);
	background: #fff;
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius-pill);
	outline: none;
	transition: border-color 0.2s, box-shadow 0.2s;
	min-height: 48px;
}

.mo-specialty-search input::placeholder {
	color: var(--mo-text-muted);
}

.mo-specialty-search input:focus {
	border-color: var(--mo-brand);
	box-shadow: 0 0 0 3px rgba(255, 69, 58, 0.1);
}

/* -- Body part symptom filter -- */
.mo-bodypart-filter {
	margin-bottom: 24px;
}

.mo-bodypart-title {
	font-family: var(--mo-font-display);
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--mo-text);
	margin: 0 0 12px;
}

.mo-bodypart-row {
	display: flex;
	gap: 12px;
	overflow-x: auto;
	padding-bottom: 8px;
	scrollbar-width: thin;
	scrollbar-color: var(--mo-stroke) transparent;
	-webkit-overflow-scrolling: touch;
}

.mo-bodypart-row::-webkit-scrollbar {
	height: 4px;
}

.mo-bodypart-row::-webkit-scrollbar-thumb {
	background: var(--mo-stroke);
	border-radius: 2px;
}

.mo-bodypart-btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: 8px 12px;
	border: 2px solid var(--mo-stroke);
	border-radius: var(--mo-radius-md);
	background: #fff;
	cursor: pointer;
	flex-shrink: 0;
	color: var(--mo-text-muted);
	transition: all 0.25s var(--mo-ease-smooth);
	-webkit-tap-highlight-color: transparent;
	min-width: 64px;
	margin-top: 2px;
}

.mo-bodypart-btn .mo-icon {
	width: 24px;
	height: 24px;
	transition: transform 0.25s var(--mo-ease-smooth);
}

.mo-bodypart-btn span {
	font-family: var(--mo-font-display);
	font-weight: 500;
	font-size: 0.7rem;
	white-space: nowrap;
	transition: color 0.2s;
}

.mo-bodypart-btn.is-active {
	background: var(--mo-brand-soft);
	border-color: var(--mo-brand);
	color: var(--mo-brand);
	box-shadow: 0 4px 12px rgba(255, 69, 58, 0.15);
}

.mo-bodypart-btn.is-active .mo-icon {
	transform: scale(1.1);
}

.mo-bodypart-btn.is-active span {
	color: var(--mo-brand);
	font-weight: 600;
}

@media (hover: hover) {
	.mo-bodypart-btn:hover {
		border-color: var(--mo-brand);
		color: var(--mo-brand);
		transform: translateY(-2px);
		box-shadow: 0 4px 12px rgba(255, 69, 58, 0.12);
	}

	.mo-bodypart-btn.is-active:hover {
		box-shadow: 0 6px 16px rgba(255, 69, 58, 0.25);
	}
}

.mo-bodypart-btn:focus-visible {
	outline: 2px solid var(--mo-focus-ring);
	outline-offset: 2px;
}

/* -- Category filter tabs -- */
.mo-filter-tabs {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	align-items: center;
	margin-bottom: 32px;
}

.mo-filter-tab {
	position: relative;
}

.mo-filter-tab input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.mo-filter-tab label {
	display: inline-flex;
	align-items: center;
	padding: 8px 20px;
	font-family: var(--mo-font-display);
	font-weight: 600;
	font-size: 0.9rem;
	color: var(--mo-text-muted);
	background: var(--mo-surface);
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius-pill);
	cursor: pointer;
	transition: 0.2s;
	min-height: 44px;
}

.mo-filter-tab input:checked + label {
	background: var(--mo-brand);
	color: #fff;
	border-color: var(--mo-brand);
}

.mo-filter-tab input:focus-visible + label {
	outline: 2px solid var(--mo-focus-ring);
	outline-offset: 2px;
}

@media (hover: hover) {
	.mo-filter-tab label:hover {
		border-color: var(--mo-brand);
		color: var(--mo-brand);
	}
}

/* -- Specialty grid -- */
.mo-specialty-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 36px 20px;
	padding-top: 28px;
}

/* -- Specialty card — icon overflow design -- */
.mo-specialty-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 40px 24px 20px;
	background: #fff;
	border: 1px solid var(--mo-glass-border);
	border-radius: var(--mo-radius-lg);
	box-shadow: var(--mo-shadow-sm);
	transition: transform 0.3s var(--mo-ease-smooth), box-shadow 0.3s, border-color 0.3s;
	text-decoration: none;
	color: inherit;
}

.mo-specialty-card[hidden] {
	display: none;
}

@media (hover: hover) {
	.mo-specialty-card:hover {
		transform: translateY(-6px);
		box-shadow: 0 12px 32px rgba(15, 23, 42, 0.1);
		border-color: var(--mo-brand);
	}

	.mo-specialty-card:hover .mo-specialty-card-icon {
		transform: scale(1.08);
		box-shadow: 0 6px 20px rgba(255, 69, 58, 0.25);
		background:white;
		border-color: var(--mo-brand);
		border-width: 1px;
		padding:2px;
	}

	.mo-specialty-card:hover .mo-specialty-card-cta::after {
		transform: translateX(4px);
	}
}

/* Icon circle — overflow above card edge */
.mo-specialty-card-icon {
	position: absolute;
	top: -24px;
	left: 24px;
	transform: translateX(0);
	width: 52px;
	height: 52px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--mo-brand-soft);
	border-radius: var(--mo-radius-md);
	border: 2px solid #fff;
	color: var(--mo-brand);
	flex-shrink: 0;
	box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
	transition: transform 0.3s var(--mo-ease-smooth), box-shadow 0.3s;
	z-index: 1;
}

.mo-specialty-card-icon svg {
	width: 26px;
	height: 26px;
}

.mo-specialty-card h3 {
	font-family: var(--mo-font-display);
	font-weight: 600;
	font-size: 1.05rem;
	color: var(--mo-text);
	margin: 0;
}

.mo-specialty-card p {
	font-size: 0.875rem;
	color: var(--mo-text-muted);
	line-height: 1.55;
	margin: 0;
	flex-grow: 1;
}

.mo-specialty-card-cta {
	font-family: var(--mo-font-display);
	font-weight: 600;
	font-size: 0.85rem;
	color: var(--mo-brand);
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: 4px;
}

.mo-specialty-card-cta::after {
	content: '→';
	transition: transform 0.2s;
}

/* -- No results state -- */
.mo-specialty-empty {
	text-align: center;
	padding: 48px 24px;
	color: var(--mo-text-muted);
}

.mo-specialty-empty[hidden] {
	display: none;
}

.mo-specialty-empty p {
	font-size: 1rem;
	margin: 8px 0 0;
}

/* -- Results count badge -- */
.mo-specialty-count {
	font-family: var(--mo-font-display);
	font-size: 0.8rem;
	font-weight: 500;
	color: var(--mo-text-muted);
	margin-left: auto;
	transition: opacity 0.2s;
}

/* ============================================================
   PROSE — Clean typography for legal/text-heavy pages
   ============================================================ */
.mo-prose {
	max-width: 968px;
	margin: 0 auto;
	font-size: clamp(0.95rem, 1.2vw, 1.05rem);
	line-height: 1.7;
	color: var(--mo-text-muted);
}

.mo-prose h2 {
	font-family: var(--mo-font-display);
	font-weight: 700;
	font-size: clamp(1.4rem, 2.5vw, 1.75rem);
	color: var(--mo-text);
	margin: var(--mo-space-section) 0 16px;
}

.mo-prose h3 {
	font-family: var(--mo-font-display);
	font-weight: 600;
	font-size: clamp(1.1rem, 2vw, 1.35rem);
	color: var(--mo-text);
	margin: var(--mo-space-section-sm) 0 12px;
}

.mo-prose p {
	margin: 0 0 16px;
}

.mo-prose ul,
.mo-prose ol {
	padding-left: 24px;
	margin: 0 0 16px;
}

.mo-prose li {
	margin-bottom: 6px;
}

.mo-prose a {
	color: var(--mo-brand);
	font-weight: 500;
}

.mo-prose strong {
	color: var(--mo-text);
}

/* ============================================================
   MAP WRAPPER — Google Maps iframe in glass card
   ============================================================ */
.mo-map-wrapper {
	border-radius: var(--mo-radius-lg);
	overflow: hidden;
	border: 1px solid var(--mo-glass-border);
	box-shadow: var(--mo-shadow-bento);
}

.mo-map-wrapper iframe {
	display: block;
	width: 100%;
	height: 400px;
	border: 0;
}

@media (max-width: 640px) {
	.mo-map-wrapper iframe {
		height: 280px;
	}
}

/* ============================================================
   ICON SYSTEM — SVG Sprite Icons
   ============================================================ */
.mo-icon {
	width: 1.25em;
	height: 1.25em;
	display: inline-block;
	vertical-align: middle;
	flex-shrink: 0;
	color: inherit;
}

/* Stroke-based icons (UI) */
.mo-icon--stroke {
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Fill-based icons (Health/Medical) */
.mo-icon--fill {
	fill: currentColor;
	stroke: none;
}

/* Size variants */
.mo-icon--xs {
	width: 0.875em;
	height: 0.875em;
}

.mo-icon--sm {
	width: 1em;
	height: 1em;
}

.mo-icon--md {
	width: 1.5em;
	height: 1.5em;
}

.mo-icon--lg {
	width: 2em;
	height: 2em;
}

.mo-icon--xl {
	width: 2.5em;
	height: 2.5em;
}

.mo-icon--2xl {
	width: 3em;
	height: 3em;
}

/* Color variants */
.mo-icon--brand {
	stroke: var(--mo-brand);
}

.mo-icon--muted {
	stroke: var(--mo-text-muted);
}

.mo-icon--white {
	stroke: #fff;
}

/* Filled variant (for star ratings, etc.) */
.mo-icon--filled {
	fill: currentColor;
	stroke: none;
}

/* Icons inside specialty card circles */
.mo-specialty-card-icon .mo-icon {
	width: 100%;
	height: 100%;
	stroke-width: 1.5;
}

/* Icons inside contact cards */
.mo-contact-card-icon .mo-icon {
	width: 24px;
	height: 24px;
	stroke-width: 2;
}

/* ============================================================
   LAB INFO BAR (Bioclinica page)
   ============================================================ */
.mo-lab-info-bar {
	display: flex;
	gap: 0;
	background: var(--mo-surface);
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius-lg);
	overflow: hidden;
	box-shadow: var(--mo-shadow-bento);
}

.mo-lab-info-item {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 1;
	padding: 20px 24px;
	border-right: 1px solid var(--mo-stroke);
}

.mo-lab-info-item:last-child {
	border-right: none;
}

.mo-lab-info-item .mo-icon {
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	color: var(--mo-brand);
}

.mo-lab-info-item strong {
	display: block;
	font-family: var(--mo-font-display);
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--mo-text);
	line-height: 1.3;
}

.mo-lab-info-item span,
.mo-lab-info-item a {
	font-size: 0.85rem;
	color: var(--mo-text-muted);
}

.mo-lab-info-item a:hover {
	color: var(--mo-brand);
}

.mo-lab-info-cta {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 1;
	padding: 20px 24px;
	background: #0F172A;
	color: #fff;
	transition: background 0.2s;
}

.mo-lab-info-cta:hover {
	background: #1E293B;
}

.mo-lab-info-cta .mo-icon {
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	fill: #fff;
}

.mo-lab-info-cta strong {
	display: block;
	font-family: var(--mo-font-display);
	font-size: 0.9rem;
	font-weight: 700;
	color: #fff;
	line-height: 1.3;
}

.mo-lab-info-cta span {
	font-size: 0.85rem;
	color: rgba(255,255,255,0.7);
}

@media (max-width: 768px) {
	.mo-lab-info-bar {
		flex-direction: column;
	}
	.mo-lab-info-item {
		border-right: none;
		border-bottom: 1px solid var(--mo-stroke);
	}
	.mo-lab-info-item:last-child {
		border-bottom: none;
	}
}

/* ============================================================
   PROCESS STEPS (3-step row)
   ============================================================ */
.mo-steps-row {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.mo-step-card {
	text-align: center;
	padding: 32px 24px;
	background: var(--mo-surface);
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius-lg);
	transition: border-color 0.2s, box-shadow 0.2s;
}

@media (hover: hover) {
	.mo-step-card:hover {
		border-color: var(--mo-brand);
		box-shadow: 0 4px 20px rgba(255, 69, 58, 0.08);
	}
}

.mo-step-number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--mo-brand);
	color: #fff;
	font-family: var(--mo-font-display);
	font-size: 1.25rem;
	font-weight: 800;
	margin-bottom: 16px;
}

.mo-step-card h3 {
	font-family: var(--mo-font-display);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--mo-text);
	margin-bottom: 8px;
}

.mo-step-card p {
	font-size: 0.95rem;
	color: var(--mo-text-muted);
	line-height: 1.6;
}

@media (max-width: 640px) {
	.mo-steps-row {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.mo-step-card {
		display: flex;
		text-align: left;
		gap: 16px;
		padding: 20px;
		align-items: flex-start;
	}
	.mo-step-number {
		margin-bottom: 0;
		flex-shrink: 0;
		width: 40px;
		height: 40px;
		font-size: 1.1rem;
	}
}

/* ===========================================
   LAB PRICE CALCULATOR
   Search, filter, select & total for analyses
   =========================================== */

/* --- Toolbar: search + filter pills --- */
.mo-lab-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: stretch;
}

.mo-lab-search {
	position: relative;
	flex: 1 1 280px;
	min-width: 0;
}

.mo-lab-search-icon {
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
	color: var(--mo-text-muted);
	pointer-events: none;
}

.mo-lab-search input {
	width: 100%;
	padding: 14px 16px 14px 48px;
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius-md);
	background: #fff;
	font-family: inherit;
	font-size: 0.95rem;
	color: var(--mo-text);
	transition: border-color 0.2s, box-shadow 0.2s;
}

.mo-lab-search input:focus {
	outline: none;
	border-color: var(--mo-brand);
	box-shadow: 0 0 0 3px rgba(255, 69, 58, 0.12);
}

.mo-lab-search input::placeholder {
	color: var(--mo-text-muted);
}

.mo-lab-filters {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}

.mo-lab-filter-btn {
	padding: 10px 20px;
	border: 1px solid var(--mo-stroke);
	border-radius: 100px;
	background: #fff;
	font-family: inherit;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--mo-text-muted);
	cursor: pointer;
	transition: all 0.2s;
	white-space: nowrap;
}

.mo-lab-filter-btn:hover {
	border-color: var(--mo-brand);
	color: var(--mo-text);
}

.mo-lab-filter-btn.is-active {
	background: var(--mo-brand);
	border-color: var(--mo-brand);
	color: #fff;
}

/* --- Status bar --- */
.mo-lab-status {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 12px 0;
	font-size: 0.875rem;
	color: var(--mo-text-muted);
	border-bottom: 1px solid var(--mo-stroke);
}

.mo-lab-status strong {
	color: var(--mo-text);
	font-weight: 600;
}

/* --- Table --- */
.mo-lab-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
}

.mo-lab-table thead {
	position: sticky;
	top: 72px;
	z-index: 5;
	background: var(--mo-surface);
}

.mo-lab-table th {
	padding: 12px 16px;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--mo-text-muted);
	text-align: left;
	border-bottom: 2px solid var(--mo-stroke);
}

.mo-lab-table th:last-child {
	text-align: right;
}

.mo-lab-table td {
	padding: 0;
}

.mo-lab-row label {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	cursor: pointer;
	transition: background 0.15s;
	border-bottom: 1px solid var(--mo-stroke);
}

.mo-lab-row:last-child label {
	border-bottom: none;
}

.mo-lab-row label:hover {
	background: rgba(255, 69, 58, 0.03);
}

.mo-lab-row input[type="checkbox"] {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	accent-color: var(--mo-brand);
	cursor: pointer;
}

.mo-lab-row-name {
	flex: 1;
	font-size: 0.925rem;
	line-height: 1.4;
	color: var(--mo-text);
}

.mo-lab-row-code {
	flex-shrink: 0;
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--mo-text-muted);
	letter-spacing: 0.04em;
	font-family: var(--wp--preset--font-family--mono, monospace);
	min-width: 40px;
	text-align: center;
}

.mo-lab-row-price {
	flex-shrink: 0;
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--mo-text);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.mo-lab-row.is-selected label {
	background: rgba(255, 69, 58, 0.06);
}

.mo-lab-row.is-selected .mo-lab-row-name {
	font-weight: 500;
}

.mo-lab-row.is-selected .mo-lab-row-price {
	color: var(--mo-brand);
}

/* Category header rows within the table */
.mo-lab-cat-header td {
	padding: 20px 16px 50px;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--mo-brand);
	border-bottom: 2px solid var(--mo-brand);
	background: var(--mo-surface);
}

.mo-lab-cat-header:first-child td {
	padding-top: 8px;
}

/* --- Empty state --- */
.mo-lab-empty {
	text-align: center;
	padding: 64px 24px;
	color: var(--mo-text-muted);
}

.mo-lab-empty svg {
	display: block;
	margin: 0 auto 16px;
	opacity: 0.35;
}

.mo-lab-empty p {
	font-size: 1rem;
	margin: 0;
}

/* --- Sticky cart bar --- */
.mo-lab-cart {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 90;
	background: #0F172A;
	color: #fff;
	transform: translateY(100%);
	transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
	box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.15);
}

.mo-lab-cart.is-visible {
	transform: translateY(0);
}

.mo-lab-cart-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	max-width: var(--wp--style--global--wide-size, 1280px);
	margin: 0 auto;
	padding: 16px clamp(20px, 4vw, 40px);
}

.mo-lab-cart-info {
	display: flex;
	align-items: center;
	gap: 24px;
}

.mo-lab-cart-count {
	font-size: 0.875rem;
	opacity: 0.7;
}

.mo-lab-cart-total {
	font-size: 1.25rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.mo-lab-cart-total small {
	font-weight: 400;
	font-size: 0.8rem;
	opacity: 0.6;
	margin-left: 4px;
}

.mo-lab-cart-actions {
	display: flex;
	gap: 12px;
	align-items: center;
}

.mo-lab-cart-reset {
	padding: 8px 20px;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 100px;
	background: transparent;
	color: #fff;
	font-family: inherit;
	font-size: 0.85rem;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s;
}

.mo-lab-cart-reset:hover {
	border-color: #fff;
	background: rgba(255, 255, 255, 0.1);
}

/* --- Share actions in cart --- */
.mo-lab-cart-share {
	display: flex;
	gap: 8px;
	align-items: center;
}

.mo-lab-share-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	border: none;
	border-radius: 100px;
	background: rgba(255, 255, 255, 0.15);
	color: #fff;
	font-family: inherit;
	font-size: 0.85rem;
	font-weight: 500;
	cursor: pointer;
	transition: background 0.2s;
	white-space: nowrap;
	text-decoration: none;
}

.mo-lab-share-btn:hover {
	background: rgba(255, 255, 255, 0.25);
}

.mo-lab-share-btn svg {
	flex-shrink: 0;
}

/* --- Responsive --- */
@media (max-width: 768px) {
	.mo-lab-toolbar {
		flex-direction: column;
	}

	.mo-lab-search {
		flex: none;
		width: 100%;
	}

	.mo-lab-filters {
		overflow-x: auto;
		flex-wrap: nowrap;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding-bottom: 4px;
	}

	.mo-lab-filters::-webkit-scrollbar {
		display: none;
	}

	.mo-lab-table thead {
		top: 60px;
	}

	.mo-lab-cat-header td {
		top:-20px;
		padding: 20px 16px 60px;
		position: relative;
		z-index: 4;
	}

	.mo-lab-row label {
		padding: 12px 12px;
		gap: 12px;
	}

	.mo-lab-row-name {
		font-size: 0.875rem;
	}

	.mo-lab-row-price {
		font-size: 0.875rem;
	}

	.mo-lab-cart {
		bottom: 72px;
	}

	.mo-lab-cart-inner {
		flex-direction: column;
		gap: 10px;
		padding: 12px 20px;
	}

	.mo-lab-cart-info {
		width: 100%;
		justify-content: space-between;
	}

	.mo-lab-cart-actions {
		width: 100%;
		display: flex;
		gap: 8px;
	}

	.mo-lab-cart-share {
		flex: 1;
	}

	.mo-lab-cart-reset {
		flex-shrink: 0;
	}

	.mo-lab-share-btn span {
		display: none;
	}

	.mo-lab-share-btn {
		padding: 8px 12px;
	}
}

/* ============================================================
   PRICING TABLE — Service price lists
   ============================================================ */
.mo-price-table {
	background: var(--mo-card-bg, #fff);
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius-lg, 16px);
	overflow: hidden;
}

.mo-price-table-header {
	display: grid;
	grid-template-columns: 1fr auto auto;
	gap: 16px;
	padding: 16px 24px;
	background: var(--mo-surface);
	border-bottom: 2px solid var(--mo-stroke);
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--mo-text);
}

.mo-price-table-row {
	display: grid;
	grid-template-columns: 1fr auto auto;
	gap: 16px;
	padding: 14px 24px;
	border-bottom: 1px solid var(--mo-stroke);
	font-size: 0.95rem;
	align-items: baseline;
	transition: background 0.15s;
}

.mo-price-table-row:last-child {
	border-bottom: none;
}

.mo-price-table-row:hover {
	background: var(--mo-surface);
}

.mo-price-table-name {
	color: var(--mo-text);
	font-weight: 500;
}

.mo-price-table-duration {
	color: var(--mo-text-muted);
	font-size: 0.85rem;
	white-space: nowrap;
	min-width: 60px;
	text-align: center;
}

.mo-price-table-value {
	font-weight: 700;
	color: var(--mo-brand);
	white-space: nowrap;
	min-width: 80px;
	text-align: right;
}

@media (max-width: 640px) {
	.mo-price-table-header {
		display: none;
	}

	.mo-price-table-row {
		grid-template-columns: 1fr;
		gap: 4px;
		padding: 14px 20px;
	}

	.mo-price-table-duration {
		text-align: left;
		font-size: 0.8rem;
	}

	.mo-price-table-value {
		text-align: left;
		font-size: 1rem;
	}
}

/* ============================================================
   QUESTIONNAIRE — Patient satisfaction forms
   ============================================================ */
.mo-quest {
	max-width: 720px;
	margin: 0 auto;
}

/* Form selector cards */
.mo-quest-selector {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	max-width: 600px;
	margin: 0 auto;
}

@media (max-width: 480px) {
	.mo-quest-selector {
		grid-template-columns: 1fr;
	}
}

.mo-quest-selector-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	padding: 32px 24px;
	background: var(--mo-card-bg, #fff);
	border: 2px solid var(--mo-stroke);
	border-radius: var(--mo-radius-lg, 16px);
	cursor: pointer;
	transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
	text-align: center;
	text-decoration: none;
	color: inherit;
}

.mo-quest-selector-card:hover {
	border-color: var(--mo-brand);
	box-shadow: 0 4px 24px rgba(255, 69, 58, 0.12);
	transform: translateY(-2px);
}

.mo-quest-selector-card .mo-icon {
	width: 48px;
	height: 48px;
	color: var(--mo-brand);
}

.mo-quest-selector-card h3 {
	font-size: 1.1rem;
	margin: 0;
}

.mo-quest-selector-card p {
	font-size: 0.85rem;
	color: var(--mo-text-muted);
	margin: 0;
	line-height: 1.5;
}

/* Form wrapper (hidden until selected) */
.mo-quest-form {
	display: none;
}

.mo-quest-form.is-active {
	display: block;
}

/* Back link */
.mo-quest-back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--mo-text-muted);
	text-decoration: none;
	margin-bottom: 24px;
	cursor: pointer;
	transition: color 0.2s;
}

.mo-quest-back:hover {
	color: var(--mo-brand);
}

/* Form intro */
.mo-quest-intro {
	font-size: 0.95rem;
	color: var(--mo-text-muted);
	line-height: 1.7;
	margin-bottom: 32px;
	padding: 20px 24px;
	background: var(--mo-surface);
	border-radius: var(--mo-radius-lg, 16px);
	border-left: 4px solid var(--mo-brand);
}

/* Section cards */
.mo-quest-section {
	background: var(--mo-card-bg, #fff);
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius-lg, 16px);
	padding: 28px 24px;
	margin-bottom: 16px;
}

.mo-quest-section-title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--mo-text);
	margin: 0 0 20px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--mo-stroke);
}

/* Individual fields */
.mo-quest-field {
	margin-bottom: 20px;
}

.mo-quest-field:last-child {
	margin-bottom: 0;
}

.mo-quest-label {
	display: block;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--mo-text);
	margin-bottom: 8px;
}

.mo-quest-label .mo-req {
	color: var(--mo-brand);
	margin-left: 2px;
}

/* Text / number / date inputs */
.mo-quest-input {
	width: 100%;
	padding: 10px 14px;
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius, 8px);
	font-family: var(--mo-font-body);
	font-size: 0.9rem;
	color: var(--mo-text);
	background: var(--mo-card-bg, #fff);
	transition: border-color 0.2s, box-shadow 0.2s;
}

.mo-quest-input:focus {
	outline: none;
	border-color: var(--mo-brand);
	box-shadow: 0 0 0 3px rgba(255, 69, 58, 0.1);
}

.mo-quest-input::placeholder {
	color: var(--mo-text-muted);
	opacity: 0.6;
}

textarea.mo-quest-input {
	min-height: 100px;
	resize: vertical;
}

input[type="number"].mo-quest-input {
	max-width: 120px;
}

input[type="date"].mo-quest-input {
	max-width: 200px;
}

/* Pill toggles (yes/no, single_select with 2-3 options) */
.mo-quest-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.mo-quest-pill {
	position: relative;
}

.mo-quest-pill input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.mo-quest-pill span {
	display: inline-block;
	padding: 8px 20px;
	border: 1.5px solid var(--mo-stroke);
	border-radius: var(--mo-radius-pill, 999px);
	font-size: 0.85rem;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s;
	color: var(--mo-text-muted);
	background: var(--mo-card-bg, #fff);
	min-width: 44px;
	text-align: center;
}

.mo-quest-pill input:checked + span {
	background: var(--mo-brand);
	border-color: var(--mo-brand);
	color: #fff;
	font-weight: 600;
}

.mo-quest-pill input:focus-visible + span {
	box-shadow: 0 0 0 3px rgba(255, 69, 58, 0.2);
}

/* Rating grid (compact table for multiple rating_3 in same section) */
.mo-quest-rating-grid {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
}

.mo-quest-rating-grid thead th {
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--mo-text-muted);
	padding: 0 8px 10px;
	text-align: center;
}

.mo-quest-rating-grid thead th:first-child {
	text-align: left;
	width: 50%;
}

.mo-quest-rating-grid tbody td {
	padding: 10px 8px;
	border-bottom: 1px solid var(--mo-stroke);
	vertical-align: middle;
}

.mo-quest-rating-grid tbody tr:last-child td {
	border-bottom: none;
}

.mo-quest-rating-grid .mo-quest-rating-label {
	font-size: 0.9rem;
	color: var(--mo-text);
}

.mo-quest-rating-grid td:not(:first-child) {
	text-align: center;
}

/* Wizard navigation (for internat multi-step) */
.mo-quest-wizard-nav {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-bottom: 24px;
	overflow-x: auto;
	padding-bottom: 4px;
}

.mo-quest-step-dot {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 2px solid var(--mo-stroke);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.7rem;
	font-weight: 700;
	color: var(--mo-text-muted);
	background: var(--mo-card-bg, #fff);
	flex-shrink: 0;
	transition: all 0.2s;
}

.mo-quest-step-dot.is-active {
	border-color: var(--mo-brand);
	background: var(--mo-brand);
	color: #fff;
}

.mo-quest-step-dot.is-done {
	border-color: var(--mo-brand);
	background: rgba(255, 69, 58, 0.1);
	color: var(--mo-brand);
}

.mo-quest-step-line {
	flex: 1;
	height: 2px;
	background: var(--mo-stroke);
	min-width: 12px;
}

.mo-quest-step-line.is-done {
	background: var(--mo-brand);
}

/* Wizard step content */
.mo-quest-step {
	display: none;
}

.mo-quest-step.is-active {
	display: block;
}

/* Wizard buttons */
.mo-quest-nav-btns {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin-top: 24px;
}

/* Success state */
.mo-quest-success {
	text-align: center;
	padding: 48px 24px;
}

.mo-quest-success-icon {
	width: 64px;
	height: 64px;
	background: rgba(34, 197, 94, 0.1);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 20px;
	color: #22c55e;
	font-size: 2rem;
}

.mo-quest-success h3 {
	font-size: 1.25rem;
	margin-bottom: 8px;
}

.mo-quest-success p {
	color: var(--mo-text-muted);
	line-height: 1.6;
}

/* Legal note */
.mo-quest-legal {
	font-size: 0.75rem;
	color: var(--mo-text-muted);
	line-height: 1.6;
	margin-top: 16px;
	padding: 12px 16px;
	background: var(--mo-surface);
	border-radius: var(--mo-radius, 8px);
}

/* Validation error */
.mo-quest-field.has-error .mo-quest-input {
	border-color: var(--mo-brand);
}

.mo-quest-field.has-error .mo-quest-label {
	color: var(--mo-brand);
}

@media (max-width: 640px) {
	.mo-quest-section {
		padding: 20px 16px;
	}

	.mo-quest-rating-grid thead {
		display: none;
	}

	.mo-quest-rating-grid,
	.mo-quest-rating-grid tbody,
	.mo-quest-rating-grid tr,
	.mo-quest-rating-grid td {
		display: block;
	}

	.mo-quest-rating-grid tr {
		padding: 12px 0;
		border-bottom: 1px solid var(--mo-stroke);
	}

	.mo-quest-rating-grid tr:last-child {
		border-bottom: none;
	}

	.mo-quest-rating-grid td {
		padding: 2px 0;
		border-bottom: none;
	}

	.mo-quest-rating-grid td:not(:first-child) {
		display: inline-block;
		text-align: left;
		margin-right: 8px;
	}
}

/* ── Education Content Cards ────────────────────── */

.mo-edu-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}

@media (min-width: 768px) {
	.mo-edu-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}
}

.mo-edu-card {
	background: var(--mo-white, #fff);
	border-radius: var(--mo-radius-lg, 12px);
	padding: 24px;
	border-left: 3px solid var(--mo-brand);
	box-shadow: var(--mo-shadow-bento);
	border-top: 1px solid var(--mo-glass-border);
	border-right: 1px solid var(--mo-glass-border);
	border-bottom: 1px solid var(--mo-glass-border);
	transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.mo-edu-card:hover,
.mo-edu-card:focus-within {
	background: var(--mo-brand);
	border-color: var(--mo-brand);
	transform: translateY(-3px);
	box-shadow: 0 8px 24px rgba(255, 69, 58, 0.25);
}

.mo-edu-card:hover h3,
.mo-edu-card:focus-within h3,
.mo-edu-card:hover p,
.mo-edu-card:focus-within p,
.mo-edu-card:hover li,
.mo-edu-card:focus-within li {
	color: #fff;
}

.mo-edu-card h3 {
	font-size: 1.05rem;
	font-weight: 700;
	margin: 0 0 10px;
}

.mo-edu-card p {
	font-size: 0.88rem;
	line-height: 1.65;
	color: var(--mo-text-muted);
	margin: 0 0 6px;
}

.mo-edu-card p:last-child,
.mo-edu-card ul:last-child {
	margin-bottom: 0;
}

.mo-edu-card ul {
	margin: 0;
	padding-left: 1.25em;
}

.mo-edu-card li {
	font-size: 0.88rem;
	line-height: 1.6;
	color: var(--mo-text-muted);
	margin-bottom: 4px;
}

/* ── Interactive Stepper ───────────────────────── */

.mo-stepper {
	max-width: 520px;
	margin: 0 auto;
	background: var(--mo-white, #fff);
	border-radius: var(--mo-radius-lg, 12px);
	box-shadow: var(--mo-shadow-bento);
	border: 1px solid var(--mo-glass-border);
	padding: 32px 24px;
	text-align: center;
}

.mo-stepper:focus-visible {
	outline: 2px solid var(--mo-brand);
	outline-offset: 2px;
}

.mo-stepper-counter {
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--mo-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-bottom: 20px;
}

.mo-stepper-viewport {
	display: flex;
	align-items: center;
	gap: 12px;
}

.mo-stepper-nav {
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--mo-glass-border);
	background: var(--mo-surface);
	color: var(--mo-text);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
	padding: 0;
}

.mo-stepper-nav:hover:not(:disabled) {
	background: var(--mo-brand);
	color: #fff;
	border-color: var(--mo-brand);
}

.mo-stepper-nav:disabled {
	opacity: 0.2;
	cursor: default;
}

.mo-stepper-content {
	flex: 1;
	position: relative;
	min-height: 260px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.mo-stepper-slide {
	display: none;
	flex-direction: column;
	align-items: center;
	width: 100%;
}

.mo-stepper-slide.is-active {
	display: flex;
	animation: mo-stepper-in 0.35s ease;
}

@keyframes mo-stepper-in {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
	.mo-stepper-slide.is-active {
		animation: none;
	}
}

.mo-stepper-slide img {
	width: 180px;
	height: 180px;
	object-fit: contain;
	margin-bottom: 20px;
}

.mo-stepper-slide p {
	font-size: 0.95rem;
	line-height: 1.6;
	color: var(--mo-text);
	margin: 0;
	max-width: 340px;
}

.mo-stepper-dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 24px;
}

.mo-stepper-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	border: none;
	background: var(--mo-glass-border);
	cursor: pointer;
	padding: 0;
	transition: background 0.2s, transform 0.2s;
}

.mo-stepper-dot.is-active {
	background: var(--mo-brand);
	transform: scale(1.3);
}

.mo-stepper-dot:hover:not(.is-active) {
	background: var(--mo-text-muted);
}

/* ── Stepper "show all" mode ──────────────────── */

.mo-stepper-toggle-all {
	display: none;
	margin-top: 12px;
	background: none;
	border: 1px solid var(--mo-glass-border);
	border-radius: 999px;
	padding: 8px 20px;
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--mo-text-muted);
	cursor: pointer;
	transition: color 0.2s, border-color 0.2s, background 0.2s;
}

.mo-stepper-toggle-all:hover {
	color: var(--mo-brand);
	border-color: var(--mo-brand);
	background: rgba(255, 69, 58, 0.04);
}

@media (min-width: 768px) {
	.mo-stepper-toggle-all {
		display: inline-flex;
		align-items: center;
		gap: 6px;
	}
}

.mo-stepper.is-expanded {
	max-width: 900px;
}

.mo-stepper.is-expanded .mo-stepper-viewport,
.mo-stepper.is-expanded .mo-stepper-counter,
.mo-stepper.is-expanded .mo-stepper-dots {
	display: none;
}

.mo-stepper-all-grid {
	display: none;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 24px;
	text-align: center;
}

.mo-stepper.is-expanded .mo-stepper-all-grid {
	display: grid;
}

.mo-stepper-all-grid .mo-stepper-slide {
	display: flex !important;
	animation: none !important;
	position: static;
}

.mo-stepper-all-grid .mo-stepper-slide img {
	width: 140px;
	height: 140px;
}

/* ── Hygiene Shared ────────────────────────────── */

.mo-hygiene-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 32px;
	height: 32px;
	border-radius: 999px;
	padding: 0 10px;
	background: var(--mo-brand);
	color: #fff;
	font-weight: 700;
	font-size: 0.85rem;
	margin-bottom: 12px;
}

.mo-hygiene-duration {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--mo-surface);
	border: 1px solid var(--mo-glass-border);
	border-radius: 999px;
	padding: 8px 20px;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--mo-brand);
}

.mo-hygiene-duration img {
	width: 20px;
	height: 20px;
}

.mo-hygiene-partners {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 32px;
	padding: 20px 24px;
	margin-top: 32px;
	background: var(--mo-surface);
	border-radius: var(--mo-radius-lg, 12px);
	border: 1px solid var(--mo-glass-border);
	max-width: 520px;
	margin-left: auto;
	margin-right: auto;
}

.mo-hygiene-partners img {
	height: 40px;
	width: auto;
	transition: transform 0.25s ease, filter 0.25s ease;
	cursor: pointer;
}

.mo-hygiene-partners img:hover {
	transform: translateY(-4px) scale(1.15);
	filter: saturate(1.4);
}

/* ── Accordion Lists (shared) ──────────────────── */

.mo-accordion .mo-accordion-body ul {
	margin: 0;
	padding-left: 1.5em;
}

.mo-accordion .mo-accordion-body li {
	margin-bottom: 6px;
	line-height: 1.6;
}

/* ── Responsive ────────────────────────────────── */

@media (max-width: 639px) {
	.mo-stepper {
		padding: 20px 12px;
	}

	.mo-stepper-content {
		min-height: 220px;
	}

	.mo-stepper-slide img {
		width: 140px;
		height: 140px;
	}

	.mo-stepper-nav {
		width: 36px;
		height: 36px;
	}

	.mo-stepper-dots {
		gap: 6px;
	}

	.mo-stepper-dot {
		width: 8px;
		height: 8px;
	}

	.mo-hygiene-partners {
		gap: 16px;
		padding: 16px;
	}

	.mo-hygiene-partners img {
		height: 32px;
	}
}

/* ============================================================
   TESTIMONIALS SLIDER
   ============================================================ */

.mo-testimonials-section {
	position: relative;
	background: var(--mo-white, #fff);
	padding: clamp(64px, 10vw, 100px) 0;
	overflow: hidden;
}

.mo-testimonials-bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.mo-testimonials-pattern {
	position: absolute;
	inset: 0;
	background-image: radial-gradient(circle at 1px 1px, rgba(255, 69, 58, 0.02) 1px, transparent 0);
	background-size: 32px 32px;
}

.mo-testimonials-wrapper {
	position: relative;
	z-index: 1;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 24px;
}

.mo-testimonials-header {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	margin-bottom: 48px;
}

.mo-testimonials-highlight {
	color: var(--mo-brand);
}

/* Rating badge */
.mo-rating-badge {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	background: var(--mo-white, #fff);
	border: 1px solid var(--mo-glass-border);
	border-radius: 100px;
	padding: 12px 28px;
	margin: 0 auto 48px;
	box-shadow: var(--mo-shadow-bento);
}

.mo-rating-badge-icon {
	display: flex;
	flex-shrink: 0;
	color: var(--mo-brand);
}

.mo-rating-badge-icon .mo-icon {
	width: 24px;
	height: 24px;
}

.mo-rating-badge-content {
	display: flex;
	align-items: center;
	gap: 10px;
}

.mo-rating-stars {
	display: flex;
	gap: 2px;
}

.mo-rating-score {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--mo-text);
}

.mo-rating-count {
	font-size: 0.875rem;
	color: var(--mo-text-muted);
}

/* Slider track */
.mo-testimonials-slider-wrap {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
}

.mo-testimonials-track {
	display: flex;
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 8px 0;
}

.mo-testimonials-track::-webkit-scrollbar {
	display: none;
}

/* Cards */
.mo-testimonial-card {
	flex: 0 0 calc(33.333% - 16px);
	scroll-snap-align: start;
	background: var(--mo-surface, #f8fafc);
	border-radius: var(--mo-radius-lg, 12px);
	padding: 32px;
	border: 1px solid var(--mo-glass-border);
	transition: all 0.4s cubic-bezier(0.22, 1, 0.36, 1);
	display: flex;
	flex-direction: column;
}

.mo-testimonial-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 32px rgba(255, 69, 58, 0.08);
	border-color: rgba(255, 69, 58, 0.15);
}

.mo-testimonial-stars {
	display: flex;
	gap: 2px;
	margin-bottom: 16px;
	color: #FBBC05;
	font-size: 16px;
	letter-spacing: 2px;
}

.mo-testimonial-text {
	font-size: 1rem;
	line-height: 1.7;
	color: var(--mo-text-muted);
	margin: 0 0 8px;
	font-style: italic;
	flex: 1;
	display: -webkit-box;
	-webkit-line-clamp: 5;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.mo-testimonial-card.is-expanded .mo-testimonial-text {
	-webkit-line-clamp: unset;
	display: block;
}

.mo-ts-read-more {
	background: none;
	border: none;
	color: var(--mo-brand);
	font-size: 0.8125rem;
	font-weight: 600;
	font-family: inherit;
	cursor: pointer;
	padding: 0;
	margin-bottom: 16px;
	transition: opacity 0.2s;
}

.mo-ts-read-more:hover {
	opacity: 0.7;
}

.mo-ts-read-more.is-hidden {
	display: none;
}

.mo-testimonial-author {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-top: 20px;
	border-top: 1px solid var(--mo-glass-border);
	margin-top: auto;
}

.mo-author-avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--mo-brand), #BF1A1A);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 0.8rem;
	flex-shrink: 0;
}

.mo-author-info {
	display: flex;
	flex-direction: column;
}

.mo-author-name {
	font-weight: 600;
	color: var(--mo-text);
	font-size: 0.9375rem;
}

.mo-author-detail {
	font-size: 0.8125rem;
	color: var(--mo-text-muted);
}

/* Navigation arrows */
.mo-ts-arrow {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--mo-glass-border);
	background: var(--mo-white, #fff);
	color: var(--mo-text);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	flex-shrink: 0;
	transition: all 0.3s ease;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
	padding: 0;
}

.mo-ts-arrow:hover {
	background: var(--mo-brand);
	color: #fff;
	border-color: var(--mo-brand);
}

.mo-ts-arrow:focus-visible {
	outline: 2px solid var(--mo-brand);
	outline-offset: 2px;
}

/* Dot pagination */
.mo-ts-dots {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0;
	margin-top: 28px;
}

.mo-ts-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #d1d5db;
	border: none;
	cursor: pointer;
	padding: 14px;
	box-sizing: content-box;
	background-clip: content-box;
	-webkit-background-clip: content-box;
	transition: background 0.3s ease, width 0.3s ease, border-radius 0.3s ease;
}

.mo-ts-dot.active {
	background: var(--mo-brand);
	width: 24px;
	border-radius: 8px;
	background-clip: content-box;
	-webkit-background-clip: content-box;
}

/* Page counter (mobile) */
.mo-ts-counter {
	display: none;
	text-align: center;
	margin-top: 16px;
	font-size: 0.875rem;
	color: var(--mo-text-muted);
	font-weight: 500;
	letter-spacing: 0.5px;
}

/* CTA */
.mo-testimonials-cta {
	text-align: center;
	margin-top: 32px;
}

/* Responsive */
@media (max-width: 1024px) {
	.mo-testimonial-card {
		flex: 0 0 calc(50% - 12px);
	}
}

@media (max-width: 768px) {
	.mo-testimonial-card {
		flex: 0 0 100%;
	}

	.mo-ts-dots {
		display: none;
	}

	.mo-ts-counter {
		display: block;
	}

	.mo-rating-badge {
		flex-direction: column;
		gap: 8px;
		padding: 16px 24px;
		border-radius: 16px;
	}

	.mo-rating-badge-content {
		flex-wrap: wrap;
		justify-content: center;
		gap: 8px;
	}
}

@media (max-width: 480px) {
	.mo-testimonial-card {
		padding: 24px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mo-testimonials-track {
		scroll-behavior: auto;
	}

	.mo-testimonial-card {
		transition: none;
	}
}

/* ---- CNAS Pricing Variant ---- */
.mo-doctor-pricing--cnas {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px dashed var(--mo-stroke, #e2e8f0);
}
.mo-doctor-pricing--cnas h4 {
	color: var(--mo-brand);
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

/* ---- Easter Popup ---- */
.mo-easter-popup {
	position: fixed;
	inset: 0;
	z-index: 10001;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.mo-easter-popup[hidden] { display: none; }
.mo-easter-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.4);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}
.mo-easter-container {
	position: relative;
	display: flex;
	max-width: 880px;
	width: 100%;
	background: #fff;
	border-radius: 24px;
	box-shadow: 0 40px 80px -20px rgba(0, 0, 0, 0.18), 0 0 0 1px rgba(0, 0, 0, 0.04);
	overflow: hidden;
	animation: moEasterIn 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes moEasterIn {
	from { opacity: 0; transform: scale(0.95) translateY(20px); }
	to { opacity: 1; transform: scale(1) translateY(0); }
}
.mo-easter-close-x {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 5;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: none;
	background: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(8px);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: #64748b;
	transition: background 0.2s, color 0.2s, transform 0.3s;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.mo-easter-close-x:hover { background: #f1f5f9; color: #0f172a; transform: rotate(90deg); }
.mo-easter-image {
	flex: 1;
	background: #f0fdf4;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.mo-easter-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	animation: moEasterFloat 8s ease-in-out infinite alternate;
}
@keyframes moEasterFloat {
	from { transform: scale(1.02) translateY(0); }
	to { transform: scale(1.04) translateY(-6px); }
}
.mo-easter-content {
	flex: 1;
	padding: 28px 20px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.mo-easter-logo { height: 32px; opacity: 0.85; display: block; }
.mo-easter-title {
	font-family: var(--mo-font-display);
	font-size: 2.4rem;
	font-weight: 800;
	line-height: 1.1;
	color: var(--mo-text);
	margin-bottom: 12px;
}
.mo-easter-title span { color: var(--mo-brand); }
.mo-easter-desc {
	color: #64748b;
	font-size: 1rem;
	line-height: 1.6;
	margin-bottom: 28px;
}
.mo-easter-dates {
	display: flex;
	align-items: center;
	gap: 16px;
	background: var(--mo-surface, #f8fafc);
	border: 1px solid var(--mo-glass-border, #e2e8f0);
	padding: 14px 20px;
	border-radius: 14px;
	margin-bottom: 28px;
	position: relative;
	overflow: hidden;
}
.mo-easter-dates::before {
	content: '';
	position: absolute;
	top: 0; left: 0; width: 4px; height: 100%;
	background: linear-gradient(to bottom, var(--mo-brand), var(--mo-brand-dark, #bf1a1a));
	border-radius: 4px 0 0 4px;
}
.mo-easter-dates-icon {
	width: 44px; height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	border-radius: 12px;
	flex-shrink: 0;
	color: var(--mo-brand);
	box-shadow: 0 2px 8px rgba(255, 69, 58, 0.08);
}
.mo-easter-dates-label {
	display: block;
	font-size: 0.75rem;
	color: #64748b;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.mo-easter-dates-value {
	display: block;
	font-size: 1.2rem;
	font-weight: 800;
	color: var(--mo-text);
	margin-top: 2px;
}
.mo-easter-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: 16px 24px;
	background: var(--mo-text, #0f172a);
	color: #fff;
	border: none;
	border-radius: 14px;
	font-family: var(--mo-font-display);
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
	box-shadow: 0 8px 20px -4px rgba(15, 23, 42, 0.2);
}
.mo-easter-btn:hover {
	background: #1e293b;
	transform: translateY(-2px);
	box-shadow: 0 12px 28px -4px rgba(15, 23, 42, 0.25);
}
@keyframes moEasterOut {
	to { opacity: 0; }
}
@keyframes moEasterOutCard {
	to { opacity: 0; transform: scale(0.96) translateY(15px); }
}
@media (max-width: 768px) {
	.mo-easter-popup { padding: 0; align-items: flex-end; }
	.mo-easter-container {
		flex-direction: column;
		border-radius: 24px 24px 0 0;
		max-height: 95vh;
		overflow-y: auto;
		animation-name: moEasterInMobile;
	}
	@keyframes moEasterInMobile {
		from { transform: translateY(100%); }
		to { transform: translateY(0); }
	}
	.mo-easter-image { height: 36vh; min-height: 405px; flex: none; }
	.mo-easter-image img { object-position: center 20%; }
	.mo-easter-content {
		padding: 32px 24px;
		border-radius: 24px 24px 0 0;
		margin-top: -20px;
		background: #fff;
		box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.05);
	}
	.mo-easter-title { font-size: 2rem; }
}

/* ---- Cookie Consent Banner ---- */
.mo-cookie-banner {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 9999;
	background: var(--mo-text, #0f172a);
	color: #e2e8f0;
	padding: 16px 20px;
	transform: translateY(100%);
	transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.mo-cookie-banner.is-visible { transform: translateY(0); }
.mo-cookie-banner-inner {
	max-width: 1280px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}
.mo-cookie-banner-text {
	flex: 1;
	min-width: 260px;
	font-size: 0.875rem;
	line-height: 1.5;
	margin:0;
}
.mo-cookie-banner-text a {
	color: var(--mo-brand, #ff453a);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.mo-cookie-banner-actions {
	display: flex;
	gap: 8px;
	flex-shrink: 0;
}
.mo-cookie-accept {
	background: var(--mo-brand, #ff453a);
	color: #fff;
	border: none;
	padding: 10px 24px;
	border-radius: var(--mo-radius-pill, 999px);
	font-family: var(--mo-font-display);
	font-weight: 600;
	font-size: 0.875rem;
	cursor: pointer;
	transition: background 0.2s;
}
.mo-cookie-accept:hover { background: var(--mo-brand-dark, #bf1a1a); }
.mo-cookie-reject {
	background: transparent;
	color: #94a3b8;
	border: 1px solid #334155;
	padding: 10px 20px;
	border-radius: var(--mo-radius-pill, 999px);
	font-family: var(--mo-font-display);
	font-weight: 600;
	font-size: 0.875rem;
	cursor: pointer;
	transition: background 0.2s, color 0.2s;
}
.mo-cookie-reject:hover { background: #1e293b; color: #e2e8f0; }
@media (max-width: 640px) {
	.mo-cookie-banner-inner { flex-direction: column; align-items: stretch; }
	.mo-cookie-banner-actions { justify-content: stretch; }
	.mo-cookie-accept, .mo-cookie-reject { flex: 1; text-align: center; }
}

/* ============================================================
   CONTACT FORM SECTION
   ============================================================ */
.mo-contact-form-section {
	background: var(--mo-surface-2);
}

.mo-contact-form-wrapper {
	max-width: 720px;
	margin: 0 auto;
	background: var(--mo-surface);
	border: 1px solid var(--mo-stroke);
	border-radius: var(--mo-radius-lg);
	padding: clamp(24px, 4vw, 48px);
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
}

.mo-contact-form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 20px;
}

@media (max-width: 600px) {
	.mo-contact-form-grid {
		grid-template-columns: 1fr;
	}
}

/* File upload area */
.mo-contact-file-upload {
	margin-bottom: 20px;
}

.mo-file-upload-label {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 24px 20px;
	border: 2px dashed var(--mo-stroke);
	border-radius: var(--mo-radius-md);
	background: var(--mo-surface-2);
	color: var(--mo-text-muted);
	cursor: pointer;
	transition: border-color 0.2s, background 0.2s, color 0.2s;
	text-align: center;
}

.mo-file-upload-label:hover {
	border-color: var(--mo-brand);
	background: var(--mo-brand-light);
	color: var(--mo-brand);
}

.mo-file-upload-label svg {
	color: var(--mo-brand);
	opacity: 0.7;
}

.mo-file-upload-label:hover svg {
	opacity: 1;
}

.mo-file-upload-text {
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--mo-text);
}

.mo-file-upload-label:hover .mo-file-upload-text {
	color: var(--mo-brand);
}

.mo-file-upload-hint {
	font-size: 0.8rem;
	opacity: 0.75;
}

.mo-file-input-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.mo-file-upload-preview {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 10px;
	padding: 10px 16px;
	background: var(--mo-brand-light);
	border-radius: var(--mo-radius-sm);
	font-size: 0.875rem;
	color: var(--mo-text);
}

.mo-file-preview-name {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-weight: 500;
}

.mo-file-remove-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border: none;
	border-radius: var(--mo-radius-sm);
	background: transparent;
	color: var(--mo-text-muted);
	cursor: pointer;
	transition: background 0.15s, color 0.15s;
	flex-shrink: 0;
}

.mo-file-remove-btn:hover {
	background: rgba(220, 38, 38, 0.1);
	color: var(--mo-error);
}

/* Captcha row */
.mo-contact-captcha {
	max-width: 320px;
}

/* Submit actions */
.mo-contact-form-actions {
	margin-top: 12px;
}

.mo-contact-form-actions .mo-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 52px;
	padding: 14px 32px;
	font-size: 1rem;
}

.mo-contact-form-actions .mo-btn svg {
	flex-shrink: 0;
}

/* Focus-within effect on wrapper for premium feel */
.mo-contact-form-wrapper:focus-within {
	border-color: var(--mo-brand);
	box-shadow: 0 8px 32px rgba(255, 69, 58, 0.06), 0 0 0 1px var(--mo-brand);
}

/* Drag-over state for file upload */
.mo-file-upload-label.is-drag-over {
	border-color: var(--mo-brand);
	background: var(--mo-brand-light);
	color: var(--mo-brand);
	transform: scale(1.01);
}

/* ---- Contact form file upload error state ---- */
.mo-contact-file-upload .mo-field-error {
	margin-top: 4px;
}

/* <noscript> tag inserts a style override directly */
