/*
 * MRI Dental: the CSS theme.json cannot express.
 * Every value is a token: --wp--preset--* (colors, fonts, sizes, spacing) or --wp--custom--*
 * (radius, shadow, on-dark, button heights). Re-skinning a direction means redefining those
 * variables on a wrapper, e.g. `.is-direction-b { --wp--preset--color--primary: ...; }`.
 */

/* ---------- Base ---------- */
.screen-reader-text {
	border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden;
	padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}
.wp-site-blocks > * { margin-block: 0; }
.wp-block-post-content > .alignfull { margin-block: 0; }
html { scroll-behavior: smooth; }
[id] { scroll-margin-top: calc(var(--wp--custom--header--height) + 16px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
:where(a, button, .wp-element-button):focus-visible {
	outline: 3px solid var(--wp--preset--color--ink); outline-offset: 2px;
}
/* Focus ring: ink on light sections (honey on white was 2.1:1, under the 3:1 AA minimum), accent on dark bands. */
:is(.has-band-background-color, .has-band-alt-background-color, .has-primary-background-color) :is(a, button, .wp-element-button):is(:focus, :focus-visible) {
	outline-color: var(--wp--preset--color--accent);
}

/* Accent word: <em> inside a heading. */
:is(h1, h2) em {
	font-style: italic;
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--accent);
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.14em;
	text-decoration-skip-ink: none;
}

/* Dark bands: headings and eyebrows follow the band. */
:is(.has-band-background-color, .has-band-alt-background-color, .has-primary-background-color) :is(h1, h2, h3, h4) { color: inherit; }
:is(.has-band-background-color, .has-band-alt-background-color) :is(h1, h2) em { color: var(--wp--preset--color--accent); }
:is(.has-band-background-color, .has-band-alt-background-color) a:where(:not(.wp-element-button)) { color: inherit; }

/* ---------- Sticky header + announcement ---------- */
header.wp-block-template-part {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
}
.mri-header { box-shadow: 0 1px 0 var(--wp--preset--color--line); transition: box-shadow .2s ease; }
.mri-header.is-scrolled { box-shadow: 0 1px 0 var(--wp--preset--color--line), var(--wp--custom--shadow--sm); }
.mri-header .wp-block-site-title { white-space: nowrap; }
@media (max-width: 781px) {
	.mri-header__utility { display: none !important; }
}
/* The header degrades in a fixed order as space runs out, and never wraps:
   >=1440 title + nav + open pill + phone + Book | 1280-1439 drop the pill |
   1024-1279 drop the phone | <1024 menu button + Book | <782 menu button only. */
.mri-header .wp-block-group.alignwide { flex-wrap: nowrap !important; }
.mri-header .wp-block-group.alignwide > * { min-width: 0; }
.mri-header .mri-header__utility { flex-wrap: nowrap !important; }
.mri-header .wp-block-navigation__container { flex-wrap: nowrap !important; }
.mri-header .wp-block-site-title { flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; }
/* Large screens: let the header row use more of the viewport so nothing has to truncate. */
@media (min-width: 1500px) {
	.mri-header .wp-block-group.alignwide { max-width: min(1600px, 100% - 4rem) !important; }
}
@media (max-width: 1439px) {
	.mri-header .mri-open-status { display: none !important; }
}
@media (max-width: 1279px) {
	.mri-header .mri-header__phone { display: none !important; }
}
@media (max-width: 1339px) {
	.mri-header .wp-block-navigation__container { gap: 1.25rem !important; }
}
/* Tablet: the full nav does not fit next to the utilities, so use the menu button up to 1023px. */
@media (min-width: 600px) and (max-width: 1023px) {
	.mri-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.mri-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
.mri-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
}
.mri-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--lg);
}

.mri-announcement { position: relative; }
.mri-announcement p { margin: 0; }
.mri-announcement a { color: var(--wp--preset--color--accent) !important; font-weight: 600; }
.mri-announcement__close {
	position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
	width: 32px; height: 32px; border: 0; border-radius: var(--wp--custom--radius--pill);
	background: transparent; color: inherit; cursor: pointer; opacity: .8;
}
.mri-announcement__close::before {
	content: ""; display: block; width: 16px; height: 16px; margin: auto; background: currentColor;
	-webkit-mask: url(../icons/close.svg) center / contain no-repeat; mask: url(../icons/close.svg) center / contain no-repeat;
}
.mri-announcement__close:hover { opacity: 1; background: var(--wp--custom--on-dark--surface); }
.mri-announcement.is-dismissed { display: none; }
@media (max-width: 599px) { .mri-announcement { padding-right: 44px !important; text-align: left !important; } }

