:root {
  --ink: #1d2925;
  --ink-soft: #405049;
  --sage: #9bae9e;
  --sage-deep: #566b5b;
  --sage-pale: #e5ebe3;
  --clay: #c96e5b;
  --clay-deep: #ad5848;
  --cream: #f8f3eb;
  --paper: #fffdf9;
  --line: #d6d6cb;
  --white: #fff;
  --sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Touch-friendly menus and responsive photography. */
.nav-dropdown { position:relative; }
.nav-dropdown summary { cursor:pointer; padding:14px 4px; font-weight:750; font-size:.9rem; }
.dropdown-links { position:absolute; top:100%; right:0; width:310px; padding:10px; background:var(--paper); border:1px solid var(--line); box-shadow:0 12px 28px #1d29251a; border-radius:12px; z-index:5; }
.dropdown-links a { display:block; padding:13px; text-decoration:none; line-height:1.4; border-radius:7px; }
.dropdown-links a:hover { background:var(--sage-pale); }
.site-photo { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.hero-photo,.service-hero-photo { overflow:hidden; border-radius:18px; }
.hero-photo .site-photo,.service-hero-photo .site-photo { aspect-ratio:4/5; }
.photo-story { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.photo-story img { border-radius:12px; }
.feature-service>.site-photo { border-radius:10px; margin-bottom:26px; }
.general-invite { padding:24px; background:var(--sage-pale); border-radius:12px; }
.general-invite a { font-weight:750; text-underline-offset:4px; }
.contact-pill { position:fixed; bottom:calc(14px + env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); display:flex; width:max-content; max-width:calc(100% - 24px); border-radius:999px; background:var(--ink); box-shadow:0 5px 22px #0003; z-index:9; }
.contact-choice { position:relative; }
.contact-choice summary,.pill-quote { display:flex; align-items:center; min-height:54px; padding:12px 22px; font-weight:800; font-size:.9rem; cursor:pointer; white-space:nowrap; }
.contact-choice summary { color:white; list-style:none; }
.contact-choice summary::-webkit-details-marker { display:none; }
.pill-quote { background:var(--clay); border-radius:0 999px 999px 0; text-decoration:none; }
.contact-options { position:absolute; bottom:calc(100% + 12px); left:0; width:245px; padding:16px; border:1px solid var(--line); background:var(--paper); border-radius:16px; box-shadow:0 6px 22px #0002; }
.contact-options p { margin:0 0 8px; font-weight:800; }
.contact-options a { display:block; padding:12px; margin-top:6px; background:var(--sage-pale); border-radius:8px; text-decoration:none; font-weight:750; }
body { padding-bottom:90px; }
html { scroll-padding-top:96px; }
:focus-visible { outline:3px solid var(--clay-deep); outline-offset:4px; }
@media(max-width:850px) {
 .photo-story { grid-template-columns:1fr; }
 .hero-photo .site-photo,.service-hero-photo .site-photo { aspect-ratio:3/2; }
}
@media(max-width:650px) {
 .dropdown-links { position:static; width:100%; box-shadow:none; }
 .nav-dropdown summary { min-height:48px; padding:12px 0; }
 .contact-choice summary,.pill-quote { padding:12px 19px; }
 .site-nav { max-height:calc(100dvh - 165px); overflow:auto; }
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font: 16px/1.6 var(--sans); }
a { color: inherit; }
.container { width: min(1140px, calc(100% - 48px)); margin-inline: auto; }
.skip-link { position: absolute; left: -999px; top: 10px; background: var(--ink); color: var(--white); padding: 8px 12px; z-index: 4; }
.skip-link:focus { left: 10px; }

.site-header { position: sticky; top: 0; z-index: 3; background: rgba(248, 243, 235, .94); border-bottom: 1px solid rgba(29, 41, 37, .1); backdrop-filter: blur(12px); }
.nav-wrap { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 26px; }
.brand { display: inline-flex; align-items: center; text-decoration: none; }
.brand-logo { display: block; width: 170px; height: auto; }
.site-nav { display: flex; align-items: center; gap: 27px; }
.site-nav > a:not(.button) { color: var(--ink-soft); text-decoration: none; font-size: .86rem; font-weight: 700; letter-spacing: .01em; }
.site-nav > a:not(.button):hover { color: var(--clay-deep); }
.menu-toggle { display: none; background: none; border: 0; padding: 8px; }
.menu-toggle span:not(.sr-only) { width: 23px; height: 2px; display: block; background: var(--ink); margin: 4px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }

.button { display: inline-block; border: 0; border-radius: 999px; background: var(--clay); color: var(--ink); padding: 13px 21px; font: 800 .86rem var(--sans); letter-spacing: .015em; text-decoration: none; cursor: pointer; transition: background .2s, transform .2s; }
.button:hover { background: var(--clay-deep); color: var(--white); transform: translateY(-1px); }
.button-small { padding: 10px 16px; }
.text-link, .contact-line a { color: var(--sage-deep); font-weight: 800; text-decoration-color: rgba(86, 107, 91, .35); text-underline-offset: 4px; }

.hero { position: relative; overflow: hidden; padding: 102px 0 90px; background: linear-gradient(112deg, var(--cream) 0%, var(--cream) 58%, #e1e9df 58%, #e1e9df 100%); }
.hero::after { content: ""; position: absolute; width: 520px; height: 520px; right: -180px; top: -250px; border: 1px solid rgba(86, 107, 91, .22); border-radius: 50%; box-shadow: 0 0 0 42px rgba(86, 107, 91, .06), 0 0 0 84px rgba(86, 107, 91, .035); }
.hero-grid, .quote-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(44px, 7vw, 96px); align-items: center; }
.eyebrow { margin: 0 0 15px; color: var(--sage-deep); text-transform: uppercase; letter-spacing: .14em; font-size: .71rem; font-weight: 850; }
.hero h1, .section h2 { margin: 0; max-width: 770px; font-size: clamp(2.65rem, 5.1vw, 4.85rem); line-height: 1.02; letter-spacing: -.065em; font-weight: 780; }
.hero-text { max-width: 560px; margin: 26px 0 31px; color: var(--ink-soft); font-size: 1.1rem; }
.service-inline-link { color: var(--sage-deep); font-weight: 850; text-decoration: none; border-bottom: 2px solid var(--clay); transition: color .2s, border-color .2s; }
.service-inline-link:hover { color: var(--clay-deep); border-color: var(--sage); }
.hero-actions { display: flex; align-items: center; gap: 25px; flex-wrap: wrap; }
.trust-list { display: flex; gap: 18px; flex-wrap: wrap; padding: 0; margin: 41px 0 0; list-style: none; color: var(--ink-soft); font-size: .84rem; font-weight: 650; }
.trust-list li::before { content: "•"; color: var(--clay); font-size: 1.1rem; margin-right: 7px; }
.hero-card { padding: 22px; background: var(--paper); border: 1px solid rgba(86, 107, 91, .26); box-shadow: 16px 16px 0 var(--sage); }
.logo-stage { display: grid; min-height: 235px; place-items: center; padding: 19px; background: var(--sage-pale); }
.logo-stage img { width: min(100%, 330px); height: auto; display: block; }
.hero-card .card-label { margin: 24px 0 6px; color: var(--clay-deep); text-transform: uppercase; font-size: .69rem; font-weight: 850; letter-spacing: .13em; }
.hero-card p:not(.card-label) { margin: 0 0 16px; color: var(--ink-soft); font-size: .91rem; }
.hero-card a { color: var(--sage-deep); font-size: .87rem; font-weight: 850; text-decoration: none; }

.section { padding: 108px 0; }
.section-heading { max-width: 670px; margin-bottom: 48px; }
.section-heading h2, .split-layout h2, .area-content h2, .quote-grid h2 { font-size: clamp(2.2rem, 4vw, 3.55rem); }
.section-heading > p:last-child { margin: 17px 0 0; color: var(--ink-soft); }
.service-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.service-card { min-height: 258px; padding: 27px 23px; background: var(--paper); border: 1px solid var(--line); border-top: 5px solid var(--sage); transition: transform .2s, box-shadow .2s; }
.service-card:nth-child(even) { border-top-color: var(--clay); }
.service-card:hover { transform: translateY(-4px); box-shadow: 0 11px 22px rgba(29, 41, 37, .08); }
.service-number { color: var(--sage-deep); font-size: .72rem; font-weight: 850; letter-spacing: .1em; }
.service-card h3 { margin: 31px 0 8px; font-size: 1.25rem; letter-spacing: -.035em; }
.service-card p, .benefit-list p, .area-content > p, .quote-grid > div > p { margin: 0; color: var(--ink-soft); font-size: .93rem; }

.section-tint { background: var(--sage-pale); }
.split-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(50px, 9vw, 130px); }
.benefit-list { border-top: 1px solid rgba(86, 107, 91, .36); }
.benefit-list > div { padding: 23px 0; border-bottom: 1px solid rgba(86, 107, 91, .36); }
.benefit-list h3 { margin: 0 0 5px; font-size: 1.1rem; letter-spacing: -.02em; }

.results-section { background: var(--paper); }
.results-heading { margin-bottom: 42px; }
.results-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; }
.result-pair { display: grid; grid-column: span 3; grid-template-columns: 1fr 1fr; gap: 3px; background: var(--ink); }
.result-image { position: relative; min-height: 285px; overflow: hidden; background: var(--sage-pale); }
.result-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.result-image span { position: absolute; top: 12px; left: 12px; padding: 5px 9px; color: var(--ink); background: var(--cream); font-size: .66rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.result-caption { grid-column: span 2; padding: 20px 21px; background: var(--ink); color: var(--white); }
.result-caption h3 { margin: 0 0 4px; font-size: 1.06rem; }
.result-caption p { margin: 0; color: #d7e1d8; font-size: .86rem; }
.result-card { grid-column: span 2; overflow: hidden; background: var(--cream); border: 1px solid var(--line); }
.result-card img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.result-card > div { padding: 16px 17px 18px; }
.result-label { margin: 0 0 4px; color: var(--clay-deep); font-size: .66rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.result-card h3 { margin: 0; font-size: 1.06rem; letter-spacing: -.02em; }

.area-section { position: relative; overflow: hidden; background: var(--sage-deep); color: var(--white); text-align: center; }
.area-section::before { content: ""; position: absolute; width: 580px; height: 580px; left: -290px; top: -340px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; }
.area-content { position: relative; max-width: 800px; }
.area-content .eyebrow { color: #f7d0c6; }
.area-content h2 { margin-inline: auto; }
.area-content > p { max-width: 560px; margin: 17px auto 28px; color: #edf2eb; }
.area-list { display: flex; justify-content: center; flex-wrap: wrap; gap: 9px; padding: 0; margin: 0; list-style: none; }
.area-list li { padding: 7px 13px; border: 1px solid rgba(255,255,255,.38); font-size: .84rem; }

.quote-section { background: linear-gradient(90deg, var(--cream) 0 50%, var(--sage-pale) 50%); }
.quote-grid { align-items: start; }
.quote-grid h2 { margin-bottom: 16px; }
.contact-line { margin-top: 26px !important; line-height: 1.95; }
.quote-form { display: grid; gap: 15px; padding: 31px; background: var(--paper); border: 1px solid rgba(86, 107, 91, .35); box-shadow: 10px 10px 0 rgba(201, 110, 91, .35); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.quote-form label { display: grid; gap: 6px; font-size: .83rem; font-weight: 800; }
.quote-form input, .quote-form textarea { border: 1px solid #bcc6bb; background: var(--white); border-radius: 0; padding: 10px; color: var(--ink); font: 16px var(--sans); }
.quote-form input:focus, .quote-form textarea:focus { outline: 2px solid var(--clay); border-color: var(--clay); }
.quote-form .button { justify-self: start; margin-top: 3px; }
.form-note { margin: 0; color: var(--ink-soft); font-size: .75rem; }
.form-trap { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.form-status { min-height: 1.2em; margin: 0; color: #9b392a; font-size: .86rem; font-weight: 700; }
.form-status.is-success { color: #386344; }
.site-footer { padding: 30px 0; background: var(--ink); color: #dce5dc; }
.site-footer .brand-logo { width: 160px; filter: brightness(0) invert(1); }
.footer-content { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.site-footer p { margin: 0; font-size: .78rem; }
.mobile-cta { display: none; }
@media (prefers-reduced-motion:no-preference) {
 .sweep-in { animation:gentle-reveal .55s ease-out both; }
 @keyframes gentle-reveal { from { opacity:.45; transform:translateY(14px); } to { opacity:1; transform:none; } }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }

@media (prefers-reduced-motion: no-preference) {
  .js .clean-reveal { position: relative; isolation: isolate; overflow: hidden; opacity: 0; transform: translateY(22px); transition: opacity .48s ease, transform .58s cubic-bezier(.2,.7,.2,1); }
  .js .clean-reveal::after { content: ""; position: absolute; z-index: 2; inset: -2px; pointer-events: none; background: linear-gradient(100deg, var(--sage-pale), #f9f7f0 48%, rgba(249,247,240,.4)); transform: translateX(-103%); }
  .js .clean-reveal.is-visible { opacity: 1; transform: translateY(0); }
  .js .clean-reveal.is-visible::after { animation: clean-sweep .8s cubic-bezier(.25,.7,.25,1) both; animation-delay: var(--clean-delay, 0ms); }
  @keyframes clean-sweep { to { transform: translateX(103%); } }
}

@media (max-width: 850px) {
  .hero { padding: 74px 0; background: var(--cream); }
  .hero-grid, .quote-grid, .split-layout { grid-template-columns: 1fr; gap: 48px; }
  .hero-card { max-width: 520px; }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .results-grid { grid-template-columns: repeat(2, 1fr); }
  .result-pair { grid-column: span 1; grid-template-columns: 1fr; }
  .result-image { min-height: 250px; }
  .result-caption { grid-column: span 1; }
  .result-card { grid-column: span 1; }
  .section { padding: 78px 0; }
  .quote-section { background: linear-gradient(var(--cream) 0 47%, var(--sage-pale) 47%); }
}
@media (max-width: 650px) {
  .container { width: min(100% - 32px, 1140px); }
  .nav-wrap { min-height: 72px; }
  .brand-logo { width: 145px; }
  .menu-toggle { display: block; }
  .site-nav { position: absolute; top: 72px; left: 0; right: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 8px 16px 20px; background: var(--cream); border-bottom: 1px solid var(--line); }
  .site-nav.is-open { display: flex; }
  .site-nav > a:not(.button) { padding: 12px 0; }
  .site-nav .button { margin-top: 8px; text-align: center; }
  .hero h1 { font-size: 2.72rem; }
  .hero { padding:40px 0; }
  .hero .trust-list { display:none; }
  .hero-actions { gap: 18px; }
  .service-grid, .form-row, .results-grid { grid-template-columns: 1fr; }
  .footer-content { flex-direction: column; align-items: flex-start; }
  .hero-card { box-shadow: 9px 9px 0 var(--sage); }
  .logo-stage { min-height: 205px; }
  .quote-section { background: linear-gradient(var(--cream) 0 42%, var(--sage-pale) 42%); }
}

@media (max-width: 800px) {
  body { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  .mobile-cta { position: fixed; right: 0; bottom: 0; left: 0; z-index: 9; display: grid; grid-template-columns: 1fr 1.12fr; gap: 8px; padding: 9px 12px calc(9px + env(safe-area-inset-bottom)); background: rgba(29, 41, 37, .96); box-shadow: 0 -5px 20px rgba(29, 41, 37, .2); backdrop-filter: blur(10px); }
  .mobile-cta a { display: flex; align-items: center; justify-content: center; min-height: 48px; border-radius: 999px; font-size: .88rem; font-weight: 850; letter-spacing: .01em; text-decoration: none; }
  .mobile-call { border: 1px solid rgba(255,255,255,.45); color: var(--white); }
  .mobile-quote { background: var(--clay); color: var(--ink); }
  .mobile-quote:active, .mobile-call:active { transform: scale(.98); }
}

/* Service and service-area pages */
.page-hero { padding: 96px 0 86px; background: linear-gradient(120deg, var(--cream) 0 64%, var(--sage-pale) 64%); }
.page-hero-grid { display: grid; grid-template-columns: 1.18fr .82fr; gap: 70px; align-items: center; }
.crumbs { margin: 0 0 22px; color: var(--ink-soft); font-size: .82rem; }
.crumbs a { color: var(--sage-deep); text-underline-offset: 3px; }
.page-hero h1 { max-width: 800px; margin: 0; font-size: clamp(2.65rem, 5vw, 4.7rem); line-height: 1.02; letter-spacing: -.065em; }
.page-logo-card { display: grid; place-items: center; min-height: 260px; padding: 28px; background: var(--paper); border: 1px solid rgba(86, 107, 91, .3); box-shadow: 14px 14px 0 var(--clay); }
.page-logo-card img { display: block; max-width: min(100%, 350px); height: auto; }
.location-hero { padding: 76px 0; background: linear-gradient(120deg, var(--sage-pale), var(--cream)); }
.location-hero .hero-text { max-width: 680px; }
.section-lede { max-width: 590px; color: var(--ink-soft); font-size: 1.05rem; }
.detail-grid, .location-content, .directory-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(44px, 8vw, 115px); align-items: start; }
.scope-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 13px; }
.scope-grid article { min-height: 206px; padding: 23px; background: var(--paper); border: 1px solid var(--line); }
.scope-grid article:nth-child(2n) { background: var(--sage-pale); }
.scope-grid span { color: var(--clay-deep); font-size: .71rem; font-weight: 850; letter-spacing: .1em; }
.scope-grid h3 { margin: 25px 0 7px; font-size: 1.04rem; letter-spacing: -.025em; }
.scope-grid p { margin: 0; color: var(--ink-soft); font-size: .88rem; }
.faq-wrap { max-width: 820px; }
.faq-wrap h2 { font-size: clamp(2.1rem, 4vw, 3.3rem); }
.faq-list { margin-top: 30px; border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); padding: 18px 0; }
.faq-list summary { cursor: pointer; font-weight: 800; letter-spacing: -.015em; }
.faq-list summary::marker { color: var(--clay); }
.faq-list p { max-width: 690px; margin: 12px 0 0; color: var(--ink-soft); font-size: .93rem; }
.faq-list a { color: var(--sage-deep); font-weight: 750; }
.service-cta { background: var(--ink); color: var(--white); }
.service-cta .eyebrow { color: #f6c9bf; }
.service-cta h2 { max-width: 630px; font-size: clamp(2.2rem, 4vw, 3.45rem); }
.service-cta p:not(.eyebrow) { max-width: 570px; color: #dbe5dc; }
.service-cta .text-link { color: #f2e7c8; }
.feature-service-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.feature-service { min-height: 400px; padding: clamp(28px, 4vw, 48px); background: var(--sage-pale); border: 1px solid rgba(86, 107, 91, .3); }
.feature-service-clay { background: #f0d9d2; border-color: rgba(201, 110, 91, .35); }
.feature-service .eyebrow { color: var(--sage-deep); }
.feature-service-clay .eyebrow { color: var(--clay-deep); }
.feature-service h3 { max-width: 500px; margin: 0 0 15px; font-size: clamp(1.9rem, 3vw, 2.7rem); line-height: 1.08; letter-spacing: -.05em; }
.feature-service > p:not(.eyebrow) { max-width: 500px; color: var(--ink-soft); }
.feature-service ul { min-height: 78px; padding: 0; margin: 24px 0 30px; list-style: none; font-size: .9rem; }
.feature-service li { margin: 7px 0; }
.feature-service li::before { content: "•"; color: var(--clay); font-size: 1.1rem; margin-right: 8px; }
.button-outline { background: transparent; border: 1px solid var(--ink); color: var(--ink); }
.button-outline:hover { border-color: var(--clay-deep); }
.area-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 15px; margin-top: 29px; }
.area-actions a { padding: 11px 15px; border: 1px solid rgba(255,255,255,.44); color: var(--white); font-size: .87rem; font-weight: 750; text-decoration: none; }
.area-actions a:hover { border-color: var(--clay); color: #fff5f1; }
.location-service-links { display: grid; gap: 12px; }
.location-service-link { display: flex; justify-content: space-between; gap: 15px; padding: 22px; background: var(--paper); border: 1px solid var(--line); color: var(--ink); font-size: 1.08rem; font-weight: 820; letter-spacing: -.025em; text-decoration: none; }
.location-service-link:hover { border-color: var(--clay); background: #fff8f5; }
.location-service-link span { color: var(--clay-deep); }
.location-directory { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 25px; padding: 0; margin: 0; list-style: none; border-top: 1px solid var(--line); }
.location-directory li { border-bottom: 1px solid var(--line); }
.location-directory a { display: flex; justify-content: space-between; padding: 12px 0; color: var(--ink-soft); font-weight: 700; text-decoration: none; }
.location-directory a::after { content: "→"; color: var(--clay-deep); }
.location-directory a:hover { color: var(--clay-deep); }

@media (max-width: 850px) {
  .page-hero { padding: 70px 0; background: var(--cream); }
  .page-hero-grid, .detail-grid, .location-content, .directory-layout { grid-template-columns: 1fr; gap: 42px; }
  .page-logo-card { max-width: 520px; }
  .feature-service-grid { grid-template-columns: 1fr; }
}
@media (max-width: 650px) {
  .page-hero { padding: 60px 0; }
  .page-hero h1 { font-size: 2.65rem; }
  .scope-grid, .location-directory { grid-template-columns: 1fr; }
  .feature-service { min-height: 0; padding: 28px; }
  .area-actions { align-items: stretch; flex-direction: column; }
  .area-actions a { text-align: center; }
}
/* Compact layouts and shared real-work slider. */
.feature-service { position: relative; isolation: isolate; overflow: hidden; display: grid; align-content: end; min-height: 360px; padding: 28px; color: white; border-radius: 14px; }
.feature-service > .site-photo { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; object-fit: cover; z-index: -2; }
.feature-service::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg,rgba(19,34,26,.96),rgba(19,34,26,.28)); z-index: -1; }
.feature-service .eyebrow,.feature-service > p:not(.eyebrow) { color: #f0f3ef; }
.feature-service .button-outline { color: white; border-color: #d3ddd4; justify-self: start; }
.section { padding-block: 56px; }
.hero { padding-block: 44px; }
.hero-grid { max-width: 1380px; grid-template-columns: .85fr 1.15fr; gap: 36px; }
.hero-photo .site-photo { aspect-ratio: 3 / 2; width: 100%; }
.service-banner { position: relative; isolation: isolate; display: grid; align-items: center; min-height: 410px; background: #24352c; color: white; }
.service-banner > .site-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.service-banner::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(19,34,26,.88),rgba(19,34,26,.3)); z-index: -1; }
.service-banner-copy { padding-block: 48px; }
.service-banner-copy h1 { max-width: 740px; font-size: clamp(2.2rem,4.6vw,3.8rem); line-height: 1.06; letter-spacing: -.045em; margin: 0 0 18px; }
.service-banner-copy > p:not(.eyebrow) { max-width: 530px; margin-bottom: 24px; }
.service-banner .eyebrow { color: #dfebdf; }
.scope-summary { display: grid; grid-template-columns: repeat(2,1fr); gap: 16px 36px; }
.scope-summary h3 { margin: 0 0 6px; font-size: 1rem; }
.scope-summary p { margin: 0; color: var(--ink-soft); font-size: .9rem; }
.compact-scope h2,.compact-faq h2 { font-size: clamp(1.6rem,3vw,2.2rem); }
.compact-faq .container { max-width: 920px; }
.compact-quote { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 24px; }
.results-widget { background: var(--sage-pale); }
.results-widget-inner { max-width: 920px; }
.results-widget-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 20px; }
.results-widget-heading h2 { font-size: clamp(1.65rem,3vw,2.3rem); margin: 0; }
.results-widget-heading p { margin: 6px 0; }
.slider-controls { display: flex; gap: 10px; align-items: center; flex-shrink: 0; }
.slider-controls[hidden] { display: none; }
.slider-controls button { min-width: 44px; min-height: 44px; border: 1px solid var(--line); border-radius: 50%; background: var(--paper); color: var(--ink); cursor: pointer; font-size: 1.2rem; }
.slider-controls button:disabled { opacity: .35; cursor: default; }
.slider-controls span { font-size: .8rem; min-width: 32px; text-align: center; }
.results-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px; overscroll-behavior-x: contain; scrollbar-width: thin; }
.results-slide { flex: 0 0 100%; min-width: 0; margin: 0; scroll-snap-align: start; background: var(--paper); border-radius: 12px; overflow: hidden; }
.results-photos { height: 300px; display: grid; }
.results-photos-pair { grid-template-columns: 1fr 1fr; gap: 4px; }
.results-photos > div { position: relative; min-width: 0; min-height: 0; }
.results-photos img { display: block; width: 100%; height: 100%; object-fit: contain; }
.results-photos span { position: absolute; bottom: 10px; left: 10px; padding: 4px 10px; border-radius: 20px; background: #21382e; color: white; font-size: .75rem; }
.results-slide figcaption { display: flex; justify-content: space-between; gap: 12px; padding: 12px 16px; font-weight: 700; font-size: .9rem; }
.results-slide figcaption span { font-weight: 400; color: var(--ink-soft); }
@media (max-width:850px) {
 .hero-grid { grid-template-columns: 1fr; }
 .hero-photo .site-photo { aspect-ratio: 3 / 2; }
}
@media (max-width:650px) {
 .section { padding-block: 36px; }
 .hero { padding-block: 30px; }
 .service-banner { min-height: 360px; }
 .service-banner::after { background: linear-gradient(90deg,rgba(19,34,26,.86),rgba(19,34,26,.5)); }
 .scope-summary { gap: 20px; }
 .results-widget-heading { flex-wrap: wrap; gap: 10px; }
 .results-photos { height: 260px; }
 .compact-quote { align-items: flex-start; flex-direction: column; gap: 10px; }
}
