/* =====================================================================
   Shared site footer — even 5-zone grid, one aligned baseline,
   consistent heading + link rhythm, calm bottom bar.
   ===================================================================== */
.hp-footer{
  position:relative;
  box-sizing:border-box;
  background:#0a0c0a;color:#fff;
  padding:clamp(64px,7vw,104px) 0 44px;
  font-family:Inter,Manrope,Arial,sans-serif;
  border-top:1px solid rgba(255,255,255,.08);
}
.hp-footer *{box-sizing:border-box}
/* green light-bar along the top edge — matches the homepage "numbers" band */
.hp-footer::before{
  content:"";position:absolute;left:50%;top:-1px;transform:translateX(-50%);
  width:min(40%,520px);height:2px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(150,200,80,.5) 26%,rgba(190,224,140,.85) 50%,rgba(150,200,80,.5) 74%,transparent);
  box-shadow:0 0 10px 1px rgba(140,200,70,.16);
}

.hp-footer-shell{width:min(calc(100% - 48px),1320px);margin-inline:auto}

/* --- tier 1: closing CTA band --------------------------------------
   A contained deep-green card with a gold hairline so it reads as its
   own moment, distinct from the near-black closing section above and
   the near-black footer body below. */
.hp-footer-cta{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:clamp(1.5rem,4vw,3rem);
  margin-bottom:clamp(2.75rem,4.5vw,3.75rem);
  padding:clamp(1.9rem,3.6vw,2.9rem) clamp(1.6rem,4vw,3rem);
  background:linear-gradient(135deg,#1a3d0c,#0f2a06);
  border:1px solid rgba(217,179,109,.3);
  border-radius:16px;
  box-shadow:0 22px 60px -28px rgba(0,0,0,.7);
}
.hp-footer-cta-text{max-width:36rem;min-width:min(100%,18rem)}
.hp-footer-cta h2{
  margin:0;color:#fff;
  font-family:Georgia,'Times New Roman',serif;font-weight:400;
  font-size:clamp(1.7rem,3vw,2.55rem);line-height:1.12;letter-spacing:-.02em;
}
.hp-footer-cta-text p{margin:.7rem 0 0;color:#c9d3c2;font-size:.9rem;line-height:1.6}
.hp-footer-cta-actions{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}
.hp-footer-cta-btn{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.9rem 1.55rem;border-radius:8px;
  background:#6a9e22;color:#fff;text-decoration:none;
  font-size:.74rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  transition:background-color .2s ease;
}
.hp-footer-cta-btn span{transition:transform .25s ease}
.hp-footer-cta-btn:hover,.hp-footer-cta-btn:focus-visible{background:#7fb833}
.hp-footer-cta-btn:hover span,.hp-footer-cta-btn:focus-visible span{transform:translateX(4px)}
.hp-footer-cta-btn:focus-visible{outline:2px solid #d9b36d;outline-offset:3px}
.hp-footer-cta-call{margin:0;color:#a9b7a2;font-size:.78rem}
.hp-footer-cta-call a{color:#dfe6d8;text-decoration:none;transition:color .2s ease}
.hp-footer-cta-call a:hover{color:#c3f24d}

.hp-footer-grid{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1.35fr;
  column-gap:clamp(2rem,4vw,3.25rem);
  row-gap:clamp(2rem,4vw,3rem);
  align-items:start;
}

/* --- brand ------------------------------------------------------------ */
.hp-footer-brand{
  display:flex;flex-direction:column;align-items:flex-start;
  padding-right:clamp(0px,3vw,40px);
}
.hp-footer-logo{display:block;width:clamp(176px,13vw,206px);margin:0 0 1.15rem}
.hp-footer-logo img{display:block;width:100%;height:auto;object-fit:contain}
.hp-footer-summary{
  max-width:23rem;margin:0;
  color:#b7bcb7;font-size:.85rem;line-height:1.7;
}
/* live "Reliable. Secure. Responsive." — was a raster slogan image */
.hp-footer-tagline{
  margin:1.15rem 0 0;
  font-family:Georgia,'Times New Roman',serif;font-weight:400;
  font-size:1.15rem;letter-spacing:.005em;color:#d9b36d;
}
.hp-footer-since{
  margin:.45rem 0 0;
  color:#9a9f9a;font-size:.78rem;letter-spacing:.03em;
}
/* territory lockup — VA · MD · DC as a small serif brand mark */
.hp-footer-territory{display:flex;align-items:center;gap:1.5rem;margin:1.35rem 0 0}
.hp-footer-territory span{
  position:relative;
  font-family:Georgia,'Times New Roman',serif;font-size:1.4rem;letter-spacing:.05em;
  color:#d9b36d;
}
.hp-footer-territory span + span::before{
  content:"";position:absolute;left:-.78rem;top:50%;transform:translateY(-50%);
  width:1px;height:1.05em;background:rgba(217,179,109,.32);
}

/* --- social icons (now in the bottom bar) ------------------------- */
.hp-footer-social{display:flex;gap:.55rem;margin:0}
.hp-footer-social a{
  display:grid;place-items:center;flex:none;
  width:32px;height:32px;border-radius:50%;
  border:1px solid rgba(143,189,79,.4);color:#8fbd4f;
  transition:border-color .2s ease,background-color .2s ease,color .2s ease,transform .2s ease;
}
.hp-footer-social a svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.hp-footer-social a:hover,.hp-footer-social a:focus-visible{background:#8fbd4f;border-color:#8fbd4f;color:#0a0c0a;transform:translateY(-2px)}
.hp-footer-social a:focus-visible{outline:2px solid #d9b36d;outline-offset:3px}

/* --- link / info columns ------------------------------------------- */
.hp-footer-column{
  display:flex;flex-direction:column;align-items:flex-start;
  gap:.85rem;min-width:0;
}
.hp-footer-column h3{
  margin:0 0 .55rem;
  color:#d9b36d;font-size:.68rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase;
}
.hp-footer-column a{
  color:#cfcfca;text-decoration:none;
  font-size:.86rem;line-height:1.4;
  transition:color .2s ease,transform .2s ease;
}
.hp-footer-column a:hover{color:#8fbd4f;transform:translateX(3px)}
.hp-footer-column a:focus-visible{outline:2px solid #d9b36d;outline-offset:4px;border-radius:3px}
.hp-footer-column p{
  margin:.15rem 0 0;
  color:#9a9f9a;font-size:.82rem;line-height:1.65;
}
.hp-footer-email{font-size:.8rem !important;word-break:normal;overflow-wrap:normal}

.hp-footer-flyer{
  margin-top:1.05rem;
  display:inline-flex;align-items:center;gap:.55rem;
  color:#cfcfca;text-decoration:none;
  font-size:.78rem;line-height:1.3;
  transition:color .2s ease;
}
.hp-footer-flyer:hover,.hp-footer-flyer:focus-visible{color:#8fbd4f}
.hp-footer-flyer-ico{
  display:grid;place-items:center;flex:none;
  width:26px;height:26px;border-radius:50%;
  border:1px solid rgba(143,189,79,.4);color:#8fbd4f;
  transition:border-color .2s ease,transform .2s ease;
}
.hp-footer-flyer-ico svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.hp-footer-flyer:hover .hp-footer-flyer-ico{border-color:#8fbd4f;transform:translateY(2px)}
.hp-footer-flyer-tag{
  font-size:.58rem;font-weight:800;letter-spacing:.1em;
  padding:.12rem .38rem;border:1px solid rgba(255,255,255,.22);border-radius:4px;
  color:#9a9f9a;
}

/* --- bottom bar --------------------------------------------------- */
.hp-footer-bottom{
  display:flex;justify-content:space-between;align-items:center;gap:1.25rem 2rem;flex-wrap:wrap;
  margin-top:clamp(2.5rem,4vw,3.75rem);
  padding-top:1.5rem;
  border-top:1px solid rgba(255,255,255,.13);
  color:#8a8f8a;font-size:.72rem;
}
/* social sits left with the copyright — the page's floating chat button
   owns the bottom-right corner */
.hp-footer-bottom-left{display:flex;align-items:center;gap:1.1rem 1.5rem;flex-wrap:wrap}
.hp-footer-bottom-links{display:flex;gap:1.4rem;flex-wrap:wrap}
.hp-footer-bottom a{color:#cfcfca;text-decoration:none;transition:color .2s ease}
.hp-footer-bottom a:hover{color:#8fbd4f}

/* --- responsive ------------------------------------------------- */
@media(max-width:1080px){
  /* brand full-width, then Company / Services / Contact in one row */
  .hp-footer-grid{grid-template-columns:repeat(3,1fr);gap:clamp(2.25rem,4vw,3rem) clamp(2rem,5vw,3.5rem)}
  .hp-footer-brand{grid-column:1/-1;padding-right:0}
  .hp-footer-brand .hp-footer-summary{max-width:44rem}
}
@media(max-width:720px){
  .hp-footer-shell{width:calc(100% - 32px)}
  .hp-footer-grid{grid-template-columns:1fr 1fr;gap:2.25rem 2rem}
  .hp-footer-cta-actions{width:100%}
}
@media(max-width:460px){
  .hp-footer-grid{grid-template-columns:1fr}
  .hp-footer-brand,.hp-footer-column{grid-column:auto}
  .hp-footer-cta-btn{width:100%;justify-content:center}
  .hp-footer-bottom{flex-direction:column;align-items:flex-start;gap:.9rem}
}
@media(prefers-reduced-motion:reduce){
  .hp-footer-column a,.hp-footer-startlink,.hp-footer-startlink span,.hp-footer-social a{transition:none}
}
