/*
 * MedPOC base layer.
 * Every value references a theme.json preset (--wp--preset--*) or a
 * --wp--custom--* token. Swap theme.json to rebrand; this file stays.
 * Breakpoints mirror GenerateBlocks' device presets: 1024px / 767px.
 */

/* Metric-matched fallback (measured against Geom: width x1.016, ascent 1.01em,
   descent 0.24em) so the swap to the web font barely reflows text → near-zero CLS. */
@font-face {
	font-family: "Geom Fallback";
	src: local("Arial"), local("Arimo"), local("Liberation Sans"), local("Helvetica");
	size-adjust: 101.6%;
	ascent-override: 99.4%;
	descent-override: 23.6%;
	line-gap-override: 0%;
}

:root {
	--mp-ease: var(--wp--custom--motion--easing);
	--mp-duration: var(--wp--custom--motion--duration);
	--mp-header-offset: calc(var(--wp--custom--header--height) + 1.5rem);
	--mp-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 17 17 7M9 7h8v8' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E");
}

html { scroll-padding-top: var(--mp-header-offset); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--wp--preset--color--brand-900); color: var(--wp--preset--color--surface); }
:where(a, button, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
	border-radius: var(--wp--preset--border-radius--sm);
}
img { height: auto; }

/* Any top-level container an editor adds defaults to the wide content width.
   Zero specificity, so GenerateBlocks' own width controls still win. */
:where(.wp-block-post-content > [class*="gb-element-"]:not(.alignfull)) { max-width: var(--wp--style--global--wide-size); margin-inline: auto; }

/* Editor canvas only: keep the header in flow and let covered images fill
   their column through the editor's extra wrapper elements. */
.editor-styles-wrapper .wp-site-blocks > header.wp-block-template-part { position: relative; top: auto; }
.editor-styles-wrapper .media-cover > :is(.block-editor-inner-blocks, .block-editor-block-list__layout),
.editor-styles-wrapper .media-cover figure { height: 100%; }
.editor-styles-wrapper .action-rail { position: static; translate: none; flex-direction: row; justify-content: center; padding-block: var(--wp--preset--spacing--30); }
.editor-styles-wrapper .action-rail :is(a, .block-editor-block-list__layout) { display: flex; gap: 0.5rem; }

/* Inside GenerateBlocks layout containers spacing comes from flex/grid gap
   tokens only, so text blocks drop their default block margins. */
[class*="gb-element-"] > :where(h1, h2, h3, h4, h5, h6, p, ul, ol, figure, blockquote, hr, .wp-block-buttons, .wp-block-query, .wp-block-social-links, .wp-block-image) { margin-block: 0; }
.wp-block-quote { margin: 0; padding: 0; border: 0; }
.wp-block-quote cite { display: block; margin-top: var(--wp--preset--spacing--20); font-size: var(--wp--preset--font-size--small); font-style: normal; color: var(--wp--preset--color--muted); }
strong, b { font-weight: 600; }

/* ---------- Header: floating glass bar ---------- */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + 0.75rem);
	z-index: 50;
	margin-block-start: 0.75rem;
	padding-inline: var(--wp--style--root--padding-left);
}
/* The glass lives on a pseudo-element: backdrop-filter on .site-header itself
   would become the containing block of the fixed mobile-menu overlay. */
.site-header { position: relative; isolation: isolate; min-height: var(--wp--custom--header--height); }
.site-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: color-mix(in srgb, var(--wp--preset--color--canvas) 78%, transparent);
	-webkit-backdrop-filter: blur(14px) saturate(1.4);
	backdrop-filter: blur(14px) saturate(1.4);
	box-shadow: var(--wp--preset--shadow--card);
	border-radius: var(--wp--preset--border-radius--sm);
	transition: opacity 0.35s var(--mp-ease);
}
/* Brand mark: tall, narrow (323×1024) emblem drawn in currentColor. */
.site-mark { display: inline-flex; flex: none; color: var(--wp--preset--color--brand-900); }
.site-mark .gb-shape { display: inline-flex; }
.site-mark svg { width: auto; height: 3.75rem; }
.site-mark--large svg { height: 7rem; }
@media (max-width: 767px) { .site-header .site-mark svg { height: 2.75rem; } }
@media (max-width: 767px) {
	.site-header { min-height: 3.75rem; padding-inline: var(--wp--preset--spacing--30) !important; }
	.site-header .wp-block-site-title { font-size: 1.0625rem; }
}
.site-brand .wp-block-site-tagline { max-width: 22rem; margin: 0; }

/* Navigation: submenu card + collapse to overlay up to tablet width
   (core switches at 600px, too narrow for a 6-item medical menu). */
.site-header .wp-block-navigation .wp-block-navigation__submenu-container {
	min-width: 16rem;
	padding: var(--wp--preset--spacing--20) 0;
	border: 0;
	border-radius: var(--wp--preset--border-radius--sm);
	box-shadow: var(--wp--preset--shadow--lift);
	background: var(--wp--preset--color--surface);
}
.site-header .wp-block-navigation-item__content { text-decoration: none; }
.site-header .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--brand-700); }
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.5rem 1.25rem; }

@media (max-width: 1024px) {
	.site-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.site-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
.site-header .wp-block-navigation__responsive-container.is-menu-open { padding: var(--wp--preset--spacing--50); }
.site-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open :is(.wp-block-navigation__responsive-container-content, .wp-block-navigation__container, .wp-block-navigation-item, .wp-block-navigation__submenu-container) {
	align-items: flex-start;
	text-align: start;
}
.site-header .is-menu-open .wp-block-navigation__container { gap: var(--wp--preset--spacing--30); }
.site-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-size: var(--wp--preset--font-size--large); font-weight: 500; }
.site-header .is-menu-open .wp-block-navigation__submenu-container {
	box-shadow: none;
	background: transparent;
	gap: var(--wp--preset--spacing--10);
	padding: var(--wp--preset--spacing--10) 0 0 var(--wp--preset--spacing--30) !important;
	border-left: 1px solid var(--wp--preset--color--line);
}
.site-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: var(--wp--preset--font-size--base); color: var(--wp--preset--color--muted); padding: 0.25rem 0; }

/* Header over a page-opening hero (.has-hero-header is added in functions.php):
   it overlaps the hero with a negative margin, stays sticky, and is transparent
   with white type until hero-header.js adds .is-solid on the first scroll. */
/* Outer header height = .site-header min-height + its block padding (GB, spacing-20). */
:root { --mp-header-h: calc(var(--wp--custom--header--height) + 2 * var(--wp--preset--spacing--20)); }
@media (max-width: 767px) { :root { --mp-header-h: calc(3.75rem + 2 * var(--wp--preset--spacing--20)); } }
/* Pull the edge-to-edge hero up under the header, including its 0.75rem top offset. */
.has-hero-header .wp-site-blocks > header.wp-block-template-part { margin-block-end: calc(-1 * (var(--mp-header-h) + 0.75rem)); }
.has-hero-header .site-header { padding-inline: var(--wp--preset--spacing--60); }
.has-hero-header .site-header,
.has-hero-header .site-header :is(.site-mark, .wp-block-site-title a, .wp-block-site-tagline, .wp-block-navigation-item, .wp-block-navigation-item__content, .wp-block-navigation__responsive-container-open) { transition: color 0.35s var(--mp-ease); }
.has-hero-header header:not(.is-solid) .site-header { color: var(--wp--preset--color--surface); }
.has-hero-header header:not(.is-solid) .site-header::before { opacity: 0; }
.has-hero-header header:not(.is-solid) :is(.site-mark, .wp-block-site-title a, .wp-block-site-tagline, .wp-block-navigation__responsive-container-open) { color: inherit; }
.has-hero-header header:not(.is-solid) .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .wp-block-navigation-item { color: var(--wp--preset--color--surface); }
.has-hero-header header:not(.is-solid) .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--accent); }
.has-hero-header header:not(.is-solid) .wp-block-navigation__submenu-container { color: var(--wp--preset--color--brand-900); }
/* The nav's own text-colour class (brand-900) would keep the menu toggle dark over the hero. */
.has-hero-header header:not(.is-solid) .site-header .wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--surface); }
/* Drop the root block gap above <main> and the hero's own top margin. */
.has-hero-header .wp-site-blocks > header + *,
.has-hero-header .wp-block-post-content > .hero-stage:first-child { margin-block-start: 0; }
.has-hero-header .wp-block-post-content > .hero-stage:first-child > .hero-stage__body { padding-top: calc(var(--mp-header-h) + 0.75rem + var(--wp--preset--spacing--60)); }
@media (max-width: 767px) { .has-hero-header .site-header { padding-inline: var(--wp--preset--spacing--40) !important; } }

/* ---------- Typographic helpers (registered as block styles) ---------- */
.is-style-subtitle { font-size: var(--wp--preset--font-size--xx-large); font-weight: 400; line-height: 1.15; letter-spacing: -0.01em; color: var(--wp--preset--color--brand-900); }
.is-style-lead { font-size: var(--wp--preset--font-size--medium); line-height: 1.6; }
.is-style-eyebrow { font-size: var(--wp--preset--font-size--small); letter-spacing: 0.08em; text-transform: uppercase; color: var(--wp--preset--color--brand-700); }
.wp-block-separator.is-style-accent {
	width: var(--wp--custom--line--accent);
	margin-inline: 0;
	border: 0;
	border-top: 1px solid currentColor;
	opacity: 1;
}

/* ---------- Surfaces ---------- */
.is-style-card {
	background: var(--wp--preset--color--surface);
	box-shadow: var(--wp--preset--shadow--card);
	border-radius: var(--wp--preset--border-radius--sm);
	padding: var(--wp--preset--spacing--40);
}
.is-style-card-blue {
	background: var(--wp--preset--color--brand-700);
	color: var(--wp--preset--color--surface);
	border-radius: var(--wp--preset--border-radius--sm);
	padding: var(--wp--preset--spacing--50);
}
.is-style-card-blue :where(h1, h2, h3, h4, a) { color: inherit; }

/* Card that links somewhere: lift on hover (transform only → no layout shift). */
.card-link { text-decoration: none; color: inherit; transition: transform var(--mp-duration) var(--mp-ease), box-shadow var(--mp-duration) var(--mp-ease); }
.card-link:hover { transform: translateY(-4px); box-shadow: var(--wp--preset--shadow--lift); }
.card-link img { transition: transform 1.2s var(--mp-ease); }
.card-link:hover img { transform: scale(1.03); }
.card-link :where(figure) { overflow: hidden; }

/* ---------- Links & buttons ---------- */
.link-arrow,
.wp-block-button.is-style-arrow .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.75em;
	padding: 0.45em 0.7em;
	border: 0;
	border-bottom: 1px solid currentColor;
	border-radius: 0;
	background: transparent;
	color: var(--wp--preset--color--brand-900);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 400;
	text-decoration: none;
	transition: gap 0.3s var(--mp-ease), color 0.3s;
}
.link-arrow:hover,
.wp-block-button.is-style-arrow .wp-block-button__link:hover { gap: 1.1em; color: var(--wp--preset--color--brand-700); background: transparent; }
.link-arrow .gb-shape { display: inline-flex; }
.link-arrow svg { width: 1em; height: 1em; }
.wp-block-button.is-style-arrow .wp-block-button__link::after {
	content: "";
	width: 1em;
	height: 1em;
	background: currentColor;
	-webkit-mask: var(--mp-arrow) center / contain no-repeat;
	mask: var(--mp-arrow) center / contain no-repeat;
}
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--wp--preset--color--brand-900); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--brand-900); color: var(--wp--preset--color--surface); }
.wp-block-button.is-style-pill .wp-block-button__link {
	padding: 0.4em 1em;
	border-radius: var(--wp--preset--border-radius--pill);
	background: var(--wp--preset--color--surface);
	border-color: var(--wp--preset--color--line);
	color: var(--wp--preset--color--brand-900);
	font-size: var(--wp--preset--font-size--small);
}
.wp-block-button.is-style-pill .wp-block-button__link:hover { border-color: var(--wp--preset--color--brand-700); }

/* Icon-in-a-box (arrow buttons on feature cards, rail icons) */
.icon-box {
	display: inline-grid;
	place-items: center;
	width: 2.75rem;
	aspect-ratio: 1;
	border: 1px solid currentColor;
	border-radius: var(--wp--preset--border-radius--sm);
	color: var(--wp--preset--color--brand-900);
}
.icon-box svg { width: 1.1rem; height: 1.1rem; }

/* ---------- Horizontal expanding panels (core/details, CSS only) ---------- */
.is-style-panels { display: grid; gap: var(--wp--preset--spacing--10); }
.is-style-panels > details {
	--panel-bg: var(--wp--preset--color--brand-700);
	background: var(--panel-bg);
	color: var(--wp--preset--color--surface);
	border-radius: var(--wp--preset--border-radius--sm);
	margin: 0;
}
/* Shades stay >= 4.5:1 against white (labels are 16px bold on mobile);
   the open panel always uses the darkest shade. */
