/* Restore the earlier photo-led design while retaining the new SEO/content. */
.home-hero{padding-top:190px;padding-bottom:60px;background:linear-gradient(90deg,rgba(9,29,39,.92),rgba(11,34,44,.72) 55%,rgba(16,32,42,.35)),url('images/hero-bg.webp') center 48%/cover no-repeat}.hero-grid{grid-template-columns:minmax(0,1.25fr) minmax(340px,.8fr);gap:76px}.home-hero h1{font-size:clamp(58px,5.8vw,84px);line-height:1.09}.quote-stack{position:relative;padding-top:108px;min-width:0}.floating-van{position:absolute;width:310px;height:190px;object-fit:contain;left:50%;top:-31px;transform:translateX(-50%);z-index:2;filter:drop-shadow(0 14px 14px #06172335);pointer-events:none}.hero-card{border-radius:22px;overflow:visible;box-shadow:0 24px 60px #00122233}.hero-card-body{padding:37px 30px 25px}.hero-card h2{font-size:25px;letter-spacing:-.8px;line-height:1.25}.hero-card h2 span{color:#157d90}.hero-card-body .eyebrow{font-size:9px;letter-spacing:1.3px}.trust-photo-layout{display:grid;grid-template-columns:.9fr 1.3fr;gap:34px;align-items:stretch}.working-photo{width:100%;height:100%;min-height:460px;max-height:670px;object-fit:cover;object-position:center;border-radius:16px}.trust-photo-layout .cards{grid-template-columns:1fr;gap:15px}.trust-photo-layout .card{padding:23px 27px;display:grid;grid-template-columns:36px 1fr;column-gap:18px}.trust-photo-layout .card-number{grid-row:1/4;margin:0;width:34px;height:34px}.trust-photo-layout .card h3{font-size:21px;margin-bottom:9px}.trust-photo-layout .card p{margin-bottom:12px;font-size:13px}.trust-photo-layout .card a{grid-column:2}.service-card-photo,.guide-card-photo{width:calc(100% + 54px);max-width:none;height:200px;object-fit:cover;margin:-27px -27px 25px;border-radius:14px 14px 0 0}.service-card-photo{object-position:center}.card:has(.service-card-photo),.card:has(.guide-card-photo){overflow:hidden}.gallery-heading{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;margin-bottom:35px}.gallery-heading h2{font-size:40px;margin-bottom:0}.gallery-heading p{font-size:14px}.gallery-heading .button{margin-top:5px}.gallery-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.gallery-photos figure{margin:0;background:#fff;border-radius:12px;overflow:hidden}.gallery-photos img{width:100%;height:220px;object-fit:cover}.gallery-photos figcaption{padding:15px 18px;color:#23444d;font-size:13px;font-weight:700}.inner-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:55px;align-items:center}.inner-hero-copy{min-width:0}.inner-hero-photo{margin:0;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 20px 35px #08252c30}.inner-hero-photo img{width:100%;height:330px;object-fit:cover}.inner-hero-photo figcaption{padding:14px 17px;color:#41646e;font-size:10px;font-weight:700;letter-spacing:.5px}.page-hero h1{font-size:clamp(34px,3.7vw,52px)}.page-hero .lead{font-size:15px}.page-hero .breadcrumbs{margin-bottom:22px}.video-card{position:relative;padding:0 0 22px;overflow:hidden}.video-card img{width:100%;height:200px;object-fit:cover}.video-card .play{position:absolute;top:145px;right:18px;box-shadow:0 5px 15px #0003}.video-card h3,.video-card p{margin-left:23px;margin-right:23px}.video-card h3{margin-top:22px}.split img{box-shadow:0 14px 35px #123c4610}
@media(max-width:1100px){.hero-grid{gap:35px}.home-hero h1{font-size:64px}.inner-hero-grid{gap:30px}.inner-hero-photo img{height:310px}.service-card-photo,.guide-card-photo{width:calc(100% + 46px);margin:-23px -23px 23px}.trust-photo-layout{gap:24px}.gallery-photos img{height:180px}}
@media(max-width:800px){.home-hero{padding-top:135px}.hero-grid{grid-template-columns:1fr;gap:38px}.home-hero h1{font-size:68px}.quote-stack{width:100%;max-width:520px;margin:auto}.hero-card{max-width:none}.hero-card-body{padding:35px 28px 25px}.trust-photo-layout{grid-template-columns:1fr}.working-photo{height:340px;min-height:0;max-height:none;object-position:50% 40%}.inner-hero-grid{grid-template-columns:1fr;gap:30px}.inner-hero-photo{max-width:620px;width:100%}.inner-hero-photo img{height:320px}.gallery-heading{gap:30px}.gallery-heading h2{font-size:33px}.gallery-photos{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.gallery-photos img{height:145px}.gallery-photos figcaption{font-size:11px;padding:12px}.video-card img{height:170px}.video-card .play{top:118px}}
@media(max-width:520px){.home-hero{padding-top:125px;background-position:65% top}.home-hero h1{font-size:clamp(48px,12vw,64px)}.quote-stack{padding-top:100px}.floating-van{width:285px;height:180px;top:-32px}.hero-card-body{padding:33px 22px 22px}.hero-card h2{font-size:25px}.working-photo{height:300px}.trust-photo-layout .card{padding:23px;grid-template-columns:32px 1fr;gap:9px 15px}.trust-photo-layout .card h3{font-size:19px}.trust-photo-layout .card p{font-size:13px}.service-card-photo,.guide-card-photo{width:calc(100% + 50px);margin:-25px -25px 23px;height:215px}.gallery-heading{grid-template-columns:1fr;gap:20px;margin-bottom:25px}.gallery-heading h2{font-size:31px}.gallery-photos{grid-template-columns:1fr;gap:18px}.gallery-photos img{height:auto;max-height:310px;object-fit:cover}.gallery-photos figcaption{font-size:13px;padding:15px 18px}.inner-hero-photo img{height:245px}.inner-hero-photo figcaption{font-size:9px;padding:13px}.page-hero h1{font-size:36px}.video-card img{height:220px}.video-card .play{top:165px}}

/* Provider comparison uses the same restrained card language as service pages. */
.provider-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:32px}.provider{display:flex;gap:19px;padding:26px;background:#fff;border:1px solid #e3ebed;border-radius:16px;box-shadow:0 12px 32px #123c460b}.provider>span{color:#168193;font-weight:800;font-size:18px;line-height:1.3}.provider h3{margin:0 0 9px}.provider p{margin:0 0 12px}.provider a{font-weight:700}.local-reading{max-width:800px;line-height:1.75}.local-reading p{margin:16px 0}
@media(max-width:680px){.provider-list{grid-template-columns:1fr}.provider{padding:20px}}
/* Clear button contrast in dark sections, including the image gallery. */
.dark a.button,.dark a.button:hover,.closing a.button,.closing a.button:hover{color:#173b36;background:#c2ea83}
.dark a.button:focus-visible,.closing a.button:focus-visible{outline-color:#fff}
/* The Services control opens a full, keyboard-accessible menu. */
.nav-dropdown{position:relative;font-size:12px;font-weight:700;color:var(--ink)}
.nav-dropdown summary{cursor:pointer;list-style:none;white-space:nowrap;line-height:1.6}
.nav-dropdown summary::-webkit-details-marker{display:none}
.nav-dropdown summary:after{content:' ▾';color:#16788b}
.nav-dropdown[open] summary:after{content:' ▴'}
.nav-dropdown[open]::after{content:"";position:absolute;top:100%;left:-15px;width:250px;height:17px}
.nav-submenu{position:absolute;top:calc(100% + 16px);left:-15px;width:250px;display:grid;padding:9px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 32px #092c3a25;z-index:30}
.nav-submenu a{padding:8px 11px;color:var(--ink);font-size:12px;border-radius:6px;line-height:1.45}
.nav-submenu a:hover,.nav-submenu a:focus-visible{background:#edf6f3;text-decoration:none}
.quote-form .form-fallback{border:0;background:none;color:#0b6480;text-decoration:underline;font-weight:800;cursor:pointer;padding:0;font-size:inherit}
.video-card{overflow:hidden}
.video-launch{display:block;position:relative;padding:0;border:0;width:100%;cursor:pointer;background:#102e37}
.video-card .video-launch img{width:100%;height:200px;object-fit:cover}
.video-card .video-launch .play{position:absolute;top:auto;bottom:15px;right:18px;box-shadow:0 5px 15px #0003}
.video-card iframe{display:block;width:100%;height:200px;border:0;background:#071920}
.video-card>a{display:inline-block;margin:5px 23px 0;color:#d0eaef;font-size:12px}
@media(max-width:800px){
 .nav-shell nav.open{max-height:calc(100dvh - 160px);overflow-y:auto;align-content:start}
 .nav-dropdown{grid-column:1/-1;padding:10px;font-size:14px}
 .nav-dropdown[open]::after{display:none}
 .nav-submenu{position:static;width:100%;margin-top:8px;box-shadow:none}
 .nav-submenu a{font-size:13px;padding:9px 12px}
 .mobile-actions a{display:flex;align-items:center;justify-content:center;min-width:0;font-size:11px;padding:13px 4px;line-height:1.2}
 .mobile-actions a:nth-child(2),.mobile-actions a:nth-child(2):hover{background:var(--lime);color:#183c36}
 .mobile-actions a:nth-child(3),.mobile-actions a:nth-child(3):hover{background:#167b57;color:#fff}
 .video-card iframe,.video-card .video-launch img{height:170px}
}
@media(max-width:520px){.mobile-actions{left:9px;right:9px;bottom:9px}.mobile-actions a{font-size:10px;padding:14px 2px}.video-card iframe,.video-card .video-launch img{height:220px}}
/* Mobile contact controls: WhatsApp sits in a slim right-side tab. */
.whatsapp-side{display:none}
@media(max-width:800px){
 .mobile-actions a{flex:1}
 .whatsapp-side{display:flex;align-items:center;justify-content:center;position:fixed;right:0;top:50%;z-index:48;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;min-height:132px;padding:17px 10px;background:#177b55;color:#fff;font-size:12px;letter-spacing:.3px;font-weight:800;line-height:1.3;border-radius:0 8px 8px 0;box-shadow:0 7px 20px #071e2740}
 .whatsapp-side:hover,.whatsapp-side:focus-visible{background:#0c6542;color:#fff;text-decoration:none}
}
/* A softer, slimmer WhatsApp tab stays alongside the mobile viewport edge. */
@media(max-width:800px){
 .whatsapp-side,.whatsapp-side:hover,.whatsapp-side:focus-visible{background:#25d366;color:#123c2b;min-height:112px;padding:13px 7px;font-size:10px;font-weight:900;box-shadow:0 5px 16px #0a38274a;border:1px solid #b0f5ca}
}
/* One star brightens at a time; motion is removed when the visitor requests it. */
.stars{display:inline-flex;gap:1px;white-space:nowrap}
.stars .star{display:inline-block;transform-origin:center;animation:star-sparkle 1.7s ease-in-out infinite;animation-delay:calc(var(--star-index) * .28s)}
@keyframes star-sparkle{0%,70%,100%{opacity:.65;transform:scale(.9);filter:brightness(.85)}20%,42%{opacity:1;transform:scale(1.27);filter:brightness(1.4) drop-shadow(0 0 4px #ffd77c)}}
/* The highlight crosses lead-generation buttons left to right on every loop. */
a.button[href*="#quote"],.nav-quote,.mobile-actions a:nth-child(2),.quote-form button[type="submit"]{position:relative;overflow:hidden;isolation:isolate}
a.button[href*="#quote"]::after,.nav-quote::after,.mobile-actions a:nth-child(2)::after,.quote-form button[type="submit"]::after{content:"";position:absolute;top:-25%;bottom:-25%;left:-75%;width:48%;pointer-events:none;background:linear-gradient(90deg,transparent,#ffffff70,transparent);transform:skewX(-24deg);animation:quote-shine 2.6s linear infinite}
@keyframes quote-shine{0%{left:-75%}65%,100%{left:135%}}
.ad-landing .hero-card-body{padding-top:55px}
.ad-quote-details{padding-left:19px;margin:22px 0;color:#315760;font-size:13px;line-height:1.6}
.ad-quote-details li{margin-bottom:9px}
.ad-card-button{width:100%;margin-bottom:18px}
.ad-landing .hero-card-body>.fine:last-child{margin:0;text-align:center}
@media(max-width:520px){.ad-landing .hero-card-body{padding-top:54px}.ad-quote-details{font-size:12px}}
@media(prefers-reduced-motion:reduce){.stars .star,a.button[href*="#quote"]::after,.nav-quote::after,.mobile-actions a:nth-child(2)::after,.quote-form button[type="submit"]::after{animation:none}}
/* Each mobile menu link remains visible in a vertically scrollable panel. */
@media(max-width:800px){.nav-shell nav.open{max-height:calc(100dvh - 105px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}}
@media(max-width:520px){.nav-shell nav.open{grid-template-columns:1fr;gap:0;padding:12px 18px}.nav-shell nav>a,.nav-dropdown{grid-column:1;padding:11px 10px;border-bottom:1px solid #e5eeeb}.nav-submenu a{display:block;padding:10px 12px}}
/* Verified review excerpts supplied by the business, with direct profile link. */
.customer-reviews{background:#e9f2ef}
.reviews-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:24px}
.reviews-heading h2{margin-bottom:0}
.review-profile{font-size:13px;font-weight:800;white-space:nowrap;color:#0a637a}
.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.review-card{padding:26px;border:1px solid #cce0d8;border-radius:16px;background:#fff;box-shadow:0 10px 25px #123c4610;display:flex;flex-direction:column;min-width:0}
.review-stars{color:#d48611;font-size:20px;letter-spacing:2px;line-height:1.2}
.review-card blockquote{font-size:14px;line-height:1.7;color:#254750;margin:18px 0 22px;flex:1}
.review-card cite{font-size:12px;font-style:normal;font-weight:800;color:#3a6873}
@media(max-width:800px){.review-grid{grid-template-columns:1fr 1fr}.review-card:last-child{grid-column:1/-1}}
@media(max-width:520px){.reviews-heading{display:block}.review-profile{display:inline-block;margin-top:13px}.review-grid{grid-template-columns:1fr}.review-card:last-child{grid-column:auto}.review-card{padding:22px}.review-card blockquote{margin:13px 0 18px}}
/* The ad estimate cards contain the same fields and visual hierarchy as the homepage. */
.ad-landing .hero-card-body{padding-top:36px}
@media(max-width:520px){.ad-landing .hero-card-body{padding-top:33px}}
/* Review identities use initials, never invented customer photographs. */
.review-person{display:flex;align-items:center;gap:12px;margin-top:auto}
.review-avatar{flex:0 0 42px;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#0e7083,#22a386);color:#fff;font-size:14px;font-weight:800;letter-spacing:.4px;box-shadow:0 0 0 3px #eaf4f0,0 5px 12px #143d4823}
.review-card:nth-child(3n + 2) .review-avatar{background:linear-gradient(145deg,#355e9c,#7b9bd7)}
.review-card:nth-child(3n + 3) .review-avatar{background:linear-gradient(145deg,#866b55,#c39769)}
.review-person cite{line-height:1.4}

/* Durham $59 conditional dryer add-on: keep eligibility legible by the quote form. */
.ad-landing .dryer-bundle-terms{background:#f0f7e8;color:#2c4b40;border-left:4px solid #8fbd57;border-radius:6px;padding:11px 12px;margin:2px 0 15px;font-size:12px;line-height:1.5;font-weight:650}
.ad-landing .dryer-safety-note{font-size:13px;line-height:1.7;margin:24px 0 0;color:#41626a}
.ad-landing .dryer-safety-note a{font-weight:700}
