/* ==========================================================================
   floating.css — back-to-top, call & WhatsApp floating buttons
   ========================================================================== */

.fab-stack {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 1040;
  display: flex;
  flex-direction: column;
  gap: .75rem;
  align-items: flex-end;
}
.fab-stack-left {
  right: auto;
  left: 1.25rem;
  align-items: flex-start;
}
.aims-theme .fab {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--clr-white);
  font-size: 1.4rem;
  box-shadow: var(--shadow-md);
  transition: transform .2s ease, opacity .2s ease;
}
.aims-theme .fab:hover { transform: translateY(-3px); color: var(--clr-white); }

.fab-whatsapp { background: #25D366; animation: pulse-wa 2.4s infinite; }
.fab-call     { background: var(--grad-orange); animation: pulse-call 2.4s infinite; }
.aims-theme .fab-top {
  background: var(--clr-navy);
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px);
}
.aims-theme .fab-top.show { opacity: 1; pointer-events: auto; transform: translateY(0); }

@keyframes pulse-wa {
  0%   { box-shadow: 0 0 0 0 rgba(37,211,102,.55), var(--shadow-md); }
  70%  { box-shadow: 0 0 0 12px rgba(37,211,102,0), var(--shadow-md); }
  100% { box-shadow: 0 0 0 0 rgba(37,211,102,0), var(--shadow-md); }
}
@keyframes pulse-call {
  0%   { box-shadow: 0 0 0 0 rgba(215,75,81,.55), var(--shadow-md); }
  70%  { box-shadow: 0 0 0 12px rgba(215,75,81,0), var(--shadow-md); }
  100% { box-shadow: 0 0 0 0 rgba(215,75,81,0), var(--shadow-md); }
}

@media (prefers-reduced-motion: reduce) {
  .fab-whatsapp, .fab-call { animation: none; }
}