.is-style-panels > details:nth-child(2) { --panel-bg: var(--wp--preset--color--brand-500); }
.is-style-panels > details:nth-child(3) { --panel-bg: color-mix(in srgb, var(--wp--preset--color--brand-500) 88%, var(--wp--preset--color--brand-300)); }
.is-style-panels > details:nth-child(n+4) { --panel-bg: color-mix(in srgb, var(--wp--preset--color--brand-500) 76%, var(--wp--preset--color--brand-300)); }
.is-style-panels > details[open] { --panel-bg: var(--wp--preset--color--brand-700); }
.is-style-panels summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.25rem;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}
.is-style-panels summary::-webkit-details-marker { display: none; }
.is-style-panels summary::after {
	content: "";
	width: 0.6rem;
	height: 0.6rem;
	border: solid currentColor;
	border-width: 0 1.5px 1.5px 0;
	transform: rotate(45deg);
	transition: transform 0.3s var(--mp-ease);
}
.is-style-panels details[open] > summary::after { transform: rotate(-135deg); }
.is-style-panels details > :not(summary) { margin: 0; padding: 0 1.25rem 1.25rem; }

@supports selector(::details-content) {
	@media (min-width: 1025px) {
		.is-style-panels { display: flex; min-height: 22rem; gap: 0; }
		.is-style-panels > details {
			display: flex;
			flex: 0 0 4.25rem;
			border-radius: 0;
			outline: 1px solid color-mix(in srgb, var(--wp--preset--color--surface) 70%, transparent);
			outline-offset: -1.1rem;
			transition: flex-grow var(--mp-duration) var(--mp-ease);
		}
		.is-style-panels > details:first-child { border-radius: var(--wp--preset--border-radius--sm) 0 0 var(--wp--preset--border-radius--sm); }
		.is-style-panels > details:last-child { border-radius: 0 var(--wp--preset--border-radius--sm) var(--wp--preset--border-radius--sm) 0; }
		.is-style-panels > details[open] { flex: 1 1 auto; }
		.is-style-panels summary {
			flex: 0 0 4.25rem;
			justify-content: center;
			writing-mode: vertical-rl;
			transform: rotate(180deg);
			font-size: var(--wp--preset--font-size--medium);
			padding: 1.75rem 0;
		}
		.is-style-panels summary::after { display: none; }
		.is-style-panels > details::details-content { align-self: center; min-width: 0; }
		.is-style-panels details > :not(summary) { padding: 1.75rem 2.25rem 1.75rem 0.5rem; font-size: var(--wp--preset--font-size--medium); }
	}
}

/* ---------- Horizontal scroll row (cases, testimonials) ---------- */
.is-style-scroll-row {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: min(85%, var(--scroll-col, 22rem));
	gap: var(--wp--preset--spacing--40);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: 0.5rem;
	padding: 0.75rem 0.5rem 1.25rem;
	margin-inline: -0.5rem;
	scrollbar-width: thin;
	scrollbar-color: var(--wp--preset--color--brand-300) transparent;
}
.is-style-scroll-row > * { scroll-snap-align: start; }

/* ---------- Media compositions ---------- */
/* Image fills its (stretched) grid cell: its top-left never moves when the
   neighbouring text column reflows, so font swaps cause no layout shift. */
.media-cover > figure { height: 100%; }
.media-cover img { width: 100%; height: 100%; object-fit: cover; }
.wp-block-image.is-style-frame img { border-radius: var(--wp--preset--border-radius--sm); box-shadow: var(--wp--preset--shadow--card); }


/* ---------- Hero stage: full-bleed photo, white type, glass cards ---------- */
.hero-stage {
	--mp-glass: color-mix(in srgb, var(--wp--preset--color--surface) 12%, transparent);
	--mp-glass-line: color-mix(in srgb, var(--wp--preset--color--surface) 30%, transparent);
	display: grid;
	isolation: isolate;
	overflow: hidden;
	background: var(--wp--preset--color--brand-900);
	color: var(--wp--preset--color--surface);
}
.hero-stage > * { grid-area: 1 / 1; min-width: 0; }
/* The photo never sizes the stage: content (and min-height) does. */
.hero-stage { position: relative; }
/* Absolutely positioned children opt out of the stacking grid area so they
   measure against the full (edge-to-edge) padding box. */
.hero-stage > :is(.hero-stage__bg, .hero-video-toggle) { grid-area: auto; }
.hero-stage > .hero-stage__bg { position: absolute; inset: 0; z-index: -2; margin: 0; }
.hero-stage__bg :is(img, video) { display: block; width: 100%; height: 100%; object-fit: cover; }
.hero-stage::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--wp--preset--color--brand-900) 55%, transparent) 0%, transparent 22%),
		linear-gradient(0deg, color-mix(in srgb, var(--wp--preset--color--brand-900) 92%, transparent) 0%, transparent 70%),
		linear-gradient(90deg, color-mix(in srgb, var(--wp--preset--color--brand-900) 55%, transparent) 0%, transparent 65%);
}
.hero-stage :where(h1, p, a, strong) { color: inherit; }
.hero-stage .is-style-eyebrow { color: inherit; opacity: 0.8; }
/* Spans the hero grid and sits above the glass cards it overlaps. */
.hero-title {
	grid-column: 1 / -1;
	grid-row: 2;
	position: relative;
	z-index: 1;
	font-size: clamp(2.375rem, 0.75rem + 5vw, 5.5rem);
	font-weight: 500;
	line-height: 1.02;
	letter-spacing: -0.035em;
	text-wrap: balance;
}
.hero-kicker { display: flex; align-items: center; gap: 1rem; font-size: var(--wp--preset--font-size--base); line-height: 1.35; }
.hero-kicker .gb-shape { display: inline-flex; flex: none; }
.hero-kicker svg { width: 2.5rem; height: 2.5rem; stroke-width: 1.25; }
.hero-lead { max-width: 38rem; font-size: var(--wp--preset--font-size--medium); line-height: 1.55; }
.hero-glass {
	border: 1px solid var(--mp-glass-line);
	border-radius: calc(var(--wp--preset--border-radius--lg) * 2);
	background: var(--mp-glass);
	-webkit-backdrop-filter: blur(18px) saturate(1.3);
	backdrop-filter: blur(18px) saturate(1.3);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
}
.hero-glass .wp-block-button__link {
	padding: 0.65em 1.5em;
	border-radius: var(--wp--preset--border-radius--pill);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--brand-900);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
}
.hero-glass .wp-block-button__link:hover { background: var(--wp--preset--color--accent); }
.hero-avatar { width: 5.5rem; }
.hero-avatar img { border-radius: 50%; box-shadow: 0 0 0 3px var(--mp-glass-line); }
.hero-stage .hero-stat { white-space: nowrap; font-size: var(--wp--preset--font-size--xx-large); font-weight: 500; line-height: 1; letter-spacing: -0.02em; }
.wp-block-button.is-style-chip .wp-block-button__link {
	padding: 0.5em 1.15em;
	border: 1px solid color-mix(in srgb, currentColor 55%, transparent);
	border-radius: var(--wp--preset--border-radius--pill);
	background: transparent;
	color: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
	transition: background-color 0.3s, border-color 0.3s;
}
.wp-block-button.is-style-chip .wp-block-button__link:hover { border-color: currentColor; background: color-mix(in srgb, currentColor 14%, transparent); }
.hero-stage .wp-block-buttons { gap: var(--wp--preset--spacing--10); }
.hero-video-toggle {
	position: absolute;
	inset: auto var(--wp--preset--spacing--40) var(--wp--preset--spacing--40) auto;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1px solid var(--mp-glass-line);
	border-radius: 50%;
	background: var(--mp-glass) center / 40% no-repeat;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M7 5h3v14H7zM14 5h3v14h-3z'/%3E%3C/svg%3E");
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	cursor: pointer;
}
.hero-video-toggle.is-paused { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E"); }
/* 3D background (hero-scene.js): a deep-navy backdrop that matches the scene's
   clear colour, so there is no flash when the canvas fades in. */
.hero-stage:has(> .hero-scene) { --mp-scene-bg: color-mix(in srgb, var(--wp--preset--color--brand-900) 12%, black); background: var(--mp-scene-bg); }
.hero-stage > .hero-scene { background: radial-gradient(60% 70% at 68% 45%, color-mix(in srgb, var(--wp--preset--color--brand-700) 22%, transparent), transparent 70%), var(--mp-scene-bg); }
.hero-scene canvas { display: block; width: 100%; height: 100%; opacity: 0; transition: opacity 1.2s; }
.hero-scene.is-ready canvas { opacity: 1; }
/* The form sits right of the text: darken only behind the text column and the bottom row. */
.hero-stage:has(> .hero-scene)::after {
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--mp-scene-bg) 50%, transparent) 0%, transparent 20%),
		linear-gradient(0deg, color-mix(in srgb, var(--mp-scene-bg) 80%, transparent) 0%, transparent 45%),
		linear-gradient(90deg, color-mix(in srgb, var(--mp-scene-bg) 60%, transparent) 0%, transparent 55%);
}
@media (max-width: 1024px) {
	.hero-title { grid-row: auto; }
	.hero-stage > .hero-scene { background: radial-gradient(80% 50% at 50% 30%, color-mix(in srgb, var(--wp--preset--color--brand-700) 22%, transparent), transparent 70%), var(--mp-scene-bg); }
	.hero-stage:has(> .hero-scene)::after { background: linear-gradient(0deg, color-mix(in srgb, var(--mp-scene-bg) 92%, transparent) 0%, color-mix(in srgb, var(--mp-scene-bg) 30%, transparent) 60%, transparent 100%); }
}
@media (max-width: 767px) {
	.hero-stage::after { background: linear-gradient(0deg, color-mix(in srgb, var(--wp--preset--color--brand-900) 94%, transparent) 0%, color-mix(in srgb, var(--wp--preset--color--brand-900) 35%, transparent) 100%); }
}

/* Dark-background artwork that should melt into a navy band */
.blend-screen img { mix-blend-mode: screen; }

/* Click-to-load video (link works without JS) */
.video-facade { position: relative; display: block; overflow: hidden; border-radius: var(--wp--preset--border-radius--sm); }
.video-facade img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.video-facade::after {
	content: "";
	position: absolute;
	inset: 50% auto auto 50%;
	width: 4.5rem;
	aspect-ratio: 1;
	translate: -50% -50%;
	border-radius: 50%;
	background: var(--wp--preset--color--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 7v10l8-5z' fill='%23033B6A'/%3E%3C/svg%3E") center / 45% no-repeat;
	box-shadow: var(--wp--preset--shadow--lift);
	transition: scale 0.3s var(--mp-ease);
}
.video-facade:hover::after { scale: 1.08; }
.video-facade iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }

/* ---------- Floating action rail (desktop) / bottom bar (mobile) ---------- */
.action-rail {
	position: fixed;
	z-index: 40;
	right: 0.75rem;
	top: 50%;
	translate: 0 -50%;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.action-rail a {
	display: grid;
	place-items: center;
	min-width: 2.5rem;
	min-height: 2.5rem;
	padding: 0.5rem;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--brand-900);
	border-radius: var(--wp--preset--border-radius--sm);
	color: var(--wp--preset--color--brand-900);
	text-decoration: none;
	font-size: var(--wp--preset--font-size--small);
}
.action-rail a:hover { background: var(--wp--preset--color--brand-900); color: var(--wp--preset--color--surface); }
.action-rail svg { width: 1.1rem; height: 1.1rem; }
.action-rail .rail-primary { writing-mode: vertical-rl; padding: 1rem 0.5rem; }
@media (max-width: 767px) {
	.action-rail {
		inset: auto 0 0 0;
		translate: none;
		flex-direction: row;
		padding: 0.6rem 1rem calc(0.6rem + env(safe-area-inset-bottom));
		background: color-mix(in srgb, var(--wp--preset--color--canvas) 85%, transparent);
		-webkit-backdrop-filter: blur(12px);
		backdrop-filter: blur(12px);
		box-shadow: var(--wp--preset--shadow--card);
	}
	.action-rail a { border-radius: var(--wp--preset--border-radius--pill); width: 2.75rem; height: 2.75rem; padding: 0; }
	.action-rail .rail-primary { writing-mode: horizontal-tb; flex: 1; order: -1; width: auto; padding: 0 1rem; }
	body { padding-bottom: 4.5rem; }
}

