/* Cleaning campaign: azure, sunshine yellow, tactile photography. */
body{background:#f7f8f4;color:#142d40}
header{position:absolute;inset:0 0 auto;z-index:3;color:white;padding:30px 4.5%;border-bottom:1px solid #ffffff35;background:none}
header .logo,header .logo span{color:white}header .location{color:#e1eff8}header .small-button{background:#ffe138;color:#143447;border-radius:30px;padding:14px 22px}nav a:hover{color:#ffe138}
.campaign-hero{margin:0;border-radius:0;display:block;height:100svh;min-height:850px;background:#438fc2;isolation:isolate;overflow:hidden}
.campaign-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2}
.campaign-hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#2676a340,transparent 55%);pointer-events:none}
.campaign-copy{position:absolute;left:7%;top:22%;width:57%;color:white}
.campaign-copy .eyebrow{color:#e0f2ff;font-size:11px;letter-spacing:.16em;margin-bottom:35px}
.campaign-hero h1{font-size:clamp(84px,8.5vw,190px);font-weight:650;letter-spacing:-.065em;line-height:.96;margin:0 0 35px}.campaign-hero h1>span{color:#ffe138;white-space:nowrap}
.campaign-description{font-size:clamp(19px,1.55vw,29px);line-height:1.4;letter-spacing:-.025em;color:#fff}
.campaign-hero .campaign-cta{background:#ffe138;color:#163c50;border-radius:40px;padding:19px 25px;font-size:15px;gap:45px;margin-top:32px}.campaign-cta:hover{background:#ffec78!important}
.campaign-aside{position:absolute;right:4%;bottom:140px;display:flex;flex-direction:column;font-size:10px;letter-spacing:.16em;line-height:1.8;color:white}
.campaign-bottom{position:absolute;bottom:0;left:4.5%;right:4.5%;border-top:1px solid #ffffff60;display:flex;justify-content:space-between;gap:20px;padding:28px 0;color:white;font-size:12px}
.section{padding-top:110px;padding-bottom:110px}.service-grid{gap:28px}.service-grid article,.service-grid article:nth-child(2){background:transparent;border:0;border-radius:0;padding:0}.service-photo{height:280px;border-radius:5px;margin-bottom:25px}.service-photo.mop-detail{object-position:100% center}.service-grid h3{margin:22px 0;font-size:35px}.service-grid button{color:#17699f}.service-grid p{max-width:390px}
.services .section-head h2>span{color:#438fc2}.number{color:#587586}
.calculator{background:#e8f2f8;border-radius:6px}.estimate{background:#12496b;border-radius:6px}.yellow,.small-button{background:#ffe138}.yellow:hover{background:#ffeb79}.object-options input:checked+span{background:#12496b;border-color:#12496b}.button{border-radius:30px}.breathing{border-radius:6px}.breathing em{color:#ffe138}.local{background:#ffe138;border-radius:6px}.local h2>span{color:#17628f}footer{background:#12496b}footer h2>span{color:#ffe138}.how li>span,.questions summary>span{color:#17699f}
@media(min-width:1900px){.campaign-copy{top:23%}.campaign-copy .eyebrow{margin-bottom:45px}}
@media(max-width:1050px){header{padding:24px 4%}.campaign-hero{min-height:820px}.campaign-copy{left:6%;top:25%;width:70%}.campaign-hero h1{font-size:clamp(80px,10vw,115px)}.campaign-copy .eyebrow{font-size:9px}.campaign-description{font-size:22px}.service-photo{height:230px}.service-grid{gap:18px}.service-grid h3{font-size:28px}}
@media(max-width:700px){header{padding:23px 5%}.campaign-hero{height:100svh;min-height:800px;margin:0;border-radius:0}.campaign-photo{object-position:66% center}.campaign-hero:after{background:linear-gradient(90deg,#246b9aba,#246b9a40 80%)}.campaign-copy{left:6%;top:21%;width:88%}.campaign-copy .eyebrow{font-size:8px;letter-spacing:.08em;max-width:240px;margin-bottom:28px}.campaign-hero h1{font-size:clamp(66px,14vw,96px);margin-bottom:30px}.campaign-description{font-size:21px}.campaign-hero .campaign-cta{font-size:13px;padding:17px 21px;margin-top:28px;gap:28px}.campaign-aside{display:none}.campaign-bottom{left:6%;right:6%;padding:20px 0;flex-wrap:wrap;gap:12px;font-size:10px}.campaign-bottom a{flex-basis:100%;margin-top:6px}.section{padding-top:65px;padding-bottom:65px}.service-grid{gap:40px}.service-photo{height:270px}.service-grid h3{font-size:32px}.service-grid article{padding:0}.service-grid p{margin-bottom:22px}}

/* Unified campaign system below the approved hero. */
:root{--clean-blue:#328bc4;--clean-deep:#125477;--clean-yellow:#ffe138;--clean-ink:#143c53}
body{background:#fff;color:var(--clean-ink)}
.section{padding-left:7%;padding-right:7%}
.section h2{font-size:clamp(44px,5.4vw,90px);font-weight:600;line-height:1.02;letter-spacing:-.06em}
.section h2>span{color:var(--clean-blue)}
.section .eyebrow{color:#426b81;letter-spacing:.16em}
.services{background:#fff}.services .section-head{max-width:1100px}.service-grid{margin-top:60px;gap:32px}
.service-photo{height:auto;aspect-ratio:1.3;object-fit:cover;border-radius:18px;margin-bottom:25px}
.service-grid .number{display:inline-flex;align-self:flex-start;background:var(--clean-yellow);color:var(--clean-ink);border-radius:30px;padding:9px 14px;font-weight:600;letter-spacing:.06em}
.service-grid h3{font-size:clamp(27px,2.4vw,41px);font-weight:550;line-height:1.08}
.service-grid p{color:#4c6979;line-height:1.7}
.service-grid button{color:var(--clean-deep);border-top:1px solid #c5dce9;font-size:14px;font-weight:550}
.service-grid button:hover{color:#2585bc}
.calculator{background:var(--clean-blue);color:white;margin:0;border-radius:0;padding-top:110px;padding-bottom:110px}
.calculator .section-head h2>span{color:var(--clean-yellow)}.calculator .section-head .eyebrow,.calculator .section-head>p:last-child{color:#e4f4ff}
.calculator .calc-layout{gap:7%;margin-top:65px}
.calculator legend{font-size:21px}.calculator .object-options span{border:1px solid #ffffff80;color:white;border-radius:30px;padding:14px}
.calculator .object-options input:checked+span{background:white;color:var(--clean-deep);border-color:white}
.calculator select,.calculator input:not([type=checkbox]):not([type=radio]):not([type=range]){border:0;border-radius:12px;color:var(--clean-ink)}
.calculator .range-label,.calculator .range-ends,.calculator .window-row small,.calculator .calc-caption{color:#e0f1fc}
.calculator input[type=range],.calculator input[type=checkbox]{accent-color:var(--clean-yellow)}
.calculator .extras>label{border-bottom:1px solid #ffffff40;font-size:14px;padding:20px 0}.calculator .stepper input#windows{color:white}.calculator .stepper button{border-radius:50%;color:var(--clean-deep)}
.calculator .estimate{background:var(--clean-yellow);color:var(--clean-ink);padding:40px;border-radius:22px;box-shadow:0 18px 50px #07558918}
.estimate .eyebrow,.estimate #summary,.estimate .estimate-note,.estimate .demo-note{color:#315260}.estimate #total{font-weight:600;font-size:clamp(65px,6vw,110px);margin:28px 0 15px}.estimate dl{border-color:#183c532c}.estimate .button{background:var(--clean-deep);color:white;border-radius:40px}.estimate .button:hover{background:#0b4260}
.breathing{margin:0;border-radius:0;height:650px;background:var(--clean-blue)}.breathing:after{background:linear-gradient(90deg,#126d9e55,transparent 80%)}.breathing>div{left:7%}.breathing h2{font-weight:600;font-size:clamp(60px,6.4vw,110px);line-height:1.02;letter-spacing:-.06em}.breathing .button{background:var(--clean-yellow);color:var(--clean-ink);padding:20px 27px}
.how{gap:8%;align-items:start}.how-photo{aspect-ratio:1.5;object-fit:cover;border-radius:18px;margin-top:38px}
.how ol{padding-top:12px}.how li{padding:34px 0;gap:24px;border-color:#c9dde7}.how li>span{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;border-radius:50%;background:var(--clean-yellow);color:var(--clean-ink);font-size:14px;padding:0}.how h3{font-size:clamp(24px,2.15vw,35px);font-weight:550}.how li p{font-size:16px;color:#4c6979;line-height:1.7}
.local{margin:0;border-radius:0;background:var(--clean-yellow);align-items:center}.local h2>span{color:var(--clean-deep)}.local>div>p:last-child{color:#365867}.local .eyebrow{color:#42616d}
#district-buttons{gap:12px}#district-buttons button{border:1px solid #526d6b70;border-radius:40px;padding:14px 19px;font-size:14px;color:var(--clean-ink)}#district-buttons button:hover{background:#ffffff50}#district-buttons button[aria-pressed=true]{background:var(--clean-deep);border-color:var(--clean-deep);color:white}.districts .text-button{display:inline-flex;padding:15px 23px;border:0;border-radius:40px;background:var(--clean-deep);color:white;margin-top:8px}.district-status{color:#365867}
.questions{gap:8%}.questions summary{font-size:18px;letter-spacing:-.025em;padding:26px 0}.questions summary>span{display:grid;place-items:center;flex-shrink:0;border-radius:50%;width:32px;height:32px;background:#e5f3fb;color:var(--clean-deep);font-size:23px}.questions details p{font-size:16px;line-height:1.7;color:#4c6979}.questions details{border-color:#c9dde7}
footer{background:var(--clean-blue);padding:80px 7% 30px;overflow:hidden}footer>div:first-child>.logo{display:none}footer h2{font-size:clamp(48px,5vw,85px);font-weight:600}footer .button{background:var(--clean-yellow);color:var(--clean-ink);padding:20px 28px}.footer-wordmark{display:block;white-space:nowrap;font-size:clamp(90px,19vw,390px);letter-spacing:-.085em;font-weight:800;line-height:1.12;margin:45px 0 20px;color:white}.footer-wordmark span{color:var(--clean-yellow)}.footer-bottom{margin-top:25px;color:#e0f1fc}
dialog{background:#f3faff;border-radius:22px}dialog h2{font-weight:600}dialog .button{background:var(--clean-deep);border-radius:35px}#booking-summary{background:#def0fc;color:var(--clean-deep)}
@media(max-width:1050px){.service-grid{gap:22px}.calculator .estimate{padding:28px}.how{gap:5%}.how li{gap:17px}.section{padding-left:6%;padding-right:6%}}
@media(max-width:700px){.section{padding:65px 6%}.section h2{font-size:43px}.service-grid{margin-top:35px;gap:45px}.service-photo{aspect-ratio:1.3;height:auto}.service-grid h3{font-size:32px}.calculator{margin:0;border-radius:0}.calculator .calc-layout{margin-top:35px;gap:30px}.calculator .extras>label{font-size:12px}.calculator .estimate{padding:29px}.estimate #total{font-size:74px}.breathing{height:530px;margin:0;border-radius:0}.breathing>img{object-position:65% center}.breathing:after{background:#12628c55}.breathing>div{left:6%;right:6%}.breathing h2{font-size:58px}.breathing .button{font-size:12px;padding:18px 20px}.how-photo{margin-top:30px}.how ol{padding:0}.how li{padding:25px 0}.how h3{font-size:26px}.local{margin:0;border-radius:0}#district-buttons button{font-size:12px;padding:12px 16px}.questions summary{font-size:16px}.footer-wordmark{font-size:19vw;margin-top:35px}footer{padding:55px 6% 25px}footer h2{font-size:48px}.footer-bottom{font-size:10px}}

/* Light photographic rhythm from the follow-up reference. */
.services{background:linear-gradient(145deg,#f6fbff,#eef7fc 65%,#f9fcff)}
.service-grid article,.service-grid article:nth-child(2){background:#fff;padding:18px 18px 25px;border-radius:24px;box-shadow:0 12px 35px #2c6e9610}
.service-grid article>h3,.service-grid article>p,.service-grid article>button{margin-left:10px;margin-right:10px}.service-grid article>.number{margin-left:10px}
.service-photo{border-radius:14px}.service-grid article>button{padding-bottom:0}
.how{background:#f5faff}.how-collage{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:35px;align-items:stretch}.how-collage>img{height:210px;border-radius:20px}.how-collage>img:first-child{margin-top:35px}.how-collage>img:nth-child(2){height:245px}.how-collage>img:last-child{height:210px}.collage-note{border-radius:20px;background:var(--clean-blue);color:white;font-size:20px;line-height:1.35;padding:26px;display:flex;flex-direction:column;justify-content:center}.collage-note strong{font-weight:600}.collage-note>span{font-size:38px;color:var(--clean-yellow);margin-top:15px}.questions{background:#f6fbff}
@media(max-width:700px){.service-grid article,.service-grid article:nth-child(2){padding:14px 14px 24px}.how-collage{gap:10px}.how-collage>img,.how-collage>img:last-child{height:160px}.how-collage>img:nth-child(2){height:185px}.how-collage>img:first-child{margin-top:25px}.collage-note{font-size:16px;padding:18px}.collage-note>span{font-size:28px}}

.how ol{align-self:stretch;display:flex;flex-direction:column;justify-content:space-between}.how li{flex:1;align-items:center}@media(max-width:700px){.how li{align-items:flex-start}}

/* The window campaign belongs to the calculator, not a separate banner. */
.calculator{background-color:#087bbf;background-image:linear-gradient(90deg,rgba(5,68,114,.8) 0%,rgba(5,79,124,.64) 49%,rgba(4,75,115,.12) 100%),url('assets/window-campaign.webp');background-size:cover;background-position:center;background-repeat:no-repeat}
.calculator .calc-form{padding:28px;border:1px solid #ffffff35;border-radius:20px;background:#075383b8;backdrop-filter:blur(8px)}
.calculator .estimate{box-shadow:0 20px 65px #003b6330}
@media(max-width:700px){.calculator{background-position:63% center}.calculator .calc-form{padding:20px 16px;background:#075383de}.calculator .calc-layout{gap:24px}}

/* The following content slides over the stationary opening campaign. */
.campaign-hero{position:sticky;top:min(0px,calc(100svh - 850px));z-index:0}
main>section:not(.campaign-hero){position:relative;z-index:1}
.services{box-shadow:0 -20px 50px #123c5318}
footer{position:relative;z-index:1}
@media(max-width:1050px){.campaign-hero{top:min(0px,calc(100svh - 820px))}}
@media(max-width:700px){.campaign-hero{top:min(0px,calc(100svh - 800px))}}
@media(prefers-reduced-motion:reduce){.campaign-hero{position:relative;top:auto}}

/* Equal collage tiles: no staggered heights or vertical offsets. */
.how-collage{align-items:stretch}
.how-collage>img,.how-collage>img:first-child,.how-collage>img:nth-child(2),.how-collage>img:last-child,.how-collage>.collage-note{width:100%;height:auto;min-height:0;aspect-ratio:1.5;margin-top:0;object-fit:cover;border-radius:20px}
@media(max-width:700px){.how-collage>.collage-note{padding:14px;font-size:14px}.collage-note>span{margin-top:8px;font-size:24px}}

/* Persistent navigation above all scrolling sections. */
header{position:fixed;inset:0 0 auto;z-index:50;background:rgba(50,139,196,.78);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid #ffffff25}
html{scroll-padding-top:110px}
@media(max-width:1050px){html{scroll-padding-top:100px}}
@media(max-width:700px){html{scroll-padding-top:90px}}
