/* =================================== LOCAL-DESIGN BASE Component CSS shared by every build. Everything a site can look different in lives in the :root token block below; the component rules reference tokens only. A build overwrites the token values from its design record (sites/<niche>/<slug>.design.json, written by _kit/tools/design/roll-direction.js) and may append a short per-site stylesheet after this file for one-off treatments. Do not hardcode a colour, radius, weight, or shadow below :root. =================================== */
:root {--color-primary: #0e7a3f;--color-primary-ink: #ffffff;--color-accent: #d9393c;--color-ink: #182a20;--color-body: #2f3d35;--color-muted: #6b776f;--color-line: #dde4de;--color-bg: #ffffff;--color-bg-alt: #f3f7f2;--font-heading: 'Oswald', system-ui, sans-serif;--font-body: 'Nunito Sans', system-ui, sans-serif;--heading-weight: 600;--heading-tracking: 0.01em;--heading-case: uppercase;--nav-weight: 600;--btn-weight: 700;--radius: 0;--radius-btn: 0;--radius-img: 0;--border-w: 2px;--shadow-card: none;--btn-case: uppercase;--btn-tracking: 0.04em;--hero-scrim: rgba(8, 10, 12, 0.5);--color-success: #16a34a;--color-error: #dc2626;--color-on-dark: #ffffff;--color-star: #f59e0b;--fs-h1: clamp(2.5rem, 5vw, 4rem);--fs-h2: clamp(1.75rem, 3.5vw, 2.5rem);--fs-h3: clamp(1.25rem, 2vw, 1.5rem);--fs-body: 1rem;--fs-small: 0.875rem;--s-1: 0.5rem;--s-2: 1rem;--s-3: 1.5rem;--s-4: 2rem;--s-5: 3rem;--s-6: 4rem;--s-7: 6rem;--s-8: 8rem;--container: 1200px;--container-narrow: 800px;--header-h: 72px;--section-y: var(--s-6);--section-y-lg: var(--s-7)}
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {font-family: var(--font-body);font-size: var(--fs-body);line-height: 1.6;color: var(--color-body);background: var(--color-bg);-webkit-font-smoothing: antialiased}
img, picture, svg, video { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
a:hover { text-decoration: none; }
h1, h2, h3, h4 {font-family: var(--font-heading);font-weight: var(--heading-weight);line-height: 1.1;color: var(--color-ink);letter-spacing: var(--heading-tracking);text-transform: var(--heading-case)}
h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); font-weight: min(800, var(--heading-weight)); }
h4 { font-size: 1.125rem; font-weight: min(700, var(--heading-weight)); }
h1, h2, h3, h4 { margin-bottom: var(--s-2); }
.container {width: 100%;max-width: var(--container);margin-inline: auto;padding-inline: var(--s-3)}
.container-narrow { max-width: var(--container-narrow); }
section { padding-block: var(--section-y); }
@media (min-width: 768px) { section { padding-block: var(--section-y-lg); } }
figure.photo img, .photo img, img.photo { border-radius: var(--radius-img); }
.btn {display: inline-flex;align-items: center;justify-content: center;gap: var(--s-1);padding: 0.875rem 1.75rem;font-family: var(--font-heading);font-weight: var(--btn-weight);font-size: 1rem;text-decoration: none;text-transform: var(--btn-case);letter-spacing: var(--btn-tracking);border: var(--border-w) solid transparent;border-radius: var(--radius-btn);cursor: pointer;transition: background-color 0.15s, color 0.15s, border-color 0.15s}
.btn-primary {background: var(--color-accent);color: var(--color-on-dark)}
.btn-primary:hover { background: var(--color-ink); }
.btn-secondary {background: transparent;color: var(--color-ink);border-color: var(--color-ink)}
.btn-secondary:hover { background: var(--color-ink); color: var(--color-on-dark); }
.btn-call {background: var(--color-ink);color: var(--color-on-dark);text-decoration: none}
.btn-call:hover { background: var(--color-accent); }
.skip-link {position: absolute;top: 0;left: 0;z-index: 100;padding: var(--s-2) var(--s-3);background: var(--color-ink);color: var(--color-on-dark);font-weight: 700;text-decoration: none;transform: translateY(-150%)}
.skip-link:focus {transform: translateY(0);outline: 3px solid var(--color-accent);outline-offset: 2px}
.site-header {position: sticky;top: 0;z-index: 50;background: var(--color-bg);border-bottom: 1px solid var(--color-line);height: var(--header-h)}
.site-header > .container {display: flex;align-items: center;justify-content: space-between;height: 100%}
.site-header nav { display: none; gap: var(--s-3); align-items: center; }
.site-header nav a { text-decoration: none; font-weight: var(--nav-weight); }
.site-header nav a:hover { color: var(--color-accent); }
@media (min-width: 768px) { .site-header nav { display: flex; height: 100%; } }
.site-header nav .has-dropdown { position: relative; display: flex; align-items: center; height: 100%; }
.site-header nav .has-dropdown > a::after { content: ' \25BE'; font-size: 0.75em; color: var(--color-accent); }
.site-header nav .dropdown {position: absolute;top: 100%;left: -1rem;min-width: 260px;background: var(--color-bg);border: 1px solid var(--color-line);border-radius: var(--radius);box-shadow: var(--shadow-card);list-style: none;margin: 0;padding: 0.5rem 0;display: none;z-index: 60}
.site-header nav .has-dropdown:hover .dropdown,
.site-header nav .has-dropdown:focus-within .dropdown { display: block; }
.site-header nav .dropdown a {display: block;padding: 0.5rem 1rem;font-weight: 600;white-space: nowrap}
.site-header nav .dropdown a:hover,
.site-header nav .dropdown a:focus { background: var(--color-bg-alt); color: var(--color-accent); }
.header-call { display: inline-flex; align-items: center; gap: var(--s-1); padding: 0.625rem 1rem; background: var(--color-ink); color: var(--color-on-dark); text-decoration: none; font-weight: 700; border-radius: var(--radius-btn); }
.header-call span { display: none; }
@media (min-width: 480px) { .header-call span { display: inline; } }
.hero {background: var(--color-bg-alt);padding-block: var(--s-5)}
@media (min-width: 768px) {.hero { padding-block: var(--s-6); }
.hero .container { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: var(--s-5); align-items: center; }}
.hero h1 { margin-bottom: var(--s-2); }
.hero .subhead { font-size: 1.25rem; color: var(--color-body); margin-bottom: var(--s-3); max-width: 52ch; }
.lead-form {background: var(--color-bg);padding: var(--s-3);border: var(--border-w) solid var(--color-ink);border-radius: var(--radius);box-shadow: var(--shadow-card)}
.lead-form h2 { font-size: 1.5rem; margin-bottom: var(--s-2); }
.lead-form .form-row { display: grid; gap: var(--s-2); margin-bottom: var(--s-2); }
.lead-form label { display: block; font-weight: 600; font-size: 0.875rem; margin-bottom: 0.25rem; }
.lead-form input, .lead-form select, .lead-form textarea {width: 100%;padding: 0.75rem;border: var(--border-w) solid var(--color-line);border-radius: var(--radius);background: var(--color-on-dark);font-size: 1rem}
.lead-form input:focus, .lead-form select:focus, .lead-form textarea:focus {outline: 2px solid var(--color-accent);outline-offset: 2px;border-color: var(--color-ink)}
.lead-form textarea { min-height: 100px; resize: vertical; }
.lead-form .btn { width: 100%; }
.lead-form .hp { position: absolute; left: -9999px; }
.lead-form .form-note { font-size: 0.8125rem; color: var(--color-muted); margin-top: var(--s-1); text-align: center; }
.trust-bar { background: var(--color-ink); color: var(--color-on-dark); padding-block: var(--s-3); }
.trust-bar ul {list-style: none;padding: 0;margin: 0;display: grid;grid-template-columns: repeat(2, 1fr);gap: var(--s-2);text-align: center}
@media (min-width: 768px) { .trust-bar ul { grid-template-columns: repeat(5, 1fr); } }
.trust-bar li { font-weight: 700; font-size: 0.9375rem; }
.trust-bar li span { display: block; font-size: 1.25rem; color: var(--color-accent); margin-bottom: 0.25rem; }
.services-cards { display: grid; grid-template-columns: 1fr; gap: var(--s-3); }
@media (min-width: 640px) { .services-cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .services-cards { grid-template-columns: repeat(3, 1fr); } }
.service-card {display: block;padding: var(--s-3);background: var(--color-bg);border: var(--border-w) solid var(--color-line);border-radius: var(--radius);box-shadow: var(--shadow-card);text-decoration: none;color: inherit;transition: border-color 0.15s, background 0.15s}
.service-card:hover { border-color: var(--color-ink); background: var(--color-bg-alt); }
.service-card h3 { margin-bottom: var(--s-1); }
.service-card .arrow { display: inline-block; margin-top: var(--s-2); font-weight: 800; color: var(--color-accent); }
.midform { background: var(--color-primary); color: var(--color-primary-ink); }
.midform h2 { color: var(--color-primary-ink); }
.midform .lead-form h2 { color: var(--color-ink); }
.midform .subhead { margin-bottom: var(--s-3); }
@media (min-width: 768px) {.midform .container { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-5); align-items: center; }}
.midform .lead-form { margin-top: var(--s-3); }
@media (min-width: 768px) { .midform .lead-form { margin-top: 0; } }
.reviews { background: var(--color-bg-alt); }
.reviews-grid { display: grid; grid-template-columns: 1fr; gap: var(--s-3); }
@media (min-width: 768px) { .reviews-grid { grid-template-columns: repeat(3, 1fr); } }
.review-card { background: var(--color-on-dark); padding: var(--s-3); border: var(--border-w) solid var(--color-line); border-radius: var(--radius); }
.review-card .stars { color: var(--color-star); font-size: 1.125rem; margin-bottom: var(--s-1); letter-spacing: 2px; }
.review-card blockquote { font-style: italic; margin-bottom: var(--s-2); }
.review-card cite { font-style: normal; font-weight: 700; display: block; }
.review-card cite span { display: block; font-weight: 400; font-size: 0.875rem; color: var(--color-muted); }
.faq details {border-bottom: var(--border-w) solid var(--color-line);padding-block: var(--s-2)}
.faq summary {font-family: var(--font-heading);font-weight: var(--heading-weight);font-size: 1.125rem;cursor: pointer;list-style: none;position: relative;padding-right: 2rem}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {content: '+';position: absolute;right: 0;top: 0;font-size: 1.5rem;color: var(--color-accent)}
.faq details[open] summary::after { content: '−'; }
.faq details > p, .faq details .faq-a { margin-top: var(--s-2); }
.cta-band {background: var(--color-ink);color: var(--color-on-dark);text-align: center}
.cta-band h2 { color: var(--color-on-dark); margin-bottom: var(--s-2); }
.cta-band p { font-size: 1.125rem; margin-bottom: var(--s-3); }
.site-footer {background: var(--color-ink);color: var(--color-on-dark);padding-block: var(--s-5) var(--s-3);font-size: 0.9375rem}
.site-footer a { color: var(--color-on-dark); }
.site-footer .footer-grid {display: grid;gap: var(--s-4);grid-template-columns: 1fr}
@media (min-width: 768px) {.site-footer .footer-grid { grid-template-columns: 2fr 1fr 1fr 1fr; }}
.site-footer h4 { color: var(--color-on-dark); margin-bottom: var(--s-2); font-size: 1rem; text-transform: var(--btn-case); letter-spacing: 0.06em; }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { margin-bottom: 0.5rem; }
.site-footer .footer-bottom {margin-top: var(--s-4);padding-top: var(--s-3);border-top: 1px solid rgba(255,255,255,0.15);display: flex;justify-content: space-between;flex-wrap: wrap;gap: var(--s-2);font-size: 0.8125rem;color: rgba(255,255,255,0.7)}
.mobile-cta {position: fixed;bottom: 0;left: 0;right: 0;z-index: 100;display: grid;grid-template-columns: 1fr 1fr;padding-bottom: env(safe-area-inset-bottom);transform: translateY(100%);transition: transform 0.3s ease}
.mobile-cta.visible { transform: translateY(0); }
.mobile-cta a {padding: 1rem;text-align: center;text-decoration: none;font-weight: var(--btn-weight);text-transform: var(--btn-case);font-size: 0.9375rem;font-family: var(--font-heading)}
.mobile-cta .call { background: var(--color-ink); color: var(--color-on-dark); }
.mobile-cta .quote { background: var(--color-accent); color: var(--color-on-dark); }
@media (min-width: 768px) { .mobile-cta { display: none; } }
.breadcrumbs {padding-block: var(--s-2);font-size: 0.875rem;color: var(--color-muted)}
.breadcrumbs a { color: var(--color-muted); }
.breadcrumbs a:hover { color: var(--color-ink); }
.breadcrumbs span[aria-current] { color: var(--color-ink); font-weight: 600; }
.visually-hidden {position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0}
.text-center { text-align: center; }
.mb-3 { margin-bottom: var(--s-3); }
.yt-facade {position: relative;aspect-ratio: 16 / 9;background: var(--color-ink);cursor: pointer;margin: var(--s-4) 0 var(--s-1)}
.yt-facade img { width: 100%; height: 100%; object-fit: cover; display: block; }
.yt-facade iframe { width: 100%; height: 100%; border: 0; display: block; }
.yt-play {position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);width: 72px; height: 48px; border: 0; cursor: pointer;background: var(--color-accent)}
.yt-play::before {content: ""; position: absolute; top: 50%; left: 50%; transform: translate(-40%, -50%);border-style: solid; border-width: 10px 0 10px 16px;border-color: transparent transparent transparent var(--color-primary-ink)}
.yt-play:hover, .yt-play:focus-visible { background: var(--color-ink); }
.yt-caption { font-size: var(--fs-small); color: var(--color-muted); margin-bottom: var(--s-4); }
.scenario {border: 1px solid var(--color-line);background: var(--color-bg-alt);padding: var(--s-4);margin: var(--s-5) 0;border-radius: var(--radius)}
.scenario h2, .scenario h3 { margin-bottom: var(--s-2); }
.scenario p { margin-bottom: var(--s-2); }
.scenario p:last-child { margin-bottom: 0; }
.scenario strong { color: var(--color-ink); }
.calc {border: 1px solid var(--color-line);background: var(--color-bg-alt);padding: var(--s-4);margin: var(--s-4) 0 var(--s-5);border-radius: var(--radius)}
.calc h2, .calc h3 { margin-bottom: var(--s-2); }
.calc .calc-row { margin-bottom: var(--s-2); }
.calc label { display: block; font-weight: 600; color: var(--color-ink); margin-bottom: var(--s-1); }
.calc input[type="number"], .calc select {width: 100%; padding: 0.75rem; border: 1px solid var(--color-line);background: var(--color-bg); font: inherit; border-radius: var(--radius)}
.calc fieldset { border: 0; padding: 0; margin: 0 0 var(--s-2); }
.calc .calc-result {display: none; margin-top: var(--s-3); padding: var(--s-3);background: var(--color-bg); border: 1px solid var(--color-line); border-radius: var(--radius)}
.calc .calc-result.visible { display: block; }
.calc .calc-result .calc-figure { font-family: var(--font-heading); font-size: var(--fs-h3); font-weight: var(--heading-weight); color: var(--color-ink); }
.calc .calc-note { font-size: var(--fs-small); color: var(--color-muted); margin-top: var(--s-1); }
.infographic {border: 1px solid var(--color-line);background: var(--color-bg);padding: var(--s-3);margin: var(--s-3) 0 var(--s-4);border-radius: var(--radius)}
.infographic svg { display: block; width: 100%; height: auto; }
.infographic figcaption { font-size: var(--fs-small); color: var(--color-muted); margin-top: var(--s-1); }
.hero-media { position: absolute; inset: 0; overflow: hidden; z-index: 0; }
.hero-media img, .hero-media video { width: 100%; height: 100%; object-fit: cover; }
.hero-media video { position: absolute; inset: 0; opacity: 0; transition: opacity 0.8s ease; }
.hero-media video.playing { opacity: 1; }
.hero-media::after { content: ""; position: absolute; inset: 0; background: var(--hero-scrim); }
.hero.has-video { position: relative; }
.hero.has-video > *:not(.hero-media) { position: relative; z-index: 1; }
.layout-editorial { --container: 960px; --container-narrow: 720px; --section-y: var(--s-7); --section-y-lg: var(--s-8); }
.layout-editorial .measure > section.content > .container,
.layout-editorial .measure > section.faq > .container { max-width: var(--container-narrow); }
.layout-editorial .measure p { font-size: 1.0625rem; }
.layout-editorial .site-header { position: fixed; top: 0; left: 0; right: 0; background: rgba(0, 0, 0, 0.28); border-bottom-color: transparent; transition: background-color 0.2s, border-color 0.2s; }
.layout-editorial .site-header a, .layout-editorial .site-header .wordmark { color: var(--color-on-dark); }
.layout-editorial .site-header .dropdown a { color: var(--color-ink); }
@media (min-width: 768px) { .layout-editorial .site-header nav { background: transparent; border: 0; box-shadow: none; } }
.layout-editorial.scrolled .site-header { background: var(--color-bg); border-bottom-color: var(--color-line); }
.layout-editorial.scrolled .site-header a, .layout-editorial.scrolled .site-header .wordmark { color: var(--color-ink); }
.layout-editorial .hero { padding-top: calc(var(--header-h) + var(--s-6)); }
.site-header--two-tier-utility { --utility-h: 0px; }
.site-header--two-tier-utility > .container { height: calc(var(--header-h) - var(--utility-h)); }
.site-header--two-tier-utility .utility { display: none; height: var(--utility-h); background: var(--color-ink); color: var(--color-on-dark); font-size: var(--fs-small); }
.site-header--two-tier-utility .utility .container { display: flex; align-items: center; justify-content: space-between; height: 100%; }
.site-header--two-tier-utility .utility a { display: inline-flex; align-items: center; gap: var(--s-1); font-weight: 700; text-decoration: none; }
.site-header--two-tier-utility .utility a:hover { color: var(--color-accent); }
.site-header--two-tier-utility .brand {display: inline-flex; align-items: center; gap: var(--s-1);max-width: 45%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;font-family: var(--font-heading); font-weight: var(--heading-weight); font-size: 1.125rem;color: var(--color-ink); text-decoration: none}
.site-header--two-tier-utility .brand img { height: 40px; width: auto; }
.site-header--two-tier-utility .brand img + span { display: none; }
.site-header--two-tier-utility .header-actions { display: flex; align-items: center; gap: var(--s-1); }
.site-header--two-tier-utility .header-actions .btn-primary { display: none; padding: 0.625rem 1rem; font-size: 0.875rem; }
.site-header--two-tier-utility .nav-toggle-label {display: flex; flex-direction: column; justify-content: center; gap: 5px;width: 44px; height: 44px; padding: 10px; cursor: pointer}
.site-header--two-tier-utility .nav-toggle-label span { display: block; height: 3px; background: var(--color-ink); }
.site-header--two-tier-utility .nav-toggle:focus-visible ~ .header-actions .nav-toggle-label { outline: 2px solid var(--color-accent); }
.site-header--two-tier-utility .nav-toggle:checked ~ nav { display: flex; }
.site-header--two-tier-utility nav {position: absolute; top: 100%; left: 0; right: 0;flex-direction: column; align-items: stretch; gap: 0;padding: var(--s-2) var(--s-3) var(--s-3);background: var(--color-bg); border-bottom: 1px solid var(--color-line); box-shadow: var(--shadow-card);max-height: calc(100vh - var(--header-h)); overflow-y: auto}
.site-header--two-tier-utility nav > a,
.site-header--two-tier-utility nav .has-dropdown > a { display: block; padding: var(--s-1) 0; font-size: 1.125rem; }
.site-header--two-tier-utility nav .has-dropdown { flex-direction: column; align-items: stretch; height: auto; }
.site-header--two-tier-utility nav .dropdown {position: static; display: block; min-width: 0;padding: 0 0 var(--s-1) var(--s-2); border: 0; box-shadow: none}
@media (min-width: 480px) {.site-header--two-tier-utility .header-actions .btn-primary { display: inline-flex; }}
@media (min-width: 768px) {.site-header--two-tier-utility { --utility-h: 36px; --header-h: 108px; }
.site-header--two-tier-utility .utility { display: block; }
.site-header--two-tier-utility .brand { max-width: none; }
.site-header--two-tier-utility nav {position: static; flex-direction: row; align-items: center; gap: var(--s-3);padding: 0; border: 0; box-shadow: none; max-height: none; overflow: visible}
.site-header--two-tier-utility nav > a,
.site-header--two-tier-utility nav .has-dropdown > a { padding: 0; font-size: 1rem; }
.site-header--two-tier-utility nav .has-dropdown { flex-direction: row; height: 100%; }
.site-header--two-tier-utility nav .dropdown {position: absolute; display: none; min-width: 260px; padding: 0.5rem 0;border: 1px solid var(--color-line); box-shadow: var(--shadow-card)}
.site-header--two-tier-utility .nav-toggle-label { display: none; }
.site-header--two-tier-utility .header-call { display: none; }
.site-header--two-tier-utility .header-actions .btn-primary { padding: 0.75rem 1.25rem; font-size: 0.9375rem; }}
.hero--headline-service-buttons { position: relative; background: var(--color-ink); color: var(--color-on-dark); }
.hero--headline-service-buttons > *:not(.hero-media) { position: relative; z-index: 1; }
.hero.hero--headline-service-buttons .container { display: block; }
.hero--headline-service-buttons h1,
.hero--headline-service-buttons .subhead { color: var(--color-on-dark); }
.hero--headline-service-buttons h1 { max-width: 20ch; }
.hero--headline-service-buttons .service-chips { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-1); margin-bottom: var(--s-3); }
.hero--headline-service-buttons .chip {display: inline-flex; align-items: center; justify-content: center; text-align: center;padding: 0.5rem 0.875rem; min-height: 44px; font-weight: 600; font-size: var(--fs-small); line-height: 1.2;color: var(--color-on-dark); text-decoration: none;border: var(--border-w) solid var(--color-on-dark); border-radius: var(--radius-btn);transition: background-color 0.15s, color 0.15s}
.hero--headline-service-buttons .chip:hover,
.hero--headline-service-buttons .chip:focus-visible { background: var(--color-on-dark); color: var(--color-ink); }
.hero--headline-service-buttons .hero-actions { display: flex; flex-direction: column; gap: var(--s-2); }
.hero--headline-service-buttons .hero-actions .btn { width: 100%; }
.hero--headline-service-buttons .btn-call { border-color: var(--color-on-dark); }
.hero--headline-service-buttons .lead-form.lead-form--mini { display: grid; gap: var(--s-2); align-items: end; margin-top: var(--s-4); }
.hero--headline-service-buttons .lead-form--mini label { margin: 0; }
@media (min-width: 480px) {.hero--headline-service-buttons .service-chips { display: flex; flex-wrap: wrap; }
.hero--headline-service-buttons .hero-actions { flex-direction: row; flex-wrap: wrap; }
.hero--headline-service-buttons .hero-actions .btn { width: auto; }}
@media (min-width: 768px) {.hero--headline-service-buttons .lead-form.lead-form--mini { grid-template-columns: 1fr 1fr auto; max-width: 720px; margin-top: var(--s-4); }
.hero--headline-service-buttons .lead-form--mini .btn { width: auto; }}
.trust-bar.trust-bar--overlap-card { background: transparent; color: var(--color-body); padding-block: var(--s-3); }
.trust-bar--overlap-card .card {position: relative; z-index: 2;padding: var(--s-3); background: var(--color-bg);border: var(--border-w) solid var(--color-line); border-radius: var(--radius); box-shadow: var(--shadow-card)}
.trust-bar.trust-bar--overlap-card ul { grid-template-columns: repeat(2, 1fr); gap: var(--s-3); text-align: left; }
.trust-bar.trust-bar--overlap-card li { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s-1); font-weight: 400; font-size: var(--fs-small); line-height: 1.4; color: var(--color-muted); }
.trust-bar.trust-bar--overlap-card li > svg { flex: none; width: 32px; height: 32px; color: var(--color-accent); }
.trust-bar.trust-bar--overlap-card li span { font-weight: 700; font-size: 1.0625rem; color: var(--color-ink); margin-bottom: 0; }
@media (min-width: 768px) {.trust-bar.trust-bar--overlap-card { padding-top: 0; }
.trust-bar--overlap-card .card { margin-top: calc(-1 * var(--s-6)); padding: var(--s-4); }
.trust-bar.trust-bar--overlap-card ul { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--s-4); }
.trust-bar.trust-bar--overlap-card li { flex-direction: row; align-items: center; gap: var(--s-2); }}
.services-grid--list-with-feature { display: block; }
.services-grid--list-with-feature .intro { max-width: var(--container-narrow); margin-bottom: var(--s-4); }
.services-grid--list-with-feature .layout { display: grid; gap: var(--s-4); }
.services-grid--list-with-feature .feature {padding: var(--s-3);background: var(--color-bg-alt);border: var(--border-w) solid var(--color-line);border-radius: var(--radius);box-shadow: var(--shadow-card)}
.services-grid--list-with-feature .feature .photo { margin: 0 0 var(--s-3); }
.services-grid--list-with-feature .feature img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.services-grid--list-with-feature .feature p { margin-bottom: var(--s-3); }
.services-grid--list-with-feature .group + .group { margin-top: var(--s-3); }
.services-grid--list-with-feature .group h3 { font-size: 1.125rem; margin-bottom: var(--s-1); }
.services-grid--list-with-feature ul { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--s-1); }
.services-grid--list-with-feature li {padding-block: var(--s-1);border-bottom: 1px solid var(--color-line)}
.services-grid--list-with-feature li a {display: flex;gap: var(--s-1);align-items: baseline;text-decoration: none;font-weight: 600;color: var(--color-ink)}
.services-grid--list-with-feature li a::before { content: "\2192"; color: var(--color-accent); }
.services-grid--list-with-feature li a:hover { color: var(--color-accent); }
.services-grid--list-with-feature .group:not(.flat) ~ .flat { display: none; }
@media (min-width: 480px) {.services-grid--list-with-feature ul { grid-template-columns: repeat(2, 1fr); column-gap: var(--s-3); }}
@media (min-width: 768px) {.services-grid--list-with-feature .layout { grid-template-columns: 5fr 7fr; gap: var(--s-5); align-items: start; }}
.why-us--pillar-grid .intro { text-align: center; max-width: var(--container-narrow); margin: 0 auto var(--s-5); }
.why-us--pillar-grid .intro p { font-size: 1.125rem; }
.why-us--pillar-grid .pillars {display: grid;grid-template-columns: 1fr;gap: var(--s-4)}
.why-us--pillar-grid .pillar {padding-top: var(--s-3);border-top: 1px solid var(--color-line)}
.why-us--pillar-grid .icon {display: block;width: 2.5rem;height: 2.5rem;margin-bottom: var(--s-2);color: var(--color-accent)}
.why-us--pillar-grid .icon:empty { display: none; }
.why-us--pillar-grid .icon svg { width: 100%; height: 100%; }
.why-us--pillar-grid .pillar h3 { margin-bottom: var(--s-1); }
.why-us--pillar-grid .proof {margin-top: var(--s-2);font-size: var(--fs-small);font-weight: 600;color: var(--color-ink)}
.why-us--pillar-grid .actions { margin-top: var(--s-5); text-align: center; }
@media (min-width: 768px) {.why-us--pillar-grid .pillars { grid-template-columns: repeat(3, 1fr); gap: var(--s-4); }}
@media (min-width: 1024px) {.why-us--pillar-grid .pillars { gap: var(--s-5); }}
.process--horizontal-timeline-strip { background: var(--color-bg-alt); }
.process--horizontal-timeline-strip .intro { text-align: center; max-width: var(--container-narrow); margin: 0 auto var(--s-4); }
.process--horizontal-timeline-strip .intro p { font-size: 1.125rem; }
.process--horizontal-timeline-strip .strip {list-style: none;padding: 0 0 var(--s-2);margin: 0;counter-reset: step;display: flex;gap: var(--s-2);overflow-x: auto;scroll-snap-type: x mandatory;-webkit-overflow-scrolling: touch}
.process--horizontal-timeline-strip .cell {counter-increment: step;flex: 0 0 70vw;scroll-snap-align: start;position: relative;padding: var(--s-3);background: var(--color-bg);border: var(--border-w) solid var(--color-line);border-radius: var(--radius);box-shadow: var(--shadow-card)}
.process--horizontal-timeline-strip .cell + .cell::after {content: "\203A";position: absolute;left: calc(-1 * var(--s-2) / 2 - 0.5ch);top: 50%;transform: translateY(-50%);font-family: var(--font-heading);font-weight: var(--heading-weight);font-size: 1.5rem;line-height: 1;color: var(--color-accent)}
.process--horizontal-timeline-strip .icon { display: block; width: 2.5rem; height: 2.5rem; margin-bottom: var(--s-2); color: var(--color-accent); }
.process--horizontal-timeline-strip .icon:empty { display: none; }
.process--horizontal-timeline-strip .cell h3 { font-size: 1.125rem; margin-bottom: var(--s-1); }
.process--horizontal-timeline-strip .cell h3::before {content: counter(step) ". ";color: var(--color-accent)}
.process--horizontal-timeline-strip .cell p { font-size: var(--fs-small); }
@media (min-width: 768px) {.process--horizontal-timeline-strip .strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: var(--s-3); overflow: visible; scroll-snap-type: none; padding-bottom: 0; }
.process--horizontal-timeline-strip .cell { flex: none; }
.process--horizontal-timeline-strip .cell + .cell::after { left: calc(-1 * var(--s-3) / 2 - 0.5ch); }}
@media (min-width: 1024px) {.process--horizontal-timeline-strip .strip { gap: var(--s-4); }
.process--horizontal-timeline-strip .cell + .cell::after { left: calc(-1 * var(--s-4) / 2 - 0.5ch); }}
.proof--stats-with-scenario { background: var(--color-bg-alt); }
.proof--stats-with-scenario .proof-head { max-width: var(--container-narrow); margin-bottom: var(--s-4); }
.proof--stats-with-scenario .proof-intro { font-size: 1.125rem; }
.proof--stats-with-scenario .proof-split {display: grid;grid-template-columns: 1fr;gap: var(--s-4);align-items: start}
.proof--stats-with-scenario .stat-grid {list-style: none;padding: 0;margin: 0;display: grid;grid-template-columns: repeat(2, 1fr);gap: var(--s-2)}
.proof--stats-with-scenario .stat {display: flex;flex-direction: column;gap: var(--s-1);padding: var(--s-3) var(--s-2);background: var(--color-bg);border: var(--border-w) solid var(--color-line);border-radius: var(--radius);box-shadow: var(--shadow-card);min-width: 0}
.proof--stats-with-scenario .stat-figure {font-family: var(--font-heading);font-weight: var(--heading-weight);font-size: clamp(2rem, 4vw, 3rem);font-variant-numeric: tabular-nums;line-height: 1;letter-spacing: var(--heading-tracking);color: var(--color-ink)}
.proof--stats-with-scenario .stat-label { font-weight: 600; color: var(--color-ink); }
.proof--stats-with-scenario .stat-source { font-size: var(--fs-small); color: var(--color-muted); }
.proof--stats-with-scenario .scenario { margin: 0; background: var(--color-bg); }
@media (min-width: 1024px) {.proof--stats-with-scenario .proof-split { grid-template-columns: 1fr 1fr; gap: var(--s-5); }}
.faq--grouped-by-topic { background: var(--color-bg); }
.faq--grouped-by-topic .faq-head { max-width: var(--container-narrow); margin-bottom: var(--s-4); }
.faq--grouped-by-topic .faq-intro { font-size: 1.125rem; }
.faq--grouped-by-topic .faq-groups {display: grid;grid-template-columns: 1fr;gap: var(--s-4);align-items: start}
.faq--grouped-by-topic .faq-group { min-width: 0; }
.faq--grouped-by-topic .faq-group h3 { margin-bottom: var(--s-1); }
.faq--grouped-by-topic .faq-list { border-top: var(--border-w) solid var(--color-line); }
.faq--grouped-by-topic .faq-a { margin-top: var(--s-2); color: var(--color-body); }
.faq--grouped-by-topic .faq-a p + p { margin-top: var(--s-2); }
.faq--grouped-by-topic .faq-still {margin-top: var(--s-4);padding: var(--s-3);background: var(--color-bg-alt);border: var(--border-w) solid var(--color-line);border-radius: var(--radius);font-weight: 600;color: var(--color-ink);text-align: center}
.faq--grouped-by-topic .faq-still a { white-space: nowrap; }
@media (min-width: 768px) {.faq--grouped-by-topic .faq-groups { grid-template-columns: repeat(2, 1fr); gap: var(--s-5); }}
@media (min-width: 1024px) {.faq--grouped-by-topic .faq-groups { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }}
.cta-banner--split-photo {padding-block: 0;display: grid;grid-template-columns: 1fr;background: var(--color-ink);color: var(--color-on-dark)}
.cta-banner--split-photo .cta-photo {aspect-ratio: 16 / 9;max-width: 100%;overflow: hidden}
.cta-banner--split-photo .cta-photo img {width: 100%;height: 100%;object-fit: cover;border-radius: 0}
.cta-banner--split-photo .cta-panel {padding: var(--section-y) var(--s-3)}
.cta-banner--split-photo .cta-panel-inner { max-width: 36rem; }
.cta-banner--split-photo h2 { color: var(--color-on-dark); }
.cta-banner--split-photo .cta-body { font-size: 1.125rem; margin-bottom: var(--s-3); }
.cta-banner--split-photo .cta-actions {display: flex;flex-direction: column;gap: var(--s-2);margin-bottom: var(--s-4)}
.cta-banner--split-photo .cta-actions .btn { width: 100%; }
.cta-banner--split-photo .cta-mini-form .form-row { grid-template-columns: 1fr; }
@media (min-width: 480px) {.cta-banner--split-photo .cta-actions { flex-direction: row; flex-wrap: wrap; }
.cta-banner--split-photo .cta-actions .btn { width: auto; }
.cta-banner--split-photo .cta-mini-form .form-row { grid-template-columns: 1fr 1fr; }}
@media (min-width: 768px) {.cta-banner--split-photo { grid-template-columns: 5fr 7fr; }
.cta-banner--split-photo .cta-photo { aspect-ratio: auto; height: 100%; min-height: 100%; }
.cta-banner--split-photo .cta-panel {padding: var(--section-y-lg) var(--s-5);display: flex;align-items: center}}
@media (min-width: 1024px) {.cta-banner--split-photo .cta-panel { padding-inline: var(--s-6); }}
.site-footer--four-column-contact-first .footer-wordmark {display: inline-block;font-family: var(--font-heading);font-weight: var(--heading-weight);font-size: 1.5rem;line-height: 1.1;text-decoration: none;margin-bottom: var(--s-2)}
.site-footer--four-column-contact-first .footer-tagline { margin-bottom: var(--s-2); max-width: 40ch; }
.site-footer--four-column-contact-first address { font-style: normal; line-height: 1.7; }
.site-footer--four-column-contact-first h4 + ul + h4 { margin-top: var(--s-3); }
.site-footer--four-column-contact-first .footer-locations:has(li:nth-child(9)) {columns: 2;column-gap: var(--s-2)}
.site-footer--four-column-contact-first .footer-locations li { break-inside: avoid; }
.site-footer--four-column-contact-first .footer-hours li { display: flex; gap: var(--s-1); flex-wrap: wrap; }
.site-footer--four-column-contact-first .footer-hours span { font-weight: 600; min-width: 7ch; }
.site-footer--four-column-contact-first .footer-disclosure {margin-top: var(--s-4);font-size: var(--fs-small);opacity: 0.7;line-height: 1.6}
.site-footer--four-column-contact-first .footer-disclosure p { margin-bottom: var(--s-1); }
.site-footer--four-column-contact-first .footer-license {margin-top: var(--s-2);font-size: var(--fs-small);opacity: 0.7}
@media (min-width: 480px) {.site-footer--four-column-contact-first .footer-grid { grid-template-columns: 1fr 1fr; }
.site-footer--four-column-contact-first .footer-contact { grid-column: 1 / -1; }}
@media (min-width: 768px) {.site-footer--four-column-contact-first .footer-grid { grid-template-columns: 4fr 3fr 3fr 2fr; }
.site-footer--four-column-contact-first .footer-contact { grid-column: auto; }}
.midform--default .subhead { font-size: 1.125rem; max-width: 48ch; }
@media (min-width: 768px) {.midform--default .subhead { font-size: 1.25rem; }
.midform--default .midform-copy { align-self: center; }}
.content--prose h2 { margin-bottom: var(--s-3); }
.content--prose .prose p { margin-bottom: var(--s-2); }
.content--prose .prose ul,
.content--prose .prose ol { padding-left: var(--s-3); margin-bottom: var(--s-2); }
.content--prose .prose li { margin-bottom: var(--s-1); }
.content--prose .prose h3 { margin-top: var(--s-4); margin-bottom: var(--s-2); }
.content--prose .prose h4 { margin-top: var(--s-3); margin-bottom: var(--s-1); }
.content--prose .prose strong { color: var(--color-ink); }
.content--prose .prose table {width: 100%;border-collapse: collapse;margin-bottom: var(--s-3);font-size: var(--fs-small)}
.content--prose .prose th,
.content--prose .prose td {text-align: left;padding: var(--s-1) var(--s-2);border: 1px solid var(--color-line);vertical-align: top}
.content--prose .prose th { background: var(--color-bg-alt); color: var(--color-ink); font-weight: 600; }
.content--prose .prose .table-wrap { overflow-x: auto; margin-bottom: var(--s-3); }
.content--prose .prose > :last-child { margin-bottom: 0; }
.content--prose-with-photo .container { display: grid; gap: var(--s-4); }
.content--prose-with-photo h2 { margin-bottom: var(--s-3); }
.content--prose-with-photo .prose p { margin-bottom: var(--s-2); }
.content--prose-with-photo .prose ul,
.content--prose-with-photo .prose ol { padding-left: var(--s-3); margin-bottom: var(--s-2); }
.content--prose-with-photo .prose li { margin-bottom: var(--s-1); }
.content--prose-with-photo .prose h3 { margin-top: var(--s-4); margin-bottom: var(--s-2); }
.content--prose-with-photo .prose strong { color: var(--color-ink); }
.content--prose-with-photo .prose > :last-child { margin-bottom: 0; }
.content--prose-with-photo .photo { margin: 0; }
.content--prose-with-photo .photo img {width: 100%;aspect-ratio: 4 / 3;object-fit: cover;border-radius: var(--radius-img)}
@media (min-width: 1024px) {.content--prose-with-photo .container {grid-template-columns: 7fr 5fr;gap: var(--s-6);align-items: start}
.content--prose-with-photo .photo { position: sticky; top: calc(var(--header-h) + var(--s-3)); }
.content--prose-with-photo.photo-left .container { grid-template-columns: 5fr 7fr; }
.content--prose-with-photo.photo-left .photo { order: -1; }}
.content--scenario .scenario { margin: 0; }
.content--scenario .scenario h2 { font-size: var(--fs-h3); }
.content--video .video-intro { max-width: 60ch; margin-bottom: var(--s-3); }
.content--video .yt-facade { margin-top: 0; border-radius: var(--radius-img); overflow: hidden; }
.content--video .yt-caption { margin-bottom: 0; }
.content--calculator .calc { margin: 0; }
.content--calculator .calc-intro { margin-bottom: var(--s-3); max-width: 60ch; }
.content--calculator .calc .btn { margin-top: var(--s-2); }
@media (min-width: 768px) {.content--calculator .calc .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-2) var(--s-3); }}
.content--reddit { background: var(--color-bg-alt); }
.content--reddit h2 { margin-bottom: var(--s-3); }
.content--reddit .prose p { margin-bottom: var(--s-2); }
.content--reddit .prose ul,
.content--reddit .prose ol { padding-left: var(--s-3); margin-bottom: var(--s-2); }
.content--reddit .prose li { margin-bottom: var(--s-1); }
.content--reddit .prose h3 { margin-top: var(--s-4); margin-bottom: var(--s-2); }
.content--reddit .prose blockquote {margin: 0 0 var(--s-2);padding: var(--s-2) var(--s-3);border: 1px solid var(--color-line);background: var(--color-bg);border-radius: var(--radius);font-style: italic}
.content--reddit .prose > :last-child { margin-bottom: 0; }
.content--types-grid .types-intro { max-width: 60ch; margin-bottom: var(--s-4); }
.content--types-grid .types-list {list-style: none;padding: 0;margin: 0;display: grid;grid-template-columns: 1fr;gap: var(--s-4)}
.content--types-grid .type { min-width: 0; }
.content--types-grid .type h3 { margin-bottom: var(--s-1); }
.content--types-grid .type p { margin: 0; }
@media (min-width: 640px) {.content--types-grid .types-list { grid-template-columns: repeat(2, 1fr); gap: var(--s-5) var(--s-4); }}
@media (min-width: 1024px) {.content--types-grid .types-list { grid-template-columns: repeat(3, 1fr); gap: var(--s-5); }}
.contact--form-and-details { background: var(--color-bg-alt); }
.contact--form-and-details .container { display: grid; gap: var(--s-4); }
.contact--form-and-details .contact-intro { font-size: 1.125rem; max-width: 52ch; margin-bottom: var(--s-3); }
.contact--form-and-details address {font-style: normal;line-height: 1.7;margin-bottom: var(--s-3);color: var(--color-ink)}
.contact--form-and-details .btn-call { width: 100%; }
.contact--form-and-details .contact-hours-heading {font-size: var(--fs-h3);margin-top: var(--s-4);margin-bottom: var(--s-2)}
.contact--form-and-details .contact-hours { list-style: none; padding: 0; margin: 0; }
.contact--form-and-details .contact-hours li {display: flex;gap: var(--s-2);flex-wrap: wrap;padding-block: var(--s-1);border-bottom: 1px solid var(--color-line)}
.contact--form-and-details .contact-hours span { font-weight: 600; min-width: 9ch; color: var(--color-ink); }
.contact--form-and-details .lead-form { margin-top: 0; }
@media (min-width: 480px) {.contact--form-and-details .btn-call { width: auto; }}
@media (min-width: 768px) {.contact--form-and-details .container {grid-template-columns: 1fr 1fr;gap: var(--s-6);align-items: start}}
.area--city-grid { background: var(--color-bg-alt); }
.area--city-grid .area-intro { max-width: 60ch; margin-bottom: var(--s-4); }
.area--city-grid .city-grid {list-style: none;padding: 0;margin: 0;display: grid;grid-template-columns: 1fr;gap: var(--s-2)}
.area--city-grid .city-grid li { min-width: 0; }
.area--city-grid .city-grid a {display: block;padding: var(--s-2) var(--s-3);background: var(--color-bg);border: var(--border-w) solid var(--color-line);border-radius: var(--radius);box-shadow: var(--shadow-card);color: var(--color-ink);font-weight: 600;text-decoration: none;overflow-wrap: anywhere;transition: border-color 0.15s, background 0.15s}
.area--city-grid .city-grid a:hover,
.area--city-grid .city-grid a:focus-visible { border-color: var(--color-ink); background: var(--color-bg-alt); }
@media (min-width: 480px) {.area--city-grid .city-grid { grid-template-columns: repeat(2, 1fr); }}
@media (min-width: 1024px) {.area--city-grid .city-grid { grid-template-columns: repeat(4, 1fr); gap: var(--s-3); }}
@media (min-width: 768px) { .layout-editorial { --header-h: 108px; } }
@media (max-width: 767px) {.layout-editorial .site-header--two-tier-utility nav a { color: var(--color-ink); }
.layout-editorial .site-header--two-tier-utility nav { border-top: 1px solid var(--color-line); }}
.layout-editorial .site-header--two-tier-utility .nav-toggle-label span { background: var(--color-on-dark); }
.layout-editorial.scrolled .site-header--two-tier-utility .nav-toggle-label span { background: var(--color-ink); }
.layout-editorial .site-header--two-tier-utility .utility a:hover { color: var(--color-accent); }
.layout-editorial .site-header > .container { max-width: 1200px; }
.layout-editorial .site-header .utility .container { max-width: 1200px; }
.site-header--two-tier-utility .header-actions .btn { white-space: nowrap; }
.site-header--two-tier-utility .brand { white-space: normal; text-overflow: clip; overflow: visible; line-height: 1.05; font-size: 1rem; max-width: 11rem; }
.site-header--two-tier-utility .brand span { display: block; }
@media (min-width: 768px) and (max-width: 1023px) {.site-header--two-tier-utility .brand { max-width: 11rem; }
.site-header--two-tier-utility nav { gap: var(--s-2); }
.site-header--two-tier-utility .header-actions .btn-primary { padding: 0.625rem 0.875rem; font-size: 0.8125rem; }}
@media (min-width: 1024px) {.site-header--two-tier-utility .brand { max-width: none; font-size: 1.125rem; }}
@media (min-width: 768px) {.site-header nav .dropdown:has(li:nth-child(12)) { column-count: 2; column-gap: 0; min-width: 480px; }
.site-header nav .dropdown li { break-inside: avoid; }}
.hero h1 { overflow-wrap: anywhere; }
@media (max-width: 479px) {.hero h1 { font-size: 2.25rem; }
.hero--headline-service-buttons .chip:nth-child(n+5) { display: none; }}
.hero--headline-service-buttons .subhead { max-width: 60ch; }
.hero--headline-service-buttons .hero-media img { object-position: center 45%; }
.hero--headline-service-buttons .hero-media::after { background: linear-gradient(90deg, rgba(8, 10, 12, 0.35), transparent 65%), var(--hero-scrim); }
.hero--headline-service-buttons .lead-form--mini label { color: var(--color-ink); }
@media (min-width: 768px) { .hero--hang { padding-bottom: calc(var(--s-6) + var(--s-5)); } }
.hero--no-form h1 { margin-bottom: var(--s-2); }
.scenario, .calc, .calc .calc-result, .calc select, .calc input[type="number"] { border-width: var(--border-w); }
.calc .calc-grid { display: grid; gap: var(--s-2); }
@media (min-width: 640px) { .calc .calc-grid { grid-template-columns: 1fr 1fr; gap: var(--s-2) var(--s-3); } }
.calc .calc-result p { margin-bottom: var(--s-2); }
.calc .calc-result .btn { margin-top: var(--s-1); }
.calc .calc-note { color: var(--color-body); }
.layout-editorial .measure > section.content--types-grid > .container,
.layout-editorial .measure > section.content--prose-with-photo > .container,
.layout-editorial .measure > section.faq--grouped-by-topic > .container { max-width: var(--container); }
@media (min-width: 1024px) { .process--horizontal-timeline-strip .strip { grid-template-columns: repeat(5, 1fr); } }
.cta-banner--split-photo .btn-call { border-color: var(--color-on-dark); }
.cta-banner--split-photo .btn-call:hover { border-color: var(--color-accent); }
@media (max-width: 767px) { .site-footer { padding-bottom: calc(var(--s-3) + 56px + env(safe-area-inset-bottom)); } }
.site-footer--four-column-contact-first .footer-hours span { min-width: 9ch; }
.services-grid .group .group-lede { margin: 0 0 var(--s-2); color: var(--color-muted); font-size: 0.9375rem; }
.site-footer h3 { color: var(--color-on-dark); margin-bottom: var(--s-2); font-size: 1rem; text-transform: var(--btn-case); letter-spacing: 0.06em; }
.site-footer--four-column-contact-first h3 + ul + h3 { margin-top: var(--s-3); }
.layout-editorial.scrolled .site-header .btn-primary,
.layout-editorial.scrolled .site-header .header-call,
.layout-editorial.scrolled .site-header--two-tier-utility .utility a { color: var(--color-on-dark); }
.lead-form, [id] { scroll-margin-top: calc(var(--header-h) + var(--s-3)); }
@media (min-width: 768px) and (max-width: 1023px) {.process--horizontal-timeline-strip .strip { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--s-2); }
.process--horizontal-timeline-strip .cell { flex: 0 0 38vw; }}
@media (min-width: 1024px) {.process--horizontal-timeline-strip .strip { gap: var(--s-3); }
.process--horizontal-timeline-strip .cell { padding: var(--s-2); }
.process--horizontal-timeline-strip .cell + .cell::after { left: calc(-1 * var(--s-3) / 2 - 0.5ch); }}
.layout-editorial .measure .lead-form .form-note { font-size: 0.8125rem; }
.layout-editorial .measure .why-us--pillar-grid .proof,
.layout-editorial .measure .calc .calc-note { font-size: var(--fs-small); }
.layout-editorial .measure .cta-banner--split-photo .cta-body,
.layout-editorial .measure .proof--stats-with-scenario .proof-intro,
.layout-editorial .measure .faq--grouped-by-topic .faq-intro,
.layout-editorial .measure .midform--default .subhead { font-size: 1.125rem; }
@media (min-width: 768px) { .layout-editorial .measure .midform--default .subhead { font-size: 1.25rem; } }
@media (min-width: 768px) and (max-width: 1023px) {.site-footer--four-column-contact-first .footer-locations { columns: 1; }}
.layout-editorial .prose { max-width: 68ch; }
.midform--default .midform-copy p { color: var(--color-primary-ink); }

