/* Device-independent icons and mobile layout refinements. */
.ui-icon{display:inline-block;width:20px;height:20px;flex:0 0 20px;vertical-align:middle;overflow:visible}
.button>span[aria-hidden],.text-link>span[aria-hidden]{display:inline-flex;align-items:center;flex-shrink:0}
.city-list a>span:last-child{display:inline-flex;flex-shrink:0}
.footer-bottom .ui-icon{width:16px;height:16px}
.button,.text-link{max-width:100%}
@media(max-width:920px){
 .header{transition:transform .24s ease}
 .header.header-hidden{transform:translateY(calc(-100% - 1px))}
 .header nav{max-height:calc(100dvh - 78px);overflow-y:auto;overscroll-behavior:contain}
 .header nav>a:not(.button){min-height:48px;display:flex;align-items:center;border-bottom:1px solid var(--line)}
 .menu-toggle{min-width:48px;min-height:44px;justify-content:center}
 .menu-toggle .ui-icon{transition:transform .2s}
 .menu-toggle[aria-expanded=true] .ui-icon{transform:rotate(90deg)}
}
@media(max-width:640px){
 :root{scroll-padding-top:88px}
 .header{padding:12px 20px;min-height:74px;gap:12px}
 .brand{gap:10px;min-width:0}
 .brand img{width:42px;height:42px}
 .brand>span{font-size:.8rem;letter-spacing:.12em}
 .brand small{font-size:.56rem;letter-spacing:.055em;margin-top:5px}
 .menu-toggle{font-size:.875rem;gap:9px;padding:9px 10px;border-color:transparent}
 .header nav{padding:12px 24px 24px}
 .header nav .button{margin-top:10px}
 .hero{min-height:0;height:auto;max-height:none}
 .hero-content{padding:58px 24px 56px;height:auto}
 .hero h1{font-size:clamp(2.7rem,11.4vw,4.1rem);line-height:1.1;letter-spacing:-.045em;margin-bottom:22px}
 .hero .eyebrow{font-size:.75rem;letter-spacing:.075em;line-height:1.65;max-width:280px;margin-bottom:25px}
 .hero-content>p:not(.eyebrow){font-size:1rem;line-height:1.7;margin-bottom:28px;max-width:350px}
 .hero-photo{object-position:62% 50%}
 .hero-shade{background:linear-gradient(90deg,#112329f2,#112329a8),linear-gradient(0deg,#11232990,transparent)}
 .hero-actions{width:100%;gap:15px;align-items:stretch}
 .hero-actions .button{width:100%;padding:17px 18px;min-height:54px;gap:12px;font-size:.9375rem}
 .hero-actions .text-link{align-self:flex-start;min-height:44px;font-size:.9375rem;gap:22px}
 .hero-caption,.scroll-cue{display:none}
 .promise-strip{display:grid;grid-template-columns:1fr;gap:12px;padding:24px;color:var(--muted)}
 .promise-strip>span:first-child{font-size:1.2rem;margin-bottom:4px}
 .promise-strip>span:not(:first-child){font-size:.875rem;gap:12px}
 .wrap{width:calc(100% - 48px)}
 h2{font-size:clamp(2rem,8.3vw,2.65rem);line-height:1.15;letter-spacing:-.035em;text-wrap:balance}
 .eyebrow,.section-heading .eyebrow,.resource-card .eyebrow{font-size:.75rem;letter-spacing:.085em;line-height:1.65}
 .care-section,.area-teaser{padding-top:52px;padding-bottom:52px}
 .section-heading{margin-bottom:28px}
 .section-heading h2{margin-bottom:20px}
 .section-heading h2 br{display:initial}
 .section-heading>p:last-child,.area-teaser p:not(.eyebrow){font-size:1rem;line-height:1.75}
 .service-photo img,.feature-image,.cleaning-result img{height:auto;aspect-ratio:4/3;object-fit:cover}
 .service-photo>span{font-size:1rem;line-height:1.45;padding:14px;left:12px;right:12px;bottom:12px}
 summary{font-size:1.1rem;line-height:1.4;gap:12px;padding:22px 0}
 summary>span:nth-child(2){min-width:0;flex:1}
 .detail-body{padding-left:0;font-size:1rem}
 .dark-section{padding:52px 0}
 .principles{margin-top:28px}
 .principles article{padding:22px 0!important}
 .principles p{font-size:1rem}
 .city-list a{font-size:1.6rem;gap:18px;min-height:60px}
 .city-list .all-areas{font-size:.875rem;line-height:1.5}
 .cta{padding:48px 24px}
 .cta .button{width:100%;font-size:.9375rem;gap:16px}
 footer{padding:40px 24px 0}
 .footer-top{grid-template-columns:1fr;gap:24px;padding-bottom:30px}
 .footer-top>p{font-size:1.6rem;margin:0}
 .footer-top>div a{font-size:.9375rem;min-height:34px}
 .footer-links{gap:28px 20px;padding:30px 0}
 .footer-links .eyebrow{font-size:.75rem;letter-spacing:.06em}
 .footer-links a{min-height:36px;display:flex;align-items:center;line-height:1.5}
 .footer-bottom{font-size:.75rem;line-height:1.7;gap:15px}
 .footer-bottom a{min-height:44px;display:inline-flex;align-items:center;gap:10px}
 .page-intro{padding:44px 0 32px}
 .page-intro h1{font-size:clamp(2.35rem,9.7vw,3.25rem);line-height:1.12;letter-spacing:-.04em;overflow-wrap:normal;text-wrap:balance}
 .page-intro .lead{line-height:1.75}
 .page-intro h1 br{display:none}
 .page-intro h1 br:after{content:' '}
 .choice-list{gap:8px}
 .service-picker>.choice-list{display:grid;grid-template-columns:1fr 1fr}
 .choice{min-width:0}
 .choice span{height:100%;padding:13px 12px;font-size:.875rem;line-height:1.5;display:flex;align-items:center;min-height:48px}
 .area-layout .choice span{justify-content:center}
 .cleaning-result h2,.area-info h2,.prose h2,.contact-info h2,#inquiry-review h2{font-size:2.2rem;line-height:1.15}
 .cleaning-result .button,.area-info .button{width:100%;gap:14px;font-size:.9375rem;padding:16px}
 .contact-layout{gap:30px}
 .contact-info{padding:26px}
 .contact-info h2{margin-bottom:18px}
 .form-field input,.form-field select,.form-field textarea{font-size:1rem}
 .form-grid .button,.review-actions .button{width:100%;font-size:.9375rem}
 .field-help{font-size:.875rem}
 .resource-card h2{font-size:2rem;line-height:1.2}
 .timeline article{grid-template-columns:28px 1fr;gap:12px}
}
@media(max-width:360px){
 .header{padding-inline:16px}.brand>span{font-size:.75rem}.brand small{font-size:.5rem}
 .hero-content{padding-inline:20px}.wrap{width:calc(100% - 40px)}
 .hero h1{font-size:2.7rem}.hero-actions .button{font-size:.875rem;padding-inline:14px}
 .footer-links{grid-template-columns:1fr}
}
@media(hover:none){.button:hover{transform:none}.text-link:hover{gap:28px}.city-list a:hover{padding-left:0}}
@media(prefers-reduced-motion:reduce){.menu-toggle .ui-icon{transition:none}}
