:focus-visible{outline:3px solid #b44a1e;outline-offset:4px}a,button,input,textarea,select{-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit}.estimate-form{padding:clamp(1rem,4vw,2rem);background:#fff;border:1px solid var(--line);margin:2rem 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.form-grid label{display:grid;gap:.35rem;font-weight:700;min-width:0}.form-grid .full{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-height:46px;padding:.65rem;border:1px solid #727c74;border-radius:4px;background:#fff;color:var(--ink)}.form-grid input[type=file]{font-size:.9rem;padding:.55rem}.form-grid textarea{resize:vertical}.field-help{font-size:.85rem;font-weight:400;color:#465048}.form-status{font-weight:700;overflow-wrap:anywhere}.form-status[data-error=true]{color:#962816}.form-status:empty{display:none}.form-trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.estimate-form button{cursor:pointer}.estimate-form button:disabled{opacity:.65;cursor:wait}.reload-captcha{margin-top:.6rem;background:white;border:1px solid var(--green);padding:.6rem}.entry-content .button.primary{color:#fff}.entry-content figure{margin:1.5rem 0}.entry-content img{display:block;height:auto}.entry-content iframe{min-height:320px}.entry-content h2:first-child{margin-top:0}.entry-content svg{max-width:2rem;max-height:2rem}.entry-content,.hero h1{overflow-wrap:break-word}.entry-content li{margin-bottom:.35rem}.roofing-intro{margin-top:2rem;padding:1.5rem;border:1px solid var(--line);background:#fff}.entry-content .related-services{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line)}.eyebrow,.section-kicker,.service-card span,.step b{color:#ad451f}.dark .section-kicker{color:#f4a57d}.hero-badge,.cta{color:#18211c}.trust-row span:before{color:#ad451f}.brand span{color:#515e55}.site-footer .brand span{color:#bfcfc5}.breadcrumb-list{list-style:none;display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0}.breadcrumb-list li+li:before{content:'/';margin-right:.45rem}.post-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}@media(max-width:920px){.site-footer{padding-bottom:110px}.hero{min-height:0}.primary-nav.open a{padding:.65rem 0;display:block}.primary-nav.open li:last-child a{padding:.75rem 1rem}}@media(max-width:600px){.form-grid{grid-template-columns:1fr}.hero h1{font-size:clamp(3rem,11.7vw,4.2rem)}.header-inner{gap:.8rem}.brand strong{font-size:1.2rem}.cta{gap:1.5rem}.content-shell{padding:40px 0 65px}.page-hero{padding:45px 0 35px}.entry-content figure{margin-inline:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}


/* Service concepts: explicit sizing keeps layout stable while images load. */
.service-illustration{margin:1.75rem 0}.service-illustration img{display:block;width:100%;height:auto;border-radius:8px}.service-illustration figcaption{margin-top:.55rem;font-size:.8rem;line-height:1.5;color:#515e55}.roofing-feature{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:1.5rem;align-items:center}.roofing-feature .service-illustration{margin:0}.roofing-feature h3{margin-top:0}.roofing-feature p:last-child{margin-bottom:0}@media(max-width:600px){.roofing-feature{grid-template-columns:minmax(0,1fr)}}

/* September content release: service choices and construction photographs. */
.home-intro{padding:clamp(38px,6vw,82px) 0}.intro-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(24px,5vw,72px);align-items:center}.home-intro h1{font-family:var(--serif);font-size:clamp(2.7rem,4.5vw,4.7rem);line-height:1.04;letter-spacing:-.045em;margin:1rem 0 1.4rem}.intro-copy{font-size:1.1rem;max-width:640px;color:#3e4b42}.home-intro .project-photo img{width:100%;max-height:590px;object-fit:cover;border-radius:140px 8px 8px 8px}.home-intro .project-photo{margin:0}.local-line{font-size:.8rem;color:#4d5a51;margin-top:1.6rem}.action-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.action-row a:not(.button),.text-link{font-weight:750;text-underline-offset:.25em}.home-section{padding:clamp(42px,6vw,80px) 0}.home-section h2{font-family:var(--serif);font-size:clamp(2rem,3.6vw,3.7rem);line-height:1.08;letter-spacing:-.035em;margin:.6rem 0 1.6rem}.home-section p{max-width:850px}.home-feature{background:#e7e6da;border-block:1px solid var(--line)}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:center}.home-owner{background:var(--green2);color:#fff}.home-owner .eyebrow{color:#f4a57d}.home-owner a{color:#fff}.process-list{padding-left:1.4rem}.process-list li{margin:1rem 0}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0 2rem}.choice-card{background:#fff;border:1px solid var(--line);padding:clamp(18px,2.6vw,30px);border-radius:5px}.choice-card h3,.entry-content .choice-card h3{font-family:var(--serif);font-size:1.5rem;line-height:1.18;margin:0 0 .8rem}.choice-card a{color:var(--green);text-underline-offset:.2em}.choice-card p{font-size:.95rem;line-height:1.6;color:#48544b;margin:0}.home-section .choice-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.3rem;margin:2rem 0}.project-photo{min-width:0;margin:1.8rem 0}.photo-grid .project-photo{margin:0}.project-photo img{width:100%;height:auto;border-radius:5px}.photo-grid .project-photo img{aspect-ratio:4/3;object-fit:cover}.project-photo figcaption{font-size:.83rem;line-height:1.5;color:#49594e;margin-top:.6rem}.project-photo>a{display:block}.entry-content>.project-photo{max-width:740px}.entry-content>.project-photo img{max-height:570px;object-fit:contain;object-position:left center;background:#eeeee5}.text-links{display:flex;flex-wrap:wrap;gap:1rem 2rem;margin:1.5rem 0}.text-links a{color:var(--green);font-weight:750}.estimate-callout{background:#e6e8db;border-left:4px solid var(--green);padding:clamp(20px,4vw,40px);margin:3rem 0 0;border-radius:0 6px 6px 0}.entry-content .estimate-callout h2,.estimate-callout h2{margin-top:0;font-size:clamp(1.9rem,3vw,2.8rem)}.estimate-callout p{max-width:720px}.service-faq details{border-top:1px solid var(--line);padding:1rem 0}.service-faq summary{font-weight:750;cursor:pointer;min-height:28px}.service-faq details p{margin-bottom:0}.entry-content section.service-faq{border-bottom:0;padding-bottom:0}.entry-content{max-width:1000px}.entry-content>p,.entry-content>ul,.entry-content>.service-faq{max-width:880px}.entry-content .post-card h2{font-size:1.7rem;margin-top:0}.entry-content .article-meta{font-size:.8rem;color:#536154}.contact-panel{background:#fff;border:1px solid var(--line);padding:1.5rem}.entry-content .contact-panel h2{margin-top:0}.request-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.3rem;margin:1.5rem 0}.request-steps p{background:#e9eadd;padding:1rem;margin:0}.request-steps strong{display:block}.comparison-wrap{overflow-x:auto;margin:1.5rem 0}.comparison-wrap table{border-collapse:collapse;width:100%;min-width:550px}.comparison-wrap th,.comparison-wrap td{padding:.85rem;text-align:left;vertical-align:top;border:1px solid var(--line)}.comparison-wrap th{background:#e8eadd}.footer-grid{grid-template-columns:1.05fr 1.2fr 1fr;gap:2.5rem}.footer-contact{display:grid;gap:.5rem;font-size:.9rem;overflow-wrap:anywhere}.footer-grid>div>p{font-size:.85rem;color:#cfdbd2}.footer-resource-links{grid-template-columns:1fr}.footer-resource-links a{padding:.25rem 0}.mobile-actions{display:none}.primary-nav a:focus-visible,.primary-nav a:hover{text-decoration:underline;text-underline-offset:.3rem}.primary-nav ul{gap:1rem}.page-hero h1{font-size:clamp(2.4rem,5.2vw,4.8rem);max-width:1050px}.page-hero{padding:48px 0 38px}.content-shell{padding-top:40px}.entry-content h2{font-size:clamp(1.85rem,3.5vw,2.8rem)}
@media(max-width:1050px){.nav-toggle{display:block}.primary-nav{display:none;position:absolute;top:82px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:1rem 20px}.primary-nav.open{display:block}.primary-nav ul{align-items:stretch;flex-direction:column}.primary-nav.open a{display:block;padding:.6rem}.primary-nav li:last-child a{text-align:center}.home-section .choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.intro-grid,.feature-grid{grid-template-columns:1fr}.home-intro .project-photo{max-width:580px}.home-intro .project-photo img{max-height:400px;object-fit:cover;border-radius:70px 5px 5px 5px}.photo-grid{gap:1rem}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.request-steps{grid-template-columns:1fr;gap:.7rem}.mobile-actions{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:10px;right:10px;bottom:10px;bottom:max(10px,env(safe-area-inset-bottom));z-index:45;border-radius:7px;overflow:hidden;box-shadow:0 5px 24px #0003;border:1px solid #fff}.mobile-actions a{padding:.85rem .5rem;background:var(--green);color:#fff;text-align:center;font-size:.85rem;font-weight:750;text-decoration:none}.mobile-actions a+ a{background:var(--ink);border-left:1px solid #ffffff50}.site-footer{padding-bottom:110px}.home-section{padding:42px 0}}
@media(max-width:520px){.wrap{width:calc(100% - 32px)}.home-section .choice-grid,.choice-grid,.photo-grid{grid-template-columns:1fr}.home-intro h1{font-size:clamp(2.35rem,9.8vw,3.2rem)}.intro-copy{font-size:1rem}.home-intro{padding:32px 0}.home-intro .action-row .button{width:100%}.photo-grid .project-photo img{max-height:330px;object-fit:cover}.footer-grid{gap:2rem 1rem}.footer-resources>strong{font-size:1.05rem}.entry-content .estimate-callout .button{width:100%}.brand span{font-size:.58rem;letter-spacing:.12em}}