/* ---------- Footer ---------- */
/* "Produced by" credits: white SVG logos used as masks, so they follow currentColor. */
.site-credits { display: flex; align-items: center; gap: var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.site-credits__logo { display: block; height: 1.35rem; background: var(--wp--preset--color--brand-900); -webkit-mask: var(--logo) center / contain no-repeat; mask: var(--logo) center / contain no-repeat; opacity: 0.75; transition: opacity 0.3s, background-color 0.3s; }
.site-credits__logo:hover { opacity: 1; background: var(--wp--preset--color--brand-700); }
.site-credits__logo.is-uphealth { --logo: url("../images/credits/uphealth.svg"); aspect-ratio: 1081 / 231; }
.site-credits__logo.is-etouch { --logo: url("../images/credits/etouch.svg"); aspect-ratio: 1414 / 371.7; }
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.site-footer .wp-block-heading { border-bottom: 1px solid var(--wp--preset--color--line); padding-bottom: var(--wp--preset--spacing--20); }

/* ---------- Credentials tabs: photo · text panel · tab list ---------- */
/* Interactive states apply only once credentials-tabs.js adds .is-ready;
   before that (no JS, editor canvas) the panels just stack. */
.cred-tabs {
	--cred-duration: 7s;
	--cred-swap: cubic-bezier(.65, 0, .35, 1);
	/* Right padding that clears the fixed .action-rail (right 0.75rem + ~3.6rem wide):
	   rail reach minus the gap between this card and the viewport edge. */
	--cred-rail-clear: max(var(--wp--preset--spacing--30), 5.75rem - max(var(--wp--style--root--padding-right), (100vw - var(--wp--style--global--wide-size)) / 2));
	position: relative;
	overflow: hidden;
	border-radius: var(--wp--preset--border-radius--lg);
	background: linear-gradient(115deg, var(--wp--preset--color--surface) 30%, var(--wp--preset--color--canvas));
	box-shadow: var(--wp--preset--shadow--lift);
}

/* Photo column: photos stacked in one cell; the active one fades in over the
   previous, which stays put until the fade is done (delayed opacity reset). */
.cred-media { position: relative; display: grid; min-height: 34rem; isolation: isolate; overflow: hidden; }
.cred-media > * { grid-area: 1 / 1; }
.cred-media > figure { margin: 0; overflow: hidden; }
.cred-media img { width: 100%; height: 100%; object-fit: cover; }
.cred-media::after { content: ""; grid-area: 1 / 1; z-index: 2; background: linear-gradient(to top, color-mix(in srgb, var(--wp--preset--color--brand-900) 82%, transparent), transparent 75%); pointer-events: none; }
.cred-tabs:not(.is-ready) .cred-media > figure:not(:first-child) { display: none; }
.cred-tabs.is-ready .cred-media > figure { opacity: 0; transition: opacity 0s linear 1s; }
.cred-tabs.is-ready .cred-media > figure img { transform: scale(1.08); transition: transform 0s linear 1s; }
.cred-tabs.is-ready .cred-media > figure.is-active { z-index: 1; opacity: 1; transition: opacity 1s var(--mp-ease); }
.cred-tabs.is-ready .cred-media > figure.is-active img { transform: none; transition: transform 2.4s var(--mp-ease); }
.cred-quote {
	z-index: 3;
	align-self: end;
	margin: 0;
	padding: var(--wp--preset--spacing--50);
	color: var(--wp--preset--color--surface);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.45;
}
.cred-quote::before { content: ""; display: block; width: var(--wp--custom--line--accent); margin-bottom: var(--wp--preset--spacing--40); border-top: 1px solid currentColor; }
.cred-quote > p { margin: 0; }
.cred-sign { display: flex; align-items: center; gap: var(--wp--preset--spacing--30); margin-top: var(--wp--preset--spacing--40); font-size: var(--wp--preset--font-size--small); line-height: 1.4; }
.cred-sign > figure { flex: none; width: 3.25rem; margin: 0; }
.cred-sign img { display: block; border-radius: 50%; box-shadow: 0 0 0 2px color-mix(in srgb, var(--wp--preset--color--surface) 60%, transparent); }
.cred-sign strong { font-weight: 500; }

/* Text column: panels share one grid cell so the tallest sets the height and
   switching never shifts the layout. */
.cred-panels { display: grid; align-items: center; padding: var(--wp--preset--spacing--60); }
.cred-tabs:not(.is-ready) .cred-panels { gap: var(--wp--preset--spacing--60); }
.cred-tabs.is-ready .cred-panel { grid-area: 1 / 1; }
.cred-panel { display: flex; flex-direction: column; align-items: flex-start; row-gap: var(--wp--preset--spacing--40); }
.cred-panel > p:not(.cred-eyebrow) { max-width: 34rem; color: var(--wp--preset--color--muted); line-height: 1.7; }
.cred-eyebrow { display: flex; align-items: center; gap: var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--small); letter-spacing: 0.08em; text-transform: uppercase; color: var(--wp--preset--color--brand-900); }
.cred-eyebrow__line { width: 2.75rem; border-top: 1px solid var(--wp--preset--color--muted); transform-origin: left; }
.cred-title { font-weight: 400; line-height: 1.12; letter-spacing: -0.02em; }
.cred-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--wp--preset--spacing--40); margin-top: var(--wp--preset--spacing--20); }
.cred-actions .link-arrow { font-size: var(--wp--preset--font-size--small); padding-inline: 0; }

/* Stagger: outgoing content fades fast, incoming children rise in one by one. */
.cred-tabs.is-ready .cred-panel > * { opacity: 0; transform: translateY(1rem); transition: opacity 0.3s ease, transform 0.3s ease; }
.cred-tabs.is-ready .cred-panel .cred-eyebrow__line { transform: scaleX(0); transition: transform 0.3s ease; }
.cred-tabs.is-in .cred-panel.is-active > * { opacity: 1; transform: none; transition: opacity 0.7s var(--mp-ease) var(--d, 0.3s), transform 0.9s var(--mp-ease) var(--d, 0.3s); }
.cred-tabs.is-in .cred-panel.is-active .cred-eyebrow__line { transform: none; transition: transform 0.9s var(--mp-ease) 0.4s; }
.cred-panel > :nth-child(2) { --d: 0.38s; }
.cred-panel > :nth-child(3) { --d: 0.46s; }
.cred-panel > :nth-child(4) { --d: 0.54s; }

.cred-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem 1.6rem;
	border-radius: var(--wp--preset--border-radius--pill);
	background: var(--wp--preset--color--brand-900);
	color: var(--wp--preset--color--surface);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	text-decoration: none;
	transition: background-color 0.3s, box-shadow var(--mp-duration) var(--mp-ease), transform var(--mp-duration) var(--mp-ease);
}
.cred-btn .gb-shape { display: inline-flex; }
.cred-btn svg { width: 1.15rem; height: 1.15rem; }
.cred-btn::after,
.cred-link::after {
	content: "";
	width: 1.1em;
	height: 1.1em;
	margin-inline-start: 0.5rem;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.4s var(--mp-ease);
}
.cred-btn:hover { background: var(--wp--preset--color--brand-700); color: var(--wp--preset--color--surface); transform: translateY(-2px); box-shadow: var(--wp--preset--shadow--lift); }
.cred-btn:hover::after,
.cred-link:hover::after { transform: translateX(0.3rem); }

/* Tab list */
.cred-tablist {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: var(--wp--preset--spacing--30) var(--cred-rail-clear) var(--wp--preset--spacing--30) 0;
	background: color-mix(in srgb, var(--wp--preset--color--canvas) 70%, transparent);
	border-left: 1px solid var(--wp--preset--color--line);
}
.cred-tab {
	position: relative;
	flex: 1 1 0;
	display: grid;
	grid-template-columns: 2.25rem 3.5rem minmax(0, 1fr) 2.75rem;
	align-items: center;
	column-gap: var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30) var(--wp--preset--spacing--40) var(--wp--preset--spacing--40);
	border-radius: 0 var(--wp--preset--border-radius--lg) var(--wp--preset--border-radius--lg) 0;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.5s var(--mp-ease), box-shadow 0.5s var(--mp-ease);
}
/* Hairline between tabs, hidden next to the raised active tab. */
.cred-tab + .cred-tab::before { content: ""; position: absolute; top: 0; left: var(--wp--preset--spacing--40); right: var(--wp--preset--spacing--30); border-top: 1px solid var(--wp--preset--color--line); transition: opacity 0.4s; }
.cred-tab.is-active::before,
.cred-tab.is-active + .cred-tab::before { opacity: 0; }
.cred-tab:hover { background: color-mix(in srgb, var(--wp--preset--color--surface) 55%, transparent); }
.cred-tab.is-active { background: var(--wp--preset--color--surface); box-shadow: 0 12px 30px -18px rgba(3, 59, 106, 0.35); }
.cred-tab :where(.gb-shape) { display: inline-flex; }
.cred-tab__num { font-size: var(--wp--preset--font-size--medium); color: var(--wp--preset--color--muted); font-variant-numeric: tabular-nums; transition: color 0.4s; }
.cred-tab.is-active .cred-tab__num { color: var(--wp--preset--color--brand-900); }
.cred-tab__icon {
	display: inline-grid;
	place-items: center;
	width: 3.5rem;
	aspect-ratio: 1;
	border-radius: 50%;
	background: color-mix(in srgb, var(--wp--preset--color--line) 60%, transparent);
	color: var(--wp--preset--color--brand-900);
	transition: background-color 0.5s var(--mp-ease), color 0.5s var(--mp-ease), transform 0.6s var(--mp-ease);
}
.cred-tab__icon svg { width: 1.5rem; height: 1.5rem; }
.cred-tab.is-active .cred-tab__icon { background: color-mix(in srgb, var(--wp--preset--color--brand-300) 22%, var(--wp--preset--color--surface)); color: var(--wp--preset--color--brand-700); }
.cred-tab:hover .cred-tab__icon { transform: scale(1.06); }
.cred-tab__text { display: flex; flex-direction: column; row-gap: 0.2rem; }
.cred-tab__title { font-size: var(--wp--preset--font-size--medium); font-weight: 500; color: var(--wp--preset--color--brand-900); }
.cred-tab__sub { font-size: var(--wp--preset--font-size--small); line-height: 1.5; color: var(--wp--preset--color--muted); }
.cred-tab__go {
	display: inline-grid;
	place-items: center;
	width: 2.75rem;
	aspect-ratio: 1;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 50%;
	color: var(--wp--preset--color--brand-900);
	transition: background-color 0.4s var(--mp-ease), border-color 0.4s var(--mp-ease), color 0.4s var(--mp-ease);
}
.cred-tab__go svg { width: 1.1rem; height: 1.1rem; transition: transform 0.4s var(--mp-ease); }
.cred-tab:hover .cred-tab__go,
.cred-tab.is-active .cred-tab__go { border-color: var(--wp--preset--color--brand-900); }
.cred-tab.is-active .cred-tab__go { background: var(--wp--preset--color--brand-900); color: var(--wp--preset--color--surface); }
.cred-tab:hover .cred-tab__go svg { transform: translateX(3px); }

/* Sliding indicator on the active tab; its fill is the autoplay progress. */
.cred-indicator {
	position: absolute;
	top: 0;
	left: 0;
	width: 3px;
	height: var(--cred-h, 0);
	transform: translateY(var(--cred-y, 0));
	background: var(--wp--preset--color--line);
	border-radius: var(--wp--preset--border-radius--pill);
	overflow: hidden;
	transition: transform 0.7s var(--cred-swap), height 0.7s var(--cred-swap);
}
.cred-indicator > span { position: absolute; inset: 0; background: var(--wp--preset--color--brand-700); transform-origin: top; }
.cred-tabs.is-in.is-playing .cred-indicator > span { animation: cred-progress-y var(--cred-duration) linear both; }
.cred-tabs:is(:hover, :focus-within, .is-paused) .cred-indicator > span { animation-play-state: paused; }
@keyframes cred-progress-y { from { transform: scaleY(0); } }
@keyframes cred-progress-x { from { transform: scaleX(0); } }

/* Entrance (first time in view): photo unmasks, tabs slide in one by one. */
.cred-tabs.is-ready .cred-media { clip-path: inset(0 round 0); transition: clip-path 1.4s var(--mp-ease); }
.cred-tabs.is-ready:not(.is-in) .cred-media { clip-path: inset(6% 8% 6% 0 round var(--wp--preset--border-radius--lg)); }
.cred-tabs.is-ready .cred-tab { transition: background-color 0.5s var(--mp-ease), box-shadow 0.5s var(--mp-ease), opacity 0.8s var(--mp-ease) var(--t, 0s), transform 1s var(--mp-ease) var(--t, 0s); }
.cred-tabs.is-ready:not(.is-in) .cred-tab { opacity: 0; transform: translateX(2rem); }
.cred-tabs.is-ready:not(.is-in) .cred-indicator { opacity: 0; }
.cred-tab:nth-child(1) { --t: 0.25s; }
.cred-tab:nth-child(2) { --t: 0.35s; }
.cred-tab:nth-child(3) { --t: 0.45s; }
.cred-tab:nth-child(4) { --t: 0.55s; }
.cred-tab:nth-child(5) { --t: 0.65s; }

/* Quick links under the card */
.cred-links > * + * { border-left: 1px solid var(--wp--preset--color--line); }
.cred-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--brand-900);
	text-decoration: none;
	transition: color 0.3s;
}
.cred-link .gb-shape {
	display: inline-grid;
	place-items: center;
	width: 3.75rem;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--wp--preset--color--canvas);
	transition: background-color 0.4s var(--mp-ease), color 0.4s var(--mp-ease), transform 0.6s var(--mp-ease);
}
.cred-link svg { width: 1.5rem; height: 1.5rem; }
.cred-link:hover { color: var(--wp--preset--color--brand-700); }
.cred-link:hover .gb-shape { background: var(--wp--preset--color--brand-900); color: var(--wp--preset--color--surface); transform: rotate(-6deg) scale(1.05); }

