#hero{background:var(--c-bg);position:relative;overflow:hidden}
#hero .hero__grid{display:grid;gap:1px;background:var(--c-hair);grid-template-columns:1fr 1fr;grid-template-areas:"plate plate" "lead lead" "tile sofa";border-bottom:1px solid var(--c-hair)}
#hero .hero__plate{grid-area:plate;min-width:0;background:var(--c-dark-bg);color:var(--c-dark-text);padding:clamp(2rem,7vw,2.75rem) var(--gutter) clamp(2.25rem,8vw,3rem);display:flex;flex-direction:column;justify-content:center}
#hero .grout-kicker{color:var(--c-dark-text);margin-bottom:var(--sp-5)}
#hero .grout-kicker::after{background:var(--c-on-dark-hair)}
#hero .grout-kicker>span{white-space:normal}
#hero .hero__title{font-size:clamp(2.5rem,4.8vw,4.5rem);color:var(--c-dark-text);text-wrap:initial}
#hero .hero__dot{color:var(--c-primary)}
#hero .hero__sub{margin-top:var(--sp-5);color:var(--c-on-dark-70);font-size:var(--fs-lead);line-height:1.5;max-width:36ch}
#hero .hero__actions{margin-top:var(--sp-6);display:flex;flex-direction:column;align-items:flex-start}
#hero .hero__call{width:100%}
#hero .hero__secondary{display:inline-flex;align-items:center;min-height:44px;margin-top:20px;color:var(--c-dark-text);font-weight:700;font-size:.9375rem;text-decoration:underline;text-decoration-color:var(--c-accent);text-decoration-thickness:2px;text-underline-offset:.25em}
#hero .hero__secondary:hover{color:var(--c-dark-text);text-decoration-color:var(--c-primary)}
#hero .hero__lead{grid-area:lead;margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--c-dark-bg)}
#hero .hero__lead img{width:100%;height:100%;object-fit:cover;object-position:center 32%}
#hero .hero__cell{margin:0;aspect-ratio:1/1;overflow:hidden;background:var(--c-dark-bg)}
#hero .hero__cell--tile{grid-area:tile}
#hero .hero__cell--sofa{grid-area:sofa}
#hero .hero__cell img{width:100%;height:100%;object-fit:cover}
@media (min-width:520px){#hero .hero__call{width:auto}}
@media (min-width:1000px){
  #hero .hero__grid{grid-template-columns:58fr 21fr 21fr;grid-template-rows:minmax(min-content,1.62fr) minmax(0,1fr);grid-template-areas:"lead plate plate" "lead tile sofa";min-height:min(88vh,880px)}
  #hero .hero__plate{padding:clamp(2rem,3.2vw,3.5rem)}
  #hero .hero__actions{margin-top:var(--sp-7)}
  #hero .hero__lead,#hero .hero__cell{aspect-ratio:auto;height:100%}
}

#what-we-clean{background:var(--c-bg)}
#what-we-clean h2{max-width:24ch;margin-bottom:var(--sp-6)}
#what-we-clean .svc-strip{display:grid;gap:1px;background:var(--c-hair);border:1px solid var(--c-hair)}
#what-we-clean .svc{position:relative;min-width:0;background:var(--c-surface);display:flex;flex-direction:column;padding:clamp(2.75rem,4vw,3rem) clamp(1.5rem,2.4vw,2rem) clamp(1.75rem,2.4vw,2.25rem);transition:background-color var(--mo-dur) var(--mo-ease)}
#what-we-clean .svc:hover{background:var(--c-bg)}
#what-we-clean .svc__title{font-family:var(--font-display);font-weight:700;font-size:var(--fs-h3);line-height:1.2;text-transform:uppercase;letter-spacing:.01em;margin-bottom:var(--sp-3)}
#what-we-clean .svc p{color:var(--c-ink-80);font-size:1rem;max-width:36ch;margin-bottom:clamp(1.5rem,3vw,2rem)}
#what-we-clean .svc__rule{display:block;width:40px;height:3px;background:var(--c-primary);margin-top:auto;transition:height var(--mo-dur) var(--mo-ease)}
#what-we-clean .svc:hover .svc__rule{height:5px}
#what-we-clean .svc-foot{margin-top:var(--sp-6);font-weight:500;color:var(--c-ink-80)}
#what-we-clean .svc-foot a{color:var(--c-primary);font-weight:700;text-underline-offset:.2em}
@media (min-width:768px){
  #what-we-clean .svc-strip{grid-template-columns:1fr 1fr}
  #what-we-clean .svc:first-child{grid-column:1 / -1}
}
@media (min-width:1100px){
  #what-we-clean .svc-strip{grid-template-columns:4fr 3fr 3fr}
  #what-we-clean .svc:first-child{grid-column:auto}
}

#homes-and-businesses{background:var(--c-bg)}
#homes-and-businesses .aud{display:grid;gap:0;border:1px solid var(--c-hair)}
#homes-and-businesses .aud__cell{min-width:0;display:flex;flex-direction:column}
#homes-and-businesses .aud__cell--home{background:var(--c-bg)}
#homes-and-businesses .aud__cell--biz{background:var(--c-surface);border-top:2px solid var(--c-primary)}
#homes-and-businesses .aud__media{margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--c-hair)}
#homes-and-businesses .aud__media img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
#homes-and-businesses .aud__body{position:relative;padding:clamp(2.75rem,3.6vw,2.75rem) clamp(1.25rem,2.4vw,2rem) clamp(1.5rem,2.4vw,2rem)}
#homes-and-businesses .aud__label{font-family:var(--font-body);font-weight:700;font-size:.9375rem;line-height:1.2;letter-spacing:var(--ls-wide);text-transform:uppercase;margin-bottom:var(--sp-3)}
#homes-and-businesses .aud__body p{color:var(--c-ink-80);font-size:1rem;max-width:34ch}
#homes-and-businesses .aud__foot{margin-top:var(--sp-5);margin-left:auto;text-align:right;font-weight:500;color:var(--c-ink-80);max-width:none}
#homes-and-businesses .aud__foot a{color:var(--c-primary);font-weight:700;text-underline-offset:.2em}
@media (min-width:768px){
  #homes-and-businesses .aud{grid-template-columns:1fr 1fr}
  #homes-and-businesses .aud__cell--biz{border-top:0;border-left:2px solid var(--c-primary)}
}

#the-topnotch-way{background:var(--c-dark-bg);color:var(--c-dark-text);position:relative;overflow:hidden}
#the-topnotch-way .way__grid{display:grid;gap:clamp(2.25rem,5vw,3rem)}
#the-topnotch-way .way__statement{font-weight:900;font-size:clamp(2.4rem,5vw,4rem);line-height:.94;letter-spacing:-.02em;text-wrap:initial;margin-bottom:var(--sp-6)}
#the-topnotch-way .way__dot{color:var(--c-primary)}
#the-topnotch-way .way__cols p{max-width:38ch;font-size:1rem;line-height:1.6}
#the-topnotch-way .way__cols p+p{margin-top:var(--sp-4)}
#the-topnotch-way .way__inset{margin:0}
#the-topnotch-way .way__inset-media{display:block;aspect-ratio:1/1;overflow:hidden;background:#1B1E23}
#the-topnotch-way .way__inset-media img{width:100%;height:100%;object-fit:cover}
#the-topnotch-way .way__inset figcaption{margin-top:var(--sp-3);font-family:var(--font-body);font-weight:700;font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--c-on-dark-70)}
#the-topnotch-way .way__rule{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1.75rem;max-width:none;margin-top:clamp(2.5rem,5vw,3.5rem);padding-top:var(--sp-5);border-top:1px solid var(--c-on-dark-hair);font-family:var(--font-body);font-weight:700;font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--c-on-dark-70)}
#the-topnotch-way .way__rule a{display:inline-flex;align-items:center;min-height:44px;color:var(--c-dark-text);text-decoration:underline;text-decoration-color:var(--c-primary);text-decoration-thickness:2px;text-underline-offset:.25em}
@media (min-width:768px){
  #the-topnotch-way .way__cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6)}
  #the-topnotch-way .way__cols p+p{margin-top:0}
}
@media (min-width:1100px){
  #the-topnotch-way .way__grid{grid-template-columns:62fr 38fr;gap:clamp(2rem,4vw,3.5rem);align-items:start}
  #the-topnotch-way .way__inset{justify-self:end;width:100%}
}

#common-questions{background:var(--c-bg)}
#common-questions .faq__h2{font-size:clamp(1.5rem,2.6vw,1.8rem);margin-bottom:var(--sp-6)}
#common-questions .faq__grid{display:grid;gap:1px;background:var(--c-hair);border:1px solid var(--c-hair)}
#common-questions .faq__cell{position:relative;min-width:0;background:var(--c-surface);padding:clamp(2.75rem,3.6vw,2.75rem) clamp(1.5rem,2.4vw,2rem) clamp(1.75rem,2.4vw,2rem);transition:background-color var(--mo-dur) var(--mo-ease)}
#common-questions .faq__cell:hover{background:var(--c-bg)}
#common-questions .faq__cell h3{font-family:var(--font-display);font-weight:700;font-size:.9375rem;line-height:1.3;text-transform:uppercase;letter-spacing:.02em;margin-bottom:var(--sp-3)}
#common-questions .faq__cell p{color:var(--c-ink-80);font-size:1rem;max-width:40ch}
#common-questions .faq__cell--dark{background:var(--c-dark-bg);color:var(--c-dark-text)}
#common-questions .faq__cell--dark:hover{background:#1B1E23}
#common-questions .faq__cell--dark p{color:var(--c-on-dark-70)}
#common-questions .faq__phone{display:inline-flex;align-items:center;min-height:44px;margin-top:var(--sp-2);font-family:var(--font-body);font-weight:700;font-size:1.0625rem;color:var(--c-dark-text);text-decoration:underline;text-decoration-color:var(--c-primary);text-decoration-thickness:2px;text-underline-offset:.25em}
#common-questions .faq__phone:hover{color:var(--c-dark-text)}
@media (min-width:768px){#common-questions .faq__grid{grid-template-columns:1fr 1fr}}

#call-topnotch{background:var(--c-bg)}
#call-topnotch .call__grid{display:grid;gap:1px;background:var(--c-hair);border:1px solid var(--c-hair)}
#call-topnotch .call__cell{min-width:0;background:var(--c-surface);padding:clamp(1.5rem,3.2vw,2.75rem)}
#call-topnotch h2{font-size:clamp(1.6rem,3vw,2.4rem);margin-bottom:var(--sp-5)}
#call-topnotch .call__phone{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;padding:.75rem 1rem;background:var(--c-primary);color:#FFFFFF;font-family:var(--font-body);font-weight:700;font-size:1rem;text-transform:uppercase;letter-spacing:.06em;text-decoration:none;border-radius:var(--r-btn);transition:background-color var(--mo-dur) var(--mo-ease)}
#call-topnotch .call__phone:hover{background:var(--c-primary-ink);color:#FFFFFF}
#call-topnotch .call__dot{display:none}
#call-topnotch .call__meta{margin-top:var(--sp-5);color:var(--c-ink-60);font-size:1rem;max-width:36ch}
#call-topnotch .call__email{display:inline-block;margin-top:var(--sp-3);color:var(--c-accent);font-weight:700;font-size:1rem;word-break:break-word;text-decoration:underline;text-decoration-color:var(--c-accent);text-decoration-thickness:2px;text-underline-offset:.22em;min-height:44px;line-height:1.6}
#call-topnotch .call__email:hover{color:var(--c-accent)}
#call-topnotch .call__form{margin-top:clamp(1.75rem,3vw,2.25rem);padding-top:clamp(1.5rem,2.6vw,2rem);border-top:1px solid var(--c-hair)}
#call-topnotch .call__form-note{font-size:1rem;color:var(--c-ink-60);margin-bottom:var(--sp-5);max-width:38ch}
#call-topnotch .call__field{display:block;margin-bottom:var(--sp-4)}
#call-topnotch .call__field>span{display:block;margin-bottom:6px;font-family:var(--font-body);font-weight:700;font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--c-ink-60)}
#call-topnotch input,#call-topnotch textarea{width:100%;min-height:48px;padding:.7rem .85rem;background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-hair);border-radius:var(--r-btn);font-family:var(--font-body);font-size:1rem}
#call-topnotch textarea{min-height:120px;resize:vertical}
#call-topnotch input::placeholder,#call-topnotch textarea::placeholder{color:var(--c-ink-40)}
#call-topnotch input:focus,#call-topnotch textarea:focus{border-color:var(--c-accent)}
#call-topnotch .call__cell--map{display:flex;flex-direction:column;justify-content:center}
#call-topnotch .map-frame{margin:0;border:1px solid var(--c-hair);padding:clamp(.85rem,1.6vw,1.25rem);background:var(--c-surface)}
#call-topnotch .map{width:100%;height:auto}
#call-topnotch .map-frame figcaption{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--c-hair);letter-spacing:.1em;line-height:1.5}
#call-topnotch .map__water{fill:none;stroke:var(--c-text);stroke-width:1;opacity:.5}
#call-topnotch .map__river-band{fill:none;stroke:var(--c-text);stroke-width:6;opacity:.12}
#call-topnotch .map__river{fill:none;stroke:var(--c-text);stroke-width:1;opacity:.5}
#call-topnotch .map__footprint{fill:none;stroke:var(--c-ink-40);stroke-width:1;stroke-dasharray:5 4}
#call-topnotch .map__road{fill:none;stroke:var(--c-ink-40);stroke-width:1}
#call-topnotch .map__node{fill:var(--c-text)}
#call-topnotch .map__city{fill:var(--c-primary)}
#call-topnotch .map__label{font-family:var(--font-body);font-weight:700;font-size:11px;letter-spacing:.06em;fill:var(--c-text)}
#call-topnotch .map__label--city{font-size:13px}
#call-topnotch .map__label--geo{font-size:9px;fill:var(--c-ink-60)}
#call-topnotch .map__label--road{font-size:9px;fill:var(--c-ink-40)}
@media (min-width:768px){
  #call-topnotch .call__phone{display:inline-flex;justify-content:flex-start;width:auto;min-height:0;padding:0;background:none;color:var(--c-text);font-family:var(--font-display);font-weight:900;font-size:clamp(2rem,4vw,3.2rem);line-height:1;letter-spacing:-.02em;text-transform:none}
  #call-topnotch .call__phone:hover{background:none;color:var(--c-text)}
  #call-topnotch .call__phone-pre{display:none}
  #call-topnotch .call__dot{display:inline;color:var(--c-primary)}
}
@media (min-width:1100px){
  #call-topnotch .call__grid{grid-template-columns:45fr 55fr;align-items:stretch}
}
@media (prefers-reduced-motion: no-preference){
  #call-topnotch .reveal .map__road{stroke-dasharray:460;stroke-dashoffset:460;transition:stroke-dashoffset 600ms var(--mo-ease)}
  #call-topnotch .reveal.is-visible .map__road{stroke-dashoffset:0}
}