/* Vor-Tex design tokens (02-style-guide.md). Change colors/fonts/spacing here and the whole site follows. */
@font-face{font-family:Montserrat;font-weight:600 800;font-style:normal;font-display:swap;src:url(../fonts/montserrat-var.woff2) format("woff2")}
@font-face{font-family:Poppins;font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/poppins-400.woff2) format("woff2")}
@font-face{font-family:Poppins;font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/poppins-500.woff2) format("woff2")}
@font-face{font-family:Poppins;font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/poppins-600.woff2) format("woff2")}
@font-face{font-family:Poppins;font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/poppins-700.woff2) format("woff2")}
@font-face{font-family:"Montserrat Fallback";src:local("Arial");ascent-override:84.9%;descent-override:22%;size-adjust:114%}
@font-face{font-family:"Poppins Fallback";src:local("Arial");ascent-override:92%;descent-override:30.8%;line-gap-override:8.8%;size-adjust:113.7%}

:root{
	--ink:#000;--teal:#295959;--teal-dark:#1f4545;--teal-tint:#e8f0f0;--gold:#ffc834;--ice:#a4c7d5;--white:#fff;
	--gray-700:#404040;--gray-500:#646464;--gray-200:#eaeaea;--gray-100:#f5f5f5;
	--font-head:Montserrat,"Montserrat Fallback",Arial,sans-serif;--font-body:Poppins,"Poppins Fallback",Arial,sans-serif;
	--wide:1200px;--text:760px;--gutter:24px;--r:12px;--shadow:0 4px 16px rgba(0,0,0,.08);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font:400 17px/1.65 var(--font-body);color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--teal)}
