*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{min-height:100dvh;-webkit-font-smoothing:antialiased;background-color:#fdf2f8}
img{display:block;max-width:100%;height:auto}

/* LP コンテナ */
.lp-container{max-width:480px;margin:0 auto;padding-bottom:100px}
.lp-container>img,
.lp-container>a>img,
.lp-container>div>img{width:100%;height:auto;display:block}

/* カルーセル */
.carousel-section{position:relative}
.carousel-section>img{width:100%;height:auto;display:block}
.carousel-area{position:relative}
.carousel-bg{width:100%;height:auto;display:block;position:relative;top:-110px;margin-bottom:-20px}
.carousel-viewport{position:absolute;top:26.4%;left:9%;width:81.8%;height:45.6%;overflow:hidden}
.carousel-track{display:flex;height:100%;transition:transform 0.4s ease}
.carousel-slide{flex:0 0 100%;min-width:0}
.carousel-slide img{width:100%;height:100%;object-fit:cover;display:block}

.carousel-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  width:36px;height:36px;border-radius:50%;
  border:1.5px solid #ccc;background:#fff;color:#888;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;z-index:2;padding:0;
  box-shadow:0 1px 3px rgba(0,0,0,0.08)
}
.carousel-arrow:active{background:#f5f5f5}
.carousel-prev{left:3%}
.carousel-next{right:3%}

.carousel-dots{position:absolute;bottom: 25%;left:0;width:100%;display:flex;justify-content:center;gap:10px}
.carousel-dot{width:10px;height:10px;border-radius:50%;background:#d1d5db;transition:background 0.3s;cursor:pointer}
.carousel-dot.active{background:#e8998d}

/* FV + カルーセル ラッパー */
.fv-wrapper{position:relative}

/* CTA ボタン（fixed で top を JS 制御、スクロール時トランジション） */
.cta-btn{
  position:fixed;left:50%;transform:translateX(-50%);
  z-index:1000;width:85%;max-width:408px;
  padding-bottom:env(safe-area-inset-bottom,0px);
  transition:top 0.01s ease
}
.cta-btn a{
  display:block;overflow:hidden;position:relative;
  animation:cta-pulse 2s ease-in-out infinite
}
.cta-btn a::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(110deg,rgba(255,255,255,0) 20%,rgba(255,255,255,0.28) 45%,rgba(255,255,255,0) 70%);
  transform:translateX(-130%);animation:cta-shine 2.4s ease-in-out infinite;pointer-events:none
}
.cta-btn img{width:100%;height:auto;display:block}
.cta-btn a:active img{filter:brightness(0.95);transform:scale(0.97)}

@keyframes cta-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.02)}}
@keyframes cta-shine{0%,45%{transform:translateX(-130%)}65%,100%{transform:translateX(130%)}}

@media(prefers-reduced-motion:reduce){
  .cta-btn a,.cta-btn a::before{animation:none}
}
/* fvCTA ボタン */
.cta-btn-fv{
  position:relative;left:50%;top:-30px;transform:translateX(-50%);
  z-index:1000;width:85%;max-width:408px;
  padding-bottom:env(safe-area-inset-bottom,0px);
  transition:top 0.01s ease
}
.cta-btn-fv a{
  display:block;overflow:hidden;position:relative;
  animation:cta-pulse 2s ease-in-out infinite
}
.cta-btn-fv a::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(110deg,rgba(255,255,255,0) 20%,rgba(255,255,255,0.28) 45%,rgba(255,255,255,0) 70%);
  transform:translateX(-130%);animation:cta-shine 2.4s ease-in-out infinite;pointer-events:none
}
.cta-btn-fv img{width:100%;height:auto;display:block}
.cta-btn-fv a:active img{filter:brightness(0.95);transform:scale(0.97)}


@media(prefers-reduced-motion:reduce){
  .cta-btn-fv a,.cta-btn-fv a::before{animation:none}
}
.margin{
  margin-top: -110px;
}
.margin02{
  margin-top: -130px;
}
footer{
  padding: 2em;
  background-color: #ccc;
  text-align: center;
}
footer a{
  color: #000;
}