/* Shared forest-green introduction, retaining each service's own content. */
.page-breadcrumbs:has(+.forest-hero){background:var(--dark);color:#c4cfbb;margin:0;max-width:none;padding:18px max(6%,calc((100% - 1215px)/2)) 8px;border-top:1px solid #303c2d}
.review-intro>p.review-note{font-size:11px;line-height:1.7}
.forest-hero{background:var(--dark);color:var(--paper);max-width:none;padding:64px max(6%,calc((100% - 1215px)/2)) 76px;isolation:isolate;gap:5vw}
.forest-hero:before{display:none}.forest-hero h1{font-size:clamp(42px,4.6vw,70px);line-height:1.1;letter-spacing:-.045em}
.forest-hero .eyebrow{color:var(--green)}.forest-hero .lead{color:#d5ddcd;max-width:35em;font-size:18px}
.forest-hero .breadcrumbs,.forest-hero .small,.forest-hero .service-visual figcaption{color:#c4cfbb}
.forest-hero .button{background:var(--green);border-color:var(--green);color:#172019}.forest-hero .text-link{color:#e0e9d7}
.forest-hero .scope-card{background:#242e25;border-color:#b8cf9f;color:#e9e5db}.forest-hero .scope-card p{color:#d5ddcd}
.forest-hero .service-visual{min-width:0}.forest-hero .service-visual img{height:500px;box-shadow:14px 14px 0 #283427}
.forest-hero .service-visual figcaption{margin-top:24px}.forest-hero .actions{flex-wrap:wrap}.forest-hero a:focus-visible{outline:3px solid #b8cf9f;outline-offset:5px}
.forest-hero.resource-intro .lead{max-width:45em}.forest-hero.resource-intro a{color:inherit}.forest-hero.resource-intro .button{color:#172019}
.trust-badges{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#dce3d0;border-bottom:1px solid #bfcab2;padding:30px max(6%,calc((100% - 1215px)/2));gap:30px}
.trust-badges a{display:flex;align-items:flex-start;gap:13px;text-decoration:none;line-height:1.4}.trust-badges a:hover strong{text-decoration:underline;text-underline-offset:4px}
.trust-badges svg{width:29px;height:29px;flex:none;color:#405a36}.trust-badges strong{font-size:14px;font-weight:600;display:block}.trust-badges small{display:block;font-size:11px;color:#4d5c43;margin-top:6px}
.home-jump{justify-content:center;flex-wrap:wrap;gap:20px 38px}.completed-home-note{border-left:2px solid #728e5b;padding-left:20px;margin-top:26px;font-size:15px}.completed-home-note strong{font-size:12px;letter-spacing:.08em;text-transform:uppercase}.credentials-details{margin-top:22px}.credentials-details p{color:#3d4c34}
.reviews-section.review-showcase{background:#e9e5db;max-width:none;padding:76px max(6%,calc((100% - 1215px)/2));display:grid;grid-template-columns:.8fr 1.2fr;gap:6vw;align-items:center;border-bottom:1px solid #c8cbbd}
.review-intro h2{font-size:clamp(35px,3.6vw,53px);line-height:1.12}.review-intro>p:not(.eyebrow){max-width:27em;color:#54604c;font-size:15px}.review-source-mark{display:flex;align-items:center;gap:10px;font-size:12px;margin:28px 0 18px}.review-source-mark svg{height:24px;width:24px;color:#536a40}
.review-stage{min-width:0;border:1px solid #bcc9ac;background:#f3f1e9;padding:38px 40px 26px;box-shadow:12px 12px 0 #dce3d0;position:relative}
.review-stage:before{content:'“';position:absolute;right:30px;top:0;font-family:Georgia,serif;font-size:110px;line-height:1;color:#d4ddc9;pointer-events:none}
.review-stage .review-card{min-height:280px;position:relative;animation:review-arrive .4s ease-out}.review-stage .review-card blockquote{font-size:clamp(22px,2.2vw,31px);line-height:1.45;letter-spacing:-.025em;margin:24px 0 28px}.review-stage .review-stars{font-size:16px;letter-spacing:4px;color:#456135}.review-stage .review-card figcaption{border-top:1px solid #d6decb;padding-top:18px;font-size:15px}.review-stage .review-card figcaption span{font-size:11px}
.review-stage .review-controls{flex-wrap:wrap;gap:12px;margin:24px 0 0;padding-top:18px;border-top:1px solid #d6decb}.review-controls button{color:#243520;flex:none}.review-controls [data-review-count]{font-variant-numeric:tabular-nums;font-size:12px;min-width:35px;text-align:center}.review-controls .review-rotation{border:0;border-radius:0;background:none;width:auto;height:auto;min-height:44px;font:500 11px var(--font);padding:8px;margin-left:auto;text-decoration:underline;text-underline-offset:4px}.review-controls .review-rotation:hover{background:#e0e8d4}
.review-dots{display:flex;gap:3px;margin:18px 0 0}.review-dots button{border:0;background:none;width:28px;height:28px;padding:9px;cursor:pointer}.review-dots button:before{content:'';display:block;width:10px;height:10px;border-radius:50%;background:#b5c3a7}.review-dots button[aria-current=true]:before{background:#405a36}.review-dots button:focus-visible{outline:2px solid #405a36;outline-offset:1px}.review-note{font-size:11px;color:#57634e;margin:18px 0 0;max-width:34em}
@keyframes review-arrive{from{opacity:.25;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1000px){.trust-badges{grid-template-columns:repeat(2,minmax(0,1fr))}.forest-hero{gap:35px}.forest-hero .service-visual img{height:430px}.review-stage{padding:30px}.review-stage .review-card{min-height:300px}}
@media(max-width:760px){.forest-hero{padding:35px 6% 44px;display:block}.forest-hero h1{font-size:clamp(38px,10vw,52px)}.forest-hero .lead{font-size:16px}.forest-hero .breadcrumbs{margin-bottom:28px}.forest-hero .service-visual,.forest-hero .scope-card{margin-top:30px}.forest-hero .service-visual img{height:auto;max-height:440px;aspect-ratio:1.1;box-shadow:8px 8px 0 #283427}.trust-badges{gap:24px 17px;padding:28px 6%}.trust-badges a{gap:9px}.trust-badges svg{width:24px;height:24px}.trust-badges strong{font-size:12px}.trust-badges small{font-size:10px}.home-jump{gap:12px 20px;font-size:11px;padding:20px 6%}.reviews-section.review-showcase{grid-template-columns:1fr;gap:28px;padding:44px 6% 50px}.review-intro h2{font-size:37px;margin-bottom:20px}.review-source-mark{margin:22px 0 12px}.review-stage{padding:27px 24px 22px;box-shadow:7px 7px 0 #dce3d0}.review-stage .review-card{min-height:310px}.review-stage .review-card blockquote{font-size:23px}.review-controls{gap:8px}.review-controls .review-rotation{font-size:10px}.review-note{font-size:11px}.credentials-details summary{font-size:15px}}
@media(prefers-reduced-motion:reduce){.review-stage .review-card{animation:none}}

/* A foundation, upright posts and roof arrive before the review is assembled. */
.reviews-section.review-showcase{padding-top:52px;padding-bottom:56px;grid-template-columns:.65fr 1.35fr;gap:5vw}
.review-intro h2{font-size:clamp(30px,3vw,43px)}
.review-stage{border-color:transparent;padding:32px 36px 22px;box-shadow:8px 8px 0 #dce3d0}
.review-stage:before{display:none}
.review-frame{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;stroke:#90a47c;stroke-width:1}
.review-frame path{vector-effect:non-scaling-stroke}
.review-house{position:absolute;top:18px;right:28px;width:58px;height:46px;color:#a8b99a;pointer-events:none}
.review-stage .review-card{animation:none;min-height:0}
.review-slides{display:grid}
.review-stage .review-card,.review-stage .review-card[hidden]{grid-area:1/1;display:block!important}
.review-stage .review-card[hidden]{visibility:hidden;pointer-events:none}
.review-stage .review-card blockquote{font-size:clamp(20px,1.8vw,25px);line-height:1.5;margin:25px 0 22px}
.review-stage .review-stars{padding-right:80px}
.review-stars span{display:inline-block}
.review-stage .review-controls{margin-top:20px;padding-top:14px}
.review-stage .review-controls button{width:42px;height:42px}
.review-dots{flex-wrap:wrap;gap:3px;margin-top:8px}
.review-frame path,.review-house path{stroke-dasharray:1;stroke-dashoffset:0}
.is-building .build-base{animation:review-draw .35s ease-out both}
.is-building .build-posts{animation:review-draw .5s .2s ease-out both}
.is-building .build-beam{animation:review-draw .45s .65s ease-out both}
.is-building .review-card:not([hidden]) .review-stars span{animation:review-brick .6s calc(.35s + var(--star)*.09s) cubic-bezier(.2,.9,.25,1.15) both}
.is-building .review-card:not([hidden]) blockquote{animation:review-wall .7s .55s cubic-bezier(.16,1,.3,1) both}
.is-building .review-card:not([hidden]) figcaption{animation:review-sign .5s .95s ease-out both}
@keyframes review-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes review-brick{from{opacity:0;transform:translateY(-16px) rotate(-15deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes review-wall{from{opacity:0;clip-path:inset(100% 0 0);transform:translateY(12px)}to{opacity:1;clip-path:inset(0);transform:translateY(0)}}
@keyframes review-sign{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:760px){
 .reviews-section.review-showcase{grid-template-columns:1fr;padding:40px 6%;gap:24px}
 .review-intro h2{font-size:33px}.review-stage{padding:28px 24px 20px}
 .review-stage .review-card blockquote{font-size:21px}.review-house{width:48px;right:20px}
}
@media(prefers-reduced-motion:reduce){
 .is-building .build-base,.is-building .build-posts,.is-building .build-beam,.is-building .review-card:not([hidden]) .review-stars span,.is-building .review-card:not([hidden]) blockquote,.is-building .review-card:not([hidden]) figcaption{animation:none}
}

.cinematic-hero{--hero-expand-duration:2400ms}
.cinematic-hero.video-finished .hero-video{transition-duration:var(--hero-expand-duration);transition-timing-function:cubic-bezier(.22,.7,.24,1)}
.cinematic-hero::after{transition-duration:1.6s}
.trust-badges{transition:opacity .8s ease,transform .9s cubic-bezier(.16,1,.3,1),visibility .8s}
.hero-intro-pending .trust-badges{visibility:hidden;opacity:0;transform:translateY(36px);pointer-events:none}
.early-visit{margin-top:18px!important}.early-visit a{font-weight:600;text-underline-offset:4px}
#next-steps{scroll-margin-top:30px}
@media(prefers-reduced-motion:reduce){.cinematic-hero.video-finished .hero-video,.cinematic-hero::after,.trust-badges{transition:none}.hero-intro-pending .trust-badges{transform:none}}
/* SVG borders use transforms so non-scaling strokes stay continuous at every aspect ratio. */
.review-frame path{stroke-dasharray:none;stroke-dashoffset:0;transform-box:view-box}
.is-building .review-frame .build-base{transform-origin:left bottom;animation:review-foundation .35s ease-out both}
.is-building .review-frame .build-posts{transform-origin:center bottom;animation:review-uprights .5s .2s ease-out both}
.is-building .review-frame .build-beam{transform-origin:left top;animation:review-foundation .45s .65s ease-out both}
@keyframes review-foundation{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes review-uprights{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@media(prefers-reduced-motion:reduce){.is-building .review-frame .build-base,.is-building .review-frame .build-posts,.is-building .review-frame .build-beam{animation:none}}
