/* ============================================================
   TellTours - Footer
   ============================================================ */

.site-footer {
  border-top: 1px solid var(--divider);
  padding: 80px 0 40px;
  background: var(--surface-alt);
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 40px;
  margin-bottom: 60px;
}
.f-col h3 {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-dim);
  font-variant-numeric: tabular-nums;
  margin-bottom: 20px;
}
.f-col p { font-size: 14.5px; color: var(--ink-mid); max-width: 280px; line-height: 1.6; }
.f-col ul { display: flex; flex-direction: column; gap: 12px; }
.f-col a {
  position: relative;
  display: inline-block;
  font-size: 14.5px; color: var(--ink-mid);
  cursor: pointer;
  transition: color 0.2s;
}
.f-col a::after {
  content: "";
  position: absolute;
  left: 0; right: 100%; bottom: -2px;
  height: 1px;
  background: currentColor;
  transition: right 0.2s ease-out;
}
.f-col a:hover,
.f-col a:focus-visible { color: #fff; }
.f-col a:hover::after,
.f-col a:focus-visible::after { right: 0; }
.f-col a:active { color: var(--green-light); }

.f-logo { margin-bottom: 18px; }

/* ── Social icons ── */
.f-socials { display: flex; gap: 12px; margin-top: 24px; }
.f-social {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  display: grid; place-items: center;
  color: var(--ink-dim);
  cursor: pointer;
  transition: transform 0.2s, background 0.2s, color 0.2s, border-color 0.2s;
}
.f-social:hover {
  transform: translateY(-1px) scale(1.08);
  background: var(--green-soft);
  color: var(--green-light);
  border-color: rgba(52,161,96,0.4);
}
.f-social:active {
  transform: translateY(0) scale(0.96);
}

/* ── Bottom row ── */
.f-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
  padding-top: 28px;
  border-top: 1px solid var(--divider);
  font-size: 13px;
  color: var(--ink-dim);
}
.f-legal { display: flex; gap: 20px; flex-wrap: wrap; }
.f-legal a {
  position: relative;
  display: inline-block;
  cursor: pointer;
  transition: color 0.2s;
}
.f-legal a::after {
  content: "";
  position: absolute;
  left: 0; right: 100%; bottom: -2px;
  height: 1px;
  background: currentColor;
  transition: right 0.2s ease-out;
}
.f-legal a:hover,
.f-legal a:focus-visible { color: #fff; }
.f-legal a:hover::after,
.f-legal a:focus-visible::after { right: 0; }
.f-legal a:active { color: var(--green-light); }

/* ── Responsive ── */
@media (max-width: 900px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .f-col:first-child { grid-column: 1 / -1; margin-bottom: 20px; }
}
@media (max-width: 520px) {
  .footer-grid { grid-template-columns: 1fr; }
  .f-col:first-child { margin-bottom: 0; }
  .f-bottom { flex-direction: column; align-items: flex-start; }
}
