.sv5-page{--sv5-gap:clamp(28px,4vw,58px);--sv5-green:#173f35;--sv5-soft:#e5ecdf}
.sv5-page p,.sv5-page li{font-size:16px;line-height:1.7}
.sv5-page h1{font-size:clamp(36px,3.5vw,50px);line-height:1.1;letter-spacing:-.045em;max-width:650px}
.sv5-page h2{font-size:clamp(26px,2.3vw,34px);line-height:1.2;letter-spacing:-.035em}
.sv5-page h3{font-size:21px;line-height:1.3}
.sv5-page .eyebrow,.sv5-page .sv5-image-kicker{font-size:12px;line-height:1.5;font-weight:750;letter-spacing:.1em;text-transform:uppercase;color:#4b685a}
.sv5-page .breadcrumbs{font-size:12px;padding-block:23px}
.sv5-page .button{font-size:14px;min-height:48px}
.sv5-page .text-link{font-size:14px;line-height:1.5;min-height:42px;gap:13px}
.sv5-page .sv5-lead{font-size:18px;line-height:1.7;max-width:560px;margin-top:23px}
.sv5-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px 25px;margin-top:26px}
.sv5-photo{margin:0;min-width:0}
.sv5-photo-open{position:relative;display:block;overflow:hidden;border-radius:10px;background:#dce6d8}
.sv5-photo-open>img{display:block;width:100%;height:auto;transition:transform .25s ease}
.sv5-photo-open:hover>img{transform:scale(1.015)}
.sv5-photo-open:focus-visible{outline-offset:5px}
.sv5-enlarge{position:absolute;right:14px;bottom:14px;display:inline-flex;gap:10px;align-items:center;padding:9px 12px;border-radius:5px;background:rgba(248,247,242,.96);color:#173f35;font-size:12px;font-weight:750;line-height:1.5;min-height:40px;box-shadow:0 2px 10px #173f3518}
.sv5-enlarge>span{font-size:19px;line-height:1}
.sv5-photo-badge{position:absolute;top:14px;left:14px;font-size:12px;font-weight:750;background:#f8f7f2;color:#173f35;border-radius:4px;padding:6px 10px;line-height:1.5}
.sv5-photo figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:10px 20px;padding-top:13px;color:#52675a;font-size:13px;line-height:1.5}
.sv5-photo figcaption>span{max-width:65%}
.sv5-photo figcaption .text-link{font-size:13px;min-height:32px;white-space:nowrap;padding-block:3px}
.sv5-page .sv5-planning{margin:22px 0 0;border-top:1px solid #a9bead;border-bottom:1px solid #a9bead;background:transparent}
.sv5-planning summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:18px;font-size:15px;font-weight:750;line-height:1.5;padding:17px 0;min-height:55px}
.sv5-planning summary::-webkit-details-marker{display:none}
.sv5-planning summary>span{font-size:22px;font-weight:500;line-height:1;transition:transform .2s ease}
.sv5-planning[open] summary>span{transform:rotate(45deg)}
.sv5-planning>div{padding:0 8px 21px 0}
.sv5-planning>div>p{font-size:14px}
.sv5-planning ul{margin-top:13px;padding-left:20px}
.sv5-planning li{font-size:14px;margin-top:6px}
.sv5-related{display:flex;align-items:center;gap:18px 30px;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:18px;font-size:14px}
.sv5-related>span{margin-right:auto;color:var(--body)}
.sv5-related a{display:inline-flex;gap:12px;align-items:center;min-height:40px;font-size:14px;font-weight:700;text-decoration:none}
.sv5-related a:hover{text-decoration:underline}
.sv5-page .faq-section{padding-block:42px;gap:var(--sv5-gap)}
.sv5-page .faq-section h2{font-size:29px;max-width:330px}
.sv5-page .faq-section summary{font-size:15px;min-height:58px;line-height:1.6;padding-block:17px}
.sv5-page .faq-section details>p{font-size:15px;line-height:1.7}
.sv5-page .contact-strip{padding-block:40px}
.sv5-page .contact-strip p:not(.eyebrow){font-size:15px}
.sv5-page .contact-strip>div>a:not(.button){font-size:13px}
.sv5-photo-hero{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:var(--sv5-gap);padding-block:20px 42px}
.sv5-photo-hero--crawlspace .sv5-photo-open>img{aspect-ratio:16/9;object-fit:cover}
.sv5-crawl-evidence{display:grid;grid-template-columns:.72fr 1.28fr;gap:var(--sv5-gap);align-items:center;padding-bottom:40px}
.sv5-crawl-evidence h2{margin-bottom:17px}
.sv5-crawl-photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.sv5-crawl-photo-pair .sv5-photo-open>img{aspect-ratio:4/3;object-fit:cover}
.sv5-crawl-photo-pair .sv5-photo figcaption{display:block}
.sv5-crawl-photo-pair .sv5-photo figcaption>span{display:block;max-width:100%}
.sv5-crawl-photo-pair .sv5-photo figcaption .text-link{margin-top:7px}
.sv5-sump-feature{padding-block:40px;background:var(--sv5-green);color:#fff;scroll-margin-top:125px}
.sv5-sump-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:var(--sv5-gap);align-items:center}
.sv5-sump-copy h2{margin-bottom:18px}
.sv5-sump-copy .eyebrow{color:#c8dfcd}
.sv5-sump-copy>p:not(.eyebrow){color:#e0eae0}
.sv5-sump-copy .button{margin-top:24px;text-align:left;gap:14px}
.sv5-sump-photos{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.sv5-sump-photos .sv5-photo-open>img{aspect-ratio:4/3;object-fit:cover}
.sv5-sump-photos .sv5-photo figcaption{color:#d6e6d9}
.sv5-sump-photos .sv5-photo figcaption>span{max-width:100%}
.sv5-yard-hero{display:grid;grid-template-columns:1.1fr .8fr;align-items:center;gap:var(--sv5-gap);padding-block:20px 38px}
.sv5-yard-hero--photo{grid-template-columns:.85fr 1.15fr}
.sv5-yard-hero--photo .sv5-photo-open>img{aspect-ratio:4/3;object-fit:cover}
.sv5-yard-nav{border-top:1px solid #b7cab9;margin-top:28px}
.sv5-yard-nav>a{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:16px;font-weight:700;padding:12px 0;min-height:48px;border-bottom:1px solid #b7cab9;text-decoration:none}
.sv5-yard-nav>a:hover{text-decoration:underline}
.sv5-yard-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding-block:8px 43px}
.sv5-yard-service{display:flex;flex-direction:column;align-items:flex-start;min-width:0;border-top:2px solid #adc4af;padding-top:20px;scroll-margin-top:125px}
.sv5-service-number{font-size:12px;font-weight:750;color:#52725e;margin-bottom:12px}
.sv5-yard-service h2{font-size:27px;margin-bottom:15px}
.sv5-yard-service>p{font-size:15px;flex-grow:1}
.sv5-yard-service .sv5-planning{width:100%;margin-top:22px}
.sv5-yard-service .button{margin-top:23px}
.sv5-yard-service--drainage{background:#e4ecdf;padding:20px 24px 24px;border-radius:0 0 9px 9px;border-color:#658e70}
.sv5-yard-service--drainage h2{font-size:26px}
.sv5-yard-service .sv5-planning summary{font-size:14px}
.sv5-outdoor-work{background:#e6ecdf;padding-block:36px}
.sv5-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:25px}
.sv5-section-heading>div>p:not(.eyebrow){font-size:15px;margin-top:13px;max-width:600px}
.sv5-section-heading>.text-link{flex-shrink:0}
.sv5-outdoor-pair{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.sv5-outdoor-pair .sv5-photo-open>img{aspect-ratio:4/3;object-fit:cover}
.sv5-comparison-hero{display:grid;grid-template-columns:.76fr 1.24fr;align-items:center;gap:var(--sv5-gap);padding-block:20px 25px}
.sv5-comparison-lead{min-width:0}
.sv5-image-kicker{margin-bottom:13px!important}
.sv5-page .exp-comparison-caption{font-size:13px;line-height:1.6}
.sv5-page .exp-comparison-controls button{font-size:14px}
.sv5-below-comparison{display:grid;grid-template-columns:1.2fr .8fr;gap:12px 35px;align-items:start;padding-bottom:35px}
.sv5-below-comparison>p{align-self:center;max-width:620px}
.sv5-below-comparison>.text-link{justify-self:start;grid-column:1}
.sv5-below-comparison>.sv5-planning{grid-column:2;grid-row:1/3;margin-top:0}
.sv5-bathroom-feature{background:#e4ebde;padding-block:40px}
.sv5-bathroom-layout{display:grid;grid-template-columns:1.2fr .9fr;gap:var(--sv5-gap);align-items:center}
.sv5-bathroom-photos{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.sv5-bathroom-photos .sv5-photo-open>img{aspect-ratio:3/4;object-fit:cover}
.sv5-bathroom-photos .sv5-photo figcaption>span{max-width:100%}
.sv5-bathroom-copy h2{margin-bottom:20px}
.sv5-bathroom-copy>.button{margin-top:24px}
.sv5-wip-link{display:table!important;margin-top:16px}
.sv5-door-heading,.sv5-wide-heading,.sv5-handyman-heading{display:grid;grid-template-columns:1.1fr .8fr;gap:var(--sv5-gap);align-items:end;padding-block:20px 32px}
.sv5-door-context,.sv5-heading-aside{max-width:400px;border-left:2px solid #aec6b1;padding:5px 0 5px 25px;margin-bottom:2px}
.sv5-door-context{font-size:16px!important}
.sv5-heading-aside .text-link{margin-top:12px}
.sv5-door-photo{max-width:1120px;padding-bottom:20px}
.sv5-door-notes{display:grid;grid-template-columns:1.1fr .8fr;gap:var(--sv5-gap);align-items:start;padding-block:20px 32px;border-bottom:1px solid var(--line)}
.sv5-door-notes h2{margin-bottom:16px}
.sv5-door-notes .text-link{margin-top:12px}
.sv5-door-notes>.sv5-planning{margin-top:0}
.sv5-wide-photo{padding-bottom:25px}
.sv5-wide-photo .sv5-photo-open>img{aspect-ratio:2.12;object-fit:cover;object-position:center 58%}
.sv5-fence-plan{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--sv5-gap);align-items:center;padding-block:23px 32px;border-bottom:1px solid var(--line)}
.sv5-fence-plan h2{margin-bottom:16px}
.sv5-fence-plan .sv5-photo-open>img{aspect-ratio:4/3;object-fit:cover}
.sv5-fence-plan .sv5-planning{margin-top:22px}
.sv5-fence-plan .text-link{margin-top:12px}
.sv5-concrete-hero{display:grid;grid-template-columns:.76fr 1.24fr;gap:var(--sv5-gap);align-items:center;padding-block:20px 36px}
.sv5-concrete-hero .sv5-photo-open>img{aspect-ratio:4/3;object-fit:cover}
.sv5-concrete-facts{display:flex;flex-wrap:wrap;gap:10px 20px;padding-top:24px;margin-top:30px;border-top:1px solid var(--line);font-size:13px;font-weight:750;color:#4f6b59}
.sv5-concrete-band{background:#e6ecdf;padding-block:32px}
.sv5-concrete-details{display:grid;grid-template-columns:1fr 1fr;gap:var(--sv5-gap);align-items:start}
.sv5-concrete-details h2{margin-bottom:17px}
.sv5-concrete-details .text-link{margin-top:12px}
.sv5-concrete-details .sv5-planning{margin-top:0}
.sv5-page .sv5-small-note{font-size:13px;margin-top:15px}
.sv5-handyman-hero{display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--sv5-gap);align-items:center;padding-block:20px 40px}
.sv5-page .sv5-handyman-context{font-size:14px;line-height:1.75;margin-top:24px;max-width:430px}
.sv5-shed-photos{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.sv5-shed-photos .sv5-photo-open>img{aspect-ratio:3/4;object-fit:cover}
.sv5-shed-photos .sv5-photo figcaption>span{max-width:100%}
.sv5-handyman-projects{padding-block:10px 5px}
.sv5-handyman-projects .sv5-section-heading h2{max-width:600px}
.sv5-project-rail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start;padding-bottom:34px}
.sv5-project-rail .sv5-photo-open>img{aspect-ratio:4/3;object-fit:cover}
.sv5-project-rail .sv5-photo-open>img[src*="soffit"]{object-position:center 25%}
.sv5-project-rail .sv5-photo--comparison .sv5-photo-open>img{object-fit:contain}
.sv5-project-rail .sv5-photo figcaption{display:block}
.sv5-project-rail .sv5-photo figcaption>span{display:block;max-width:100%;font-size:15px;font-weight:650;color:var(--ink)}
.sv5-project-rail .sv5-photo figcaption .text-link{margin-top:8px}
.sv5-project-rail .sv5-enlarge{right:10px;bottom:10px;font-size:12px;padding:7px 9px;min-height:36px}
.sv5-project-rail .sv5-photo-badge{left:10px;top:10px;font-size:12px;padding:5px 8px}
.sv5-home-services{padding-block:35px;background:#e7ede2}
.sv5-home-service-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sv5-gap);align-items:start}
.sv5-home-service-layout h2{margin-bottom:15px}
.sv5-service-links{border-top:1px solid #a8bfaa}
.sv5-service-links a{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 0;border-bottom:1px solid #a8bfaa;font-size:18px;line-height:1.4;font-weight:700;text-decoration:none}
.sv5-service-links a:hover{text-decoration:underline}
@media(max-width:1000px){
  .sv5-photo-hero,.sv5-concrete-hero,.sv5-comparison-hero{grid-template-columns:.85fr 1.15fr;gap:30px}
  .sv5-yard-services{gap:20px}.sv5-yard-service h2,.sv5-yard-service--drainage h2{font-size:24px}.sv5-yard-service--drainage{padding-inline:20px}
  .sv5-yard-service .button{font-size:13px;padding-inline:15px;gap:12px}.sv5-photo figcaption{flex-direction:column;align-items:flex-start;gap:4px}.sv5-photo figcaption>span{max-width:100%}
  .sv5-section-heading{align-items:flex-start;flex-direction:column;gap:12px}.sv5-project-rail{gap:18px}
  .sv5-crawl-evidence,.sv5-sump-layout{grid-template-columns:.8fr 1.2fr;gap:30px}.sv5-crawl-photo-pair,.sv5-sump-photos,.sv5-shed-photos,.sv5-bathroom-photos{gap:15px}
  .sv5-sump-photos .sv5-enlarge,.sv5-shed-photos .sv5-enlarge,.sv5-bathroom-photos .sv5-enlarge{font-size:11px;right:9px;bottom:9px;padding:7px 9px}
}
@media(max-width:760px){
  .sv5-page p,.sv5-page li{font-size:15px}.sv5-page h1{font-size:35px}.sv5-page h2{font-size:28px}.sv5-page .sv5-lead{font-size:16px;margin-top:19px}
  .sv5-page .eyebrow,.sv5-page .sv5-image-kicker,.sv5-page .breadcrumbs{font-size:12px}.sv5-page .button,.sv5-page .text-link{font-size:14px}
  .sv5-page .breadcrumbs{padding-block:20px}.sv5-actions{margin-top:22px}
  .sv5-photo-hero,.sv5-concrete-hero,.sv5-comparison-hero,.sv5-yard-hero,.sv5-door-heading,.sv5-wide-heading,.sv5-handyman-heading,.sv5-handyman-hero{grid-template-columns:1fr;gap:26px;padding-block:14px 28px}
  .sv5-photo figcaption{font-size:12px}.sv5-photo figcaption .text-link{font-size:13px;min-height:40px}.sv5-enlarge{font-size:12px;min-height:44px}
  .sv5-photo-badge{font-size:12px}.sv5-photo-open{border-radius:8px}
  .sv5-home-service-layout,.sv5-door-notes,.sv5-fence-plan,.sv5-concrete-details,.sv5-crawl-evidence,.sv5-sump-layout{grid-template-columns:1fr;gap:27px}
  .sv5-home-services,.sv5-concrete-band,.sv5-sump-feature{padding-block:28px}.sv5-sump-copy .button{margin-top:20px}.sv5-crawl-evidence{padding-bottom:30px}
  .sv5-yard-services{grid-template-columns:1fr;gap:25px;padding-block:0 30px}.sv5-yard-service{padding-top:18px}.sv5-yard-service h2,.sv5-yard-service--drainage h2{font-size:27px}
  .sv5-yard-service>p{font-size:15px;max-width:100%}.sv5-yard-service .button{font-size:14px;min-height:48px;margin-top:18px}.sv5-yard-service .sv5-planning{margin-top:15px}
  .sv5-yard-service--drainage{padding:22px;border-radius:0 0 8px 8px}.sv5-yard-nav>a{font-size:16px;padding-block:12px}
  .sv5-outdoor-work{padding-block:28px}.sv5-outdoor-pair{gap:25px}.sv5-section-heading h2{font-size:28px}.sv5-section-heading>div>p:not(.eyebrow){font-size:15px}
  .sv5-page .sv5-planning summary{font-size:15px;min-height:56px}.sv5-planning>div>p,.sv5-planning li{font-size:15px}
  .sv5-below-comparison{grid-template-columns:1fr;gap:10px;padding-bottom:28px}.sv5-below-comparison>.text-link{grid-column:auto}.sv5-below-comparison>.sv5-planning{grid-column:auto;grid-row:auto;margin-top:12px}
  .sv5-bathroom-layout{grid-template-columns:1fr;gap:28px}.sv5-bathroom-feature{padding-block:30px}.sv5-bathroom-copy h2{font-size:27px}.sv5-bathroom-copy>.button{margin-top:20px}
  .sv5-bathroom-photos{max-width:590px;width:100%;margin-inline:auto}
  .sv5-door-context,.sv5-heading-aside{max-width:none;padding-left:20px}.sv5-door-photo{padding-bottom:15px}.sv5-door-notes{padding-block:17px 28px}
  .sv5-wide-photo{padding-bottom:18px}.sv5-wide-photo .sv5-photo-open>img{aspect-ratio:4/3;object-position:center}.sv5-fence-plan{padding-block:18px 28px}
  .sv5-concrete-facts{margin-top:24px;padding-top:18px}
  .sv5-project-rail{display:flex;overflow-x:auto;align-items:flex-start;gap:18px;scroll-snap-type:x mandatory;scroll-padding-inline:0;padding-bottom:25px;-webkit-overflow-scrolling:touch}
  .sv5-project-rail>.sv5-photo{flex:0 0 82%;scroll-snap-align:start}
  .sv5-project-rail .sv5-photo figcaption>span{font-size:15px}.sv5-project-rail .sv5-photo-badge,.sv5-project-rail .sv5-enlarge{font-size:12px}.sv5-project-rail .sv5-enlarge{min-height:44px}
  .sv5-service-links a{font-size:18px;padding-block:18px}
  .sv5-page .faq-section{padding-block:30px;gap:18px}.sv5-page .faq-section h2{font-size:27px}.sv5-page .faq-section summary,.sv5-page .faq-section details>p{font-size:15px}
  .sv5-related{padding-block:15px;gap:5px 24px}.sv5-related>span{flex-basis:100%;margin:0;font-size:13px}.sv5-related a{font-size:14px;min-height:44px}
  .sv5-page .contact-strip{padding-block:30px}
}
@media(max-width:520px){
  .sv5-outdoor-pair,.sv5-crawl-photo-pair,.sv5-sump-photos{grid-template-columns:1fr}.sv5-bathroom-copy h2{font-size:28px}
  .sv5-sump-copy .button{width:100%;justify-content:space-between;text-align:left}
  .sv5-bathroom-photos,.sv5-shed-photos{gap:12px}.sv5-bathroom-photos .sv5-photo-open>img,.sv5-shed-photos .sv5-photo-open>img{aspect-ratio:3/4}
  .sv5-shed-photos .sv5-enlarge,.sv5-bathroom-photos .sv5-enlarge{position:static;display:flex;justify-content:space-between;border-radius:0;box-shadow:none;font-size:11px;min-height:44px;padding:7px 9px}
  .sv5-shed-photos .sv5-photo-badge{left:8px;top:8px;font-size:10px;padding:5px 7px}
  .sv5-page h1{font-size:34px}.sv5-photo-open:hover>img{transform:none}
}
@media(prefers-reduced-motion:reduce){.sv5-photo-open>img,.sv5-planning summary>span{transition:none}.sv5-photo-open:hover>img{transform:none}}

/* Keep the CTA label legible within the darker service-page banner. */
.sv5-page .v5-contact-banner .eyebrow{color:#c3e4cf}
