/* ==========================================================================
   PWT CORE - shared design system (Phase 1B)
   Generated from the APPROVED homepage redesign CSS.

   Contents: only rules whose selectors can match interior-page markup.
   Allowlist = static class/id inventory of the 322 interior pages, plus the
   JS-toggled classes "show" and "on". Homepage-only components
   (.hero*, .svc*, .mini*, .pwt-trust*, .block, .stats, .form, .field,
   .cta-card, .cta-sec, .shot, .drone, .commercial, .foot-grid, .foot-col)
   are intentionally absent - see pwt-interior.css for interior equivalents.

   Load AFTER the interior inline <style> blocks so this wins the cascade.
   ========================================================================== */

/* --- light design tokens (override the legacy dark :root) --- */
:root{
  --bg:#FFFFFF;--panel:#EEF4FC;--panel-2:#E4EDF9;--card:#FFFFFF;
  --line:rgba(15,37,64,.12);--line-2:rgba(15,37,64,.20);
  --text:#18253C;--muted:#5A6B84;
  --navy:#0F2540;--gold:#F5A623;
  --blue:#1E83FF;--blue-2:#0A6BFF;--glow:#1E83FF;--ice:#0F2540;
  --radius:18px;--maxw:1200px;--ease:cubic-bezier(.16,1,.3,1);
}
/* NOTE: --logo is deliberately NOT set here. It is a per-page ASSET
   reference, not a design token: the homepage points it at home-bg-1.webp
   while 316 interior pages point it at their own img-76d178ee.png.
   Overriding it site-wide blanked the interior footer logo. Each page
   keeps its own value. */

/* --- scrolled nav state (parity with homepage; JS adds .scrolled) --- */
.nav.scrolled{
  background:#0F2540;
  border-bottom:1px solid rgba(255,255,255,.10);
}

/* 1/6 base theme */
body{
  background:#FFFFFF;
  color:#18253C;
}
h1{
  color:#0F2540;
}
h1 .blue{
  color:#1E83FF;
}
.chrome{
  background:none;
  -webkit-background-clip:border-box;
  background-clip:border-box;
  -webkit-text-fill-color:#0F2540;
  color:#0F2540;
  animation:none;
}
html,body{
  overflow-x:hidden;
}
/* 2/6 header + hero */
.nav{
  background:#0F2540;
}
.nav-in{
  min-height:64px;
  padding-top:8px;
  padding-bottom:8px;
}
.brand-logo{
  width:72px;
  height:54px;
  filter:none;
}
.nav-links a{
  color:#DCE7F5;
  font-size:.93rem;
}
.nav-links a:hover{
  color:#FFFFFF;
}
.nav-phone{
  color:#FFFFFF;
}
.nav-phone span{
  color:#FFFFFF;
}
.nav-burger svg path{
  stroke:#FFFFFF;
}
.nav-links.show{
  background:#0F2540;
}
.nav-links.show a{
  border-bottom:1px solid rgba(255,255,255,.10);
  color:#DCE7F5;
}
.eyebrow{
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:7px 12px;
  border-radius:7px;
  background:rgba(30,131,255,.07);
  border:1px solid rgba(30,131,255,.18);
  color:#0F2540;
  font-size:.78rem;
  letter-spacing:.16em;
  line-height:1.35;
}

/* --- hero subhead contrast (beats .hero p.sub) --- */
.eyebrow::before{
  width:18px;
  background:#1E83FF;
}