/* ---------- Buttons ---------- */
.wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	min-height: var(--wp--custom--button--height);
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.mri-hero .wp-block-button__link { min-height: var(--wp--custom--button--height-lg); }
.wp-block-button.is-size-sm .wp-block-button__link {
	min-height: var(--wp--custom--button--height-sm); padding-inline: 1.25rem; font-size: var(--wp--preset--font-size--sm);
}
/* Arrow that nudges on hover: every filled button unless it has .no-arrow. */
.wp-block-button:not(.is-style-outline):not(.is-style-ghost-light):not(.no-arrow) .wp-block-button__link:not([href^="tel:"])::after,
.is-style-arrow-link a::after {
	content: ""; flex: none; width: 1.1em; height: 1.1em; background-color: currentColor;
	-webkit-mask: url(../icons/arrow.svg) center / contain no-repeat; mask: url(../icons/arrow.svg) center / contain no-repeat;
	transition: transform .2s ease;
}
.wp-block-button__link:hover::after, .is-style-arrow-link a:hover::after { transform: translateX(3px); }
.wp-block-button__link[href^="tel:"]::before {
	content: ""; flex: none; width: 1.1em; height: 1.1em; background-color: currentColor;
	-webkit-mask: url(../icons/phone.svg) center / contain no-repeat; mask: url(../icons/phone.svg) center / contain no-repeat;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--surface-alt); color: var(--wp--preset--color--primary-deep);
}
.wp-block-button.is-style-on-dark .wp-block-button__link {
	background-color: var(--wp--preset--color--accent); border-color: var(--wp--preset--color--accent);
	color: var(--wp--custom--on-accent);
}
.wp-block-button.is-style-on-dark .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--on-band); border-color: var(--wp--preset--color--on-band); color: var(--wp--custom--on-accent);
}
.wp-block-button.is-style-ghost-light .wp-block-button__link {
	background-color: transparent; border-color: var(--wp--custom--on-dark--line); color: var(--wp--preset--color--on-band);
}
.wp-block-button.is-style-ghost-light .wp-block-button__link:hover {
	background-color: var(--wp--custom--on-dark--surface); border-color: var(--wp--preset--color--on-band);
}

/* ---------- Text styles ---------- */
:is(.has-band-background-color, .has-band-alt-background-color) .is-style-eyebrow { color: var(--wp--preset--color--accent); }
.is-style-eyebrow + :is(h1, h2, h3) { margin-block-start: .75rem !important; }
.is-style-chip {
	display: inline-flex; align-items: center; gap: .5rem; width: fit-content;
	padding: .4rem .9rem; border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--button); background: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--xs); font-weight: 600; line-height: 1.3; color: var(--wp--preset--color--ink);
}
.is-style-chip::before {
	content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%;
	background: var(--wp--preset--color--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--accent) 25%, transparent);
}
.is-style-chip.is-closed::before { background: var(--wp--preset--color--muted); box-shadow: none; }
.is-style-arrow-link a {
	display: inline-flex; align-items: center; gap: .4rem;
	font-weight: 600; text-decoration: none;
}
.is-style-arrow-link a:hover { text-decoration: underline; text-underline-offset: .2em; }
.mri-stars { color: var(--wp--preset--color--accent); letter-spacing: .12em; line-height: 1; }

/* ---------- Lists and tables ---------- */
.is-style-checks { list-style: none; padding-left: 0 !important; }
.is-style-checks li { position: relative; padding-left: 2rem; }
.is-style-checks li + li { margin-top: .6rem; }
.is-style-checks li::before {
	content: ""; position: absolute; left: 0; top: .2em; width: 1.25rem; height: 1.25rem;
	background-color: var(--wp--preset--color--primary);
	-webkit-mask: url(../icons/check.svg) center / contain no-repeat; mask: url(../icons/check.svg) center / contain no-repeat;
}
.is-style-hours table { border-collapse: collapse; width: 100%; }
.is-style-hours td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: .7rem 0; }
.is-style-hours td:last-child { text-align: right; font-weight: 600; }
.is-style-hours tr.is-today td { color: var(--wp--preset--color--primary); }
.is-style-hours tr.is-today td:first-child::after {
	content: "Today"; margin-left: .5rem; padding: .1rem .5rem; border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--surface-alt); font-size: var(--wp--preset--font-size--xs); font-weight: 600;
}

