@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap');
/* Full-width photo slider and reference-inspired type system. */
body,input,select,textarea,button{font-family:Montserrat,Arial,sans-serif}
.hero-slider{display:flex;align-items:center;min-height:690px;height:auto;position:relative;background:#082943;color:#fff}
.hero-slides,.hero-slide{position:absolute;inset:0}
.hero-slides{overflow:hidden}
.hero-slide{background-position:center 47%;background-size:cover;opacity:0;transform:scale(1.035);transition:opacity 1.1s ease,transform 7s linear}
.hero-slide.active{opacity:1;transform:scale(1)}
.hero-slider::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,24,44,.83),rgba(2,37,58,.52) 50%,rgba(2,41,64,.22)),linear-gradient(0deg,#041d32a6,transparent 45%);pointer-events:none}
.hero-slider .herocopy{position:relative;z-index:1;max-width:920px;padding:110px 6% 116px;margin:0}
.hero-slider h1{font-family:Montserrat,Arial,sans-serif;font-weight:800;font-size:clamp(3.2rem,5vw,5.8rem);line-height:1.08;letter-spacing:-.045em;max-width:850px;text-shadow:0 3px 16px #031a2b88}
.hero-slider p:not(.eyebrow){font-size:clamp(1rem,1.45vw,1.25rem);line-height:1.65;color:#fff;max-width:670px;text-shadow:0 2px 10px #0018279c}
.hero-slider .eyebrow{color:#9aedf8;font-size:12px;letter-spacing:.17em}
.hero-slider .btn{background:#fff!important;color:#086d8b!important;box-shadow:0 12px 28px #001b2e50;border-radius:50px;padding:16px 27px}
.hero-slider .btn:hover{background:#ccf9ff!important;color:#04546f!important}
.hero-slider .call{color:#fff;font-size:14px}
.hero-slider .hero-points{color:#e1f7fa;font-size:13px;font-weight:700;margin-top:28px}
.slider-controls{position:absolute;z-index:2;bottom:27px;left:6%;display:flex;align-items:center;gap:16px}
.slider-arrow{height:35px;width:35px;border:1px solid #ffffffa8;border-radius:50%;background:#08294378;color:#fff;font-size:25px;line-height:1;cursor:pointer}
.slider-arrow:hover{background:#fff;color:#076482}
.slider-dots{display:flex;gap:9px;align-items:center}
.slider-dot{width:10px;height:10px;border-radius:50%;background:#ffffff84;border:1px solid #fff;cursor:pointer;padding:0}
.slider-dot.active{width:29px;border-radius:10px;background:#8ce8f5;border-color:#8ce8f5}
nav{height:104px}.links a{font-weight:700;letter-spacing:.02em}.navbtn{border-radius:50px}
h1,h2,h3{font-family:Montserrat,Arial,sans-serif}
h2{letter-spacing:-.045em!important;font-weight:800!important}
h2 em,.hero em{font-family:Montserrat,Arial,sans-serif;font-style:normal;font-weight:800;color:#068fac}
.about h2,.results h2,.book h2{font-family:Montserrat,Arial,sans-serif}
.aboutpic{min-height:500px;padding:20px 0 20px 6%;display:flex;align-items:stretch}
.aboutpic img{width:100%;height:100%;max-height:none;object-fit:cover;object-position:center;border-radius:14px;box-shadow:0 18px 38px #082b4921}
.about>div:last-child{padding:75px 9%}
.photo-cta{position:relative;min-height:390px;background:linear-gradient(90deg,#062641d9,#062641a6),url('hero-patio.webp') center 54%/cover;color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;padding:65px 6%}
.photo-cta>div{position:relative;max-width:960px}
.photo-cta .eyebrow{color:#9aeffa}
.photo-cta h2{font-size:clamp(2.2rem,4.4vw,4.7rem);line-height:1.12;margin:10px 0 16px;color:#fff}
.photo-cta p:not(.eyebrow){font-size:18px;margin:0 auto 25px;max-width:700px;color:#e9f7fa}
.photo-cta .btn{background:#fff!important;color:#08799a!important;border-radius:50px;padding:15px 28px}
.photo-cta .btn:hover{background:#caf5fb!important}
.service-visual{background:#f5fbfd;display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);align-items:center;gap:4%;overflow:hidden}
.service-visual h2{font-size:clamp(2.3rem,3.7vw,4.4rem);line-height:1.13;margin:9px 0 18px}
.service-visual-copy>p:not(.eyebrow){color:#496b7b;font-size:16px;max-width:530px;margin-bottom:26px}
.service-art{height:430px;position:relative;isolation:isolate}
.map-graphic{position:absolute;inset:10px 0 20px 0;border-radius:22px;background:linear-gradient(108deg,#bce7ecb0,#dff5f7d0),repeating-linear-gradient(28deg,transparent 0 45px,#8dbac4 46px 48px,transparent 49px 90px),repeating-linear-gradient(128deg,transparent 0 67px,#9dc3c9 68px 70px,transparent 71px 125px);box-shadow:0 18px 42px #083b4b20;overflow:hidden}
.map-graphic::before{content:"";position:absolute;inset:-12%;border:27px solid #f5fbfd88;transform:rotate(-29deg);border-radius:40%;box-shadow:180px 90px 0 -6px #f5fbfd77,-140px 160px 0 -8px #f5fbfd70}
.map-graphic::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 10%,#ffffff5c 90%)}
.pin{position:absolute;width:21px;height:21px;background:#0aa8c8;border:4px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 4px 12px #055d7277;z-index:1}
.pin-one{top:14%;left:18%}.pin-two{top:38%;left:42%}.pin-three{top:19%;left:70%}.pin-four{top:67%;left:24%}.pin-five{top:74%;left:77%}
.van-graphic{position:absolute;z-index:2;right:3%;bottom:13%;width:62%;height:150px;filter:drop-shadow(3px 19px 9px #07384d4d)}
.van-body{position:absolute;left:0;right:22%;top:13%;bottom:22%;display:flex;align-items:center;justify-content:center;background:linear-gradient(#fff 0 63%,#0a85ad 64% 100%);border:3px solid #17546b;border-radius:20px 7px 4px 5px;color:#073554;font-size:clamp(14px,2vw,25px);font-weight:800;letter-spacing:.02em}
.van-cab{position:absolute;right:0;top:26%;height:65%;width:27%;background:linear-gradient(118deg,#fff 0 60%,#dbedf0 61%);border:3px solid #17546b;border-radius:4px 20px 8px 2px}
.van-cab::before{content:"";position:absolute;inset:8px 16px 34px 5px;background:#267c9b;clip-path:polygon(0 0,75% 0,100% 100%,0 100%);border-radius:3px}
.wheel{position:absolute;bottom:7%;height:37px;width:37px;background:#132d3d;border:8px solid #384e59;border-radius:50%;z-index:3;box-shadow:inset 0 0 0 5px #bdced5}
.wheel-one{left:13%}.wheel-two{right:11%}
@media(max-width:1050px){nav{height:86px}.links.show{top:86px}.hero-slider{min-height:640px}.hero-slider .herocopy{padding:80px 6% 105px}.hero-slider h1{font-size:clamp(2.8rem,7vw,5.4rem)}}
@media(max-width:700px){.hero-slider{min-height:660px;display:flex;align-items:center}.hero-slide{background-position:65% center}.hero-slider::after{background:linear-gradient(90deg,#02233bcd,#02233b81),linear-gradient(0deg,#041d32d6,transparent 70%)}.hero-slider .herocopy{order:initial;padding:55px 6% 100px}.hero-slider h1{font-size:clamp(2.55rem,9vw,4.1rem);line-height:1.12;letter-spacing:-.035em}.hero-slider p:not(.eyebrow){font-size:15px}.hero-slider .call{display:block;text-align:center;margin:8px 0 0}.hero-slider .hero-points{font-size:11px;margin-top:15px}.slider-controls{bottom:21px}.aboutpic{padding:16px 6% 0;min-height:0;height:auto}.aboutpic img{height:auto;aspect-ratio:3/2;object-fit:cover}.about>div:last-child{padding:38px 6% 50px}.photo-cta{min-height:360px;padding:55px 6%}.photo-cta p:not(.eyebrow){font-size:15px}.service-visual{grid-template-columns:1fr;gap:20px}.service-art{height:330px}.van-graphic{height:120px;bottom:11%;width:72%}.van-body{font-size:14px}.wheel{height:30px;width:30px;border-width:6px}}
@media(prefers-reduced-motion:reduce){.hero-slide{transition:none!important;transform:none!important}.slider-arrow,.slider-dot{transition:none!important}}
/* Realistic visual, refined comparison links, and light interaction. */
.service-art{border-radius:22px;overflow:hidden;box-shadow:0 18px 42px #083b4b20;background:#e6f4f7;transition:transform .35s ease,box-shadow .35s ease}
.service-art img{width:100%;height:100%;display:block;object-fit:contain;transition:transform .5s ease}
.service-art:hover{transform:translateY(-7px);box-shadow:0 27px 48px #083b4b35}
.service-art:hover img{transform:scale(1.025)}
.comparison-card figcaption a{display:inline-flex;align-items:center;gap:8px;border:1px solid #b9dfe7;border-radius:100px;padding:8px 11px;color:#087f9f;font-size:12px;font-weight:800;line-height:1.2;transition:background .25s,color .25s,border-color .25s,transform .25s}
.comparison-card figcaption a:hover{background:#087f9f;color:#fff;border-color:#087f9f;text-decoration:none;transform:translateY(-2px)}
.comparison-card figcaption a svg{flex:none;transition:transform .25s}
.comparison-card figcaption a:hover svg{transform:translateX(3px)}
.comparison-card figcaption a:focus-visible{outline:3px solid #18bbd4;outline-offset:3px}
@media(max-width:700px){.service-art{height:auto;aspect-ratio:16/9}.service-art img{height:100%}}
@media(prefers-reduced-motion:reduce){.service-art,.service-art img,.comparison-card figcaption a,.comparison-card figcaption a svg{transition:none!important}.service-art:hover,.service-art:hover img,.comparison-card figcaption a:hover,.comparison-card figcaption a:hover svg{transform:none!important}}
/* Phone-sized tap targets and safe focus treatment. */
.slider-arrow{width:44px;height:44px}
.slider-dot{position:relative;width:44px;height:44px;border:0;background:transparent;border-radius:50%;display:grid;place-items:center}
.slider-dot::after{content:"";display:block;width:10px;height:10px;border:1px solid #fff;border-radius:50%;background:#ffffff84;transition:width .2s ease,background .2s ease}
.slider-dot.active{width:44px;border-radius:50%;background:transparent;border:0}
.slider-dot.active::after{width:27px;border-radius:10px;background:#8ce8f5;border-color:#8ce8f5}
.slider-arrow:focus-visible,.slider-dot:focus-visible{outline:3px solid #a5f2fa;outline-offset:2px}
.comparison-card figcaption a{min-height:44px}
@media(max-width:400px){.slider-controls{gap:4px}.slider-arrow,.slider-dot{width:42px;height:42px}}
@media(prefers-reduced-motion:reduce){.slider-dot::after{transition:none!important}}
/* Consistent, visible movement with a static fallback. */
.reveal{opacity:1;transform:none}
.motion-ready .reveal{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease}
.motion-ready .reveal.in-view{opacity:1;transform:translateY(0)}
.motion-ready .trust>div:nth-child(2),.motion-ready .cards article:nth-child(2),.motion-ready .comparison-card:nth-child(2),.motion-ready .promise-grid article:nth-child(2),.motion-ready .reasons article:nth-child(2),.motion-ready .steps article:nth-child(2){transition-delay:.11s}
.motion-ready .trust>div:nth-child(3),.motion-ready .cards article:nth-child(3),.motion-ready .comparison-card:nth-child(3),.motion-ready .promise-grid article:nth-child(3),.motion-ready .reasons article:nth-child(3),.motion-ready .steps article:nth-child(3){transition-delay:.22s}
.motion-ready .cards article:nth-child(4),.motion-ready .reasons article:nth-child(4){transition-delay:.12s}
@keyframes heroArrive{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.hero-slider .herocopy>*{animation:heroArrive .75s both}
.hero-slider .herocopy>*:nth-child(2){animation-delay:.12s}
.hero-slider .herocopy>*:nth-child(3){animation-delay:.22s}
.hero-slider .herocopy>*:nth-child(n+4){animation-delay:.34s}
@media(hover:hover){
 .links a:not(.navbtn){position:relative}
 .links a:not(.navbtn)::after{content:"";position:absolute;bottom:-6px;left:0;width:100%;height:2px;background:#0aaacb;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
 .links a:not(.navbtn):hover::after{transform:scaleX(1)}
 .trust>div{transition:transform .28s ease,background .28s ease,box-shadow .28s ease;border-radius:12px;padding:10px}
 .trust>div:hover{transform:translateY(-5px);background:#fff;box-shadow:0 10px 25px #062d4717}
 .cards .service-card:hover{transform:translateY(-9px);box-shadow:0 24px 45px #092b4930}
 .cards .service-card:hover .service-card-media img{transform:scale(1.035)}
 .comparison-card:hover{transform:translateY(-8px);box-shadow:0 23px 42px #00182a80}
 .promise-grid article{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
 .promise-grid article:hover{transform:translateY(-7px);border-color:#65c9d9;box-shadow:0 18px 32px #052e4928}
 .book form{transition:transform .3s ease,box-shadow .3s ease}
 .book form:hover{transform:translateY(-4px);box-shadow:0 24px 52px #041a3670}
 .service-card-content a svg,.cards .service-card a{transition:color .2s ease,transform .2s ease}
 .cards .service-card a:hover{transform:translateX(4px)}
}
.btn:active,.navbtn:active,.slider-arrow:active,.comparison-card figcaption a:active{transform:scale(.97)}
.service-faq details{transition:background .3s ease,border-color .3s ease,box-shadow .3s ease}
.service-faq details:hover,.service-faq details[open]{background:#eaf8fb;border-color:#78cfde;box-shadow:0 10px 23px #06335413}
@media(max-width:700px){
 html,body{max-width:100%;overflow-x:clip}
 nav{padding-inline:5%}nav img{width:150px;height:78px}
 .hero-slider{min-height:0}
 .hero-slider .herocopy{width:100%;padding:65px 6% 100px}
 .hero-slider h1{font-size:clamp(2.15rem,8.7vw,3.45rem);overflow-wrap:normal}
 .slider-controls{left:5%;bottom:13px}
 .service-card-content{padding:23px 22px 25px}
 .comparison-card figcaption{flex-wrap:wrap}
 .book form{width:100%;min-width:0}
 .service-faq details{overflow-wrap:anywhere}
}
@media(max-width:360px){nav img{width:132px;height:70px}.hero-slider .eyebrow{font-size:10px}.hero-slider .hero-points{line-height:1.6}.comparison-card figcaption a{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.hero-slider .herocopy>*{animation:none!important}.motion-ready .reveal,.reveal{opacity:1!important;transform:none!important;transition:none!important}}
@media(hover:hover){
 .motion-ready .trust>div.reveal.in-view:hover,
 .motion-ready .cards .service-card.reveal.in-view:hover,
 .motion-ready .comparison-card.reveal.in-view:hover,
 .motion-ready .promise-grid article.reveal.in-view:hover,
 .motion-ready .reasons article.reveal.in-view:hover,
 .motion-ready .steps article.reveal.in-view:hover,
 .motion-ready .service-art.reveal.in-view:hover{transform:translateY(-7px)}
}
