:root {
  --paper: #f4f1e9;
  --paper-deep: #e9e3d7;
  --ink: #222a29;
  --muted: #646a65;
  --line: #d2cec3;
  --green: #244b43;
  --green-deep: #18372f;
  --copper: #ae7250;
  --cream: #fcfaf5;
  --brand-line-width: 1.5px;
  --font-display-stack: "Aptos Display", "Segoe UI Variable Display", "Arial Narrow", sans-serif;
  --font-body-stack: "Aptos", "Segoe UI Variable Text", "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-body-stack); font-size: 17px; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
.skip-link { position: fixed; z-index: 100; top: 8px; left: 8px; transform: translateY(-150%); background: var(--ink); color: white; padding: 10px 16px; }
.skip-link:focus { transform: none; }
.site-header { height: 112px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 clamp(24px, 4.7vw, 76px); border-bottom: 1px solid var(--line); position: relative; z-index: 20; background: rgba(244,241,233,.96); }
.brand { display: inline-flex; align-items: center; gap: 16px; width: fit-content; }
.brand-mark { --brand-line-color: var(--green); width: 52px; height: 52px; border: var(--brand-line-width) solid var(--brand-line-color); position: relative; display: grid; place-items: center; color: var(--green); }
.brand-mark::before { content: ""; position: absolute; width: 29px; height: 29px; border-top: var(--brand-line-width) solid var(--brand-line-color); border-left: var(--brand-line-width) solid var(--brand-line-color); transform: rotate(45deg); top: -11px; background: var(--paper); }
.brand-mark span { position: relative; font: 700 24px/1 var(--font-display-stack); }
.brand-name { font-size: 15px; line-height: 1.12; text-transform: uppercase; letter-spacing: .055em; }
.brand-name i { color: var(--copper); font-style: normal; }.brand-name strong { display: block; font-size: 19px; letter-spacing: .13em; }
.desktop-nav { display: flex; gap: clamp(28px, 2.7vw, 48px); align-items: center; font-size: 16px; }
.desktop-nav a { position: relative; }.desktop-nav a::after { content:""; position:absolute; height:1px; left:0; right:100%; bottom:-5px; background:var(--green); transition:right .25s; }.desktop-nav a:hover::after,.desktop-nav a:focus-visible::after{right:0}
.mobile-menu { display:none; }

.hero { min-height: calc(100svh - 112px); display: grid; grid-template-columns: minmax(320px, .85fr) 1.15fr; position: relative; border-bottom: 1px solid var(--line); }
.hero-copy { padding: clamp(68px, 9vw, 145px) clamp(28px, 5.2vw, 84px) 70px; align-self: center; }
.eyebrow,.section-label { margin:0 0 28px; font-size: 14px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--green); display:flex; align-items:center; gap:12px; }
.eyebrow::before,.section-label::before{content:""; width:26px; height:1px; background:currentColor}
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:var(--font-display-stack); letter-spacing:-.045em; line-height:.98; }
h1 { font-size:clamp(38px,3.5vw,56px); font-weight:520; margin:0 0 36px; }
h1 em,.contact h2 em { font-style:normal; color:var(--copper); }
.hero-lead { max-width:560px; color:var(--muted); font-size:clamp(17px,1.3vw,20px); line-height:1.65; }
.button-row { display:flex; align-items:center; gap:30px; margin-top:42px; }
.button { min-height:54px; display:inline-flex; align-items:center; justify-content:space-between; gap:26px; padding:13px 22px; font-size:15px; font-weight:650; }
.button.primary{background:var(--green);color:white;}.button.primary:hover{background:var(--green-deep)}
.text-link{font-size:15px;font-weight:600;border-bottom:1px solid var(--line);padding:10px 0;}.text-link span{margin-left:15px;color:var(--copper)}
.hero-visual { overflow:hidden; position:relative; background:#1d302b; min-height:540px; }
.hero-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-visual::before { content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,rgba(17,30,26,.42),transparent 48%),linear-gradient(0deg,rgba(17,30,26,.35),transparent 45%); }
.image-ai>.ai-label{position:absolute;z-index:4;right:7px;bottom:9px;left:auto;color:#fff;font-size:11px;line-height:1;letter-spacing:.05em;text-transform:none;writing-mode:vertical-rl;transform:rotate(180deg);text-shadow:0 1px 4px rgba(0,0,0,.75);pointer-events:none}
.visual-note{position:absolute;z-index:2;left:7%;bottom:6%;color:white;border-left:1px solid var(--copper);padding-left:16px;text-shadow:0 2px 18px rgba(0,0,0,.55)}.visual-note span{display:block;font-size:14px;text-transform:uppercase;letter-spacing:.11em;opacity:.84}.visual-note strong{font:500 19px/1.25 var(--font-display-stack)}
.hero-index{position:absolute;right:calc(55% + 20px);bottom:18px;color:var(--muted);font-size:13px;letter-spacing:.14em}

.section { padding: clamp(80px,10vw,150px) clamp(24px,7vw,112px); }
.intro-content{display:grid;grid-template-columns:1.3fr .8fr;gap:clamp(55px,9vw,150px);align-items:start}.intro h2,.section-head h2,.story h2{font-size:clamp(30px,2.8vw,44px);font-weight:520;margin:0}.intro-text{padding-top:10px;max-width:530px;color:var(--muted);font-size:18px}.accent-line{margin-top:35px;border-left:2px solid var(--copper);padding-left:24px;color:var(--ink)}
.services{background:var(--cream);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section-head{display:grid;grid-template-columns:1fr 340px;align-items:end;gap:50px;margin-bottom:70px}.section-head>p{color:var(--muted);margin:0}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.service-card:last-child:nth-child(odd){grid-column:1/-1}
.service-card{position:relative;min-height:335px;padding:40px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .25s,transform .25s}.service-card:hover{background:var(--paper);transform:translateY(-3px)}
.service-number{font-size:14px;letter-spacing:.13em;color:var(--copper)}.service-card h3{font:550 clamp(23px,1.6vw,27px)/1.18 var(--font-display-stack);margin:46px 0 17px}.service-card p{max-width:520px;color:var(--muted)}.service-card small{display:block;color:#7e817c;margin-top:25px;font-size:15px}
.service-card-detail .text-link{display:inline-flex;align-items:center;gap:18px;width:auto;margin:0;padding:8px 0;font-size:16px;font-weight:650;color:var(--green);border-color:var(--green);white-space:nowrap}.service-card-detail .text-link span{margin-left:0}.service-card-detail .text-link:hover{color:var(--green-deep);border-color:var(--copper)}.service-card-detail small{margin-top:25px;padding-top:0}
.philosophy{display:grid;grid-template-columns:.9fr 1.1fr;background:var(--green-deep);color:var(--cream)}.philosophy-visual{min-height:670px;position:relative;overflow:hidden;background:#302c27}.philosophy-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:68% center}.philosophy-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,25,22,.08) 30%,rgba(17,25,22,.72) 100%)}
.philosophy-visual>p{position:absolute;z-index:3;left:10%;bottom:7%;font:500 21px/1.25 var(--font-display-stack);text-shadow:0 2px 20px rgba(0,0,0,.55)}
.philosophy-copy{padding:clamp(70px,9vw,140px) clamp(35px,8vw,130px);align-self:center}.section-label.light{color:#b8c5bd}.philosophy h2{font-size:clamp(32px,3vw,46px);font-weight:520;margin-bottom:42px}.philosophy-copy>p:not(.section-label){max-width:650px;color:#cbd1cc;font-size:18px}.values{display:flex;gap:6%;border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18);padding:27px 0;margin:45px 0 35px}.values span{font-size:15px}.values i{display:block;font-style:normal;font-size:14px;color:var(--copper);margin-bottom:5px}.light-link{border-color:rgba(255,255,255,.25)}
.project-head{align-items:end}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.project-image{aspect-ratio:4/5;position:relative;overflow:hidden;margin-bottom:22px}.project-image::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(130deg,transparent 0 48px,rgba(255,255,255,.11) 49px 50px)}.project-image.wood{background:linear-gradient(145deg,#9d7559,#5f5043)}.project-image.slate{background:linear-gradient(145deg,#70817b,#31423d)}.project-image.green{background:linear-gradient(145deg,#3f655b,#18362f)}.project-image span{position:absolute;left:20px;bottom:20px;color:white;text-transform:uppercase;font-size:14px;letter-spacing:.11em}.project-image b{position:absolute;right:18px;top:15px;color:rgba(255,255,255,.6);font:400 32px var(--font-display-stack)}.project-card>p{font-size:14px;color:var(--copper);letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px}.project-card h3{font:550 21px/1.3 var(--font-display-stack)}.project-note{text-align:right;color:var(--muted);font-size:15px;margin:34px 0 0}
.project-photo img{display:block;width:100%;height:100%;object-fit:cover}.project-photo::before{z-index:1;background:linear-gradient(180deg,rgba(21,39,34,.12),transparent 32%,rgba(21,39,34,.18))}.project-photo b{z-index:2;text-shadow:0 1px 14px rgba(0,0,0,.45)}
.project-card .project-description{margin:12px 0 0;color:var(--muted);font-size:15px;line-height:1.55;text-transform:none;letter-spacing:0}
.story{display:grid;grid-template-columns:1.1fr .9fr;border-top:1px solid var(--line);background:var(--paper)}.story-visual{position:relative;width:100%;min-height:680px;overflow:hidden;background:#302c27}.story-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.story-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(17,25,22,.7))}.story-visual>p{position:absolute;z-index:2;left:9%;bottom:7%;color:white;font:500 21px/1.25 var(--font-display-stack);text-shadow:0 2px 20px rgba(0,0,0,.55)}.story-copy{padding:clamp(70px,9vw,140px) clamp(35px,8vw,130px);align-self:center}.story-copy h2{margin-bottom:36px}.story-text{color:var(--muted);font-size:17px}.story-text p+p{margin-top:28px}
.contact{text-align:center;background:var(--green);color:white;padding:clamp(85px,10vw,145px) 24px}.contact .section-label{justify-content:flex-start;text-align:left;color:#bdc8c3}.contact h2{font:520 clamp(32px,3.2vw,48px)/1.12 var(--font-display-stack);letter-spacing:-.025em;margin:0 auto 36px}.contact>p:not(.section-label){max-width:710px;margin:0 auto;color:#d6ddda;font-size:18px}.contact-buttons{justify-content:center}.button.warm{background:var(--copper);color:white}.button.outline{border:1px solid rgba(255,255,255,.5);color:white}
footer{display:grid;grid-template-columns:1.2fr 1fr .8fr 1fr .7fr;gap:35px;background:#152722;color:#d4d9d6;padding:65px clamp(24px,7vw,112px) 30px;font-size:15px;position:relative}.footer-brand{display:flex;gap:17px;align-items:flex-start}.footer-brand strong{display:block;font:600 17px var(--font-display-stack);color:white}.footer-brand small{color:#9eaaa5}.footer-mark{--brand-line-color:#9cb0a8;width:43px;height:43px;color:white}.footer-mark::before{width:24px;height:24px;top:-9px;background:#152722}.footer-mark span{font-size:21px}.footer-title{color:#82938c;font-size:13px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:12px}.footer-links{display:flex;flex-direction:column;gap:7px}.copyright{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.1);padding-top:22px;margin:25px 0 0;color:#71817b;font-size:13px}

.legal-main{min-height:calc(100svh - 112px);padding:clamp(65px,8vw,120px) clamp(24px,7vw,112px);background:var(--cream)}
.legal-wrap{width:min(820px,100%);margin:0 auto}
.legal-main h1{font-size:clamp(32px,3vw,44px);margin-bottom:52px}
.legal-main h2{font-size:clamp(23px,2.1vw,29px);font-weight:550;letter-spacing:-.015em;line-height:1.2;margin:48px 0 18px}
.legal-main h3{font:600 18px/1.35 var(--font-display-stack);margin:30px 0 10px}
.legal-main p,.legal-main li{color:var(--muted)}
.legal-main a{color:var(--green);text-decoration:underline;text-decoration-color:var(--copper);text-underline-offset:3px}
.legal-main address{font-style:normal;color:var(--muted)}
.legal-main ul{padding-left:22px}
.legal-note{border-left:2px solid var(--copper);padding:3px 0 3px 22px;margin:38px 0}
.legal-note p{margin:0}
.legal-updated{margin-top:55px;font-size:13px;color:#7e817c}

.detail-hero{display:grid;grid-template-columns:.86fr 1.14fr;min-height:calc(100svh - 112px);border-bottom:1px solid var(--line)}.detail-hero-copy{padding:clamp(72px,9vw,138px) clamp(28px,5.2vw,84px);align-self:center}.detail-hero h1{font-size:clamp(40px,4vw,64px)}.detail-hero-copy>p:not(.eyebrow){max-width:600px;color:var(--muted);font-size:clamp(17px,1.3vw,20px)}.detail-hero-image{position:relative;overflow:hidden;min-height:600px;background:#6e5a48}.detail-hero-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.detail-intro{max-width:1240px;margin:0 auto}.detail-intro-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(55px,9vw,140px)}.detail-intro h2,.inspection-examples h2,.detail-process h2{font-size:clamp(30px,2.8vw,44px);font-weight:520;margin:0}.detail-intro-text{color:var(--muted);font-size:18px}.inspection-examples{background:var(--cream);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.inspection-head{display:grid;grid-template-columns:1fr 380px;gap:50px;align-items:end;margin-bottom:58px}.inspection-head>p{color:var(--muted);margin:0}.inspection-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.inspection-card{margin:0}.inspection-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--paper-deep)}.inspection-card figcaption{padding:19px 0 0}.inspection-card strong{display:block;font:550 20px/1.25 var(--font-display-stack);margin-bottom:7px}.inspection-card span{color:var(--muted);font-size:15px}.detail-process{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(55px,9vw,140px)}.process-list{display:grid;border-top:1px solid var(--line)}.process-item{display:grid;grid-template-columns:42px 1fr;gap:20px;padding:25px 0;border-bottom:1px solid var(--line)}.process-item>span{color:var(--copper);font-size:14px;letter-spacing:.12em}.process-item h3{font:550 21px/1.3 var(--font-display-stack);margin:0 0 7px}.process-item p{color:var(--muted);margin:0}.scope-note{margin-top:35px;border-left:2px solid var(--copper);padding-left:22px;color:var(--muted);font-size:15px}
.inspection-card img{height:clamp(210px,18vw,300px);aspect-ratio:auto}
.detail-hero{min-height:auto}.detail-hero-image{min-height:clamp(430px,38vw,580px)}

@media (max-width:980px){.detail-hero{grid-template-columns:1fr;min-height:auto}.detail-hero-image{min-height:60vw}.detail-intro-grid{grid-template-columns:1fr;gap:35px}.inspection-head{grid-template-columns:1fr .7fr}.detail-process{grid-template-columns:1fr;gap:45px}}
@media (max-width:680px){.detail-hero-copy{padding:65px 24px}.detail-hero-image{min-height:430px}.inspection-head{grid-template-columns:1fr;gap:25px}.inspection-grid{grid-template-columns:1fr}.inspection-card+.inspection-card{margin-top:18px}}

@media (max-width: 980px){.site-header{grid-template-columns:1fr auto;height:94px}.desktop-nav{display:none}.mobile-menu{display:block;justify-self:end;position:relative}.mobile-menu summary{list-style:none;width:46px;height:46px;display:grid;place-content:center;gap:8px;cursor:pointer}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary span{width:27px;height:1px;background:var(--ink);display:block}.mobile-menu nav{position:absolute;right:-24px;top:58px;width:100vw;background:var(--cream);border-bottom:1px solid var(--line);padding:25px;display:grid}.mobile-menu nav a{padding:14px;border-bottom:1px solid var(--line);font:500 21px var(--font-display-stack)}.hero{grid-template-columns:1fr;}.hero-copy{min-height:600px}.hero-visual{min-height:60vw}.hero-index{display:none}.section-head{grid-template-columns:1fr .7fr}.philosophy{grid-template-columns:1fr}.philosophy-visual{min-height:520px}.story{grid-template-columns:1fr 1fr}.story>.section-label{grid-column:1/-1}.legal-main{min-height:calc(100svh - 94px)}footer{grid-template-columns:1fr 1fr}}
@media (max-width: 680px){.site-header{height:90px;padding:0 20px}.site-header .brand{gap:13px}.site-header .brand-mark{width:42px;height:42px}.site-header .brand-mark::before{width:23px;height:23px;top:-8px}.site-header .brand-mark span{font-size:21px}.site-header .brand-name{font-size:13px}.site-header .brand-name strong{font-size:16px}.hero-copy{padding:70px 24px 55px;min-height:auto}.hero-visual{min-height:440px}.button-row{align-items:stretch;flex-direction:column;gap:10px}.button{width:100%}.text-link{text-align:center}.intro-content,.section-head{grid-template-columns:1fr;gap:30px}.intro-text{font-size:17px}.service-grid{grid-template-columns:1fr}.service-card{min-height:310px;padding:30px}.project-grid{grid-template-columns:1fr}.project-card:not(:first-child){margin-top:25px}.project-image{aspect-ratio:4/3}.project-note{text-align:left}.story{grid-template-columns:1fr;gap:30px}.values{flex-direction:column;gap:18px}.values span{display:grid;grid-template-columns:35px 1fr}.philosophy-visual{min-height:430px}.contact h2 br{display:none}footer{grid-template-columns:1fr;gap:25px}.copyright{margin-top:10px}.section{padding-left:24px;padding-right:24px}}
@media (max-width: 680px){.story{gap:0}.story-visual{min-height:430px}.story-visual>img{object-position:45% center}.story-copy{padding:65px 24px}}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media print{.site-header,.contact,footer{display:none}.hero{min-height:auto}.section{padding:40px 0}}

/* Documentary before/after photographs retain their full framing. */
.cleaning-story{background:var(--paper)}
.comparison-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.comparison-grid .inspection-card img{height:auto;aspect-ratio:4/3;object-fit:contain}
.comparison-note{margin:25px 0 0;color:var(--muted);font-size:15px;max-width:760px}
@media (max-width:680px){.comparison-grid{grid-template-columns:1fr}}

/* Focus the specialty hero on the roof and work basket. */
.special-hero-image img{object-position:100% top;transform:scale(1.16);transform-origin:100% 0}
