@font-face{font-family:Manrope;src:url('/assets/manrope.ttf') format('truetype');font-weight:700;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:#152b36;background:#fbfaf6;font-family:Arial,sans-serif;font-size:16px;line-height:1.65}h1,h2,h3,.button,.photo-caption{font-family:Manrope,Arial,sans-serif}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.12;letter-spacing:-.035em;text-wrap:balance}h2{font-size:clamp(32px,3.1vw,46px)}h3{font-size:24px}p{color:#52606a}a{color:inherit;text-underline-offset:5px}button,a{-webkit-tap-highlight-color:transparent}a:hover{color:#b53f1e}button{font:inherit}::selection{background:#f5bc9e;color:#152b36}:focus-visible{outline:3px solid #c34922;outline-offset:5px}.wrap{max-width:1240px;margin:auto;width:calc(100% - 112px)}.utility{background:#152b36;color:#e4e9e8;font-size:16px}.utility .wrap{display:flex;justify-content:space-between;padding:8px 0}.nav{display:flex;align-items:center;gap:25px;min-height:102px}.logo{width:157px;height:86px;object-fit:contain}header{background:#fbfaf6;position:sticky;top:0;z-index:20;border-bottom:1px solid #e2e3dc}nav{display:flex;gap:25px;margin-left:auto}nav a,.nav-phone{text-decoration:none;font-size:16px;font-weight:700}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;text-decoration:none;background:#c44922;color:white;border-radius:6px;padding:18px 23px;font-size:16px;line-height:1.3;transition:background .2s}.button:hover{background:#9e3719;color:white}.button span{font-size:22px}.small{padding:14px 18px;font-size:16px}.menu{display:none}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:605px;max-width:1600px;margin:auto}.hero-copy{padding:76px 55px 57px max(56px,calc((100vw - 1240px)/2));display:flex;flex-direction:column;justify-content:center}h1{font-size:clamp(48px,4.5vw,68px);letter-spacing:-.04em}h1 em{font-style:normal;color:#bd4725}.lead{font-size:21px;line-height:1.5;margin-top:27px;max-width:470px;color:#253c48}.hero-detail{font-size:16px;margin-top:14px;max-width:440px}.actions{display:flex;gap:24px;align-items:center;margin-top:31px;flex-wrap:wrap}.text-link{font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:12px}.hero-note{display:flex;align-items:center;gap:10px;font-size:16px;color:#52606a;margin-top:30px}.check{border:1px solid #899b8a;border-radius:50%;color:#426844;width:22px;height:22px;text-align:center}.hero-photo{position:relative;overflow:hidden}.hero-photo>img{width:100%;height:100%;object-fit:cover;object-position:48% center;position:absolute}.photo-caption{position:absolute;bottom:28px;left:30px;right:30px;padding:19px 24px;background:#fbfaf6;display:flex;justify-content:space-between;font-size:16px;border-radius:4px}.photo-caption span:last-child{color:#687368}.credentials{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:30px 0;border-bottom:1px solid #d9ddd6}.credentials>span{font-size:16px;font-weight:700;letter-spacing:.08em;max-width:160px;color:#66736a}.credentials strong{font-size:16px;line-height:1.4}.section{padding-top:90px;padding-bottom:90px}.section-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:70px;margin-bottom:38px}.section-intro>p{max-width:350px}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.service{border:1px solid #dadfd7;border-radius:10px;overflow:hidden;background:white;display:flex;flex-direction:column}.service-art{height:210px;overflow:hidden;background:#d8ded3}.service-art img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.service:hover img{transform:scale(1.035)}.service-body{padding:28px;display:flex;flex-direction:column;flex:1}.service h3{font-size:23px}.service p{margin-top:17px;font-size:16px}.service ul{padding-left:19px;color:#52606a;font-size:16px;line-height:1.9;margin:22px 0}.service-link{border-top:1px solid #e1e5de;display:flex;justify-content:space-between;gap:8px;padding-top:20px;margin-top:auto;text-decoration:none;font-size:16px;font-weight:700}.whole-home{background:#152b36;color:white;padding:80px 0}.approach{display:grid;grid-template-columns:1.05fr 1fr;gap:100px}.approach p{color:#ccd5d8;margin-top:24px;max-width:510px}.light{background:#f6f3e9;color:#152b36;margin-top:30px}.steps>div{display:flex;gap:24px;padding:25px 0;border-bottom:1px solid #41515a}.steps>div:first-child{padding-top:0}.steps>div:last-child{border:0;padding-bottom:0}.steps>div>span{font-family:Manrope;font-size:18px;color:#eaae88}.steps h3{font-size:21px}.steps p{margin-top:10px;font-size:16px}.service-details article{display:grid;grid-template-columns:1fr 1.5fr;gap:65px;padding:32px 0;border-top:1px solid #d9ddd6;scroll-margin-top:120px}.service-details article p{max-width:700px}.service-details article a{display:inline-block;margin-top:16px;font-size:16px;font-weight:700}.rebate{background:#e9eddf;padding:45px 0}.rebate-inner{display:flex;gap:60px;align-items:center;justify-content:space-between}.rebate h2{font-size:30px}.rebate p{max-width:650px;margin-top:12px}.dark{background:#152b36;flex-shrink:0}.people{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:center}.person-image{height:510px;background:#e9eddf;border-radius:8px;overflow:hidden}.person-image img{width:100%;height:100%;object-fit:cover;object-position:center 30%}.people p{margin-top:22px}.people .text-link{margin-top:24px}blockquote{margin:30px 0 0;padding-top:25px;border-top:1px solid #d9ddd6;font-family:Manrope;font-size:22px;line-height:1.5}cite{display:block;font-family:Arial;font-size:16px;font-style:normal;margin-top:14px;color:#52606a}.area{background:#f0f0e8;padding:65px 0}.area-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.area p{margin:20px 0;max-width:370px}.towns{font-size:22px;line-height:2.2;color:#42544e}.faq{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px}details{border-bottom:1px solid #d9ddd6;padding:20px 0}details:first-child{padding-top:0}summary{font-family:Manrope;font-size:18px;cursor:pointer;list-style:none;padding-right:30px;position:relative}summary:after{content:'+';position:absolute;right:0;font-size:25px;top:-4px;color:#b54323}details[open] summary:after{content:'−'}details p{margin-top:16px;line-height:1.7}.contact{background:#152b36;color:white;padding:65px 0}.contact-inner{display:flex;justify-content:space-between;gap:60px;align-items:center}.contact p{color:#ccd5d8;margin-top:20px;max-width:430px}.contact-actions{display:flex;flex-direction:column;align-items:center;gap:13px}.contact-actions .button{min-width:300px}.contact-phone{text-decoration:none;font-family:Manrope;font-size:27px;margin-top:5px}.contact-actions>span{font-size:16px;color:#ccd5d8}.footer-main{padding:48px 0;display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:50px}.footer-main img{width:170px;height:100px;object-fit:contain}.footer-main p,.footer-main a{font-size:16px}.footer-main>div{display:flex;flex-direction:column;gap:8px}.footer-main>p:last-child{font-family:Manrope;font-size:20px}.copyright{border-top:1px solid #d9ddd6;padding:20px 0;display:flex;justify-content:space-between;color:#52606a;font-size:16px}.skip{position:fixed;left:15px;top:-100px;z-index:100;background:white;padding:15px}.skip:focus{top:15px} @media(min-width:1600px){.hero-copy{padding-left:120px}}@media(max-width:1150px){.wrap{width:calc(100% - 64px)}nav{gap:15px}.nav-phone{display:none}.hero-copy{padding:55px 32px}.hero{min-height:570px}.actions{gap:18px}.approach,.people,.area-grid,.faq{gap:50px}.service-body{padding:23px}.service h3{font-size:21px}.photo-caption{left:20px;right:20px;font-size:16px}.rebate-inner{gap:30px}}@media(max-width:800px){.wrap{width:calc(100% - 40px)}.utility{font-size:16px}.utility .wrap>span:first-child{display:none}.utility .wrap{justify-content:center}.nav{min-height:80px;gap:15px;flex-wrap:wrap}.logo{width:130px;height:70px}.nav>.small{margin-left:auto;padding:12px;font-size:16px}.menu{display:block;order:3;border:1px solid #d5dad4;background:none;padding:9px 11px;border-radius:4px;font-size:16px}nav{display:none;width:100%;order:4;flex-direction:column;padding:0 0 22px}nav.open{display:flex}.hero{grid-template-columns:1fr}.hero-copy{padding:48px 24px 38px}.hero h1{font-size:52px}.lead{font-size:20px;max-width:520px}.hero-photo{height:350px}.hero-photo>img{object-position:center 55%}.hero-note{font-size:16px}.photo-caption{bottom:20px}.credentials{display:grid;grid-template-columns:1fr 1fr;padding:25px 0;gap:25px}.credentials>span{font-size:16px}.credentials strong{font-size:16px}.section{padding-top:60px;padding-bottom:60px}.section-intro{display:block;margin-bottom:28px}.section-intro>p{margin-top:20px;max-width:520px}.services{grid-template-columns:1fr;gap:24px}.service-art{height:240px}.service-body{padding:25px}.service h3{font-size:25px}.service ul,.service-link{font-size:16px}.approach,.people,.area-grid,.faq{grid-template-columns:1fr;gap:35px}.whole-home{padding:55px 0}.steps{margin-top:5px}.service-details article{grid-template-columns:1fr;gap:17px;padding:28px 0}.service-details h3{font-size:24px}.rebate-inner{display:block}.rebate .button{margin-top:25px}.people .person-image{height:390px;max-width:500px}.people{gap:30px}.area{padding:50px 0}.towns{font-size:18px;line-height:2.1}.faq{gap:30px}.contact-inner{display:block}.contact-actions{align-items:flex-start;margin-top:30px}.contact-actions .button{min-width:0;width:100%;max-width:370px}.footer-main{grid-template-columns:1fr 1fr;gap:24px}.copyright{gap:20px;font-size:16px}.contact{padding:50px 0}html{scroll-padding-top:95px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media(max-width:420px){.nav>.small{display:none}.menu{margin-left:auto}}
/* Expanded services and verified social proof */
.trust-strip{padding:30px 0 0}.trust-logos{display:grid;grid-template-columns:repeat(5,1fr);gap:28px;align-items:center}.trust-logos>div{height:105px;display:flex;align-items:center;justify-content:center;background:white;border-radius:6px;padding:14px}.trust-logos img{width:100%;height:100%;object-fit:contain}.trust-strip>p{font-size:16px;text-align:center;margin-top:18px}.services{grid-template-columns:repeat(6,1fr)}.service{grid-column:span 2}.service:nth-child(4),.service:nth-child(5){grid-column:span 3;display:grid;grid-template-columns:1fr 1.2fr}.service:nth-child(4) .service-art{height:100%;min-height:280px}.service:nth-child(5){display:flex;background:#e9eddf}.service:nth-child(5) .service-body{padding:34px}.additional-services{padding:30px 0 0;display:grid;grid-template-columns:1fr 2fr;gap:18px 40px}.additional-services p{font-size:16px}.additional-services a{grid-column:2;font-weight:700}.review-section{background:#e9eddf;padding:80px 0}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.review-card{background:#fff;padding:30px;border-radius:10px;display:flex;flex-direction:column}.review-project{font-size:16px;color:#52606a}.review-card blockquote{border:0;padding:0;margin:20px 0 18px;font-size:24px;line-height:1.35}.review-card>p{font-size:16px;margin-bottom:24px}.review-person{margin-top:auto;display:flex;flex-direction:column}.review-person span,.review-card>a{font-size:16px}.review-card>a{margin-top:16px;color:#52606a}.review-close{display:flex;gap:30px;align-items:center;justify-content:space-between;margin-top:35px}.network-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:20px}.network-grid>div{height:110px;padding:15px;background:white;display:flex;align-items:center;justify-content:center}.network-grid img{width:100%;height:100%;object-fit:contain}.nav{gap:18px}nav{gap:18px}@media(max-width:1150px){.network-grid{grid-template-columns:repeat(4,1fr)}.review-card{padding:23px}}@media(max-width:800px){.trust-logos{grid-template-columns:repeat(3,1fr);gap:12px}.trust-logos>div{height:90px;padding:10px}.services{grid-template-columns:1fr}.service,.service:nth-child(4),.service:nth-child(5){grid-column:auto;display:flex}.service:nth-child(4) .service-art{height:240px;min-height:0}.additional-services{display:block}.additional-services p{margin:15px 0}.review-section{padding:55px 0}.review-grid{grid-template-columns:1fr}.review-close{display:block}.review-close>span{display:block;margin-top:20px}.network-grid{grid-template-columns:repeat(3,1fr);gap:12px}.network-grid>div{height:90px;padding:10px}.trust-strip>p{font-size:16px}.review-card{padding:26px}}@media(max-width:420px){.network-grid{grid-template-columns:1fr 1fr}.trust-logos{grid-template-columns:1fr 1fr}.trust-logos>div:last-child{grid-column:span 2}}

.hero-services{display:block;font-family:Arial,sans-serif;font-size:20px;line-height:1.5;letter-spacing:0;font-weight:600;margin-top:23px;max-width:460px}.hero .lead{margin-top:18px}

.credentials>span{font-size:16px;max-width:230px;letter-spacing:0}.credentials strong{font-size:18px}.nav{gap:16px}nav{gap:16px}.nav-phone{display:none}@media(max-width:1100px){.nav>.small{display:none}.menu{display:block;border:1px solid #d5dad4;background:none;padding:10px 15px;border-radius:4px;margin-left:auto;order:2}.nav{flex-wrap:wrap}.nav nav{display:none;order:3;width:100%;padding-bottom:20px}.nav nav.open{display:flex;flex-wrap:wrap}}@media(max-width:800px){.credentials strong{font-size:18px}.credentials>span{font-size:16px}.copyright{flex-wrap:wrap}}

.photo-grid,.video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.gallery-photo{display:block;background:#e9eddf;border-radius:8px;overflow:hidden}.gallery-photo img{display:block;width:100%;height:250px;object-fit:cover}.media-more{margin-top:30px;border-top:1px solid #ccd3ca;padding-top:22px}.media-more summary{cursor:pointer;font-size:18px;font-weight:700}.media-more h3{margin:32px 0 20px;font-size:22px}.media-more .photo-grid img{object-fit:contain}.video-section{background:#e9eddf}.video-grid iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:8px}.video-grid h3{font-size:20px;line-height:1.35;margin:16px 0 12px}.video-grid a{font-size:16px}.media-more .video-grid{margin-top:28px}@media(max-width:800px){.photo-grid,.video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.photo-grid,.video-grid{grid-template-columns:1fr}.gallery-photo img{height:260px}}

/* Refined service grid and stronger brand section rhythm */
.services-band{background:#f4e6df}.people-band{background:#fff}.gallery-band{background:#fbfaf6}.network-band{background:#fff}.faq-band{background:#e6edf0}
.trust-strip{padding-top:32px;padding-bottom:32px}
#services>.section-intro{display:block;text-align:center;max-width:780px;margin:0 auto 48px}
#services>.section-intro>p{max-width:660px;margin:22px auto 0;font-size:18px}
.services{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.service,.service:nth-child(4),.service:nth-child(5){grid-column:auto;display:flex;flex-direction:column;background:#fff;min-width:0;border-radius:12px}
.service .service-art,.service:nth-child(4) .service-art{height:220px;min-height:220px}
.service .service-body,.service:nth-child(5) .service-body{padding:28px}
.service .service-link{margin-top:auto}.service-body>p:last-of-type{margin-bottom:24px}
.rebate{background:#c44922;color:#fff;padding:76px 0}.rebate h2{font-size:clamp(36px,4vw,56px);max-width:650px}.rebate p{color:#fff;max-width:650px;font-size:18px;margin-top:24px}.rebate-inner{gap:56px}.rebate .button{background:#fff;color:#152b36;white-space:normal;max-width:320px;padding:22px 26px}.rebate .button:hover{background:#152b36;color:#fff}
.review-section{background:#152b36;color:#fff;padding:90px 0}.review-section .section-intro>p{color:#e0e8eb}.review-controls{display:flex;align-items:center;justify-content:space-between;margin:0 0 22px;gap:20px}.review-controls>span{font-size:18px}.review-controls>div{display:flex;gap:12px}.review-controls button{width:52px;height:52px;background:transparent;border:1px solid #a8bbc5;color:#fff;border-radius:50%;cursor:pointer;font-size:24px}.review-controls button:hover{background:#c44922;border-color:#c44922}.review-controls button:disabled{opacity:.4;cursor:default;background:transparent;border-color:#a8bbc5}
.review-grid{display:flex;overflow-x:auto;gap:24px;scroll-snap-type:x mandatory;padding:0 0 24px;scrollbar-color:#c44922 #41515a;scrollbar-width:thin;overscroll-behavior-x:contain}.review-card{flex:0 0 calc((100% - 48px)/3);scroll-snap-align:start;color:#152b36;padding:28px;border-radius:12px}.review-author{display:flex;align-items:center;gap:14px;margin-bottom:24px}.review-avatar{width:48px;height:48px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:#c44922;color:#fff;font-weight:700;font-size:18px}.review-person{margin:0}.review-person span{color:#52606a}.review-project{font-size:16px}.review-card blockquote{font-size:23px}.review-card>a{margin-top:auto;padding-top:18px}.review-close .button{background:#fff;color:#152b36}.review-close>span{color:#e0e8eb}.review-close>span a{color:#fff}.review-section :focus-visible{outline-color:#f3b893}
.video-section{background:#9e3719;color:#fff}.video-section p{color:#fff}.video-section a:hover{color:#fff}.video-section .media-more{border-color:#d98b73}
.area{background:#e9eddf}.contact{background:#c44922;color:#fff}.contact p,.contact-actions>span{color:#fff}.contact .button{background:#fff;color:#152b36}.contact a:hover{color:#fff}.contact .button:hover{background:#152b36;color:#fff}
@media(max-width:1000px){.services{grid-template-columns:repeat(2,minmax(0,1fr))}.review-card{flex-basis:calc((100% - 24px)/2)}.rebate-inner{align-items:flex-start;flex-direction:column;gap:28px}}
@media(max-width:600px){.services{grid-template-columns:1fr}.service .service-art,.service:nth-child(4) .service-art{height:220px;min-height:220px}.review-card{flex-basis:88%;padding:24px}.review-section{padding:60px 0}.rebate{padding:60px 0}.rebate .button{max-width:100%;margin-top:0}.review-controls{align-items:center}.review-controls>span{max-width:150px}}

.hero-copy>.hero-services{margin:0 0 22px;font-size:20px;line-height:1.5;max-width:470px;color:#253c48}.utility .wrap{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center}.utility .wrap>span:last-child{text-align:right}.hours-status{font-size:16px;text-align:center;color:#fff;font-weight:700;text-decoration:none}.hours-status:hover{color:#fff;text-decoration:underline}.hours-status[data-open="true"]::before{content:"";display:inline-block;width:9px;height:9px;background:#a7da9b;border-radius:50%;margin-right:8px}html{scroll-padding-top:150px}@media(max-width:1100px){.utility .wrap{display:block;text-align:center}.utility .wrap>span{display:none}}@media(max-width:800px){html{scroll-padding-top:140px}}

/* ===================================================================
   Interior pages. Added for the full site build; the rules above are
   the approved prototype stylesheet and are left untouched.
   =================================================================== */
.page-hero{background:#152b36;color:#fff;padding:74px 0 78px}
.page-hero .eyebrow{font-family:Manrope,Arial,sans-serif;font-size:16px;letter-spacing:.14em;text-transform:uppercase;color:#eaae88;margin-bottom:18px}
.page-hero h1{font-size:clamp(40px,4.2vw,62px);max-width:17ch}
.page-hero .lead{color:#ccd5d8;max-width:620px;margin-top:22px}
.page-hero .actions{margin-top:34px}
.page-hero .text-link{color:#fff}
.page-hero .text-link:hover{color:#f3b893}
.page-hero :focus-visible{outline-color:#f3b893}

.prose{max-width:760px}
.prose h2{margin-bottom:24px}
.prose p+p{margin-top:18px}
.prose p{font-size:18px}
.prose .text-link{margin-top:10px}

.panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:26px;align-items:start}
.panel{background:#fff;border:1px solid #dadfd7;border-radius:12px;padding:30px;min-width:0}
.panel h3{font-size:23px}
.panel>p{margin-top:16px}
.panel-label{font-family:Manrope,Arial,sans-serif;font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:#7b5340;margin-top:24px}
.panel ul{margin:12px 0 0;padding-left:20px;color:#52606a;line-height:1.85}
.panel .service-link{margin-top:26px}
.services-band .panel{background:#fff}

.notice{background:#fdf2ec;border:1px solid #e8b79e;border-left:6px solid #c44922;border-radius:12px;padding:34px 36px}
.notice h2{font-size:28px}
.notice p{margin-top:16px}
.notice ul{margin:16px 0 0;padding-left:20px;color:#52606a;line-height:1.9}

.steps ul{margin:12px 0 0;padding-left:20px;color:#ccd5d8;line-height:1.85;font-size:16px}
.steps>div>div{min-width:0}

.review-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(330px,100%),1fr));gap:24px;align-items:start}
.review-section .review-list .review-card{flex:none;background:#fff;padding:30px}
.review-list blockquote{border:0;padding:0;margin:0 0 18px;font-size:19px;line-height:1.5;font-family:Manrope,Arial,sans-serif}
.review-list cite{margin-top:auto;padding-top:18px;border-top:1px solid #e1e5de;font-size:15px}
.review-person strong{display:block;font-family:Manrope,Arial,sans-serif;font-size:18px}

.form-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:start}
.form-grid h2{margin-bottom:22px}
.form-grid p+p{margin-top:16px}
.form-aside{margin-top:28px;padding-top:24px;border-top:1px solid #d9ddd6;line-height:1.9}
.form-aside .contact-phone{color:#152b36;font-size:26px}
.lead-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;background:#fff;border:1px solid #dadfd7;border-radius:12px;padding:32px}
.lead-form .full{grid-column:1/-1}
.lead-form label{display:block;font-family:Manrope,Arial,sans-serif;font-size:16px;margin-bottom:7px;color:#152b36}
.lead-form .req{color:#c44922;margin-left:3px}
.lead-form input,.lead-form select,.lead-form textarea{width:100%;font:inherit;font-size:16px;color:#152b36;background:#fbfaf6;border:1px solid #cfd6cd;border-radius:6px;padding:13px 14px}
.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{border-color:#c44922;background:#fff}
.lead-form textarea{resize:vertical;min-height:130px}
.lead-form button{width:100%;justify-content:center;border:0;cursor:pointer}
.honeypot{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

ul.plain{list-style:none;padding:0;margin:14px 0 0;line-height:2.1}
ul.plain a{font-weight:700}

@media(max-width:900px){
  .form-grid{grid-template-columns:1fr;gap:34px}
  .lead-form{grid-template-columns:1fr;padding:26px}
  .page-hero{padding:56px 0 58px}
  .panel{padding:26px}
  .notice{padding:26px 24px}
}

/* A lone panel should not stretch the full content width. */
.panels:has(> .panel:only-child){grid-template-columns:minmax(0,560px)}

/* ===================================================================
   Mobile hero. Stacked, the hero was a full screen of cream-on-cream
   text with the photo pushed 865px down, below the fold on every
   phone. On small screens the photo moves behind the copy as a
   full-bleed panel with a navy scrim, which is the same treatment the
   interior page heroes already use.
   =================================================================== */
.hero-call{display:none}

@media(max-width:800px){
  .hero{display:grid;grid-template-columns:1fr;grid-template-rows:auto;min-height:0}
  .hero>.hero-copy,.hero>.hero-photo{grid-area:1/1;min-width:0}

  .hero-photo{height:100%;width:100%}
  .hero-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% center}
  .hero-photo:after{content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(18,37,47,.88) 0%,rgba(18,37,47,.66) 34%,rgba(18,37,47,.70) 58%,rgba(18,37,47,.93) 100%)}
  .photo-caption{display:none}

  .hero-copy{position:relative;z-index:1;padding:46px 24px 44px;justify-content:flex-end}
  .hero-copy>.hero-services{color:#f3c3a7;font-size:17px;font-weight:700;letter-spacing:0;
    text-transform:none;line-height:1.45;margin:0 0 14px;max-width:32ch;
    text-shadow:0 1px 10px rgba(10,22,29,.55)}
  .hero h1{color:#fff;font-size:clamp(40px,11.6vw,50px);letter-spacing:-.035em;text-shadow:0 2px 18px rgba(10,22,29,.5)}
  .hero h1 em{color:#f3b893}
  .hero .lead{color:#f2f6f7;font-size:19px;margin-top:18px;max-width:34ch;text-shadow:0 1px 12px rgba(10,22,29,.6)}
  .hero-detail{display:none}

  .hero .actions{display:grid;grid-template-columns:1fr;gap:12px;margin-top:28px}
  .hero .actions .button{width:100%;justify-content:space-between}
  .hero-call{display:inline-flex;background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff}
  .hero-call:hover{background:#fff;color:#152b36}
  .hero .text-link{color:#fff;justify-content:center;margin-top:4px}
  .hero .text-link:hover{color:#f3b893}
  .hero :focus-visible{outline-color:#f3b893}
}

@media(max-width:800px) and (max-height:700px){
  .hero-copy{padding-top:34px;padding-bottom:34px}
  .hero .lead{font-size:17px}
}

/* Landscape phones keep the side-by-side hero because they are wider than
   800px, but at 390px tall the fixed min-height pushed the CTA off screen. */
@media(max-height:520px) and (orientation:landscape){
  .hero{min-height:0}
  .hero-copy{padding-top:30px;padding-bottom:30px}
  .hero h1{font-size:clamp(34px,4.4vw,44px)}
  .hero .lead{margin-top:14px;font-size:18px}
  .hero-detail{display:none}
}

/* ===================================================================
   Sticky mobile action bar. Phone users get Call and Request quote in
   thumb reach on every page, so the hero drops its own two buttons at
   the same breakpoint and keeps only the scroll cue.
   =================================================================== */
.sticky-cta{display:none}
nav.sticky-cta{margin-left:0}

@media(max-width:800px){
  .sticky-cta{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;
    position:fixed;left:0;right:0;bottom:0;z-index:40;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));
    background:rgba(251,250,246,.97);
    backdrop-filter:saturate(180%) blur(10px);
    border-top:1px solid #dfe3dc;
    box-shadow:0 -6px 24px rgba(21,43,54,.12);
  }
  .sticky-cta a{
    display:flex;align-items:center;justify-content:center;
    font-family:Manrope,Arial,sans-serif;font-size:17px;line-height:1.2;
    text-decoration:none;border-radius:8px;padding:15px 10px;min-height:52px;
  }
  .sticky-call{background:#152b36;color:#fff;border:1px solid #152b36}
  .sticky-call:hover,.sticky-call:active{background:#0d1d26;color:#fff}
  .sticky-quote{background:#c44922;color:#fff;border:1px solid #c44922}
  .sticky-quote:hover,.sticky-quote:active{background:#9e3719;color:#fff}

  /* Keep the bar from covering the end of the page. */
  body{padding-bottom:84px}

  /* The hero's own buttons are redundant once the bar is present. */
  .hero .actions .button{display:none}
  .hero .actions{margin-top:26px}
  .hero .text-link{justify-content:flex-start}

  /* Slightly larger hero description, easier to read on a phone. */
  .hero .lead{font-size:21px;line-height:1.48;max-width:32ch}
}

@media(max-width:360px){
  .sticky-cta a{font-size:16px;padding:14px 6px}
}

/* ===================================================================
   Interior page heroes and feature bands. The interior pages were a
   flat navy slab with no imagery; these give them a photo and a
   rhythm without touching the approved home page design.
   =================================================================== */
.page-hero--split{padding:0;overflow:hidden}
.hero-split{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center;min-height:460px}
.hero-split__copy{padding:66px 0}
.hero-split__media{position:relative;margin:0;align-self:stretch;min-height:420px}
.hero-split__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:14px 14px 0 0}
.hero-split__media figcaption{position:absolute;left:16px;bottom:16px;background:rgba(251,250,246,.94);color:#152b36;
  font-size:14px;font-weight:700;padding:9px 14px;border-radius:6px;max-width:84%}
.hero-points{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:9px}
.hero-points li{position:relative;padding-left:28px;color:#e3eaed;font-size:17px}
.hero-points li:before{content:"";position:absolute;left:0;top:7px;width:15px;height:9px;
  border-left:2.5px solid #eaae88;border-bottom:2.5px solid #eaae88;transform:rotate(-45deg)}

.feature__grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.feature--flip .feature__media{order:2}
.feature__media{margin:0;position:relative}
.feature__media img{width:100%;height:100%;max-height:430px;object-fit:cover;border-radius:12px;display:block}
.feature__media figcaption{position:absolute;left:14px;bottom:14px;background:rgba(251,250,246,.94);color:#152b36;
  font-size:13px;font-weight:700;padding:8px 12px;border-radius:5px;max-width:86%}
.feature__copy h2{margin-bottom:18px}
.feature__copy p{font-size:17px}
.feature__copy p+p{margin-top:14px}
.kicker{font-family:Manrope,Arial,sans-serif;font-size:14px;letter-spacing:.14em;text-transform:uppercase;
  color:#b5491f;margin-bottom:12px}
.ticks{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px}
.ticks li{position:relative;padding-left:28px;color:#52606a;font-size:16px}
.ticks li:before{content:"";position:absolute;left:1px;top:7px;width:14px;height:8px;
  border-left:2.5px solid #426844;border-bottom:2.5px solid #426844;transform:rotate(-45deg)}

.panel__img{width:100%;height:190px;object-fit:cover;border-radius:9px;display:block;margin:0 0 18px}

.statband{background:#152b36;color:#fff;padding:40px 0}
.statband__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:28px;text-align:center}
.statband__grid strong{display:block;font-family:Manrope,Arial,sans-serif;font-size:40px;line-height:1.1;color:#eaae88}
.statband__grid span{display:block;margin-top:7px;font-size:16px;color:#ccd5d8}

@media(max-width:900px){
  .hero-split{grid-template-columns:1fr;gap:0;min-height:0}
  .hero-split__copy{padding:48px 0 40px}
  .hero-split__media{min-height:280px;height:280px;margin:0 -20px}
  .hero-split__media img{border-radius:0}
  .feature__grid{grid-template-columns:1fr;gap:28px}
  .feature--flip .feature__media{order:0}
  .feature__media img{max-height:300px}
  .statband__grid strong{font-size:33px}
}

/* ===================================================================
   Process steps. Kept vertical because each step carries three or
   four bullets, which a five-across row cannot hold legibly. The
   heading column sticks and the active step highlights on scroll.
   =================================================================== */
.steps-section{padding:86px 0}
.steps-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:start}
.steps-aside{position:sticky;top:128px}
.steps-aside p{color:#ccd5d8;margin-top:20px;max-width:430px}
.steps-aside .text-link{margin-top:26px;display:inline-flex}

.steps-rail{list-style:none;margin:30px 0 0;padding:0;display:grid;gap:2px}
.steps-rail__item{display:flex;align-items:center;gap:14px;text-decoration:none;padding:9px 12px;
  border-radius:8px;color:#9fb1ba;font-size:16px;font-weight:700;line-height:1.3;transition:color .25s,background .25s}
.steps-rail__item:hover{color:#fff;background:rgba(255,255,255,.05)}
.steps-rail__num{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  font-family:Manrope,Arial,sans-serif;font-size:14px;border:1px solid #41515a;color:#9fb1ba;transition:.25s}
.steps-rail__item.is-active{color:#fff;background:rgba(234,174,136,.1)}
.steps-rail__item.is-active .steps-rail__num{background:#c44922;border-color:#c44922;color:#fff}

.steps-list{list-style:none;margin:0;padding:0;counter-reset:step}
.step{display:grid;grid-template-columns:auto 1fr;gap:26px;padding:0 0 42px;position:relative}
.step:last-child{padding-bottom:0}
/* the rail line that threads the numbers together */
.step:not(:last-child):before{content:"";position:absolute;left:23px;top:54px;bottom:-4px;width:2px;background:#2b3d47}
.step.is-active:not(:last-child):before{background:linear-gradient(#c44922,#2b3d47)}
.step__num{width:48px;height:48px;flex:none;border-radius:50%;display:grid;place-items:center;
  font-family:Manrope,Arial,sans-serif;font-size:19px;background:#1d333e;border:1px solid #41515a;
  color:#9fb1ba;position:relative;z-index:1;transition:.3s}
.step.is-active .step__num{background:#c44922;border-color:#c44922;color:#fff;transform:scale(1.06)}
.step__body{min-width:0;padding-top:9px;opacity:.78;transition:opacity .3s}
.step.is-active .step__body{opacity:1}
.step h3{font-size:22px;color:#fff}
.step p{margin-top:10px;font-size:16px;color:#ccd5d8}
.step ul{margin:14px 0 0;padding-left:20px;color:#ccd5d8;line-height:1.85;font-size:16px}
.step{scroll-margin-top:128px}

@media(max-width:1150px){.steps-layout{gap:48px}}
@media(max-width:900px){
  .steps-layout{grid-template-columns:1fr;gap:34px}
  .steps-aside{position:static}
  .steps-rail{display:none}
  .steps-section{padding:58px 0}
  .step__body{opacity:1}
  .step{gap:18px;padding-bottom:32px}
  .step__num{width:40px;height:40px;font-size:17px}
  .step:not(:last-child):before{left:19px;top:46px}
}
@media(prefers-reduced-motion:reduce){.step__body{opacity:1}.step__num{transform:none}}

/* Each step gets its own panel. This reads better than bare text on the
   dark band, and it lengthens the column enough for the sticky heading to
   actually travel rather than unpinning almost immediately. */
.step{align-items:start}
.step__body{background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);
  border-radius:12px;padding:22px 26px;margin-top:0;transition:opacity .3s,background .3s,border-color .3s}
.step.is-active .step__body{background:rgba(234,174,136,.07);border-color:rgba(234,174,136,.28)}
.step h3{font-size:21px}
.step:not(:last-child):before{top:56px;bottom:-2px}
.step{padding-bottom:22px}
.steps-list{display:grid;gap:4px}
@media(max-width:900px){
  .step__body{padding:18px 18px 20px}
  .step:not(:last-child):before{top:48px}
}

/* ===================================================================
   Breadcrumbs, pull quotes and link grids, used by the service-area
   pages and the legal pages.
   =================================================================== */
.crumbs{background:#f2f0e9;border-bottom:1px solid #e2e3dc;font-size:15px}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:11px 0}
.crumbs li{display:flex;align-items:center;gap:8px;color:#52606a}
.crumbs li+li:before{content:"/";color:#9aa6ab}
.crumbs a{color:#52606a;text-decoration:none;font-weight:700}
.crumbs a:hover{color:#b53f1e;text-decoration:underline}
.crumbs [aria-current]{color:#152b36}

.quotewrap{padding-top:52px;padding-bottom:52px}
.bigquote{margin:0;max-width:860px}
.bigquote blockquote{margin:0;padding:0;border:0;font-family:Manrope,Arial,sans-serif;font-size:23px;line-height:1.48;color:#152b36}
.bigquote blockquote p{color:inherit;font-size:inherit;line-height:inherit;margin:0}
.bigquote figcaption{margin-top:18px;color:#52606a;font-size:16px}

.gridintro{max-width:720px;margin-top:16px;font-size:17px}
.linkgrid{list-style:none;padding:0;margin:30px 0 0;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr));gap:14px}
.linkgrid a{display:block;background:#fff;border:1px solid #dadfd7;border-radius:10px;
  padding:16px 18px;text-decoration:none;height:100%;transition:border-color .2s,transform .2s}
.linkgrid a:hover{border-color:#c44922;transform:translateY(-2px);color:inherit}
.linkgrid strong{display:block;font-family:Manrope,Arial,sans-serif;font-size:17px;color:#152b36}
.linkgrid span{display:block;margin-top:5px;font-size:15px;color:#52606a}

.prose h3{font-size:21px;margin:30px 0 10px}
.prose ul{margin:14px 0 0;padding-left:21px;color:#52606a;line-height:1.9}
.prose ul li+li{margin-top:6px}
.prose a{color:#b5491f;font-weight:700}
@media(max-width:800px){
  .bigquote blockquote{font-size:20px}
  .linkgrid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:11px}
}

/* ===================================================================
   Footer. Two labelled link columns plus a legal row, so terms,
   privacy, the accessibility statement and the sitemap are reachable
   from every page.
   =================================================================== */
.footer-main{align-items:start}
.footer-brand{display:flex;flex-direction:column;gap:8px}
.footer-label{font-family:Manrope,Arial,sans-serif;font-size:15px;letter-spacing:.1em;
  text-transform:uppercase;color:#7b5340;margin:0 0 4px}
.footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.footer-col a{font-size:16px}
.footer-col p{font-size:16px}
.footer-col p+p{margin-top:8px}
.footer-col p a{font-weight:700}
.legal-links{display:flex;flex-wrap:wrap;gap:18px}
.legal-links a{text-decoration:none;color:#52606a}
.legal-links a:hover{color:#b53f1e;text-decoration:underline}
.copyright{gap:20px;flex-wrap:wrap;align-items:center}

/* Plain index used by the HTML sitemap page. */
.sitemap-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:34px;margin-top:10px}
.sitemap-cols h2{font-size:22px;margin-bottom:14px}
.sitemap-cols ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.sitemap-cols a{font-weight:700;text-decoration:none;color:#152b36}
.sitemap-cols a:hover{color:#b53f1e;text-decoration:underline}
@media(max-width:800px){.footer-main{grid-template-columns:1fr 1fr;gap:28px}}
@media(max-width:520px){.footer-main{grid-template-columns:1fr}}

/* The prose column was centring itself inside the 1240 wrap, which left it
   out of line with every other section heading on the page. Keep the wrap
   where it is and limit the measure instead. */
.wrap.prose{max-width:1240px}
.wrap.prose>*{max-width:760px}

/* Legal pages are a run of short prose sections. At the standard 90px band
   padding they read as a page of gaps, so they get their own rhythm. */
body.legal .section{padding-top:34px;padding-bottom:0}
body.legal .section:last-of-type{padding-bottom:64px}
body.legal .prose h2{font-size:30px;margin-bottom:16px}
body.legal .page-hero{padding-bottom:62px}

/* ===================================================================
   Pull quote on the service area pages. It was a paragraph on a plain
   band; it is now an actual testimonial card with the person attached.
   =================================================================== */
.quotewrap{padding-top:64px;padding-bottom:64px}
.bigquote{position:relative;max-width:900px;margin:0 auto;background:#fff;
  border:1px solid #e3e6dd;border-radius:16px;padding:44px 48px 38px;
  box-shadow:0 18px 44px rgba(21,43,54,.07)}
.bigquote:before{content:"\201C";position:absolute;top:10px;right:34px;
  font-family:Manrope,Arial,sans-serif;font-size:108px;line-height:1;color:#f3ddd0;
  pointer-events:none}
.bigquote__eyebrow{position:relative;font-family:Manrope,Arial,sans-serif;font-size:14px;
  letter-spacing:.14em;text-transform:uppercase;color:#b5491f;margin:0 0 16px}
.bigquote blockquote{position:relative;margin:0;padding:0;border:0;
  font-family:Manrope,Arial,sans-serif;font-size:25px;line-height:1.45;color:#152b36}
.bigquote blockquote p{color:inherit;font-size:inherit;line-height:inherit;margin:0}
.bigquote figcaption{display:flex;align-items:center;gap:15px;margin-top:28px;
  padding-top:24px;border-top:1px solid #e9ece4}
.bigquote__avatar{width:48px;height:48px;flex:none;border-radius:50%;display:grid;
  place-items:center;background:#c44922;color:#fff;
  font-family:Manrope,Arial,sans-serif;font-size:19px}
.bigquote__who{display:flex;flex-direction:column;min-width:0}
.bigquote__who strong{font-family:Manrope,Arial,sans-serif;font-size:18px;color:#152b36}
.bigquote__who span{font-size:15px;color:#52606a}
.bigquote__more{margin-top:22px;font-size:16px}
.bigquote .credit{display:block}

/* Photo credit under a feature image. */
.feature__media .credit{display:block;font-weight:400;margin-top:3px;font-size:11px;color:#56636b}
.feature__media .credit a{color:#56636b;text-decoration:underline}
.feature__media figcaption{max-width:72%;line-height:1.35}

@media(max-width:800px){
  .bigquote{padding:32px 24px 28px;border-radius:14px}
  .bigquote:before{font-size:72px;right:18px;top:4px}
  .bigquote blockquote{font-size:20px}
  .feature__media figcaption{max-width:92%}
}

/* Photo credits table. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
.credits{width:100%;border-collapse:collapse;font-size:16px;margin-top:4px}
.credits th,.credits td{text-align:left;padding:12px 14px;border-bottom:1px solid #e3e6dd;vertical-align:top}
.credits thead th{font-family:Manrope,Arial,sans-serif;font-size:14px;letter-spacing:.08em;
  text-transform:uppercase;color:#7b5340;border-bottom:1px solid #d2d7cc}
.credits tbody th{font-family:Manrope,Arial,sans-serif;font-size:17px;color:#152b36;white-space:nowrap}
.credits td{color:#52606a}
.credits a{color:#b5491f;font-weight:700}
@media(max-width:700px){
  .credits,.credits tbody,.credits tr,.credits td,.credits th{display:block}
  .credits thead{display:none}
  .credits tr{border-bottom:1px solid #e3e6dd;padding:14px 0}
  .credits th,.credits td{border:0;padding:2px 0}
}

/* Four service cards across on the service area pages. Three columns would
   leave the fourth stranded on a row of its own. */
.services--four{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.services--four .service-art,.services--four .service:nth-child(4) .service-art{height:180px;min-height:180px}
.services--four .service-body{padding:22px}
.services--four .service h3{font-size:20px}
.services--four .service p{font-size:15px;margin-top:13px}
.services--four .service ul{font-size:15px;line-height:1.75;margin:16px 0}
.services--four .service-link{font-size:15px}
@media(max-width:1100px){.services--four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.services--four{grid-template-columns:1fr}}