@media (max-width: 1024px) {
	.cred-tablist { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: var(--wp--preset--spacing--30) var(--cred-rail-clear) var(--wp--preset--spacing--30) var(--wp--preset--spacing--30); border-left: 0; border-top: 1px solid var(--wp--preset--color--line); }
	.cred-tab { border-radius: var(--wp--preset--border-radius--lg); }
	.cred-tab + .cred-tab::before { display: none; }
	/* Card runs close to the viewport edge here: clear the rail's full reach. */
	.cred-tabs { --cred-rail-clear: 5.5rem; }
	.cred-panels { padding-right: max(var(--wp--preset--spacing--60), var(--cred-rail-clear)); }
	.cred-panel { min-width: 0; }
	.cred-title { font-size: clamp(var(--wp--preset--font-size--x-large), 4.2vw, var(--wp--preset--font-size--xx-large)) !important; overflow-wrap: break-word; }
	/* Hidden, not removed: its progress animation still drives autoplay. */
	.cred-indicator { opacity: 0; }
}
@media (max-width: 767px) {
	.cred-media { min-height: 0; aspect-ratio: 4 / 3; }
	.cred-quote { font-size: var(--wp--preset--font-size--base); padding: var(--wp--preset--spacing--40); }
	/* Tabs become a swipeable row above the text; the indicator runs along the bottom. */
	.cred-tablist { grid-row: 2; display: flex; flex-direction: row; justify-content: flex-start; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30) 0; }
	.cred-tablist::-webkit-scrollbar { display: none; }
	.cred-tab { flex: 0 0 auto; grid-template-columns: auto auto; column-gap: var(--wp--preset--spacing--20); padding: var(--wp--preset--spacing--30); scroll-snap-align: start; border-radius: var(--wp--preset--border-radius--md) var(--wp--preset--border-radius--md) 0 0; }
	.cred-tab__num, .cred-tab__sub, .cred-tab__go { display: none; }
	.cred-tab__icon { width: 2.5rem; }
	.cred-tab__icon svg { width: 1.2rem; height: 1.2rem; }
	.cred-tab__title { font-size: var(--wp--preset--font-size--base); white-space: nowrap; }
	.cred-indicator { opacity: 1; top: auto; bottom: 0; width: var(--cred-w, 0); height: 3px; transform: translateX(var(--cred-x, 0)); transition: transform 0.7s var(--cred-swap), width 0.7s var(--cred-swap); }
	.cred-indicator > span { transform-origin: left; }
	.cred-tabs.is-in.is-playing .cred-indicator > span { animation-name: cred-progress-x; }
	.cred-panels { grid-row: 3; padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); }
	.cred-links > * + * { border-left: 0; border-top: 1px solid var(--wp--preset--color--line); }
	.cred-link { justify-content: flex-start; padding-block: var(--wp--preset--spacing--30); }
	.cred-link::after { margin-inline-start: auto; }
}

/* ---------- Non-surgical first: stepped care ---------- */
.care {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(60rem 30rem at 85% 10%, color-mix(in srgb, var(--wp--preset--color--accent) 18%, transparent), transparent 70%),
		linear-gradient(180deg, var(--wp--preset--color--canvas), color-mix(in srgb, var(--wp--preset--color--accent) 10%, var(--wp--preset--color--surface)));
}
.care::before,
.care::after { content: ""; position: absolute; z-index: 0; border-radius: 50%; filter: blur(60px); pointer-events: none; }
.care::before { width: 34rem; aspect-ratio: 1; top: -8rem; left: -10rem; background: color-mix(in srgb, var(--wp--preset--color--brand-300) 22%, transparent); }
.care::after { width: 28rem; aspect-ratio: 1; bottom: -10rem; right: 10%; background: color-mix(in srgb, var(--wp--preset--color--accent) 24%, transparent); }
.care > * { position: relative; z-index: 1; }
@media (prefers-reduced-motion: no-preference) {
	.care::before { animation: care-drift 22s ease-in-out infinite alternate; }
	.care::after { animation: care-drift 26s ease-in-out -8s infinite alternate-reverse; }
}
@keyframes care-drift { to { transform: translate(6rem, 3rem) scale(1.15); } }
.care-intro { display: flex; flex-direction: column; align-items: flex-start; row-gap: var(--wp--preset--spacing--40); }
@media (min-width: 1025px) { .care-intro { position: sticky; top: calc(var(--mp-header-offset) + var(--wp--preset--spacing--40)); } }
.care-intro .cred-title em { font-style: normal; color: var(--wp--preset--color--brand-700); background: linear-gradient(transparent 62%, color-mix(in srgb, var(--wp--preset--color--accent) 35%, transparent) 62%) no-repeat 0 0 / 100% 100%; }
.care-intro > p:not(.cred-eyebrow):not(.is-style-lead) { color: var(--wp--preset--color--muted); line-height: 1.75; max-width: 36rem; }
.care-intro .is-style-lead { color: var(--wp--preset--color--ink); max-width: 36rem; }
.care-chips li { font-size: var(--wp--preset--font-size--small); padding: 0.55rem 1rem; }

/* Steps on a rail that fills while the list scrolls through view */
.care-steps { position: relative; display: flex; flex-direction: column; row-gap: var(--wp--preset--spacing--30); padding-left: 3.25rem; }
.care-steps::before,
.care-steps::after { content: ""; position: absolute; left: 1.25rem; top: 1.5rem; bottom: 3.5rem; width: 2px; border-radius: 2px; background: var(--wp--preset--color--line); }
.care-steps::after { background: linear-gradient(var(--wp--preset--color--brand-300), var(--wp--preset--color--brand-700)); transform-origin: top; }
.care-steps::before, .care-steps::after { z-index: 0; }
@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) {
		.care-steps::after { animation: care-fill linear both; animation-timeline: view(); animation-range: entry 40% cover 65%; }
	}
}
@keyframes care-fill { from { transform: scaleY(0); } }

.care-step { position: relative; z-index: 1; }
.care-step__num {
	position: absolute;
	left: -3.25rem;
	top: var(--wp--preset--spacing--40);
	display: grid;
	place-items: center;
	width: 2.5rem;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--wp--preset--color--surface);
	box-shadow: 0 0 0 1px var(--wp--preset--color--brand-300);
	font-size: var(--wp--preset--font-size--small);
	font-variant-numeric: tabular-nums;
	color: var(--wp--preset--color--brand-900);
	z-index: 1;
}
.care-step__body {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	row-gap: var(--wp--preset--spacing--20);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	border-radius: var(--wp--preset--border-radius--lg);
	background: color-mix(in srgb, var(--wp--preset--color--surface) 80%, transparent);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--line) 70%, transparent);
	transition: transform var(--mp-duration) var(--mp-ease), box-shadow var(--mp-duration) var(--mp-ease);
}
.care-step:hover .care-step__body { transform: translateX(4px); box-shadow: var(--wp--preset--shadow--lift); }
.care-step__body h3 { font-weight: 500; }
.care-step__body > p { color: var(--wp--preset--color--muted); line-height: 1.7; }

/* Choreography (care.js adds .is-ready, then .is-in on the section and on each reached step) */
.care.is-ready .care-intro > * { transition: opacity 0.8s var(--mp-ease) var(--d, 0s), transform 1s var(--mp-ease) var(--d, 0s); }
.care.is-ready:not(.is-in) .care-intro > * { opacity: 0; transform: translateY(1.5rem); }
.care-intro > :nth-child(2) { --d: 0.1s; }
.care-intro > :nth-child(3) { --d: 0.2s; }
.care-intro > :nth-child(4) { --d: 0.3s; }
.care-intro > :nth-child(5) { --d: 0.4s; }
.care-intro > :nth-child(6) { --d: 0.5s; }
.care.is-ready .care-intro .cred-title em { transition: background-size 1.2s var(--mp-ease) 0.7s; }
.care.is-ready:not(.is-in) .care-intro .cred-title em { background-size: 0% 100%; }
.care.is-ready .care-chips li { transition: opacity 0.6s var(--mp-ease), transform 0.7s var(--mp-ease), border-color 0.3s; }
.care.is-ready.is-in .care-chips li { transition-delay: calc(0.45s + var(--c, 0) * 0.07s), calc(0.45s + var(--c, 0) * 0.07s), 0s; }
.care.is-ready:not(.is-in) .care-chips li { opacity: 0; transform: scale(0.9); }
.care-chips li:nth-child(2) { --c: 1; }
.care-chips li:nth-child(3) { --c: 2; }
.care-chips li:nth-child(4) { --c: 3; }
.care-chips li:nth-child(5) { --c: 4; }
.care-chips li:nth-child(6) { --c: 5; }

.care.is-ready .care-step { transition: opacity 0.9s var(--mp-ease), transform 1.1s var(--mp-ease); }
.care.is-ready .care-step:not(.is-in) { opacity: 0; transform: translateX(2.5rem); }
.care.is-ready .care-step.is-featured:not(.is-in) { transform: translateX(2.5rem) scale(0.96); }
.care.is-ready .care-step__num { transition: background-color 0.5s var(--mp-ease) 0.3s, color 0.5s var(--mp-ease) 0.3s, box-shadow 0.5s var(--mp-ease) 0.3s; }
.care.is-ready .care-step.is-in .care-step__num { background: var(--wp--preset--color--brand-900); color: var(--wp--preset--color--surface); box-shadow: 0 0 0 4px color-mix(in srgb, var(--wp--preset--color--brand-300) 30%, transparent); animation: care-pop 0.7s var(--mp-ease) 0.3s both; }
.care.is-ready .care-step.is-featured.is-in .care-step__num { box-shadow: 0 0 0 5px color-mix(in srgb, var(--wp--preset--color--accent) 50%, transparent); }
@keyframes care-pop { 40% { transform: scale(1.18); } }
.care.is-ready .care-note { transition: opacity 1s var(--mp-ease) 0.4s; }
.care.is-ready:not(.is-in) .care-note { opacity: 0; }

/* The emphasised step: injections */
.care-step.is-featured .care-step__body {
	overflow: hidden;
	isolation: isolate;
	padding: var(--wp--preset--spacing--50);
	background: linear-gradient(135deg, var(--wp--preset--color--brand-900), var(--wp--preset--color--brand-700));
	border-color: transparent;
	color: var(--wp--preset--color--surface);
	box-shadow: var(--wp--preset--shadow--lift);
}
.care-step.is-featured .care-step__num { background: var(--wp--preset--color--brand-900); color: var(--wp--preset--color--surface); box-shadow: 0 0 0 4px color-mix(in srgb, var(--wp--preset--color--accent) 45%, transparent); }
.care-step.is-featured h3 { color: inherit; font-size: var(--wp--preset--font-size--x-large); }
.care-step.is-featured .care-step__body > p { color: color-mix(in srgb, var(--wp--preset--color--surface) 82%, transparent); max-width: 34rem; }
.care-badge { order: -1; padding: 0.35rem 0.85rem; border-radius: var(--wp--preset--border-radius--pill); background: var(--wp--preset--color--accent); color: var(--wp--preset--color--brand-900); font-size: var(--wp--preset--font-size--small); font-weight: 600; letter-spacing: 0.02em; }
.care-list { list-style: none; margin: var(--wp--preset--spacing--20) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); }
.care-list li { padding: 0.55rem 1rem; border: 1px solid color-mix(in srgb, var(--wp--preset--color--surface) 35%, transparent); border-radius: var(--wp--preset--border-radius--pill); font-size: var(--wp--preset--font-size--small); }
.care-icon { position: absolute; right: calc(-1 * var(--wp--preset--spacing--40)); bottom: calc(-1 * var(--wp--preset--spacing--50)); width: 11rem; margin: 0; opacity: 0.14; z-index: -1; pointer-events: none; }
.care-icon img { display: block; width: 100%; }
@media (prefers-reduced-motion: no-preference) {
	.care-step.is-featured .care-step__body::before { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 35%, color-mix(in srgb, var(--wp--preset--color--surface) 12%, transparent) 50%, transparent 65%); transform: translateX(-100%); animation: care-shine 6s var(--mp-ease) 1.5s infinite; pointer-events: none; }
}
@keyframes care-shine { 0%, 60% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }

.care-step.is-last .care-step__body { background: transparent; border-style: dashed; }
.care-note { margin: var(--wp--preset--spacing--20) 0 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
@media (max-width: 767px) {
	.care-steps { padding-left: 2.75rem; }
	.care-steps::before, .care-steps::after { left: 1rem; }
	.care-step__num { left: -2.75rem; width: 2.1rem; }
	.care-step__body { padding: var(--wp--preset--spacing--40); }
	.care-step.is-featured .care-step__body { padding: var(--wp--preset--spacing--40); }
}

/* ---------- Specialities side by side (.spec-duo) ---------- */
.spec-duo__lead { max-width: 30rem; color: var(--wp--preset--color--muted); line-height: 1.7; }
.spec-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: var(--wp--preset--border-radius--lg);
	background: var(--wp--preset--color--surface);
	box-shadow: var(--wp--preset--shadow--card);
	color: inherit;
	text-decoration: none;
	transition: transform var(--mp-duration) var(--mp-ease), box-shadow var(--mp-duration) var(--mp-ease);
}
.spec-card:hover { transform: translateY(-6px); box-shadow: var(--wp--preset--shadow--lift); }

