/**
 * 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;
}

.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 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(4, 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: 0;
	transform: translateY(14px);
	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: center;
	justify-content: flex-start;
	gap: 18px;
	height: 100%;
	padding: 22px 15px 26px;
	border: 2px solid #f0f2f3;
	border-radius: 50px;
	background: #fff;
	color: inherit;
	text-align: center;
	text-decoration: none;
	transition: border-color .4s ease, box-shadow .4s ease, transform .4s ease;
}

/* Photography sits where the reference places its icon: a centred circle
   above the label, so the grid rhythm is unchanged. */
.page-services .mdc-services-card__thumb {
	display: block;
	width: 122px;
	height: 122px;
	overflow: hidden;
	border-radius: 50%;
	background: var(--mdc-primary-tint);
}

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

.page-services .mdc-services-card__name {
	color: var(--mdc-primary-dark);
	font-size: 20px;
	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: rgba(46, 125, 156, .6);
	box-shadow: 0 16px 32px rgba(12, 46, 62, .16);
	transform: translateY(-3px);
}

.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: 18px 11px 20px; border-radius: 32px; }
	.page-services .mdc-services-card__thumb { width: 88px; height: 88px; }
	.page-services .mdc-services-card__name { 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; }
}

/* 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%;
	mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.mdc-marquee__track {
	display: flex;
	align-items: center;
	gap: 25px;
	width: max-content;
	animation: mdc-scroll var(--mdc-marquee-duration, 40s) linear infinite;
}

.mdc-marquee:hover .mdc-marquee__track {
	animation-play-state: paused;
}

/* 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);
}

.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;
}

.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;
}

.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);
}

.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);
}

.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;
	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%;
	margin-top: 20px;
	background: var(--mdc-primary-dark);
	color: #fff;
	flex: 0 0 auto;
}

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

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

/* -------------------------------------------------------------- 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;
}

/* 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;
}

/* --------------------------------------------------------------- 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;
}

.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 img {
		height: 90px;
	}
}

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

	.mdc-topbar__inner {
		flex-direction: column;
		justify-content: center;
		align-items: center;
		text-align: center;
		gap: 6px;
	}

	.mdc-topbar__left {
		flex-direction: column;
		gap: 4px;
	}

	.mdc-topbar__item {
		padding: 0;
		border-left: 0;
		font-size: 13px;
	}

	.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: 50px;
	}

	.mdc-marquee__item img {
		height: 70px;
	}

	.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 {
	align-items: center;
	gap: 14px;
	margin-top: 6px;
}

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

.mdc-contact-card__social .wp-block-social-links {
	gap: 10px;
}

.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) {
	.mdc-scope .mdc-topbar__social,
	.mdc-scope .mdc-topbar__item--phone {
		display: none;
	}

	.mdc-scope .mdc-topbar__inner {
		flex-direction: column;
		align-items: center;
		gap: 0;
	}

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

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

	.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;
	}
}

@media (min-width: 1121px) {
/* Desktop-only: above 1121px the horizontal menu is shown (below that the
   pass-1 rule swaps in the drawer). The icon-above-label panel is a
   mega-menu pattern — at 390px it rendered a 736px-tall block inside an
   844px drawer, so the drawer keeps the compact list. */
	/* --- services dropdown ----------------------------------------------------
	   This is measured from the menu's real hover state, rather than a forced
	   Elementor class. At 1440px the reference panel is 1440x397 at y=121. Its
	   six links form three 433px columns and two rows: the 80px icons begin at
	   y=171/350 and their 18px labels at y=248/427. The panel appears as soon as
	   Services is hovered, remains open while the pointer is inside it, and
	   closes once the pointer leaves the menu. */

	/* `content_width: "full_width"` in the widget settings: the open panel spans
	   the whole viewport, with its contents boxed to 1300px and centred. The
	   708px measured in the first pass was an artefact of forcing `.e-active`
	   without the JS that sets Elementor's `--stretch-*` properties.

	   Positioning the panel against `.mdc-navbar` (already `position: relative`
	   and full-bleed) rather than the menu item is what lets it break out to
	   full width without magic offsets. */
	/* Core wraps the menu in four nested `position: relative` elements between
	   the item and the header bar, so all of them have to be neutralised for the
	   panel to resolve against `.mdc-navbar`. Only inside this desktop query —
	   the drawer below 1121px still needs its own positioning. */
	.mdc-scope .mdc-nav .wp-block-navigation-item.has-child,
	.mdc-scope .mdc-nav .wp-block-navigation__container,
	.mdc-scope .mdc-nav .wp-block-navigation__responsive-dialog,
	.mdc-scope .mdc-nav .wp-block-navigation__responsive-container:not(.is-menu-open),
	.mdc-scope .mdc-navbar__inner > nav.wp-block-navigation {
		position: static;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__submenu-container {
		/* `menu_item_title_distance_from_content: 0` — the panel butts directly
		   against the menu item's bottom edge, not the bottom of the header bar.
		   That is not cosmetic: leaving the 31px of navbar padding between them
		   creates a dead zone that closes the menu before the pointer reaches it.
		   70px places the local panel at the reference's y=121. */
		top: 70px;
		left: 0;
		right: 0;
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		grid-template-rows: repeat(2, 104px);
		row-gap: 75px;
		box-sizing: border-box;
		width: auto;
		height: 0;
		min-width: 0;
		max-width: none;
		padding: 0 max(20px, calc(50% - 650px));
		overflow: hidden;
		border: 0;
		border-radius: 0;
		background: var(--mdc-secondary);
		border-top: 1px solid var(--mdc-border);
		box-shadow: 0 18px 32px rgba(12, 46, 62, 0.09);
		pointer-events: none;
		transition: none;
	}

	/* Core re-declares `min-width: 200px` on `.has-child:hover`; these rules
	   also provide the pointer-retaining hover/focus behaviour of the reference. */
	.mdc-scope .mdc-nav .wp-block-navigation-item.has-child:hover > .wp-block-navigation__submenu-container,
	.mdc-scope .mdc-nav .wp-block-navigation-item.has-child:focus-within > .wp-block-navigation__submenu-container {
		width: auto;
		height: 397px;
		min-width: 0;
		padding-top: 50px;
		padding-bottom: 64px;
		pointer-events: auto;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item {
		width: auto;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		gap: 0;
		box-sizing: border-box;
		height: 104px;
		min-height: 104px;
		padding: 0;
		color: var(--mdc-heading);
		font-size: 18px;
		font-weight: 400;
		line-height: 20px;
		text-align: center;
		transition: color 0.3s ease-in-out;
	}

	/* Match the original Services mega-menu: each destination has a clear
	   icon above its label while the full-width panel remains link-based. */
	.mdc-scope .mdc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before {
		content: "";
		display: block;
		width: 80px;
		height: 80px;
		margin-bottom: -3px;
		background-position: center;
		background-repeat: no-repeat;
		background-size: contain;
	}

	.mdc-scope .mdc-nav .wp-block-navigation__submenu-container a[href*="medical-billing-services"]::before {
		background-image: url('../images/nav-icon-medical-billing-services.svg');
	}

	.mdc-scope .mdc-nav .wp-block-navigation__submenu-container a[href*="revenue-cycle-management"]::before {
		background-image: url('../images/nav-icon-revenue-cycle-management.svg');
	}

	.mdc-scope .mdc-nav .wp-block-navigation__submenu-container a[href*="front-office-management"]::before {
		background-image: url('../images/nav-icon-front-office-management.svg');
	}

	.mdc-scope .mdc-nav .wp-block-navigation__submenu-container a[href*="credentialing-and-enrollment"]::before {
		background-image: url('../images/nav-icon-provider-credentialing.svg');
	}

	.mdc-scope .mdc-nav .wp-block-navigation__submenu-container a[href*="denial-management"]::before {
		background-image: url('../images/nav-icon-denial-management.svg');
	}

	.mdc-scope .mdc-nav .wp-block-navigation__submenu-container a[href*="telemedicine-telehealth"]::before {
		background-image: url('../images/nav-icon-telemedicine-billing.svg');
	}

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

}

/* ==================================================== 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: "7901 4th St N";
	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);
}

/* 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%);
}

/* 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);
}

.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);
}

.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);
}

.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);
}

/* 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);
}

.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;
}

.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: var(--mdc-primary-mid);
		box-shadow: 0 14px 30px rgba(12, 46, 62, 0.12);
		transform: translateY(-5px);
	}

	.mdc-svc-home__item:hover {
		border-color: var(--mdc-primary-tint-strong);
		box-shadow: 0 10px 24px rgba(12, 46, 62, 0.1);
		transform: translateX(5px);
	}

	.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;
}

.page-medical-billing-specialties .mdc-main--full {
	background: #fff;
}

/* 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 */

.page-medical-billing-specialties .mdc-spec-popular {
	max-width: var(--spec-content);
	margin-inline: auto;
	padding: 86px 40px 94px;
}

.page-medical-billing-specialties .mdc-spec-popular__head {
	margin-bottom: 44px;
	text-align: center;
}

.page-medical-billing-specialties .mdc-spec-rule {
	display: block;
	width: 96px;
	height: 4px;
	margin: 0 auto 22px;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--mdc-primary), var(--mdc-kpi));
}

