*,*::before,*::after{box-sizing:border-box;}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role="list"],ol[role="list"]{list-style:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}a:not([class]){text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}


.wrap{ max-width: 640px; margin: 0 auto;}
img{ width: 100% !important; height: auto !important; object-fit: cover;}

.btn_fv,.btn_043{ position: relative;}
.btn_fv .btn_wrap{ position: absolute; bottom: 0; left: 0;}
.btn_043 .btn_wrap{ position: absolute; top: 0; left: 0;}

iframe{ width: 90.375%; margin: 0 auto 50px; display: block;}

/* --- btnへのアニメーション実装 --- */
.animation-shiny-pulse {
    position: relative;
    overflow: hidden !important;
    display: inline-block;
    text-decoration: none;
    transition: all 0.6s;
    animation: btn-pulse 2s infinite;
}

.animation-shiny-pulse:hover {
    transform: scale(1.05);
    animation-play-state: paused;
}
.animation-shiny-pulse:active {
    transform: scale(0.95);
}

.animation-shiny-pulse::after {
    content: "";
    position: absolute;
    top: -50%;
    left: -100%;
    width: 30%;
    height: 200%;
    background: linear-gradient(
        to right, 
        rgba(255, 255, 255, 0) 0%, 
        rgba(255, 255, 255, 0.9) 50%, 
        rgba(255, 255, 255, 0) 100%
    );
    transform: rotate(30deg);
    /* 3秒ごとに光を走らせる */
    animation: btn-shiny 3s infinite;
}

@keyframes btn-pulse {
    0% { transform: scale(1); }
    15% { transform: scale(1.05); }
    30% { transform: scale(1); }
    45% { transform: scale(1.05); }
    60% { transform: scale(1); }
    100% { transform: scale(1); }
}

@keyframes btn-shiny {
    0% { left: -100%; }
    30% { left: 120%; }
    100% { left: 120%; }
}

.btn_fix {
  display: none;
}

@media screen and (max-width: 768px) {
  .btn_fix {
    display: block;
    position: fixed;
    bottom: -110px;
    left: 0;
    width: 100%;
    z-index: 999;
    transition: bottom 0.4s ease;
	background: rgba(255,255,255,0.85);
	overflow: hidden;
	padding: 5px 0;
  }

  .btn_fix.is-active {
    bottom: 0;
  }
}