@font-face{font-family:Utility;src:url('/assets/display.woff') format('woff');font-display:swap}@font-face{font-family:Work;src:url('/assets/body.woff') format('woff');font-display:swap}:root{--bg:#111210;--panel:#1a1b19;--blue:#3579ad;--text:#eeeee7;--muted:#b5b7b4;--line:#363835}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--bg);color:var(--text);font:17px/1.6 Work,Arial,sans-serif}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:9;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}a,button,input,textarea,select{outline-offset:5px}a:focus-visible,button:focus-visible{outline:2px solid #8ac6f1}button,a{touch-action:manipulation}.wrap{width:min(1240px,90%);margin:auto}header{border-bottom:1px solid var(--line);background:#111210f5;position:sticky;top:0;z-index:10}.nav{display:flex;align-items:center;min-height:91px;gap:35px}.brand{display:flex;align-items:center;gap:12px;margin-right:auto;font:22px/1 Utility,sans-serif;letter-spacing:.7px}.brand img{height:68px;width:68px;object-fit:cover}.brand small{display:block;font-size:13px;letter-spacing:2px;margin-top:5px}.navlinks{display:flex;gap:26px;font-size:14px}.navlinks a:hover{color:#79b4df}.phone{font:22px Utility,sans-serif}.button{border:1px solid var(--blue);background:var(--blue);padding:16px 26px;display:inline-flex;align-items:center;justify-content:center;gap:25px;color:white;font:20px Utility,sans-serif;text-transform:uppercase;letter-spacing:.6px;cursor:pointer}.button:hover{background:#28628d}.button.outline{background:transparent;border-color:#62675f}.menu{display:none}.eyebrow{font:14px Work,Arial,sans-serif;letter-spacing:2px;text-transform:uppercase;color:#81b4d9;display:flex;align-items:center;gap:14px}.eyebrow:before{content:'';width:30px;height:2px;background:var(--blue)}h1,h2,h3{font-family:Utility,'Arial Narrow',sans-serif;text-transform:uppercase;line-height:.98;margin:0;font-weight:700}h1{font-size:clamp(58px,7.6vw,104px);letter-spacing:-.8px}h1 em{font-style:normal;color:var(--blue)}h2{font-size:clamp(43px,4.5vw,66px)}h3{font-size:28px}p{color:var(--muted)}.hero{display:grid;grid-template-columns:1.08fr 1fr;align-items:center;min-height:665px;position:relative;padding:55px 0 65px}.hero .eyebrow{margin-bottom:28px}.hero p{max-width:465px;margin:25px 0 29px;font-size:19px}.hero-art{width:100%;max-width:600px;mix-blend-mode:lighten;transform:rotate(-3deg)}.hero-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}.hero-actions .phone small{display:block;font:12px Work;letter-spacing:1.8px;color:var(--muted);margin-bottom:8px}.hero-note{font-size:13px;letter-spacing:1.4px;text-transform:uppercase;margin-top:25px;color:var(--muted)}.ticker{background:var(--blue);transform:skewY(-2deg);padding:21px 0;margin:5px 0 40px;overflow:hidden}.ticker .wrap{display:flex;justify-content:space-between;gap:24px;font:23px Utility;letter-spacing:1.2px;text-transform:uppercase}.ticker span{white-space:nowrap}.ticker b{opacity:.4}section{padding:75px 0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:40px}.section-heading p{max-width:350px;margin:0}.section-heading .eyebrow{margin-bottom:20px}.services{display:grid;grid-template-columns:1fr 1fr;column-gap:60px}.service{display:grid;grid-template-columns:40px 1fr;gap:20px;padding:30px 0;border-top:1px solid var(--line)}.service .num{color:var(--blue);font:19px Utility}.service p{margin:11px 0 0;font-size:16px;max-width:450px}.work{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.pairs{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.pair{min-width:0}.photos{display:grid;grid-template-columns:1fr 1fr;gap:3px}.photos figure{margin:0;position:relative}.photos img{width:100%;height:235px;object-fit:cover;display:block}.photos figcaption{position:absolute;bottom:10px;left:8px;font:13px Work;letter-spacing:1px;background:#111d;padding:4px 8px}.photos figure:last-child figcaption{background:var(--blue)}.pair h3{font-size:24px;margin-top:20px}.pair p{font-size:14px;margin:8px 0}.text-link{font-size:14px;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--blue);padding-bottom:6px;display:inline-block}.reviews{display:grid;grid-template-columns:.75fr 1.4fr;gap:80px}.rating{font:72px Utility;color:var(--blue);margin-top:25px}.stars{color:#83b6dc;letter-spacing:4px;font-size:21px}.reviews blockquote{margin:0;padding:28px 0;border-top:1px solid var(--line);font-size:22px;line-height:1.45}.reviews cite{display:block;font:14px Work;font-style:normal;color:var(--muted);margin-top:18px}.reviews cite a{border-bottom:1px solid #555}.area{position:relative;background:#171816;overflow:hidden;border-top:1px solid var(--line)}.area-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}.area .trailer{width:260px;opacity:.45;mix-blend-mode:lighten;margin-top:25px}.towns a{display:flex;justify-content:space-between;font:34px Utility;text-transform:uppercase;border-bottom:1px solid #42463f;padding:16px 0}.towns a:hover{color:#7db1d6}.towns span{color:var(--blue)}.quote{display:grid;grid-template-columns:1fr 1fr;gap:90px}.quote .big-phone{font:44px Utility;display:block;margin-top:35px;color:#80b5da}.quote form{background:#1b1d1a;padding:34px;border-top:4px solid var(--blue)}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{font-size:14px;display:block;margin-bottom:18px}input,select,textarea{width:100%;border:1px solid #555b51;background:#11130f;color:var(--text);padding:13px;margin-top:6px;border-radius:0;min-height:48px}textarea{resize:vertical;min-height:110px}.quote .button{width:100%}.form-note{font-size:13px;margin-bottom:0}.status{color:#a6cde8;font-size:14px}footer{border-top:1px solid var(--line);padding:45px 0 25px}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px}address{font-style:normal;color:var(--muted);font-size:15px}.footer-grid strong{font-size:17px;color:var(--text)}.footer-grid .links{display:flex;flex-direction:column;gap:8px;font-size:14px}.footer-bottom{margin-top:40px;border-top:1px solid var(--line);padding-top:22px;font-size:12px;color:#989d95;display:flex;justify-content:space-between}.mobile-bar{display:none}.city-main{padding:80px 0}.city-main h1{max-width:850px}.city-copy{max-width:760px}.city-copy p{font-size:19px}.city-services{margin:45px 0;max-width:800px}.city-services h2{margin-bottom:25px}.city-services li{padding:12px 0;border-bottom:1px solid var(--line)}.skip{position:absolute;top:-100px}.skip:focus{top:0;z-index:50;background:white;color:black;padding:10px}@media(max-width:1000px){.navlinks{gap:15px}.nav .phone{display:none}.hero{min-height:600px}.hero-art{width:108%}.reviews{gap:40px}.area-grid,.quote{gap:45px}.photos img{height:180px}}@media(max-width:700px){.nav{min-height:76px;gap:15px}.brand{font-size:19px}.brand img{width:55px;height:55px}.nav>.button{display:none}.menu{display:block;background:transparent;color:white;border:1px solid #555;padding:8px 12px;font-size:14px}.navlinks{display:none;position:absolute;top:76px;left:0;right:0;padding:25px 5%;background:#151714;flex-direction:column;font-size:17px;border-bottom:1px solid var(--line)}.navlinks.open{display:flex}.hero{grid-template-columns:1fr;padding:40px 0 20px;gap:10px}.hero .eyebrow{font-size:12px;letter-spacing:1.1px;margin-bottom:22px}h1{font-size:66px}.hero p{font-size:17px;margin:20px 0}.hero-art{width:85%;max-width:360px;justify-self:center;transform:none;margin-top:5px}.hero-note{font-size:11px}.hero-actions{gap:22px}.hero-actions .phone{font-size:23px}.hero-actions .button{padding:15px 20px}.ticker{margin:0 0 15px}.ticker .wrap{justify-content:center;font-size:19px}.ticker span:nth-of-type(n+3),.ticker b{display:none}section{padding:50px 0}.section-heading{display:block;margin-bottom:30px}.section-heading p{margin-top:20px}.services,.pairs,.reviews,.area-grid,.quote{grid-template-columns:1fr;gap:25px}.service{gap:10px;padding:24px 0}.photos img{height:230px}.pairs{gap:32px}.reviews blockquote{font-size:20px}.rating{margin-top:20px}.area .trailer{display:none}.towns a{font-size:30px}.quote form{padding:24px}.fields{gap:12px}.footer-grid{grid-template-columns:1fr;gap:25px}.footer-bottom{display:block;margin-top:25px}.mobile-bar{position:fixed;bottom:0;left:0;right:0;z-index:20;display:grid;grid-template-columns:1fr 1fr;background:#151715;border-top:1px solid #555}.mobile-bar a{text-align:center;padding:15px 5px;font:20px Utility;text-transform:uppercase}.mobile-bar a:last-child{background:var(--blue)}body{padding-bottom:56px}.city-main{padding:45px 0}.city-main h1{font-size:56px}.city-copy p{font-size:17px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

[hidden]{display:none!important}

/* Keep supplied artwork proportional; remove the dark backdrop at render time. */
.brand img,.hero-art,.area-logo{height:auto;object-fit:contain;flex-shrink:0;filter:contrast(1.16) brightness(1.08);mix-blend-mode:lighten}
.hero-art{display:block;width:100%;max-width:520px;height:auto;justify-self:center;transform:none;mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent)}
.brand img{width:68px;height:auto}
.area-logo{display:block;width:230px;max-width:100%;height:auto;opacity:.85;margin-top:20px}
/* Show the whole photograph without enlarging the source thumbnails. */
.photos{grid-template-columns:repeat(2,minmax(0,200px));gap:10px;align-items:start}
.photos figure{min-width:0;background:transparent}
.photos img{display:block;width:100%;max-width:200px;height:auto;object-fit:contain}
.photos figcaption{position:static;display:inline-block;margin-top:10px;padding:3px 8px;font-size:12px;line-height:1.5;background:#30342d}
.pair h3{margin-top:18px}
.pair{padding-bottom:22px;border-bottom:1px solid var(--line)}
@media(max-width:1000px) and (min-width:701px){.pairs{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:32px}.hero-art{width:100%}}
@media(max-width:700px){.brand img{width:55px;height:auto}.hero-art{width:100%;max-width:350px;height:auto;margin:5px auto 10px}.area-logo{display:none}.pairs{gap:30px}.photos{grid-template-columns:repeat(2,minmax(0,200px))}.photos img{height:auto}.pair{width:100%;max-width:410px;margin-inline:auto}}

/* Before/after reveals: modest enlargement from the 200px source display. */
.pairs{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.pair{width:100%;max-width:none;margin:0}
.comparison{position:relative;width:100%;max-width:220px;aspect-ratio:1/1;background:#111210;overflow:hidden;isolation:isolate;touch-action:pan-y}
.comparison img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.comparison-before{clip-path:inset(0 calc(100% - var(--split)) 0 0)}
.comparison-label{position:absolute;top:9px;padding:3px 6px;font:12px/1.5 Work,Arial,sans-serif;letter-spacing:.7px;pointer-events:none;background:#111e;color:white}
.before-label{left:8px}.after-label{right:8px;background:#285d84ed}
.comparison-divider{position:absolute;top:0;bottom:0;left:var(--split);width:2px;background:#fff;transform:translateX(-50%);pointer-events:none;box-shadow:0 0 5px #0007}
.comparison-divider span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:38px;height:38px;display:grid;place-items:center;background:#246591;border:2px solid white;border-radius:50%;font:25px/1 Arial,sans-serif;letter-spacing:2px;color:white}
.comparison .comparison-range{position:absolute;inset:0 auto 0 -22px;width:calc(100% + 44px);height:100%;min-height:0;margin:0;padding:0;border:0;background:transparent;appearance:none;-webkit-appearance:none;cursor:ew-resize;opacity:0;z-index:3;touch-action:pan-y}
.comparison-range::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:44px;height:44px;background:transparent;border:0}
.comparison-range::-moz-range-thumb{width:44px;height:44px;background:transparent;border:0}
.comparison-range::-moz-range-track{background:transparent;border:0}
.comparison:focus-within{outline:2px solid #9ed4fa;outline-offset:4px}
.pair .compare-hint{font-size:13px;margin:8px 0 0;color:#b5b7b4}
@media(max-width:700px){.pairs{grid-template-columns:1fr;gap:30px}.pair{max-width:220px;margin-inline:auto}.comparison{max-width:220px}}

/* Full-size source photographs retain their complete portrait framing. */
.comparison{aspect-ratio:652/869}
/* Floating contact controls share an unobstructed layer above the mobile bar. */
:root{--contact-bottom:max(22px,env(safe-area-inset-bottom));--contact-side:22px}
.floating-contact{position:fixed;bottom:var(--contact-bottom);z-index:35;display:inline-flex;gap:10px;align-items:center;justify-content:center;min-height:56px;padding:13px 19px;border:1px solid #78a9cf;background:#2f6fa3;color:white;border-radius:30px;box-shadow:0 5px 22px #0008;font:19px Utility,Arial,sans-serif;letter-spacing:.4px;cursor:pointer}
.floating-contact svg{width:23px;height:23px;flex:none}.floating-call{left:var(--contact-side)}.floating-chat{right:var(--contact-side);background:#171b1e}.floating-contact:hover{background:#265a85}.chat-panel{position:fixed;right:var(--contact-side);bottom:calc(var(--contact-bottom) + 70px);z-index:36;width:365px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 170px);display:flex;flex-direction:column;background:#191c1e;border:1px solid #4b6c83;box-shadow:0 12px 45px #0009;padding:0;overflow:auto;color:var(--text)}
.chat-header{display:flex;justify-content:space-between;align-items:center;padding:19px 20px;border-bottom:1px solid #3a454d;background:#1d2b36}.chat-header h2{font-size:23px;line-height:1.1}.chat-header p{margin:6px 0 0;font-size:13px;color:#b8c7d2}.chat-header button{background:transparent;border:0;color:white;font:28px Arial;min-width:44px;min-height:44px;cursor:pointer}.chat-messages{padding:18px;overflow-y:auto;min-height:115px;max-height:240px;flex:1 1 auto;overscroll-behavior:contain}.chat-message{padding:12px 14px;margin:0 0 13px;font:15px/1.55 Work,Arial,sans-serif;color:#eeeee7;border-left:2px solid #527c9d;background:#242a2f}.chat-message.user{background:#244760;border:0;margin-left:24px}.chat-options{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 17px}.chat-options button{background:#171b1e;color:#d7e9f6;border:1px solid #526979;padding:9px 11px;font-size:14px;min-height:42px;cursor:pointer}.chat-options button:hover{background:#244760}.chat-actions{border-top:1px solid #3a454d;padding:16px 18px 0;display:flex;align-items:center;justify-content:space-between;gap:15px}.chat-actions .button{font-size:17px;padding:12px 15px}.chat-actions>a:last-child{font-size:14px;text-decoration:underline}.chat-disclosure{padding:12px 18px 16px;margin:0;font-size:12px;line-height:1.5;color:#adb8c0}footer{padding-bottom:95px}
@media(max-width:700px){:root{--contact-bottom:calc(70px + env(safe-area-inset-bottom));--contact-side:14px}.floating-contact{min-height:52px;padding:12px 15px;font-size:17px;gap:8px}.floating-contact svg{width:21px;height:21px}.chat-panel{bottom:calc(var(--contact-bottom) + 65px);max-height:calc(100dvh - 155px);width:365px}.chat-messages{max-height:190px}.mobile-bar{padding-bottom:env(safe-area-inset-bottom)}footer{padding-bottom:95px}}
@media(max-width:360px){.floating-contact{padding:12px}.floating-call span{max-width:80px}.chat-actions{gap:10px}.chat-actions .button{padding:12px 10px}}
/* Accessibility and responsive audit corrections. */
:root{--blue:#3579ad;--accent-readable:#7cb5de}
html{scroll-padding-bottom:190px}
img,svg{max-width:100%}
.wrap>*{min-width:0}
h1,h2,h3,p,a,label{overflow-wrap:break-word}
h1{font-size:clamp(3.4rem,7.6vw,6.5rem);line-height:1.02}
h2{font-size:clamp(2.5rem,4.5vw,4.125rem);line-height:1.07}
h3{line-height:1.12}
.service .num{color:var(--accent-readable)}
input,select,textarea{font-size:1rem;border-color:#85907f}
input::placeholder,textarea::placeholder{color:#acb4a6;opacity:1}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid #a5d5f7;outline-offset:4px}
:where(a,button,input,select,textarea,[tabindex]){scroll-margin-block:110px 190px}
main:focus:not(:focus-visible),section:focus:not(:focus-visible){outline:none}
.skip{position:fixed;left:12px;top:-200px}.skip:focus{top:12px;z-index:100}
.navlinks a,.footer-grid .links a{display:inline-flex;align-items:center;min-height:44px}
.menu,.chat-options button{min-height:44px;min-width:44px}
.ticker .wrap{flex-wrap:wrap;justify-content:space-around}.ticker span{white-space:normal;color:#fff}
.form-instructions{font-size:.875rem;margin:0 0 24px}
.form-note,.compare-hint,.chat-disclosure{font-size:.875rem}
.fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.comparison-controls{display:flex;gap:4px;flex-wrap:wrap;max-width:220px;margin-top:12px}
.comparison-controls button{flex:1;background:#1d2932;border:1px solid #8093a1;color:#f5f7fa;padding:9px 5px;min-width:44px;min-height:44px;font-size:.875rem;cursor:pointer}
.comparison-controls button:hover{background:#315d7d}
.chat-panel{margin:0;left:auto;top:auto;max-height:calc(100dvh - 110px);color:var(--text)}
.chat-panel::backdrop{background:#0007}
.chat-header,.chat-options,.chat-actions,.chat-disclosure{flex-shrink:0}
.chat-header h2{font-size:1.4375rem}.chat-header p{font-size:.875rem}
.chat-message{font-size:1rem}.chat-options button{font-size:.875rem}
.chat-actions{flex-wrap:wrap}.chat-actions>a:last-child{display:inline-flex;align-items:center;min-height:44px}
.chat-disclosure{font-size:.875rem}
.chat-panel .chat-messages{min-height:90px}
.hero-note{font-size:.8125rem}
.footer-bottom{gap:20px;flex-wrap:wrap;font-size:.8125rem}
@media(max-width:1100px){.nav{gap:20px}.nav .phone{display:none}}
@media(max-width:960px){.nav{min-height:76px}.nav>.button{display:none}.menu{display:block;background:transparent;color:white;border:1px solid #85907f;padding:8px 12px;font-size:1rem}.navlinks{display:none;position:absolute;top:100%;left:0;right:0;padding:16px 5%;background:#151714;flex-direction:column;font-size:1rem;border-bottom:1px solid #85907f;max-height:calc(100dvh - 90px);overflow:auto}.navlinks.open{display:flex}.services{column-gap:30px}.quote,.area-grid{gap:30px}}
@media(max-width:700px){h1{font-size:clamp(3rem,12vw,4.125rem)}h2{font-size:clamp(2.2rem,9vw,3rem)}.city-main h1{font-size:clamp(2.8rem,10vw,3.5rem)}.hero .eyebrow{font-size:.875rem;flex-wrap:wrap;letter-spacing:.5px}.hero-note{font-size:.8125rem}.ticker .wrap{gap:12px;flex-direction:column;align-items:center;text-align:center}.ticker span{white-space:normal}.ticker span:nth-of-type(n+3){display:block}.fields{grid-template-columns:1fr}.quote .big-phone{font-size:clamp(1.8rem,9vw,2.75rem)}.brand{font-size:1.125rem;gap:8px}.brand small{font-size:.8125rem;letter-spacing:1px}.brand img{width:48px}.chat-panel{bottom:calc(70px + env(safe-area-inset-bottom));max-height:calc(100dvh - 90px)}.mobile-bar a{font-size:1rem;padding:13px 7px;min-height:52px}.floating-contact{font-size:1rem;min-width:52px;min-height:52px}.floating-call span,.floating-chat span{display:none}.floating-contact{padding:14px}.chat-actions .button{font-size:1rem}.footer-grid{gap:30px}}
@media(max-height:500px){header{position:relative}.chat-panel{top:10px;bottom:10px;max-height:calc(100dvh - 20px)}.chat-messages{min-height:70px}.chat-header{padding:8px 14px}.chat-options{padding-bottom:8px}.floating-contact{min-height:44px;padding:10px}.floating-contact span{display:none}}
@media(forced-colors:active){.comparison-divider,.comparison-divider span{background:Canvas;color:CanvasText;border:2px solid CanvasText}.comparison:focus-within{outline:3px solid Highlight}.floating-contact,.comparison-controls button{border:2px solid ButtonText}.brand img,.hero-art,.area-logo{filter:none;mix-blend-mode:normal}}

.town-service{border-top:1px solid var(--line);padding:25px 0}.town-service p{margin-bottom:0}.city-services{padding:35px 0;margin:25px 0}.town-prep,.town-faq{max-width:800px;padding:30px 0}.town-prep h2,.town-faq h2{font-size:clamp(2rem,3.4vw,3rem);margin-bottom:24px}.town-prep li{margin:14px 0;color:var(--muted)}.town-faq details{border-top:1px solid #637062;padding:8px 0}.town-faq summary{font-size:1.125rem;min-height:48px;padding:12px 0;cursor:pointer}.town-faq summary:focus-visible{outline:3px solid #a5d5f7;outline-offset:4px}.town-faq p{margin:8px 0 20px}.town-cta{max-width:800px;margin:25px 0 60px;padding:25px 0;border-block:1px solid var(--line)}.town-cta p{font-size:1.125rem}

.bot-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}#spam-check{margin-bottom:18px;min-height:65px}.quote button:disabled{opacity:.65;cursor:wait}
