/* Shared contractor design: homepage and interior page shell. */
:root{--ink:#152a3e;--muted:#42566a;--paper:#fff;--light:#f1f4f6;--line:#d3dce3;--red:#b8232f;--red-hover:#921b25;--body:'Barlow',Arial,sans-serif;--display:'Barlow Condensed','Arial Narrow',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:170px}body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--body);-webkit-font-smoothing:antialiased}p,h1,h2,h3{margin:0}a{color:inherit}a[href^='tel:']{white-space:nowrap}button,input,textarea{font:inherit}[hidden]{display:none!important}button,a,summary{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid #bb791b;outline-offset:4px}::selection{background:var(--ink);color:white}.container{width:min(1180px,calc(100% - 64px));margin-inline:auto}.eyebrow{font-size:.8125rem;line-height:1.5;font-weight:700;letter-spacing:.07em}.skip-link{position:fixed;top:-100px;left:16px;z-index:100;background:white;padding:12px 20px}.skip-link:focus{top:12px}
.button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:12px 24px;border:0;border-radius:5px;font-weight:700;font-size:1rem;text-decoration:none;transition:background .15s}.button span{font-size:1.25rem;line-height:1}.button-red{color:white;background:var(--red);box-shadow:0 3px 0 #851d25}.button-red:hover{background:var(--red-hover)}.text-link{display:inline-flex;align-items:center;gap:16px;font-size:1rem;font-weight:600;text-decoration:underline;text-underline-offset:5px;padding:8px 0}.text-link:hover{color:var(--red)}
.utility-strip{background:#0b1c2b;color:#d5e1ea;font-size:.75rem;font-weight:600;letter-spacing:.055em}.utility-strip .container{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:34px}.utility-strip a{text-decoration:none;letter-spacing:0;font-size:.875rem}.site-header{position:sticky;top:0;z-index:30;background:#152a3e;color:#fff;box-shadow:0 3px 12px #09162525}.header-inner{width:min(1180px,calc(100% - 64px));margin:auto;display:flex;align-items:center;gap:30px;min-height:100px}.brand{display:inline-flex;align-items:center;gap:14px;text-decoration:none}.brand svg{width:58px;height:58px;flex:0 0 58px;color:var(--ink)}.brand-name{font:800 1.75rem/1.03 var(--display);letter-spacing:.015em;white-space:nowrap}.brand-name span{display:block;font:600 .8125rem/1.3 var(--body);letter-spacing:.09em;margin-top:6px}.header-contact{margin-left:auto;text-align:right;display:flex;flex-direction:column}.header-contact>span{font-size:.6875rem;letter-spacing:.035em;font-weight:600}.header-phone{font:700 2rem/1.25 var(--display);text-decoration:none}.header-quote{font-size:.9375rem}.main-nav{display:flex;gap:0;border-top:1px solid #ffffff24;min-height:47px;align-items:stretch}.main-nav a{display:flex;align-items:center;padding:11px 26px 11px 0;margin-right:26px;font-size:1rem;font-weight:600;text-decoration:none}.main-nav a:hover{color:white;text-decoration:underline;text-decoration-color:#e44a56;text-underline-offset:7px}
.hero-section{background:var(--light);border-bottom:1px solid var(--line);padding:46px 0 50px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(350px,.88fr);gap:66px;align-items:center}.hero-copy .eyebrow{display:flex;gap:10px;align-items:center;color:var(--red)}.small-rule{width:22px;height:3px;background:var(--red);display:block;flex:none}h1{font:800 clamp(3rem,5.3vw,4.75rem)/.99 var(--display);letter-spacing:-.012em;text-transform:uppercase;margin-top:19px}h1>span{color:var(--red)}.hero-lead{font-size:1.125rem;line-height:1.65;font-weight:500;margin-top:23px;max-width:570px}.hero-detail{font-size:1.0625rem;color:var(--muted);line-height:1.7;margin-top:13px;max-width:530px}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px 25px;margin-top:26px}.hero-note{font-size:.875rem;color:var(--muted);margin-top:16px}.hero-colors{display:flex;align-items:center;gap:15px;border-top:1px solid #cbd5df;padding-top:22px;margin-top:29px;text-decoration:none;max-width:530px}.mini-swatches{display:flex;flex:none;gap:4px}.mini-swatches>span{display:block;width:24px;height:46px;background:var(--sample-color);border:1px solid #152a3e22;border-radius:2px}.hero-colors strong,.hero-colors small{display:block}.hero-colors strong{font-size:.9375rem;font-weight:700}.hero-colors small{font-size:.8125rem;color:var(--muted);margin-top:2px}.color-arrow{margin-left:auto;font-size:1.4rem;color:var(--red)}
.quote-panel{background:white;border:1px solid #c8d2dc;border-radius:8px;box-shadow:0 10px 25px #152a3e12;overflow:hidden;scroll-margin-top:164px}.quote-panel-head{padding:22px 26px 20px;background:var(--ink);border-top:5px solid var(--red);color:white}.quote-panel-head .eyebrow{color:#e2e7ec;font-size:.75rem}.quote-panel-head>p:last-child{color:#e1e8ef;font-size:.9375rem;line-height:1.5;margin-top:7px}#quote-title{font:700 1.75rem/1.1 var(--display);margin-top:7px;text-transform:uppercase}.quote-form{padding:20px 26px 0}.quote-form .field{margin-bottom:12px}.field-row{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.quote-form label{display:block;font-size:.875rem;font-weight:600;line-height:1.5;margin-bottom:5px}.opt{font-weight:400;color:var(--muted)}.quote-form input,.quote-form textarea{width:100%;font-size:1rem;line-height:1.4;color:var(--ink);background:#fafbfc;border:1px solid #b6c3cf;padding:9px 11px;border-radius:4px}.quote-form input{min-height:42px}.quote-form textarea{min-height:70px;resize:vertical}.quote-form input:focus,.quote-form textarea:focus{outline:2px solid #2c5575;outline-offset:2px}.quote-form textarea::placeholder{color:#596b7a;font-size:.9375rem}.quote-form .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none;padding:0}.btn-submit{display:block;width:100%;min-height:48px;padding:12px 16px;cursor:pointer;background:var(--red);color:white;border:0;border-radius:4px;font:700 1.0625rem/1.3 var(--body);box-shadow:0 3px 0 #851d25}.btn-submit:hover{background:var(--red-hover)}.btn-submit:disabled{opacity:.65;cursor:default}.form-note{font-size:.75rem;line-height:1.6;color:var(--muted);text-align:center;margin-top:12px}.form-note.is-success,.form-note.is-error{font-size:1rem;text-align:left;background:var(--light);padding:14px}.form-note.is-error{border-left:3px solid var(--red)}.under-form{border-top:1px solid var(--line);margin:16px 26px 0;padding:13px 0 17px;font-size:.875rem;text-align:center}.under-form a{font-weight:700}.quote-form noscript{font-size:.9375rem}
.fact-line{background:var(--ink);color:white}.fact-grid{display:grid;grid-template-columns:repeat(4,1fr);padding-block:24px;gap:22px}.fact-grid p{padding-right:20px;border-right:1px solid #ffffff35}.fact-grid p:last-child{border:0;padding:0}.fact-grid strong{display:block;font:600 1.25rem/1.15 var(--display);text-transform:uppercase}.fact-grid span{display:block;color:#cfdce6;font-size:.8125rem;line-height:1.5;margin-top:7px}
section{padding:64px 0}h2{font:700 clamp(2rem,3.1vw,2.75rem)/1.1 var(--display);text-transform:uppercase;margin-top:9px;letter-spacing:.005em}.section-intro{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:center}.section-intro .eyebrow,.area-grid .eyebrow,.cost-copy .eyebrow,.closing-grid .eyebrow{color:var(--red)}.section-intro>p{font-size:1.0625rem;color:var(--muted);line-height:1.65;max-width:460px}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;list-style:none;padding:0;margin:32px 0 20px}.process-grid li{padding:23px 20px 24px;border:1px solid var(--line);border-top:4px solid var(--ink);border-radius:4px;background:#f8fafb}.step-number{color:var(--red);font-size:.75rem;font-weight:700;letter-spacing:.07em}.process-grid h3{font:700 1.5rem/1.1 var(--display);margin-top:11px;text-transform:uppercase}.process-grid p{font-size:1rem;line-height:1.65;margin-top:12px;color:var(--muted)}
.color-board{margin-top:43px;border-top:1px solid var(--line);padding-top:32px}.color-board-head{display:flex;align-items:end;justify-content:space-between;gap:24px}.color-board .eyebrow{color:var(--muted)}.color-board h3{font:700 2rem/1.1 var(--display);text-transform:uppercase;margin-top:7px}.color-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;padding:0;list-style:none;margin:24px 0 0}.color-grid li{border:1px solid #c5cfd8;border-radius:5px;overflow:hidden;background:var(--light)}.color-tile{height:140px;background:var(--sample-color)}.color-name{display:block;font-size:1rem;font-weight:600;padding:10px 14px}.color-note{font-size:.875rem;line-height:1.6;color:var(--muted);margin-top:17px}
.area-section{background:var(--light);border-block:1px solid var(--line)}.area-grid{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.area-grid>div>p:not(.eyebrow),.cost-copy>p:not(.eyebrow){font-size:1.0625rem;line-height:1.7;color:var(--muted);margin-top:19px;max-width:530px}.area-grid .text-link,.cost-copy .text-link{margin-top:17px}.city-list{display:grid;gap:12px}.city-list a{display:flex;align-items:center;justify-content:space-between;padding:17px 24px;background:white;border:1px solid #bac9d5;border-left:5px solid var(--red);border-radius:4px;text-decoration:none;font:600 1.5rem/1.2 var(--display)}.city-list a>span:last-child{color:var(--red)}.city-list a:hover{border-color:var(--ink)}.cost-grid{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:start}.cost-copy p.large-copy{color:var(--ink);font-size:1.375rem;font-weight:600;margin-top:22px}.scope-list{border:1px solid var(--line);border-top:5px solid var(--red);border-radius:5px;padding:24px 27px;background:var(--light)}.scope-list .eyebrow{font:700 1.25rem/1.2 var(--display);letter-spacing:0}.scope-list ul{padding:0;list-style:none;margin:17px 0 12px}.scope-list li{display:flex;align-items:baseline;gap:15px;padding:9px 0;border-bottom:1px solid var(--line);font-size:1rem}.scope-list li>span{font-size:.75rem;color:var(--muted);font-weight:600}.scope-list>p:last-child{font-size:.875rem;color:var(--muted)}
.warranty-section{background:var(--ink);color:white;padding:44px 0}.warranty-grid{display:grid;grid-template-columns:.75fr 1.5fr;gap:65px;align-items:start}.warranty-grid .eyebrow{color:#c6d6e3}.warranty-copy{color:#e3ebf1;font-size:1.0625rem;line-height:1.8}.closing-section{background:var(--light)}.closing-grid{display:flex;justify-content:space-between;align-items:center;gap:35px}.closing-grid p:not(.eyebrow){margin-top:16px;color:var(--muted);font-size:1.0625rem}.closing-actions{display:flex;flex-direction:column;gap:12px;align-items:center}.closing-phone{font:700 2.5rem/1.15 var(--display);text-decoration:none}.closing-actions .button{width:100%}
.site-footer{padding:44px 0 0;background:#0c1c2c;color:#e6edf3;border-top:5px solid var(--red)}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:50px;padding-bottom:34px}.site-footer .brand svg{color:white}.site-footer .brand-name{font-size:1.5rem}.site-footer .brand-name span{font-size:.75rem}.footer-brand>p{font-size:.9375rem;color:#ccd9e4;margin-top:12px}.footer-brand>p+p{margin-top:3px}.footer-brand>p a{text-decoration:none}.footer-grid nav .eyebrow{color:#9fb6ca;font-size:.75rem;margin-bottom:12px}.footer-grid nav a{display:block;width:fit-content;margin-top:9px;font-size:.9375rem;text-decoration:none}.footer-grid nav a:hover{text-decoration:underline}.footer-bottom{display:flex;flex-wrap:wrap;gap:15px 30px;justify-content:space-between;border-top:1px solid #ffffff25;padding-block:20px;font-size:.75rem;color:#a9bfd1}.footer-bottom nav{display:flex;flex-wrap:wrap;gap:20px}.footer-bottom a{text-decoration:none}.callbar{display:none}
@media(max-width:1100px){.header-inner{gap:20px}.brand-name{font-size:1.5rem}.brand svg{width:48px;height:48px;flex-basis:48px}.header-contact>span{font-size:.625rem}.header-phone{font-size:1.75rem}.header-quote{padding-inline:15px;font-size:.875rem}.main-nav a{margin-right:20px;padding-right:20px}.hero-grid{gap:35px;grid-template-columns:minmax(0,1fr) minmax(330px,.9fr)}.hero-copy .eyebrow{font-size:.75rem}.hero-actions{gap:12px 18px}.hero-colors{gap:12px}.mini-swatches>span{width:19px;height:40px}.hero-colors strong{font-size:.875rem}.hero-colors small{font-size:.75rem}.process-grid{gap:14px}.process-grid li{padding:20px 16px}.color-grid{gap:14px}.area-grid,.cost-grid{gap:40px}.footer-grid{gap:30px}}
@media(max-width:800px){html{scroll-padding-top:20px}.container,.header-inner{width:calc(100% - 40px)}.utility-strip .container{min-height:29px;font-size:.625rem;letter-spacing:.025em}.utility-strip a{display:none}.site-header{position:relative}.header-inner{display:grid;grid-template-columns:1fr auto;gap:12px 16px;padding:17px 0 13px}.header-inner>.brand{grid-column:1/-1}.brand-name{font-size:1.625rem}.brand-name span{font-size:.6875rem}.brand svg{width:46px;height:46px;flex-basis:46px}.header-contact{margin:0;text-align:left;grid-row:2}.header-contact>span{font-size:.5625rem}.header-phone{font-size:1.75rem}.header-quote{grid-row:2;font-size:.875rem;gap:10px;min-height:45px;padding:10px 14px}.main-nav{flex-wrap:wrap;padding-block:2px 6px;gap:0 20px;min-height:0}.main-nav a{margin:0;padding:8px 0;font-size:.875rem}.hero-section{padding:30px 0 36px}.hero-grid{grid-template-columns:1fr;gap:30px}h1{font-size:clamp(2.875rem,8.7vw,4.4rem);margin-top:14px}.hero-lead{font-size:1.125rem;margin-top:20px}.hero-detail{font-size:1rem}.hero-actions{margin-top:22px;gap:14px 20px}.hero-copy .eyebrow{font-size:.6875rem;letter-spacing:.035em}.hero-note{font-size:.8125rem}.hero-colors{margin-top:23px;padding-top:19px;gap:16px}.hero-colors strong{font-size:.9375rem}.hero-colors small{font-size:.8125rem}.mini-swatches>span{width:23px;height:43px}.quote-panel{scroll-margin-top:20px}.quote-panel-head{padding:20px 23px}.quote-form{padding:20px 23px 0}.under-form{margin-inline:23px}.fact-grid{grid-template-columns:1fr 1fr;gap:23px 20px;padding-block:25px}.fact-grid p{padding:0;border:0}.fact-grid strong{font-size:1.1875rem}.fact-grid span{font-size:.8125rem}section{padding:43px 0}.section-intro{grid-template-columns:1fr;gap:15px}.process-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}.process-grid h3{font-size:1.375rem}.process-grid li{padding:18px 16px}.color-board{margin-top:28px;padding-top:27px}.color-board-head{flex-direction:column;align-items:start;gap:9px}.color-grid{grid-template-columns:repeat(3,1fr);gap:13px}.color-tile{height:108px}.color-name{font-size:.875rem;padding:9px}.area-grid,.cost-grid{grid-template-columns:1fr;gap:27px}.city-list a{padding:16px 20px}.scope-list{padding:21px}.warranty-grid{grid-template-columns:1fr;gap:20px}.warranty-section{padding:33px 0}.warranty-copy{font-size:1rem}.closing-grid{flex-direction:column;align-items:start;gap:24px}.closing-actions{align-items:start}.closing-phone{font-size:2rem}.footer-grid{grid-template-columns:1fr 1fr;gap:30px}.footer-brand{grid-column:1/-1}.site-footer .brand-name{font-size:1.5rem}.footer-bottom{font-size:.75rem}.callbar{position:fixed;bottom:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:62px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:var(--red);color:white;text-decoration:none}.callbar>span{font-size:.75rem}.callbar strong{font-size:1.125rem;font-weight:600}.callbar strong span{margin-left:6px}body{padding-bottom:calc(62px + env(safe-area-inset-bottom))}}
@media(max-width:370px){.container,.header-inner{width:calc(100% - 32px)}.header-inner{gap:10px}.brand-name{font-size:1.4375rem}.brand-name span{font-size:.625rem}.brand svg{width:40px;flex-basis:40px}.header-phone{font-size:1.5rem}.header-quote{font-size:.75rem;padding:9px 11px}.header-contact>span{font-size:.5rem}.main-nav{gap:0 16px}.hero-copy .eyebrow{font-size:.625rem}.hero-actions .button{width:100%}.hero-colors{gap:11px}.mini-swatches{gap:3px}.mini-swatches>span{width:18px;height:40px}.hero-colors strong{font-size:.875rem}.hero-colors small{font-size:.75rem}.color-arrow{display:none}.quote-form{padding-inline:18px}.quote-panel-head{padding-inline:18px}.under-form{margin-inline:18px}.field-row{grid-template-columns:1fr;gap:0}.process-grid{grid-template-columns:1fr}.color-grid{grid-template-columns:1fr 1fr}.callbar{padding-inline:16px}.callbar>span{font-size:.625rem}.callbar strong{font-size:1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Contractor wordmark, shared by the site header and footer. */
.brand { gap: 13px; }
.brand svg.logo-mark { width: 70px; height: 70px; flex: 0 0 70px; }
.brand .brand-name { display: flex; flex-direction: column; align-items: flex-start; gap: 0; color: #fff; letter-spacing: 0; line-height: 1; }
.brand .brand-location { display: block; font: 700 1.125rem/1 'Barlow', Arial, sans-serif; letter-spacing: .17em; margin: 0 0 4px; }
.brand .brand-service { display: block; font: 800 2.25rem/.95 var(--display); letter-spacing: .025em; }
.brand .brand-descriptor { display: block; font: 600 .6875rem/1.1 var(--body); letter-spacing: .075em; margin: 6px 0 0; }
.header-inner { min-height: 111px; }
.header-contact > span { color: #bdd0df; }
.header-phone { color: #fff; }
.main-nav a { color: #e0e9f0; }
@media (max-width: 1100px) {
  .brand svg.logo-mark { width: 62px; height: 62px; flex-basis: 62px; }
  .brand .brand-location { font-size: 1rem; }
  .brand .brand-service { font-size: 2rem; }
  .brand .brand-descriptor { font-size: .625rem; }
}
@media (max-width: 800px) {
  .header-inner { padding-top: 18px; }
  .brand svg.logo-mark { width: 59px; height: 59px; flex-basis: 59px; }
  .brand .brand-location { font-size: .9375rem; }
  .brand .brand-service { font-size: 2rem; }
  .brand .brand-descriptor { font-size: .625rem; }
}
@media (max-width: 370px) {
  .brand svg.logo-mark { width: 53px; height: 53px; flex-basis: 53px; }
  .brand .brand-location { font-size: .875rem; }
  .brand .brand-service { font-size: 1.8125rem; }
}

/* Epoxy brand mark. */
.brand .epoxy-mark { width: 78px; height: 78px; flex: 0 0 78px; object-fit: contain; }
@media (max-width: 1100px) { .brand .epoxy-mark { width: 68px; height: 68px; flex-basis: 68px; } }
@media (max-width: 800px) {
  .brand .epoxy-mark { width: 64px; height: 64px; flex-basis: 64px; }
}
@media (max-width: 370px) { .brand .epoxy-mark { width: 58px; height: 58px; flex-basis: 58px; } }
