/* 123 Septic Services: shared styles and customer service layouts. */
:root {
  --bg: #fcfdff;
  --surface: #eef4fb;
  --fg: #002d5c;
  --muted: #4a5d78;
  --pine: #002d5c;
  --pine-fg: #ffffff;
  --field: #016abd;
  --alert: #0c832a;
  --alert-ink: #016abd;
  --alert-fg: #ffffff;
  --line: #d6e3f1;
  --clay: #8a6a46;
  --sky: #b9d0ff;
  --font-display: "Archivo", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --font-body: "Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --gutter-l: max(16px, env(safe-area-inset-left, 0px));
  --gutter-r: max(16px, env(safe-area-inset-right, 0px));
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #061a33; --surface: #0c2647; --fg: #eaf2fb; --muted: #a8bad3; --pine: #0a3a75; --pine-fg: #ffffff;
    --field: #5ec8ff; --alert: #62c22e; --alert-ink: #8fd14f; --alert-fg: #002d5c; --line: #1d3a60; --clay: #c49a6c; --sky: #0c2647;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #061a33; --surface: #0c2647; --fg: #eaf2fb; --muted: #a8bad3; --pine: #0a3a75; --pine-fg: #ffffff;
    --field: #5ec8ff; --alert: #62c22e; --alert-ink: #8fd14f; --alert-fg: #002d5c; --line: #1d3a60; --clay: #c49a6c; --sky: #0c2647;
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--fg);
  font: 400 1.0625rem/1.65 var(--font-body);
  padding-left: var(--gutter-l); padding-right: var(--gutter-r);
  padding-bottom: 72px; overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration-color: var(--field); text-underline-offset: 3px; text-decoration-thickness: 2px; }
a:hover { text-decoration-color: var(--alert); }
:focus-visible { outline: 3px solid var(--alert-ink); outline-offset: 2px; border-radius: 2px; }
.skip { position: absolute; left: -999px; top: 0; background: var(--fg); color: var(--bg); padding: 10px 14px; z-index: 100; }
.skip:focus { left: 8px; top: 8px; }

h1, h2, h3, .display {
  font-family: var(--font-display); font-weight: 700; letter-spacing: -0.012em;
  line-height: 1.05; text-wrap: balance; margin: 0;
}
h1 { font-size: clamp(2rem, 5vw, 3.3rem); }
h2 { font-size: clamp(1.5rem, 3.2vw, 2.15rem); }
h3 { font-size: 1.3rem; line-height: 1.15; }
p { margin: 0 0 1em; max-width: 68ch; }
ul, ol { padding-left: 1.2em; margin: 0 0 1em; max-width: 68ch; }
li { margin-bottom: 0.35em; }
.wrap { max-width: 1180px; margin: 0 auto; }
.band { margin-left: calc(-1 * var(--gutter-l)); margin-right: calc(-1 * var(--gutter-r)); padding-left: var(--gutter-l); padding-right: var(--gutter-r); }
section { padding-block: clamp(36px, 6vw, 72px); }
.tint { background: var(--bg); border-block: 1px solid var(--line); }
.muted { color: var(--muted); }
.lede { font-size: 1.2rem; color: var(--muted); max-width: 60ch; }

/* preview ribbon */
.ribbon { background: var(--fg); color: var(--bg); font-size: 0.85rem; padding: 8px var(--gutter-r) 8px var(--gutter-l); margin-left: calc(-1 * var(--gutter-l)); margin-right: calc(-1 * var(--gutter-r)); }

/* header */
header.top { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 30; background: var(--bg); border-bottom: 1px solid var(--line); margin-left: calc(-1 * var(--gutter-l)); margin-right: calc(-1 * var(--gutter-r)); padding-left: var(--gutter-l); padding-right: var(--gutter-r); }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 40; background: var(--bg); }
.bar { display: flex; align-items: center; gap: 16px; min-height: 64px; max-width: 1180px; margin: 0 auto; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; margin-right: auto; min-width: 0; }
.brand-icon { width: 62px; height: 45px; flex: none; object-fit: contain; }
.brand b { font: 800 1.25rem/1 var(--font-display); letter-spacing: -0.01em; display: block; }
.brand small { display: block; font-size: 0.8rem; color: var(--muted); line-height: 1.2; margin-top: 3px; }
nav.main { display: flex; gap: 22px; align-items: center; }
nav.main a { text-decoration: none; font-weight: 600; font-size: 0.95rem; padding: 8px 0; }
nav.main a:hover, nav.main a[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--alert); }
.menu-btn { display: none; background: none; border: 2px solid var(--fg); color: var(--fg); font: 700 0.95rem var(--font-body); padding: 10px 14px; min-height: 44px; border-radius: 6px; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font: 700 1rem/1 var(--font-body); padding: 15px 22px; border-radius: 6px; text-decoration: none; border: 2px solid var(--alert); background: var(--alert); color: var(--alert-fg); cursor: pointer; min-height: 48px; }
.btn:hover { filter: brightness(1.07); }
.btn.ghost { background: transparent; color: var(--fg); border-color: var(--fg); }
.btn.on-pine { border-color: var(--pine-fg); color: var(--pine-fg); background: transparent; }
.btn.small { padding: 10px 16px; min-height: 40px; font-size: 0.92rem; }
.cta-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }

/* hero */
.hero { padding-top: clamp(28px, 5vw, 56px); padding-bottom: clamp(24px, 4vw, 40px); }
.hero-head { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 32px; align-items: end; margin-bottom: 28px; }
.hero-head .lede { margin: 0; }