.page-medical-billing-specialties .mdc-spec-popular__head h2 {
	margin: 0;
	color: var(--mdc-heading);
	font-size: clamp(28px, 3.4vw, 41px);
	font-weight: 300;
	line-height: 1.2;
}

.page-medical-billing-specialties .mdc-spec-popular__head h2 strong {
	font-weight: 600;
}

.page-medical-billing-specialties .mdc-spec-popular__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.page-medical-billing-specialties .mdc-spec-popular__item {
	min-width: 0;
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .5s ease var(--mdc-reveal-delay, 0ms), transform .5s 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: center;
	gap: 20px;
	min-height: 208px;
	padding: 30px 20px;
	border: 1px solid transparent;
	border-radius: 22px;
	color: var(--mdc-heading);
	text-align: center;
	text-decoration: none;
	transition: transform .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.page-medical-billing-specialties .mdc-spec-popular__item a:hover {
	background: var(--mdc-primary-tint);
	border-color: rgba(46, 125, 156, .22);
	box-shadow: 0 12px 28px rgba(12, 46, 62, .09);
	transform: translateY(-4px);
}

.page-medical-billing-specialties .mdc-spec-popular__item a:focus-visible {
	outline: 3px solid var(--mdc-primary);
	outline-offset: 2px;
}

.page-medical-billing-specialties .mdc-spec-popular__icon {
	display: grid;
	place-items: center;
	width: 94px;
	height: 94px;
	color: var(--mdc-primary);
	transition: transform .25s ease, color .25s ease;
}

.page-medical-billing-specialties .mdc-spec-popular__icon svg {
	width: 100%;
	height: 100%;
	stroke-width: 1.3;
}

.page-medical-billing-specialties .mdc-spec-popular__item a:hover .mdc-spec-popular__icon,
.page-medical-billing-specialties .mdc-spec-popular__item a:focus-visible .mdc-spec-popular__icon {
	color: var(--mdc-primary-dark);
	transform: scale(1.06);
}

.page-medical-billing-specialties .mdc-spec-popular__label {
	font-size: 19px;
	font-weight: 600;
	line-height: 1.3;
}

/* ------------------------------------------- 4. dark full-width icon grid */

.page-medical-billing-specialties .mdc-spec-grid-section {
	padding: 60px 40px;
	background: var(--spec-dark);
}

.page-medical-billing-specialties .mdc-spec-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 20px;
	max-width: var(--spec-content);
	margin: 0 auto;
	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;
}

