/**
 * Revaxis MD — theme styles.
 *
 * Design tokens (colour, type, spacing) live in theme.json and arrive here as
 * `--wp--preset--*` custom properties. This file only carries layout and
 * component styling that theme.json cannot express.
 *
 * Breakpoints follow the original design:
 *   ≥1301  desktop
 *   ≤1300  narrow desktop (container becomes fluid)
 *   ≤1024  tablet
 *   ≤767   mobile
 */

/* ------------------------------------------------------------------ tokens */

:root {
	--mdc-gradient: var(--wp--preset--gradient--brand, linear-gradient(90deg, #2E7D9C 0%, #2A6E8B 100%));
	--mdc-primary: var(--wp--preset--color--primary, #2E7D9C);
	--mdc-accent: var(--wp--preset--color--accent, #3FA88A);
	--mdc-heading: var(--wp--preset--color--heading, #0C2E3E);
	--mdc-body-text: var(--wp--preset--color--body-text, #425466);
	--mdc-kpi: var(--wp--preset--color--kpi, #C9A227);
	--mdc-lilac: var(--wp--preset--color--secondary, #F5F8FA);

	/* Derived client palette.
	   Every value below is computed from the client's own three brand colours —
	   teal #2E7D9C, green #3FA88A and gold #C9A227 — by moving lightness and
	   saturation only. Hue is never changed, so nothing here is borrowed from
	   the reference site. Roles are assigned once, centrally, so components stop
	   reaching for the strongest brand colour by default. */
	--mdc-primary-dark: #24607A;   /* teal L 40% -> 31%: hover + readable text  */
	--mdc-primary-mid: #7FB3C8;    /* teal lightened: decorative gradient stop  */
	--mdc-primary-tint: #EAF2F6;   /* teal at L 94%: large tinted surfaces      */
	--mdc-primary-tint-strong: #CFE3EC; /* teal at L 87%: borders on tint       */
	--mdc-accent-dark: #2A7A64;    /* green L 45% -> 32%: 5.2:1 on white text   */
	/* The client's gold at full lightness carries white text at only 2.45:1,
	   below WCAG AA. Same hue (45deg), lightness 47% -> 32%, which reaches
	   4.6:1 while still reading as the client's gold. */
	--mdc-kpi-deep: #8A6F1C;
	--mdc-accent-tint: #E9F5F1;    /* green at L 94%: supporting surfaces       */
	--mdc-surface: #FFFFFF;        /* neutral card / page surface               */
	--mdc-surface-alt: #F5F8FA;    /* neutral alternate section background      */
	/* Aliases the navigation styles reference. Without these the submenu
	   panels resolve to `transparent` and page content shows through them. */
	--mdc-white: var(--mdc-surface);
	--mdc-secondary: var(--mdc-surface-alt);
	--mdc-border: var(--wp--preset--color--divider, #E2E8ED);
	--mdc-muted-text: #6B7C8C;     /* neutral muted body copy                   */
	--mdc-focus: var(--mdc-primary);
	--mdc-focus-ring: rgba(46, 125, 156, 0.18);

	--mdc-radius-card: 20px;
	--mdc-radius-md: 12px;
	--mdc-radius-section: 30px;
	--mdc-radius-pill: 999px;
	--mdc-shadow-card: 0 4px 30px rgba(12, 46, 62, 0.08);
	--mdc-shadow-float: 0 10px 40px rgba(12, 46, 62, 0.12);
	--mdc-transition: 0.3s ease-in-out;
	--mdc-icon-rocket: url('data:image/svg+xml;utf8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3Cpath%20d=%22M505.12%2019.09c-1.18-5.57-6.14-10.52-11.71-11.7C443.71-3.11%20320.27-.66%20256%2063.6c-64.27%2064.27-66.72%20187.7-55.79%20237.42%201.18%205.57%206.14%2010.52%2011.71%2011.7%2049.72%2010.93%20173.16%208.48%20237.42-55.79%2064.27-64.27%2066.72-187.7%2055.78-237.84zM334.06%20178c-15.62-15.62-15.62-40.94%200-56.56s40.94-15.62%2056.56%200%2015.62%2040.94%200%2056.56-40.93%2015.62-56.56%200zM48.4%20400.14c9.98-9.98%2021.95-16.15%2034.62-18.5-1.11%202.75-1.83%205.68-1.83%208.81%200%2013.25%2010.75%2024%2024%2024%203.13%200%206.06-.72%208.81-1.83-2.35%2012.67-8.52%2024.64-18.5%2034.62C82.19%20459.05%2024%20480%200%20480c0-24%2020.95-82.19%2048.4-79.86z%22/%3E%3C/svg%3E');
	--mdc-icon-support: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32C132.3 32 32 132.3 32 256v144c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48v-64c0-26.5-21.5-48-48-48H68.5C75.1 165.6 156.5 80 256 80s180.9 85.6 187.5 208H400c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h5.8c-9.4 46.5-55.4 82-110.3 82.9-3.9-15-17.5-26-33.5-26h-32c-19.6 0-35.8 16-35.8 35.8S226.4 480 246 480h32c15.5 0 28.8-9.9 33.7-23.7C398.5 454.5 456 391.8 456 314.9V256c0-123.7-100.3-224-224-224z"/></svg>');
	--mdc-icon-envelope: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.4 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"/></svg>');
	--mdc-icon-pin: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M172.3 501.7C27 291 0 269.4 0 192 0 86 86 0 192 0s192 86 192 192c0 77.4-27 99-172.3 309.7-9.5 13.8-29.9 13.8-39.4 0zM192 272a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"/></svg>');
	--mdc-icon-caret: url('data:image/svg+xml;utf8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20320%20512%22%3E%3Cpath%20d=%22M31.3%20192h257.3c17.8%200%2026.7%2021.5%2014.1%2034.1L174.1%20354.8c-7.8%207.8-20.5%207.8-28.3%200L17.2%20226.1C4.6%20213.5%2013.5%20192%2031.3%20192z%22/%3E%3C/svg%3E');
	--mdc-icon-graph: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M576 32v416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32s32 14.3 32 32v416H544c17.7 0 32 14.3 32 32zM504 96c13.3 0 24 10.7 24 24v96c0 13.3-10.7 24-24 24s-24-10.7-24-24v-38.1l-84.7 84.7c-9.4 9.4-24.6 9.4-33.9 0L320 221.3l-84.7 84.7c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l101.7-101.7c9.4-9.4 24.6-9.4 33.9 0L400 233.4l67-67H432c-13.3 0-24-10.7-24-24s10.7-24 24-24h72z"/></svg>');
	--mdc-icon-user: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3 0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z"/></svg>');
	--mdc-icon-calendar: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H344V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H152V24zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z"/></svg>');
	--mdc-icon-clock: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM232 120c0-13.3 10.7-24 24-24s24 10.7 24 24V256c0 6.4-2.5 12.5-7 17l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l65-65V120z"/></svg>');
	--mdc-section-pad: 100px;
}

/* Final blog archive precedence: keep the archive cards independent from
   legacy blog/article styling that appears earlier in this stylesheet. */
.mdc-blog-archive .mdc-blog-hero {
	min-height: 0 !important;
	height: auto !important;
	margin: 0 !important;
	padding: 62px 24px 58px !important;
	border-radius: 0 !important;
	background: #f2f6f8 !important;
	border-bottom: 1px solid #e4ebef !important;
}

.mdc-blog-archive .mdc-blog-content {
	width: min(1300px, calc(100% - 40px)) !important;
	max-width: 1300px !important;
	margin: 0 auto !important;
	padding: 64px 0 72px !important;
}

.mdc-blog-archive .mdc-post-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 28px !important;
	margin: 0 !important;
}

.mdc-blog-archive .mdc-post-card {
	display: flex !important;
	flex-direction: column !important;
	min-width: 0 !important;
	min-height: 100% !important;
	padding: 0 0 24px !important;
	border: 1px solid #e4ebef !important;
	border-radius: 14px !important;
	overflow: hidden !important;
	box-shadow: 0 1px 2px rgba(15, 53, 71, .04) !important;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background-color .25s ease !important;
}

.mdc-blog-archive .mdc-post-card:hover,
.mdc-blog-archive .mdc-post-card:focus-within {
	transform: translateY(-4px) !important;
	border-color: var(--mdc-primary) !important;
	background-color: var(--mdc-primary-tint) !important;
	box-shadow: 0 18px 38px rgba(12, 46, 62, .16) !important;
}

.mdc-blog-archive .mdc-post-card .wp-block-post-featured-image {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1.6 !important;
	margin: 0 !important;
	border-radius: 0 !important;
	overflow: hidden !important;
}

.mdc-blog-archive .mdc-post-card .wp-block-post-featured-image img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	object-fit: cover !important;
	object-position: center !important;
	transform: none !important;
	transition: transform .45s ease !important;
}

.mdc-blog-archive .mdc-post-card:hover .wp-block-post-featured-image img,
.mdc-blog-archive .mdc-post-card:focus-within .wp-block-post-featured-image img {
	transform: scale(1.04) !important;
}

.mdc-blog-archive .mdc-post-card__category,
.mdc-blog-archive .mdc-post-card__meta,
.mdc-blog-archive .mdc-post-card .wp-block-post-title,
.mdc-blog-archive .mdc-post-card .wp-block-post-excerpt,
.mdc-blog-archive .mdc-post-card__more {
	margin-left: 24px !important;
	margin-right: 24px !important;
	padding-inline: 0 !important;
}

.mdc-blog-archive .mdc-post-card__category { margin-top: 22px !important; }
.mdc-blog-archive .mdc-post-card .wp-block-post-title { margin-top: 10px !important; }
.mdc-blog-archive .mdc-post-card .wp-block-post-excerpt { margin-top: 10px !important; }
.mdc-blog-archive .mdc-post-card__meta { margin-top: auto !important; padding-top: 18px !important; }
.mdc-blog-archive .mdc-post-card__more { margin-top: 0 !important; padding-top: 14px !important; }

@media (max-width: 900px) {
	.mdc-blog-archive .mdc-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.mdc-blog-archive .mdc-blog-featured { grid-template-columns: 1fr !important; }
}

@media (max-width: 600px) {
	.mdc-blog-archive .mdc-blog-hero { padding: 46px 20px 42px !important; }
	.mdc-blog-archive .mdc-blog-content { width: min(100% - 32px, 520px) !important; padding: 40px 0 52px !important; }
	.mdc-blog-archive .mdc-post-grid { grid-template-columns: 1fr !important; gap: 22px !important; }
}

.mdc-demo-modal[aria-hidden="true"]{display:none}.mdc-demo-modal{position:fixed;z-index:9999;inset:0;display:grid;place-items:center;padding:20px}.mdc-demo-modal__backdrop{position:absolute;inset:0;background:rgba(8,26,36,.72)}.mdc-demo-modal__panel{position:relative;width:min(800px,100%);padding:28px 30px 32px;border-radius:20px;background:#f3f8f9;box-shadow:0 24px 70px rgba(0,0,0,.3)}.mdc-demo-modal__panel h2{margin:0 0 24px;text-align:center;font-size:42px}.mdc-demo-modal__close{position:absolute;top:13px;right:17px;border:0;background:transparent;color:var(--mdc-heading);font-size:30px;cursor:pointer}.mdc-demo-modal__body{display:grid;grid-template-columns:.95fr 1fr;gap:38px;align-items:center}.mdc-demo-modal__visual{position:relative;min-height:350px;overflow:hidden;border-radius:14px;background:#e4f0f1}.mdc-demo-modal__visual img{width:100%;height:350px;object-fit:cover;object-position:center top}.mdc-demo-modal__visual span{position:absolute;right:12px;top:42%;padding:9px 12px;border-radius:7px;background:#fff;color:var(--mdc-heading);font-size:12px;box-shadow:0 4px 15px rgba(0,0,0,.1)}.mdc-demo-modal form{display:grid;gap:11px}.mdc-demo-modal label{display:grid;gap:5px;color:var(--mdc-heading);font-weight:600}.mdc-demo-modal input,.mdc-demo-modal textarea{width:100%;padding:11px 13px;border:1px solid #9bb0b8;border-radius:6px;background:#fff;font:inherit}.mdc-demo-modal form button{min-height:50px;border:0;border-radius:999px;background:var(--mdc-primary);color:#fff;font:inherit;font-weight:700;cursor:pointer}.mdc-demo-modal form button:hover{background:var(--mdc-primary-dark)}.mdc-demo-modal-open{overflow:hidden}@media(max-width:650px){.mdc-demo-modal{padding:12px}.mdc-demo-modal__panel{padding:26px 20px}.mdc-demo-modal__panel h2{font-size:33px}.mdc-demo-modal__body{grid-template-columns:1fr;gap:20px}.mdc-demo-modal__visual{display:none}}

.mdc-case-shell{width:min(1180px,calc(100% - 40px));margin-inline:auto}.mdc-case-eyebrow{margin:0 0 12px;color:var(--mdc-accent);font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.mdc-case-hero{padding:92px 0 86px;background:linear-gradient(125deg,#f4f9fa,#e3f0f1)}.mdc-case-hero>div{max-width:830px;margin-left:max(20px,calc((100% - 1180px)/2))}.mdc-case-hero h1{max-width:800px;margin:0;font-size:clamp(42px,5vw,66px);line-height:1.04}.mdc-case-hero p:not(.mdc-case-eyebrow){max-width:660px;margin:22px 0 30px;font-size:18px;line-height:1.65}.mdc-case-hero a,.mdc-case-cta a{display:inline-flex;gap:10px;align-items:center;padding:17px 25px;border-radius:999px;background:linear-gradient(90deg,var(--mdc-primary),var(--mdc-primary-dark));color:#fff;font-weight:700}.mdc-case-stories{padding:90px 0}.mdc-case-head{max-width:600px;margin-bottom:36px}.mdc-case-head h2,.mdc-case-method h2,.mdc-case-cta h2{margin:0;font-size:clamp(32px,3.2vw,46px)}.mdc-case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.mdc-case-grid article{min-height:365px;padding:29px;border:1px solid #d8e6e9;border-radius:20px;background:#fff;box-shadow:0 6px 19px rgba(12,46,62,.05);transition:transform .25s,box-shadow .25s}.mdc-case-grid article:hover{transform:translateY(-5px);box-shadow:0 16px 30px rgba(12,46,62,.12)}.mdc-case-grid article>span{display:grid;place-items:center;width:44px;height:44px;margin-bottom:32px;border-radius:50%;background:#e6f2f1;color:var(--mdc-primary);font-weight:700}.mdc-case-tag{margin:0;color:var(--mdc-accent);font-size:13px;font-weight:700;text-transform:uppercase}.mdc-case-grid h3{margin:8px 0 12px;font-size:23px;line-height:1.25}.mdc-case-grid p:not(.mdc-case-tag){line-height:1.6}.mdc-case-grid ul{margin:18px 0 0;padding:0;list-style:none}.mdc-case-grid li{padding:8px 0;border-top:1px solid #e5edef;font-size:14px}.mdc-case-grid li:before{margin-right:8px;color:var(--mdc-accent);content:'✓'}.mdc-case-method{padding:76px 0;background:#0c2e3e;color:#fff}.mdc-case-method h2{max-width:650px;color:#fff}.mdc-case-method ol{display:grid;grid-template-columns:repeat(3,1fr);gap:38px;margin:38px 0 0;padding:0;list-style:none}.mdc-case-method li{border-top:1px solid #ffffff36;padding-top:18px}.mdc-case-method b{display:block;margin-bottom:9px;font-size:22px}.mdc-case-method span{color:#d4e3e6;line-height:1.6}.mdc-case-cta{margin-top:88px;margin-bottom:88px;padding:52px;border-radius:24px;background:#eaf3f3}.mdc-case-cta p:not(.mdc-case-eyebrow){max-width:660px;margin:15px 0 25px;line-height:1.6}@media(max-width:800px){.mdc-case-grid,.mdc-case-method ol{grid-template-columns:1fr}.mdc-case-grid article{min-height:0}.mdc-case-hero{padding:65px 0}.mdc-case-hero h1{font-size:42px}.mdc-case-stories{padding:62px 0}.mdc-case-method{padding:60px 0}.mdc-case-cta{margin-top:60px;margin-bottom:60px;padding:34px 25px}}

.mdc-case-stats{padding:22px 0;background:#0c2e3e;color:#fff}.mdc-case-stats>div{display:flex;align-items:center;gap:38px}.mdc-case-stats p{max-width:210px;margin:0;color:#d3e2e5;font-size:12px;line-height:1.45}.mdc-case-stats>div>div{display:grid;grid-template-columns:repeat(4,1fr);flex:1}.mdc-case-stats span{padding:5px 24px;border-left:1px solid #ffffff30}.mdc-case-stats b{display:block;color:#fff;font-size:28px}.mdc-case-stats small{color:#d3e2e5}.mdc-case-library{padding:85px 0}.mdc-case-filters{display:flex;flex-wrap:wrap;gap:9px;margin-top:25px}.mdc-case-filters button{padding:9px 14px;border:1px solid #cfe0e3;border-radius:999px;background:#fff;color:var(--mdc-heading);font:inherit;font-size:14px;font-weight:600;cursor:pointer}.mdc-case-filters button[aria-pressed="true"]{border-color:var(--mdc-primary);background:var(--mdc-primary);color:#fff}.mdc-case-study-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.mdc-case-study{position:relative;padding:30px;border:1px solid #d8e6e9;border-radius:20px;background:#fff;box-shadow:0 6px 19px rgba(12,46,62,.05)}.mdc-case-study:first-child{border-color:var(--mdc-primary);box-shadow:0 15px 30px rgba(12,46,62,.1)}.mdc-case-study__number{position:absolute;top:25px;right:28px;color:#b7d5dc;font-size:28px;font-weight:700}.mdc-case-study__tag{margin:0;color:var(--mdc-accent);font-size:13px;font-weight:700;text-transform:uppercase}.mdc-case-study h3{max-width:80%;margin:7px 0 23px;font-size:24px}.mdc-case-study>div b{color:var(--mdc-heading);font-size:14px}.mdc-case-study>div p{margin:5px 0 15px;line-height:1.55}.mdc-case-study ul{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;list-style:none}.mdc-case-study li{padding:7px 10px;border-radius:999px;background:#eaf3f3;color:var(--mdc-primary-dark);font-size:13px;font-weight:700}.mdc-case-study[hidden]{display:none}@media(max-width:800px){.mdc-case-stats>div{display:block}.mdc-case-stats p{max-width:none;margin-bottom:16px}.mdc-case-stats>div>div{grid-template-columns:repeat(2,1fr);gap:12px}.mdc-case-stats span{padding-left:12px}.mdc-case-study-grid{grid-template-columns:1fr}.mdc-case-library{padding:60px 0}}

.mdc-case-library .mdc-case-head{max-width:none}.mdc-case-library .mdc-case-head h2{max-width:600px}

/* Form-first request-demo refinement. */
.mdc-demo-modal__panel{width:min(610px,100%);padding:42px 48px;background:linear-gradient(145deg,#f5f9fa,#eaf3f3);border:1px solid rgba(46,125,156,.18)}.mdc-demo-modal__eyebrow{margin:0 0 9px;color:var(--mdc-accent);font-size:13px;font-weight:700;letter-spacing:.08em;text-align:center;text-transform:uppercase}.mdc-demo-modal__panel h2{margin:0;color:var(--mdc-heading);font-size:clamp(34px,5vw,46px);line-height:1.1}.mdc-demo-modal__lead{max-width:440px;margin:12px auto 27px;color:var(--mdc-body-text);text-align:center}.mdc-demo-modal form{gap:21px}.mdc-demo-modal__fields{display:grid;grid-template-columns:1fr 1fr;gap:17px}.mdc-demo-modal__fields label:last-child{grid-column:1/-1}.mdc-demo-modal label{gap:7px;font-size:14px}.mdc-demo-modal input,.mdc-demo-modal textarea{box-sizing:border-box;padding:13px 14px;border-color:#c6d8dc;border-radius:10px;outline:0;transition:border-color .2s,box-shadow .2s}.mdc-demo-modal input:focus,.mdc-demo-modal textarea:focus{border-color:var(--mdc-primary);box-shadow:0 0 0 3px rgba(46,125,156,.13)}.mdc-demo-modal form button{display:flex;align-items:center;justify-content:center;gap:9px;min-height:54px;background:linear-gradient(90deg,var(--mdc-primary),var(--mdc-primary-dark));transition:transform .2s,box-shadow .2s}.mdc-demo-modal form button:hover{transform:translateY(-2px);box-shadow:0 9px 20px rgba(46,125,156,.22)}@media(max-width:650px){.mdc-demo-modal__panel{padding:37px 24px}.mdc-demo-modal__fields{grid-template-columns:1fr}.mdc-demo-modal__fields label:last-child{grid-column:auto}.mdc-demo-modal__lead{font-size:15px}}

.home .mdc-onshore-offshore{position:relative;overflow:hidden;padding:90px 20px;background:#f7fbfb}.mdc-onshore-offshore__intro{max-width:850px;margin:0 auto 38px;text-align:center}.mdc-onshore-offshore__intro h2{margin:0;font-size:clamp(32px,3.5vw,48px)}.mdc-onshore-offshore__intro>p:last-child{max-width:760px;margin:16px auto 0;font-size:17px}.mdc-onshore-offshore__rule{display:block;width:46px;height:3px;margin:18px auto;background:var(--mdc-kpi)}.mdc-onshore-offshore__table-wrap{max-width:1120px;margin:auto;overflow:hidden;border:1px solid #d7e6e9;border-radius:18px;background:#fff;box-shadow:0 12px 30px rgba(12,46,62,.1)}.mdc-onshore-offshore table{width:100%;border-collapse:collapse}.mdc-onshore-offshore th,.mdc-onshore-offshore td{padding:19px 28px;border-bottom:1px solid #e2ebed;text-align:left}.mdc-onshore-offshore thead th{background:#0c2e3e;color:#fff;font-size:17px}.mdc-onshore-offshore thead th span{margin-right:10px;color:var(--mdc-kpi)}.mdc-onshore-offshore tbody th{width:29%;background:#fcf8ee;color:var(--mdc-heading);font-weight:700}.mdc-onshore-offshore tbody th span{display:inline-grid;place-items:center;width:28px;height:28px;margin-right:12px;border:1px solid var(--mdc-kpi);border-radius:50%;color:#b98d13}.mdc-onshore-offshore tbody tr:last-child>*{border-bottom:0}.mdc-onshore-offshore tbody tr:hover>*{background-color:#f1f8f8}.mdc-onshore-offshore__trust{display:grid;grid-template-columns:1.2fr .8fr;max-width:980px;margin:28px auto 0;border:1px solid #d6e6e8;border-radius:20px;background:#fff}.mdc-onshore-offshore__trust>div{display:flex;gap:16px;align-items:center;padding:24px 28px}.mdc-onshore-offshore__trust>div+div{border-left:1px solid #d6e6e8}.mdc-onshore-offshore__trust-icon,.mdc-onshore-offshore__growth{display:grid;place-items:center;flex:0 0 56px;width:56px;height:56px;border-radius:50%;background:#e3f1ef;color:var(--mdc-accent);font-size:27px}.mdc-onshore-offshore__trust h3{margin:0 0 5px;color:var(--mdc-accent);font-size:21px}.mdc-onshore-offshore__trust p{margin:0;line-height:1.5}.mdc-onshore-offshore__trust strong{color:var(--mdc-accent)}
@media(max-width:767px){.home .mdc-onshore-offshore{padding:62px 20px}.mdc-onshore-offshore__intro>p:last-child{font-size:16px}.mdc-onshore-offshore__table-wrap{overflow:visible;border:0;box-shadow:none;background:transparent}.mdc-onshore-offshore table,.mdc-onshore-offshore tbody,.mdc-onshore-offshore tr,.mdc-onshore-offshore td{display:block}.mdc-onshore-offshore thead{display:none}.mdc-onshore-offshore tr{margin-bottom:12px;border:1px solid #d7e6e9;border-radius:14px;background:#fff;overflow:hidden}.mdc-onshore-offshore tbody th{display:block;width:auto;padding:14px 18px;border:0}.mdc-onshore-offshore td{padding:11px 18px 13px 48%;position:relative;border-top:1px solid #e2ebed}.mdc-onshore-offshore td:before{position:absolute;left:18px;color:var(--mdc-heading);font-size:13px;font-weight:700;content:attr(data-label)}.mdc-onshore-offshore__trust{grid-template-columns:1fr}.mdc-onshore-offshore__trust>div+div{border-top:1px solid #d6e6e8;border-left:0}}

/* Services page — isolated from the homepage, detail pages, and Specialties. */
/* ======================================================================
   Services page (/services/)
   Mirrors the client-approved reference: a compact breadcrumb hero over a
   single four-column service directory. Cards carry photography instead of
   icons. Rooted on `.page-services` so no other route is affected.
   ====================================================================== */

.page-services {
	--svc-shell: 1200px;
	--svc-dark: #0A2634;
}

.page-services .mdc-main--full {
	background: #fff;
}

/* The services landing page begins with its custom service content rather
   than the generic page-template title band. */
.page-services .mdc-page-header {
	display: none;
}

.page-case-studies .mdc-page-header {
	display: none;
}

/* Service detail pages use the shared inner landing layout and do not need
   the generic page-template title band either. */
.parent-pageid-6 .mdc-page-header {
	display: none;
}

/* The shortcode renders inside the constrained post-content wrapper;
   `alignfull` plus these resets let the hero run edge to edge. */
/* Flex column rather than block: the template's newlines between sections
   would otherwise render as an anonymous line box, adding dead space above
   the footer. */
.page-services .mdc-services-page {
	display: flex;
	flex-direction: column;
	width: auto;
	max-width: none;
	overflow-x: clip;
}

/* ------------------------------------------------------ breadcrumb hero */

.page-services .mdc-services-hero {
	padding: 40px 20px;
	background: linear-gradient(120deg, var(--svc-dark) 0%, var(--mdc-primary) 100%);
}

.page-services .mdc-services-hero__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 137px;
	max-width: var(--svc-shell);
	margin-inline: auto;
	text-align: center;
}

.page-services .mdc-services-hero__eyebrow {
	margin: 0;
	color: var(--mdc-kpi);
	font-size: 16px;
	font-weight: 600;
}

.page-services .mdc-services-hero h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(34px, 5vw, 60px);
	font-weight: 600;
	line-height: 1.1;
}

.page-services .mdc-services-crumbs {
	display: flex;
	gap: 10px;
	align-items: center;
	color: rgba(255, 255, 255, .78);
	font-size: 15px;
}

.page-services .mdc-services-crumbs a {
	color: rgba(255, 255, 255, .78);
	text-decoration: none;
	transition: color .2s ease;
}

.page-services .mdc-services-crumbs a:hover,
.page-services .mdc-services-crumbs a:focus-visible {
	color: #fff;
	text-decoration: underline;
}

.page-services .mdc-services-crumbs [aria-current] {
	color: #fff;
	font-weight: 600;
}

/* -------------------------------------------------- service directory */

.page-services .mdc-services-directory {
	padding: 120px 20px 90px;
}

.page-services .mdc-services-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
	max-width: var(--svc-shell);
	margin: 0 auto;
	padding: 0;
	list-style: none;
}

.page-services .mdc-services-card {
	min-width: 0;
	opacity: 1;
	transform: none;
	transition: opacity .45s ease var(--mdc-reveal-delay, 0ms), transform .45s ease var(--mdc-reveal-delay, 0ms);
}

.page-services .mdc-services-card.is-visible {
	opacity: 1;
	transform: none;
}

.page-services .mdc-services-card > a {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
	gap: 20px;
	height: 100%;
	padding: 0 0 28px;
	border: 1px solid #dce8eb;
	border-radius: 24px;
	background: #fff;
	color: inherit;
	text-align: center;
	text-decoration: none;
	transition: border-color .4s ease, box-shadow .4s ease, transform .4s ease;
}

/* Use the photography as a strong card header instead of a small circle. */
.page-services .mdc-services-card__thumb {
	display: block;
	width: 100%;
	height: 190px;
	overflow: hidden;
	border-radius: 23px 23px 0 0;
	background: #dcecef;
}

.page-services .mdc-services-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}

.page-services .mdc-services-card__name {
	display: block;
	padding: 0 22px;
	color: var(--mdc-primary-dark);
	font-size: 21px;
	font-weight: 600;
	line-height: 1.2;
	text-wrap: balance;
}

.page-services .mdc-services-card > a:hover,
.page-services .mdc-services-card > a:focus-visible {
	border-color: var(--mdc-primary);
	background-color: var(--mdc-primary-tint);
	box-shadow: 0 18px 38px rgba(12, 46, 62, .16);
	transform: translateY(-4px);
}

.page-services .mdc-services-card > a:hover .mdc-services-card__thumb img,
.page-services .mdc-services-card > a:focus-visible .mdc-services-card__thumb img {
	transform: scale(1.06);
}

.page-services .mdc-services-card > a:focus-visible {
	outline: 3px solid var(--mdc-kpi);
	outline-offset: 3px;
}

/* ------------------------------------------------------------ closing CTA */

.page-services .mdc-services-cta {
	padding: 0 20px 90px;
}

.page-services .mdc-services-cta__inner {
	max-width: var(--svc-shell);
	margin-inline: auto;
	padding: 48px 52px;
	border-radius: var(--mdc-radius-card);
	background: linear-gradient(110deg, var(--svc-dark), #1D657D);
	text-align: center;
}

.page-services .mdc-services-cta h2 {
	margin: 0;
	color: #fff;
	font-size: clamp(26px, 3vw, 38px);
	line-height: 1.2;
}

.page-services .mdc-services-cta p {
	max-width: 640px;
	margin: 16px auto 0;
	color: rgba(255, 255, 255, .85);
	font-size: 17px;
	line-height: 1.6;
}

.page-services .mdc-services-cta__actions {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	justify-content: center;
	margin-top: 28px;
}

.page-services .mdc-services-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 26px;
	border: 1px solid #fff;
	border-radius: 999px;
	background: #fff;
	color: var(--mdc-heading);
	font-weight: 700;
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease;
}

.page-services .mdc-services-button--ghost {
	background: transparent;
	color: #fff;
}

.page-services .mdc-services-button:hover,
.page-services .mdc-services-button:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(0, 0, 0, .22);
}

.page-services .mdc-services-button--ghost:hover,
.page-services .mdc-services-button--ghost:focus-visible {
	background: #fff;
	color: var(--mdc-heading);
}

/* ----------------------------------------------------------- responsive */

@media (max-width: 1024px) {
	.page-services .mdc-services-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
	.page-services .mdc-services-directory { padding: 84px 20px 70px; }
	.page-services .mdc-services-cta__inner { padding: 42px 34px; }
}

@media (max-width: 700px) {
	.page-services .mdc-services-hero { padding: 32px 16px; }
	.page-services .mdc-services-hero__inner { min-height: 0; gap: 8px; }
	.page-services .mdc-services-hero__eyebrow { font-size: 14px; }

	.page-services .mdc-services-directory { padding: 52px 16px 48px; }
	.page-services .mdc-services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
	.page-services .mdc-services-card > a { gap: 13px; padding: 0 0 18px; border-radius: 18px; }
	.page-services .mdc-services-card__thumb { height: 120px; border-radius: 17px 17px 0 0; }
	.page-services .mdc-services-card__name { padding: 0 10px; font-size: 15px; }

	.page-services .mdc-services-cta { padding: 0 16px 56px; }
	.page-services .mdc-services-cta__inner { padding: 32px 22px; border-radius: 20px; }
	.page-services .mdc-services-cta p { font-size: 16px; }
	.page-services .mdc-services-button { flex: 1 1 180px; }
}

@media (prefers-reduced-motion: reduce) {
	.page-services .mdc-services-card { opacity: 1; transform: none; transition: none; }
	.page-services .mdc-services-card > a:hover,
	.page-services .mdc-services-button:hover { transform: none; }
	.page-services .mdc-services-card > a:hover .mdc-services-card__thumb img { transform: none; }
}

/* Keep the Services menu consistent on every page: a compact list, not the
   homepage-only icon mega-menu (removed above — it was silently winning the
   cascade on `.has-child`'s `position` and misplacing this exact panel).

   Two columns rather than one: the dropdown now lists every service with a
   real page (16, up from the original 6), and a single column at this row
   height would run roughly 700px tall — taller than the viewport on plenty
   of laptop screens. */
@media (min-width: 1121px) {
	.mdc-nav .wp-block-navigation-item.has-child {
		position: relative;
	}

	/* Sixteen items split into two columns of eight need `grid-template-rows`
	   telling the grid how many rows to wrap at, or `grid-auto-flow: column`
	   fills a single row of sixteen instead of wrapping into two columns. */
	.mdc-nav .wp-block-navigation__submenu-container {
		top: 100% !important;
		left: 0 !important;
		right: auto !important;
		display: none !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		grid-template-rows: repeat(8, min-content) !important;
		grid-auto-flow: column !important;
		column-gap: 4px !important;
		width: 560px !important;
		height: auto !important;
		min-width: 560px !important;
		max-width: 560px !important;
		padding: 10px 12px !important;
		overflow: visible !important;
		border: 1px solid var(--mdc-border) !important;
		border-radius: 10px !important;
		background: #fff !important;
		box-shadow: 0 12px 28px rgba(12, 46, 62, .14) !important;
		pointer-events: auto !important;
	}

	.mdc-nav .wp-block-navigation-item.has-child:hover > .wp-block-navigation__submenu-container,
	.mdc-nav .wp-block-navigation-item.has-child:focus-within > .wp-block-navigation__submenu-container {
		display: block !important;
	}

	.mdc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item,
	.mdc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
	}

	.mdc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		display: block !important;
		padding: 10px 18px !important;
		color: var(--mdc-heading) !important;
		font-size: 14px !important;
		line-height: 1.35 !important;
		text-align: left !important;
	}

	.mdc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before {
		display: none !important;
	}

	.mdc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
	.mdc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
		border-radius: 0 !important;
		background: var(--mdc-primary-tint) !important;
		color: var(--mdc-primary-dark) !important;
	}
}

/* Accent contrast correction — scoped, deliberately not global.
 *
 * The client's accent green #3FA88A carries only 2.93:1 against white, so every
 * eyebrow, active nav item, FAQ summary and white-on-green button failed WCAG
 * AA. Lightness drops 45.3% -> 34%; hue (163.6deg) and saturation (45.7%) are
 * the client's values untouched, so it still reads as the same green. Result:
 * 4.87:1 both as text on white and as a fill behind white text.
 *
 * This is applied on `.mdc-scope` rather than in theme.json because
 * Services/Specialities pages also use the accent preset, and a global change
 * would repaint them. Redeclaring the preset variable here re-resolves both the
 * block-level `has-accent-*` classes and the theme's own `--mdc-accent`
 * consumers for in-scope routes only.
 */
.mdc-scope {
	--wp--preset--color--accent: #2F7E69;
	--mdc-accent: #2F7E69;
	--mdc-accent-dark: #25644F;
}

/* ---------------------------------------------------------------- baseline */

html {
	scroll-behavior: smooth;
}

/* DM Sans ships an optical-size axis. The live site loads the font through
   per-weight @font-face rules, which pins `opsz` at its 14 default, so text
   never narrows at large sizes. Left on `auto` the variable font tracks the
   rendered size and every heading comes out ~10% narrow, changing each line
   break. Pin the axis to match the live metrics exactly. */
html,
body,
button,
input,
select,
textarea {
	font-optical-sizing: none;
	font-variation-settings: "opsz" 14;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

img {
	max-width: 100%;
	height: auto;
}

/* Visible focus for keyboard users only — the design has no focus ring, but
   removing it entirely would fail WCAG 2.4.7. */
:focus-visible {
	outline: 3px solid var(--mdc-primary);
	outline-offset: 3px;
	border-radius: 4px;
}

/* Core injects its own skip link for block themes; give it the theme's look
   when it receives focus. */
.skip-link:focus {
	background: var(--mdc-primary);
	color: #fff;
	padding: 12px 20px;
	border-radius: 0 0 8px 0;
	z-index: 999;
}

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

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

.mdc-header {
	position: relative;
	z-index: 20;
}

.mdc-topbar {
	background: var(--mdc-gradient) !important;
	color: #fff;
	padding-top: 5px;
	padding-bottom: 5px;
	font-size: 14px;
	line-height: 1.4;
}

.mdc-topbar a {
	color: #fff;
	text-decoration: none;
}

.mdc-topbar a:hover {
	color: #fff;
	text-decoration: underline;
}

/* The live bar is three tracks across the 1300px container — 520 / 390 / 390 —
   with the contact details left aligned, the social row right aligned in its
   track and the phone number left aligned in the last one. */
.mdc-topbar__inner {
	gap: 0;
	align-items: center;
	min-height: 41px;
	flex-wrap: nowrap;
}

.mdc-topbar__left {
	gap: 20px;
	align-items: center;
	flex: 0 1 auto;
	min-width: 0;
	padding: 0 10px;
}

.mdc-topbar__social {
	flex: 0 0 auto;
	justify-content: flex-end;
	padding: 0 31px 0 10px;
}

.mdc-topbar__item--phone {
	flex: 0 0 auto;
	padding-left: 25px;
	white-space: nowrap;
}

.mdc-topbar__item {
	display: flex;
	align-items: center;
	/* Flex collapses the whitespace between the label and its value, so the
	   3px the live bar puts there has to come from the gap instead. */
	gap: 3px;
	margin: 0;
	padding: 0 0 0 20px;
	font-size: 14px;
	line-height: 18px;
}

.mdc-topbar__left .mdc-topbar__item:first-child {
	padding-left: 0;
}

/* Font Awesome-style glyphs the live top bar sets before each item. Only the
   modifiers below define an icon, so the box is never painted without one. */
.mdc-topbar__item--location::before,
.mdc-topbar__item--email::before,
.mdc-topbar__item--phone::before {
	content: "";
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	margin-right: 7px;
	background-color: currentColor;
	-webkit-mask: var(--mdc-topbar-icon) no-repeat center / contain;
	mask: var(--mdc-topbar-icon) no-repeat center / contain;
}

.mdc-topbar__item--location {
	--mdc-topbar-icon: url('data:image/svg+xml;utf8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20448%20512%22%3E%3Cpath%20d=%22M444.52%203.52L28.74%20195.42c-47.97%2022.39-31.98%2092.75%2019.19%2092.75h175.91v175.91c0%2051.17%2070.36%2067.16%2092.75%2019.19l191.9-415.78c15.99-38.39-25.6-79.98-63.97-63.97z%22/%3E%3C/svg%3E');
}

.mdc-topbar__item--email {
	--mdc-topbar-icon: url('data:image/svg+xml;utf8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3Cpath%20d=%22M502.3%20190.8c3.9-3.1%209.7-.2%209.7%204.7V400c0%2026.5-21.5%2048-48%2048H48c-26.5%200-48-21.5-48-48V195.6c0-5%205.7-7.8%209.7-4.7%2022.4%2017.4%2052.1%2039.5%20154.1%20113.6%2021.1%2015.4%2056.7%2047.8%2092.2%2047.6%2035.7.3%2072-32.8%2092.3-47.6%20102-74.1%20131.6-96.3%20154-113.7zM256%20320c23.2.4%2056.6-29.2%2073.4-41.4%20132.7-96.3%20142.8-104.7%20173.4-128.7%205.8-4.5%209.2-11.5%209.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5%2064%200%2085.5%200%20112v19c0%207.4%203.4%2014.4%209.2%2018.9%2030.6%2023.9%2040.7%2032.4%20173.4%20128.7%2016.8%2012.2%2050.2%2041.8%2073.4%2041.4z%22/%3E%3C/svg%3E');
}

.mdc-topbar__item--phone {
	--mdc-topbar-icon: url('data:image/svg+xml;utf8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3Cpath%20d=%22M497.39%20361.8l-112-48a24%2024%200%200%200-28%206.9l-49.6%2060.6A370.66%20370.66%200%200%201%20130.6%20204.11l60.6-49.6a23.94%2023.94%200%200%200%206.9-28l-48-112A24.16%2024.16%200%200%200%20122.6.61l-104%2024A24%2024%200%200%200%200%2048c0%20256.5%20207.9%20464%20464%20464a24%2024%200%200%200%2023.4-18.6l24-104a24.29%2024.29%200%200%200-14.01-27.6z%22/%3E%3C/svg%3E');
}

/* Social row that sits between the contact details and the phone number. */
.mdc-topbar__social {
	gap: 19px;
	align-items: center;
}

.mdc-topbar__social .wp-social-link {
	margin: 0;
	padding: 0;
	background: none;
}

.mdc-topbar__social .wp-social-link a {
	padding: 0;
	color: #fff;
	fill: #fff;
}

.mdc-topbar__social .wp-social-link svg {
	width: 18px;
	height: 18px;
}

/* The thin vertical rule that separates the top-bar items. */
.mdc-topbar__item--divided {
	border-left: 1px solid rgba(255, 255, 255, 0.35);
}

.mdc-navbar {
	padding-top: 15px;
	padding-bottom: 15px;
	background: #fff;
}

.mdc-navbar__inner {
	gap: 24px;
	align-items: center;
	flex-wrap: nowrap;
	min-height: 70px;
}

/* The live header insets the CTA from the container edge by the widget's own
   padding rather than aligning it flush. */
.mdc-navbar__inner .mdc-navbar__cta {
	margin-right: 62px;
}

/* The shared Revaxis MD logo carries the same inset as the other header cells. */
.mdc-logo {
	margin: 0;
	padding-left: 10px;
}

.mdc-logo img,
.mdc-logo .custom-logo {
	display: block;
	width: 200px;
	max-width: 100%;
	height: auto;
}

.mdc-nav {
	flex: 1 1 auto;
	justify-content: center;
}

/* The live menu has no gap between items — the spacing comes from each
   link's own horizontal padding, so the hover target spans the full gap. */
.mdc-nav .wp-block-navigation__container {
	gap: 0;
	align-items: center;
}

.mdc-nav .wp-block-navigation-item__content {
	font-size: 16px;
	font-weight: 500;
	color: rgb(31 33 36);
	padding: 6px 16.5px;
	transition: color var(--mdc-transition);
}

.mdc-nav .wp-block-navigation-item__content:hover,
.mdc-nav .current-menu-item > .wp-block-navigation-item__content {
	color: var(--mdc-accent);
}

/* Services dropdown. The live menu uses a solid 16px caret, not a chevron —
   swap the core SVG for a masked glyph of the same shape and size. */
.mdc-nav .wp-block-navigation__submenu-icon {
	margin-left: 0;
	padding: 0;
	width: 16px;
	height: 16px;
	color: rgb(31 33 36);
}

.mdc-nav .wp-block-navigation__submenu-icon svg {
	display: none;
}

.mdc-nav .wp-block-navigation__submenu-icon::after {
	content: "";
	display: block;
	width: 16px;
	height: 16px;
	background-color: currentColor;
	-webkit-mask: var(--mdc-icon-caret) no-repeat center / contain;
	mask: var(--mdc-icon-caret) no-repeat center / contain;
}

/* The caret sits 5px after the label, inside the link's own padding. */
.mdc-nav .wp-block-navigation-item.has-child > .wp-block-navigation-item__content {
	padding-right: 0;
	gap: 5px;
}

.mdc-nav .wp-block-navigation-item.has-child {
	padding-right: 16.5px;
}

.mdc-nav .wp-block-navigation__submenu-container {
	min-width: 300px;
	padding: 10px 0;
	border: 0;
	border-radius: var(--mdc-radius-md);
	background: var(--mdc-white);
	box-shadow: 0 18px 44px rgb(53 33 78 / 14%);
}

.mdc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 11px 22px;
	font-size: 15px;
	line-height: 1.4em;
}

.mdc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--mdc-secondary);
}

/* The open dropdown must sit above the hero panel. */
.mdc-navbar {
	position: relative;
	z-index: 20;
}

.mdc-navbar__cta .wp-block-button__link {
	background: var(--mdc-gradient);
	padding: 17px 30px;
	border-radius: 50px;
	font-weight: 600;
	line-height: 16px;
	white-space: nowrap;
}

/* ------------------------------------------------------------------ layout */

.mdc-main {
	display: block;
}

/* Every top-level section pattern is a full-bleed rounded panel with a small
   gutter, matching the original layout. */
.mdc-section {
	padding-top: var(--mdc-section-pad);
	padding-bottom: var(--mdc-section-pad);
}

.mdc-section--tint {
	background: var(--mdc-lilac);
	border-radius: var(--mdc-radius-section);
	margin-left: 20px;
	margin-right: 20px;
}

.mdc-section__inner {
	max-width: 1300px;
	margin-inline: auto;
	padding-inline: 20px;
}

.mdc-eyebrow {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0;
	color: var(--mdc-accent);
	margin: 0 0 19px;
}

.is-style-eyebrow {
	font-size: 16px !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
	color: var(--mdc-accent) !important;
	margin-bottom: 14px;
}

.mdc-section__lede {
	max-width: 780px;
	margin-inline: auto;
}

/* Full-bleed panels
   -----------------
   `alignfull` inside a root-padding-aware layout pulls the element out by the
   root padding, which combined with the design's own 20px gutter pushed these
   panels past the viewport on small screens. Clamping the width against the
   viewport keeps the gutter exact and guarantees no horizontal scroll. */
.mdc-hero,
.mdc-section--tint,
.mdc-footer {
	box-sizing: border-box;
	max-width: none !important;
	margin-inline: 0 !important;
}

/* Below the tablet breakpoint the live site drops the 20px panel gutters and
   runs the hero, tinted sections and footer edge to edge. */
@media (max-width: 880px) {
	.mdc-hero,
	.mdc-section--tint,
	.mdc-footer {
		width: 100vw !important;
		margin-inline: calc(50% - 50vw) !important;
	}

	/* Restore an inner gutter now the panel itself has none. */
	.mdc-section--tint > .wp-block-group__inner-container,
	.mdc-footer > .wp-block-group__inner-container {
		padding-inline: 30px;
	}
}

/* -------------------------------------------------------------------- hero */

.mdc-hero {
	position: relative;
	background: var(--mdc-lilac);
	border-radius: 46px;
	margin: 0 20px;
	padding: 10px 10px 0;
	overflow: visible;
}

.mdc-hero__inner {
	align-items: center;
	gap: 0;
}

.mdc-hero__copy {
	padding: 40px;
}

.mdc-hero h1 {
	font-size: 46px;
	line-height: 1.1;
	letter-spacing: -0.02em;
	margin: 0 0 20px;
	color: var(--mdc-heading);
}

.mdc-hero__lede p {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	color: var(--mdc-body-text);
}

.mdc-hero__actions {
	gap: 20px;
	align-items: center;
	margin-top: 20px;
	flex-wrap: wrap;
}

/* Hero primary button: gradient pill with a rocket glyph, per the live site. */
.mdc-hero__actions .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: var(--mdc-gradient);
	color: #fff;
	padding: 17px 30px;
	border-radius: 50px;
	font-weight: 600;
	line-height: 16px;
	box-shadow: 0 0 10px rgb(0 0 0 / 50%);
}

.mdc-hero__actions .wp-block-button__link::before {
	content: "";
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	background-color: currentColor;
	-webkit-mask: var(--mdc-icon-rocket) no-repeat center / contain;
	mask: var(--mdc-icon-rocket) no-repeat center / contain;
}

/* "Trusted by 160,000 Providers" pill next to the hero button. The avatar
   strip sits flush inside the outline — the live pill has no padding. */
.mdc-hero__trust {
	display: inline-flex;
	align-items: center;
	gap: 0;
	padding: 0;
	border: 2px solid var(--mdc-accent);
	border-radius: 55px;
	font-size: 16px;
	line-height: 1.6;
	color: var(--mdc-body-text);
	background: transparent;
}

.mdc-hero__trust p {
	margin: 0;
	width: 237.7px;
}

.mdc-hero__reviews {
	margin-top: 20px;
}

.mdc-hero__reviews img {
	max-width: 575px;
	width: 100%;
	height: auto;
}

.mdc-hero__media {
	position: relative;
	align-self: stretch;
	padding-top: 40px;
	display: flex;
	align-items: flex-end;
}

.mdc-hero__image {
	margin: 0;
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: flex-end;
}

/* The live photo sits in a 513x653 box and is letterboxed by object-fit,
   with its base flush against the bottom of the panel. */
.mdc-hero__image img {
	display: block;
	width: 513px;
	max-width: 100%;
	height: 653px;
	object-fit: contain;
	object-position: bottom;
}

/* Soft decorative blobs behind the hero content. */
.mdc-hero__shape {
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
	z-index: 0;
	filter: blur(2px);
}

.mdc-hero__shape--1 {
	width: 260px;
	height: 260px;
	top: 20px;
	left: -60px;
	background: rgba(46, 125, 156, 0.14);
}

.mdc-hero__shape--2 {
	width: 220px;
	height: 220px;
	bottom: -70px;
	left: -50px;
	background: rgba(63, 168, 138, 0.14);
}

.mdc-hero__inner,
.mdc-hero__copy {
	position: relative;
	z-index: 1;
}

/* Pre-composed strip of overlapping provider avatars inside the trust pill. */
.mdc-hero__avatars {
	margin: 0;
	flex: 0 0 auto;
	line-height: 0;
}

.mdc-hero__avatars img {
	display: block;
	width: 88px;
	height: 36.6px;
}

/* Floating capability cards over the hero photo. 200x60 with 5px of inset,
   a 50px icon and a 10px gap — measured off the live panel. */
.mdc-hero__float {
	position: absolute;
	z-index: 3;
	display: flex;
	align-items: center;
	gap: 10px;
	width: 200px;
	height: 60px;
	background: #fff;
	border-radius: 10px;
	padding: 5px;
	box-shadow: none;
}

.mdc-hero__float p {
	margin: 0;
	width: 130px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--mdc-body-text);
	font-weight: 400;
}

.mdc-hero__float-icon {
	flex: 0 0 auto;
	width: 50px;
	height: 50px;
	display: block;
}

.mdc-hero__float-icon img {
	display: block;
	width: 50px;
	height: 50px;
}

/* Offsets are measured from the media column's top-left corner. */
.mdc-hero__float--1 {
	top: 159px;
	left: 341px;
}

.mdc-hero__float--2 {
	top: 304px;
	left: 40px;
}

.mdc-hero__float--3 {
	top: 478px;
	left: 310px;
}

/* The certifications band sits tighter than a full section, and its heading
   wraps to two lines rather than running the full container width.
   Matched structurally (`:has(.mdc-marquee)`) so the rule works against the
   page content already stored in the database, not just freshly inserted
   patterns. The margin needs `!important` to beat the inline style the
   stored markup carries. */
.mdc-scope.home .mdc-certifications,
.mdc-scope.home .mdc-section:has(> .mdc-marquee) {
	padding-top: 50px;
	padding-bottom: 50px;
}

.mdc-scope.home .mdc-certifications > h2,
.mdc-scope.home .mdc-section:has(> .mdc-marquee) > h2 {
	max-width: 780px;
	margin: 0 auto 20px !important;
	font-size: 32px;
	line-height: 1.1;
}

/* --------------------------------------------------------- logo marquee */

.mdc-marquee {
	overflow: hidden;
	position: relative;
	width: 100%;
}

/* The edge fade is painted as two overlay gradients rather than a mask-image.
   A mask forces the animated track into a composited layer that the browser
   rasterises once and then scales, which visibly softens the logo artwork;
   plain overlays leave the images on the normal paint path and sharp. */
.mdc-marquee::before,
.mdc-marquee::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	width: 8%;
	z-index: 2;
	pointer-events: none;
}

.mdc-marquee::before {
	left: 0;
	background: linear-gradient(90deg, var(--mdc-marquee-fade, #fff), transparent);
}

.mdc-marquee::after {
	right: 0;
	background: linear-gradient(270deg, var(--mdc-marquee-fade, #fff), transparent);
}

.mdc-marquee__track {
	display: flex;
	align-items: center;
	gap: 25px;
	width: max-content;
	animation: mdc-scroll var(--mdc-marquee-duration, 40s) linear infinite;
	/* Promote the track up front so the logos are rasterised at device pixel
	   density instead of being re-sampled from a 1x snapshot mid-animation. */
	will-change: transform;
	backface-visibility: hidden;
}

/* Fixed-width cells keep the logos on a common baseline and evenly spaced,
   instead of each cell collapsing to its own artwork width. */
.mdc-marquee__item {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 300px;
	width: 300px;
	height: 150px;
}

.mdc-marquee__item img {
	max-width: 270px;
	width: auto;
	height: auto;
	max-height: 150px;
	object-fit: contain;
}

@keyframes mdc-scroll {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-50%);
	}
}

/* --------------------------------------------------------- RCM performance */

/* Section: pale tint panel (reuses .mdc-section--tint) plus a very low
   opacity dotted-wave decoration in each corner, drawn with a radial-gradient
   dot grid — no image asset, no markup, so it never enters the a11y tree. */
.mdc-rcm {
	position: relative;
	overflow: hidden;
	padding-top: 70px;
}

.mdc-rcm::before,
.mdc-rcm::after {
	content: "";
	position: absolute;
	width: 420px;
	height: 420px;
	background-image: radial-gradient(circle, var(--mdc-primary) 1.4px, transparent 1.4px);
	background-size: 22px 22px;
	opacity: 0.07;
	pointer-events: none;
	border-radius: 50%;
}

.mdc-rcm::before {
	top: -120px;
	left: -160px;
}

.mdc-rcm::after {
	bottom: -140px;
	right: -160px;
	background-image: radial-gradient(circle, var(--mdc-kpi) 1.4px, transparent 1.4px);
}

.mdc-rcm > h2 {
	max-width: 720px;
	margin-inline: auto;
	position: relative;
}

.mdc-rcm .mdc-eyebrow,
.mdc-rcm .mdc-section__lede {
	position: relative;
}

.mdc-rcm .mdc-section__lede {
	max-width: 700px;
	margin-top: 22px;
}

/* Small gold accent rule beneath the heading. */
.mdc-rcm__divider {
	width: 64px;
	height: 3px;
	margin: 22px auto 0;
	border-radius: var(--mdc-radius-pill);
	background: var(--mdc-kpi);
	position: relative;
}

.mdc-rcm__grid {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	margin-top: 56px;
	align-items: stretch;
}

.mdc-rcm__card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	background: var(--mdc-surface);
	border: 1px solid var(--mdc-border);
	border-radius: var(--mdc-radius-card);
	box-shadow: var(--mdc-shadow-card);
	padding: 34px 26px 30px;
	overflow: hidden;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.mdc-rcm__card:hover {
	transform: translateY(-4px);
	box-shadow: var(--mdc-shadow-float);
}

/* Decorative pale curved shape tucked behind the icon badge. */
.mdc-rcm__card::before {
	content: "";
	position: absolute;
	top: -34px;
	right: -34px;
	width: 120px;
	height: 120px;
	border-radius: 50%;
	background: var(--mdc-primary-tint);
	transition: background-color 0.3s ease;
}

.mdc-rcm__card--gold::before {
	background: #FBF3DE;
}

/* Small corner bracket accent, alternating teal/gold. */
.mdc-rcm__card::after {
	content: "";
	position: absolute;
	top: 16px;
	right: 16px;
	width: 22px;
	height: 22px;
	border-top: 3px solid var(--mdc-primary);
	border-right: 3px solid var(--mdc-primary);
	border-radius: 0 6px 0 0;
	opacity: 0.55;
	transition: border-color 0.3s ease;
}

.mdc-rcm__card--gold::after {
	border-color: var(--mdc-kpi);
}

.mdc-rcm__icon {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--mdc-primary-dark);
	color: #fff;
	margin-bottom: 22px;
	transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
}

.mdc-rcm__card--gold .mdc-rcm__icon {
	background: var(--mdc-kpi-deep);
}

.mdc-rcm__card:hover .mdc-rcm__icon {
	transform: scale(1.06);
	box-shadow: 0 0 0 6px rgba(36, 96, 122, 0.12);
}

.mdc-rcm__card--gold:hover .mdc-rcm__icon {
	box-shadow: 0 0 0 6px rgba(138, 111, 28, 0.14);
}

.mdc-rcm__icon svg {
	width: 28px;
	height: 28px;
}

.mdc-rcm__value {
	font-size: 46px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--mdc-primary-dark);
	transition: color 0.3s ease;
}

.mdc-rcm__card--gold .mdc-rcm__value {
	color: var(--mdc-kpi-deep);
}

.mdc-rcm__rule {
	display: block;
	width: 34px;
	height: 3px;
	margin: 16px 0 18px;
	border-radius: var(--mdc-radius-pill);
	background: var(--mdc-primary);
	transition: background-color 0.3s ease;
}

.mdc-rcm__card--gold .mdc-rcm__rule {
	background: var(--mdc-kpi);
}

.mdc-rcm__card h3 {
	font-size: 19px;
	line-height: 1.3;
}

.mdc-rcm__desc {
	margin-top: 10px;
	margin-bottom: 20px;
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--mdc-muted-text);
}

.mdc-rcm__arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	/* `auto` rather than a fixed gap: the cards in a row hold different
	   amounts of copy, and a fixed gap leaves the chips on ragged lines.
	   The clearance below the copy comes from `.mdc-rcm__desc` instead. */
	margin-top: auto;
	background: var(--mdc-primary-dark);
	color: #fff;
	flex: 0 0 auto;
	transition: background-color 0.3s ease;
}

.mdc-rcm__card--gold .mdc-rcm__arrow {
	background: var(--mdc-kpi-deep);
}

.mdc-rcm__arrow svg {
	width: 16px;
	height: 16px;
}

/* --- hover/touch colour swap ------------------------------------------------
   Interacting with any card flips the whole row to the opposite palette: teal
   cards turn gold and gold cards turn teal, in one move. Swapping the row
   rather than the single hovered card keeps the alternating teal/gold rhythm
   intact — hovering card one otherwise left it and card two both gold.

   `:has()` on the grid is what lets a hover on one child restyle its siblings.
   `:focus-within` carries the swap to keyboard users and `:active` makes it
   fire on a touch tap, where `:hover` is unreliable. Every coloured part moves
   together — corner blob, bracket, icon badge, number, rule and arrow — so a
   card is never half one palette and half the other. */

.mdc-rcm__grid:has(.mdc-rcm__card:hover) .mdc-rcm__card--teal::before,
.mdc-rcm__grid:has(.mdc-rcm__card:focus-within) .mdc-rcm__card--teal::before,
.mdc-rcm__grid:has(.mdc-rcm__card:active) .mdc-rcm__card--teal::before {
	background: #FBF3DE;
}

.mdc-rcm__grid:has(.mdc-rcm__card:hover) .mdc-rcm__card--gold::before,
.mdc-rcm__grid:has(.mdc-rcm__card:focus-within) .mdc-rcm__card--gold::before,
.mdc-rcm__grid:has(.mdc-rcm__card:active) .mdc-rcm__card--gold::before {
	background: var(--mdc-primary-tint);
}

.mdc-rcm__grid:has(.mdc-rcm__card:hover) .mdc-rcm__card--teal::after,
.mdc-rcm__grid:has(.mdc-rcm__card:focus-within) .mdc-rcm__card--teal::after,
.mdc-rcm__grid:has(.mdc-rcm__card:active) .mdc-rcm__card--teal::after {
	border-color: var(--mdc-kpi);
}

.mdc-rcm__grid:has(.mdc-rcm__card:hover) .mdc-rcm__card--gold::after,
.mdc-rcm__grid:has(.mdc-rcm__card:focus-within) .mdc-rcm__card--gold::after,
.mdc-rcm__grid:has(.mdc-rcm__card:active) .mdc-rcm__card--gold::after {
	border-color: var(--mdc-primary);
}

.mdc-rcm__grid:has(.mdc-rcm__card:hover) .mdc-rcm__card--teal .mdc-rcm__icon,
.mdc-rcm__grid:has(.mdc-rcm__card:focus-within) .mdc-rcm__card--teal .mdc-rcm__icon,
.mdc-rcm__grid:has(.mdc-rcm__card:active) .mdc-rcm__card--teal .mdc-rcm__icon,
.mdc-rcm__grid:has(.mdc-rcm__card:hover) .mdc-rcm__card--teal .mdc-rcm__arrow,
.mdc-rcm__grid:has(.mdc-rcm__card:focus-within) .mdc-rcm__card--teal .mdc-rcm__arrow,
.mdc-rcm__grid:has(.mdc-rcm__card:active) .mdc-rcm__card--teal .mdc-rcm__arrow {
	background: var(--mdc-kpi-deep);
}

.mdc-rcm__grid:has(.mdc-rcm__card:hover) .mdc-rcm__card--gold .mdc-rcm__icon,
.mdc-rcm__grid:has(.mdc-rcm__card:focus-within) .mdc-rcm__card--gold .mdc-rcm__icon,
.mdc-rcm__grid:has(.mdc-rcm__card:active) .mdc-rcm__card--gold .mdc-rcm__icon,
.mdc-rcm__grid:has(.mdc-rcm__card:hover) .mdc-rcm__card--gold .mdc-rcm__arrow,
.mdc-rcm__grid:has(.mdc-rcm__card:focus-within) .mdc-rcm__card--gold .mdc-rcm__arrow,
.mdc-rcm__grid:has(.mdc-rcm__card:active) .mdc-rcm__card--gold .mdc-rcm__arrow {
	background: var(--mdc-primary-dark);
}

.mdc-rcm__grid:has(.mdc-rcm__card:hover) .mdc-rcm__card--teal .mdc-rcm__value,
.mdc-rcm__grid:has(.mdc-rcm__card:focus-within) .mdc-rcm__card--teal .mdc-rcm__value,
.mdc-rcm__grid:has(.mdc-rcm__card:active) .mdc-rcm__card--teal .mdc-rcm__value {
	color: var(--mdc-kpi-deep);
}

.mdc-rcm__grid:has(.mdc-rcm__card:hover) .mdc-rcm__card--gold .mdc-rcm__value,
.mdc-rcm__grid:has(.mdc-rcm__card:focus-within) .mdc-rcm__card--gold .mdc-rcm__value,
.mdc-rcm__grid:has(.mdc-rcm__card:active) .mdc-rcm__card--gold .mdc-rcm__value {
	color: var(--mdc-primary-dark);
}

.mdc-rcm__grid:has(.mdc-rcm__card:hover) .mdc-rcm__card--teal .mdc-rcm__rule,
.mdc-rcm__grid:has(.mdc-rcm__card:focus-within) .mdc-rcm__card--teal .mdc-rcm__rule,
.mdc-rcm__grid:has(.mdc-rcm__card:active) .mdc-rcm__card--teal .mdc-rcm__rule {
	background: var(--mdc-kpi);
}

.mdc-rcm__grid:has(.mdc-rcm__card:hover) .mdc-rcm__card--gold .mdc-rcm__rule,
.mdc-rcm__grid:has(.mdc-rcm__card:focus-within) .mdc-rcm__card--gold .mdc-rcm__rule,
.mdc-rcm__grid:has(.mdc-rcm__card:active) .mdc-rcm__card--gold .mdc-rcm__rule {
	background: var(--mdc-primary);
}

/* Only the card actually under the pointer gets the lift + focus ring, and the
   ring uses whichever colour that card has swapped to. */
.mdc-rcm__card--teal:hover .mdc-rcm__icon,
.mdc-rcm__card--teal:focus-within .mdc-rcm__icon,
.mdc-rcm__card--teal:active .mdc-rcm__icon {
	box-shadow: 0 0 0 6px rgba(138, 111, 28, 0.14);
}

.mdc-rcm__card--gold:hover .mdc-rcm__icon,
.mdc-rcm__card--gold:focus-within .mdc-rcm__icon,
.mdc-rcm__card--gold:active .mdc-rcm__icon {
	box-shadow: 0 0 0 6px rgba(36, 96, 122, 0.12);
}


/* -------------------------------------------------------------- trust panel */

.mdc-rcm__trust {
	position: relative;
	display: flex;
	align-items: center;
	gap: 40px;
	margin-top: 44px;
	padding: 32px 40px;
	background: var(--mdc-surface);
	border: 1px solid var(--mdc-border);
	border-radius: var(--mdc-radius-pill);
	box-shadow: var(--mdc-shadow-card);
}

.mdc-rcm__trust-cell {
	display: flex;
	align-items: center;
	gap: 20px;
}

.mdc-rcm__trust-cell--main {
	flex: 1 1 auto;
	min-width: 0;
}

.mdc-rcm__trust-cell--main h3 {
	font-size: 19px;
	line-height: 1.3;
}

.mdc-rcm__trust-cell--main p {
	margin-top: 6px;
	font-size: 14.5px;
	color: var(--mdc-muted-text);
}

.mdc-rcm__trust-cell--aside {
	flex: 0 0 auto;
	max-width: 260px;
	padding-left: 40px;
	border-left: 1px solid var(--mdc-border);
}

.mdc-rcm__trust-cell--aside p {
	font-size: 15px;
	line-height: 1.4;
}

.mdc-rcm__trust-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--mdc-primary-dark);
	color: #fff;
	flex: 0 0 auto;
}

.mdc-rcm__trust-icon--gold {
	background: var(--mdc-accent-tint);
	color: var(--mdc-kpi-deep);
}

.mdc-rcm__trust-icon svg {
	width: 24px;
	height: 24px;
}

/* Entrance state: hidden until initReveals() marks it visible (see main.js).
   The visible-state opacity is set explicitly (not left to the keyframe's
   `to` value) because reduced-motion users get `animation: none` further
   down, and would otherwise stay stuck at opacity 0. */
.mdc-scope .mdc-rcm .mdc-eyebrow.mdc-reveal,
.mdc-scope .mdc-rcm > h2.mdc-reveal,
.mdc-scope .mdc-rcm__divider.mdc-reveal,
.mdc-scope .mdc-rcm .mdc-section__lede.mdc-reveal,
.mdc-scope .mdc-rcm__card.mdc-reveal,
.mdc-scope .mdc-rcm__trust.mdc-reveal {
	opacity: 0;
}

.mdc-scope .mdc-rcm .mdc-eyebrow.mdc-reveal--visible,
.mdc-scope .mdc-rcm > h2.mdc-reveal--visible,
.mdc-scope .mdc-rcm__divider.mdc-reveal--visible,
.mdc-scope .mdc-rcm .mdc-section__lede.mdc-reveal--visible,
.mdc-scope .mdc-rcm__card.mdc-reveal--visible,
.mdc-scope .mdc-rcm__trust.mdc-reveal--visible {
	opacity: 1;
}

/* Body copy needs its own rhythm because the global blockGap is 0. */
.mdc-section p:not([class*="mdc-"]):not(.has-text-align-center) {
	margin-bottom: 18px;
}

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

.is-style-card,
.mdc-card {
	background: #fff;
	border-radius: var(--mdc-radius-card);
	padding: 34px 26px;
	height: 100%;
	transition: transform var(--mdc-transition), box-shadow var(--mdc-transition);
}

.mdc-card:hover,
.is-style-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--mdc-shadow-card);
}

.mdc-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 22px;
}

.mdc-card__icon img {
	width: 60px;
	height: 60px;
}

.mdc-card h3 {
	font-size: 20px;
	line-height: 1.3;
	text-align: center;
	margin: 0 0 14px;
}

.mdc-card p {
	font-size: 15px;
	line-height: 1.6;
	text-align: center;
	margin: 0 0 22px;
}

/* The live section's own bottom padding is noticeably tighter than the other
   tinted sections. */
.mdc-services {
	padding-bottom: 62px;
}

.mdc-services__grid {
	gap: 22px;
	margin-top: 50px;
	align-items: stretch;
}

.mdc-services__actions {
	gap: 16px;
	margin-top: 50px;
	justify-content: center;
}

/* Icon glyph in front of the button label, shared by any `mdc-icon-btn--*`
   button across the site. */
.mdc-icon-btn .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.mdc-icon-btn .wp-block-button__link::before {
	content: "";
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	background-color: currentColor;
	mask: no-repeat center / contain;
	-webkit-mask: no-repeat center / contain;
}

.mdc-icon-btn--support .wp-block-button__link::before {
	-webkit-mask-image: var(--mdc-icon-support);
	mask-image: var(--mdc-icon-support);
}

.mdc-icon-btn--rocket .wp-block-button__link::before {
	-webkit-mask-image: var(--mdc-icon-rocket);
	mask-image: var(--mdc-icon-rocket);
}

/* --------------------------------------------------------------- feature list */

.mdc-features {
	margin-top: 40px;
	display: grid;
	gap: 30px;
}

.mdc-feature {
	display: flex;
	gap: 26px;
	align-items: flex-start;
}

.mdc-feature__icon {
	flex: 0 0 auto;
	width: 74px;
	height: 74px;
	border-radius: 50%;
	background: var(--mdc-lilac);
	display: flex;
	align-items: center;
	justify-content: center;
}

.mdc-feature__icon img {
	width: 34px;
	height: 34px;
}

.mdc-feature h3 {
	font-size: 20px;
	margin: 0 0 8px;
}

.mdc-feature p {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
}

/* Two-column checklist in the About page's intro band. */
.mdc-page-intro__points {
	max-width: 900px;
	margin: 40px auto 0;
	grid-template-columns: 1fr 1fr;
	column-gap: 60px;
}

/* Check list used in the "Maximize Savings" column. */
.is-style-checklist {
	list-style: none;
	padding-left: 0;
	margin: 0;
	display: grid;
	gap: 18px;
}

.is-style-checklist li {
	position: relative;
	padding-left: 42px;
	font-size: 16px;
	line-height: 1.5;
	color: var(--mdc-heading);
}

.is-style-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--mdc-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 14px no-repeat;
}

/* Keep the Why Choose copy and checklist aligned as one balanced row. */
.mdc-scope.home .mdc-section:has(.mdc-videocard) > .wp-block-columns {
	align-items: start;
	column-gap: 72px;
}

.mdc-scope.home .mdc-section:has(.mdc-videocard) > .wp-block-columns > .wp-block-column:first-child p:last-child {
	max-width: 700px;
	line-height: 1.65;
}

.mdc-scope.home .mdc-section:has(.mdc-videocard) .is-style-checklist {
	padding-top: 2px;
}

/* Button rows need explicit spacing because the global blockGap is 0. */
.wp-block-buttons {
	gap: 16px;
}

/* --------------------------------------------------------------- about */

.mdc-about__media {
	position: relative;
}

/* Keeps the intro copy clear of the compliance badge that overlaps the photo. */
.mdc-about__media + .wp-block-column,
.wp-block-columns > .wp-block-column:has(+ .mdc-about__media) {
	padding-right: 60px;
}

.mdc-about__photo img {
	border-radius: var(--mdc-radius-card);
	display: block;
}

.mdc-about__badge {
	position: absolute;
	left: -30px;
	top: 40px;
	width: auto;
	background: #fff;
	border-radius: var(--mdc-radius-card);
	box-shadow: var(--mdc-shadow-float);
	padding: 16px 20px;
}

.mdc-about__badge img {
	display: block;
	width: 120px;
	height: auto;
}

.mdc-about__callout {
	position: absolute;
	right: -40px;
	bottom: 60px;
	width: 300px;
	padding: 26px;
	border-radius: var(--mdc-radius-card);
	background: var(--mdc-accent);
	color: #fff;
	text-align: center;
}

.mdc-about__callout h3 {
	color: #fff;
	font-size: 20px;
	margin: 0 0 10px;
}

.mdc-about__callout p {
	margin: 0;
	font-size: 15px;
	line-height: 1.5;
}

/* --------------------------------------------------------------- video card */

.mdc-videocard {
	position: relative;
	border-radius: var(--mdc-radius-card);
	overflow: hidden;
	margin-top: 60px;
	background: var(--mdc-primary);
}

.mdc-videocard__bg img {
	display: block;
	width: 100%;
	height: auto;
	opacity: 0.55;
}

.mdc-videocard__play {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.mdc-videocard__play button,
.mdc-videocard__play a {
	width: 84px;
	height: 84px;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, 0.85);
	background: rgba(200, 60, 60, 0.35);
	color: #fff;
	display: grid;
	place-items: center;
	cursor: pointer;
	transition: transform var(--mdc-transition);
}

.mdc-videocard__play button:hover {
	transform: scale(1.08);
}

/* Scrim so the overlaid feature text stays legible over any photo. */
.mdc-videocard__features::before {
	content: "";
	position: absolute;
	inset: -60px 0 0;
	background: linear-gradient(180deg, rgba(53, 33, 78, 0) 0%, rgba(53, 33, 78, 0.75) 55%);
	pointer-events: none;
	z-index: -1;
}

.mdc-videocard__features {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	isolation: isolate;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	padding: 40px;
	color: #fff;
}

.mdc-videocard__features .mdc-feature__icon {
	width: 54px;
	height: 54px;
	background: rgba(255, 255, 255, 0.22);
}

.mdc-videocard__features .mdc-feature__icon::before {
	content: "";
	width: 24px;
	height: 24px;
	background-color: #fff;
	mask: var(--mdc-icon-graph) no-repeat center / contain;
	-webkit-mask: var(--mdc-icon-graph) no-repeat center / contain;
}

.mdc-videocard__features h3,
.mdc-videocard__features p {
	color: #fff;
}

/* --------------------------------------------------------------- reviews bar */

.mdc-reviewbar {
	max-width: 900px;
	margin: 0 auto;
	background: #fff;
	border: 1px solid rgba(85, 97, 113, 0.14);
	border-radius: 6px;
	padding: 26px 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 60px;
	flex-wrap: wrap;
}

.mdc-reviewbar__mark img {
	width: 60px;
	height: auto;
}

.mdc-reviewbar__text {
	text-align: center;
	white-space: nowrap;
}

.mdc-reviewbar__text p {
	margin: 0;
}

.mdc-reviewbar__text strong {
	display: block;
	color: var(--mdc-heading);
	font-size: 16px;
	margin-bottom: 8px;
}

.mdc-reviewbar__rating {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.mdc-reviewbar__rating strong {
	display: inline !important;
	margin-bottom: 0;
}

.mdc-reviewbar__stars {
	color: #ffb100;
	font-size: 15px;
	letter-spacing: 1px;
}

.mdc-reviewbar__google img {
	width: 300px;
	height: auto;
}

/* --------------------------------------------------------- testimonials */

.mdc-testimonials {
	position: relative;
	margin-top: 60px;
}

.mdc-testimonials__viewport {
	overflow: hidden;
}

.mdc-testimonials__track {
	display: flex;
	gap: 30px;
	transition: transform 0.5s ease-in-out;
	will-change: transform;
}

.mdc-testimonial {
	flex: 0 0 calc((100% - 60px) / 3);
	background: #fff;
	border: 1px solid rgba(85, 97, 113, 0.14);
	border-radius: var(--mdc-radius-card);
	padding: 34px;
	display: flex;
	flex-direction: column;
	min-height: 470px;
}

.mdc-testimonial__stars {
	color: #F5B301;
	font-size: 22px;
	letter-spacing: 4px;
	line-height: 1;
	margin: 0 0 22px;
}

.mdc-testimonial__quote {
	font-size: 16px;
	line-height: 1.6;
	margin: 0 0 auto;
	padding-bottom: 26px;
	border-bottom: 1px solid rgba(85, 97, 113, 0.14);
}

.mdc-testimonial__author {
	display: flex;
	align-items: center;
	gap: 18px;
	padding-top: 24px;
}

.mdc-testimonial__author figure {
	margin: 0;
	flex: 0 0 auto;
}

.mdc-testimonial__author img {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}

.mdc-testimonial__name {
	display: block;
	margin: 0;
	font-weight: 600;
	font-size: 20px;
	color: var(--mdc-heading);
	line-height: 1.3;
}

.mdc-testimonial__role {
	display: block;
	margin: 0;
	font-size: 15px;
	color: var(--mdc-body-text);
}

.mdc-testimonials__dots {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-top: 40px;
}

.mdc-testimonials__dots button {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	border: 0;
	padding: 0;
	background: rgba(102, 86, 123, 0.3);
	cursor: pointer;
	transition: background var(--mdc-transition);
}

.mdc-testimonials__dots button[aria-current="true"] {
	background: var(--mdc-accent);
}

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

.mdc-ctaband {
	background: var(--mdc-primary);
	border-radius: var(--mdc-radius-section);
	color: #fff;
	padding: 54px 60px;
}

.mdc-ctaband h2,
.mdc-ctaband h3 {
	color: #fff;
}

.mdc-ctaband__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	padding-bottom: 34px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.mdc-ctaband__top h2 {
	font-size: 26px;
	margin: 0 0 12px;
}

.mdc-ctaband__top p {
	margin: 0;
	font-size: 15px;
}

.mdc-ctaband__points {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 40px;
	padding-top: 30px;
}

.mdc-ctaband__points p {
	margin: 0;
	font-size: 15px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.85);
}

.mdc-ctaband .wp-block-button__link {
	background: rgba(255, 255, 255, 0.18);
	white-space: nowrap;
}

.mdc-ctaband .wp-block-button__link:hover {
	background: #fff;
	color: var(--mdc-primary);
}

/* --------------------------------------------------------------- FAQ */

.mdc-faq__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: start;
}

.mdc-faq__contact {
	background: #fff;
	border-radius: var(--mdc-radius-card);
	padding: 34px 40px;
	display: flex;
	gap: 24px;
	align-items: flex-start;
	margin-top: 50px;
	max-width: 420px;
}

.mdc-faq__contact-icon {
	flex: 0 0 auto;
	width: 54px;
}

.mdc-faq__contact p {
	margin: 0 0 6px;
	font-size: 16px;
	line-height: 1.5;
}

.mdc-faq__contact strong {
	display: block;
	color: var(--mdc-heading);
	font-size: 18px;
	margin: 10px 0 6px;
}

/* Core <details> block, styled as the accordion in the design. */
.is-style-faq {
	border-bottom: 1px solid rgba(85, 97, 113, 0.2);
	padding: 26px 0;
}

.is-style-faq summary {
	list-style: none;
	cursor: pointer;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--mdc-heading);
	display: flex;
	justify-content: space-between;
	gap: 20px;
	align-items: flex-start;
}

.is-style-faq summary::-webkit-details-marker {
	display: none;
}

.is-style-faq summary::after {
	content: "";
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	margin-top: 6px;
	background: currentColor;
	transition: transform var(--mdc-transition);
	clip-path: polygon(45% 0, 55% 0, 55% 45%, 100% 45%, 100% 55%, 55% 55%, 55% 100%, 45% 100%, 45% 55%, 0 55%, 0 45%, 45% 45%);
}

.is-style-faq[open] summary::after {
	transform: rotate(45deg);
}

.is-style-faq > *:not(summary) {
	margin-top: 18px;
	font-size: 16px;
	line-height: 1.6;
}

/* --------------------------------------------------------------- footer */

.mdc-footer {
	background: var(--mdc-primary);
	color: #fff;
	border-radius: var(--mdc-radius-section) var(--mdc-radius-section) 0 0;
	margin: 60px 20px 0;
	padding: 80px 60px 40px;
	max-width: none;
}

.mdc-footer a,
.mdc-footer p,
.mdc-footer li {
	color: rgba(255, 255, 255, 0.85);
}

.mdc-footer a:hover {
	color: #fff;
}

.mdc-footer__heading {
	color: #fff !important;
	font-size: 20px;
	margin: 0 0 24px;
}

.mdc-footer__top {
	gap: 40px;
}

.mdc-footer-brand {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.mdc-footer-brand__logo-card {
	width: fit-content;
	max-width: min(100%, 300px);
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.mdc-footer__logo {
	margin: 0;
}

.mdc-footer__logo img {
	display: block;
	width: clamp(210px, 25vw, 255px);
	max-width: 100%;
	height: auto;
	object-fit: contain;
}

.mdc-footer__tagline {
	margin: 24px 0 0;
	font-size: 16px;
	line-height: 1.6;
	max-width: 330px;
}

.mdc-footer__links {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 14px;
}

.mdc-footer__links li {
	position: relative;
	padding-left: 18px;
	font-size: 16px;
	line-height: 1.5;
}

.mdc-footer__links li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 9px;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.6);
}

.mdc-footer__contact li {
	padding-left: 0;
}

.mdc-footer__contact li::before {
	display: none;
}

.mdc-footer__social {
	margin: 24px 0 0;
	gap: 12px;
}

.mdc-footer__social .wp-social-link {
	background: rgba(255, 255, 255, 0.12);
	border-radius: 50%;
	padding: 10px;
	transition: background var(--mdc-transition);
}

.mdc-footer__social .wp-social-link:hover {
	background: rgba(255, 255, 255, 0.28);
}

.mdc-footer__bottom {
	margin-top: 60px;
	padding-top: 30px;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	gap: 20px;
	font-size: 15px;
}

.mdc-footer__bottom p {
	margin: 0;
	font-size: 15px;
}

.mdc-footer__legal {
	gap: 26px;
}

/* Keep the expanded footer columns comfortable without changing the
   established Revaxis colour treatment. */
.mdc-footer__top { gap: 28px; }
.mdc-footer__top > .wp-block-column { min-width: 0; }
.mdc-footer__links { gap: 11px; }
.mdc-footer__contact { gap: 14px; }
.mdc-footer__contact-item { position: relative; padding-left: 34px !important; }
.mdc-footer__contact-item::before { position: absolute; left: 0; top: 1px; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--mdc-primary-tint); color: var(--mdc-primary-dark); font-size: 12px; }
.mdc-footer__contact-item--phone::before { content: '☎'; }
.mdc-footer__contact-item--email::before { content: '✉'; }
.mdc-footer__contact-item--address::before { content: '⌖'; }
.mdc-footer__heading--legal { margin-top: 28px; }

/* --------------------------------------------------------------- blog */

.mdc-post-grid {
	gap: 30px;
	margin-top: 50px;
}

.mdc-post-card {
	background: #fff;
	border: 1px solid rgba(85, 97, 113, 0.14);
	border-radius: var(--mdc-radius-card);
	overflow: hidden;
	padding-bottom: 24px;
	transition: box-shadow var(--mdc-transition);
}

.mdc-post-card:hover {
	box-shadow: var(--mdc-shadow-card);
}

.mdc-post-card .wp-block-post-title,
.mdc-post-card .wp-block-post-excerpt,
.mdc-post-card .mdc-post-card__meta,
.mdc-post-card .mdc-post-card__more {
	padding-inline: 24px;
}

.mdc-post-card .wp-block-post-title {
	margin-top: 12px;
	line-height: 1.3;
}

.mdc-post-card__meta {
	margin-top: 22px;
	gap: 6px;
	font-size: 13px;
	color: var(--mdc-accent);
}

.mdc-post-card__meta .wp-block-post-date {
	position: relative;
	padding-left: 12px;
}

.mdc-post-card__meta .wp-block-post-date::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 50%;
	transform: translateY(-50%);
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: currentColor;
}

.mdc-post-card__more {
	display: block;
	margin-top: 14px;
	font-weight: 600;
	color: var(--mdc-accent);
	text-decoration: none;
}

.mdc-post-card__more::after {
	content: "→";
	margin-left: 6px;
}

.mdc-pagination {
	gap: 10px;
	margin-top: 50px;
}

.mdc-pagination a,
.mdc-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 10px;
	border-radius: 50%;
	color: var(--mdc-primary);
	text-decoration: none;
	font-weight: 600;
}

.mdc-pagination .page-numbers.current {
	background: var(--mdc-gradient);
	color: #fff;
}

/* =========================================================== blog archive */

.mdc-blog-archive {
	background: #fff;
}

.mdc-blog-archive .mdc-blog-hero {
	max-width: none;
	margin: 0;
	padding: 62px 20px 58px;
	border-radius: 0;
	background: #f2f6f8;
	text-align: center;
}

.mdc-blog-archive .mdc-blog-hero > * {
	max-width: 760px;
	margin-right: auto;
	margin-left: auto;
}

.mdc-blog-archive .mdc-blog-hero__eyebrow {
	margin-bottom: 14px;
	color: var(--mdc-primary-dark);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.mdc-blog-archive .mdc-blog-hero h1,
.mdc-blog-archive .mdc-blog-hero .wp-block-query-title {
	margin: 0;
	color: var(--mdc-heading);
	font-size: clamp(36px, 4.2vw, 52px);
	line-height: 1.08;
	text-align: center;
	text-wrap: balance;
}

/* Category pills. */
.mdc-blog-filters {
	display: flex;
	max-width: 900px;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 26px auto 0;
}

.mdc-blog-filters__pill {
	padding: 9px 18px;
	border: 1px solid #d6e0e6;
	border-radius: 999px;
	background: #fff;
	color: var(--mdc-heading);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.mdc-blog-filters__pill:hover,
.mdc-blog-filters__pill:focus-visible {
	border-color: var(--mdc-primary);
	color: var(--mdc-primary-dark);
}

.mdc-blog-filters__pill.is-active {
	border-color: var(--mdc-heading);
	background: var(--mdc-heading);
	color: #fff;
}

/* Featured post band. */
.mdc-blog-featured {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	gap: 36px;
	margin-bottom: 48px;
	padding: 32px;
	border-radius: 18px;
	background: #f2f6f8;
}

.mdc-blog-featured__media {
	display: block;
	overflow: hidden;
	aspect-ratio: 1.66;
	border-radius: 12px;
	background: var(--mdc-heading);
}

.mdc-blog-featured__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mdc-blog-featured__category {
	margin: 0 0 10px;
	color: var(--mdc-primary-dark);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.mdc-blog-featured__title {
	margin: 0;
	font-size: clamp(26px, 2.4vw, 34px);
	line-height: 1.16;
}

.mdc-blog-featured__title a {
	color: var(--mdc-heading);
	text-decoration: none;
}

.mdc-blog-featured__title a:hover,
.mdc-blog-featured__title a:focus-visible {
	color: var(--mdc-primary-dark);
}

.mdc-blog-featured__excerpt {
	margin: 14px 0 0;
	color: var(--mdc-body-text);
	font-size: 16px;
	line-height: 1.6;
}

.mdc-blog-featured__meta {
	margin: 20px 0 0;
	color: var(--mdc-muted-text);
	font-size: 14px;
}

@media (max-width: 900px) {
	.mdc-blog-featured {
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 22px;
	}
}

.mdc-blog-archive .mdc-blog-hero__lead {
	max-width: 700px;
	margin-top: 16px;
	color: var(--mdc-body-text);
	font-size: 17px;
	line-height: 1.6;
}

.mdc-blog-archive .mdc-blog-hero .mdc-breadcrumb {
	display: inline-flex;
	margin-top: 16px;
	color: var(--mdc-muted-text);
	font-size: 14px;
}

.mdc-blog-archive .mdc-blog-content {
	width: min(1300px, calc(100% - 40px));
	max-width: 1300px;
	margin: 0 auto;
	padding: 64px 0 72px;
}

.mdc-blog-archive .mdc-post-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	margin: 0;
}

.mdc-blog-archive .mdc-post-card {
	display: flex;
	min-width: 0;
	min-height: 100%;
	flex-direction: column;
	padding: 0 0 24px;
	border: 1px solid #d7e5e9;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 7px 24px rgba(12, 46, 62, .06);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.mdc-blog-archive .mdc-post-card:hover,
.mdc-blog-archive .mdc-post-card:focus-within {
	border-color: #a9cbd2;
	box-shadow: 0 16px 32px rgba(12, 46, 62, .12);
	transform: translateY(-4px);
}

.mdc-blog-archive .mdc-post-card .wp-block-post-featured-image {
	width: 100%;
	margin: 0;
	aspect-ratio: 1.6;
	background: #e3efe9;
	overflow: hidden;
}

.mdc-blog-archive .mdc-post-card .wp-block-post-featured-image a,
.mdc-blog-archive .mdc-post-card .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	height: 100% !important;
}

.mdc-blog-archive .mdc-post-card .wp-block-post-featured-image img {
	object-fit: cover;
	transition: transform .45s ease;
}

.mdc-blog-archive .mdc-post-card:hover .wp-block-post-featured-image img,
.mdc-blog-archive .mdc-post-card:focus-within .wp-block-post-featured-image img {
	transform: scale(1.04);
}

.mdc-blog-archive .mdc-post-card__category,
.mdc-blog-archive .mdc-post-card__meta,
.mdc-blog-archive .mdc-post-card .wp-block-post-title,
.mdc-blog-archive .mdc-post-card .wp-block-post-excerpt,
.mdc-blog-archive .mdc-post-card__more {
	margin-right: 26px;
	margin-left: 26px;
}

.mdc-blog-archive .mdc-post-card__category {
	margin-top: 23px;
	margin-bottom: 0;
	color: var(--mdc-kpi-deep);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	line-height: 1.3;
	text-transform: uppercase;
}

.mdc-blog-archive .mdc-post-card__category a {
	color: inherit;
	text-decoration: none;
}

.mdc-blog-archive .mdc-post-card__meta {
	align-items: center;
	gap: 8px;
	margin-top: 10px;
	margin-bottom: 0;
	color: var(--mdc-muted-text);
	font-size: 12px;
}

.mdc-blog-archive .mdc-post-card__meta .wp-block-post-author-name,
.mdc-blog-archive .mdc-post-card__meta .wp-block-post-date {
	margin: 0;
	padding-left: 0;
}

/* The date leads the card meta here, so drop the separator dot. */
.mdc-blog-archive .mdc-post-card__meta .wp-block-post-date::before {
	content: none;
}

.mdc-blog-archive .mdc-post-card .wp-block-post-title {
	margin-top: 12px;
	margin-bottom: 0;
	font-size: clamp(19px, 1.4vw, 22px);
	line-height: 1.24;
	text-wrap: balance;
}

.mdc-blog-archive .mdc-post-card .wp-block-post-title a {
	color: var(--mdc-heading);
	text-decoration: none;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}

.mdc-blog-archive .mdc-post-card .wp-block-post-excerpt {
	margin-top: 12px;
	margin-bottom: 0;
	color: var(--mdc-body-text);
	font-size: 15px;
	line-height: 1.55;
}

.mdc-blog-archive .mdc-post-card .wp-block-post-excerpt__excerpt {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}

.mdc-blog-archive .mdc-post-card__more {
	margin-top: auto;
	padding-top: 18px;
	color: var(--mdc-primary-dark);
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
}

.mdc-blog-archive .mdc-post-card__more:hover,
.mdc-blog-archive .mdc-post-card__more:focus-visible {
	color: var(--mdc-accent-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.mdc-blog-archive .mdc-pagination {
	justify-content: center;
	gap: 8px;
	margin-top: 46px;
}

.mdc-blog-archive .mdc-pagination a,
.mdc-blog-archive .mdc-pagination .page-numbers {
	min-width: 42px;
	height: 42px;
	border: 1px solid #cbdde2;
	border-radius: 10px;
	background: #fff;
	color: var(--mdc-primary-dark);
	font-size: 14px;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.mdc-blog-archive .mdc-pagination a:hover,
.mdc-blog-archive .mdc-pagination a:focus-visible,
.mdc-blog-archive .mdc-pagination .page-numbers:hover,
.mdc-blog-archive .mdc-pagination .page-numbers:focus-visible {
	border-color: var(--mdc-primary);
	background: var(--mdc-primary-tint);
	color: var(--mdc-primary-dark);
}

.mdc-blog-archive .mdc-pagination .page-numbers.current {
	border-color: var(--mdc-primary);
	background: var(--mdc-primary);
	color: #fff;
}

@media (max-width: 900px) {
	.mdc-blog-archive .mdc-post-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.mdc-blog-archive .mdc-blog-hero {
		padding: 42px 20px 36px;
	}

	.mdc-blog-archive .mdc-blog-hero h1 {
		font-size: 38px;
	}

	.mdc-blog-archive .mdc-blog-hero__lead {
		font-size: 15px;
	}

	.mdc-blog-archive .mdc-blog-content {
		width: calc(100% - 32px);
		padding: 38px 0 48px;
	}

	.mdc-blog-archive .mdc-post-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.mdc-blog-archive .mdc-pagination {
		flex-wrap: wrap;
		margin-top: 32px;
	}
}

.mdc-page-header {
	padding-top: 70px;
	padding-bottom: 70px;
	border-radius: var(--mdc-radius-section);
	margin: 0 20px 70px;
}

.mdc-single__body {
	padding-bottom: 70px;
}

.mdc-404 {
	padding: 120px 20px;
	text-align: center;
}

/* ============================================================ responsive */

@media (max-width: 1300px) {
	:root {
		--mdc-section-pad: 80px;
	}

	.mdc-hero__copy {
		padding-left: 40px;
	}

	/* Keeps the offset badge/callout from widening the page once the container
	   goes fluid. */
	.mdc-scope .mdc-main--home .mdc-about__media,
	.mdc-scope.page-about-us .mdc-about__media {
		overflow: clip;
	}
}

@media (max-width: 1024px) {
	:root {
		--mdc-section-pad: 70px;
	}

	.mdc-topbar__inner {
		flex-wrap: wrap;
		justify-content: center;
		row-gap: 6px;
	}

	.mdc-topbar__left {
		justify-content: center;
		flex-wrap: wrap;
	}

	.mdc-navbar__inner {
		flex-wrap: nowrap;
		gap: 16px;
	}

	/* Core collapses the Navigation block at 600px, which is far too late for
	   this menu — seven items will not fit beside the logo and CTA. Collapse
	   to the hamburger for the whole tablet range instead. */
	.mdc-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.mdc-nav .wp-block-navigation__responsive-container:not(.is-menu-open):not(.hidden-by-default) {
		display: none;
	}

	.mdc-nav {
		flex: 0 0 auto;
	}

	.mdc-navbar__inner {
		justify-content: space-between;
	}

	.mdc-navbar__cta .wp-block-button__link {
		padding: 14px 22px;
		font-size: 15px;
	}

	.mdc-logo img,
	.mdc-logo .custom-logo {
		width: 180px;
	}

	/* The hero stays two-column across the whole tablet range, exactly as the
	   live site does. Core would stack every Columns block under 782px, so the
	   block itself carries isStackedOnMobile:false; the mobile query below
	   stacks it deliberately. */
	.mdc-hero__copy {
		padding-left: 30px;
	}

	.mdc-hero h1 {
		font-size: 36px;
	}

	.mdc-rcm__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}

	.mdc-rcm__trust-cell--aside {
		max-width: 220px;
		padding-left: 28px;
	}

	.mdc-faq__grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.mdc-videocard__features {
		position: static;
		grid-template-columns: 1fr;
		gap: 24px;
		background: var(--mdc-primary);
	}

	.mdc-ctaband {
		padding: 40px;
	}

	.mdc-ctaband__top {
		flex-direction: column;
		align-items: flex-start;
	}

	.mdc-ctaband__points {
		grid-template-columns: repeat(2, 1fr);
		gap: 26px;
	}

	.mdc-testimonial {
		flex-basis: calc((100% - 30px) / 2);
	}

	.mdc-about__badge {
		left: -20px;
		width: 240px;
	}

	.mdc-about__callout {
		right: 0;
		width: 260px;
	}

	.mdc-footer {
		margin: 50px 16px 0;
		padding: 60px 32px 40px;
	}

	.mdc-marquee__item {
		flex-basis: 210px;
		width: 210px;
		height: 120px;
	}

	.mdc-marquee__item img {
		max-width: 190px;
		height: 90px;
		max-height: 120px;
	}
}

@media (max-width: 767px) {
	:root {
		--mdc-section-pad: 56px;
		--mdc-radius-section: 20px;
	}

	/* The bar used to stack into four centred rows, eating ~120px above the
	   logo before any content. On phones it carries the two actionable
	   details only — the location and the social row are both repeated in
	   the footer — on a single compact line. */
	.mdc-topbar {
		padding-top: 0;
		padding-bottom: 0;
	}

	.mdc-topbar__inner {
		flex-direction: row;
		flex-wrap: nowrap;
		justify-content: center;
		align-items: center;
		text-align: center;
		gap: 14px;
		min-height: 34px;
	}

	.mdc-topbar__left {
		flex-direction: row;
		justify-content: center;
		gap: 14px;
		padding: 0;
	}

	.mdc-topbar__item {
		padding: 0;
		border-left: 0;
		font-size: 12px;
		white-space: nowrap;
	}

	.mdc-topbar__social,
	.mdc-topbar__item--location {
		display: none;
	}

	.mdc-topbar__item--phone {
		padding: 0;
	}

	.mdc-logo img,
	.mdc-logo .custom-logo {
		width: 160px;
	}

	/* On phones the header is the logo and the menu toggle; the appointment
	   CTA squeezes the logo to nothing and is repeated in the menu. */
	/* Core prints `.is-layout-flex { display:flex }` inline after this sheet,
	   so the selector has to out-specify it. */
	.mdc-navbar__inner .mdc-navbar__cta {
		display: none;
	}

	/* Mobile overlay menu. */
	.mdc-nav .wp-block-navigation__responsive-container.is-menu-open {
		background: #fff;
		padding: 30px 24px;
	}

	.mdc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		gap: 18px;
		text-align: center;
	}

	/* Below the tablet breakpoint the live site drops the panel gutters and
	   runs the hero, and the tinted sections, edge to edge. */
	.mdc-hero {
		padding-top: 40px;
	}

	/* Gutter so the stacked float cards do not touch the panel edges. */
	.mdc-hero__copy,
	.mdc-hero__media {
		padding-inline: 16px;
	}

	/* Hero stacks: copy above, image below — copy stays left-aligned. */
	.mdc-hero__inner {
		flex-direction: column;
	}

	/* Flex items in a column container size to their content, so the columns
	   must be pinned to the container width or wide images overflow. */
	.mdc-hero__inner > .wp-block-column {
		width: 100%;
		max-width: 100%;
		flex-basis: auto;
	}

	/* `align-self` must be reset: once the hero stacks, the base `flex-end`
	   becomes a horizontal alignment and shoves the photo right. */
	.mdc-hero__media {
		align-self: stretch;
	}

	.mdc-hero__actions {
		justify-content: center;
	}

	.mdc-hero h1 {
		font-size: 30px;
	}

	.mdc-hero__trust {
		font-size: 14px;
		padding: 8px 16px 8px 10px;
	}

	.mdc-section--tint {
		margin-left: 0;
		margin-right: 0;
	}

	.mdc-rcm {
		padding-top: 50px;
	}

	.mdc-rcm__grid {
		grid-template-columns: 1fr;
		gap: 18px;
		margin-top: 40px;
	}

	.mdc-rcm__card {
		padding: 28px 22px 26px;
	}

	.mdc-rcm__trust {
		flex-direction: column;
		align-items: stretch;
		gap: 24px;
		padding: 28px 24px;
		border-radius: 24px;
	}

	.mdc-rcm__trust-cell--aside {
		max-width: none;
		padding-left: 0;
		padding-top: 20px;
		border-left: 0;
		border-top: 1px solid var(--mdc-border);
	}

	.mdc-services__grid,
	.mdc-post-grid {
		gap: 18px;
	}

	.mdc-feature {
		gap: 16px;
	}

	.mdc-feature__icon {
		width: 56px;
		height: 56px;
	}

	.mdc-about__badge,
	.mdc-about__callout {
		position: static;
		width: 100%;
		margin-top: 20px;
	}

	.mdc-testimonial {
		flex-basis: 100%;
		min-height: 0;
		padding: 26px;
	}

	.mdc-ctaband {
		padding: 30px 24px;
	}

	.mdc-ctaband__points {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.mdc-reviewbar {
		gap: 24px;
		padding: 22px;
	}

	.mdc-reviewbar__google img {
		width: 220px;
	}

	.mdc-faq__contact {
		padding: 24px;
		max-width: none;
	}

	.mdc-footer {
		margin: 40px 12px 0;
		padding: 50px 24px 30px;
		text-align: left;
	}

	.mdc-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
	}

	.mdc-marquee__track {
		gap: 22px;
	}

	.mdc-marquee__item {
		flex-basis: 132px;
		width: 132px;
		height: 92px;
	}

	.mdc-marquee__item img {
		max-width: 124px;
		height: 78px;
		max-height: 92px;
	}

	.mdc-page-header {
		margin: 0 12px 40px;
		padding-top: 44px;
		padding-bottom: 44px;
	}

	/* Long labels, email addresses and service names are common on this site.
	   Let them wrap inside their cards instead of forcing a horizontal scroll. */
	.mdc-contact-cell,
	.mdc-contact-card__social,
	.mdc-faq__contact,
	.mdc-feature,
	.mdc-appointment-point {
		min-width: 0;
	}

	.mdc-contact-cell > *,
	.mdc-contact-card__social > *,
	.mdc-faq__contact > *,
	.mdc-feature > *,
	.mdc-appointment-point > * {
		min-width: 0;
	}

	.mdc-contact-cell p,
	.mdc-contact-cell a,
	.mdc-footer a,
	.mdc-appointment-point p {
		overflow-wrap: anywhere;
	}

	/* Two narrow checklist columns make the copy difficult to scan on phones. */
	.mdc-page-intro__points {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.mdc-reviewbar__text {
		white-space: normal;
	}

	.is-style-faq {
		padding: 20px 0;
	}

	.is-style-faq summary {
		font-size: 18px;
	}

	/* Keep the menu controls comfortably tappable even when Core's defaults
	   change between WordPress releases. */
	.mdc-nav .wp-block-navigation__responsive-container-open,
	.mdc-nav .wp-block-navigation__responsive-container-close {
		min-width: 44px;
		min-height: 44px;
		padding: 10px;
	}
}

/* Small phones (including 320px devices) need the paired stat cards to scale
   with the available width.  The desktop-sized 160px circles otherwise leave
   almost no gutter and can create a tiny horizontal overflow. */
@media (max-width: 359px) {
	.mdc-section__inner {
		padding-inline: 16px;
	}

	.mdc-rcm__value {
		font-size: clamp(34px, 10vw, 42px);
	}

	.mdc-contact-card__side,
	.mdc-contact-card__form {
		padding-inline: 20px;
	}

	.mdc-contact-cell {
		padding: 16px;
		gap: 12px;
	}

	.mdc-ctaband,
	.mdc-footer {
		padding-inline: 20px;
	}
}

/* Hero floats collapse into the flow on small screens, where absolute
   positioning over the photo would overlap the subject's face. */
@media (max-width: 1024px) {
	.mdc-hero__float--1,
	.mdc-hero__float--2,
	.mdc-hero__float--3 {
		right: auto;
		left: auto;
	}

	.mdc-hero__float--1 {
		top: 8%;
		right: 20px;
	}

	.mdc-hero__float--2 {
		top: 40%;
		left: 20px;
	}

	.mdc-hero__float--3 {
		bottom: 14%;
		right: 20px;
	}

	.mdc-hero__image img {
		max-height: 520px;
	}
}

@media (max-width: 767px) {
	.mdc-hero__float {
		position: static;
		max-width: none;
		margin-top: 10px;
	}

	.mdc-hero__media {
		display: flex;
		flex-direction: column;
	}

	.mdc-hero__image img {
		max-height: 420px;
	}

	.mdc-hero__shape {
		display: none;
	}
}

/* --------------------------------------------------------- contact card */

.mdc-contact-card {
	align-items: stretch;
	gap: 0;
	background: #fff;
	border-radius: var(--mdc-radius-section);
	box-shadow: var(--mdc-shadow-card);
	overflow: hidden;
}

.mdc-contact-card__side {
	flex: 0 0 360px;
	padding: 50px 30px;
	display: grid;
	gap: 16px;
	align-content: start;
}

.mdc-contact-cell {
	align-items: center;
	gap: 16px;
	padding: 18px 20px;
	background: var(--mdc-lilac);
	border-radius: var(--mdc-radius-card);
}

.mdc-contact-cell__icon {
	flex: 0 0 auto;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--mdc-accent);
	position: relative;
}

.mdc-contact-cell__icon::before {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 18px;
	height: 18px;
	background-color: #fff;
	mask: no-repeat center / contain;
	-webkit-mask: no-repeat center / contain;
}

.mdc-contact-cell--phone .mdc-contact-cell__icon::before {
	-webkit-mask-image: var(--mdc-icon-support);
	mask-image: var(--mdc-icon-support);
}

.mdc-contact-cell--pin .mdc-contact-cell__icon::before {
	-webkit-mask-image: var(--mdc-icon-pin);
	mask-image: var(--mdc-icon-pin);
}

.mdc-contact-cell--envelope .mdc-contact-cell__icon::before {
	-webkit-mask-image: var(--mdc-icon-envelope);
	mask-image: var(--mdc-icon-envelope);
}

.mdc-contact-cell__title {
	margin: 0 0 4px;
	font-weight: 600;
	color: var(--mdc-heading);
}

.mdc-contact-cell p {
	margin: 0;
}

.mdc-contact-cell a {
	color: inherit;
	text-decoration: none;
}

.mdc-contact-card__social {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 6px;
}

.mdc-contact-card__social p {
	margin: 0;
	line-height: 24px;
}

.mdc-contact-card__social .wp-block-social-links {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 0;
	line-height: 0;
}

.mdc-contact-card__social .wp-social-link {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
}

.mdc-contact-card__social .wp-social-link svg {
	display: block;
}

.mdc-contact-card__form {
	flex: 1 1 auto;
	padding: 50px 40px;
	border-left: 1px solid rgba(53, 33, 78, 0.08);
}

/* Contact is a standalone landing page. Its title introduces the card
   immediately instead of inheriting the looser article-page rhythm. */
.mdc-main--full .mdc-contact-page-intro {
	padding-top: 64px;
	padding-bottom: 58px;
}

.mdc-main--full .mdc-contact-page-intro h1 {
	margin-bottom: 16px;
}

.mdc-main--full .mdc-contact-section {
	padding-top: 64px;
	padding-bottom: 72px;
}

/* The About page uses its own title band, so it follows the same compact
   landing-page rhythm as Contact without a duplicate generic page header. */
.mdc-main--full .mdc-about-page-intro {
	padding-top: 64px;
	padding-bottom: 58px;
}

.mdc-main--full .mdc-about-page-intro h1 {
	margin-bottom: 16px;
}

.mdc-main--full .mdc-about-page-intro + .mdc-section {
	padding-top: 64px;
}

/* About page: two-column story panel with scoped desktop and mobile rhythm. */
.page-about-us .mdc-main--full > .mdc-page-intro {
	padding: 56px 60px;
	border-radius: 44px;
}

.page-about-us .mdc-about-hero {
	gap: 70px;
	margin: 0;
}

.page-about-us .mdc-about-hero__media img {
	display: block;
	width: 100%;
	border-radius: 28px;
}

.page-about-us .mdc-about-hero__copy h1 {
	margin: 0 0 18px;
	font-size: 46px;
	line-height: 1.08;
	text-align: left;
}

.page-about-us .mdc-about-hero__copy > p {
	margin: 0 0 24px;
	max-width: 580px;
}

.page-about-us .mdc-about-hero__tabs {
	gap: 16px;
	margin: 0 0 26px;
}

.page-about-us .mdc-about-hero__tabs .wp-block-button__link {
	min-width: 122px;
	padding: 13px 22px;
	text-align: center;
}

.page-about-us .mdc-about-hero__tabs .is-style-outline .wp-block-button__link {
	color: var(--mdc-primary);
	background: #fff;
	border-color: transparent;
}

.page-about-us .mdc-about-hero__summary {
	gap: 24px;
	margin: 0;
}

.page-about-us .mdc-about-hero__summary img {
	display: block;
	width: 100%;
	aspect-ratio: 1.45;
	object-fit: cover;
	border-radius: 18px;
}

.page-about-us .mdc-page-intro .mdc-page-intro__points {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin: 0;
}

.page-about-us .mdc-page-intro .mdc-page-intro__points li {
	font-size: 14px;
}

@media (max-width: 1024px) {
	.page-about-us .mdc-main--full > .mdc-page-intro {
		padding: 44px 34px;
	}

	.page-about-us .mdc-about-hero {
		gap: 36px;
	}

	.page-about-us .mdc-about-hero__copy h1 {
		font-size: 36px;
	}
}

@media (max-width: 880px) {
	.page-about-us .mdc-about-hero {
		flex-direction: column;
	}

	.page-about-us .mdc-about-hero > .wp-block-column {
		flex-basis: auto !important;
		width: 100%;
	}
}

@media (max-width: 480px) {
	.page-about-us .mdc-main--full > .mdc-page-intro {
		padding: 32px 20px;
	}

	.page-about-us .mdc-about-hero__copy h1 {
		font-size: 30px;
	}

	.page-about-us .mdc-about-hero__summary {
		flex-direction: column;
	}

	.page-about-us .mdc-about-hero__summary > .wp-block-column {
		flex-basis: auto !important;
		width: 100%;
	}
}

.mdc-contact-form {
	margin-top: 24px;
	display: grid;
	gap: 16px;
}

.mdc-contact-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.mdc-contact-form input,
.mdc-contact-form textarea {
	width: 100%;
	padding: 16px 20px;
	border: 1px solid rgba(53, 33, 78, 0.14);
	border-radius: var(--mdc-radius-card);
	font-family: inherit;
	font-size: 15px;
	color: var(--mdc-body-text);
	background: var(--mdc-lilac);
	resize: vertical;
}

.mdc-contact-form input::placeholder,
.mdc-contact-form textarea::placeholder {
	color: rgba(53, 33, 78, 0.5);
}

.mdc-contact-form__submit {
	justify-self: start;
	padding: 17px 34px;
	border: 0;
	border-radius: 50px;
	background: var(--mdc-gradient);
	color: #fff;
	font-weight: 600;
	font-size: 16px;
	cursor: pointer;
}

@media (max-width: 880px) {
	.mdc-contact-card {
		flex-direction: column;
	}

	.mdc-contact-card__side {
		flex-basis: auto;
		padding: 30px;
	}

	.mdc-contact-card__form {
		padding: 0 30px 30px;
		border-left: 0;
	}

	.mdc-contact-form__row {
		grid-template-columns: 1fr;
	}
}

/* ----------------------------------------------------- appointment card */

.mdc-appointment-card {
	align-items: stretch;
	gap: 0;
	background: #fff;
	border-radius: var(--mdc-radius-section);
	box-shadow: var(--mdc-shadow-card);
	padding: 50px;
}

.mdc-appointment-card__form {
	flex: 0 0 450px;
}

.mdc-appointment-form {
	display: grid;
	gap: 16px;
}

.mdc-appointment-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.mdc-appointment-form__field {
	display: block;
}

.mdc-appointment-form input,
.mdc-appointment-form select {
	width: 100%;
	padding: 16px 20px;
	border: 1px solid rgba(53, 33, 78, 0.14);
	border-radius: var(--mdc-radius-card);
	font-family: inherit;
	font-size: 15px;
	color: var(--mdc-body-text);
	background: var(--mdc-lilac);
	appearance: none;
}

.mdc-appointment-form select {
	background-image: var(--mdc-icon-caret);
	background-repeat: no-repeat;
	background-position: right 20px center;
	background-size: 14px;
}

.mdc-appointment-form input::placeholder {
	color: rgba(53, 33, 78, 0.5);
}

.mdc-appointment-form__submit {
	justify-self: start;
	padding: 17px 40px;
	border: 0;
	border-radius: 50px;
	background: var(--mdc-gradient);
	color: #fff;
	font-weight: 600;
	font-size: 16px;
	cursor: pointer;
}

.mdc-form-notice {
	margin: 0 0 16px;
	padding: 14px 18px;
	border-radius: var(--mdc-radius-card);
	font-size: 14px;
	font-weight: 500;
}

.mdc-form-notice--success {
	background: #e6f4ea;
	color: #1e7a34;
}

.mdc-form-notice--error {
	background: #fdeaea;
	color: #b3261e;
}

.mdc-appointment-card__side {
	flex: 1 1 auto;
	padding-left: 60px;
	display: grid;
	align-content: start;
}

.mdc-appointment-card__side h2 {
	margin: 0 0 12px;
}

.mdc-appointment-point {
	align-items: flex-start;
	gap: 20px;
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid rgba(53, 33, 78, 0.1);
}

.mdc-appointment-point__icon {
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
}

.mdc-appointment-point__icon::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background-color: var(--mdc-primary);
	mask: no-repeat center / contain;
	-webkit-mask: no-repeat center / contain;
}

.mdc-appointment-point__icon--graph::before {
	-webkit-mask-image: var(--mdc-icon-graph);
	mask-image: var(--mdc-icon-graph);
}

.mdc-appointment-point__icon--support::before {
	-webkit-mask-image: var(--mdc-icon-support);
	mask-image: var(--mdc-icon-support);
}

.mdc-appointment-point h3 {
	margin: 0 0 6px;
	font-size: 18px;
}

.mdc-appointment-point p {
	margin: 0;
}

@media (max-width: 1024px) {
	.mdc-appointment-card {
		padding: 36px;
	}

	.mdc-appointment-card__form {
		flex-basis: 380px;
	}

	.mdc-appointment-card__side {
		padding-left: 36px;
	}
}

@media (max-width: 880px) {
	.mdc-appointment-card {
		flex-direction: column;
		padding: 30px;
	}

	.mdc-appointment-card__form {
		flex-basis: auto;
	}

	.mdc-appointment-form__row {
		grid-template-columns: 1fr;
	}

	.mdc-appointment-card__side {
		padding-left: 0;
		margin-top: 30px;
	}
}

/* --------------------------------------------------- consultation panel */

.mdc-consult {
	max-width: 700px;
	margin: 0 auto;
	padding: 60px 40px;
	text-align: center;
	background: var(--mdc-gradient);
	border-radius: var(--mdc-radius-section);
	color: #fff;
}

.mdc-consult h2,
.mdc-consult p {
	color: #fff;
}

.mdc-consult p {
	margin: 16px auto 0;
	max-width: 520px;
}

.mdc-consult__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.15);
	margin-bottom: 20px;
	position: relative;
}

.mdc-consult__icon::before {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 26px;
	height: 26px;
	background-color: #fff;
	-webkit-mask: var(--mdc-icon-support) no-repeat center / contain;
	mask: var(--mdc-icon-support) no-repeat center / contain;
}

.mdc-consult .wp-block-buttons {
	justify-content: center;
	margin-top: 28px;
}

.mdc-consult .is-style-outline .wp-block-button__link {
	border: 2px solid #fff;
	color: #fff;
	background: transparent;
	border-radius: 50px;
	padding: 15px 32px;
	font-weight: 600;
}

/* Breadcrumb under the page-intro title. */
.mdc-breadcrumb {
	margin: 16px auto 0;
	display: inline-flex;
	gap: 8px;
	padding: 8px 20px;
	border-radius: 50px;
	background: var(--mdc-gradient);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
}

.mdc-breadcrumb a {
	color: #fff;
	text-decoration: none;
}

/* ------------------------------------------------- generated content pages */

/* Inner pages (About, Services, legal, service details) are long-form prose
   assembled from core blocks. The homepage patterns set their own spacing, so
   these rules are scoped to the full-width template to avoid affecting it. */

/* The intro reads as a page header, so it carries the tint the archive and
   single templates use rather than sitting in dead white space. */
.mdc-main--full .mdc-page-intro {
	background: var(--mdc-lilac);
	border-radius: 0 0 var(--mdc-radius-section) var(--mdc-radius-section);
	padding-top: 70px;
	padding-bottom: 70px;
}

/* A checklist directly under the intro would otherwise be adrift. */
.mdc-main--full .mdc-page-intro + .mdc-section {
	padding-top: 60px;
}

.mdc-main--full .mdc-page-intro h1 {
	margin-bottom: 22px;
}

.mdc-main--full .mdc-section h2 {
	margin: 0 0 20px;
}

.mdc-main--full .mdc-section h3 {
	margin: 38px 0 12px;
}

.mdc-main--full .mdc-section h3:first-child {
	margin-top: 0;
}

/* The measure is set by the section's own contentSize (1000px), so headings
   and body copy share a single left edge. */
.mdc-main--full .mdc-section p {
	margin: 0 0 18px;
}

.mdc-main--full .mdc-page-intro p {
	max-width: 780px;
}

.mdc-main--full .mdc-section .wp-block-list {
	margin: 26px 0;
}

/* Article prose: the global blockGap is 0, so posts set their own rhythm. */
.mdc-single__body h2 {
	margin: 44px 0 16px;
	font-size: 30px;
}

.mdc-single__body h3 {
	margin: 34px 0 12px;
	font-size: 22px;
}

.mdc-single__body h4 {
	margin: 30px 0 10px;
	font-size: 19px;
	color: var(--mdc-heading);
}

.mdc-single__body p {
	margin: 0 0 18px;
}

.mdc-single__body .wp-block-list {
	margin: 0 0 22px;
	padding-left: 22px;
}

.mdc-single__body .wp-block-list li {
	margin-bottom: 8px;
}

.mdc-single__layout {
	align-items: flex-start;
	gap: 40px;
}

.mdc-single__content {
	flex: 1 1 auto;
	min-width: 0;
}

.mdc-toc {
	flex: 0 0 280px;
	position: sticky;
	top: 24px;
	border: 1px solid rgba(53, 33, 78, 0.14);
	border-radius: var(--mdc-radius-card);
	padding: 20px 22px;
	background: #fff;
}

.mdc-toc__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	cursor: pointer;
}

.mdc-toc__title {
	margin: 0;
	font-size: 17px;
	color: var(--mdc-heading);
}

.mdc-toc__toggle {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	border: 0;
	background: none;
	padding: 0;
	cursor: pointer;
	position: relative;
}

.mdc-toc__toggle::before {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 12px;
	height: 12px;
	background-color: var(--mdc-primary);
	-webkit-mask: var(--mdc-icon-caret) no-repeat center / contain;
	mask: var(--mdc-icon-caret) no-repeat center / contain;
	transition: transform var(--mdc-transition);
}

.mdc-toc[data-collapsed="true"] .mdc-toc__toggle::before {
	transform: rotate(-90deg);
}

.mdc-toc__body {
	margin-top: 14px;
	max-height: 340px;
	overflow-y: auto;
}

.mdc-toc[data-collapsed="true"] .mdc-toc__body {
	display: none;
}

.mdc-toc__list,
.mdc-toc__list ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.mdc-toc__list ul {
	padding-left: 16px;
}

.mdc-toc__list li {
	margin: 0 0 10px;
}

.mdc-toc__list a {
	color: var(--mdc-accent);
	text-decoration: none;
	font-size: 14px;
	line-height: 1.4;
}

.mdc-toc__list a:hover {
	color: var(--mdc-primary);
	text-decoration: underline;
}

@media (max-width: 1024px) {
	.mdc-single__layout {
		flex-direction: column;
	}

	.mdc-toc {
		flex-basis: auto;
		width: 100%;
		position: static;
	}
}

.mdc-single__thumb {
	margin-bottom: 36px;
}

.mdc-single__thumb img {
	border-radius: var(--mdc-radius-card);
}

.mdc-post-meta {
	gap: 6px 18px;
	font-size: 15px;
	color: var(--mdc-accent);
}

.mdc-post-meta__item {
	gap: 6px;
	align-items: center;
}

.mdc-post-meta__item::before {
	content: "";
	flex: 0 0 auto;
	width: 14px;
	height: 14px;
	background-color: currentColor;
	-webkit-mask: no-repeat center / contain;
	mask: no-repeat center / contain;
}

.mdc-post-meta__item--author::before {
	-webkit-mask-image: var(--mdc-icon-user);
	mask-image: var(--mdc-icon-user);
}

.mdc-post-meta__item--date::before {
	-webkit-mask-image: var(--mdc-icon-calendar);
	mask-image: var(--mdc-icon-calendar);
}

.mdc-post-meta__item--time::before {
	-webkit-mask-image: var(--mdc-icon-clock);
	mask-image: var(--mdc-icon-clock);
}

.mdc-related {
	padding: var(--mdc-section-pad) 0;
}

.mdc-related h2 {
	margin: 0 0 32px;
}

/* Two-column check lists on wide screens, matching the original pages. */
@media (min-width: 900px) {
	.mdc-main--full .mdc-section .is-style-checklist {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 40px;
	}
}

/* ==========================================================================
   Design refinement passes — ported from the reference build's layout,
   spacing, typography and motion work, then recoloured to the client palette.

   Scope guarantee: every selector below is rooted in `.mdc-scope` (added by
   mdc_scope_body_class() only on routes outside Services/Specialities), or in
   an explicit `body:not(.page-services)…` chain. The homepage services-cards
   section (.mdc-services / .mdc-card) is excluded as well, since `.mdc-scope`
   is present on the homepage. No rule here can alter an excluded page.

   Colour: no reference colour value is carried over. Brand literals were
   replaced with the client-derived tokens declared in :root above.
   ========================================================================== */
/* ================================================= reference-match pass
   These corrections are intentionally page-scoped. Services and speciality
   routes retain their existing layout and interaction rules. */

/* The complete desktop menu stops fitting just above the original 1024px
   switch. Collapse it slightly earlier on in-scope routes only. */
@media (max-width: 1120px) {
	body:not(.page-services):not(.page-medical-billing-specialties):not(.parent-pageid-6):not(.parent-pageid-7)
	.mdc-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	body:not(.page-services):not(.page-medical-billing-specialties):not(.parent-pageid-6):not(.parent-pageid-7)
	.mdc-nav .wp-block-navigation__responsive-container:not(.is-menu-open):not(.hidden-by-default) {
		display: none;
	}

	body:not(.page-services):not(.page-medical-billing-specialties):not(.parent-pageid-6):not(.parent-pageid-7)
	.mdc-nav {
		flex: 0 0 auto;
	}

	body:not(.page-services):not(.page-medical-billing-specialties):not(.parent-pageid-6):not(.parent-pageid-7)
	.mdc-navbar__inner {
		justify-content: space-between;
	}
}

@media (min-width: 1025px) and (max-width: 1120px) {
	.home .mdc-hero {
		overflow: hidden;
	}

	.home .mdc-about__callout {
		right: 0;
		width: 250px;
	}

	.home .mdc-hero__float--1 {
		right: 10px;
	}
}

/* About: the reference opens with a real two-column story panel, not a
   centred title followed by a detached checklist. */
.page-about-us .mdc-main--full > .mdc-page-intro {
	padding: 56px 60px;
	border-radius: 44px;
}

.page-about-us .mdc-about-hero {
	gap: 70px;
	margin: 0;
}

.page-about-us .mdc-about-hero__media img {
	display: block;
	width: 100%;
	border-radius: 28px;
}

.page-about-us .mdc-about-hero__copy h1 {
	margin: 0 0 18px;
	font-size: 46px;
	line-height: 1.08;
	text-align: left;
}

.page-about-us .mdc-about-hero__copy > p {
	margin: 0 0 24px;
	max-width: 580px;
}

.page-about-us .mdc-about-hero__tabs {
	gap: 16px;
	margin: 0 0 26px;
}

.page-about-us .mdc-about-hero__tabs .wp-block-button__link {
	min-width: 122px;
	padding: 13px 22px;
	text-align: center;
}

.page-about-us .mdc-about-hero__tabs .is-style-outline .wp-block-button__link {
	color: var(--mdc-primary);
	background: #fff;
	border-color: transparent;
}

.page-about-us .mdc-about-hero__summary {
	gap: 24px;
	margin: 0;
}

.page-about-us .mdc-about-hero__summary img {
	display: block;
	width: 100%;
	aspect-ratio: 1.45;
	object-fit: cover;
	border-radius: 18px;
}

.page-about-us .mdc-page-intro .mdc-page-intro__points {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin: 0;
}

.page-about-us .mdc-page-intro .mdc-page-intro__points li {
	font-size: 14px;
}

/* Contact: the live page starts with its form card. Its closing artwork area
   is deliberately spacious, with only the section heading in the document
   flow while the decorative art sits behind it. */
.page-contact-us .mdc-main--full > .mdc-section:first-child {
	padding-top: 110px;
	padding-bottom: 95px;
}

.page-contact-us .mdc-contact-card {
	padding: 58px;
}

.page-contact-us .mdc-contact-card__side {
	flex-basis: 440px;
	padding: 0 58px 0 0;
}

.page-contact-us .mdc-contact-card__form {
	padding: 0 0 0 58px;
}

.page-contact-us .mdc-contact-form input {
	min-height: 62px;
}

.page-contact-us .mdc-contact-form textarea {
	min-height: 129px;
}

.page-contact-us .mdc-contact-closing {
	min-height: 900px;
	padding-top: 70px;
	padding-bottom: 70px;
}

.page-contact-us .mdc-contact-closing h2 {
	font-size: 44px;
}

/* Appointment: measured reference proportions are a 550px form column and a
   larger lilac testimonial stage with carousel arrows. */
.page-appointment .mdc-main--full > .mdc-section:first-child {
	padding-top: 110px;
	padding-bottom: 95px;
}

.page-appointment .mdc-appointment-card {
	padding: 60px;
}

.page-appointment .mdc-appointment-card__form {
	flex-basis: 550px;
}

.page-appointment .mdc-appointment-card__side {
	padding-left: 60px;
}

.page-appointment .entry-content > .mdc-section:nth-child(2) {
	padding-top: 140px;
	padding-bottom: 110px;
	background: linear-gradient(180deg, var(--mdc-primary-tint) 0%, var(--mdc-primary-mid) 100%);
	border-radius: 44px;
	overflow: hidden;
}

.page-appointment .entry-content > .mdc-section:nth-child(2) > p {
	display: none;
}

.page-appointment .entry-content > .mdc-section:nth-child(2) > h2 {
	max-width: 650px;
	margin-inline: auto;
	font-size: 46px;
	line-height: 1.08;
}

.page-appointment .mdc-testimonials {
	margin-top: 125px;
}

.page-appointment .mdc-testimonial {
	min-height: 420px;
}

.page-appointment .mdc-testimonials__dots {
	margin-top: 90px;
}

.page-appointment .mdc-testimonials__dots button {
	width: 40px;
	height: 40px;
	background: var(--mdc-primary);
	border-radius: 50%;
	opacity: 1;
	color: #fff;
}

.page-appointment .mdc-testimonials__dots button::before {
	content: "←";
	font-size: 20px;
	line-height: 1;
}

.page-appointment .mdc-testimonials__dots button:nth-child(2)::before {
	content: "→";
}

/* Blog archive: match the large page-title panel and the unboxed editorial
   cards with taller featured imagery. */
.blog .mdc-page-header {
	padding-top: 125px;
	padding-bottom: 115px;
	margin-bottom: 75px;
}

.blog .mdc-page-header h1 {
	font-size: 68px !important;
	line-height: 1.2;
}

.blog .mdc-archive-wrap {
	max-width: 1270px;
}

.blog .mdc-post-grid {
	gap: 70px 30px;
}

.blog .mdc-post-card {
	border: 0;
	border-radius: 0;
	padding-bottom: 0;
	overflow: visible;
}

.blog .mdc-post-card:hover {
	box-shadow: none;
}

.blog .mdc-post-card .wp-block-post-featured-image {
	overflow: hidden;
	border-radius: 42px;
}

.blog .mdc-post-card .wp-block-post-featured-image img {
	height: 315px !important;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.blog .mdc-post-card:hover .wp-block-post-featured-image img {
	transform: scale(1.035);
}

.blog .mdc-post-card .wp-block-post-title,
.blog .mdc-post-card .mdc-post-card__meta,
.blog .mdc-post-card .mdc-post-card__more {
	padding-inline: 0;
}

.blog .mdc-post-card__meta::before {
	content: "Revaxis MD";
}

.blog .mdc-post-card__meta {
	margin-top: 22px;
	color: #1f2124;
}

.blog .mdc-post-card .wp-block-post-title {
	margin-top: 14px;
}

/* The one selected post intentionally corrected by this pass. */
.mdc-scope.single-post .mdc-page-header {
	max-width: none;
	margin: 0 calc(50% - 50vw) 20px;
	padding: 95px max(30px, calc((100vw - 1300px) / 2));
	border-radius: 0;
	background: var(--mdc-primary-dark) !important;
}

.mdc-scope.single-post .mdc-page-header h1,
.mdc-scope.single-post .mdc-page-header .mdc-post-meta {
	color: #fff;
}

.mdc-scope.single-post .mdc-page-header h1 {
	font-size: 46px !important;
	line-height: 1.18;
	width: 100%;
	max-width: 1250px !important;
}

.mdc-scope.single-post .mdc-single__thumb {
	display: none;
}

.mdc-scope.single-post .mdc-single__layout {
	gap: 30px;
}

.mdc-scope.single-post .mdc-toc {
	flex-basis: 360px;
	border-color: var(--mdc-primary-dark);
	border-radius: 0;
	background: var(--mdc-primary-tint);
}

.mdc-scope.single-post .mdc-single__body {
	width: min(1280px, calc(100% - 40px));
	max-width: 1280px !important;
	padding-top: 0;
}

.mdc-scope.single-post .mdc-post-meta::before {
	content: "Revaxis MD";
}

.mdc-scope.single-post .mdc-consult {
	max-width: 820px;
}

/* Legal copy is prose, so the extracted checklist must read as one ordered
   measure instead of a two-column marketing checklist. */
.page-terms-and-conditions .mdc-main--full .mdc-section .is-style-checklist,
.page-privacy-policy .mdc-main--full .mdc-section .is-style-checklist {
	display: block;
	list-style: decimal;
	padding-left: 24px;
}

.page-terms-and-conditions .is-style-checklist li,
.page-privacy-policy .is-style-checklist li {
	padding-left: 4px;
	margin-bottom: 16px;
	line-height: 1.65;
}

.page-terms-and-conditions .is-style-checklist li::before,
.page-privacy-policy .is-style-checklist li::before {
	display: none;
}

/* Reference reveal: 1.25s ease from 22px below. JS adds the state only when
   the section enters the viewport and reduced-motion users bypass it. */
@keyframes mdc-fade-in-up {
	from { opacity: 0; transform: translateY(22px); }
	to { opacity: 1; transform: translateY(0); }
}

.mdc-scope .mdc-reveal--visible {
	animation: mdc-fade-in-up 1.25s ease var(--mdc-reveal-delay, 0ms) both;
}

@media (max-width: 1024px) {
	.page-about-us .mdc-main--full > .mdc-page-intro {
		padding: 44px 34px;
	}

	.page-about-us .mdc-about-hero {
		gap: 36px;
	}

	.page-about-us .mdc-about-hero__copy h1 {
		font-size: 36px;
	}

	.page-contact-us .mdc-contact-card {
		padding: 36px;
	}

	.page-contact-us .mdc-contact-card__side {
		flex-basis: 330px;
		padding-right: 34px;
	}

	.page-contact-us .mdc-contact-card__form {
		padding-left: 34px;
	}

	.page-appointment .mdc-appointment-card {
		padding: 42px;
	}

	.page-appointment .mdc-appointment-card__form {
		flex-basis: 46%;
	}

	.page-appointment .mdc-appointment-card__side {
		padding-left: 42px;
	}

	.blog .mdc-page-header h1 {
		font-size: 48px !important;
	}

	.blog .mdc-post-card .wp-block-post-featured-image img {
		height: 255px !important;
	}
}

@media (max-width: 880px) {
	.page-about-us .mdc-about-hero {
		flex-direction: column;
	}

	.page-about-us .mdc-about-hero > .wp-block-column {
		flex-basis: auto !important;
		width: 100%;
	}

	.page-contact-us .mdc-main--full > .mdc-section:first-child,
	.page-appointment .mdc-main--full > .mdc-section:first-child {
		padding-top: 70px;
	}

	.page-contact-us .mdc-contact-card {
		padding: 30px;
	}

	.page-contact-us .mdc-contact-card__side,
	.page-contact-us .mdc-contact-card__form {
		padding: 0;
	}

	.page-contact-us .mdc-contact-card__form {
		margin-top: 30px;
	}

	.page-appointment .mdc-appointment-card__side {
		padding-left: 0;
	}

	.page-appointment .entry-content > .mdc-section:nth-child(2) {
		padding: 90px 30px;
	}

	.blog .mdc-page-header {
		padding-top: 92px;
		padding-bottom: 82px;
	}

	.blog .mdc-post-card .wp-block-post-featured-image img {
		height: 300px !important;
	}
}

@media (max-width: 480px) {
	.page-about-us .mdc-main--full > .mdc-page-intro {
		padding: 32px 20px;
	}

	.page-about-us .mdc-about-hero__copy h1 {
		font-size: 30px;
	}

	.page-about-us .mdc-about-hero__summary {
		flex-direction: column;
	}

	.page-about-us .mdc-about-hero__summary > .wp-block-column {
		flex-basis: auto !important;
		width: 100%;
	}

	.page-contact-us .mdc-contact-closing {
		min-height: 620px;
	}

	.page-contact-us .mdc-contact-closing h2 {
		font-size: 34px;
	}

	.page-appointment .entry-content > .mdc-section:nth-child(2) > h2 {
		font-size: 34px;
	}

	.page-appointment .mdc-testimonials {
		margin-top: 70px;
	}

	.page-appointment .mdc-testimonial {
		min-height: 0;
	}

	.blog .mdc-page-header h1 {
		font-size: 34px !important;
	}

	.blog .mdc-post-card .wp-block-post-featured-image img {
		height: 275px !important;
	}

	.mdc-scope.single-post .mdc-page-header {
		padding: 62px 24px;
	}

	.mdc-scope.single-post .mdc-page-header h1 {
		font-size: 30px !important;
	}
}

@media (max-width: 370px) {
	.blog .mdc-page-header h1 {
		font-size: 26px !important;
	}

	.page-terms-and-conditions .mdc-page-intro h1,
	.page-privacy-policy .mdc-page-intro h1 {
		overflow-wrap: anywhere;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mdc-scope .mdc-reveal--visible {
		animation: none;
	}
}

/* ==================================================== reference-match pass 2
   Every rule below is scoped to `.mdc-scope`, the body class added for routes
   outside Services/Specialities (see mdc_scope_body_class in functions.php),
   so none of it can reach the protected templates. Values come from Playwright
   measurements of the live site, recorded in
   playwright-results/MISMATCH-INVENTORY.md. */

/* --- top bar -------------------------------------------------------------
   The live bar lays its 1300px container out as three fixed tracks —
   520 / 390 / 390 of 1300 (40% / 30% / 30%) — rather than distributing free space. That puts the phone
   number at x=980 with its own 10px inset, not flush against the right edge
   (measured: ref x=980 w=390, local was x=1207 w=163). */

.mdc-scope .mdc-topbar__left {
	flex: 0 0 40%;
}

.mdc-scope .mdc-topbar__social {
	flex: 0 0 30%;
}

.mdc-scope .mdc-topbar__item--phone {
	flex: 0 0 30%;
	padding-left: 10px;
}

/* Below Elementor's 767px breakpoint the live bar keeps only the two contact
   lines, stacked and centred; the social row and phone number are dropped.
   Local was showing all four rows, which made the header 198px against the
   reference's 133px. */
@media (max-width: 767px) {
	/* Keep the two tappable details — phone and email — on one line, and drop
	   the location and social row, which the footer already carries. Stacking
	   every track pushed the logo ~120px down the screen. */
	.mdc-scope .mdc-topbar__social,
	.mdc-scope .mdc-topbar__item--location {
		display: none;
	}

	.mdc-scope .mdc-topbar__inner {
		flex-direction: row;
		flex-wrap: nowrap;
		justify-content: center;
		align-items: center;
		gap: 14px;
		min-height: 34px;
	}

	.mdc-scope .mdc-topbar__left {
		flex: 0 1 auto;
		flex-direction: row;
		align-items: center;
		justify-content: center;
		gap: 0;
		padding: 0;
	}

	.mdc-scope .mdc-topbar__item--phone {
		flex: 0 0 auto;
		padding-left: 0;
	}

	.mdc-scope .mdc-topbar__item {
		padding-left: 0;
		white-space: nowrap;
	}

	.mdc-scope .mdc-topbar__item--divided {
		border-left: 0;
	}
}

/* --- desktop navigation --------------------------------------------------
   Resting colour is #1F2124 and the hover target is the brand purple; the live
   menu transitions `all` over .3s. Local was resting on pure black with no
   hover change at all. */
.mdc-scope .mdc-nav .wp-block-navigation-item__content {
	color: rgb(31 33 36);
	transition: all var(--mdc-transition);
}

.mdc-scope .mdc-nav .wp-block-navigation-item__content:hover,
.mdc-scope .mdc-nav .wp-block-navigation-item__content:focus-visible,
.mdc-scope .mdc-nav .current-menu-item > .wp-block-navigation-item__content {
	color: var(--mdc-accent);
}

/* The live CTA animates `all` over .5s. Its background-color resolves to
   transparent on hover while the gradient background-image stays put, so the
   button does not visibly change colour — only the timing is reproduced. */
.mdc-scope .mdc-navbar__cta .wp-block-button__link {
	transition: all 0.5s ease-in-out;
}

/* --- hero ----------------------------------------------------------------
   The live hero carries a single background image (hero-bg-shape-1.png,
   100% wide, pinned to the top centre). Local was drawing two much heavier
   CSS circles instead, which the reference does not have anywhere. */
.mdc-scope .mdc-hero {
	background-image: url('../images/hero-bg-shape-1.png');
	background-repeat: no-repeat;
	background-position: 50% 0%;
	background-size: 100%;
}

.mdc-scope .mdc-hero__shape {
	display: none;
}

/* Mobile header metrics. Measured at 390px the live header is 133px: a 62px
   top bar (10px padding around a 42px two-line stack) above a 71px nav bar
   (10px padding around a 51px row). Local was 51 + 100 = 151. */
@media (max-width: 767px) {
	.mdc-scope .mdc-topbar {
		padding-top: 10px;
		padding-bottom: 10px;
	}

	.mdc-scope .mdc-topbar__inner {
		min-height: 42px;
	}

	.mdc-scope .mdc-navbar {
		padding-top: 10px;
		padding-bottom: 10px;
	}

	.mdc-scope .mdc-navbar__inner {
		min-height: 51px;
	}
}

/* The about callout hangs 40px outside its column. Once the viewport drops
   below ~1380px the container no longer has that much slack either side, so
   the card pushed the document 7px wider than the window — the reference has
   no horizontal overflow at any width. Pull it flush before that happens; the
   1440 position is unchanged. */
@media (max-width: 1379px) {
	.mdc-scope .mdc-about__callout {
		right: 0;
	}
}

/* --- footer ---------------------------------------------------------------
   WordPress core stacks `wp:columns` below 782px, but the live footer keeps
   its three link columns side by side at 768 (measured: Services x=20,
   Quick Links x=265, Contact Us x=447) with only the brand column on its own
   row. Stacking all four made the footer 1261px against the reference's 701px.
   Restore the reference arrangement down to 600px, below which both stack. */
@media (min-width: 600px) and (max-width: 781px) {
	.mdc-scope .mdc-footer__top {
		flex-wrap: wrap;
	}

	.mdc-scope .mdc-footer__top > .wp-block-column {
		flex-basis: 0 !important;
		flex-grow: 1;
	}

	.mdc-scope .mdc-footer__top > .mdc-footer__brand {
		flex-basis: 100% !important;
		flex-grow: 0;
	}
}

/* --- mobile hero ----------------------------------------------------------
   Measured at 430px the live hero is 1183px tall against local's 1413px, and
   the whole difference is padding: the reference opens the panel with 10px,
   insets the copy column by 20px top / 20px side and gives the media column
   no top padding at all. Local was using 40px in all three places. */
@media (max-width: 767px) {
	.mdc-scope .mdc-hero {
		padding-top: 10px;
	}

	.mdc-scope .mdc-hero__copy {
		padding-block: 20px 0;
		padding-inline: 20px;
	}

	.mdc-scope .mdc-hero__media {
		padding-block: 0;
		padding-inline: 20px;
	}
}

/* A legacy homepage "icon mega-menu" for the Services dropdown used to live
   here, built with `.mdc-scope`-prefixed selectors. Its specificity beat the
   compact-vertical-list fix above (`.mdc-nav .wp-block-navigation-item.has-child`)
   on the one property that fix did not mark `!important` — `position` — so
   `.has-child` silently stayed `position: static` everywhere, and the dropdown
   resolved against `.mdc-navbar` (full-bleed, page-left-aligned) instead of the
   "Services" link itself. That is what pinned the menu to the page corner.
   Removed rather than patched: the mega-menu was already fully suppressed
   visually by the `!important` cosmetic rules above, so nothing depended on it. */

/* ==================================================== reference-match pass 3
   Final responsive and inner-page corrections. Every selector is rooted in
   `.mdc-scope`; Services, Specialities and their descendants never receive
   that body class. */

/* The live site uses 32px section headings on the homepage, while the core
   theme preset was leaving several of them at 36px. */
.mdc-scope.home .mdc-section:has(.mdc-about__media) h2,
.mdc-scope.home .mdc-section:has(.mdc-videocard) h2,
.mdc-scope.home .mdc-section:has(.mdc-testimonials) > h2 {
	font-size: 32px;
	line-height: 1.1;
}

/* About uses the live landing-page scale: 46px desktop, 36px tablet and 26px
   phone. The former generic inner-page rule left most headings at 36px at
   every width and the hero at 46px even on phones. */
.mdc-scope.page-about-us main h2 {
	font-size: 46px;
	line-height: 1.1;
}

/* Standard page-title panels (FAQ and legal pages) share the exact live
   page-header asset and dimensions. Their explanatory copy belongs in the
   page body, not inside the title panel. */
.mdc-scope.page-faqs .mdc-main--full > .mdc-page-intro,
.mdc-scope.page-privacy-policy .mdc-main--full > .mdc-page-intro,
.mdc-scope.page-terms-and-conditions .mdc-main--full > .mdc-page-intro {
	box-sizing: border-box;
	width: auto !important;
	min-height: 401px;
	margin: 0 20px !important;
	padding: 125px 20px;
	border-radius: 46px;
	background-color: var(--mdc-lilac);
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}

.mdc-scope.page-faqs .mdc-page-intro .mdc-section__lede,
.mdc-scope.page-privacy-policy .mdc-page-intro .mdc-section__lede,
.mdc-scope.page-terms-and-conditions .mdc-page-intro .mdc-section__lede {
	display: none;
}

.mdc-scope.page-faqs .mdc-page-intro h1,
.mdc-scope.page-privacy-policy .mdc-page-intro h1,
.mdc-scope.page-terms-and-conditions .mdc-page-intro h1 {
	margin: 0 0 20px;
	font-size: 68px !important;
	line-height: 1.2;
}

.mdc-scope.page-faqs .mdc-page-intro > .has-text-align-center,
.mdc-scope.page-privacy-policy .mdc-page-intro > .has-text-align-center,
.mdc-scope.page-terms-and-conditions .mdc-page-intro > .has-text-align-center {
	margin: 0;
}

/* Legal prose uses an 1100px reading measure and a conventional heading
   rhythm. The previous zero top margin compressed the privacy page by more
   than 600px at desktop. */
.mdc-scope.page-privacy-policy .mdc-main--full > .mdc-section:not(.mdc-page-intro) > *,
.mdc-scope.page-terms-and-conditions .mdc-main--full > .mdc-section:not(.mdc-page-intro) > * {
	max-width: 1100px;
}

.mdc-scope.page-privacy-policy .mdc-main--full .mdc-section h2,
.mdc-scope.page-terms-and-conditions .mdc-main--full .mdc-section h2 {
	margin: 36px 0 25.2px;
	font-size: 36px;
	line-height: 1.2;
}

.mdc-scope.page-privacy-policy .mdc-main--full .mdc-section p,
.mdc-scope.page-terms-and-conditions .mdc-main--full .mdc-section p {
	margin-bottom: 20px;
}

/* FAQ listing page: unlike the homepage two-column teaser, the reference is a
   full-width ten-question accordion on white. */
.mdc-scope.page-faqs .mdc-faq-page {
	padding-top: 100px;
	padding-bottom: 90px;
}

.mdc-scope.page-faqs .mdc-faq-page h2 {
	margin: 0 0 28px;
	font-size: 46px;
	line-height: 1.1;
}

.mdc-scope.page-faqs .mdc-faq-page .is-style-faq {
	padding: 25px 0;
}

.mdc-scope.page-faqs .mdc-faq-page .is-style-faq summary {
	font-size: 20px;
	line-height: 1.3;
}

.mdc-scope.page-faqs .mdc-consult {
	max-width: 1300px;
	padding: 40px;
	border-radius: 46px;
	background: var(--mdc-accent);
}

.mdc-scope.page-faqs .mdc-consult h2 {
	font-size: 46px;
	line-height: 1.2;
}

/* Blog header uses the subtle corner artwork from the supplied reference,
   keeping the title panel light without introducing a separate treatment. */
.mdc-scope.blog .mdc-page-header {
	padding-top: 125px;
	padding-bottom: 125px;
	border-radius: 46px;
	background-color: var(--mdc-lilac) !important;
	background-image: url('../images/page-header-bg.png');
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}

/* The query block stores a 220px inline height on the featured-image figure.
   The live archive uses a 315px image and figure; changing only the nested img
   caused it to be clipped and shortened every grid row by 95px. */
.mdc-scope.blog .mdc-post-card .wp-block-post-featured-image {
	height: 315px !important;
}

/* One full-width testimonial is shown on the appointment page at every
   viewport. The generic carousel showed three cards on desktop. */
.mdc-scope.page-appointment .mdc-testimonial {
	flex-basis: 100%;
	min-height: 300px;
}

.mdc-scope.page-appointment .mdc-testimonials__track {
	gap: 0;
}

/* The selected post uses the compact article type scale from the live
   template, plus its 800px article measure. */
.mdc-scope.mdc-scope.single-post .mdc-single__content {
	max-width: 800px;
}

.mdc-scope.mdc-scope.single-post .mdc-single__body h2 {
	font-size: 24px;
	line-height: 1.2;
}

.mdc-scope.mdc-scope.single-post .mdc-single__body h4 {
	font-size: 20px;
	line-height: 1.2;
}

.mdc-scope.mdc-scope.single-post .mdc-single__body table {
	width: 100%;
	margin: 26px 0 34px;
	border-collapse: collapse;
}

.mdc-scope.mdc-scope.single-post .mdc-single__body th,
.mdc-scope.mdc-scope.single-post .mdc-single__body td {
	padding: 14px 12px;
	border: 0;
	vertical-align: top;
	text-align: left;
}

.mdc-scope.mdc-scope.single-post .mdc-single__body th {
	font-weight: 700;
}

.mdc-scope.mdc-scope.single-post .mdc-single__body td:nth-child(1) {
	width: 18%;
	font-weight: 600;
}

.mdc-scope.mdc-scope.single-post .mdc-single__body td:nth-child(2) {
	width: 16%;
	font-weight: 700;
}

@media (max-width: 1024px) {
	.mdc-scope.page-about-us main h2 {
		font-size: 36px;
		line-height: 1.1;
	}

	.mdc-scope.page-about-us .mdc-about-hero__copy h1,
	.mdc-scope.page-appointment .mdc-appointment-card__heading {
		font-size: 36px;
		line-height: 1.1;
	}

	.mdc-scope.page-appointment .entry-content > .mdc-section:nth-child(2) > h2,
	.mdc-scope.page-contact-us .mdc-contact-closing h2 {
		font-size: 36px;
		line-height: 1.1;
	}

	.mdc-scope.page-faqs .mdc-main--full > .mdc-page-intro,
	.mdc-scope.page-privacy-policy .mdc-main--full > .mdc-page-intro,
	.mdc-scope.page-terms-and-conditions .mdc-main--full > .mdc-page-intro {
		width: 100vw !important;
		min-height: 269px;
		margin-inline: calc(50% - 50vw) !important;
		padding: 80px 15px;
		border-radius: 0;
	}

	.mdc-scope.page-faqs .mdc-page-intro h1,
	.mdc-scope.page-privacy-policy .mdc-page-intro h1,
	.mdc-scope.page-terms-and-conditions .mdc-page-intro h1 {
		font-size: 48px !important;
		line-height: 1.2;
	}

	.mdc-scope.page-terms-and-conditions .mdc-main--full > .mdc-page-intro {
		min-height: 327px;
	}

	.mdc-scope.mdc-scope.single-post .mdc-page-header h1 {
		font-size: 36px !important;
		line-height: 1.1;
	}

	.mdc-scope.mdc-scope.single-post .mdc-single__body h2 {
		font-size: 20px;
		line-height: 1.2;
	}

	.mdc-scope.mdc-scope.single-post .mdc-single__content,
	.mdc-scope.mdc-scope.single-post .mdc-single__content .wp-block-post-content {
		box-sizing: border-box;
		width: 100% !important;
		max-width: 100%;
	}
}

/* Elementor keeps the selected article's sticky table-of-contents beside the
   copy through 768px; the generic theme stacked it at 1024px, making the
   article roughly 1,000px too short at the required tablet widths. */
@media (min-width: 768px) and (max-width: 1024px) {
	.mdc-scope.mdc-scope.single-post .mdc-single__layout {
		flex-direction: row;
		gap: 30px;
	}

	.mdc-scope.mdc-scope.single-post .mdc-toc {
		flex: 0 0 250px;
		width: auto;
		position: sticky;
		top: 24px;
	}

	.mdc-scope.mdc-scope.single-post .mdc-related .mdc-post-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (min-width: 881px) and (max-width: 1024px) {
	.mdc-scope.mdc-scope.single-post .mdc-toc {
		flex-basis: 315px;
	}

	.mdc-scope.mdc-scope.single-post .mdc-related .wp-block-post-featured-image,
	.mdc-scope.mdc-scope.single-post .mdc-related .wp-block-post-featured-image img {
		height: 275px !important;
		object-fit: cover;
	}

	.mdc-scope.mdc-scope.single-post .mdc-related .wp-block-post-title {
		font-size: 24px;
		line-height: 1.15;
	}
}

@media (max-width: 767px) {
	/* Exact phone typography measured at 390px. */
	.mdc-scope.home .mdc-hero h1 {
		font-size: 26px;
		line-height: 1.1;
	}

	.mdc-scope.home .mdc-certifications > h2,
		.mdc-scope.home .mdc-section:has(.mdc-about__media) h2,
	.mdc-scope.home .mdc-section:has(.mdc-videocard) h2,
	.mdc-scope.home .mdc-section:has(.mdc-testimonials) > h2 {
		font-size: 19px !important;
		line-height: 1.1;
	}

	.mdc-scope.home .mdc-rcm > h2,
	.mdc-scope.home .mdc-faq__intro h2 {
		font-size: 26px !important;
		line-height: 1.1;
	}

	.mdc-scope.page-about-us .mdc-about-hero__copy h1,
	.mdc-scope.page-about-us main h2,
	.mdc-scope.page-appointment .mdc-appointment-card__heading,
	.mdc-scope.page-appointment .entry-content > .mdc-section:nth-child(2) > h2,
	.mdc-scope.page-contact-us .mdc-contact-closing h2 {
		font-size: 26px !important;
		line-height: 1.1;
	}

	.mdc-scope.page-faqs .mdc-main--full > .mdc-page-intro,
	.mdc-scope.page-privacy-policy .mdc-main--full > .mdc-page-intro {
		min-height: 252px;
	}

	.mdc-scope.page-terms-and-conditions .mdc-main--full > .mdc-page-intro {
		min-height: 319px;
	}

	.mdc-scope.page-faqs .mdc-page-intro h1,
	.mdc-scope.page-privacy-policy .mdc-page-intro h1,
	.mdc-scope.page-terms-and-conditions .mdc-page-intro h1 {
		font-size: 34px !important;
		line-height: 1.2;
	}

	.mdc-scope.page-privacy-policy .mdc-main--full .mdc-section h2,
	.mdc-scope.page-terms-and-conditions .mdc-main--full .mdc-section h2 {
		margin: 24px 0 16.8px;
		font-size: 24px;
		line-height: 1.2;
	}

	.mdc-scope.page-faqs .mdc-faq-page {
		padding: 70px 20px;
	}

	.mdc-scope.page-faqs .mdc-faq-page h2,
	.mdc-scope.page-faqs .mdc-consult h2 {
		font-size: 26px;
		line-height: 1.1;
	}

	.mdc-scope.page-faqs .mdc-faq-page .is-style-faq summary {
		font-size: 18px;
		line-height: 1.2;
	}

	.mdc-scope.page-faqs .mdc-consult {
		padding: 20px;
		border-radius: 26px;
	}

	.mdc-scope.blog .mdc-post-card .wp-block-post-title {
		font-size: 18px;
		line-height: 1.4;
	}

	.mdc-scope.mdc-scope.single-post .mdc-page-header h1 {
		font-size: 26px !important;
		line-height: 1.1;
	}

	.mdc-scope.mdc-scope.single-post .mdc-single__body h2 {
		font-size: 18px;
		line-height: 1.2;
	}

	.mdc-scope.mdc-scope.single-post .mdc-single__body h4 {
		font-size: 18px;
		line-height: 1.2;
	}

	.mdc-scope.mdc-scope.single-post .mdc-related h2 {
		font-size: 26px;
		line-height: 1.1;
	}

	/* The live phone layout keeps the assurance badge and savings callout
	   layered over the image instead of adding two full-width rows. */
	.mdc-scope.home .mdc-about__media,
	.mdc-scope.page-about-us #about-details .mdc-about__media {
		position: relative;
	}

	.mdc-scope.home .mdc-about__badge,
	.mdc-scope.page-about-us #about-details .mdc-about__badge {
		position: absolute;
		top: 30px;
		left: 0;
		width: 200px;
		margin: 0;
	}

	.mdc-scope.home .mdc-about__callout,
	.mdc-scope.page-about-us #about-details .mdc-about__callout {
		position: absolute;
		right: 0;
		bottom: 40px;
		width: 180px;
		margin: 0;
		padding: 16px;
	}

	.mdc-scope.home .wp-block-column:has(+ .mdc-about__media) {
		padding-right: 0;
	}

	.mdc-scope.home .mdc-hero {
		padding-top: 20px;
	}

	.mdc-scope.home .mdc-hero__copy {
		padding-top: 20px;
		padding-bottom: 20px;
	}

	.mdc-scope.home .mdc-section:has(.mdc-about__media) p,
	.mdc-scope.home .mdc-section:has(.mdc-videocard) p {
		font-size: 14px;
		line-height: 1.5;
	}

	.mdc-scope.home .mdc-section:has(.mdc-faq__grid) {
		padding-top: 40px;
		padding-bottom: 40px;
	}

	.mdc-scope.home .is-style-faq {
		padding: 15px 0;
	}

	.mdc-scope.home .mdc-faq__contact {
		margin-top: 30px;
		padding: 20px;
	}

	.mdc-scope.home .mdc-section:has(.mdc-ctaband) {
		padding: 30px 20px;
	}

	.mdc-scope.home .mdc-ctaband__top {
		gap: 20px;
		padding-bottom: 20px;
	}

	.mdc-scope.home .mdc-ctaband__points {
		gap: 12px;
		padding-top: 20px;
	}

	.mdc-scope.home .mdc-ctaband__points p {
		font-size: 14px;
		line-height: 1.4;
	}

	.mdc-scope.home .mdc-section:has(.mdc-testimonials) {
		padding-top: 40px;
		padding-bottom: 40px;
	}

	.mdc-scope.home .mdc-testimonial {
		padding: 20px;
	}

	.mdc-scope.page-about-us #about-details {
		padding-top: 45px;
		padding-bottom: 45px;
	}

	.mdc-scope.page-about-us #about-details p {
		font-size: 14px;
		line-height: 1.45;
	}

	.mdc-scope.page-about-us #about-details .mdc-features {
		gap: 18px;
		margin-top: 24px;
	}

	.mdc-scope.page-about-us #about-details .mdc-feature {
		gap: 12px;
	}

	.mdc-scope.page-about-us #about-details .mdc-feature__icon {
		width: 46px;
		height: 46px;
	}

	.mdc-scope.page-about-us #about-details .mdc-feature h3 {
		font-size: 18px;
	}

	.mdc-scope.page-about-us .mdc-section:has(.mdc-faq__grid) {
		padding-top: 25px;
		padding-bottom: 25px;
	}

	.mdc-scope.page-about-us .is-style-faq {
		padding: 12px 0;
	}

	.mdc-scope.page-about-us .mdc-faq__contact {
		margin-top: 20px;
		padding: 16px;
	}

	.mdc-scope.page-about-us .mdc-page-intro {
		padding-top: 25px;
		padding-bottom: 25px;
	}

	.mdc-scope.page-about-us .mdc-section:has(.mdc-videocard) {
		padding-top: 30px;
		padding-bottom: 30px;
	}

	.mdc-scope.page-about-us .mdc-section:has(.mdc-videocard) p {
		font-size: 14px;
		line-height: 1.5;
	}

	.mdc-scope.page-about-us .mdc-section:has(.mdc-testimonials) {
		padding-top: 40px;
		padding-bottom: 40px;
	}

	.mdc-scope.page-about-us .mdc-testimonial {
		padding: 20px;
	}
}

.mdc-scope .mdc-legal-list {
	margin: 0 0 20px;
	padding-left: 24px;
}

.mdc-scope .mdc-legal-list ol,
.mdc-scope .mdc-legal-list ul {
	margin: 10px 0 10px;
	padding-left: 28px;
}

.mdc-scope .mdc-legal-list li {
	margin-bottom: 10px;
	line-height: 1.6;
}

@media (min-width: 881px) {
	.mdc-scope.page-terms-and-conditions .mdc-legal-copy {
		padding-bottom: 210px;
	}

	.mdc-scope.page-terms-and-conditions .mdc-legal-list li {
		margin-bottom: 14px;
	}
}

@media (min-width: 881px) and (max-width: 1024px) {
	.mdc-scope.blog .mdc-post-card .wp-block-post-featured-image {
		height: 255px !important;
	}
}

@media (min-width: 481px) and (max-width: 880px) {
	.mdc-scope.blog .mdc-post-card .wp-block-post-featured-image {
		height: 300px !important;
	}
}

@media (max-width: 480px) {
	.mdc-scope.blog .mdc-post-card .wp-block-post-featured-image {
		height: 275px !important;
	}
}

/* Archive row geometry. Elementor's cards touch vertically; the previous
   70px row-gap both obscured the real card-height mismatch on desktop and
   added 630px of drift on a ten-card phone listing. */
.mdc-scope.blog .mdc-page-header {
	min-height: 401px;
	margin-bottom: 100px;
}

.mdc-scope.blog .mdc-post-grid {
	row-gap: 0;
}

/* Keep the archive itself as a deliberate editorial column.  The query block
   otherwise inherits the broad site container and leaves a short three-card
   grid stranded at the left edge on wide screens. */
.mdc-scope.blog .mdc-archive-wrap {
	width: min(calc(100% - 48px), 780px);
	max-width: 780px;
	margin-inline: auto;
}

@media (min-width: 1025px) {
	.mdc-scope.blog .mdc-post-card {
		padding-bottom: 53px;
	}
}

@media (min-width: 881px) and (max-width: 1024px) {
	.mdc-scope.blog .mdc-page-header {
		margin-bottom: 80px;
	}

	.mdc-scope.blog .mdc-post-card {
		padding-bottom: 40px;
	}
}

@media (min-width: 481px) and (max-width: 880px) {
	.mdc-scope.blog .mdc-page-header {
		min-height: 269px;
		margin-bottom: 31px;
		padding-top: 80px;
		padding-bottom: 80px;
	}

	.mdc-scope.blog .mdc-post-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (min-width: 481px) and (max-width: 800px) {
	.mdc-scope.blog .mdc-post-card .wp-block-post-featured-image {
		height: 280px !important;
	}
}

@media (max-width: 480px) {
	.mdc-scope.blog .mdc-page-header {
		min-height: 252px;
		margin-bottom: 50px;
		padding-top: 80px;
		padding-bottom: 80px;
	}

	.mdc-scope.blog .mdc-post-card {
		padding-bottom: 24px;
	}
}

/* Contact location: the prior empty 900px placeholder is replaced by the
   reference's descriptive copy and a real, keyboard-focusable map embed. */
.mdc-scope.page-contact-us .mdc-contact-closing {
	min-height: 0;
	padding-top: 70px;
	padding-bottom: 70px;
}

.mdc-scope.page-contact-us .mdc-contact-closing__copy {
	max-width: 1000px;
	margin: 20px auto 0;
	font-size: 17px;
	line-height: 1.5;
}

.mdc-scope.page-contact-us .mdc-contact-map-shell {
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 400px;
	margin-top: 50px;
	border-radius: 26px;
	background-color: #e8e8e7;
	background-image:
		linear-gradient(78deg, transparent 0 20%, rgba(255, 255, 255, 0.96) 20% 24%, transparent 24% 100%),
		linear-gradient(1deg, transparent 0 42%, rgba(255, 255, 255, 0.96) 42% 50%, transparent 50% 100%),
		linear-gradient(118deg, transparent 0 62%, rgba(214, 214, 212, 0.9) 62% 67%, transparent 67% 100%),
		repeating-linear-gradient(90deg, transparent 0 150px, rgba(202, 202, 200, 0.72) 150px 152px);
}

.mdc-scope.page-contact-us .mdc-contact-map-shell::before {
	content: "100 Main St";
	position: absolute;
	z-index: 1;
	top: 50%;
	left: 50%;
	padding: 12px 18px 12px 42px;
	border-radius: 24px;
	background: #fff;
	color: #555;
	font-size: 14px;
	font-weight: 600;
	box-shadow: 0 8px 24px rgb(0 0 0 / 14%);
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.mdc-scope.page-contact-us .mdc-contact-map-shell::after {
	content: "";
	position: absolute;
	z-index: 2;
	top: 50%;
	left: calc(50% - 55px);
	width: 18px;
	height: 24px;
	border-radius: 50% 50% 50% 0;
	background: var(--mdc-accent);
	transform: translateY(-62%) rotate(-45deg);
	pointer-events: none;
}

.mdc-scope.page-contact-us .mdc-contact-map {
	display: block;
	position: relative;
	z-index: 3;
	width: 100%;
	height: 100%;
	border: 0;
	border-radius: inherit;
	background: transparent;
	mix-blend-mode: multiply;
}

/* Elementor retains the reference form's two-column card at 820px and only
   stacks below its 767px mobile breakpoint. */
@media (max-width: 1120px) {
	.mdc-scope .mdc-navbar__inner .mdc-navbar__cta {
		display: none;
	}
}

@media (min-width: 768px) and (max-width: 880px) {
	.mdc-scope.page-contact-us .mdc-contact-card {
		flex-direction: row;
		padding: 30px;
	}

	.mdc-scope.page-contact-us .mdc-contact-card__side {
		flex: 0 0 280px;
		padding: 0 30px 0 0;
	}

	.mdc-scope.page-contact-us .mdc-contact-card__form {
		margin-top: 0;
		padding: 0 0 0 30px;
		border-left: 1px solid rgba(12, 46, 62, 0.08);
	}

	.mdc-scope.page-contact-us .mdc-contact-form__row {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 767px) {
	.mdc-scope.page-contact-us .mdc-contact-closing {
		padding: 55px 20px;
	}

	.mdc-scope.page-contact-us .mdc-contact-closing__copy {
		font-size: 15px;
	}

	.mdc-scope.page-contact-us .mdc-contact-map-shell {
		height: 360px;
		margin-top: 35px;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.mdc-scope.page-faqs .mdc-faq-page {
		padding-top: 55px;
		padding-bottom: 0;
	}

	.mdc-scope.page-faqs .mdc-faq-page h2,
	.mdc-scope.page-faqs .mdc-consult h2 {
		font-size: 36px;
		line-height: 1.1;
	}

	.mdc-scope.page-faqs .mdc-faq-page .is-style-faq {
		padding: 19px 0;
	}

	.mdc-scope.page-faqs .mdc-faq-page + .mdc-section {
		padding-top: 0;
		padding-bottom: 0;
	}

	.mdc-scope.page-faqs .mdc-consult {
		padding: 20px;
	}

	.mdc-scope.page-faqs .mdc-footer {
		margin-top: 10px;
	}
}

/* ================================================= interaction parity pass
   The reference uses a consistent 0.3–0.4s interaction language plus 1.25s
   fade-up entrances. Everything below is opt-in through `.mdc-scope`; service
   and speciality listings/details deliberately never receive that class. */

.mdc-scope main .wp-block-button__link,
.mdc-scope main button,
.mdc-scope .mdc-footer a,
.mdc-scope .mdc-footer .wp-social-link {
	transition:
		color 0.4s ease,
		background-color 0.4s ease,
		border-color 0.4s ease,
		transform 0.4s ease,
		box-shadow 0.4s ease;
}

/* Feature icons use the reference's circular fill reveal. */
.mdc-scope.home .mdc-feature__icon,
.mdc-scope.page-about-us .mdc-feature__icon {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	transition: color 0.4s ease, background-color 0.4s ease;
}

.mdc-scope.home .mdc-feature__icon::after,
.mdc-scope.page-about-us .mdc-feature__icon::after {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	border-radius: inherit;
	background: var(--mdc-accent);
	transform: scale(0);
	transition: transform 0.4s ease-in-out;
}

.mdc-scope.home .mdc-feature:hover .mdc-feature__icon::after,
.mdc-scope.page-about-us .mdc-feature:hover .mdc-feature__icon::after {
	transform: scale(1);
}

.mdc-scope.home .mdc-feature__icon img,
.mdc-scope.page-about-us .mdc-feature__icon img {
	transition: filter 0.4s ease-in-out;
}

.mdc-scope.home .mdc-feature:hover .mdc-feature__icon img,
.mdc-scope.page-about-us .mdc-feature:hover .mdc-feature__icon img {
	filter: brightness(0) invert(1);
}

/* White diagonal image sweep used on the reference's about, tab and avatar
   imagery. The image remains the visual source; this is a CSS-only overlay. */
.mdc-scope.home .mdc-about__photo,
.mdc-scope.page-about-us .mdc-about-hero__media figure,
.mdc-scope.page-about-us .mdc-about-hero__summary figure,
.mdc-scope .mdc-testimonial__author figure {
	position: relative;
	overflow: hidden;
}

.mdc-scope.home .mdc-about__photo::after,
.mdc-scope.page-about-us .mdc-about-hero__media figure::after,
.mdc-scope.page-about-us .mdc-about-hero__summary figure::after,
.mdc-scope .mdc-testimonial__author figure::after {
	content: "";
	position: absolute;
	inset: -75% auto -75% -80%;
	width: 42%;
	background: rgba(255, 255, 255, 0.34);
	transform: skewX(-22deg);
	transition: left 0.6s linear;
	pointer-events: none;
}

.mdc-scope.home .mdc-about__photo:hover::after,
.mdc-scope.page-about-us .mdc-about-hero__media figure:hover::after,
.mdc-scope.page-about-us .mdc-about-hero__summary figure:hover::after,
.mdc-scope .mdc-testimonial__author figure:hover::after {
	left: 140%;
}

.mdc-scope.home .mdc-videocard__play button {
	transition: color 0.4s ease, border-color 0.4s ease, background-color 0.4s ease;
}

.mdc-scope.home .mdc-videocard__play button:hover,
.mdc-scope.home .mdc-videocard__play button:focus-visible {
	transform: none;
	border-color: var(--mdc-accent);
	background: rgba(255, 255, 255, 0.92);
	color: var(--mdc-accent);
}

/* Testimonial panels reveal the accent edge from the centre, as on the
   reference ElementsKit cards. */
.mdc-scope .mdc-testimonial {
	position: relative;
	overflow: hidden;
}

.mdc-scope .mdc-testimonial::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 4px;
	background: var(--mdc-accent);
	transform: scaleY(0);
	transition: transform 0.4s ease-in-out;
}

.mdc-scope .mdc-testimonial:hover::before {
	transform: scaleY(1);
}

.mdc-scope.page-appointment .mdc-testimonials__dots button:hover,
.mdc-scope.page-appointment .mdc-testimonials__dots button:focus-visible {
	background: var(--mdc-primary);
	color: #fff;
}

/* About nested tabs: inactive white, selected/hover accent, with the content
   replaying a short fade when the active tab changes. */
.mdc-scope.page-about-us .mdc-about-hero__tabs .wp-block-button__link {
	border-color: transparent;
	background: #fff;
	color: var(--mdc-primary);
}

.mdc-scope.page-about-us .mdc-about-hero__tabs .wp-block-button__link:hover,
.mdc-scope.page-about-us .mdc-about-hero__tabs .wp-block-button__link:focus-visible,
.mdc-scope.page-about-us .mdc-about-hero__tabs .wp-block-button__link[aria-selected="true"] {
	background: var(--mdc-accent);
	color: #fff;
}

@keyframes mdc-tab-refresh {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: translateY(0); }
}

.mdc-scope.page-about-us .mdc-about-hero__summary.mdc-tab-refresh {
	animation: mdc-tab-refresh 0.4s ease both;
}

/* Contact information icon inversion and map desaturation are both measured
   states from the live contact page. */
.mdc-scope.page-contact-us .mdc-contact-cell__icon,
.mdc-scope.page-contact-us .mdc-contact-cell__icon::before {
	transition: background-color 0.4s ease;
}

.mdc-scope.page-contact-us .mdc-contact-cell:hover .mdc-contact-cell__icon {
	background: transparent;
}

.mdc-scope.page-contact-us .mdc-contact-cell:hover .mdc-contact-cell__icon::before {
	background-color: var(--mdc-accent);
}

.mdc-scope.page-contact-us .mdc-contact-map {
	filter: grayscale(1);
	transition: filter 0.3s ease;
}

.mdc-scope.page-contact-us .mdc-contact-map-shell:hover .mdc-contact-map {
	filter: grayscale(0);
}

/* Reference form fields use Bootstrap's 0.15s focus transition and a vivid
   blue focus border; submit buttons move from accent to primary in 0.4s. */
.mdc-scope.page-contact-us .mdc-contact-form input,
.mdc-scope.page-contact-us .mdc-contact-form textarea,
.mdc-scope.page-appointment .mdc-appointment-form input,
.mdc-scope.page-appointment .mdc-appointment-form select {
	outline: 0;
	transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.mdc-scope.page-contact-us .mdc-contact-form input:focus,
.mdc-scope.page-contact-us .mdc-contact-form textarea:focus,
.mdc-scope.page-appointment .mdc-appointment-form input:focus,
.mdc-scope.page-appointment .mdc-appointment-form select:focus {
	border-color: var(--mdc-focus);
	box-shadow: 0 0 0 3px var(--mdc-focus-ring);
}

.mdc-scope.page-contact-us .mdc-contact-form__submit,
.mdc-scope.page-appointment .mdc-appointment-form__submit {
	background: var(--mdc-accent);
	transition: all 0.4s ease;
}

.mdc-scope.page-contact-us .mdc-contact-form__submit:hover,
.mdc-scope.page-contact-us .mdc-contact-form__submit:focus-visible,
.mdc-scope.page-appointment .mdc-appointment-form__submit:hover,
.mdc-scope.page-appointment .mdc-appointment-form__submit:focus-visible {
	background: var(--mdc-primary);
}

/* Accordion content opens immediately on the reference; only the trigger
   colour/icon transition is animated. */
.mdc-scope .is-style-faq summary {
	transition: color 0.4s ease;
}

.mdc-scope .is-style-faq[open] summary,
.mdc-scope .is-style-faq summary:hover {
	color: var(--mdc-accent);
}

/* FAQ/post consultation panel fill rises from its lower edge. */
.mdc-scope.page-faqs .mdc-consult,
.mdc-scope.mdc-scope.single-post .mdc-consult {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}

.mdc-scope.page-faqs .mdc-consult::before,
.mdc-scope.mdc-scope.single-post .mdc-consult::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 100% 0 0;
	background: var(--mdc-primary);
	transition: inset 0.4s ease;
}

.mdc-scope.page-faqs .mdc-consult:hover::before,
.mdc-scope.mdc-scope.single-post .mdc-consult:hover::before {
	inset: 0;
}

/* Editorial-card image zoom and Read More arrow match the reference's 1.1
   scale and two-pixel arrow travel. */
.mdc-scope.blog .mdc-post-card .wp-block-post-featured-image img,
.mdc-scope.mdc-scope.single-post .mdc-related .mdc-post-card .wp-block-post-featured-image img {
	transition: transform 0.4s ease;
}

.mdc-scope.blog .mdc-post-card:hover .wp-block-post-featured-image img,
.mdc-scope.mdc-scope.single-post .mdc-related .mdc-post-card:hover .wp-block-post-featured-image img {
	transform: scale(1.1);
}

.mdc-scope .mdc-post-card__more,
.mdc-scope .mdc-post-card__more::after {
	display: inline-block;
	transition: color 0.3s ease, transform 0.3s ease;
}

.mdc-scope .mdc-post-card__more:hover {
	color: var(--mdc-primary);
}

.mdc-scope .mdc-post-card__more:hover::after {
	color: var(--mdc-primary);
	transform: translateX(2px);
}

.mdc-scope .mdc-pagination a,
.mdc-scope .mdc-pagination .page-numbers {
	transition: color 0.3s ease, background-color 0.3s ease;
}

.mdc-scope .mdc-pagination a:hover,
.mdc-scope .mdc-pagination .page-numbers:hover {
	background: var(--mdc-accent);
	color: #fff;
}

/* Mobile reference header: the logo and top bar stay visible, the menu opens
   as a 240px absolute panel at y=107, and nested Services stays closed until
   explicitly toggled. */
@media (max-width: 1120px) {
	.mdc-scope .mdc-navbar__inner > nav.wp-block-navigation,
	.mdc-scope .mdc-nav {
		position: static;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container.is-menu-open {
		position: absolute;
		z-index: 30;
		top: 45px;
		right: auto;
		bottom: auto;
		left: 0;
		display: block;
		box-sizing: border-box;
		width: 100%;
		height: auto;
		max-height: 240px;
		min-height: 0;
		padding: 0;
		overflow: visible;
		background: #fff;
		opacity: 1;
		transform: none;
		animation: none;
		transition: max-height 0.3s ease;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-close,
	.mdc-scope .mdc-nav .wp-block-navigation__responsive-dialog,
	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container-content {
		position: static;
		width: 100%;
		height: auto;
		min-height: 0;
		margin: 0;
		padding: 0;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		width: 100%;
		margin: 0;
		padding: 0;
		text-align: left;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container.is-menu-open
		> .wp-block-navigation__responsive-close
		> .wp-block-navigation__responsive-dialog
		> .wp-block-navigation__responsive-container-content
		> .wp-block-navigation__container
		> .wp-block-navigation-item {
		display: flex;
		flex: 0 0 40px;
		align-items: center;
		box-sizing: border-box;
		width: 100%;
		min-height: 40px;
		margin: 0;
		padding: 0 20px;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container.is-menu-open
		> .wp-block-navigation__responsive-close
		> .wp-block-navigation__responsive-dialog
		> .wp-block-navigation__responsive-container-content
		> .wp-block-navigation__container
		> .wp-block-navigation-item
		> .wp-block-navigation-item__content {
		flex: 1 1 auto;
		padding: 10px 0;
		font-size: 16px;
		line-height: 20px;
		text-align: left;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container-close {
		position: absolute;
		z-index: 2;
		top: -20px;
		right: 37px;
		display: grid;
		width: 20px;
		height: 20px;
		padding: 0;
		place-items: center;
	}

	.mdc-scope .mdc-nav:has(.wp-block-navigation__responsive-container.is-menu-open)
		> .wp-block-navigation__responsive-container-open {
		visibility: hidden;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation-item.has-child
		> .wp-block-navigation__submenu-icon {
		position: absolute;
		top: 12px;
		left: calc(50% + 38px);
		display: flex;
		margin: 0;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation-item.has-child {
		position: relative;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation-item.has-child
		> .wp-block-navigation__submenu-icon[aria-expanded="false"]
		+ .wp-block-navigation__submenu-container {
		display: none;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation-item.has-child
		> .wp-block-navigation__submenu-icon[aria-expanded="true"]
		+ .wp-block-navigation__submenu-container {
		position: static;
		display: flex;
		flex-basis: 100%;
		width: 100%;
		min-width: 0;
		padding: 0 0 8px 14px;
		border: 0;
		box-shadow: none;
	}
}

html:has(body.mdc-scope .wp-block-navigation__responsive-container.is-menu-open) {
	overflow: clip visible !important;
}

body.mdc-scope:has(.wp-block-navigation__responsive-container.is-menu-open) {
	overflow: clip visible !important;
}

@media (prefers-reduced-motion: reduce) {
	.mdc-scope .mdc-reveal--visible,
	.mdc-scope.page-about-us .mdc-about-hero__summary.mdc-tab-refresh {
		animation: none;
	}

	.mdc-rcm__card:hover,
	.mdc-rcm__card:hover .mdc-rcm__icon {
		transform: none;
	}
}

/* ==========================================================================
   Homepage services preview (.mdc-svc-home)
   --------------------------------------------------------------------------
   Homepage-only replacement for the four equal cards. The class exists solely
   in patterns/services-home.php, which is rendered on the front page and
   nowhere else — the Services page still uses patterns/services.php and its
   `.mdc-services` / `.mdc-card` rules, which are untouched above. No selector
   below can reach a Services or Speciality route.

   Composition: 42% featured card + 58% supporting stack, 24px gutter. Colour
   comes from the existing client tokens only (teal --mdc-primary family on the
   neutral --mdc-lilac section tint).
   ========================================================================== */

.mdc-svc-home {
	padding-top: 88px;
	padding-bottom: 68px;
}

.mdc-svc-home > h2 {
	max-width: 900px;
	margin-inline: auto;
}

.mdc-svc-home__lede {
	max-width: 720px;
	margin: 16px auto 0;
	font-size: 16px;
	line-height: 1.65;
	color: var(--mdc-body-text);
}

.mdc-svc-home__grid {
	display: grid;
	grid-template-columns: minmax(0, 42fr) minmax(0, 58fr);
	gap: 24px;
	/* Stretch is safe here: the featured card's own content sets the row
	   height in every tested viewport bar the widest, where it trails the
	   supporting stack by well under 100px. */
	align-items: stretch;
	margin-top: 40px;
}

/* ------------------------------------------------------------- featured */

.mdc-svc-home__featured {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 38px 36px 36px;
	background: var(--mdc-primary-tint);
	border: 1px solid var(--mdc-primary-tint-strong);
	border-radius: var(--mdc-radius-card);
	transition:
		transform var(--mdc-transition),
		border-color var(--mdc-transition),
		box-shadow var(--mdc-transition),
		background-color var(--mdc-transition);
}

/* Decorative: a hairline rule pattern fading out of the top-right corner.
   Teal at low alpha, no gradient fill and no imagery. */
.mdc-svc-home__featured::before {
	content: "";
	position: absolute;
	top: -30px;
	right: -30px;
	width: 190px;
	height: 190px;
	pointer-events: none;
	background: repeating-linear-gradient(
		135deg,
		rgba(46, 125, 156, 0.16) 0 1px,
		transparent 1px 9px
	);
	-webkit-mask: radial-gradient(circle at 100% 0, #000 0%, transparent 72%);
	mask: radial-gradient(circle at 100% 0, #000 0%, transparent 72%);
	transition: opacity var(--mdc-transition), background-color var(--mdc-transition);
}

/* Solid teal edge marking the featured card as the section's anchor. */
.mdc-svc-home__featured::after {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 4px;
	background: var(--mdc-primary);
	transition: background-color var(--mdc-transition);
}

.mdc-svc-home__featured > * {
	position: relative;
	z-index: 1;
}

.mdc-svc-home__eyebrow {
	margin: 16px 0 9px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--mdc-primary-dark);
	transition: color var(--mdc-transition);
}

.mdc-svc-home__featured-title {
	margin: 0 0 14px;
	font-size: 27px;
	line-height: 1.25;
	letter-spacing: -0.01em;
	color: var(--mdc-heading);
}

.mdc-svc-home__featured p:not([class]) {
	margin: 0;
	max-width: 46ch;
	font-size: 16px;
	line-height: 1.65;
	color: var(--mdc-body-text);
}

/* Workflow chips. The three labels are lifted from the section's own existing
   intro copy ("claim preparation, submission, payment tracking, coding
   support, denial follow-ups") — no new capability is implied. */
.mdc-svc-home__steps {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}

.mdc-svc-home__steps li {
	padding: 7px 13px;
	font-size: 13.5px;
	line-height: 1.2;
	color: var(--mdc-primary-dark);
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid var(--mdc-primary-tint-strong);
	border-radius: var(--mdc-radius-pill);
	transition: color var(--mdc-transition), background-color var(--mdc-transition), border-color var(--mdc-transition);
}

.mdc-svc-home__cta {
	margin-top: auto;
	padding-top: 24px;
}

.mdc-svc-home__cta .wp-block-button__link {
	padding: 15px 28px;
	font-size: 15px;
}

/* --------------------------------------------------------- supporting */

.mdc-svc-home__list {
	display: grid;
	gap: 14px;
}

.mdc-svc-home__item {
	position: relative;
	display: grid;
	grid-template-columns: 84px minmax(0, 1fr);
	gap: 18px;
	align-items: start;
	padding: 18px 24px;
	background: var(--mdc-surface);
	border: 1px solid var(--mdc-border);
	border-radius: var(--mdc-radius-card);
	transition:
		transform var(--mdc-transition),
		border-color var(--mdc-transition),
		box-shadow var(--mdc-transition),
		background-color var(--mdc-transition);
}

/* Photography replaces the previous clipart icons. The featured card carries a
   banner that bleeds to its edges; the supporting cards carry a square thumb. */
.mdc-svc-home__media {
	margin: 0;
	overflow: hidden;
	border-radius: 12px;
	background: var(--mdc-primary-tint);
}

.mdc-svc-home__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: inherit;
	transition: transform var(--mdc-transition);
}

/* Bleed the banner out of the card's 38px/36px padding and its 4px teal edge.
   The selector is card-qualified because core's image styles reset margin-top
   on `.wp-block-image` and would otherwise win on source order. */
.mdc-svc-home__featured .mdc-svc-home__media--featured {
	align-self: stretch;
	width: auto;
	margin: -38px -36px 26px -32px;
	border-radius: 0;
	/* Kept shallow so the featured card stays close in height to the three
	   stacked cards beside it, which stretch to match it. */
	aspect-ratio: 1200 / 360;
}

.mdc-svc-home__item .mdc-svc-home__media {
	width: 84px;
	height: 84px;
	margin: 2px 0 0;
}

.mdc-svc-home__item h3 {
	margin: 0 0 6px;
	font-size: 18px;
	line-height: 1.3;
	text-align: left;
	color: var(--mdc-heading);
	transition: color var(--mdc-transition);
}

.mdc-svc-home__item p:not([class]) {
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--mdc-body-text);
}

/* Arrow text link. The ::after on the anchor stretches over the whole card so
   the touch target is the card itself, well past the 44px minimum. */
.mdc-svc-home__more {
	margin: 7px 0 0;
	font-size: 15px;
	line-height: 1;
}

.mdc-svc-home__more a {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	min-height: 24px;
	font-weight: 600;
	color: var(--mdc-primary-dark);
	text-decoration: none;
	transition: color var(--mdc-transition);
}

.mdc-svc-home__more a::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.mdc-svc-home__more a::after {
	content: "";
	width: 15px;
	height: 10px;
	background-color: currentColor;
	-webkit-mask: var(--mdc-svc-home-arrow) no-repeat center / contain;
	mask: var(--mdc-svc-home-arrow) no-repeat center / contain;
	transition: transform var(--mdc-transition);
}

.mdc-svc-home {
	--mdc-svc-home-arrow: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 16"><path d="M15.3.3a1 1 0 0 0 0 1.4L18.6 5H1a1 1 0 1 0 0 2h17.6l-3.3 3.3a1 1 0 1 0 1.4 1.4l5-5a1 1 0 0 0 0-1.4l-5-5a1 1 0 0 0-1.4 0z"/></svg>');
}

.mdc-svc-home__actions {
	gap: 16px;
	margin-top: 36px;
	justify-content: center;
}

/* ------------------------------------------------------------- hover */

@media (hover: hover) {
	.mdc-svc-home__featured:hover {
		border-color: #e4c65d;
		box-shadow: 0 14px 30px rgba(12, 46, 62, 0.12);
		transform: translateY(-5px);
		background-color: #fbf3de;
	}

	.mdc-svc-home__featured:hover::before {
		background: repeating-linear-gradient(135deg, rgba(201, 162, 39, 0.18) 0 1px, transparent 1px 9px);
	}

	.mdc-svc-home__featured:hover::after {
		background: var(--mdc-kpi);
	}

	.mdc-svc-home__featured:hover .mdc-svc-home__eyebrow,
	.mdc-svc-home__featured:hover .mdc-svc-home__steps li {
		color: var(--mdc-kpi-deep);
	}

	.mdc-svc-home__featured:hover .mdc-svc-home__steps li {
		border-color: #e4c65d;
		background: rgba(255, 255, 255, 0.82);
	}

	.mdc-svc-home__featured:hover .mdc-svc-home__cta .wp-block-button__link {
		background: var(--mdc-kpi-deep);
	}

	.mdc-svc-home__item:hover {
		border-color: var(--mdc-primary);
		box-shadow: 0 10px 24px rgba(12, 46, 62, 0.1);
		transform: translateX(5px);
		background-color: var(--mdc-primary-tint);
	}

	.mdc-svc-home__item:hover h3,
	.mdc-svc-home__item:hover .mdc-svc-home__more a {
		color: var(--mdc-primary-dark);
	}

	.mdc-svc-home__featured:hover .mdc-svc-home__media img,
	.mdc-svc-home__item:hover .mdc-svc-home__media img {
		transform: scale(1.04);
	}

	.mdc-svc-home__item:hover .mdc-svc-home__more a::after {
		transform: translateX(4px);
	}

	.mdc-svc-home__featured:hover .mdc-svc-home__cta .wp-block-button__link {
		transform: translateX(3px);
	}
}

.mdc-svc-home__more a:focus-visible {
	outline: 3px solid var(--mdc-primary);
	outline-offset: 3px;
	border-radius: 4px;
}

/* --------------------------------------------------------- responsive */

/* Small laptops: give the featured column a little more of the row so its
   title still fits on one line and the chips stay on a single row. */
@media (max-width: 1200px) {
	.mdc-svc-home__grid {
		grid-template-columns: minmax(0, 46fr) minmax(0, 54fr);
		gap: 20px;
	}
}

/* Below 900px the two columns no longer both hold a readable measure, so the
   featured card goes full width and the supporting cards stack underneath —
   still icon-left, which keeps each one to three lines instead of the six a
   three-across grid would force at tablet width. */
@media (max-width: 900px) {
	.mdc-svc-home__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
		margin-top: 34px;
	}

	.mdc-svc-home__featured {
		padding: 32px 30px 30px;
	}

	/* Card padding shrinks here, so the banner's bleed offsets follow it.
	   A deeper crop keeps the photograph readable at the narrower width. */
	.mdc-svc-home__featured .mdc-svc-home__media--featured {
		margin: -32px -30px 22px -26px;
		aspect-ratio: 1200 / 500;
	}

	.mdc-svc-home__featured p:not([class]) {
		max-width: 62ch;
	}
}

@media (max-width: 600px) {
	.mdc-svc-home {
		padding-bottom: 56px;
	}

	/* Phone: keep the thumbnail beside the copy — stacking it costs ~50px a
	   card and only buys back a line and a half of text. The photo shrinks
	   instead so the measure stays near 38 characters. */
	.mdc-svc-home__item {
		grid-template-columns: 64px minmax(0, 1fr);
		gap: 14px;
		padding: 20px 18px;
	}

	.mdc-svc-home__item .mdc-svc-home__media {
		width: 64px;
		height: 64px;
	}

	.mdc-svc-home__featured {
		padding: 28px 24px 26px;
	}

	.mdc-svc-home__featured .mdc-svc-home__media--featured {
		margin: -28px -24px 20px -20px;
	}

	/* The corner pattern is decorative clutter at this width. */
	.mdc-svc-home__featured::before {
		display: none;
	}

	.mdc-svc-home__featured-title {
		font-size: 23px;
	}

	.mdc-svc-home__cta .wp-block-button__link,
	.mdc-svc-home__actions .wp-block-button__link {
		min-height: 48px;
		display: inline-flex;
		align-items: center;
	}

	.mdc-svc-home__actions {
		margin-top: 32px;
	}
}

/* ------------------------------------------------------------ entrance */

/* Featured card fades up first, supporting cards follow on a 100ms stagger —
   the same 1.25s fade-in-up vocabulary as every other in-scope section.
   `mdc-reveal--visible` is only ever added by initReveals(), which bails out
   under prefers-reduced-motion. */
.mdc-scope .mdc-svc-home__featured.mdc-reveal,
.mdc-scope .mdc-svc-home__item.mdc-reveal {
	opacity: 0;
}

.mdc-scope .mdc-svc-home__featured.mdc-reveal--visible,
.mdc-scope .mdc-svc-home__item.mdc-reveal--visible {
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	.mdc-svc-home__featured,
	.mdc-svc-home__item,
	.mdc-svc-home__more a::after {
		transition: none;
	}

	.mdc-svc-home__featured,
	.mdc-svc-home__item {
		transform: none;
	}
}

/* ======================================================================
   Phone and tablet refinement pass
   ----------------------------------------------------------------------
   These rules are deliberately rooted in `.mdc-scope`. The Services and
   Specialties routes never receive that body class, so their templates and
   responsive behaviour remain completely isolated from this pass.
   ====================================================================== */

/* ======================================================================
   Specialties page
   Layout mirrors the client-approved reference: hero, a booking panel that
   overlaps the hero, popular specialties, a full-width dark icon grid, then
   the "missing specialty" enquiry. Rooted on the page body class so Services
   and every detail page stay completely isolated from these rules.
   ====================================================================== */

.page-medical-billing-specialties {
	--spec-content: 1140px;
	--spec-dark: #0A2634;
	--spec-tile-radius: 22px;
}

/* Start the archive with its specialty content instead of the generic page
   title band used by other pages. */
.page-medical-billing-specialties .mdc-page-header {
	display: none;
}

.page-medical-billing-specialties .mdc-main--full {
	background: #fff;
}

.mdc-specialty-form__field--state {
	grid-column: 1 / -1;
}

/* The page renders through a shortcode inside the constrained post-content
   wrapper. `alignfull` lifts the 1300px cap so the hero, the dark grid and the
   enquiry band run edge to edge; each section re-centres its own content. */
.page-medical-billing-specialties .mdc-specialties {
	display: flex;
	flex-direction: column;
	width: auto;
	max-width: none;
	overflow-x: clip;
}

/* ----------------------------------------------------------- 1. hero */

.page-medical-billing-specialties .mdc-spec-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 435px;
	padding: 100px 40px;
	overflow: hidden;
	isolation: isolate;
}

.page-medical-billing-specialties .mdc-spec-hero__media {
	position: absolute;
	inset: 0;
	z-index: -2;
}

.page-medical-billing-specialties .mdc-spec-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 62% 32%;
}

/* Navy on the copy side, easing to a lighter wash over the photograph so the
   image stays visible on the right exactly as the reference composition does. */
.page-medical-billing-specialties .mdc-spec-hero::before {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, var(--spec-dark) 0%, rgba(10, 38, 52, .94) 42%, rgba(12, 46, 62, .55) 72%, rgba(12, 46, 62, .34) 100%);
	content: '';
}

.page-medical-billing-specialties .mdc-spec-hero__inner {
	width: 100%;
	max-width: var(--spec-content);
	margin-inline: auto;
	animation: mdc-spec-rise .6s ease both;
}

.page-medical-billing-specialties .mdc-spec-hero__eyebrow {
	margin: 0 0 14px;
	color: var(--mdc-kpi);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.page-medical-billing-specialties .mdc-spec-hero h1 {
	max-width: 550px;
	margin: 0;
	color: #fff;
	font-size: clamp(28px, 3.2vw, 34px);
	font-weight: 700;
	line-height: 1.25;
}

.page-medical-billing-specialties .mdc-spec-hero__lead {
	max-width: 440px;
	margin: 20px 0 0;
	color: rgba(255, 255, 255, .9);
	font-size: 18px;
	line-height: 1.55;
}

/* ------------------------------------------- 2. overlapping booking panel */

.page-medical-billing-specialties .mdc-spec-booking {
	position: relative;
	z-index: 2;
	padding: 0 40px;
}

.page-medical-billing-specialties .mdc-spec-booking__panel {
	max-width: 1020px;
	margin: -70px auto 0;
	padding: 30px;
	border-radius: 6px;
	background: #fff;
	box-shadow: 0 12px 34px rgba(10, 38, 52, .2);
	animation: mdc-spec-rise .6s ease .12s both;
}

.page-medical-billing-specialties .mdc-spec-booking__panel h2 {
	margin: 0 0 20px;
	color: var(--mdc-heading);
	font-size: clamp(21px, 2.2vw, 28px);
	font-weight: 600;
	line-height: 1.25;
}

.page-medical-billing-specialties .mdc-spec-booking__panel h2 span {
	color: var(--mdc-primary);
	font-weight: 400;
}

/* --------------------------------------------------------- shared forms */

.page-medical-billing-specialties .mdc-specialty-form__fields {
	display: grid;
	gap: 12px;
}

.page-medical-billing-specialties .mdc-specialty-form--inline .mdc-specialty-form__fields {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.page-medical-billing-specialties .mdc-specialty-form--stacked .mdc-specialty-form__fields {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.page-medical-billing-specialties .mdc-specialty-form__field {
	margin: 0;
	min-width: 0;
}

.page-medical-billing-specialties .mdc-specialty-form input,
.page-medical-billing-specialties .mdc-specialty-form select {
	width: 100%;
	height: 46px;
	padding: 0 14px;
	border: 1px solid #d6e1e6;
	border-radius: 5px;
	color: var(--mdc-heading);
	background: #fff;
	font: inherit;
	font-size: 15px;
	transition: border-color .2s ease, box-shadow .2s ease;
}

.page-medical-billing-specialties .mdc-specialty-form select {
	padding-right: 34px;
	background-image: var(--mdc-icon-caret);
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 11px;
	appearance: none;
}

.page-medical-billing-specialties .mdc-specialty-form input::placeholder {
	color: #8fa3ad;
}

.page-medical-billing-specialties .mdc-specialty-form input:focus,
.page-medical-billing-specialties .mdc-specialty-form select:focus {
	border-color: var(--mdc-primary);
	outline: 0;
	box-shadow: 0 0 0 3px var(--mdc-focus-ring);
}

.page-medical-billing-specialties .mdc-specialty-form__actions {
	margin: 12px 0 0;
}

.page-medical-billing-specialties .mdc-spec-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 150px;
	height: 46px;
	padding: 0 30px;
	border: 0;
	border-radius: 5px;
	color: #fff;
	background: var(--mdc-primary);
	font: inherit;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.page-medical-billing-specialties .mdc-spec-button:hover,
.page-medical-billing-specialties .mdc-spec-button:focus-visible {
	background: var(--mdc-primary-dark);
	box-shadow: 0 8px 20px rgba(46, 125, 156, .3);
	transform: translateY(-1px);
}

.page-medical-billing-specialties .mdc-spec-button:focus-visible {
	outline: 3px solid var(--mdc-kpi);
	outline-offset: 2px;
}

.page-medical-billing-specialties .mdc-spec-button--block {
	width: 100%;
}

.page-medical-billing-specialties .mdc-specialty-form__notice {
	margin: 0 0 16px;
	padding: 12px 16px;
	border-radius: 5px;
	font-size: 15px;
	font-weight: 600;
}

.page-medical-billing-specialties .mdc-specialty-form__notice--success {
	border: 1px solid #b7ded1;
	color: var(--mdc-accent-dark);
	background: var(--mdc-accent-tint);
}

.page-medical-billing-specialties .mdc-specialty-form__notice--error {
	border: 1px solid #e6c3c3;
	color: #a03535;
	background: #fbeeee;
}

/* --------------------------------------------- 3. popular specialties */

/* Matched to the client's reference: a light band of bare icons over their
   labels, with no card, border or chip around them. The strip's job is to
   read as a quick visual index, and the boxes were competing with the carded
   grid immediately below it. */
.page-medical-billing-specialties .mdc-spec-popular {
	padding: 70px 40px 74px;
	background: #fff;
}

.page-medical-billing-specialties .mdc-spec-popular__head {
	max-width: var(--spec-content);
	margin: 0 auto 44px;
	text-align: center;
}

/* Short brand bar above the heading: teal fading into the client's gold. */
.page-medical-billing-specialties .mdc-spec-rule {
	display: block;
	width: 92px;
	height: 4px;
	margin: 0 auto 20px;
	border-radius: var(--mdc-radius-pill);
	background: linear-gradient(90deg, var(--mdc-primary), var(--mdc-kpi));
}

/* Two lines, uppercase, the second heavier — as in the reference. The <strong>
   is already in the markup, so this needs no template change. */
.page-medical-billing-specialties .mdc-spec-popular__head h2 {
	margin: 0;
	color: var(--mdc-heading);
	font-size: 30px;
	font-weight: 400;
	line-height: 1.25;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.page-medical-billing-specialties .mdc-spec-popular__head h2 strong {
	display: block;
	font-size: 34px;
	font-weight: 700;
	letter-spacing: .04em;
}

/* Photo cards, matching the Services directory's `.mdc-services-card`
   pattern (rounded thumb + name below) rather than a bare icon over a label.
   The grouped "Every Specialty We Bill For" grid keeps its icon treatment —
   only this featured strip moved to photography. */
.page-medical-billing-specialties .mdc-spec-popular__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 26px;
	/* Was capped at 940px inside a 1140px section, so the cards sat small
	   between wide gutters. Matching the section width scales each card up
	   by roughly a fifth without changing the column count. */
	max-width: var(--spec-content);
	margin: 0 auto;
	padding: 0;
	list-style: none;
}

.page-medical-billing-specialties .mdc-spec-popular__item {
	min-width: 0;
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .45s ease var(--mdc-reveal-delay, 0ms), transform .45s ease var(--mdc-reveal-delay, 0ms);
}

.page-medical-billing-specialties .mdc-spec-popular__item.is-visible {
	opacity: 1;
	transform: none;
}

.page-medical-billing-specialties .mdc-spec-popular__item a {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 16px;
	height: 100%;
	padding: 0 0 20px;
	border: 1px solid #dce8eb;
	border-radius: 22px;
	background: #fff;
	color: inherit;
	text-align: center;
	text-decoration: none;
	transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}

.page-medical-billing-specialties .mdc-spec-popular__item a:hover,
.page-medical-billing-specialties .mdc-spec-popular__item a:focus-visible {
	border-color: var(--mdc-primary);
	box-shadow: 0 16px 32px rgba(12, 46, 62, .12);
	transform: translateY(-5px);
}

.page-medical-billing-specialties .mdc-spec-popular__item a:focus-visible {
	outline: 3px solid var(--mdc-kpi);
	outline-offset: 3px;
}

.page-medical-billing-specialties .mdc-spec-popular__thumb {
	display: block;
	width: 100%;
	height: 232px;
	overflow: hidden;
	border-radius: 21px 21px 0 0;
	background: #dcecef;
}

.page-medical-billing-specialties .mdc-spec-popular__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}

.page-medical-billing-specialties .mdc-spec-popular__item a:hover .mdc-spec-popular__thumb img,
.page-medical-billing-specialties .mdc-spec-popular__item a:focus-visible .mdc-spec-popular__thumb img {
	transform: scale(1.06);
}

.page-medical-billing-specialties .mdc-spec-popular__label {
	padding: 0 18px;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.35;
}


/* ------------------------------------------- 4. grouped specialty grid */

/* Matched to the client's reference: a dark full-width band carrying white
   rounded cards, icon stacked over label, five to a row. The category
   headings and filter pills from the Word doc are kept on top of that
   treatment rather than dropped, so the section still filters. */
.page-medical-billing-specialties .mdc-spec-grid-section {
	padding: 76px 40px 86px;
	background: var(--spec-dark);
}

.page-medical-billing-specialties .mdc-spec-grid-section__title {
	max-width: var(--spec-content);
	margin: 0 auto;
	color: #fff;
	font-size: 34px;
	line-height: 1.15;
	text-align: center;
}

.page-medical-billing-specialties .mdc-spec-grid-section__lead {
	max-width: 620px;
	margin: 14px auto 0;
	color: rgba(255, 255, 255, .72);
	font-size: 16px;
	line-height: 1.6;
	text-align: center;
}

/* ------------------------------------------------- category filter pills */

/* Centred under the intro. The row is hidden until the script unhides it, so
   a no-JS visitor never sees controls that cannot do anything. */
.page-medical-billing-specialties .mdc-spec-filters {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	max-width: var(--spec-content);
	margin: 34px auto 0;
}

.page-medical-billing-specialties .mdc-spec-filters[hidden] {
	display: none;
}

.page-medical-billing-specialties .mdc-spec-filter {
	padding: 10px 20px;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: var(--mdc-radius-pill);
	background: transparent;
	color: rgba(255, 255, 255, .82);
	font-family: inherit;
	font-size: 14.5px;
	font-weight: 500;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.page-medical-billing-specialties .mdc-spec-filter:hover {
	border-color: rgba(255, 255, 255, .45);
	color: #fff;
}

.page-medical-billing-specialties .mdc-spec-filter[aria-pressed="true"] {
	background: #fff;
	border-color: #fff;
	color: var(--spec-dark);
	font-weight: 600;
}

.page-medical-billing-specialties .mdc-spec-filter:focus-visible {
	outline: 3px solid var(--mdc-kpi);
	outline-offset: 3px;
}

/* Announced to screen readers on every filter change; sighted users get the
   same information from the pill state, so it stays out of the layout. */
.page-medical-billing-specialties .mdc-spec-filters__status {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* ------------------------------------------------------- category blocks */

/* Each category owns an icon colour, rotating teal / gold / green down the
   page. The reference runs a single hue throughout; the rotation is the one
   deliberate departure, because it gives the retained category grouping a
   visual cue on the card itself. Set once here, inherited by the icons. */
.page-medical-billing-specialties .mdc-spec-group {
	--spec-icon-fg: var(--mdc-primary);
	max-width: var(--spec-content);
	margin: 46px auto 0;
}

.page-medical-billing-specialties .mdc-spec-group--gold {
	--spec-icon-fg: #A8871F;
}

.page-medical-billing-specialties .mdc-spec-group--green {
	--spec-icon-fg: #3B9C81;
}

.page-medical-billing-specialties .mdc-spec-group__title {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 0 0 18px;
	padding-bottom: 14px;
	border-bottom: 1px solid rgba(255, 255, 255, .14);
	color: #fff;
	font-size: 20px;
	font-weight: 600;
}

.page-medical-billing-specialties .mdc-spec-group__count {
	color: rgba(255, 255, 255, .6);
	font-size: 14px;
	font-weight: 400;
}

.page-medical-billing-specialties .mdc-spec-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.page-medical-billing-specialties .mdc-spec-tile {
	min-width: 0;
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .45s ease var(--mdc-reveal-delay, 0ms), transform .45s ease var(--mdc-reveal-delay, 0ms);
}

.page-medical-billing-specialties .mdc-spec-tile.is-visible {
	opacity: 1;
	transform: none;
}

/* Icon over label, centred. `justify-content: center` with a min-height keeps
   one- and two-line labels optically level across a row. */
.page-medical-billing-specialties .mdc-spec-tile a {
	position: relative;
	display: block;
	overflow: hidden;
	height: 100%;
	min-height: 160px;
	border: 1px solid transparent;
	border-radius: 26px;
	background: #fff;
	color: var(--mdc-heading);
	text-align: center;
	text-decoration: none;
	transition: border-color .3s ease, box-shadow .3s ease;
}

.page-medical-billing-specialties .mdc-spec-tile__front,
.page-medical-billing-specialties .mdc-spec-tile__back {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 22px 14px;
	transition: transform .6s ease-in-out;
}

.page-medical-billing-specialties .mdc-spec-tile__front {
	background: #fff;
	transform: translateX(0);
}

.page-medical-billing-specialties .mdc-spec-tile__back {
	background: var(--mdc-primary);
	color: #fff;
	text-align: center;
	transform: translateX(100%);
}

.page-medical-billing-specialties .mdc-spec-tile__icon {
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	color: var(--spec-icon-fg);
}

.page-medical-billing-specialties .mdc-spec-tile__icon svg {
	width: 100%;
	height: 100%;
	stroke-width: 1.5;
}

.page-medical-billing-specialties .mdc-spec-tile__label {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	overflow-wrap: break-word;
}

.page-medical-billing-specialties .mdc-spec-tile__description {
	max-width: 190px;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.45;
}

.page-medical-billing-specialties .mdc-spec-tile a:hover,
.page-medical-billing-specialties .mdc-spec-tile a:focus-visible {
	border-color: var(--spec-icon-fg);
	box-shadow: 0 14px 28px rgba(0, 0, 0, .26);
	transform: translateY(-4px);
}

.page-medical-billing-specialties .mdc-spec-tile a:hover .mdc-spec-tile__front,
.page-medical-billing-specialties .mdc-spec-tile a:focus-visible .mdc-spec-tile__front {
	transform: translateX(-100%);
}

.page-medical-billing-specialties .mdc-spec-tile a:hover .mdc-spec-tile__back,
.page-medical-billing-specialties .mdc-spec-tile a:focus-visible .mdc-spec-tile__back {
	transform: translateX(0);
}

.page-medical-billing-specialties .mdc-spec-tile a:focus-visible {
	outline: 3px solid var(--mdc-kpi);
	outline-offset: 3px;
}


/* ------------------------------------------- 5. missing-specialty enquiry */

.page-medical-billing-specialties .mdc-spec-enquiry {
	position: relative;
	padding: 120px 40px;
	background: var(--mdc-primary-tint);
	overflow: hidden;
	isolation: isolate;
}

.page-medical-billing-specialties .mdc-spec-enquiry__decor {
	position: absolute;
	inset: 0;
	z-index: -1;
	color: var(--mdc-primary);
	opacity: .09;
	pointer-events: none;
}

.page-medical-billing-specialties .mdc-spec-enquiry__decor svg {
	position: absolute;
	width: 150px;
	height: 150px;
	stroke-width: 1;
}

.page-medical-billing-specialties .mdc-spec-enquiry__decor svg:nth-child(1) { top: 8%; left: 5%; width: 190px; height: 190px; }
.page-medical-billing-specialties .mdc-spec-enquiry__decor svg:nth-child(2) { top: 55%; left: 12%; }
.page-medical-billing-specialties .mdc-spec-enquiry__decor svg:nth-child(3) { bottom: 6%; left: 30%; width: 120px; height: 120px; }
.page-medical-billing-specialties .mdc-spec-enquiry__decor svg:nth-child(4) { top: 12%; right: 8%; width: 170px; height: 170px; }
.page-medical-billing-specialties .mdc-spec-enquiry__decor svg:nth-child(5) { bottom: 12%; right: 6%; }
.page-medical-billing-specialties .mdc-spec-enquiry__decor svg:nth-child(6) { top: 46%; right: 22%; width: 110px; height: 110px; }

.page-medical-billing-specialties .mdc-spec-enquiry__inner {
	max-width: 840px;
	margin-inline: auto;
	text-align: center;
}

.page-medical-billing-specialties .mdc-spec-enquiry h2 {
	margin: 0;
	color: var(--mdc-heading);
	font-size: clamp(30px, 3.8vw, 46px);
	font-weight: 700;
	line-height: 1.2;
}

.page-medical-billing-specialties .mdc-spec-enquiry__lead {
	margin: 20px 0 0;
	color: var(--mdc-body-text);
	font-size: clamp(18px, 2vw, 24px);
	line-height: 1.5;
}

.page-medical-billing-specialties .mdc-spec-enquiry .mdc-specialty-form {
	max-width: 492px;
	margin: 34px auto 0;
	text-align: left;
}

/* ------------------------------------------------------------ animation */

/* ======================================================================
   Featured specialty detail pages
   Inspired by the reference's specialty landing pages, but branded and
   written for RevaxisMD. The directory and Popular Specialties strip remain
   separate from these child-page rules.
   ====================================================================== */

/* Mirrors the directory page's `.mdc-specialties` reset. This renders through a
   shortcode inside the constrained post-content wrapper, so the width cap has
   to be lifted here for `alignfull` to reach the viewport edges. It previously
   used `width: calc(100% + 60px)` with `margin-left: -60px`, which pulled only
   the left edge out and by a guessed amount, leaving the visible gutter. */
.mdc-specialty-detail {
	--detail-shell: 1180px;
	display: flex;
	flex-direction: column;
	width: auto;
	max-width: none;
	overflow-x: clip;
	color: var(--mdc-body-text);
	background: #fff;
}



/* The specialty photo runs as a full-bleed background behind a gradient wash,
   matching the reference. It was previously an inset card in the hero's right
   column — exactly where the consultation form now sits, so the two collided. */
.mdc-specialty-detail__hero {
	position: relative;
	display: flex;
	align-items: center;
	isolation: isolate;
	overflow: hidden;
	min-height: 360px;
	/* Extra bottom padding only — the consultation card rises into it. */
	padding: 72px 40px 108px;
	color: #fff;
}

/* Same wash as the specialties listing hero: navy over the copy, easing to a
   lighter tint so the photograph stays readable on the right. Matched exactly
   so the landing page and its nine child pages read as one band. */
.mdc-specialty-detail__hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, #0a2634 0%, rgba(10, 38, 52, .94) 42%, rgba(12, 46, 62, .55) 72%, rgba(12, 46, 62, .34) 100%);
}

.mdc-specialty-detail__hero-inner,
.mdc-specialty-detail__intro,
.mdc-specialty-detail__focus,
.mdc-specialty-detail__services,
.mdc-specialty-detail__cs,
.mdc-specialty-detail__procedures,
.mdc-specialty-detail__faq,
.mdc-specialty-detail__process-inner {
	width: min(var(--detail-shell), 100%);
	margin-inline: auto;
}

.mdc-specialty-detail__hero-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 70px;
	align-items: center;
}

/* The right column is reserved whitespace: the consultation card rises into it
   from the section below, so the copy never runs under the form. */
.mdc-specialty-detail__hero-copy {
	max-width: 560px;
}

.mdc-specialty-detail__hero .mdc-specialty-detail__eyebrow {
	font-size: 14px;
	font-weight: 600;
}

.mdc-specialty-detail__eyebrow {
	margin: 0 0 14px;
	color: var(--mdc-kpi);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.mdc-specialty-detail h1,
.mdc-specialty-detail h2,
.mdc-specialty-detail h3 {
	color: var(--mdc-heading);
}

.mdc-specialty-detail__hero h1 {
	max-width: 550px;
	margin: 0;
	color: #fff;
	font-size: clamp(28px, 3.2vw, 34px);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0;
}

.mdc-specialty-detail__hero-copy > p:not(.mdc-specialty-detail__eyebrow) {
	max-width: 440px;
	margin: 20px 0 0;
	color: rgba(255, 255, 255, .9);
	font-size: 18px;
	line-height: 1.55;
}

.mdc-specialty-detail__hero-media {
	position: absolute;
	inset: 0;
	z-index: -2;
	pointer-events: none;
}

.mdc-specialty-detail__hero-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 62% 32%;
}

.mdc-specialty-detail__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
	align-items: center;
	margin-top: 30px;
}

.mdc-specialty-detail__button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 15px 23px;
	border-radius: 999px;
	background: var(--mdc-kpi);
	color: #172a32;
	font-weight: 700;
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease;
}

.mdc-specialty-detail__button:hover,
.mdc-specialty-detail__button:focus-visible {
	background: #e0ba35;
	box-shadow: 0 10px 24px rgba(0, 0, 0, .2);
	transform: translateY(-3px);
}

.mdc-specialty-detail__text-link {
	color: #fff;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.mdc-specialty-detail__intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 70px;
	align-items: start;
	/* Extra top padding leaves room for the consultation card, which is pulled
	   up out of this section to overlap the hero above it. */
	padding: 92px 28px;
}

.mdc-specialty-detail__intro h2,
.mdc-specialty-detail__section-head h2,
.mdc-specialty-detail__process h2,
.mdc-specialty-detail__cta h2 {
	margin: 0;
	font-size: clamp(30px, 3.5vw, 46px);
	line-height: 1.1;
}

.mdc-specialty-detail__intro-copy > p:last-child {
	max-width: 680px;
	margin: 20px 0 0;
	font-size: 17px;
	line-height: 1.75;
}

.mdc-specialty-detail__proof {
	padding: 30px;
	border: 1px solid #d5e4e7;
	border-top: 4px solid var(--mdc-kpi);
	border-radius: 20px;
	background: #f4f9fa;
	box-shadow: 0 14px 35px rgba(12, 46, 62, .08);
}

.mdc-specialty-detail__proof strong,
.mdc-specialty-detail__proof span,
.mdc-specialty-detail__proof small {
	display: block;
}

.mdc-specialty-detail__proof strong {
	color: var(--mdc-primary-dark);
	font-size: 48px;
	line-height: 1;
}

.mdc-specialty-detail__proof span {
	margin-top: 8px;
	color: var(--mdc-heading);
	font-weight: 700;
}

.mdc-specialty-detail__proof small {
	margin-top: 16px;
	font-size: 14px;
	line-height: 1.5;
}

.mdc-specialty-detail__focus {
	padding: 20px 28px 100px;
}

.mdc-specialty-detail__section-head {
	max-width: 650px;
	margin-bottom: 38px;
}

.mdc-specialty-detail__focus-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.mdc-specialty-detail__focus-grid article {
	min-height: 210px;
	padding: 27px;
	border: 1px solid #d6e5e8;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(12, 46, 62, .05);
	transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.mdc-specialty-detail__focus-grid article:hover {
	border-color: var(--mdc-primary);
	box-shadow: 0 16px 30px rgba(12, 46, 62, .12);
	transform: translateY(-5px);
}

.mdc-specialty-detail__focus-grid article > span {
	color: var(--mdc-kpi-deep);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .08em;
}

.mdc-specialty-detail__focus-grid h3 {
	margin: 25px 0 10px;
	font-size: 20px;
	line-height: 1.25;
}

.mdc-specialty-detail__focus-grid p {
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
}

.mdc-specialty-detail__process {
	padding: 84px 28px;
	background: #0a2634;
	color: #fff;
}

.mdc-specialty-detail__process-inner {
	display: grid;
	grid-template-columns: .8fr 1.2fr;
	gap: 80px;
	align-items: start;
}

.mdc-specialty-detail__process h2 {
	color: #fff;
}

.mdc-specialty-detail__process ol {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mdc-specialty-detail__process li {
	padding-top: 16px;
	border-top: 1px solid rgba(255, 255, 255, .25);
}

.mdc-specialty-detail__process li b,
.mdc-specialty-detail__process li span {
	display: block;
}

.mdc-specialty-detail__process li b {
	margin-bottom: 12px;
	color: var(--mdc-kpi);
	font-size: 22px;
}

.mdc-specialty-detail__process li span {
	color: rgba(255, 255, 255, .78);
	font-size: 15px;
	line-height: 1.55;
}

.mdc-specialty-detail__cta {
	max-width: 900px;
	margin: 56px auto 88px;
	padding: 58px 28px;
	text-align: center;
}

.mdc-specialty-detail__cta h2 {
	max-width: 760px;
	margin-inline: auto;
	color: var(--mdc-heading);
}

.mdc-specialty-detail__cta .mdc-specialty-detail__button {
	margin-top: 28px;
}

@media (max-width: 850px) {
	.mdc-specialty-detail__hero-inner,
	.mdc-specialty-detail__intro,
	.mdc-specialty-detail__process-inner { grid-template-columns: 1fr; gap: 38px; }
	.mdc-specialty-detail__hero { min-height: 300px; padding: 62px 20px 76px; }
	.mdc-specialty-detail__hero-media img { object-position: 62% 40%; }
	.mdc-specialty-detail__hero::after {
		background: linear-gradient(90deg, #0a2634 0%, rgba(10, 38, 52, .92) 55%, rgba(12, 46, 62, .72) 100%);
	}
	.mdc-specialty-detail__hero-copy,
	.mdc-specialty-detail__hero h1,
	.mdc-specialty-detail__hero-copy > p:not(.mdc-specialty-detail__eyebrow) { max-width: none; }
	.mdc-specialty-detail__hero-inner { grid-template-columns: minmax(0, 1fr); }
	.mdc-specialty-detail__intro { padding: 70px 20px; }
	.mdc-specialty-detail__focus { padding: 0 20px 75px; }
	.mdc-specialty-detail__focus-grid { grid-template-columns: 1fr; }
	.mdc-specialty-detail__process { padding: 70px 20px; }
}

@media (max-width: 600px) {
	.mdc-specialty-detail__hero h1 { font-size: 42px; }
	.mdc-specialty-detail__hero-copy > p:not(.mdc-specialty-detail__eyebrow) { font-size: 16px; }
	.mdc-specialty-detail__process ol { grid-template-columns: 1fr; gap: 28px; }
	.mdc-specialty-detail__cta { margin: 55px auto; padding: 30px 20px; }
}

@keyframes mdc-spec-rise {
	from { opacity: 0; transform: translateY(18px); }
	to { opacity: 1; transform: none; }
}

/* ----------------------------------------------------------- responsive */

@media (max-width: 1023px) {
	.page-medical-billing-specialties .mdc-spec-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.page-medical-billing-specialties .mdc-spec-hero { min-height: 380px; padding: 80px 32px; }
	.page-medical-billing-specialties .mdc-spec-booking { padding: 0 32px; }
	.page-medical-billing-specialties .mdc-spec-booking__panel { margin-top: -50px; }
	.page-medical-billing-specialties .mdc-specialty-form--inline .mdc-specialty-form__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.page-medical-billing-specialties .mdc-spec-enquiry { padding: 90px 32px; }
	.page-medical-billing-specialties .mdc-spec-popular { padding: 62px 32px 66px; }
}

@media (max-width: 700px) {
	.page-medical-billing-specialties .mdc-spec-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.page-medical-billing-specialties .mdc-spec-grid-section { padding: 52px 28px; }
	.page-medical-billing-specialties .mdc-spec-grid-section__title { font-size: 28px; }
	.page-medical-billing-specialties .mdc-spec-filter { padding: 9px 16px; font-size: 14px; }
	.page-medical-billing-specialties .mdc-spec-group { margin-top: 34px; }
}

@media (max-width: 700px) {
	.page-medical-billing-specialties .mdc-spec-hero { min-height: 300px; padding: 62px 20px; }
	.page-medical-billing-specialties .mdc-spec-hero__media img { object-position: 62% 40%; }
	.page-medical-billing-specialties .mdc-spec-hero::before {
		background: linear-gradient(90deg, var(--spec-dark) 0%, rgba(10, 38, 52, .92) 55%, rgba(12, 46, 62, .72) 100%);
	}
	.page-medical-billing-specialties .mdc-spec-hero__lead { max-width: none; font-size: 16px; }

	.page-medical-billing-specialties .mdc-spec-booking { padding: 0 16px; }
	.page-medical-billing-specialties .mdc-spec-booking__panel { margin-top: -34px; padding: 22px 18px; }
	.page-medical-billing-specialties .mdc-specialty-form--inline .mdc-specialty-form__fields,
	.page-medical-billing-specialties .mdc-specialty-form--stacked .mdc-specialty-form__fields { grid-template-columns: 1fr; }
	.page-medical-billing-specialties .mdc-spec-button { width: 100%; }


	.page-medical-billing-specialties .mdc-spec-popular { padding: 48px 16px 52px; }
	.page-medical-billing-specialties .mdc-spec-popular__head { margin-bottom: 32px; }
	.page-medical-billing-specialties .mdc-spec-popular__head h2 { font-size: 22px; }
	.page-medical-billing-specialties .mdc-spec-popular__head h2 strong { font-size: 26px; }
	.page-medical-billing-specialties .mdc-spec-popular__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	.page-medical-billing-specialties .mdc-spec-popular__thumb { height: 140px; }
	.page-medical-billing-specialties .mdc-spec-popular__label { font-size: 14px; }

	.page-medical-billing-specialties .mdc-spec-grid-section { padding: 44px 16px; }
	.page-medical-billing-specialties .mdc-spec-grid { gap: 10px; }
	.page-medical-billing-specialties .mdc-spec-tile a { min-height: 132px; border-radius: 20px; }
	.page-medical-billing-specialties .mdc-spec-tile__front,
	.page-medical-billing-specialties .mdc-spec-tile__back { gap: 10px; padding: 16px 8px; }
	.page-medical-billing-specialties .mdc-spec-tile__icon { width: 54px; height: 54px; }
	.page-medical-billing-specialties .mdc-spec-tile__label { font-size: 14px; }
	.page-medical-billing-specialties .mdc-spec-tile__description { font-size: 12px; }

	.page-medical-billing-specialties .mdc-spec-enquiry { padding: 62px 16px 68px; }
	.page-medical-billing-specialties .mdc-spec-enquiry__decor svg { width: 96px; height: 96px; }
	.page-medical-billing-specialties .mdc-spec-enquiry__decor svg:nth-child(1),
	.page-medical-billing-specialties .mdc-spec-enquiry__decor svg:nth-child(4) { width: 110px; height: 110px; }
	.page-medical-billing-specialties .mdc-spec-enquiry__lead { font-size: 17px; }
}

/* Two columns is the floor: a single full-width card wastes most of its row
   on a 34px icon, and the reference keeps a dense grid at every width. */
@media (max-width: 600px) {
	.page-medical-billing-specialties .mdc-spec-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
	.page-medical-billing-specialties .mdc-spec-hero__inner,
	.page-medical-billing-specialties .mdc-spec-booking__panel { animation: none; }
	.page-medical-billing-specialties .mdc-spec-tile,
	.page-medical-billing-specialties .mdc-spec-popular__item { opacity: 1; transform: none; transition: none; }
	.page-medical-billing-specialties .mdc-spec-tile a:hover,
	.page-medical-billing-specialties .mdc-spec-popular__item a:hover,
	.page-medical-billing-specialties .mdc-spec-button:hover { transform: none; }
}

@media (max-width: 1120px) {
	/* The navigation contains six top-level destinations and a six-item
	   Services submenu. A 240px absolute panel clips it on touch devices, so
	   turn it into a proper, scrollable dialog that always begins on screen. */
	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container.is-menu-open {
		position: fixed;
		inset: 0;
		z-index: 1000;
		width: 100%;
		height: 100dvh;
		max-height: none;
		min-height: 100dvh;
		padding: max(24px, env(safe-area-inset-top)) 24px max(28px, env(safe-area-inset-bottom));
		overflow-y: auto;
		overscroll-behavior: contain;
		background: rgba(255, 255, 255, 0.98);
		box-shadow: 0 18px 46px rgba(12, 46, 62, 0.18);
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-close {
		position: sticky;
		top: 0;
		display: flex;
		justify-content: flex-end;
		width: 100%;
		height: 44px;
		margin: 0 0 16px;
		background: rgba(255, 255, 255, 0.98);
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container-close {
		position: static;
		width: 44px;
		height: 44px;
		padding: 10px;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		gap: 2px;
		padding-bottom: 24px;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container.is-menu-open
		> .wp-block-navigation__responsive-close
		> .wp-block-navigation__responsive-dialog
		> .wp-block-navigation__responsive-container-content
		> .wp-block-navigation__container
		> .wp-block-navigation-item {
		flex-basis: auto;
		min-height: 48px;
		padding-inline: 4px;
		border-bottom: 1px solid rgba(12, 46, 62, 0.09);
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container.is-menu-open
		> .wp-block-navigation__responsive-close
		> .wp-block-navigation__responsive-dialog
		> .wp-block-navigation__responsive-container-content
		> .wp-block-navigation__container
		> .wp-block-navigation-item
		> .wp-block-navigation-item__content {
		min-height: 48px;
		padding-block: 14px;
		font-size: 17px;
		font-weight: 600;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__submenu-container {
		gap: 0;
		padding: 0 0 10px 14px;
		background: transparent;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		min-height: 44px;
		padding-block: 11px;
		font-size: 15px;
		line-height: 1.35;
	}

	body.mdc-scope:has(.wp-block-navigation__responsive-container.is-menu-open) {
		overflow: hidden !important;
	}
}

@media (max-width: 767px) {
	/* A single gutter value keeps the header, panels, forms and footer visually
	   aligned without changing the approved desktop container. */
	.mdc-scope {
		--mdc-phone-gutter: clamp(16px, 5.15vw, 22px);
	}

	.mdc-scope .mdc-hero,
	.mdc-scope .mdc-page-header {
		margin-inline: var(--mdc-phone-gutter);
	}

	.mdc-scope .mdc-hero__copy,
	.mdc-scope .mdc-hero__media {
		padding-inline: var(--mdc-phone-gutter);
	}

	.mdc-scope .mdc-page-header {
		padding-inline: var(--mdc-phone-gutter);
	}

	.mdc-scope .mdc-page-header h1 {
		font-size: clamp(32px, 9vw, 40px) !important;
		line-height: 1.08;
	}

	.mdc-scope .mdc-hero h1 {
		font-size: clamp(29px, 8.2vw, 34px);
		line-height: 1.12;
	}

	.mdc-scope .mdc-hero__lede p,
	.mdc-scope .mdc-page-header p {
		line-height: 1.62;
	}

	/* Mobile compositing is calmer than desktop: shorter entrance travel and no
	   hover-only flourish that could get stuck after a tap. */
	.mdc-scope .mdc-reveal--visible {
		animation-duration: 0.55s;
	}

	.mdc-scope .mdc-hero__image img {
		max-height: min(96vw, 390px);
		width: 100%;
		height: auto;
		object-position: center bottom;
	}
}

@media (max-width: 599px) {
	/* Brand first, then a readable Services group followed by a compact pair of
	   utility columns. This avoids the previous three 100px-wide link columns. */
	.mdc-scope .mdc-footer {
		margin-inline: var(--mdc-phone-gutter);
		padding: 38px var(--mdc-phone-gutter) 26px;
	}

	.mdc-scope .mdc-footer__top {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px 20px;
	}

	.mdc-scope .mdc-footer__top > .wp-block-column {
		min-width: 0;
		margin: 0;
	}

	.mdc-scope .mdc-footer__top > .mdc-footer__brand,
	.mdc-scope .mdc-footer__top > .wp-block-column:nth-child(2) {
		grid-column: 1 / -1;
	}

	.mdc-scope .mdc-footer__logo img {
		width: min(218px, 72vw);
	}

	.mdc-scope .mdc-footer__tagline {
		max-width: 34ch;
		margin-top: 16px;
		font-size: 15px;
	}

	.mdc-scope .mdc-footer__heading {
		margin-bottom: 14px;
		font-size: 18px;
	}

	.mdc-scope .mdc-footer__links {
		gap: 10px;
	}

	.mdc-scope .mdc-footer__links li {
		padding-left: 13px;
		font-size: 14px;
		line-height: 1.45;
	}

	.mdc-scope .mdc-footer__bottom {
		margin-top: 36px;
		padding-top: 22px;
		gap: 12px;
	}

	.mdc-scope .mdc-footer__bottom p,
	.mdc-scope .mdc-footer__legal {
		font-size: 13px;
	}

	.mdc-scope .mdc-footer__legal {
		gap: 14px;
	}

	.mdc-scope .mdc-footer__social .wp-social-link {
		padding: 9px;
	}
}

/* ----------------------------------------- specialty detail: new sections */

/* Results band. Previously four small cards with four different accent colours
   floating in whitespace, which read as clutter rather than proof. Now a single
   full-bleed tinted band with hairline dividers: one object, four figures. */
.mdc-specialty-detail__stats {
	margin-bottom: 92px;
	padding: 54px 40px;
	background: var(--mdc-primary-tint);
}

.mdc-specialty-detail__stats-inner {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	width: min(var(--detail-shell), 100%);
	margin-inline: auto;
}

.mdc-specialty-detail__stat {
	padding: 4px 30px;
	border-left: 1px solid var(--mdc-primary-tint-strong);
}

.mdc-specialty-detail__stat:first-child {
	padding-left: 0;
	border-left: 0;
}

.mdc-specialty-detail__stat strong {
	display: block;
	color: var(--mdc-primary-dark);
	font-size: 52px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.03em;
}

.mdc-specialty-detail__stat span {
	display: block;
	margin-top: 12px;
	color: var(--mdc-body-text);
	font-size: 14px;
	line-height: 1.5;
}

/* Body prose. A single measured column, not a two-up list of headed blurbs —
   the scope of work should read as an explanation of how the specialty is
   billed, which is what the reference pages do. */
.mdc-specialty-detail__prose {
	max-width: 74ch;
}

.mdc-specialty-detail__prose p {
	margin: 0 0 22px;
	color: var(--mdc-body-text);
	font-size: 17.5px;
	line-height: 1.8;
}

.mdc-specialty-detail__prose p:last-child {
	margin-bottom: 0;
}

.mdc-specialty-detail__cs {
	padding: 0 28px 92px;
}

.mdc-specialty-detail__cs-table {
	border: 1px solid #d6e5e8;
	border-radius: 22px;
	background: #fff;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(12, 46, 62, .05);
}

.mdc-specialty-detail__cs-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
}

.mdc-specialty-detail__cs-head span {
	padding: 16px 28px;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.mdc-specialty-detail__cs-head--problem { background: #9A5B4A; }
.mdc-specialty-detail__cs-head--solution { background: var(--mdc-accent-dark); }

.mdc-specialty-detail__cs-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	border-top: 1px solid #e7eff1;
}

.mdc-specialty-detail__cs-row p {
	margin: 0;
	padding: 22px 28px;
	font-size: 15px;
	line-height: 1.6;
}

.mdc-specialty-detail__cs-problem {
	color: var(--mdc-body-text);
	background: #FBF7F6;
}

.mdc-specialty-detail__cs-solution {
	color: var(--mdc-heading);
	font-weight: 500;
}

/* Coverage list. Plain chips — the page already carries enough card weight. */
.mdc-specialty-detail__procedures {
	padding: 0 28px 92px;
}

/* A plain columned list with a small tick, not twelve pills. These are read as
   a checklist of coverage, so the chrome was doing nothing the marker cannot. */
.mdc-specialty-detail__procedures-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2px 48px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mdc-specialty-detail__procedures-list li {
	position: relative;
	padding: 13px 0 13px 30px;
	border-bottom: 1px solid #e4edef;
	color: var(--mdc-heading);
	font-size: 16px;
}

.mdc-specialty-detail__procedures-list li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 19px;
	width: 10px;
	height: 6px;
	border-left: 2px solid var(--mdc-primary);
	border-bottom: 2px solid var(--mdc-primary);
	transform: rotate(-45deg);
}

/* FAQ. Native <details> so it works with no JS and stays keyboard-operable. */
/* The process band above is a full-width dark panel; without a top inset the
   FAQ eyebrow sits flush against its bottom edge. */
.mdc-specialty-detail__faq {
	padding: 84px 28px 20px;
}

.mdc-specialty-detail__faq-list {
	display: grid;
	max-width: 74ch;
	border-top: 1px solid #e4edef;
}

.mdc-specialty-detail__faq-list details {
	border-bottom: 1px solid #e4edef;
}

.mdc-specialty-detail__faq-list summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 20px 4px;
	color: var(--mdc-heading);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.4;
	cursor: pointer;
	list-style: none;
}

.mdc-specialty-detail__faq-list summary::-webkit-details-marker { display: none; }

/* Chevron drawn in CSS so the marker matches in both states without an icon. */
.mdc-specialty-detail__faq-list summary::after {
	content: "";
	flex: 0 0 auto;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--mdc-primary);
	border-bottom: 2px solid var(--mdc-primary);
	transform: rotate(45deg) translate(-2px, -2px);
	transition: transform .2s ease;
}

.mdc-specialty-detail__faq-list details[open] summary::after {
	transform: rotate(-135deg) translate(-2px, -2px);
}

.mdc-specialty-detail__faq-list summary:focus-visible {
	outline: 3px solid var(--mdc-kpi);
	outline-offset: 2px;
	border-radius: 6px;
}

.mdc-specialty-detail__faq-list details p {
	margin: 0;
	max-width: 68ch;
	padding: 0 4px 22px;
	color: var(--mdc-body-text);
	font-size: 15.5px;
	line-height: 1.65;
}

@media (max-width: 760px) {
	.mdc-specialty-detail__stats { margin-bottom: 56px; padding: 38px 20px; }
	.mdc-specialty-detail__stats-inner { row-gap: 28px; }
	.mdc-specialty-detail__stat { padding: 0 14px; }
	.mdc-specialty-detail__stat strong { font-size: 38px; }
	.mdc-specialty-detail__procedures-list { grid-template-columns: 1fr; }
	.mdc-specialty-detail__prose p { font-size: 16.5px; line-height: 1.75; }
	.mdc-specialty-detail__services,
	.mdc-specialty-detail__cs,
	.mdc-specialty-detail__procedures { padding-bottom: 60px; }
	.mdc-specialty-detail__faq { padding: 56px 28px 12px; }

	/* Stack each pair and label it, so a solution is never read as a
	   standalone claim detached from the problem it answers. */
	.mdc-specialty-detail__cs-head { display: none; }
	.mdc-specialty-detail__cs-row { grid-template-columns: 1fr; }
	.mdc-specialty-detail__cs-row p { padding: 18px 20px; }
	.mdc-specialty-detail__cs-problem::before,
	.mdc-specialty-detail__cs-solution::before {
		display: block;
		margin-bottom: 6px;
		font-size: 12px;
		font-weight: 700;
		letter-spacing: .07em;
		text-transform: uppercase;
	}
	.mdc-specialty-detail__cs-problem::before { content: "The challenge"; color: #9A5B4A; }
	.mdc-specialty-detail__cs-solution::before { content: "How we handle it"; color: var(--mdc-accent-dark); }
	.mdc-specialty-detail__faq-list summary { padding: 16px 2px; font-size: 16px; }
	.mdc-specialty-detail__faq-list details p { padding: 0 2px 18px; }
}

/* ------------------------------------- specialty detail: consultation card */

/* Lifted out of the intro grid so it straddles the hero's bottom edge, as in
   the client's reference. The negative margin is absorbed by the intro's own
   top padding, so nothing below it moves. */
.mdc-specialty-detail__consult {
	margin-top: -232px;
	position: relative;
	z-index: 3;
}

.mdc-specialty-detail__consult-card {
	padding: 32px 30px 30px;
	border: 1px solid #d6e5e8;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 26px 60px rgba(10, 38, 52, .22);
}

.mdc-specialty-detail__consult-card h2 {
	margin: 0 0 22px;
	color: var(--mdc-heading);
	/* Deliberately smaller than the shared detail-page h2 scale: this is a
	   form label, not a section heading competing with the hero. */
	font-size: 22px;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
}

.mdc-specialty-detail__consult-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.mdc-specialty-detail__consult-card p {
	margin: 0 0 12px;
}

.mdc-specialty-detail__consult-row p {
	margin-bottom: 12px;
}

.mdc-specialty-detail__consult-card input {
	width: 100%;
	padding: 13px 15px;
	border: 1px solid var(--mdc-border);
	border-radius: 10px;
	background: #fff;
	color: var(--mdc-heading);
	font-family: inherit;
	font-size: 15px;
	line-height: 1.3;
	transition: border-color .2s ease, box-shadow .2s ease;
}

.mdc-specialty-detail__consult-card input::placeholder {
	color: #93a4b3;
}

.mdc-specialty-detail__consult-card input:focus {
	border-color: var(--mdc-primary);
	box-shadow: 0 0 0 3px rgba(46, 125, 156, .16);
	outline: none;
}

.mdc-specialty-detail__consult-actions {
	margin: 18px 0 0 !important;
}

.mdc-specialty-detail__consult-card button {
	width: 100%;
	padding: 15px 20px;
	border: 0;
	border-radius: 10px;
	background: var(--mdc-primary-dark);
	color: #fff;
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .2s ease, transform .2s ease;
}

.mdc-specialty-detail__consult-card button:hover {
	background: var(--mdc-primary);
	transform: translateY(-2px);
}

.mdc-specialty-detail__consult-card button:focus-visible {
	outline: 3px solid var(--mdc-kpi);
	outline-offset: 3px;
}

.mdc-specialty-detail__consult-call {
	margin: 22px 0 0;
	text-align: center;
}

.mdc-specialty-detail__consult-call span {
	display: block;
	margin-bottom: 6px;
	color: var(--mdc-muted-text);
	font-size: 14px;
}

.mdc-specialty-detail__consult-call a {
	color: var(--mdc-primary-dark);
	font-size: 19px;
	font-weight: 700;
	text-decoration: none;
}

.mdc-specialty-detail__consult-call a:hover {
	text-decoration: underline;
}

/* The headline metric joined the results band, making four cards. */
.mdc-specialty-detail__stats {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1100px) {
	.mdc-specialty-detail__stats-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 34px; }
	.mdc-specialty-detail__stat:nth-child(3) { padding-left: 0; border-left: 0; }
	.mdc-specialty-detail__procedures-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 32px; }
}

/* Below this the hero stacks, so there is no hero edge left to overlap and the
   card simply follows the copy in normal flow. */
@media (max-width: 1024px) {
	.mdc-specialty-detail__intro { grid-template-columns: minmax(0, 1fr); }
	.mdc-specialty-detail__consult { margin-top: 0; max-width: 520px; }
}

@media (max-width: 760px) {
	.mdc-specialty-detail__consult-card { padding: 26px 20px 24px; }
	.mdc-specialty-detail__consult-card h2 { font-size: 20px; }
}

/* ======================================================================
   Service detail pages (.mdc-svc-detail)
   ----------------------------------------------------------------------
   The ServiceDetailTemplate's own namespace, sharing no rules with
   `.mdc-specialty-detail`. Composition is editorial rather than grid-led:
   a wide two-column hero, alternating split panels (text against a
   supporting visual), a connected process, one substantial capability grid,
   a small revenue-cycle diagram, card-based issues, conceptual reporting
   tiles, a wide FAQ and a branded related-services block. Backgrounds
   alternate white / tint through the page rather than repeating.
   ====================================================================== */

.mdc-svc-detail {
	--svcd-shell: 1180px;
	--svcd-measure: 62ch;
	display: flex;
	flex-direction: column;
	width: auto;
	max-width: none;
	overflow-x: clip;
	color: var(--mdc-body-text);
	background: #fff;
}

.mdc-svc-icon {
	width: 100%;
	height: 100%;
}

/* ------------------------------------------------------------------ hero */

.mdc-svc-detail__hero {
	padding: 64px 40px 84px;
	background: linear-gradient(120deg, #0a2634 0%, #17546b 62%, #2e7d9c 100%);
	color: #fff;
}

.mdc-svc-detail__hero-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	gap: 56px;
	align-items: center;
	width: min(var(--svcd-shell), 100%);
	margin-inline: auto;
}

.mdc-svc-detail__crumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-bottom: 22px;
	font-size: 14px;
}

.mdc-svc-detail__crumbs a {
	color: rgba(255, 255, 255, .78);
	text-decoration: none;
}

.mdc-svc-detail__crumbs a:hover { color: #fff; text-decoration: underline; }
.mdc-svc-detail__crumbs span { color: rgba(255, 255, 255, .55); }
.mdc-svc-detail__crumbs [aria-current] { color: #fff; }

.mdc-svc-detail__eyebrow {
	margin: 0 0 16px;
	color: var(--mdc-kpi);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.mdc-svc-detail__hero h1 {
	max-width: 15ch;
	margin: 0;
	color: #fff;
	font-size: clamp(34px, 3.8vw, 46px);
	font-weight: 700;
	line-height: 1.15;
}

.mdc-svc-detail__hero-lead {
	max-width: 56ch;
	margin: 20px 0 0;
	color: rgba(255, 255, 255, .88);
	font-size: 18px;
	line-height: 1.75;
}

.mdc-svc-detail__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 30px;
	margin-top: 34px;
}

.mdc-svc-detail__button {
	display: inline-block;
	padding: 16px 32px;
	border: 2px solid var(--mdc-kpi);
	border-radius: var(--mdc-radius-pill);
	background: var(--mdc-kpi);
	color: #17223b;
	font-size: 15.5px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease, transform .2s ease;
}

.mdc-svc-detail__button:hover {
	background: transparent;
	color: var(--mdc-kpi);
	transform: translateY(-2px);
}

.mdc-svc-detail__call {
	color: #fff;
	font-size: 17px;
	font-weight: 700;
	text-decoration: none;
}

.mdc-svc-detail__call span {
	display: block;
	color: rgba(255, 255, 255, .7);
	font-size: 13px;
	font-weight: 500;
}

.mdc-svc-detail__call:hover { text-decoration: underline; }

/* Three capability titles reused as a quick trust row under the hero CTAs. */
.mdc-svc-detail__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 30px;
	margin: 30px 0 0;
	padding: 22px 0 0;
	border-top: 1px solid rgba(255, 255, 255, .18);
	list-style: none;
}

.mdc-svc-detail__trust li {
	display: flex;
	align-items: center;
	gap: 9px;
	color: rgba(255, 255, 255, .92);
	font-size: 14.5px;
	font-weight: 600;
}

.mdc-svc-detail__trust .mdc-svc-icon {
	width: 18px;
	height: 18px;
	color: var(--mdc-kpi);
}

.mdc-svc-detail__hero-media {
	position: relative;
}

.mdc-svc-detail__hero-media img {
	display: block;
	width: 100%;
	height: 460px;
	object-fit: cover;
	border-radius: 24px;
	box-shadow: 0 30px 60px rgba(0, 0, 0, .32);
}

/* Floating badge, anchored over the photo's bottom-left corner so the image
   reads as a full visual element rather than a small inset thumbnail. */
.mdc-svc-detail__hero-badge {
	position: absolute;
	left: 22px;
	bottom: 22px;
	right: 22px;
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 16px 20px;
	border-radius: 16px;
	background: rgba(10, 38, 52, .82);
	backdrop-filter: blur(6px);
	color: #fff;
	font-size: 14.5px;
	font-weight: 600;
}

.mdc-svc-detail__hero-badge .mdc-svc-icon {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	color: var(--mdc-kpi);
}

/* --------------------------------------------------------------- blocks */

.mdc-svc-detail__block {
	width: 100%;
	padding-block: 88px;
	padding-inline: max(40px, calc((100% - var(--svcd-shell)) / 2));
}

.mdc-svc-detail__block--tint {
	background: var(--mdc-primary-tint);
}

.mdc-svc-detail__head {
	max-width: var(--svcd-measure);
	margin-bottom: 36px;
}

.mdc-svc-detail__head--center {
	max-width: 640px;
	margin-inline: auto;
	margin-bottom: 56px;
	text-align: center;
}

.mdc-svc-detail__head h2 {
	margin: 0;
	color: var(--mdc-heading);
	font-size: clamp(30px, 3vw, 40px);
	font-weight: 700;
	line-height: 1.2;
}

.mdc-svc-detail__head-intro {
	max-width: 56ch;
	margin: 14px auto 0;
	color: var(--mdc-muted-text);
	font-size: 17px;
	line-height: 1.7;
}

.mdc-svc-detail__copy p {
	max-width: var(--svcd-measure);
	margin: 0 0 24px;
	font-size: 18px;
	line-height: 1.85;
}

.mdc-svc-detail__copy p:last-child { margin-bottom: 0; }

.mdc-svc-detail__pull {
	max-width: 56ch;
	margin: 32px 0 0;
	padding: 22px 28px;
	border-left: 4px solid var(--mdc-kpi);
	border-radius: 0 14px 14px 0;
	background: var(--mdc-primary-tint);
	color: var(--mdc-heading);
	font-size: 21px;
	font-weight: 600;
	line-height: 1.5;
}

.mdc-svc-detail__block--tint .mdc-svc-detail__pull {
	background: #fff;
}

/* ------------------------------------------------------ split sections */

/* Text against a supporting panel, so no section is a narrow column of
   copy floating in an otherwise empty section. */
.mdc-svc-detail__split {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
	gap: 64px;
	align-items: start;
}

.mdc-svc-detail__split .mdc-svc-detail__head,
.mdc-svc-detail__split .mdc-svc-detail__copy p {
	max-width: 60ch;
}

.mdc-svc-detail__panel {
	padding: 32px 30px;
	border: 1px solid #dde8ea;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 18px 40px rgba(12, 46, 62, .08);
}

.mdc-svc-detail__block--tint .mdc-svc-detail__panel {
	box-shadow: 0 18px 40px rgba(12, 46, 62, .05);
}

.mdc-svc-detail__panel--warn {
	border-color: #ecd9cf;
}

.mdc-svc-detail__panel-head {
	margin: 0 0 18px;
	color: var(--mdc-heading);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
}

.mdc-svc-detail__panel ul {
	display: grid;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mdc-svc-detail__panel li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 15.5px;
	font-weight: 600;
	line-height: 1.45;
	color: var(--mdc-heading);
}

.mdc-svc-detail__panel .mdc-svc-icon {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin-top: 1px;
	color: var(--mdc-primary);
}

.mdc-svc-detail__panel--warn .mdc-svc-icon {
	color: #b8622f;
}

/* ---------------------------------------------------------------- steps */

/* Horizontal, connected row on desktop: a shared line runs behind every
   badge, threading the five steps together instead of stacking five
   disconnected cards. */
.mdc-svc-detail__steps {
	position: relative;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 22px;
	max-width: var(--svcd-shell);
	margin: 0 auto;
	padding: 0;
	list-style: none;
}

.mdc-svc-detail__steps::before {
	content: "";
	position: absolute;
	top: 34px;
	left: 8%;
	right: 8%;
	height: 2px;
	background: var(--mdc-primary-tint-strong);
	z-index: 0;
}

.mdc-svc-detail__steps li {
	position: relative;
	z-index: 1;
	padding: 0 6px;
	text-align: center;
}

.mdc-svc-detail__step-badge {
	position: relative;
	display: grid;
	place-items: center;
	width: 68px;
	height: 68px;
	margin: 0 auto 22px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid var(--mdc-primary-tint-strong);
	color: var(--mdc-primary);
	box-shadow: 0 10px 24px rgba(12, 46, 62, .1);
}

.mdc-svc-detail__step-badge .mdc-svc-icon {
	width: 26px;
	height: 26px;
}

.mdc-svc-detail__step-badge span {
	position: absolute;
	right: -6px;
	bottom: -6px;
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--mdc-kpi);
	color: #17223b;
	font-size: 12px;
	font-weight: 800;
}

.mdc-svc-detail__steps h3 {
	margin: 0 0 10px;
	color: var(--mdc-heading);
	font-size: 17.5px;
	line-height: 1.35;
}

.mdc-svc-detail__steps p {
	margin: 0;
	color: var(--mdc-body-text);
	font-size: 15px;
	line-height: 1.65;
}

/* --------------------------------------------------------- capabilities */

/* Eight substantial cards, two columns, generous internal padding — the
   single card grid on the page, reserved for something that is genuinely a
   list of discrete, equally-weighted items. */
.mdc-svc-detail__caps {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
	max-width: var(--svcd-shell);
	margin: 0 auto;
}

.mdc-svc-detail__cap {
	padding: 34px 32px;
	border: 1px solid #dde8ea;
	border-radius: 18px;
	background: #fff;
	transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.mdc-svc-detail__cap:hover {
	border-color: var(--mdc-primary);
	box-shadow: 0 20px 40px rgba(12, 46, 62, .12);
	transform: translateY(-4px);
}

.mdc-svc-detail__cap-icon {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	margin-bottom: 18px;
	border-radius: 14px;
	background: var(--mdc-primary-tint);
	color: var(--mdc-primary);
}

.mdc-svc-detail__cap-icon .mdc-svc-icon {
	width: 26px;
	height: 26px;
}

.mdc-svc-detail__cap h3 {
	margin: 0 0 10px;
	color: var(--mdc-heading);
	font-size: 19px;
	line-height: 1.3;
}

.mdc-svc-detail__cap p {
	margin: 0;
	font-size: 16px;
	line-height: 1.7;
}

/* -------------------------------------------------------- revenue cycle */

.mdc-svc-detail__flow {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.mdc-svc-detail__flow-node {
	position: relative;
	padding: 16px 20px 16px 34px;
	border-left: 2px solid #dde8ea;
	color: var(--mdc-muted-text);
	font-size: 15px;
	font-weight: 600;
}

.mdc-svc-detail__flow-node::before {
	content: "";
	position: absolute;
	left: -7px;
	top: 20px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid #dde8ea;
}

.mdc-svc-detail__flow-node:last-child { border-left-color: transparent; }

.mdc-svc-detail__flow-node.is-active {
	border-left-color: var(--mdc-primary);
	color: var(--mdc-heading);
}

.mdc-svc-detail__flow-node.is-active::before {
	background: var(--mdc-primary);
	border-color: var(--mdc-primary);
	box-shadow: 0 0 0 4px var(--mdc-primary-tint);
}

.mdc-svc-detail__flow-node.is-active span {
	position: relative;
}

.mdc-svc-detail__flow-node.is-active span::after {
	content: "this service";
	display: inline-block;
	margin-left: 10px;
	padding: 2px 9px;
	border-radius: var(--mdc-radius-pill);
	background: var(--mdc-primary-tint);
	color: var(--mdc-primary-dark);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
	vertical-align: middle;
}

/* ------------------------------------------------------------- problems */

.mdc-svc-detail__problems {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	max-width: var(--svcd-shell);
	margin: 0 auto;
}

.mdc-svc-detail__problem {
	display: flex;
	gap: 16px;
	padding: 26px 28px;
	border: 1px solid #e4d6cd;
	border-radius: 16px;
	background: #fff;
}

.mdc-svc-detail__problem-icon {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: #fbf1ea;
	color: #b8622f;
}

.mdc-svc-detail__problem-icon .mdc-svc-icon {
	width: 20px;
	height: 20px;
}

.mdc-svc-detail__problem-title {
	margin: 0 0 6px;
	color: var(--mdc-heading);
	font-size: 16.5px;
	font-weight: 700;
	line-height: 1.4;
}

.mdc-svc-detail__problem-text {
	margin: 0;
	font-size: 15px;
	line-height: 1.65;
}

/* --------------------------------------------------------------- report */

.mdc-svc-detail__report-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	align-content: start;
}

.mdc-svc-detail__report-card {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 26px 22px;
	border: 1px solid #dde8ea;
	border-radius: 16px;
	background: #fff;
}

.mdc-svc-detail__report-card span {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 12px;
	background: var(--mdc-primary-tint);
	color: var(--mdc-primary);
}

.mdc-svc-detail__report-card .mdc-svc-icon {
	width: 21px;
	height: 21px;
}

.mdc-svc-detail__report-card p {
	margin: 0;
	color: var(--mdc-heading);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
}

/* ------------------------------------------------------------------ faq */

.mdc-svc-detail__faq {
	max-width: 880px;
	margin: 0 auto;
	border-top: 1px solid #e4edef;
}

.mdc-svc-detail__faq details { border-bottom: 1px solid #e4edef; }

.mdc-svc-detail__faq summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 26px 6px;
	color: var(--mdc-heading);
	font-size: 18.5px;
	font-weight: 600;
	line-height: 1.4;
	cursor: pointer;
	list-style: none;
	transition: color .2s ease;
}

.mdc-svc-detail__faq summary::-webkit-details-marker { display: none; }

.mdc-svc-detail__faq summary:hover { color: var(--mdc-primary); }

.mdc-svc-detail__faq summary::after {
	content: "";
	flex: 0 0 auto;
	width: 11px;
	height: 11px;
	border-right: 2px solid var(--mdc-primary);
	border-bottom: 2px solid var(--mdc-primary);
	transform: rotate(45deg) translate(-2px, -2px);
	transition: transform .2s ease;
}

.mdc-svc-detail__faq details[open] summary::after {
	transform: rotate(-135deg) translate(-2px, -2px);
}

.mdc-svc-detail__faq details[open] summary { color: var(--mdc-primary-dark); }

.mdc-svc-detail__faq summary:focus-visible {
	outline: 3px solid var(--mdc-kpi);
	outline-offset: 2px;
	border-radius: 6px;
}

.mdc-svc-detail__faq details p {
	max-width: 72ch;
	margin: 0;
	padding: 0 6px 26px;
	font-size: 16.5px;
	line-height: 1.75;
}

/* -------------------------------------------------------------- related */

.mdc-svc-detail__related-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	max-width: var(--svcd-shell);
	margin: 0 auto;
}

.mdc-svc-detail__related-card {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 28px 26px;
	border: 1px solid #dde8ea;
	border-radius: 18px;
	background: #fff;
	color: inherit;
	text-decoration: none;
	transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.mdc-svc-detail__related-card:hover {
	border-color: var(--mdc-primary);
	box-shadow: 0 18px 36px rgba(12, 46, 62, .12);
	transform: translateY(-4px);
}

.mdc-svc-detail__related-name {
	color: var(--mdc-heading);
	font-size: 18px;
	font-weight: 700;
}

.mdc-svc-detail__related-desc {
	color: var(--mdc-muted-text);
	font-size: 14.5px;
	line-height: 1.6;
}

.mdc-svc-detail__related-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	margin-top: 4px;
	border-radius: 50%;
	background: var(--mdc-primary-tint);
	color: var(--mdc-primary);
	transition: background-color .2s ease, color .2s ease, transform .2s ease;
}

.mdc-svc-detail__related-arrow .mdc-svc-icon {
	width: 16px;
	height: 16px;
}

.mdc-svc-detail__related-card:hover .mdc-svc-detail__related-arrow {
	background: var(--mdc-primary);
	color: #fff;
	transform: translateX(3px);
}

/* ------------------------------------------------------------------ cta */

.mdc-svc-detail__cta {
	padding: 0 40px 104px;
}

.mdc-svc-detail__cta-inner {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	width: min(var(--svcd-shell), 100%);
	margin-inline: auto;
	padding: 70px 48px;
	border-radius: var(--mdc-radius-card);
	background: linear-gradient(120deg, #0a2634 0%, #17546b 62%, #2e7d9c 100%);
	color: #fff;
	text-align: center;
}

/* A restrained dotted pattern, drawn with a radial-gradient rather than an
   image asset, so the panel does not read as an empty gradient rectangle. */
.mdc-svc-detail__cta-inner::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: radial-gradient(rgba(255, 255, 255, .16) 1.5px, transparent 1.5px);
	background-size: 22px 22px;
	background-position: -10px -10px;
	mask-image: radial-gradient(ellipse at 85% 20%, #000 0%, transparent 62%);
}

.mdc-svc-detail__cta-inner .mdc-svc-detail__eyebrow {
	color: var(--mdc-kpi);
}

.mdc-svc-detail__cta-inner h2 {
	max-width: 26ch;
	margin: 0 auto;
	color: #fff;
	font-size: clamp(28px, 2.8vw, 38px);
	font-weight: 700;
	line-height: 1.2;
}

.mdc-svc-detail__cta-inner p {
	max-width: 60ch;
	margin: 18px auto 0;
	color: rgba(255, 255, 255, .86);
	font-size: 17.5px;
	line-height: 1.7;
}

.mdc-svc-detail__cta-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
	margin-top: 34px !important;
}

.mdc-svc-detail__button--ghost {
	border-color: rgba(255, 255, 255, .6);
	background: transparent;
	color: #fff;
}

.mdc-svc-detail__button--ghost:hover {
	background: #fff;
	border-color: #fff;
	color: var(--mdc-heading);
}

.mdc-svc-detail__button:focus-visible,
.mdc-svc-detail__call:focus-visible,
.mdc-svc-detail__related-card:focus-visible {
	outline: 3px solid var(--mdc-kpi);
	outline-offset: 3px;
}

/* ----------------------------------------------------------- responsive */

@media (max-width: 1180px) {
	.mdc-svc-detail__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 44px; }
	.mdc-svc-detail__steps::before { display: none; }
	.mdc-svc-detail__caps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mdc-svc-detail__problems { grid-template-columns: 1fr; }
	.mdc-svc-detail__related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
	.mdc-svc-detail__hero-media img { height: 380px; }
	.mdc-svc-detail__block { padding-block: 68px; }
	.mdc-svc-detail__split { grid-template-columns: minmax(0, 1fr); gap: 36px; }
	.mdc-svc-detail__panel { position: static; }
	.mdc-svc-detail__report-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.mdc-svc-detail__flow { flex-direction: row; flex-wrap: wrap; gap: 10px 0; }
	.mdc-svc-detail__flow-node { flex: 1 1 auto; border-left: 0; border-top: 2px solid #dde8ea; padding: 14px 10px 0; text-align: center; }
	.mdc-svc-detail__flow-node::before { left: 50%; top: -7px; transform: translateX(-50%); }
	.mdc-svc-detail__flow-node.is-active { border-top-color: var(--mdc-primary); }
	.mdc-svc-detail__flow-node.is-active span::after { display: block; margin: 6px auto 0; width: fit-content; }
}

@media (max-width: 860px) {
	.mdc-svc-detail__hero-inner { grid-template-columns: minmax(0, 1fr); gap: 36px; }
	.mdc-svc-detail__hero h1 { max-width: none; }
	.mdc-svc-detail__hero-media { order: -1; }
	.mdc-svc-detail__hero-media img { height: 280px; }
	.mdc-svc-detail__hero-badge { position: static; margin-top: 14px; }
	.mdc-svc-detail__caps { grid-template-columns: 1fr; }
	.mdc-svc-detail__report-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mdc-svc-detail__related-grid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
	.mdc-svc-detail__steps { grid-template-columns: 1fr; row-gap: 0; }
	/* Three children (badge, h3, p) in a 2-column grid: without an explicit
	   row-span the badge only occupies row 1, so auto-placement wraps the
	   paragraph back into its 68px column instead of beside it. */
	.mdc-svc-detail__steps li { display: grid; grid-template-columns: 68px minmax(0, 1fr); grid-template-rows: auto auto; gap: 4px 20px; text-align: left; padding: 0 0 34px; }
	.mdc-svc-detail__steps li:last-child { padding-bottom: 0; }
	.mdc-svc-detail__steps .mdc-svc-detail__step-badge { grid-row: 1 / 3; }
	/* A vertical connecting line replaces the horizontal one, running behind
	   each badge down the left edge of the timeline. */
	.mdc-svc-detail__steps { position: relative; }
	.mdc-svc-detail__steps::before { top: 34px; bottom: 34px; left: 34px; right: auto; width: 2px; height: auto; }
	.mdc-svc-detail__step-badge { margin: 0; }
}

@media (max-width: 600px) {
	.mdc-svc-detail__hero { padding: 40px 20px 56px; }
	.mdc-svc-detail__block { padding-block: 56px; padding-inline: 20px; }
	.mdc-svc-detail__cta { padding: 0 20px 64px; }
	.mdc-svc-detail__cta-inner { padding: 44px 26px; }
	.mdc-svc-detail__head--center { margin-bottom: 40px; }
	.mdc-svc-detail__hero-lead,
	.mdc-svc-detail__copy p,
	.mdc-svc-detail__steps p,
	.mdc-svc-detail__problem-text,
	.mdc-svc-detail__faq details p { font-size: 16.5px; line-height: 1.75; }
	.mdc-svc-detail__pull { padding: 18px 20px; font-size: 18.5px; }
	.mdc-svc-detail__trust { flex-direction: column; gap: 12px; }
	.mdc-svc-detail__actions { gap: 16px; }
	.mdc-svc-detail__button { width: 100%; text-align: center; }
	.mdc-svc-detail__cta-actions .mdc-svc-detail__button { width: 100%; }
	.mdc-svc-detail__report-grid { grid-template-columns: 1fr; }
}

/* Final archive overrides: these follow the legacy blog rules so the
   listing remains image-first and never inherits the old title treatment. */
.mdc-blog-archive .mdc-blog-hero { min-height: 0 !important; height: auto !important; margin: 0 !important; padding: 54px 24px 46px !important; border-radius: 0 0 28px 28px !important; }
.mdc-blog-archive .mdc-blog-content { width: min(1300px, calc(100% - 40px)) !important; max-width: 1300px !important; margin: 0 auto !important; padding: 64px 0 72px !important; }
.mdc-blog-archive .mdc-post-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 28px !important; margin: 0 !important; }
.mdc-blog-archive .mdc-post-card { display: flex !important; flex-direction: column !important; min-width: 0 !important; min-height: 100% !important; padding: 0 0 26px !important; border: 1px solid #d7e5e9 !important; border-radius: 18px !important; overflow: hidden !important; box-shadow: 0 10px 28px rgba(15,53,71,.07) !important; transition: transform .25s ease, box-shadow .25s ease !important; }
.mdc-blog-archive .mdc-post-card:hover, .mdc-blog-archive .mdc-post-card:focus-within { transform: translateY(-5px) !important; box-shadow: 0 18px 38px rgba(15,53,71,.14) !important; }
.mdc-blog-archive .mdc-post-card .wp-block-post-featured-image { width: 100% !important; height: auto !important; aspect-ratio: 1.6 !important; margin: 0 !important; border-radius: 0 !important; overflow: hidden !important; }
.mdc-blog-archive .mdc-post-card .wp-block-post-featured-image img { display: block !important; width: 180% !important; max-width: none !important; height: 100% !important; min-height: 0 !important; margin-left: -80% !important; object-fit: cover !important; object-position: right center !important; transform: none !important; transition: transform .45s ease !important; }
.mdc-blog-archive .mdc-post-card:hover .wp-block-post-featured-image img, .mdc-blog-archive .mdc-post-card:focus-within .wp-block-post-featured-image img { transform: scale(1.04) !important; }
.mdc-blog-archive .mdc-post-card__category, .mdc-blog-archive .mdc-post-card__meta, .mdc-blog-archive .mdc-post-card .wp-block-post-title, .mdc-blog-archive .mdc-post-card .wp-block-post-excerpt, .mdc-blog-archive .mdc-post-card__more { margin-left: 26px !important; margin-right: 26px !important; padding-inline: 0 !important; }
.mdc-blog-archive .mdc-post-card__category { margin-top: 24px !important; }
.mdc-blog-archive .mdc-post-card__meta { margin-top: 10px !important; }
.mdc-blog-archive .mdc-post-card .wp-block-post-title { margin-top: 14px !important; }
.mdc-blog-archive .mdc-post-card .wp-block-post-excerpt { margin-top: 10px !important; }
.mdc-blog-archive .mdc-post-card__more { margin-top: auto !important; padding-top: 20px !important; }
@media (max-width: 900px) { .mdc-blog-archive .mdc-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 600px) { .mdc-blog-archive .mdc-blog-hero { padding: 42px 20px 36px !important; } .mdc-blog-archive .mdc-blog-content { width: calc(100% - 32px) !important; max-width: 520px !important; padding: 40px 0 52px !important; } .mdc-blog-archive .mdc-post-grid { grid-template-columns: 1fr !important; gap: 22px !important; } .mdc-blog-archive .mdc-post-card .wp-block-post-featured-image img { width: 100% !important; margin-left: 0 !important; transform: scale(1.08) !important; } }

/* ======================================================================
   Home — Specialty Focus (.mdc-spechome)
   ----------------------------------------------------------------------
   The homepage's preview of /medical-billing-specialties/: four sample
   cards over a dark band that carries the count and the way through to
   the full list. Deliberately quieter than the specialties page grid —
   flat-bordered cards, no flip, no reveal delays — so it reads as a
   signpost between Services and the video section rather than a second
   attempt at the same content.
   ====================================================================== */

.mdc-spechome__eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 14px;
	font-weight: 600;
	color: var(--mdc-accent-dark);
	margin-bottom: 12px;
}

.mdc-spechome__title {
	max-width: 20ch;
	margin: 0;
}

.mdc-spechome__lede {
	max-width: 52ch;
	margin: 16px 0 0;
	color: var(--mdc-body-text);
}

.mdc-spechome__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	margin-top: 44px;
}

.mdc-spechome__card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	height: 100%;
	padding: 26px 24px 24px;
	border: 1px solid var(--mdc-border);
	border-radius: var(--mdc-radius-card);
	background: var(--mdc-surface);
	transition: transform var(--mdc-transition), box-shadow var(--mdc-transition), border-color var(--mdc-transition);
}

.mdc-spechome__card:hover,
.mdc-spechome__card:focus-within {
	transform: translateY(-4px);
	border-color: var(--mdc-primary-tint-strong);
	box-shadow: var(--mdc-shadow-card);
}

.mdc-spechome__icon {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border-radius: var(--mdc-radius-md);
	background: var(--mdc-accent-tint);
	color: var(--mdc-accent-dark);
}

.mdc-spechome__icon .mdc-specialty-icon {
	width: 22px;
	height: 22px;
}

.mdc-spechome__card-title {
	margin: 22px 0 0;
	font-size: 21px;
	line-height: 1.3;
	color: var(--mdc-heading);
}

.mdc-spechome__card-text {
	margin: 10px 0 0;
	font-size: 16px;
	line-height: 1.55;
	color: var(--mdc-body-text);
}

/* `auto` top margin pins the link to the bottom so the four links share a
   baseline even when the descriptions run to different line counts. */
.mdc-spechome__card-link {
	margin: auto 0 0;
	padding-top: 22px;
	font-size: 15px;
	font-weight: 600;
}

.mdc-spechome__card-link a {
	color: var(--mdc-primary-dark);
	text-decoration: none;
}

.mdc-spechome__card-link a:hover,
.mdc-spechome__card-link a:focus-visible {
	text-decoration: underline;
}

/* ------------------------------------------------------------ dark band */

.mdc-spechome__band {
	display: flex;
	flex-wrap: wrap;
	gap: 24px 32px;
	align-items: center;
	justify-content: space-between;
	margin-top: 32px;
	padding: 34px 40px;
	border-radius: var(--mdc-radius-card);
	background: var(--mdc-heading);
}

.mdc-spechome__band-copy {
	min-width: 0;
}

.mdc-spechome__band-title {
	margin: 0;
	font-size: 22px;
	line-height: 1.3;
	color: #fff;
}

.mdc-spechome__band-text {
	margin: 8px 0 0;
	font-size: 16px;
	color: rgba(255, 255, 255, 0.78);
}

.mdc-spechome__band-cta .wp-block-button__link {
	padding: 15px 30px;
	border-radius: var(--mdc-radius-md);
	background: var(--mdc-kpi-deep);
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	transition: background var(--mdc-transition);
}

.mdc-spechome__band-cta .wp-block-button__link:hover,
.mdc-spechome__band-cta .wp-block-button__link:focus-visible {
	background: var(--mdc-kpi);
	color: var(--mdc-heading);
}

/* ---------------------------------------------------------- responsive */

@media (max-width: 1024px) {
	.mdc-spechome__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.mdc-spechome__title {
		max-width: none;
	}
}

@media (max-width: 767px) {
	.mdc-spechome__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 18px;
		margin-top: 32px;
	}

	.mdc-spechome__band {
		flex-direction: column;
		align-items: flex-start;
		padding: 28px 24px;
	}

	.mdc-spechome__band-cta {
		width: 100%;
	}

	.mdc-spechome__band-cta .wp-block-button,
	.mdc-spechome__band-cta .wp-block-button__link {
		width: 100%;
		text-align: center;
	}
}

/* ======================================================================
   Case study detail pages (.mdc-csd)
   ----------------------------------------------------------------------
   One narrow editorial column, not the card grid the index page uses:
   a reader arriving here has already chosen a story, so the page's job
   is to carry them down it. The chart is CSS-only — bar heights come
   from an inline height percentage the renderer calculates — so a detail
   page costs no JavaScript and no charting library.
   ====================================================================== */

.mdc-csd {
	--csd-shell: 1040px;
	width: min(var(--csd-shell), calc(100% - 40px));
	margin: 0 auto;
	padding: 56px 0 96px;
	color: var(--mdc-body-text);
}

/* ------------------------------------------------------------- masthead */

.mdc-csd__crumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 14px;
	color: var(--mdc-muted-text);
}

.mdc-csd__crumbs a {
	color: var(--mdc-muted-text);
	text-decoration: none;
}

.mdc-csd__crumbs a:hover,
.mdc-csd__crumbs a:focus-visible {
	color: var(--mdc-primary-dark);
	text-decoration: underline;
}

.mdc-csd__eyebrow {
	margin: 14px 0 0;
	color: var(--mdc-accent-dark);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.mdc-csd__title {
	max-width: 22ch;
	margin: 10px 0 0;
	font-size: clamp(32px, 4vw, 46px);
	line-height: 1.14;
	color: var(--mdc-heading);
}

.mdc-csd__lead {
	max-width: 62ch;
	margin: 18px 0 0;
	font-size: 18px;
	line-height: 1.62;
}

/* ------------------------------------------------------------ fact bar */

.mdc-csd__facts {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	margin: 34px 0 0;
	padding: 22px 0;
	border-top: 1px solid var(--mdc-border);
	border-bottom: 1px solid var(--mdc-border);
}

.mdc-csd__fact dt {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--mdc-muted-text);
}

.mdc-csd__fact dd {
	margin: 7px 0 0;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--mdc-heading);
}

/* ---------------------------------------------------------------- chart */

.mdc-csd__chart {
	margin: 40px 0 0;
	padding: 30px 32px 26px;
	border: 1px solid var(--mdc-border);
	border-radius: var(--mdc-radius-card);
	background: var(--mdc-surface-alt);
}

.mdc-csd__chart-head {
	display: block;
	margin-bottom: 26px;
}

.mdc-csd__chart-title {
	display: block;
	font-size: 19px;
	font-weight: 700;
	color: var(--mdc-heading);
}

.mdc-csd__chart-note {
	display: block;
	max-width: 60ch;
	margin-top: 5px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--mdc-muted-text);
}

/* Bars share one row and each sizes its own fill, so the plot needs a
   fixed height for the percentages to resolve against. */
.mdc-csd__plot {
	display: grid;
	grid-auto-columns: minmax(0, 1fr);
	grid-auto-flow: column;
	gap: 16px;
	height: 240px;
	align-items: end;
}

.mdc-csd__bar {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	height: 100%;
	min-width: 0;
	text-align: center;
}

.mdc-csd__bar-value {
	margin-bottom: 8px;
	font-size: 14px;
	font-weight: 700;
	color: var(--mdc-heading);
}

.mdc-csd__bar-fill {
	display: block;
	border-radius: 6px 6px 0 0;
	background: var(--mdc-primary);
}

.mdc-csd__bar--before .mdc-csd__bar-fill {
	background: #cfd8dd;
}

.mdc-csd__bar-label {
	margin-top: 10px;
	font-size: 13px;
	color: var(--mdc-muted-text);
}

.mdc-csd__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	justify-content: center;
	margin: 20px 0 0;
	font-size: 13px;
	color: var(--mdc-muted-text);
}

.mdc-csd__key::before {
	display: inline-block;
	width: 10px;
	height: 10px;
	margin-right: 7px;
	border-radius: 2px;
	content: '';
}

.mdc-csd__key--before::before { background: #cfd8dd; }
.mdc-csd__key--after::before { background: var(--mdc-primary); }

/* --------------------------------------------------- challenge/approach */

.mdc-csd__split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
	margin-top: 34px;
}

.mdc-csd__panel {
	padding: 26px 28px;
	border: 1px solid var(--mdc-border);
	border-radius: var(--mdc-radius-card);
	background: var(--mdc-surface);
}

/* A 3px edge is the whole colour cue: the challenge panel is warm, the
   approach panel is brand green, so the pair reads as problem/answer at a
   glance without tinting two large surfaces. */
.mdc-csd__panel--challenge { border-left: 3px solid #B4483C; }
.mdc-csd__panel--approach { border-left: 3px solid var(--mdc-accent-dark); }

.mdc-csd__panel h2 {
	margin: 0 0 12px;
	font-size: 19px;
}

.mdc-csd__panel--challenge h2 { color: #B4483C; }
.mdc-csd__panel--approach h2 { color: var(--mdc-accent-dark); }

.mdc-csd__panel p {
	margin: 0;
	line-height: 1.62;
}

/* -------------------------------------------------------- metric tiles */

.mdc-csd__metrics {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	margin-top: 22px;
}

.mdc-csd__metric {
	padding: 24px 22px;
	border-radius: var(--mdc-radius-md);
	background: var(--mdc-heading);
	color: #fff;
}

.mdc-csd__metric b {
	display: block;
	font-size: 26px;
	line-height: 1.2;
	letter-spacing: -0.01em;
}

.mdc-csd__metric span {
	display: block;
	margin-top: 8px;
	font-size: 14px;
	color: rgba(255, 255, 255, 0.75);
}

/* ------------------------------------------------------------- timeline */

.mdc-csd__timeline-wrap {
	margin-top: 56px;
}

.mdc-csd__timeline-wrap h2 {
	margin: 0 0 28px;
	font-size: 26px;
	color: var(--mdc-heading);
}

.mdc-csd__timeline {
	margin: 0;
	padding: 0 0 0 30px;
	list-style: none;
	/* The connecting rule is a border on the list, so it spans exactly the
	   steps present rather than a hard-coded height. */
	border-left: 2px solid var(--mdc-primary-tint-strong);
}

.mdc-csd__step {
	position: relative;
	padding-bottom: 30px;
}

.mdc-csd__step:last-child {
	padding-bottom: 0;
}

.mdc-csd__step::before {
	position: absolute;
	top: 5px;
	left: -37px;
	width: 12px;
	height: 12px;
	border: 2px solid var(--mdc-surface);
	border-radius: 50%;
	background: var(--mdc-primary);
	content: '';
}

.mdc-csd__step-when {
	display: block;
	font-size: 13px;
	color: var(--mdc-muted-text);
}

.mdc-csd__step-what {
	display: block;
	margin-top: 4px;
	font-size: 17px;
	color: var(--mdc-heading);
}

.mdc-csd__step-detail {
	display: block;
	max-width: 70ch;
	margin-top: 6px;
	line-height: 1.6;
}

/* ---------------------------------------------------------------- quote */

.mdc-csd__quote {
	margin: 48px 0 0;
	padding: 34px 38px;
	border-radius: var(--mdc-radius-card);
	background: var(--mdc-primary-tint);
}

.mdc-csd__quote blockquote {
	margin: 0;
	padding: 0;
	border: 0;
}

.mdc-csd__quote p {
	margin: 0;
	font-size: 21px;
	line-height: 1.5;
	color: var(--mdc-heading);
}

.mdc-csd__quote p::before { content: '\201C'; }
.mdc-csd__quote p::after { content: '\201D'; }

.mdc-csd__quote figcaption {
	margin-top: 16px;
	font-size: 14px;
	color: var(--mdc-muted-text);
}

.mdc-csd__quote figcaption::before {
	margin-right: 6px;
	content: '\2014';
}

/* ----------------------------------------------------------- disclosure */

.mdc-csd__disclosure {
	max-width: 78ch;
	margin: 26px 0 0;
	padding-left: 14px;
	border-left: 3px solid var(--mdc-kpi);
	font-size: 14px;
	line-height: 1.6;
	color: var(--mdc-muted-text);
}

/* -------------------------------------------------------------- related */

.mdc-csd__related {
	margin-top: 62px;
}

.mdc-csd__related h2 {
	margin: 0 0 20px;
	font-size: 24px;
	color: var(--mdc-heading);
}

.mdc-csd__related-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.mdc-csd__related-card {
	display: block;
	padding: 22px 22px 24px;
	border: 1px solid var(--mdc-border);
	border-radius: var(--mdc-radius-md);
	background: var(--mdc-surface);
	text-decoration: none;
	transition: transform var(--mdc-transition), box-shadow var(--mdc-transition), border-color var(--mdc-transition);
}

.mdc-csd__related-card:hover,
.mdc-csd__related-card:focus-visible {
	transform: translateY(-3px);
	border-color: var(--mdc-primary-tint-strong);
	box-shadow: var(--mdc-shadow-card);
}

.mdc-csd__related-tag {
	display: block;
	color: var(--mdc-accent-dark);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.mdc-csd__related-name {
	display: block;
	margin-top: 9px;
	font-size: 17px;
	line-height: 1.35;
	color: var(--mdc-heading);
}

/* ------------------------------------------------------------------ cta */

.mdc-csd__cta {
	margin-top: 56px;
	padding: 48px 40px;
	border-radius: var(--mdc-radius-card);
	background: var(--mdc-heading);
	text-align: center;
}

.mdc-csd__cta h2 {
	margin: 0;
	font-size: clamp(24px, 2.6vw, 30px);
	color: #fff;
}

.mdc-csd__cta p {
	max-width: 54ch;
	margin: 12px auto 0;
	color: rgba(255, 255, 255, 0.78);
	line-height: 1.6;
}

.mdc-csd__cta-button {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	margin-top: 26px;
	padding: 15px 30px;
	border-radius: var(--mdc-radius-pill);
	background: var(--mdc-kpi);
	color: var(--mdc-heading);
	font-weight: 700;
	text-decoration: none;
	transition: background var(--mdc-transition), transform var(--mdc-transition);
}

.mdc-csd__cta-button:hover,
.mdc-csd__cta-button:focus-visible {
	transform: translateY(-2px);
	background: #fff;
}

/* ---------------------------------------------------------- responsive */

@media (max-width: 1024px) {
	.mdc-csd__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mdc-csd__metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mdc-csd__related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mdc-csd__title { max-width: none; }
}

@media (max-width: 767px) {
	.mdc-csd { padding: 34px 0 68px; }
	.mdc-csd__facts { grid-template-columns: 1fr; gap: 16px; }
	.mdc-csd__split { grid-template-columns: 1fr; }
	.mdc-csd__related-grid { grid-template-columns: 1fr; }
	.mdc-csd__chart { padding: 24px 18px 20px; }
	/* Month labels collide below roughly 380px of plot width, so the plot
	   scrolls sideways rather than shrinking the bars into slivers. Only the
	   plot scrolls — the title and legend stay put. */
	.mdc-csd__plot-scroll { overflow-x: auto; }
	.mdc-csd__plot { height: 200px; min-width: 380px; }
	.mdc-csd__quote { padding: 26px 22px; }
	.mdc-csd__quote p { font-size: 18px; }
	.mdc-csd__cta { padding: 36px 22px; }
}

/* Case study cards link through to their detail page. The headline is the
   link; `::after` stretches its hit area over the whole card so the tag,
   copy and result pills are all clickable, while `__more` stays visible as
   the affordance that says the card goes somewhere. */
.mdc-case-study__link { color: inherit; text-decoration: none; }
.mdc-case-study__link::after { position: absolute; inset: 0; border-radius: 20px; content: ''; }
.mdc-case-study:hover { transform: translateY(-4px); box-shadow: 0 16px 30px rgba(12,46,62,.12); }
.mdc-case-study { transition: transform .25s, box-shadow .25s; }
.mdc-case-study:hover .mdc-case-study__link { color: var(--mdc-primary-dark); }
.mdc-case-study__link:focus-visible::after { outline: 3px solid var(--mdc-focus); outline-offset: 3px; }
.mdc-case-study__more { margin: 18px 0 0; font-size: 14px; font-weight: 700; }
.mdc-case-study__more a { color: var(--mdc-primary-dark); text-decoration: none; }
.mdc-case-study:hover .mdc-case-study__more a { text-decoration: underline; }

/* Featured blog story: a shallow horizontal card with the copy in its own
   light panel, rather than text baked into or overlaid on the image. */
.mdc-blog-archive .mdc-blog-featured {
	display: grid !important;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) !important;
	align-items: stretch !important;
	gap: 0 !important;
	width: min(1120px, 100%) !important;
	height: 330px !important;
	min-height: 0 !important;
	margin: 0 auto 48px !important;
	padding: 0 !important;
	border: 1px solid #e1e9ed !important;
	border-radius: 10px !important;
	background: #f2f6f8 !important;
	overflow: hidden !important;
	box-shadow: 0 4px 16px rgba(15, 53, 71, .04) !important;
}

.mdc-blog-archive .mdc-blog-featured__media {
	grid-column: 1 !important;
	grid-row: 1 !important;
	height: 100% !important;
	min-height: 0 !important;
	aspect-ratio: auto !important;
	border-radius: 0 !important;
}

.mdc-blog-archive .mdc-blog-featured__media img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center !important;
}

.mdc-blog-archive .mdc-blog-featured__body {
	grid-column: 2 !important;
	grid-row: 1 !important;
	position: relative !important;
	z-index: 2 !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	min-width: 0 !important;
	padding: 26px 30px !important;
	background: #f2f6f8 !important;
	color: var(--mdc-body-text) !important;
	opacity: 1 !important;
	visibility: visible !important;
}

.mdc-blog-archive .mdc-blog-featured__category { margin: 0 0 8px !important; }
.mdc-blog-archive .mdc-blog-featured__category,
.mdc-blog-archive .mdc-blog-featured__excerpt,
.mdc-blog-archive .mdc-blog-featured__meta { color: var(--mdc-body-text) !important; }
.mdc-blog-archive .mdc-blog-featured__title { font-size: clamp(20px, 2vw, 28px) !important; color: var(--mdc-heading) !important; }
.mdc-blog-archive .mdc-blog-featured__title a { color: var(--mdc-heading) !important; }
.mdc-blog-archive .mdc-blog-featured__excerpt { margin-top: 10px !important; font-size: 14px !important; line-height: 1.45 !important; }
.mdc-blog-archive .mdc-blog-featured__meta { margin-top: 14px !important; font-size: 12px !important; }

@media (max-width: 900px) {
	.mdc-blog-archive .mdc-blog-featured { grid-template-columns: 1fr !important; width: 100% !important; height: auto !important; }
	.mdc-blog-archive .mdc-blog-featured__media { height: 230px !important; min-height: 0 !important; }
}

/* ======================================================================
   Tinted card sections — specialties "Popular" + services directory
   ----------------------------------------------------------------------
   Both grids were white cards on a white page, separated only by a
   hairline border, so the cards read as floating text rather than as
   objects and the section had no edge of its own. A soft brand-tinted
   ground plus a real shadow gives the cards something to sit on. The
   gradient settles toward white at the bottom so the tint never lands as
   a hard band against whatever section follows.
   ====================================================================== */

.page-medical-billing-specialties .mdc-spec-popular,
.page-services .mdc-services-directory {
	position: relative;
	background: linear-gradient(180deg, #EDF4F7 0%, #F5F9FB 62%, #FCFDFE 100%);
}

/* A single wide, very low-opacity brand wash keeps the ground from reading
   as flat grey without introducing a second colour. */
.page-medical-billing-specialties .mdc-spec-popular::before,
.page-services .mdc-services-directory::before {
	position: absolute;
	inset: 0;
	background: radial-gradient(120% 70% at 50% 0%, rgba(46, 125, 156, 0.07) 0%, rgba(46, 125, 156, 0) 70%);
	pointer-events: none;
	content: '';
}

/* Keep the grids above the wash. */
.page-medical-billing-specialties .mdc-spec-popular > *,
.page-services .mdc-services-directory > * {
	position: relative;
	z-index: 1;
}

.page-medical-billing-specialties .mdc-spec-popular__item a,
.page-services .mdc-services-card > a {
	border-color: #DCE8EC;
	box-shadow: 0 2px 4px rgba(12, 46, 62, 0.04), 0 12px 26px rgba(12, 46, 62, 0.07);
}

.page-medical-billing-specialties .mdc-spec-popular__item a:hover,
.page-medical-billing-specialties .mdc-spec-popular__item a:focus-visible,
.page-services .mdc-services-card > a:hover,
.page-services .mdc-services-card > a:focus-visible {
	transform: translateY(-4px);
	box-shadow: 0 4px 8px rgba(12, 46, 62, 0.05), 0 22px 42px rgba(12, 46, 62, 0.14);
}

/* ======================================================================
   Entrance motion — Specialty Focus + case study detail
   ----------------------------------------------------------------------
   Both sections opt into the site's existing `mdc-fade-in-up` vocabulary
   rather than defining new motion: initReveals() adds the visible state
   on intersection and bails out entirely under prefers-reduced-motion,
   so the only thing needed here is the pre-reveal resting state.
   ====================================================================== */

.mdc-scope .mdc-spechome > .mdc-eyebrow.mdc-reveal,
.mdc-scope .mdc-spechome > h2.mdc-reveal,
.mdc-scope .mdc-spechome__lede.mdc-reveal,
.mdc-scope .mdc-spechome__card.mdc-reveal,
.mdc-scope .mdc-spechome__band.mdc-reveal,
.mdc-scope .mdc-csd__head.mdc-reveal,
.mdc-scope .mdc-csd__chart.mdc-reveal,
.mdc-scope .mdc-csd__panel.mdc-reveal,
.mdc-scope .mdc-csd__metric.mdc-reveal,
.mdc-scope .mdc-csd__step.mdc-reveal,
.mdc-scope .mdc-csd__quote.mdc-reveal,
.mdc-scope .mdc-csd__related-card.mdc-reveal,
.mdc-scope .mdc-csd__cta.mdc-reveal {
	opacity: 0;
}

.mdc-scope .mdc-spechome > .mdc-eyebrow.mdc-reveal--visible,
.mdc-scope .mdc-spechome > h2.mdc-reveal--visible,
.mdc-scope .mdc-spechome__lede.mdc-reveal--visible,
.mdc-scope .mdc-spechome__card.mdc-reveal--visible,
.mdc-scope .mdc-spechome__band.mdc-reveal--visible,
.mdc-scope .mdc-csd__head.mdc-reveal--visible,
.mdc-scope .mdc-csd__chart.mdc-reveal--visible,
.mdc-scope .mdc-csd__panel.mdc-reveal--visible,
.mdc-scope .mdc-csd__metric.mdc-reveal--visible,
.mdc-scope .mdc-csd__step.mdc-reveal--visible,
.mdc-scope .mdc-csd__quote.mdc-reveal--visible,
.mdc-scope .mdc-csd__related-card.mdc-reveal--visible,
.mdc-scope .mdc-csd__cta.mdc-reveal--visible {
	opacity: 1;
}

/* Bars grow from the axis once the chart itself has revealed. The delay
   clears the card's own 1.25s fade so the two do not compete, and the
   transform is anchored to the bottom so a bar rises rather than scales
   about its middle. */
.mdc-scope .mdc-csd__chart.mdc-reveal--visible .mdc-csd__bar-fill {
	animation: mdc-csd-grow 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.25s both;
	transform-origin: bottom center;
}

.mdc-scope .mdc-csd__chart.mdc-reveal--visible .mdc-csd__bar:nth-child(2) .mdc-csd__bar-fill { animation-delay: 0.33s; }
.mdc-scope .mdc-csd__chart.mdc-reveal--visible .mdc-csd__bar:nth-child(3) .mdc-csd__bar-fill { animation-delay: 0.41s; }
.mdc-scope .mdc-csd__chart.mdc-reveal--visible .mdc-csd__bar:nth-child(4) .mdc-csd__bar-fill { animation-delay: 0.49s; }
.mdc-scope .mdc-csd__chart.mdc-reveal--visible .mdc-csd__bar:nth-child(5) .mdc-csd__bar-fill { animation-delay: 0.57s; }
.mdc-scope .mdc-csd__chart.mdc-reveal--visible .mdc-csd__bar:nth-child(6) .mdc-csd__bar-fill { animation-delay: 0.65s; }

@keyframes mdc-csd-grow {
	from { transform: scaleY(0); opacity: 0.4; }
	to { transform: scaleY(1); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
	.mdc-scope .mdc-csd__bar-fill { animation: none; }
	.mdc-spechome__card,
	.mdc-csd__related-card { transition: none; }
	.mdc-spechome__card:hover,
	.mdc-csd__related-card:hover { transform: none; }
}

/* ======================================================================
   Service detail — reference layout (.mdc-svcx)
   ----------------------------------------------------------------------
   Replaces `.mdc-svc-detail`. Follows the client's reference pages: a
   split hero with a booking panel, a dark metric band, alternating white
   and tinted blocks, and a closing call-back form. The Services route is
   outside `.mdc-scope`, so nothing here can be reached by the sitewide
   refinement rules and nothing here reaches back.
   ====================================================================== */

.mdc-svcx { --svcx-shell: 1280px; --svcx-dark: #10364A; color: var(--mdc-body-text); }

/* Managed detail singles use the reference layout as their page canvas. */
.single-revaxis_service .mdc-single__body,
.single-revaxis_specialty .mdc-single__body,
.single-revaxis_portfolio .mdc-single__body { max-width: none !important; padding: 0 !important; }
.single-revaxis_service .mdc-single__layout,
.single-revaxis_specialty .mdc-single__layout,
.single-revaxis_portfolio .mdc-single__layout { display: block !important; }
.single-revaxis_service .mdc-single__content,
.single-revaxis_specialty .mdc-single__content,
.single-revaxis_portfolio .mdc-single__content { width: 100% !important; max-width: none !important; }
.single-revaxis_service .entry-content,
.single-revaxis_specialty .entry-content,
.single-revaxis_portfolio .entry-content { max-width: none !important; margin: 0 !important; padding: 0 !important; }

/* Keep managed inner pages flush with the viewport.  The block theme's
   constrained wrapper can otherwise leave a narrow trailing gutter beside
   the full-bleed service panels. */
.single-revaxis_service .mdc-main--full,
.single-revaxis_specialty .mdc-main--full,
.single-revaxis_portfolio .mdc-main--full {
	box-sizing: border-box;
	width: 100% !important;
	max-width: none !important;
	margin-inline: 0 !important;
	padding-inline: 0 !important;
	overflow-x: clip;
}

/* About page lower sections: matches the approved reference design —
   site-wide 1180px shell, gradient icon tiles, and split CTA panel. */
.mdc-about-lower__shell,.mdc-about-lower__intro,.mdc-about-lower__feature-grid{width:min(1180px,calc(100% - 40px));margin-inline:auto}
.mdc-about-lower__intro{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;padding:90px 0 70px}
.mdc-about-lower__intro h2,.mdc-about-lower__controls h2,.mdc-about-lower__values h2{margin:0;color:var(--mdc-heading);font-size:clamp(32px,3.2vw,46px);line-height:1.15}
.mdc-about-lower__intro p{margin:22px 0 0;color:var(--mdc-body-text);font-size:17px;line-height:1.7}
.mdc-about-lower__intro-media{height:400px;border-radius:20px;overflow:hidden;background:#e9f3fb}.mdc-about-lower__intro-media img{width:100%;height:100%;object-fit:cover}
.mdc-about-lower__features{border-top:1px solid var(--mdc-border);padding:64px 0 84px}.mdc-about-lower__feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.mdc-about-lower__feature-grid h3{margin:0;color:var(--mdc-heading);font-size:21px;line-height:1.3}.mdc-about-lower__feature-grid p{margin:14px 0 0;color:var(--mdc-muted-text);font-size:15px;line-height:1.65}

/* Shared gradient icon chip used by the controls and values grids. */
.mdc-about-lower__icon,.mdc-about-lower__value-icon{display:grid;place-items:center}

.mdc-about-lower__controls{padding:88px 0;background:var(--mdc-surface-alt);text-align:center}
.mdc-about-lower__controls h2{max-width:860px;margin-inline:auto}
.mdc-about-lower__control-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:48px;text-align:left}
.mdc-about-lower__control-grid article{display:flex;flex-direction:column;min-height:150px;padding:26px;border:1px solid var(--mdc-border);border-radius:var(--mdc-radius-md);background:var(--mdc-surface)}
.mdc-about-lower__icon{width:44px;height:44px;border-radius:10px;background:var(--mdc-primary-tint);color:var(--mdc-primary)}
.mdc-about-lower__control-grid p{margin:26px 0 0;color:var(--mdc-body-text);font-size:16px;line-height:1.6}

.mdc-about-lower__values{padding:88px 0;text-align:center}
.mdc-about-lower__values-lead{max-width:760px;margin:16px auto 56px;color:var(--mdc-muted-text);font-size:16px;line-height:1.7}
.mdc-about-lower__value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:52px 40px}
.mdc-about-lower__value-head{display:flex;flex-direction:column-reverse;align-items:center}
.mdc-about-lower__value-grid h3{margin:18px 0 0;color:var(--mdc-heading);font-size:19px}
.mdc-about-lower__value-icon{width:52px;height:52px;border-radius:50%;background:var(--mdc-accent-tint);color:var(--mdc-accent)}
.mdc-about-lower__value-grid p{margin:12px 0 0;color:var(--mdc-muted-text);font-size:15px;line-height:1.7}

.mdc-about-lower__cta{width:min(1180px,calc(100% - 40px));margin:0 auto 96px;padding:44px 48px;border-radius:var(--mdc-radius-md);background:linear-gradient(100deg,var(--mdc-primary),var(--mdc-heading))}
.mdc-about-lower__cta-copy{display:flex;align-items:center;justify-content:space-between;gap:48px}
.mdc-about-lower__cta h2{max-width:620px;margin:0;color:#fff;font-size:clamp(19px,1.7vw,23px);font-weight:700;line-height:1.5}
.mdc-about-lower__cta a{flex:none;padding:15px 28px;border-radius:8px;background:var(--mdc-surface);color:var(--mdc-heading);font-size:16px;font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s}
.mdc-about-lower__cta a:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(12,46,62,.22)}

/* About page icon set: single-stroke marks, masked to the brand gradient. */
:root{
	--mdc-about-icon-claim-review: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='8' y='3' width='8' height='4' rx='1'/><path d='M16 5h2a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2'/><polyline points='9 14 11 16 15 11'/></svg>");
	--mdc-about-icon-root-cause: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><line x1='16.2' y1='16.2' x2='20.5' y2='20.5'/></svg>");
	--mdc-about-icon-aging: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><polyline points='12 6.5 12 12 15.5 14'/></svg>");
	--mdc-about-icon-timezone: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><line x1='3' y1='12' x2='21' y2='12'/><path d='M12 3c3 3.5 3 14.5 0 18M12 3c-3 3.5-3 14.5 0 18'/></svg>");
	--mdc-about-icon-compliance: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3l7 3v6c0 4.5-3 8-7 9-4-1-7-4.5-7-9V6z'/><polyline points='9 12 11.4 14.4 15.4 10.2'/></svg>");
	--mdc-about-icon-reporting: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><line x1='3' y1='20.5' x2='21' y2='20.5'/><line x1='6.5' y1='20.5' x2='6.5' y2='14'/><line x1='12' y1='20.5' x2='12' y2='9'/><line x1='17.5' y1='20.5' x2='17.5' y2='11.5'/></svg>");
	--mdc-about-icon-excellence: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='9' r='5.5'/><path d='M8.6 13.4L7 21l5-2.6L17 21l-1.6-7.6'/></svg>");
	--mdc-about-icon-integrity: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3l2.2 1.6 2.7-.2.9 2.6L20 8.6l-1 2.5 1 2.5-2.2 1.6-.9 2.6-2.7-.2L12 19l-2.2-1.4-2.7.2-.9-2.6L4 13.6l1-2.5-1-2.5 2.2-1.6.9-2.6 2.7.2z'/><polyline points='9.3 11.8 11.3 13.8 14.9 9.9'/></svg>");
	--mdc-about-icon-collaboration: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='9.5' cy='8' r='3.5'/><path d='M3 20c0-3.6 2.9-6.5 6.5-6.5S16 16.4 16 20'/><circle cx='17.6' cy='8.8' r='2.7'/><path d='M16.2 13.9c2.9.7 5 3.1 5 6.1'/></svg>");
	--mdc-about-icon-learning: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M2 9l10-4 10 4-10 4z'/><path d='M6 11.2V16c0 1.7 2.7 3 6 3s6-1.3 6-3v-4.8'/></svg>");
	--mdc-about-icon-client-centric: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M12 20.4S4.8 15.9 4.8 11a4 4 0 0 1 7.2-2.5A4 4 0 0 1 19.2 11c0 4.9-7.2 9.4-7.2 9.4z'/></svg>");
	--mdc-about-icon-innovation: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><line x1='9.2' y1='18' x2='14.8' y2='18'/><line x1='10.2' y1='21' x2='13.8' y2='21'/><path d='M12 3a6 6 0 0 0-3.6 10.8c.7.5 1.1 1.3 1.1 2.2h5c0-.9.4-1.7 1.1-2.2A6 6 0 0 0 12 3z'/></svg>");
}
.mdc-about-lower__icon::before,.mdc-about-lower__value-icon::before{content:'';display:block;background:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}
.mdc-about-lower__icon::before{width:22px;height:22px}
.mdc-about-lower__value-icon::before{width:24px;height:24px}
[data-icon='claim-review']::before{-webkit-mask-image:var(--mdc-about-icon-claim-review);mask-image:var(--mdc-about-icon-claim-review)}
[data-icon='root-cause']::before{-webkit-mask-image:var(--mdc-about-icon-root-cause);mask-image:var(--mdc-about-icon-root-cause)}
[data-icon='aging']::before{-webkit-mask-image:var(--mdc-about-icon-aging);mask-image:var(--mdc-about-icon-aging)}
[data-icon='timezone']::before{-webkit-mask-image:var(--mdc-about-icon-timezone);mask-image:var(--mdc-about-icon-timezone)}
[data-icon='compliance']::before{-webkit-mask-image:var(--mdc-about-icon-compliance);mask-image:var(--mdc-about-icon-compliance)}
[data-icon='reporting']::before{-webkit-mask-image:var(--mdc-about-icon-reporting);mask-image:var(--mdc-about-icon-reporting)}
[data-icon='excellence']::before{-webkit-mask-image:var(--mdc-about-icon-excellence);mask-image:var(--mdc-about-icon-excellence)}
[data-icon='integrity']::before{-webkit-mask-image:var(--mdc-about-icon-integrity);mask-image:var(--mdc-about-icon-integrity)}
[data-icon='collaboration']::before{-webkit-mask-image:var(--mdc-about-icon-collaboration);mask-image:var(--mdc-about-icon-collaboration)}
[data-icon='learning']::before{-webkit-mask-image:var(--mdc-about-icon-learning);mask-image:var(--mdc-about-icon-learning)}
[data-icon='client-centric']::before{-webkit-mask-image:var(--mdc-about-icon-client-centric);mask-image:var(--mdc-about-icon-client-centric)}
[data-icon='innovation']::before{-webkit-mask-image:var(--mdc-about-icon-innovation);mask-image:var(--mdc-about-icon-innovation)}

/* The page-wide `.page-about-us main h2 {46px}` rule outranks the section
   styles above, so restate the managed headings at matching specificity. */
.mdc-scope.page-about-us main .mdc-about-lower__intro h2,
.mdc-scope.page-about-us main .mdc-about-lower__controls h2,
.mdc-scope.page-about-us main .mdc-about-lower__values h2{font-size:clamp(32px,3.2vw,46px);line-height:1.15}
.mdc-scope.page-about-us main .mdc-about-lower__cta h2{font-size:clamp(19px,1.7vw,23px);line-height:1.5}

@media(max-width:1024px){.mdc-about-lower__feature-grid,.mdc-about-lower__control-grid,.mdc-about-lower__value-grid{grid-template-columns:repeat(2,1fr)}.mdc-about-lower__intro-media{height:320px}}
@media(max-width:700px){.mdc-about-lower__intro{grid-template-columns:1fr;gap:36px;padding:56px 0 44px}.mdc-about-lower__feature-grid,.mdc-about-lower__control-grid,.mdc-about-lower__value-grid{grid-template-columns:1fr}.mdc-about-lower__features{padding:44px 0 56px}.mdc-about-lower__controls{padding:64px 0}.mdc-about-lower__values{padding-bottom:64px}.mdc-about-lower__control-grid article{min-height:0}.mdc-about-lower__intro-media{height:250px}.mdc-about-lower__cta{padding:30px 26px;margin-bottom:64px}.mdc-about-lower__cta-copy{display:block}.mdc-about-lower__cta a{display:inline-block;margin-top:24px}}

.mdc-svcx__shell { width: min(var(--svcx-shell), calc(100% - 40px)); margin-inline: auto; }
.mdc-svcx__shell--narrow { max-width: 880px; }

.mdc-svcx__block { padding: 84px 0; }
.mdc-svcx__block--tint { background: var(--mdc-surface-alt); }

.mdc-svcx__head { margin-bottom: 44px; }
.mdc-svcx__head--center { max-width: 780px; margin-inline: auto; text-align: center; }
.mdc-svcx__head h2 { margin: 0; font-size: clamp(28px, 3vw, 40px); line-height: 1.18; color: var(--mdc-heading); }
.mdc-svcx__head p { margin: 14px 0 0; font-size: 17px; line-height: 1.62; }

/* ---------------------------------------------------------------- hero */

.mdc-svcx__hero { padding: 54px 0 70px; background: linear-gradient(180deg, var(--mdc-primary-tint) 0%, #F7FBFC 100%); }

.mdc-svcx__hero-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: 48px;
	align-items: start;
	width: min(var(--svcx-shell), calc(100% - 40px));
	margin-inline: auto;
}

.mdc-svcx__crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; color: var(--mdc-muted-text); }
.mdc-svcx__crumbs a { color: var(--mdc-muted-text); text-decoration: none; }
.mdc-svcx__crumbs a:hover, .mdc-svcx__crumbs a:focus-visible { color: var(--mdc-primary-dark); text-decoration: underline; }

.mdc-svcx__eyebrow { margin: 18px 0 0; color: var(--mdc-accent-dark); font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.mdc-svcx__hero-copy h1 { margin: 12px 0 0; font-size: clamp(30px, 3.8vw, 46px); line-height: 1.12; color: var(--mdc-heading); }
.mdc-svcx__lead { max-width: 58ch; margin: 18px 0 0; font-size: 17px; line-height: 1.65; }

/* `align-items: center` matters: the trust pill beside the button is taller,
   and the default `stretch` would pull the button up to match it. */
.mdc-svcx__hero-actions { display: inline-flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 28px; vertical-align: middle; }

/* The reference places its credibility cue directly under the primary hero
   action. Keep that hierarchy, but use a compact, theme-coloured treatment
   and only the review-platform artwork bundled with this theme. */
.mdc-svcx__hero-trust {
	display: inline-flex; gap: 8px; align-items: center; min-height: 48px; margin: 0; padding: 3px 14px 3px 4px;
	border: 2px solid var(--mdc-primary-dark); border-radius: 999px; color: var(--mdc-heading); font-size: 14px; font-weight: 700; line-height: 1.35;
}
.mdc-svcx__hero-trust img { display: block; width: 80px; height: 38px; object-fit: contain; }
.mdc-svcx__hero-reviews { display: block; width: min(100%, 330px); height: auto; margin-top: 18px; }

.mdc-svcx__button {
	/* `font: inherit` matters: several of these are real <button> elements
	   (the demo-modal triggers) and would otherwise fall back to the UA's
	   13px system font, wrapping their label into a two-line blob. */
	font: inherit; white-space: nowrap;
	display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 13px 26px;
	border: 1px solid transparent; border-radius: var(--mdc-radius-pill);
	background: var(--mdc-primary); color: #fff; font-weight: 700; text-decoration: none;
	transition: background var(--mdc-transition), transform var(--mdc-transition);
}
.mdc-svcx__button:hover, .mdc-svcx__button:focus-visible { transform: translateY(-2px); background: var(--mdc-primary-dark); color: #fff; }
.mdc-svcx__button--ghost { border-color: var(--mdc-primary); background: transparent; color: var(--mdc-primary-dark); }
.mdc-svcx__button--ghost:hover, .mdc-svcx__button--ghost:focus-visible { background: var(--mdc-primary); color: #fff; }
.mdc-svcx__button--light { background: #fff; color: var(--mdc-heading); }
.mdc-svcx__button--light:hover, .mdc-svcx__button--light:focus-visible { background: var(--mdc-kpi); color: var(--mdc-heading); }

.mdc-svcx__hero-points { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 26px 0 0; padding: 0; list-style: none; }
.mdc-svcx__hero-points li { display: flex; gap: 8px; align-items: center; font-size: 15px; font-weight: 600; color: var(--mdc-heading); }
.mdc-svcx__hero-points .mdc-svc-icon { width: 18px; height: 18px; color: var(--mdc-accent-dark); }

/* ---------------------------------------------------------------- form */

.mdc-svcx__form { padding: 30px 28px 32px; border: 1px solid var(--mdc-border); border-radius: var(--mdc-radius-card); background: #fff; box-shadow: var(--mdc-shadow-float); }
.mdc-svcx__form-title { margin: 0 0 20px; font-size: 23px; text-align: center; color: var(--mdc-heading); }
.mdc-svcx__form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }

.mdc-svcx__form input, .mdc-svcx__form select {
	width: 100%; min-height: 48px; margin-bottom: 12px; padding: 12px 14px;
	border: 1px solid var(--mdc-border); border-radius: var(--mdc-radius-md);
	background: var(--mdc-surface-alt); color: var(--mdc-heading); font: inherit; font-size: 15px;
}
.mdc-svcx__form input:focus-visible, .mdc-svcx__form select:focus-visible { border-color: var(--mdc-primary); outline: 3px solid var(--mdc-focus-ring); outline-offset: 1px; }

.mdc-svcx__form-submit {
	width: 100%; min-height: 50px; margin-top: 4px; padding: 14px 26px; border: 0;
	border-radius: var(--mdc-radius-pill); background: var(--mdc-primary); color: #fff;
	font: inherit; font-weight: 700; cursor: pointer; transition: background var(--mdc-transition);
}
.mdc-svcx__form-submit:hover, .mdc-svcx__form-submit:focus-visible { background: var(--mdc-primary-dark); }

/* --------------------------------------------------------- metric band */

.mdc-svcx__stats { padding: 0 20px; }
.mdc-svcx__stats-inner {
	display: grid; grid-template-columns: repeat(var(--svcx-stats, 5), minmax(0, 1fr)); gap: 20px;
	width: min(var(--svcx-shell), 100%); margin: -34px auto 0; padding: 32px 30px;
	border-radius: var(--mdc-radius-card); background: var(--svcx-dark); box-shadow: var(--mdc-shadow-float);
}
.mdc-svcx__stat { text-align: center; }
.mdc-svcx__stat-icon { display: inline-grid; place-items: center; width: 42px; height: 42px; margin-right: 8px; vertical-align: middle; color: rgba(255,255,255,.92); }
.mdc-svcx__stat-icon .mdc-svc-icon { width: 36px; height: 36px; }
.mdc-svcx__stat b { display: block; color: #fff; font-size: clamp(24px, 2.6vw, 34px); line-height: 1.1; }
.mdc-svcx__stat span { display: block; margin-top: 6px; color: rgba(255,255,255,.76); font-size: 13px; }

/* --------------------------------------------------------------- intro */

.mdc-svcx__intro { padding: 70px 0 10px; }
.mdc-svcx__intro .mdc-svcx__head { margin-bottom: 26px; }
.mdc-svcx__intro p { max-width: 78ch; margin: 0 auto 18px; font-size: 17px; line-height: 1.72; }

/* ----------------------------------------------------- capability grid */

.mdc-svcx__cards { display: grid; grid-template-columns: repeat(var(--svcx-cols, 3), minmax(0, 1fr)); gap: 22px; }

.mdc-svcx__card {
	min-width: 0; padding: 28px 26px 30px; border: 1px solid var(--mdc-border);
	border-radius: var(--mdc-radius-card); background: #fff;
	box-shadow: 0 2px 4px rgba(12,46,62,.04), 0 12px 26px rgba(12,46,62,.06);
	transition: transform var(--mdc-transition), box-shadow var(--mdc-transition), border-color var(--mdc-transition);
}
.mdc-svcx__card:hover, .mdc-svcx__card:focus-within { transform: translateY(-4px); border-color: var(--mdc-primary-tint-strong); box-shadow: 0 4px 8px rgba(12,46,62,.05), 0 22px 42px rgba(12,46,62,.13); }

.mdc-svcx__card-icon { display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: 18px; border-radius: var(--mdc-radius-md); background: var(--mdc-accent-tint); color: var(--mdc-accent-dark); }
.mdc-svcx__card-icon .mdc-svc-icon { width: 22px; height: 22px; }
.mdc-svcx__card h3 { margin: 0 0 9px; font-size: 19px; color: var(--mdc-heading); }
.mdc-svcx__card p { margin: 0; line-height: 1.6; }

/* Reference service pages use a white, centered six-card proof section
   immediately after the overlapping metric band. It has its own modifier so
   later tinted process and FAQ sections keep their distinct backgrounds. */
.mdc-svcx__block--why { padding-top: 56px; background: #fff; }
.mdc-svcx__block--why .mdc-svcx__head { max-width: 1180px; margin-bottom: 24px; }
.mdc-svcx__block--why .mdc-svcx__head h2 { max-width: 800px; margin-inline: auto; }
.mdc-svcx__block--why .mdc-svcx__head p { max-width: 1120px; margin-inline: auto; color: var(--mdc-body-text); }
.mdc-svcx__block--why .mdc-svcx__cards { gap: 20px; }
.mdc-svcx__block--why .mdc-svcx__card {
	display: flex; flex-direction: column; align-items: center; min-height: 230px;
	padding: 24px 22px 22px; border-color: var(--mdc-primary-tint-strong);
	border-left: 4px solid var(--mdc-primary); border-radius: 24px; text-align: center;
	box-shadow: 0 2px 5px rgba(12,46,62,.12);
}
.mdc-svcx__block--why .mdc-svcx__card-icon { width: 48px; height: 48px; margin-bottom: 14px; background: var(--mdc-primary); color: #fff; }
.mdc-svcx__block--why .mdc-svcx__card h3 { color: var(--mdc-primary-dark); }
.mdc-svcx__block--why .mdc-svcx__card p { font-size: 15px; line-height: 1.55; }

.mdc-svcx__block-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin: 40px 0 0; }

/* --------------------------------------------------- benefit accordion */

.mdc-svcx__why { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 40px; align-items: center; }
.mdc-svcx__why-media img { display: block; width: 100%; height: 100%; max-height: 480px; border-radius: var(--mdc-radius-card); object-fit: cover; }

.mdc-svcx__acc-item { margin-bottom: 12px; border: 1px solid var(--mdc-border); border-radius: var(--mdc-radius-md); background: #fff; overflow: hidden; }
.mdc-svcx__acc-item summary { padding: 16px 20px; color: var(--mdc-heading); font-size: 17px; font-weight: 700; cursor: pointer; list-style: none; }
.mdc-svcx__acc-item summary::-webkit-details-marker { display: none; }

/* Marker drawn rather than native, so it can flip state and inherit brand colour. */
.mdc-svcx__acc-item summary::after { float: right; margin-left: 14px; color: var(--mdc-primary); font-weight: 400; content: '+'; }
.mdc-svcx__acc-item[open] summary::after { content: '\2212'; }
.mdc-svcx__acc-item[open] { border-color: var(--mdc-primary-tint-strong); }
.mdc-svcx__acc-item summary:focus-visible { outline: 3px solid var(--mdc-focus-ring); outline-offset: -3px; }
.mdc-svcx__acc-item p { margin: 0; padding: 0 20px 18px; line-height: 1.62; }

/* ------------------------------------------------------------- process */

.mdc-svcx__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.mdc-svcx__step { position: relative; min-width: 0; padding: 28px 26px 30px; border-radius: var(--mdc-radius-card); background: var(--svcx-dark); color: rgba(255,255,255,.78); }
.mdc-svcx__step-icon { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 16px; border-radius: var(--mdc-radius-md); background: rgba(255,255,255,.1); color: #fff; }
.mdc-svcx__step-icon .mdc-svc-icon { width: 21px; height: 21px; }
.mdc-svcx__step-num { display: block; color: rgba(255,255,255,.34); font-size: 30px; line-height: 1; }
.mdc-svcx__step h3 { margin: 8px 0 9px; color: #fff; font-size: 18px; }
.mdc-svcx__step p { margin: 0; line-height: 1.6; }

/* --------------------------------------------------------- testimonials */

.mdc-svcx__quotes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.mdc-svcx__quote { display: flex; flex-direction: column; min-width: 0; margin: 0; padding: 26px 26px 28px; border: 1px solid var(--mdc-border); border-radius: var(--mdc-radius-card); background: #fff; box-shadow: 0 2px 4px rgba(12,46,62,.04), 0 12px 26px rgba(12,46,62,.06); }
.mdc-svcx__stars { margin: 0 0 12px; color: var(--mdc-kpi); font-size: 15px; letter-spacing: 2px; }
.mdc-svcx__quote blockquote { margin: 0; padding: 0; border: 0; }
.mdc-svcx__quote blockquote p { margin: 0; line-height: 1.62; }
.mdc-svcx__quote figcaption { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--mdc-border); }
.mdc-svcx__quote figcaption b { display: block; color: var(--mdc-heading); font-size: 15px; }
.mdc-svcx__quote figcaption span { display: block; margin-top: 3px; font-size: 13px; color: var(--mdc-muted-text); }

/* ------------------------------------------------------------ close CTA */

.mdc-svcx__cta { padding: 20px 20px 84px; }
.mdc-svcx__cta-inner { width: min(var(--svcx-shell), 100%); margin-inline: auto; padding: 56px 40px; border-radius: var(--mdc-radius-card); background: var(--svcx-dark); text-align: center; }
.mdc-svcx__cta-inner h2 { margin: 0; color: #fff; font-size: clamp(25px, 2.8vw, 34px); line-height: 1.2; }
.mdc-svcx__cta-inner p { max-width: 62ch; margin: 14px auto 0; color: rgba(255,255,255,.78); line-height: 1.62; }
.mdc-svcx__cta-actions { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: center; justify-content: center; margin: 28px 0 0; }
.mdc-svcx__call { color: #fff; font-weight: 700; text-decoration: none; }
.mdc-svcx__call span { display: block; font-size: 13px; font-weight: 400; color: rgba(255,255,255,.65); }
.mdc-svcx__call:hover, .mdc-svcx__call:focus-visible { color: var(--mdc-kpi); }

/* -------------------------------------------------------------- related */

.mdc-svcx__related { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.mdc-svcx__related-card { display: block; padding: 24px 24px 26px; border: 1px solid var(--mdc-border); border-radius: var(--mdc-radius-md); background: #fff; text-decoration: none; transition: transform var(--mdc-transition), box-shadow var(--mdc-transition), border-color var(--mdc-transition); }
.mdc-svcx__related-card:hover, .mdc-svcx__related-card:focus-visible { transform: translateY(-3px); border-color: var(--mdc-primary-tint-strong); box-shadow: var(--mdc-shadow-card); }
.mdc-svcx__related-name { display: block; color: var(--mdc-heading); font-size: 18px; font-weight: 700; }
.mdc-svcx__related-text { display: block; margin-top: 8px; line-height: 1.55; color: var(--mdc-body-text); }

/* ------------------------------------------------------------- callback */

.mdc-svcx__callback { padding: 0 0 84px; }
.mdc-svcx__callback-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 44px; align-items: center; width: min(var(--svcx-shell), calc(100% - 40px)); margin-inline: auto; padding: 48px 44px; border-radius: var(--mdc-radius-card); background: var(--mdc-surface-alt); }
.mdc-svcx__callback-copy h2 { margin: 0; font-size: clamp(25px, 2.8vw, 34px); color: var(--mdc-heading); }
.mdc-svcx__callback-copy p { margin: 14px 0 0; font-size: 17px; line-height: 1.62; }
.mdc-svcx__callback-form .mdc-svcx__form { box-shadow: var(--mdc-shadow-card); }

/* ----------------------------------------------------------- responsive */

@media (max-width: 1024px) {
	.mdc-svcx__hero-inner { grid-template-columns: minmax(0, 1fr); gap: 34px; }
	.mdc-svcx__cards, .mdc-svcx__steps, .mdc-svcx__quotes, .mdc-svcx__related { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mdc-svcx__why { grid-template-columns: minmax(0, 1fr); gap: 28px; }
	.mdc-svcx__why-media { order: 2; }
	.mdc-svcx__stats-inner { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 16px; }
	.mdc-svcx__callback-inner { grid-template-columns: minmax(0, 1fr); gap: 30px; padding: 38px 30px; }
	.mdc-svcx__block { padding: 64px 0; }
}

@media (max-width: 767px) {
	.mdc-svcx__hero { padding: 34px 0 56px; }
	.mdc-svcx__block { padding: 52px 0; }
	.mdc-svcx__intro { padding: 52px 0 4px; }
	.mdc-svcx__cards, .mdc-svcx__steps, .mdc-svcx__quotes, .mdc-svcx__related { grid-template-columns: minmax(0, 1fr); }
	.mdc-svcx__stats-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: -26px; padding: 26px 20px; }
	.mdc-svcx__form { padding: 24px 20px 26px; }
	.mdc-svcx__form-row { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.mdc-svcx__head { margin-bottom: 32px; }
	.mdc-svcx__cta { padding: 12px 20px 62px; }
	.mdc-svcx__cta-inner { padding: 38px 22px; }
	.mdc-svcx__callback { padding: 0 0 62px; }
	.mdc-svcx__hero-actions .mdc-svcx__button { flex: 1 1 100%; justify-content: center; }
	.mdc-svcx__hero-actions { display: flex; justify-content: center; margin-top: 38px; }
	.mdc-svcx__hero-actions .mdc-svcx__button { flex: 0 1 auto; min-width: 172px; }
	.mdc-svcx__hero-trust { display: flex; flex-direction: column; gap: 3px; width: min(100%, 270px); min-height: 58px; margin: 10px auto 0; padding: 2px 14px 4px; text-align: center; font-size: 14px; font-weight: 500; }
	.mdc-svcx__hero-trust img { width: 88px; height: 27px; margin: 0 auto -2px; }
	.mdc-svcx__hero-reviews { width: min(100%, 300px); }
}

/* ======================================================================
   Specialty detail — reference layout (.mdc-spx)
   ----------------------------------------------------------------------
   Shares the service template's shell, buttons, cards, metric band, CTA
   and call-back panel (`.mdc-svcx__*`) so the two inner-page types stay
   visually identical where the reference shows them identical. Only the
   sections unique to the specialty layout are defined here: the challenge
   split, the dark procedure and who-we-serve bands, and the numbered
   core-component cards.
   ====================================================================== */

.mdc-spx { --svcx-shell: 1180px; --svcx-dark: #10364A; color: var(--mdc-body-text); }

/* ---------------------------------------------------------------- hero */

.mdc-spx__hero { padding: 54px 0 70px; background: linear-gradient(180deg, var(--mdc-primary-tint) 0%, #F7FBFC 100%); }
.mdc-spx__hero-inner {
	display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 48px; align-items: start;
	width: min(var(--svcx-shell), calc(100% - 40px)); margin-inline: auto;
}
.mdc-spx__crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; color: var(--mdc-muted-text); }
.mdc-spx__crumbs a { color: var(--mdc-muted-text); text-decoration: none; }
.mdc-spx__crumbs a:hover, .mdc-spx__crumbs a:focus-visible { color: var(--mdc-primary-dark); text-decoration: underline; }

.mdc-spx__eyebrow { margin: 18px 0 0; color: var(--mdc-accent-dark); font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.mdc-spx__hero-copy h1 { margin: 12px 0 0; font-size: clamp(30px, 3.8vw, 46px); line-height: 1.12; color: var(--mdc-heading); }
.mdc-spx__lead { max-width: 58ch; margin: 18px 0 0; font-size: 17px; line-height: 1.65; }
.mdc-spx__hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

.mdc-spx__hero-points { display: flex; flex-wrap: wrap; gap: 14px 34px; margin: 30px 0 0; padding: 0; list-style: none; }
.mdc-spx__hero-points b { display: block; color: var(--mdc-heading); font-size: 24px; line-height: 1.1; }
.mdc-spx__hero-points span { display: block; margin-top: 4px; font-size: 13px; color: var(--mdc-muted-text); }

/* ----------------------------------------------------- challenge split */

.mdc-spx__split { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 46px; align-items: start; }
.mdc-spx__split-copy h2 { margin: 10px 0 18px; font-size: clamp(26px, 2.9vw, 36px); line-height: 1.18; color: var(--mdc-heading); }
.mdc-spx__split-copy p { margin: 0 0 16px; line-height: 1.68; }

.mdc-spx__callout {
	margin-top: 22px !important; padding: 16px 18px;
	border-left: 3px solid var(--mdc-primary);
	border-radius: 0 var(--mdc-radius-md) var(--mdc-radius-md) 0;
	background: var(--mdc-primary-tint); font-size: 15px; color: var(--mdc-heading);
}

.mdc-spx__challenge-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.mdc-spx__challenge {
	min-width: 0; padding: 22px 22px 24px; border: 1px solid var(--mdc-border);
	border-radius: var(--mdc-radius-md); background: #fff; text-align: center;
	transition: transform var(--mdc-transition), box-shadow var(--mdc-transition), border-color var(--mdc-transition);
}
.mdc-spx__challenge:hover { transform: translateY(-3px); border-color: var(--mdc-primary-tint-strong); box-shadow: var(--mdc-shadow-card); }
.mdc-spx__challenge h3 { margin: 0 0 9px; font-size: 17px; color: var(--mdc-heading); }
.mdc-spx__challenge p { margin: 0; font-size: 15px; line-height: 1.58; }

/* --------------------------------------------------------- card sub-list */

.mdc-spx__card-list { margin: 16px 0 0; padding: 0; list-style: none; }
.mdc-spx__card-list li { padding: 8px 0; border-top: 1px solid var(--mdc-border); font-size: 14px; color: var(--mdc-primary-dark); }

/* -------------------------------------------------------------- bands */

.mdc-spx__band { padding: 76px 0; background: var(--svcx-dark); color: rgba(255, 255, 255, .78); }
.mdc-spx__band-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 28px; align-items: center; margin-bottom: 34px; }
.mdc-spx__band-eyebrow { margin: 0 0 10px; color: rgba(255, 255, 255, .62); font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.mdc-spx__band-head h2 { margin: 0; color: #fff; font-size: clamp(26px, 2.9vw, 36px); line-height: 1.18; }
.mdc-spx__band-head p { max-width: 74ch; margin: 14px 0 0; line-height: 1.62; }

.mdc-spx__tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.mdc-spx__tiles li {
	min-width: 0; padding: 15px 18px; border: 1px solid rgba(255, 255, 255, .14);
	border-radius: var(--mdc-radius-md); background: rgba(255, 255, 255, .07);
	color: #fff; font-size: 14px;
}

.mdc-spx__serve { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.mdc-spx__serve li {
	display: flex; flex-direction: column; gap: 12px; align-items: center; min-width: 0;
	padding: 26px 18px; border: 1px solid rgba(255, 255, 255, .14);
	border-radius: var(--mdc-radius-md); background: rgba(255, 255, 255, .07);
	color: #fff; font-size: 14px; text-align: center;
}
.mdc-spx__serve .mdc-svc-icon { width: 26px; height: 26px; color: #fff; }

/* --------------------------------------------------- core components */

.mdc-spx__components { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.mdc-spx__component {
	min-width: 0; padding: 26px 24px 28px; border: 1px dashed var(--mdc-primary-tint-strong);
	border-radius: var(--mdc-radius-card); background: #fff;
}
.mdc-spx__component-num { display: block; color: var(--mdc-primary); font-size: 30px; line-height: 1; }
.mdc-spx__component h3 { margin: 12px 0 9px; font-size: 17px; color: var(--mdc-heading); }
.mdc-spx__component p { margin: 0; line-height: 1.6; font-size: 15px; }

/* --------------------------------------------------------- responsive */

@media (max-width: 1024px) {
	.mdc-spx__hero-inner { grid-template-columns: minmax(0, 1fr); gap: 34px; }
	.mdc-spx__split { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.mdc-spx__tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mdc-spx__serve { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mdc-spx__components { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mdc-spx__band-head { grid-template-columns: minmax(0, 1fr); }
	.mdc-spx__band { padding: 58px 0; }
}

@media (max-width: 767px) {
	.mdc-spx__hero { padding: 34px 0 56px; }
	.mdc-spx__challenge-grid { grid-template-columns: minmax(0, 1fr); }
	.mdc-spx__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mdc-spx__serve { grid-template-columns: minmax(0, 1fr); }
	.mdc-spx__components { grid-template-columns: minmax(0, 1fr); }
	.mdc-spx__band { padding: 48px 0; }
	.mdc-spx__hero-actions .mdc-svcx__button { flex: 1 1 100%; justify-content: center; }
	.mdc-spx__hero-points { gap: 14px 24px; }
}

/* ======================================================================
   Mobile UX pass — header and managed service/specialty detail pages
   ====================================================================== */

@media (max-width: 767px) {
	/* Separate the about-section actions from the following image. WordPress
	   collapses the stacked column gap here, which previously made the second
	   button touch/overlap the media card. */
	.mdc-scope.home .mdc-section:has(.mdc-about__media) .mdc-about__media,
	.mdc-scope.page-about-us #about-details .mdc-about__media {
		margin-top: 28px !important;
	}
	.mdc-scope.home .mdc-section:has(.mdc-about__media) .wp-block-buttons {
		margin-bottom: 0;
	}

	.single-revaxis_service .mdc-svcx.alignfull,
	.single-revaxis_specialty .mdc-spx.alignfull {
		width: 100% !important;
		max-width: none !important;
		margin-inline: 0 !important;
	}

	/* Keep the utility bar useful without allowing its desktop tracks to
	   collide. Email and phone are the two actionable items on a phone. */
	.mdc-topbar { padding: 0 16px; }
	.mdc-topbar__inner {
		display: flex;
		justify-content: center;
		min-height: 44px;
		gap: 18px;
		overflow: hidden;
	}
	.mdc-topbar__left { flex: 0 1 auto; padding: 0; }
	.mdc-topbar__left .mdc-topbar__item--location,
	.mdc-topbar__social { display: none !important; }
	.mdc-topbar__item,
	.mdc-topbar__item--phone {
		min-width: 0;
		padding: 0;
		border: 0;
		font-size: 12px;
	}
	.mdc-topbar__item--email a {
		display: block;
		max-width: 190px;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
	.mdc-topbar__item--email::before,
	.mdc-topbar__item--phone::before { width: 14px; height: 14px; margin-right: 4px; }

	.mdc-navbar { padding: 10px 16px; }
	.mdc-navbar__inner { min-height: 50px; gap: 12px; }
	.mdc-logo { padding: 0; }
	.mdc-logo img,
	.mdc-logo .custom-logo { width: 150px; }
	.mdc-navbar__inner .mdc-navbar__cta { display: none; }
	.mdc-nav .wp-block-navigation__responsive-container-open {
		width: 44px;
		height: 44px;
		padding: 10px;
		border-radius: 10px;
	}

	/* A single, predictable phone gutter prevents both clipped copy and the
	   edge-to-edge feel visible in the former detail pages. */
	.mdc-svcx__shell,
	.mdc-svcx__hero-inner,
	.mdc-spx__hero-inner,
	.mdc-svcx__callback-inner { width: calc(100% - 32px); }

	.mdc-svcx__hero,
	.mdc-spx__hero { padding: 28px 0 48px; }
	.mdc-svcx__hero-inner,
	.mdc-spx__hero-inner { gap: 28px; }
	.mdc-svcx__crumbs,
	.mdc-spx__crumbs {
		gap: 5px 7px;
		font-size: 12px;
		line-height: 1.45;
	}
	.mdc-svcx__eyebrow,
	.mdc-spx__eyebrow { margin-top: 16px; font-size: 12px; line-height: 1.55; }
	.mdc-svcx__hero-copy h1,
	.mdc-spx__hero-copy h1 {
		font-size: clamp(29px, 8.3vw, 36px);
		line-height: 1.08;
		letter-spacing: -.025em;
	}
	.mdc-svcx__lead,
	.mdc-spx__lead { margin-top: 15px; font-size: 16px; line-height: 1.6; }
	.mdc-svcx__hero-actions,
	.mdc-spx__hero-actions { gap: 10px; margin-top: 22px; }
	.mdc-svcx__button { width: 100%; min-height: 52px; justify-content: center; padding: 13px 20px; }
	.mdc-svcx__hero-points { display: grid; gap: 10px; margin-top: 22px; }
	.mdc-spx__hero-points {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px 12px;
		margin-top: 24px;
	}
	.mdc-spx__hero-points li:last-child:nth-child(odd) { grid-column: 1 / -1; }

	.mdc-svcx__form { padding: 22px 16px 20px; border-radius: 18px; box-shadow: 0 14px 35px rgba(12,46,62,.11); }
	.mdc-svcx__form-title { margin-bottom: 16px; font-size: 21px; }
	.mdc-svcx__form input,
	.mdc-svcx__form select { min-height: 52px; margin-bottom: 10px; font-size: 16px; }
	.mdc-svcx__form-submit { min-height: 52px; }

	.mdc-svcx__stats { padding: 0 16px; }
	.mdc-svcx__stats-inner {
		gap: 0;
		margin-top: -22px;
		padding: 14px 10px;
		border-radius: 18px;
	}
	.mdc-svcx__stat { min-width: 0; padding: 14px 6px; }
	.mdc-svcx__stat b { font-size: 25px; }
	.mdc-svcx__stat-icon { display: block; width: 32px; height: 32px; margin: 0 auto 4px; }
	.mdc-svcx__stat-icon .mdc-svc-icon { width: 29px; height: 29px; }
	.mdc-svcx__stat span { font-size: 12px; line-height: 1.35; }
	.mdc-svcx__stat:last-child:nth-child(odd) { grid-column: 1 / -1; }

	.mdc-svcx__intro { padding: 44px 0 2px; }
	.mdc-svcx__intro p { font-size: 16px; line-height: 1.68; }
	.mdc-svcx__block { padding: 46px 0; }
	.mdc-svcx__head { margin-bottom: 26px; text-align: left; }
	.mdc-svcx__head h2,
	.mdc-spx__split-copy h2,
	.mdc-spx__band-head h2 { font-size: 27px; line-height: 1.15; letter-spacing: -.015em; }
	.mdc-svcx__head p { margin-top: 10px; font-size: 15px; line-height: 1.6; }

	.mdc-svcx__cards,
	.mdc-svcx__steps,
	.mdc-svcx__quotes,
	.mdc-svcx__related,
	.mdc-spx__components { gap: 14px; }
	.mdc-svcx__card,
	.mdc-svcx__step,
	.mdc-svcx__quote,
	.mdc-svcx__related-card,
	.mdc-spx__component { padding: 21px 19px 22px; border-radius: 16px; }
	.mdc-svcx__card-icon { width: 42px; height: 42px; margin-bottom: 14px; }
	.mdc-svcx__card h3 { font-size: 18px; }
	.mdc-svcx__block--why .mdc-svcx__card { min-height: 0; padding: 22px 18px; }
	.mdc-svcx__card p,
	.mdc-svcx__step p,
	.mdc-svcx__quote blockquote p { font-size: 15px; }
	.mdc-svcx__block-actions { gap: 10px; margin-top: 28px; }

	.mdc-svcx__why { gap: 22px; }
	.mdc-svcx__why-media { order: 0; }
	.mdc-svcx__why-media img { height: 230px; border-radius: 16px; }
	.mdc-svcx__acc-item summary { min-height: 52px; padding: 15px 16px; font-size: 16px; }
	.mdc-svcx__acc-item p { padding: 0 16px 16px; font-size: 15px; }

	.mdc-spx__split { gap: 26px; }
	.mdc-spx__challenge-grid { gap: 12px; }
	.mdc-spx__challenge { padding: 19px 17px 20px; text-align: left; }
	.mdc-spx__callout { padding: 15px 16px; }
	.mdc-spx__band { padding: 44px 0; }
	.mdc-spx__band-head { gap: 20px; margin-bottom: 24px; }
	.mdc-spx__tiles { gap: 9px; }
	.mdc-spx__tiles li { display: flex; align-items: center; min-height: 54px; padding: 11px 12px; font-size: 13px; }
	.mdc-spx__serve { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.mdc-spx__serve li { min-height: 126px; padding: 20px 12px; }

	.mdc-svcx__cta { padding: 8px 16px 52px; }
	.mdc-svcx__cta-inner { padding: 34px 18px; border-radius: 18px; }
	.mdc-svcx__cta-actions { gap: 14px; }
	.mdc-svcx__callback { padding-bottom: 52px; }
	.mdc-svcx__callback-inner { gap: 24px; padding: 28px 16px; border-radius: 18px; }
}

@media (max-width: 390px) {
	.mdc-topbar__inner { gap: 12px; }
	.mdc-topbar__item--email a { max-width: 165px; }
	.mdc-svcx__shell,
	.mdc-svcx__hero-inner,
	.mdc-spx__hero-inner,
	.mdc-svcx__callback-inner { width: calc(100% - 28px); }
	.mdc-spx__tiles { grid-template-columns: minmax(0, 1fr); }
}

/* Content must never depend on IntersectionObserver to be readable. Reveal
   classes may still be added by JavaScript, but delayed scripts, cache
   optimizers and full-page screenshot tools now receive the complete layout. */
.mdc-scope .mdc-reveal,
.mdc-scope .mdc-reveal--visible {
	opacity: 1 !important;
	transform: none !important;
	animation: none !important;
}

/* Service-detail mobile parity: the reference turns the action/trust area
   into two centred controls, then opens the metric panel edge-to-edge. These
   overrides intentionally come last because the theme has a shared small-
   screen detail pass above. */
@media (max-width: 767px) {
	.mdc-svcx__hero { padding: 38px 0 40px; }
	.mdc-svcx__hero-inner { width: min(310px, calc(100% - 40px)); gap: 34px; }
	.mdc-svcx__hero-copy h1 { margin-top: 0; font-size: 28px; line-height: 1.02; }
	.mdc-svcx__lead { margin-top: 24px; line-height: 1.62; }
	.mdc-svcx__hero-actions { margin-top: 40px; }
	.mdc-svcx__hero-actions .mdc-svcx__button { width: auto; }
	.mdc-svcx__hero-reviews { width: 310px; max-width: 100%; margin: 48px auto 0; }
	.mdc-svcx__hero-form { width: 100%; }
	.mdc-svcx__form { padding: 18px 20px 22px; border-radius: 28px; }
	.mdc-svcx__form-title { margin-bottom: 24px; font-size: 25px; }
	.mdc-svcx__form input,
	.mdc-svcx__form select { min-height: 52px; margin-bottom: 24px; border-radius: 15px; }
	.mdc-svcx__form-submit { width: 100px; min-height: 44px; margin-top: 2px; border-radius: 999px; }

	.mdc-svcx__stats { padding: 0; }
	.mdc-svcx__stats-inner { width: 100%; margin: 0; padding: 38px 48px 40px; border-radius: 30px; box-shadow: none; }
	.mdc-svcx__stat { padding: 8px 4px 14px; }
	.mdc-svcx__stat:first-child { grid-column: 1 / -1; }
	.mdc-svcx__stat:last-child:nth-child(odd) { grid-column: auto; }
	.mdc-svcx__stat-icon { width: 50px; height: 50px; margin-bottom: 8px; }
	.mdc-svcx__stat-icon .mdc-svc-icon { width: 43px; height: 43px; }
	.mdc-svcx__stat b { font-size: 27px; }
	.mdc-svcx__stat span { margin-top: 3px; color: #fff; font-size: 14px; }

	.mdc-svcx__block--why { padding: 64px 0 54px; }
	.mdc-svcx__block--why .mdc-svcx__head { text-align: center; }
	.mdc-svcx__block--why .mdc-svcx__head h2 { font-size: 21px; }
}

/* ======================================================================
   Service detail — reference sections (.mdc-svcref)
   ----------------------------------------------------------------------
   The six flagship services render section for section from their approved
   reference pages, so they use section types the generic template never
   needed: a compliance logo strip, a pricing panel, hover-flip process
   cards, a benchmark table and repeated heading/body sub-sections. These
   rules extend the `.mdc-svcx` primitives above rather than restating them.
   ====================================================================== */

/* Icons arrive from the reference as inline SVG with the tile drawn in
   currentColor, so a single colour on the wrapper themes the whole mark. */
.mdc-svcref__icon { display: inline-grid; place-items: center; width: 100%; height: 100%; }
.mdc-svcref__icon svg { width: 100%; height: 100%; }
/* Tile icons carry their own filled background, so they set their own colour
   and stay legible on both the white cards and the dark bands. A line icon
   is a bare outline and takes the colour of whatever surface it sits on. */
.mdc-svcref__icon--tile { color: var(--mdc-primary); }
.mdc-svcx__flip-face .mdc-svcref__icon--tile,
.mdc-svcx__stat .mdc-svcref__icon--tile { color: var(--mdc-primary-mid); }
.mdc-svcref .mdc-svcx__card-icon { padding: 0; background: none; color: var(--mdc-primary); }
.mdc-svcref .mdc-svcx__card-icon img { width: 100%; height: 100%; object-fit: contain; }
/* The reference sets the mark beside the figure rather than above it. */
.mdc-svcref .mdc-svcx__stat { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; align-items: center; justify-content: center; text-align: left; }
.mdc-svcref .mdc-svcx__stat-icon { grid-row: 1 / 3; width: 40px; height: 40px; margin: 0; color: #fff; }
.mdc-svcref .mdc-svcx__stat b { line-height: 1; }
.mdc-svcref .mdc-svcx__stat span:not(.mdc-svcx__stat-icon) { margin-top: 4px; }

/* Section lead copy is authored HTML, so it is a block rather than the
   single `p` the generic head assumed. */
.mdc-svcref .mdc-svcx__head-lead { margin: 14px 0 0; font-size: 17px; line-height: 1.62; }
.mdc-svcref .mdc-svcx__head-lead p { margin: 0 0 10px; }
.mdc-svcref .mdc-svcx__head-lead p:last-child { margin-bottom: 0; }
.mdc-svcref .mdc-svcx__lead p { margin: 0 0 12px; }
.mdc-svcref .mdc-svcx__lead p:last-child { margin-bottom: 0; }
.mdc-svcref .mdc-svcx__lead--note { margin-top: 10px; font-size: 16px; }

/* ------------------------------------------------------------- prose */

.mdc-svcx__prose { font-size: 17px; line-height: 1.72; }
.mdc-svcx__prose p { margin: 0 0 16px; }
.mdc-svcx__prose p:last-child { margin-bottom: 0; }
.mdc-svcx__prose ul, .mdc-svcx__prose ol { margin: 0 0 16px; padding-left: 22px; }
.mdc-svcx__prose li { margin-bottom: 8px; line-height: 1.6; }
.mdc-svcx__prose strong { color: var(--mdc-heading); }
.mdc-svcx__prose h3, .mdc-svcx__prose h4 { margin: 22px 0 8px; color: var(--mdc-heading); font-size: 19px; }

.mdc-svcx__block-note { max-width: 80ch; margin: 26px auto 0; color: var(--mdc-muted-text); font-size: 15px; line-height: 1.65; text-align: center; }
.mdc-svcx__block-note p { margin: 0 0 10px; }
.mdc-svcx__block-note p:last-child { margin-bottom: 0; }

.mdc-svcx__split { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 44px; align-items: center; }
.mdc-svcx__split-media img { display: block; width: 100%; height: auto; border-radius: var(--mdc-radius-card); }
/* The reference puts the media on either side depending on the section, so the
   side is carried in the model and applied here by re-ordering the columns. */
.mdc-svcx__split--media-left { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.mdc-svcx__split--media-left .mdc-svcx__split-media { order: -1; }
.mdc-svcx__why--media-right { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
.mdc-svcx__why--media-right .mdc-svcx__why-media { order: 2; }

/* --------------------------------------------------------- card links */

.mdc-svcx__cards--linked .mdc-svcx__card { display: flex; flex-direction: column; align-items: center; text-align: center; }
.mdc-svcx__card-link { align-self: center; margin-top: auto; padding: 10px 22px; font-size: 15px; }
.mdc-svcx__cards--linked .mdc-svcx__card p { margin-bottom: 20px; }

/* ---------------------------------------------------------- accordion */

.mdc-svcx__acc-body { padding: 0 20px 18px; line-height: 1.62; }
.mdc-svcx__acc-body p { margin: 0 0 12px; }
.mdc-svcx__acc-body p:last-child { margin-bottom: 0; }
.mdc-svcx__acc-body ul, .mdc-svcx__acc-body ol { margin: 0 0 12px; padding-left: 20px; }

/* The reference draws its FAQ as borderless rows on a hairline rule, at a
   smaller size than the step accordion above — they are not the same control. */
.mdc-svcref .mdc-svcx__faq .mdc-svcx__acc-item {
	margin-bottom: 0; border: 0; border-bottom: 1px solid var(--mdc-border);
	border-radius: 0; background: none; overflow: visible;
}
.mdc-svcref .mdc-svcx__faq .mdc-svcx__acc-item summary { padding: 18px 34px 18px 0; font-size: 16px; }
.mdc-svcref .mdc-svcx__faq .mdc-svcx__acc-item[open] summary { color: var(--mdc-primary-dark); }
.mdc-svcref .mdc-svcx__faq .mdc-svcx__acc-item summary::after { float: none; position: absolute; right: 0; margin: 0; }
.mdc-svcref .mdc-svcx__faq .mdc-svcx__acc-item summary { position: relative; }
.mdc-svcref .mdc-svcx__faq .mdc-svcx__acc-body { padding: 0 34px 22px 0; }

/* ------------------------------------------------------- flip process */

.mdc-svcx__flips { display: grid; grid-template-columns: repeat(var(--svcx-cols, 3), minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.mdc-svcx__flip { min-width: 0; min-height: 230px; perspective: 1400px; }
.mdc-svcx__flip:focus-visible { outline: 3px solid var(--mdc-focus-ring); outline-offset: 4px; border-radius: var(--mdc-radius-card); }
.mdc-svcx__flip-inner { position: relative; width: 100%; height: 100%; min-height: 230px; transition: transform .6s; transform-style: preserve-3d; }
.mdc-svcx__flip:hover .mdc-svcx__flip-inner,
.mdc-svcx__flip:focus .mdc-svcx__flip-inner,
.mdc-svcx__flip:focus-within .mdc-svcx__flip-inner { transform: rotateY(180deg); }
.mdc-svcx__flip-face, .mdc-svcx__flip-back {
	position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center;
	padding: 30px 26px; border-radius: var(--mdc-radius-card);
	-webkit-backface-visibility: hidden; backface-visibility: hidden;
}
.mdc-svcx__flip-face { background: var(--svcx-dark); text-align: center; align-items: center; }
.mdc-svcx__flip-icon { display: block; width: 54px; height: 54px; margin-bottom: 6px; color: #fff; }
.mdc-svcx__flip-num { color: #fff; font-size: 34px; font-weight: 700; line-height: 1; }
.mdc-svcx__flip-face h3 { margin: 12px 0 0; color: rgba(255,255,255,.88); font-size: 17px; font-weight: 500; line-height: 1.35; }
.mdc-svcx__flip-back { background: var(--mdc-primary); color: rgba(255,255,255,.9); transform: rotateY(180deg); }
.mdc-svcx__flip-back h3 { margin: 0 0 8px; color: #fff; font-size: 18px; }
.mdc-svcx__flip-back p { margin: 0; font-size: 15px; line-height: 1.6; }

/* Without hover — touch and reduced motion — both faces have to be legible,
   so the card stops flipping and stacks its two halves instead. */
@media (hover: none), (prefers-reduced-motion: reduce) {
	.mdc-svcx__flip, .mdc-svcx__flip-inner { min-height: 0; }
	.mdc-svcx__flip-inner { transform: none !important; transform-style: flat; }
	.mdc-svcx__flip-face, .mdc-svcx__flip-back { position: static; transform: none; backface-visibility: visible; }
	.mdc-svcx__flip-face { border-radius: var(--mdc-radius-card) var(--mdc-radius-card) 0 0; border-bottom: 0; padding-bottom: 20px; }
	.mdc-svcx__flip-back { border-radius: 0 0 var(--mdc-radius-card) var(--mdc-radius-card); }
}

/* ------------------------------------------------------------- proof */

.mdc-svcx__proof-badge {
	display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; justify-content: center;
	width: fit-content; max-width: 100%; margin: 0 auto 40px; padding: 14px 26px;
	border: 1px solid var(--mdc-border); border-radius: var(--mdc-radius-pill); background: #fff;
	box-shadow: var(--mdc-shadow-card);
}
.mdc-svcx__proof-mark { width: 40px; height: 40px; object-fit: contain; }
.mdc-svcx__proof-lines { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; color: var(--mdc-heading); font-size: 14px; font-weight: 700; }
.mdc-svcx__proof-powered { width: 132px; height: auto; object-fit: contain; }
.mdc-svcx__proof .mdc-svcx__stars { margin: 0; }
.mdc-svcref .mdc-svcx__quotes { display: block; }
.mdc-svcref .mdc-svcx__quotes .mdc-testimonials__viewport { overflow: hidden; }
.mdc-svcref .mdc-svcx__quotes .mdc-testimonials__track { display: flex; gap: 24px; transition: transform .5s ease; }
.mdc-svcref .mdc-svcx__quotes .mdc-svcx__quote { flex: 0 0 100%; min-width: 0; padding: 34px 38px 36px; }
.mdc-svcref .mdc-svcx__quotes blockquote p { font-size: 17px; }
.mdc-svcref .mdc-svcx__quotes .mdc-testimonials__dots { display: flex; gap: 8px; justify-content: center; margin-top: 24px; }
.mdc-svcref .mdc-svcx__quotes .mdc-testimonials__dots button {
	width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%;
	background: var(--mdc-primary-tint-strong); cursor: pointer;
}
.mdc-svcref .mdc-svcx__quotes .mdc-testimonials__dots button[aria-current='true'] { width: 26px; border-radius: 999px; background: var(--mdc-primary); }
.mdc-svcref .mdc-svcx__quote figcaption { display: flex; gap: 12px; align-items: center; }
.mdc-svcref .mdc-svcx__quote figcaption img { flex: none; width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }

/* -------------------------------------------------- compliance logos */

/* Five logos across, scrolling continuously, as the reference carousel does. */
.mdc-svcx__logos { margin-top: 44px; }
.mdc-svcx__logos .mdc-marquee__track { gap: 0; }
.mdc-svcx__logos .mdc-marquee__item { flex: 0 0 20%; width: 20%; height: 96px; padding: 0 18px; }
.mdc-svcx__logos .mdc-marquee__item img { max-width: 100%; max-height: 76px; }

/* ------------------------------------------------------------ pricing */

.mdc-svcx__pricing { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 40px; align-items: center; }
.mdc-svcx__pricing-panel { padding: 34px 32px; border-radius: var(--mdc-radius-card); background: var(--svcx-dark); color: rgba(255,255,255,.8); text-align: center; }
.mdc-svcx__pricing-label { margin: 0; color: rgba(255,255,255,.78); font-size: 15px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.mdc-svcx__pricing-price { margin: 12px 0 14px; color: #fff; font-size: clamp(26px, 3vw, 36px); font-weight: 700; line-height: 1.15; }
.mdc-svcx__pricing-note { font-size: 15px; line-height: 1.62; }
.mdc-svcx__pricing-note p { margin: 0; }

/* -------------------------------------------------------- subsections */

.mdc-svcx__subs { display: grid; grid-template-columns: repeat(var(--svcx-cols, 3), minmax(0, 1fr)); gap: 22px; }
/* The reference fills its guarantee / exclusion panels. Same semantics here,
   in the theme's own green and red rather than the reference's raw values. */
.mdc-svcx__sub--positive, .mdc-svcx__sub--negative { border-width: 0 0 0 4px; border-style: solid; }
.mdc-svcx__sub--positive { border-color: var(--mdc-accent-dark); background: var(--mdc-accent-tint); }
.mdc-svcx__sub--negative { border-color: #B4453C; background: #FBEEEC; }
.mdc-svcx__sub--positive h3 { color: var(--mdc-accent-dark); }
.mdc-svcx__sub--negative h3 { color: #963A32; }
.mdc-svcx__sub { min-width: 0; padding: 26px 26px 28px; border: 1px solid var(--mdc-border); border-radius: var(--mdc-radius-card); background: #fff; box-shadow: 0 2px 4px rgba(12,46,62,.04), 0 12px 26px rgba(12,46,62,.06); }
.mdc-svcx__sub h3 { margin: 0 0 10px; color: var(--mdc-heading); font-size: 19px; line-height: 1.3; }
.mdc-svcx__sub .mdc-svcx__prose { font-size: 15px; line-height: 1.62; }

/* ------------------------------------------------------------- table */

.mdc-svcx__table-scroll { overflow-x: auto; border-radius: var(--mdc-radius-md); border: 1px solid var(--mdc-border); background: #fff; }
.mdc-svcx__table { width: 100%; border-collapse: collapse; font-size: 15px; }
.mdc-svcx__table th, .mdc-svcx__table td { padding: 13px 18px; text-align: left; border-bottom: 1px solid var(--mdc-border); white-space: nowrap; }
.mdc-svcx__table thead th { background: var(--svcx-dark); color: #fff; font-weight: 700; }
.mdc-svcx__table tbody th { color: var(--mdc-heading); font-weight: 600; }
.mdc-svcx__table tbody tr:nth-child(even) { background: var(--mdc-surface-alt); }
.mdc-svcx__table tbody tr:last-child th, .mdc-svcx__table tbody tr:last-child td { border-bottom: 0; }

/* ---------------------------------------------------------- close CTA */

.mdc-svcx__ctaband { text-align: center; }
.mdc-svcx__ctaband h2 { margin: 0; color: var(--mdc-heading); font-size: clamp(26px, 3vw, 38px); line-height: 1.18; }
.mdc-svcx__ctaband-copy { margin: 16px auto 0; font-size: 17px; line-height: 1.65; }
.mdc-svcx__ctaband-copy p { margin: 0 0 12px; }
.mdc-svcx__ctaband-copy p:last-child { margin-bottom: 0; }
.mdc-svcx__ctaband-actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin: 30px 0 0; }

/* --------------------------------------------------------- responsive */

@media (max-width: 1024px) {
	.mdc-svcx__cards, .mdc-svcx__flips, .mdc-svcx__subs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mdc-svcx__pricing, .mdc-svcx__split { grid-template-columns: 1fr; gap: 28px; }
	.mdc-svcx__logos .mdc-marquee__item { flex-basis: 25%; width: 25%; height: 84px; }
}

@media (max-width: 700px) {
	.mdc-svcx__cards, .mdc-svcx__flips, .mdc-svcx__subs { grid-template-columns: 1fr; }
	.mdc-svcx__logos .mdc-marquee__item { flex-basis: 50%; width: 50%; height: 76px; }
	.mdc-svcx__proof-badge { border-radius: var(--mdc-radius-card); padding: 16px 20px; }
	.mdc-svcx__proof-lines { justify-content: center; text-align: center; }
	.mdc-svcx__block-note { text-align: left; }
	.mdc-svcx__table th, .mdc-svcx__table td { padding: 11px 14px; }
}

/* ======================================================================
   Specialty detail — reference layout (.mdc-spxref)
   ----------------------------------------------------------------------
   Every featured specialty renders in the approved specialty reference
   page's structure, so these rules are shared by all nine and none of
   them is specialty-specific. Built on the `.mdc-svcx` primitives (hero,
   metric band, buttons, accordion) that the service reference pages use,
   plus the four treatments unique to this page type: the challenge split,
   the dashed feature and component cards, the solid brand bands, and the
   top-ruled "why choose" cards.
   ====================================================================== */

.mdc-spxref__eyebrow { margin: 0 0 10px; color: var(--mdc-primary-dark); font-size: 14px; font-weight: 600; }

/* ------------------------------------------------------ the challenge */

.mdc-spxref__split { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 48px; align-items: start; }
.mdc-spxref__split-copy h2 { margin: 0 0 20px; color: var(--mdc-heading); font-size: clamp(26px, 2.8vw, 36px); line-height: 1.18; }
.mdc-spxref__split-copy p { margin: 0 0 16px; font-size: 16px; line-height: 1.7; }

/* The reference sets its closing statement apart as a tinted, ruled note. */
.mdc-spxref__callout {
	margin-top: 24px !important; padding: 18px 22px;
	border-left: 4px solid var(--mdc-primary); border-radius: 0 var(--mdc-radius-md) var(--mdc-radius-md) 0;
	background: var(--mdc-primary-tint); color: var(--mdc-heading); font-weight: 500;
}

.mdc-spxref__problems { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.mdc-spxref__problem {
	padding: 24px 22px 26px; border: 1px solid var(--mdc-border); border-radius: var(--mdc-radius-md);
	background: #fff; text-align: center; box-shadow: 0 2px 4px rgba(12,46,62,.04);
}
.mdc-spxref__problem h3 { margin: 0 0 10px; color: var(--mdc-primary-dark); font-size: 17px; line-height: 1.35; }
.mdc-spxref__problem p { margin: 0; font-size: 15px; line-height: 1.6; }

/* --------------------------------------------- differentiator cards */

.mdc-spxref__features,
.mdc-spxref__components { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin: 0; padding: 0; list-style: none; }

/* Dashed outline is the reference's own treatment for these two grids and
   is what separates them from the solid cards elsewhere on the page. The
   reference draws it at 5px in the full brand colour — a hairline in a tint
   reads as an unfinished card rather than a deliberate frame. */
.mdc-spxref__feature,
.mdc-spxref__component {
	min-width: 0; padding: 26px 24px 28px;
	border: 5px dashed var(--mdc-primary); border-radius: 10px; background: #fff;
}
.mdc-spxref__feature { display: flex; flex-direction: column; align-items: center; text-align: center; }
.mdc-spxref__feature .mdc-svcx__card-icon { margin-bottom: 14px; }
.mdc-spxref__feature h3 { margin: 0 0 8px; color: var(--mdc-primary-dark); font-size: 17px; line-height: 1.35; }
.mdc-spxref__feature p { margin: 0; font-size: 15px; line-height: 1.6; }

.mdc-spxref__component { list-style: none; }
.mdc-spxref__component-num { display: block; color: var(--mdc-primary); font-size: 34px; font-weight: 700; line-height: 1; }
.mdc-spxref__component h3 { margin: 12px 0 8px; color: var(--mdc-primary-dark); font-size: 17px; line-height: 1.35; }
.mdc-spxref__component p { margin: 0; font-size: 15px; line-height: 1.6; }

/* Arrow-and-rule bullets, matching the reference's supporting lists. */
.mdc-spxref__list { width: 100%; margin: 18px 0 0; padding: 0; list-style: none; text-align: left; }
.mdc-spxref__list li {
	position: relative; padding: 7px 0 7px 22px;
	border-bottom: 1px solid var(--mdc-border); color: var(--mdc-body-text); font-size: 14px; line-height: 1.5;
}
.mdc-spxref__list li:last-child { border-bottom: 0; }
.mdc-spxref__list li::before { position: absolute; left: 0; color: var(--mdc-primary); content: '\2192'; }

/* ----------------------------------------------------- brand bands */

/* Two sections sit on a solid brand fill in the reference: the procedure
   coverage list and the practices served. */
.mdc-spxref__band { padding: 74px 0; background: var(--mdc-primary-dark); color: rgba(255,255,255,.86); }
.mdc-spxref__band .mdc-spxref__eyebrow { color: rgba(255,255,255,.72); }
.mdc-spxref__band-head { display: flex; gap: 32px; align-items: flex-end; justify-content: space-between; margin-bottom: 34px; }
.mdc-spxref__band-head h2 { margin: 0; color: #fff; font-size: clamp(25px, 2.7vw, 34px); line-height: 1.18; }
.mdc-spxref__band-head p { max-width: 70ch; margin: 14px 0 0; font-size: 16px; line-height: 1.65; }
.mdc-spxref__band-cta {
	flex: none; padding: 12px 26px; border: 1px solid rgba(255,255,255,.6); border-radius: var(--mdc-radius-pill);
	color: #fff; font-size: 15px; font-weight: 700; text-decoration: none; transition: background var(--mdc-transition), color var(--mdc-transition);
}
.mdc-spxref__band-cta::after { margin-left: 8px; content: '\2192'; }
.mdc-spxref__band-cta:hover, .mdc-spxref__band-cta:focus-visible { background: #fff; color: var(--mdc-primary-dark); }

.mdc-spxref__chips { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.mdc-spxref__chips li {
	padding: 15px 18px; border-radius: var(--mdc-radius-md);
	background: rgba(255,255,255,.12); color: #fff; font-size: 15px; text-align: center;
}

.mdc-spxref__serve { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.mdc-spxref__serve li {
	display: flex; flex-direction: column; align-items: center; gap: 12px;
	padding: 24px 18px 26px; border-radius: var(--mdc-radius-md);
	background: rgba(255,255,255,.12); color: #fff; font-size: 15px; text-align: center;
}
.mdc-spxref__serve-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,.16); color: #fff; }
.mdc-spxref__serve-icon .mdc-svc-icon { width: 21px; height: 21px; }

/* --------------------------------------------------- why choose us */

.mdc-spxref__choose { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.mdc-spxref__choose-card {
	display: flex; flex-direction: column; align-items: center; min-width: 0;
	padding: 26px 24px 28px; border: 1px solid var(--mdc-border); border-top: 3px solid var(--mdc-primary);
	border-radius: 0 0 var(--mdc-radius-card) var(--mdc-radius-card); background: #fff; text-align: center;
	box-shadow: 0 2px 4px rgba(12,46,62,.04), 0 12px 26px rgba(12,46,62,.06);
}
.mdc-spxref__choose-card .mdc-svcx__card-icon { margin-bottom: 14px; }
.mdc-spxref__choose-card h3 { margin: 0 0 8px; color: var(--mdc-primary-dark); font-size: 17px; line-height: 1.35; }
.mdc-spxref__choose-card p { margin: 0; font-size: 15px; line-height: 1.6; }

/* --------------------------------------------------------- responsive */

@media (max-width: 1024px) {
	.mdc-spxref__split { grid-template-columns: 1fr; gap: 32px; }
	.mdc-spxref__features, .mdc-spxref__components, .mdc-spxref__choose { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mdc-spxref__chips { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mdc-spxref__serve { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mdc-spxref__band-head { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 700px) {
	.mdc-spxref__problems, .mdc-spxref__features, .mdc-spxref__components, .mdc-spxref__choose { grid-template-columns: 1fr; }
	.mdc-spxref__chips, .mdc-spxref__serve { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mdc-spxref__band { padding: 56px 0; }
}

/* ======================================================================
   Managed detail pages — full-bleed correction
   ----------------------------------------------------------------------
   The renderer's wrapper is `alignfull`, and WordPress pulls alignfull
   children out by the global padding (-20px each side). These templates
   already zero that padding on `.entry-content`, so the negative margin
   has nothing to cancel: the wrapper ends up 40px wider than the viewport
   and every `calc(100% - 40px)` shell inside it computes back to the full
   viewport width, leaving the copy flush against both edges. Most visible
   between 768px and 1024px, where the phone gutter rules do not apply.
   ====================================================================== */

.single-revaxis_service .entry-content > .alignfull,
.single-revaxis_specialty .entry-content > .alignfull,
.single-revaxis_portfolio .entry-content > .alignfull {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Hero actions must never shrink: a squeezed button wraps its label and
   turns into a tall blob rather than a pill. */
.mdc-svcx__hero-actions .mdc-svcx__button { flex: none; }

/* ======================================================================
   Hover and focus states
   ----------------------------------------------------------------------
   One motion vocabulary for every interactive surface: cards lift and
   deepen their shadow, tiles on the brand bands lighten, links move their
   arrow, and rows tint. Everything uses the shared transition token, and
   the whole block stands down under `prefers-reduced-motion`.
   ====================================================================== */

.mdc-spxref__feature,
.mdc-spxref__component,
.mdc-spxref__problem,
.mdc-spxref__choose-card,
.mdc-svcx__sub,
.mdc-svcx__quote,
.mdc-svcx__flip-face,
.mdc-spxref__chips li,
.mdc-spxref__serve li,
.mdc-svcx__logos img,
.mdc-svcx__card-link,
.mdc-spxref__list li,
.mdc-svcx__table tbody tr {
	transition: transform var(--mdc-transition), box-shadow var(--mdc-transition),
		border-color var(--mdc-transition), background-color var(--mdc-transition), color var(--mdc-transition);
}

/* Cards lift. The dashed frames also firm up their border, since a dashed
   outline reads as lighter than a solid one at the same weight. */
.mdc-spxref__feature:hover,
.mdc-spxref__feature:focus-within,
.mdc-spxref__component:hover,
.mdc-spxref__component:focus-within {
	transform: translateY(-4px);
	border-color: var(--mdc-primary-dark);
	box-shadow: 0 18px 38px rgba(12, 46, 62, .13);
}

.mdc-spxref__problem:hover,
.mdc-spxref__problem:focus-within,
.mdc-spxref__choose-card:hover,
.mdc-spxref__choose-card:focus-within,
.mdc-svcx__sub:hover,
.mdc-svcx__sub:focus-within,
.mdc-svcx__quote:hover,
.mdc-svcx__quote:focus-within {
	transform: translateY(-4px);
	border-color: var(--mdc-primary-tint-strong);
	box-shadow: 0 18px 38px rgba(12, 46, 62, .13);
}

/* Tinted guarantee panels keep their own edge colour on hover. */
.mdc-svcx__sub--positive:hover { border-color: var(--mdc-accent-dark); }
.mdc-svcx__sub--negative:hover { border-color: #B4453C; }

/* Tiles on the solid brand bands have no shadow to deepen, so they lighten. */
.mdc-spxref__chips li:hover,
.mdc-spxref__serve li:hover,
.mdc-spxref__serve li:focus-within {
	transform: translateY(-3px);
	background: rgba(255, 255, 255, .22);
}

/* The step cards flip on hover already; give the resting face a lift so the
   card reads as interactive before the flip starts. */
.mdc-svcx__flip:hover .mdc-svcx__flip-inner,
.mdc-svcx__flip:focus-within .mdc-svcx__flip-inner { box-shadow: 0 18px 38px rgba(12, 46, 62, .16); border-radius: var(--mdc-radius-card); }

/* Supporting bullets highlight the row under the pointer. */
.mdc-spxref__list li:hover { color: var(--mdc-heading); }
.mdc-spxref__list li:hover::before { color: var(--mdc-primary-dark); }

/* Card links carry an arrow that steps forward. */
.mdc-svcx__card-link { position: relative; }
.mdc-svcx__card:hover .mdc-svcx__card-link { background: var(--mdc-primary-dark); }

/* Benchmark table rows tint under the pointer. */
.mdc-svcx__table tbody tr:hover { background: var(--mdc-primary-tint); }

/* Compliance logos lift out of the marquee on hover. */
.mdc-svcx__logos .mdc-marquee__item img:hover { transform: scale(1.06); }
.mdc-svcx__logos:hover .mdc-marquee__track { animation-play-state: paused; }

/* Accordions: the whole row responds, not just the marker. */
.mdc-svcx__acc-item summary { transition: color var(--mdc-transition), background-color var(--mdc-transition); }
.mdc-svcx__acc-item summary:hover { color: var(--mdc-primary-dark); }
.mdc-svcx__acc-item summary:hover::after { color: var(--mdc-primary-dark); }

/* "Learn more" style links move their arrow rather than only underlining. */
.mdc-services-card__link::after,
.mdc-csd__link::after { display: inline-block; transition: transform var(--mdc-transition); }
.mdc-services-card:hover .mdc-services-card__link::after,
.mdc-csd__card:hover .mdc-csd__link::after { transform: translateX(4px); }

@media (prefers-reduced-motion: reduce) {
	.mdc-spxref__feature,
	.mdc-spxref__component,
	.mdc-spxref__problem,
	.mdc-spxref__choose-card,
	.mdc-svcx__sub,
	.mdc-svcx__quote,
	.mdc-spxref__chips li,
	.mdc-spxref__serve li,
	.mdc-svcx__logos img,
	.mdc-svcx__table tbody tr { transition: none; }

	.mdc-spxref__feature:hover,
	.mdc-spxref__component:hover,
	.mdc-spxref__problem:hover,
	.mdc-spxref__choose-card:hover,
	.mdc-svcx__sub:hover,
	.mdc-svcx__quote:hover,
	.mdc-spxref__chips li:hover,
	.mdc-spxref__serve li:hover,
	.mdc-svcx__logos .mdc-marquee__item img:hover { transform: none; }
}

/* ======================================================================
   Card hover — one colour change everywhere
   ----------------------------------------------------------------------
   Every card on a light surface answers the pointer the same way: the
   surface warms to the brand tint, the edge takes the brand colour, and
   the card lifts. Declared once here, after the component styles, so a
   single change restyles every card family on the site rather than
   thirteen separate hover rules drifting apart.

   Cards that sit on a solid brand band, and the guarantee panels that
   carry a green/red meaning, are handled separately above — tinting them
   the same blue would either wash them out or destroy the semantics.
   ====================================================================== */

.mdc-services-card > a,
.mdc-spec-tile a,
.mdc-spec-popular__item a,
.mdc-svcx__card,
.mdc-svcx__related-card,
.mdc-svcx__quote,
.mdc-spxref__feature,
.mdc-spxref__component,
.mdc-spxref__problem,
.mdc-spxref__choose-card,
.mdc-csd__related-card,
.mdc-csd__panel,
.mdc-csd__step,
.mdc-case-study,
.mdc-rcm__card:not(.mdc-rcm__card--teal):not(.mdc-rcm__card--gold),
.mdc-post-card,
.mdc-blog-featured,
.mdc-card,
.mdc-feature,
.mdc-spechome__card,
.mdc-contact-cell,
.mdc-about-lower__control-grid article {
	transition: transform var(--mdc-transition), box-shadow var(--mdc-transition),
		border-color var(--mdc-transition), background-color var(--mdc-transition);
}

.mdc-services-card > a:hover,
.mdc-services-card > a:focus-visible,
.mdc-spec-tile a:hover,
.mdc-spec-tile a:focus-visible,
.mdc-spec-popular__item a:hover,
.mdc-spec-popular__item a:focus-visible,
.mdc-svcx__card:hover,
.mdc-svcx__card:focus-within,
.mdc-svcx__related-card:hover,
.mdc-svcx__related-card:focus-visible,
.mdc-svcx__quote:hover,
.mdc-svcx__quote:focus-within,
.mdc-spxref__feature:hover,
.mdc-spxref__feature:focus-within,
.mdc-spxref__component:hover,
.mdc-spxref__component:focus-within,
.mdc-spxref__problem:hover,
.mdc-spxref__problem:focus-within,
.mdc-spxref__choose-card:hover,
.mdc-spxref__choose-card:focus-within,
.mdc-csd__related-card:hover,
.mdc-csd__related-card:focus-visible,
.mdc-csd__panel:hover,
.mdc-csd__step:hover,
.mdc-case-study:hover,
.mdc-rcm__card:not(.mdc-rcm__card--teal):not(.mdc-rcm__card--gold):hover,
.mdc-case-study:focus-within,
.mdc-post-card:hover,
.mdc-post-card:focus-within,
.mdc-blog-featured:hover,
.mdc-blog-featured:focus-within,
.mdc-card:hover,
.mdc-feature:hover,
.mdc-spechome__card:hover,
.mdc-spechome__card:focus-within,
.mdc-contact-cell:hover,
.mdc-contact-cell:focus-within,
.mdc-about-lower__control-grid article:hover {
	transform: translateY(-4px);
	border-color: var(--mdc-primary);
	background-color: var(--mdc-primary-tint);
	box-shadow: 0 18px 38px rgba(12, 46, 62, .16);
}

/* Families whose resting state has no border still need one to change to,
   otherwise the hover would resize the card by adding an edge. */
.mdc-contact-cell { border: 1px solid transparent; }

/* The blog archive pins the featured card's fill and edge with `!important`,
   so the shared hover has to answer in kind to reach it. */
.mdc-blog-archive .mdc-blog-featured:hover,
.mdc-blog-archive .mdc-blog-featured:focus-within {
	border-color: var(--mdc-primary) !important;
	background: var(--mdc-primary-tint) !important;
}

/* The home KPI cards already swap their accent on hover — teal takes gold and
   gold takes teal. Their surface now follows that swap, so they answer the
   pointer with the same colour change as every other card while keeping the
   two-accent scheme the section was designed around. */
.mdc-rcm__card--teal,
.mdc-rcm__card--gold {
	transition: transform .3s ease, box-shadow .3s ease,
		border-color var(--mdc-transition), background-color var(--mdc-transition);
}

.mdc-rcm__card--teal:hover,
.mdc-rcm__card--teal:focus-within {
	border-color: #e4c65d;
	background-color: #fbf3de;
}

.mdc-rcm__card--gold:hover,
.mdc-rcm__card--gold:focus-within {
	border-color: var(--mdc-primary);
	background-color: var(--mdc-primary-tint);
}

/* Media inside a card must not inherit the tint behind it. */
.mdc-services-card > a:hover .mdc-services-card__thumb,
.mdc-spec-popular__item a:hover .mdc-spec-popular__thumb,
.mdc-post-card:hover .mdc-post-card__media,
.mdc-blog-featured:hover .mdc-blog-featured__media { background-color: transparent; }

/* Icon tiles invert against the tinted surface so they stay legible. */
.mdc-svcx__card:hover .mdc-svcx__card-icon,
.mdc-spxref__feature:hover .mdc-svcx__card-icon,
.mdc-spxref__choose-card:hover .mdc-svcx__card-icon { color: var(--mdc-primary-dark); }

@media (prefers-reduced-motion: reduce) {
	.mdc-services-card > a:hover,
	.mdc-spec-tile a:hover,
	.mdc-spec-popular__item a:hover,
	.mdc-svcx__card:hover,
	.mdc-svcx__related-card:hover,
	.mdc-svcx__quote:hover,
	.mdc-spxref__feature:hover,
	.mdc-spxref__component:hover,
	.mdc-spxref__problem:hover,
	.mdc-spxref__choose-card:hover,
	.mdc-csd__related-card:hover,
	.mdc-csd__panel:hover,
	.mdc-csd__step:hover,
	.mdc-case-study:hover,
	.mdc-rcm__card:hover,
	.mdc-post-card:hover,
	.mdc-blog-featured:hover,
	.mdc-card:hover,
	.mdc-feature:hover,
	.mdc-spechome__card:hover,
	.mdc-contact-cell:hover,
	.mdc-about-lower__control-grid article:hover { transform: none; }
}

/* ======================================================================
   Reference parity — hero and metric band
   ----------------------------------------------------------------------
   Measured against the reference pages rather than eyeballed: the review
   strip, the metric figures and marks, the form fields and the submit
   button were all rendering smaller than the design. Geometry matches the
   reference here; only the palette is ours.
   ====================================================================== */

/* Copy column width drives where the headline wraps — the reference wraps
   its headline over two lines at 553px, not three at 647px. The reference
   gives the copy column roughly 800px against a 595px form.

   This must stay behind a min-width guard. The shared collapse to a single
   column lives in a `max-width: 1024px` block, and a media query adds no
   specificity — so an unguarded `.mdc-svcref .mdc-svcx__hero-inner` (0,2,0)
   outranks it and held the two-column split all the way down to 390px,
   where it left the headline in a 157px column and crushed the demo form
   into 119px with its fields reading "First N" and "Cho". */
@media (min-width: 1025px) {
	.mdc-svcref .mdc-svcx__hero-inner { grid-template-columns: minmax(0, 1.32fr) minmax(0, 1fr); }
}

.mdc-svcref .mdc-svcx__lead { font-size: 16px; line-height: 1.6; }

/* Review platforms strip: 553x92 in the reference, not a 330px thumbnail. */
.mdc-svcx__hero-reviews { width: min(100%, 553px); height: auto; margin-top: 26px; }

/* Metric band: 46px figures beside 60px marks on a 196px-tall band. */
.mdc-svcref .mdc-svcx__stats-inner { padding: 46px 40px; }
.mdc-svcref .mdc-svcx__stat { column-gap: 16px; }
.mdc-svcref .mdc-svcx__stat-icon { width: 60px; height: 60px; }
.mdc-svcref .mdc-svcx__stat b { font-size: clamp(30px, 3.2vw, 46px); }
.mdc-svcref .mdc-svcx__stat span:not(.mdc-svcx__stat-icon) { font-size: 15px; }

/* Form fields: 62px tall with a 16px radius and no visible border. */
.mdc-svcref .mdc-svcx__form input,
.mdc-svcref .mdc-svcx__form select {
	min-height: 62px; border-color: transparent; border-radius: 16px; font-size: 16px;
}

/* Submit is a compact pill on the left in the reference, not a full-width bar. */
.mdc-svcref .mdc-svcx__form-submit { width: auto; min-width: 118px; min-height: 50px; margin-right: auto; padding: 13px 30px; }

/* The audit button, reproducing the reference's own hover animation: a
   gradient pill under two skewed panels that sweep in from both edges to
   60% width and meet in the middle. The panels sit on ::before/::after
   behind the label (z-index -1), which is why the label and icon are real
   elements in the markup rather than pseudo-content. */
.mdc-svcref .mdc-svcx__hero-actions .mdc-svcx__button {
	position: relative;
	z-index: 1;
	overflow: hidden;
	gap: 10px;
	min-height: 50px;
	background: linear-gradient(90deg, var(--mdc-primary) 0%, var(--mdc-primary-dark) 100%);
	box-shadow: 0 0 10px rgba(12, 46, 62, .35);
	transition: color .5s ease-in-out, box-shadow .5s ease-in-out;
}

.mdc-svcref .mdc-svcx__hero-actions .mdc-svcx__button::before,
.mdc-svcref .mdc-svcx__hero-actions .mdc-svcx__button::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	z-index: -1;
	width: 0;
	height: 100%;
	background: var(--mdc-heading);
	transform: skew(15deg);
	transition: width .4s ease-in-out;
}
.mdc-svcref .mdc-svcx__hero-actions .mdc-svcx__button::before { left: -10px; }
.mdc-svcref .mdc-svcx__hero-actions .mdc-svcx__button::after { right: -10px; }

.mdc-svcref .mdc-svcx__hero-actions .mdc-svcx__button:hover::before,
.mdc-svcref .mdc-svcx__hero-actions .mdc-svcx__button:hover::after,
.mdc-svcref .mdc-svcx__hero-actions .mdc-svcx__button:focus-visible::before,
.mdc-svcref .mdc-svcx__hero-actions .mdc-svcx__button:focus-visible::after { width: 60%; }

.mdc-svcref .mdc-svcx__hero-actions .mdc-svcx__button:hover,
.mdc-svcref .mdc-svcx__hero-actions .mdc-svcx__button:focus-visible {
	color: #fff;
	box-shadow: 0 6px 20px rgba(12, 46, 62, .45);
	transform: none;
}

/* The rocket mark that sits before the label. */
.mdc-svcx__button-icon {
	flex: none;
	width: 17px;
	height: 17px;
	background: currentColor;
	-webkit-mask: var(--mdc-icon-rocket) no-repeat center / contain;
	mask: var(--mdc-icon-rocket) no-repeat center / contain;
}
.mdc-svcx__button-label { display: inline-block; }

@media (prefers-reduced-motion: reduce) {
	.mdc-svcref .mdc-svcx__hero-actions .mdc-svcx__button::before,
	.mdc-svcref .mdc-svcx__hero-actions .mdc-svcx__button::after { transition: none; }
}

@media (max-width: 1024px) {
	.mdc-svcref .mdc-svcx__hero-copy { max-width: none; }
	.mdc-svcref .mdc-svcx__stats-inner { padding: 32px 28px; }
	.mdc-svcref .mdc-svcx__stat-icon { width: 44px; height: 44px; }
}

@media (max-width: 767px) {
	.mdc-svcref .mdc-svcx__form-submit { width: 100%; }
}

/* ======================================================================
   Home hero button — same sweep as the detail pages
   ----------------------------------------------------------------------
   The home hero's CTA is a core block button, so its markup is fixed and
   `::before` already carries the rocket glyph. That leaves one pseudo-
   element, so the reference's two-panel meet-in-the-middle becomes a
   single skewed panel wiping across the full width — the same gesture,
   the same 0.4s ease, on the one hook available.
   ====================================================================== */

.mdc-hero__actions .wp-block-button__link {
	position: relative;
	z-index: 1;
	overflow: hidden;
	transition: color .5s ease-in-out, box-shadow .5s ease-in-out;
}

.mdc-hero__actions .wp-block-button__link::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: -12px;
	z-index: -1;
	width: 0;
	height: 100%;
	background: var(--mdc-heading);
	transform: skew(15deg);
	transition: width .4s ease-in-out;
}

.mdc-hero__actions .wp-block-button__link:hover,
.mdc-hero__actions .wp-block-button__link:focus-visible {
	color: #fff;
	box-shadow: 0 6px 20px rgba(12, 46, 62, .45);
}

.mdc-hero__actions .wp-block-button__link:hover::after,
.mdc-hero__actions .wp-block-button__link:focus-visible::after { width: calc(100% + 24px); }

@media (prefers-reduced-motion: reduce) {
	.mdc-hero__actions .wp-block-button__link::after { transition: none; }
}

/* ======================================================================
   Mobile pass — phones and small tablets
   ----------------------------------------------------------------------
   Measured on the running site at 390 / 430 / 768, not eyeballed. Four
   problems, in the order they hurt:

   1. The blog archive's grid track resolved to 442px inside a 358px
      column, pushing the document 68px wider than the phone.
   2. Every card grid collapsed to a single column, so pages ran to
      15,000-18,000px. Short icon-led cards now go two-up.
   3. Nothing met the 44px tap-target minimum: footer links measured
      21px tall, social icons 24px, the specialty filters 37px.
   4. The footer squeezed its contact column into 165px, breaking the
      email address across two lines mid-word.

   These rules are deliberately unscoped. `.mdc-scope` is absent from the
   Services and Specialities listings by design (see functions.php), and
   those two pages need the mobile treatment as much as any other.
   ====================================================================== */

/* ------------------------------------------------------- 1. overflow */

@media (max-width: 600px) {
	/* `1fr` means `minmax(auto, 1fr)`, and the featured image's 1600px
	   width attribute gave the track a 442px floor inside a 358px column.
	   `minmax(0, …)` lets the track shrink to its container instead. */
	.mdc-blog-archive .mdc-post-grid,
	.mdc-post-grid { grid-template-columns: minmax(0, 1fr) !important; }
}

@media (max-width: 782px) {
	/* Long unbroken strings — email addresses, URLs — must wrap rather
	   than set the width of whatever holds them. */
	.mdc-footer a,
	.mdc-topbar a,
	.mdc-footer__contact-item,
	.mdc-contact-cell { overflow-wrap: anywhere; }

	/* Media never widens its column. */
	img, svg, video, iframe, table { max-width: 100%; }
}

/* --------------------------------------- 2. two-up short card grids */

@media (max-width: 600px) {
	/* Stat tiles, specialty tiles and the service cards carry an icon,
	   a short heading and two lines of copy — they read fine at ~166px
	   and halve the scroll. Grids whose cards hold real prose are left
	   one-up further down. */
	.mdc-rcm__grid,
	.mdc-spechome__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px;
	}

	.mdc-rcm__card { padding: 22px 14px 20px; }
	.mdc-rcm__icon { width: 48px; height: 48px; margin-bottom: 14px; }
	.mdc-rcm__icon svg { width: 22px; height: 22px; }
	.mdc-rcm__value { font-size: 34px; }
	.mdc-rcm__desc { margin-bottom: 16px; font-size: 13px; }
	.mdc-rcm__arrow { width: 34px; height: 34px; }
	.mdc-rcm__title { font-size: 15px; }

	.mdc-spechome__card { padding: 20px 16px 18px; }
	.mdc-spechome__icon { width: 40px; height: 40px; }

	/* The decorative corner blooms are sized for a 300px card and swamp
	   a 166px one. */
	.mdc-rcm__card::before { width: 76px; height: 76px; top: -24px; right: -24px; }
}

/* --------------------------- 3. tap targets — 44px minimum on touch */

@media (max-width: 782px) {
	/* Footer and utility links sat at 17-21px tall. These are dense lists
	   of twenty-odd links, so they take the 24px WCAG 2.5.8 AA minimum
	   with room to spare rather than the 44px reserved for the primary
	   controls below — at 44px each the footer grew by 450px, which is a
	   worse mobile experience than the one it fixed. */
	.mdc-footer__links li a,
	.mdc-footer__contact-item a,
	.mdc-footer__bottom a {
		display: inline-block;
		min-height: 32px;
		padding-block: 6px;
		line-height: 1.4;
	}

	/* The social row is an icon strip; grow the hit box, not the glyph. */
	.mdc-footer .wp-block-social-link,
	.wp-block-social-links .wp-block-social-link { margin: 0; }

	.wp-block-social-link-anchor {
		display: grid;
		place-items: center;
		min-width: 44px;
		min-height: 44px;
	}

	/* The specialty category filters measured 37px. */
	.mdc-spec-filter {
		min-height: 44px;
		padding-block: 11px;
	}

	/* Post table-of-contents toggle was 22x22. */
	.mdc-toc__toggle {
		min-width: 44px;
		min-height: 44px;
	}

	/* The navigation hamburger was a 24px glyph with no padding. */
	.wp-block-navigation__responsive-container-open,
	.wp-block-navigation__responsive-container-close {
		min-width: 44px;
		min-height: 44px;
		padding: 10px;
	}

	/* Topbar phone/email are the two links most likely to be tapped
	   first on a phone. */
	.mdc-topbar__item a {
		display: inline-block;
		min-height: 40px;
		padding-block: 11px;
	}
}

/* ---------------------------------------------------------- 4. footer */

@media (max-width: 600px) {
	/* The footer runs as a two-column grid, which left the Contact column
	   165px wide — narrower than the email address it holds, so the
	   address broke mid-word. The columns carry no class of their own, so
	   the last one is addressed by position. */
	.mdc-footer__top > .wp-block-column:last-child { grid-column: 1 / -1; }

	.mdc-footer__contact-item { padding-left: 32px !important; }

	.mdc-footer__bottom {
		flex-direction: column;
		gap: 4px;
		text-align: center;
	}
}

/* ------------------------------------- 5. density and legibility */

@media (max-width: 600px) {
	/* 50px of section padding on a 390px screen is proportionally far
	   more than the 90px the desktop layout uses. */
	:root { --mdc-section-pad: 44px; }

	/* Cards that centre four or five lines of copy are harder to scan on
	   a narrow column than the same copy ranged left. Headings stay
	   centred where the design centres them. */
	.mdc-spxref__feature,
	.mdc-spxref__problem,
	.mdc-svcx__card,
	.mdc-svcx__sub { text-align: left; }

	.mdc-spxref__feature .mdc-svcx__card-icon,
	.mdc-spxref__choose-card .mdc-svcx__card-icon { margin-inline: 0; }

	/* Trim the generous card padding — at 362px wide it costs more than
	   it buys. */
	.mdc-spxref__feature,
	.mdc-spxref__component,
	.mdc-spxref__choose-card { padding: 22px 18px 24px; }

	.mdc-spxref__problem { padding: 20px 18px 22px; }
	.mdc-svcx__sub { padding: 22px 18px 24px; }
	.mdc-case-study { padding: 24px 20px; }

	/* Nothing below 13px on a phone. */
	.mdc-footer,
	.mdc-footer p,
	.mdc-footer li { font-size: 14px; }
}

/* Body copy must never fall under 16px in an input — iOS zooms the whole
   page when a focused field is smaller than that. */
@media (max-width: 782px) {
	input, select, textarea { font-size: 16px; }
}

/* ======================================================================
   Mobile pass — Services and Specialities, listings and detail pages
   ----------------------------------------------------------------------
   These four route families were rebuilt from the reference pages, and
   the reference parity rules were written against a desktop viewport.
   Two of them leaked past their breakpoint; the rest is density work.
   ====================================================================== */

@media (max-width: 767px) {
	/* The metric band ran a two-column grid with no gap at all, so the
	   figures butted against each other and the icons read as one strip.
	   The first stat spans the row, the remaining four pair up. */
	.mdc-svcx__stats-inner {
		gap: 22px 18px;
		padding: 30px 22px;
	}

	.mdc-svcx__stat { column-gap: 12px; }
	.mdc-svcx__stat-icon { width: 38px; height: 38px; }
	.mdc-svcx__stat b { font-size: 26px; }
	.mdc-svcx__stat span:not(.mdc-svcx__stat-icon) { font-size: 13px; line-height: 1.35; }
}

@media (max-width: 600px) {
	/* Cards that carry an icon, a heading and a sentence or two go two-up:
	   at 175px they still hold roughly six words a line, and the grids
	   they belong to shrink by about a third.

	   The two grids left one-up — features and components — are excluded
	   on purpose. Their cards carry a sub-list of five to seven procedure
	   names underneath the copy, which at 175px would wrap nearly every
	   item onto a second line and end up taller two-up than one-up. */
	.mdc-spxref__problems,
	.mdc-spxref__choose,
	.mdc-svcx__cards,
	.mdc-svcx__subs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.mdc-spxref__problem,
	.mdc-spxref__choose-card,
	.mdc-svcx__card,
	.mdc-svcx__sub {
		padding: 16px 13px 18px;
		text-align: left;
	}

	.mdc-spxref__problem h3,
	.mdc-spxref__choose-card h3,
	.mdc-svcx__card h3,
	.mdc-svcx__sub h3 { font-size: 15px; line-height: 1.25; }

	.mdc-spxref__problem p,
	.mdc-spxref__choose-card p,
	.mdc-svcx__card p,
	.mdc-svcx__sub p { font-size: 13px; line-height: 1.5; }

	/* These cards are flex columns centred on the cross axis, so ranging
	   the text left leaves the icon stranded in the middle. */
	.mdc-spxref__feature,
	.mdc-spxref__choose-card,
	.mdc-svcx__card { align-items: flex-start; }

	/* Feature and component cards stay one-up but lose some of the air
	   between their list rows — seven rows at 36px each was over half the
	   card. */
	.mdc-spxref__list li { padding-block: 7px; }

	/* The two listings put their tiles two-up already; only the labels
	   needed room to breathe. */
	.mdc-spec-tile__label { font-size: 14px; line-height: 1.3; }
	.mdc-services-card__name { font-size: 15px; line-height: 1.3; }
}

/* Carousel dots are 9-10px of visible ink. Padding plus a content-box
   background grows the button to a thumb-sized control while the dot it
   paints stays the same size. Sizing the box rather than overlaying a
   44px pseudo-element matters here: the dots sit 8px apart, so overlaid
   hit areas would cover their neighbours and a tap aimed at one dot
   would land on the next. Each button owns its own strip instead.

   The appointment page draws 40px dots already and is left alone. */
@media (max-width: 782px) {
	.mdc-testimonials__dots { gap: 0; }

	/* The reference-layout quote carousel pins its dots to 9px with a
	   four-class selector, so this has to be at least as specific. */
	.mdc-testimonials__dots button,
	.mdc-svcref .mdc-svcx__quotes .mdc-testimonials__dots button {
		box-sizing: content-box;
		padding: 17px 8px;
		background-clip: content-box;
	}

	/* The appointment page draws 40px numbered dots and needs neither. */
	.page-appointment .mdc-testimonials__dots button {
		box-sizing: border-box;
		padding: 0;
		background-clip: border-box;
	}

	/* Disclosure rows were 23px tall across their full width. */
	.wp-block-details summary,
	.mdc-svcx__acc-item summary {
		min-height: 44px;
		padding-block: 11px;
	}

	/* The footer contact rows sit in a list that styles its links inline. */
	.mdc-footer__contact-item a { display: inline-block; min-height: 32px; padding-block: 6px; }
}
