:root{--navy:#142f47;--ink:#182c3b;--accent:#efbd4a;--light:#f2f5f7;--line:#dce3e8;--muted:#5f6b76}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{font-family:"Valley Sans",Arial,Helvetica,sans-serif;color:var(--ink);font-size:1rem;line-height:1.65;margin:0}a{color:var(--navy);text-underline-offset:5px}button,a,input,select,textarea{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}h1,h2,h3{font-weight:700;line-height:1.1;letter-spacing:-.045em}h1{font-size:clamp(2.6rem,5vw,4.8rem)}h2{font-size:clamp(2rem,3.2vw,3rem);margin-bottom:1.2rem}h3{font-size:1.5rem}p{margin-bottom:1.3rem}.container{max-width:1280px;padding-left:28px;padding-right:28px}.topbar{background:var(--navy);color:#fff;padding:9px 0;font-size:.875rem}.topbar a{color:white;text-decoration:none}.topbar i{margin-right:8px}.top-email{margin-left:25px}.site-header{background:white;position:sticky;top:0;z-index:100;box-shadow:0 1px 0 var(--line)}.nav-wrap{min-height:103px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:inline-flex;flex-direction:column;line-height:1.06;text-decoration:none;color:var(--navy);flex-shrink:0}.brand>span{font-size:1rem;letter-spacing:.27em;font-weight:700}.brand strong{font-size:1.85rem;letter-spacing:.065em}.brand-dot{color:#be8c1a}.main-nav{display:flex;list-style:none;margin:0;padding:0;gap:23px;align-items:center}.main-nav>li>a,.nav-parent>a{font-size:.9375rem;font-weight:600;display:block;padding:18px 0;text-decoration:none;position:relative}.main-nav>li>a:after,.nav-parent>a:after{content:'';position:absolute;bottom:9px;left:0;width:0;height:2px;background:var(--navy);transition:width .2s}.main-nav a:hover:after,.main-nav a.active:after{width:100%}#main-navigation{display:flex;align-items:center;gap:27px}.nav-parent{display:flex;align-items:center;gap:4px}.submenu-toggle{border:0;background:none;padding:5px;font-size:.7rem;color:var(--navy)}.has-dropdown{position:relative}.submenu{position:absolute;top:100%;left:-20px;min-width:230px;background:white;list-style:none;padding:12px;margin:0;box-shadow:0 12px 40px #0f243c20;display:none;border-top:3px solid var(--accent)}.submenu a{display:block;padding:8px;text-decoration:none;font-size:.9375rem}.submenu a:hover,.submenu a.active{background:var(--light)}.has-dropdown:hover>.submenu,.has-dropdown:focus-within>.submenu,.has-dropdown.expanded>.submenu{display:block}.has-dropdown.menu-dismissed>.submenu{display:none}.menu-toggle,.menu-close{display:none}.btn{padding:13px 23px;font-weight:600;border-radius:3px;font-size:.9375rem;line-height:1.4}.btn-primary{background:var(--navy);border-color:var(--navy);color:white}.btn-primary:hover,.btn-primary:focus{background:var(--accent);color:var(--navy);border-color:var(--accent)}.btn-accent{background:var(--accent);color:var(--navy);border:1px solid var(--accent)}.btn-accent:hover{background:white;color:var(--navy);border-color:white}.btn-outline-dark{border-color:var(--navy);color:var(--navy)}.btn-outline-dark:hover{background:var(--navy);color:white}.btn-light:hover{background:var(--accent);border-color:var(--accent);color:var(--navy)}.hero{position:relative;isolation:isolate;min-height:735px;background:var(--navy)}.hero-image{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;object-position:center;z-index:-2}.hero-shade{position:absolute;inset:0;background:rgba(9,34,51,.66);z-index:-1}.hero-content{display:grid;grid-template-columns:1fr 420px;gap:100px;padding-top:65px;padding-bottom:65px;align-items:center}.hero-copy{color:white}.eyebrow{font-size:.8125rem;letter-spacing:.16em;font-weight:700;line-height:1.5;margin-bottom:20px}.hero-copy .eyebrow{color:#f4cd76}.hero-copy h1{font-size:clamp(3.8rem,6.6vw,6.4rem);line-height:.99;letter-spacing:-.065em;margin-bottom:28px}.hero-copy h1>span{color:var(--accent)}.hero-copy>p:not(.eyebrow){font-size:1.18rem;max-width:420px;color:#edf2f5}.hero-links{display:flex;align-items:center;flex-wrap:wrap;gap:23px;margin-top:35px}.hero-phone{color:white;font-weight:700}.quote-box{background:white;padding:30px;border-top:5px solid var(--accent);box-shadow:0 15px 50px #10203025}.quote-box .eyebrow{font-size:.75rem;margin-bottom:10px}.quote-box h2{font-size:1.75rem;margin-bottom:20px}.form-label{font-size:.875rem;font-weight:600;margin-bottom:6px}.form-control,.form-select{border-radius:2px;min-height:44px;border-color:#cbd4db;font-size:1rem}.form-control:focus,.form-select:focus{border-color:#5f879e;box-shadow:0 0 0 .2rem #142f4714}.optional{font-weight:400;color:var(--muted)}.form-note{font-size:.8125rem;line-height:1.5;color:var(--muted);margin:12px 0 0}.form-status{font-size:.875rem;margin:12px 0 0;font-weight:600}.value-band{background:var(--light);border-bottom:1px solid var(--line)}.value-band>.container{display:flex;justify-content:space-around;gap:20px;padding-top:25px;padding-bottom:25px}.value-band .container>div{display:flex;align-items:center;gap:13px;font-size:.9375rem;font-weight:600}.value-band i{font-size:1.25rem;color:#8f6714}.section{padding:95px 0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:40px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:420px;margin-bottom:4px;color:var(--muted)}.service-card{padding:33px;border:1px solid var(--line);height:100%;position:relative;transition:background .2s,border-color .2s;display:flex;flex-direction:column}.service-card:hover{background:var(--light);border-color:#97aab7}.service-card>i{font-size:2rem;color:#8f6714;margin-bottom:32px}.service-card h3{font-size:1.55rem}.service-card p{color:var(--muted)}.service-card a{font-weight:700;margin-top:auto;padding-top:15px}.about-section{background:var(--light)}.since{font-size:clamp(4rem,8vw,7.5rem);line-height:1;font-weight:700;letter-spacing:-.06em;margin-bottom:25px;color:var(--navy)}.since span{display:block;font-size:.875rem;letter-spacing:.06em;line-height:1.4;margin-top:12px}.expert-card{display:flex;align-items:center;gap:15px;text-decoration:none;padding:22px;border:1px solid var(--line);font-weight:600;min-height:85px;transition:all .2s}.expert-card>i:first-child{font-size:1.2rem;color:#8f6714}.expert-card>i:last-child{margin-left:auto;font-size:.75rem}.expert-card:hover{background:var(--navy);border-color:var(--navy);color:white}.expert-card:hover i{color:var(--accent)}.process-strip{background:var(--light)}.process-item{border-top:2px solid #bdcbd5;padding:25px 5px 0}.process-item i{font-size:1.5rem;color:#8f6714;margin-bottom:22px}.process-item h3{font-size:1.3rem}.process-item p{color:var(--muted)}.cta{background:var(--navy);color:white;padding:55px 0}.cta .eyebrow{color:var(--accent);margin-bottom:10px}.cta h2{font-size:2.1rem;max-width:650px;margin:0}.footer-main{display:grid;grid-template-columns:1.5fr 1fr .8fr 1.3fr;gap:50px;padding-top:70px;padding-bottom:55px}.footer-brand p{margin-top:24px;color:var(--muted);font-size:.9375rem}.footer-main h2{font-size:1.1rem;letter-spacing:0;margin-bottom:20px}.footer-main>div>a:not(.brand){display:block;font-size:.875rem;text-decoration:none;margin-bottom:12px;overflow-wrap:anywhere}.footer-main>div>a:hover{text-decoration:underline}.footer-main>div>p{font-size:.875rem;color:var(--muted)}.bottom-footer{background:var(--light);border-top:1px solid var(--line);padding:23px 0;font-size:.8125rem}.bottom-footer .container{display:flex;justify-content:space-between;gap:20px}.bottom-footer a{margin-left:20px;text-decoration:none}.go-top{position:fixed;right:17px;bottom:17px;background:var(--accent);color:var(--navy);width:42px;height:42px;display:flex;align-items:center;justify-content:center;text-decoration:none;border-radius:3px;z-index:99;box-shadow:0 3px 12px #0001}.go-top:hover{background:var(--navy);color:white}.page-title{padding:34px 0 52px;background:var(--light);border-bottom:1px solid var(--line)}.breadcrumbs{font-size:.8125rem;color:var(--muted);margin-bottom:32px}.breadcrumbs a{text-decoration:none}.page-title h1{font-size:clamp(2.5rem,5vw,4.5rem);margin:0 0 18px}.page-title p{font-size:1.15rem;color:var(--muted);margin:0}.lead{font-size:1.15rem;line-height:1.8}.feature-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;padding:0;gap:17px 25px;margin:30px 0}.feature-list i{color:#8f6714;margin-right:12px}.aside-panel{background:var(--light);padding:35px}.aside-panel>i{font-size:2.4rem;color:#8f6714;margin-bottom:30px}.aside-panel h2{font-size:1.9rem}.aside-phone{display:block;margin-top:22px;font-weight:600}.side-links a{display:block;padding:10px 0;border-bottom:1px solid var(--line);text-decoration:none}.side-links a:hover{color:#8f6714}.process-details{display:grid;grid-template-columns:1fr 1fr;gap:50px 70px}.process-details article{padding-top:30px;border-top:2px solid var(--accent)}.process-details .eyebrow{margin-bottom:14px}.form-panel{padding:40px;background:var(--light);border:1px solid var(--line)}.form-panel h2{font-size:1.7rem}.contact-item{display:flex;gap:20px;margin:35px 0}.contact-item>i{font-size:1.3rem;line-height:1.4;color:#8f6714}.contact-item h3{font-size:1.15rem;margin-bottom:8px;letter-spacing:0}.contact-item p{margin:0}.contact-phone{font-size:1.7rem;font-weight:700}.gallery-image{position:relative;background:none;border:0;padding:0;display:block;width:100%}.gallery-image img{width:100%;aspect-ratio:3/2;object-fit:cover}.gallery-image>span{position:absolute;right:20px;bottom:20px;background:var(--accent);padding:15px}.image-caption{font-size:.8125rem;color:var(--muted);margin-top:12px}.review-card{border:1px solid var(--line);padding:32px;height:100%}.review-card blockquote,.review-card>p:not(.eyebrow){font-size:1.15rem;line-height:1.7}.review-card h2{font-size:1.1rem;letter-spacing:0;margin-top:30px;margin-bottom:0}.policy{max-width:850px}.policy h2{font-size:1.5rem;letter-spacing:-.02em;margin-top:30px}.skip-link{position:fixed;top:-100px;left:20px;background:white;z-index:999;padding:12px}.skip-link:focus{top:10px}.modal-content{border-radius:3px}.modal-body{padding:0}
@media(min-width:992px){.submenu-toggle{display:none}}
@media(max-width:1199px){.main-nav{gap:15px}#main-navigation{gap:17px}.nav-wrap{gap:16px}.brand strong{font-size:1.6rem}.brand>span{font-size:.875rem}.nav-cta{padding:12px 15px}.hero-content{gap:50px;grid-template-columns:1fr 390px}.footer-main{gap:30px}}
@media(max-width:991px){.menu-toggle{display:block;background:none;border:1px solid var(--line);padding:10px 14px;font-size:1.3rem}.nav-wrap{min-height:85px}#main-navigation{display:none;position:absolute;top:100%;left:0;width:100%;background:white;padding:28px;max-height:80vh;overflow-y:auto;border-top:1px solid var(--line);box-shadow:0 15px 25px #0002}#main-navigation.open{display:block}.menu-close{display:block;margin-left:auto;background:none;border:0;padding:8px;font-size:1.4rem}.main-nav{display:block}.main-nav>li>a,.nav-parent>a{padding:13px 0}.nav-parent{justify-content:space-between}.submenu{position:static;box-shadow:none;border:0;padding:0 0 12px 18px;display:none}.has-dropdown:hover>.submenu,.has-dropdown:focus-within>.submenu{display:none}.has-dropdown.expanded>.submenu{display:block}.main-nav a:after{display:none}.main-nav a.active{color:#936600}.nav-cta{margin-top:20px}.hero-content{gap:30px;grid-template-columns:1fr 360px}.hero-copy h1{font-size:4rem}.hero-links{gap:15px}.footer-main{grid-template-columns:1fr 1fr;gap:40px}.section{padding:70px 0}}
@media(max-width:767px){.container{padding-left:22px;padding-right:22px}.topbar{font-size:.75rem}.topbar .container>span{display:none}.topbar .container{justify-content:center!important}.top-email{margin-left:15px}.hero-content{display:block;padding-top:50px;padding-bottom:40px}.hero-copy h1{font-size:clamp(3.5rem,13vw,5.2rem)}.hero-copy>p:not(.eyebrow){font-size:1.05rem}.hero-copy{margin-bottom:40px}.hero-shade{background:#0c2739bd}.hero{min-height:0}.quote-box{max-width:520px;padding:25px}.value-band>.container{justify-content:flex-start;flex-wrap:wrap;gap:18px}.value-band .container>div{font-size:.875rem}.section-heading{display:block}.section-heading>p{margin-top:22px}.section-heading>.btn{margin-top:22px}.section{padding:55px 0}.footer-main{grid-template-columns:1fr 1fr;gap:30px}.footer-brand{grid-column:1/-1}.footer-main>div:last-child{grid-column:1/-1}.bottom-footer .container{display:block;text-align:center;padding-bottom:38px}.bottom-footer a{margin:12px 10px 0;display:inline-block}.go-top{right:14px;bottom:14px}.form-panel{padding:25px}.feature-list{grid-template-columns:1fr}.process-details{grid-template-columns:1fr;gap:32px}.page-title{padding:25px 0 35px}.breadcrumbs{margin-bottom:25px}.page-title p{font-size:1rem}.cta h2{font-size:1.8rem}.since{font-size:5.5rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Full-width header with a raised two-line estimate control. */
.topbar > .container,.site-header > .container{max-width:none;width:100%;padding-left:32px;padding-right:32px}
.main-nav > li > a,.nav-parent > a{font-size:1.171875rem}
.nav-cta{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
.estimate-phone{display:block;font-size:1rem;font-weight:700;letter-spacing:.02em}
@media(min-width:1200px){
 .topbar{min-height:46px;display:flex;align-items:center}
 .topbar > .container{padding-right:272px}
 .nav-wrap{position:relative;min-height:103px}
 #main-navigation{padding-right:232px}
 .nav-cta{position:absolute;top:0;right:32px;transform:translateY(-50%);width:216px;min-height:76px;padding:13px 18px;border:2px solid white;box-shadow:0 5px 15px #142f471f;z-index:102;background:var(--accent);border-color:white;color:var(--navy)}
 .nav-cta:hover,.nav-cta:focus{background:var(--navy);color:white;border-color:white}
 .main-nav{gap:23px}
}
@media(max-width:1199px){
 .menu-toggle{display:block;background:none;border:1px solid var(--line);padding:10px 14px;font-size:1.3rem}
 .nav-wrap{min-height:85px}
 #main-navigation{display:none;position:absolute;top:100%;left:0;width:100%;background:white;padding:28px;max-height:80vh;overflow-y:auto;border-top:1px solid var(--line);box-shadow:0 15px 25px #0002}
 #main-navigation.open{display:block}
 .menu-close{display:block;margin-left:auto;background:none;border:0;padding:8px;font-size:1.4rem}
 .main-nav{display:block}
 .main-nav > li > a,.nav-parent > a{padding:13px 0}
 .nav-parent{justify-content:space-between}
 .submenu-toggle{display:block}
 .submenu{position:static;box-shadow:none;border:0;padding:0 0 12px 18px;display:none}
 .has-dropdown:hover > .submenu,.has-dropdown:focus-within > .submenu{display:none}
 .has-dropdown.expanded > .submenu{display:block}
 .main-nav a:after{display:none}
 .main-nav a.active{color:#936600}
 .nav-cta{margin-top:20px;width:fit-content;min-width:216px}
}
@media(max-width:767px){.topbar > .container,.site-header > .container{padding-left:22px;padding-right:22px}}

:root{--bs-body-font-family:"Valley Sans",Arial,Helvetica,sans-serif}input,select,textarea,button{font-family:inherit}

/* White gutters outside the homepage hero. */
.hero{margin-left:25px;margin-right:25px}

/* Homepage services band, separated from the header by white space. */
.homepage .site-header{box-shadow:none;border-bottom:1px solid var(--line)}
.services-scroller{margin:25px 25px 0;background:var(--accent);color:var(--navy);display:flex;align-items:center;min-height:64px;overflow:hidden}
.services-scroll-window{overflow:hidden;flex:1;min-width:0}
.services-scroll-track{display:flex;width:max-content;animation:services-marquee 55s linear infinite}
.services-scroll-group{display:flex;align-items:center;flex-shrink:0}
.services-scroll-group a,.services-scroll-group>span{font-size:1rem;font-weight:600;white-space:nowrap;padding:19px 28px;display:block;position:relative;text-decoration:none;color:var(--navy)}
.services-scroll-group a:after,.services-scroll-group>span:after{content:'';width:4px;height:4px;background:var(--navy);position:absolute;right:0;top:50%;transform:translateY(-50%)}
.services-scroll-group a:hover{text-decoration:underline}
.services-scroll-control{flex-shrink:0;align-self:stretch;border:0;border-left:1px solid #142f4730;background:var(--accent);color:var(--navy);width:58px;min-height:64px;font-size:1rem}
.services-scroll-control:hover{background:var(--navy);color:white}
.services-scroll-window:hover .services-scroll-track,.services-scroll-window:focus-within .services-scroll-track,.services-scroller.is-paused .services-scroll-track{animation-play-state:paused}
@keyframes services-marquee{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.services-scroll-track{animation:none;width:auto}.services-scroll-group{flex-wrap:wrap}.services-scroll-group[aria-hidden="true"],.services-scroll-control{display:none}.services-scroll-group a{white-space:normal;padding:12px 18px}.services-scroller{overflow:visible}.services-scroll-window{overflow:visible}}

/* Original supplied header logo and compact footer brand mark. */
.header-brand{max-width:400px;flex-shrink:1;min-width:0}
.header-brand img{display:block;width:100%;height:auto;max-width:400px}
.footer-logo img{display:block;width:112px;height:auto;max-width:100%}
@media(min-width:1200px) and (max-width:1439px){.header-brand{max-width:290px}.main-nav{gap:16px}.nav-wrap{gap:20px}}
@media(max-width:1199px){.header-brand{max-width:340px}}
@media(max-width:767px){.header-brand{max-width:min(280px,calc(100vw - 110px))}}

/* Smaller Outfit typography and vertically centred header controls. */
html{font-size:100%}
.main-nav > li > a,.nav-parent > a{font-size:calc(1.171875rem - 2pt)}
.submenu a{font-size:calc(.9375rem - 2pt)}
.main-nav > li > a,.nav-parent > a{text-transform:uppercase;font-weight:400;letter-spacing:.025em}
.nav-wrap,#main-navigation{align-items:center}
@media(min-width:1200px){
 .topbar > .container{padding-right:32px;align-items:center}
 #main-navigation{padding-right:0}
 .nav-cta{position:static;transform:none;min-height:66px;margin:0;flex-shrink:0;box-shadow:none;border:0}
}

/* Refined main tabs and dropdown menus. */
.main-nav > li > a,.nav-parent > a{font-size:calc(1.171875rem - 4pt);text-transform:uppercase;font-weight:400;letter-spacing:.065em}
.main-nav > li > a:after,.nav-parent > a:after{bottom:15px;height:1px}
.submenu{padding:15px;min-width:250px;border-top:2px solid var(--accent);border-radius:0 0 5px 5px;box-shadow:0 14px 36px #142f471a;border-left:1px solid #e5ebef;border-right:1px solid #e5ebef;border-bottom:1px solid #e5ebef}
.submenu a{font-size:.875rem;line-height:1.4;font-weight:400;padding:12px 14px;border-radius:3px;transition:background .18s,color .18s}
.submenu a:hover,.submenu a:focus-visible,.submenu a.active{background:var(--light);color:var(--navy)}
@media(min-width:1200px){
 .expertise-submenu{width:460px;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;row-gap:3px}
 .has-dropdown:hover > .expertise-submenu,.has-dropdown:focus-within > .expertise-submenu,.has-dropdown.expanded > .expertise-submenu{display:grid}
 .has-dropdown.menu-dismissed > .expertise-submenu{display:none}
 .expertise-submenu li:nth-child(odd){border-right:1px solid var(--line);padding-right:12px}
}
@media(max-width:1199px){.submenu{padding:5px 0 12px 12px;border:0;box-shadow:none;border-radius:0;min-width:0}.submenu a{padding:11px 14px}.expertise-submenu{width:auto}}

/* Four-slide hero: uniform overlays and angular controls. */
.hero-carousel{overflow:hidden}
.hero-visual{position:absolute;inset:0;z-index:-2;opacity:0;transition:opacity .6s ease}
.hero-visual.is-active{opacity:1}
.hero-visual .hero-image{z-index:auto}
.hero-carousel .hero-shade{background:rgba(9,34,51,.66)}
.hero-carousel .hero-content{padding-left:80px;padding-right:80px;padding-bottom:95px;gap:60px}
.hero-carousel .hero-copy h1{font-size:clamp(3rem,5.2vw,5.3rem);line-height:1.04;letter-spacing:-.045em;max-width:650px}
.hero-slide[hidden]{display:none}
.hero-arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:70px;border:1px solid #ffffff80;background:#102c426b;color:white;clip-path:polygon(0 10px,10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%);transition:background .2s,color .2s}
.hero-prev{left:16px}.hero-next{right:16px}
.hero-arrow:hover,.hero-arrow:focus-visible{background:var(--accent);color:var(--navy)}
.hero-controls{position:absolute;bottom:24px;left:80px;display:flex;align-items:center;gap:24px;color:white}
.hero-counter{font-size:.875rem;letter-spacing:.15em;font-variant-numeric:tabular-nums}
.hero-dots{display:flex;align-items:center;gap:10px}
.hero-dot{width:28px;height:4px;border:0;padding:0;background:#ffffff70}.hero-dot.is-active{background:var(--accent)}
.hero-dot::before{content:"";display:block;height:28px;transform:translateY(-12px)}
.hero-pause{width:32px;height:32px;background:transparent;color:white;border:1px solid #ffffff60;margin-left:8px}
.hero-carousel button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
@media(max-width:1199px){.hero-carousel .hero-content{gap:30px;padding-left:70px;padding-right:70px}}
@media(max-width:991px){.hero-carousel .hero-content{padding-left:30px;padding-right:30px;padding-top:70px;padding-bottom:90px}.hero-carousel .hero-copy{padding:0 20px;min-height:360px}.hero-carousel .hero-copy h1{font-size:clamp(2.8rem,9vw,4rem)}.hero-arrow{top:220px;width:36px;height:58px}.hero-prev{left:8px}.hero-next{right:8px}.hero-controls{left:30px}.quote-box{margin-top:20px}}
@media(max-width:575px){.hero-carousel .hero-content{padding-left:15px;padding-right:15px}.hero-carousel .hero-copy{padding:0 18px}.hero-carousel .hero-copy h1{font-size:2.65rem}.hero-carousel .hero-copy .eyebrow{font-size:.8rem}.hero-carousel .hero-links{gap:16px}.hero-carousel .hero-links .btn{font-size:.875rem;padding:13px 16px}.hero-arrow{width:28px}.hero-prev{left:4px}.hero-next{right:4px}.hero-controls{left:20px;gap:15px}}
@media(prefers-reduced-motion:reduce){.hero-visual{transition:none}}

/* A single divider below the header on every page. */
.site-header,.homepage .site-header{box-shadow:none;border-bottom:1px solid var(--line)}

/* Compact, single-line headings anchored to the hero's top left. */
.hero-carousel .hero-copy{align-self:start;container-type:inline-size}
.hero-carousel .hero-copy h1{font-size:clamp(1.5rem,2.6vw,2.65rem);white-space:nowrap;max-width:none;margin-bottom:20px}
.hero-carousel .hero-links{justify-content:flex-start;margin-top:0;margin-bottom:24px}
.hero-carousel .hero-copy h1{font-size:min(clamp(1.5rem,2.6vw,2.65rem),5.4cqw)}
@media(max-width:991px){.hero-carousel .hero-copy{min-height:0;padding:0 20px 20px}.hero-carousel .hero-copy h1{font-size:min(clamp(1.4rem,4.5vw,2rem),5.4cqw)}}
@media(max-width:575px){.hero-carousel .hero-copy h1{font-size:min(1.325rem,5.4cqw)}}
.nav-cta{min-height:48px}
@media(min-width:1200px){.nav-cta{min-height:48px}}

/* Minimal slide copy, top-left alignment and a button directly below. */
.hero-carousel .hero-content{align-items:start}
.hero-carousel .hero-copy{align-self:start;text-align:left}
.hero-carousel .hero-copy h1{font-size:min(clamp(.875rem,1.3vw,1.325rem),5.4cqw);white-space:nowrap;margin-bottom:20px}
.hero-carousel .hero-links{display:flex;justify-content:flex-start;margin:0}
@media(max-width:991px){.hero-carousel .hero-copy{margin-bottom:30px}.hero-carousel .hero-copy h1{font-size:min(clamp(.875rem,2.25vw,1rem),5.4cqw)}}
@media(max-width:575px){.hero-carousel .hero-copy h1{font-size:min(.875rem,5.4cqw)}}

/* Transparent estimate panel and larger copy aligned with its lower edge. */
.quote-box{border-top:0;background:rgba(255,255,255,.8)}
.hero-carousel .hero-copy{align-self:end;margin-bottom:0}
.hero-carousel .hero-copy h1{font-size:clamp(2.625rem,3.9vw,3.975rem);margin-bottom:0;white-space:nowrap}
.hero-carousel .hero-links{margin-bottom:24px}
@media(max-width:991px){.hero-carousel .hero-copy{padding-bottom:0;margin-bottom:30px}.hero-carousel .hero-copy h1{font-size:clamp(2.625rem,6.75vw,3rem)}}
@media(max-width:575px){.hero-carousel .hero-copy h1{font-size:2.625rem}}

/* Matching red header blocks use the red sampled from the supplied logo. */
:root{--logo-red:#e83338}
.topbar{padding:0;min-height:44px;position:relative;z-index:101}
.topbar-blocks{display:flex;justify-content:space-between;align-items:flex-start;min-height:44px;gap:20px}
.topbar-red{display:inline-flex;align-items:center;justify-content:center;gap:12px;height:54px;padding:0 24px;margin-bottom:-10px;background:var(--logo-red);color:white;position:relative;text-decoration:none;font-weight:600;line-height:1;letter-spacing:.04em}
.since-block{min-width:160px}.phone-block{font-size:1rem}.phone-block i{font-size:1.2rem;margin:0}.topbar .phone-block:hover,.topbar .phone-block:focus-visible{background:#c92127;color:white}
.site-header .nav-cta{width:auto;min-width:0;min-height:46px;padding:12px 18px;flex-direction:row;gap:10px;text-transform:uppercase;font-size:.875rem;letter-spacing:.05em;margin:0}
@media(max-width:1199px){.site-header .nav-cta{align-self:flex-start;margin-top:20px}}
@media(max-width:767px){.topbar > .topbar-blocks{padding-left:22px;padding-right:22px}.topbar-red{padding:0 14px}.since-block{min-width:0;font-size:.8rem}.phone-block{font-size:.875rem;gap:8px}}
/* Keep form text readable against a black panel with 20% transparency. */
.quote-box{background:rgba(0,0,0,.8);color:white;border-top:0}
.quote-box h2,.quote-box .form-label,.quote-box .optional,.quote-box .form-status{color:white}
.quote-box .invalid-feedback{color:#ffb5b5}

/* Plain service-area line on the blue top bar. */
.topbar-tagline{display:flex;align-items:center;min-height:44px;color:white;font-size:calc(1.171875rem - 4pt);font-weight:400;letter-spacing:.065em;text-transform:uppercase;line-height:1.4;padding:8px 0}
@media(max-width:767px){.topbar-blocks{gap:12px}.topbar-tagline{flex:1;min-width:0}.phone-block{flex-shrink:0}}
@media(max-width:480px){.topbar-blocks{flex-wrap:wrap;gap:0}.topbar-tagline{flex-basis:100%}.phone-block{margin-left:auto}}

/* Slide controls follow the button and heading; the form is vertically centered. */
.hero-carousel .hero-content{min-height:735px;align-items:center;padding-top:65px;padding-bottom:65px}
.quote-box{align-self:center;margin-top:0}
.hero-carousel .hero-copy{align-self:end}
.hero-carousel .hero-controls{position:static;display:flex;margin-top:28px;gap:24px}
@media(max-width:991px){.hero-carousel .hero-content{min-height:0;padding-top:70px;padding-bottom:50px}.hero-carousel .hero-copy{margin-bottom:40px}.hero-carousel .hero-controls{gap:18px}.quote-box{margin-top:0}}

/* Center the shared row, then align both columns to its bottom edge. */
@media(min-width:992px){
.hero-carousel .hero-content{align-content:center;align-items:end;grid-template-rows:auto}
.hero-carousel .hero-copy,.quote-box{align-self:end;margin-top:0;margin-bottom:0}
.hero-carousel .hero-controls{margin-bottom:0}
}

/* Heading, button, controls, then 50px of breathing room. */
.hero-carousel .hero-copy h1{margin-bottom:24px}
.hero-carousel .hero-links{margin-bottom:0}
.hero-carousel .hero-controls{margin-top:28px;margin-bottom:0;padding-bottom:50px}


/* Shared typography: one-point body increase and matching controls/footer. */
:root{--body-copy-size:calc(1rem + 1pt);--menu-copy-size:calc(1.171875rem - 4pt)}
body{font-size:var(--body-copy-size)}
.main-nav > li > a,.nav-parent > a,.submenu a{font-size:var(--menu-copy-size)}
.topbar-tagline{font-size:calc(1.171875rem - 5pt)}
main p:not(.eyebrow),main li,.lead,.page-title p,.section-heading > p{font-size:var(--body-copy-size)}
.footer-main,.footer-brand p,.footer-main > div > a:not(.brand),.footer-main > div > p,.bottom-footer{font-size:var(--body-copy-size)}
.form-label,.form-control,.form-select,.form-note,.form-status,.invalid-feedback,form .btn{font-size:var(--body-copy-size)}

/* Contemporary estimate panel with restrained glass, generous fields and clear hierarchy. */
.quote-box{background:rgba(12,25,36,.92);border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:30px;box-shadow:0 24px 60px rgba(0,0,0,.25);backdrop-filter:blur(14px)}
.quote-heading{display:flex;align-items:center;gap:14px;margin-bottom:26px;padding-bottom:24px;border-bottom:1px solid rgba(255,255,255,.18)}
.quote-icon{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;background:rgba(239,189,74,.14);color:var(--accent);flex-shrink:0;font-size:1.2rem}
.quote-heading h2{font-size:1.65rem;font-weight:500;letter-spacing:-.025em;line-height:1.2;margin:0}
.quote-box .form-label{font-weight:400;margin-bottom:8px;color:#ecf0f3}
.quote-box .optional{color:#bac6ce;font-size:inherit}
.quote-box .form-control,.quote-box .form-select{min-height:50px;padding:11px 14px;border:1px solid #d2dce3;border-radius:8px;background-color:#f8fafc;color:var(--ink);line-height:1.4}
.quote-box textarea.form-control{min-height:86px;resize:vertical}
.quote-box .form-control::placeholder{color:#71808c;opacity:1}
.quote-box .form-control:focus,.quote-box .form-select:focus{background-color:white;border-color:var(--accent);box-shadow:0 0 0 3px rgba(239,189,74,.22)}
.quote-box .form-select{padding-right:36px}
.quote-box .btn-primary{background:var(--accent);border-color:var(--accent);color:var(--navy);border-radius:8px;min-height:52px;margin-top:4px;font-weight:600}
.quote-box .btn-primary:hover,.quote-box .btn-primary:focus-visible{background:white;border-color:white;color:var(--navy)}
.quote-box .form-status:empty{margin:0}
@media(min-width:1200px){.hero-carousel .hero-content{grid-template-columns:minmax(0,1fr) 440px;gap:40px}}
@media(max-width:575px){.quote-box{padding:24px 20px}.quote-heading{gap:12px}.quote-heading h2{font-size:1.5rem}}

/* Uppercase dropdowns and a reusable commercial service theme. */
.submenu a{text-transform:uppercase;letter-spacing:.045em}
.commercial-theme{--commercial-accent:#efbd4a}
.commercial-hero{background:var(--navy);color:white;padding:46px 0 64px}
.commercial-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}
.commercial-breadcrumb{display:flex;flex-wrap:wrap;gap:10px;font-size:.875rem;color:#cad6df;margin-bottom:52px}
.commercial-breadcrumb a{color:#cad6df;text-decoration:none}.commercial-breadcrumb a:hover{text-decoration:underline}
.commercial-theme .eyebrow{display:flex;align-items:center;gap:13px;font-size:.8125rem;letter-spacing:.15em}
.commercial-theme .eyebrow:before{content:'';width:28px;height:2px;background:var(--commercial-accent);flex-shrink:0}
.commercial-hero .eyebrow,.commercial-contact .eyebrow{color:var(--commercial-accent)}
.commercial-hero h1{font-size:clamp(3rem,5.5vw,5rem);line-height:1.04;margin-bottom:26px;letter-spacing:-.045em}
.commercial-hero-copy > p:not(.eyebrow){max-width:380px;color:#dce5ec;line-height:1.7;margin-bottom:30px}
.commercial-hero-image{margin:0;position:relative;align-self:stretch;min-height:440px}
.commercial-hero-image img{width:100%;height:100%;min-height:440px;object-fit:cover;display:block}
.commercial-hero-image figcaption{position:absolute;bottom:0;left:0;right:0;background:rgba(20,47,71,.93);padding:18px 22px;font-size:.75rem;letter-spacing:.1em;display:flex;align-items:center;gap:12px}
.commercial-editorial-grid{display:grid;grid-template-columns:1fr 1.55fr;gap:90px}
.commercial-theme h2{font-size:clamp(2rem,3vw,2.8rem);line-height:1.15;font-weight:500}
.commercial-intro .lead{margin-bottom:30px;line-height:1.9}
.commercial-priorities{display:flex;flex-wrap:wrap;gap:20px 26px;border-top:1px solid var(--line);padding-top:24px}
.commercial-priorities span{display:flex;gap:10px;align-items:center}.commercial-priorities i{color:#92701d}
.commercial-sectors{background:#f2f5f7}
.commercial-sectors-heading p:not(.eyebrow){color:var(--muted);max-width:300px}
.commercial-text-link{display:inline-block;font-weight:500;margin-top:16px;text-decoration:underline}
.commercial-sector-list{border-top:1px solid #b9c7d1}
.commercial-sector-list > div{display:flex;align-items:center;gap:25px;padding:24px 0;border-bottom:1px solid #b9c7d1}
.sector-number{font-size:.875rem;color:var(--muted);font-variant-numeric:tabular-nums;width:25px;flex-shrink:0}
.commercial-sector-list h3{font-size:1.4rem;letter-spacing:-.02em;font-weight:500;margin:0;line-height:1.4}
.commercial-sector-list i{margin-left:auto;color:#6b8598;width:24px;text-align:center}
.commercial-contact{background:var(--navy);color:white;padding:65px 0;border-top:4px solid var(--commercial-accent)}
.commercial-contact-grid{display:flex;align-items:center;justify-content:space-between;gap:35px}
.commercial-contact h2{margin-bottom:14px}.commercial-contact p:not(.eyebrow){color:#dce5ec;margin:0}
.commercial-contact-actions{display:flex;flex-direction:column;gap:18px;align-items:center}
.commercial-contact-phone{color:white;display:flex;align-items:center;gap:10px;text-decoration:none}.commercial-contact-phone:hover{text-decoration:underline;color:white}
@media(max-width:991px){.commercial-hero-grid{gap:30px}.commercial-hero-image,.commercial-hero-image img{min-height:400px}.commercial-editorial-grid{gap:40px;grid-template-columns:1fr 1.4fr}.commercial-breadcrumb{margin-bottom:35px}}
@media(max-width:767px){.commercial-hero{padding:28px 0 35px}.commercial-hero-grid,.commercial-editorial-grid{grid-template-columns:1fr;gap:35px}.commercial-hero h1{font-size:clamp(2.8rem,10vw,4rem)}.commercial-hero-image,.commercial-hero-image img{min-height:0}.commercial-hero-image img{aspect-ratio:4/3;height:auto}.commercial-hero-image figcaption{font-size:.6875rem;padding:15px}.commercial-breadcrumb{margin-bottom:30px}.commercial-contact-grid{flex-direction:column;align-items:flex-start}.commercial-contact-actions{align-items:flex-start}.commercial-sector-list > div{padding:20px 0}.commercial-priorities{flex-direction:column;gap:16px}}

/* Photographic property gallery. */
.commercial-sector-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px;border-top:0}
.commercial-sector{min-width:0;margin:0}
.commercial-sector > img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.commercial-sector-label{display:flex;align-items:center;gap:12px;padding:17px 0;border-bottom:1px solid #b9c7d1}
.commercial-sector-list h3{font-size:1.2rem}.commercial-sector-label .sector-number{width:20px}.commercial-sector-label i{margin-left:auto}
@media(max-width:991px){.commercial-sectors .commercial-editorial-grid{grid-template-columns:1fr;gap:35px}.commercial-sectors-heading p:not(.eyebrow){max-width:550px}}
@media(max-width:575px){.commercial-sector-list{grid-template-columns:1fr;gap:26px}.commercial-sector-list h3{font-size:1.35rem}}

/* Full-width property gallery removes the unused side column. */
.commercial-sectors .commercial-editorial-grid{display:block}
.commercial-sectors-heading{display:grid;grid-template-columns:1fr 1fr;column-gap:60px;align-items:start;margin-bottom:36px}
.commercial-sectors-heading .eyebrow{grid-column:1/-1;margin-bottom:15px}
.commercial-sectors-heading h2{grid-column:1;grid-row:2/4;margin:0}
.commercial-sectors-heading p:not(.eyebrow){grid-column:2;max-width:480px;margin:0 0 12px}
.commercial-sectors-heading .commercial-text-link{grid-column:2;margin-top:0;justify-self:start}
.commercial-sectors .commercial-sector-list{width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 26px}
@media(max-width:991px){.commercial-sectors .commercial-sector-list{grid-template-columns:repeat(2,minmax(0,1fr))}.commercial-sectors-heading{column-gap:30px}}
@media(max-width:767px){.commercial-sectors-heading{display:block}.commercial-sectors-heading h2{margin-bottom:20px}.commercial-sectors-heading .commercial-text-link{margin-top:8px}}
@media(max-width:575px){.commercial-sectors .commercial-sector-list{grid-template-columns:1fr}}

/* Contact cards and the shared dark estimate form surface. */
.contact-card {
    padding: 24px;
    margin-top: 20px;
    border: 1px solid var(--line);
    background: #f2f5f7;
    align-items: flex-start;
}
.contact-card h3 { font-size: 1.25rem; margin-bottom: 10px; }
.contact-card > div { min-width: 0; }
.contact-card a { overflow-wrap: anywhere; }
.contact-quote-box { color: #fff; }
.contact-quote-box .form-status { color: #fff; }
@media (max-width: 575px) {
    .contact-card { padding: 20px; }
}

/* Contact introduction, two contact cards and a container-wide four-column form. */
.contact-introduction { margin-bottom: 32px; }
.contact-card-row { margin-bottom: 40px; }
.contact-card-row .contact-card { margin-top: 0; }
.contact-card-row .contact-card h2 { font-size: 1.25rem; margin-bottom: 10px; }
.contact-wide-form .contact-submit-column { display: flex; flex-direction: column; justify-content: flex-end; }
.contact-wide-form .form-status:empty { display: none; }
.contact-wide-form textarea.form-control { min-height: 86px; }
@media (max-width: 575px) {
    .contact-wide-form .contact-submit-column { margin-top: 24px; }
}

/* Legal text follows the same container width as the rest of the site. */
.policy-wide { max-width: 1280px; }
/* Alternating process rows pair each stage with a simple tool illustration. */
.process-intro { padding-bottom: 40px; }
.process-intro h1 { max-width: 850px; }
.process-stage { padding: 64px 0; }
.process-stage:nth-of-type(odd) { background: var(--light); }
.process-stage .eyebrow { color: #9e252d; }
.process-stage p:last-child { margin-bottom: 0; }
.process-stage-visual {
    min-height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #142f47;
    border: 1px solid #27485f;
}
.process-stage-visual i { font-size: clamp(5rem, 10vw, 9rem); color: #efbd4a; }
@media (max-width: 991px) {
    .process-stage { padding: 40px 0; }
    .process-stage-visual { min-height: 220px; }
}

/* Homepage masthead has no separating rule. */
.homepage .site-header { border-bottom: 0; box-shadow: none; }
/* The footer now contains the brand panel and legal row only. */
.footer-main.footer-brand-only { grid-template-columns: 1fr; gap: 0; }
.footer-brand-only .footer-brand { max-width: 460px; }

/* Blue sampled from the logo background behind SINCE 1996. */
.topbar{background:#5e69a2}

/* Shared hero gutters, including the class for future page heroes. */
:root { --hero-gutter: 24px; }
main :is(.hero, .landing-hero, .commercial-hero, .page-hero, .page-title) {
    margin-left: var(--hero-gutter);
    margin-right: var(--hero-gutter);
    border-radius: 4px;
}
@media (max-width: 767px) {
    :root { --hero-gutter: 12px; }
}

/* Headers above modern hero pages have no bottom divider. */
.has-modern-hero .site-header{border-bottom:0;box-shadow:none}

/* Uncaptioned heroes and shared footer contact information. */
main :is(.hero,.landing-hero,.commercial-hero,.page-hero) figure{border-bottom:0}
main :is(.hero,.landing-hero,.commercial-hero,.page-hero) p{border-bottom:0}
.footer-main.footer-brand-only{grid-template-columns:1fr 1fr;align-items:center;gap:60px}
.footer-contact{justify-self:end}
.footer-contact a i{margin-right:12px;color:#5e69a2}
.footer-main .footer-contact a{font-size:1.1rem;margin-bottom:16px}
@media(max-width:767px){.footer-main.footer-brand-only{grid-template-columns:1fr;gap:30px}.footer-contact{justify-self:start}}

/* Match all hero vertical spacing to the homepage hero bottom padding. */
:root{--hero-vertical-space:56px}
main :is(.landing-hero,.commercial-hero,.page-hero,.page-title){padding-top:var(--hero-vertical-space);padding-bottom:var(--hero-vertical-space)}
main .hero-carousel .hero-content{padding-top:var(--hero-vertical-space);padding-bottom:var(--hero-vertical-space)}
@media(max-width:1199px){:root{--hero-vertical-space:50px}}
@media(max-width:991px){:root{--hero-vertical-space:55px}}
@media(max-width:767px){:root{--hero-vertical-space:45px}}

/* Three-column footer with an independent grey logo panel. */
.main-footer{background:#fff;color:var(--ink)}
.main-footer .footer-main.footer-brand-only{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:48px;align-items:center;padding-top:45px;padding-bottom:45px}
.main-footer .footer-brand{width:100%;max-width:none;margin:0;background:#e7e7e7;padding:36px;display:flex;justify-content:center}
.main-footer .footer-logo{display:flex;align-items:center;justify-content:center;background:none;border-radius:0;padding:0;width:auto;height:auto}
.main-footer .footer-logo img{width:115px;height:115px;object-fit:contain}
.main-footer .footer-contact{padding:0;justify-self:start;min-width:0}
.main-footer .footer-contact a{font-size:1.05rem;margin-bottom:12px;color:var(--ink);text-decoration:none}
.main-footer .footer-contact a i{color:#5e69a2;margin-right:12px}
.footer-policy-links{display:flex;flex-direction:column;gap:12px;justify-self:end}
.footer-policy-links a{color:var(--ink);text-decoration:none}
.main-footer a:hover{text-decoration:underline}
.bottom-footer .container{justify-content:center}
@media(max-width:991px){.main-footer .footer-main.footer-brand-only{gap:25px}.main-footer .footer-brand{padding:25px}.main-footer .footer-contact a{font-size:.9rem}}
@media(max-width:767px){.main-footer .footer-main.footer-brand-only{grid-template-columns:1fr;gap:28px;padding-top:30px;padding-bottom:30px}.main-footer .footer-brand{grid-column:auto;max-width:260px}.footer-policy-links{justify-self:start}.main-footer .footer-contact a{font-size:1rem}}

/* Estimate: phone contact beside a spacious three-field form row. */
.estimate-call{padding-top:38px}.estimate-call>p{font-size:1.1rem;margin-bottom:16px}
.estimate-call .contact-phone{font-size:clamp(1.4rem,2vw,1.9rem);white-space:nowrap;text-decoration:none}
.estimate-page .form-panel{background:#f3f5f8;border:0;border-top:3px solid #5e69a2;padding:38px}
.estimate-page .form-label{font-weight:500}.estimate-submit{min-width:150px;margin-top:6px}
@media(max-width:991px){.estimate-call{padding-top:0}.estimate-page .form-panel{padding:28px}}
@media(max-width:575px){.estimate-page .form-panel{padding:24px}.estimate-submit{width:100%}}

/* Policy links remain in the bottom footer. */
.bottom-footer .container{justify-content:space-between;align-items:center}
.bottom-footer-links{display:flex;gap:20px}
.bottom-footer-links a{margin:0}
@media(max-width:767px){.footer-spacer{display:none}.bottom-footer-links{justify-content:center;margin-top:12px}}

.footer-navigation{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px}
.footer-navigation a{color:var(--ink);text-decoration:none;font-size:.95rem}
.footer-navigation a:hover{text-decoration:underline}
@media(max-width:767px){.footer-navigation{justify-self:start;gap:12px 32px}}

/* Refined three-column footer with a compact inquiry action. */
.main-footer{background:#f8f9fb;border-top:1px solid #e2e7ed}
.main-footer .footer-main.footer-brand-only{grid-template-columns:.85fr 1.4fr 1fr;gap:64px;padding-top:54px;padding-bottom:54px;align-items:center}
.main-footer .footer-brand{background:#e9ebee;min-height:215px;border-radius:8px;padding:38px;border:1px solid #e0e3e7}
.main-footer .footer-logo img{width:130px;height:130px}
.main-footer .footer-contact a{font-size:1rem;line-height:1.6;margin-bottom:12px}
.main-footer .footer-contact a i{width:20px;text-align:center;color:#5e69a2}
.main-footer .footer-contact>a:first-child{font-size:1.6rem;font-weight:500;letter-spacing:-.02em}
.main-footer .footer-contact>a:first-child i{font-size:1.1rem;vertical-align:middle}
.footer-mini-cta{margin-top:23px;padding-top:21px;border-top:1px solid #dce2e9}
.footer-mini-cta p{font-size:1rem;margin:0 0 13px;color:var(--muted)}
.main-footer .footer-contact .footer-mini-cta .btn{display:inline-flex;align-items:center;gap:18px;background:var(--navy);color:white;font-size:.88rem;padding:12px 18px;margin:0;border-radius:4px;text-decoration:none}
.main-footer .footer-contact .footer-mini-cta .btn i{color:inherit;margin:0;width:auto}
.main-footer .footer-contact .footer-mini-cta .btn:hover{background:var(--accent);border-color:var(--accent);color:var(--navy)}
.footer-navigation{gap:18px 30px;padding:6px 0 6px 32px;border-left:1px solid #dce2e9}
.footer-navigation a{position:relative;font-size:.95rem;padding:3px 0;width:fit-content}
.footer-navigation a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:2px;background:#5e69a2;transition:width .2s}
.footer-navigation a:hover{text-decoration:none}.footer-navigation a:hover::after{width:100%}
.bottom-footer{background:#fff;border-top:1px solid #e2e7ed;color:var(--muted)}
@media(max-width:991px){.main-footer .footer-main.footer-brand-only{gap:28px;grid-template-columns:.8fr 1.3fr 1fr}.main-footer .footer-brand{padding:25px;min-height:185px}.main-footer .footer-logo img{width:110px;height:110px}.footer-navigation{padding-left:20px;gap:16px 20px}}
@media(max-width:767px){.main-footer .footer-main.footer-brand-only{grid-template-columns:1fr;gap:32px;padding-top:32px;padding-bottom:36px}.main-footer .footer-brand{max-width:240px;min-height:170px}.footer-navigation{border-left:0;border-top:1px solid #dce2e9;padding:24px 0 0;width:100%;gap:16px 32px}.footer-mini-cta{max-width:380px}.bottom-footer .container{display:flex;flex-direction:column;gap:12px}.bottom-footer-links{margin-top:0}}

/* Unified footer layout isolated from earlier footer styling. */
.footer-primary{background:#f5f6f8;border-top:1px solid #e2e5e9}
.footer-layout{display:grid;grid-template-columns:240px minmax(0,1fr) 190px;column-gap:80px;align-items:center;padding-top:48px;padding-bottom:48px}
.footer-logo-panel{display:flex;align-items:center;justify-content:center;background:#e7e9ed;height:210px;border-radius:3px}
.footer-logo-link{display:block;line-height:0}.footer-logo-link img{display:block;width:120px;height:120px;object-fit:contain}
.footer-inquiry>a{display:flex;align-items:center;gap:12px;width:fit-content;color:var(--navy);font-size:1rem;text-decoration:none;margin-bottom:12px;overflow-wrap:anywhere}
.footer-inquiry>a:first-child{font-size:1.45rem;font-weight:500;letter-spacing:-.02em}
.footer-inquiry>a i{color:#5e69a2;width:18px;flex-shrink:0;font-size:1rem;text-align:center}
.footer-action{margin-top:25px}.footer-action p{font-size:.9rem;color:var(--muted);margin:0 0 12px}
.footer-action .btn{display:inline-flex;align-items:center;gap:16px;font-size:.85rem;padding:11px 17px;border-radius:3px;font-weight:500}
.footer-action .btn i{font-size:.75rem}
.footer-menu{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.footer-menu a{color:var(--navy);font-size:.95rem;text-decoration:none;line-height:1.5}
.footer-menu a:hover,.footer-inquiry>a:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:991px){.footer-layout{grid-template-columns:180px minmax(0,1fr) 130px;column-gap:35px}.footer-logo-panel{height:190px}.footer-logo-link img{width:105px;height:105px}}
@media(max-width:767px){.footer-layout{grid-template-columns:1fr 1fr;gap:32px;padding-top:32px;padding-bottom:32px}.footer-logo-panel{height:160px}.footer-inquiry{grid-column:1/-1;grid-row:2}.footer-menu{padding-left:20px}.footer-action{margin-top:20px}.footer-logo-link img{width:95px;height:95px}}

/* Elegant estimate layout with clearly spaced, accessible fields. */
.estimate-page{background:#f6f7f9;padding:72px 0}
.estimate-page .estimate-call{padding-top:28px}
.estimate-call h1{font-size:clamp(2.8rem,4vw,4rem);font-weight:500;line-height:1.08;margin-bottom:24px}
.estimate-call .eyebrow{color:#5e69a2;font-size:.72rem;margin-bottom:18px}
.estimate-call .estimate-intro{max-width:320px;color:var(--muted);font-size:1rem;line-height:1.8;margin-bottom:38px}
.estimate-call .contact-phone{display:inline-flex;align-items:center;gap:12px;font-size:1.55rem}
.estimate-call .contact-phone i{font-size:1rem;color:#5e69a2}
.estimate-page .form-panel{background:#fff;border:1px solid #e1e5eb;border-radius:8px;padding:36px;box-shadow:0 12px 36px #142f4706}
.estimate-form-heading{padding-bottom:22px;margin-bottom:24px;border-bottom:1px solid #e7eaf0}
.estimate-form-heading h2{font-size:1.55rem;font-weight:500;letter-spacing:-.025em;margin-bottom:8px}
.estimate-form-heading p{font-size:.8rem;color:var(--muted);margin:0}
.estimate-page .form-label{font-size:.84rem;margin-bottom:9px;color:#293d4e}
.estimate-page .form-control,.estimate-page .form-select{background:#fafbfc;border:1px solid #d9dfe7;border-radius:4px;min-height:49px;padding:11px 13px;font-size:.92rem}
.estimate-page .form-control::placeholder{color:#89939e;font-size:.85rem}
.estimate-page .form-control:focus,.estimate-page .form-select:focus{background:white;border-color:#5e69a2;box-shadow:0 0 0 3px #5e69a215}
.estimate-page .estimate-form>.row{--bs-gutter-y:1.4rem}
.estimate-page textarea.form-control{resize:vertical;min-height:135px}
.estimate-page .estimate-submit{padding:13px 34px;border-radius:4px;margin-top:4px}
.thank-you-page{background:#f6f7f9}.thank-you-card{max-width:760px;margin:auto;background:white;border:1px solid #e1e5eb;border-radius:8px;padding:60px;text-align:center}
.thank-you-icon{display:flex;align-items:center;justify-content:center;width:70px;height:70px;border-radius:50%;background:#eef0f8;color:#5e69a2;font-size:1.7rem;margin:0 auto 24px}
.thank-you-card h1{font-weight:500;font-size:clamp(2.5rem,4vw,3.5rem)}
.thank-you-card>p:not(.eyebrow){color:var(--muted)}
.thank-you-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:30px}.thank-you-email{display:inline-block;margin-top:24px}
@media(max-width:991px){.estimate-page .estimate-call{padding-top:0}.estimate-call .estimate-intro{max-width:560px;margin-bottom:24px}}
@media(max-width:767px){.estimate-page{padding:45px 0}.estimate-page .form-panel{padding:24px}.thank-you-card{padding:35px 24px}.estimate-page .estimate-submit{width:100%}}

/* Footer inspired by the supplied Kwality layout. */
.bp-footer{background:#f1f5f8;border-top:1px solid #dce4eb}
.bp-footer-grid{display:grid;grid-template-columns:1.25fr 1.15fr .8fr .7fr;gap:40px;padding-top:50px;padding-bottom:46px;align-items:start}
.bp-footer-brand{padding-right:30px;border-right:1px solid #d9e1e8;min-height:215px}
.bp-footer-logo{display:block;margin-bottom:24px}.bp-footer-logo img{display:block;width:100%;max-width:260px;height:auto}
.bp-footer-mini{border-top:1px solid #d9e1e8;padding-top:20px;max-width:270px}
.bp-footer-mini p{font-size:.87rem;color:var(--navy);font-weight:500;margin:0 0 12px}
.bp-footer-mini a{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:.85rem;color:var(--navy)}
.bp-footer-mini a i{color:#5e69a2}.bp-footer-arrow{margin-left:auto}
.bp-footer-group h2{font-size:.9rem;letter-spacing:0;font-weight:600;color:var(--navy);margin:0 0 21px;line-height:1.4}
.bp-footer-group a{display:flex;align-items:baseline;gap:11px;color:#516373;font-size:.88rem;text-decoration:none;margin-bottom:13px;line-height:1.5}
.bp-footer-group a span{overflow-wrap:anywhere;min-width:0}
.bp-footer-group a i{font-size:.82rem;color:#7d95a8;flex:0 0 15px;text-align:center}
.bp-footer a:hover{color:var(--navy);text-decoration:underline;text-underline-offset:4px}
.bottom-footer{background:#e7eef4;border-top:1px solid #dce4eb;padding:22px 0;font-size:.78rem}
.bottom-footer-links a{color:#516373}
@media(max-width:1199px){.bp-footer-grid{gap:28px;grid-template-columns:1.15fr 1.3fr .8fr .7fr}.bp-footer-brand{padding-right:22px}.bp-footer-group a{font-size:.82rem}}
@media(max-width:991px){.bp-footer-grid{grid-template-columns:1fr 1fr;gap:36px}.bp-footer-brand{border-right:0;min-height:0;padding-right:20px}.bp-footer-group a{font-size:.9rem}}
@media(max-width:575px){.bp-footer-grid{grid-template-columns:1fr 1fr;gap:30px 22px;padding-top:34px;padding-bottom:30px}.bp-footer-brand{grid-column:1/-1;padding:0}.bp-footer-logo img{max-width:230px}.bp-footer-mini{max-width:none}.bp-footer-group:nth-child(2){grid-column:1/-1}.bp-footer-group h2{margin-bottom:16px}}

/* Footer logo stands alone; bottom legal bar stays white. */
.bp-footer-logo{margin-bottom:0}
.bottom-footer{background:#fff}

/* Equal footer columns in Logo, Services, Explore, Contact order. */
.bp-footer-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:40px}
.bp-footer-brand{border-right:1px solid #d9e1e8;padding-right:30px;min-height:215px}
@media(max-width:991px){.bp-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}.bp-footer-brand{min-height:0}}
@media(max-width:575px){.bp-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 22px}.bp-footer-brand{grid-column:auto;padding-right:20px}.bp-footer-group:nth-child(2){grid-column:auto}.bp-footer-logo img{max-width:100%}}

/* Overlapping paint tiles peek above the pale yellow footer panel. */
.footer-colour-fan{height:82px;display:flex;align-items:flex-end;justify-content:flex-end;padding:0 max(40px,calc((100% - 1224px)/2));overflow:hidden;gap:0;pointer-events:none;background:#fff}
.footer-fan-tile{display:block;width:90px;height:90px;flex-shrink:0;transform:rotate(45deg);margin-left:-14px;margin-bottom:-42px;border:1px solid #ffffff99}
.footer-fan-1{background:#e5cb78}.footer-fan-2{background:#b7c5aa;height:82px;width:82px}.footer-fan-3{background:#b2bfd4}.footer-fan-4{background:#e6b998;height:100px;width:100px}.footer-fan-5{background:#ded092}.footer-fan-6{background:#8fae9c;height:78px;width:78px}.footer-fan-7{background:#ccaaa5}.footer-fan-8{background:#eadba7}
.bp-footer{position:relative;background:#fff9df;border-top:1px solid #e9e1bf}
.thank-you-next{background:#f4f6fa;border-radius:5px;padding:20px;margin-top:26px}
.thank-you-next h2{font-size:1rem;letter-spacing:0;margin-bottom:8px;font-weight:500}.thank-you-next p{font-size:.9rem;margin:0;color:var(--muted)}
@media(max-width:767px){.footer-colour-fan{height:55px;padding:0 28px}.footer-fan-tile{width:58px;height:58px;margin-left:-10px;margin-bottom:-28px}.footer-fan-2,.footer-fan-6{width:50px;height:50px}.footer-fan-4{width:65px;height:65px}}

/* Shared burgundy hero palette for current and future pages. */
:root{--hero-burgundy:#54162b}
main :is(.hero,.landing-hero,.commercial-hero,.page-hero){background-color:var(--hero-burgundy)}
main :is(.hero,.landing-hero,.commercial-hero,.page-hero) .hero-shade{background:linear-gradient(90deg,rgba(60,11,27,.92),rgba(84,22,43,.68) 60%,rgba(84,22,43,.38))}

/* Responsive header and footer safeguards. */
.nav-wrap{position:relative}.menu-toggle{flex-shrink:0}
.bp-footer-grid>*{min-width:0}.bp-footer-group a{overflow-wrap:anywhere}
@media(max-width:1199px){#main-navigation{max-height:calc(100dvh - 110px);overscroll-behavior:contain}.site-header .nav-cta{position:static;transform:none;width:fit-content;min-width:0}.header-brand{flex-shrink:1}.menu-toggle{min-width:44px;min-height:44px}}
@media(max-width:767px){.bp-footer-brand{padding-right:16px}.bp-footer-group a{font-size:.85rem}.bottom-footer .container{flex-wrap:wrap}.bottom-footer-links{flex-wrap:wrap}.landing-hero h1{overflow-wrap:break-word}}

/* Mobile footer: logo row, paired navigation groups, full-width contact row. */
@media(max-width:991px){
 .bp-footer .bp-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 36px;padding-top:35px;padding-bottom:32px}
 .bp-footer .bp-footer-brand{grid-column:1/-1;min-height:0;padding:0 0 26px;border-right:0;border-bottom:1px solid #ded6b9}
 .bp-footer .bp-footer-logo img{max-width:260px;width:100%;height:auto}
 .bp-footer .bp-footer-group:nth-child(2){grid-column:auto}
 .bp-footer .bp-footer-contact{grid-column:1/-1;border-top:1px solid #ded6b9;padding-top:24px}
 .bp-footer-contact a{display:inline-flex;margin-right:28px;margin-bottom:0}
}
@media(max-width:575px){
 .bp-footer .bp-footer-grid{gap:26px 20px;padding-top:30px;padding-bottom:30px}
 .bp-footer .bp-footer-brand{padding-bottom:24px}.bp-footer .bp-footer-logo img{max-width:230px}
 .bp-footer-group h2{font-size:.95rem;margin-bottom:16px}.bp-footer .bp-footer-group a{font-size:.9rem;gap:9px}
 .bp-footer .bp-footer-contact a{display:flex;margin-right:0;margin-bottom:12px}.bp-footer .bp-footer-contact a:last-child{margin-bottom:0}
 .bottom-footer .container{display:flex;flex-direction:column;text-align:center;gap:12px;padding-bottom:38px}
 .bottom-footer-links{justify-content:center;flex-wrap:wrap;gap:18px;margin-top:0}
}

/* Mobile navigation uses generous rows and a clear action. */
@media(max-width:1199px){
 #main-navigation{left:12px;width:calc(100% - 24px);padding:18px 22px 24px;background:#fffdf5;border:1px solid #e7e0c9;border-top:3px solid #54162b;border-radius:0 0 8px 8px;box-shadow:0 18px 36px #142f4726;max-height:calc(100dvh - 115px)}
 .menu-close{width:42px;height:42px;padding:0;border-radius:50%;background:#f0ead9;color:var(--navy);margin-bottom:8px}
 .main-nav>li{border-bottom:1px solid #e6e1d4}
 .main-nav>li>a,.nav-parent>a{padding:15px 0;font-size:1rem;font-weight:500;letter-spacing:.025em}
 .main-nav a.active{color:#54162b}
 .submenu-toggle{width:44px;height:44px;border-radius:4px;background:#f1ebdd;flex-shrink:0}
 .submenu-toggle[aria-expanded="true"] i{transform:rotate(180deg)}
 #main-navigation .submenu{margin:0 0 14px;padding:8px 12px;background:white;border-radius:5px;border-left:2px solid #5e69a2}
 #main-navigation .submenu a{padding:12px 10px;font-size:.93rem}
 .site-header #main-navigation .nav-cta{display:flex;justify-content:center;width:100%;margin-top:22px;padding:14px 18px;border-radius:4px}
}
.hero-arrow{z-index:5;pointer-events:auto}

/* Shared footer: burgundy, warm ivory, and the site's ochre accent. */
.site-footer{--footer-cream:#fff9ed;--footer-muted:#e3cdd3}
.site-footer .footer-surface{position:relative;background:var(--hero-burgundy);color:var(--footer-cream);border:0;overflow:hidden}
.site-footer .footer-grid{display:grid;grid-template-columns:1.2fr .8fr .7fr 1.3fr;gap:54px;align-items:start;padding-top:74px;padding-bottom:74px;position:relative}
.site-footer .footer-grid>*{min-width:0}
.site-footer .footer-identity{padding:0 24px 0 0;align-self:stretch;border-right:1px solid #ffffff26;display:flex;align-items:flex-start}
.site-footer .footer-wordmark{display:flex;align-items:center;justify-content:center;width:100%;max-width:280px;background:#fff;border-radius:4px;padding:22px 18px;min-height:100px}
.site-footer .footer-wordmark img{display:block;width:100%;height:auto}
.site-footer .footer-column h2{color:var(--footer-cream);font-size:.8rem;line-height:1.4;font-weight:500;letter-spacing:.13em;text-transform:uppercase;margin:0 0 22px}
.site-footer .footer-column a{display:flex;align-items:center;gap:12px;width:fit-content;max-width:100%;min-height:36px;color:var(--footer-muted);font-size:.95rem;line-height:1.5;text-decoration:none;margin:0 0 5px;padding:4px 0;overflow-wrap:anywhere;transition:color .2s}
.site-footer .footer-column a:hover{color:#fff;text-decoration:underline;text-underline-offset:5px}
.site-footer .footer-reach h2{font-size:clamp(1.6rem,2.4vw,2rem);letter-spacing:-.035em;text-transform:none;font-weight:500;line-height:1.15;margin-bottom:22px}
.site-footer .footer-reach>a:first-of-type{color:#fff;font-size:1.2rem;font-weight:500;white-space:nowrap}
.site-footer .footer-reach>a>i{color:#efbd4a;font-size:.85rem;flex:0 0 18px;text-align:center}
.site-footer .footer-reach a.footer-estimate{display:inline-flex;justify-content:space-between;gap:24px;padding:13px 18px;margin:23px 0 0;background:#efbd4a;color:#3e1020;font-size:.88rem;font-weight:600;border-radius:3px;min-height:48px;transition:background .2s}
.site-footer .footer-reach a.footer-estimate i{color:inherit}
.site-footer .footer-reach a.footer-estimate:hover{background:#ffe0a0;text-decoration:none}
.site-footer .footer-legal{background:#fff;border:0;padding:23px 0;color:#6b6265;font-size:.78rem}
.site-footer .footer-legal>.container{display:flex;align-items:center;justify-content:space-between;gap:16px 30px}
.site-footer .footer-legal-links{display:flex;flex-wrap:wrap;gap:24px}
.site-footer .footer-legal-links a{color:#6b6265;text-decoration:none;padding:6px 0}
.site-footer .footer-legal-links a:hover{color:var(--hero-burgundy);text-decoration:underline}
@media(max-width:1199px){.site-footer .footer-grid{gap:30px;grid-template-columns:1.1fr .8fr .7fr 1.4fr}.site-footer .footer-identity{padding-right:24px}.site-footer .footer-column a{font-size:.9rem}}
@media(max-width:991px){
 .site-footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 40px;padding-top:44px;padding-bottom:44px}
 .site-footer .footer-identity{grid-column:1/-1;padding:0 0 32px;border-right:0;border-bottom:1px solid #ffffff26}
 .site-footer .footer-wordmark{max-width:280px}
 .site-footer .footer-reach{grid-column:1/-1;border-top:1px solid #ffffff26;padding-top:30px}
 .site-footer .footer-reach>a{display:inline-flex;margin-right:26px}
 .site-footer .footer-reach a.footer-estimate{display:flex;width:fit-content;margin-top:20px}
}
@media(max-width:575px){
 .site-footer .footer-grid{gap:28px 24px;padding:36px 24px}
 .site-footer .footer-wordmark{max-width:260px;min-height:94px}
 .site-footer .footer-column h2{margin-bottom:14px}
 .site-footer .footer-column a{min-height:42px;font-size:.95rem;margin-bottom:0}
 .site-footer .footer-reach h2{font-size:1.85rem;margin-bottom:18px}
 .site-footer .footer-reach>a{display:flex;margin:0 0 8px}
 .site-footer .footer-reach a.footer-estimate{width:100%;max-width:340px;padding:14px 18px}
 .site-footer .footer-legal>.container{flex-direction:column;text-align:center;gap:10px;padding:0 24px}
 .site-footer .footer-legal-links{justify-content:center;gap:24px}
 .site-footer .footer-legal{padding:20px 0 30px}
}