.page-medical-billing-specialties .mdc-spec-tile a {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	height: 100%;
	min-height: 174px;
	padding: 22px 14px;
	border: 1px solid transparent;
	border-radius: var(--spec-tile-radius);
	color: var(--mdc-heading);
	background: #fff;
	text-align: center;
	text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background-color .2s ease;
}

.page-medical-billing-specialties .mdc-spec-tile__detail {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 28px 22px;
	border-radius: inherit;
	background: var(--mdc-primary);
	color: #fff;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.55;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .22s ease, transform .22s ease;
}

.page-medical-billing-specialties .mdc-spec-tile__icon {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	color: var(--mdc-primary);
	transition: transform .2s ease, color .2s ease;
}

.page-medical-billing-specialties .mdc-spec-tile__icon svg {
	width: 100%;
	height: 100%;
}

.page-medical-billing-specialties .mdc-spec-tile__label {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	overflow-wrap: break-word;
}

.page-medical-billing-specialties .mdc-spec-tile a:hover,
.page-medical-billing-specialties .mdc-spec-tile a:focus-visible {
	border-color: var(--mdc-primary);
	background: var(--mdc-primary-tint);
	box-shadow: 0 12px 26px rgba(0, 0, 0, .26);
	transform: translateY(-4px);
}

.page-medical-billing-specialties .mdc-spec-tile a:hover .mdc-spec-tile__icon,
.page-medical-billing-specialties .mdc-spec-tile a:focus-visible .mdc-spec-tile__icon {
	color: var(--mdc-primary-dark);
	transform: scale(1.06);
}

.page-medical-billing-specialties .mdc-spec-tile a:hover .mdc-spec-tile__detail,
.page-medical-billing-specialties .mdc-spec-tile a:focus-visible .mdc-spec-tile__detail {
	opacity: 1;
	transform: none;
}

.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 */

@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-popular__grid { gap: 18px; }
	.page-medical-billing-specialties .mdc-spec-popular__item a { min-height: 178px; padding: 22px 14px; }
	.page-medical-billing-specialties .mdc-spec-popular__icon { width: 72px; height: 72px; }
	.page-medical-billing-specialties .mdc-spec-grid-section { padding: 52px 28px; }
}

@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 50px; }
	.page-medical-billing-specialties .mdc-spec-popular__head { margin-bottom: 30px; }
	.page-medical-billing-specialties .mdc-spec-popular__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.page-medical-billing-specialties .mdc-spec-popular__icon { width: 56px; height: 56px; }
	.page-medical-billing-specialties .mdc-spec-popular__label { font-size: 15px; }

	.page-medical-billing-specialties .mdc-spec-grid-section { padding: 44px 16px; }
	.page-medical-billing-specialties .mdc-spec-grid { gap: 12px; }
	.page-medical-billing-specialties .mdc-spec-tile a { min-height: 140px; padding: 18px 10px; gap: 10px; border-radius: 18px; }
	.page-medical-billing-specialties .mdc-spec-tile__icon { width: 38px; height: 38px; }
	.page-medical-billing-specialties .mdc-spec-tile__label { font-size: 14px; }
	.page-medical-billing-specialties .mdc-spec-tile__detail { font-size: 13px; padding: 18px; }

	.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: the reference drops to a single full-width card
   here, which loses the dense icon-grid rhythm the rest of the page keeps. */
@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-button:hover { transform: none; }
	.page-medical-billing-specialties .mdc-spec-tile a:hover .mdc-spec-tile__icon,
	.page-medical-billing-specialties .mdc-spec-popular__item a:hover .mdc-spec-popular__icon { 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;
	}
}
