/* Base + container */
.site-footer{
  background:#0a0f11; color:#cfe3e7;
  font-family:"Noto Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  padding-block: clamp(28px, 5vw, 64px);
}
.site-footer .container{
  width:min(100% - 2*clamp(16px,3vw,48px), 1280px);
  margin-inline:auto;
}

/* Grid con áreas (desktop 4 col; tablet 2; móvil 1) */
.footer-grid{
  display:grid; gap: clamp(16px, 2.6vw, 32px);
  grid-template-columns: 1.2fr 1fr 1fr 1fr;
  grid-template-areas: "logo nav contact office";
  align-items:start;
}
.footer-logo   { grid-area: logo; }
.footer-nav    { grid-area: nav; }
.footer-contact{ grid-area: contact; }
.footer-office { grid-area: office; }

@media (max-width:1024px){
  .footer-grid{
    grid-template-columns: 1.2fr 1fr;
    grid-template-areas:
      "logo    logo"
      "nav     contact"
      "office  office";
  }
}
@media (max-width:768px){
  .footer-grid{
    grid-template-columns: 1fr;
    grid-template-areas:
      "logo"
      "nav"
      "contact"
      "office";
  }
}

/* Logo */
.footer-logo .logo img{
  width: clamp(160px, 22vw, 260px);
  height:auto; display:block;
  margin-bottom: clamp(8px, 1.5vw, 12px);
}

/* Redes bajo el logo */
.footer-social{
  display:flex; flex-wrap:wrap; gap: clamp(10px, 1.5vw, 14px);
  margin-top: clamp(8px, 1.5vw, 14px);
}
.footer-social .social-link{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:10px;
  color:#8be9fd; background: rgba(7,12,14,.35);
  border:1px solid rgba(255,255,255,.08);
  transition: transform .2s ease, filter .2s ease, background .2s ease, border-color .2s ease;
}
.footer-social .social-link:hover{
  transform: translateY(-1px);
  background: rgba(0,245,255,.08);
  border-color: rgba(0,245,255,.28);
  filter: drop-shadow(0 0 8px rgba(139,233,253,.35));
}
.footer-social .social-link:focus-visible{
  outline:2px dashed #8be9fd; outline-offset:3px;
}
.footer-social .ico{ width:18px; height:18px; display:block; }

/* Títulos cian con glow moderado (no gigantes) */
.site-footer h3{
  margin: 0 0 .6em;
  font-weight:700;
  font-size: clamp(18px, 1.8vw, 26px);
  letter-spacing:.02em;
  color:#67e8f9;
  text-shadow: 0 0 10px rgba(103,232,249,.25);
}

/* Texto, listas y enlaces */
.site-footer p, .site-footer li, .site-footer a{
  font-size: clamp(14px, .95vw, 16px);
  line-height: 1.6;
}
.footer-col ul{ list-style: disc; padding-left: 1.1rem; margin:0; }
.footer-col li{ margin:.45rem 0; }
.site-footer a{
  color:#8be9fd; text-decoration:none;
  transition: color .2s ease, text-shadow .2s ease;
}
.site-footer a:hover{ text-shadow:0 0 8px rgba(139,233,253,.28); }
.site-footer a:focus-visible{ outline:2px dashed #8be9fd; outline-offset:3px; border-radius:4px; }

/* Barra legal centrada */
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);
  margin-top: clamp(20px, 3vw, 36px);
  padding-top: clamp(12px, 2vw, 20px);
}
.legal-center{
  text-align:center;
  font-size: clamp(12px, .9vw, 14px);
  color:#c9dbe0;
}
.legal-center .sep{ margin:0 .5rem; opacity:.7; }

/* Limitar ancho en pantallas grandes */
@media (min-width:1920px){ .site-footer .container{ width:min(100% - 2*clamp(24px,3vw,64px), 1440px); } }
@media (min-width:2560px){ .site-footer .container{ width:min(100% - 2*clamp(28px,3vw,80px), 1560px); } }
@media (min-width:3840px){ .site-footer .container{ width:min(100% - 2*clamp(32px,3vw,96px), 1680px); } }
