
:root{--ch:#20262b;--g:#2e9e57;--g-d:#1f7a40;--mint:#e9f6ee;--gray:#f5f6f7;--line:#dfe3e6;--mu:#58626a;--w:1140px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:17px/1.7 "Helvetica Neue",Helvetica,Arial,sans-serif;color:var(--ch);background:#fff}
h1,h2,h3{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1.1;margin:0 0 .55em;color:var(--ch);font-weight:700;letter-spacing:-.03em}
h1{font-size:clamp(2.5rem,6vw,4.6rem)}h2{font-size:clamp(1.65rem,3vw,2.3rem)}h3{font-size:1.15rem;letter-spacing:-.01em}
p{margin:0 0 1em;max-width:64ch}a{color:var(--g-d)}img{max-width:100%;height:auto;display:block}
.wrap{max-width:var(--w);margin:0 auto;padding:0 22px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:99}
:focus-visible{outline:3px solid var(--g);outline-offset:3px}
.site-header{background:rgba(255,255,255,.96);position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line)}
.bar{display:flex;justify-content:space-between;align-items:center;min-height:72px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ch);text-decoration:none;font-weight:700;font-size:1.15rem;letter-spacing:-.02em}
nav{display:flex;align-items:center;gap:6px}nav a{color:var(--mu);text-decoration:none;padding:8px 14px;font-weight:500;border-radius:30px}
nav a:hover{color:var(--ch)}nav a[aria-current]{color:var(--ch);background:var(--mint)}
nav a.nav-call{background:var(--g);color:#fff;margin-left:8px;font-weight:600}nav a.nav-call:hover{background:var(--g-d)}
.btn{display:inline-block;background:var(--g);color:#fff;text-decoration:none;font-weight:600;padding:14px 28px;border-radius:30px;border:2px solid var(--g);cursor:pointer;font:inherit;font-weight:600;transition:background .2s}
.btn:hover{background:var(--g-d);border-color:var(--g-d)}.btn-sm{padding:9px 20px;font-size:.95rem}
.btn-ghost{background:transparent;color:var(--ch);border-color:var(--ch)}.btn-ghost:hover{background:var(--ch);border-color:var(--ch);color:#fff}
.btn-w{background:#fff;color:var(--ch);border-color:#fff}.btn-w:hover{background:var(--mint);border-color:var(--mint)}
.btn-line{background:transparent;color:#fff;border-color:#fff}.btn-line:hover{background:#fff;color:var(--ch)}
.row{display:flex;gap:14px;flex-wrap:wrap}
.menu-btn{display:none;background:none;border:0;padding:10px;cursor:pointer}.menu-btn span{display:block;width:26px;height:2px;background:var(--ch);margin:6px 0}
.hero{padding:64px 0 76px}.hgrid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}
.sub{font-size:1.35rem;font-weight:500;color:var(--g-d);line-height:1.4;letter-spacing:-.01em}
.hphoto{position:relative}.hphoto img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 22%;border-radius:28px}
.badge{position:absolute;left:-26px;bottom:34px;background:var(--ch);color:#fff;text-decoration:none;border-radius:20px;padding:16px 22px;box-shadow:0 12px 30px rgba(32,38,43,.3);display:block}
.badge small{display:block;color:#7fe0a3;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em}.badge b{font-size:1.25rem;letter-spacing:-.01em}
.chips{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.chips .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 28px;padding-top:16px;padding-bottom:16px;font-size:.96rem;color:var(--mu)}
.chips b{color:var(--ch)}.chips a{color:var(--g-d);font-weight:600;text-decoration:none;overflow-wrap:anywhere}
.sec{padding:84px 22px}.sec.wrap{padding-left:22px;padding-right:22px}.alt{background:var(--gray)}
.intro{display:grid;grid-template-columns:1fr 1fr;gap:60px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-top:30px}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden}.card img{aspect-ratio:3/2;object-fit:cover;width:100%}
.cb{padding:22px 24px 10px}.cb p{font-size:.97rem}.k{display:inline-block;font-weight:700;font-size:.85rem;color:var(--g-d);background:var(--mint);border-radius:20px;padding:2px 12px;margin-bottom:12px}.more{margin-top:34px}
img[src$="brick-stone-chimney.jpg"]{object-position:50% 12%}img[src$="tile-roof-chimneys.jpg"]{object-position:85% 30%}img[src$="historic-brick-chimney.jpg"]{object-position:40% 22%}
.hphoto img[src$="brick-stone-chimney.jpg"]{object-position:50% 22%}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:30px;margin-top:24px}
.cols>div{border-top:2px solid var(--g);padding-top:18px}
.phead{background:var(--mint);padding:70px 0 64px}.phead h1{font-size:clamp(2.2rem,5.4vw,3.8rem)}.phead p{margin:0;font-size:1.15rem;color:var(--mu)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}.split img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:24px}
.lead{font-size:1.2rem}
.checks{list-style:none;padding:0;margin:20px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px 30px}
.checks li{padding-left:34px;position:relative}.checks li::before{content:"";position:absolute;left:5px;top:.4em;width:8px;height:15px;border:solid var(--g);border-width:0 3px 3px 0;transform:rotate(40deg)}
.svlayout{display:grid;grid-template-columns:260px 1fr;gap:60px;align-items:start}
.toc{position:sticky;top:96px}.toc ol{list-style:none;padding:0;margin:0 0 20px;border-left:2px solid var(--line)}.toc li a{display:block;padding:9px 16px;color:var(--mu);text-decoration:none;font-weight:500;margin-left:-2px;border-left:2px solid transparent}
.toc li a:hover{color:var(--ch);border-color:var(--g)}.toc li span{display:inline-block;width:30px;color:var(--g-d);font-weight:700;font-size:.85rem}
.svs{scroll-margin-top:96px;padding-bottom:50px;margin-bottom:50px;border-bottom:1px solid var(--line)}.svs:last-child{border:0;margin-bottom:0}
.svs img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:20px;margin:6px 0 22px}.svs h2{margin-bottom:.4em}
.cta{background:var(--ch);color:#fff;padding:62px 0}.cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:26px;flex-wrap:wrap}.cta h2{color:#fff;margin-bottom:.2em}.cta p{color:#c4ccd2;margin:0}
.info{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:40px}
.info>div{background:var(--gray);border-radius:18px;padding:24px;overflow-wrap:anywhere}.info h3{color:var(--g-d)}
form{background:var(--gray);border-radius:24px;padding:36px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.full{grid-column:1/-1}
label{display:block;font-weight:600;margin-bottom:16px}
input,select,textarea{display:block;width:100%;margin-top:6px;padding:13px 16px;font:inherit;border:1px solid #c3cbd0;border-radius:12px;background:#fff}
.err{color:#b00020;font-weight:600;min-height:1.4em}.note{font-size:.9rem;color:var(--mu);margin:14px 0 0}
.map{display:block;width:100%;height:340px;border:0;border-radius:24px;margin-top:40px}
.site-footer{background:var(--ch);color:#b9c2c9;padding-top:56px}.site-footer h2{color:#fff;font-size:1.3rem}.site-footer h3{color:#7fe0a3;font-size:.9rem;text-transform:uppercase;letter-spacing:.1em}.site-footer a{color:#fff}
.fgrid{display:grid;grid-template-columns:1.3fr 1.2fr 1.2fr .7fr;gap:32px}
.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin-bottom:6px}address{font-style:normal;overflow-wrap:anywhere}
.hours span{display:inline-block;min-width:120px;color:#fff}
.copy{border-top:1px solid #333c43;margin-top:40px;padding-top:18px;padding-bottom:90px;font-size:.9rem}
.fab{display:none;position:fixed;right:16px;bottom:16px;background:var(--g);color:#fff;font-weight:600;text-decoration:none;padding:14px 24px;border-radius:40px;box-shadow:0 6px 18px rgba(0,0,0,.3);z-index:60}
@media(max-width:900px){.menu-btn{display:block}
nav{position:absolute;top:72px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:8px 22px 20px;display:none}
nav.open{display:flex}nav a.nav-call{text-align:center;margin:10px 0 0}
.hgrid,.intro,.split,.svlayout{grid-template-columns:1fr;gap:34px}.hphoto img{aspect-ratio:4/3}.badge{left:14px;bottom:-18px}
.toc{position:static}.toc ol{display:flex;flex-wrap:wrap;gap:6px;border:0}.toc li a{border:1px solid var(--line);border-radius:30px;padding:6px 14px;margin:0}.toc li span{display:none}.toc .btn{display:none}
.fields{grid-template-columns:1fr}.fgrid{grid-template-columns:1fr 1fr}.fab{display:block}.sec{padding:56px 22px}.hero{padding:40px 0 56px}}
@media(max-width:520px){.fgrid{grid-template-columns:1fr}.brand{font-size:1.02rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
