*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

body {
  margin: 0;
}

.main {
  width: 980px;
  max-width: 100%;
  margin: 0 auto;
  overflow: hidden;
}

.lp-cta-wrap {
  position: relative;
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  overflow: hidden;
}

.lpimg {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}

/* 通常CTA */
.cta-btn {
  position: absolute;
  left: 50%;
  bottom: 13%;
  transform: translateX(-50%);
  width: 80%;
  max-width: 80%;
  display: block;
  z-index: 10;
  overflow: hidden;
  border-radius: 12px;
}

/* 右側の小さめCTA */
.cta-btn2 {
  position: absolute;
  right: 4%;
  bottom: 27%;
  width: 40%;
  max-width: 40%;
  display: block;
  z-index: 10;
  overflow: hidden;
  border-radius: 12px;
}

.cta-img,
.cta-img2 {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

.cta-pulse {
  animation: ctaPulse 1.6s ease-in-out infinite;
  transform-origin: center center;
}

@keyframes ctaPulse {
  0% {
    transform: scale(1);
  }
  45% {
    transform: scale(1.04);
  }
  70% {
    transform: scale(0.98);
  }
  100% {
    transform: scale(1);
  }
}

/* 光る演出 */
.cta-btn::after,
.cta-btn2::after {
  content: "";
  position: absolute;
  top: -40%;
  left: 0;
  width: 40%;
  height: 180%;
  background: linear-gradient(
    120deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.55) 50%,
    rgba(255, 255, 255, 0) 100%
  );
  transform: translateX(-220%) rotate(25deg);
  animation: ctaShine 2.4s ease-in-out infinite;
  pointer-events: none;
}

@keyframes ctaShine {
  0% {
    transform: translateX(-220%) rotate(25deg);
  }
  45% {
    transform: translateX(320%) rotate(25deg);
  }
  100% {
    transform: translateX(320%) rotate(25deg);
  }
}