@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}:root{--ink:#222622;--muted:#60655f;--red:#a41d22;--red-dark:#811519;--paper:#fff;--soft:#f3f4f0;--line:#daddd6;--display:var(--font-display,"Barlow Condensed", sans-serif);--body:var(--font-body,"DM Sans", Arial, sans-serif);--section-space:96px;--section-space-compact:64px;--gutter:clamp(22px, 5vw, 88px);--content-max-width:1512px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height,117px) + 30px)}body{background:var(--paper);color:var(--ink);font:400 16px/1.7 var(--body);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline-offset:5px;outline:3px solid #1567a3}img{width:100%;height:auto;display:block}figure,h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display);letter-spacing:-.015em;font-weight:600;line-height:1.05}h1{font-size:clamp(3.2rem,5.7vw,6rem)}h2{font-size:clamp(2.6rem,4.1vw,4.5rem)}h3{font-size:1.8rem}p+p{margin-top:1rem}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}[hidden]{display:none!important}.container{max-width:var(--content-max-width);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section-space)}.eyebrow{font:700 .78rem/1.5 var(--body);text-transform:uppercase;letter-spacing:.16em;color:var(--red);margin-bottom:22px}.eyebrow.light{color:#e9babc}.lede{color:var(--muted);max-width:680px;font-size:1.1rem}.button{background:var(--red);color:#fff;border:1px solid var(--red);overflow-wrap:anywhere;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:18px;max-width:100%;min-height:56px;padding:11px 17px;font-size:.82rem;font-weight:700;line-height:1.5;transition:background .24s;display:inline-flex}.button:not(.white){isolation:isolate;position:relative;overflow:hidden}.button:not(.white):before{content:"";z-index:-1;background:var(--red-dark);transform-origin:0;pointer-events:none;transition:transform .48s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;transform:scaleX(0)}.button:not(.white):not(:disabled):focus-visible:before{transform:scaleX(1)}.button-label{min-width:0;position:relative}.button.white .button-label:after{content:"";transform-origin:0;background:currentColor;width:100%;height:1px;transition:transform .48s cubic-bezier(.22,1,.36,1);position:absolute;bottom:-5px;left:0;transform:scaleX(0)}.button-arrow{flex:none;width:12px;height:12px;transition:transform .48s cubic-bezier(.22,1,.36,1);display:inline-flex}.button-arrow svg{stroke:currentColor;stroke-width:2px;width:100%;height:100%}@media (hover:hover){.button:not(.white):not(:disabled):hover:before,.button.white:not(:disabled):hover .button-label:after{transform:scaleX(1)}.button:not(:disabled):hover .button-arrow{transform:rotate(45deg)}}.button.white:focus-visible .button-label:after{transform:scaleX(1)}.button:focus-visible .button-arrow{transform:rotate(45deg)}.button:disabled{opacity:.45;cursor:not-allowed}@media (prefers-reduced-motion:reduce){.button,.button:before,.button *,.button :after{transition:none!important}.button .button-arrow{transform:none!important}}.button.white{color:var(--red);background:#fff;border-color:#fff}.button.white:hover{background:#f3e9e9}.button-row{flex-wrap:wrap;align-items:center;gap:26px;display:flex}.text-link{border-bottom:1px solid var(--ink);align-items:center;gap:16px;padding-bottom:7px;font-size:.9rem;font-weight:700;display:inline-flex}.text-link:hover{color:var(--red);border-color:var(--red)}.text-link.light{color:#fff;border-color:#687068}.number{font:500 .9rem var(--body);color:var(--red)}.skip-link{z-index:100;background:#fff;padding:12px 20px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:12px}.utility{background:var(--ink);color:#eee;padding-block:9px;font-size:.75rem}.utility .container{justify-content:space-between;gap:20px;display:flex}.utility strong{margin-left:18px;font-weight:600}.header{--header-expanded-height:116px;--header-logo-height:82px;--header-logo-width:172px;z-index:50;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0}.header-inner{min-height:var(--header-expanded-height);align-items:center;gap:35px;display:flex}.brand{flex:0 0 172px}.brand img{object-fit:contain;width:172px;height:82px}.header nav{align-items:center;gap:clamp(14px,1.8vw,30px);margin-left:auto;display:flex;position:relative}.header nav a{white-space:nowrap;border-bottom:2px solid #0000;padding-block:12px;font-size:.83rem;position:relative}.header nav a:hover,.header nav a[aria-current]{color:var(--red)}.header nav:not([data-indicator=ready]) a[aria-current]{border-color:var(--red)}.nav-indicator{background:var(--red);pointer-events:none;height:2px;transition:transform .26s cubic-bezier(.22,1,.36,1),width .26s cubic-bezier(.22,1,.36,1);position:absolute;left:0}#main[data-enter],footer[data-enter],.utility[data-enter]{animation:.22s ease-out both content-enter}@keyframes content-enter{0%{opacity:0}to{opacity:1}}::view-transition-group(site-header),::view-transition-old(site-header),::view-transition-new(site-header){animation:none}::view-transition-old(site-header){display:none}::view-transition-new(site-header){mix-blend-mode:normal}.menu-toggle{width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;padding:10px;display:none}.mobile-menu-contact{display:none}.menu-lines{width:24px;height:20px;display:block;position:relative}.menu-lines>span{background:currentColor;width:24px;height:2px;transition:transform .18s,opacity .18s;position:absolute;left:0}.menu-lines>span:first-child{top:2px}.menu-lines>span:nth-child(2){top:9px}.menu-lines>span:nth-child(3){top:16px}.menu-toggle[aria-expanded=true] .menu-lines>span:first-child{transform:translateY(7px)rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-lines>span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] .menu-lines>span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.hero{background:var(--ink);color:#fff;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:660px;display:grid}.hero-copy{padding:82px 45px 52px max(var(--gutter), calc((100vw - 1512px) / 2 + var(--gutter)))}.hero h1{letter-spacing:-.012em;font-size:clamp(3.15rem,4.55vw,5.1rem);line-height:1.02}.hero h1 em{color:#e9babc;font-style:normal}.hero-copy>p:not(.eyebrow){color:#cbd0c9;max-width:420px;margin-top:28px;font-size:1rem}.hero .button-row{margin-top:33px}.hero .text-link{font-size:.8rem}.hero-caption{color:#acb5aa;text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:15px;margin-top:55px;font-size:.76rem;display:flex}.hero-caption .line{background:#899287;width:38px;height:1px}.hero-image{min-width:0;min-height:0;position:relative;overflow:clip}.hero-image>.image-frame{aspect-ratio:auto;width:100%;height:100%;position:absolute;inset:0}.hero-image img{object-fit:cover;object-position:48% center;height:100%}.image-label{color:var(--ink);background:#fff;padding:12px 18px;font-size:.77rem;position:absolute;bottom:25px;right:25px}.principles{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:30px;padding-block:38px;display:grid}.principles>div{padding-left:38px;position:relative}.principles .number{position:absolute;top:4px;left:0}.principles h2{margin-bottom:8px;font-size:1.65rem}.principles p{color:var(--muted);font-size:.85rem}.section-heading{justify-content:space-between;align-items:end;gap:50px;margin-bottom:44px;display:flex}.section-heading>p{max-width:390px;color:var(--muted)}.service-overview{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.service-card{--service-title-size:1.55rem;display:block}.service-card>.image-frame{aspect-ratio:1/1.12;object-fit:cover}.service-card>div{align-items:flex-start;gap:12px;padding-top:19px;display:flex}.service-card h3{font-size:var(--service-title-size);line-height:1.1}.service-card>p{margin-top:10px}.service-card>div>span:last-child:not(.number){margin-left:auto}.service-card:hover h3,.service-card:focus-visible h3{color:var(--red)}.service-card.combined p{flex-wrap:wrap;gap:10px;margin-top:10px;font-size:.73rem;font-weight:600;display:flex}.service-card.combined p a{border-bottom:1px solid var(--line)}.owner-section{padding-block:var(--section-space);background:var(--soft)}.split{grid-template-columns:1fr 1fr;align-items:center;gap:7vw;display:grid}.split>.image-frame{aspect-ratio:1.1;object-fit:cover}.split-copy>p:not(.eyebrow){color:var(--muted);margin-top:24px}.split-copy .text-link{margin-top:28px}.featured-work{grid-template-columns:1.6fr 1fr;gap:28px;display:grid}.featured-work img{object-fit:cover;height:430px}.featured-work figure:last-child img{object-position:center 40%}.featured-work figcaption{font-family:var(--display);justify-content:space-between;gap:20px;margin-top:18px;font-size:1.8rem;display:flex}.featured-work figcaption span{font-family:var(--body);color:var(--muted);padding-top:7px;font-size:.78rem}.area-strip{border-top:1px solid var(--line);text-align:center;padding-block:60px 90px}.area-strip h2{font-size:3rem}.area-strip .text-link{margin-top:28px}.cta-band{background:var(--red);color:#fff;padding-block:var(--section-space-compact)}.cta-inner{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));align-items:center;gap:70px;display:grid}.cta-inner h2{font-size:3.9rem}.cta-inner>div>p:not(.eyebrow){color:#fae5e5;max-width:none;margin-bottom:22px}.cta-band .text-link.light{border-color:currentColor}.cta-area-heading{margin-bottom:12px;font-size:1.9rem}.cta-phone{margin-top:18px;font-weight:600;display:block}.footer{color:#e9ece6;padding-top:var(--section-space-compact);background:#202321}.footer-grid{padding-bottom:var(--section-space-compact);grid-template-columns:1.5fr 1fr 1.15fr;gap:65px;display:grid}.footer-logo{object-fit:contain;background:#fff;width:176px;height:85px;margin-bottom:22px}.footer p{font-size:.9rem}.muted{color:#adb5ab}.footer h2{font-family:var(--body);text-transform:uppercase;letter-spacing:.12em;color:#b4beb1;margin-bottom:22px;font-size:.75rem}.footer nav,.footer-grid>div:last-child{flex-direction:column;align-items:flex-start;display:flex}.footer a{margin-bottom:10px;font-size:.86rem}.footer a:hover{color:#efb5b6}.footer .footer-phone{font-size:1.5rem;font-family:var(--display)}.footer-bottom{color:#adb5ab;border-top:1px solid #434b40;justify-content:space-between;gap:20px;padding-block:22px;font-size:.72rem;display:flex}.footer-bottom a{font-size:inherit;color:#e9ece6;text-decoration:underline}.breadcrumbs{color:var(--muted);gap:15px;padding-top:24px;font-size:.75rem;display:flex}.breadcrumbs a{text-decoration:underline}.page-heading{padding-block:var(--section-space-compact)}.page-heading h1{max-width:950px}.page-heading .lede,.page-heading .button-row{margin-top:25px}.about-principles{padding-top:0}.about-intro{padding-bottom:var(--section-space)}.values-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:35px;display:grid}.values-grid article{border-top:1px solid var(--line);padding-top:25px}.values-grid h3{margin:20px 0 16px;font-size:2.1rem}.values-grid p{color:var(--muted)}.about-link{text-align:center;padding-block:0 90px}.about-link p{color:var(--muted);max-width:600px;margin:20px auto}.service-index{flex-wrap:wrap;gap:12px;padding-bottom:45px;display:flex}.service-index a{border:1px solid var(--line);padding:12px 15px;font-size:.8rem;font-weight:600}.service-index a:hover{color:var(--red);border-color:var(--red)}.service-index span{margin-left:12px}.service-detail{padding-block:var(--section-space-compact);border-top:1px solid var(--line);grid-template-columns:1fr 1fr;align-items:center;gap:65px;display:grid}.service-detail:nth-child(2n) .service-image{order:2}.service-image .image-frame{object-fit:cover;width:100%;height:470px}.service-image{min-width:0}.service-copy h2{font-size:3.1rem}.service-copy>p:not(.eyebrow){color:var(--muted);margin-top:23px}.service-copy ul{margin:24px 0;padding:0;list-style:none}.service-copy li{border-bottom:1px solid var(--line);padding:9px 0;font-size:.9rem}.service-copy li:before{content:"—";color:var(--red);margin-right:10px}.service-copy .service-note{font-size:.85rem}.service-copy .button-row{margin-top:25px}.service-detail:last-child{padding-bottom:0}.services-list,.gallery-section{padding-bottom:var(--section-space)}.gallery-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:25px;margin-bottom:35px;padding-bottom:25px;display:flex}.filters{flex-wrap:wrap;gap:10px;display:flex}.filters button{border:1px solid var(--line);color:var(--ink);background:#fff;padding:12px 18px;font-size:.82rem;font-weight:600}.filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.filters button:hover{border-color:var(--ink)}.result-count{color:var(--muted);white-space:nowrap;font-size:.78rem}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 25px;display:grid}.gallery-images .image-frame{aspect-ratio:1.18;object-fit:cover;width:100%}.gallery-grid figcaption{padding-top:14px;font-size:.88rem;line-height:1.6}.gallery-grid figcaption a{color:var(--red);margin-top:8px;font-size:.73rem;font-weight:600;display:block}.comparison{grid-column:span 2}.comparison .gallery-images{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stage{margin-bottom:8px;font-size:.8rem;display:block}.empty-state{background:var(--soft);padding:45px}.contact-layout{padding-bottom:var(--section-space);grid-template-columns:.8fr 1.25fr;align-items:start;gap:9vw;display:grid}.contact-details{padding-top:20px}.contact-details>p:not(.eyebrow){max-width:330px;color:var(--muted);margin-top:20px}.contact-details h2{font-size:3rem}.contact-method{padding-top:28px}.contact-method>span{color:var(--muted);margin-bottom:5px;font-size:.78rem;display:block}.contact-method a{overflow-wrap:anywhere;font-weight:600}.contact-method:first-of-type a{font-family:var(--display);font-size:2.1rem}.contact-note{border-top:1px solid var(--line);padding-top:25px;font-size:.85rem}.quote-panel{background:var(--soft);padding:38px}.quote-panel h2{font-size:2.6rem}.quote-panel>p:not(.eyebrow){color:var(--muted);margin-top:15px;font-size:.85rem}.quote-form{margin-top:25px}.form-grid{grid-template-columns:1fr 1fr;gap:0 20px;display:grid}.field{flex-direction:column;margin-bottom:16px;display:flex}.field label{margin-bottom:7px;font-size:.8rem;font-weight:600}.field label span{color:var(--muted);font-weight:400}.field input,.field select,.field textarea{color:var(--ink);background:#fff;border:1px solid #a7ada2;border-radius:0;width:100%;min-width:0;padding:11px 13px;font-size:1rem}.field textarea{resize:vertical;min-height:125px}.business-hours>span{display:block}.field input:focus,.field select:focus,.field textarea:focus{border-color:#1567a3;outline:none;box-shadow:inset 0 0 0 1px #1567a3}.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23202420' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 15px center;background-repeat:no-repeat;background-size:16px 16px;padding-right:44px}@media (forced-colors:active){.field select{appearance:auto;background-image:none}.field input:focus,.field select:focus,.field textarea:focus{outline-offset:-2px;outline:2px solid highlight}}.field input[aria-invalid=true],.field select[aria-invalid=true],.field textarea[aria-invalid=true]{border:2px solid var(--red)}.field-error{color:var(--red);margin-top:3px;font-size:.78rem}.form-notice{border-left:3px solid var(--red);background:#fff;margin-bottom:22px;padding:14px 18px;font-size:.82rem}.form-notice a,.form-privacy a,.privacy-section a{text-decoration:underline}.form-privacy{color:var(--muted);margin-bottom:20px;font-size:.75rem;line-height:1.7}.form-status{margin-top:20px;font-size:.9rem}.honeypot{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.service-area{background:var(--soft);padding-block:var(--section-space)}.town-list{grid-template-columns:repeat(4,1fr);gap:0 35px;margin:0;padding:0;list-style:none;display:grid}.town-list li{border-top:1px solid #ccd2c6;justify-content:space-between;gap:12px;padding:13px 0;font-size:.9rem;display:flex}.town-list span{color:var(--muted);font-size:.75rem}.privacy-section{padding-block:var(--section-space)}.privacy-section h2{margin-bottom:20px;font-size:2.2rem}.privacy-section>p:not(.eyebrow){max-width:820px;color:var(--muted);font-size:.85rem}@media (width>=1600px){.hero{max-width:1800px;margin:auto}.hero-copy{padding-left:88px}}@media (width<=1150px){.header-inner{gap:20px}.header-cta{display:none}.hero{min-height:590px}.hero-copy{padding-top:65px}.hero .button-row{gap:20px}.hero h1{font-size:3.6rem}.service-overview{grid-template-columns:repeat(2,1fr);gap:35px 25px}.service-card>.image-frame{aspect-ratio:1.5}.service-detail{gap:35px}.service-image .image-frame{height:420px}.contact-layout{gap:5vw}.quote-panel{padding:28px}.gallery-toolbar{flex-direction:column;align-items:start}}@media (width<=999px){:root{--section-space:72px;--section-space-compact:56px}.header{--header-expanded-height:98px;--header-logo-height:70px;--header-logo-width:150px}.header-inner{min-height:var(--header-expanded-height);flex-wrap:wrap;padding-block:12px}.brand{flex-basis:150px}.brand img{width:150px;height:70px}.menu-toggle:not([hidden]){margin-left:auto;display:block}.header nav{flex-wrap:wrap;justify-content:center;width:100%;margin:0;padding-bottom:12px}.header nav[data-enhanced=true]{inset:var(--header-bottom,99px) 0 0;height:calc(100dvh - var(--header-bottom,99px));padding:28px var(--gutter);background:var(--paper);overscroll-behavior:contain;visibility:hidden;pointer-events:none;flex-flow:column;justify-content:flex-start;align-items:stretch;gap:12px;display:flex;position:fixed;overflow-y:auto}.header nav[data-enhanced=true].is-open{visibility:visible;pointer-events:auto}.header nav[data-enhanced=true] a{width:fit-content;font-size:1.25rem}.header nav[data-enhanced=true] a[aria-current]{border-color:var(--red)}.header nav[data-enhanced=true] .nav-indicator{display:none}.header nav[data-enhanced=true] .mobile-menu-contact{border-top:1px solid var(--line);flex-direction:column;flex-shrink:0;align-items:flex-start;margin-top:16px;padding-top:24px;display:flex}.mobile-menu-contact h2{font:600 .75rem/1.5 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}.header nav[data-enhanced=true] .mobile-menu-contact a{white-space:normal;overflow-wrap:anywhere;padding-block:8px;font-size:.95rem}.header nav[data-enhanced=true] .mobile-menu-contact .mobile-menu-phone{font-family:var(--display);font-size:1.75rem;font-weight:600}html.menu-open{overflow:hidden}.hero{grid-template-columns:1fr 1fr}.hero-copy{padding:50px 25px 38px var(--gutter)}.hero h1{font-size:3.15rem}.hero .button-row{flex-direction:column;align-items:flex-start}.principles{gap:20px}.principles h2{font-size:1.4rem}.principles p{font-size:.8rem}.split{gap:35px}.split-copy h2{font-size:3rem}.featured-work img{height:340px}.cta-inner{gap:40px}.footer-grid{gap:30px}.service-copy h2{font-size:2.6rem}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-layout{grid-template-columns:1fr 1.4fr;gap:30px}.form-grid{grid-template-columns:1fr}.quote-panel{padding:25px}.town-list{grid-template-columns:repeat(3,1fr)}}@media (width<=700px){:root{--section-space:56px;--section-space-compact:48px}.utility .container>span{display:none}.utility .container{justify-content:center}.utility strong{margin-left:8px}.utility{font-size:.68rem}.header{--header-expanded-height:88px;--header-logo-height:62px;--header-logo-width:140px}.brand img{width:140px;height:62px}.hero{grid-template-columns:1fr}.hero-copy{padding:48px var(--gutter) 40px}.hero h1{font-size:clamp(1.8rem,8.5vw,3.7rem)}.hero-title-line{white-space:nowrap;display:block}.hero .button-row{flex-direction:row;align-items:center}.hero-image{height:360px}.hero-caption{margin-top:28px}.hero .eyebrow{font-size:.68rem}.principles{grid-template-columns:1fr;gap:24px;padding-block:28px}.principles h2{font-size:1.6rem}.principles p{font-size:.85rem}.section-heading{flex-direction:column;align-items:start;gap:24px;margin-bottom:30px}h2{font-size:2.9rem}.service-overview{gap:28px 16px}.service-card>.image-frame{aspect-ratio:1}.service-card>div{gap:8px}.service-card{--service-title-size:1.35rem}.service-card.combined p{font-size:.72rem}.split{grid-template-columns:1fr;gap:35px}.split>.image-frame{max-height:430px}.split-copy h2{font-size:2.9rem}.featured-work{grid-template-columns:1fr;gap:30px}.featured-work img{height:340px}.featured-work figcaption{font-size:1.7rem}.area-strip{padding-block:45px 60px}.area-strip h2{font-size:2.5rem}.cta-inner{grid-template-columns:1fr;gap:30px}.cta-inner h2{font-size:3.3rem}.footer-grid{grid-template-columns:1fr 1fr;gap:38px 25px}.footer-grid>div:first-child{grid-column:span 2}.footer-grid>div:last-child>a{overflow-wrap:anywhere;max-width:100%}.footer-bottom{flex-direction:column;gap:7px}.page-heading h1{font-size:3.5rem}.values-grid{grid-template-columns:1fr;gap:28px}.values-grid h3{margin-block:15px}.service-detail{grid-template-columns:1fr;gap:28px}.service-detail:nth-child(2n) .service-image{order:0}.service-image .image-frame{height:340px}.service-index{gap:8px}.service-index a{padding:9px 12px;font-size:.75rem}.service-copy h2{font-size:2.8rem}.gallery-grid{gap:28px 18px}.gallery-images .image-frame{aspect-ratio:1}.filters{gap:8px}.filters button{padding:10px 12px;font-size:.75rem}.contact-layout{grid-template-columns:1fr;gap:38px}.contact-details{padding:0}.contact-note{max-width:none!important}.quote-panel{padding:28px 20px}.town-list{grid-template-columns:1fr 1fr;gap:0 25px}.comparison{grid-column:span 2}}@media (width<=450px){.gallery-grid{grid-template-columns:1fr}.gallery-images .image-frame{aspect-ratio:1.2}.comparison{grid-column:auto}.comparison .gallery-images{grid-template-columns:1fr}.hero-image{height:290px}.hero .button-row{flex-direction:column;align-items:flex-start}.service-overview{grid-template-columns:1fr}.service-card>.image-frame{aspect-ratio:1.5}.service-card{--service-title-size:1.7rem}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.page-heading h1{font-size:3.1rem}.town-list{column-gap:18px}.town-list li{font-size:.8rem}.quote-panel{margin-inline:-8px}.button{gap:18px;max-width:100%}.service-copy .button-row{gap:18px}.header nav{flex-direction:column}.featured-work figcaption{flex-wrap:wrap;gap:0 20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.cta-band .eyebrow.light{color:#fff}.utility,.footer-bottom,.hero .eyebrow{font-size:.75rem}.header nav a,.field label,.filters button,.service-index a,.footer a,.gallery-grid figcaption a,.service-card.combined p,.form-privacy,.form-notice,.result-count,.contact-method>span{font-size:.875rem}.arrow-icon{vertical-align:middle;stroke:currentColor;stroke-width:2px;flex:none;width:12px;height:12px;display:inline-block}a .arrow-icon{transition:transform .48s cubic-bezier(.22,1,.36,1)}@media (hover:hover){a:not(.button):hover .arrow-icon{transform:rotate(45deg)}}a:not(.button):focus-visible .arrow-icon{transform:rotate(45deg)}@media (prefers-reduced-motion:reduce){a .arrow-icon{transition:none}a:not(.button) .arrow-icon{transform:none}}@keyframes mobile-menu-item-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=999px) and (prefers-reduced-motion:no-preference){.header nav[data-enhanced=true].is-open>a,.header nav[data-enhanced=true].is-open .mobile-menu-contact>*{animation:.45s cubic-bezier(.33,1,.68,1) both mobile-menu-item-in;animation-delay:var(--menu-reveal-delay,0s)}.header nav>a:nth-child(2){--menu-reveal-delay:60ms}.header nav>a:nth-child(3){--menu-reveal-delay:.12s}.header nav>a:nth-child(4){--menu-reveal-delay:.18s}.header nav>a:nth-child(5){--menu-reveal-delay:.24s}.mobile-menu-contact>:first-child{--menu-reveal-delay:.36s}.mobile-menu-contact>:nth-child(2){--menu-reveal-delay:.42s}.mobile-menu-contact>:nth-child(3){--menu-reveal-delay:.48s}.mobile-menu-contact>:nth-child(4){--menu-reveal-delay:.54s}.mobile-menu-contact>:nth-child(5){--menu-reveal-delay:.6s}.header nav[data-enhanced=true].is-open a:focus-visible{animation:none}}[data-menu-departure]{opacity:0!important}.form-fields{border:0;min-width:0;margin:0;padding:0}.form-fields[hidden]{display:none}.form-fields:disabled{opacity:.7}.form-success{align-items:center;gap:16px;padding-top:12px;display:flex}.form-success h3{margin:0}.form-success-icon{color:#922820;border:1px solid;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:24px;display:inline-grid}.form-status.is-success{max-width:52ch;margin-bottom:24px}.is-sending .button-arrow svg{visibility:hidden}.is-sending .button-arrow{position:relative}.is-sending .button-arrow:after{content:"";border:2px solid;border-right-color:#0000;border-radius:50%;animation:.8s linear infinite quote-spin;position:absolute;inset:-2px}@keyframes quote-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.is-sending .button-arrow:after{animation:none}}.quote-phone.react-tel-input{font:inherit}.quote-phone.react-tel-input .form-control{width:100%;height:auto;min-height:49px;font:inherit;border-color:#a7ada2;border-radius:0;padding:11px 13px 11px 62px}.quote-phone.react-tel-input .flag-dropdown{background:0 0;border:0;border-right:1px solid #d4d8d0;border-radius:0;inset:1px auto 1px 1px}.quote-phone.react-tel-input .selected-flag{border-radius:0;width:50px;padding-left:12px}.quote-phone.react-tel-input .country-list{width:min(340px,100vw - 80px);max-height:260px;font:inherit;border:1px solid #d4d8d0;border-radius:0;margin-top:8px;font-size:.85rem;box-shadow:0 8px 24px #20242020}.quote-phone.react-tel-input .country-list .country{padding:10px 12px}.quote-phone.react-tel-input .country-list .search{padding:10px}.quote-phone.react-tel-input .country-list .search-box{width:100%;font:inherit;border-radius:0;margin:0;padding:10px}.quote-phone.react-tel-input .country-list .country.highlight,.quote-phone.react-tel-input .country-list .country:hover{background:#f0f2ec}.quote-phone.react-tel-input .form-control:focus{border-color:#1567a3;box-shadow:inset 0 0 0 1px #1567a3}.quote-phone.react-tel-input .form-control[aria-invalid=true]{border-color:#922820}.quote-phone .country-list .dial-code:before{content:"+"}.phone-control{position:relative}.phone-dial-code{z-index:1;pointer-events:none;user-select:none;align-items:center;height:49px;display:flex;position:absolute;top:0;left:62px}.phone-control .quote-phone.react-tel-input .form-control{padding-left:calc(70px + var(--dial-code-width))}.quote-panel:has(.form-success)>.quote-intro{display:none}.quote-form .form-fields>.button[type=submit]{margin-left:auto;display:flex}.header-inner{transition:min-height .28s cubic-bezier(.22,1,.36,1),padding-block .28s cubic-bezier(.22,1,.36,1)}.brand img{transition:width .28s cubic-bezier(.22,1,.36,1),height .28s cubic-bezier(.22,1,.36,1)}.header.is-compact .header-inner{min-height:calc((var(--header-expanded-height) + 1px) * .65 - 1px);padding-block:6px}.header.is-compact .brand img{width:calc(var(--header-logo-width) * .65);height:calc(var(--header-logo-height) * .65)}html.header-transitioning{overflow-anchor:none}.image-frame{isolation:isolate;min-width:0;display:block;overflow:hidden}.image-frame>picture{height:100%;display:block}.image-frame :where(img){object-fit:cover;opacity:1;width:100%;height:100%;transition:opacity .65s,transform .75s cubic-bezier(.2,.65,.3,1);display:block;transform:scale(1)}@media (scripting:enabled){.image-frame:not([data-revealed]) img{opacity:0}}@media (hover:hover) and (pointer:fine){.image-frame[data-zoom]:hover img{transform:scale(1.055)}}a:focus-visible .image-frame[data-zoom] img{transform:scale(1.055)}@media (prefers-reduced-motion:reduce){.image-frame :where(img){transition:none}.image-frame[data-zoom]:hover img,a:focus-visible .image-frame[data-zoom] img{transform:none}}.image-frame[data-cut-corners]{--cut-tl:0px;--cut-tr:0px;--cut-bl:0px;--cut-br:0px;clip-path:polygon(min(var(--cut-tl), 50%) 0, calc(100% - min(var(--cut-tr), 50%)) 0, 100% min(var(--cut-tr), 50%), 100% calc(100% - min(var(--cut-br), 50%)), calc(100% - min(var(--cut-br), 50%)) 100%, min(var(--cut-bl), 50%) 100%, 0 calc(100% - min(var(--cut-bl), 50%)), 0 min(var(--cut-tl), 50%))}.image-frame[data-cut-corners~=tl]{--cut-tl:var(--image-cut-size,32px)}.image-frame[data-cut-corners~=tr]{--cut-tr:var(--image-cut-size,32px)}.image-frame[data-cut-corners~=bl]{--cut-bl:var(--image-cut-size,32px)}.image-frame[data-cut-corners~=br]{--cut-br:var(--image-cut-size,32px)}.image-frame:where([data-parallax]){width:100%;aspect-ratio:var(--image-ratio);position:relative}@supports (animation-timeline:view()) and (animation-range:cover){@media (prefers-reduced-motion:no-preference){.image-frame[data-parallax-ready]{view-timeline-name:--image-parallax;view-timeline-axis:block;view-timeline-inset:0}.image-frame[data-parallax-ready]>picture{left:var(--parallax-left);top:var(--parallax-top);width:var(--parallax-width);height:var(--parallax-height);animation:linear both image-parallax;animation-range:cover;position:absolute;overflow:clip;animation-timeline:--image-parallax!important}.image-frame[data-parallax-ready]>picture>img{aspect-ratio:auto;width:100%;max-width:none;height:100%}}}@keyframes image-parallax{0%{transform:translateY(var(--parallax-start))}to{transform:translateY(var(--parallax-end))}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
