:root{
  --navy:#060D18;
  --navy-2:#0B1A2C;
  --blue:#1656E0;
  --blue-2:#0D3A9E;
  --blue-glow:#3D7CF5;
  --steel-light:#EDF1F6;
  --white:#FFFFFF;
  --chrome-1:#F4F6F8;
  --chrome-2:#C7D0D9;
  --chrome-3:#8C97A4;
  --ink:#0B121C;
  --muted:#66768C;
  --line: rgba(255,255,255,0.12);
  --line-dark: rgba(11,18,28,0.12);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter', sans-serif;
  color:var(--ink);
  background:var(--white);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{
  font-family:'Big Shoulders Display', sans-serif;
  font-weight:800;
  letter-spacing:0.005em;
  line-height:0.92;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1200px; margin:0 auto; padding:0 32px;}
.caps{text-transform:uppercase; letter-spacing:0.06em;}

/* chevron divider */
.chevron-band{
  height:34px; width:100%;
  background:repeating-linear-gradient(115deg,
    var(--navy) 0 46px, #0F2544 46px 50px, var(--blue) 50px 53px, var(--navy) 53px 92px);
}
.chevron-band.light{
  background:repeating-linear-gradient(115deg,
    var(--steel-light) 0 46px, #DCE4EC 46px 50px, var(--chrome-3) 50px 53px, var(--steel-light) 53px 92px);
}

/* ---------- HEADER ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(6,13,24,0.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 32px; max-width:1200px; margin:0 auto;
}
.brand{display:flex; align-items:center; gap:12px;}
.brand-mark{
  height:44px; width:auto; flex-shrink:0; object-fit:contain;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,0.4));
}
footer .brand-mark{height:38px;}
.brand-name{color:var(--white); font-family:'Big Shoulders Display'; font-weight:800; font-size:23px; letter-spacing:0.03em;}
.brand-name .sub{display:block; font-family:'Inter'; font-weight:500; font-size:10px; letter-spacing:0.14em; color:#7E93B3; margin-top:-2px;}
nav.links{display:flex; align-items:center; gap:32px; position:relative;}
nav.links > a,
nav.links .has-dropdown > a{display:inline-flex; align-items:center; line-height:1; color:#B9C8DD; font-size:14px; font-weight:600; letter-spacing:0.02em; transition:color .15s; cursor:pointer;}
nav.links > a:hover,
nav.links .has-dropdown:hover > a{color:var(--white);}
.nav-cta{display:flex; align-items:center; gap:20px;}
.phone-link{color:var(--white); font-size:14.5px; font-weight:600; white-space:nowrap;}
nav.links a.nav-menu-cta{display:none;}
.nav-toggle{
  display:none; width:44px; height:44px; padding:11px; flex-shrink:0;
  background:none; border:none; cursor:pointer;
  flex-direction:column; justify-content:space-between;
}
.nav-toggle span{display:block; height:2px; width:100%; background:var(--white); border-radius:2px; transition:transform .22s ease, opacity .18s ease;}
header.nav-open .nav-toggle span:nth-child(1){transform:translateY(9px) rotate(45deg);}
header.nav-open .nav-toggle span:nth-child(2){opacity:0;}
header.nav-open .nav-toggle span:nth-child(3){transform:translateY(-9px) rotate(-45deg);}
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 24px;
  font-size:13.5px; font-weight:700; letter-spacing:0.04em; cursor:pointer; border:none;
  transition:transform .15s ease, filter .15s ease;
  clip-path:polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
}
.btn-chrome{background:linear-gradient(135deg, var(--chrome-1), var(--chrome-2) 55%, var(--chrome-3)); color:var(--navy);}
.btn-chrome:hover{filter:brightness(1.06); transform:translateY(-1px);}
.btn-outline{border:1px solid var(--line); color:var(--white); background:transparent; clip-path:none;}
.btn-outline:hover{border-color:var(--white);}

/* dropdown for services nav */
.has-dropdown{position:relative; display:inline-flex; align-items:center;}
.dropdown{
  position:absolute; top:calc(100% + 18px); left:50%; transform:translateX(-50%);
  background:var(--navy-2); border:1px solid var(--line);
  box-shadow:0 24px 60px rgba(0,0,0,0.45);
  display:grid; grid-template-columns:1fr 1fr; gap:2px;
  padding:14px; width:560px;
  opacity:0; visibility:hidden; transform:translateX(-50%) translateY(6px);
  transition:opacity .15s ease, transform .15s ease;
}
/* invisible bridge so the pointer can travel from "Services" to the panel without it closing */
.dropdown::before{
  content:""; position:absolute; left:0; right:0; top:-22px; height:22px;
}
.has-dropdown:hover .dropdown,
.dropdown:hover{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);}
.dropdown a{
  display:block; padding:10px 14px; font-size:13.5px; color:#C4D3E5; font-weight:500;
}
.dropdown a:hover{background:rgba(61,124,245,0.12); color:var(--white);}
.dropdown a.dd-other{grid-column:1/-1; border-top:1px solid var(--line); margin-top:6px; padding-top:14px; color:#7E93B3;}

/* ---------- SECTION HEADERS ---------- */
.section{padding:100px 0;}
.section-head{max-width:640px; margin-bottom:56px; display:flex; justify-content:space-between; align-items:flex-end; gap:30px;}
.section-head .htext h2{font-size:clamp(30px,3.6vw,46px); color:var(--navy); text-transform:uppercase;}
.section-head p{font-size:16px; color:var(--muted); margin-top:14px; max-width:440px;}
.kicker{
  font-size:12.5px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--blue); margin-bottom:12px; display:flex; align-items:center; gap:8px;
}
.kicker::before{content:""; width:22px; height:2px; background:var(--blue); display:inline-block;}
.section.on-navy{background:var(--navy); color:var(--white);}
.section.on-navy .section-head .htext h2{color:var(--white);}
.section.on-navy .kicker{color:var(--blue-glow);}
.section.on-navy .kicker::before{background:var(--blue-glow);}

/* ---------- SERVICES (homepage) ---------- */
.service-lead{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:70px;}
.service-card{
  position:relative; padding:0; overflow:hidden; min-height:300px;
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 26px), calc(100% - 26px) 100%, 0 100%);
  border-top:2px solid var(--blue-glow);
  display:flex; align-items:flex-end;
}
.service-card img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;
}
.service-card::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(0deg, rgba(6,13,24,0.94) 10%, rgba(6,13,24,0.55) 55%, rgba(6,13,24,0.25) 100%);
}
.service-card .sc-inner{position:relative; z-index:2; padding:30px;}
.service-card .tag{
  font-size:11.5px; font-weight:700; color:var(--blue-glow); text-transform:uppercase;
  letter-spacing:0.1em; margin-bottom:12px; display:block;
}
.service-card h3{font-size:24px; color:var(--white); font-weight:700; margin-bottom:10px; text-transform:uppercase;}
.service-card p{font-size:14px; color:#C4D3E5; margin-bottom:16px;}
.service-card .sc-link{font-size:13px; font-weight:700; color:var(--white); text-transform:uppercase; letter-spacing:0.05em; display:inline-flex; align-items:center; gap:6px;}
.service-card:hover img{filter:brightness(1.05);}

.service-sub-head{
  display:flex; align-items:baseline; justify-content:space-between;
  border-bottom:2px solid var(--navy); padding-bottom:14px; margin-bottom:0;
}
.service-sub-head h3{font-size:19px; color:var(--navy); text-transform:uppercase; letter-spacing:0.02em;}
.service-sub-head span{font-size:12.5px; color:var(--muted); text-transform:uppercase; letter-spacing:0.06em; font-weight:600;}

.service-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line-dark); border:1px solid var(--line-dark); margin-bottom:20px;
}
.service-link-card{
  background:var(--white); padding:24px 26px; display:flex; align-items:center; justify-content:space-between;
  gap:10px; transition:background .15s ease;
}
.service-link-card:hover{background:var(--steel-light);}
.service-link-card span.name{font-size:15px; font-weight:600; color:var(--navy);}
.service-link-card span.arrow{color:var(--blue); font-size:16px; font-weight:700; transition:transform .15s ease;}
.service-link-card:hover span.arrow{transform:translateX(4px);}
.other-services-banner{
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
  background:var(--steel-light); padding:26px 30px; margin-top:20px;
}
.other-services-banner .osb-text span{display:block;}
.other-services-banner .osb-label{font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:0.08em; font-weight:600; margin-bottom:4px;}
.other-services-banner .osb-name{font-size:18px; color:var(--navy); font-weight:700; text-transform:uppercase; font-family:'Big Shoulders Display';}