/* Photo with navy fade, line icon and title on top */
.spec-card__media { position: relative; display: grid; aspect-ratio: 16 / 10; overflow: hidden; isolation: isolate; background: #000; }
.spec-card__media > * { grid-area: 1 / 1; }
.spec-card__media > figure:first-child { margin: 0; z-index: -2; }
.spec-card__media > figure:first-child img { width: 100%; height: 100%; object-fit: cover; scale: 1.14; transition: transform 1.4s var(--mp-ease); }
.spec-card:hover .spec-card__media > figure:first-child img { transform: scale(1.06); }
.spec-card__media::after { content: ""; grid-area: 1 / 1; z-index: -1; background: linear-gradient(to top, color-mix(in srgb, var(--wp--preset--color--brand-900) 88%, transparent), transparent 60%); transition: opacity 0.6s var(--mp-ease); }
.spec-card__icon { align-self: start; justify-self: start; width: 4.5rem; margin: var(--wp--preset--spacing--40); padding: 0.35rem; border-radius: 50%; background: color-mix(in srgb, var(--wp--preset--color--brand-900) 35%, transparent); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); transition: transform 0.8s var(--mp-ease); }
.spec-card__icon img { display: block; width: 100%; }
.spec-card:hover .spec-card__icon { transform: rotate(-8deg) scale(1.06); }
.spec-card__title { align-self: end; margin: 0; padding: var(--wp--preset--spacing--50); color: var(--wp--preset--color--surface); font-weight: 500; }

.spec-card__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; row-gap: var(--wp--preset--spacing--30); padding: var(--wp--preset--spacing--50); }
.spec-card__body > p { color: var(--wp--preset--color--muted); line-height: 1.7; }
.spec-card__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--10); }
.spec-card__list li { padding: 0.45rem 0.9rem; border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--preset--border-radius--pill); font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--brand-900); transition: border-color 0.4s, background-color 0.4s; }
.spec-card:hover .spec-card__list li { border-color: color-mix(in srgb, var(--wp--preset--color--brand-300) 60%, transparent); }
.spec-card__more { display: inline-flex; align-items: center; gap: 0.75rem; margin-top: auto; padding-top: var(--wp--preset--spacing--20); color: var(--wp--preset--color--brand-900); font-weight: 500; }
.spec-card__more .gb-shape { display: inline-grid; place-items: center; width: 2.5rem; aspect-ratio: 1; border: 1px solid var(--wp--preset--color--line); border-radius: 50%; transition: background-color 0.4s var(--mp-ease), color 0.4s var(--mp-ease), border-color 0.4s var(--mp-ease); }
.spec-card__more svg { width: 1rem; height: 1rem; transition: transform 0.4s var(--mp-ease); }
.spec-card:hover .spec-card__more .gb-shape { background: var(--wp--preset--color--brand-900); border-color: var(--wp--preset--color--brand-900); color: var(--wp--preset--color--surface); }
.spec-card:hover .spec-card__more svg { transform: translateX(3px); }

/* Photo drifts while the card crosses the viewport */
@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) {
		.spec-card__media > figure:first-child img { animation: spec-drift linear both; animation-timeline: view(); animation-range: cover; }
	}
}
@keyframes spec-drift { from { translate: 0 -6%; } to { translate: 0 6%; } }

/* Reveal (care.js: .is-ready on .spec-duo, .is-in on each reached card) */
.spec-duo.is-ready .spec-card { transition: opacity 0.9s var(--mp-ease) var(--d, 0s), transform 1.1s var(--mp-ease) var(--d, 0s), box-shadow var(--mp-duration) var(--mp-ease); }
.spec-duo.is-ready .spec-card:not(.is-in) { opacity: 0; transform: translateY(3rem); }
.spec-duo.is-ready .spec-card:nth-child(2) { --d: 0.15s; }
.spec-duo.is-ready .spec-card__media { transition: clip-path 1.4s var(--mp-ease) calc(var(--d, 0s) + 0.1s); }
.spec-duo.is-ready .spec-card:not(.is-in) .spec-card__media { clip-path: inset(10% 10% 10% 10% round var(--wp--preset--border-radius--lg)); }
.spec-duo.is-ready .spec-card :is(.spec-card__title, .spec-card__icon, .spec-card__body > *) { transition: opacity 0.8s var(--mp-ease) calc(var(--d, 0s) + var(--e, 0.5s)), transform 1s var(--mp-ease) calc(var(--d, 0s) + var(--e, 0.5s)); }
.spec-duo.is-ready .spec-card:not(.is-in) :is(.spec-card__title, .spec-card__icon, .spec-card__body > *) { opacity: 0; transform: translateY(1rem); }
.spec-card__icon { --e: 0.6s; }
.spec-card__body > :nth-child(1) { --e: 0.65s; }
.spec-card__body > :nth-child(2) { --e: 0.75s; }
.spec-card__body > :nth-child(3) { --e: 0.85s; }
/* After the reveal, hover transforms run at their own speed. */
.spec-duo.is-ready .spec-card.is-in:hover .spec-card__icon { transition-delay: 0s; }

/* ---------- Cases: dark band, filters, bento grid ---------- */
.cases {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background: var(--wp--preset--color--brand-900);
	color: var(--wp--preset--color--surface);
}
/* Faint blueprint grid fading out towards the bottom, plus a soft glow */
.cases::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(color-mix(in srgb, var(--wp--preset--color--surface) 6%, transparent) 1px, transparent 1px) 0 0 / 4rem 4rem,
		linear-gradient(90deg, color-mix(in srgb, var(--wp--preset--color--surface) 6%, transparent) 1px, transparent 1px) 0 0 / 4rem 4rem;
	-webkit-mask-image: linear-gradient(to bottom, #000, transparent 85%);
	mask-image: linear-gradient(to bottom, #000, transparent 85%);
}
.cases::after { content: ""; position: absolute; z-index: -1; width: 50rem; aspect-ratio: 1; top: -25rem; right: -15rem; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--wp--preset--color--brand-500) 55%, transparent), transparent); pointer-events: none; }
.cases :where(h2, h3, p) { color: inherit; }
.cases .cred-eyebrow { color: var(--wp--preset--color--accent); }
.cases__head p:not(.cred-eyebrow) { color: color-mix(in srgb, var(--wp--preset--color--surface) 72%, transparent); line-height: 1.7; }

.cases__filters { display: flex; flex-wrap: wrap; gap: 0.35rem; padding: 0.35rem; border: 1px solid color-mix(in srgb, var(--wp--preset--color--surface) 16%, transparent); border-radius: var(--wp--preset--border-radius--pill); background: color-mix(in srgb, var(--wp--preset--color--surface) 6%, transparent); }
.cases__filter { padding: 0.65rem 1.25rem; border-radius: var(--wp--preset--border-radius--pill); color: color-mix(in srgb, var(--wp--preset--color--surface) 78%, transparent); font-size: var(--wp--preset--font-size--small); text-decoration: none; cursor: pointer; transition: background-color 0.4s var(--mp-ease), color 0.4s var(--mp-ease); }
.cases__filter:hover { color: var(--wp--preset--color--surface); }
.cases__filter.is-active { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--brand-900); }

/* Bento: first case spans two rows; filtered views drop the span. */
.cases-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: minmax(15rem, auto); gap: var(--wp--preset--spacing--30); }
.cases-grid:not(.is-filtered) > .case-card:first-child { grid-row: span 2; }
@media (max-width: 1024px) { .cases-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .cases-grid { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; } .cases-grid:not(.is-filtered) > .case-card:first-child { grid-row: auto; } }

.case-card {
	--mx: 50%;
	--my: 0%;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	row-gap: var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--50);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--surface) 12%, transparent);
	border-radius: var(--wp--preset--border-radius--lg);
	background: linear-gradient(160deg, color-mix(in srgb, var(--wp--preset--color--surface) 9%, transparent), color-mix(in srgb, var(--wp--preset--color--surface) 3%, transparent));
	transition: border-color 0.5s var(--mp-ease), transform var(--mp-duration) var(--mp-ease);
}
.case-card[hidden] { display: none; }
/* Pointer spotlight (cases.js sets --mx / --my) */
.case-card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(22rem circle at var(--mx) var(--my), color-mix(in srgb, var(--wp--preset--color--accent) 18%, transparent), transparent 70%); opacity: 0; transition: opacity 0.5s var(--mp-ease); }
.case-card:hover::before { opacity: 1; }
.case-card:hover { border-color: color-mix(in srgb, var(--wp--preset--color--accent) 45%, transparent); transform: translateY(-4px); }
.case-card__art { position: absolute; right: -2.5rem; bottom: -2.5rem; z-index: -1; width: 10rem; margin: 0; opacity: 0.07; pointer-events: none; transition: opacity 0.6s var(--mp-ease), transform 1.2s var(--mp-ease); }
.case-card__art img { display: block; width: 100%; }
.case-card:hover .case-card__art { opacity: 0.16; transform: rotate(-10deg) scale(1.08); }
.cases-grid:not(.is-filtered) > .case-card:first-child .case-card__art { width: 20rem; right: -4rem; bottom: -4rem; }
.cases-grid:not(.is-filtered) > .case-card:first-child h3 { font-size: var(--wp--preset--font-size--x-large); }
.case-card__top { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.case-card__num { font-size: var(--wp--preset--font-size--small); font-variant-numeric: tabular-nums; color: color-mix(in srgb, var(--wp--preset--color--surface) 55%, transparent); }
.case-card__tag { padding: 0.3rem 0.8rem; border-radius: var(--wp--preset--border-radius--pill); background: color-mix(in srgb, var(--wp--preset--color--accent) 18%, transparent); color: var(--wp--preset--color--accent); font-size: var(--wp--preset--font-size--small); }
.case-card h3 { font-weight: 500; line-height: 1.25; }
.case-card > p { color: color-mix(in srgb, var(--wp--preset--color--surface) 70%, transparent); font-size: var(--wp--preset--font-size--small); line-height: 1.7; }
.case-card__more { display: inline-flex; align-items: center; gap: 0.6rem; margin-top: auto; color: var(--wp--preset--color--surface); font-size: var(--wp--preset--font-size--small); text-decoration: none; }
.case-card__more::after { content: ""; position: absolute; inset: 0; } /* whole card is the hit area */
.case-card__more .gb-shape { display: inline-grid; place-items: center; width: 2.25rem; aspect-ratio: 1; border: 1px solid color-mix(in srgb, var(--wp--preset--color--surface) 30%, transparent); border-radius: 50%; transition: background-color 0.4s var(--mp-ease), color 0.4s var(--mp-ease), border-color 0.4s; }
.case-card__more svg { width: 0.95rem; height: 0.95rem; transition: transform 0.4s var(--mp-ease); }
.case-card:hover .case-card__more .gb-shape { background: var(--wp--preset--color--surface); border-color: var(--wp--preset--color--surface); color: var(--wp--preset--color--brand-900); }
.case-card:hover .case-card__more svg { transform: translateX(3px); }
.cases__all { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--brand-900); }
.cases__all:hover { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--brand-900); }

/* Reveal (cases.js: .is-ready, then .is-in when the grid is reached) */
.cases.is-ready .cases__head > * { transition: opacity 0.8s var(--mp-ease) var(--d, 0s), transform 1s var(--mp-ease) var(--d, 0s); }
.cases.is-ready:not(.is-in) .cases__head > * { opacity: 0; transform: translateY(1.5rem); }
.cases__head > :nth-child(2) { --d: 0.15s; }
.cases.is-ready .case-card { transition: opacity 0.9s var(--mp-ease) var(--d, 0s), transform 1.1s var(--mp-ease) var(--d, 0s), border-color 0.5s var(--mp-ease); }
.cases.is-ready:not(.is-in) .case-card { opacity: 0; transform: translateY(2.5rem) scale(0.97); }
.case-card:nth-child(2) { --d: 0.1s; }
.case-card:nth-child(3) { --d: 0.2s; }
.case-card:nth-child(4) { --d: 0.3s; }
.case-card:nth-child(5) { --d: 0.4s; }
/* Once revealed, hover lifts respond immediately. */
.cases.is-in .case-card:hover { transition-delay: 0s; }