/* ---------- Cards ---------- */
.wp-block-group.is-style-card { transition: box-shadow .25s ease, transform .25s ease; }
.wp-block-group.is-style-card:has(a):hover { box-shadow: var(--wp--custom--shadow--md); transform: translateY(-2px); }
.mri-radius-lg img, .mri-radius-lg { border-radius: var(--wp--custom--radius--lg); }
.wp-block-image.mri-radius-lg img { border-radius: var(--wp--custom--radius--lg); }
.mri-doctor .wp-block-image img { object-position: 50% 20%; }

/* ---------- Icons: .mri-ico + .mri-ico--<name> on a heading or paragraph ---------- */
.mri-ico { position: relative; padding-top: calc(var(--wp--custom--icon--tile) + 1.25rem); }
.mri-ico::before, .mri-ico::after { content: ""; position: absolute; left: 0; top: 0; }
.mri-ico::before {
	width: var(--wp--custom--icon--tile); height: var(--wp--custom--icon--tile);
	border-radius: var(--wp--custom--radius--sm); background: var(--wp--preset--color--surface-alt);
}
.mri-ico::after {
	width: var(--wp--custom--icon--glyph); height: var(--wp--custom--icon--glyph);
	translate: calc((var(--wp--custom--icon--tile) - var(--wp--custom--icon--glyph)) / 2) calc((var(--wp--custom--icon--tile) - var(--wp--custom--icon--glyph)) / 2);
	background-color: var(--wp--preset--color--primary);
	-webkit-mask: var(--mri-icon) center / contain no-repeat; mask: var(--mri-icon) center / contain no-repeat;
}
.mri-ico.is-inline { padding-top: 0; padding-left: calc(var(--wp--custom--icon--tile) + 1rem); min-height: var(--wp--custom--icon--tile); }
.mri-ico.is-inline::before, .mri-ico.is-inline::after { top: 50%; margin-top: calc(var(--wp--custom--icon--tile) / -2); }
.mri-ico.is-small { --wp--custom--icon--tile: 36px; --wp--custom--icon--glyph: 20px; }
.has-surface-alt-background-color .mri-ico::before { background: var(--wp--preset--color--base); }
.mri-ico--tooth { --mri-icon: url(../icons/tooth.svg); }
.mri-ico--sparkle { --mri-icon: url(../icons/sparkle.svg); }
.mri-ico--crown { --mri-icon: url(../icons/crown.svg); }
.mri-ico--implant { --mri-icon: url(../icons/implant.svg); }
.mri-ico--aligner { --mri-icon: url(../icons/aligner.svg); }
.mri-ico--emergency { --mri-icon: url(../icons/emergency.svg); }
.mri-ico--heart { --mri-icon: url(../icons/heart.svg); }
.mri-ico--scan { --mri-icon: url(../icons/scan.svg); }
.mri-ico--family { --mri-icon: url(../icons/family.svg); }
.mri-ico--calendar { --mri-icon: url(../icons/calendar.svg); }
.mri-ico--star { --mri-icon: url(../icons/star.svg); }
.mri-ico--shield { --mri-icon: url(../icons/shield.svg); }
.mri-ico--award { --mri-icon: url(../icons/award.svg); }
.mri-ico--pin { --mri-icon: url(../icons/pin.svg); }
.mri-ico--clock { --mri-icon: url(../icons/clock.svg); }
.mri-ico--phone { --mri-icon: url(../icons/phone.svg); }

/* ---------- Hero ---------- */
.mri-hero-media { position: relative; }
.mri-hero-media .wp-block-image { margin: 0; }
.mri-float-card {
	box-shadow: var(--wp--custom--shadow--lg) !important;
	max-width: 320px;
}
@media (min-width: 1024px) {
	.mri-float-card { position: absolute; left: -2.5rem; bottom: 2.5rem; margin: 0 !important; }
}
@media (max-width: 1023px) {
	.mri-float-card { position: relative; margin: -3.5rem var(--wp--preset--spacing--20) 0 auto !important; max-width: 300px; }
}

