:root{--ink:#16160F;--black:#0D0D0B;--black2:#000;--gold-deep:#5C4200;--gold-mid:#9A7000;--gold:#C78800;--gold-l:#D9A93C;--gold-d:#8A6400;--gold-grad:linear-gradient(90deg,#5C4200 0%,#9A7000 45%,#C78800 100%);--paper:#fff;--cream:#FAF6EC;--stone:#F1E9D8;--line:#E7DFCA;--mut:#6E6A60}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Jost',sans-serif;font-weight:300;color:var(--ink);background:var(--paper);font-size:17px;line-height:1.75}
h1,h2,h3,.serif{font-family:'Fraunces','Georgia',serif;font-weight:600;color:var(--black);line-height:1.14;font-optical-sizing:auto}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold-d);text-decoration:none}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.label{font-family:'Jost',sans-serif;font-weight:500;font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-d)}
.dark .label,.hero .label,.cta .label,.phero .label{color:var(--gold-l)}
.rule{width:56px;height:3px;background:var(--gold-grad);margin:18px 0;border:0}
.rule.center{margin:18px auto}
.lead{font-family:'Fraunces','Georgia',serif;font-size:22px;color:var(--black);line-height:1.5;font-weight:400}
.ic{width:40px;height:42px;color:var(--gold-d)}
.btn{display:inline-block;font-family:'Jost',sans-serif;font-weight:500;font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;padding:16px 30px;border:1px solid var(--gold);transition:.25s;color:#14140F;background:var(--gold)}
.btn:hover{background:var(--gold-mid);border-color:var(--gold-mid);color:#fff}
.btn.ghost{background:transparent;color:#F6F3EC;border-color:rgba(246,243,236,.5)}
.btn.ghost:hover{background:rgba(246,243,236,.12);color:#fff}
.btn.ghost-dark{background:transparent;color:var(--black);border-color:var(--black)}
.btn.ghost-dark:hover{background:var(--black);color:#fff}
/* header */
.top{background:#fff;border-bottom:1px solid var(--line);border-top:4px solid transparent;border-image:var(--gold-grad) 1;position:sticky;top:0;z-index:50}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:86px;gap:18px}
.top img{height:50px;width:auto}
nav.main{display:flex;gap:22px;align-items:center}
nav.main a{font-size:11.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--black);padding:6px 0;border-bottom:1px solid transparent;white-space:nowrap}
nav.main a:hover,nav.main a.on{color:var(--gold-d);border-bottom-color:var(--gold)}
nav.main a.tel{color:var(--gold-d);font-weight:600}
.burger{display:none;background:none;border:1px solid var(--black);padding:9px 12px;cursor:pointer;color:var(--black);font-size:15px;line-height:1}
/* dark photographic backdrop */
.stonebg{background-color:var(--black);background-image:linear-gradient(90deg,rgba(8,8,7,.97) 30%,rgba(8,8,7,.85) 50%,rgba(8,8,7,.5) 72%,rgba(8,8,7,.28) 100%),url('/img/sulzer-breakout-1.jpg');background-repeat:no-repeat;background-attachment:fixed;background-position:right center;background-size:cover}
@media(max-width:900px){.stonebg{background-attachment:scroll;background-image:linear-gradient(90deg,rgba(8,8,7,.96) 25%,rgba(8,8,7,.7) 100%),url('/img/sulzer-breakout-1.jpg')}}
/* hero */
.hero{color:#F1EDE4;position:relative;overflow:hidden;border-bottom:4px solid transparent;border-image:var(--gold-grad) 1}
.hero .wrap{padding-top:96px;padding-bottom:100px}
.hero .content{max-width:64%}
.hero h1{color:#fff;font-size:52px;font-weight:600;letter-spacing:-.005em}
.hero h1 em{font-style:normal;color:var(--gold-l)}
.hero .lead{color:#DFD9CC;font-size:22px;font-weight:300;font-family:'Jost',sans-serif;line-height:1.65}
.hero .tags{font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:#B8B2A4;margin:26px 0 34px;line-height:2.2}
.hero .btns{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero .phone-big{font-family:'Fraunces',serif;font-size:26px;color:#fff;letter-spacing:.02em}
.badge{margin-top:40px;width:154px;height:154px;border-radius:50%;color:#F1EDE4;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--gold);transition:.25s}
a.badge:hover{background:rgba(192,140,30,.14)}
.badge b{font-family:'Fraunces',serif;font-size:27px;letter-spacing:0;color:#fff}
.badge .stars{color:var(--gold-l);font-size:13px;letter-spacing:.2em;margin:3px 0}
/* page hero */
.phero{color:#F1EDE4;padding:76px 0 72px;border-bottom:4px solid transparent;border-image:var(--gold-grad) 1}
.phero .inner{max-width:1180px;margin:0 auto;padding:0 24px}
.phero .inner>*{max-width:66%}
.phero h1{color:#fff;font-size:44px}
.phero .lead{color:#DBD5C7;margin-top:12px;font-family:'Jost',sans-serif;font-weight:300;font-size:19px}
.crumb{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#9E998C;margin-bottom:16px}
.crumb a{color:#9E998C}.crumb a:hover{color:var(--gold-l)}
/* sections */
section{padding:88px 0}
section.tight{padding:62px 0}
.alt{background:var(--cream)}
.dark{background:var(--black);color:#DFD9CC;border-top:3px solid transparent;border-image:var(--gold-grad) 1}
.dark h2,.dark h3{color:#fff}
.dark p{color:#CFC9BB}
.two{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.two.wide-pic{grid-template-columns:1fr 1.15fr}
.two .pic{border:1px solid var(--gold);padding:10px;background:#fff}
.dark .two .pic{background:transparent;border-color:rgba(192,140,30,.5)}
.two .pic img{width:100%;aspect-ratio:4/3.2;object-fit:cover}
h2.big{font-size:38px;margin:14px 0 8px}
.center{text-align:center}
/* cards */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:48px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;margin-top:48px}
.svc{background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold);padding:36px 30px;text-align:center;transition:.25s}
.svc:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(13,13,11,.12);border-color:var(--gold)}
.alt .svc{background:#fff}
.svc h3{font-size:22px;margin:16px 0 8px}
.svc p{font-size:15.5px;color:var(--mut)}
.svc .more{display:inline-block;margin-top:14px;font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid var(--gold);padding-bottom:3px}
a.svc{color:inherit}a.svc h3{color:var(--black)}a.svc:hover h3{color:var(--gold-d)}
.pagecard{position:relative;display:block;overflow:hidden;border:1px solid var(--gold);background:#000}
.pagecard img{width:100%;aspect-ratio:4/4.4;object-fit:cover;opacity:.8;transition:.4s}
.pagecard:hover img{opacity:.58;transform:scale(1.04)}
.pagecard .cap{position:absolute;left:0;right:0;bottom:0;padding:30px 22px 22px;background:linear-gradient(0deg,rgba(9,9,8,.97) 35%,rgba(9,9,8,.7) 70%,rgba(9,9,8,0));color:#fff}
.pagecard .cap h3{color:#fff;font-size:23px}
.pagecard .cap span{font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-l)}
.grid5{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:48px}
@media(max-width:820px){.grid5{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.grid5{grid-template-columns:1fr}}
/* steps */
.steps{counter-reset:st;display:grid;margin-top:44px;border-left:1px solid var(--gold)}
.step{position:relative;padding:20px 0 20px 66px}
.step:before{counter-increment:st;content:counter(st,decimal-leading-zero);position:absolute;left:14px;top:20px;font-family:'Fraunces',serif;font-size:26px;color:var(--gold-d)}
.dark .step:before{color:var(--gold-l)}
.step h3{font-size:21px;margin-bottom:4px}
.step p{font-size:15.5px;color:var(--mut)}
.dark .step p{color:#CFC9BB}
/* checklist */
.checks{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px 34px;margin-top:26px}
.checks.one{grid-template-columns:1fr}
.checks li{position:relative;padding-left:30px;font-size:16px}
.checks li:before{content:'';position:absolute;left:0;top:8px;width:14px;height:8px;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}
/* spec table */
.spec{width:100%;border-collapse:collapse;margin-top:34px;font-size:15.5px}
.spec th,.spec td{text-align:left;padding:15px 16px;border-bottom:1px solid var(--line);vertical-align:top}
.spec th{width:34%;font-family:'Jost',sans-serif;font-weight:500;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-d)}
.spec tr:last-child th,.spec tr:last-child td{border-bottom:0}
.dark .spec th{color:#fff}.dark .spec td{color:#CFC9BB}
.dark .spec th,.dark .spec td{border-bottom-color:rgba(246,243,236,.16)}
.tblwrap{overflow-x:auto}
/* testimonials */
.tst{background:#fff;border:1px solid var(--line);border-left:3px solid var(--gold);padding:36px;position:relative}
.tst:before{content:'\201C';font-family:'Fraunces',serif;font-size:80px;color:var(--gold);opacity:.3;position:absolute;top:10px;left:22px;line-height:1}
.tst p{font-size:16px;color:var(--ink);position:relative}
.tst .who{margin-top:16px;font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--black)}
.tst .stars{color:var(--gold);letter-spacing:.25em;margin-bottom:12px}
/* gallery */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:44px}
.gal figure{border:1px solid var(--line);border-bottom:3px solid var(--gold);background:#fff}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover}
.gal figcaption{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-d);padding:12px 14px}
@media(max-width:820px){.gal{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.gal{grid-template-columns:1fr}}
/* stat band */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:44px}
.stats div{text-align:center;border:1px solid rgba(192,140,30,.45);padding:26px 14px}
.stats b{display:block;font-family:'Fraunces',serif;font-size:34px;color:var(--gold-l);line-height:1}
.stats span{display:block;margin-top:8px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#B8B2A4}
@media(max-width:760px){.stats{grid-template-columns:1fr 1fr}}
/* cta band */
.cta{color:#F1EDE4;text-align:center;padding:82px 24px;border-top:4px solid transparent;border-image:var(--gold-grad) 1}
.cta h2{color:#fff;font-size:38px;margin:12px 0 26px}
.cta .btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
/* contact cards + form */
.ccard{background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold);padding:38px 30px;text-align:center}
.ccard h3{font-size:21px;margin:14px 0 6px}
.ccard a.big,.ccard span.big{font-family:'Fraunces',serif;font-size:22px;color:var(--black);display:block;overflow-wrap:anywhere}
.ccard a.big:hover{color:var(--gold-d)}
.ccard p{font-size:14.5px;color:var(--mut)}
form.quote{background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold);padding:40px;margin-top:44px;text-align:left}
form.quote .row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
form.quote label{display:block;font-size:11.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--black);margin:18px 0 7px}
form.quote input,form.quote select,form.quote textarea{width:100%;font-family:'Jost',sans-serif;font-size:16px;font-weight:300;color:var(--ink);padding:13px 14px;border:1px solid var(--line);background:var(--paper)}
form.quote input:focus,form.quote select:focus,form.quote textarea:focus{outline:0;border-color:var(--gold)}
form.quote textarea{min-height:130px;resize:vertical}
form.quote .btn{margin-top:26px;cursor:pointer;width:100%}
form.quote .note{font-size:13px;color:var(--mut);margin-top:14px;text-align:center}
/* accreditation strip */
.accr{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:40px}
.accr .badge2{border:1px solid var(--line);border-bottom:3px solid var(--gold);background:#fff;padding:16px 26px;text-align:center}
.accr .badge2 b{display:block;font-family:'Jost',sans-serif;font-weight:600;letter-spacing:.1em;font-size:14px;color:var(--black)}
.accr .badge2 span{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--mut)}
.dark .accr .badge2{background:transparent;border-color:rgba(246,243,236,.28)}
.dark .accr .badge2 b{color:#fff}
.dark .accr .badge2 span{color:#B8B2A4}
/* brand strip */
.brands{display:flex;gap:12px 34px;justify-content:center;flex-wrap:wrap;margin-top:30px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-d)}
/* footer */
footer{background:var(--black2);color:#B5AFA2;padding:70px 0 0;font-size:15px;border-top:4px solid transparent;border-image:var(--gold-grad) 1}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:56px;padding-bottom:52px}
footer .flogo{height:56px;width:auto;margin-bottom:18px}
footer .wm-sub{font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-l);margin:0 0 18px}
footer h4{font-family:'Jost',sans-serif;font-size:12px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-l);margin-bottom:18px}
footer a{color:#B5AFA2}
footer a:hover{color:var(--gold-l)}
footer li{list-style:none;margin-bottom:10px}
footer .base{border-top:1px solid rgba(246,243,236,.14);padding:22px 0;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12.5px;letter-spacing:.05em}
.social{display:flex;gap:12px;margin-top:20px}
.social a{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid rgba(246,243,236,.25);color:#B5AFA2;transition:.25s}
.social a svg{width:17px;height:17px}
.social a:hover{background:var(--gold);border-color:var(--gold);color:#14140F}
.ccard .social{justify-content:center}
.ccard .social a{border-color:var(--line);color:var(--black)}
.ccard .social a:hover{background:var(--gold);border-color:var(--gold);color:#14140F}
/* responsive */
@media(max-width:1000px){
 nav.main{gap:16px}
 nav.main a{font-size:10.5px;letter-spacing:.1em}
}
@media(max-width:960px){
 .hero .wrap{padding-top:62px;padding-bottom:70px}
 .hero .content{max-width:100%}
 .phero .inner>*{max-width:100%}
 .hero h1{font-size:38px}
 .two,.two.wide-pic{grid-template-columns:1fr;gap:40px}
 .grid3{grid-template-columns:1fr 1fr}
 footer .cols{grid-template-columns:1fr;gap:40px}
}
@media(max-width:880px){
 nav.main{display:none;position:absolute;top:86px;left:0;right:0;background:#fff;flex-direction:column;gap:0;border-bottom:1px solid var(--line);padding:10px 0;box-shadow:0 18px 30px rgba(0,0,0,.09)}
 nav.main.open{display:flex}
 nav.main a{padding:14px 26px;width:100%;border-bottom:0;font-size:12px;letter-spacing:.16em}
 .burger{display:block}
}
@media(max-width:640px){
 body{font-size:16px}
 .grid3,.grid2,.checks,form.quote .row{grid-template-columns:1fr}
 .phero h1{font-size:32px}
 h2.big{font-size:29px}
 .hero h1{font-size:31px}
 .hero .lead{font-size:18px}
 .cta h2{font-size:29px}
 section{padding:62px 0}
 .label{font-size:10px;letter-spacing:.16em}
 .hero .tags{font-size:9.5px;letter-spacing:.14em}
 .hero .btns{align-items:stretch;flex-direction:column}
 .hero .btns .btn{text-align:center}
 .hero .phone-big{text-align:center;font-size:23px}
 .spec th{width:auto}
 form.quote{padding:26px 20px}
 .top img{height:40px}
}

/* services dropdown */
.has-sub{position:relative}
.has-sub>a:after{content:'\25BE';font-size:8px;margin-left:6px;vertical-align:middle;opacity:.65}
.sub{display:none;position:absolute;top:100%;left:-18px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 34px rgba(0,0,0,.12);padding:8px 0;min-width:250px;z-index:60}
.has-sub:hover .sub,.has-sub:focus-within .sub{display:block}
.sub a{display:block;padding:11px 22px;border-bottom:0;letter-spacing:.12em;font-size:11px}
.sub a:hover{background:var(--cream);color:var(--gold-d)}
@media(max-width:880px){
 .has-sub>a:after{display:none}
 .sub{display:block;position:static;border:0;box-shadow:none;padding:0;min-width:0;background:var(--cream)}
 .sub a{padding:12px 26px 12px 42px;font-size:11px}
}

/* two-route split: commercial vs residential */
.routes{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:44px}
.route{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-top:4px solid var(--gold);color:inherit;transition:.25s;overflow:hidden}
.route:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(13,13,11,.16);border-color:var(--gold)}
.route img{width:100%;aspect-ratio:16/8.5;object-fit:cover}
.route .rbody{padding:32px 30px 34px}
.route h3{font-size:29px;margin:10px 0 12px}
.route:hover h3{color:var(--gold-d)}
.route p{font-size:15.5px;color:var(--mut)}
.route .mini{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 6px}
.route .mini li{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--line);padding:6px 12px;color:var(--gold-d)}
.route .more{display:inline-block;margin-top:16px;font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-d);border-bottom:1px solid var(--gold);padding-bottom:3px}
@media(max-width:860px){.routes{grid-template-columns:1fr}}
/* 4-up service grid */
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:44px}
@media(max-width:1040px){.grid4{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.grid4{grid-template-columns:1fr}}
/* inline fact row on case-study teasers */
.factrow{display:flex;flex-wrap:wrap;gap:26px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.factrow b{display:block;font-family:'Jost',sans-serif;font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-d)}
.factrow span{font-size:15px;color:var(--ink)}
.dark .factrow{border-top-color:rgba(246,243,236,.18)}
.dark .factrow span{color:#DFD9CC}
/* 4-column footer */
footer .cols4{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.15fr;gap:44px;padding-bottom:52px}
@media(max-width:1000px){footer .cols4{grid-template-columns:1fr 1fr;gap:38px}}
@media(max-width:620px){footer .cols4{grid-template-columns:1fr}}
/* wider nav breakpoint now there are more items */
@media(max-width:980px){
 nav.main{display:none;position:absolute;top:86px;left:0;right:0;background:#fff;flex-direction:column;gap:0;border-bottom:1px solid var(--line);padding:10px 0;box-shadow:0 18px 30px rgba(0,0,0,.09);max-height:78vh;overflow-y:auto}
 nav.main.open{display:flex}
 nav.main a{padding:13px 26px;width:100%;border-bottom:0;font-size:12px;letter-spacing:.16em}
 .burger{display:block}
 .has-sub>a:after{display:none}
 .sub{display:block;position:static;border:0;box-shadow:none;padding:0;min-width:0;background:var(--cream)}
 .sub a{padding:11px 26px 11px 42px;font-size:11px}
}

