
:root{--green:#123f38;--dark:#0c2d28;--gold:#e5bc62;--ink:#243631;--soft:#f0f5f3;--line:#d5e0dc}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:white;font:17px/1.65 Segoe UI,Arial,sans-serif;display:flex;flex-direction:column;min-height:100vh}main{flex:1}img{display:block;max-width:100%;height:auto}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea{font:inherit}button,a,input,textarea{outline-offset:5px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #b47f16}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2{line-height:1.12;letter-spacing:-.025em}h1{font-size:clamp(2.5rem,4.6vw,4.9rem);margin-bottom:26px}h2{font-size:clamp(1.8rem,3vw,2.8rem);margin-bottom:20px}h3{font-size:1.3rem;line-height:1.3}.wrap{max-width:1240px;margin:auto;padding-left:30px;padding-right:30px}.section{padding-top:64px;padding-bottom:64px}.eyebrow{display:block;text-transform:uppercase;font-size:.83rem;font-weight:700;letter-spacing:.15em;margin-bottom:18px}.button{display:inline-flex;justify-content:center;align-items:center;background:var(--gold);color:var(--dark);border:1px solid var(--gold);border-radius:3px;padding:13px 24px;font-weight:700;line-height:1.4;text-decoration:none;min-height:48px}.button:hover{background:#f0cd83;text-decoration:none}.button.outline{background:transparent;border-color:#ffffff90;color:white}.skip{position:absolute;left:15px;top:-100px;background:white;padding:12px;z-index:20}.skip:focus{top:10px}header{background:var(--green);color:white}.masthead{display:flex;align-items:center;gap:30px;min-height:94px}.brand{margin-right:auto}.brand img{width:300px;max-height:64px;object-fit:contain}.header-contact{text-align:right;line-height:1.3}.header-contact span{font-size:.82rem;display:block;color:#d8e6df}.header-contact a{color:white;font-size:1.6rem;font-weight:700}.nav-bar{background:var(--dark);border-top:1px solid #ffffff15}.navigation{display:flex;align-items:center;justify-content:space-between;gap:15px}.navigation nav{display:flex;gap:28px}.navigation nav a{padding:13px 0;color:white;font-size:.95rem}.navigation nav a[aria-current]{color:var(--gold)}.nav-note{font-size:.78rem;color:#c5d9d1}.menu-toggle{display:none}.home-hero{position:relative;background:var(--dark);color:white;min-height:570px;overflow:hidden}.hero-photo{position:absolute;inset:0}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 54%}.home-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,32,27,.93) 0%,rgba(8,32,27,.74) 37%,rgba(8,32,27,.12) 100%)}.hero-content{position:relative;z-index:1;padding-top:82px;padding-bottom:82px}.hero-content>div{max-width:610px}.hero-content .eyebrow{color:var(--gold)}.hero-content p{max-width:520px;font-size:1.15rem;color:#f0f5f2}.hero-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:30px}.trust{background:var(--soft);border-bottom:1px solid var(--line)}.trust>.wrap{display:flex;justify-content:space-between;gap:24px;padding-top:20px;padding-bottom:20px;font-size:.9rem;font-weight:600}.section-heading{display:flex;justify-content:space-between;gap:36px;align-items:end;margin-bottom:30px}.section-heading h2{margin-bottom:0}.section-heading p{max-width:370px;margin-bottom:0}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.card{border:1px solid var(--line);background:white;display:flex;flex-direction:column}.card>img{width:100%;height:235px;object-fit:cover}.card>div{padding:25px;flex:1;display:flex;flex-direction:column}.card p{font-size:1rem}.card a{margin-top:auto;font-weight:700;font-size:.95rem}.tinted{background:var(--soft)}.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px}.split>img{width:100%;height:400px;object-fit:cover}.split p{margin-bottom:20px}.text-link{font-weight:700}.feature-pair{display:grid;grid-template-columns:1.05fr 1fr;gap:24px}.feature-pair img{width:100%;height:330px;object-fit:cover}.cta{background:var(--green);color:white;padding:40px 0}.cta>.wrap{display:flex;align-items:center;justify-content:space-between;gap:30px}.cta h2{font-size:2rem;margin:0;max-width:700px}.cta .eyebrow{color:var(--gold);margin-bottom:12px}.cta .button{flex-shrink:0}.banner{background:var(--green);color:white;border-top:1px solid #ffffff15;padding:54px 0;background-image:linear-gradient(110deg,#123f38,#1e5a4b)}.banner .wrap{max-width:1240px}.banner .eyebrow{color:var(--gold)}.banner h1{font-size:clamp(2.2rem,4vw,3.7rem);max-width:920px}.banner p{max-width:780px;margin-bottom:0;color:#e4eeea;font-size:1.1rem}.intro{max-width:800px;margin-bottom:35px}.gallery-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.gallery-filters button{background:white;border:1px solid #8da59b;border-radius:3px;padding:9px 16px;font-size:.9rem;color:var(--green);min-height:44px}.gallery-filters button[aria-pressed=true]{background:var(--green);color:white}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.gallery figure{margin:0;background:var(--soft)}.gallery img{width:100%;height:260px;object-fit:cover}.gallery figcaption{padding:14px 18px;font-size:.95rem;font-weight:600}.contact-grid{display:grid;grid-template-columns:.8fr 1.3fr;gap:70px}.contact-info .phone{font-size:1.9rem;font-weight:700}.contact-info a{overflow-wrap:anywhere}.contact-info h3{margin-top:28px}.form-panel{background:var(--soft);padding:34px;border:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:block;font-size:.95rem;font-weight:600;margin-bottom:18px}label span{font-size:.8rem;font-weight:400}input,textarea{display:block;width:100%;background:white;color:var(--ink);border:1px solid #849c92;border-radius:2px;margin-top:6px;padding:12px;font-size:1rem}textarea{resize:vertical}.form-panel p{font-size:.9rem}.form-status:empty{display:none}.form-status{border-left:4px solid var(--green);padding:14px;background:white}.prose{max-width:900px}.prose h2{font-size:1.7rem;margin-top:35px}.article-list{max-width:1000px}.article-list article{border-bottom:1px solid var(--line);padding:25px 0}.article-list h2{font-size:1.7rem}footer{background:var(--dark);color:#d5e4dd;padding-top:42px}footer a{color:white}.footer-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:48px;padding-bottom:30px}.footer-name{font-size:1.65rem;font-weight:700}.footer-grid h2{font-size:1.15rem;letter-spacing:0}.footer-grid p,.footer-grid a{font-size:.92rem}.footer-grid .footer-name{font-size:1.65rem}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:12px}.legal{border-top:1px solid #ffffff25;display:flex;justify-content:space-between;gap:25px;padding-top:17px;padding-bottom:18px;font-size:.78rem}.legal>div{display:flex;gap:18px;flex-wrap:wrap}.cookie-settings{border:0;background:none;color:white;padding:0;font-size:inherit;text-align:left}#cookies{position:fixed;bottom:16px;left:20px;right:20px;max-width:1240px;margin:auto;background:white;color:var(--ink);z-index:10;border:1px solid var(--line);box-shadow:0 8px 35px #0003;padding:20px 24px;display:flex;gap:24px;align-items:center}#cookies p{font-size:.85rem;line-height:1.5;margin:4px 0 0}#cookies strong{font-size:.95rem}.cookie-actions{display:flex;flex-shrink:0;gap:12px}.cookie-actions button{padding:11px 16px;border:1px solid var(--green);background:white;color:var(--green);font-size:.9rem;border-radius:3px}.cookie-actions button[data-choice=accept]{background:var(--green);color:white}[hidden]{display:none!important}#privacy-status:empty{display:none}
@media(max-width:1000px){.nav-note{display:none}.navigation nav{gap:22px}.header-contact span{max-width:180px}.split{gap:35px}.footer-grid{gap:25px}.cards{gap:18px}.legal{flex-direction:column;gap:10px}.contact-grid{gap:35px}}
@media(max-width:760px){.wrap{padding-left:22px;padding-right:22px}.section{padding-top:40px;padding-bottom:40px}.masthead{gap:16px;flex-wrap:wrap;padding-top:17px;padding-bottom:17px}.brand img{width:215px;max-height:48px}.header-contact{margin-left:auto}.header-contact span{display:none}.header-contact a{font-size:1.2rem}.masthead>.button{display:none}.navigation{display:block}.menu-toggle{display:block;padding:10px 0;color:white;background:none;border:0;min-height:46px;width:100%;text-align:left}.navigation nav{display:none;flex-direction:column;gap:0;padding-bottom:12px}.navigation nav.open{display:flex}.navigation nav a{padding:10px 0;border-top:1px solid #ffffff20}.home-hero{min-height:490px}.hero-content{padding-top:60px;padding-bottom:60px}.home-hero:after{background:linear-gradient(90deg,rgba(8,32,27,.91),rgba(8,32,27,.5))}.hero-content p{font-size:1.03rem;max-width:420px}.hero-photo img{object-position:65% center}.trust>.wrap{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;font-size:.8rem}.section-heading{display:block}.section-heading p{margin-top:20px}.cards{grid-template-columns:1fr}.card>img{height:250px}.card>div{padding:23px}.split{grid-template-columns:1fr;gap:30px}.split>img{height:300px}.feature-pair{grid-template-columns:1fr}.feature-pair img{height:270px}.cta>.wrap{display:block}.cta .button{margin-top:25px}.cta h2{font-size:1.8rem}.banner{padding:38px 0}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.gallery img{height:200px}.gallery figcaption{font-size:.85rem;padding:12px}.contact-grid{grid-template-columns:1fr;gap:30px}.form-panel{padding:24px}.form-grid{grid-template-columns:1fr;gap:0}.footer-grid{grid-template-columns:1fr;gap:25px}.footer-links{max-width:450px}.legal{font-size:.8rem}.legal>div{gap:12px 18px}#cookies{left:10px;right:10px;bottom:10px;padding:17px;display:block}.cookie-actions{margin-top:15px}.cookie-actions button{flex:1}h1{font-size:2.7rem}h2{font-size:2rem}}
@media(max-width:400px){.masthead{display:block}.brand{display:block}.brand img{width:245px;margin:auto}.header-contact{text-align:center;margin-top:8px}.gallery{grid-template-columns:1fr}.gallery img{height:240px}.hero-actions{gap:12px}.hero-actions .button{width:100%}.hero-content{padding-top:40px;padding-bottom:40px}.hero-content h1{font-size:2.45rem}.trust>.wrap{gap:10px}.form-panel{padding:18px}.contact-info .phone{font-size:1.6rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
@media print{header nav,.cta,#cookies,.cookie-settings{display:none!important}body{font-size:12pt}.banner,footer{background:white;color:black}footer a{color:black}}

/* Keep each homepage headline phrase together on desktop. */
.hero-content>div{max-width:680px}.hero-content h1{font-size:clamp(2.4rem,3.5vw,4rem);line-height:1.15;max-width:680px}.hero-content h1 span{display:block}
@media(max-width:760px){.hero-content h1{font-size:clamp(2.35rem,6vw,3rem);line-height:1.18}}

.article-list article{display:grid;grid-template-columns:270px minmax(0,1fr);gap:28px;align-items:start}.article-thumbnail img{width:100%;height:205px;object-fit:cover}.prose .article-photo{float:right;width:44%;max-height:330px;object-fit:cover;margin:0 0 24px 30px}.prose:after{content:"";display:block;clear:both}@media(max-width:760px){.article-list article{grid-template-columns:1fr;gap:20px}.article-thumbnail img{height:240px}.prose .article-photo{float:none;width:100%;max-height:300px;margin:0 0 25px}}

.service-area-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.service-area-links a{padding:15px 18px;background:var(--soft);border:1px solid var(--line)}@media(max-width:760px){.service-area-links{grid-template-columns:1fr}}

/* Keep the final estimate section directly against the footer on short pages. */
main{display:flex;flex-direction:column}main>.cta:last-child{margin-top:auto}
.cta{padding:32px 0}.cta>.wrap{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:32px}.cta .eyebrow{margin:0 0 10px;font-size:.8rem;line-height:1.5}.cta h2{font-size:clamp(1.5rem,2.5vw,2rem);line-height:1.3;max-width:none}.cta .button{margin:0;align-self:center}
.footer-social{margin-top:20px;padding-top:16px;border-top:1px solid #ffffff25}.footer-social a{display:inline-flex;align-items:center;min-height:40px;padding:7px 16px;border:1px solid #ffffff55;border-radius:3px;font-weight:600}.footer-social a:hover{background:#ffffff12;text-decoration:none}
@media(max-width:760px){.cta>.wrap{grid-template-columns:1fr;gap:20px}.cta .button{justify-self:start}.footer-social{margin-top:18px}}

/* Hover does not draw an outline; keyboard focus remains visible. */
a:hover,button:hover{outline:none}a:focus-visible,button:focus-visible{outline:3px solid #b47f16;outline-offset:5px}

/* Separate supporting navigation from the primary estimate action. */
main .button+p{margin-top:24px}.secondary-navigation{margin:24px 0 0}.secondary-navigation a{display:inline-flex;align-items:center;min-height:44px;padding:4px 0}

/* Reflow enlarged text and provide comfortable touch targets. */
.masthead{flex-wrap:wrap}.navigation{flex-wrap:wrap}.navigation nav{flex-wrap:wrap}.footer-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr)}.footer-grid>div,.contact-grid>*,.split>*{min-width:0}.footer-grid a{overflow-wrap:anywhere}.button{max-width:100%;white-space:normal}.header-contact a{display:inline-flex;align-items:center;min-height:44px}.footer-links a{display:flex;align-items:center;min-height:44px}.article-summary>a{display:inline-flex;align-items:center;min-height:44px}h1,h2,h3{overflow-wrap:anywhere}#cookies{max-height:calc(100dvh - 20px);overflow:auto}.cookie-actions{flex-wrap:wrap}.cookie-actions button{min-width:0;white-space:normal}
@media(max-width:1200px){.nav-note{display:none}}
@media(max-width:760px){.footer-grid{grid-template-columns:minmax(0,1fr)}}

/* Form fields use their border instead of an outer focus ring. */
.form-panel input:hover,.form-panel textarea:hover,.form-panel input:focus,.form-panel textarea:focus,.form-panel input:focus-visible,.form-panel textarea:focus-visible{outline:none;box-shadow:none}.form-panel input:focus,.form-panel textarea:focus{border-color:var(--green)}
