:root{--c-bg:#F6F1E7;--c-surface:#FFFFFF;--c-text:#1B2621;--c-primary:#123B33;--c-secondary:#3E7F6C;--c-accent:#C97A16;--c-dark-bg:#0E2A25;--c-dark-text:#EFEADF;--c-rule:rgba(18,59,51,0.18);--c-rule-dark:rgba(239,234,223,0.22);--c-accent-wash:rgba(201,122,22,0.20);--ff-display:"Fraunces","Iowan Old Style",Georgia,serif;--ff-body:"Karla","Helvetica Neue",Arial,sans-serif;--sp-1:0.25rem;--sp-2:0.5rem;--sp-3:0.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--sp-8:4rem;--sp-9:6rem;--sp-10:8rem;--r-sm:2px;--r-md:6px;--r-lg:10px;--r-pill:999px;--container:1160px;--container-narrow:760px;--header-h:72px;--mo-dur:680ms;--mo-ease:cubic-bezier(0.22,0.75,0.28,1);--mo-dist:22px;--mo-stagger:110ms;--tr:var(--mo-dur) var(--mo-ease);--tr-fast:220ms var(--mo-ease)}
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--c-bg);color:var(--c-text);font-family:var(--ff-body);font-size:17px;font-weight:400;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,video{display:block;max-width:100%;height:auto}
input,button,textarea,select{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--ff-display);font-weight:600;color:var(--c-primary);line-height:1.18;font-variation-settings:"opsz" 120,"SOFT" 0;letter-spacing:-0.01em}
h1{font-size:clamp(2.5rem,6.4vw,4.5rem);line-height:1.02}
h2{font-size:clamp(1.75rem,3.4vw,2.125rem);line-height:1.25}
h3{font-size:clamp(1.5rem,2.6vw,1.875rem);line-height:1.25}
h4{font-size:1.25rem;line-height:1.3}
p{max-width:58ch}
p+p{margin-top:var(--sp-4)}
strong{font-weight:700}
a{color:var(--c-primary);text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--tr-fast)}
a:hover{color:var(--c-secondary)}
:focus-visible{outline:2px solid var(--c-accent);outline-offset:3px;border-radius:var(--r-sm)}
::selection{background:var(--c-accent-wash);color:var(--c-text)}
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--sp-5)}
.container--narrow{max-width:var(--container-narrow)}
.section{padding-block:clamp(3.5rem,8vw,6rem)}
.section--tight{padding-block:clamp(2.5rem,5vw,3.5rem)}
.section--surface{background:var(--c-surface)}
.section--inverted{background:var(--c-dark-bg);color:var(--c-dark-text)}
.section--inverted h1,.section--inverted h2,.section--inverted h3,.section--inverted h4{color:var(--c-dark-text)}
.section--inverted a{color:var(--c-dark-text)}
.section--inverted a:hover{color:var(--c-accent)}
#what-we-clean,#our-approach,#where-we-work,#common-questions,#call-us,[id]{scroll-margin-top:calc(var(--header-h) + 1rem)}
.skip-link{position:absolute;left:var(--sp-4);top:-100px;z-index:200;background:var(--c-primary);color:var(--c-bg);padding:var(--sp-3) var(--sp-5);border-radius:var(--r-md);font-weight:700;text-decoration:none;transition:top var(--tr-fast)}
.skip-link:focus{top:var(--sp-3);color:var(--c-bg)}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--ff-body);font-size:1rem;font-weight:700;line-height:1.1;letter-spacing:0.01em;text-decoration:none;border:1px solid transparent;border-radius:var(--r-md);padding:var(--sp-3) var(--sp-5);min-height:48px;cursor:pointer;transition:background-color var(--tr-fast),color var(--tr-fast),border-color var(--tr-fast),transform var(--tr-fast)}
.btn:hover{transform:translateY(-1px)}
.btn--primary,a.btn--primary{background:var(--c-primary);color:var(--c-bg);border-color:var(--c-primary)}
.btn--primary:hover,a.btn--primary:hover{background:var(--c-secondary);border-color:var(--c-secondary);color:#FFFFFF}
.btn--ghost,a.btn--ghost{background:transparent;color:var(--c-primary);border-color:var(--c-primary)}
.btn--ghost:hover,a.btn--ghost:hover{background:var(--c-primary);color:var(--c-bg)}
.section--inverted .btn--primary,.footer .btn--primary{background:var(--c-accent);border-color:var(--c-accent);color:#1B1206}
.section--inverted .btn--primary:hover,.footer .btn--primary:hover{background:#E08F22;border-color:#E08F22;color:#1B1206}
.section--inverted .btn--ghost,.footer .btn--ghost{color:var(--c-dark-text);border-color:var(--c-rule-dark)}
.section--inverted .btn--ghost:hover,.footer .btn--ghost:hover{background:var(--c-dark-text);color:var(--c-dark-bg);border-color:var(--c-dark-text)}
.tp{color:var(--c-accent);letter-spacing:-0.02em;font-size:1em;font-weight:inherit;font-family:inherit}
.lane-index{display:flex;align-items:center;gap:10px;font-family:var(--ff-body);font-size:12px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--c-secondary);margin-bottom:10px}
.lane-index::after{content:"";display:block;width:20px;height:1px;background:var(--c-secondary)}
.section--inverted .lane-index{color:#7FBBA6}
.section--inverted .lane-index::after{background:#7FBBA6}
.chalk-wash{background:linear-gradient(to top,var(--c-accent-wash) 0 46%,transparent 46%);padding:0 0.1em;border-radius:0;box-decoration-break:clone;-webkit-box-decoration-break:clone;line-height:1.5}
h1 .chalk-wash,h2 .chalk-wash,h3 .chalk-wash{line-height:1.3}
.ledger-rule{position:relative;width:100%;height:1px;background:var(--c-primary);border:0;margin:0}
.ledger-rule::before{content:"";position:absolute;left:0;bottom:0;width:48px;height:4px;background:var(--c-accent)}
.section--inverted .ledger-rule,.footer .ledger-rule{background:var(--c-rule-dark)}
.micro-label{font-family:var(--ff-body);font-size:12px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--c-secondary)}
.lead{font-size:1.125rem;font-weight:500;line-height:1.6}
.wordmark{font-family:var(--ff-display);font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--c-primary);line-height:1.05;text-decoration:none;display:inline-block}
.wordmark__line1{display:block;font-size:0.62em;line-height:1.1}
.wordmark__line2{display:block;font-size:1em;line-height:1.05}
.wordmark--inline{display:inline-flex;flex-direction:column;font-size:1.15rem}
.wordmark--single{display:inline-block;font-size:1.05rem;padding-bottom:7px;border-bottom:1px solid currentColor}
.mark{flex:0 0 auto;width:24px;height:24px}
.wordmark-lock{display:inline-flex;align-items:center;gap:var(--sp-3);text-decoration:none}
.img-treated{filter:saturate(1.04) contrast(1.03) brightness(1.02) sepia(0.08);background:var(--c-bg)}
.media-zoom{overflow:hidden;border-radius:var(--r-md);display:block}
.media-zoom img{width:100%;transform:scale(1);transition:transform calc(var(--mo-dur) * 2) var(--mo-ease)}
.link-draw{position:relative;text-decoration:none;color:var(--c-primary);padding-bottom:2px}
.link-draw::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--c-accent);transform:scaleX(0);transform-origin:left;transition:transform var(--tr)}
.link-draw:hover::after,.link-draw:focus-visible::after{transform:scaleX(1)}
.section--inverted .link-draw,.footer .link-draw{color:var(--c-dark-text)}
.grid{display:grid;gap:var(--sp-6)}
.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid--auto{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
@media (max-width:900px){.grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.grid,.grid--3,.grid--2,.grid--auto{grid-template-columns:1fr}}
.card{background:var(--c-surface);border:1px solid var(--c-rule);border-radius:var(--r-lg);padding:var(--sp-6)}
.card--dark,.card.card--dark{background:var(--c-dark-bg);border-color:var(--c-rule-dark);color:var(--c-dark-text)}
.card--dark h2,.card--dark h3,.card--dark h4,.card.card--dark h3{color:var(--c-dark-text)}
.text-center{text-align:center}
.mt-0{margin-top:0}
.stack>*+*{margin-top:var(--sp-4)}
.stack-lg>*+*{margin-top:var(--sp-6)}
.reveal{opacity:0}
.reveal.is-visible{opacity:1}
@media (prefers-reduced-motion:no-preference){.reveal{transform:translateY(var(--mo-dist));transition:opacity var(--mo-dur) var(--mo-ease),transform var(--mo-dur) var(--mo-ease);transition-delay:var(--reveal-delay,0ms)}.reveal.is-visible{transform:translateY(0)}.reveal-stagger>*{opacity:0;transform:translateY(var(--mo-dist));transition:opacity var(--mo-dur) var(--mo-ease),transform var(--mo-dur) var(--mo-ease);transition-delay:var(--reveal-delay,0ms)}.reveal-stagger.is-visible>*,.reveal-stagger>.is-visible{opacity:1;transform:translateY(0)}.media-zoom:hover img,.media-zoom:focus-within img{transform:scale(1.03)}.ken-burns{animation:kb 12s var(--mo-ease) infinite alternate}@keyframes kb{from{transform:scale(1)}to{transform:scale(1.04)}}}
@media (prefers-reduced-motion:reduce){.reveal,.reveal-stagger>*{transform:none!important;transition:opacity 200ms linear}.reveal-stagger>*{opacity:0}.reveal-stagger.is-visible>*,.reveal-stagger>.is-visible{opacity:1}.media-zoom img{transition:none}.media-zoom:hover img{transform:none}.ken-burns{animation:none}.link-draw::after{transition:none}}
.reveal-stagger:not(.is-visible)>*{opacity:0}
.site-header{position:sticky;top:0;z-index:100;background:var(--c-bg);border-bottom:1px solid var(--c-rule)}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);min-height:var(--header-h);padding-block:var(--sp-3)}
.site-header .wordmark-lock{color:var(--c-primary)}
.nav-desktop{display:flex;align-items:center;gap:var(--sp-6)}
.nav-desktop ul{list-style:none;display:flex;align-items:center;gap:var(--sp-5);margin:0;padding:0}
.nav-desktop ul a{color:var(--c-text);font-size:0.9375rem;font-weight:500;text-decoration:none;padding:var(--sp-2) 0;position:relative;display:inline-block}
.nav-desktop ul a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--c-accent);transform:scaleX(0);transform-origin:left;transition:transform var(--tr-fast)}
.nav-desktop ul a:hover{color:var(--c-primary)}
.nav-desktop ul a:hover::after,.nav-desktop ul a:focus-visible::after{transform:scaleX(1)}
.nav-toggle{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.burger{display:none;align-items:center;justify-content:center;width:48px;height:48px;margin-right:-6px;background:transparent;border:1px solid var(--c-rule);border-radius:var(--r-md);cursor:pointer;color:var(--c-primary)}
.burger span{display:block;position:relative;width:22px;height:2px;background:currentColor}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:22px;height:2px;background:currentColor}
.burger span::before{top:-7px}
.burger span::after{top:7px}
.mobile-panel{display:none}
@media (max-width:900px){.nav-desktop{display:none}.burger{display:inline-flex}.mobile-panel{display:block;position:fixed;left:0;right:0;top:var(--header-h);height:calc(100dvh - var(--header-h));overflow-y:auto;background:var(--c-bg);border-top:1px solid var(--c-rule);padding:var(--sp-5) var(--sp-5) var(--sp-9);transform:translateY(-8px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--tr-fast),transform var(--tr-fast),visibility var(--tr-fast);z-index:99}.nav-toggle:checked~.mobile-panel{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.mobile-panel ul{list-style:none;margin:0;padding:0}.mobile-panel li{border-bottom:1px solid var(--c-rule)}.mobile-panel ul a{display:flex;align-items:center;min-height:52px;padding:var(--sp-2) 0;color:var(--c-text);font-size:1.0625rem;font-weight:500;text-decoration:none}.mobile-panel ul a:hover{color:var(--c-primary)}.mobile-panel .btn{width:100%;margin-top:var(--sp-5)}.mobile-panel__meta{margin-top:var(--sp-5);font-size:0.9375rem;color:var(--c-primary)}.mobile-close{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:var(--sp-2) var(--sp-4);margin-top:var(--sp-5);border:1px solid var(--c-rule);border-radius:var(--r-md);font-size:0.875rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--c-primary);cursor:pointer}}
@media (min-width:901px){.mobile-close{display:none}}
.footer{background:var(--c-dark-bg);color:var(--c-dark-text);margin-top:0;padding-block:clamp(3rem,6vw,4.5rem) var(--sp-6)}
.footer a{color:var(--c-dark-text);text-decoration:none}
.footer a:hover{color:var(--c-accent)}
.footer__grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:var(--sp-7);margin-top:var(--sp-7)}
@media (max-width:767px){.footer__grid{grid-template-columns:1fr;gap:var(--sp-6)}}
.footer__wordmark{font-family:var(--ff-display);font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--c-dark-text);line-height:1.05;display:inline-block;text-decoration:none}
.footer__wordmark .wordmark__line1{display:block;font-size:0.62em}
.footer__wordmark .wordmark__line2{display:block;font-size:1em}
.footer__wordmark{font-size:1.5rem}
.footer__tagline{margin-top:var(--sp-4);font-size:0.9375rem;color:rgba(239,234,223,0.82);max-width:34ch}
.footer__heading{font-family:var(--ff-body);font-size:12px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:#9CC7B8;margin-bottom:var(--sp-4)}
.footer__links{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-3)}
.footer__links a{font-size:0.9375rem}
.footer__contact{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-3);font-size:0.9375rem}
.footer__phone{font-family:var(--ff-display);font-weight:700;font-size:1.25rem}
.footer__bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-4);margin-top:var(--sp-7);padding-top:var(--sp-5);border-top:1px solid var(--c-rule-dark);font-size:0.875rem;color:rgba(239,234,223,0.82)}
.footer__legal{display:flex;flex-wrap:wrap;gap:var(--sp-4);list-style:none;margin:0;padding:0}
.footer__bottom-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-4);width:100%;margin-top:var(--sp-4)}
.footer__attr a{text-decoration:underline;text-underline-offset:3px}