:root{--navy:#06173f;--navy-soft:#0b2c69;--blue:#1d8fff;--cyan:#56d2ff;--text:#0d1c34;--muted:#667c9c;--bg:#eef4fb;--line:#d9e4f1;--white:#fff;--shadow:0 24px 60px rgba(4,28,74,.18);--radius:24px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:#fff}img{max-width:100%;display:block}a{text-decoration:none;color:inherit}button{font:inherit}button,input,textarea,select{font:inherit}
.wrap{width:min(100% - 48px,1180px);margin:0 auto}
h1,h2,h3,h4,.btn,.nav-links a,.footer-link-item span:last-child{font-family:Poppins,Inter,sans-serif}
p,.service-card p,.featured-copy p,.section-heading>p,.footer-brand-block p,.phone-link,.hero-copy>p,.trust-row{font-family:Inter,sans-serif}
.site-header{position:sticky;top:0;z-index:50;background:rgba(6,23,63,.96);backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid rgba(255,255,255,.12)}
.nav-wrap{height:102px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;flex:0 0 auto}.brand img{height:72px;width:auto;object-fit:contain}.nav-links{display:flex;gap:40px;align-items:center;justify-content:center;flex:1 1 auto}.nav-links a{color:#f1f6ff;font-size:15px;font-weight:600;opacity:.98}.nav-links a:hover{color:var(--cyan)}
.btn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:17px;background:linear-gradient(135deg,#1780ff,#38b1ff);color:#fff;padding:16px 28px;font-weight:700;box-shadow:0 16px 38px rgba(14,122,255,.25);transition:.2s transform,.2s box-shadow}.btn:hover{transform:translateY(-1px);box-shadow:0 18px 42px rgba(14,122,255,.3)}.btn-small{padding:14px 24px;font-size:14px;white-space:nowrap}.btn-ghost{background:transparent;border:1px solid rgba(255,255,255,.35);box-shadow:none}.btn-ghost:hover{background:rgba(255,255,255,.08)}
.menu-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);width:48px;height:48px;border-radius:14px;cursor:pointer;flex:0 0 auto}.menu-toggle span{display:block;width:20px;height:2px;background:#fff;margin:0 auto;border-radius:999px}.mobile-nav{display:none;background:#071b49;border-top:1px solid rgba(255,255,255,.1)}.mobile-nav.is-open{display:block}.mobile-nav-inner{padding:16px 0 22px;display:flex;flex-direction:column;gap:12px}.mobile-nav a{color:#fff;font-weight:600;padding:10px 0}.mobile-nav .mobile-estimate{margin-top:6px;width:100%}
.hero{background:radial-gradient(circle at 78% 25%,rgba(47,143,255,.33),transparent 31%),linear-gradient(135deg,#031334,#082b68 60%,#0b5ad1);color:#fff;padding:88px 0 76px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1fr 1.08fr;gap:70px;align-items:center}.eyebrow{display:inline-block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:800;color:#52c9ff;margin-bottom:14px}.hero h1,.section h2,.cta-section h2{margin:0;font-size:clamp(44px,6vw,76px);line-height:.98;letter-spacing:-.055em}.hero h1 span{color:#58c9ff}.hero-copy>p{max-width:600px;font-size:19px;line-height:1.65;color:#dbe8ff;margin:28px 0}.hero-actions{display:flex;gap:14px;flex-wrap:wrap}.trust-row{display:flex;gap:22px;flex-wrap:wrap;margin-top:30px;color:#bcd0f3;font-size:13px}.hero-visual{position:relative;min-height:530px}.hero-card{position:absolute;overflow:hidden;border-radius:28px;border:1px solid rgba(255,255,255,.16);box-shadow:var(--shadow)}.hero-card.main{inset:0 62px 55px 0}.hero-card.main img,.hero-card.owner img{height:100%;width:100%;object-fit:cover}.hero-card.owner{right:0;bottom:0;width:44%;aspect-ratio:1/1}.hero-badge{position:absolute;left:-30px;bottom:18px;background:#fff;color:var(--navy);padding:16px 22px;border-radius:18px;box-shadow:var(--shadow);display:flex;align-items:center;gap:10px}.hero-badge strong{font-size:28px}.hero-badge span{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.logo-strip{background:#fff;border-bottom:1px solid var(--line)}.strip-inner{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:#3c4f71}.strip-inner i{width:5px;height:5px;border-radius:50%;background:#31aaff}
.section{padding:95px 0}.services{background:var(--bg)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:42px}.section-heading h2{font-size:clamp(38px,5vw,62px);color:var(--navy);max-width:740px}.section-heading>p{max-width:440px;color:var(--muted);line-height:1.7}
.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}.service-card{background:#fff;border-radius:22px;overflow:hidden;border:1px solid #e1eaf5;box-shadow:0 12px 35px rgba(4,32,75,.08)}.service-card>img{height:260px;object-fit:cover}.service-card>div{padding:22px 22px 26px}.service-card span{font-size:11px;color:#0d6dfd;font-weight:800}.service-card h3{margin:6px 0 8px;font-size:20px}.service-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.work-section{background:linear-gradient(135deg,#06173f,#0a2c68);color:#fff}.section-heading.light h2{color:#fff}.text-link{font-weight:800;color:#63ceff}.masonry{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:16px}.tile{position:relative;overflow:hidden;border-radius:20px;margin:0}.tile.wide{grid-column:span 2}.tile.tall{grid-row:span 2}.tile img{width:100%;height:100%;object-fit:cover;transition:.35s}.tile:hover img{transform:scale(1.035)}.tile:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(1,11,33,.78))}.tile figcaption{position:absolute;left:18px;right:18px;bottom:16px;z-index:2;display:flex;justify-content:space-between;gap:14px;align-items:end}.tile figcaption strong{font-size:15px}.tile figcaption span{font-size:11px;color:#bad2f7}
.results-section{background:#fff}.compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.compare-card{background:var(--bg);border-radius:22px;padding:16px;border:1px solid var(--line)}.compare-card h3{margin:2px 4px 14px}.compare{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:16px;background:#dfe8f5}.compare img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center}.before-wrap{position:absolute;inset:0 auto 0 0;width:50%;overflow:hidden}.before-wrap .before{width:100%;max-width:none;height:100%;object-fit:contain;object-position:center}.compare input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:5}.handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;z-index:4}.handle:after{content:"↔";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:42px;height:42px;background:#fff;color:var(--navy);border-radius:50%;font-weight:900;box-shadow:0 8px 24px rgba(6,23,63,.2)}.tag{position:absolute;bottom:12px;z-index:4;background:rgba(4,20,55,.78);color:#fff;padding:7px 10px;border-radius:9px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.before-tag{left:12px}.after-tag{right:12px;background:#0d6dfd}
.cta-section{padding:0 0 96px}.cta-box{background:linear-gradient(135deg,#06173f,#0b64e8);color:#fff;padding:52px;border-radius:30px;display:flex;align-items:center;justify-content:space-between;gap:36px;box-shadow:var(--shadow)}.cta-section h2{font-size:clamp(38px,5vw,62px)}.cta-section p{color:#cfe0ff}.cta-actions{display:flex;flex-direction:column;align-items:center;gap:14px;min-width:260px}.btn-light{background:#fff;color:#08306e;box-shadow:none;width:100%}.phone-link{font-weight:800;color:#fff}
footer{background:#04122f;color:#d9e6ff;padding:50px 0 24px}.footer-grid{display:flex;justify-content:space-between;align-items:flex-start;gap:30px}.footer-brand-block p{color:#8fa8d0;margin:16px 0 0}.footer-logo{width:250px;height:auto}.footer-links{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px 18px;max-width:760px;width:100%}.footer-link-item{display:flex;align-items:center;gap:12px;color:#fff;font-weight:700;min-height:46px;padding:10px 14px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}.footer-link-item:hover{background:rgba(255,255,255,.08)}.footer-icon{width:36px;height:36px;border-radius:999px;background:rgba(57,173,255,.18);display:grid;place-items:center;color:#7fd7ff;flex:0 0 36px}.footer-icon svg{width:18px;height:18px}.footer-bottom{margin-top:35px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:20px;font-size:12px;color:#8096bc}
.featured-project{background:linear-gradient(145deg,#06173f 0%,#0a2d72 58%,#0b5ad1 100%);color:#fff;overflow:hidden}.featured-project .section-heading>p{color:#c7daf8}.featured-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px;align-items:stretch}.featured-compare,.featured-copy{min-height:520px}.featured-compare{border-radius:26px;overflow:hidden;border:1px solid rgba(255,255,255,.14);box-shadow:0 24px 70px rgba(0,0,0,.22)}.compare-large{height:100%;aspect-ratio:auto;border-radius:0;background:rgba(255,255,255,.08)}.featured-copy{border-radius:26px;padding:42px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;justify-content:center;backdrop-filter:blur(8px)}.project-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:#55ceff}.featured-copy h3{font-size:clamp(32px,4vw,52px);line-height:1.04;letter-spacing:-.045em;margin:15px 0 18px}.featured-copy p{font-size:16px;line-height:1.7;color:#d7e6ff;margin:0 0 26px}.featured-copy .btn{align-self:flex-start}.project-photo-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}.project-photo-strip figure{margin:0;position:relative;overflow:hidden;border-radius:18px;aspect-ratio:4/3;border:1px solid rgba(255,255,255,.12)}.project-photo-strip img{width:100%;height:100%;object-fit:cover}.project-photo-strip figcaption{position:absolute;left:10px;bottom:10px;background:rgba(4,20,55,.82);color:#fff;padding:7px 10px;border-radius:9px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
@media(max-width:1100px){.nav-links{gap:28px}.brand img{height:66px}.featured-grid{grid-template-columns:1fr}.featured-compare,.featured-copy{min-height:420px}.project-photo-strip{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.nav-links,.site-header .btn-small{display:none}.menu-toggle{display:flex}.nav-wrap{height:86px}.brand img{height:60px}.hero{padding-top:62px}.hero-grid{grid-template-columns:1fr}.hero-visual{min-height:440px}.hero-card.main{right:40px}.service-grid{grid-template-columns:1fr 1fr}.masonry{grid-template-columns:1fr 1fr}.compare-grid{grid-template-columns:1fr}.cta-box{flex-direction:column;align-items:flex-start}.cta-actions{width:100%;align-items:flex-start}.section-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.wrap{width:min(100% - 24px,1180px)}.hero{padding:48px 0}.hero h1{font-size:48px}.hero-visual{min-height:330px}.hero-card.main{right:18px;bottom:30px}.hero-card.owner{width:42%}.hero-badge{left:8px;padding:10px 14px}.strip-inner{overflow:auto;justify-content:flex-start;white-space:nowrap}.section{padding:70px 0}.service-grid{grid-template-columns:1fr}.service-card>img{height:230px}.masonry{grid-template-columns:1fr;grid-auto-rows:240px}.tile,.tile.wide,.tile.tall{grid-column:span 1;grid-row:span 1}.cta-box{padding:34px 24px}.footer-grid,.footer-bottom{flex-direction:column;align-items:flex-start}.footer-links{grid-template-columns:1fr}.footer-logo{width:220px}.project-photo-strip{grid-template-columns:1fr 1fr;gap:10px}.project-photo-strip figure{aspect-ratio:1/1}.featured-copy{padding:28px}}

/* v3.1 precision fixes */
.nav-wrap{display:grid;grid-template-columns:300px minmax(0,1fr) 180px;align-items:center;gap:24px}
.brand{justify-self:start}.nav-links{justify-self:center}.site-header .btn-small{justify-self:end}
.brand img{height:68px;width:auto;max-width:286px}
.hero-copy{max-width:610px;justify-self:start}
.hero-copy h1,.hero-copy p,.hero-copy .eyebrow{text-align:left}

/* True reveal slider: both photos remain full-size; only the clipping mask moves. */
.compare{--reveal:50%;position:relative;overflow:hidden}
.compare .after,.compare .before-wrap,.compare .before-wrap .before{position:absolute;inset:0;width:100%;height:100%}
.compare .after,.compare .before-wrap .before{object-fit:contain;object-position:center}
.compare .before-wrap{width:100%;overflow:hidden;clip-path:inset(0 50% 0 0);-webkit-clip-path:inset(0 50% 0 0);will-change:clip-path}
.compare .before-wrap .before{max-width:none}
.compare-large{background:#092759}
.compare-card .compare{background:#e7edf5}

/* Force typography on every breakpoint and bypass stale theme defaults. */
html,body,p,a,span,li,input,select,textarea,button{font-family:Inter,Arial,sans-serif!important}
h1,h2,h3,h4,h5,h6,.btn,.nav-links a,.mobile-nav a,.eyebrow,.project-label,.tag,.footer-link-item span:last-child{font-family:Poppins,Inter,Arial,sans-serif!important}

@media(max-width:1100px){
  .nav-wrap{grid-template-columns:260px minmax(0,1fr) 170px;gap:16px}
  .nav-links{gap:24px}
  .brand img{height:62px;max-width:250px}
}
@media(max-width:900px){
  .nav-wrap{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:14px;height:84px}
  .brand img{height:56px;max-width:235px}
  .menu-toggle{justify-self:end}
}
@media(max-width:620px){
  .brand img{height:50px;max-width:210px}
  .hero h1{font-family:Poppins,Inter,Arial,sans-serif!important;font-size:46px}
  .hero-copy>p,.section-heading>p,.service-card p,.featured-copy p{font-family:Inter,Arial,sans-serif!important}
}

/* v3.2 layout corrections */
.service-card>img{width:100%!important;height:260px;display:block;object-fit:cover;object-position:center}

/* Before/after: each photo keeps a fixed full-size render; dragging only changes the clipping mask. */
.compare{position:relative;overflow:hidden}
.compare .after,.compare .before-wrap,.compare .before-wrap .before{position:absolute;inset:0;width:100%;height:100%}
.compare .after,.compare .before-wrap .before{object-fit:cover;object-position:center;transform:none!important;scale:none!important}
.compare .before-wrap{width:100%!important;overflow:visible!important;clip-path:none!important;-webkit-clip-path:none!important}
.compare .before-wrap .before{clip-path:inset(0 50% 0 0);-webkit-clip-path:inset(0 50% 0 0);will-change:clip-path}

/* Match each comparison box to the source photos so there are no large empty side bars. */
.compare-house{aspect-ratio:3/4!important;background:#092759}
.compare-carpet{aspect-ratio:1.548/1!important}
.compare-door{aspect-ratio:9/16!important}
.compare-power{aspect-ratio:4/3!important}
.compare-stain{aspect-ratio:4/3!important}

.featured-grid{grid-template-columns:minmax(360px,560px) minmax(0,1fr);justify-content:center;align-items:stretch}
.featured-compare{min-height:0!important;aspect-ratio:3/4;width:100%}
.compare-large{height:100%!important;width:100%!important;aspect-ratio:3/4!important}
.featured-copy{min-width:0}

@media(max-width:1100px){
  .featured-grid{grid-template-columns:minmax(0,680px);justify-content:center}
  .featured-compare{width:100%;max-width:680px;margin:0 auto}
  .featured-copy{width:100%;max-width:680px;margin:0 auto;min-height:0!important}
}
@media(max-width:620px){
  .service-card>img{height:230px}
  .featured-compare{max-width:100%}
}

/* v3.3 layout corrections */
.compare-grid{align-items:start!important}
.compare-card{display:flex;flex-direction:column;align-self:start}
.compare-card .compare{aspect-ratio:4/3!important;min-height:0;background:#e7edf5!important}
.compare .after,.compare .before-wrap,.compare .before-wrap .before{position:absolute;inset:0;width:100%;height:100%}
.compare .after,.compare .before-wrap .before{object-fit:cover!important;transform:none!important;scale:none!important}
.compare .before-wrap{width:100%!important;overflow:hidden!important;clip-path:none!important;-webkit-clip-path:none!important}
.compare .before-wrap .before{clip-path:inset(0 50% 0 0)!important;-webkit-clip-path:inset(0 50% 0 0)!important;will-change:clip-path}
.compare-carpet .after,.compare-carpet .before-wrap .before{object-position:center center!important}
.compare-door .after,.compare-door .before-wrap .before{object-position:center 34%!important}
.compare-power .after,.compare-power .before-wrap .before{object-position:center center!important}
.compare-stain .after,.compare-stain .before-wrap .before{object-position:center center!important}
.featured-compare{min-height:0!important;aspect-ratio:5/4!important;width:100%}
.compare-large{height:100%!important;width:100%!important;aspect-ratio:5/4!important;background:#092759!important}
.compare-house .after,.compare-house .before-wrap .before{object-fit:cover!important;object-position:center center!important}
.project-photo-strip figure img{object-fit:cover!important;object-position:center center!important}
@media(max-width:900px){
  .featured-compare,.compare-large{aspect-ratio:4/3!important}
}
@media(max-width:620px){
  .compare-card .compare{aspect-ratio:4/3!important}
  .featured-compare,.compare-large{aspect-ratio:1/1!important}
}

/* v3.5 — definitive before/after reveal fix */
.compare{
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate;
}
.compare>.after{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
  z-index:1!important;
}
.compare>.before-wrap{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  overflow:hidden!important;
  clip-path:inset(0 50% 0 0);
  -webkit-clip-path:inset(0 50% 0 0);
  z-index:2!important;
  pointer-events:none!important;
  will-change:clip-path;
}
.compare>.before-wrap>.before{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center!important;
  clip-path:none!important;
  -webkit-clip-path:none!important;
  transform:none!important;
}
.compare>input[type="range"]{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  opacity:0!important;
  cursor:ew-resize!important;
  z-index:6!important;
}
.compare>.handle{
  position:absolute!important;
  top:0!important;
  bottom:0!important;
  left:50%;
  width:2px!important;
  background:#fff!important;
  z-index:5!important;
  pointer-events:none!important;
}
.compare>.tag{z-index:4!important;pointer-events:none!important}

/* Uniform comparison cards: every service uses the same 4:3 frame. */
.compare-card .compare,
.compare-carpet,
.compare-door,
.compare-power,
.compare-stain{
  aspect-ratio:4/3!important;
  width:100%!important;
}
.compare-door>.after,.compare-door>.before-wrap>.before{object-position:center 38%!important}
.compare-stain>.after,.compare-stain>.before-wrap>.before{object-position:center 55%!important}
.compare-carpet>.after,.compare-carpet>.before-wrap>.before{object-position:center!important}
.compare-power>.after,.compare-power>.before-wrap>.before{object-position:center!important}

/* Featured house uses the same reveal mechanism without image expansion. */
.compare-house>.after,.compare-house>.before-wrap>.before{object-position:center!important}

/* v3.6 FINAL slider correction — one moving mask, no image resizing */
.compare[data-compare]{
  --compare-position:50%;
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
.compare[data-compare] > img.after{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center!important;
  transform:none!important;
  z-index:1!important;
}
.compare[data-compare] > .before-wrap{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  overflow:hidden!important;
  clip-path:inset(0 calc(100% - var(--compare-position)) 0 0)!important;
  -webkit-clip-path:inset(0 calc(100% - var(--compare-position)) 0 0)!important;
  pointer-events:none!important;
  z-index:2!important;
}
.compare[data-compare] > .before-wrap > img.before{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center!important;
  clip-path:none!important;
  -webkit-clip-path:none!important;
  transform:none!important;
}
.compare[data-compare] > .handle{
  left:var(--compare-position)!important;
  z-index:5!important;
  pointer-events:none!important;
}
.compare[data-compare] > input[type="range"]{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  opacity:0!important;
  margin:0!important;
  padding:0!important;
  cursor:ew-resize!important;
  z-index:9!important;
}
.compare[data-compare] > .tag{z-index:6!important;pointer-events:none!important}

/* Same 4:3 physical frame for every standard service comparison. */
.compare-card{height:auto!important;min-height:0!important}
.compare-card .compare{width:100%!important;aspect-ratio:4/3!important;height:auto!important;min-height:0!important}

/* Door fills the complete comparison rectangle while keeping the door centered. */
.compare-door > img.after,
.compare-door > .before-wrap > img.before{object-position:center 40%!important}

/* Stain pair: same counter, before is the work-in-progress photo; after is the clean finished counter. */
.compare-stain > img.after,
.compare-stain > .before-wrap > img.before{object-position:center 50%!important}

/* Featured house: use matching rear-gable angles so the wipe reads as a real before/after. */
.featured-compare{aspect-ratio:4/3!important;min-height:0!important}
.compare-house{aspect-ratio:4/3!important;width:100%!important;height:100%!important}
.compare-house > img.after,
.compare-house > .before-wrap > img.before{object-position:center center!important}

/* Stain service thumbnail must show the finished result. */
.service-card img[src*="stain-after-v36"]{object-position:center 46%!important}
