/* JD's Plumbing — mobile optimization (loaded last, wins over inline page styles) */
.menu-toggle{display:none}

@media(max-width:900px){
  .navlinks{gap:14px !important}
  .cta{padding:9px 13px !important;font-size:14px !important}
}

@media(max-width:860px){
  /* --- header / mobile nav --- */
  .navwrap{padding:10px 18px !important}
  .menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;background:none;border:0;cursor:pointer;margin-left:auto;padding:8px}
  .menu-toggle span{display:block;width:26px;height:3px;background:#0f2350;border-radius:2px;transition:.2s}
  nav.open .menu-toggle span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  nav.open .menu-toggle span:nth-child(2){opacity:0}
  nav.open .menu-toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
  .nav .cta{display:none !important}
  .navlinks{display:none !important;order:3;width:100%;flex-direction:column;align-items:stretch !important;gap:0 !important;margin:0 !important;padding:0 !important}
  nav.open .navlinks{display:flex !important}
  .navlinks li{width:100%}
  .nl{display:block;width:100%;padding:15px 4px !important;border-bottom:1px solid #eef1f7 !important;border-top:0 !important;font-size:17px !important}
  .nl.on{border-bottom-color:#2f5fc4 !important}
  .hasmega{position:static}
  .mega{display:none !important}
  .caret{display:none}

  /* --- typography scale --- */
  .h1{font-size:42px !important;line-height:1.02 !important}
  .ph1{font-size:36px !important}
  .h2{font-size:30px !important}
  .hsub,.phsub,.lead{font-size:16.5px !important}

  /* --- spacing --- */
  .sec{padding:54px 0 !important}
  .wrp,.wrpn{padding:0 18px !important}
  .herowrap,.pherowrap{padding:46px 18px 52px !important}

  /* --- one-column collapses --- */
  .split,.mapgrid,.megagroups,.grid,.grid3,
  .svcgrid,.blogrid,.revgrid,.whygrid,.wsteps,.stats,.vals,.feat,
  .inclist,.moregrid,.svcbul,.svclist,.ilist,.areawrap,.pgrid,.frow{grid-template-columns:1fr !important}
  .masonry,.revgrid{columns:1 !important}
  .ftgrid{grid-template-columns:1fr 1fr !important;gap:28px !important}
  .pcard.span{grid-column:auto !important}
  .loclist{columns:1 !important}

  /* --- media --- */
  .splitimg{height:300px !important;min-height:0 !important}
  .mapframe{height:300px !important}
  .svcimg,.bimg{height:200px !important}

  /* --- cta band stacks --- */
  .ctaband{padding:32px 24px !important;flex-direction:column;align-items:flex-start !important;gap:18px !important}
  .bignum{font-size:32px !important}

  /* --- badges / brands --- */
  .badges{gap:8px !important}
  .badge{padding:8px 12px !important}
  .badge b{font-size:15px !important}
  .brands{gap:10px 20px !important}
  .brand-i{font-size:18px !important}
  .filters{gap:8px !important}
  .fbtn{font-size:14px !important;padding:9px 14px !important}
}

@media(max-width:640px){
  /* trim top bar to just the phone */
  .topwrap>div:first-child{display:none !important}
  .topwrap{justify-content:flex-end !important}
  .bname{font-size:19px !important}
  .bicon{width:40px;height:40px}
  .h1{font-size:34px !important}
  .ph1{font-size:28px !important}
  .h2{font-size:26px !important}
  .ftgrid{grid-template-columns:1fr !important}
  .sec{padding:44px 0 !important}
  .callcard,.formcard{padding:26px 22px !important}
  .lbimg{max-width:94vw !important}
}