/* ---------- Testimonials: card deck ---------- */
.testi__intro { display: flex; flex-direction: column; align-items: flex-start; row-gap: var(--wp--preset--spacing--40); }
.testi__intro > p:not(.cred-eyebrow) { max-width: 30rem; color: var(--wp--preset--color--muted); line-height: 1.7; }
.testi__controls:empty { display: none; }
.testi__controls { display: grid; grid-template-columns: auto auto; align-items: center; justify-content: space-between; gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50); width: 100%; max-width: 26rem; margin-top: var(--wp--preset--spacing--30); }
.testi__counter { font-size: var(--wp--preset--font-size--small); font-variant-numeric: tabular-nums; letter-spacing: 0.08em; color: var(--wp--preset--color--muted); }
.testi__now { font-size: var(--wp--preset--font-size--x-large); color: var(--wp--preset--color--brand-900); }
.testi__arrows { grid-row: 1; grid-column: 2; justify-self: end; display: flex; gap: var(--wp--preset--spacing--10); }
.testi__arrow { display: inline-grid; place-items: center; width: 3rem; aspect-ratio: 1; padding: 0; border: 1px solid var(--wp--preset--color--line); border-radius: 50%; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--brand-900); cursor: pointer; transition: background-color 0.4s var(--mp-ease), color 0.4s var(--mp-ease), border-color 0.4s; }
.testi__arrow svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.testi__arrow:hover { background: var(--wp--preset--color--brand-900); border-color: var(--wp--preset--color--brand-900); color: var(--wp--preset--color--surface); }
.testi__bars { grid-column: 1 / -1; display: flex; gap: 0.4rem; }
.testi__bar { flex: 1; height: 1rem; padding: 0; border: 0; background: none; cursor: pointer; }
.testi__bar span { display: block; height: 3px; border-radius: 3px; background: linear-gradient(var(--wp--preset--color--brand-700), var(--wp--preset--color--brand-700)) left / 0% 100% no-repeat, var(--wp--preset--color--line); }
.testi__bar.is-done span, .testi__bar.is-active span { background-size: 100% 100%; }
.is-in.is-playing .testi__bar.is-active span { animation: testi-progress 6.5s linear both; }
:is(.is-paused, :has(.testi-deck:hover), :has(.testi-deck:focus-within)) .testi__bar.is-active span { animation-play-state: paused; }
@keyframes testi-progress { from { background-size: 0% 100%; } }

/* Cards: grid without JS, a stacked deck with it */
.testi-deck { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: var(--wp--preset--spacing--30); }
.testi-card {
	position: relative;
	display: flex;
	flex-direction: column;
	row-gap: var(--wp--preset--spacing--40);
	margin: 0;
	padding: var(--wp--preset--spacing--60);
	border-radius: calc(var(--wp--preset--border-radius--lg) * 1.5);
	background: var(--wp--preset--color--surface);
	box-shadow: var(--wp--preset--shadow--lift);
}
/* Big quote mark */
.testi-card::before { content: "\201C"; position: absolute; top: var(--wp--preset--spacing--30); right: var(--wp--preset--spacing--50); font-size: 9rem; line-height: 1; color: color-mix(in srgb, var(--wp--preset--color--accent) 35%, transparent); pointer-events: none; }
.testi-card__stars { margin: 0; color: var(--wp--preset--color--brand-700); letter-spacing: 0.2em; }
.testi-card .wp-block-quote p { font-size: clamp(var(--wp--preset--font-size--large), 2.2vw, var(--wp--preset--font-size--x-large)); line-height: 1.4; letter-spacing: -0.01em; color: var(--wp--preset--color--brand-900); }
.testi-card .wp-block-quote cite { display: flex; align-items: center; gap: var(--wp--preset--spacing--30); margin-top: var(--wp--preset--spacing--50); line-height: 1.4; }
.testi-card .wp-block-quote cite strong { color: var(--wp--preset--color--brand-900); font-weight: 500; }
.testi-card__badge { display: inline-grid; place-items: center; width: 3rem; aspect-ratio: 1; border-radius: 50%; background: linear-gradient(135deg, var(--wp--preset--color--brand-900), var(--wp--preset--color--brand-500)); color: var(--wp--preset--color--surface); font-size: var(--wp--preset--font-size--small); font-variant-numeric: tabular-nums; }

.is-ready .testi-deck { display: grid; grid-template-columns: minmax(0, 1fr); padding-bottom: 2.5rem; touch-action: pan-y; }
.is-ready .testi-card { grid-area: 1 / 1; transform-origin: 50% 100%; transition: transform 0.85s var(--mp-ease), opacity 0.6s var(--mp-ease), box-shadow 0.6s var(--mp-ease); }
.is-ready .testi-card[data-pos="0"] { z-index: 4; }
.is-ready .testi-card[data-pos="1"] { z-index: 3; transform: translateY(1.25rem) scale(0.95); opacity: 0.75; box-shadow: var(--wp--preset--shadow--card); }
.is-ready .testi-card[data-pos="2"] { z-index: 2; transform: translateY(2.5rem) scale(0.9); opacity: 0.45; box-shadow: var(--wp--preset--shadow--card); }
.is-ready .testi-card[data-pos="3"] { z-index: 1; transform: translateY(2.5rem) scale(0.9); opacity: 0; }
.is-ready .testi-card[data-pos="out"] { z-index: 5; transform: translateX(-18%) rotate(-5deg); opacity: 0; transition-duration: 0.6s; }
/* Only the front card shows its text; it rises in after the card settles. */
.is-ready .testi-card > * { transition: opacity 0.5s var(--mp-ease), transform 0.7s var(--mp-ease); }
.is-ready .testi-card:not([data-pos="0"]) > *,
.is-ready:not(.is-in) .testi-card > * { opacity: 0; transform: translateY(0.75rem); }
.is-ready.is-in .testi-card[data-pos="0"] > * { transition-delay: 0.25s; }
.is-ready.is-in .testi-card[data-pos="0"] > :nth-child(2) { transition-delay: 0.35s; }

/* Entrance: deck rises, intro staggers */
.is-ready .testi-deck { transition: opacity 0.9s var(--mp-ease), transform 1.1s var(--mp-ease); }
.is-ready:not(.is-in) .testi-deck { opacity: 0; transform: translateY(3rem) rotate(1.5deg); }
.is-ready .testi__intro > * { transition: opacity 0.8s var(--mp-ease) var(--d, 0s), transform 1s var(--mp-ease) var(--d, 0s); }
.is-ready:not(.is-in) .testi__intro > * { opacity: 0; transform: translateY(1.5rem); }
.testi__intro > :nth-child(2) { --d: 0.1s; }
.testi__intro > :nth-child(3) { --d: 0.2s; }
.testi__intro > :nth-child(4) { --d: 0.3s; }
@media (max-width: 767px) { .testi-card { padding: var(--wp--preset--spacing--50); } .testi-card::before { font-size: 6rem; } }

/* ---------- Request an assessment: info + form ---------- */
.request__card {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--60);
	border-radius: calc(var(--wp--preset--border-radius--lg) * 2);
	background:
		radial-gradient(40rem 30rem at 100% 0%, color-mix(in srgb, var(--wp--preset--color--accent) 30%, transparent), transparent 70%),
		linear-gradient(135deg, var(--wp--preset--color--brand-900) 20%, var(--wp--preset--color--brand-700));
	color: var(--wp--preset--color--surface);
}
@media (max-width: 767px) { .request__card { padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); } }
/* Brain artwork melting into the navy, slowly floating */
.request__art { position: absolute; z-index: -1; left: -6rem; bottom: -6rem; width: min(38rem, 70%); margin: 0; opacity: 0.35; pointer-events: none; }
/* Feathered edges: the photo's near-black backdrop never shows as a box. */
.request__art img { -webkit-mask-image: radial-gradient(closest-side, #000 55%, transparent); mask-image: radial-gradient(closest-side, #000 55%, transparent); }
.request__art img { display: block; width: 100%; }
@media (prefers-reduced-motion: no-preference) { .request__art { animation: request-float 14s ease-in-out infinite alternate; } }
@keyframes request-float { to { transform: translate(2rem, -1.5rem) rotate(4deg); } }

.request__info { display: flex; flex-direction: column; align-items: flex-start; row-gap: var(--wp--preset--spacing--40); }
.request :where(h2, p, a, strong) { color: inherit; }
.request .cred-eyebrow { color: var(--wp--preset--color--accent); }
.request .is-style-lead { max-width: 34rem; color: color-mix(in srgb, var(--wp--preset--color--surface) 82%, transparent); }
.request__steps { display: flex; flex-direction: column; row-gap: var(--wp--preset--spacing--20); }
.request__step { display: flex; align-items: center; gap: var(--wp--preset--spacing--30); color: color-mix(in srgb, var(--wp--preset--color--surface) 88%, transparent); }
.request__step-num { display: inline-grid; place-items: center; width: 2.25rem; aspect-ratio: 1; border: 1px solid color-mix(in srgb, var(--wp--preset--color--surface) 30%, transparent); border-radius: 50%; font-size: var(--wp--preset--font-size--small); font-variant-numeric: tabular-nums; }
.request__phones { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); margin-top: var(--wp--preset--spacing--20); }
.request__phones a { display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.6rem 1.1rem; border: 1px solid color-mix(in srgb, var(--wp--preset--color--surface) 22%, transparent); border-radius: var(--wp--preset--border-radius--pill); background: color-mix(in srgb, var(--wp--preset--color--surface) 8%, transparent); font-size: var(--wp--preset--font-size--small); text-decoration: none; transition: background-color 0.4s var(--mp-ease), border-color 0.4s; }
.request__phones a:hover { background: color-mix(in srgb, var(--wp--preset--color--surface) 16%, transparent); border-color: color-mix(in srgb, var(--wp--preset--color--surface) 45%, transparent); }
.request__phones .gb-shape { display: inline-flex; }
.request__phones svg { width: 1rem; height: 1rem; }
.request__phones strong { font-weight: 500; }

/* Form card */
.request__form { padding: var(--wp--preset--spacing--50); border-radius: calc(var(--wp--preset--border-radius--lg) * 1.5); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--ink); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.45); }
.medpoc-request { position: relative; display: flex; flex-direction: column; row-gap: var(--wp--preset--spacing--30); }
.request .medpoc-request :where(p, a, strong) { color: inherit; }
.rq-title { margin: 0 0 var(--wp--preset--spacing--10); font-size: var(--wp--preset--font-size--large); font-weight: 500; color: var(--wp--preset--color--brand-900) !important; }
/* Floating labels */
.rq-field { position: relative; }
.rq-field input {
	width: 100%;
	box-sizing: border-box;
	padding: 1.45rem 1rem 0.55rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--preset--border-radius--lg);
	background: var(--wp--preset--color--canvas);
	color: var(--wp--preset--color--brand-900);
	font: inherit;
	font-size: var(--wp--preset--font-size--base);
	transition: border-color 0.3s, background-color 0.3s, box-shadow 0.4s var(--mp-ease);
}
.rq-field input:focus { outline: none; border-color: var(--wp--preset--color--brand-700); background: var(--wp--preset--color--surface); box-shadow: 0 0 0 4px color-mix(in srgb, var(--wp--preset--color--brand-300) 25%, transparent); }
.rq-field label { position: absolute; left: 1rem; top: 1.05rem; color: var(--wp--preset--color--muted); pointer-events: none; transform-origin: left top; transition: transform 0.35s var(--mp-ease), color 0.3s; }
.rq-field input:focus + label,
.rq-field input:not(:placeholder-shown) + label { transform: translateY(-0.65rem) scale(0.78); color: var(--wp--preset--color--brand-700); }
.rq-field input[aria-invalid="true"] { border-color: #b42318; }
.rq-field__error { display: block; min-height: 0; font-size: var(--wp--preset--font-size--small); color: #b42318; }
.rq-field__error:not(:empty) { margin-top: 0.35rem; }
.rq-consent { display: flex; align-items: flex-start; gap: 0.75rem; font-size: var(--wp--preset--font-size--small); line-height: 1.5; color: var(--wp--preset--color--muted); cursor: pointer; }
.rq-consent input { flex: none; width: 1.15rem; height: 1.15rem; margin: 0.1rem 0 0; accent-color: var(--wp--preset--color--brand-900); }
.rq-consent a { text-decoration: underline; color: var(--wp--preset--color--brand-700) !important; }
.rq-consent.is-invalid { color: #b42318; }
.rq-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rq-submit {
	position: relative;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 0.75rem;
	width: 100%;
	padding: 1.05rem 1.5rem;
	border: 0;
	border-radius: var(--wp--preset--border-radius--pill);
	background: var(--wp--preset--color--brand-900);
	color: var(--wp--preset--color--surface);
	font: inherit;
	font-weight: 500;
	cursor: pointer;
	overflow: hidden;
	transition: background-color 0.3s, transform var(--mp-duration) var(--mp-ease), box-shadow var(--mp-duration) var(--mp-ease);
}
.rq-submit::after { content: ""; width: 1.1em; height: 1.1em; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform 0.4s var(--mp-ease); }
.rq-submit:hover { background: var(--wp--preset--color--brand-700); transform: translateY(-2px); box-shadow: var(--wp--preset--shadow--lift); }
.rq-submit:hover::after { transform: translateX(0.3rem); }
.rq-submit__spinner { display: none; width: 1.1rem; height: 1.1rem; border: 2px solid color-mix(in srgb, currentColor 30%, transparent); border-top-color: currentColor; border-radius: 50%; animation: rq-spin 0.8s linear infinite; }
.is-sending .rq-submit__spinner { display: block; }
.is-sending .rq-submit::after { display: none; }
.is-sending .rq-submit { cursor: progress; opacity: 0.85; }
@keyframes rq-spin { to { transform: rotate(360deg); } }
.rq-status { margin: 0; font-size: var(--wp--preset--font-size--small); color: #b42318 !important; }
.rq-status:empty { display: none; }

/* Sent: fields fade out, a drawn check and thanks fade in */
.medpoc-request:has(.rq-done:not([hidden])) > :not(.rq-done) { visibility: hidden; }
.rq-done { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; row-gap: var(--wp--preset--spacing--20); text-align: center; animation: rq-in 0.7s var(--mp-ease) both; }
.rq-done[hidden] { display: none; }
.rq-done svg { width: 4.5rem; height: 4.5rem; fill: none; stroke: var(--wp--preset--color--brand-700); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.rq-done circle { stroke-dasharray: 151; stroke-dashoffset: 151; animation: rq-draw 0.8s var(--mp-ease) 0.15s forwards; }
.rq-done path { stroke-dasharray: 36; stroke-dashoffset: 36; animation: rq-draw 0.5s var(--mp-ease) 0.8s forwards; }
.rq-done__title { margin: 0; font-size: var(--wp--preset--font-size--x-large); color: var(--wp--preset--color--brand-900) !important; }
.rq-done p:not(.rq-done__title) { margin: 0; max-width: 22rem; color: var(--wp--preset--color--muted) !important; }
@keyframes rq-draw { to { stroke-dashoffset: 0; } }
@keyframes rq-in { from { opacity: 0; transform: scale(0.96); } }

/* Entrance (request-form.js: .is-ready, then .is-in) */
.request.is-ready .request__card { transition: clip-path 1.3s var(--mp-ease), transform 1.3s var(--mp-ease); }
.request.is-ready:not(.is-in) .request__card { clip-path: inset(6% 4% 6% 4% round calc(var(--wp--preset--border-radius--lg) * 3)); transform: scale(0.98); }
.request.is-ready .request__info > *,
.request.is-ready .request__form { transition: opacity 0.8s var(--mp-ease) var(--d, 0s), transform 1s var(--mp-ease) var(--d, 0s); }
.request.is-ready:not(.is-in) .request__info > * { opacity: 0; transform: translateY(1.5rem); }
.request.is-ready:not(.is-in) .request__form { opacity: 0; transform: translateY(3rem); }
.request__info > :nth-child(1) { --d: 0.3s; }
.request__info > :nth-child(2) { --d: 0.4s; }
.request__info > :nth-child(3) { --d: 0.5s; }
.request__info > :nth-child(4) { --d: 0.6s; }
.request__info > :nth-child(5) { --d: 0.7s; }
.request__form { --d: 0.45s; }
.request.is-ready .rq-field,
.request.is-ready .rq-consent,
.request.is-ready .rq-submit { transition: opacity 0.7s var(--mp-ease) var(--f, 0s), transform 0.9s var(--mp-ease) var(--f, 0s), border-color 0.3s, background-color 0.3s, box-shadow 0.4s var(--mp-ease); }
.request.is-ready:not(.is-in) :is(.rq-field, .rq-consent, .rq-submit) { opacity: 0; transform: translateY(1rem); }
.request .rq-field:nth-of-type(1) { --f: 0.7s; }
.request .rq-field:nth-of-type(2) { --f: 0.8s; }
.request .rq-field:nth-of-type(3) { --f: 0.9s; }
.request .rq-consent { --f: 1s; }
.request .rq-submit { --f: 1.1s; }
.request.is-in .rq-submit:hover { transition-delay: 0s; }

/* ---------- Contact: practice locations with maps ---------- */
.places__lead { max-width: 30rem; color: var(--wp--preset--color--muted); line-height: 1.7; }
.places-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--wp--preset--spacing--40); }
@media (max-width: 767px) { .places-grid { grid-template-columns: minmax(0, 1fr); } }
.place-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); overflow: hidden; border-radius: var(--wp--preset--border-radius--lg); background: var(--wp--preset--color--surface); box-shadow: var(--wp--preset--shadow--card); transition: transform var(--mp-duration) var(--mp-ease), box-shadow var(--mp-duration) var(--mp-ease); }
.place-card:hover { transform: translateY(-4px); box-shadow: var(--wp--preset--shadow--lift); }
@media (max-width: 1180px) { .place-card { grid-template-columns: minmax(0, 1fr); } }

/* Map: static (clicks go to directions), softly tinted, pulsing pin at the centre */
.place-card__map { position: relative; display: block; min-height: 15rem; overflow: hidden; background: var(--wp--preset--color--canvas); isolation: isolate; }
.place-card__map iframe { position: absolute; inset: -10% ; width: 120%; height: 120%; border: 0; pointer-events: none; filter: saturate(0.55) contrast(1.02); transition: filter 0.6s var(--mp-ease), transform 1.4s var(--mp-ease); }
.place-card:hover .place-card__map iframe { filter: saturate(0.9); transform: scale(1.05); }
.place-card__map::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(135deg, color-mix(in srgb, var(--wp--preset--color--brand-900) 18%, transparent), transparent 60%); pointer-events: none; }
.place-card__map::after { content: ""; position: absolute; left: 50%; top: 50%; z-index: 2; width: 1rem; height: 1rem; margin: -0.5rem 0 0 -0.5rem; border-radius: 50%; background: var(--wp--preset--color--brand-700); box-shadow: 0 0 0 4px var(--wp--preset--color--surface), 0 6px 14px rgba(3, 59, 106, 0.35); pointer-events: none; }
@media (prefers-reduced-motion: no-preference) {
	.place-card__map::after { animation: place-pin 2.4s var(--mp-ease) infinite; }
}
@keyframes place-pin {
	0% { box-shadow: 0 0 0 4px var(--wp--preset--color--surface), 0 0 0 4px color-mix(in srgb, var(--wp--preset--color--brand-700) 45%, transparent); }
	70%, 100% { box-shadow: 0 0 0 4px var(--wp--preset--color--surface), 0 0 0 26px transparent; }
}

