/* ---------- Footer (always dark) ---------- */
.site-footer {
  --f-bg: #0E1A2F;
  --f-ink: #FFFFFF;
  --f-text: #B4C2D6;
  --f-muted: #8193AD;
  --f-line: rgba(255, 255, 255, 0.10);
  --f-chip: rgba(255, 255, 255, 0.05);
  --f-accent: #74B9F1;
  position: relative;
  background:
    radial-gradient(50% 80% at 0% 0%, rgba(0, 108, 182, 0.28), transparent 70%),
    radial-gradient(40% 60% at 100% 100%, rgba(249, 115, 22, 0.10), transparent 70%),
    var(--f-bg);
  color: var(--f-text);
  border-top: 0;
  padding-top: clamp(56px, 7vw, 88px);
  font-size: 14.5px;
}
.site-footer::before {
  content: ""; position: absolute; inset: 0 0 auto; height: 3px;
  background: linear-gradient(90deg, #006CB6, #4FA6EC 60%, #F97316);
}

.footer-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(4, minmax(0, 1fr)); gap: 40px; }
.footer-brand { display: flex; flex-direction: column; gap: 18px; }
.footer-logo { display: block; width: auto; height: 54px; }
.footer-brand p { color: var(--f-text); max-width: 38ch; line-height: 1.6; }

.footer-contact { font-style: normal; display: flex; flex-direction: column; gap: 10px; }
.footer-contact a, .footer-contact p { display: inline-flex; align-items: center; gap: 12px; color: var(--f-ink); font-weight: 600; width: fit-content; }
.footer-contact a > .material-symbols-outlined, .footer-contact p > .material-symbols-outlined {
  display: grid; place-items: center; width: 36px; height: 36px; border-radius: var(--r-full);
  background: var(--f-chip); border: 1px solid var(--f-line); color: var(--f-accent); font-size: 18px;
  transition: background-color .2s, border-color .2s;
}
.footer-contact small { display: block; font-size: 11.5px; font-weight: 500; color: var(--f-muted); letter-spacing: .02em; }
.footer-contact a:hover { text-decoration: none; }
.footer-contact a:hover > .material-symbols-outlined { background: rgba(116, 185, 241, 0.15); border-color: rgba(116, 185, 241, 0.4); }

.site-footer h2 { color: var(--f-ink); font-size: 12.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 16px; }
.site-footer nav ul { display: flex; flex-direction: column; gap: 11px; }
.site-footer nav a { display: inline-block; color: var(--f-text); transition: color .2s, transform .2s var(--ease); }
.site-footer nav a:hover { color: var(--f-ink); text-decoration: none; transform: translateX(3px); }
.site-footer a:focus-visible { outline-color: var(--f-accent); }

.footer-badges {
  display: flex; flex-wrap: wrap; gap: 10px;
  margin-top: 48px; padding-block: 24px; border-top: 1px solid var(--f-line);
}
.footer-badges li {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px; border-radius: var(--r-full);
  background: var(--f-chip); border: 1px solid var(--f-line);
  color: var(--f-ink); font-size: 13px; font-weight: 600;
  transition: border-color .2s, background-color .2s;
}
.footer-badges li:hover { border-color: rgba(116, 185, 241, 0.45); background: rgba(116, 185, 241, 0.08); }
.footer-badges .material-symbols-outlined { font-size: 17px; color: #34D399; }

.footer-bottom {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px;
  padding-block: 20px 32px; border-top: 1px solid var(--f-line);
  font-size: 13px; color: var(--f-muted);
}
.footer-offices { display: inline-flex; align-items: center; gap: 6px; }
.footer-offices .material-symbols-outlined { font-size: 16px; }
.to-top {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px; border-radius: var(--r-full); border: 1px solid var(--f-line);
  color: var(--f-ink); font-weight: 600;
  transition: background-color .2s, border-color .2s;
}
.to-top .material-symbols-outlined { font-size: 17px; transition: transform .2s var(--ease); }
.to-top:hover { text-decoration: none; background: var(--f-chip); border-color: rgba(255, 255, 255, 0.25); }
.to-top:hover .material-symbols-outlined { transform: translateY(-2px); }

/* Briefly highlight the card a footer link jumps to */
@keyframes target-ring { 0%, 60% { box-shadow: 0 0 0 3px var(--primary); } 100% { box-shadow: 0 0 0 3px transparent; } }
.card:target, .feature-panel:target, .verticals li:target { animation: target-ring 2s var(--ease); }

@media (max-width: 1080px) {
  .footer-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 768px) {
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
  /* comfortable tap targets on phones */
  .site-footer nav ul { gap: 2px; }
  .site-footer nav a { display: block; padding: 9px 0; }
  .footer-contact a, .footer-contact p { min-height: 40px; }
  .footer-badges { margin-top: 36px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}