h1,h2,h3,h4{font-family:var(--font-head);margin:0 0 .5em;line-height:1.15;font-weight:700}
h1{font-weight:800;text-transform:uppercase}
h2{font-size:clamp(1.75rem,3.2vw,2.25rem);color:var(--teal)}
h3{font-size:1.5rem;line-height:1.25}
p{margin:0 0 1em}
ul,ol{padding:0;margin:0;list-style:none}
.container{width:100%;max-width:calc(var(--wide) + var(--gutter)*2);margin:0 auto;padding:0 var(--gutter)}
.narrow{max-width:calc(var(--text) + var(--gutter)*2)}
.center{text-align:center}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--gold);color:#000;padding:12px 18px;z-index:200;font-weight:700}
.skip:focus{left:8px;top:8px}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.section{padding:96px 0}.section-sm{padding:56px 0}
.eyebrow{font:600 14px/1.4 var(--font-body);text-transform:uppercase;letter-spacing:.08em;color:var(--gray-500)}
.stars{color:var(--gold);letter-spacing:2px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:700 17px/1 var(--font-body);padding:16px 32px;min-height:50px;border-radius:999px;border:2px solid transparent;background:var(--teal);color:#fff;text-decoration:none;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.btn:hover{background:var(--teal-dark);color:#fff}
.btn-lg{font-size:19px;padding:18px 38px}
.btn-block{display:flex;width:100%}
.btn-outline{background:transparent;border-color:rgba(255,255,255,.85);color:#fff}
.btn-outline:hover{background:#fff;color:var(--teal)}
.btn-outline-dark{background:var(--teal);border-color:#fff;color:#fff}
.btn-light{background:#fff;color:var(--teal);border-color:#fff}.btn-light:hover{background:var(--teal-tint);color:var(--teal-dark)}
.btn-teal{background:var(--teal);color:#fff}
.services-home .btn-outline,.card .btn-outline{border-color:rgba(255,255,255,.85)}
.entry .btn-outline,.recent .btn-outline,.reviews .btn-outline,.nearby .btn-outline,.city-card .btn-outline{border-color:var(--teal);color:var(--teal)}
.entry .btn-outline:hover,.reviews .btn-outline:hover,.city-card .btn-outline:hover{background:var(--teal);color:#fff}

/* Season bar + header */
.season-bar{background:var(--teal-dark);color:#fff;font:500 14px/1.4 var(--font-body);text-align:center;padding:8px 0}
.season-bar a{color:var(--gold);font-weight:700;text-decoration:none;margin-left:6px;white-space:nowrap}
.site-header{background:#000;color:#fff;position:relative;z-index:50}
.topbar{padding:14px 0}
.topbar-grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
.tb-left .rating{margin:0 0 14px;font-size:17px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}
.r-num{font:800 36px/1 var(--font-head);color:var(--gold)}
.tb-left .stars{font-size:26px}
.r-link{color:#fff;font-size:15px;text-decoration:underline}
.serving{margin:0;font-size:14px;line-height:1.3}
.serving strong{display:block;font:700 22px/1.2 var(--font-head)}
.serving-lic{display:block;margin-top:6px;font-size:13px;color:var(--ice);letter-spacing:.04em}
.logo img{width:300px;max-width:100%}
.tb-right{display:flex;flex-direction:column;align-items:flex-end;gap:14px}
.tb-cta{padding:14px 30px}
.call{margin:0;text-align:right;line-height:1.2}
.call span{display:block;font:700 15px var(--font-head)}
.call .phone{font:800 32px/1.1 var(--font-head);color:#fff;text-decoration:none;letter-spacing:.01em}
.call .phone:hover{color:var(--gold)}
.nav-toggle{display:none}

/* Nav bar */
.main-nav{background:var(--teal);position:sticky;top:0;z-index:60;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.nav-list{display:flex;justify-content:center;align-items:stretch;gap:8px}
.nav-list>li{position:relative;display:flex;align-items:center}
.nav-list>li>a{display:block;color:#fff;font:600 18px/1 var(--font-head);padding:26px 22px;text-decoration:none;border-top:3px solid transparent}
.nav-list>li>a:hover,.nav-list>li>a[aria-current]{border-top-color:#fff}
.sub-toggle{background:none;border:0;color:#fff;width:22px;height:22px;margin-left:-14px;cursor:pointer;position:relative}
.sub-toggle::after{content:"";position:absolute;inset:6px 5px auto auto;width:8px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);transition:transform .15s}
.sub-toggle[aria-expanded=true]::after{transform:rotate(-135deg);inset:9px 5px auto auto}
.sub{display:none;position:absolute;top:100%;left:0;min-width:300px;background:var(--teal);box-shadow:0 10px 24px rgba(0,0,0,.3);padding:8px 0;border-radius:0 0 var(--r) var(--r)}
.has-sub:hover>.sub,.has-sub:focus-within>.sub,.sub.open{display:block}
.sub a{display:block;color:#fff;font:600 16px/1.3 var(--font-head);padding:12px 22px;text-decoration:none}
.sub a:hover{background:var(--teal-dark)}
.nav-phone{display:none!important;margin-left:auto}
.main-nav.is-stuck .nav-phone{display:flex!important}
.nav-phone a{background:#fff;color:var(--teal)!important;border-radius:999px;padding:12px 22px!important;margin:8px 0;border:0!important;font-size:17px!important}

/* Hero */
.hero{position:relative;color:#fff;background:linear-gradient(180deg,rgba(31,69,69,.25) 0%,rgba(0,0,0,.35) 45%,rgba(0,0,0,.82) 100%),var(--hero-img) center 25%/cover no-repeat,#1f4545;min-height:640px;display:flex;align-items:flex-end;padding:72px 0 64px}
.hero-inner{min-height:520px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:48px;align-items:end}
.hero:not(:has(.hero-card)) .hero-grid{grid-template-columns:1fr}
.hero h1{font-size:clamp(2.2rem,5.2vw,3.6rem);margin-bottom:.25em;text-shadow:0 2px 12px rgba(0,0,0,.5)}
.hero-sub{font:700 clamp(1.15rem,2.2vw,1.6rem)/1.3 var(--font-head);margin-bottom:1.1em;text-shadow:0 2px 10px rgba(0,0,0,.5)}
.proof-lines{margin:0 0 1.6em}
.proof-lines li{font:600 clamp(1rem,1.7vw,1.25rem)/1.5 var(--font-head);text-shadow:0 2px 8px rgba(0,0,0,.55)}
.request-card{background:rgba(41,89,89,.96);border:3px solid #fff;border-radius:var(--r);padding:28px;box-shadow:0 12px 36px rgba(0,0,0,.4);color:#fff}
.request-card h2{color:#fff;text-align:center;font-size:1.5rem;margin-bottom:.6em}
.rc-note{font-size:17px;text-align:center;font-weight:500}
.rc-small{font-size:14px;text-align:center;margin:14px 0 0;color:var(--teal-tint)}
.ico{flex:none}

/* Trust strip */
.trust-strip{background:var(--teal-tint);border-bottom:1px solid #d3e0e0}
.trust-list{display:grid;grid-template-columns:repeat(6,1fr);gap:8px 20px;padding-top:18px;padding-bottom:18px}
.trust-list li{text-align:center;font-size:14px;line-height:1.35;display:flex;flex-direction:column;gap:2px}
.trust-list strong{font:700 15px/1.3 var(--font-head);color:var(--teal-dark)}
.trust-list span{color:var(--gray-700)}
.trust-list .stars{font-size:15px}

/* Breadcrumbs */
.crumbs{background:#fff;border-bottom:1px solid var(--gray-200)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:6px;padding-top:14px;padding-bottom:14px;font-size:14px;color:var(--gray-500)}
.crumbs li+li::before{content:"›";margin-right:6px;color:var(--gray-500)}
.crumbs a{color:var(--teal);text-decoration:none}.crumbs a:hover{text-decoration:underline}

/* Intro */
.intro h2{max-width:900px;margin-left:auto;margin-right:auto}
.divider{display:flex;align-items:center;gap:18px;color:var(--teal);margin:18px auto 30px;max-width:420px}
.divider::before,.divider::after{content:"";flex:1;height:2px;background:var(--teal)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:40px;font-size:17px}

/* Why panel */
.why-panel{background:var(--teal);border-radius:var(--r);padding:56px;display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center;color:#fff}
.why-panel h2{color:#fff}
.chevrons li{font:500 19px/1.4 var(--font-body);padding:12px 0 12px 56px;position:relative}
.chevrons li::before{content:"»";position:absolute;left:0;top:-4px;font:800 56px/1 var(--font-head);color:#fff}
.why-panel img{border-radius:var(--r);width:100%;max-height:430px;object-fit:cover}

/* Warranty */
.warranty{background:#000}
.warranty-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:stretch}
.warranty-grid>img{width:100%;height:100%;object-fit:cover;border-radius:4px}
.warranty-card{background:#fff;border:6px solid var(--teal);padding:44px 36px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}
.warranty-card img{width:220px;margin-bottom:14px}
.warranty-card h2{color:#000;font-size:1.9rem}
.warranty-card .strong{font:700 1.35rem var(--font-head);margin-top:.4em}

/* Service cards */
.services-home{background:linear-gradient(180deg,var(--teal) 0%,#0c1c1c 100%);color:#fff}
.on-dark{color:#fff;margin-bottom:1.2em}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 32px}
.card{display:flex;flex-direction:column}
.card img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r)}
.card-body{display:flex;flex-direction:column;flex:1;padding-top:18px}
.card h3{color:#fff}
.card p{color:#fff;flex:1;font-size:16px}
.card .btn{align-self:center;min-width:200px}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:36px}
.steps li{background:var(--gray-100);border-radius:var(--r);padding:28px 24px;text-align:center}
.steps span{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--teal);color:#fff;font:800 22px var(--font-head);margin-bottom:12px}
.steps h3{font-size:1.2rem;color:var(--teal)}.steps p{font-size:15px;margin:0}

/* Recent */
.recent{background:var(--gray-100)}
.recent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:28px}
.recent figure{margin:0}
.recent img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r)}
.recent figcaption{font-size:14px;color:var(--gray-700);margin-top:8px;text-align:center}

/* Reviews */
.reviews{background:#fff}
.reviews h2{text-align:center}
.reviews-sum{text-align:center;font-size:18px;margin-bottom:28px}
.review-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-bottom:28px}
.review{margin:0;background:var(--teal-tint);border-radius:var(--r);padding:26px}
.review blockquote{margin:8px 0 12px;font-size:18px}.review blockquote p{margin:0}
.review figcaption{font-size:14px;color:var(--gray-700)}

/* FAQ */
.faq h2{margin-bottom:.8em}
.faq-item{background:var(--teal-tint);border-radius:var(--r);margin-bottom:14px}
.faq-item summary{list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:20px 24px;cursor:pointer;font:700 18px/1.35 var(--font-head)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary i{flex:none;width:34px;height:34px;border-radius:50%;background:#000;position:relative}
.faq-item summary i::after{content:"";position:absolute;left:11px;top:9px;width:9px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);transition:transform .15s}
.faq-item[open] summary i::after{transform:rotate(-135deg);top:14px}
.faq-a{padding:0 24px 20px}.faq-a p{margin:0}

/* Pills, area strip, brands */
.pill-list{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:18px}
.pill-list li a,.pill-list li span{display:block;padding:10px 20px;border-radius:999px;background:var(--teal-tint);color:var(--teal-dark);text-decoration:none;font:600 15px var(--font-body)}
.pill-list li a:hover{background:var(--teal);color:#fff}
.area-strip{background:var(--gray-100)}
.brands .bbb{display:inline-block;margin-bottom:12px}
.brand-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;max-width:960px;margin:18px auto 0;border:1px solid var(--gray-200)}
.brand-grid li{border:1px solid var(--gray-200);display:grid;place-items:center;padding:6px;background:#fff}
.brand-grid img{max-height:96px;width:auto;object-fit:contain}

/* CTA */
.cta-band{background:var(--teal);color:#fff;text-align:center;padding:64px 0}
.cta-band h2{color:#fff;margin-bottom:.3em}.cta-band p{margin-bottom:1.4em}

/* Inner page content */
.prose{font-size:18px}
.prose h2{margin-top:1.6em}.prose h3{color:var(--teal);margin-top:1.4em}
.prose ul{list-style:disc;padding-left:1.4em;margin:0 0 1.2em}.prose ul li{margin-bottom:.4em}
.prose ol{list-style:decimal;padding-left:1.4em;margin:0 0 1.2em}
.prose table{width:100%;border-collapse:collapse;margin:1.2em 0;font-size:16px}
.prose th,.prose td{border:1px solid var(--gray-200);padding:12px 14px;text-align:left;vertical-align:top}
.prose th{background:var(--teal);color:#fff;font-family:var(--font-head)}
.prose .callout{background:var(--teal-tint);border-left:6px solid var(--teal);border-radius:8px;padding:18px 22px;margin:1.4em 0}
.prose .request-card{margin:1.4em 0}
.updated{font-size:14px;color:var(--gray-500)}
h1.plain{text-transform:none;color:var(--teal)}
.city-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:1.4em 0}
.city-card{background:var(--gray-100);border-radius:var(--r);padding:22px}
.city-card h3{color:var(--teal);font-size:1.25rem;margin-bottom:.3em}.city-card p{font-size:15px}
.soon{font-size:14px;color:var(--gray-500)}

/* Footer */
.site-footer{background:#000;color:#fff;padding-top:64px}
.footer-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:48px}
.site-footer h2{color:#fff;font-size:1.4rem;text-transform:uppercase;padding-bottom:12px;margin-bottom:16px;position:relative}
.site-footer h2::after{content:"";position:absolute;left:0;bottom:0;width:90px;height:3px;background:linear-gradient(90deg,#fff,transparent)}
.f-links.cols{columns:2;column-gap:24px}
.f-links li{margin-bottom:6px;font-size:16px}
.site-footer a{color:#fff;text-decoration:none}.site-footer a:hover{color:var(--gold)}
.f-phone{font:800 1.6rem var(--font-head)}
address{font-style:normal;margin-bottom:1em}
.social{display:flex;gap:16px}
.hours{display:flex;justify-content:space-between;gap:16px;max-width:360px}
.f-strong{font-weight:700}.f-note{font-size:14px;color:var(--ice)}
.f-site-links{padding-top:36px;padding-bottom:36px}
.f-site-links ul{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:15px}
.f-bottom{border-top:1px solid #222;padding:18px 0;font-size:14px;text-align:center;color:#bbb}

/* Mobile call bar */
.call-bar{display:none}

@media (max-width:1100px){
	.nav-list>li>a{padding:24px 14px;font-size:16px}
	.call .phone{font-size:26px}.logo img{width:240px}
	.card-grid{grid-template-columns:repeat(2,1fr)}
	.trust-list{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:860px){
	body{font-size:16px;padding-bottom:64px}
	.section{padding:56px 0}.section-sm{padding:40px 0}
	.topbar{padding:10px 0}
	.topbar-grid{grid-template-columns:auto 1fr auto;gap:12px}
	.tb-left{display:none}
	.logo img{width:128px}
	.tb-right{align-items:flex-end;gap:0;min-width:max-content}.tb-cta{display:none}
	.call span{display:none}.call .phone{font-size:17px;white-space:nowrap}
	.season-bar{font-size:12px;padding:6px 0}
	.nav-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;background:var(--teal);border:2px solid #fff;border-radius:10px;padding:0 10px;cursor:pointer}
	.nav-toggle i{display:block;height:3px;background:#fff;border-radius:2px}
	.main-nav{display:none;position:static}
	.main-nav.open{display:block;position:fixed;inset:0;top:0;overflow:auto;background:var(--teal);z-index:100;padding-top:76px}
	.nav-list{flex-direction:column;gap:0;padding:0 8px 80px}
	.nav-list>li{flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,.18)}
	.nav-list>li>a{flex:1;padding:18px 12px;border-top:0;font-size:19px}
	.sub-toggle{width:56px;height:56px;margin:0}.sub-toggle::after{inset:22px 22px auto auto}.sub-toggle[aria-expanded=true]::after{inset:26px 22px auto auto}
	.sub{position:static;display:none;width:100%;box-shadow:none;background:var(--teal-dark);border-radius:0}
	.sub.open{display:block}
	.nav-phone{display:none!important}
	.hero{min-height:0;padding:48px 0 40px}
	.hero-grid{grid-template-columns:1fr;gap:28px}
	.hero .btn-lg{width:100%}
	.trust-list{grid-template-columns:repeat(2,1fr);padding-top:14px;padding-bottom:14px}
	.two-col,.why-panel,.warranty-grid,.review-grid,.city-grid,.footer-grid{grid-template-columns:1fr}
	.why-panel{padding:32px 22px;gap:28px}
	.chevrons li{font-size:17px;padding-left:46px}.chevrons li::before{font-size:46px}
	.steps,.recent-grid,.card-grid{grid-template-columns:1fr}
	.brand-grid{grid-template-columns:repeat(2,1fr)}
	.f-links.cols{columns:2}
	.site-footer{padding-bottom:12px}
	.call-bar{display:grid;grid-template-columns:3fr 2fr;position:fixed;left:0;right:0;bottom:0;z-index:90;background:#000;border-top:2px solid var(--teal);transform:translateY(110%);transition:transform .2s}
	.call-bar.show{transform:none}
	.call-bar a{display:flex;align-items:center;justify-content:center;min-height:60px;font:700 17px var(--font-body);text-decoration:none}
	.cb-call{background:var(--teal);color:#fff}.cb-book{background:#fff;color:var(--teal);gap:8px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.svc-lists{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 40px}
.svc-lists section{background:var(--gray-100);border-radius:var(--r);padding:20px 24px;margin-bottom:16px}
.svc-lists h3{margin:0 0 .5em;font-size:1.2rem}
.svc-lists ul{margin:0!important;padding-left:1.2em!important}
@media (max-width:860px){.svc-lists{grid-template-columns:1fr}}

.nav-list>li.nav-mobile-cta{display:none}
@media (max-width:860px){
	.call .phone{white-space:nowrap;font-size:17px}
	.nav-open .nav-toggle{position:fixed;top:14px;right:16px;z-index:120;background:#fff}
	.nav-open .nav-toggle i{display:none}
	.nav-open .nav-toggle::after{content:"\00d7";font:700 38px/1 var(--font-head);color:var(--teal);align-self:center}
	.main-nav.is-stuck .nav-phone{display:none!important}
	.nav-list>li.nav-mobile-cta{display:flex;flex-direction:column;gap:12px;border-bottom:0!important;padding:24px 12px}
	.nav-list>li.nav-mobile-cta>a{flex:none;width:100%;border-top:0;padding:17px 24px;justify-content:center;font-size:18px}
	.nav-list>li.nav-mobile-cta>a.btn-light{color:var(--teal)}
	.nav-list>li.nav-mobile-cta>a.btn-outline{color:#fff;border-color:#fff}
}

/* Cards on white (services hub) */
.prose .card-grid{grid-template-columns:repeat(2,1fr);gap:32px 24px;margin:1.4em 0}
.prose .card h3{color:var(--teal);margin-top:0}
.prose .card p{color:var(--ink);font-size:16px}
.prose .card .btn-outline{border-color:var(--teal);color:var(--teal)}
.prose .card .btn-outline:hover{background:var(--teal);color:#fff}
.prose .card img{margin:0}
@media (max-width:860px){.prose .card-grid{grid-template-columns:1fr}}

/* Hero video (homepage) */
.hero-media-controls{position:absolute;z-index:5;top:18px;left:max(var(--gutter),calc((100% - var(--wide)) / 2 + var(--gutter)));display:flex;align-items:center;gap:10px}
.vtx-unmute,.vtx-playpause{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;border-radius:999px;border:2px solid #fff;background:rgba(41,89,89,.94);color:#fff;font:700 15px/1 var(--font-body);cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.4);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .15s,transform .15s}
.vtx-unmute{padding:11px 20px 11px 15px}
.vtx-playpause{width:46px;padding:0}
.vtx-unmute:hover,.vtx-playpause:hover{background:var(--teal-dark);transform:translateY(-1px)}
.vtx-unmute:focus-visible,.vtx-playpause:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.vtx-unmute .ico-on,.vtx-playpause .ico-play{display:none}
.vtx-unmute:not(.is-muted) .ico-on{display:block}
.vtx-unmute:not(.is-muted) .ico-off{display:none}
.vtx-unmute:not(.is-muted){background:#fff;color:var(--teal)}
.vtx-playpause.is-paused .ico-play{display:block}
.vtx-playpause.is-paused .ico-pause{display:none}
.vtx-unmute.pulse::after{content:"";position:absolute;inset:-7px;border-radius:999px;border:2px solid var(--gold);opacity:0;pointer-events:none;animation:vtx-ring 1.9s ease-out 4 .8s}
@keyframes vtx-ring{0%{opacity:.9;transform:scale(.94)}100%{opacity:0;transform:scale(1.18)}}
@media (max-width:860px){
	.hero-media-controls{top:12px;left:var(--gutter)}
	.vtx-unmute{padding:10px 16px 10px 12px;font-size:14px}
}
@media (prefers-reduced-motion:reduce){.vtx-unmute.pulse::after{animation:none}}


/* Google badge */
.g-badge{display:inline-block;flex:none;border-radius:50%;vertical-align:middle}
.tb-left .rating{align-items:center;gap:8px}
.trust-list .g-badge{vertical-align:-5px;margin-right:3px}

/* Housecall Pro callback form (iframe) */
:root{--hcp-filter:hue-rotate(-45deg) saturate(.4)} /* turns Housecall's blue button a muted brand teal. Set to none to restore Housecall blue. */
.request-card.has-form{padding:10px 10px 14px}
.hcp-frame{background:#fff;border-radius:8px;overflow:hidden}
.hcp-lead-iframe{display:block;width:100%;min-height:430px;border:0;filter:var(--hcp-filter)}
.rc-call{margin:10px 6px 0;text-align:center;font-size:14px;line-height:1.5;color:#fff}
.rc-call a{color:#fff;font-weight:700;white-space:nowrap}
.rc-note{margin:0;padding:18px;color:var(--ink);text-align:center}
.prose .request-card.has-form{max-width:460px;margin:1.6em auto}

/* Reviews */
.review-grid-3{grid-template-columns:repeat(3,1fr)}
.review-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.review blockquote p{font-size:16px;margin:0 0 .8em}
.review blockquote{margin:6px 0 12px}
.reviews-sum{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.reviews-hero{display:flex;align-items:center;gap:22px;flex-wrap:wrap;background:var(--teal-tint);border-radius:var(--r);padding:26px 30px;margin:0 0 32px}
.rv-score{margin:0;font:800 2.2rem/1 var(--font-head);color:var(--teal-dark)}
.rv-score .stars{font-size:1.6rem;margin-left:8px}
.rv-count{margin:.4em 0 0;font-size:16px}
.rv-actions{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}
.entry .rv-actions .btn-outline{color:var(--teal);border-color:var(--teal)}
.review-columns{columns:2;column-gap:22px}
.review-columns .review{break-inside:avoid;margin:0 0 22px}
.more-reviews{margin:8px 0 0}
.more-reviews summary{list-style:none;cursor:pointer;display:flex;width:max-content;margin:0 auto 26px}
.more-reviews summary::-webkit-details-marker{display:none}
.more-reviews[open] summary{display:none}
.rv-note{font-size:14px;color:var(--gray-500);text-align:center}

/* Footer: financing + payments */
.f-pay{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;padding-top:28px;padding-bottom:34px;align-items:start;border-top:1px solid #222}
.f-fin p{margin:0;font-size:16px;color:#e7f0f0;max-width:480px}
.f-methods ul{display:flex;flex-wrap:wrap;gap:8px}
.f-methods li{background:#fff;border-radius:6px;height:38px;padding:0 12px;display:flex;align-items:center}
.f-methods li img{display:block;height:22px;width:auto}
.f-methods li.txt{color:#111;font:600 14px var(--font-body)}

/* About page (wide layout) */
.prose-wide{max-width:calc(var(--wide) + var(--gutter) * 2)}
.about-hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:48px;align-items:center;margin-bottom:40px}
.about-photo{margin:0}
.about-photo img{width:100%;height:auto;border-radius:var(--r);box-shadow:var(--shadow)}
.about-photo figcaption{font-size:14px;color:var(--gray-500);text-align:center;margin-top:8px}
.about-text h2{margin-top:0}
.about-narrow{max-width:860px;margin:0 auto 48px}
.about-mission{background:var(--teal);color:#fff;border-radius:var(--r);padding:48px;margin:0 0 48px}
.about-mission h2{color:#fff;margin-top:0}
.about-mission p{color:#fff}
.about-mission .lead{font:700 1.5rem/1.35 var(--font-head)}
.about-mission .sig{font:700 1.2rem/1.4 var(--font-head);margin:1.4em 0 0}
.about-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-bottom:24px}
.about-facts h3{margin-top:0;font-size:1.1rem}
.about-facts ul{margin:0}

@media (max-width:1100px){.review-grid-3{grid-template-columns:1fr}}
@media (max-width:860px){
	.review-columns{columns:1}
	.rv-actions{margin-left:0}
	.reviews-hero{padding:20px}
	.f-pay{grid-template-columns:1fr;gap:24px}
	.about-hero,.about-facts{grid-template-columns:1fr}
	.about-hero{gap:24px}
	.about-mission{padding:28px 22px}
	.about-mission .lead{font-size:1.25rem}
}

/* Heroes with the callback form are taller: keep the headline near the top, not pushed below the fold */
@media (min-width:861px){
	.hero:has(.hero-card) .hero-grid{align-items:start}
	.hero:has(.hero-card){padding-top:64px}
	.hero:has(.hero-card) .hero-copy{padding-top:12px}
}


/* Hero buttons: Book Now (primary) + Request a callback */
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.hero-ctas .btn-outline{background:rgba(0,0,0,.28);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.callback-band{background:var(--teal-tint);padding:72px 0;scroll-margin-top:70px}
.callback-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,460px);gap:56px;align-items:center}
.callback-copy .eyebrow{color:var(--teal);margin:0 0 .5em}
.callback-copy h2{margin-bottom:.5em}
.callback-copy p{font-size:18px}
.callback-copy a{font-weight:700;white-space:nowrap}
.callback-points{margin:1.2em 0 0}
.callback-points li{position:relative;padding:6px 0 6px 34px;font-size:16px}
.callback-points li::before{content:"\2713";position:absolute;left:0;top:5px;width:24px;height:24px;border-radius:50%;background:var(--teal);color:#fff;font:700 14px/24px var(--font-body);text-align:center}
.callback-form .request-card{margin:0}
#book{scroll-margin-top:80px}
@media (max-width:860px){
	.hero-ctas .btn-lg{width:100%}
	.callback-band{padding:44px 0}
	.callback-grid{grid-template-columns:1fr;gap:28px}
	.callback-copy p{font-size:17px}
}

/* Header: Book Now (primary) + Request Callback side by side, phone below */
.tb-ctas{display:flex;gap:10px}
.tb-cta{padding:13px 22px;font-size:16px;min-height:46px}
.tb-book{background:#fff;color:var(--teal);border-color:#fff}
.tb-book:hover{background:var(--teal-tint);color:var(--teal-dark)}
@media (min-width:861px) and (max-width:1080px){.tb-ctas{flex-direction:column;gap:8px}}
@media (max-width:860px){.tb-ctas{display:none}}
/* Sticky nav: Book Now beside the phone pill */
.nav-phone{gap:10px;align-items:center}
.nav-phone a{display:inline-flex;align-items:center;gap:8px}
.nav-phone a.nav-book{background:var(--teal-dark);color:#fff!important;box-shadow:inset 0 0 0 2px #fff}
.nav-phone a.nav-book:hover{background:#fff;color:var(--teal)!important}
@media (max-width:1200px){.nav-phone a.nav-book{display:none}}
/* Service Areas dropdown: two columns on desktop, anchored right so it never runs off screen */
@media (min-width:861px){.sub-areas{left:auto;right:0;min-width:400px;columns:2;column-gap:0}.sub-areas li{break-inside:avoid}}

/* Callback button hides when the form is right beside it */
@media (min-width:861px){.hero:has(.hero-card):not(.card-wide) .hero-ctas .js-callback{display:none}}
.cta-band-btns{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.cta-band-btns .btn-outline{border-color:#fff;color:#fff}
.cta-band-btns .btn-outline:hover{background:#fff;color:var(--teal)}

/* Home hero: photo of Dillon and the van, kept clear (Book Now + Request a callback buttons).
   The callback form sits in the band right under the hero (#book). */
.hero.hero-home{min-height:640px;padding-top:96px;background-position:0 0,72% 22%}
.hero-home .hero-copy{max-width:600px}
@media (max-width:860px){.hero.hero-home{min-height:560px;padding-top:84px;background-position:0 0,74% 18%}}

/* Housecall Pro online booking modal (opened by .js-book links) */
.vtx-book-modal{position:fixed;inset:0;z-index:2147483000;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.6)}
.vtx-book-modal.open{display:flex}
.vtx-book-modal iframe{display:block;width:100%;height:100%;border:0;background:transparent}
body.vtx-book-open{overflow:hidden}