/* ---------- Gallery mosaic ---------- */
.wp-block-group.mri-mosaic {
	display: grid; gap: var(--wp--preset--spacing--20);
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: clamp(150px, 17vw, 250px);
}
.mri-mosaic > .wp-block-image { margin: 0 !important; height: 100%; }
.mri-mosaic > .wp-block-image:first-child { grid-column: span 2; grid-row: span 2; }
.mri-mosaic > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 781px) {
	.wp-block-group.mri-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 150px; }
	.mri-mosaic > .wp-block-image:first-child { grid-row: span 2; }
}

/* ---------- Map ---------- */
.mri-map { overflow: hidden; border-radius: var(--wp--custom--radius--lg); min-height: 380px; background: var(--wp--preset--color--surface-alt); }
.mri-map iframe { display: block; width: 100%; height: 100%; min-height: 380px; border: 0; }

/* ---------- Footer ---------- */
.mri-footer a { text-decoration: none; }
.mri-footer a:hover { text-decoration: underline; text-underline-offset: .2em; }
.mri-footer .is-style-eyebrow { color: var(--wp--preset--color--accent); }
.mri-footer ul { list-style: none; padding-left: 0; }
.mri-footer li + li { margin-top: .4rem; }
.mri-muted-on-dark { color: var(--wp--custom--on-dark--muted); }

/* ---------- Mobile sticky Call / Book bar ---------- */
.mri-sticky-cta { display: none; }
@media (max-width: 781px) {
	.mri-sticky-cta {
		display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
		margin: 0 !important;
		padding: .625rem var(--wp--preset--spacing--20) calc(.625rem + env(safe-area-inset-bottom));
		background: var(--wp--preset--color--base);
		border-top: 1px solid var(--wp--preset--color--line);
		box-shadow: var(--wp--custom--shadow--md);
	}
	.mri-sticky-cta .wp-block-buttons { width: 100%; flex-wrap: nowrap; gap: .625rem; }
	.mri-sticky-cta .wp-block-button { flex: 1 1 0; }
	.mri-sticky-cta .wp-block-button__link { width: 100%; min-height: 48px; padding-inline: .75rem; }
	body:has(.mri-sticky-cta) { padding-bottom: 76px; }
}

