/* ===== FOOTER ===== */
.footer{position:relative;background:var(--ink);color:var(--cream);padding:4.5rem 1.5rem 2rem;margin-top:4rem;overflow:hidden}
.footer__deco{
  position:absolute;inset:0 0 auto;height:4px;
  background:linear-gradient(90deg,var(--violet),var(--lilac),var(--clay));
}
.footer::after{
  content:"";position:absolute;right:-120px;bottom:-120px;width:360px;height:360px;border-radius:50%;
  background:radial-gradient(circle,rgba(139,107,192,.28),transparent 70%);pointer-events:none;
}
.footer__inner{
  position:relative;max-width:1180px;margin:0 auto;
  display:grid;grid-template-columns:1.7fr 1fr 1fr 1.4fr;gap:2.5rem;
}
.footer__logo img{width:96px;height:96px;object-fit:contain;filter:brightness(0) invert(1);opacity:.95}
.footer__brand p{color:rgba(246,241,231,.62);max-width:24rem;margin:.4rem 0 1.3rem;font-size:.95rem}
.socials{display:flex;gap:.7rem;flex-wrap:wrap}
.socials a{
  width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  border:1px solid rgba(246,241,231,.22);color:rgba(246,241,231,.8);transition:.25s;
}
.socials a:hover{background:var(--violet);border-color:var(--violet);color:var(--cream);transform:translateY(-3px)}
.wa-btn{display:inline-flex;align-items:center;gap:.55rem;margin-top:1.3rem;padding:.7rem 1.2rem;border-radius:100px;background:var(--violet);color:var(--cream);font-weight:600;font-size:.92rem;transition:.25s;box-shadow:0 10px 24px -12px var(--violet)}
.wa-btn:hover{background:var(--violet-2);transform:translateY(-2px)}
/* dirección, teléfono y horario */
.footer__addr{font-style:normal;margin-top:1.6rem;display:grid;gap:.7rem}
.footer__addr a,.footer__addr-h{display:flex;align-items:flex-start;gap:.6rem;font-size:.85rem;line-height:1.45;color:rgba(246,241,231,.62);transition:.2s}
.footer__addr a:hover{color:var(--cream)}
.footer__addr svg{flex:none;margin-top:.15rem;color:var(--lilac)}
.wa-btn svg{flex:none}
/* botón flotante de WhatsApp */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:90;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--violet);color:#fff;box-shadow:0 12px 30px -8px rgba(110,79,162,.7);transition:transform .22s ease}
.wa-float::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--violet);opacity:.5;animation:waPulse 2.4s ease-out infinite;z-index:-1}
.wa-float:hover{transform:scale(1.08);background:var(--violet-2)}
@keyframes waPulse{0%{transform:scale(1);opacity:.55}70%{transform:scale(1.6);opacity:0}100%{opacity:0}}
@media(max-width:520px){.wa-float{width:52px;height:52px;right:16px;bottom:16px}}
@media(prefers-reduced-motion:reduce){.wa-float::before{animation:none;opacity:0}}
.footer__col h4{font-family:var(--sans);font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--lilac);margin:.3rem 0 1.1rem;font-weight:600}
.footer__col a{display:block;color:rgba(246,241,231,.72);padding:.3rem 0;transition:.2s;font-size:.95rem}
.footer__col a:hover{color:var(--cream);padding-left:.3rem}
.footer__news p{color:rgba(246,241,231,.6);font-size:.9rem;margin:0 0 1rem}
.news{display:flex;background:rgba(246,241,231,.09);border:1px solid rgba(246,241,231,.22);border-radius:100px;padding:.25rem .25rem .25rem .3rem;transition:.2s}
.news:focus-within{border-color:var(--lilac);background:rgba(246,241,231,.14)}
.news input{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--cream);font-family:inherit;font-size:.9rem;padding:.55rem .8rem}
.news input::placeholder{color:rgba(246,241,231,.5)}
.news button{width:38px;height:38px;flex:none;border:0;border-radius:50%;background:var(--violet);color:var(--cream);cursor:pointer;display:grid;place-items:center;transition:.25s}
.news button:hover{background:var(--lilac);color:var(--ink)}
.news__msg{margin:.6rem 0 0;font-size:.85rem;color:var(--lilac);min-height:1.1em}
.footer__bottom{
  position:relative;max-width:1180px;margin:3rem auto 0;padding-top:1.5rem;
  border-top:1px solid rgba(246,241,231,.14);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.footer__legal{margin:0;color:rgba(246,241,231,.5);font-size:.82rem}
/* hueco para que el botón flotante de WhatsApp no tape el último enlace */
.footer__mini{display:flex;gap:1.4rem;flex-wrap:wrap;padding-right:72px}
.footer__mini a{color:rgba(246,241,231,.55);font-size:.82rem;transition:.2s}
.footer__mini a:hover{color:var(--cream)}
