@import url('palette.css');
/* ============================================================
   SHARED SITE FOOTER styles  —  single source of truth
   Edit THIS file only. Link it on every page (after palette.css)
   alongside the shared footer partial (partials/footer.html).
   Depends on the theme variables defined in palette.css.
   ============================================================ */

/* ---------- Footer shell ---------- */
.site-footer{
  position:relative;
  background:
    radial-gradient(1200px 380px at 12% -10%, rgba(var(--color-primary-rgb),.22), transparent 60%),
    linear-gradient(180deg, #0c1430 0%, var(--color-accent) 60%, #070b1c 100%);
  color:#9aa6bd;
}
/* gradient accent rail across the very top — matches buttons / cards */
.site-footer::before{
  content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--color-primary),var(--color-secondary));
}

/* keep footer content aligned with the header (shared .container width) */
.site-footer .container{max-width:1400px;margin:0 auto;padding:21px 40px}

/* ---------- Top grid ---------- */
.footer-grid{
  display:grid;
  grid-template-columns:1.7fr 1fr 1fr 1.3fr;
  gap:50px;
  padding:60px 0 46px;
}

/* ----- brand column ----- */
.footer-brand{display:inline-flex;align-items:center;gap:14px;margin-bottom:18px}
.footer-logo{max-height:52px;width:auto}
.footer-brand-text{display:flex;flex-direction:column;color:#fff;font-weight:800;font-size:20px;letter-spacing:1.5px;line-height:1.1}
.footer-brand-text small{font-size:10.5px;font-weight:600;letter-spacing:2px;color:var(--color-secondary-light);margin-top:5px}
.footer-tag{font-size:14.5px;line-height:1.8;color:#8c98b0;max-width:380px;margin-bottom:22px}

/* social icons */
.footer-social{display:flex;gap:12px}
.footer-social a{
  width:40px;height:40px;display:grid;place-items:center;border-radius:var(--radius-md);
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  color:#c4cde0;transition:.25s;
}
.footer-social svg{width:18px;height:18px}
.footer-social a:hover{
  color:#fff;transform:translateY(-3px);border-color:transparent;
  background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));
  box-shadow:0 10px 22px rgba(var(--color-primary-rgb),.35);
}

/* ----- link columns ----- */
.footer-col h4{
  color:#fff;font-size:15px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;
  margin-bottom:20px;padding-bottom:12px;position:relative;
}
.footer-col h4::after{
  content:"";position:absolute;left:0;bottom:0;width:34px;height:3px;border-radius:2px;
  background:linear-gradient(90deg,var(--color-primary),var(--color-secondary));
}
.footer-col a{
  display:block;font-size:15px;color:#9aa6bd;padding:7px 0;width:fit-content;transition:.22s;
}
.footer-col a:hover{color:#fff;transform:translateX(5px)}

/* ----- contact column ----- */
.footer-contact p{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;line-height:1.7;margin-bottom:16px;color:#9aa6bd}
.footer-contact svg{width:18px;height:18px;flex:none;margin-top:10px;color:var(--color-secondary-light)}
.footer-contact a{color:#9aa6bd;transition:.2s}
.footer-contact a:hover{color:#fff}

/* ---------- Bottom bar ---------- */
.footer-bottom{border-top:1px solid rgba(255,255,255,.1)}
.footer-bottom-inner{
  display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center;justify-content:space-between;
  padding:20px 40px;font-size:13px;color:#7a869e;
}
.footer-certs{letter-spacing:.5px;color:#8c98b0}

/* ---------- Back to top ---------- */
.to-top{
  position:fixed;right:24px;bottom:24px;width:48px;height:48px;border:none;border-radius:50%;
  background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:#fff;font-size:22px;cursor:pointer;
  box-shadow:0 16px 34px rgba(var(--color-primary-rgb),.34);
  opacity:0;visibility:hidden;transform:translateY(14px);transition:.3s;z-index:40;
}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top:hover{transform:translateY(-3px)}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .site-footer .container{padding:0 28px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:40px}
  .footer-brand-col{grid-column:1 / -1}
  .footer-tag{max-width:none}
}
@media (max-width:600px){
  .site-footer .container{padding:0 20px}
  .footer-grid{grid-template-columns:1fr;gap:30px;padding:42px 0 32px}
  .footer-bottom-inner{flex-direction:column;justify-content:center;text-align:center;gap:8px;padding:16px 20px}
  .footer-certs{font-size:12px}
  /* back-to-top sits a touch closer to the corner on small screens */
  .to-top{right:16px;bottom:16px;width:44px;height:44px;font-size:20px}
}
