/* Self-hosted fonts */
@font-face{font-family:"Archivo";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/archivo-latin-700-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Archivo";font-style:normal;font-weight:800;font-display:swap;src:url("../fonts/archivo-latin-800-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Archivo";font-style:normal;font-weight:900;font-display:swap;src:url("../fonts/archivo-latin-900-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/public-sans-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/public-sans-latin-600-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/public-sans-latin-700-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* BioGreen Environmental & 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: 34px; height: 50px; 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:32px; height:46px; }
.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:28px; height:40px; }
 .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:27px; 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}}

/* ===== Site v2 (Oct 2026): dropdown menus, photo hero, photo cards, service-area map ===== */
:root { --deep:#123640; --leaf:#176244; --leaf-dark:#104f35; --sage:#c6dca6; --mist:#f0f3ed; --water:#d7e6ea; --land:#f6f8f2; --land-edge:#b9c9bc; }

/* Header dropdowns */
.nav-dd { position:relative; display:flex; align-items:center; gap:2px; }
.nav-dd-btn { display:inline-flex; align-items:center; justify-content:center; width:28px; height:36px; padding:0; border:0; background:none; color:inherit; cursor:pointer; border-radius:5px; }
.nav-dd-btn svg { transition:transform .15s; }
.nav-dd.open .nav-dd-btn svg { transform:rotate(180deg); }
.nav-dd-btn:hover { background:var(--mist); }
.dd-panel { display:none; }
.dd-h { font:700 .68rem/1.3 var(--font-body); letter-spacing:.09em; text-transform:uppercase; color:var(--leaf); margin:0 0 10px; }
.dd-col ul { list-style:none; padding:0; margin:0; }
.dd-col li { margin:0; }
.dd-foot { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 24px; border-top:1px solid var(--line); margin-top:18px; padding-top:14px; font-size:.82rem; color:var(--muted); }
.dd-foot a { font-weight:700; }
nav.main .dd-foot a.dd-urgent { color:var(--leaf); }
@media (min-width:761px) {
  .bar { position:relative; }
  .nav-dd { position:static; }
  .nav-dd-link, .nav-dd-btn { position:relative; }
  .dd-panel { position:absolute; top:calc(100% - 6px); right:0; width:min(900px, 100%); background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 22px 50px #12364024; padding:24px 26px 18px; z-index:40; }
  .dd-panel::before { content:""; position:absolute; left:0; right:0; top:-34px; height:34px; }
  .nav-dd:hover .dd-panel, .nav-dd.open .dd-panel { display:block; }
  .nav-dd:hover .nav-dd-btn svg { transform:rotate(180deg); }
  .dd-cols { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:22px; }
  .dd-cols-3 { grid-template-columns:repeat(3, minmax(0,1fr)); row-gap:20px; }
  nav.main .dd-col a { display:block; padding:6px 0; font-size:.86rem; font-weight:600; line-height:1.3; }
  nav.main .dd-col a:hover { color:var(--leaf); }
  nav.main .dd-foot a { padding:0; font-size:.82rem; }
}
@media (max-width:760px) {
  nav.main { max-height:calc(100dvh - 120px); overflow-y:auto; }
  .nav-dd { flex-wrap:wrap; border-bottom:1px solid var(--line); }
  nav.main .nav-dd > .nav-dd-link { flex:1; border-bottom:0; }
  .nav-dd-btn { width:48px; height:48px; }
  .nav-dd.open .dd-panel { display:block; width:100%; padding:4px 0 14px 12px; }
  .dd-cols { display:grid; gap:14px; }
  nav.main .dd-col a { padding:9px 0; border-bottom:0; font-size:.92rem; font-weight:600; }
  .dd-foot { margin-top:6px; }
  nav.main .dd-foot a { border-bottom:0; padding:6px 0; }
}

/* Photo hero (replaces the 3D video) */
.photo-hero .hero-video-poster { object-position:center 60%; }
.photo-hero::before { background:linear-gradient(90deg, rgba(6,29,36,.9) 0%, rgba(6,29,36,.72) 45%, rgba(6,29,36,.38) 100%); }
@media (max-width:760px) { .photo-hero::before { background:rgba(6,29,36,.8); } }

/* Photo service cards */
.photo-grid { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:20px; }
.photo-card { display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; text-decoration:none; color:inherit; transition:border-color .15s, box-shadow .15s, transform .15s; }
.photo-card:hover { border-color:#b8c9b6; box-shadow:0 14px 34px #1236401a; transform:translateY(-2px); }
.pc-img { display:block; aspect-ratio:3 / 2; overflow:hidden; background:var(--mist); }
.pc-img img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.photo-card:hover .pc-img img { transform:scale(1.04); }
.pc-body { display:flex; flex-direction:column; gap:8px; padding:16px 18px 18px; flex:1; }
.pc-body h3 { font-size:1.05rem; line-height:1.2; }
.pc-body p { font-size:.86rem; line-height:1.55; color:var(--muted); margin:0; }
.pc-body .tile-link { margin-top:auto; padding-top:6px; font-size:.8rem; font-weight:700; color:var(--leaf); }
.service-category { padding-block:28px 12px; }
.more-services { display:flex; flex-wrap:wrap; align-items:center; gap:14px 22px; margin-top:28px; padding:18px 20px; border:1px solid var(--line); border-radius:12px; background:var(--mist); }
.more-services .dd-h { margin:0; }
.more-services ul { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:0; flex:1; max-width:none; }
.more-services li { margin:0; }
.more-services li a { display:inline-block; padding:6px 12px; border-radius:999px; background:#fff; border:1px solid var(--line); font-size:.8rem; font-weight:600; text-decoration:none; }
.more-services li a:hover { border-color:var(--leaf); color:var(--leaf); }
@media (max-width:1100px) { .photo-grid { grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (max-width:860px) { .photo-grid { grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px; } }
@media (max-width:480px) { .pc-body { padding:12px 13px 14px; } .pc-body h3 { font-size:.95rem; } .pc-body p { display:none; } .more-services .btn { width:100%; } }

/* Why us */
.why-band { background:var(--mist); padding-block:clamp(48px, 7vw, 84px); }
.why-grid { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1.1fr); gap:clamp(28px, 5vw, 64px); align-items:center; }
.why-photo { margin:0; }
.why-photo img { width:100%; aspect-ratio:4 / 3; object-fit:cover; border-radius:14px; }
.why-photo figcaption { font-size:.82rem; color:var(--muted); margin-top:8px; }
.why-list { list-style:none; padding:0; margin:22px 0 20px; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:20px 26px; max-width:none; }
.why-list li { margin:0; padding-left:18px; border-left:3px solid var(--leaf); }
.why-list h3 { font-size:1rem; margin-bottom:6px; }
.why-list p { font-size:.88rem; color:var(--muted); margin:0; }
@media (max-width:860px) { .why-grid { grid-template-columns:minmax(0,1fr); } .why-list { grid-template-columns:minmax(0,1fr); } }

/* Service-area map */
.svc-map-fig { margin:8px 0 28px; }
.svc-map-scroll { overflow-x:auto; border:1px solid var(--line); border-radius:14px; background:var(--water); -webkit-overflow-scrolling:touch; }
.svc-map { display:block; width:100%; height:auto; min-width:760px; font-family:var(--font-body); }
.m-water { fill:var(--water); }
.m-land { fill:var(--land); stroke:var(--land-edge); stroke-width:1.2; }
.m-cover { opacity:.13; }
.m-cover circle { fill:#176244; }
.m-swipe { display:none; font-weight:700; color:var(--deep); }
@media (max-width:760px) { .m-swipe { display:inline; } }
.m-lake { fill:var(--water); stroke:var(--land-edge); stroke-width:1; }
.m-river { fill:none; stroke:#9cc0cc; stroke-width:3.5; stroke-linecap:round; stroke-linejoin:round; }
.m-border { fill:none; stroke:#a08a6c; stroke-width:1.5; stroke-dasharray:7 5; }
.m-water-label { font-size:14px; font-style:italic; fill:#6a8b96; letter-spacing:.04em; }
.m-country { font-size:12px; fill:#8f7a5e; letter-spacing:.18em; }
.m-place circle { fill:#fff; stroke:#6f8577; stroke-width:1.5; }
.m-place text { font-size:13px; fill:#52676d; paint-order:stroke; stroke:var(--land); stroke-width:4px; stroke-linejoin:round; }
a.m-place:hover text { fill:var(--leaf); text-decoration:underline; }
.m-pin circle { fill:var(--leaf); stroke:#fff; stroke-width:2.5; }
.m-pin .m-halo { fill:var(--leaf); stroke:none; opacity:0; transition:opacity .15s; }
.m-pin text { font-size:17px; font-weight:700; fill:var(--deep); paint-order:stroke; stroke:var(--land); stroke-width:5px; stroke-linejoin:round; }
.m-pin:hover .m-halo, .m-pin:focus-visible .m-halo { opacity:.18; }
.m-pin:hover text, .m-pin:focus-visible text { fill:var(--leaf); text-decoration:underline; }
.m-pin:focus-visible { outline:none; }
.m-pin.is-current circle:not(.m-halo) { fill:var(--deep); r:11; }
.m-pin.is-current .m-halo { opacity:.25; fill:var(--deep); }
.svc-map-fig figcaption { display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px; margin-top:10px; font-size:.8rem; color:var(--muted); }
.svc-map-fig figcaption a { margin-left:auto; font-weight:700; color:var(--deep); }
.m-key { display:inline-block; width:11px; height:11px; border-radius:50%; vertical-align:-1px; margin-right:5px; }
.m-key-pin { background:var(--leaf); }
.m-key-cover { background:#17624430; border-radius:3px; }
@media (max-width:760px) { .svc-map-fig figcaption a { margin-left:0; } }

/* Regions under the map */
.region-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:26px 34px; }
.region h3 { font-size:.72rem; letter-spacing:.09em; text-transform:uppercase; color:var(--leaf); font-family:var(--font-body); margin-bottom:6px; }
.region ul { list-style:none; padding:0; margin:0; }
.region li { margin:0; border-top:1px solid var(--line); }
.region a { display:block; padding:12px 0; font-weight:700; font-size:.95rem; text-decoration:none; }
.region a span { display:block; font-weight:400; font-size:.76rem; color:var(--muted); margin-top:3px; line-height:1.45; }
.region a:hover, .region a[aria-current="page"] { color:var(--leaf); }
@media (max-width:860px) { .region-grid { grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:520px) { .region-grid { grid-template-columns:minmax(0,1fr); } }

/* Calls to action inside pages */
.inline-cta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px 20px; margin:26px 0; padding:18px 20px; border-radius:12px; background:var(--deep); color:#fff; }
.inline-cta strong { display:block; font-size:1.05rem; }
.inline-cta span { font-size:.82rem; color:#d3e4c8; }
.inline-cta .cta-row { margin:0; gap:10px; }
.inline-cta .btn { min-height:44px; padding:11px 16px; font-size:.84rem; }
.inline-cta .btn.ghost { color:#fff; border-color:#f4f7ee; }
.area-chips { display:flex !important; flex-wrap:wrap; gap:6px; list-style:none; padding:0; }
.area-chips li { margin:0; }
.area-chips a { display:inline-block; padding:5px 10px; border:1px solid var(--line); border-radius:999px; font-size:.78rem; text-decoration:none; background:#fff; }
.area-services { display:grid !important; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; list-style:none; padding:0; }
@media (max-width:560px) { .area-services { grid-template-columns:minmax(0,1fr); } }
.quote-points { list-style:none; padding:0; margin:18px 0 0; }
.quote-points li { padding-left:24px; position:relative; font-weight:600; font-size:.92rem; }
.quote-points li::before { content:"✓"; position:absolute; left:0; color:var(--leaf); font-weight:800; }
.page-head .cta-row { margin-top:18px; }

/* Two-step call to action */
.cta-wiz fieldset { border:0; padding:0; margin:0; min-width:0; }
.cta-wiz.js .wiz-step:not(.is-on) { display:none; }
.cta-wiz:not(.js) .wiz-back, .cta-wiz:not(.js) .wiz-switch { display:none; }
.cta-wiz:not(.js) .wiz-step + .wiz-step { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }
.wiz-step:focus { outline:none; }
.wiz-title { display:block; font:800 1.55rem/1.15 var(--font-display); letter-spacing:-.03em; color:var(--deep); padding:0; margin:0 0 6px; }
.wiz-intro, .wiz-note, .wiz-call p:not(.wiz-tag):not(.wiz-number) { font-size:.88rem; color:var(--muted); margin:0 0 16px; }
.wiz-opts { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.wiz-opt { position:relative; display:flex; align-items:center; min-height:56px; padding:11px 14px; border:1.5px solid var(--line); border-radius:9px; background:#fff; font-size:.88rem; font-weight:650; line-height:1.3; color:var(--deep); cursor:pointer; transition:border-color .12s, background .12s; }
.wiz-opt input { position:absolute; opacity:0; width:1px; height:1px; }
.wiz-opt:hover { border-color:var(--leaf); background:#f5f8f1; }
.wiz-opt:focus-within { outline:3px solid var(--leaf); outline-offset:2px; }
.wiz-opt.is-urgent span::before { content:""; display:inline-block; width:8px; height:8px; border-radius:50%; background:#c2410c; margin-right:9px; vertical-align:1px; }
.wiz-ask .wiz-opts + * { margin-top:12px; }
.wiz-back { border:0; background:none; padding:0; margin:0 0 14px; font:600 .8rem var(--font-body); color:var(--muted); cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.wiz-tag { font:700 .7rem/1 var(--font-body); letter-spacing:.1em; color:#c2410c; margin:0 0 8px; }
.wiz-call-btn { width:100%; justify-content:center; min-height:60px; font-size:1.08rem; background:#c2410c; border-color:#c2410c; }
.wiz-call-btn:hover { background:#9a3412; border-color:#9a3412; }
.wiz-number { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:12px 0 4px; padding:10px 14px; border:1px dashed var(--line); border-radius:8px; }
.wiz-number span { font:800 1.25rem var(--font-display); color:var(--deep); letter-spacing:-.01em; }
.wiz-copy { border:1px solid var(--line); background:#fff; border-radius:6px; padding:7px 11px; font:600 .78rem var(--font-body); color:var(--deep); cursor:pointer; }
.wiz-switch { display:block; border:0; background:none; padding:0; margin-top:16px; font:700 .86rem var(--font-body); color:var(--leaf); cursor:pointer; text-align:left; }
.wiz-alt { font-size:.84rem; color:var(--muted); margin:14px 0 0; }
.wiz-alt a { font-weight:700; color:var(--deep); }
.hero-wiz { align-self:start; }
@media (max-width:480px) { .wiz-opts { grid-template-columns:1fr; } .wiz-opt { min-height:52px; } .wiz-title { font-size:1.35rem; } }
.wiz-photo-btn { width:100%; justify-content:center; margin-top:10px; }
.photo-note { font-size:.82rem; color:var(--muted); margin:10px 0 0; }
.photo-note a { font-weight:700; color:var(--leaf); }
.photo-field input[type=file] { padding:10px; background:#fff; border:1px dashed var(--line); border-radius:8px; width:100%; font:inherit; font-size:.86rem; }

/* About page */
.about-head .lede { max-width:62ch; }
.about-photo { margin:8px 0 0; }
.about-photo img { width:100%; aspect-ratio:16 / 8; object-fit:cover; object-position:center 55%; border-radius:16px; }
.about-photo figcaption { font-size:.82rem; color:var(--muted); margin-top:8px; }
.about-section { padding-block:clamp(40px, 6vw, 72px) 0; }
.about-section h2 { margin:6px 0 24px; }
.about-promises { list-style:none; padding:0; margin:0; max-width:none; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:22px 30px; }
.about-promises li { margin:0; padding:18px 20px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.about-promises h3 { font-size:1.02rem; margin-bottom:6px; }
.about-promises p { font-size:.88rem; color:var(--muted); margin:0; }
.about-band { background:var(--mist); margin-top:clamp(40px, 6vw, 72px); padding-block:clamp(40px, 6vw, 72px); }
.about-split { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr); gap:40px; align-items:start; }
.about-svcs { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:24px; }
.about-svc h3 { font-size:.72rem; letter-spacing:.09em; text-transform:uppercase; color:var(--leaf); font-family:var(--font-body); margin-bottom:8px; }
.about-svc ul { list-style:none; padding:0; margin:0; }
.about-svc li { margin:0; border-top:1px solid var(--line); }
.about-svc a { display:block; padding:9px 0; font-weight:650; font-size:.92rem; text-decoration:none; }
.about-svc a:hover { color:var(--leaf); }
.about-areas { margin-bottom:12px; }
.about-cta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px 32px; margin-block:clamp(48px, 7vw, 84px); padding:clamp(22px, 4vw, 36px); border-radius:16px; background:var(--deep); color:#fff; }
.about-cta h2 { color:#fff; margin-bottom:8px; }
.about-cta p { color:#d3e4c8; margin:0; }
.about-cta .btn.ghost { color:#fff; border-color:#f4f7ee; }
@media (max-width:960px) { .about-promises { grid-template-columns:repeat(2, minmax(0,1fr)); } .about-svcs { grid-template-columns:repeat(2, minmax(0,1fr)); } .about-split { grid-template-columns:minmax(0,1fr); gap:20px; } }
@media (max-width:560px) { .about-promises, .about-svcs { grid-template-columns:minmax(0,1fr); } .about-photo img { aspect-ratio:4 / 3; } }

/* Trust band (homepage, under the hero): deep brand band, coloured seals, logos on a white card */
.trust-band { position:relative; overflow:hidden; color:#fff; background:linear-gradient(120deg, #0d2a35 0%, #123640 45%, #134b45 100%); margin-inline:calc(-1 * var(--gutter-l)) calc(-1 * var(--gutter-r)); padding:38px var(--gutter-r) 40px var(--gutter-l); }
.trust-band::before { content:""; position:absolute; inset:auto -10% -60% 40%; height:140%; background:radial-gradient(closest-side, #8fd14f2e, transparent); pointer-events:none; }
.trust-band::after { content:""; position:absolute; left:0; right:0; top:0; height:4px; background:linear-gradient(90deg, #016abd, #176244 50%, #8fd14f); }
.trust-grid { position:relative; display:grid; grid-template-columns:auto minmax(0,1fr); grid-template-areas:"intro intro" "seals stack"; align-items:center; gap:22px 40px; }
.trust-intro { grid-area:intro; display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 18px; }
.trust-intro .eyebrow { color:#c6dca6; margin:0; }
.trust-head { font:800 1.25rem/1.25 var(--font-display); letter-spacing:-.02em; color:#fff; margin:0; max-width:none; }
.seals { grid-area:seals; display:flex; flex-wrap:nowrap; gap:12px; list-style:none; padding:0; margin:0; max-width:none; }
.seal { --tone:#176244; --tint:#e7f1e9; display:flex; flex-direction:column; align-items:center; justify-content:center; width:104px; height:104px; margin:0; border-radius:50%; background:#fff; border:3px solid var(--tone); box-shadow:inset 0 0 0 5px #fff, inset 0 0 0 7px var(--tint), 0 10px 24px #0000002e; text-align:center; padding:10px; transition:transform .15s; }
.seal:hover { transform:translateY(-3px) rotate(-2deg); }
.seal-green { --tone:#176244; --tint:#d7ead9; }
.seal-orange { --tone:#c2410c; --tint:#fbe3d6; }
.seal-blue { --tone:#016abd; --tint:#d6e8f7; }
.seal-lime { --tone:#5f9e2b; --tint:#e4f2d4; }
.seal-icon { width:22px; height:22px; fill:var(--tint); stroke:var(--tone); stroke-width:1.8; stroke-linejoin:round; stroke-linecap:round; margin-bottom:4px; }
.seal-big { font:800 1rem/1 var(--font-display); color:var(--deep); letter-spacing:-.03em; }
.seal-small { font:700 .53rem/1.2 var(--font-body); letter-spacing:.07em; text-transform:uppercase; color:var(--tone); margin-top:4px; }
.trust-stack { grid-area:stack; display:grid; gap:12px; background:#fff; color:var(--fg); border-radius:14px; padding:16px 22px; box-shadow:0 14px 34px #00000038; }
.trust-logos { display:grid; grid-template-columns:104px minmax(0,1fr); align-items:center; gap:12px; }
.trust-logos + .trust-logos { padding-top:12px; border-top:1px solid var(--line); }
.trust-logos .dd-h { margin:0; }
.trust-logos ul { display:flex; flex-wrap:wrap; align-items:center; gap:12px 22px; list-style:none; padding:0; margin:0; max-width:none; }
.trust-logos li { margin:0; }
.trust-logos img { width:auto; max-width:none; display:block; }
.logo-member img[src*="wcowma"] { height:66px; }
.logo-member img[src*="bcwwa"] { height:40px; }
.logo-brand img { height:26px; }
.logo-brand img[src*="aquaworx"] { height:36px; }
.logo-more { font:700 .74rem var(--font-body); color:var(--leaf); padding:6px 10px; border:1px dashed #b8c9b6; border-radius:999px; white-space:nowrap; }
@media (max-width:1180px) {
  .trust-grid { grid-template-columns:minmax(0,1fr); grid-template-areas:"intro" "seals" "stack"; justify-items:center; text-align:center; }
  .trust-intro { justify-content:center; }
  .seals { justify-content:center; flex-wrap:wrap; }
  .trust-stack { width:100%; max-width:720px; text-align:left; }
}
@media (max-width:760px) {
  .trust-band { padding-block:30px 32px; }
  .trust-head { font-size:1.05rem; }
  .seals { gap:8px; }
  .seal { width:80px; height:80px; padding:5px; border-width:2px; } .seal-icon { width:16px; height:16px; margin-bottom:2px; }
  .seal-big { font-size:.74rem; } .seal-small { font-size:.44rem; letter-spacing:.05em; }
  .trust-stack { padding:14px 16px; }
  .trust-logos { grid-template-columns:minmax(0,1fr); justify-items:center; text-align:center; gap:10px; }
  .trust-logos ul { justify-content:center; gap:12px 20px; }
  .logo-member img[src*="wcowma"] { height:58px; } .logo-member img[src*="bcwwa"] { height:34px; }
  .logo-brand img { height:22px; } .logo-brand img[src*="aquaworx"] { height:30px; }
}

/* Trust badges and logos inside the homepage hero */
.hero-seals { margin-top:30px; flex-wrap:wrap; gap:12px; }
.hero-seals .seal { width:92px; height:92px; padding:8px; box-shadow:inset 0 0 0 4px #fff, inset 0 0 0 6px var(--tint), 0 10px 26px #0000004d; }
.hero-seals .seal-icon { width:19px; height:19px; }
.hero-seals .seal-big { font-size:.9rem; }
.hero-seals .seal-small { font-size:.49rem; }
.hero-trust { position:relative; margin-top:34px; }
.hero-trust-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:12px 28px; padding:16px 24px; border-radius:14px; background:#fff; color:var(--fg); box-shadow:0 18px 40px #00000040; border-top:4px solid transparent; border-image:linear-gradient(90deg, #016abd, #176244 50%, #8fd14f) 1; }
.hero-trust-card .trust-logos + .trust-logos { padding-top:0; border-top:0; padding-left:28px; border-left:1px solid var(--line); }
.hero-trust-card .trust-logos { grid-template-columns:auto minmax(0,1fr); gap:18px; }
@media (max-width:900px) {
  .hero-trust-card { grid-template-columns:minmax(0,1fr); }
  .hero-trust-card .trust-logos + .trust-logos { padding-left:0; border-left:0; padding-top:12px; border-top:1px solid var(--line); }
}
@media (max-width:760px) {
  .hero-seals { justify-content:center; gap:8px; margin-top:22px; }
  .hero-seals .seal { width:76px; height:76px; padding:5px; }
  .hero-seals .seal-icon { width:15px; height:15px; margin-bottom:2px; }
  .hero-seals .seal-big { font-size:.72rem; } .hero-seals .seal-small { font-size:.42rem; letter-spacing:.04em; }
  .hero-trust { margin-top:22px; }
  .hero-trust-card { padding:14px 16px; }
  .hero-trust-card .trust-logos { grid-template-columns:minmax(0,1fr); }
}
.photo-hero { padding-bottom:40px; }
.hero-trust-card { grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr); width:100%; max-width:none; }
.hero-trust-card .trust-logos ul { flex-wrap:nowrap; gap:12px 22px; }
@media (max-width:900px) { .hero-trust-card { grid-template-columns:minmax(0,1fr); } .hero-trust-card .trust-logos ul { flex-wrap:wrap; } }
@media (max-width:760px) { .photo-hero { padding-bottom:28px; } }
.hero-trust-card .trust-logos { grid-template-columns:minmax(0,1fr); gap:8px; }
.hero-trust-card .logo-member img[src*="wcowma"] { height:56px; }
.hero-trust-card .logo-member img[src*="bcwwa"] { height:36px; }
.hero-trust-card .logo-brand img { height:22px; }
.hero-trust-card .logo-brand img[src*="aquaworx"] { height:31px; }
.home-hero.photo-hero { padding-bottom:44px; }
@media (max-width:760px) { .home-hero.photo-hero { padding-bottom:28px; } .hero-trust-card .trust-logos { justify-items:center; } }

/* Hero trust logos: no white card, white logos straight on the hero photo, smaller */
.hero-trust-card { background:transparent; box-shadow:none; color:#fff; padding:18px 0 0; border:0; border-top:1px solid #ffffff33; border-image:none; border-radius:0; }
.hero-trust-card .dd-h { color:#c6dca6; }
.hero-trust-card .trust-logos + .trust-logos { border-left-color:#ffffff33; border-top-color:#ffffff33; }
.hero-trust-card .logo-member img[src*="wcowma"] { height:44px; }
.hero-trust-card .logo-member img[src*="bcwwa"] { height:27px; }
.hero-trust-card .logo-brand img { height:17px; }
.hero-trust-card .logo-brand img[src*="aquaworx"] { height:24px; }
.hero-trust-card .logo-more { color:#fff; border-color:#ffffff66; }
.hero-trust-card img { filter:drop-shadow(0 1px 6px #0000004d); }
@media (max-width:760px) {
  .hero-trust-card .logo-member img[src*="wcowma"] { height:40px; } .hero-trust-card .logo-member img[src*="bcwwa"] { height:24px; }
  .hero-trust-card .logo-brand img { height:15px; } .hero-trust-card .logo-brand img[src*="aquaworx"] { height:21px; }
}
/* Colour logos on their own small tiles (no strip across the hero) */
.hero-trust-card img { filter:none; }
.hero-trust-card .trust-logos li:not(.logo-more) { background:#fff; border-radius:10px; padding:7px 12px; box-shadow:0 6px 18px #0000003d; display:flex; align-items:center; min-height:58px; }
.hero-trust-card .trust-logos ul { gap:10px; }
@media (max-width:760px) { .hero-trust-card .trust-logos li:not(.logo-more) { min-height:50px; padding:6px 10px; } }
/* Smaller trust rings; WCOWMA shown as badge + readable name */
.hero-seals { gap:10px; margin-top:26px; }
.hero-seals .seal { width:76px; height:76px; padding:5px; border-width:2px; box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 5px var(--tint), 0 8px 20px #0000004d; }
.hero-seals .seal-icon { width:15px; height:15px; margin-bottom:2px; }
.hero-seals .seal-big { font-size:.76rem; }
.hero-seals .seal-small { font-size:.43rem; letter-spacing:.04em; }
.hero-trust-card .logo-member img[src*="wcowma-mark"] { height:42px; }
.logo-named { gap:10px; }
.logo-name { display:flex; flex-direction:column; line-height:1.15; color:#1660a8; max-width:150px; }
.logo-name b { font:800 1rem/1 var(--font-display); letter-spacing:.01em; color:#0f4f94; }
.logo-name small { font:600 .66rem/1.2 var(--font-body); color:#2a5d8f; margin-top:3px; }
@media (max-width:760px) {
  .hero-seals .seal { width:66px; height:66px; padding:4px; }
  .hero-seals .seal-icon { width:13px; height:13px; }
  .hero-seals .seal-big { font-size:.66rem; } .hero-seals .seal-small { font-size:.38rem; }
  .hero-trust-card .logo-member img[src*="wcowma-mark"] { height:38px; }
  .logo-name { max-width:130px; } .logo-name small { font-size:.6rem; }
}
.logo-name { max-width:215px; } .logo-name small { font-size:.64rem; }
@media (max-width:760px) { .logo-name { max-width:190px; } }
.logo-name { text-align:left; }
.visit-steps li>span { color:#4e6b33; }
.legal { max-width:760px; padding-bottom:48px; } .legal h2 { margin-top:28px; } .legal p { line-height:1.65; }
.legal-links a { color:inherit; }
/* Rotating job photos in the why-us band */
.why-slides { position:relative; aspect-ratio:4 / 3; border-radius:14px; overflow:hidden; background:#dfe7e2; }
.why-photo .why-slides img { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; border-radius:0; object-fit:cover; opacity:0; transition:opacity .9s ease; }
.why-photo .why-slides img.on { opacity:1; }
.slide-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; }
.slide-bar figcaption { margin:0; }
.slide-ctl { display:flex; align-items:center; gap:6px; flex:none; }
.slide-dots { display:flex; gap:2px; }
.slide-dots button, .slide-pause { appearance:none; border:0; background:none; padding:0; cursor:pointer; width:24px; height:24px; display:grid; place-items:center; }
.slide-dots button::before { content:""; width:8px; height:8px; border-radius:50%; background:#b9c7bd; transition:background .2s, transform .2s; }
.slide-dots button[aria-current="true"]::before { background:var(--leaf, #176244); transform:scale(1.25); }
.slide-pause span { width:10px; height:12px; border-left:3px solid var(--deep, #123640); border-right:3px solid var(--deep, #123640); }
.slide-pause[aria-pressed="true"] span { width:0; height:0; border-style:solid; border-width:6px 0 6px 10px; border-color:transparent transparent transparent var(--deep, #123640); }
.slide-dots button:focus-visible, .slide-pause:focus-visible { outline:2px solid var(--leaf, #176244); outline-offset:2px; border-radius:6px; }
@media (prefers-reduced-motion: reduce) { .why-photo .why-slides img { transition:none; } }

/* Bolder hero heading: Archivo Black */
.new-hero-copy h1 { font-weight:900; letter-spacing:-.025em; line-height:1.02; font-size:clamp(2.5rem,4.1vw,4.1rem); }
@media (max-width:760px) { .new-hero-copy h1 { font-size:clamp(2.2rem,9vw,3.2rem); } }
.merged-sec { scroll-margin-top:110px; }

/* Hero heading: square trade-sign lettering (Saira Black, uppercase) */
@font-face{font-family:"Saira";font-style:normal;font-weight:900;font-display:swap;src:url("../fonts/saira-latin-900-normal.woff2") format("woff2")}
.new-hero-copy h1 { font-family:"Saira", "Archivo", "Arial Black", sans-serif; font-weight:900; text-transform:uppercase; letter-spacing:0; line-height:1.02; font-size:clamp(2.2rem,3.6vw,3.6rem); }
@media (max-width:760px) { .new-hero-copy h1 { font-size:clamp(1.95rem,8vw,2.8rem); } }
