.fab {
  position: fixed;
  bottom: 25px;
  right: 20px;
  z-index: 999;
}

.fab a {
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background-color: #198754;
  text-decoration: none;
  font-size: 42px;
  color: #fff;
  box-shadow: 0 5px 20px rgba(25, 135, 84, 0.5);
  transition: all .3s ease;
  animation: pulse 2s infinite;
}

/* Hover */
.fab a:hover {
  transform: scale(1.08);
  color: #fff;
  box-shadow: 0 8px 25px rgba(25, 135, 84, 0.8);
}

/* Clique */
.fab a:active {
  transform: scale(.95);
}

/* Remove outline */
.fab a:focus {
  outline: none;
}

/* Pulsação */
@keyframes pulse {

  0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(25, 135, 84, 0.7);
  }

  70% {
    transform: scale(1.03);
    box-shadow: 0 0 0 18px rgba(25, 135, 84, 0);
  }

  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(25, 135, 84, 0);
  }

}

.fab a i {
  animation: shake 3s infinite;
}

@keyframes shake {

  0%, 100% {
    transform: rotate(0);
  }

  10% {
    transform: rotate(-10deg);
  }

  20% {
    transform: rotate(10deg);
  }

  30% {
    transform: rotate(-10deg);
  }

  40% {
    transform: rotate(0);
  }

}