/* Dry Ground Pros, Oct 2026 remake.
   Concept: job-site plain speech. Shield red and near-black from the logo, concrete greys,
   condensed signage type. One signature: the French drain cross-section. */
@font-face { font-family: "Saira Condensed"; src: url(/fonts/saira-condensed-800.woff2) format("woff2"); font-weight: 800; font-display: swap; }
@font-face { font-family: "Saira Condensed"; src: url(/fonts/saira-condensed-700.woff2) format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Archivo"; src: url(/fonts/archivo-var.woff2) format("woff2"); font-weight: 100 900; font-display: swap; }

:root {
  --ink: #0c0d0e; --ink-2: #17191b; --ink-3: #24272a; --ink-soft: #4a4f55;
  --paper: #ffffff; --concrete: #efefec; --stone: #d9d9d3; --text: #17191b; --muted: #585e65; --on-ink: #e9eae8; --on-ink-muted: #a9adb1;
  --red: #ba1a0a; --red-hi: #d32613; --red-dk: #921407; --focus: #f2b134;
  --water: #2f6f9a; --clay: #b9693f; --clay-dot: #a2552d; --gravel: #cfccc3; --gravel-dot: #9c988c; --grass: #5b7d38;
  --wall: #70757a; --wall-top: #565b60; --fabric: #33383d; --pipe: #2a2d30; --pipe-in: #5a6066;
  --display: "Saira Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;
  --body: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --wrap: 1200px; --gut: max(20px, env(safe-area-inset-left, 0px)); --r: 3px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 88px; }
body { margin: 0; background: var(--paper); color: var(--text); font: 400 1.0625rem/1.6 var(--body); text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--paper); color: var(--ink); padding: 10px 14px; }
.skip:focus { left: 12px; }
.i { width: 1em; height: 1em; flex: none; }

h1, h2, h3 { font-family: var(--display); color: inherit; margin: 0; text-wrap: balance; }
h1 { font-weight: 800; font-size: clamp(2.6rem, 5.6vw, 4.6rem); line-height: .95; text-transform: uppercase; letter-spacing: .005em; }
h2 { font-weight: 800; font-size: clamp(1.95rem, 3.4vw, 2.9rem); line-height: 1; text-transform: uppercase; }
h3 { font-weight: 700; font-size: 1.5rem; line-height: 1.1; }
p { margin: 0; }
.eyebrow { font: 700 .82rem/1 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--red); display: flex; align-items: center; gap: 10px; }
.eyebrow::before { content: ""; width: 22px; height: 3px; background: currentColor; }
.lede { font-size: clamp(1.1rem, 1.6vw, 1.3rem); line-height: 1.5; max-width: 54ch; }

.wrap { max-width: var(--wrap); margin: 0 auto; padding-left: var(--gut); padding-right: max(20px, env(safe-area-inset-right, 0px)); }
.band { padding-block: clamp(56px, 8vw, 104px); }
.band-tight { padding-block: 0; }
.band-flush { padding-block: clamp(28px, 4vw, 48px) clamp(56px, 8vw, 104px); }
.band-concrete { background: var(--concrete); }
.band-ink { background: var(--ink); color: var(--on-ink); }
.band-ink .eyebrow { color: #ff6a52; }
.sec-head { display: grid; gap: 14px; margin-bottom: clamp(28px, 4vw, 44px); max-width: 780px; }
.sec-head p:not(.eyebrow) { color: var(--muted); }
.sec-row { max-width: none; grid-template-columns: 1fr auto; align-items: end; }
.sec-row .eyebrow { grid-column: 1 / -1; }
.more { display: inline-flex; align-items: center; gap: 6px; font: 700 1rem/1 var(--display); letter-spacing: .06em; text-transform: uppercase; color: var(--red); text-decoration: none; }
.more:hover { text-decoration: underline; text-underline-offset: 4px; }

/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 22px; border-radius: var(--r); border: 2px solid transparent;
  font: 700 1.08rem/1 var(--display); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: background .15s, border-color .15s, color .15s; }
