:root{ --brand:#0077C2; --brand-dark:#0b2a3c; }

/* Fondo premium */
.pro-footer{
  position:relative; color:#e6f1f7; overflow:clip;
  background:
    radial-gradient(100% 140% at 100% 0%, rgba(46,184,114,.08), transparent 40%),
    radial-gradient(120% 180% at 0% 0%, rgba(0,119,194,.12), transparent 35%),
    linear-gradient(180deg, #0b2030 0%, #0b2a3c 45%, #0a2332 100%);
}
.pro-footer::before{
  content:""; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:28px 28px; opacity:.35; pointer-events:none; mix-blend-mode:soft-light;
}
.pro-footer::after{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(600px 220px at 15% 10%, rgba(127,200,255,.10), transparent 40%),
    radial-gradient(500px 200px at 85% 20%, rgba(46,184,114,.10), transparent 40%);
  will-change: transform;
  transform: translateY(var(--bg-shift, 0px));
  pointer-events:none;
}
.footer-wave{ position:absolute; top:-1px; left:0; width:100%; height:80px; color:#fff; display:block; }

/* Tarjetas */
.footer-card{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 1rem;
  box-shadow: 0 10px 30px rgba(0,0,0,.12);
  backdrop-filter: blur(2px);
}

/* Chips / enlaces */
.footer-badge{
  display:flex; align-items:center; gap:.65rem;
  padding:.65rem .9rem; color:#e6f1f7; text-decoration:none;
  border:1px solid transparent; border-radius:.75rem;
  transition: background .2s, border-color .2s, transform .08s;
}
.footer-badge:hover{
  background: rgba(255,255,255,.09);
  border-color: rgba(255,255,255,.16);
  transform: translateX(2px);
}
.icon-chip{ display:inline-grid; place-items:center; width:28px; height:28px; border-radius:8px; background:rgba(255,255,255,.12); }
.icon-chip--brand{ background:rgba(127,200,255,.18); }
.footer-text{ flex:1 1 auto; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.footer-link{
  color:#e6f1f7; text-decoration:none; padding:.75rem 1rem;
  border-radius:12px; border:1px solid transparent;
  transition: background .18s, border-color .18s, transform .06s;
}
.footer-link:hover{ background:rgba(127,200,255,.12); border-color:rgba(127,200,255,.28); transform:translateX(2px); }
.footer-hover:hover{ color:#fff !important; opacity:1 !important; }

/* Colores consistentes dentro del footer */
.pro-footer h1,.pro-footer h2,.pro-footer h3,.pro-footer h4,.pro-footer h5,.pro-footer h6,
.pro-footer p,.pro-footer li,.pro-footer small,.pro-footer .small{ color:#e6f1f7 !important; }
.pro-footer a, .pro-footer a:visited{ color:#e6f1f7 !important; }
.pro-footer a:hover{ color:#ffffff !important; }
hr{ opacity:.18 }

/* Redes: separación uniforme */
.footer-social{ gap: 1.25rem; }
@media (min-width: 992px){ .footer-social{ gap: 1.5rem; } }
.footer-social a{ padding: .15rem .25rem; }

/* Línea legal con separadores “·” automáticos */
.footer-legal{ display:flex; flex-wrap:wrap; align-items:center; gap:.5rem 1rem; }
.footer-legal .list-inline-item{ margin:0; padding:0; }
.footer-legal .list-inline-item + .list-inline-item::before{
  content:"·"; margin-right:.75rem; opacity:.6;
}

/* Animación reveal */
.pro-footer{ will-change:opacity,transform,filter; opacity:0; transform:translateY(24px) scale(.995); filter:blur(6px); }
.pro-footer.is-revealed{ animation: footerReveal 820ms cubic-bezier(.2,.7,.2,1) forwards; }
.pro-footer.is-revealed .footer-wave{ transform-origin: top; animation: waveDrop 900ms cubic-bezier(.2,.7,.2,1) both; }
.pro-footer:not(.is-revealed) .footer-card{ opacity:0; transform:translateY(14px); filter:blur(4px); }
.pro-footer.is-revealed .footer-card{ animation: cardUp 680ms cubic-bezier(.2,.7,.2,1) forwards; }

@keyframes footerReveal{ 0%{opacity:0;transform:translateY(24px) scale(.995);filter:blur(6px);} 60%{filter:blur(0);} 100%{opacity:1;transform:none;filter:none;} }
@keyframes cardUp{ 0%{opacity:0;transform:translateY(14px);filter:blur(4px);} 100%{opacity:1;transform:none;filter:none;} }
@keyframes waveDrop{ 0%{transform:translateY(-14px);opacity:0;} 100%{transform:none;opacity:.9;} }

/* Respeta reduce-motion */
@media (prefers-reduced-motion: reduce){
  .pro-footer, .pro-footer *{ animation:none !important; transition:none !important; }
  .pro-footer{ opacity:1 !important; transform:none !important; filter:none !important; }
}