/* ---------- BEFORE/AFTER SCROLL REVEAL ---------- */
.reveal-block{margin-bottom:60px;}
.reveal-block:last-child{margin-bottom:0;}
.reveal-pair{
  position:relative; width:100%; aspect-ratio:4/3; overflow:hidden;
  clip-path:polygon(0 0, 100% 0, 100% 100%, 26px 100%, 0 calc(100% - 26px));
  background:#0B121C;
}
.reveal-pair img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;}
.reveal-pair .img-after{clip-path:inset(0 100% 0 0); will-change:clip-path;}
.reveal-pair .wipe-line{
  position:absolute; top:0; bottom:0; left:0%; width:3px;
  background:var(--blue-glow); box-shadow:0 0 12px rgba(61,124,245,0.8); will-change:left;
}
.reveal-tag{
  position:absolute; top:18px; padding:8px 16px;
  font-size:11.5px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--white); background:rgba(6,13,24,0.72);
}
.tag-before{left:18px;}
.tag-after{right:18px; color:var(--blue-glow);}
.reveal-caption{display:flex; justify-content:space-between; align-items:baseline; padding-top:16px; border-top:1px solid var(--line-dark);}
.reveal-caption h4{font-size:18px; color:var(--navy); text-transform:uppercase; font-family:'Big Shoulders Display'; font-weight:700;}
.reveal-caption span{font-size:12.5px; color:var(--muted); text-transform:uppercase; letter-spacing:0.06em; font-weight:600;}
.reveal-hint{font-size:12.5px; color:var(--muted); margin-bottom:36px;}

