:root{--ink:#202a30;--muted:#5d686d;--navy:#233747;--navy-deep:#172832;--sage:#657862;--paper:#f7f8f6;--line:#dfe4e2;--white:#fff;--shadow:0 16px 40px rgba(22,38,44,.09)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--ink);font:16px/1.65 Arial,Helvetica,sans-serif}
img{display:block;max-width:100%}
a{color:inherit}
.wrap{width:min(1160px,calc(100% - 44px));margin-inline:auto}
.topbar{background:var(--navy-deep);color:#e5ecec;font-size:.82rem}
.topbar-inner{display:flex;justify-content:space-between;gap:20px;padding:8px 0}
.nav{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}
.nav-inner{display:flex;justify-content:space-between;align-items:center;gap:28px;min-height:86px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0}
.brand img{width:58px;height:58px;object-fit:contain;background:#fff}
.brand-name{font-weight:800;letter-spacing:.005em;line-height:1.2;font-size:1.02rem}
.brand-name small{display:block;margin-top:5px;color:var(--muted);font-size:.69rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.links{display:flex;align-items:center;gap:25px}
.links>a:not(.btn){text-decoration:none;color:#35434a;font-size:.94rem;font-weight:700}
.links>a:not(.btn):hover,.phone-link:hover,.service-copy a:hover{color:var(--sage)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;border:1px solid var(--navy);border-radius:3px;background:var(--navy);color:#fff;text-decoration:none;font-weight:700;line-height:1.2;transition:background .16s,border-color .16s}
.btn:hover{background:#304c60;border-color:#304c60}
.btn-small{min-height:42px;padding:10px 15px;font-size:.9rem}
.hero{background:var(--paper);padding:66px 0 58px}
.hero-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.92fr);align-items:center;gap:58px}
.hero-copy{max-width:610px}
.eyebrow{margin:0 0 12px;color:var(--sage);font-size:.82rem;font-weight:800;letter-spacing:.075em;text-transform:uppercase}
h1,h2,h3,p,figure{margin-top:0}
h1{max-width:680px;margin-bottom:20px;font-size:clamp(2.7rem,5.2vw,4.35rem);line-height:1.06;letter-spacing:-.035em;font-weight:750;color:var(--navy-deep)}
.hero-lede{max-width:600px;margin-bottom:12px;color:#3e4b51;font-size:1.15rem;line-height:1.65}
.hero-support{margin:0;color:var(--muted)}
.actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:28px}
.phone-link{color:var(--navy);font-weight:700;text-decoration:none}
.hero-photo{position:relative;margin:0}
.hero-photo img{width:100%;height:440px;object-fit:cover;object-position:center 48%;border-radius:3px;box-shadow:var(--shadow)}
.intro-band{border-bottom:1px solid var(--line)}
.intro-inner{display:grid;grid-template-columns:1fr auto;align-items:center;gap:34px;padding:26px 0}
.intro-inner>p{max-width:760px;margin:0;color:#48555b}
.warranty-note{padding-left:23px;border-left:1px solid var(--line);font-size:.9rem;line-height:1.5;white-space:nowrap}
.warranty-note strong{color:var(--navy)}
.section{padding:78px 0}
.section-heading{max-width:710px;margin-bottom:32px}
.section-heading h2,.contact-inner h2{margin:0 0 12px;color:var(--navy-deep);font-size:clamp(2rem,3.6vw,3rem);line-height:1.12;letter-spacing:-.025em;font-weight:750}
.section-heading>p:last-child,.contact-inner>div:first-child>p:last-child{margin:0;color:var(--muted);font-size:1.04rem}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.service-card{overflow:hidden;border:1px solid var(--line);border-radius:3px;background:#fff}
.service-card>img{width:100%;height:220px;object-fit:cover;background:#eef0ed}
.service-copy{padding:22px 23px 24px}
.service-copy h3{margin:0 0 8px;color:var(--navy);font-size:1.2rem;line-height:1.3}
.service-copy p{margin:0 0 15px;color:var(--muted);font-size:.96rem;line-height:1.55}
.service-copy a{color:var(--navy);font-size:.92rem;font-weight:700;text-decoration:none}
.service-copy a:after{content:" →"}
.projects-section{padding:76px 0;background:var(--paper)}
.project-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:220px;gap:14px}
.project-grid figure{position:relative;margin:0;overflow:hidden;background:#d9dfdc}
.project-grid .project-large{grid-column:span 2;grid-row:span 2}
.project-grid img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.project-grid figure:hover img{transform:scale(1.025)}
.gallery-page-hero{padding:58px 0 46px;background:var(--paper);border-bottom:1px solid var(--line)}
.gallery-page-hero h1{margin-bottom:12px;font-size:clamp(2.5rem,4.7vw,3.8rem)}
.gallery-page-hero p:last-child{max-width:760px;margin-bottom:0;color:var(--muted);font-size:1.08rem}
.gallery-page{padding:44px 0 78px}
.gallery-note{margin:0 0 20px;color:var(--muted);font-size:.94rem}
.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.gallery-grid a{display:block;overflow:hidden;aspect-ratio:4/3;background:#d9dfdc}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .2s ease}
.gallery-grid a:hover img{transform:scale(1.025)}
.gallery-next{margin-top:42px;padding:30px;border-left:3px solid var(--sage);background:var(--paper)}
.gallery-next h2{margin:0 0 10px;color:var(--navy-deep);font-size:clamp(1.65rem,3vw,2.25rem);line-height:1.2}
.gallery-next>p:not(.eyebrow){max-width:760px;margin:0;color:var(--muted)}
.gallery-service-links{display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px;margin-top:22px}
.gallery-service-links a:not(.btn){color:var(--navy);font-weight:700;text-underline-offset:3px}
.area-section{padding-top:76px;padding-bottom:76px}
.area-layout{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:60px}
.area-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.area-links a{padding:14px 16px;border:1px solid var(--line);border-left:3px solid var(--sage);background:#fff;color:var(--navy);font-weight:700;text-decoration:none}
.area-links a:hover{background:var(--paper)}
.contact-section{background:var(--navy-deep);color:#fff;padding:50px 0}
.contact-inner{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);align-items:start;gap:46px}
.contact-inner h2{color:#fff}
.contact-inner .eyebrow{color:#c1d1be}
.contact-inner>div:first-child>p:not(.eyebrow){max-width:640px;color:#d4dcdf}
.estimate-contact a{color:#fff;font-weight:700;text-underline-offset:3px}
.estimate-form{padding:24px;border:1px solid rgba(255,255,255,.22);border-radius:4px;background:rgba(255,255,255,.06)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.estimate-form label{display:grid;gap:6px;color:#fff;font-size:.92rem;font-weight:700}
.estimate-form input,.estimate-form select,.estimate-form textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #cad2d2;border-radius:3px;background:#fff;color:var(--ink);font:inherit}
.estimate-form textarea{min-height:112px;resize:vertical}
.estimate-form input:focus,.estimate-form select:focus,.estimate-form textarea:focus{outline:3px solid #93b49a;outline-offset:2px}
.form-wide{grid-column:1/-1}
.estimate-form .btn{margin-top:18px;background:#fff;border-color:#fff;color:var(--navy-deep);cursor:pointer}
.estimate-form .btn:hover{background:#e9efed;border-color:#e9efed}
.form-note{margin:12px 0 0;color:#d4dcdf;font-size:.86rem;line-height:1.5}
.footer{padding:44px 0 20px;background:#111c23;color:#d1d8da}
.footer-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:48px}
.footer-brand{color:#fff}
.footer-brand img{width:60px;height:60px}
.footer-grid>div>p{max-width:400px;margin:16px 0 0;color:#b7c1c5;font-size:.93rem}
.footer h2{margin:3px 0 10px;color:#fff;font-size:1rem}
.footer a:not(.brand){color:#fff;text-decoration:none}
.footer-bottom{margin-top:30px;padding-top:16px;border-top:1px solid rgba(255,255,255,.14);color:#9eabad;font-size:.84rem}
.mobile-call{display:none}
.location-hero{padding:62px 0;background:var(--paper)}
.location-hero h1{font-size:clamp(2.45rem,4.5vw,3.8rem)}
.location-hero p{max-width:720px;margin-bottom:24px;color:#48555b;font-size:1.1rem}
.content{max-width:830px}
.content h2{margin:0 0 10px;color:var(--navy);font-size:1.55rem;line-height:1.25}
.content p{margin:0 0 22px;color:#4d595e}
.content .notice{margin:0 0 28px;padding:16px 18px;border-left:3px solid var(--sage);background:var(--paper);color:#33434a}
.content .city-links{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}
.content .city-links a{padding:8px 12px;border:1px solid var(--line);color:var(--navy);text-decoration:none;font-weight:700}
.blog-teaser{border-top:1px solid var(--line)}
.blog-teaser-inner{display:flex;align-items:center;justify-content:space-between;gap:32px}
.blog-teaser-inner>div{max-width:660px}
.blog-teaser h2{margin:0 0 10px;color:var(--navy-deep);font-size:clamp(1.8rem,3.2vw,2.6rem);line-height:1.15;letter-spacing:-.025em}
.blog-teaser p:last-child{margin:0;color:var(--muted);font-size:1.04rem}
.footer-bottom{display:flex;justify-content:space-between;gap:18px}
.blog-heading{padding:64px 0 52px;background:var(--paper)}
.blog-heading h1{max-width:790px;margin-bottom:12px;font-size:clamp(2.4rem,4.7vw,3.7rem)}
.blog-heading p:last-child{max-width:660px;margin:0;color:var(--muted);font-size:1.08rem}
.article-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.article-card{padding:28px;border:1px solid var(--line);background:#fff}
.article-meta{margin:0 0 12px;color:var(--sage);font-size:.86rem;font-weight:700}
.article-card h2{margin:0 0 12px;color:var(--navy);font-size:1.55rem;line-height:1.25}
.article-card h2 a{text-decoration:none}
.article-card h2 a:hover,.read-link:hover{color:var(--sage)}
.article-card>p:not(.article-meta){margin:0 0 18px;color:var(--muted)}
.read-link{font-weight:700;color:var(--navy);text-decoration:none}
.article-main{padding:24px 0 76px}
.article-wrap{max-width:960px}
.breadcrumbs{margin:0 0 32px;color:var(--muted);font-size:.9rem}
.breadcrumbs a{color:var(--navy);text-decoration:none}
.article-body{max-width:760px;margin-inline:auto}
.article-body h1{max-width:740px;margin:0 0 20px;font-size:clamp(2.3rem,4.4vw,3.6rem)}
.article-body h2{margin:36px 0 10px;color:var(--navy-deep);font-size:1.55rem;line-height:1.3}
.article-body p,.article-body li{color:#465259;font-size:1.06rem;line-height:1.8}
.article-body p{margin-bottom:20px}
.article-body ul{padding-left:23px;margin:0 0 24px}
.article-body li{padding-left:4px;margin-bottom:8px}
.article-body a:not(.btn){color:var(--navy);font-weight:700;text-underline-offset:3px}
.article-body .article-intro{color:#34444c;font-size:1.2rem;line-height:1.7}
.faq-list{margin:18px 0 34px;border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{position:relative;padding:18px 40px 18px 0;color:var(--navy);font-size:1.03rem;font-weight:750;line-height:1.45;cursor:pointer;list-style:none}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:after{content:"+";position:absolute;right:8px;top:16px;color:var(--sage);font-size:1.45rem;line-height:1}
.faq-list details[open] summary:after{content:"−"}
.article-body .faq-list p{margin:0;padding:0 36px 19px 0;font-size:1rem;line-height:1.7}
.article-author{padding-top:16px;border-top:1px solid var(--line);font-size:.93rem!important;color:var(--muted)!important}
.article-cta{margin-top:38px;padding:26px;background:var(--paper);border-left:3px solid var(--sage)}
.article-cta h2{margin:0 0 8px;font-size:1.45rem}
.article-cta p{margin-bottom:18px}
.article-cta .btn{margin-bottom:0}
.links>a[aria-current="page"]{color:var(--sage)!important}
.mobile-call:focus-visible,.btn:focus-visible,a:focus-visible,.faq-list summary:focus-visible{outline:3px solid #93b49a;outline-offset:3px}
@media(max-width:900px){
  .links{gap:15px}.hero-layout{gap:34px;grid-template-columns:1fr 1fr}.hero-photo img{height:400px}
  .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.area-layout{gap:30px}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:680px){
  body{padding-bottom:60px}.wrap{width:min(100% - 30px,1160px)}
  .topbar-inner{justify-content:center;text-align:center}.topbar-inner span:last-child{display:none}
  .nav-inner{min-height:72px}.brand img{width:48px;height:48px}.brand-name{font-size:.91rem}.brand-name small{font-size:.59rem}
  .links>a:not(.btn){display:none}.links{gap:0}.btn-small{min-height:40px;padding:9px 11px;font-size:.8rem}
  .hero{padding:42px 0 38px}.hero-layout{grid-template-columns:1fr;gap:28px}.hero-photo{order:2}.hero-photo img{height:290px}.hero-copy{order:1}
  h1{font-size:clamp(2.45rem,11vw,3.4rem)}.hero-lede{font-size:1.06rem}.actions{align-items:flex-start;flex-direction:column;gap:15px}
  .intro-inner{grid-template-columns:1fr;gap:15px;padding:20px 0}.warranty-note{padding:0;border:0;white-space:normal}
  .section,.projects-section{padding:55px 0}.section-heading h2,.contact-inner h2{font-size:2.1rem}.gallery-page-hero{padding:42px 0 36px}.gallery-page{padding:30px 0 56px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gallery-next{margin-top:30px;padding:23px 20px}.gallery-service-links{align-items:stretch;flex-direction:column}.gallery-service-links .btn{width:100%}
  .service-grid{grid-template-columns:1fr;gap:14px}.service-card>img{height:230px}
  .project-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:160px;gap:9px}.project-grid .project-large{grid-column:span 2;grid-row:span 1}
  .area-layout{grid-template-columns:1fr;gap:24px}.area-links{gap:8px}.area-links a{padding:12px 10px;font-size:.9rem}
  .contact-inner{grid-template-columns:1fr;gap:24px}.estimate-form{padding:18px}.form-grid{grid-template-columns:1fr;gap:14px}.form-wide{grid-column:auto}.footer-grid{grid-template-columns:1fr;gap:24px}.footer{padding:36px 0 18px}
  .mobile-call{position:fixed;z-index:20;right:0;bottom:0;left:0;display:block;padding:16px 10px;background:var(--navy);color:#fff;text-align:center;text-decoration:none;font-weight:700}
  .links>a[href="/blog/"]{display:inline-flex!important;margin-right:12px;font-size:.85rem!important}
  .blog-teaser-inner{align-items:flex-start;flex-direction:column;gap:20px}
  .blog-heading{padding:44px 0 38px}
  .article-list{grid-template-columns:1fr;gap:14px}
  .article-card{padding:22px}
  .article-main{padding:16px 0 55px}
  .breadcrumbs{margin-bottom:22px}
  .article-body h2{margin-top:30px}
  .footer-bottom{flex-direction:column;gap:8px}
}

.location-phone{display:inline-block;margin-left:18px}
.content .actions{margin-top:25px}
@media(max-width:680px){.location-phone{display:block;margin:16px 0 0}.location-hero{padding:44px 0}}