.place-card__body { display: flex; flex-direction: column; align-items: flex-start; row-gap: var(--wp--preset--spacing--20); padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); }
.place-card__city { padding: 0.25rem 0.75rem; border-radius: var(--wp--preset--border-radius--pill); background: color-mix(in srgb, var(--wp--preset--color--accent) 18%, transparent); color: var(--wp--preset--color--brand-700); font-size: var(--wp--preset--font-size--small); }
.place-card h3 { font-weight: 500; }
.place-card__address { display: flex; gap: 0.6rem; margin: 0; color: var(--wp--preset--color--brand-900); line-height: 1.5; }
.place-card__address .gb-shape { display: inline-flex; flex: none; padding-top: 0.15rem; color: var(--wp--preset--color--brand-700); }
.place-card__address svg { width: 1.1rem; height: 1.1rem; }
.place-card__note { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.place-card__actions { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--10); margin-top: auto; padding-top: var(--wp--preset--spacing--20); }
.place-card__btn { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.6rem 1rem; border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--preset--border-radius--pill); color: var(--wp--preset--color--brand-900); font-size: var(--wp--preset--font-size--small); text-decoration: none; white-space: nowrap; transition: background-color 0.4s var(--mp-ease), color 0.4s var(--mp-ease), border-color 0.4s; }
.place-card__btn .gb-shape { display: inline-flex; }
.place-card__btn svg { width: 1rem; height: 1rem; transition: transform 0.4s var(--mp-ease); }
.place-card__btn:hover { border-color: var(--wp--preset--color--brand-900); }
.place-card__btn.is-primary { background: var(--wp--preset--color--brand-900); border-color: var(--wp--preset--color--brand-900); color: var(--wp--preset--color--surface); }
.place-card__btn.is-primary:hover { background: var(--wp--preset--color--brand-700); }
.place-card__btn.is-primary:hover svg { transform: translate(2px, -2px); }

.places__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50); padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50); border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--preset--border-radius--lg); background: var(--wp--preset--color--surface); }
.places__bar p { margin: 0; color: var(--wp--preset--color--muted); }
.places__bar strong { margin-right: 0.5rem; color: var(--wp--preset--color--brand-900); font-weight: 500; }
.places__bar a { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--wp--preset--color--brand-900); text-decoration: none; }
.places__bar .gb-shape { display: inline-flex; }
.places__bar svg { width: 1.1rem; height: 1.1rem; }
.places__bar .wp-block-social-links { margin: 0; }

/* Reveal (care.js: .is-ready on .places-grid, .is-in on each reached card) */
.places-grid.is-ready .place-card { transition: opacity 0.9s var(--mp-ease) var(--d, 0s), transform 1.1s var(--mp-ease) var(--d, 0s), box-shadow var(--mp-duration) var(--mp-ease); }
.places-grid.is-ready .place-card:not(.is-in) { opacity: 0; transform: translateY(2.5rem); }
.places-grid.is-ready .place-card:nth-child(even) { --d: 0.12s; }
.places-grid.is-ready .place-card .place-card__map { transition: clip-path 1.3s var(--mp-ease) calc(var(--d, 0s) + 0.15s); }
.places-grid.is-ready .place-card:not(.is-in) .place-card__map { clip-path: circle(0% at 50% 50%); }
.places-grid.is-ready .place-card.is-in .place-card__map { clip-path: circle(150% at 50% 50%); }
.places-grid.is-ready .place-card.is-in:hover { transition-delay: 0s; }

/* ---------- Doctor page (/o-iatros/): CV ---------- */
.cv-role { color: var(--wp--preset--color--brand-700); }
.cv-intro .cred-title { font-size: clamp(2.25rem, 8vw, var(--wp--preset--font-size--display)) !important; }
.cv-intro p:not(.cred-eyebrow):not(.cv-role) { max-width: 44rem; color: var(--wp--preset--color--muted); line-height: 1.75; }
.cv-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--wp--preset--spacing--40); width: 100%; padding-block: var(--wp--preset--spacing--40); border-block: 1px solid var(--wp--preset--color--line); }
.cv-facts > * { display: flex; flex-direction: column; row-gap: 0.25rem; }
.cv-facts__label { font-size: var(--wp--preset--font-size--small); letter-spacing: 0.08em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.cv-facts span:not(.cv-facts__label) { color: var(--wp--preset--color--brand-900); font-weight: 500; }
@media (max-width: 767px) { .cv-facts { grid-template-columns: minmax(0, 1fr); } }

/* Portrait: rounded photo with a floating certification badge */
.cv-portrait { position: relative; justify-self: center; width: min(100%, 28rem); }
.cv-portrait > figure { margin: 0; border-radius: var(--wp--preset--border-radius--lg); overflow: hidden; box-shadow: var(--wp--preset--shadow--lift); }
.cv-portrait > figure img { display: block; width: 100%; }
.cv-badge {
	position: absolute;
	left: calc(-1 * var(--wp--preset--spacing--50));
	bottom: var(--wp--preset--spacing--50);
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	max-width: 17rem;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40) var(--wp--preset--spacing--30) var(--wp--preset--spacing--30);
	border-radius: var(--wp--preset--border-radius--lg);
	background: color-mix(in srgb, var(--wp--preset--color--surface) 88%, transparent);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	box-shadow: var(--wp--preset--shadow--lift);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.4;
	color: var(--wp--preset--color--muted);
}
.cv-badge strong { font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--brand-900); }
.cv-badge__icon { flex: none; width: 3.5rem; margin: 0; }
.cv-badge__icon img { display: block; width: 100%; }
@media (max-width: 767px) { .cv-badge { left: var(--wp--preset--spacing--30); bottom: var(--wp--preset--spacing--30); } }
@media (prefers-reduced-motion: no-preference) {
	.cv-portrait > figure img { animation: cv-settle 1.6s var(--mp-ease) both; }
	.cv-badge { animation: cv-rise 1s var(--mp-ease) 0.5s both; }
}
@keyframes cv-settle { from { transform: scale(1.08); } }
@keyframes cv-rise { from { opacity: 0; transform: translateY(1.5rem); } }

/* Research figures */
.cv-stats { overflow: hidden; border-radius: var(--wp--preset--border-radius--lg); background: var(--wp--preset--color--brand-900); color: var(--wp--preset--color--surface); }
.cv-stat { display: flex; flex-direction: column; row-gap: var(--wp--preset--spacing--10); padding: var(--wp--preset--spacing--50); }
.cv-stat + .cv-stat { border-left: 1px solid color-mix(in srgb, var(--wp--preset--color--surface) 18%, transparent); }
.cv-stat__num { font-size: var(--wp--preset--font-size--xx-large); font-weight: 400; line-height: 1; letter-spacing: -0.02em; }
.cv-stat p:not(.cv-stat__num) { font-size: var(--wp--preset--font-size--small); opacity: 0.8; }
@media (max-width: 1024px) { .cv-stat:nth-child(3) { border-left: 0; } .cv-stat:nth-child(n+3) { border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--surface) 18%, transparent); } }

/* Section shell: sticky heading beside the content on desktop */
.cv-section + .cv-section { border-top: 1px solid var(--wp--preset--color--line); }
.cv-section__head { display: flex; flex-direction: column; row-gap: var(--wp--preset--spacing--30); }
@media (min-width: 1025px) { .cv-section__head { position: sticky; top: calc(var(--mp-header-offset) + var(--wp--preset--spacing--30)); } }
.cv-section__head .is-style-lead { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--base); }
.cv-sub { display: flex; flex-direction: column; row-gap: var(--wp--preset--spacing--40); margin-top: var(--wp--preset--spacing--60); }