/* triage */
.triage { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: clamp(18px, 3vw, 32px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; }
.triage fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.triage legend { font: 800 1.35rem/1.15 var(--font-display); padding: 0; margin-bottom: 14px; }
.opt { display: flex; align-items: flex-start; gap: 10px; padding: 11px 12px; border: 1.5px solid var(--line); border-radius: 6px; margin-bottom: 8px; cursor: pointer; min-height: 48px; }
.opt:has(input:checked) { border-color: var(--fg); background: color-mix(in srgb, var(--field) 12%, transparent); }
.opt input { margin-top: 4px; accent-color: var(--alert); }
.result { border-left: 5px solid var(--alert); padding: 4px 0 4px 18px; align-self: start; }
.result[hidden] { display: none; }
.result h3 { margin-bottom: 8px; }

/* services grid */
.grid { display: grid; gap: 22px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.svc { display: flex; flex-direction: column; text-decoration: none; min-width: 0; }
.svc .ph { aspect-ratio: 16 / 10; overflow: hidden; border-radius: 8px; border: 1px solid var(--line); background: var(--sky); }
.svc img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.svc:hover img { transform: scale(1.03); }
.svc h3 { margin: 14px 0 6px; }
.svc p { color: var(--muted); font-size: 0.97rem; margin: 0; }
.svc:hover h3 { text-decoration: underline; text-decoration-color: var(--alert); text-decoration-thickness: 3px; }
@media (prefers-reduced-motion: reduce) { .svc img { transition: none; } html { scroll-behavior: auto; } }

.sec-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px 32px; margin-bottom: 30px; }
.sec-head p { margin: 0; color: var(--muted); }

/* pine band */
.pine { background: var(--pine); color: var(--pine-fg); }
.pine .muted, .pine p { color: color-mix(in srgb, var(--pine-fg) 82%, transparent); }
.pine a { text-decoration-color: var(--alert); }
.pine { --alert: #62c22e; --alert-fg: #002d5c; --alert-ink: #8fd14f; }
footer { --alert: #62c22e; --alert-fg: #002d5c; --alert-ink: #8fd14f; }
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 64px); align-items: start; }
.hero-copy { padding-top: clamp(0px, 3vw, 36px); }
.split img { border-radius: 8px; border: 1px solid color-mix(in srgb, var(--pine-fg) 25%, transparent); }
.checks { list-style: none; padding: 0; }
.checks li { padding-left: 28px; position: relative; }
.checks li::before { content: ""; position: absolute; left: 2px; top: 0.5em; width: 12px; height: 7px; border-left: 3px solid var(--alert-ink); border-bottom: 3px solid var(--alert-ink); transform: rotate(-45deg) translateY(-3px); }

/* areas */
.areas { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 0 28px; list-style: none; padding: 0; max-width: none; }
.areas li { border-top: 1px solid var(--line); margin: 0; }
.areas a { display: block; padding: 14px 0; text-decoration: none; font-weight: 700; }
.areas a span { display: block; font-weight: 400; font-size: 0.9rem; color: var(--muted); }
.areas a:hover { color: var(--alert-ink); }

/* steps: a real sequence */
.steps { list-style: none; counter-reset: s; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; max-width: none; }
.steps li { counter-increment: s; border-top: 3px solid var(--fg); padding-top: 14px; margin: 0; }
.steps li::before { content: counter(s); font: 800 1.6rem var(--font-display); color: var(--alert-ink); display: block; margin-bottom: 4px; }
.steps b { display: block; margin-bottom: 4px; }

/* figures, video */
.fig { margin: 1.6em 0; max-width: 760px; }
.fig img { width: 100%; border-radius: 8px; border: 1px solid var(--line); aspect-ratio: 16 / 10; object-fit: cover; }
.fig.photo { max-width: 520px; }
.fig.photo img { aspect-ratio: auto; height: auto; }
.fig.photo.portrait { max-width: 400px; }
.fig figcaption { font-size: 0.92rem; color: var(--muted); margin-top: 8px; max-width: 68ch; }

/* faq */
details { border-top: 1px solid var(--line); max-width: 820px; }
details:last-of-type { border-bottom: 1px solid var(--line); }
summary { cursor: pointer; padding: 18px 36px 18px 0; font-weight: 700; list-style: none; position: relative; min-height: 48px; }
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; position: absolute; right: 6px; top: 14px; font: 400 1.6rem/1 var(--font-body); color: var(--alert-ink); }
details[open] summary::after { content: "\2212"; }
details p { padding-bottom: 8px; }

/* forms */
.form { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form .full { grid-column: 1 / -1; }
.form label { display: block; font-weight: 600; font-size: 0.92rem; margin-bottom: 6px; }
.form input, .form select, .form textarea { width: 100%; font: inherit; padding: 13px 12px; border: 1.5px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--fg); min-height: 48px; }
.form textarea { min-height: 110px; resize: vertical; }
.form-note { font-size: 0.88rem; color: var(--muted); }
.sent { border-left: 5px solid var(--field); padding: 6px 0 6px 16px; }
.contact-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 64px); align-items: start; }
.big-phone { font: 800 clamp(1.8rem, 5vw, 2.6rem)/1 var(--font-display); text-decoration: none; display: inline-block; padding: 8px 0; }

/* page headers & prose */
.page-head { padding-block: clamp(32px, 6vw, 64px) 24px; }
.crumbs { font-size: 0.88rem; color: var(--muted); margin-bottom: 14px; }
.crumbs a { color: inherit; display: inline-block; padding: 10px 0; }
.crumbs { line-height: 1.2; }
.page-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(24px, 5vw, 64px); align-items: start; }
.prose h2 { font-size: clamp(1.45rem, 3vw, 1.9rem); margin: 1.6em 0 0.5em; }
.prose h2:first-child { margin-top: 0; }
.prose h3 { margin: 1.4em 0 0.4em; }
.aside { position: sticky; top: calc(88px + env(safe-area-inset-top, 0px)); display: grid; gap: 18px; }
.box { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 20px; }
.box h3 { margin-bottom: 8px; }
.box ul { padding-left: 1.1em; margin: 0; }
.hero-img { border-radius: 10px; border: 1px solid var(--line); margin-bottom: 28px; width: 100%; aspect-ratio: 16 / 8; object-fit: cover; }
.safety { border: 2px solid var(--alert-ink); border-radius: 8px; padding: 14px 18px; margin: 1.4em 0; max-width: 68ch; }
.safety p { margin: 0; }
.warranty { border: 2px solid var(--field); border-radius: 8px; padding: 14px 18px; margin: 1.4em 0; max-width: 68ch; background: var(--surface); }
.warranty p { margin: 0; }
.related { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; list-style: none; max-width: none; }
.related a { display: block; padding: 10px 14px; border: 1.5px solid var(--line); border-radius: 6px; text-decoration: none; font-weight: 600; font-size: 0.95rem; }
.related a:hover { border-color: var(--fg); }

