/* Cleaning takes the lead after the service selector. */
@font-face{font-family:Barlow Condensed;src:url('assets/fonts/barlow-condensed-600.woff') format('woff');font-weight:600;font-display:swap}
@font-face{font-family:Barlow Condensed;src:url('assets/fonts/barlow-condensed-700.woff') format('woff');font-weight:700;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-variable.woff') format('woff');font-weight:400 800;font-display:swap}

:root{--paper:#f4f5f3;--muted:#666c70;--line:#181b1e26;--font-body:Manrope,Arial,sans-serif;--font-display:'Barlow Condensed','Arial Narrow',Arial,sans-serif}
body,button,input,select,textarea{font-family:var(--font-body)}
body{font-weight:400}
h1,h2,h3,h4,.brand-name,.service-tabs button,.service-image-word,.service-price,.finish-heading>p:last-child{font-family:var(--font-display);font-weight:600;letter-spacing:-.015em}
.brand-name,.footer .brand-name{font-size:2.35rem;font-weight:700;letter-spacing:.005em;text-transform:uppercase}
.brand-caption{font-size:.625rem;letter-spacing:.13em;margin-top:3px}
.desktop-nav a{font-size:.875rem}
.header-cta,.button{font-weight:650;border-radius:5px}
.header-cta{min-height:48px}
.button{min-height:56px;font-size:.9375rem;gap:24px}
.button:focus-visible,.ppf-inline-guide:focus-visible{outline:3px solid #899f51;outline-offset:4px}
.eyebrow,.section-label{font-weight:600;letter-spacing:.1em}
.small-label{letter-spacing:.09em;color:#666c70}
.section-topline{padding-bottom:22px}
.small-heading{font-family:var(--font-body);font-size:1rem;letter-spacing:-.02em;font-weight:500}

.hero-heading h1{font-size:clamp(5rem,9.7vw,10.5rem);font-weight:600;line-height:.94;letter-spacing:-.018em;max-width:none;margin-top:20px}
.hero-heading h1>span{display:inline}
.finish-heading>p:last-child{font-size:clamp(4rem,7.5vw,8.5rem);font-weight:600;letter-spacing:-.02em;line-height:.95}
.hero-heading .eyebrow,.finish-heading .eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.15em}
.scene-copy{font-weight:500;letter-spacing:-.025em}
.scene-copy>span{font-weight:400}

.intro-section{padding-block:72px 92px}
.intro-grid{grid-template-columns:minmax(0,1.45fr) minmax(0,.65fr);gap:7%;padding-top:38px}
.intro-grid h2{font-size:clamp(4rem,7.6vw,8rem);line-height:.99;letter-spacing:-.02em}
.intro-grid h2>span{white-space:normal;color:#79816f}
.intro-grid>p{font-size:1.0625rem;line-height:1.8;color:#5e6467;max-width:310px;padding-bottom:6px}
.services-section{padding-bottom:80px}
.service-tabs{margin-top:23px;margin-bottom:22px}
.service-tabs button{font-size:clamp(1.6rem,2.7vw,2.6rem);font-weight:600;letter-spacing:0;color:#6c7274;padding-block:16px}
.service-tabs button>span{font-family:var(--font-body);font-size:.75rem;align-self:center;padding-top:0}
.service-panel{background:#e8ebe7;border-radius:6px}
.service-content{padding:36px clamp(25px,3.4vw,55px) 28px}
.service-content>.eyebrow{color:#58625f;font-size:.75rem;letter-spacing:.09em}
.service-content h3{font-size:clamp(2.85rem,4.05vw,4.4rem);line-height:1.03;letter-spacing:-.015em;margin-top:21px}
.service-description{color:#56605c;font-size:1rem;line-height:1.75;margin-top:20px}
.service-bottom{padding-top:27px}
.service-price{font-size:2.7rem;letter-spacing:-.015em;line-height:1.1;margin-bottom:21px}
.service-price span{font-size:1.5rem;letter-spacing:0}
.service-image-word{font-size:clamp(4.5rem,7.2vw,8rem);font-weight:600;letter-spacing:-.015em;bottom:10px;line-height:1}
.service-image-tag{font-family:var(--font-body);font-size:.6875rem;letter-spacing:.11em}
.extra-services{margin-top:20px}
.extra-services>button{padding-block:24px;gap:22px}
.extra-services>button:hover{background:#e8ebe3}
.extra-name{font-weight:550;font-size:1.0625rem;letter-spacing:-.025em}
.extra-name small{font-weight:400;font-size:.8125rem;color:#646d68}
.extra-price{font-size:.9375rem;font-weight:650}
.extra-number,.extra-price small{color:#65706a}

.ppf-inline-guide{display:grid;grid-template-columns:64px minmax(0,1fr) 20px;gap:15px;align-items:center;width:100%;margin-top:18px;padding:0;background:transparent;color:var(--ink);text-align:left;border-radius:4px}
.ppf-inline-guide>img{width:64px;height:64px;object-fit:cover;border-radius:4px}
.ppf-inline-guide>span{display:grid;gap:3px}
.ppf-inline-guide strong{font-size:.875rem;font-weight:700;line-height:1.4}
.ppf-inline-guide>span>span{font-size:.75rem;line-height:1.5;color:#58625e}
.ppf-inline-guide>.icon{width:20px;height:20px}
.ppf-inline-guide:hover strong{text-decoration:underline;text-underline-offset:4px}
.service-panel:not([data-service="ppf"]) .ppf-inline-guide{display:none}

.cleaning-section{background:#121517;color:#f4f5f3;padding-block:61px 52px}
.cleaning-section .section-topline{border-color:#ffffff28}
.cleaning-section .section-label{color:#e3e8df}
.cleaning-section .small-label{color:#a3ada8}
.cleaning-heading{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:7%;align-items:end;margin-block:36px 40px}
.cleaning-heading h2{font-size:clamp(4.5rem,8vw,8.5rem);line-height:.96;letter-spacing:-.02em}
.cleaning-heading h2>span{color:var(--lime)}
.cleaning-heading>p{max-width:315px;font-size:1rem;line-height:1.8;color:#c2cbc6;padding-bottom:7px}
.cleaning-gallery{display:grid;grid-template-columns:minmax(0,1.24fr) minmax(0,1fr);gap:20px}
.cleaning-photo{position:relative;isolation:isolate;overflow:hidden;margin:0;min-width:0;height:clamp(350px,35vw,505px);border-radius:5px;background:#24292b}
.cleaning-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cleaning-exterior>img{object-position:57% center}
.cleaning-interior>img{object-position:43% center}
.cleaning-photo:after{content:"";position:absolute;inset:38% 0 0;z-index:0;background:linear-gradient(transparent,#080b0dbf);pointer-events:none}
.cleaning-photo figcaption{position:absolute;inset:auto 27px 25px;z-index:1}
.cleaning-photo figcaption>span{display:block;color:#e2e8e3;font-size:.6875rem;font-weight:600;line-height:1.5;letter-spacing:.12em}
.cleaning-photo h3{font-size:clamp(1.8rem,2.5vw,2.8rem);font-weight:600;line-height:1.12;letter-spacing:0;margin-top:9px}
.cleaning-bottom{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-top:29px}
.cleaning-bottom>p{font-size:.9375rem;line-height:1.8;color:#c2cbc6}
.cleaning-bottom .button{min-width:300px}

.cleaning-contact{padding-block:58px 73px}
.cleaning-contact-inner{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;gap:7%;padding-top:37px}
.cleaning-contact h2{font-size:clamp(3.8rem,7.5vw,8rem);letter-spacing:-.02em;line-height:.98}
.cleaning-contact h2>span{color:#79816f}
.cleaning-contact-inner>div{max-width:380px}
.cleaning-contact-inner p{font-size:1rem;line-height:1.8;color:#5e6662}
.cleaning-contact .button{margin-top:25px;gap:20px;text-align:left}
.footer-compact{padding-block:30px 24px;background:#101315}
.footer-compact .footer-top{gap:24px}
.footer-services{font-size:.6875rem;letter-spacing:.13em;color:#b5bfb9}
.footer-compact .footer-bottom{font-size:.75rem;color:#aab4af}
.footer-compact .back-top{font-size:.8125rem;color:#d3dad6}

.dialog-body h2,.booking-top h2{font-size:3.15rem;letter-spacing:-.015em;line-height:1.03}
.dialog-price{font-family:var(--font-display);font-size:2.5rem;letter-spacing:0}
.guide-opening h2{font-size:clamp(2.6rem,4vw,4rem);letter-spacing:-.015em;line-height:1.06}
.guide-finishes h3,.guide-coverage h3{font-size:2.5rem;letter-spacing:-.015em;line-height:1.1}
.guide-benefit h3,.guide-coverage h4{letter-spacing:0}

@media(max-width:1000px){
 .header-inner{gap:20px}
 .brand-name{font-size:2.1rem}
 .intro-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:6%}
 .service-content{padding:30px 27px 26px}
 .service-content h3{font-size:3.1rem}
 .cleaning-heading{gap:5%}
 .cleaning-gallery{gap:16px}
 .cleaning-photo figcaption{inset:auto 22px 22px}
 .cleaning-contact-inner{gap:6%}
}
@media(max-width:800px){
 .intro-section{padding-block:53px 66px}
 .intro-grid{grid-template-columns:1fr;gap:23px;padding-top:29px}
 .intro-grid h2{font-size:clamp(3.7rem,10vw,6rem)}
 .intro-grid>p{max-width:390px;font-size:1rem}
 .services-section{padding-bottom:57px}
 .cleaning-section{padding-block:44px 39px}
 .cleaning-heading{grid-template-columns:1fr;gap:23px;margin-block:29px 31px}
 .cleaning-heading h2{font-size:clamp(3.7rem,12vw,6rem)}
 .cleaning-heading>p{max-width:400px;padding-bottom:0}
 .cleaning-photo{height:335px}
 .cleaning-photo figcaption{inset:auto 18px 20px}
 .cleaning-photo h3{font-size:1.85rem}
 .cleaning-contact{padding-block:43px 53px}
 .cleaning-contact-inner{grid-template-columns:1fr;gap:25px;padding-top:28px}
 .cleaning-contact h2{font-size:clamp(3.5rem,10.5vw,6rem)}
 .cleaning-contact-inner>div{max-width:400px;width:100%}
}
@media(max-width:720px){
 .brand-name,.footer .brand-name{font-size:2.1rem}
 .hero-heading h1{font-size:clamp(3.7rem,15vw,6.3rem);line-height:.96;margin-top:18px}
 .hero-heading h1>span{display:block}
 .finish-heading>p:last-child{font-size:clamp(3.7rem,15vw,6.3rem);line-height:.96}
 .hero-heading .eyebrow,.finish-heading .eyebrow{font-size:.6875rem;letter-spacing:.1em}
 .section-label,.small-label{font-size:.6875rem;letter-spacing:.075em}
 .section-topline{gap:18px;padding-bottom:17px}
 .small-heading{font-size:.875rem;max-width:175px}
 .service-tabs{margin-block:17px}
 .service-tabs button{font-size:1.65rem;padding:13px 3px;min-height:54px}
 .service-content{padding:27px 25px}
 .service-content h3{font-size:clamp(2.7rem,8.4vw,3.7rem);line-height:1.05;margin-top:19px}
 .service-description{margin-top:17px}
 .service-bottom{padding-top:25px}
 .service-price{font-size:2.6rem;margin-bottom:20px}
 .service-image-word{font-size:5rem;left:21px;bottom:14px}
 .extra-services>button{grid-template-columns:minmax(0,1fr) auto 18px;gap:12px;padding-block:21px}
 .extra-name{font-size:.9375rem}
 .extra-name small{max-width:180px;font-size:.75rem;line-height:1.6}
 .extra-price{font-size:.8125rem}
 .cleaning-bottom{gap:23px}
 .cleaning-bottom .button{min-width:270px}
 .dialog-body h2,.booking-top h2{font-size:2.7rem}
}
@media(max-width:600px){
 .cleaning-section .small-label,.cleaning-contact .small-label{display:none}
 .cleaning-gallery{grid-template-columns:1fr;gap:17px}
 .cleaning-photo{height:auto;aspect-ratio:1.22}
 .cleaning-interior{aspect-ratio:1.36}
 .cleaning-photo figcaption{inset:auto 22px 23px}
 .cleaning-photo h3{font-size:2.05rem}
 .cleaning-bottom{align-items:stretch;flex-direction:column;padding-top:23px;gap:20px}
 .cleaning-bottom>p{font-size:.875rem}
 .cleaning-bottom .button{min-width:0;width:100%}
 .cleaning-contact .button{margin-top:21px;font-size:.875rem}
 .footer-compact{padding-block:27px 23px}
 .footer-compact .footer-top{gap:15px}
 .footer-compact .footer-bottom{line-height:1.8;font-size:.6875rem}
 .guide-opening h2{font-size:2.4rem}
 .guide-finishes h3,.guide-coverage h3{font-size:2.1rem}
}
@media(max-width:370px){
 .intro-grid h2{font-size:3.3rem}
 .cleaning-heading h2{font-size:3.6rem}
 .cleaning-contact h2{font-size:3.3rem}
 .service-content{padding-inline:20px}
 .service-tabs button{font-size:1.4rem}
 .ppf-inline-guide{gap:10px;grid-template-columns:58px minmax(0,1fr) 18px}
 .ppf-inline-guide>img{width:58px;height:58px}
 .extra-services>button{gap:8px}
 .extra-name{font-size:.875rem}
 .extra-name small{max-width:135px}
 .cleaning-photo h3{font-size:1.8rem}
 .button{padding-inline:17px;gap:14px;font-size:.875rem}
}
@media(max-height:700px){
 .hero-heading h1,.finish-heading>p:last-child{font-size:clamp(3.3rem,10svh,5.3rem)}
}
@media(max-height:480px) and (orientation:landscape){
 .hero-heading h1,.finish-heading>p:last-child{font-size:3.1rem;margin-top:0;line-height:1}
 .hero-heading h1>span{display:inline}
}
