/* ============================================================
   NICAS DESIGN — footer.css
   ============================================================ */

.site-footer{
  position:relative;
  margin-top:8rem;
  padding-top:6rem;
  background:var(--bg-000);
  border-top:1px solid var(--bd-1);
  overflow:hidden;
  isolation:isolate;
}
.site-footer__canvas{
  position:absolute;inset:0;
  width:100%;height:100%;
  opacity:.35;
  pointer-events:none;
  z-index:0;
}
.site-footer__map{
  position:absolute;
  right:-5%;bottom:-10%;
  width:520px;height:420px;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 80'><path d='M8,20 Q18,8 35,10 Q52,6 68,14 Q82,20 88,34 Q92,48 82,58 Q70,66 55,64 Q40,68 28,58 Q14,50 10,36 Q6,28 8,20 Z' fill='none' stroke='%2335B1E6' stroke-width='.3' opacity='.5'/></svg>") no-repeat center/contain;
  opacity:.06;
  pointer-events:none;
  z-index:0;
}
.site-footer > *:not(.site-footer__canvas):not(.site-footer__map){
  position:relative;z-index:1;
}

/* ---------- CTA FINAL ---------- */
.footer-cta{padding-bottom:5rem}
.footer-cta__inner{
  max-width:760px;
  display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start;
}
.footer-cta__title{
  font-size:clamp(1.6rem,3vw,2.5rem);
  line-height:1.2;
  color:var(--tx-100);
  font-weight:700;
}
.footer-cta .btn{margin-top:.75rem}

/* ---------- COLUMNAS ---------- */
.footer-cols{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr 1.3fr;
  gap:2.5rem;
  padding-block:3rem 2.5rem;
  border-top:1px solid var(--bd-1);
}
.footer-col{min-width:0}
.footer-col__title{
  font-family:var(--font-mono);
  font-size:.7rem;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--tx-400);
  margin-bottom:1rem;
}
.footer-col--brand .brand{margin-bottom:1rem}
.brand--footer .brand__mark svg{width:32px;height:32px}
.brand--footer .brand__text strong{font-size:.95rem}
.brand--footer .brand__text span{font-size:.65rem}
.footer-col__desc{
  font-size:.85rem;color:var(--tx-400);
  line-height:1.6;max-width:32ch;
}

.footer-social{
  display:flex;gap:.5rem;margin-top:1.5rem;
}
.footer-social__link{
  width:40px;height:40px;
  display:grid;place-items:center;
  border-radius:10px;
  border:1px solid var(--bd-1);
  color:var(--tx-300);
  background:rgba(255,255,255,.015);
  transition:all var(--dur-base) var(--ease-out);
}
.footer-social__link:hover{
  color:var(--cyan);
  border-color:var(--bd-cyan);
  background:rgba(53,177,230,.06);
  box-shadow:0 0 20px rgba(53,177,230,.18);
  transform:translateY(-2px);
}

.footer-links{display:flex;flex-direction:column;gap:.55rem}
.footer-links a,.footer-links span{
  display:inline-block;
  font-size:.875rem;
  color:var(--tx-300);
  transition:color var(--dur-fast) var(--ease-out),
             transform var(--dur-fast) var(--ease-out);
  position:relative;
}
.footer-links a::before{
  content:"→";
  position:absolute;left:-16px;top:50%;transform:translateY(-50%);
  color:var(--cyan);opacity:0;
  transition:opacity var(--dur-fast) var(--ease-out),
             left var(--dur-fast) var(--ease-out);
  font-size:.8rem;
}
.footer-links a:hover{color:var(--tx-100);transform:translateX(8px)}
.footer-links a:hover::before{opacity:1;left:-14px}
.footer-links .is-soon{opacity:.55;cursor:not-allowed}

.footer-contact{display:flex;flex-direction:column;gap:.7rem}
.footer-contact li{
  display:flex;align-items:center;gap:.6rem;
  font-size:.85rem;color:var(--tx-300);
}
.footer-contact svg{flex-shrink:0;color:var(--tx-400)}
.footer-contact a{transition:color var(--dur-fast) var(--ease-out)}
.footer-contact a:hover{color:var(--cyan)}
.footer-contact__coords{
  padding-left:1.6rem;
  font-size:.7rem;
  color:var(--tx-400);
}

/* ---------- BASE ---------- */
.footer-base{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding-block:1.5rem;
  border-top:1px solid var(--bd-1);
  font-size:.8rem;color:var(--tx-400);
  flex-wrap:wrap;
}
.footer-base__meta{display:inline-flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.footer-base__dot{color:var(--purple);font-size:.7rem}

/* Línea de cierre con gradiente de marca */
.footer-line{
  height:3px;
  background:var(--grad-brand-3);
  opacity:.85;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:991px){
  .site-footer{margin-top:5rem;padding-top:4rem}
  .footer-cols{grid-template-columns:1fr 1fr;gap:2rem}
  .footer-col--brand{grid-column:1 / -1}
  .footer-col--contact{grid-column:1 / -1}
  .footer-cta{padding-bottom:3rem}
}
@media (max-width:480px){
  .site-footer{margin-top:4rem;padding-top:3rem}
  .footer-cols{grid-template-columns:1fr}
  .footer-base{flex-direction:column;align-items:flex-start}
}