.site-footer{
  background:var(--navy-900);
  color:rgba(255,255,255,.6);
  padding-top:clamp(48px,7vw,80px);
  padding-bottom:0px;
}
.footer-top{
  display:grid;
  grid-template-columns:2fr 1fr 1.3fr;
  gap:40px;
  padding-bottom:44px;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.footer-heading{
  font-family:var(--font-display);
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;margin-bottom:16px;
}
.footer-products-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 32px;
}
.footer-col a{
  display:block;
  font-size:13.5px;
  padding:5px 0;
  color:rgba(255,255,255,.55);
  transition:color .25s ease,transform .25s ease;
}
.footer-col a:hover{color:var(--blue-400);transform:translateX(3px);}
.footer-company-col a{font-size:14.5px;font-weight:500;color:rgba(255,255,255,.75);}

.footer-brand-col{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.footer-brand-logo{
  width:190px;
  height:auto;
  border-radius:0;
  background:transparent;
  padding:0;
  margin-bottom:20px;

  /* Make the white background blend into the footer */
  mix-blend-mode: multiply;
  display:block;
}
.footer-brand-desc{
  font-size:13.5px;
  line-height:1.75;
  color:rgba(255,255,255,.55);
  max-width:320px;
}
.footer-brand-contact{
  display:block;
  margin-top:14px;
  font-size:15px;
  font-weight:700;
  color:#fff;
}
.footer-brand-contact:hover{color:var(--blue-400);}
.footer-follow-heading{margin-top:26px;margin-bottom:14px;}

.footer-social{display:flex;gap:10px;}
.footer-social a{
  width:36px;height:36px;border-radius:50%;
  border:1px solid rgba(255,255,255,.2);
  display:flex;align-items:center;justify-content:center;
  transition:background .3s ease,border-color .3s ease,transform .3s ease;
}
.footer-social svg{width:15px;height:15px;color:#fff;}
.footer-social a:hover{background:var(--blue-400);border-color:var(--blue-400);transform:translateY(-3px);}

.footer-bottom-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:22px 0;
  font-size:13px;
  flex-wrap:wrap;gap:10px;
}
.footer-tagline{
  font-family:var(--font-display);
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,.4);
  font-size:12px;
}

.scroll-top{
  position:fixed;right:24px;bottom:24px;
  width:46px;height:46px;border-radius:50%;
  background:var(--navy-800);color:#fff;
  border:1px solid rgba(255,255,255,.15);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .35s ease,transform .35s ease,visibility .35s,background .3s ease;
  z-index:400;
}
.scroll-top::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  border:2px solid var(--blue-400);
  opacity:0;
  animation:scrollTopPulse 2.4s ease-out infinite;
}
.scroll-top.is-visible::after{opacity:1;}
@keyframes scrollTopPulse{
  0%{transform:scale(1);opacity:.55;}
  100%{transform:scale(1.55);opacity:0;}
}
.scroll-top svg{width:18px;height:18px;}
.scroll-top.is-visible{opacity:1;visibility:visible;transform:translateY(0);}
.scroll-top:hover{background:var(--blue-400);color:var(--navy-900);}

@media (max-width:960px){
  .footer-top{grid-template-columns:1fr 1fr;}
  .footer-brand-col{grid-column:1/-1;}
}
@media (max-width:560px){
  .footer-top{grid-template-columns:1fr;}
  .footer-products-grid{grid-template-columns:1fr;}
}

/* Self-contained control colors: these pages do not all load base.css. */
#scrollProgressBar{
  background:linear-gradient(90deg,#0876B9,#65C9EE) !important;
  z-index:2147483000;
}
.scroll-top{
  background:#073D78;
  color:#fff;
  border-color:#65C9EE;
  box-shadow:0 10px 28px rgba(7,61,120,.30),0 0 0 4px rgba(255,255,255,.85);
  z-index:2147482000;
}
.scroll-top:hover{background:#0876B9;color:#fff;}