/* footer + mobile call bar */
footer { background: #001f42; color: var(--pine-fg); margin-left: calc(-1 * var(--gutter-l)); margin-right: calc(-1 * var(--gutter-r)); padding: 48px var(--gutter-r) 40px var(--gutter-l); }
footer .cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; max-width: 1180px; margin: 0 auto; }
footer h2 { font-size: 1rem; margin-bottom: 12px; }
footer ul { list-style: none; padding: 0; margin: 0; }
footer li { margin-bottom: 7px; font-size: 0.95rem; }
footer a { text-decoration: none; }
footer a:hover { text-decoration: underline; text-decoration-color: var(--alert); }
footer .fine { max-width: 1180px; margin: 32px auto 0; font-size: 0.82rem; border-top: 1px solid color-mix(in srgb, var(--pine-fg) 25%, transparent); padding-top: 18px; color: color-mix(in srgb, var(--pine-fg) 75%, transparent); }
.callbar { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 35; background: var(--bg); border-top: 1px solid var(--line); padding: 8px max(12px, env(safe-area-inset-right, 0px)) calc(8px + env(safe-area-inset-bottom, 0px)) max(12px, env(safe-area-inset-left, 0px)); gap: 8px; }
.callbar .btn { flex: 1; padding: 12px; }

@media (max-width: 960px) {
  .stage-grid, .page-grid, .contact-grid, .split, .triage { grid-template-columns: minmax(0, 1fr); }
  .hero-head { grid-template-columns: minmax(0, 1fr); }
  .aside { position: static; }
  footer .cols { grid-template-columns: 1fr 1fr; }
  .stage { aspect-ratio: 4 / 3.4; }
}
@media (max-width: 760px) {
  .menu-btn { display: inline-block; }
  nav.main { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--bg); border-bottom: 1px solid var(--line); flex-direction: column; align-items: stretch; gap: 0; padding: 6px var(--gutter-r) 14px var(--gutter-l); }
  nav.main.open { display: flex; }
  nav.main a { padding: 14px 0; border-bottom: 1px solid var(--line); }
  .bar .btn.small { display: none; }
  .callbar { display: flex; }
  .form { grid-template-columns: minmax(0, 1fr); }
  .hs-label { display: none; }
  .hs.on .hs-label { display: block; }
  .stage-hint { font-size: 0.74rem; }
  footer .cols { grid-template-columns: 1fr; }
}


/* homepage hero and simple lists */
.hero-split { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 60px); align-items: center; }
.hero-split.solo { grid-template-columns: minmax(0, 1fr); }
.hero-split.solo > div { max-width: 46rem; }
.hero-photo { width: 100%; height: auto; border-radius: 12px; aspect-ratio: 4 / 3; object-fit: cover; }
.ticks { list-style: none; padding: 0; margin: 22px 0 0; }
.ticks li { padding-left: 28px; position: relative; margin-bottom: 8px; }
.ticks li::before { content: ""; position: absolute; left: 2px; top: 0.5em; width: 12px; height: 7px; border-left: 3px solid var(--alert-ink); border-bottom: 3px solid var(--alert-ink); transform: rotate(-45deg); }
.tint .box { background: var(--surface); }
.tint .triage { background: none; border: 0; padding: 0; grid-template-columns: minmax(0, 1fr); gap: 16px; }
@media (max-width: 960px) { .hero-split { grid-template-columns: minmax(0, 1fr); } }

