.wsp-btn {
  position: fixed;
  bottom: 20px;
  right: 20px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 9999px;
  background: #25D366;
  color: #ffffff;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(0,0,0,0.18);
  z-index: 99999;
  transition: transform .15s ease, box-shadow .2s ease, background .2s ease;
}
.wsp-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(0,0,0,0.22);
  background: #1ebe5d;
}
.wsp-icon {
  width: 20px;
  height: 20px;
  display: inline-block;
}
.wsp-left { left: 20px; right: auto; }
.wsp-right { right: 20px; }
.pulse::after {
  content: "";
  position: absolute;
  inset: -6px;
  border-radius: 9999px;
  border: 2px solid rgba(37,211,102,0.45);
  animation: wsp-pulse 1.8s infinite;
}
@keyframes wsp-pulse {
  0%   { transform: scale(0.95); opacity: .8; }
  70%  { transform: scale(1.05); opacity: 0; }
  100% { transform: scale(0.95); opacity: 0; }
}
@media (max-width: 767px) {
  .wsp-btn { padding: 10px 14px; font-size: 15px; }
}