/* dropdown label vertical alignment: the mobile rule leaves align-items:stretch behind, which
   stretches the dropdown anchor to the full header height and rides its text high. */
@media (min-width: 768px) {
  .site-header--two-tier-utility nav .has-dropdown { align-items: center; }
  .site-header--two-tier-utility nav .has-dropdown > a { display: inline-flex; align-items: center; }
}

/* hero form and trust card share both edges: the 720px cap left two stacked white panels flush left but ragged right. */
@media (min-width: 768px) {
  .hero--headline-service-buttons .lead-form.lead-form--mini { max-width: none; }
}
/* =================================== THREE STANDING GUARDS Both are bugs that have shipped on more than one site built with this system. They are fixed globally rather than per band, because the failure mode is forgetting a band, not getting the rule wrong. Keep these at the END of the stylesheet: guard 1 relies partly on source order as well as specificity. =================================== */
/* GUARD 1: a light-on-dark heading colour cascading into a white form card. A .lead-form is always a white card, whatever dark band contains it (.hero, .midform, .magnet, .cta-band, or any band added later). A band rule such as `.magnet h2 { color: #fff }` ties on specificity with `.lead-form h2` and wins on source order, painting the form heading white on white. The doubled class raises specificity so no single-class ancestor can beat it. */
.lead-form.lead-form h2,
.lead-form.lead-form h3,
.lead-form.lead-form h4 { color: var(--color-ink); }
.lead-form.lead-form label,
.lead-form.lead-form legend { color: var(--color-ink); }
.lead-form.lead-form .form-lede,
.lead-form.lead-form .form-note { color: var(--color-muted); }
/* GUARD 2: stacked two-column bands butting together. Every band pairing copy with a form card is a two-column grid on wide screens and a single stack below the breakpoint. Stacked, the card must not sit flush against the content above it. Listing every such band here means adding a new band means adding it to this list, rather than finding the gap on a phone. */
.hero .lead-form,
.midform .lead-form,
.magnet .lead-form,
.cta-banner .lead-form { margin-top: var(--s-4); }
@media (min-width: 768px) {.hero .lead-form,
.midform .lead-form,
.magnet .lead-form,
.cta-banner .lead-form { margin-top: 0; }}
/* GUARD 3: an outline button rendered dark-on-dark. .btn-secondary is transparent with --color-ink text and border, which is correct on a light section and invisible inside any dark band, because .cta-band is painted with --color-ink itself. Found by DOM measurement on the Rodent Removal Orlando build (the CTA button on all 39 pages), and never visible in the markup. Listing every dark band here means adding a new dark band means adding it here too. */
.cta-band .btn-secondary,
.cta-banner .btn-secondary,
.proof--stat-row .btn-secondary,
.midform .btn-secondary,
.magnet .btn-secondary,
.hero .btn-secondary,
.hero.has-video .btn-secondary,
.site-footer .btn-secondary {color: var(--color-on-dark);border-color: var(--color-on-dark)}
.cta-band .btn-secondary:hover,
.cta-banner .btn-secondary:hover,
.proof--stat-row .btn-secondary:hover,
.midform .btn-secondary:hover,
.magnet .btn-secondary:hover,
.hero .btn-secondary:hover,
.hero.has-video .btn-secondary:hover,
.site-footer .btn-secondary:hover {background: var(--color-on-dark);color: var(--color-ink)}
