:root{--black:#111215;--dark:#191b1f;--red:#d8211e;--yellow:#ffd51c;--cream:#f7f7f3;--muted:#60666e;--line:#e1e3e5;--white:#fff;--shadow:0 18px 50px rgba(0,0,0,.1)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:85px}
body{margin:0;font:16px/1.58 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--black);background:white}
body.dialog-open{overflow:hidden}
img{display:block;max-width:100%}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.55}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #3486ee;outline-offset:3px}
[hidden]{display:none!important}
.shell{width:min(1180px,calc(100% - 44px));margin-inline:auto}
.skip{position:absolute;left:12px;top:-100px;background:#fff;z-index:200;padding:12px}.skip:focus{top:12px}
h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.045em;line-height:1.1}h2{font-size:clamp(31px,4vw,48px);margin:0 0 17px;font-weight:900}h3{font-size:23px;font-weight:850;line-height:1.22;margin:0 0 12px}
p{margin-bottom:15px}
.eyebrow,.card-overline{font-size:11px;font-weight:950;letter-spacing:.16em;color:#b82723;text-transform:uppercase;margin-bottom:11px}
.button{border:0;border-radius:7px;display:inline-flex;justify-content:center;align-items:center;gap:10px;padding:15px 19px;font-size:13px;line-height:1.35;text-transform:uppercase;letter-spacing:.025em;font-weight:900;text-decoration:none;text-align:center;transition:transform .16s ease,filter .16s ease}
.button:hover{transform:translateY(-2px);filter:brightness(1.06)}
.button-yellow{background:var(--yellow);color:#141414}
.button-dark{background:#151618;color:white}.button-outline{border:1px solid #d5d6d8;background:white;color:#18191a}.button-large{font-size:20px;min-height:90px;width:280px}.button-large small{font-size:19px;letter-spacing:.02em}
/* The opening screen is intentionally the user's exact logo alone, uncropped. */
.logo-screen{position:relative;min-height:calc(100vh - var(--site-nav-height,70px));min-height:calc(100svh - var(--site-nav-height,70px));background:radial-gradient(ellipse 55% 55% at 50% 45%,#2e2524 0%,#141418 75%,#09090b 100%);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:2vh 2vw 7vh}
.logo-screen>img{display:block;object-fit:contain;width:auto;max-width:94vw;max-height:calc(100vh - var(--site-nav-height,70px) - 45px);max-height:calc(100svh - var(--site-nav-height,70px) - 45px);filter:drop-shadow(0 18px 40px rgba(0,0,0,.25))}
.logo-scroll{position:absolute;bottom:1.5vh;left:50%;transform:translateX(-50%);text-decoration:none;display:flex;align-items:center;gap:10px;color:#efefef;font-size:10px;font-weight:900;letter-spacing:.17em;white-space:nowrap}.logo-scroll span:last-child{font-size:22px;color:var(--yellow)}
/* Sticky navigation on every screen size. */
.main-nav{position:sticky;top:0;z-index:110;background:#fff;border-bottom:3px solid var(--yellow);box-shadow:0 5px 19px #00000014}
.nav-inner{min-height:67px;display:flex;align-items:center;gap:22px;justify-content:space-between}
.nav-brand{font-size:15px;font-weight:950;text-decoration:none;white-space:nowrap}.nav-brand strong{color:var(--red)}
.nav-links{display:flex;gap:22px;align-items:center;overflow-x:auto;scrollbar-width:none}.nav-links::-webkit-scrollbar{display:none}
.nav-links a{font-size:12px;white-space:nowrap;text-decoration:none;font-weight:850;color:#363b40}.nav-links a:hover{color:var(--red)}
.nav-quote{flex:0 0 auto;border:0;border-radius:6px;background:var(--red);color:white;font-size:12px;padding:12px 14px;font-weight:900;white-space:nowrap}
/* Immediate call-to-action below the opening logo */
.contact-banner{padding:70px 0 75px;color:white;background:linear-gradient(130deg,#161719 0%,#111215 62%,#321715 100%)}
.contact-layout{display:grid;grid-template-columns:1.3fr .7fr;align-items:center;gap:45px}
.contact-banner .eyebrow{color:var(--yellow)}.contact-banner h1{font-size:clamp(36px,5.25vw,70px);font-weight:950;margin:0 0 20px}
.contact-banner h1 em{color:var(--yellow);font-style:normal}.contact-banner p{font-size:18px;color:#d1d4d8;max-width:650px;margin:0}
.contact-actions{display:flex;flex-direction:column;align-items:stretch;gap:13px}.contact-actions .button{width:100%}.contact-actions .button-outline{background:transparent;border:1px solid #7b7d80;color:#fff}
.quote-banner{background:var(--red);color:#fff;border-top:5px solid var(--yellow);border-bottom:5px solid var(--yellow);padding:28px 0}
.quote-banner-inner{display:flex;align-items:center;justify-content:space-between;gap:28px}
.quote-banner .eyebrow{color:#ffea8e}.quote-banner h2{font-size:clamp(26px,3.2vw,37px);margin:0 0 6px}.quote-banner p{margin:0;color:#ffe7e5}.quote-banner .button{flex:0 0 auto;padding:19px 30px}
.section-intro{max-width:800px;margin-bottom:30px}.section-intro.centered{text-align:center;margin-left:auto;margin-right:auto}.section-intro p{color:#626872;font-size:17px}
.services-overview{padding:82px 0;background:white}
.service-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.service-card-grid article{display:flex;flex-direction:column;background:#fafaf9;border:1px solid #e5e6e5;border-radius:10px;padding:25px 22px;min-height:292px;box-shadow:0 6px 26px #00000009}
.service-icon{font-weight:950;font-size:12px;background:var(--yellow);width:41px;height:41px;border-radius:8px;display:grid;place-items:center;margin-bottom:20px}
.service-card-grid h3{font-size:22px}.service-card-grid p{color:#626770;font-size:14px;flex:1;line-height:1.62}
.service-card-grid a{font-size:13px;font-weight:900;color:#b2211c;text-decoration:none}.service-card-grid a:hover{text-decoration:underline}
.services-caution{font-size:12px;max-width:850px;text-align:center;margin:25px auto 0;color:#74777b}
.section-cta{background:#f2f3f3;padding:25px 0}.section-cta>.shell,.gallery-cta>.shell{display:flex;align-items:center;justify-content:space-between;gap:18px}.section-cta p{font-size:18px;font-weight:800;margin:0}.muted-cta{background:#fff2bc}
/* Before-after comparisons. No BEFORE/AFTER text overlays. */
.gallery-section{background:#151618;color:#fff;padding:86px 0 66px}.gallery-section .eyebrow{color:var(--yellow)}.gallery-section .section-intro p{color:#c5c9cc}
.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.project{border-radius:12px;overflow:hidden;background:#fff;color:#17191b;box-shadow:0 12px 25px #0000002c}
.compare{position:relative;width:100%;aspect-ratio:1.42/1;background:#252629;overflow:hidden;--reveal:50%;user-select:none;touch-action:pan-y}
.compare>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.compare>img.after{clip-path:inset(0 calc(100% - var(--reveal)) 0 0)}
.compare .handle{position:absolute;left:var(--reveal);top:0;bottom:0;border-left:3px solid #fff;pointer-events:none;z-index:2;filter:drop-shadow(0 2px 3px #000a)}
.compare .handle span{position:absolute;left:0;top:50%;transform:translate(-50%,-50%);height:51px;width:51px;border-radius:50%;border:4px solid #fff;display:grid;place-items:center;color:#131313;background:var(--yellow);font-size:20px;font-weight:950}
.compare input[type=range]{position:absolute;z-index:3;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:ew-resize}
.project-copy{padding:20px 23px 24px}.project-type{color:#aa2620;font-size:10px;font-weight:950;letter-spacing:.15em}.project-copy h3{font-size:21px;margin:8px 0}.project-copy p{font-size:14px;color:#666b72;margin-bottom:9px}
.project-quote{display:inline-block;color:#b52220;font-weight:850;text-decoration:none;font-size:12px}.project-quote:hover{text-decoration:underline}.gallery-note{border:1px solid #48494b;color:#d1d5d9;font-size:13px;border-radius:7px;padding:16px 19px;margin-top:23px}.gallery-note a{color:var(--yellow)}
.gallery-cta{background:#222326;color:white;border-top:1px solid #37393d;padding:30px 0}.gallery-cta h3{font-size:24px;margin:0}
/* User-supplied static map, not an interactive map */
.service-area-section{padding:78px 0 83px;background:#fff}.area-top{text-align:center;max-width:850px;margin:0 auto 32px}.area-top p{font-size:16px;color:#626872}
.service-map{max-width:1120px;margin:0 auto;border:1px solid #d4d8dd;border-radius:12px;overflow:hidden;box-shadow:0 18px 40px #00000010;background:#eaf0f5}
.service-map img{width:100%;height:auto;object-fit:contain}.map-caption{font-size:12px;color:#585e65;background:#fff;text-align:center;padding:14px;margin:0}
.area-heading{text-align:center;margin:32px 0 14px;font-size:22px}
.locations-line{font-size:12px;line-height:2;display:block;text-align:center;font-weight:850;white-space:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding:4px 0 10px}
.locations-line span{color:#cc2926;margin:0 7px}.swipe-tip{text-align:center;color:#71777c;font-size:11px;margin:4px 0 0}.mid-cta{text-align:center;margin-top:25px}
.about-section{background:#f8f8f4;padding:80px 0}.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:65px;align-items:center}.about-grid p{color:#555b62;font-size:16px}.about-panel{display:grid;place-items:center;background:#1b1c1f;border-radius:12px;padding:30px}.about-panel img{max-height:400px;width:auto;border-radius:8px}
.facts{display:flex;flex-wrap:wrap;gap:15px;margin:25px 0}.facts span{border-left:3px solid var(--red);padding-left:10px;font-size:12px;color:#666}.facts b{display:block;color:#17191d;font-size:15px}
.local-section{padding:75px 0;background:#fff}.local-columns{display:grid;grid-template-columns:1fr 1fr;gap:50px}.local-columns p{color:#62676d}.local-columns h3{font-size:20px}
.faq-section{background:#f4f5f5;padding:77px 0}.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.faq-layout>div:first-child p{color:#666b70}.faq-list details{border-bottom:1px solid #d4d8db;padding:16px 0}.faq-list details:first-child{border-top:1px solid #d4d8db}.faq-list summary{cursor:pointer;font-size:15px;font-weight:850}.faq-list details p{font-size:14px;color:#5d646c;margin:12px 0 4px}
/* Checklist near the bottom, separate from wizard but pre-fills it. */
.todo-section{background:var(--cream);padding:83px 0}.todo-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:22px;align-items:start}
.todo-card,.todo-contact{background:#fff;border:1px solid #e2e3e4;border-radius:13px;padding:28px;box-shadow:0 16px 38px #0000000d}
.todo-contact{position:sticky;top:87px}.todo-contact h3{font-size:25px}.todo-contact p{color:#6a6e75;font-size:14px}
.todo-contact>label,.wizard-fields label{display:block;font-size:13px;font-weight:850;margin-top:15px;margin-bottom:6px}
.todo-contact input,.wizard-fields input,.wizard-fields select,.wizard-fields textarea,.custom-tasks input{border:1px solid #cfd3d6;border-radius:6px;padding:12px 13px;width:100%;background:#fff;color:#1b1b1d;min-width:0;font-weight:500;font-size:15px}
.wizard-fields textarea{min-height:126px;resize:vertical}.todo-contact input::placeholder,.wizard-fields input::placeholder,.wizard-fields textarea::placeholder{color:#81858a}
.required{color:#c0211e;font-weight:900}.todo-submit{width:100%;margin-top:20px}.privacy-mini{font-size:11px!important;margin-top:12px}.todo-status{color:#b22721;font-size:13px;margin-top:10px}
.todo-summary{display:flex;justify-content:space-between;align-items:center;background:#f6f7f8;border-radius:7px;padding:12px 14px;font-size:13px;font-weight:900;margin-bottom:22px}
.todo-summary span{color:#b32420}.todo-summary button{background:none;border:0;text-decoration:underline;color:#555;font-weight:700;font-size:12px}
#taskGroups fieldset{border:0;margin:0 0 20px;padding:0}#taskGroups legend{display:block;width:100%;font-size:15px;font-weight:950;padding-bottom:8px;margin-bottom:13px;border-bottom:2px solid #e7e8e9}
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.check-grid label{font-size:13px;color:#36393e;cursor:pointer;display:flex;align-items:flex-start;gap:10px;line-height:1.4}
.check-grid input,.consent input{accent-color:#d82220;width:18px;height:18px;flex:0 0 18px;margin:0}
.check-grid label:has(input:checked) span{font-weight:850;color:#111}.custom-tasks{margin-top:20px;border-top:1px solid #e5e6e7;padding-top:22px}
.custom-tasks>label{font-weight:850;font-size:14px;display:block;margin-bottom:9px}.add-row{display:flex;gap:10px}.add-row input{flex:1}.add-row button{flex:0 0 auto}
#customTaskList{list-style:none;padding:0;margin:12px 0}#customTaskList li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid #eee;font-size:13px}#customTaskList button{border:0;background:none;color:#bd2622;font-weight:800;font-size:12px}
.end-cta{background:#18191b;color:#fff;padding:60px 0;border-top:5px solid var(--yellow)}.end-cta .shell{display:flex;justify-content:space-between;align-items:center;gap:20px}.end-cta .eyebrow{color:var(--yellow)}.end-cta h2{font-size:39px}.end-cta p{color:#c6c9cc;margin-bottom:0}.end-actions{display:flex;gap:11px;align-items:center;flex-wrap:wrap}
.footer{background:#090a0c;color:#fff;padding:47px 0 28px}.footer-top{display:flex;justify-content:space-between;gap:40px}.footer-logo{display:flex;gap:18px;align-items:center}.footer-logo img{width:112px;height:auto}.footer-logo b{font-size:18px}.footer-logo p{font-size:13px;color:#c0c3c6;max-width:400px;margin:8px 0 0}
.footer-contact{display:flex;flex-direction:column;gap:7px}.footer-contact b{font-size:12px;color:var(--yellow)}.footer-contact a{color:#e1e4e8;font-size:14px;text-decoration:none}
.footer-local{border-top:1px solid #36393b;margin-top:30px;padding-top:22px;font-size:13px;color:#bdc1c6;line-height:1.85}.footer-local b{color:#fff}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #323436;padding-top:20px;margin-top:25px;font-size:11px;color:#9ca1a7}
.mobile-actions{display:none}
/* Four-stage quote modal */
.quote-dialog{position:fixed;inset:0;border:0;border-radius:15px;padding:0;max-width:min(640px,calc(100vw - 30px));width:100%;max-height:min(760px,calc(100svh - 28px));overflow-y:auto;box-shadow:0 30px 90px #0009;color:#17191a}
.quote-dialog::backdrop{background:#080a0bdb;backdrop-filter:blur(5px)}
.dialog-shell{padding:0 32px 30px}.dialog-header{display:flex;justify-content:space-between;align-items:start;gap:15px;border-bottom:1px solid #e3e4e6;padding:28px 0 19px}.dialog-header h2{font-size:30px;margin:0 0 5px}.dialog-header p{color:#71757a;font-size:13px;margin:0}
.dialog-close{background:#f1f2f3;border:0;height:39px;width:39px;border-radius:50%;font-size:25px;color:#333}
.wizard-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:23px 0 12px}.wizard-progress span{display:flex;align-items:center;gap:7px;padding:8px 6px;border-top:4px solid #e5e5e5;color:#93979e;font-size:13px;font-weight:950}.wizard-progress span small{font-weight:650;font-size:11px}.wizard-progress span.active{border-color:var(--red);color:#1a1a1a}.wizard-progress span.complete{border-color:var(--yellow);color:#353535}
.step-label{font-size:11px;color:#a92923;letter-spacing:.15em;font-weight:900;margin:12px 0}.wizard-page h3{font-size:30px;margin:0 0 7px}.wizard-page>p{font-size:14px;color:#646b72;margin-bottom:22px}
.wizard-fields.two-col{display:grid;grid-template-columns:1fr 1fr;column-gap:13px}.wizard-fields.two-col .full{grid-column:1/-1}
.wizard-fields label{margin-top:12px}.wizard-notice{background:#fff8d9;border-left:4px solid var(--yellow);padding:13px;margin:17px 0 0;color:#585048;font-size:12px;line-height:1.5}
.wizard-fields label.consent{display:flex;align-items:flex-start;gap:10px;margin-top:18px;font-weight:500;line-height:1.5}.consent input{margin-top:2px}
.wizard-nav{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #ebedef;margin-top:26px;padding-top:21px}.button-back{background:#f1f2f3;color:#2d3033}
.form-status{font-size:13px;margin:13px 0 0;color:#60646b}.form-status.error{color:#aa2221}.form-status.success{color:#18683a}.copy-button{background:none;border:0;color:#b2221c;font-size:12px;padding:0;text-decoration:underline;margin-top:10px;font-weight:850}
.trap-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.thankyou{display:grid;place-items:center;min-height:100vh;background:#1a1b1c}.thanks-card{text-align:center;max-width:630px;padding:45px;background:white;border-radius:12px;margin:20px}.thanks-card img{margin:0 auto 25px;width:170px}.thanks-card h1{font-size:32px}.thanks-card p{font-size:15px;color:#4e555e}
@media(max-width:1150px){.nav-links{gap:13px}.nav-inner{gap:14px}.service-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-card-grid article{min-height:230px}.locations-line{font-size:11px}.locations-line span{margin:0 5px}}
@media(max-width:900px){.nav-inner{flex-wrap:wrap;padding:8px 0}.nav-brand{font-size:14px}.nav-links{order:3;width:100%;justify-content:space-between}.contact-layout{grid-template-columns:1fr;gap:26px}.contact-actions{flex-direction:row}.contact-actions .button{width:auto;flex:1}.gallery-grid{gap:15px}.compare{aspect-ratio:1.1}.about-grid,.faq-layout{grid-template-columns:1fr;gap:25px}.todo-layout{grid-template-columns:1fr}.todo-contact{position:relative;top:0}.locations-line{text-align:left}}
@media(max-width:650px){html{scroll-padding-top:109px}.shell{width:calc(100% - 30px)}.logo-screen{padding:10px 8px 48px}.logo-screen>img{max-width:100%;max-height:calc(100svh - var(--site-nav-height,105px) - 55px)}.logo-scroll{bottom:2vh}.nav-inner{min-height:56px}.nav-links{gap:20px;justify-content:flex-start;padding:5px 0}.nav-quote{font-size:11px;padding:10px}.nav-brand{font-size:12px}.contact-banner{padding:45px 0}.contact-banner h1{font-size:37px}.contact-banner p{font-size:16px}.contact-actions{flex-direction:column}.button-large{width:100%}.quote-banner-inner,.section-cta>.shell,.gallery-cta>.shell,.end-cta .shell{flex-direction:column;align-items:flex-start}.quote-banner{padding:25px 0}.quote-banner .button{width:100%}.services-overview,.gallery-section,.service-area-section,.about-section,.local-section,.faq-section,.todo-section{padding:55px 0}.service-card-grid,.gallery-grid,.local-columns{grid-template-columns:1fr}.service-card-grid article{min-height:0}.section-intro p{font-size:15px}.compare{aspect-ratio:1.22}.gallery-cta h3{font-size:20px}.gallery-cta .button,.section-cta .button{width:100%}.area-top p{font-size:15px}.locations-line{font-size:12px}.area-heading{text-align:left}.about-grid{gap:25px}.todo-card,.todo-contact{padding:19px}.check-grid{grid-template-columns:1fr 1fr}.footer-top{flex-direction:column;gap:22px}.footer-bottom{flex-direction:column;gap:6px}.end-cta{padding:42px 0}.end-actions{width:100%}.end-actions .button{width:100%}.mobile-actions{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:85;gap:8px;padding:9px 12px;background:#fff;box-shadow:0 -4px 16px #0000001c}.mobile-actions a,.mobile-actions button{flex:1;text-decoration:none;border:0;border-radius:6px;text-align:center;font-size:12px;font-weight:950;padding:12px 5px;background:var(--yellow);color:#151515}.mobile-actions button{background:var(--red);color:#fff}.footer{padding-bottom:92px}.dialog-shell{padding:0 19px 23px}.dialog-header{padding-top:17px}.dialog-header h2{font-size:25px}.wizard-page h3{font-size:26px}.wizard-fields.two-col{grid-template-columns:1fr}.wizard-progress span{font-size:11px;gap:3px}.wizard-progress span small{font-size:9px}.wizard-nav{flex-wrap:wrap}.wizard-nav .button{flex:1}}
@media(max-width:390px){.check-grid{grid-template-columns:1fr}.hero-logo{max-width:100%}.wizard-progress span{flex-direction:column;align-items:flex-start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}