/* ---------- Small section details ---------- */
.mri-trust strong {
	display: block; color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--lg);
	font-weight: 500; line-height: 1.2;
}
.mri-header__phone a { color: var(--wp--preset--color--ink); text-decoration: none; }
.mri-header__phone a:hover { color: var(--wp--preset--color--primary); }
.mri-footer .wp-block-site-title a { color: var(--wp--preset--color--on-band); }
.wp-block-column > .mri-map { height: 100%; }
.mri-trust strong + br { display: none; }
.mri-trust strong { margin-bottom: .15rem; }
.mri-announcement .mri-announcement__close { margin: 0 !important; max-width: none; }
@media (max-width: 599px) {
	.mri-hero .wp-block-buttons > .wp-block-button { flex: 1 1 100%; }
	.mri-hero .wp-block-buttons .wp-block-button__link { width: 100%; }
}
/* Mobile menu overlay: left-aligned list with hairlines, not a right-aligned stack. */
.mri-header .is-menu-open .wp-block-navigation__responsive-container-content,
.mri-header .is-menu-open .wp-block-navigation__container { align-items: stretch !important; width: 100%; }
.mri-header .is-menu-open .wp-block-navigation__container { gap: 0 !important; padding-top: var(--wp--preset--spacing--30); }
.mri-header .is-menu-open .wp-block-navigation-item { border-bottom: 1px solid var(--wp--preset--color--line); padding-block: .9rem; }
.mri-header .is-menu-open .wp-block-navigation-item__content { width: 100%; }
@media (min-width: 600px) and (max-width: 1023px) {
	.mri-trust > .wp-block-group.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Short pages (404): footer sits at the bottom of the screen, no white band below it. */
.wp-site-blocks { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.wp-site-blocks > main { flex: 1 0 auto; }

/* ---------- Hero variants ---------- */
/* hero-centered-band (direction B): centered copy, then an edge-to-edge image band. */
.mri-hero-band .mri-band-image { margin-block: 0 !important; }
.mri-hero-band .mri-band-image img { width: 100%; aspect-ratio: 20 / 7; object-fit: cover; border-radius: 0; }
@media (max-width: 781px) { .mri-hero-band .mri-band-image img { aspect-ratio: 4 / 3; } }
.mri-hero-band .wp-block-buttons { justify-content: center; }
/* hero-fullbleed-overlay (direction C): cover block; the overlay is a gradient so the photo stays visible on the right. */
.mri-hero-overlay > .wp-block-cover__background {
	opacity: 1 !important;
	background: linear-gradient(90deg,
		color-mix(in srgb, var(--wp--preset--color--base) 92%, transparent) 0%,
		color-mix(in srgb, var(--wp--preset--color--base) 70%, transparent) 45%,
		color-mix(in srgb, var(--wp--preset--color--base) 15%, transparent) 100%) !important;
}
@media (max-width: 781px) {
	.mri-hero-overlay > .wp-block-cover__background {
		background: linear-gradient(0deg,
			var(--wp--preset--color--base) 0%,
			color-mix(in srgb, var(--wp--preset--color--base) 96%, transparent) calc(100% - 72vw - 8px),
			color-mix(in srgb, var(--wp--preset--color--base) 15%, transparent) calc(100% - 72vw + 60px)) !important;
	}
}
.mri-hero-overlay .wp-block-cover__inner-container { color: var(--wp--preset--color--ink); }
/* Line the overlay copy up with the wide container edge used by every other section. */
.wp-block-cover.mri-hero-overlay,
.wp-block-cover.mri-hero-light {
	/* % here is the post-content width; the cover itself is that plus both root paddings. */
	--mri-edge: max(var(--wp--style--root--padding-left), calc((100% + var(--wp--style--root--padding-left) + var(--wp--style--root--padding-right) - var(--wp--style--global--wide-size)) / 2));
	padding-left: var(--mri-edge) !important;
	padding-right: var(--mri-edge) !important;
}

/* hero-cover-light (direction B): bright photo, white-to-transparent gradient so navy copy stays crisp.
   The copy column is ~600px from the wide edge; the photo is fully visible from ~70% across. */
.mri-hero-light > .wp-block-cover__background {
	opacity: 1 !important;
	background: linear-gradient(90deg,
		color-mix(in srgb, var(--wp--preset--color--base) 90%, transparent) 0%,
		color-mix(in srgb, var(--wp--preset--color--base) 84%, transparent) 38%,
		color-mix(in srgb, var(--wp--preset--color--base) 40%, transparent) 58%,
		color-mix(in srgb, var(--wp--preset--color--base) 0%, transparent) 72%) !important;
}
.mri-hero-light .wp-block-cover__inner-container { color: var(--wp--preset--color--ink); }
@media (max-width: 781px) {
	/* Phones: the photo is a band across the top; the copy sits on near-solid white below it. */
	.wp-block-cover.mri-hero-light { min-height: 0 !important; padding-top: calc(62vw + 24px) !important; }
	.mri-hero-light > .wp-block-cover__background {
		background: linear-gradient(0deg,
			var(--wp--preset--color--base) 0%,
			color-mix(in srgb, var(--wp--preset--color--base) 97%, transparent) calc(100% - 62vw - 8px),
			color-mix(in srgb, var(--wp--preset--color--base) 0%, transparent) calc(100% - 62vw + 56px)) !important;
	}
	.mri-hero-light .wp-block-cover__image-background { object-position: 72% 0% !important; height: calc(62vw + 80px) !important; }
}

/* ---------- DEMO ONLY: direction switcher (printed only when the mri_dental_demo option is on) ---------- */
.mri-demo-switcher {
	/* A 28px tab on the left edge, vertically centered: it lives inside the 32px page gutter
	   (from 1024px up), so it never covers content. Below that it drops into the page flow. */
	position: fixed; left: 0; top: 50%; transform: translateY(-50%); z-index: 95;
	display: flex; flex-direction: column; align-items: center; gap: 2px; box-sizing: border-box; width: 28px; padding: 6px 2px;
	border-radius: 0 10px 10px 0; background: rgb(17 17 17 / .84); color: #fff;
	font: 600 11px/1 system-ui, sans-serif; box-shadow: 0 4px 16px rgb(0 0 0 / .2);
}
.mri-demo-switcher span { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; opacity: .7; margin-bottom: 4px; }
.mri-demo-switcher a { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: #fff; text-decoration: none; font-size: 12px; }
.mri-demo-switcher a:hover { background: rgb(255 255 255 / .15); }
.mri-demo-switcher a[aria-current] { background: #fff; color: #111; }
/* Phones: no floating layer over the page; the switcher sits after the footer instead. */
@media (max-width: 1023px) {
	.mri-demo-switcher { position: static; transform: none; flex-direction: row; width: fit-content; margin: 16px auto; padding: 4px 4px 4px 12px; border-radius: 999px; }
	.mri-demo-switcher span { writing-mode: horizontal-tb; transform: none; margin: 0 6px 0 0; }
}
.mri-header .wp-block-button__link, .mri-header__phone, .mri-header .wp-block-navigation-item__content, .mri-open-status { white-space: nowrap; }
@media (max-width: 781px) {
	/* Overlay hero on phones: the photo is a band across the top, at a sane zoom, with the copy below it.
	   Filling the whole cover height would blow the portrait up about 3.5x and crop into her head. */
	.wp-block-cover.mri-hero-overlay { min-height: 0 !important; padding-top: calc(72vw + 16px) !important; }
	.mri-hero-overlay .wp-block-cover__image-background { height: calc(72vw + 90px) !important; object-position: 62% 28% !important; }
}

/* Header logo, set in Appearance > Practice details. With a logo the site title stays for screen readers only. */
.mri-header .wp-block-site-logo { flex: 0 0 auto; line-height: 0; }
.mri-header .wp-block-site-logo img { width: auto; max-width: min(220px, 40vw); max-height: 52px; height: auto; }
.mri-header .wp-block-site-logo + .wp-block-site-title { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
/* Footer social icons (mri-dental/social, empty until a profile URL is set) */
.mri-footer .wp-block-social-links.mri-social { margin-top: var(--wp--preset--spacing--20); gap: .875rem; }
.mri-footer .wp-block-social-links.is-style-logos-only .wp-social-link { color: var(--wp--preset--color--on-band); }

/* ---------- Motion (1.2.0): transform/opacity only; hidden state needs html.mri-js + .mri-reveal (set by motion.js); hero image never animated ---------- */
@media (prefers-reduced-motion: no-preference) {
	html.mri-js .mri-reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); transition-delay: var(--mri-d, 0ms); }
	html.mri-js .mri-reveal.is-in { opacity: 1; transform: none; }
	html.mri-js .mri-hero .wp-block-column:first-child > * { animation: mri-in .5s cubic-bezier(.2,.7,.2,1) both; }
	html.mri-js .mri-hero .wp-block-column:first-child > :nth-child(2) { animation-delay: .06s; }
	html.mri-js .mri-hero .wp-block-column:first-child > :nth-child(3) { animation-delay: .12s; }
	html.mri-js .mri-hero .wp-block-column:first-child > :nth-child(n+4) { animation-delay: .18s; }
	@keyframes mri-in { from { opacity: 0; transform: translateY(12px); } }
	.wp-block-group:is(.is-style-card, .is-style-card-dark) { transition: box-shadow .3s ease, transform .3s ease; }
	.wp-block-group:is(.is-style-card, .is-style-card-dark):hover { transform: translateY(-3px); box-shadow: var(--wp--custom--shadow--md); }
	.wp-block-image:is(.mri-radius-lg, .mri-mosaic > *) { overflow: hidden; border-radius: var(--wp--custom--radius--lg); }
	.wp-block-image:is(.mri-radius-lg, .mri-mosaic > *) img { transition: transform .7s cubic-bezier(.2,.7,.2,1); }
	.wp-block-image:is(.mri-radius-lg, .mri-mosaic > *):hover img { transform: scale(1.04); }
}
.mri-header.is-scrolled { background-color: rgb(255 255 255 / .92) !important; -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px); }
/* A big number beside a caption ("$69", "Free") never breaks across lines. */
.wp-block-group > .has-stat-font-size { white-space: nowrap; flex-shrink: 0; }
/* Photo still to come: the caption sits on the image as a small tag, so a real photo drops in without any layout change. */
.wp-block-image.mri-photo-pending { position: relative; }
.wp-block-image.mri-photo-pending figcaption { position: absolute; left: 1rem; bottom: 1rem; margin: 0; font-size: var(--wp--preset--font-size--xs); }
