*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--blk:#080808;--blk2:#111;--blk3:#1a1a1a;--st:#5b8db8;--stl:#7aafd4;--std:#3d6b8f;--wh:#f4f4f4;--wh2:#c8c8c8;--wh3:#888;--fd:'Bebas Neue',sans-serif;--fb:'DM Sans',sans-serif;--fm:'DM Mono',monospace}
html{scroll-behavior:smooth}
body{background:var(--blk);color:var(--wh);font-family:var(--fb);overflow-x:hidden;line-height:1.6}
.container{max-width:1200px;margin:0 auto;padding:0 24px}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.accent{color:var(--st)}
.sl{font-family:var(--fm);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--st);display:block;margin-bottom:10px}
.st{font-family:var(--fd);font-size:clamp(36px,5vw,64px);letter-spacing:.02em;text-transform:uppercase;line-height:1;margin-bottom:16px}
.sb{font-size:15px;color:var(--wh2);line-height:1.7}
.btn{display:inline-flex;align-items:center;gap:7px;padding:14px 28px;font-family:var(--fm);font-size:11px;letter-spacing:.12em;text-transform:uppercase;border-radius:2px;border:none;cursor:pointer;transition:all .2s}
.btn-p{background:var(--st);color:#fff}.btn-p:hover{background:var(--stl);transform:translateY(-2px)}
.btn-o{border:1px solid rgba(255,255,255,.22);color:var(--wh)}.btn-o:hover{border-color:var(--st);background:rgba(91,141,184,.1);transform:translateY(-2px)}
.fade{opacity:0;transform:translateY(16px);transition:opacity .6s,transform .6s}.fade.on{opacity:1;transform:none}

/* TOPBAR */
.topbar{background:var(--std);padding:7px 0;text-align:center;font-size:12px;font-family:var(--fm);letter-spacing:.05em}
.topbar a{color:var(--wh)}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:18px 0;transition:background .3s,padding .3s}
nav.on{background:rgba(8,8,8,.96);backdrop-filter:blur(12px);padding:11px 0;border-bottom:1px solid #1f1f1f}
.ni{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;padding:0 24px}
.nav-logo img{height:90px;width:auto}.nl{display:flex;align-items:center;gap:28px;list-style:none}
.nl a{color:var(--wh2);font-size:11px;font-family:var(--fm);letter-spacing:.1em;text-transform:uppercase;transition:color .2s}
.nl a:hover,.nl a.act{color:var(--wh)}
.nc{background:var(--st)!important;color:#fff!important;padding:9px 20px;border-radius:2px}
.nc:hover{background:var(--stl)!important}
.hb{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px}
.hb span{display:block;width:22px;height:2px;background:var(--wh)}
.mm{display:none;position:fixed;inset:0;background:var(--blk);z-index:999;flex-direction:column;align-items:center;justify-content:center;gap:28px}
.mm.on{display:flex}
.mm a{color:var(--wh);font-family:var(--fd);font-size:40px;transition:color .2s}
.mm a:hover{color:var(--st)}
.mc{position:absolute;top:20px;right:20px;background:none;border:none;color:var(--wh);font-size:30px;cursor:pointer}

/* HERO */
.hero{position:relative;height:100vh;min-height:600px;display:flex;align-items:center;padding-bottom:0;overflow:hidden}
.hv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.ho{position:absolute;inset:0;background:linear-gradient(135deg,rgba(8,8,8,.88) 0%,rgba(8,8,8,.42) 60%,rgba(8,8,8,.15) 100%)}
.hc{position:relative;z-index:2;max-width:700px}
.he{font-family:var(--fm);font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:var(--st);margin-bottom:16px;display:flex;align-items:center;gap:12px;opacity:0;animation:fu .8s .3s ease forwards}
.he::before{content:'';display:block;width:32px;height:1px;background:var(--st)}
.hero h1{font-family:var(--fd);font-size:clamp(56px,8vw,108px);line-height:.92;letter-spacing:.02em;text-transform:uppercase;margin-bottom:24px;opacity:0;animation:fu .8s .5s ease forwards}
.hero h1 em{font-style:normal;color:var(--st)}
.hs{font-size:16px;color:var(--wh2);max-width:480px;line-height:1.65;margin-bottom:36px;opacity:0;animation:fu .8s .7s ease forwards}
.ha{display:flex;gap:14px;flex-wrap:wrap;opacity:0;animation:fu .8s .9s ease forwards}
.hls{position:absolute;bottom:28px;right:36px;z-index:2;opacity:0;animation:fi 1s 1.5s ease forwards}
.hls img{height:110px;opacity:.32;filter:brightness(0) invert(1)}
@keyframes fu{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes fi{to{opacity:1}}

/* TRUST */
.trust{background:var(--blk2);border-bottom:1px solid #1e1e1e;padding:14px 0}
.ti{display:flex;gap:32px;justify-content:center;align-items:center;flex-wrap:wrap}
.td{display:flex;align-items:center;gap:8px;font-family:var(--fm);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--wh2);white-space:nowrap}
.tdot{width:5px;height:5px;border-radius:50%;background:var(--st);flex-shrink:0}

/* SERVICE CARDS */
.svc-sec{padding:100px 0}
.sh{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:52px}
.sh img{height:56px;opacity:.1;filter:brightness(0) invert(1)}
.sg{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#1a1a1a}
.sc{background:var(--blk2);padding:32px 26px;position:relative;color:inherit;display:block;transition:background .3s}
.sc::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--st);transform:scaleX(0);transform-origin:left;transition:transform .4s}
.sc:hover{background:#131313}.sc:hover::after{transform:scaleX(1)}
.si{width:42px;height:42px;border:1px solid #252525;display:flex;align-items:center;justify-content:center;margin-bottom:18px;transition:border-color .3s}
.sc:hover .si{border-color:var(--std)}
.si svg{width:20px;height:20px;color:var(--st)}
.sn{font-family:var(--fd);font-size:22px;letter-spacing:.05em;text-transform:uppercase;margin-bottom:8px}
.sd{font-size:13px;color:var(--wh3);line-height:1.7;margin-bottom:14px}
.sl2{list-style:none;display:flex;flex-direction:column;gap:5px}
.sl2 li{font-size:12px;color:var(--wh2);font-family:var(--fm);display:flex;align-items:center;gap:6px}
.sl2 li::before{content:'';width:3px;height:3px;border-radius:50%;background:var(--st);flex-shrink:0}
.sm{display:inline-flex;align-items:center;gap:5px;margin-top:14px;font-family:var(--fm);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--st)}

/* VIDEO SECTION */
.vid-sec{background:var(--blk2);padding:80px 0}
.vl{display:grid;grid-template-columns:1.4fr 1fr;gap:0;align-items:stretch}
.vb{position:relative;overflow:hidden;background:#000}
.vb video{width:100%;display:block;min-height:420px;max-height:540px;object-fit:cover}
.vbadge{position:absolute;top:14px;left:14px;background:var(--st);color:#fff;font-family:var(--fm);font-size:10px;letter-spacing:.15em;text-transform:uppercase;padding:5px 12px;z-index:2}
.vt{background:var(--blk3);padding:48px 44px;display:flex;flex-direction:column;justify-content:center}

/* WATCH US WORK - 2 long videos */
.wuw{padding:80px 0}
.wuw-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px}
.wuw-card{position:relative;overflow:hidden;background:#000;cursor:pointer}
.wuw-card video{width:100%;display:block;height:380px;object-fit:cover}
.wuw-badge{position:absolute;top:14px;left:14px;background:var(--st);color:#fff;font-family:var(--fm);font-size:10px;letter-spacing:.15em;text-transform:uppercase;padding:5px 12px;z-index:2}
.wuw-label{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(8,8,8,.85));padding:24px 20px 16px;z-index:2}
.wuw-title{font-family:var(--fd);font-size:22px;letter-spacing:.05em;text-transform:uppercase;color:#fff}
.wuw-sub{font-family:var(--fm);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--wh3);margin-top:4px}

/* SHOWCASE */
.showcase{padding:90px 0}
.showcase.alt{background:var(--blk2)}
.shdr{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px}
.stag{font-family:var(--fm);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--st);border:1px solid var(--std);padding:4px 12px;display:inline-block;margin-bottom:12px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin-bottom:3px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:3px;margin-bottom:3px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin-bottom:3px}
.ph{width:100%;object-fit:cover;object-position:center;display:block}
.h360{height:360px}.h280{height:280px}.h200{height:200px}.h160{height:160px}
.opt{object-position:center top}

/* BEFORE/AFTER */
.ba-sec{padding:90px 0;background:var(--blk2)}
.ba-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.ba-wrap{position:relative;overflow:hidden;cursor:ew-resize;user-select:none;height:400px;background:#111}
.ba-back{position:absolute;inset:0}
.ba-back img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.ba-front{position:absolute;top:0;bottom:0;left:0;width:50%;overflow:hidden}
.ba-front img{position:absolute;top:0;left:0;height:100%;width:200%;object-fit:cover;object-position:left top}
.ba-line{position:absolute;top:0;bottom:0;left:50%;width:3px;background:#fff;transform:translateX(-50%);z-index:10;pointer-events:none}
.ba-knob{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:42px;height:42px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;color:#111;z-index:11;pointer-events:none;box-shadow:0 2px 12px rgba(0,0,0,.5)}
.ba-lb{position:absolute;top:12px;font-family:var(--fm);font-size:10px;letter-spacing:.15em;text-transform:uppercase;padding:5px 10px;z-index:8}
.ba-lb.b{left:10px;background:rgba(8,8,8,.75);color:var(--wh)}
.ba-lb.a{right:10px;background:var(--st);color:#fff}
.ba-cap{font-family:var(--fm);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--wh3);text-align:center;margin-bottom:8px}

/* FLEET */
.fleet-sec{padding:90px 0}
.fl{display:grid;grid-template-columns:1fr 1fr;gap:3px}
.fi{display:grid;grid-template-rows:1fr 1fr;gap:3px}
.fi img{width:100%;height:255px;object-fit:cover;object-position:center;display:block}
.ft{background:var(--blk2);padding:52px 44px;display:flex;flex-direction:column;justify-content:center}
.ftypes{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:28px}
.ftype{border-left:2px solid var(--std);padding-left:14px}
.ftn{font-family:var(--fd);font-size:17px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px}
.ftd{font-size:12px;color:var(--wh3);line-height:1.6}

/* GALLERY */
.gal-sec{padding:90px 0;background:var(--blk2)}
.filter-bar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:28px}
.fb2{font-family:var(--fm);font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:8px 16px;border:1px solid #2a2a2a;background:transparent;color:var(--wh3);cursor:pointer;border-radius:2px;transition:all .2s}
.fb2:hover,.fb2.on{background:var(--st);border-color:var(--st);color:#fff}
.masonry{columns:4;gap:3px;column-gap:3px}
.mi{break-inside:avoid;margin-bottom:3px;overflow:hidden;position:relative}
.mi img{width:100%;display:block;transition:transform .5s}
.mi:hover img{transform:scale(1.04)}
.mo{position:absolute;inset:0;background:rgba(8,8,8,0);transition:background .3s;display:flex;align-items:flex-end;padding:10px}
.mi:hover .mo{background:rgba(8,8,8,.45)}
.ml{font-family:var(--fm);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#fff;opacity:0;transform:translateY(6px);transition:all .3s}
.mi:hover .ml{opacity:1;transform:none}

/* REVIEWS */
.rev-sec{padding:90px 0}
.rg{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.rc{background:var(--blk2);padding:36px}
.rq{font-family:var(--fd);font-size:68px;color:var(--std);line-height:.8;opacity:.5;margin-bottom:10px}
.rs{color:var(--st);font-size:13px;margin-bottom:13px;letter-spacing:3px}
.rt{font-size:14px;line-height:1.8;color:var(--wh2);margin-bottom:18px;font-style:italic}
.ra{font-family:var(--fm);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--st)}

/* AREA */
.area-sec{padding:90px 0;background:var(--blk2)}
.al{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.alist{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}
.ai{display:flex;align-items:center;gap:8px;font-family:var(--fm);font-size:12px;letter-spacing:.06em;color:var(--wh2)}
.adot{width:5px;height:5px;border-radius:50%;background:var(--st);flex-shrink:0}
.mapw{height:400px;border:1px solid #1f1f1f;position:relative;overflow:hidden}
.mapw iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) brightness(.65) contrast(1.1)}

/* CTA */
.cta-sec{position:relative;padding:110px 0;overflow:hidden}
.cta-bg-img{position:absolute;inset:0;background-size:cover;background-position:center}
.cta-ov{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,8,8,.93) 0%,rgba(8,8,8,.6) 100%)}
.cta-logo{position:absolute;right:0;top:50%;transform:translateY(-50%);opacity:.05;pointer-events:none}
.cta-logo img{height:280px;filter:brightness(0) invert(1)}
.cta-inner{position:relative;z-index:2;max-width:600px}
.cta-ph{font-family:var(--fd);font-size:clamp(38px,5vw,58px);color:var(--st);letter-spacing:.04em;display:block;margin-bottom:28px}
.cta-ph:hover{color:var(--stl)}

/* FOOTER */
footer{background:var(--blk2);border-top:1px solid #1a1a1a;padding:60px 0 24px}
.ftop{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:44px;gap:40px;flex-wrap:wrap}
.fb img{height:90px;margin-bottom:18px;display:block}
.ftag{font-size:13px;color:var(--wh3);line-height:1.7;max-width:260px;margin-bottom:20px}
.fsoc{display:flex;gap:8px}
.fsb{width:34px;height:34px;border:1px solid #2a2a2a;display:flex;align-items:center;justify-content:center;color:var(--wh3);border-radius:2px;transition:all .2s}
.fsb svg{width:14px;height:14px}
.fsb:hover{border-color:var(--st);color:var(--st)}
.fcols{display:flex;gap:48px;flex-wrap:wrap}
.fch{font-family:var(--fm);font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--st);margin-bottom:16px}
.fc ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.fc a{color:var(--wh3);font-size:13px;transition:color .2s}
.fc a:hover{color:var(--wh)}
.fhr{font-size:12px;color:var(--wh3);font-family:var(--fm);margin-bottom:5px;display:flex;justify-content:space-between;gap:16px}
.fhr span:last-child{color:var(--wh2)}
.fbot{border-top:1px solid #1a1a1a;padding-top:22px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.fbot p{font-size:11px;color:var(--wh3);font-family:var(--fm)}
.fbl img{height:56px;opacity:.28;filter:brightness(0) invert(1)}
.fbtm{display:flex;gap:18px}
.fbtm a{font-size:11px;color:var(--wh3);font-family:var(--fm)}
.fbtm a:hover{color:var(--st)}

/* STICKY CALL */
.scall{position:fixed;bottom:24px;right:24px;z-index:900;background:var(--st);color:#fff;padding:12px 20px;border-radius:2px;font-family:var(--fm);font-size:11px;letter-spacing:.12em;text-transform:uppercase;display:flex;align-items:center;gap:7px;box-shadow:0 6px 24px rgba(91,141,184,.35);transition:all .2s}
.scall:hover{background:var(--stl);transform:translateY(-2px)}
.scall svg{width:14px;height:14px}

/* RESPONSIVE */
@media(max-width:1024px){.sg{grid-template-columns:repeat(2,1fr)}.vl{grid-template-columns:1fr}.masonry{columns:3}.wuw-grid{grid-template-columns:1fr}}
@media(max-width:768px){
  .nl{display:none}.hb{display:flex}
  .sg{grid-template-columns:1fr}.sh{flex-direction:column;align-items:flex-start;gap:12px}.sh img{display:none}
  .g3,.g2{grid-template-columns:1fr 1fr}.g4{grid-template-columns:1fr 1fr}
  .ba-row{grid-template-columns:1fr}.fl{grid-template-columns:1fr}.ft{padding:36px 24px}
  .ftypes{grid-template-columns:1fr}.rg{grid-template-columns:1fr}.al{grid-template-columns:1fr}
  .masonry{columns:2}.wuw-grid{grid-template-columns:1fr}
  .ftop{flex-direction:column}.fcols{gap:24px}.fbot{flex-direction:column;text-align:center}
  .shdr{flex-direction:column;align-items:flex-start;gap:12px}
}
@media(max-width:480px){.masonry{columns:1}.g3,.g2{grid-template-columns:1fr}}

/* ============================================
   MOBILE RESPONSIVE OVERRIDES
   ============================================ */
@media(max-width:768px){
  /* Hero */
  .hero h1{font-size:clamp(40px,10vw,64px)!important}
  .hs{font-size:14px!important}
  .hls{display:none}
  
  /* Topbar */
  .topbar{font-size:11px;padding:6px 0}
  
  /* Services page - stack all 2-col grids */
  #exterior > .container > div[style*="grid-template-columns:1fr 1fr"],
  #interior > .container > div[style*="grid-template-columns:1fr 1fr"],
  #paint-correction > .container > div[style*="grid-template-columns:1fr 1fr"],
  #ceramic > .container > div[style*="grid-template-columns:1fr 1fr"],
  section[style*="grid-template-columns:1fr 1fr"],
  div[style*="grid-template-columns:1fr 1fr;gap:64px"],
  div[style*="grid-template-columns:1fr 1fr;gap:80px"]{
    grid-template-columns:1fr!important;
  }
  
  /* Specialty 3-col grid */
  div[style*="grid-template-columns:repeat(3,1fr)"]{
    grid-template-columns:1fr!important;
  }
  
  /* Volvo showcase */
  div[style*="grid-template-columns:2fr 1fr"]{
    grid-template-columns:1fr!important;
  }
  div[style*="grid-template-columns:repeat(4,1fr)"]{
    grid-template-columns:1fr 1fr!important;
  }
  
  /* Results section header */
  .results > .container > div[style*="grid-template-columns:1fr 1fr"]{
    grid-template-columns:1fr!important;
  }
  
  /* Yukon section */
  div[style*="grid-template-columns:1fr 1.5fr"]{
    grid-template-columns:1fr!important;
  }
  
  /* Fleet text section */
  .fleet-inner{grid-template-columns:1fr!important}
  
  /* Service images full width */
  img[style*="height:480px"]{
    height:280px!important;
  }
  
  /* Reduce section padding */
  section[style*="padding:100px"]{padding:60px 0!important}
  section[style*="padding:80px"]{padding:50px 0!important}
  
  /* Page hero text */
  .page-hero-content h1,.st{font-size:clamp(36px,8vw,56px)!important}
  
  /* Marine services list */
  .marine-services > div{grid-template-columns:1fr!important}
  
  /* Footer */
  .footer-cols,.fcols{flex-direction:column!important;gap:24px!important}
  .footer-top,.ftop{flex-direction:column!important}
  
  /* Videos */
  .rv-sub video{height:240px!important}
  
  /* Before/after */
  .ba-wrap{height:280px!important}
  
  /* CTA sections */
  .cta-ph,.cta-phone{font-size:clamp(28px,6vw,40px)!important}
}

@media(max-width:480px){
  .hero h1{font-size:36px!important}
  .topbar .container{font-size:10px;text-align:center}
  div[style*="grid-template-columns:repeat(4,1fr)"]{
    grid-template-columns:1fr!important;
  }
  .rv-sub video{height:200px!important}
  .ba-wrap{height:220px!important}
  img[style*="height:480px"]{height:220px!important}
  img[style*="height:360px"]{height:200px!important}
  img[style*="height:238px"]{height:180px!important}
}