/* Timeline: date column + entries on a vertical rule with dots */
.cv-timeline { position: relative; display: flex; flex-direction: column; }
.cv-timeline::before { content: ""; position: absolute; top: 0.6rem; bottom: 0.6rem; left: 9.5rem; border-left: 1px solid var(--wp--preset--color--line); }
.cv-item { position: relative; display: grid; grid-template-columns: 8.25rem minmax(0, 1fr); column-gap: var(--wp--preset--spacing--60); padding-block: var(--wp--preset--spacing--30); }
.cv-item::before { content: ""; position: absolute; top: calc(var(--wp--preset--spacing--30) + 0.45rem); left: calc(9.5rem - 0.3rem); width: 0.6rem; aspect-ratio: 1; border-radius: 50%; background: var(--wp--preset--color--surface); box-shadow: 0 0 0 1px var(--wp--preset--color--brand-300); transition: background-color 0.4s, box-shadow 0.4s; }
.cv-item:hover::before { background: var(--wp--preset--color--brand-700); box-shadow: 0 0 0 4px color-mix(in srgb, var(--wp--preset--color--brand-300) 35%, transparent); }
.cv-date { padding-top: 0.15rem; font-size: var(--wp--preset--font-size--small); font-variant-numeric: tabular-nums; color: var(--wp--preset--color--brand-700); text-align: right; white-space: nowrap; }
.cv-body { display: flex; flex-direction: column; row-gap: 0.25rem; }
.cv-body h3 { font-weight: 500; }
.cv-body p { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); line-height: 1.6; }
@media (max-width: 767px) {
	.cv-timeline::before { left: 0.3rem; }
	.cv-item { grid-template-columns: minmax(0, 1fr); row-gap: 0.25rem; padding-left: var(--wp--preset--spacing--40); }
	.cv-item::before { left: 0; top: calc(var(--wp--preset--spacing--30) + 0.35rem); }
	.cv-date { text-align: left; }
}

/* Certifications / awards cards */
.cv-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--wp--preset--spacing--40); align-items: start; }
@media (max-width: 767px) { .cv-cards { grid-template-columns: minmax(0, 1fr); } }
.cv-card { display: flex; flex-direction: column; row-gap: var(--wp--preset--spacing--30); padding: var(--wp--preset--spacing--50); }
.cv-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--wp--preset--spacing--30); }
.cv-list li { position: relative; padding-left: 1.5rem; line-height: 1.6; color: var(--wp--preset--color--muted); }
.cv-list li::before { content: ""; position: absolute; left: 0; top: 0.7em; width: 0.6rem; border-top: 1px solid var(--wp--preset--color--brand-700); }
.cv-list strong { color: var(--wp--preset--color--brand-900); font-weight: 500; }

/* Memberships as chips */
.cv-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); }
.cv-chips li { padding: 0.7rem 1.2rem; border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--preset--border-radius--pill); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--brand-900); transition: border-color 0.3s, transform 0.4s var(--mp-ease); }
.cv-chips li:hover { border-color: var(--wp--preset--color--brand-700); transform: translateY(-2px); }

/* Workshops / congresses: exclusive accordion */
.cv-more { display: flex; flex-direction: column; margin-bottom: var(--wp--preset--spacing--40); }
.cv-more details { border-bottom: 1px solid var(--wp--preset--color--line); }
.cv-more summary { display: flex; justify-content: space-between; align-items: center; padding-block: var(--wp--preset--spacing--40); cursor: pointer; list-style: none; font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--brand-900); }
.cv-more summary::-webkit-details-marker { display: none; }
.cv-more summary::after { content: "+"; font-size: 1.5em; font-weight: 300; line-height: 1; transition: transform 0.4s var(--mp-ease); }
.cv-more details[open] summary::after { transform: rotate(45deg); }
.cv-more details > .cv-list { padding-bottom: var(--wp--preset--spacing--40); }
.cv-more details::details-content { block-size: 0; overflow: clip; transition: block-size 0.5s var(--mp-ease), content-visibility 0.5s allow-discrete; }
.cv-more details[open]::details-content { block-size: auto; }
:root { interpolate-size: allow-keywords; }

/* ---------- Brain / spine line icons (theme SVGs, decorative) ---------- */
/* Out of flow in the glass card's top corner, so it never adds height under the overlapping H1. */
.hero-glass:has(> .hero-icon) { position: relative; }
.hero-icon { position: absolute; top: var(--wp--preset--spacing--40); right: var(--wp--preset--spacing--40); width: 3.5rem; margin: 0; opacity: 0.9; }
.hero-icon img, .spec-icon img { display: block; width: 100%; }
.spec-icon { width: clamp(5rem, 8vw, 7rem); margin: 0; }
@media (prefers-reduced-motion: no-preference) {
	.spec-icon img { animation: mp-float 6s ease-in-out infinite; }
}
@keyframes mp-float {
	50% { transform: translateY(-0.4rem) rotate(-2deg); }
}

/* ---------- Articles & news: tabs + bento post cards ---------- */
.news-tabs { position: relative; display: flex; gap: 0.25rem; padding: 0.35rem; border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--preset--border-radius--pill); background: var(--wp--preset--color--surface); }
.news-tab { position: relative; z-index: 1; padding: 0.7rem 1.35rem; border-radius: var(--wp--preset--border-radius--pill); color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); text-decoration: none; white-space: nowrap; cursor: pointer; transition: color 0.45s var(--mp-ease); }
.news-tab:hover { color: var(--wp--preset--color--brand-900); }
.news-tab.is-active { color: var(--wp--preset--color--surface); }
.news-tabs__pill { position: absolute; top: 0.35rem; bottom: 0.35rem; left: 0; width: var(--pill-w, 0); transform: translateX(var(--pill-x, 0)); border-radius: var(--wp--preset--border-radius--pill); background: var(--wp--preset--color--brand-900); transition: transform 0.6s cubic-bezier(.65, 0, .35, 1), width 0.6s cubic-bezier(.65, 0, .35, 1); }
/* Without JS the tabs are anchors and both panels show. */
.news-section:not(.is-tabbed) .news-tab { color: var(--wp--preset--color--brand-900); }
.news-panels { display: grid; }
.is-tabbed .news-panel { grid-area: 1 / 1; }
.news-panel[hidden] { display: none; }
.news-panel { display: flex; flex-direction: column; row-gap: var(--wp--preset--spacing--40); }
.news-panel__all { display: flex; justify-content: flex-end; }

/* Bento: first post tall with the photo behind, the others as horizontal cards. */
.news-panel .wp-block-post-template { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: var(--wp--preset--spacing--40); margin: 0; padding: 0; list-style: none; }
.news-panel .wp-block-post-template > li { margin: 0; min-width: 0; }
.news-panel .wp-block-post-template > li:first-child { grid-row: 1 / 3; }
@media (max-width: 767px) { .news-panel .wp-block-post-template { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; } .news-panel .wp-block-post-template > li:first-child { grid-row: auto; } }

.post-card { position: relative; display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); height: 100%; overflow: hidden; isolation: isolate; border-radius: var(--wp--preset--border-radius--lg); background: var(--wp--preset--color--surface); box-shadow: var(--wp--preset--shadow--card); transition: transform var(--mp-duration) var(--mp-ease), box-shadow var(--mp-duration) var(--mp-ease); }
.post-card:hover { transform: translateY(-4px); box-shadow: var(--wp--preset--shadow--lift); }
.post-card .wp-block-post-featured-image { margin: 0; overflow: hidden; }
.post-card .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--mp-ease); }
.post-card:hover .wp-block-post-featured-image img { transform: scale(1.06); }
.post-card__body { display: flex; flex-direction: column; justify-content: center; row-gap: var(--wp--preset--spacing--20); padding: var(--wp--preset--spacing--40); }
.post-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.75rem; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.post-card__meta .wp-block-post-terms a { position: relative; z-index: 2; padding: 0.25rem 0.75rem; border-radius: var(--wp--preset--border-radius--pill); background: color-mix(in srgb, var(--wp--preset--color--accent) 18%, transparent); color: var(--wp--preset--color--brand-700); text-decoration: none; }
.post-card .wp-block-post-title { margin: 0; font-size: var(--wp--preset--font-size--medium); font-weight: 500; line-height: 1.3; }
.post-card .wp-block-post-title a { color: var(--wp--preset--color--brand-900); text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size 0.6s var(--mp-ease); }
.post-card:hover .wp-block-post-title a { background-size: 100% 1px; }
.post-card .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; } /* whole card is the hit area */
.post-card .wp-block-post-excerpt { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.post-card .wp-block-post-excerpt__more-text { display: none; }
.news-panel li:not(:first-child) .wp-block-post-excerpt { display: none; }
/* Featured: photo fills the card, text on a navy fade */
.news-panel li:first-child .post-card { grid-template-columns: minmax(0, 1fr); min-height: 28rem; color: var(--wp--preset--color--surface); }
.news-panel li:first-child .post-card > * { grid-area: 1 / 1; }
.news-panel li:first-child .wp-block-post-featured-image { z-index: -2; }
.news-panel li:first-child .post-card::after { content: ""; grid-area: 1 / 1; z-index: -1; background: linear-gradient(to top, color-mix(in srgb, var(--wp--preset--color--brand-900) 92%, transparent) 10%, transparent 70%); }
.news-panel li:first-child .post-card__body { justify-content: flex-end; padding: var(--wp--preset--spacing--50); }
.news-panel li:first-child .post-card__meta { color: color-mix(in srgb, var(--wp--preset--color--surface) 75%, transparent); }
.post-card__meta .wp-block-post-date, .post-card__meta time { color: inherit; }
.news-panel li:first-child .post-card__meta .wp-block-post-terms a { background: color-mix(in srgb, var(--wp--preset--color--surface) 18%, transparent); color: var(--wp--preset--color--surface); }
.news-panel li:first-child .wp-block-post-title { font-size: var(--wp--preset--font-size--x-large); }
.news-panel li:first-child .wp-block-post-title a { color: var(--wp--preset--color--surface); }
.news-panel li:first-child .wp-block-post-excerpt { max-width: 36rem; color: color-mix(in srgb, var(--wp--preset--color--surface) 80%, transparent); }
@media (max-width: 767px) { .post-card { grid-template-columns: minmax(0, 1fr); } .post-card .wp-block-post-featured-image img { aspect-ratio: 16 / 9; } .news-panel li:first-child .post-card { min-height: 22rem; } }

/* Motion: entrance once (news.js: .is-ready → .is-in) and a card stagger on every tab switch (.is-shown) */
.news-section.is-ready .news__head > * { transition: opacity 0.8s var(--mp-ease) var(--d, 0s), transform 1s var(--mp-ease) var(--d, 0s); }
.news-section.is-ready:not(.is-in) .news__head > * { opacity: 0; transform: translateY(1.5rem); }
.news__head > :nth-child(2) { --d: 0.15s; }
.news-section.is-ready:not(.is-in) .news-panel li { opacity: 0; transform: translateY(2rem); }
@media (prefers-reduced-motion: no-preference) {
	.news-section.is-in .news-panel.is-shown li { animation: news-card-in 0.9s var(--mp-ease) both; }
	.news-section.is-in .news-panel.is-shown li:nth-child(2) { animation-delay: 0.1s; }
	.news-section.is-in .news-panel.is-shown li:nth-child(3) { animation-delay: 0.2s; }
	.news-section.is-in .news-panel.is-shown li:first-child .wp-block-post-featured-image img { animation: news-photo-in 1.6s var(--mp-ease) both; }
	.news-section.is-in .news-panel.is-shown .news-panel__all { animation: news-card-in 0.9s var(--mp-ease) 0.3s both; }
}
@keyframes news-card-in { from { opacity: 0; transform: translateY(2rem); } }
@keyframes news-photo-in { from { transform: scale(1.12); } }

/* ---------- Scroll reveal: CSS scroll-driven, no JS, opacity/transform only ---------- */
@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) {
		.wp-block-post-content > :nth-child(n+3):not(.care):not(.cases):not(.request):not(:has(.spec-duo, .testi-deck, .news-tabs, .places-grid)),
		.reveal {
			animation: mp-reveal linear both;
			animation-timeline: view();
			animation-range: entry 0% entry 14rem;
		}
	}
}
@keyframes mp-reveal {
	from { opacity: 0; transform: translateY(2.5rem); }
	to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* ---------- Context helpers ---------- */
.is-inverted .wp-block-button__link,
.is-inverted .wp-block-button.is-style-arrow .wp-block-button__link,
.is-inverted .wp-block-button.is-style-outline .wp-block-button__link { color: var(--wp--preset--color--surface); border-color: var(--wp--preset--color--surface); }
.is-inverted .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--brand-900); }
.is-style-plain { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--wp--preset--spacing--10); }
@media (max-width: 767px) { .is-hidden-mobile { display: none; } }