.btn-red { background: var(--red); color: #fff; }
.btn-red:hover { background: var(--red-hi); }
.btn-ghost { border-color: rgba(255,255,255,.45); color: #fff; }
.btn-ghost:hover { border-color: #fff; background: rgba(255,255,255,.08); }
.btn-dark { background: var(--ink); color: #fff; }
.btn-dark:hover { background: var(--ink-3); }
.btn-ghost-dark { border-color: var(--ink); color: var(--ink); }
.btn-ghost-dark:hover { background: var(--ink); color: #fff; }
.btn-wide { width: 100%; }
.acts { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

/* Header */
.hdr { position: sticky; top: 0; z-index: 50; background: var(--ink); color: #fff; border-bottom: 1px solid #000; }
.hdr-in { max-width: 1320px; margin: 0 auto; padding: 0 max(20px, env(safe-area-inset-right, 0px)) 0 var(--gut); height: 76px; display: flex; align-items: center; gap: 28px; }
.logo img { width: 168px; height: auto; }
.nav { margin-left: auto; }
.nav > ul { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; align-items: center; }
.nav a, .menu-btn { display: inline-flex; align-items: center; gap: 6px; padding: 10px 12px; font-weight: 500; font-size: .98rem; text-decoration: none; color: var(--on-ink); background: none; border: 0; cursor: pointer; border-radius: var(--r); }
.nav a:hover, .menu-btn:hover, .nav a[aria-current="page"] { color: #fff; background: var(--ink-3); }
.has-menu { position: relative; }
.menu { position: absolute; top: calc(100% + 10px); left: 0; min-width: 250px; list-style: none; margin: 0; padding: 8px; background: var(--paper); border-radius: var(--r); box-shadow: 0 14px 40px rgba(0,0,0,.35); }
.menu a { color: var(--text); display: flex; width: 100%; padding: 10px 12px; }
.menu a:hover { background: var(--concrete); color: var(--text); }
.menu .sub a { padding-left: 26px; color: var(--muted); font-size: .92rem; }
.menu-btn[aria-expanded="true"] svg { transform: rotate(180deg); }
.hdr-cta { display: flex; align-items: center; gap: 14px; }
.hdr-phone { display: inline-flex; align-items: center; gap: 8px; color: #fff; text-decoration: none; font: 700 1.15rem/1 var(--display); letter-spacing: .04em; }
.hdr-phone .i { color: #ff6a52; }
.hdr-cta .btn { min-height: 44px; }
.burger { display: none; width: 46px; height: 46px; border: 1px solid var(--ink-soft); background: none; border-radius: var(--r); cursor: pointer; flex-direction: column; justify-content: center; align-items: center; gap: 5px; }
.burger span { width: 20px; height: 2px; background: #fff; transition: transform .2s, opacity .2s; }
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.mnav { background: var(--ink-2); border-top: 1px solid var(--ink-3); max-height: calc(100vh - 76px); overflow: auto; }
.mnav ul { list-style: none; margin: 0; padding: 10px var(--gut) 24px; }
.mnav a { display: block; padding: 13px 0; color: #fff; text-decoration: none; font: 700 1.3rem/1.1 var(--display); text-transform: uppercase; letter-spacing: .03em; border-bottom: 1px solid var(--ink-3); }
.mnav .sub a { padding-left: 18px; font-size: 1.05rem; color: var(--on-ink-muted); }

/* Home hero */
.hero { background: var(--ink); color: #fff; padding-block: clamp(40px, 6vw, 80px) clamp(56px, 7vw, 96px); overflow: hidden; }
.hero-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.hero h1 { font-size: clamp(2.8rem, 5.4vw, 4.9rem); margin-top: 18px; }
.hero .lede { margin-top: 22px; color: var(--on-ink); }
.hero .eyebrow, .phero .eyebrow { color: #ff6a52; }
.hero-pics { position: relative; padding-bottom: 56px; }
.hero-pics figure { margin: 0; position: relative; }
.hp-a img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r); }
.hp-b { position: absolute !important; right: -6px; bottom: 0; width: 46%; border: 6px solid var(--ink); border-radius: 6px; background: var(--ink); }
.hp-b img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r); }
.hero-pics figcaption { position: absolute; left: 10px; top: 10px; background: var(--ink); color: #fff; font: 700 .8rem/1 var(--display); letter-spacing: .12em; text-transform: uppercase; padding: 7px 10px; }

/* Proof strip */
.proof { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--stone); }
.proof li { padding: 22px 20px; border-left: 1px solid var(--stone); display: grid; }
.proof li:first-child { border-left: 0; padding-left: 0; }
.proof b { font: 700 1.2rem/1.1 var(--display); text-transform: uppercase; letter-spacing: .04em; }
.proof span { color: var(--muted); font-size: .94rem; display: inline-flex; align-items: center; gap: 6px; }
.proof a { text-decoration: none; display: grid; }
.proof a:hover b { color: var(--red); }

/* Services */
.svcs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.svc { display: grid; grid-template-rows: auto 1fr; background: var(--paper); border: 1px solid var(--stone); border-radius: var(--r); overflow: hidden; }
.svc-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .35s; }
.svc-img { overflow: hidden; display: block; }
.svc:hover .svc-img img { transform: scale(1.03); }
.svc-body { padding: 22px 22px 24px; display: grid; gap: 12px; align-content: start; }
.svc-body h3 a, .svc-body h2 a { text-decoration: none; }
.svc-body h2 { font-size: clamp(1.8rem, 2.6vw, 2.3rem); }
.svc-body p { color: var(--muted); }
.svc-body ul { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 2px; }
.svc-body li a { display: flex; justify-content: space-between; align-items: center; padding: 9px 0; border-top: 1px solid var(--stone); text-decoration: none; font-weight: 600; }
.svc-body li a:hover { color: var(--red); }
.svcs-list { grid-template-columns: 1fr; }
.svc-wide { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: none; }
.svc-wide .svc-img img { height: 100%; }
.svc-wide .svc-body { padding: clamp(24px, 4vw, 44px); align-content: center; }

/* Water section + diagram */
.water { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.water-copy { display: grid; gap: 16px; }
.water-copy .acts { margin-top: 8px; }
.xsec { margin: 0; background: var(--paper); border: 1px solid var(--stone); border-radius: var(--r); padding: 16px 16px 14px; }
.xsec svg { width: 100%; height: auto; display: block; }
.xsec figcaption { font-size: .9rem; color: var(--muted); padding-top: 10px; border-top: 1px solid var(--stone); margin-top: 8px; }
.xk circle { fill: var(--red); }
.xk text { fill: #fff; font: 800 26px var(--display); text-anchor: middle; }
.xsec-key { margin: 0; padding-left: 1.4em; display: grid; gap: 4px; }
.xsec-key li::marker { color: var(--red); font-weight: 700; }
.xl-inv { fill: #fff; font: 700 15px var(--display); letter-spacing: .14em; }

/* Jobs */
.jobs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.job { display: grid; grid-template-rows: auto 1fr; background: var(--paper); border: 1px solid var(--stone); border-radius: var(--r); overflow: hidden; }
.job[hidden] { display: none; }
.job-open { position: relative; padding: 0; border: 0; background: var(--stone); cursor: zoom-in; display: block; width: 100%; }
.job-img { display: block; overflow: hidden; }
.job-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .35s; }
.job-open:hover img { transform: scale(1.03); }
.job-count { position: absolute; right: 10px; bottom: 10px; background: rgba(12,13,14,.86); color: #fff; font: 700 .8rem/1 var(--display); letter-spacing: .1em; text-transform: uppercase; padding: 7px 10px; border-radius: var(--r); }
.job-body { padding: 18px 20px 22px; display: grid; gap: 8px; align-content: start; }
.job-body h2, .job-body h3 { font-size: 1.45rem; }
.job-body p { color: var(--muted); font-size: .98rem; }
.tag { justify-self: start; font: 700 .74rem/1 var(--display); letter-spacing: .12em; text-transform: uppercase; padding: 5px 8px; border-radius: 2px; background: var(--concrete); color: var(--ink-soft); }
.tag-drainage { background: #e3edf4; color: #1f5072; }
.tag-concrete { background: #ececea; color: #3d4247; }
.tag-walls { background: #f4e7e0; color: #7a3a1c; }
.filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 24px; }
.chip { border: 1.5px solid var(--stone); background: var(--paper); border-radius: 999px; padding: 9px 16px; font-weight: 600; cursor: pointer; }
.chip[aria-pressed="true"] { background: var(--ink); color: #fff; border-color: var(--ink); }
.job-total { margin-left: auto; color: var(--muted); font-size: .92rem; }

/* Videos */
.vids { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.vid { margin: 0; }
.vid-play, .vid iframe { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; padding: 0; background: var(--ink); border-radius: var(--r); overflow: hidden; cursor: pointer; }
.vid-play img { width: 100%; height: 100%; object-fit: cover; opacity: .8; }
.vid-btn { position: absolute; inset: 0; margin: auto; width: 72px; height: 72px; border-radius: 50%; background: var(--red); color: #fff; display: grid; place-items: center; font-size: 1.5rem; padding-left: 4px; }
.vid figcaption { margin-top: 10px; font-weight: 600; }

/* Reviews */
.rev { margin: 0; }
.rev blockquote { margin: 0; }
.rev figcaption { margin-top: 12px; font: 700 1rem/1 var(--display); letter-spacing: .1em; text-transform: uppercase; color: var(--red); }
.rev-lead { padding: clamp(24px, 4vw, 40px); background: var(--paper); margin-bottom: 24px; }
.rev-lead blockquote { font-size: clamp(1.25rem, 2.3vw, 1.7rem); line-height: 1.4; max-width: 46ch; }
.rev-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.rev-grid .rev { padding: 22px 24px; background: var(--paper); border: 1px solid var(--stone); border-radius: var(--r); }
.rev-src { margin-top: 20px; color: var(--muted); font-size: .92rem; display: flex; flex-wrap: wrap; gap: 6px 14px; }
.rev-src a { color: var(--red); display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }

/* Steps */
.steps { list-style: none; counter-reset: s; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.steps li { counter-increment: s; border-top: 3px solid var(--ink); padding-top: 18px; display: grid; gap: 10px; align-content: start; }
.steps li::before { content: counter(s, decimal-leading-zero); font: 800 2.6rem/1 var(--display); color: var(--red); }
.steps p { color: var(--muted); }

/* FAQ */
.faq-wrap { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.faq-wrap .sec-head { position: sticky; top: 100px; }
.faqs { border-top: 1px solid var(--stone); }
.faq { border-bottom: 1px solid var(--stone); }
.faq summary { list-style: none; display: flex; justify-content: space-between; gap: 16px; padding: 20px 0; cursor: pointer; font-weight: 600; font-size: 1.08rem; }
.faq summary::-webkit-details-marker { display: none; }
.pm { position: relative; width: 18px; height: 18px; flex: none; margin-top: 4px; }
.pm::before, .pm::after { content: ""; position: absolute; inset: 8px 0 auto; height: 2px; background: var(--red); transition: transform .2s; }
.pm::after { transform: rotate(90deg); }
.faq[open] .pm::after { transform: rotate(0); }
.faq .prose { padding: 0 0 22px; color: var(--muted); }

/* Area */
.area-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.area-in > div { display: grid; gap: 16px; }
.area p { color: var(--on-ink-muted); }
.area-links { display: flex; flex-wrap: wrap; gap: 18px; }
.area-links a { color: #fff; display: inline-flex; gap: 6px; align-items: center; font: 700 1.05rem/1 var(--display); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; }
.area-links a:hover { color: #ff6a52; }
.cities { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--ink-3); border: 1px solid var(--ink-3); }
.cities li { background: var(--ink); padding: 14px 16px; font-weight: 500; }
.cities li:first-child { background: var(--red); font-weight: 700; }
.area-alt { background: var(--ink-2); border-top: 1px solid var(--ink-3); }
.area-alt .cities li { background: var(--ink-2); }

/* Quote */
.quote-in { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.quote-copy { display: grid; gap: 18px; }
.quote-copy p { color: var(--on-ink-muted); max-width: 46ch; }
.quote-call { display: grid; gap: 4px; margin-top: 10px; }
.quote-call span { font-size: .92rem; }
.quote-call a { font: 800 clamp(2rem, 4vw, 2.8rem)/1 var(--display); color: #fff; text-decoration: none; letter-spacing: .02em; }
.quote-call a:hover { color: #ff6a52; }
.quote-mail a { color: var(--on-ink); }
.quote-card { background: var(--paper); color: var(--text); border-radius: var(--r); padding: clamp(22px, 3.5vw, 36px); }
.qform { display: grid; gap: 16px; }
.f2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.fld { display: grid; gap: 6px; }
.fld label { font-weight: 600; font-size: .95rem; }
.opt { color: var(--muted); font-weight: 400; }
.fld input, .fld textarea { width: 100%; font: inherit; padding: 13px 14px; border: 1.5px solid #b9bbb6; border-radius: var(--r); background: #fbfbfa; color: var(--text); }
.fld input:focus, .fld textarea:focus { border-color: var(--ink); outline: 3px solid var(--focus); outline-offset: 0; background: #fff; }
.fld input[aria-invalid="true"] { border-color: var(--red); }
.hp { position: absolute; left: -9999px; }
.f-err { color: var(--red-dk); font-weight: 600; background: #fbe9e6; padding: 12px 14px; border-radius: var(--r); }
.f-err a { color: inherit; }
.f-ok:empty { display: none; }
.f-ok { color: #1f5d33; font-weight: 600; }
.f-fine { font-size: .85rem; color: var(--muted); }

/* Page hero */
.phero { background: var(--ink); color: #fff; padding-block: clamp(36px, 5vw, 64px); }
.phero-in { display: grid; gap: clamp(28px, 5vw, 60px); align-items: center; }
.phero-photo .phero-in { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.phero-copy { display: grid; gap: 18px; justify-items: start; }
.phero h1 { font-size: clamp(2.4rem, 4.8vw, 4rem); max-width: 18ch; }
.phero .lede { color: var(--on-ink); }
.phero .acts { margin-top: 6px; }
.ph-fig { margin: 0; }
.ph-fig img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r); }
.crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; font-size: .88rem; color: var(--on-ink-muted); }
.crumbs li:not(:last-child)::after { content: "/"; margin-left: 6px; }
.crumbs a { color: var(--on-ink-muted); }
.crumbs [aria-current] { color: var(--on-ink); max-width: 32ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Editorial sections from the copy */
.ed { padding-block: clamp(44px, 6vw, 80px); border-top: 1px solid var(--stone); }
.ed:first-of-type { border-top: 0; }
.ed-in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 20px clamp(28px, 5vw, 64px); align-items: start; }
.ed-head { grid-column: 1; }
.ed-in .prose { grid-column: 2; grid-row: 1 / span 2; }
.ed-fig { grid-column: 1; margin: 0; }
.ed-fig img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r); }
.prose { max-width: 68ch; }
.prose :where(p, ul, ol, h3, h4, blockquote, table, div) + :where(p, ul, ol, blockquote, table, div) { margin-top: 1em; }
.prose h3 { font-size: 1.35rem; margin-top: 1.5em; }
.prose h3:first-child { margin-top: 0; }
.prose h4 { font: 700 1.1rem/1.2 var(--body); margin: 1.4em 0 0; }
.prose ul, .prose ol { padding-left: 1.2em; }
.prose li + li { margin-top: .4em; }
.prose li::marker { color: var(--red); }
.prose a { color: var(--red); text-underline-offset: 3px; }
.prose img { display: none; }
.prose .checks { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; }
.prose .checks li { margin: 0; padding: 12px 14px 12px 40px; background: var(--concrete); border-radius: var(--r); font-weight: 600; position: relative; }
.prose .checks li::before { content: ""; position: absolute; left: 14px; top: 50%; width: 14px; height: 8px; border-bottom: 2px solid var(--red); transform: translateY(-70%) rotate(-45deg); }
.prose strong { font-weight: 700; }

/* Guides + articles */
.guides { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.guide a { display: grid; gap: 10px; text-decoration: none; height: 100%; align-content: start; padding-bottom: 6px; }
.guide-img img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--r); }
.guide h2 { font-size: 1.55rem; text-transform: none; line-height: 1.1; }
.guide a:hover h2 { color: var(--red); }
.art { display: grid; grid-template-columns: 220px minmax(0, 1fr) 260px; gap: clamp(24px, 4vw, 48px); align-items: start; }
.toc { position: sticky; top: 100px; display: grid; gap: 12px; font-size: .92rem; }
.toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; border-left: 2px solid var(--stone); }
.toc a { display: block; padding: 6px 0 6px 12px; text-decoration: none; color: var(--muted); margin-left: -2px; border-left: 2px solid transparent; }
.toc a:hover { color: var(--text); border-left-color: var(--red); }
.art-body section + section { margin-top: 2.4em; }
.art-body h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); margin-bottom: .6em; }
.art-cta { position: sticky; top: 100px; display: grid; gap: 14px; padding: 18px; border: 1px solid var(--stone); border-radius: var(--r); background: var(--concrete); }
.art-cta img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r); }

/* Lightbox */
.lb { width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(8,9,10,.96); color: #fff; }
.lb[open] { display: grid; grid-template-rows: auto 1fr auto; }
.lb::backdrop { background: rgba(0,0,0,.6); }
.lb-bar, .lb-nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px var(--gut); }
.lb-bar p { font-weight: 600; }
.lb button { background: none; border: 1px solid #555; color: #fff; padding: 10px 16px; border-radius: var(--r); cursor: pointer; font-weight: 600; }
.lb button:hover { border-color: #fff; }
.lb img { width: 100%; height: 100%; object-fit: contain; min-height: 0; }
.lb-nav { justify-content: center; }

/* Footer + dock */
.ftr { background: var(--ink-2); color: var(--on-ink-muted); padding-top: clamp(48px, 6vw, 72px); }
.ftr-in { max-width: var(--wrap); margin: 0 auto; padding: 0 max(20px, env(safe-area-inset-right, 0px)) 40px var(--gut); display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; }
.ftr-brand { display: grid; gap: 14px; align-content: start; }
.ftr-brand img { width: 170px; }
.ftr-contact { display: grid; gap: 4px; }
.ftr-contact a:first-child { font: 800 1.6rem/1 var(--display); color: #fff; text-decoration: none; }
.ftr h2 { font-size: 1rem; letter-spacing: .14em; color: #fff; margin-bottom: 12px; }
.ftr ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ftr a { text-decoration: none; }
.ftr a:hover { color: #fff; text-decoration: underline; }
.ftr-base { max-width: var(--wrap); margin: 0 auto; padding: 18px max(20px, env(safe-area-inset-right, 0px)) 22px var(--gut); border-top: 1px solid var(--ink-3); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; font-size: .88rem; }
.ftr-base span:last-child { display: flex; gap: 18px; }
.dock { display: none; }

/* Responsive */
@media (max-width: 1080px) {
  .nav, .hdr-phone span { display: none; }
  .burger { display: inline-flex; }
  .hdr-cta { margin-left: auto; }
  .art { grid-template-columns: minmax(0, 1fr); }
  .toc, .art-cta { position: static; }
  .toc { display: none; }
  .ftr-in { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .hero-in, .phero-photo .phero-in, .water, .faq-wrap, .area-in, .quote-in, .ed-in, .svc-wide { grid-template-columns: minmax(0, 1fr); }
  .ed-in .prose, .ed-fig, .ed-head { grid-column: 1; grid-row: auto; }
  .faq-wrap .sec-head { position: static; }
  .svcs, .jobs, .guides { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .proof { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .proof li:nth-child(3) { border-left: 0; padding-left: 0; }
  .proof li { border-top: 1px solid var(--stone); }
  .proof li:nth-child(-n+2) { border-top: 0; }
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .phero-photo .ph-fig { order: -1; }
}
@media (max-width: 760px) {
  body { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
  .hdr-in { height: 64px; gap: 12px; }
  .logo img { width: 132px; }
  .hdr-cta .btn { display: none; }
  .svcs, .jobs, .guides, .rev-grid, .vids, .steps { grid-template-columns: minmax(0, 1fr); }
  .cities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .f2 { grid-template-columns: minmax(0, 1fr); }
  .hp-b { width: 52%; }
  .sec-row { grid-template-columns: minmax(0, 1fr); }
  .job-total { margin-left: 0; width: 100%; }
  .ftr-in { grid-template-columns: minmax(0, 1fr); }
  .dock { display: grid; grid-template-columns: 1fr 1.4fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: var(--ink); padding: 8px max(10px, env(safe-area-inset-right, 0px)) calc(8px + env(safe-area-inset-bottom, 0px)) max(10px, env(safe-area-inset-left, 0px)); gap: 8px; border-top: 1px solid #000; }
  .dock a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; border-radius: var(--r); color: #fff; text-decoration: none; font: 700 1.05rem/1 var(--display); letter-spacing: .08em; text-transform: uppercase; border: 1.5px solid var(--ink-soft); }
  .dock .dock-quote { background: var(--red); border-color: var(--red); }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; } }

/* October 20 visual system: photographic work, open layouts and editorial type. */
@font-face{font-family:'Barlow Condensed';src:url(/fonts/barlow-condensed-700-latin.woff) format('woff');font-weight:700;font-display:swap}
:root{--display:'Barlow Condensed','Arial Narrow',sans-serif;--wrap:1344px;--gut:clamp(22px,4.45vw,64px);--r:12px;--on-ink-muted:#b5b8ba;--ease:cubic-bezier(.16,1,.3,1)}
html{scroll-behavior:smooth;scroll-padding-top:110px;scrollbar-color:#aaa9a3 var(--concrete)}
body{font-size:1rem;line-height:1.7}
::selection{background:var(--red);color:white}
[hidden]{display:none!important}
input,textarea{caret-color:var(--red)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
h1,h2,h3{font-family:var(--body);font-weight:700;text-transform:none;letter-spacing:-.035em;line-height:1.15}
h1{font-size:clamp(2.5rem,4.4vw,4.25rem);line-height:1.08}
h2{font-size:clamp(2rem,3.25vw,3rem)}
h3{font-size:1.35rem;line-height:1.35;letter-spacing:-.025em}
.wrap{width:100%;padding-inline:var(--gut)}
.band{padding-block:clamp(68px,7.8vw,112px)}
.band-tight{padding-block:0}
.band-flush{padding-block:clamp(36px,4vw,60px) clamp(68px,7.8vw,112px)}
.sec-head{gap:20px;margin-bottom:44px;max-width:800px}
.sec-row{max-width:none;grid-template-columns:minmax(0,1fr) auto;gap:24px}
.sec-row>p{max-width:43ch;font-size:.96rem}
.more{font:600 .92rem/1.5 var(--body);text-transform:none;letter-spacing:0;gap:14px}
.more .i,.guide-link .i{transition:transform .3s var(--ease)}
.more:hover .i,.guide a:hover .guide-link .i{transform:translateX(4px)}
.more-light{color:white}
.btn{gap:18px;min-height:54px;padding:14px 22px;border-width:1px;border-radius:5px;font:600 .88rem/1.4 var(--body);letter-spacing:0;text-transform:none;text-align:center;transition:background .25s,border-color .25s,transform .3s var(--ease)}
.btn:hover{transform:translateY(-2px)}
button:disabled{cursor:wait;opacity:.65;transform:none}
.utility{background:var(--concrete);color:var(--ink-soft);font-size:.7rem;line-height:1.5}
.utility .wrap{display:flex;justify-content:space-between;gap:20px;padding-block:8px}
.hdr{border-bottom:1px solid #ffffff16}
.hdr-in{max-width:var(--wrap);height:88px;padding-inline:var(--gut);gap:30px}
.logo img{width:190px}
.nav>ul{gap:22px}
.nav a,.menu-btn{background:none;border:0;padding:12px 0;font:500 .8rem/1.3 var(--body);color:#e2e2df;text-transform:none;letter-spacing:0;gap:6px;white-space:nowrap}
.nav a:hover,.menu-btn:hover,.nav [aria-current]{background:none;color:white}
.nav a[aria-current="page"]{background:none;border-radius:0;text-decoration:underline;text-decoration-color:var(--red-hi);text-decoration-thickness:2px;text-underline-offset:10px}
.menu{left:-20px;width:264px;padding:12px 20px;border-radius:0 0 8px 8px;box-shadow:0 18px 36px #0003;background:var(--ink-2)}
.menu a{display:block;padding-block:10px;white-space:normal;color:var(--on-ink)}
.menu a:hover,.menu a:focus-visible{background:var(--ink-3);color:white}
.menu .sub a{font-size:.75rem;color:var(--on-ink-muted)}
.menu .sub a:hover,.menu .sub a:focus-visible{background:var(--ink-3);color:white}
.hdr-cta{gap:20px}
.hdr-phone{font:600 .78rem/1.5 var(--body);letter-spacing:0;gap:8px}
.hdr-cta .btn{min-height:46px;padding:12px 18px;font-size:.78rem}
.burger{width:46px;height:46px;border:1px solid #ffffff40;border-radius:5px;padding:12px}
.mnav{max-height:calc(100dvh - 80px)}
.mnav a{font:500 1rem/1.5 var(--body);text-transform:none;letter-spacing:0;padding:12px 0}
.mnav .sub a{font-size:.88rem}
.hero{position:relative;padding:0;isolation:isolate}
.hero-backdrop{position:absolute;inset:0 0 0 28%;z-index:-2}
.hero-backdrop img{width:100%;height:100%;object-fit:cover;object-position:center 56%}
.hero::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0c0d0e 0%,#0c0d0ef5 30%,#0c0d0e9c 52%,#0c0d0e14 82%),linear-gradient(0deg,#0c0d0e8c,transparent 40%)}
.hero-in{position:relative;min-height:650px;grid-template-columns:1.1fr .9fr;gap:30px;padding-block:65px 34px;align-items:center}
.hero-copy{max-width:630px;padding-bottom:34px}
.hero h1{font:700 clamp(4.2rem,7.3vw,6rem)/.98 var(--display);letter-spacing:-.015em;text-transform:uppercase;text-wrap:initial;margin:0}
.hero h1>span:not(.sr-only){color:#ff6a52}
.hero .lede{max-width:42ch;margin-top:26px;font-size:1.06rem;line-height:1.7}
.hero .acts{gap:10px}
.hero .btn{font-size:.82rem;padding-inline:19px}
.hero-local{margin-top:30px;font-size:.71rem;color:#d2d3d0;display:flex;flex-wrap:wrap;gap:7px 18px}
.hero-local span{display:flex;align-items:center;gap:18px}
.hero-local span::before{content:'';width:4px;height:4px;background:#ff6a52;border-radius:50%}
.hero-project{justify-self:end;align-self:end;display:flex;align-items:center;gap:20px;max-width:380px;color:white;text-decoration:none;padding:18px 20px;background:#0c0d0ee6;border-radius:8px;font-size:.7rem;line-height:1.5}
.hero-project strong{display:block;font-weight:500;font-size:.88rem;margin-top:5px}
.round-arrow{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--red);flex:none;transition:transform .3s var(--ease)}
.hero-project:hover .round-arrow{transform:rotate(-35deg)}
.proof li{padding:27px 24px;gap:5px;align-content:center}
.proof b{font:650 .9rem/1.4 var(--body);letter-spacing:0;text-transform:none}
.proof span{font-size:.73rem;line-height:1.6}
.proof a{gap:5px}
.svcs{grid-template-columns:1.12fr 1fr 1fr;gap:30px;align-items:start}
.svc{border:0;border-radius:0;overflow:visible;background:transparent;min-width:0}
.svc-img{border-radius:var(--r)}
.svc-img img{aspect-ratio:4/4.5;transition:transform .7s var(--ease)}
.svc:hover .svc-img img{transform:scale(1.035)}
.services-home .svc:nth-child(2){margin-top:42px}
.services-home .svc:nth-child(3){margin-top:84px}
.svc-body{padding:22px 0 0;gap:14px}
.svc-body h3{font-size:1.8rem}
.svc-body p{font-size:.9rem}
.svc-body li a{font-size:.8rem;padding:12px 0}
.svcs-list{grid-template-columns:1fr;gap:56px}
.svc-wide{gap:64px;align-items:center}
.svc-wide:nth-child(even) .svc-img{order:2}
.svc-wide .svc-img img{aspect-ratio:4/3}
.svc-wide .svc-body{padding:0}
.svc-wide .svc-body h2{font-size:2.6rem}
.story-in{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(36px,6vw,88px);align-items:start}
.story-copy{padding-top:16px}
.story-copy>p{color:var(--on-ink-muted);margin-top:24px;max-width:40ch;font-size:.95rem}
.stage-tabs{display:grid;margin:34px 0 28px;border-top:1px solid #ffffff30}
.stage-tabs button{display:flex;gap:20px;align-items:center;border:0;border-bottom:1px solid #ffffff30;background:none;color:#c1c3c2;font-size:.94rem;text-align:left;padding:17px 0;min-height:56px}
.stage-tabs button span{font-size:.72rem;color:#b5b8ba;font-variant-numeric:tabular-nums}
.stage-tabs button::after{content:'';width:8px;height:8px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);margin-left:auto;margin-right:4px}
.stage-tabs button[aria-selected=true]{color:white;font-weight:600}
.stage-tabs button[aria-selected=true] span,.stage-tabs button[aria-selected=true]::after{color:#ff6a52}
.stage-panel{min-width:0}
.stage-panel figure{position:relative;overflow:hidden;border-radius:var(--r)}
.stage-panel img{width:100%;height:440px;object-fit:cover}
.stage-panel figcaption{position:absolute;inset:auto 0 0;display:flex;justify-content:space-between;gap:12px;padding:16px 20px;background:#0c0d0ee8;font-size:.73rem;color:white}
.stage-panel figcaption span:last-child{font-variant-numeric:tabular-nums;color:#dbddda}
.stage-caption{margin-top:24px}
.stage-caption h3{font-size:1.2rem}
.stage-caption p{color:var(--on-ink-muted);font-size:.88rem;margin-top:8px}
.water{gap:clamp(32px,5vw,70px)}
.water-copy{gap:20px}
.water-copy p{font-size:.9rem;color:var(--muted)}
.xsec{border:0;padding:22px}
.xsec figcaption{font-size:.76rem;padding-top:16px}
.xsec-key{gap:7px}
.xk text{font:700 26px var(--body)}
.xl-inv{font:600 15px var(--body);letter-spacing:.04em}
.jobs{gap:40px 28px}
.job{border:0;border-radius:0;overflow:visible;background:transparent;min-width:0}
.job-open{border-radius:var(--r);overflow:hidden}
.job-img img{transition:transform .7s var(--ease)}
.job-open:hover img{transform:scale(1.04)}
.job-count{bottom:16px;right:16px;border-radius:4px;font:400 .7rem/1.6 var(--body);letter-spacing:0;text-transform:none;padding:6px 10px;background:var(--ink)}
.job-body{padding:20px 0 0;gap:10px}
.job-body h2,.job-body h3{font-size:1.3rem;letter-spacing:-.025em;line-height:1.4}
.job-body p{font-size:.86rem}
.tag{background:none;color:var(--red);font:600 .68rem/1.5 var(--body);padding:0;letter-spacing:.03em}
.jobs-all .job:first-child{grid-column:span 2}
.jobs-all .job:first-child img{aspect-ratio:2.04/1}
.jobs-all .job:first-child .job-body h2{font-size:1.7rem}
.filters{gap:12px;margin-bottom:38px;border-bottom:1px solid var(--stone)}
.chip{border:0;border-bottom:2px solid transparent;border-radius:0;background:none;padding:14px 10px;color:var(--muted);font-size:.88rem;min-height:48px}
.chip[aria-pressed=true]{color:var(--red);background:none;border-bottom-color:var(--red);font-weight:600}
.job-total{font-size:.76rem}
.vids{gap:28px}
.vid-btn{width:64px;height:64px;padding:0}
.vid-btn svg{width:24px;height:24px}
.vid figcaption{font-size:.88rem;margin-top:16px}
.rev-lead{border:0;padding:8px 0 42px;max-width:1040px;background:none;margin:0}
.rev-lead blockquote{font-size:clamp(1.4rem,2.3vw,2rem);line-height:1.5;letter-spacing:-.02em;max-width:none}
.rev figcaption{margin-top:18px;font:600 .8rem/1.5 var(--body);letter-spacing:0;text-transform:none}
.rev-grid{gap:30px}
.rev-grid .rev{border:0;border-top:1px solid #c6c8c2;border-radius:0;padding:26px 0 0;font-size:.88rem;background:none;color:var(--ink-soft)}
.rev-src{font-size:.76rem;margin-top:30px}
.steps{gap:28px}
.steps li{border-top:1px solid var(--stone);padding-top:24px;gap:14px}
.steps li::before{font:600 .82rem/1.5 var(--body);font-variant-numeric:tabular-nums}
.steps h3{font-size:1.15rem}
.steps p{font-size:.86rem}
.faq-wrap{gap:clamp(32px,6vw,88px)}
.faq-wrap .sec-head{top:120px}
.faq summary{gap:24px;padding:24px 0;font-size:.94rem;line-height:1.6}
.faq .prose{padding-bottom:24px;font-size:.9rem}
.pm::before,.pm::after{height:1.5px}
.area{background:var(--ink-2)}
.area-in{gap:70px}
.area-in>div{gap:22px}
.area p{font-size:.9rem;max-width:48ch}
.area-links{gap:24px;margin-top:5px}
.area-links a{font:600 .85rem/1.5 var(--body);letter-spacing:0;text-transform:none;gap:12px}
.cities{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;border:0;background:none}
.cities li,.area-alt .cities li{border-bottom:1px solid #ffffff25;background:none;padding:13px 0;font-size:.85rem}
.cities li:first-child{background:none;color:#ff6a52;font-weight:600}
.quote-in{gap:clamp(38px,7vw,100px);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.quote-copy{gap:24px;padding-top:22px}
.quote-copy h2{font-size:clamp(2.4rem,3.8vw,3.5rem);max-width:15ch}
.quote-copy p{font-size:.92rem;max-width:43ch}
.quote-call{gap:10px;margin-top:22px}
.quote-call span{font-size:.8rem}
.quote-call a{font:700 clamp(2rem,3.2vw,3rem)/1.1 var(--display)}
.quote-mail a{font-size:.82rem}
.quote-card{border:0;padding:clamp(26px,3vw,42px)}
.qform{gap:20px}
.f2{gap:18px}
.fld{gap:8px}
.fld label{font-size:.77rem}
.fld input,.fld textarea{border:1px solid #c0c3bd;border-radius:5px;padding:12px;background:#fafaf8;font-size:.92rem;line-height:1.5}
.fld input{min-height:48px}
.fld textarea{resize:vertical;min-height:116px}
.fld input::placeholder,.fld textarea::placeholder{color:#656b6b;opacity:1}
.f-err,.f-ok{font-size:.84rem}
.f-fine{font-size:.67rem;line-height:1.7}
.phero{background:var(--concrete);color:var(--ink);padding-block:clamp(38px,5.2vw,76px)}
.phero-in{gap:52px}
.phero-copy{gap:24px;min-width:0}
.phero h1{font-size:clamp(2.5rem,4.4vw,4.25rem);max-width:22ch}
.phero-photo h1{font-size:clamp(2.3rem,3.5vw,3.4rem)}
.phero .lede{font-size:1rem;color:var(--muted);max-width:60ch}
.phero .acts{margin-top:4px}
.phero .btn-ghost{color:var(--ink);border-color:#a9ada7}
.phero .btn-ghost:hover{background:var(--ink);color:white}
.ph-fig{position:relative;overflow:hidden;border-radius:var(--r)}
.ph-fig img{aspect-ratio:1.15/1}
.ph-fig figcaption{position:absolute;bottom:16px;left:16px;padding:7px 12px;color:white;background:var(--ink);border-radius:4px;font-size:.68rem}
.crumbs ol,.crumbs a{font-size:.69rem;color:var(--muted);gap:8px;line-height:1.6}
.crumbs li:not(:last-child)::after{margin-left:8px;color:#949892}
.crumbs [aria-current]{color:var(--muted);max-width:40ch}
.ed{padding-block:clamp(48px,6vw,88px)}
.ed-in{gap:26px 64px}
.ed-head h2{font-size:clamp(1.8rem,2.8vw,2.5rem)}
.prose{max-width:70ch;font-size:.96rem;overflow-wrap:break-word}
.prose h3{font-size:1.25rem;margin-top:1.6em}
.prose .checks{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 20px}
.prose .checks li{border-bottom:1px solid var(--stone);padding:13px 0 13px 26px;background:none;border-radius:0;font-size:.84rem}
.prose .checks li::before{left:1px;top:23px;width:11px;height:6px;border-width:0 0 2px 2px}
.prose table{width:100%;border-collapse:collapse;font-size:.83rem}
.prose th,.prose td{border-bottom:1px solid var(--stone);padding:12px 10px;text-align:left;overflow-wrap:anywhere}
/* The guide library has its own reading hierarchy inside the same brand. */
.resource-hero{background:var(--concrete);padding-block:30px 62px}
.resource-heading{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,.8fr);gap:48px;align-items:end;margin:32px 0 40px}
.resource-heading h1{font-size:clamp(2.6rem,4.5vw,4rem);line-height:1.13;letter-spacing:-.04em;text-wrap:initial}
.resource-heading h1 span{color:var(--red)}
.resource-heading>p{font-size:.96rem;max-width:38ch;color:var(--muted);padding-bottom:4px}
.featured-guide{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);background:var(--ink);color:white;border-radius:var(--r);overflow:hidden;text-decoration:none;min-height:400px}
.feature-copy{display:flex;flex-direction:column;align-items:start;justify-content:center;padding:40px 46px;gap:20px}
.feature-copy h2{font-size:clamp(2rem,3vw,2.7rem);line-height:1.15;max-width:17ch}
.feature-copy>p{color:var(--on-ink-muted);font-size:.86rem;max-width:41ch}
.feature-copy .btn{margin-top:2px;min-height:48px;font-size:.78rem;padding:12px 18px}
.feature-meta{display:flex;align-items:center;gap:10px;font-size:.67rem;color:#c0c2bf}
.featured-guide figure{position:relative;min-width:0;overflow:hidden}
.featured-guide img{height:100%;width:100%;object-fit:cover;max-height:460px;transition:transform .8s var(--ease)}
.featured-guide:hover img{transform:scale(1.03)}
.featured-guide figcaption{position:absolute;left:20px;bottom:18px;right:20px;width:fit-content;background:#0c0d0ee8;color:white;border-radius:4px;padding:8px 12px;font-size:.65rem;line-height:1.5}
.resource-library{padding-top:72px}
.resource-library>.wrap>.sec-head{margin-bottom:26px}
.resource-library>.wrap>.sec-head h2{font-size:clamp(1.7rem,2.8vw,2.35rem)}
#guide-count{font-size:.76rem;color:var(--muted);font-variant-numeric:tabular-nums}
.resource-toolbar{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-bottom:38px;border-bottom:1px solid var(--stone)}
.resource-tabs{display:flex;align-items:stretch;gap:24px}
.resource-tab{padding:16px 0;border:0;border-bottom:2px solid transparent;background:none;font-size:.8rem;color:var(--muted);line-height:1.5;white-space:nowrap;min-height:50px}
.resource-tab:hover{color:var(--ink)}
.resource-tab[aria-pressed=true]{font-weight:650;color:var(--red);border-bottom-color:var(--red)}
.resource-search{display:flex;align-items:center;gap:10px;color:var(--muted);width:240px;max-width:100%;border:1px solid var(--stone);border-radius:5px;padding:10px 12px;margin-bottom:10px}
.resource-search:focus-within{outline:2px solid var(--focus);outline-offset:2px;border-color:var(--ink)}
.resource-search input{width:100%;min-width:0;background:none;border:0;outline:none;font-size:.77rem;padding:0;line-height:1.5}
.resource-search input::placeholder{color:var(--muted);opacity:1}
.resource-search .i{width:18px;height:18px}
.guides{gap:46px 28px}
.guide{min-width:0}
.guide>a{display:grid;grid-template-rows:auto 1fr;gap:0;padding-bottom:0;height:100%;text-decoration:none}
.guide-img{position:relative;display:block;overflow:hidden;border-radius:var(--r);background:var(--concrete)}
.guide-img img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .7s var(--ease)}
.guide a:hover .guide-img img{transform:scale(1.04)}
.guide-open{display:grid;place-items:center;position:absolute;right:14px;bottom:14px;width:36px;height:36px;background:white;color:var(--ink);border-radius:50%;transition:background .2s,color .2s}
.guide-open .i{transform:rotate(-35deg)}
.guide a:hover .guide-open{color:white;background:var(--red)}
.guide-content{display:flex;align-items:start;flex-direction:column;padding-top:20px;gap:12px}
.guide-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.65rem;width:100%;color:var(--muted)}
.guide-meta span:first-child{color:var(--red);font-weight:600}
.guide h3{font-size:1.23rem;font-weight:650;line-height:1.38;letter-spacing:-.025em}
.guide a:hover h3{color:var(--red)}
.guide-content>p{color:var(--muted);font-size:.81rem;line-height:1.7}
.guide-link{display:inline-flex;align-items:center;gap:12px;margin-top:auto;padding-top:5px;color:var(--red);font-size:.75rem;font-weight:600}
.guides-empty{padding:60px 24px;text-align:center;background:var(--concrete);border-radius:var(--r)}
.guides-empty p{margin:12px 0 24px;color:var(--muted)}
.help-in{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.help-in>div>p{margin-block:22px 26px;max-width:43ch;font-size:.91rem;color:var(--muted)}
.help-links{border-top:1px solid #c6c8c2}
.help-links a{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;border-bottom:1px solid #c6c8c2;text-decoration:none;font-size:.74rem;color:var(--muted)}
.help-links strong{display:block;margin-top:6px;font-size:1rem;font-weight:600;color:var(--ink)}
.help-links .i{width:22px;height:22px;color:var(--red);transition:transform .3s var(--ease)}
.help-links a:hover .i{transform:translateX(5px)}
.article-meta{border-bottom:1px solid var(--stone)}
.article-meta .wrap{display:flex;justify-content:space-between;gap:20px;padding-block:20px;color:var(--muted);font-size:.74rem}
.article-meta a{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--red);font-weight:600}
.article-meta a .i{transform:rotate(180deg)}
.art{grid-template-columns:180px minmax(0,1fr) 220px;gap:40px}
.toc{top:120px;font-size:.73rem;line-height:1.6}
.toc ol{border:0}
.toc a{padding:8px 0;border:0;margin:0}
.toc a:hover,.toc a[aria-current]{color:var(--red)}
.art-body section+section{margin-top:3em}
.art-body section{scroll-margin-top:120px}
.art-body h2{font-size:clamp(1.65rem,2.3vw,2.1rem);line-height:1.25;margin-bottom:24px}
.art-cta{top:120px;padding:20px;border:0;font-size:.8rem;gap:18px}
.art-cta img{width:100%;border-radius:8px}
.art-cta .btn{padding-inline:10px;gap:8px;min-height:46px;font-size:.75rem}
.art-cta .more{font-size:.74rem;gap:8px}
.lb{height:100dvh}
.lb[open]{grid-template-rows:auto minmax(0,1fr) auto}
.lb-bar,.lb-nav{padding:20px var(--gut);font-size:.84rem}
.lb button{min-height:46px;min-width:46px;border-radius:5px;font-size:.8rem}
.ftr{background:var(--ink);padding-top:76px;border-top:1px solid var(--ink-3)}
.ftr-in{padding:0 var(--gut) 56px;grid-template-columns:1.4fr 1fr 1fr .7fr;gap:44px}
.ftr-brand{gap:20px;font-size:.8rem;max-width:31ch}
.ftr-brand img{width:184px}
.ftr-contact{gap:10px}
.ftr-contact a:first-child{font:700 1.9rem/1.2 var(--display)}
.ftr h2{font:600 .86rem/1.4 var(--body);letter-spacing:0;margin-bottom:20px}
.ftr ul{gap:11px;font-size:.74rem;line-height:1.6}
.ftr-base{padding:24px var(--gut);gap:14px;font-size:.66rem}
.ftr-base span:last-child{gap:24px}
@media(max-width:1190px){
 .hdr-in{gap:24px}.nav>ul{gap:17px}.hdr-phone{display:none}.hdr-cta{gap:12px}.logo img{width:176px}
 .resource-heading{grid-template-columns:1.6fr 1fr;gap:30px}.feature-copy{padding:34px}.art{grid-template-columns:160px minmax(0,1fr);gap:40px}.art-cta{position:static;grid-column:2}.art-cta img{display:none}
}
@media(max-width:1080px){.hdr-cta{margin-left:auto}.hdr-phone{display:flex}.hdr-phone span{display:inline}.burger{display:inline-flex}.nav{display:none}}
@media(max-width:1000px){
 .hdr-in{height:78px}.logo img{width:174px}.hero-in{min-height:600px;grid-template-columns:1.3fr .7fr}.hero h1{font-size:5rem}.hero-backdrop{left:22%}.hero-project{padding:14px;gap:12px}.hero-project strong{font-size:.75rem}.hero .acts{max-width:400px}.hero-project .round-arrow{width:32px;height:32px}
 .proof li{padding:22px 16px}.proof span{font-size:.68rem}.svcs{gap:22px}.services-home .svc:nth-child(2){margin-top:25px}.services-home .svc:nth-child(3){margin-top:50px}.svc-body h3{font-size:1.5rem}
 .story-in{gap:36px;grid-template-columns:.9fr 1.1fr}.stage-panel img{height:420px}.resource-heading{grid-template-columns:1fr;gap:24px}.resource-heading>p{max-width:64ch}.resource-heading h1{font-size:3.7rem}.feature-copy h2{font-size:2rem}.featured-guide{min-height:380px}.resource-tabs{gap:18px}.resource-search{width:210px}.guides{grid-template-columns:repeat(2,minmax(0,1fr))}
 .phero-photo .phero-in{gap:34px}.phero-photo h1{font-size:2.4rem}.phero .lede{font-size:.94rem}.ph-fig img{aspect-ratio:4/5}.water,.area-in,.quote-in,.help-in{gap:40px}.cities li{font-size:.76rem}.ed-in{gap:26px 40px}.ftr-in{grid-template-columns:1.3fr 1fr 1fr;gap:28px}.ftr-in>div:last-child{grid-column:2/span 2}.ftr-in>div:last-child ul{display:flex;gap:24px}
}
@media(max-width:900px){.svcs{grid-template-columns:1.12fr 1fr 1fr}.phero-photo .phero-in{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.phero-photo .ph-fig{order:0}.water,.area-in,.quote-in,.ed-in{grid-template-columns:1fr}.water>.xsec:first-child{order:2}.proof{grid-template-columns:repeat(4,minmax(0,1fr))}.proof li{border-top:0}.proof li:nth-child(3){border-left:1px solid var(--stone);padding-left:16px}.jobs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 body{padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))}.utility .wrap{justify-content:center;font-size:.64rem;padding-block:7px}.utility .wrap>span:last-child{display:none}.hdr-in{height:70px}.logo img{width:150px}.hdr-phone{display:none}.hdr-cta .btn{display:none}.burger{width:44px;height:44px}
 .hero-in{display:flex;flex-direction:column;align-items:start;min-height:0;padding-top:48px;padding-bottom:24px;gap:26px}.hero-copy{padding-bottom:0;max-width:550px}.hero h1{font-size:clamp(3.6rem,12.2vw,5rem);line-height:1.02}.hero-backdrop{inset:0}.hero-backdrop img{object-position:65% center}.hero::before{background:linear-gradient(90deg,#0c0d0eeb,#0c0d0e8c),linear-gradient(0deg,#0c0d0e99,transparent)}
 .hero .lede{font-size:.94rem;margin-top:22px;max-width:43ch}.hero .acts{max-width:none}.hero .btn{min-height:50px;padding:12px 16px;font-size:.76rem}.hero-local{font-size:.65rem;gap:8px 12px;margin-top:22px}.hero-local span{gap:12px}.hero-project{align-self:stretch;max-width:none;margin-top:8px;justify-content:space-between;padding:15px 18px}.hero-project strong{font-size:.78rem}.hero-project .round-arrow{width:36px;height:36px}
 .proof{grid-template-columns:repeat(2,minmax(0,1fr))}.proof li{padding:20px 0 20px 18px}.proof li:nth-child(3){padding-left:0;border-left:0}.proof li:nth-child(n+3){border-top:1px solid var(--stone)}.proof b{font-size:.8rem}.proof span{font-size:.68rem;max-width:24ch}
 .band{padding-block:64px}.band-tight{padding-block:0}.band-flush{padding-block:36px 64px}.sec-head{margin-bottom:30px;gap:18px}.sec-row{grid-template-columns:1fr;gap:20px}.sec-row>p{font-size:.87rem}.desktop-break{display:none}
 .svcs{grid-template-columns:1fr;gap:38px}.services-home .svc:nth-child(n){margin-top:0}.svc{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);grid-template-rows:auto;gap:24px;align-items:center}.svc-img img{aspect-ratio:3/4}.svc-body{padding-top:0;gap:10px}.svc-body h3{font-size:1.5rem}.svc-body p{font-size:.8rem}.svc-body li a{font-size:.7rem;padding-block:9px}.svc-body ul{margin:0}.svc-wide{grid-template-columns:1fr;gap:25px}.svc-wide:nth-child(even) .svc-img{order:0}.svc-wide .svc-img img{aspect-ratio:4/3}.svc-wide .svc-body h2{font-size:2rem}
 .story-in,.water,.faq-wrap,.area-in,.quote-in,.help-in{grid-template-columns:1fr;gap:36px}.story-copy{padding-top:0}.story-copy>p{font-size:.88rem;max-width:52ch;margin-top:20px}.stage-tabs{grid-template-columns:repeat(4,minmax(0,1fr));margin:28px 0 22px}.stage-tabs button{display:grid;gap:8px;padding:15px 5px 15px 0;font-size:.7rem;line-height:1.4;align-content:start}.stage-tabs button span{font-size:.64rem}.stage-tabs button::after{display:none}.stage-tabs button[aria-selected=true]{border-bottom-color:#ff6a52}.stage-panel img{height:auto;aspect-ratio:4/3}.stage-caption{margin-top:20px}.water-copy p{font-size:.88rem}.xsec{padding:16px}.xsec figcaption{font-size:.73rem}
 .jobs{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 20px}.job-body h2,.job-body h3{font-size:1.05rem}.job-body p{font-size:.77rem}.job-count{right:10px;bottom:10px;font-size:.64rem;padding:5px 8px}.job-body{padding-top:14px;gap:8px}.tag{font-size:.6rem}.jobs-all .job:first-child{grid-column:span 2}.jobs-all .job:first-child .job-body h2{font-size:1.3rem}.jobs-all .job:first-child img{aspect-ratio:16/10}.filters{gap:5px;margin-bottom:28px}.chip{font-size:.76rem;padding-inline:8px}.job-total{margin-left:0;width:100%;padding-block:8px 0;font-size:.7rem}
 .vids{grid-template-columns:1fr;gap:30px}.rev-lead{padding-bottom:28px}.rev-lead blockquote{font-size:1.3rem}.rev-grid{gap:24px}.rev-grid .rev{font-size:.8rem}.rev-src{font-size:.71rem}.steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 24px}.steps h3{font-size:1.05rem}.steps p{font-size:.8rem}.faq-wrap .sec-head{position:static;margin-bottom:0}.faq summary{font-size:.87rem;padding-block:22px}.faq .prose{font-size:.85rem}.cities{gap:0 30px}.cities li{font-size:.8rem}.area-in>div{gap:20px}
 .quote-copy{padding-top:0}.quote-copy h2{font-size:2.4rem;max-width:20ch}.quote-copy h1{font-size:2.6rem}.quote-copy>p{font-size:.87rem}.quote-call{margin-top:8px}.quote-card{padding:26px}.qform{gap:18px}.f2{gap:14px}.phero{padding-block:32px 40px}.phero-photo .phero-in{grid-template-columns:1fr;gap:30px}.phero-copy{gap:20px}.phero h1,.phero-photo h1{font-size:2.55rem;line-height:1.12;max-width:23ch}.phero .lede{font-size:.92rem}.ph-fig img{aspect-ratio:16/10}.crumbs ol{font-size:.63rem}.crumbs [aria-current]{max-width:27ch}.phero .acts{gap:10px}.phero .btn{font-size:.75rem;padding:12px 16px;min-height:48px}
 .ed{padding-block:48px}.ed-in{grid-template-columns:1fr;gap:24px}.ed-in .prose,.ed-head,.ed-fig{grid-column:1;grid-row:auto}.ed-head h2{font-size:1.9rem}.ed-fig{margin-top:4px}.prose{font-size:.9rem}
 .resource-hero{padding-block:25px 36px}.resource-heading{margin:26px 0 30px;gap:20px}.resource-heading h1{font-size:clamp(2.25rem,6.2vw,3.4rem);line-height:1.15}.resource-heading>p{font-size:.89rem;max-width:53ch}.featured-guide{grid-template-columns:1fr}.feature-copy{padding:30px;gap:18px}.feature-copy h2{font-size:2rem;max-width:22ch}.feature-copy>p{font-size:.82rem;max-width:48ch}.feature-copy .btn{font-size:.76rem}.featured-guide figure{height:250px}.featured-guide img{height:250px;object-position:center 62%}.featured-guide figcaption{font-size:.61rem;bottom:14px;left:14px;right:14px;padding:7px 10px}
 .resource-library>.wrap>.sec-head{grid-template-columns:1fr;gap:10px}.resource-library>.wrap>.sec-head h2{font-size:1.85rem}.resource-toolbar{flex-direction:column;align-items:stretch;gap:14px;border-bottom:0;margin-bottom:30px}.resource-tabs{border-bottom:1px solid var(--stone);gap:22px}.resource-tab{font-size:.74rem;padding-block:12px;min-height:48px}.resource-search{width:100%;padding:13px;margin-bottom:0}.resource-search input{font-size:.85rem}.guides{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 20px}.guide-content{padding-top:15px;gap:10px}.guide h3{font-size:1.08rem}.guide-content>p{font-size:.77rem}.guide-meta{font-size:.58rem;gap:6px}.guide-open{width:30px;height:30px;right:10px;bottom:10px}.guide-link{font-size:.69rem;gap:8px}.guide-img{border-radius:8px}
 .help-in>div>p{font-size:.88rem}.help-links a{padding:22px 0}.help-links strong{font-size:.95rem}.article-meta .wrap{font-size:.66rem;padding-block:16px;flex-wrap:wrap;gap:8px 16px}.art{grid-template-columns:1fr;gap:30px}.toc{display:grid;position:static;padding-bottom:24px;border-bottom:1px solid var(--stone)}.toc ol{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.toc a{font-size:.73rem}.art-cta{grid-column:1}.art-body h2{font-size:1.7rem;margin-bottom:20px}.art-body section+section{margin-top:2.5em}.art-body section{scroll-margin-top:90px}
 .ftr{padding-top:56px}.ftr-in{grid-template-columns:1fr 1fr;gap:36px 25px;padding-bottom:40px;padding-inline:var(--gut)}.ftr-brand{grid-column:1/-1;max-width:40ch}.ftr-in>div:last-child{grid-column:1/-1}.ftr-in>div:last-child ul{flex-wrap:wrap;gap:18px 26px}.ftr h2{margin-bottom:18px}.ftr-base{font-size:.62rem;gap:12px;padding-block:20px}.ftr-base span:last-child{gap:18px}
 .dock{padding:9px max(14px,env(safe-area-inset-right,0px)) calc(9px + env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px))}.dock a{font:600 .84rem/1.5 var(--body);letter-spacing:0;text-transform:none;border-width:1px;border-radius:5px}
 .lb-bar,.lb-nav{padding:16px 20px;font-size:.72rem}.lb-bar p{max-width:30ch}.lb button{font-size:.72rem;padding:10px 12px}
}
@media(max-width:480px){
 .hero .acts{flex-direction:column;align-items:start}.hero .acts .btn{min-width:235px}.hero h1{font-size:clamp(2.35rem,11.6vw,3.3rem)}.hero .lede{max-width:35ch}.svc{grid-template-columns:1fr;gap:20px}.svc-img img{aspect-ratio:16/11}.svc-body h3{font-size:1.7rem}.svc-body p{font-size:.88rem}.svc-body li a{font-size:.8rem;padding-block:12px}.jobs,.guides{grid-template-columns:1fr}.jobs-all .job:first-child{grid-column:auto}.job-body h2,.job-body h3{font-size:1.25rem}.job-body p{font-size:.84rem}.job-img img{aspect-ratio:16/11}.job-count{font-size:.68rem}.tag{font-size:.65rem}.rev-grid{grid-template-columns:1fr}.f2{grid-template-columns:1fr}
 .guide h3{font-size:1.3rem}.guide-meta{font-size:.66rem}.guide-content>p{font-size:.84rem}.guide-link{font-size:.76rem}.guide-img img{aspect-ratio:16/10}.guide-open{width:36px;height:36px}.guide-content{padding-top:18px;gap:12px}.resource-tabs{justify-content:space-between;gap:10px}.resource-tab{font-size:.66rem}.feature-copy{padding:28px}.feature-copy h2{font-size:1.9rem}.resource-heading h1{font-size:clamp(1.96rem,7.7vw,2.8rem)}.stage-tabs button{font-size:.65rem}.quote-card{padding:24px}.toc ol{grid-template-columns:1fr}.art-body table{font-size:.7rem}.prose th,.prose td{padding:10px 6px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.prev-arrow{display:inline-flex;transform:rotate(180deg)}
body:has(.lb[open]){overflow:hidden}
.toc-label,.art-identity{font-size:.78rem;font-weight:650;color:var(--ink)}

figure{margin:0}
picture{display:contents}

@media(max-width:760px){.featured-guide figure{order:-1;height:220px}.featured-guide img{height:220px}}

/* Google review board: the client's frosted frame and dimensional-star reference. */
.google-reviews{background:var(--concrete);scroll-margin-top:110px}
.google-reviews .sec-row>p{max-width:35ch;color:var(--muted);font-size:.92rem;line-height:1.65}
.review-board{position:relative;isolation:isolate;overflow:hidden;border:1px solid #fff;border-radius:28px;background:linear-gradient(135deg,#f6f6f3,#e2e2dd);box-shadow:0 24px 60px -30px #282b323d}
.review-board::before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 84% 10%,#ba1a0a0c,transparent 43%),radial-gradient(ellipse at 58% 30%,#f5bd4826,transparent 46%)}
.review-board-bar{display:flex;align-items:center;gap:24px;padding:23px 36px;border-bottom:1px solid #ffffffb3;font-size:.82rem}
.review-google{display:flex;align-items:center;gap:10px;font-size:1.03rem;font-weight:600;letter-spacing:-.02em}
.review-google img{width:28px;height:28px;object-fit:contain}
.review-business{margin-left:auto;color:var(--muted)}
.review-board-bar>a{display:flex;align-items:center;gap:12px;min-height:44px;color:var(--red);text-decoration:none;font-weight:600}
.review-board-bar>a:hover{text-decoration:underline;text-underline-offset:4px}
.review-spotlight{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:32px;padding:34px 44px 39px}
.review-score-number{font-size:5.75rem;font-weight:650;line-height:1.1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--ink)}
.review-score-number>span{display:inline-block;margin-left:7px;font-size:1.55rem;font-weight:400;letter-spacing:-.02em;color:var(--muted)}
.review-score>p:last-child{margin-top:7px;font-size:.78rem;color:var(--muted)}
.review-score>p:last-child strong{font-weight:600;color:var(--ink-soft)}
.review-star-art{width:100%;max-width:650px;height:auto;overflow:visible;filter:drop-shadow(0 20px 13px #8a652d35)}
.review-art-star{transform-box:view-box}
.review-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:0 36px 22px;align-items:stretch}
.google-review{display:flex;flex-direction:column;min-width:0;padding:24px 22px 10px;border-radius:14px;background:var(--paper);box-shadow:0 10px 24px -17px #282b3252}
.google-review:nth-child(3n+2){transform:translateY(20px)}
.google-review figcaption{display:flex;align-items:center;gap:11px;min-width:0}
.review-avatar{display:flex;align-items:center;justify-content:center;flex:none;width:42px;height:42px;border-radius:50%;font-size:.83rem;font-weight:650;letter-spacing:.02em}
.review-avatar-0{background:#f4e1db;color:#813125}
.review-avatar-1{background:#e9e8e1;color:#50504a}
.review-avatar-2{background:#e2e6e9;color:#404b54}
.review-person{display:grid;gap:4px;min-width:0;line-height:1.4}
.review-person strong{font-size:.875rem;font-weight:650;letter-spacing:-.01em}
.review-person>span{font-size:.75rem;color:var(--muted)}
.review-card-google{flex:none;width:20px;height:20px;margin-left:auto;align-self:start;object-fit:contain}
.review-card-stars{display:flex;align-items:center;gap:2px;margin-block:21px 10px}
.review-card-stars svg{width:16px;height:16px;fill:#bc7b0b}
.google-review blockquote{margin:0 0 13px;font-size:.9rem;line-height:1.6;letter-spacing:-.01em;color:var(--ink-2)}
.review-original{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin-top:auto;color:var(--muted);font-size:.75rem;font-weight:500;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#c9cbca}
.review-original .i{width:13px;height:13px}
.review-original:hover{color:var(--red);text-decoration-color:currentColor}
.review-board-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 36px 30px}
.review-board-footer>p{font-size:.75rem;line-height:1.6;color:var(--ink-soft)}
.review-board-footer>p>span{color:var(--muted);font-size:.75rem}
.review-board-footer .btn{min-height:48px;font-size:.76rem;padding:12px 18px}
.review-board-compact .review-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:0}
.review-board-compact .google-review:nth-child(n){transform:none}
@media(max-width:1000px){
 .review-board-bar{padding:17px 26px;gap:20px}.review-spotlight{grid-template-columns:170px minmax(0,1fr);gap:20px;padding:35px 30px}.review-score-number{font-size:4.7rem}.review-score>p:last-child{font-size:.75rem}.review-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 26px;gap:16px}.google-review:nth-child(n){transform:none}.review-board-footer{padding:24px 26px}
}
@media(max-width:760px){
 .google-reviews{scroll-margin-top:85px}.google-reviews .sec-row>p{font-size:.9rem}.review-board{border-radius:20px}.review-board-bar{padding:14px 20px;gap:14px}.review-google{font-size:.9rem;gap:8px}.review-google img{width:24px;height:24px}.review-business{display:none}.review-board-bar>a{font-size:.75rem;margin-left:auto;gap:8px}.review-spotlight{grid-template-columns:1fr;gap:15px;padding:26px 24px 34px}.review-score{display:flex;align-items:center;gap:19px}.review-score-number{font-size:3.7rem}.review-score-number>span{font-size:1.1rem;margin-left:5px}.review-score>p:last-child{margin-top:0;max-width:13ch;line-height:1.55;font-size:.75rem}.review-star-art{max-width:470px;justify-self:center;filter:drop-shadow(0 12px 9px #8a652d35)}.review-card-grid,.review-board-compact .review-card-grid{gap:14px;padding:0 18px}.google-review{padding:21px 20px 9px}.review-avatar{width:38px;height:38px;font-size:.75rem}.review-person strong{font-size:.875rem}.review-person>span{font-size:.75rem}.review-card-google{width:18px;height:18px}.review-card-stars{margin-top:18px}.google-review blockquote{font-size:.9rem}.review-original{font-size:.75rem}.review-board-footer{padding:24px 20px;align-items:start;flex-direction:column;gap:17px}.review-board-footer>p{font-size:.75rem}.review-board-footer .btn{width:100%;justify-content:space-between;font-size:.76rem}
}
@media(max-width:580px){
 .review-card-grid,.review-board-compact .review-card-grid{grid-template-columns:1fr}.review-person strong{font-size:.875rem}.review-person>span{font-size:.75rem}.google-review blockquote{font-size:.9rem}.review-card-stars{margin-block:16px 9px}.review-original{font-size:.75rem}.review-avatar{width:42px;height:42px}.review-card-google{width:20px;height:20px}.review-board-footer{padding:22px 20px 24px}
}
/* User-approved mobile alignment: a centered reading axis through every page. */
@media(max-width:760px){
 main,.ftr,.mnav{text-align:center}
 main :is(h1,h2,h3,.lede,.sec-head,.hero-copy,.story-copy>p,.quote-copy>p,.resource-heading>p,.feature-copy>p){margin-inline:auto}
 .hero-in,.feature-copy{align-items:center}
 .hero-copy,.phero-copy,.quote-copy,.story-copy,.water-copy{width:100%}
 main :is(.acts,.hero-local,.hero-local span,.crumbs ol,.filters,.resource-tabs,.guide-meta,.feature-meta,.article-meta .wrap,.area-links,.review-card-person,.review-card-stars,.review-board-bar,.review-summary){justify-content:center}
 .hero .acts{align-items:center}
 .hero-project{justify-content:center}
 .sec-row,.svc-body,.job-body,.guide-content,.area-in>div,.quote-copy{justify-items:center}
 .svc-body li a{justify-content:center;gap:12px}
 .stage-tabs button{text-align:center;justify-items:center;padding-inline:5px}
 .stage-panel figcaption{justify-content:center;flex-wrap:wrap}
 .faq summary{justify-content:center;position:relative;padding-inline:26px}
 .faq summary::after{position:absolute;right:0}
 .prose ul,.prose ol,.toc ol{padding-left:0;list-style-position:inside}
 .cities{padding-left:0;list-style:none}
 .quote-call,.more,.guide-link{justify-content:center}
 .qform label{text-align:center}
 .qform input,.qform textarea,.qform select,.resource-search input{text-align:left}
 .ftr-brand{margin-inline:auto}
 .ftr-brand img{margin-inline:auto}
 .ftr-in>div:last-child ul,.ftr-base,.ftr-base span:last-child{justify-content:center}
 .ftr-base{flex-direction:column;align-items:center}
 .guide-content{align-items:center}
 main :is(.prose,.help-in>div>p){margin-inline:auto}
 .help-links a,.review-original{justify-content:center;gap:12px}
 .mnav .sub a{padding-inline:0}
 .prose .checks li{padding-inline:26px}
 .review-score,.google-review figcaption{justify-content:center}
 .review-board-bar{flex-wrap:wrap}
 .review-board-bar>a,.review-card-google{margin-left:0}
 .review-card-google{align-self:center}
 .review-board-footer{align-items:center}
 .review-board-footer .btn{justify-content:center}
 .hdr-in{position:relative;justify-content:center}
 .hdr-cta{position:absolute;right:var(--gut);margin-left:0}
}
/* Transparent logo intro shares the final headline's space; no layout jump. */
.hero-video-home{background:var(--ink);overflow:hidden}
.hero-video-home::before{display:none}
.hero-video-home .hero-in{min-height:620px;transition:opacity .4s ease,transform .4s cubic-bezier(.16,1,.3,1),filter .4s ease}
.hero-film{position:absolute;inset:0;z-index:2;display:grid;place-items:center;pointer-events:none;transition:opacity .36s ease,transform .4s cubic-bezier(.16,1,.3,1),filter .36s ease}
.hero-film[hidden]{display:none}
.hero-film video{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.hero-film canvas{width:min(100%,1100px);height:auto;aspect-ratio:16/9}
.hero-video-toggle{position:absolute;right:20px;bottom:16px;z-index:3;min-height:44px;padding:10px 16px;border:1px solid #666;border-radius:5px;background:var(--ink);color:#fff;font:600 .8rem/1.4 var(--body);cursor:pointer}
.hero-video-toggle:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.hero-video-home.intro-active .hero-in{opacity:0;transform:translateY(18px) scale(.97);filter:blur(8px);pointer-events:none}
.hero-video-home.intro-finished .hero-film{opacity:0;transform:scale(1.12);filter:blur(12px)}
@media(min-width:1001px){
 .hero-video-home.intro-finished .hero-film{opacity:1;transform:translateX(25%) scale(.75);filter:none}
 .hero-video-home .hero-project{position:relative;z-index:3}
}
@media(max-width:760px){
 .hero-video-home .hero-in{min-height:620px;padding-block:40px}
 .hero-film canvas{width:160%;max-width:none}
}
@media(prefers-reduced-motion:reduce){.hero-film,.hero-video-toggle{display:none!important}.hero-video-home .hero-in{opacity:1;transform:none;filter:none}}

@media(min-width:1001px) and (max-width:1200px){
 .hero-video-home.intro-finished .hero-film{transform:translateX(28%) scale(.55)}
}

/* Homepage alignment and featured-review presentation. */
.home-section-heading{max-width:none;width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;gap:22px}
.home-section-heading h2{max-width:none;font-size:clamp(2rem,3.5vw,3.5rem)}
.services-home .svcs{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.services-home .svc:nth-child(n){margin-top:0}
.services-home .svc{display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;align-items:stretch;outline:2px solid transparent;outline-offset:8px;border-radius:var(--r);transition:outline-color .2s ease}
.services-home .svc:hover,.services-home .svc:focus-within{outline-color:var(--red)}
.services-home .svc-img img{width:100%;aspect-ratio:4/3;object-fit:cover}
.services-home .svc-body{grid-template-rows:auto 1fr auto;align-content:stretch}
.services-home .svc-body ul{align-self:end;width:100%}
.story-step{color:#ff6a52;font-weight:700}
.review-board-footer{justify-content:center}
@media(max-width:760px){
 .services-home .svcs{grid-template-columns:1fr}
 .services-home .svc{gap:20px}
 .home-section-heading h2{font-size:clamp(1.8rem,7.5vw,2.8rem)}
}

/* Shared interior-page title strip: homepage ink, white title, small brand mark. */
.page-title-strip{background:var(--ink);color:#fff;padding:48px 0 54px;text-align:center}
.page-title-strip>.wrap{display:flex;flex-direction:column;align-items:center;gap:24px}
.page-title-strip>.wrap>img{width:150px;height:auto}
.page-title-strip h1{color:#fff;font-size:clamp(2rem,4.2vw,3.8rem);line-height:1.12;max-width:1100px;margin:0;text-wrap:balance}
.page-intro{padding-block:48px}
.page-intro .phero-in{min-height:0}
.page-intro:not(.phero-photo) .phero-in{display:block}
.page-intro:not(.phero-photo) .phero-copy{max-width:850px;margin-inline:auto;text-align:center;justify-items:center}
.page-intro:not(.phero-photo) .crumbs ol,.page-intro:not(.phero-photo) .acts{justify-content:center}
.resource-intro{display:block;text-align:center;margin-inline:auto}
.resource-intro p{max-width:65ch;margin-inline:auto}
@media(max-width:760px){
 .page-title-strip{padding:34px 0 40px}
 .page-title-strip>.wrap{gap:20px}
 .page-title-strip>.wrap>img{width:125px}
 .page-title-strip h1{font-size:clamp(1.8rem,7.5vw,2.6rem)}
 .page-intro{padding-block:32px}
}

/* Keep the original page introduction together inside its centered black hero. */
.page-hero-details{display:grid;justify-items:center;gap:24px;width:100%;max-width:850px;text-align:center}
.page-title-strip .lede{color:#d1d3d4;max-width:70ch;font-size:1rem;line-height:1.65;margin:0}
.page-title-strip .crumbs ol,.page-title-strip .acts{justify-content:center}
.page-title-strip .crumbs ol,.page-title-strip .crumbs a,.page-title-strip .crumbs [aria-current]{color:#c3c6c8}
.page-title-strip .crumbs a:hover{color:#fff}
.page-title-strip .acts{margin:0;flex-wrap:wrap}
.page-title-strip .ph-fig{width:100%;max-width:800px;margin:12px auto 0}
.page-title-strip .ph-fig img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
@media(max-width:760px){
 .page-hero-details{gap:20px}
 .page-title-strip .lede{font-size:.94rem}
 .page-title-strip .acts{align-items:center}
 .page-title-strip .ph-fig img{aspect-ratio:16/10}
}

/* Consistent section rhythm and shared alignment across page templates. */
:root{--section-space:clamp(64px,6.7vw,96px);--section-gap:clamp(24px,3vw,40px)}
.band{padding-block:var(--section-space)}
.band-tight{padding-block:0}
.band-flush{padding-block:40px var(--section-space)}
.ed{padding-block:clamp(48px,5vw,72px)}
.sec-head{margin-bottom:var(--section-gap)}
.wrap>.sec-head:not(.sec-row):not(.home-section-heading){margin-inline:auto;text-align:center}
.about-feature{background:var(--ink);padding-bottom:var(--section-space)}
.about-feature figure{max-width:1120px;margin:0 auto}
.about-feature img{display:block;width:100%;height:auto;border-radius:var(--r)}
.svc-wide{align-items:center}
.guide>a{height:100%;display:flex;flex-direction:column}
.guide-content{flex:1}
.guide-content .guide-link{margin-top:auto;padding-top:8px}
@media(min-width:761px) and (max-width:1000px){
 .ed-in{justify-items:center;text-align:center;gap:24px}
 .ed-in .prose{margin-inline:auto}
 .ed-fig{width:100%;max-width:720px}
 .area-in>div,.water-copy{justify-items:center;text-align:center}
 .area-links,.water-copy .acts{justify-content:center}
}
@media(max-width:760px){
 .band{padding-block:56px}
 .band-tight{padding-block:0}
 .band-flush{padding-block:32px 56px}
 .ed{padding-block:48px}
 .ed-in{gap:24px;justify-items:center}
 .ed-fig{width:100%;max-width:640px}
 .faq-wrap .sec-head{margin-bottom:0}
 .story-copy{padding-top:0}
 .quote-copy{padding-top:0}
 .about-feature{padding-bottom:48px}
 .jobs,.guides{row-gap:32px}
}
.google-review:nth-child(n){transform:none}
.page-title-strip .ph-fig{margin-top:0}
@media(min-width:761px) and (max-width:1000px){
 .hero-video-home .hero-in{grid-template-columns:1fr;justify-items:center;text-align:center}
 .hero-video-home .hero-copy{max-width:720px}
 .hero-video-home .lede{margin-inline:auto}
 .hero-video-home .acts,.hero-video-home .hero-local{justify-content:center;max-width:none}
}
@media(max-width:760px){
 .page-title-strip .acts{width:100%;flex-direction:column}
 .page-title-strip .acts .btn{width:min(100%,280px)}
}

/* About: centered heading, then an aligned photo-and-copy row. */
.about-editorial{border-top:1px solid var(--stone)}
.about-editorial h2{text-align:center;max-width:1000px;margin:0 auto var(--section-gap)}
.about-editorial-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(32px,5vw,64px)}
.about-editorial-row figure{margin:0;width:100%}
.about-editorial-row img{display:block;width:100%;height:auto;border-radius:var(--r)}
.about-editorial-row .prose{width:100%;margin:0 auto;text-align:center}
@media(max-width:760px){
 .about-editorial-row{grid-template-columns:1fr;gap:24px}
 .about-editorial-row figure{max-width:640px;margin-inline:auto}
}
/* Shared centered section headings and image-left editorial rows. */
.aligned-editorial>h2,.aligned-editorial>.wrap>h2{text-align:center;max-width:1000px;margin:0 auto var(--section-gap)}
.aligned-editorial h2 a{color:inherit;text-decoration:none}
.aligned-editorial-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(32px,5vw,64px)}
.aligned-editorial-row>.ed-fig{grid-column:auto;grid-row:auto;margin:0;width:100%}
.aligned-editorial-row .prose,.aligned-editorial-row .svc-body,.aligned-editorial-row .water-copy{text-align:center;margin-inline:auto;width:100%;justify-items:center}
.aligned-editorial-row .acts,.aligned-editorial-row .svc-body li a{justify-content:center;gap:16px}
.aligned-editorial-row .svc-body ul{width:100%}
.aligned-editorial-row .svc-img img{aspect-ratio:4/3;width:100%;object-fit:cover}
.aligned-editorial-row.text-only{grid-template-columns:1fr}
.aligned-editorial-row.text-only .prose{max-width:70ch}
.service-overviews{display:grid;gap:var(--section-space)}
.aligned-pages .sec-row{display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px}
.aligned-pages .job-body,.aligned-pages .guide-content{text-align:center;justify-items:center;align-items:center}
.aligned-pages .guide-meta,.aligned-pages .filters{justify-content:center}
.aligned-pages .job-total{margin-left:0}
.aligned-pages .vid figcaption{text-align:center}
.aligned-feature{grid-template-columns:repeat(2,minmax(0,1fr))}
.aligned-feature .feature-copy{text-align:center;align-items:center;justify-content:center}
.aligned-feature .feature-meta{justify-content:center}
.aligned-pages .faq-wrap{grid-template-columns:1fr;gap:32px}
.aligned-pages .faq-wrap .sec-head{position:static;text-align:center;justify-items:center;max-width:none;margin:0}
.aligned-pages .faqs{width:100%;max-width:960px;margin-inline:auto}
.aligned-pages .area-in{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 64px;text-align:center}
.aligned-pages .area-in>div{display:contents}
.aligned-pages .area-in h2{grid-column:1/-1;max-width:1000px;margin:0 auto 8px}
.aligned-pages .area-in>div>p{grid-column:1;margin:0 auto}
.aligned-pages .area-links{justify-content:center}
.aligned-pages .area-in>.cities{grid-column:2;grid-row:2/span 2;align-self:center}
.aligned-pages .help-in{text-align:center}
.aligned-pages .help-in>div>p{margin-inline:auto}
.aligned-pages .quote-copy{text-align:center;justify-items:center}
.aligned-pages .quote-call{justify-content:center}
@media(max-width:760px){
 .aligned-editorial-row,.aligned-feature{grid-template-columns:1fr;gap:24px}
 .aligned-pages .area-in{grid-template-columns:1fr;gap:24px}
 .aligned-pages .area-in>.cities{grid-column:1;grid-row:auto;width:100%}
 .aligned-feature figure{order:0}
 .aligned-feature .feature-copy{order:1}
}
.aligned-pages .area-in>div>p:not(.area-links){align-self:end}
.aligned-pages .area-in .area-links{align-self:start}

.jobs-section-heading{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:none;width:100%;gap:20px}
.jobs-section-heading h2{margin:0}
.jobs-section-heading .more{justify-content:center}

/* Gallery film stays behind the existing heading and breadcrumb content. */
.gallery-video-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--ink) url('/images/gallery-hero-poster.jpg') center/cover no-repeat;padding-block:64px 82px}
.gallery-video-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(5,8,10,.66);pointer-events:none}
.gallery-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;pointer-events:none}
.gallery-video-hero>.wrap{position:relative}
.gallery-video-hero .lede,.gallery-video-hero .crumbs a,.gallery-video-hero .crumbs [aria-current]{color:#f2f2f2}
@media(max-width:760px){.gallery-video-hero{padding-block:40px 82px}}
@media(prefers-reduced-motion:reduce){.gallery-hero-video{display:none!important}}
