body {
  padding-bottom: clamp(118px, 24vw, 230px);
}

.floating {
  position: fixed;
  right: 0;
  bottom: max(10px, env(safe-area-inset-bottom));
  left: 0;
  z-index: 1000;
  display: block !important;
  width: min(96vw, 960px);
  max-width: 100%;
  margin-inline: auto;
  transform: none;
  filter: none;
}

.floating__btn {
  display: block;
  width: 100%;
}

.floating__btn img {
  width: 100%;
  height: auto;
}

.cta__btn,
.floating__btn {
  animation: coachCtaPuyoBtn 1.6s ease-in infinite;
  transform-origin: center center;
  will-change: transform;
}

@keyframes coachCtaPuyoBtn {
  0%, 10% {
    transform: scale(1.04);
  }
  30%, 40% {
    transform: scale(1);
  }
  50% {
    transform: scale(1, 1.025);
  }
  60% {
    transform: scale(1.04);
  }
  70% {
    transform: scale(1.01);
  }
  100% {
    transform: scale(1.04);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cta__btn,
  .floating__btn {
    animation: none;
  }
}

@media (min-width: 992px) {
  body {
    padding-bottom: 180px;
  }

  .floating {
    width: min(70vw, 640px);
  }
}