/* ---------- SERVICE DETAIL PAGE ---------- */
.service-hero{
  position:relative; overflow:hidden;
  background:linear-gradient(180deg, rgba(6,13,24,0.4) 0%, rgba(6,13,24,0.92) 100%), var(--navy);
  color:var(--white);
}
.service-hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-1;}
.service-hero-inner{position:relative; z-index:2; padding:48px 0 44px;}
.breadcrumb{font-size:12px; color:#8FA5C0; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:16px; font-weight:600;}
.breadcrumb a:hover{color:var(--white);}
.service-hero h1{font-size:clamp(34px,4.4vw,54px); text-transform:uppercase; max-width:780px;}
.service-hero .sub{font-size:17px; color:#C4D3E5; max-width:560px; margin-top:16px;}

.detail-grid{display:grid; grid-template-columns:1.4fr 0.9fr; gap:70px; align-items:start;}
.detail-grid h2{font-size:26px; color:var(--navy); text-transform:uppercase; margin-bottom:18px;}
.detail-grid p{font-size:16px; color:var(--muted); margin-bottom:20px; max-width:560px;}
.check-list{list-style:none; margin:26px 0;}
.check-list li{
  padding:14px 0 14px 30px; border-top:1px solid var(--line-dark); position:relative; font-size:15px; color:var(--ink);
}
.check-list li:last-child{border-bottom:1px solid var(--line-dark);}
.check-list li::before{content:"✓"; position:absolute; left:0; color:var(--blue); font-weight:700;}
/* expandable checklist ("What's included" on service pages) */
.check-list.expand li::before{top:14px;}
.check-list.expand summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:16px;}
.check-list.expand summary::-webkit-details-marker{display:none;}
.check-list.expand summary::after{content:""; flex-shrink:0; width:7px; height:7px; margin-right:4px; border-right:2px solid var(--blue); border-bottom:2px solid var(--blue); transform:translateY(-2px) rotate(45deg); transition:transform .2s ease;}
.check-list.expand details[open] summary::after{transform:translateY(2px) rotate(-135deg);}
.check-list.expand summary:hover{color:var(--blue);}
.check-list.expand summary:focus-visible{outline:2px solid var(--blue); outline-offset:4px;}
.check-list.expand details p{margin:10px 0 2px; max-width:none; font-size:14.5px; line-height:1.6; color:var(--muted);}

.side-card{background:var(--navy); color:var(--white); padding:32px; position:sticky; top:110px;}
.side-card h3{font-size:19px; text-transform:uppercase; margin-bottom:14px;}
.side-card p{font-size:14px; color:#AEC0D8; margin-bottom:22px;}
.side-card a.btn{width:100%; justify-content:center; margin-bottom:12px;}
.side-card .phone{display:block; text-align:center; font-size:14px; color:var(--blue-glow); font-weight:700;}
.side-card .divider{height:1px; background:var(--line); margin:22px 0;}
.side-card ul{list-style:none; font-size:13.5px; color:#AEC0D8;}
.side-card ul li{padding:6px 0; display:flex; gap:8px;}
.side-card ul li::before{content:"—"; color:var(--blue-glow);}

/* ---------- LEAD CARD (sticky form on service pages — ad landing) ---------- */
.lead-card{
  background:var(--navy); color:var(--white); padding:28px 26px 24px;
  position:sticky; top:96px;
  border-top:3px solid var(--blue-glow);
  box-shadow:0 30px 60px rgba(6,13,24,0.18);
}
.lead-card .lc-kicker{
  font-size:11.5px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--blue-glow); display:block; margin-bottom:8px;
}
.lead-card h3{font-size:22px; text-transform:uppercase; line-height:1; margin-bottom:12px;}
.lead-rating{display:flex; align-items:center; gap:8px; font-size:12.5px; color:#AEC0D8; margin-bottom:20px;}
.lead-rating .lr-stars{color:#FBBC04; letter-spacing:1px; font-size:13px;}
.lead-form{display:flex; flex-direction:column; gap:10px;}
.lead-form input, .lead-form select{
  width:100%; padding:13px 14px; border:1px solid rgba(255,255,255,0.16);
  background:rgba(255,255,255,0.06); color:var(--white);
  font-size:15px; font-family:'Inter';
}
.lead-form input::placeholder{color:#8FA5C0;}
.lead-form input:focus, .lead-form select:focus{outline:2px solid var(--blue-glow); outline-offset:1px; background:rgba(255,255,255,0.1);}
.lead-form select{color:#C4D3E5;}
.lead-form select option{color:var(--ink);}
.lead-form button{
  margin-top:4px; width:100%; padding:16px; border:none; cursor:pointer;
  background:linear-gradient(135deg, var(--chrome-1), var(--chrome-2) 55%, var(--chrome-3)); color:var(--navy);
  font-weight:800; font-size:14px; letter-spacing:0.06em; text-transform:uppercase;
  transition:filter .15s ease;
}
.lead-form button:hover{filter:brightness(1.06);}
.lead-fine{font-size:11.5px; color:#7E93B3; text-align:center; margin-top:2px;}
.lead-or{text-align:center; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:#7E93B3; margin:16px 0 6px;}
.lead-phone{display:block; text-align:center; font-family:'Big Shoulders Display'; font-weight:800; font-size:24px; color:var(--blue-glow); letter-spacing:0.02em;}
.lead-badges{list-style:none; margin-top:18px; padding-top:16px; border-top:1px solid var(--line); font-size:12.5px; color:#AEC0D8;}
.lead-badges li{padding:5px 0; display:flex; gap:8px;}
.lead-badges li::before{content:"✓"; color:var(--blue-glow); font-weight:700;}

/* stacked content blocks that share the sticky-form column */
.lp-block{margin-top:58px; padding-top:46px; border-top:1px solid var(--line-dark);}
.lp-block .section-head{margin-bottom:26px; max-width:none;}
.lp-block .reviews-row{grid-template-columns:1fr; gap:18px;}
.lp-block .reviews-more{margin-top:22px;}
.lp-block .t3d-toggle{border-color:rgba(11,18,28,0.28); color:var(--navy);}
.lp-block .t3d-toggle:hover{border-color:var(--navy); background:rgba(11,18,28,0.05);}
.lp-block .t3d-hint, .lp-block .t3d-caption{color:var(--muted);}
.lp-block .result-shot{max-width:none;}

.process-steps{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line-dark); border:1px solid var(--line-dark); margin:40px 0;}
.process-step{background:var(--white); padding:28px 26px;}
.process-step .num{font-family:'Big Shoulders Display'; font-size:32px; font-weight:800; color:var(--blue-glow); -webkit-text-stroke:1px var(--blue); color:transparent; -webkit-text-fill-color:transparent; display:block; margin-bottom:10px;}
.process-step .num{color:var(--blue); -webkit-text-fill-color:var(--blue);}
.process-step h4{font-size:15.5px; color:var(--navy); text-transform:uppercase; margin-bottom:8px; font-family:'Inter'; font-weight:700;}
.process-step p{font-size:13.5px; color:var(--muted); margin:0;}

.related-services{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:20px;}
.related-card{
  background:var(--steel-light); padding:22px 24px; display:flex; align-items:center; justify-content:space-between;
  transition:background .15s ease;
}
.related-card:hover{background:#DCE4EC;}
.related-card span{font-size:14.5px; font-weight:600; color:var(--navy);}

/* ---------- ABOUT ---------- */
.about-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:70px; align-items:start;}
.about-grid p{color:#AEC0D8; font-size:16.5px; margin-bottom:18px; max-width:460px;}
.founded{font-family:'Big Shoulders Display'; font-size:130px; font-weight:900; color:transparent; -webkit-text-stroke:2px var(--blue-glow); line-height:0.78;}
.founded-label{color:#7E93B3; font-size:13px; margin-top:10px; text-transform:uppercase; letter-spacing:0.08em; font-weight:600;}
.value-list{display:flex; flex-direction:column;}
.value-row{display:grid; grid-template-columns:150px 1fr; gap:24px; padding:24px 0; border-top:1px solid var(--line);}
.value-row:last-child{border-bottom:1px solid var(--line);}
.value-row .yr{font-family:'Big Shoulders Display'; font-size:16px; color:var(--blue-glow); font-weight:700; text-transform:uppercase; letter-spacing:0.02em;}
.value-row p{color:#AEC0D8; font-size:15px; margin:0;}

/* ---------- TESTIMONIAL ---------- */
.testimonial{
  background:var(--navy); color:var(--white); padding:64px 60px; max-width:840px;
  clip-path:polygon(0 0, 100% 0, 100% 100%, 34px 100%, 0 calc(100% - 34px));
}
.testimonial p.quote{font-size:22px; font-family:'Big Shoulders Display'; font-weight:600; line-height:1.35; margin-bottom:20px; text-transform:none;}
.testimonial .who{font-size:13px; color:var(--blue-glow); font-weight:700; text-transform:uppercase; letter-spacing:0.06em;}

/* ---------- QUOTE FORM ---------- */
.quote-section{background:linear-gradient(125deg, var(--navy) 0%, #0D2547 100%); color:var(--white); padding:100px 0; position:relative; overflow:hidden;}
.quote-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; position:relative; z-index:2;}
.quote-grid h2{font-size:clamp(28px,3.2vw,42px); margin-bottom:18px; color:var(--white); text-transform:uppercase;}
.quote-grid p{color:#AEC0D8; font-size:16px; margin-bottom:28px; max-width:420px;}
.badge-row{display:flex; gap:24px; flex-wrap:wrap;}
.badge{font-size:13px; color:#AEC0D8; display:flex; align-items:center; gap:8px; font-weight:600; text-transform:uppercase; letter-spacing:0.04em;}
.badge::before{content:""; width:6px; height:6px; background:var(--blue-glow);}
form.quote-form{background:var(--white); padding:38px; display:flex; flex-direction:column; gap:16px; clip-path:polygon(18px 0, 100% 0, 100% 100%, 0 100%, 0 18px);}
.quote-form label{font-size:12.5px; color:var(--muted); font-weight:700; margin-bottom:6px; display:block; text-transform:uppercase; letter-spacing:0.04em;}
.quote-form input, .quote-form select{width:100%; padding:13px 14px; border:1px solid #D4DEE9; font-size:15px; font-family:'Inter'; color:var(--ink);}
.quote-form input:focus, .quote-form select:focus{outline:2px solid var(--blue); outline-offset:1px;}
.quote-form button{margin-top:6px; width:100%; padding:16px; border:none; background:linear-gradient(135deg, var(--chrome-1), var(--chrome-2) 55%, var(--chrome-3)); color:var(--navy); font-weight:800; font-size:14.5px; letter-spacing:0.06em; text-transform:uppercase; cursor:pointer;}
.quote-form button:hover{filter:brightness(1.05);}

/* ---------- OTHER SERVICES PAGE ---------- */
.sunset-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:10px;}
.sunset-card{background:var(--steel-light); padding:32px 28px;}
.sunset-card h3{font-size:19px; color:var(--navy); text-transform:uppercase; margin-bottom:10px;}
.sunset-card p{font-size:14px; color:var(--muted); margin:0;}

/* ---------- FOOTER ---------- */
footer{background:#040A13; color:#7E93B3; padding:60px 0 30px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; margin-bottom:44px;}
.footer-grid h4{color:var(--white); font-size:13px; font-weight:700; margin-bottom:16px; text-transform:uppercase; letter-spacing:0.06em;}
.footer-grid a, .footer-grid p{font-size:14px; color:#7E93B3; margin-bottom:10px; display:block;}
.footer-grid a:hover{color:var(--white);}
.footer-bottom{display:flex; justify-content:space-between; padding-top:24px; border-top:1px solid var(--line); font-size:12.5px; flex-wrap:wrap; gap:10px;}

@media (max-width:900px){
  .nav{padding:14px 20px; position:relative;}
  .nav-toggle{display:flex;}
  .nav-cta .phone-link{display:none;}
  .nav-cta{gap:12px;}
  .nav-cta .btn-chrome{padding:10px 15px; font-size:11.5px;}
  .brand-name{font-size:19px;}
  .brand-name .sub{font-size:9px;}

  nav.links{
    display:flex; flex-direction:column; align-items:stretch; gap:0;
    position:absolute; top:100%; left:0; right:0;
    background:var(--navy); border-bottom:1px solid var(--line);
    padding:6px 20px 22px;
    max-height:0; overflow:hidden; opacity:0; visibility:hidden;
    transition:max-height .3s ease, opacity .2s ease;
  }
  header.nav-open nav.links{max-height:calc(100vh - 70px); overflow-y:auto; opacity:1; visibility:visible;}
  nav.links > a,
  nav.links .has-dropdown > a{
    display:block; padding:15px 2px; font-size:15px; color:#C4D3E5; line-height:1.2;
    border-bottom:1px solid rgba(255,255,255,0.07);
  }
  .has-dropdown{display:block;}
  .dropdown{
    position:static; transform:none !important; opacity:1; visibility:visible;
    width:auto; display:block; background:none; border:none; box-shadow:none;
    padding:2px 0 6px 14px;
  }
  .dropdown::before{display:none;}
  .dropdown a{padding:11px 0; font-size:13.5px; border-bottom:1px solid rgba(255,255,255,0.05);}
  .dropdown a.dd-other{border-top:none; margin-top:0; padding-top:11px;}
  nav.links a.nav-menu-cta{
    display:block; margin-top:18px; text-align:center; border-bottom:none;
    padding:14px; background:var(--blue); color:#fff;
    font-weight:700; letter-spacing:0.04em;
  }

  .hero-inner{grid-template-columns:1fr;}
  .hero-photo{height:300px; order:-1; margin-bottom:8px;}
  .service-lead{grid-template-columns:1fr;}
  .service-grid{grid-template-columns:1fr;}
  .about-grid, .quote-grid{grid-template-columns:1fr;}
  .section-head{flex-direction:column; align-items:flex-start;}
  .detail-grid{grid-template-columns:1fr; gap:8px;}
  .detail-grid > div:first-child{margin-top:20px;}
  .lead-card{position:static; order:-1; margin:-46px 0 8px;}
  .lp-block{margin-top:44px; padding-top:36px;}
  .process-steps{grid-template-columns:1fr;}
  .related-services{grid-template-columns:1fr;}
  .sunset-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr; gap:28px;}
}

/* ---------- HERO (homepage only) ---------- */
.hero{
  position:relative; min-height:74vh; display:flex; align-items:center; padding:40px 0;
  background:linear-gradient(180deg, rgba(6,13,24,0.5) 0%, rgba(6,13,24,0.92) 75%, var(--navy) 100%),
    radial-gradient(ellipse at 75% 30%, #123A6E 0%, #081833 45%, #060D18 80%);
  overflow:hidden; color:var(--white);
}
.hero::before{
  content:""; position:absolute; inset:0; opacity:0.5;
  background-image:repeating-linear-gradient(118deg, transparent 0 120px, rgba(61,124,245,0.09) 120px 123px, transparent 123px 130px);
  pointer-events:none;
}
.hero::after{
  content:""; position:absolute; right:-10%; top:10%; width:70%; height:80%;
  background:linear-gradient(120deg, transparent 40%, rgba(22,86,224,0.16) 55%, transparent 70%);
  pointer-events:none;
}
.hero-inner{position:relative; z-index:2; max-width:1200px; margin:0 auto; padding:0 32px; display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center; width:100%;}
.tagline-bar{display:flex; gap:10px; align-items:center; margin-bottom:26px; font-size:13px; font-weight:700; letter-spacing:0.14em;}
.tagline-bar span{color:#DCE4EC;}
.tagline-bar span.pop{color:var(--blue-glow);}
.tagline-bar .sep{color:var(--chrome-3);}
.hero h1{font-size:clamp(42px, 5.6vw, 78px); color:var(--white); margin-bottom:22px; text-transform:uppercase;}
.hero h1 .accent{background:linear-gradient(120deg, var(--blue-glow), #6FA0FF); -webkit-background-clip:text; background-clip:text; color:transparent;}
.hero p.lead{font-size:17.5px; color:#AEC0D8; max-width:470px; margin-bottom:34px; font-weight:400;}
.hero-actions{display:flex; gap:14px; align-items:center; flex-wrap:wrap; margin-bottom:42px;}
.stat-row{display:flex; gap:0; flex-wrap:wrap; border-top:1px solid var(--line);}
.stat{padding:16px 28px 0 0; margin-right:28px; border-right:1px solid var(--line);}
.stat:last-child{border-right:none;}
.stat .num{font-family:'Big Shoulders Display'; font-size:27px; font-weight:800; color:var(--white); display:block;}
.stat .label{font-size:12px; color:#7E93B3; text-transform:uppercase; letter-spacing:0.06em;}
.hero-photo{
  position:relative; height:clamp(360px, 62vh, 560px); width:100%;
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 34px), calc(100% - 34px) 100%, 0 100%);
  border-top:3px solid var(--blue-glow);
  box-shadow:0 40px 90px rgba(0,0,0,0.5);
}
.hero-photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.hero-badge{
  position:absolute; left:22px; bottom:22px; z-index:3;
  display:flex; align-items:center; gap:11px;
  background:var(--white); border-radius:10px;
  padding:13px 17px; box-shadow:0 18px 40px rgba(6,13,24,0.4);
}
.hero-badge .hb-stars{display:flex; gap:2px;}
.hero-badge .hb-stars .g-star{width:14px; height:14px;}
.hero-badge .hb-text{font-size:12px; color:var(--muted); line-height:1.45; font-family:'Inter'; white-space:nowrap;}
.hero-badge .hb-text strong{font-family:'Big Shoulders Display'; font-size:19px; font-weight:800; color:var(--navy); margin-right:2px;}
.hero-photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(120deg, rgba(6,13,24,0.28) 0%, transparent 45%);
}

/* ---------- GOOGLE REVIEWS ---------- */
.reviews-summary{
  display:flex; align-items:center; gap:20px; flex-wrap:wrap;
  margin-bottom:40px; padding-bottom:32px; border-bottom:1px solid #E2E8F0;
}
.reviews-summary .score{
  font-family:'Big Shoulders Display'; font-size:56px; font-weight:800;
  color:var(--navy); line-height:0.9;
}
.reviews-summary .rs-stars{display:flex; gap:2px; margin-bottom:4px;}
.reviews-summary .rs-meta{font-size:13.5px; color:var(--muted);}
.reviews-summary .rs-meta strong{color:var(--navy); font-weight:700;}
.reviews-summary .rs-link{
  margin-left:auto; font-size:13.5px; font-weight:700; color:var(--blue);
  text-transform:uppercase; letter-spacing:0.03em;
}
.reviews-summary .rs-link:hover{color:var(--blue-2);}

.g-star{width:17px; height:17px; display:block; flex-shrink:0;}

/* homepage: masonry columns */
.reviews-grid{columns:3; column-gap:22px;}
.reviews-grid .g-review{margin-bottom:22px;}

/* service pages: even row */
.reviews-row{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}

.g-review{
  break-inside:avoid; background:var(--white); border:1px solid #E2E8F0;
  border-radius:8px; padding:22px 22px 24px;
  box-shadow:0 1px 3px rgba(6,13,24,0.05);
}
.g-review-head{display:flex; align-items:center; gap:12px; margin-bottom:12px;}
.g-avatar{
  width:40px; height:40px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:600; font-size:18px; font-family:'Inter';
}
.g-id{display:flex; flex-direction:column; min-width:0;}
.g-name{font-size:14.5px; font-weight:600; color:var(--navy); line-height:1.2;}
.g-sub{font-size:12px; color:var(--muted);}
.g-logo{width:19px; height:19px; margin-left:auto; flex-shrink:0;}
.g-stars{display:flex; align-items:center; gap:1px; margin-bottom:9px;}
.g-stars .g-date{font-size:12.5px; color:var(--muted); margin-left:8px;}
.g-review p{font-size:14px; line-height:1.6; color:#33404F; margin:0; text-transform:none;}

.reviews-more{margin-top:30px; font-size:14px; color:var(--muted);}
.reviews-more a{color:var(--blue); font-weight:700;}
.reviews-more a:hover{color:var(--blue-2);}

.g-review--extra{display:none;}
.reviews-grid.is-open .g-review--extra{display:block;}
.reviews-toggle{
  display:block; margin:8px auto 0; padding:13px 30px;
  background:none; border:1px solid var(--line-dark); color:var(--navy);
  font-family:'Inter'; font-size:13px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase;
  cursor:pointer; transition:border-color .15s ease, background .15s ease;
}
.reviews-toggle:hover{border-color:var(--navy); background:var(--steel-light);}

/* homepage: 3-up review slider */
.rev-viewport{overflow:hidden;}
.rev-track{display:flex; transition:transform .5s cubic-bezier(.65,0,.35,1);}
.rev-track .rev-page{flex:0 0 100%; min-width:0;}
.rev-controls{display:flex; align-items:center; justify-content:center; gap:18px; margin-top:28px;}
.rev-arrow{
  width:42px; height:42px; border-radius:50%; border:1px solid var(--line-dark);
  background:var(--white); color:var(--navy); font-size:22px; line-height:1;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:border-color .15s ease, background .15s ease, opacity .15s ease;
}
.rev-arrow:hover{border-color:var(--navy); background:var(--steel-light);}
.rev-arrow:disabled{opacity:0.35; cursor:default; background:var(--white); border-color:var(--line-dark);}
.rev-dots{display:flex; align-items:center; gap:9px;}
.rev-dot{
  width:9px; height:9px; padding:0; border-radius:50%; border:none;
  background:var(--line-dark); cursor:pointer; transition:background .15s ease, transform .15s ease;
}
.rev-dot.is-active{background:var(--blue); transform:scale(1.25);}

@media (max-width:1150px){
  .reviews-grid{columns:2;}
  .reviews-row{grid-template-columns:repeat(2,1fr);}
  .rev-track .rev-page.reviews-row{grid-template-columns:repeat(2,1fr); row-gap:20px;}
}
@media (max-width:760px){
  .reviews-grid{columns:1;}
  .reviews-row{grid-template-columns:1fr;}
  .reviews-summary .rs-link{margin-left:0; flex-basis:100%;}
  .rev-track .rev-page.reviews-row{grid-template-columns:1fr; row-gap:16px;}
}

/* ---------- BEFORE / AFTER SCROLL SLIDE ---------- */
.transform3d{background:var(--navy); color:#fff; padding:78px 0 84px; overflow:hidden;}
.transform3d .section-head{margin-bottom:34px;}
.transform3d .section-head .htext h2{color:#fff;}
.transform3d .section-head p{color:#9fb2ca;}
.transform3d .kicker{color:var(--blue-glow);}
.transform3d .kicker::before{background:var(--blue-glow);}

.t3d-set{display:flex; flex-direction:column; gap:52px; align-items:center;}

/* homepage: before/after flanked by stat callouts instead of floating alone */
.see-sealed-layout{
  display:grid; grid-template-columns:1fr minmax(0,560px) 1fr;
  gap:40px; align-items:start; margin:32px 0 70px;
}
.ss-flank{position:sticky; top:110px; display:flex; flex-direction:column; gap:24px; padding-top:18px;}
.ss-flank--right{align-items:flex-start;}
.ss-stat{border-left:3px solid var(--blue-glow); padding-left:16px;}
.ss-stat .ss-num{display:block; font-family:'Big Shoulders Display'; font-size:30px; font-weight:800; color:var(--navy); line-height:1;}
.ss-stat .ss-label{font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:0.05em;}
.ss-note{font-size:13.5px; color:var(--muted); line-height:1.55; max-width:220px; margin:0;}

[data-reveal]{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease;}
[data-reveal].is-revealed{opacity:1; transform:translateY(0);}
.ss-flank--right[data-reveal]{transition-delay:.12s;}

@media (max-width:1150px){
  .see-sealed-layout{grid-template-columns:1fr;}
  .ss-flank{display:none;}
}

.t3d-item{width:100%; max-width:560px;}
.t3d-item.is-wide{max-width:820px;}

.t3d-caption{
  font-size:12px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
  color:#8095ae; margin-bottom:12px; text-align:center;
}

.t3d-viewport{
  position:relative; width:100%; aspect-ratio:3/4; overflow:hidden;
  background:#0A1826;
  border-radius:12px; box-shadow:0 30px 60px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.07);
}
.t3d-item.is-wide .t3d-viewport{aspect-ratio:4/3;}

.t3d-track{display:flex; width:200%; height:100%; will-change:transform;}
.t3d-pane{position:relative; flex:0 0 50%; width:50%; height:100%; padding:16px; box-sizing:border-box;}
/* contain, not cover: the whole photo stays in the frame — nothing is clipped
   when the slide lands fully on the after */
.t3d-pane img{width:100%; height:100%; object-fit:contain; display:block; border-radius:4px;}
.t3d-label{
  position:absolute; left:16px; top:16px; z-index:2;
  font-size:11px; font-weight:800; letter-spacing:0.14em; text-transform:uppercase;
  color:#fff; padding:7px 13px; background:rgba(6,13,24,0.72); backdrop-filter:blur(3px);
}
.t3d-pane--after .t3d-label{background:var(--blue-glow); color:var(--navy);}

.t3d-progress{margin:16px auto 0; height:3px; background:rgba(255,255,255,0.14); border-radius:2px; overflow:hidden;}
.t3d-progress span{display:block; height:100%; width:0; background:var(--blue-glow);}

.t3d-cta{display:flex; gap:16px; justify-content:center; align-items:center; margin-top:26px; flex-wrap:wrap;}
.t3d-hint{font-size:12px; color:#8095ae; text-transform:uppercase; letter-spacing:0.08em;}
.t3d-toggle{
  background:none; border:1px solid rgba(255,255,255,0.28); color:#fff;
  font-family:'Inter'; font-size:12px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase;
  padding:9px 17px; cursor:pointer; transition:border-color .15s ease, background .15s ease;
}
.t3d-toggle:hover{border-color:#fff; background:rgba(255,255,255,0.08);}

/* multi-comparison sets (e.g. powerwash) just stack — each photo full width,
   whole image visible, its own scroll-slide */
.t3d-set.is-multi{gap:44px;}

/* single "after" showcase (used where there is no before photo) */
.result-shot{max-width:540px; margin:0 auto;}
.result-shot img{
  width:100%; height:auto; display:block; border-radius:12px;
  box-shadow:0 30px 60px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.07);
}
.result-shot figcaption{
  margin-top:16px; text-align:center; font-size:11px; font-weight:800;
  letter-spacing:0.14em; text-transform:uppercase; color:#8095ae;
}

@media (prefers-reduced-motion:reduce){
  .t3d-viewport{aspect-ratio:auto; height:auto; overflow:visible; background:none; box-shadow:none;}
  .t3d-track{flex-direction:column; width:100%;}
  .t3d-pane{width:100%; flex-basis:auto; padding:0; margin-bottom:12px;}
  .t3d-pane img{height:auto;}
  .t3d-progress, .t3d-cta{display:none;}
}

/* ---------- SERVICE AREAS PAGE ---------- */
.areas-map{
  max-width:960px; margin:14px auto 0; padding:22px 24px;
  background:rgba(4,10,20,0.4); border:1px solid rgba(255,255,255,0.07); border-radius:14px;
}
.areas-map svg{width:100%; height:auto; display:block; overflow:visible;}
.am-land{fill:rgba(125,165,215,0.07);}
.am-water{fill:#0B1728; stroke:rgba(61,124,245,0.22); stroke-width:1;}
.am-lake-label{fill:rgba(150,175,210,0.30); font-family:'Inter',sans-serif; font-size:10px; font-weight:600; letter-spacing:0.22em;}
.am-ring{fill:none; stroke:rgba(255,255,255,0.08);}
.am-spoke{stroke:rgba(61,124,245,0.18); stroke-width:1;}
.am-dot{fill:var(--blue-glow);}
.am-dot-hq{fill:#fff;}
.am-pulse{fill:none; stroke:var(--blue-glow); stroke-width:1.5; opacity:0; animation:amPulse 3.2s ease-out infinite;}
.am-pulse-2{animation-delay:1.6s;}
@keyframes amPulse{0%{r:8; opacity:0.6;} 100%{r:48; opacity:0;}}
@media (prefers-reduced-motion:reduce){ .am-pulse{animation:none;} }
.am-label{fill:#C4D3E5; font-family:'Inter',sans-serif; font-size:11.5px; font-weight:600;}
.am-label-hq{fill:#fff; font-family:'Big Shoulders Display',sans-serif; font-size:18px; font-weight:800; letter-spacing:0.06em;}
.am-label-sub{fill:#8095ae; font-family:'Inter',sans-serif; font-size:9px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase;}

.areas-legend{display:flex; gap:22px 30px; justify-content:center; flex-wrap:wrap; margin-top:26px; font-size:12px; color:#8095ae;}
.areas-legend span{display:inline-flex; align-items:center; gap:8px;}
.lg-dot{width:9px; height:9px; border-radius:50%; background:var(--blue-glow); display:inline-block;}
.lg-dot.lg-hq{background:#fff;}
.lg-ring{width:12px; height:12px; border-radius:50%; border:1px solid rgba(255,255,255,0.5); display:inline-block;}

.areas-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(228px,1fr)); gap:34px 28px; margin-top:8px;}
.area-group h3{font-size:13.5px; text-transform:uppercase; letter-spacing:0.04em; color:var(--navy); border-bottom:2px solid var(--blue); padding-bottom:8px; margin-bottom:12px; font-family:'Inter'; font-weight:700;}
.area-group ul{list-style:none;}
.area-group li{font-size:14px; color:#4A5768; padding:3.5px 0;}
.areas-note{margin-top:46px; font-size:15.5px; color:var(--muted); max-width:620px; line-height:1.6;}
.areas-note a{color:var(--blue); font-weight:700;}
.areas-note a:hover{color:var(--blue-2);}

@media (max-width:600px){
  .am-label{font-size:13px;}
  .am-label-hq{font-size:15px;}
  .areas-legend{flex-direction:column; align-items:flex-start; gap:10px;}
}
