/* Contact, drawer, and footer refinement */
.service-grid>article{cursor:pointer;transition:background .3s ease,color .3s ease}.service-grid>article h3,.service-grid>article p,.service-grid>article a,.service-grid>article span{transition:color .3s ease,transform .3s cubic-bezier(.2,.8,.25,1)}.service-grid>article:hover,.service-grid>article:focus-within{background:var(--pine);color:#f3f6f2;outline:none}.service-grid>article:hover h3,.service-grid>article:hover p,.service-grid>article:hover a,.service-grid>article:hover span,.service-grid>article:focus-within h3,.service-grid>article:focus-within p,.service-grid>article:focus-within a,.service-grid>article:focus-within span{color:#f3f6f2}.service-grid>article:hover a,.service-grid>article:focus-within a{transform:translateY(-5px)}html[data-theme="dark"] .service-grid>article:hover,html[data-theme="dark"] .service-grid>article:focus-within{background:#293a34}.service-grid>article:nth-child(3){border-right:0}.service-grid .service-wide{grid-column:1/-1;min-height:170px;padding:29px 0 0;border-top:1px solid var(--line)!important;border-right:0!important;display:grid;grid-template-columns:60px minmax(220px,.8fr) minmax(280px,1.3fr) auto;gap:28px;align-items:start}.service-grid .service-wide h3,.service-grid .service-wide p,.service-grid .service-wide a{margin:0}.service-grid .service-wide h3{max-width:none}.service-grid .service-wide p{max-width:520px}.service-grid .service-wide a{justify-self:end;align-self:start}
html:not([data-theme="dark"]) .service-grid>article:hover,html:not([data-theme="dark"]) .service-grid>article:focus-within{background:transparent;color:var(--ink)}html:not([data-theme="dark"]) .service-grid>article:hover h3,html:not([data-theme="dark"]) .service-grid>article:hover p,html:not([data-theme="dark"]) .service-grid>article:hover a,html:not([data-theme="dark"]) .service-grid>article:focus-within h3,html:not([data-theme="dark"]) .service-grid>article:focus-within p,html:not([data-theme="dark"]) .service-grid>article:focus-within a{color:var(--ink)}html:not([data-theme="dark"]) .service-grid>article:hover>span,html:not([data-theme="dark"]) .service-grid>article:focus-within>span{color:#65732e}html:not([data-theme="dark"]) .service-grid>article:hover a,html:not([data-theme="dark"]) .service-grid>article:focus-within a{transform:translate(10px,-5px)}
html[data-theme="dark"] .service-grid>article:hover,html[data-theme="dark"] .service-grid>article:focus-within{background:transparent}html[data-theme="dark"] .service-grid>article:hover a,html[data-theme="dark"] .service-grid>article:focus-within a{transform:translate(10px,-5px)}
.service-grid{--service-hover-gradient:radial-gradient(ellipse at 32% 72%,rgba(190,174,105,.38) 0%,rgba(205,193,137,.25) 38%,rgba(219,213,174,.12) 67%,rgba(223,230,219,0) 100%)}html[data-theme="dark"] .service-grid{--service-hover-gradient:radial-gradient(ellipse at 32% 72%,rgba(191,171,92,.28) 0%,rgba(157,148,91,.19) 38%,rgba(107,116,79,.1) 67%,rgba(25,35,31,0) 100%)}.service-grid>article{position:relative}.service-grid>article>*{position:relative;z-index:1}.service-grid>article::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;background:var(--service-hover-gradient);transition:opacity .38s ease}.service-grid>article:hover::after,.service-grid>article:focus-within::after{opacity:1}.service-grid>article:first-child::after{inset:0 0 0 -90px;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 90px);mask-image:linear-gradient(90deg,transparent 0,#000 90px)}.service-grid>article:nth-child(3)::after{inset:0 -90px 0 0;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 90px),transparent 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 90px),transparent 100%)}.service-grid>.service-wide::after{inset:0 -110px -90px;-webkit-mask-image:radial-gradient(ellipse 50% 62% at 50% 38%,#000 48%,rgba(0,0,0,.94) 62%,transparent 100%);mask-image:radial-gradient(ellipse 50% 62% at 50% 38%,#000 48%,rgba(0,0,0,.94) 62%,transparent 100%)}
@media(max-width:780px){.service-grid>article::after,.service-grid>article:first-child::after,.service-grid>article:nth-child(3)::after{inset:0 -40px;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 40px,#000 calc(100% - 40px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 40px,#000 calc(100% - 40px),transparent 100%)}.service-grid>.service-wide::after{inset:0 -40px -55px;-webkit-mask-image:radial-gradient(ellipse 50% 62% at 50% 38%,#000 45%,rgba(0,0,0,.92) 60%,transparent 100%);mask-image:radial-gradient(ellipse 50% 62% at 50% 38%,#000 45%,rgba(0,0,0,.92) 60%,transparent 100%)}}
.contact form{align-content:start}.contact-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.contact-actions .button{margin-top:8px}.button-outline{background:transparent!important;color:var(--pine)!important;border-color:var(--pine)!important}.button-outline:hover{background:rgba(14,40,35,.08)!important}.contact textarea{overflow:hidden;min-height:76px;resize:none}.footer-grid{grid-template-columns:1.45fr 1fr 1fr 1fr;align-items:start}.footer-grid>div{min-width:0}.footer-company,.footer-address,.footer-nav,.footer-call{display:flex;flex-direction:column;align-items:flex-start}.footer-grid .footer-brand,.footer-grid>div>p,.footer-call{margin-top:0}.footer-company>p,.footer-address>p,.footer-nav>p{height:36px;margin:0 0 13px}.footer-company>p{font-size:11px;line-height:1.65}.footer-address address,.footer-nav>a{line-height:1.7}.footer-address address a{color:#edf1eb;text-decoration:none}.footer-call{height:49px;justify-content:center;width:100%}.footer-button{height:49px;display:flex;align-items:center}.footer-button span,.footer-button b{display:block}.footer-button b{line-height:1}.estimate-drawer{position:fixed;z-index:30;inset:0;visibility:hidden;pointer-events:none}.estimate-drawer.is-open{visibility:visible;pointer-events:auto}.estimate-backdrop{position:absolute;inset:0;border:0;background:rgba(8,21,18,.5);opacity:0;transition:opacity .28s ease}.estimate-drawer.is-open .estimate-backdrop{opacity:1}.estimate-panel{position:absolute;right:0;bottom:0;width:min(640px,100%);max-height:min(92vh,900px);overflow:auto;background:var(--sand);padding:43px 58px 42px;transform:translateY(105%);transition:transform .35s cubic-bezier(.2,.8,.25,1);box-shadow:0 -18px 50px rgba(0,0,0,.2)}.estimate-drawer.is-open .estimate-panel{transform:translateY(0)}.drawer-close{position:absolute;right:23px;top:18px;border:0;background:transparent;color:var(--pine);font:32px/1 var(--sans);cursor:pointer}.drawer-handle{display:none}.estimate-panel h2{font:700 47px/1.05 var(--display);letter-spacing:-.055em;margin:0;color:var(--pine)}.estimate-panel h2 em{font-family:Georgia,serif;font-weight:400}.estimate-intro{max-width:450px;line-height:1.5;margin:18px 0 29px}.estimate-form{display:grid;gap:18px}.estimate-form label{font:11px var(--mono);text-transform:uppercase;letter-spacing:.06em}.estimate-form input,.estimate-form textarea{background:transparent;border:0;border-bottom:1px solid rgba(14,40,35,.45);border-radius:0;width:100%;display:block;margin-top:9px;padding:8px 0;font:16px var(--sans);outline:none}.estimate-form textarea{resize:vertical}.estimate-form small{font:10px var(--sans);text-transform:none;letter-spacing:0}.estimate-form .photo-field{border:1px dashed rgba(14,40,35,.45);padding:16px;display:grid;gap:6px}.estimate-form .photo-field>span{font:600 13px var(--sans);text-transform:none;letter-spacing:0}.estimate-form .photo-field input{border:0;padding:4px 0 0;font-size:13px}.estimate-form .button{background:var(--pine);border-color:var(--pine);color:#fff;width:max-content;min-width:220px}.estimate-note{font-size:11px;color:#53605c;margin:0}
@media(max-width:780px){.service-grid .service-wide{display:flex;min-height:0;padding:25px 0 29px;border-top:0!important;border-bottom:1px solid var(--line);gap:0}.service-grid .service-wide h3{margin:28px 0 11px}.service-grid .service-wide a{align-self:auto;margin-top:23px}.contact-actions{display:grid;grid-template-columns:1fr 1fr}.contact-actions .button{width:100%;min-width:0;gap:8px;padding:14px 12px;font-size:11px}.footer-grid{display:flex;flex-direction:column;gap:0}.footer-grid>div{width:100%;padding:22px 0;border-top:1px solid rgba(255,255,255,.17)}.footer-grid>div:first-child{border-top:0;padding-top:0}.footer-company>p,.footer-address>p,.footer-nav>p{height:auto;margin:15px 0 0}.footer-address address,.footer-nav{display:block}.footer-nav>a{display:inline}.footer-nav>a+a:before{content:' / ';color:#94a39d}.footer-call{height:auto}.footer-button{width:100%;justify-content:space-between}.estimate-panel{width:100%;max-height:90vh;padding:38px 25px 30px;border-radius:22px 22px 0 0}.drawer-handle{display:block;width:35px;border-top:3px solid rgba(14,40,35,.3);margin:0 auto 23px}.estimate-panel h2{font-size:38px}.estimate-intro{font-size:15px}.drawer-close{top:19px;right:20px}.copyright{margin-top:28px}}
.footer-address address,.footer-nav>a:first-of-type{margin-top:0}.footer-address address,.footer-nav>a{min-height:24px}.copyright .footer-credit{display:block;margin:0;text-align:center;color:#e1192d;font:400 10px var(--sans);letter-spacing:.04em;text-decoration:none}.copyright .footer-credit:visited,.copyright .footer-credit:hover,.copyright .footer-credit:focus{color:#e1192d;text-decoration:none}@media(max-width:780px){.copyright .footer-credit{padding-bottom:2px}}
.contact textarea{min-height:0}.estimate-panel{top:50%;bottom:auto;transform:translateY(100vh);border-radius:20px}.estimate-drawer.is-open .estimate-panel{transform:translateY(-50%)}.estimate-form textarea{min-height:0;overflow:hidden;resize:none}
@media(max-width:780px){.estimate-panel{top:auto;bottom:0;border-radius:22px 22px 0 0;transform:translateY(105%)}.estimate-drawer.is-open .estimate-panel{transform:translateY(0)}}
.footer-company>p,.footer-address>p,.footer-nav>p{height:auto;margin:0 0 5px}.footer-address address,.footer-nav>a:first-of-type{margin-top:0}.copyright{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;padding-top:7px}.copyright>a:last-child{justify-self:end}.footer-credit{margin:0;align-self:start}.form-status,.photo-status{min-height:16px;margin:0;color:#33483f;font:11px/1.45 var(--sans)}.photo-status{color:#53605c}.estimate-note{min-height:16px}.contact input:invalid:not(:placeholder-shown),.contact textarea:invalid:not(:placeholder-shown),.estimate-form input:invalid:not(:focus){border-bottom-color:#9a3c34}
@media(max-width:780px){.footer-company>p{margin-top:7px}.footer-address>p,.footer-nav>p{margin:0 0 5px}.copyright{grid-template-columns:1fr 1fr;row-gap:12px;padding-top:9px}.copyright .footer-credit{grid-column:1/-1;grid-row:2;justify-self:center;margin:0;padding:0}.copyright>a:last-child{justify-self:end}}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.connect-button{display:flex;margin-top:20px;width:190px;align-items:center;justify-content:space-between;border:1px solid var(--pine);background:transparent;color:var(--pine);padding:13px 16px;font:600 12px var(--sans);cursor:pointer}.connect-button span{font-size:17px}.estimate-panel{right:50%;top:50%;bottom:auto;border-radius:0;opacity:0;transform:translate(50%,-44%) scale(.985);transition:transform .35s cubic-bezier(.2,.8,.25,1),opacity .25s ease}.estimate-drawer.is-open .estimate-panel{opacity:1;transform:translate(50%,-50%) scale(1)}.connect-drawer{position:fixed;z-index:31;inset:0;visibility:hidden;pointer-events:none}.connect-drawer.is-open{visibility:visible;pointer-events:auto}.connect-backdrop{position:absolute;inset:0;border:0;background:rgba(8,21,18,.5);opacity:0;transition:opacity .28s ease}.connect-drawer.is-open .connect-backdrop{opacity:1}.connect-panel{position:absolute;left:50%;bottom:0;width:min(480px,calc(100% - 30px));max-height:92vh;overflow:auto;background:var(--paper);padding:38px 42px 34px;transform:translate(-50%,105%);transition:transform .35s cubic-bezier(.2,.8,.25,1);box-shadow:0 -18px 50px rgba(0,0,0,.2)}.connect-drawer.is-open .connect-panel{transform:translate(-50%,0)}.connect-close{z-index:2}.connect-logo{display:block;width:230px;height:105px;margin:0 auto 25px;object-fit:cover;object-position:center}.connect-links{display:grid!important;position:static!important;width:100%!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;gap:8px!important}.connect-links a{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);padding:14px 16px;color:var(--pine);font:600 13px var(--sans);text-decoration:none}.connect-links a:hover{background:var(--lime);color:var(--pine);border-color:var(--lime)}.connect-links span{font-size:17px;font-weight:400}
@media(max-width:780px){.estimate-panel{right:50%;top:50%;bottom:auto;width:calc(100% - 30px);max-height:90vh;border-radius:0;transform:translate(50%,-44%) scale(.985)}.estimate-drawer.is-open .estimate-panel{transform:translate(50%,-50%) scale(1)}.connect-panel{width:100%;padding:38px 24px 28px}.connect-logo{width:210px;height:96px}.connect-button{width:100%;max-width:220px}}
.brand{width:150px;height:68px;overflow:visible}.brand img{width:150px;height:68px;object-fit:contain;object-position:center;filter:none}.estimate-panel{right:50%;top:auto;bottom:0;border-radius:0;opacity:1;transform:translate(50%,105%);transition:transform .35s cubic-bezier(.2,.8,.25,1)}.estimate-drawer.is-open .estimate-panel{transform:translate(50%,0)}
@media(max-width:780px){.brand{width:125px;height:56px}.brand img{width:125px;height:56px;object-fit:contain;filter:none}.estimate-panel{right:50%;top:auto;bottom:0;width:100%;max-height:90vh;border-radius:0;transform:translate(50%,105%)}.estimate-drawer.is-open .estimate-panel{transform:translate(50%,0)}}

.site-header .brand{width:212px;height:90px;padding:3px 0;display:flex;align-items:center;overflow:hidden}.site-header .brand img{width:212px;height:84px;display:block;object-fit:cover;object-position:50% 30.5%;filter:none}
@media(max-width:780px){.site-header .brand{width:164px;height:72px;padding:3px 0}.site-header .brand img{width:164px;height:66px;object-fit:cover;object-position:50% 30.5%}}
@media(max-width:780px){.utility .shell span{display:block}.utility .shell>a{display:none}}
@media(max-width:780px){.menu-toggle{height:42px;justify-content:center;gap:0}.menu-toggle span{position:absolute;left:50%;width:22px;transform:translateX(-50%);transform-origin:center;transition:top .3s cubic-bezier(.2,.8,.25,1),transform .3s cubic-bezier(.2,.8,.25,1),opacity .18s ease}.menu-toggle span:nth-child(1){top:13px}.menu-toggle span:nth-child(2){top:20px}.menu-toggle span:nth-child(3){top:27px}.menu-toggle[aria-expanded="true"] span:nth-child(1){top:20px;transform:translateX(-50%) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;transform:translateX(-50%) scaleX(.35)}.menu-toggle[aria-expanded="true"] span:nth-child(3){top:20px;transform:translateX(-50%) rotate(-45deg)}}
@media(max-width:780px){.site-header #navigation{left:auto;right:20px;top:72px;width:max-content;min-width:156px;padding:17px 20px 19px;gap:14px;border:1px solid var(--line);border-top:0;box-shadow:0 14px 30px rgba(14,40,35,.14)}.site-header #navigation a{white-space:nowrap}}