/* --- primary CTA --- */
.btn-blue{
  background:linear-gradient(120deg,#1E83FF,#0A6BFF);
  color:#FFFFFF;
  box-shadow:0 0 0 1px rgba(30,131,255,.35),0 12px 28px -12px rgba(30,131,255,.60);
}
.btn-blue:hover{
  transform:translateY(-2px);
  filter:brightness(1.05);
  box-shadow:0 0 0 1px rgba(30,131,255,.50),0 18px 36px -14px rgba(30,131,255,.70);
}
.btn-blue:active{
  transform:translateY(0);
}

/* --- secondary / ghost CTA --- */
.btn-ghost{
  background:#FFFFFF;
  color:#0F2540;
  border:1px solid rgba(30,131,255,.45);
  box-shadow:0 1px 2px rgba(15,37,64,.06);
}
.btn-ghost:hover{
  transform:translateY(-2px);
  background:#EEF4FC;
  border-color:#1E83FF;
  color:#0F2540;
}
.btn-ghost:active{
  transform:translateY(0);
}
.btn:focus-visible{
  outline:2px solid #1E83FF;
  outline-offset:2px;
}

/* --- chips --- */
.chip{
  background:#EEF4FC;
  border:1px solid rgba(15,37,64,.12);
  color:#18253C;
}
.chip svg{
  color:#1E83FF;
}

/* --- card surfaces --- */
.res{
  background:#FFFFFF;
  border:1px solid rgba(15,37,64,.12);
  box-shadow:0 1px 2px rgba(15,37,64,.05),0 10px 26px -20px rgba(15,37,64,.35);
}
.res:hover{
  transform:translateY(-5px);
  border-color:rgba(30,131,255,.38);
  box-shadow:0 2px 4px rgba(15,37,64,.06),0 22px 44px -26px rgba(15,37,64,.40);
}
.res .top{
  background:linear-gradient(150deg,#EEF4FC,#E4EDF9);
  border-bottom:1px solid rgba(15,37,64,.10);
}
.res .top svg{
  color:#1E83FF;
  opacity:1;
}
.res .tag{
  color:#0A6BFF;
}

/* --- faq + social tiles --- */
.qa{
  background:#FFFFFF;
  border:1px solid rgba(15,37,64,.12);
}
.qa summary{
  color:#0F2540;
}
.qa summary .pl::before,.qa summary .pl::after{
  background:#1E83FF;
}
.qa .a{
  color:#5A6B84;
}

/* --- row alignment when headings wrap --- */
@media(min-width:821px){
  .res h3{
    min-height:2.4em;
  }
}

/* --- service area chips --- */
.chips a.chip{
  text-decoration:none;
  transition:background .2s,border-color .2s,color .2s;
}
.chips a.chip:hover{
  border-color:#1E83FF;
  background:#E4EDF9;
}

/* --- contrast: inline var(--glow) links on light bands --- */
.qa{
  --glow:#0A6BFF;
}
/* inline styles resolve var() so scoped tokens win */
.pwt-reviews{
  --glow:#F5A623;
  --text:#18253C;
  --line:rgba(15,37,64,.12);
  --card:#FFFFFF;
}
.pwt-reviews h2{
  color:#0F2540;
  text-align:center;
  font-size:clamp(1.9rem,4.2vw,2.8rem);
  line-height:1.15;
  margin:0 auto 10px;
}
.pwt-reviews>p{
  --muted:#0F2540;
  color:#0F2540;
  text-align:center;
  font-size:1.15rem;
  font-weight:700;
  margin:0 auto 22px!important;
}

/* --- review card surfaces --- */
.pwt-reviews .res-grid>div{
  --muted:#18253C;
  box-shadow:0 1px 2px rgba(15,37,64,.05);
  transition:transform .3s ease,box-shadow .3s;
}
.pwt-reviews .res-grid>div:hover{
  --line:rgba(30,131,255,.38);
  transform:translateY(-4px);
  box-shadow:0 2px 4px rgba(15,37,64,.06);
}
.pwt-reviews .res-grid>div>div:last-child{
  --muted:#5A6B84;
}
.pwt-reviews .res-grid>div>span{
  letter-spacing:2px;
}

/* --- google section hierarchy --- */
.pwt-reviews>div:last-child{
  text-align:center;
}
.pwt-reviews .res-grid>div{
  text-align:left;
}

/* --- google section eyebrow --- */
.pwt-reviews{
  text-align:center;
}
.pwt-reviews .eyebrow{
  --glow:#1E83FF;
  margin-bottom:12px;
}

/* --- mobile action bar --- */
.mbar{
  background:#0F2540;
  border-top:1px solid rgba(255,255,255,.12);
}
/* tokens scoped to footer only, never global tokens --- */
footer{
  background:#0F2540;
  border-top:1px solid rgba(255,255,255,.10);
  --text:#FFFFFF;
  --muted:#C9D8EC;
  --line:rgba(255,255,255,.14);
  --glow:#7FB2FF;
}
.fcol-h{
  color:#7FB2FF;
}
.pwt-badge{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(127,178,255,.30);
  color:#FFFFFF;
}
.pwt-fsocial a{
  border:1px solid rgba(255,255,255,.20);
  color:#C9D8EC;
}
.pwt-fsocial a:hover{
  border-color:#7FB2FF;
  color:#FFFFFF;
}
.pwt-ctaband{
  background:#0F2540;
  border-top:1px solid rgba(255,255,255,.10);
  border-bottom:1px solid rgba(255,255,255,.10);
}
.pwt-ctaband h2{
  color:#FFFFFF;
}
.pwt-ctaband p{
  color:#C9D8EC;
}
.pwt-ctaband .b2{
  border:1px solid rgba(255,255,255,.35);
  color:#FFFFFF;
}

/* --- NAP block (awaiting markup) --- */
.pwt-fnap{
  color:#C9D8EC;
  font-size:.92rem;
  line-height:1.75;
  font-style:normal;
}
.pwt-fnap b{
  display:block;
  color:#FFFFFF;
  font-weight:700;
  margin-bottom:2px;
}
.pwt-fnap a{
  color:#7FB2FF;
  text-decoration:none;
}
.pwt-fnap a:hover{
  color:#FFFFFF;
  text-decoration:underline;
}
.pwt-fnap a:focus-visible{
  outline:2px solid #7FB2FF;
  outline-offset:2px;
}

/* --- compact mobile header --- */
@media(max-width:560px){
  .nav-in{
    min-height:56px;
    padding-top:6px;
    padding-bottom:6px;
  }
  .nav-links.show{
    background:#0F2540;
  }
}

/* --- mobile hero --- */
@media(max-width:560px){
  .chips{
    gap:7px;
  }
}

/* --- mobile section spacing --- */
@media(max-width:560px){
  .wrap{
    padding-left:16px;
    padding-right:16px;
  }
}
@media(max-width:560px){
  .qa summary{
    padding:16px 18px;
    min-height:52px;
  }
  .qa .a{
    padding:0 18px 18px;
  }
}

/* --- touch targets --- */
@media(max-width:560px){
  footer{
    padding:40px 0 96px;
  }
}

/* --- footer logo presence --- */
.foot-logo{
  width:280px!important;
  height:96px!important;
  max-width:100%;
  background-size:contain!important;
  margin-bottom:14px;
}

/* --- mobile header sizing --- */
@media(max-width:560px){
  .brand-logo{
    width:64px;
    height:48px;
  }
}
@media(max-width:560px){
  .nav-phone{
    width:46px!important;
    height:46px!important;
    flex:0 0 46px!important;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.22);
  }
  .nav-phone svg{
    width:24px;
    height:24px;
  }
}

/* --- compact sticky action bar --- */
.mbar{
  padding:7px 10px;
  gap:8px;
}
.mbar .btn{
  padding:12px 10px;
  font-size:.9rem;
  min-height:44px;
  border-radius:11px;
}

/* --- mobile eyebrow sizing --- */
@media(max-width:560px){
  .eyebrow{
    padding:6px 10px;
    font-size:.7rem;
    letter-spacing:.12em;
    gap:7px;
  }
  .eyebrow::before{
    width:14px;
  }
}

/* --- mobile footer contact: overflow + email wrapping --- */
@media(max-width:760px){
  .pwt-fcol{
    min-width:0;
  }
  .pwt-fcol a{
    min-width:0;
    overflow-wrap:break-word;
  }
}
@media(max-width:760px){
  .pwt-fnap a[href^="mailto:"]{
    word-break:break-word;
    overflow-wrap:anywhere;
  }
  .pwt-fnap{
    overflow-wrap:anywhere;
  }
}

/* --- footer: single column earlier so Contact is not squeezed --- */
@media(max-width:620px){
  .pwt-fgrid{
    grid-template-columns:1fr;
  }
}


