/* =========================================================
  Footer (3 columnas, fondo rojo) — encapsulado. Prefijo footer__
   ========================================================= */
#footer, .footer {
  background:
    radial-gradient(45% 80% at 92% 0%, rgba(255, 255, 255, .16), transparent 70%),
    radial-gradient(40% 70% at 0% 100%, rgba(0, 0, 0, .25), transparent 70%),
    linear-gradient(135deg, #9b0d23, #c8102e 55%, #e63950);
  color: #fff; font-family: inherit; padding: 72px 24px 0;
}
#footer *, #footer *::before, #footer *::after { box-sizing: border-box; }
#footer a { color: #fff; }
.footer__columnas {
  display: grid; grid-template-columns: 1fr 1.1fr 1.2fr; gap: clamp(32px, 5vw, 64px);
  max-width: 1100px; margin: 0 auto;
}
.footer__titulo { font-size: 1.45rem; margin-bottom: 20px; }
.footer__contacto { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.footer__contacto li { display: flex; align-items: center; gap: 12px; line-height: 1.5; }
.footer__contacto a { text-decoration: none; overflow-wrap: anywhere; }
.footer__contacto a:hover { text-decoration: underline; }
.footer__icono {
  flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%;
  display: grid; place-items: center; background: rgba(255, 255, 255, .18);
}
.footer__icono svg { width: 18px; height: 18px; }
.footer__texto { line-height: 1.75; font-size: .97rem; opacity: .92; max-width: 44ch; }
.footer__menu { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 24px; }
.footer__menu a { text-decoration: none; opacity: .9; padding: 3px 0; border-bottom: 1px solid transparent; transition: opacity .2s, border-color .2s; }
.footer__menu a:hover, .footer__menu a:focus-visible { opacity: 1; border-bottom-color: #fff; }
.footer__base {
  max-width: 1100px; margin: 56px auto 0; padding: 22px 0 28px;
  border-top: 1px solid rgba(255, 255, 255, .28);
  text-align: center; font-size: .88rem; opacity: .88;
}
@media (max-width: 860px) {
  #footer, .footer { padding: 56px 20px 0; }
  .footer__columnas { grid-template-columns: minmax(0, 1fr); }
  .footer__base { margin-top: 40px; }
}
@media (prefers-reduced-motion: reduce) { .footer__menu a { transition: none; } }