:root {
  --ink: #182126;
  --ink-2: #243036;
  --paper: #f6f1e8;
  --warm: #ebe2d3;
  --white: #fff;
  --clay: #963521;
  --orange: #9a3b24;
  --green: #2f7458;
  --muted: #4f5a60;
  --line: rgba(24, 33, 38, .18);
  --shell: min(1680px, calc(100% - 48px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; font-size: 18px; line-height: 1.58; }
body.menu-open { overflow: hidden; }
a { color: inherit; }
img { display: block; max-width: 100%; }
.shell { width: var(--shell); margin-inline: auto; }
.narrow { max-width: 1120px; }
.skip-link { position: fixed; top: -100px; left: 18px; z-index: 1000; background: white; padding: 12px 18px; }
.skip-link:focus { top: 12px; }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: Arial, Helvetica, sans-serif; line-height: 1.05; letter-spacing: -.035em; }
h1 { font-size: clamp(3rem, 4.8vw, 5.6rem); max-width: 14ch; margin-bottom: 30px; }
h2 { font-size: clamp(2.2rem, 3.4vw, 4rem); max-width: 18ch; margin-bottom: 24px; }
h3 { font-size: 1.55rem; }
.lead { max-width: 45rem; font-size: clamp(1.2rem, 1.8vw, 1.6rem); color: #d3dadd; line-height: 1.65; }
.eyebrow { color: var(--clay); font-size: .88rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow::before { content: ""; display: inline-block; width: 44px; height: 4px; margin: 0 16px 4px 0; background: currentColor; }
.eyebrow.light { color: #ffd9c4; }
.button { min-height: 62px; display: inline-flex; align-items: center; justify-content: center; padding: 16px 26px; border: 2px solid var(--ink); font-size: 1.08rem; font-weight: 900; text-decoration: none; cursor: pointer; }
.button-clay { border-color: var(--orange); background: var(--orange); color: white; }
.button-light { border-color: white; background: white; color: var(--ink); }
.button-outline { background: transparent; color: var(--ink); }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; }
.text-link { display: inline-block; margin-top: 20px; color: var(--clay); font-weight: 900; }

.service-strip { background: #11191d; color: white; font-size: .94rem; font-weight: 800; }
.service-strip .shell { min-height: 50px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.service-strip span { display: flex; align-items: center; gap: 10px; }
.service-strip i { width: 11px; height: 11px; border-radius: 50%; background: #55ab7f; box-shadow: 0 0 0 7px rgba(85,171,127,.14); }
.service-strip div > div { display: flex; align-items: center; gap: 28px; }
.service-strip a { color: white; text-decoration: none; }
.service-strip div > div a:last-child { color: #ffd9c4; }
.site-header { position: relative; z-index: 50; background: var(--paper); border-bottom: 1px solid var(--line); }
.nav-shell { min-height: 122px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 18px; color: var(--ink); text-decoration: none; }
.brand > span:last-child { display: grid; line-height: 1; }
.brand small { font-family: Georgia, serif; font-size: 1rem; letter-spacing: .08em; }
.brand strong { font-family: Georgia, serif; font-size: 1.72rem; }
.brand-mark { width: 66px; height: 66px; display: grid; grid-template-columns: 1fr 1fr; gap: 5px; padding: 7px; background: #decfb4; }
.brand-mark b { display: block; background: var(--clay); }
.brand-mark b:first-child { grid-column: 1 / 2; }
.brand-mark b:nth-child(2) { grid-column: 1 / 3; }
.brand-mark b:nth-child(3) { grid-column: 2 / 3; }
.primary-nav { display: flex; align-items: center; gap: clamp(18px, 2vw, 40px); font-size: 1.08rem; font-weight: 900; }
.primary-nav > a { text-decoration: none; white-space: nowrap; }
.primary-nav > a:not(.nav-estimate):not(.nav-call):hover { color: var(--clay); }
.nav-estimate { min-height: 66px; display: inline-flex; align-items: center; padding: 14px 24px; border: 2px solid var(--ink); }
.nav-call { display: none; }
.menu-toggle { display: none; border: 0; background: transparent; padding: 12px; }
.menu-toggle span { width: 38px; height: 4px; display: block; margin: 6px 0; background: var(--ink); }

.breadcrumbs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 48px; color: #b9c2c6; font-size: .86rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.breadcrumbs a { color: #ffd9c4; text-decoration: none; }
.breadcrumbs b { opacity: .45; }
.detail-hero { position: relative; overflow: hidden; background: var(--ink-2); color: white; }
.detail-hero::after { content: ""; position: absolute; width: 760px; height: 760px; right: -180px; top: -400px; border: 2px solid rgba(209,119,60,.18); border-radius: 50%; box-shadow: 0 0 0 120px rgba(209,119,60,.03); pointer-events: none; }
.detail-grid { position: relative; z-index: 1; min-height: 650px; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr); gap: clamp(44px, 5vw, 84px); align-items: center; padding-block: 66px; }
.detail-copy { min-width: 0; }
.detail-copy h1 { font-size: clamp(3rem, 4.35vw, 5.25rem); overflow-wrap: normal; }
.detail-media { width: min(100%, 560px); aspect-ratio: 1 / 1; max-height: 560px; justify-self: end; overflow: hidden; border: 10px solid rgba(255,255,255,.08); box-shadow: 0 30px 80px rgba(0,0,0,.25); }
.detail-media img { width: 100%; height: 100%; object-fit: cover; }
.guide-hero .detail-grid { min-height: 680px; }
.guide-hero .detail-copy h1 { max-width: 14ch; }
.city-hero .detail-media { aspect-ratio: 1 / 1; }
.benefit-bar { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 46px; border-top: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
.benefit-bar > span { min-width: 0; padding: 22px 18px 22px 0; display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; }
.benefit-bar > span + span { border-left: 1px solid rgba(255,255,255,.2); padding-left: 18px; }
.benefit-bar b { grid-row: 1 / 3; color: #ffd9c4; }
.benefit-bar strong { font-size: 1.06rem; }
.benefit-bar small { color: #bfc9cd; line-height: 1.4; }

.hub-hero { background: white; padding: 100px 0 88px; }
.hub-hero .breadcrumbs { color: var(--muted); }
.hub-hero h1 { max-width: 15ch; color: var(--ink); }
.hub-hero > .shell > p:not(.eyebrow) { max-width: 850px; color: var(--muted); font-size: 1.35rem; }
.hub-hero .benefit-bar { max-width: 1100px; color: var(--ink); border-color: var(--line); }
.hub-hero .benefit-bar > span + span { border-color: var(--line); }
.hub-hero .benefit-bar small { color: var(--muted); }
.hub-lead-hero { position: relative; isolation: isolate; min-height: 720px; overflow: hidden; background: var(--ink); color: white; }
.hub-lead-image, .hub-lead-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hub-lead-image { z-index: -2; object-fit: cover; object-position: center; }
.hub-lead-shade { z-index: -1; background: linear-gradient(90deg, rgba(10,17,20,.94) 0%, rgba(10,17,20,.82) 48%, rgba(10,17,20,.48) 100%); }
.hub-lead-grid { min-height: 720px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(420px, .75fr); gap: clamp(48px, 6vw, 100px); align-items: center; padding-block: 62px; }
.hub-lead-copy { min-width: 0; }
.hub-lead-copy .breadcrumbs { margin-bottom: 34px; }
.hub-lead-copy h1 { max-width: 18ch; color: white; font-size: clamp(2.8rem, 3.6vw, 4.4rem); }
.hub-lead-copy .lead { max-width: 39rem; color: #e0e5e7; }
.hub-form-card { grid-area: auto; width: min(100%, 520px); justify-self: end; }
.hub-seo-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(54px, 7vw, 110px); align-items: start; }
.hub-seo-grid > div:last-child { display: grid; gap: 34px; }
.hub-seo-grid h2 { max-width: 13ch; }
.hub-seo-grid h3 { margin-bottom: 10px; font-size: 1.55rem; }
.hub-seo-grid p { max-width: 760px; color: var(--muted); font-size: 1.08rem; }
.section { padding: clamp(80px, 8vw, 140px) 0; background: white; }
.section-warm { background: var(--warm); }
.section-dark { background: var(--ink); color: white; }
.section-dark h1, .section-dark h2, .section-dark h3 { color: white; }
.section-heading { display: flex; flex-direction: column; margin-bottom: 56px; }
.section-heading.inline { display: grid; grid-template-columns: 1.3fr .7fr; gap: 60px; align-items: end; }
.section-heading.inline > p { color: var(--muted); font-size: 1.2rem; }
.section-heading.on-dark > p:last-child { color: #cbd3d6; font-size: 1.2rem; }
.prose-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(380px, .85fr); gap: clamp(60px, 8vw, 140px); align-items: start; }
.prose-grid p { max-width: 760px; color: var(--muted); font-size: 1.18rem; }
.prose-grid h2 { max-width: 15ch; }
.number-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.number-list li { display: grid; grid-template-columns: 54px 1fr; gap: 18px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.number-list b { color: var(--clay); }
.number-list span { display: grid; gap: 4px; }
.number-list strong { font-size: 1.1rem; }
.number-list small { color: var(--muted); font-size: 1rem; }
.process-grid { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.process-grid article { min-height: 330px; padding: 30px 26px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.process-grid span, .layer-grid span, .observation-grid span { color: var(--clay); font-weight: 900; }
.process-grid h3, .process-grid h2 { margin: 60px 0 18px; font-size: 1.45rem; }
.process-grid p { color: var(--muted); font-size: 1rem; }
.process-grid.large { grid-template-columns: repeat(5, 1fr); }
.process-grid.large h2 { max-width: none; }
.split-callout { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(48px, 7vw, 120px); align-items: center; }
.split-callout.reverse > div:first-child { order: 2; }
.split-callout img { width: 100%; aspect-ratio: 4 / 3; max-height: 500px; object-fit: cover; }
.split-callout p { color: var(--muted); font-size: 1.15rem; }
.section-dark .split-callout p,
.section-dark .prose-grid p { color: #e0e6e8; }
.section-dark .text-link { color: #ffd9c4; }
.check-list { margin: 28px 0 0; padding: 0; list-style: none; }
.check-list li { position: relative; margin: 14px 0; padding: 13px 0 13px 44px; border-bottom: 1px solid var(--line); font-weight: 800; }
.check-list li::before { content: "✓"; position: absolute; left: 0; top: 11px; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--green); color: white; }
.check-list.danger li::before { content: "!"; background: var(--clay); }
.check-list.on-dark li { border-color: rgba(255,255,255,.16); }
.faq-list { border-top: 1px solid rgba(255,255,255,.2); }
.faq-list details { border-bottom: 1px solid rgba(255,255,255,.2); }
.faq-list summary { position: relative; padding: 26px 64px 26px 0; cursor: pointer; list-style: none; font-size: 1.35rem; font-weight: 900; }
.faq-list summary::after { content: "+"; position: absolute; right: 10px; top: 19px; color: #ffd9c4; font-size: 2rem; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list p { max-width: 840px; color: #c7d0d3; font-size: 1.08rem; }
.link-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.link-grid a { min-height: 330px; padding: 34px; display: flex; flex-direction: column; align-items: flex-start; text-decoration: none; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.link-grid span { color: var(--clay); font-weight: 900; text-transform: uppercase; letter-spacing: .1em; font-size: .8rem; }
.link-grid strong { margin-top: 55px; font-size: 1.6rem; line-height: 1.15; }
.link-grid p { color: var(--muted); }
.link-grid b { margin-top: auto; color: var(--clay); }

.observation-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.observation-grid article { min-height: 230px; padding: 25px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.observation-grid h3 { margin: 34px 0 12px; font-size: 1.3rem; }
.observation-grid p { font-size: .98rem; }
.decision-strip { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
.layer-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.layer-grid article { min-height: 300px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.layer-grid h3 { margin-top: 60px; }
.layer-grid p { color: var(--muted); }
.photo-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.photo-compare figure { margin: 0; background: white; }
.photo-compare img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.photo-compare figcaption { min-height: 170px; display: grid; gap: 8px; padding: 25px; }
.photo-compare figcaption strong { font-size: 1.5rem; }
.photo-compare figcaption span { color: var(--muted); }
.source-box { display: grid; grid-template-columns: .75fr 1.25fr; gap: 80px; }
.source-box > div:last-child { display: grid; align-content: start; gap: 16px; }
.source-box a { padding: 18px 0; border-bottom: 1px solid var(--line); color: var(--clay); font-weight: 900; }
.source-box p { color: var(--muted); }
.source-date { font-size: .95rem; }

.city-intro { display: grid; grid-template-columns: 1fr minmax(520px, .85fr); gap: clamp(60px, 8vw, 140px); align-items: start; }
.city-intro > div:first-child p { max-width: 720px; color: var(--muted); font-size: 1.15rem; }
.estimate-card { background: white; color: var(--ink); padding: clamp(28px, 4vw, 54px); border-top: 8px solid var(--clay); box-shadow: 0 25px 70px rgba(24,33,38,.12); }
.form-head { margin-bottom: 30px; }
.form-head h2 { max-width: 15ch; font-size: 2.5rem; }
.form-head p:not(.eyebrow) { color: var(--muted); }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.field-grid label { display: grid; gap: 8px; font-weight: 650; }
.field-grid label > span { font-size: 1rem; line-height: 1.35; }
.field-grid .wide { grid-column: 1 / -1; }
.field-grid input, .field-grid select, .field-grid textarea { width: 100%; min-height: 62px; padding: 14px 16px; border: 1px solid #c8bfae; border-radius: 0; background: #fffdfa; color: var(--ink); font: inherit; }
.field-grid textarea { min-height: 130px; resize: vertical; }
.upload { min-height: 118px; grid-template-columns: auto 1fr; align-items: center; padding: 20px; border: 2px dashed #b7a98f; cursor: pointer; }
.upload input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.upload > span { display: grid; }
.upload small { color: var(--muted); }
.upload-icon { width: 48px; height: 48px; display: grid !important; place-items: center; border-radius: 50%; background: var(--clay); color: white; font-size: 1.6rem; }
.consent { grid-template-columns: auto 1fr; align-items: center; font-weight: 400 !important; }
.consent input { width: 24px; min-height: 24px; }
.form-submit { width: 100%; margin-top: 26px; }
.form-preview-success { padding: 44px; background: white; color: var(--ink); border-top: 8px solid var(--green); }
.success-mark { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: var(--green); color: white; font-size: 2rem; }
.service-link-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.18); border-left: 1px solid rgba(255,255,255,.18); }
.service-link-grid a { min-height: 300px; padding: 28px; display: flex; flex-direction: column; color: white; text-decoration: none; border-right: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
.service-link-grid span { color: #ffd9c4; font-weight: 900; }
.service-link-grid strong { margin-top: 45px; font-size: 1.45rem; }
.service-link-grid small { margin: 10px 0 25px; color: #bec8cc; font-size: 1rem; }
.service-link-grid b { margin-top: auto; color: #ffd9c4; }
.problem-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.problem-links a { min-height: 270px; padding: 30px; display: flex; flex-direction: column; border: 1px solid var(--line); text-decoration: none; }
.problem-links strong { font-size: 1.45rem; }
.problem-links span { margin-top: 12px; color: var(--muted); }
.problem-links b { margin-top: auto; color: var(--clay); }

.card-directory { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.directory-card { min-width: 0; display: flex; flex-direction: column; background: white; color: var(--ink); text-decoration: none; border-top: 6px solid var(--ink); }
.directory-card img { width: 100%; aspect-ratio: 16 / 10; max-height: 300px; object-fit: cover; }
.directory-card > span, .directory-card > h2, .directory-card > p, .directory-card > b { margin-left: 28px; margin-right: 28px; }
.directory-card > span { margin-top: 26px; color: var(--clay); font-size: .82rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.directory-card h2 { max-width: none; margin-top: 24px; font-size: 1.85rem; }
.directory-card p { color: var(--muted); }
.directory-card b { margin-top: auto; margin-bottom: 28px; color: var(--clay); }
.form-centered { max-width: 900px; }
.contact-grid, .request-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 80px; align-items: start; }
.contact-line { display: grid; gap: 4px; padding: 22px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.contact-line small { color: var(--clay); font-weight: 900; text-transform: uppercase; }
.contact-line strong { font-size: clamp(1.55rem, 2.4vw, 2.5rem); }
.legal-copy h2 { max-width: none; margin-top: 50px; font-size: 2rem; }
.legal-copy p { color: var(--muted); }
.error-page { min-height: 650px; }

.closing-cta { background: var(--clay); color: white; padding: 74px 0; }
.closing-cta h2,
.closing-cta p,
.closing-cta span { color: white; }
.closing-cta .eyebrow.light { color: #ffd9c4; }
.closing-grid { display: grid; grid-template-columns: 1fr auto; gap: 70px; align-items: center; }
.closing-grid h2 { max-width: 17ch; }
.closing-grid p:not(.eyebrow) { font-size: 1.15rem; }
.closing-actions { min-width: 360px; display: grid; text-align: center; }
.closing-actions span { margin-top: 14px; opacity: .8; }
.closing-phone { color: white; font-size: 1.45rem; font-weight: 900; }
.site-footer { background: #10181c; color: #aeb9bd; padding: 84px 0 30px; }
.footer-grid { display: grid; grid-template-columns: 1.6fr .7fr .8fr; gap: 80px; }
.brand-footer { color: white; margin-bottom: 24px; }
.footer-grid p { max-width: 590px; }
.footer-grid h3 { color: white; font-size: .9rem; letter-spacing: .14em; text-transform: uppercase; }
.footer-grid > div:not(:first-child) { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.footer-grid a { color: inherit; text-decoration: none; }
.footer-bottom { display: flex; justify-content: space-between; gap: 30px; margin-top: 70px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.15); font-size: .9rem; }
.footer-bottom span:last-child { display: flex; gap: 26px; }
.mobile-action-bar { display: none; }

@media (max-width: 1320px) {
  body { font-size: 17px; }
  .primary-nav { gap: 16px; font-size: 1rem; }
  .nav-estimate { padding-inline: 16px; }
  .detail-grid { grid-template-columns: 1fr 46%; }
  .benefit-bar small { display: none; }
  .process-grid { grid-template-columns: repeat(3, 1fr); }
  .card-directory { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1040px) {
  :root { --shell: min(100% - 36px, 850px); }
  body { padding-bottom: 84px; }
  .service-strip { display: none; }
  .nav-shell { min-height: 110px; }
  .brand-mark { width: 58px; height: 58px; }
  .brand small { font-size: .9rem; }
  .brand strong { font-size: 1.55rem; }
  .menu-toggle { display: block; position: relative; z-index: 102; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(10px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-10px) rotate(-45deg); }
  .primary-nav { position: fixed; inset: 0; z-index: 101; display: none; flex-direction: column; align-items: stretch; gap: 0; overflow-y: auto; padding: 130px 34px 110px; background: rgba(16,24,28,.98); color: white; }
  .primary-nav.is-open { display: flex; }
  .primary-nav > a { padding: 19px 0; border-bottom: 1px solid rgba(255,255,255,.18); font-size: 1.8rem; }
  .primary-nav .nav-estimate { display: none; }
  .primary-nav .nav-call { order: 10; margin-top: 24px; padding: 24px; display: grid; gap: 3px; background: var(--clay); border: 0; text-align: center; }
  .primary-nav .nav-call small { font-size: 1rem; text-transform: uppercase; }
  .primary-nav .nav-call strong { font-size: clamp(1.6rem, 6vw, 2.5rem); }
  .menu-open .menu-toggle span { background: white; }
  .detail-grid { grid-template-columns: 1fr; gap: 34px; min-height: auto; padding: 56px 0 72px; }
  .detail-copy { display: contents; }
  .breadcrumbs { grid-row: 1; margin-bottom: 10px; }
  .detail-copy .eyebrow { grid-row: 2; }
  .detail-copy h1 { grid-row: 3; max-width: 15ch; margin-bottom: 0; }
  .detail-media { grid-row: 4; aspect-ratio: 1 / 1; max-height: none; }
  .detail-copy .lead { grid-row: 5; }
  .detail-copy .benefit-bar { grid-row: 6; }
  .city-hero .detail-media, .guide-hero .detail-media { aspect-ratio: 1 / 1; }
  .hub-lead-hero, .hub-lead-grid { min-height: auto; }
  .hub-lead-grid { grid-template-columns: 1fr; gap: 34px; padding-block: 52px 68px; }
  .hub-lead-copy { display: contents; }
  .hub-lead-copy .breadcrumbs { grid-row: 1; margin-bottom: 0; }
  .hub-lead-copy .eyebrow { grid-row: 2; margin-bottom: 0; }
  .hub-lead-copy h1 { grid-row: 3; max-width: 15ch; margin-bottom: 0; }
  .hub-lead-copy .lead { grid-row: 4; margin-bottom: 0; }
  .hub-form-card { grid-row: 5; width: 100%; max-width: 680px; justify-self: start; }
  .hub-lead-copy .benefit-bar { grid-row: 6; margin-top: 0; }
  .hub-seo-grid { grid-template-columns: 1fr; gap: 30px; }
  .benefit-bar { grid-template-columns: 1fr; }
  .benefit-bar > span + span { border-left: 0; border-top: 1px solid rgba(255,255,255,.2); padding-left: 0; }
  .benefit-bar small { display: block; }
  .prose-grid, .split-callout, .decision-strip, .source-box, .city-intro, .contact-grid, .request-layout { grid-template-columns: 1fr; }
  .city-intro .estimate-card { grid-row: 1; }
  .city-intro > div:first-child { grid-row: 2; }
  .request-layout .estimate-card, .contact-grid .estimate-card { grid-row: 1; }
  .request-layout > div:first-child, .contact-grid > div:first-child { grid-row: 2; }
  .split-callout.reverse > div:first-child { order: 0; }
  .process-grid, .process-grid.large { grid-template-columns: repeat(2, 1fr); }
  .layer-grid { grid-template-columns: repeat(2, 1fr); }
  .service-link-grid { grid-template-columns: repeat(2, 1fr); }
  .problem-links { grid-template-columns: repeat(2, 1fr); }
  .closing-grid { grid-template-columns: 1fr; }
  .closing-actions { min-width: 0; max-width: 480px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
  .mobile-action-bar { position: fixed; z-index: 150; left: 0; right: 0; bottom: 0; min-height: 84px; display: grid; grid-template-columns: 1fr 1fr; box-shadow: 0 -6px 24px rgba(0,0,0,.18); }
  .mobile-action-bar a { display: grid; place-content: center; text-align: center; text-decoration: none; background: var(--ink); color: white; }
  .mobile-action-bar a:last-child { background: var(--clay); }
  .mobile-action-bar small { text-transform: uppercase; opacity: 1; }
  .mobile-action-bar strong { font-size: 1.18rem; }
}

@media (max-width: 680px) {
  :root { --shell: calc(100% - 30px); }
  body { font-size: 16px; }
  h1, .detail-copy h1 { font-size: clamp(2.55rem, 12vw, 4.1rem); line-height: 1.02; }
  h2 { font-size: clamp(2.05rem, 9vw, 3.1rem); }
  .nav-shell { min-height: 98px; }
  .brand { gap: 12px; }
  .brand-mark { width: 50px; height: 50px; gap: 4px; padding: 5px; }
  .brand small { font-size: .72rem; }
  .brand strong { font-size: 1.25rem; }
  .breadcrumbs { font-size: .73rem; gap: 7px; }
  .eyebrow { font-size: .78rem; }
  .eyebrow::before { width: 28px; margin-right: 10px; }
  .detail-grid { padding-top: 42px; }
  .detail-media { border-width: 6px; }
  .lead { font-size: 1.12rem; }
  .section { padding: 72px 0; }
  .hub-lead-copy h1 { font-size: clamp(2.25rem, 9vw, 3.15rem); }
  .hub-lead-copy .benefit-bar { margin-top: 26px; }
  .hub-form-card { padding: 24px 20px; }
  .hub-hero { padding: 62px 0; }
  .hub-hero .benefit-bar { margin-top: 32px; }
  .section-heading.inline { grid-template-columns: 1fr; gap: 4px; }
  .process-grid, .process-grid.large, .layer-grid, .observation-grid, .service-link-grid, .problem-links, .link-grid, .card-directory { grid-template-columns: 1fr; }
  .process-grid article { min-height: 250px; }
  .split-callout img, .photo-compare img, .directory-card img { aspect-ratio: 1 / 1; max-height: none; }
  .photo-compare { grid-template-columns: 1fr; }
  .photo-compare figcaption { min-height: 0; }
  .field-grid { grid-template-columns: 1fr; }
  .field-grid .wide { grid-column: auto; }
  .estimate-card { padding: 26px 20px; }
  .form-head h2 { font-size: 2.15rem; }
  .service-link-grid a, .problem-links a, .link-grid a { min-height: 245px; }
  .card-directory { gap: 18px; }
  .directory-card h2 { font-size: 1.65rem; margin-top: 28px; }
  .directory-card > span, .directory-card > h2, .directory-card > p, .directory-card > b { margin-left: 20px; margin-right: 20px; }
  .footer-grid { grid-template-columns: 1fr; gap: 44px; }
  .footer-grid > div:first-child { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
  .mobile-action-bar { grid-template-columns: 1.05fr .95fr; }
  .mobile-action-bar strong { font-size: .99rem; }
}

/* Deep SEO page system — readable cards, square evidence and compact narrative rhythm */
.light-outline { color: #fff; border-color: rgba(255,255,255,.65); }
.lede-answer { color: var(--ink) !important; font-size: 1.28rem !important; line-height: 1.65; }
.editorial-figure { margin: 0; overflow: hidden; background: #fff; box-shadow: 0 18px 52px rgba(24,33,38,.14); }
.editorial-figure img { width: 100%; aspect-ratio: 1 / 1; height: auto; object-fit: cover; }
.editorial-figure figcaption { padding: 15px 18px; color: var(--muted); background: #fff; font-size: .9rem; line-height: 1.5; }
.detail-media.editorial-figure { aspect-ratio: auto; max-height: none; overflow: hidden; border: 8px solid rgba(255,255,255,.09); }
.detail-media.editorial-figure img { height: auto; aspect-ratio: 1 / 1; }
.detail-media.editorial-figure figcaption { color: #dce2e4; background: rgba(16,24,28,.96); }
.local-context-figure { max-width: 590px; justify-self: end; }
.scope-note { padding: 30px; border-top: 6px solid var(--orange); background: var(--paper); box-shadow: 0 16px 40px rgba(24,33,38,.08); }
.scope-note strong { display: block; margin-bottom: 10px; font-size: 1.3rem; }
.scope-note p { font-size: 1rem !important; }
.compare-method-grid, .fit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.compare-method-grid.stacked { grid-template-columns: 1fr; }
.compare-method-grid article, .fit-grid article { padding: clamp(26px,4vw,42px); background: #fff; border-top: 7px solid var(--green); box-shadow: 0 14px 38px rgba(24,33,38,.08); }
.compare-method-grid .method-wrong, .fit-grid article:last-child { border-color: var(--clay); }
.compare-method-grid article > span { display: inline-flex; margin-bottom: 30px; color: var(--green); font-size: .88rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.compare-method-grid .method-wrong > span { color: var(--clay); }
.compare-method-grid h3, .fit-grid h3 { font-size: 1.65rem; }
.compare-method-grid p, .fit-grid p { color: var(--muted); }
.check-list li { font-weight: 650; }
.check-list li::before { background: #14805b; }
.check-list.danger li::before { background: #c3452f; }
.evidence-sequence { display: grid; grid-template-columns: 1.15fr .85fr .85fr; border: 1px solid var(--line); background: #fff; }
.evidence-sequence > * { min-width: 0; margin: 0; padding: 30px; border-right: 1px solid var(--line); }
.evidence-sequence > *:last-child { border-right: 0; }
.evidence-sequence figure { padding: 0; }
.evidence-sequence figure img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.evidence-sequence figcaption { display: grid; gap: 7px; padding: 22px; }
.evidence-sequence article > span, .evidence-sequence figcaption b { color: var(--clay); font-weight: 850; }
.evidence-sequence article h3 { margin-top: 70px; }
.annotated-photo { display: grid; gap: 20px; }
.annotated-photo figure { margin: 0; }
.annotated-photo figure img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.annotated-photo figcaption { padding: 14px 0; color: #bfc9cd; font-size: .88rem; }
.annotated-photo ol { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.annotated-photo li { display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 12px; color: #d6dddf; }
.annotated-photo li b { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; background: var(--orange); color: #fff; }
.cause-grid { display: grid; grid-template-columns: repeat(5,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.cause-grid article { min-height: 300px; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.cause-grid span { color: var(--clay); font-weight: 850; }
.cause-grid h3 { margin-top: 54px; font-size: 1.35rem; }
.cause-grid p { color: var(--muted); font-size: .96rem; }
.decision-table { display: grid; overflow: visible; border: 1px solid var(--line); background: #fff; box-shadow: none; }
.decision-table > div { display: grid; grid-template-columns: .8fr 1.15fr 1.25fr; }
.decision-table > div > * { min-width: 0; padding: 20px 22px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.decision-table > div > *:last-child { border-right: 0; }
.decision-table > div:last-child > * { border-bottom: 0; }
.decision-table > div:first-child { color: #fff; background: var(--ink); font-size: .83rem; letter-spacing: .06em; text-transform: uppercase; }
.decision-table span { color: var(--muted); line-height: 1.55; }
.decision-table span a { color: var(--clay); font-weight: 800; }
.decision-table span strong, .decision-table span small { display: block; }
.decision-table span strong { color: var(--ink); margin-bottom: 5px; }
.decision-table.on-dark { border-color: rgba(255,255,255,.2); background: transparent; }
.decision-table.on-dark > div > * { border-color: rgba(255,255,255,.18); }
.decision-table.on-dark > div:first-child { background: rgba(255,255,255,.08); }
.decision-table.on-dark span, .decision-table.on-dark span strong { color: #d3dbde; }
.problem-photo-grid, .service-photo-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.problem-photo-grid > a, .service-photo-grid > a { min-width: 0; display: flex; flex-direction: column; padding-bottom: 28px; color: var(--ink); background: #fff; border-top: 6px solid var(--ink); text-decoration: none; box-shadow: 0 12px 34px rgba(24,33,38,.08); }
.problem-photo-grid figure, .service-photo-grid figure { position: relative; margin: 0; overflow: hidden; }
.problem-photo-grid img, .service-photo-grid img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; transition: transform .25s ease; }
.problem-photo-grid a:hover img, .service-photo-grid a:hover img { transform: scale(1.025); }
.problem-photo-grid figcaption { position: absolute; right: 12px; bottom: 12px; padding: 6px 9px; color: #fff; background: rgba(16,24,28,.88); font-size: .75rem; }
.problem-photo-grid a > span, .problem-photo-grid a > h3, .problem-photo-grid a > p, .problem-photo-grid a > b, .service-photo-grid a > span, .service-photo-grid a > h3, .service-photo-grid a > p, .service-photo-grid a > b { margin-right: 25px; margin-left: 25px; }
.problem-photo-grid a > span, .service-photo-grid a > span { margin-top: 24px; color: var(--clay); font-size: .8rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.problem-photo-grid h3, .service-photo-grid h3 { margin-top: 20px; margin-bottom: 12px; font-size: 1.5rem; line-height: 1.15; }
.problem-photo-grid p, .service-photo-grid p { color: var(--muted); font-size: 1rem; }
.problem-photo-grid b, .service-photo-grid b { margin-top: auto; color: var(--clay); }
.city-lead-hero .hub-lead-image { object-position: center; }
.estimate-form label, .field-grid label > span { font-size: 1.04rem; font-weight: 700; }
.estimate-form input, .estimate-form select { font-size: 1.05rem; }

@media (max-width: 1180px) {
  .cause-grid { grid-template-columns: repeat(3,1fr); }
  .problem-photo-grid, .service-photo-grid { grid-template-columns: repeat(2,1fr); }
  .evidence-sequence { grid-template-columns: 1fr 1fr; }
  .evidence-sequence figure { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
  .detail-copy h1, .hub-lead-copy h1 { max-width: none; font-size: clamp(2.35rem,10vw,3.25rem); line-height: 1.05; overflow-wrap: anywhere; }
  .detail-media.editorial-figure { width: 100%; justify-self: stretch; }
  .compare-method-grid, .fit-grid, .evidence-sequence, .cause-grid, .problem-photo-grid, .service-photo-grid { grid-template-columns: 1fr; }
  .evidence-sequence figure { grid-column: auto; }
  .evidence-sequence > * { border-right: 0; border-bottom: 1px solid var(--line); }
  .evidence-sequence > *:last-child { border-bottom: 0; }
  .evidence-sequence article h3 { margin-top: 30px; }
  .decision-table { display: block; border: 0; background: transparent; }
  .decision-table > div { display: block; margin-bottom: 14px; border: 1px solid var(--line); background: #fff; }
  .decision-table > div:first-child { display: none; }
  .decision-table > div > * { display: block; padding: 14px 16px; border-right: 0; border-bottom: 1px solid var(--line); }
  .decision-table > div > *:first-child { color: var(--ink); background: var(--warm); font-weight: 800; }
  .decision-table.on-dark > div { background: rgba(255,255,255,.05); }
  .decision-table.on-dark > div > *:first-child { color: #fff; background: rgba(255,255,255,.1); }
  .problem-photo-grid h3, .service-photo-grid h3 { font-size: 1.42rem; }
  .local-context-figure { justify-self: stretch; }
}

.specific-guide-grid, .local-question-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.specific-guide-grid > article, .local-question-grid > article { min-width: 0; padding: clamp(26px,3vw,40px); border-top: 6px solid var(--ink); background: #fff; box-shadow: 0 12px 34px rgba(24,33,38,.08); }
.specific-guide-grid h3, .local-question-grid h3 { max-width: none; font-size: 1.5rem; line-height: 1.18; }
.specific-guide-grid article > div { display: grid; grid-template-columns: 40px 1fr; gap: 12px; padding: 18px 0; border-top: 1px solid var(--line); }
.specific-guide-grid span, .local-question-grid span { color: var(--clay); font-weight: 850; }
.specific-guide-grid p { margin: 0; color: var(--muted); font-size: .98rem; }
.specific-guide-grid p strong { display: block; margin-bottom: 5px; color: var(--ink); }
.local-question-grid { grid-template-columns: repeat(3,1fr); }
.local-question-grid > article { display: flex; min-height: 360px; flex-direction: column; }
.local-question-grid h3 { margin-top: 38px; }
.local-question-grid p { color: var(--muted); font-size: .98rem; }
.local-question-grid a { margin-top: auto; color: var(--clay); font-weight: 800; }
@media (max-width: 1040px) { .local-question-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 680px) { .specific-guide-grid, .local-question-grid { grid-template-columns: 1fr; } .local-question-grid > article { min-height: 0; } }