.hero-split h1 + .lede { margin-top: 16px; }
.aside .big-phone, .box .big-phone { font-size: 1.7rem; white-space: nowrap; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.form-error { border-left: 5px solid var(--alert-ink); padding: 6px 0 6px 16px; margin-top: 14px; font-weight: 600; }
.form-error[hidden] { display: none; }
.btn:disabled { opacity: .65; cursor: wait; }

/* video hero with the "What are you seeing?" picker */
.hero-video { position: relative; isolation: isolate; overflow: hidden; color: #fff; padding-top: clamp(40px, 7vw, 88px); padding-bottom: clamp(40px, 7vw, 88px); background: #001f42; }
.hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.hero-video::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0, 24, 52, 0.9) 0%, rgba(0, 24, 52, 0.72) 48%, rgba(0, 24, 52, 0.35) 100%); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: clamp(24px, 5vw, 64px); align-items: start; }
.hero-copy { padding-top: clamp(0px, 3vw, 36px); }
.hero-video h1 { color: #fff; }
.hero-video .lede { color: #dbe8f7; margin-top: 16px; }
.hero-video .ticks li { color: #fff; }
.hero-video .ticks li::before { border-color: #8fd14f; }
.hero-copy .btn.ghost { color: #fff; border-color: #fff; }
.hero-card { background: var(--bg); color: var(--fg); border-radius: 12px; padding: clamp(18px, 2.5vw, 28px); box-shadow: 0 18px 40px rgba(0, 18, 40, 0.35); }
.hero-card .card-title { font-size: 1rem; color: var(--muted); margin: 0 0 4px; font-weight: 600; }
.hero-card .triage { background: none; border: 0; padding: 0; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.hero-card .opt { margin-bottom: 6px; padding: 9px 12px; min-height: 44px; }
.photo-rounded { width: 100%; height: auto; border-radius: 12px; }
@media (max-width: 960px) {
  .hero-grid { grid-template-columns: minmax(0, 1fr); }
  .hero-video::before { background: rgba(0, 24, 52, 0.78); }
}

/* "also available" services on the homepage */
.more-svc { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.more-svc h3 { margin: 0; font-size: 1rem; color: var(--muted); }
.more-svc ul { flex: 1 1 auto; list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.more-svc li a { display: inline-block; padding: 8px 14px; border: 1.5px solid var(--line); border-radius: 999px; text-decoration: none; font-weight: 600; background: var(--surface); }
.more-svc li a:hover { border-color: var(--field); }
.more-svc .all-link { margin-left: auto; font-weight: 600; }
/* septic questions hub */
.qa-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 40px; align-items: start; padding-bottom: 56px; }
.qa-toc { position: sticky; top: 96px; }
.qa-toc ul { list-style: none; padding: 0; margin: 0; border-left: 3px solid var(--line); }
.qa-toc a { display: block; padding: 7px 14px; text-decoration: none; font-weight: 600; }
.qa-toc a:hover { color: var(--alert-ink); }
.qa-group { padding-block: 0 28px; scroll-margin-top: 96px; }
.qa-group h2 { margin-bottom: 14px; }
@media (max-width: 860px) { .qa-layout { grid-template-columns: minmax(0, 1fr); } .qa-toc { position: static; } .qa-toc ul { display: flex; flex-wrap: wrap; gap: 6px; border: 0; } .qa-toc a { border: 1.5px solid var(--line); border-radius: 999px; padding: 6px 12px; } .more-svc .all-link { margin-left: 0; } }

/* embedded maps: lazy, fade in once loaded */
.map { margin: 1.6em 0; }
.map-frame { position: relative; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; border: 1px solid var(--line);
  background: var(--surface) radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--field) 18%, transparent) 0 12%, transparent 13%); }
.map-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; opacity: 1; }
.map-frame iframe.ready { opacity: 1; }
.map figcaption { font-size: 0.9rem; color: var(--muted); margin-top: 8px; }
@media (prefers-reduced-motion: reduce) { .map-frame iframe { transition: none; } }

/* phones: tighter hero, side-by-side actions, picker reachable sooner */
@media (max-width: 600px) {
  .brand small { display: none; }
  .hero-video { padding-top: 28px; padding-bottom: 28px; }
  .hero-video .lede { font-size: 1.05rem; }
  .hero-copy .cta-row .btn { width: 100%; }
  .hero-copy .cta-row .btn.ghost { display: none; } /* the sticky bar already offers "Get a quote" */
  .hero-copy .ticks { margin-top: 16px; }
  .hero-copy .ticks li { margin-bottom: 4px; }
  .hero-card { padding: 16px; }
}

/* Customer-first visual system: quiet surfaces, decisive actions and short paths. */
:root { --bg:#fafbf8; --surface:#f0f3ed; --fg:#122f39; --muted:#52676d; --pine:#123640; --line:#dce3dc; --alert:#176244; --alert-fg:#fff; --alert-ink:#176244; --field:#176244; color-scheme:light; }
html { scroll-padding-top:100px; }
body { padding-bottom:0; font-size:1rem; }
h1,h2,h3,.display { letter-spacing:-.035em; font-weight:800; }
h2 { line-height:1.13; }
h3 { line-height:1.25; }
.wrap { max-width:1200px; }
.service-strip { background:#123640; color:#e5ede7; margin-inline:calc(-1 * var(--gutter-l)) calc(-1 * var(--gutter-r)); padding:8px var(--gutter-r) 8px var(--gutter-l); font-size:.69rem; letter-spacing:.1em; }
.service-strip .wrap { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.service-strip a { font-size:.75rem; letter-spacing:0; color:#f5f8f1; text-decoration:none; }
.service-strip a:hover { text-decoration:underline; }
.ribbon { background:#e8eddf; color:#344d3f; font-size:.76rem; padding-block:6px; }
header.top { background:#fafbf8f5; backdrop-filter:blur(12px); }
.bar { min-height:88px; max-width:1200px; gap:28px; }
.brand-icon { width:53px; height:45px; }
.brand b { font-size:1.17rem; color:#123640; }
.brand small { font-size:.68rem; letter-spacing:.015em; margin-top:5px; }
nav.main { gap:24px; }
nav.main a { font-size:.83rem; }
nav.main .nav-quote { display:none; }
.btn { border-radius:7px; font-size:.9rem; gap:16px; padding:16px 21px; min-height:50px; transition:background .15s,transform .15s; }
.btn:hover { background:#104f35; border-color:#104f35; filter:none; }
.btn.ghost:hover { color:#fff; }
.btn:disabled { opacity:.65; cursor:not-allowed; }
.btn.small { min-height:46px; font-size:.82rem; }
.text-action { display:inline-flex; align-items:center; gap:18px; font-size:.9rem; font-weight:700; text-decoration:none; min-height:48px; border-bottom:1px solid currentColor; }
.text-action:hover { color:var(--alert); }
.eyebrow { color:#52714f; font-size:.68rem; font-weight:700; letter-spacing:.15em; line-height:1.6; margin:0 0 18px; }
.status-dot { display:inline-block; width:7px; height:7px; margin-right:7px; border-radius:50%; background:#7d9e54; }
.home-hero { padding-block:56px 52px; }
.new-hero-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:68px; }
.new-hero-copy h1 { font-size:clamp(2.7rem,4.5vw,4.5rem); line-height:1.04; letter-spacing:-.055em; }
.new-hero-copy h1 span { color:#5e7c4e; }
.new-hero-copy .lede { font-size:1.04rem; line-height:1.75; margin-top:26px; max-width:45ch; }
.new-hero-copy .cta-row { gap:23px; margin-top:28px; }
.hero-assurances { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:31px; font-size:.72rem; color:var(--muted); }
.hero-assurances span::before { content:'✓'; color:#48794f; font-weight:700; margin-right:7px; }
.hero-visual { margin:0; position:relative; min-width:0; padding-bottom:29px; }
.hero-visual>img { width:100%; aspect-ratio:1.06; height:auto; object-fit:cover; border-radius:12px 12px 64px 12px; }
.hero-visual figcaption { position:absolute; bottom:0; left:26px; right:26px; display:flex; align-items:center; gap:18px; padding:21px 24px; background:#fff; box-shadow:0 10px 40px #153c3110; border:1px solid #e7ebe5; border-radius:8px; font-size:.85rem; line-height:1.5; }
.caption-mark { font-size:2.3rem; letter-spacing:-.1em; line-height:1; color:#6a8652; font-weight:800; }
.caption-arrow { margin-left:auto; font-size:1.6rem; color:#65874f; }
.quick-paths { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; padding-block:0; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.path-card { display:flex; flex-direction:column; padding:30px; text-decoration:none; background:#f1f4ec; min-width:0; }
.path-card+.path-card { border-left:1px solid var(--line); }
.path-card.urgent { background:#e8eedf; }
.path-number { font-size:.62rem; font-weight:700; letter-spacing:.1em; color:#526f4a; margin-bottom:19px; }
.path-card h2 { font-size:1.3rem; letter-spacing:-.035em; }
.path-card p { font-size:.85rem; line-height:1.65; color:var(--muted); margin:12px 0 23px; }
.path-link { font-size:.8rem; font-weight:700; display:flex; justify-content:space-between; margin-top:auto; }
.path-card:hover .path-link { text-decoration:underline; }
.home-services { padding-block:84px; }
.sec-head { align-items:end; gap:24px; margin-bottom:32px; }
.sec-head h2 { font-size:clamp(1.9rem,3.1vw,2.6rem); }
.sec-head .eyebrow { margin-bottom:13px; }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.service-tile { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:10px; overflow:hidden; text-decoration:none; background:#fff; }
.service-tile[hidden] { display:none; }
.service-photo { aspect-ratio:1.85; overflow:hidden; background:var(--surface); }
.service-photo img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.service-tile:hover .service-photo img { transform:scale(1.035); }
.service-copy { padding:23px; display:flex; flex-direction:column; flex:1; }
.tile-label { font-size:.62rem; text-transform:uppercase; letter-spacing:.1em; color:#6a7b60; font-weight:700; margin-bottom:12px; }
.service-copy h3 { font-size:1.22rem; letter-spacing:-.025em; }
.service-copy p { color:var(--muted); font-size:.85rem; line-height:1.65; margin:12px 0 25px; }
.tile-link { display:flex; justify-content:space-between; gap:14px; font-size:.78rem; font-weight:700; margin-top:auto; padding-top:15px; border-top:1px solid var(--line); }
.decision-section { background:#123640; color:#fff; padding-block:70px; }
.decision-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; align-items:start; }
.decision-grid .eyebrow { color:#bdd29b; }
.decision-grid h2 { font-size:clamp(2rem,3.3vw,2.9rem); }
.decision-grid .lede { color:#c5d6d4; font-size:1rem; margin-top:20px; }
.call-note { border-left:2px solid #c2d895; padding-left:20px; margin-top:30px; max-width:38ch; }
.call-note strong { font-size:.95rem; }
.call-note p { color:#bdd0cd; font-size:.85rem; margin:7px 0 10px; }
.call-note a { font-size:.9rem; font-weight:700; color:#d2e3b5; }
.decision-grid .triage { background:#fff; color:var(--fg); border-radius:10px; padding:28px; display:grid; grid-template-columns:1fr; gap:20px; }
.decision-grid .triage legend { font-size:1.1rem; font-weight:700; }
.symptom-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.symptom-options .opt { font-size:.81rem; margin:0; min-height:62px; align-items:center; padding:11px; }
.symptom-options .opt input { flex-shrink:0; margin-top:0; }
.result { border-color:#7c9f4e; }
.result h3 { font-size:1.1rem; }
.result p { font-size:.87rem; }
.process-layout { display:grid; grid-template-columns:1fr 1.1fr; gap:95px; }
.process-layout h2 { font-size:clamp(2rem,3.2vw,2.7rem); }
.process-layout .lede { margin-top:20px; font-size:1rem; }
.visit-steps { list-style:none; margin:0; padding:0; }
.visit-steps li { display:flex; align-items:start; gap:25px; padding:0 0 27px; margin:0 0 27px; border-bottom:1px solid var(--line); }
.visit-steps li:last-child { margin-bottom:0; }
.visit-steps li>span { color:#71885c; font-size:1rem; font-weight:700; }
.visit-steps h3 { font-size:1.1rem; margin-bottom:9px; }
.visit-steps p { font-size:.9rem; color:var(--muted); margin:0; }
.area-section { background:#f0f3eb; }
.area-section .sec-head>p { font-size:.9rem; }
.areas { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 34px; }
.areas a { font-size:.97rem; padding:21px 0; }
.areas a::after { content:'↗'; display:block; font-size:.9rem; color:#65874f; margin-top:10px; }
.areas a span { font-size:.76rem; margin-top:7px; font-weight:400; }
.faq-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:90px; }
.faq-layout h2 { font-size:2.6rem; }
.faq-layout .lede { font-size:.95rem; margin-top:20px; }
details summary { font-size:.93rem; padding-block:21px; }
details p { font-size:.9rem; color:var(--muted); }
.request-section { background:#e9efdf; padding-block:76px; }
.request-section .contact-grid { align-items:center; grid-template-columns:.9fr 1.1fr; gap:85px; }
.request-section h2 { font-size:clamp(2.2rem,3.8vw,3.3rem); }
.request-section .lede { font-size:1rem; margin-top:24px; }
.contact-phone { display:inline-block; font-size:clamp(1.45rem,2.6vw,2.2rem); font-weight:800; text-decoration:none; letter-spacing:-.04em; margin:15px 0 12px; }
.small-copy { font-size:.78rem; color:var(--muted); margin-top:14px; }
.request-card { background:#fff; padding:32px; border-radius:12px; border:1px solid var(--line); }
.request-card>h3,.request-card>h2 { font-size:1.4rem; margin-bottom:10px; }
.request-card>.muted { font-size:.85rem; margin-bottom:22px; }
.booking-notice { background:#f0f4e9; border-left:3px solid #6d8f4d; padding:14px 16px; margin-bottom:22px; font-size:.84rem; }
.booking-notice p { margin:4px 0 0; line-height:1.6; }
.form { gap:17px; }
.form label { font-size:.8rem; }
.form label span { font-size:.66rem; font-weight:400; color:var(--muted); }
.form input,.form textarea,.form select { background:#fafbf8; font-size:.88rem; border:1px solid #cdd8cd; border-radius:6px; }
.form select { text-overflow:ellipsis; }
.optional-email { border:0; }
.optional-email summary { padding-block:5px; font-size:.8rem; font-weight:500; min-height:36px; }
.optional-email summary::after { top:4px; font-size:1rem; }
.form-actions .btn { width:100%; }
.form-note { margin:12px 0 0; font-size:.71rem; line-height:1.6; }
.form .hp { width:1px; min-height:0; }
.page-head { padding-block:45px 32px; }
.page-head h1 { max-width:22ch; }
.page-head .lede { margin-top:20px; font-size:1.05rem; }
.page-head .eyebrow { margin-top:25px; }
.page-jumps { display:flex; flex-wrap:wrap; gap:25px; padding:0 0 24px; margin-bottom:30px; border-bottom:1px solid var(--line); font-size:.85rem; font-weight:600; }
.anchor-target,.prose h2[id] { scroll-margin-top:115px; }
.box { border-radius:10px; background:#f1f4ec; padding:26px; }
.aside .box h3 { font-size:1.15rem; }
.aside .box p { font-size:.87rem; }
.aside .btn { white-space:normal; text-align:center; }
.aside .big-phone { font-size:1.4rem; }
.filter-buttons { display:flex; gap:9px; flex-wrap:wrap; margin-bottom:30px; }
.filter-buttons[hidden] { display:none; }
.filter-buttons button { background:#fff; border:1px solid #cad5c8; padding:12px 17px; min-height:46px; font:600 .85rem var(--font-body); color:var(--fg); border-radius:999px; cursor:pointer; }
.filter-buttons button[aria-pressed=true] { background:#123640; border-color:#123640; color:#fff; }
.urgent-inline { display:flex; align-items:center; justify-content:space-between; gap:25px; background:#eaf0e1; border:1px solid #d9e2cc; border-radius:9px; padding:22px 26px; }
.urgent-inline strong { font-size:.94rem; }
.urgent-inline p { margin:4px 0 0; font-size:.84rem; color:var(--muted); }
.urgent-inline a { font-size:.88rem; font-weight:700; white-space:nowrap; }
.service-finder { padding-top:30px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
footer { background:#123640; color:#fff; padding-top:58px; }
footer .cols { gap:34px; }
footer p,footer a,footer .fine { color:#d0ddd9; }
footer .cols h2 { font-size:1.05rem; color:#fff; }
footer .cols>div:first-child h2 { font-size:1.6rem; }
footer li a { font-size:.8rem; }
.callbar { background:#fafbf8fa; border-color:var(--line); box-shadow:0 -8px 25px #1236400b; gap:10px; }
.callbar .btn { font-size:.85rem; min-height:47px; }
.callbar .btn.ghost:hover { background:#123640; color:#fff; }
[hidden] { display:none !important; }
@media(min-width:761px) and (max-width:1050px) { .bar { gap:16px; } nav.main { gap:14px; } .brand small { display:none; } .header-call { display:none; } nav.main .nav-quote { display:block; } }
@media(max-width:960px) {
 .new-hero-grid { gap:32px; } .new-hero-copy h1 { font-size:3.2rem; }
 .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .decision-grid,.process-layout,.faq-layout { gap:40px; }
 .request-section .contact-grid { gap:35px; }
 .path-card { padding:23px; }
 .bar { min-height:76px; }
}
@media(max-width:760px) {
 body { padding-bottom:82px; }
 .service-strip .wrap>span { display:none; } .service-strip .wrap { justify-content:center; }
 .service-strip { padding-block:7px; }
 .ribbon { font-size:.67rem; }
 .bar { min-height:74px; gap:10px; }
 .brand b { font-size:1.03rem; } .brand small { display:none; }
 .brand-icon { width:45px; height:37px; }
 .menu-btn { min-height:44px; font-size:.78rem; padding:8px 12px; border-width:1px; border-color:#c8d4c5; }
 nav.main { padding-block:8px 18px; } nav.main .nav-quote { display:block; }
 .home-hero { padding-block:35px 28px; }
 .new-hero-grid { grid-template-columns:1fr; gap:30px; }
 .new-hero-copy h1 { font-size:clamp(2.4rem,8.3vw,3.6rem); }
 .new-hero-copy .lede { font-size:.96rem; margin-top:20px; }
 .new-hero-copy .cta-row { gap:15px; margin-top:23px; }
 .new-hero-copy .cta-row .btn { padding-inline:15px; font-size:.84rem; }
 .new-hero-copy .text-action { font-size:.81rem; gap:10px; }
 .hero-assurances { margin-top:21px; font-size:.65rem; gap:8px 12px; }
 .hero-visual>img { aspect-ratio:1.8; border-radius:9px 9px 42px 9px; }
 .hero-visual figcaption { left:17px; right:17px; padding:15px 18px; font-size:.76rem; }
 .caption-mark { font-size:1.8rem; }
 .quick-paths { grid-template-columns:1fr; margin-top:0; }
 .path-card { padding:23px; }
 .path-card+.path-card { border-left:0; border-top:1px solid var(--line); }
 .path-number { margin-bottom:12px; }
 .path-card h2 { font-size:1.3rem; }
 .path-card p { margin-bottom:15px; max-width:45ch; }
 section,.home-services { padding-block:47px; }
 .sec-head { margin-bottom:24px; }
 .decision-grid,.process-layout,.faq-layout,.request-section .contact-grid { grid-template-columns:1fr; gap:32px; }
 .decision-grid h2,.process-layout h2,.faq-layout h2 { font-size:2.1rem; }
 .decision-grid .triage { padding:22px; }
 .areas { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 22px; }
 .areas a { font-size:.88rem; } .areas a span { font-size:.72rem; }
 .request-card { padding:24px; }
 .form { grid-template-columns:1fr; }
 .page-head { padding-top:30px; }
 .page-head h1 { font-size:2.2rem; }
 .page-head .lede { font-size:.96rem; }
 .urgent-inline { flex-direction:column; align-items:start; padding:21px; gap:12px; }
 footer { padding-bottom:35px; }
}
@media(max-width:500px) {
 .service-grid { grid-template-columns:1fr; gap:20px; }
 .service-photo { aspect-ratio:2.1; }
 .service-copy { padding:21px; }
 .service-copy p { margin-bottom:18px; }
 .symptom-options { grid-template-columns:1fr; }
 .symptom-options .opt { min-height:48px; }
 .hero-visual { display:none; }
 .home-hero { padding-bottom:31px; }
 .quick-paths .path-card { padding:22px; }
 .filter-buttons { gap:7px; } .filter-buttons button { font-size:.77rem; padding:11px 13px; }
 .aside .big-phone { font-size:1.35rem; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none !important; animation:none !important; } }
.map-selector { display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:.88rem; font-weight:700; margin:0 0 14px; }
.map-selector select { min-height:46px; padding:10px 36px 10px 13px; max-width:100%; border:1px solid #c8d5c5; border-radius:6px; background:#fff; color:var(--fg); font:inherit; }
.map.scroll-safe iframe { pointer-events:none; }
.map.is-interactive iframe { pointer-events:auto; }
.map-activate { position:absolute; right:14px; bottom:14px; border:1px solid #bdcdb7; padding:12px 18px; min-height:46px; border-radius:6px; background:#fff; color:#123640; font:700 .85rem var(--font-body); box-shadow:0 3px 16px #12364022; cursor:pointer; }
.map-activate[aria-pressed=true] { background:#123640; color:#fff; }
.map-note { font-size:.76rem; margin:8px 0 0; color:var(--muted); }
.help-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:35px; align-items:start; padding-top:10px; }
.help-layout .triage { grid-template-columns:1fr; }
.help-layout h2 { font-size:1.35rem; margin-bottom:16px; }
.help-layout .box p { margin-top:15px; }
.budget-cta { background:#f1f4eb; border-top:1px solid var(--line); }
.budget-cta .wrap { display:flex; align-items:center; justify-content:space-between; gap:40px; }
.budget-cta h2 { font-size:clamp(1.9rem,3.2vw,2.7rem); }
.budget-cta p:not(.eyebrow) { color:var(--muted); margin:15px 0 0; }
.budget-actions { display:grid; gap:14px; flex-shrink:0; }
.budget-actions .text-action { justify-content:center; }
@media(max-width:760px) { .map-selector { align-items:stretch; flex-direction:column; gap:8px; } .help-layout { grid-template-columns:1fr; } .budget-cta .wrap { flex-direction:column; align-items:stretch; gap:25px; } .map-frame { aspect-ratio:4 / 3; } }
.hero-symptom-card { background:#fff; border:1px solid var(--line); border-radius:14px; padding:28px; box-shadow:0 12px 40px #1236400a; scroll-margin-top:105px; }
.hero-symptom-card .eyebrow { margin-bottom:9px; }
.hero-symptom-card h2 { font-size:1.8rem; margin-bottom:10px; }
.hero-symptom-card .symptom-intro { font-size:.87rem; color:var(--muted); margin-bottom:20px; }
.hero-symptom-card .triage { border:0; background:transparent; padding:0; grid-template-columns:1fr; gap:18px; }
.hero-symptom-card .triage legend { font:600 .77rem var(--font-body); color:var(--muted); margin-bottom:10px; }
.hero-symptom-card .symptom-options { gap:8px; }
.hero-symptom-card .opt { min-height:55px; font-size:.8rem; background:#fafbf8; }
.hero-symptom-card .opt:has(input:checked) { border-color:#176244; background:#eaf2e2; }
.hero-symptom-card .result { background:#f1f5eb; border-radius:0 6px 6px 0; padding:15px; }
.hero-symptom-card .result .cta-row { gap:9px; margin-top:15px; }
.hero-symptom-card .result .btn { padding:12px 14px; font-size:.8rem; min-height:44px; }
.hero-symptom-card .symptom-guide-link { display:inline-block; margin-top:19px; font-size:.77rem; font-weight:600; }
.symptom-support-photo { margin:0; }
.symptom-support-photo>img { width:100%; aspect-ratio:1.45; object-fit:cover; border-radius:12px; }
.symptom-support-photo figcaption { display:none; }
@media(max-width:760px) { .hero-symptom-card { padding:22px; } .hero-symptom-card h2 { font-size:1.6rem; } .hero-symptom-card .symptom-options { grid-template-columns:1fr 1fr; } .hero-symptom-card .opt { min-height:60px; font-size:.76rem; padding:10px; } }
@media(max-width:360px) { .hero-symptom-card .symptom-options { grid-template-columns:1fr; } }
.has-hero-video { position:relative; isolation:isolate; background:#123640; color:#fff; margin-inline:calc(-1 * var(--gutter-l)) calc(-1 * var(--gutter-r)); padding-inline:var(--gutter-l) var(--gutter-r); margin-bottom:30px; overflow:hidden; }
.hero-video-poster,.hero-motion { position:absolute; inset:0; z-index:-3; width:100%; height:100%; object-fit:cover; }
.hero-motion { z-index:-2; }
.has-hero-video::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(6,29,36,.91),rgba(6,29,36,.77) 52%,rgba(6,29,36,.46)); }
.has-hero-video .new-hero-copy h1 { color:#fff; }
.has-hero-video .new-hero-copy h1 span { color:#c6dca6; }
.has-hero-video .new-hero-copy .eyebrow,.has-hero-video .hero-assurances { color:#d3e4c8; }
.has-hero-video .new-hero-copy .lede { color:#e2eae6; }
.has-hero-video .new-hero-copy .btn.ghost { border-color:#f4f7ee; color:#fff; }
.has-hero-video .hero-symptom-card { color:var(--fg); box-shadow:0 12px 36px #061d2426; }
.hero-video-controls { display:flex; justify-content:flex-end; margin-top:14px; }
.hero-video-controls button { min-height:44px; padding:9px 14px; border:1px solid #ffffff77; border-radius:6px; background:#123640b3; color:#fff; font:600 .76rem var(--font-body); cursor:pointer; }
@media(max-width:760px) { .has-hero-video { margin-bottom:24px; } .has-hero-video::before { background:rgba(6,29,36,.84); } }


/* 123env: a short path from a property problem to the right service. */
.category-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.category-panel { border:1px solid var(--line); border-radius:12px; background:#fff; padding:30px; display:flex; flex-direction:column; }
.category-number { color:#506744; font:700 .8rem var(--font-body); padding-bottom:25px; }
.category-panel h3 { font-size:1.6rem; margin-bottom:12px; }
.category-panel>p { color:var(--muted); font-size:.94rem; min-height:70px; }
.category-panel ul { list-style:none; padding:0; margin:12px 0 24px; }
.category-panel li { border-bottom:1px solid var(--line); }
.category-panel li a { display:flex; justify-content:space-between; gap:12px; padding:15px 0; font-size:.88rem; text-decoration:none; font-weight:600; }
.category-panel li a:hover { color:#486332; text-decoration:underline; }
.category-panel>.text-action { margin-top:auto; font-size:.8rem; }
.simple-process { background:#f1f4eb; }
.simple-process .visit-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px; }
.simple-process .visit-steps li { border:0; padding:10px 0; align-items:start; }
.compact-service .service-copy { padding:25px; }
.compact-service h3 { font-size:1.25rem; }
.compact-service p { font-size:.9rem; }
.compact-service { border-radius:10px; }
.service-category { padding:25px 0 40px; scroll-margin-top:120px; }
.service-category .sec-head h2 { max-width:760px; font-size:clamp(1.4rem,2.5vw,2rem); }
.service-category-links { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:25px; }
.service-category-links a { padding:12px 17px; background:#edf2e7; border-radius:6px; text-decoration:none; font-weight:600; font-size:.85rem; }
.service-bottom { margin:15px 0 60px; }
.service-bottom h2 { font-size:1.7rem; }
.service-bottom p { margin:15px 0; }
.service-availability { margin:20px 0 0; color:#42543c; border-left:3px solid #abc28c; padding:10px 15px; font-size:.88rem; max-width:800px; }
.faq-search-label { display:block; font-weight:600; font-size:.9rem; margin:26px 0 9px; }
.faq-search { width:min(100%,660px); min-height:50px; padding:13px 16px; font:inherit; border:1px solid #899b83; border-radius:7px; background:#fff; color:var(--fg); }
.faq-search-status { font-size:.85rem; margin-top:12px; color:var(--muted); }
[hidden] { display:none !important; }
@media(max-width:1000px) { .category-panel { padding:23px; } .category-panel h3 { font-size:1.35rem; } }
@media(max-width:760px) { .category-grid,.simple-process .visit-steps { grid-template-columns:1fr; } .category-panel>p { min-height:0; } .category-panel { padding:25px; } .category-number { padding-bottom:15px; } .simple-process .visit-steps { gap:12px; } .service-category-links { gap:8px; } .service-category-links a { font-size:.78rem; } .hero-assurances { flex-wrap:wrap; } }

/* Launch header: full business name stays legible on narrow screens. */
.brand { min-width:0; }
.brand>span { min-width:0; }
.brand b { font-size:clamp(.98rem,1.6vw,1.17rem); line-height:1.2; }
.direct-enquiry>p { margin:16px 0; }
.direct-enquiry .cta-row { flex-wrap:wrap; }
.direct-enquiry .btn { max-width:100%; }
@media(max-width:500px) { .bar { gap:12px; } .brand { gap:9px; } .brand-icon { width:42px; height:38px; } .brand b { font-size:1rem; } .brand small { font-size:.6rem; } .menu-btn { flex-shrink:0; } }

.hero-quote-mobile{display:none}
.trust-badges span{font-weight:600;color:inherit}
@media(max-width:760px){.hero-quote-mobile{display:block;margin-top:18px;padding:18px;background:#fff;color:#123640;text-align:left}.hero-quote-mobile *{color:#123640}.hero-quote-mobile .btn,.hero-quote-mobile .btn *{color:#fff}.hero-quote-mobile h2{font-size:1.15rem;margin:0 0 10px}.new-hero-copy .lede{display:none}}
@media(max-width:760px){.has-hero-video .hero-quote-mobile,.has-hero-video .hero-quote-mobile label,.has-hero-video .hero-quote-mobile h2,.has-hero-video .hero-quote-mobile summary,.has-hero-video .hero-quote-mobile p{color:#123640 !important;-webkit-text-fill-color:#123640}}
