@charset "UTF-8";
html {
  scroll-behavior: smooth;
}
img {
  vertical-align: bottom;
}
.wrapper {
  max-width: 750px;
  margin: 0 auto;
}

/*---------------------------
fv
---------------------------*/
.fv {
  position: relative;
  z-index: -1;
  overflow: hidden;
}
.fv_awa {
  position: absolute;
  left: 0;
  width: 45%;
  bottom: 51%;
}
.zoom-out-box_awa {
  opacity: 0;                /* 初期は透明 */
  transform: scale(1.2);     /* 初期は1.2倍の大きさ */
  transition: all 1s;        /* 1秒かけて変化 */
}

/* inview.jsで付与されるクラス */
.zoom-out-box_awa.is-show {
  opacity: 1;                /* 透明度を戻す */
  transform: scale(1);       /* 1倍（元のサイズ）に戻す */
}

/*---------------------------
re01
---------------------------*/
.scroll_bg {
  position: relative;
  overflow: hidden;
}
.scroll_img {
  position: absolute;
  bottom: 42.5%;
  width: 250%;
  will-change: transform;
  animation: marquee-scroll 20s linear infinite;
}
@keyframes marquee-scroll {
  to {
    transform: translateX(-50%)
  }
}
.re01-2 {
  position: absolute;
  bottom: 3%;
  right: 6%;
  width: 42%;
  opacity: 0;
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.re01-2.is-show {
  opacity: 1;}

/*---------------------------
reEND
---------------------------*/
.reEND {
  position: relative;
}
.reEND_fadeIn_up {
  position: absolute;
  bottom: 4%;
  right: 0%;
  width: 39%;
}
.fadeIn_up {
  opacity: 0;
  transform: translate(0, 50%);
  transition: 2s;
}
.fadeIn_up.is-show {
  transform: translate(0, 0);
  opacity: 1;
}

/*---------------------------
CTA
---------------------------*/
.ctaarea .cta_1 {
  position: relative;
}
.ctaarea .cta_1 .btn_1 {
  position: absolute;
  bottom: 46.5%;
  width: 90%;
  left: 5%;
}
.ctaarea .cta_1 .btn_2 {
  position: absolute;
  bottom: 11.5%;
  width: 90%;
  left: 50%;
  transform: translateX(-50%);
}
.cta_zoom {
  animation: btnZoom 1s ease 0s infinite alternate;
  -webkit-animation: btnZoom 1s ease 0s infinite alternate;
}
@keyframes btnZoom {
  from {
    transform: scale(0.9, 0.9);
  }
  to {
    transform: scale(1, 1);
  }
}

/*---------------------------
re02
---------------------------*/
.re02 {
  position: relative;
  overflow: hidden;
}
.re02_in {
  position: absolute;
  bottom: 24.5%;
  width: 62%;
  left: 10%;
}
.re02_infadeIn_up {
  opacity: 0;
  transform: translate(0, 50%);
  transition: 2s;
}
.re02_infadeIn_up.is-show {
  transform: translate(0, 0);
  opacity: 1;
}

/*---------------------------
re03
---------------------------*/
.re03 {
  margin-top: -16%;
  position: relative;
  overflow: hidden;
}
.re03_in_right {
  position: absolute;
  right: 0;
  bottom: 24%;
  width: 69%;
}
.fadeIn_right {
  opacity: 0;
  transform: translate(50%, 0);
  transition: 2s;
  /*transition-delay: 0.5s; 遅延をかける秒数 */
}
.fadeIn_right.is-show {
  transform: translate(0, 0);
  opacity: 1;
}
.re03_in_left {
  position: absolute;
  left: 0%;
  width: 59%;
  bottom: 0%;
}
.fadeIn_left {
  opacity: 0;
  transform: translate(-50%, 0);
  transition: 2s;
  /*transition-delay: 0.8s; /*遅延をかける秒数 */
}
.fadeIn_left.is-show {
  transform: translate(0, 0);
  opacity: 1;
}
/*---------------------------
re04
---------------------------*/
.re04 {
  position: relative;
  overflow: hidden;
}
.re04video {
    position: absolute;
    top: 33%;
    width: 99%;
    left: 2%;
    z-index: -1;
}
/*---------------------------
re06
---------------------------*/
.re06 {
  position: relative;
  overflow: hidden;
}

.re06_in_zoomIn {
  position: absolute;
  top: 19%;
  width: 80%;
  left: 10%;
}

/* 初期状態（非表示＆縮小） */
.inviewzoomIn06 {
  transform: scale(0);
  -webkit-transform: scale(0);
}

/* 発火時（バウンド付きズーム） */
.zoomIn06 {
  animation: zoomInBounce06 0.8s cubic-bezier(.34, 1.56, .64, 1) forwards;
  -webkit-animation: zoomInBounce06 0.8s cubic-bezier(.34, 1.56, .64, 1) forwards;
}

/* キーフレーム */
@keyframes zoomInBounce06 {
  0% {
    transform: scale(0);
  }
  60% {
    transform: scale(1.08);
  }
  80% {
    transform: scale(0.95);
  }
  100% {
    transform: scale(1);
  }
}

@-webkit-keyframes zoomInBounce06 {
  0% {
    -webkit-transform: scale(0);
  }
  60% {
    -webkit-transform: scale(1.08);
  }
  80% {
    -webkit-transform: scale(0.95);
  }
  100% {
    -webkit-transform: scale(1);
  }
}

/*---------------------------
re08
---------------------------*/
.re08 {
  position: relative;
  overflow: hidden;
}
.re08In {
  position: absolute;
  bottom: 7%;
}
.zoom-out-box08 {
  opacity: 0;             /* 初期は透明 */
  transform: scale(1.2);  /* 初期は1.2倍の大きさ */
  transition: all 1s;     /* 1秒かけて変化 */
}
/* inview.jsで付与されるクラス */
.zoom-out-box08.is-show {
  opacity: 1;            /* 透明度を戻す */
  transform: scale(1);   /* 1倍（元のサイズ）に戻す */
}

/*---------------------------
re09
---------------------------*/
.re09 {
  position: relative;
  overflow: hidden;
}
.re09video {
  position: absolute;
  bottom: 1.5%;
  width: 84%;
  left: 8%;
}
.re09_awa1 {
  position: absolute;
  bottom: 39%;
  left: 5%;
  width: 36%;
}
.re09_awa2 {
  position: absolute;
  bottom: 33%;
  right: 1%;
  width: 36%;
}
.re09_awa3 {
  position: absolute;
  bottom: 29%;
  left: 0%;
  width: 36%;
}
.awainview1{
  opacity: 0; /*表示前に透明にしておく */
  transition: 0.8s; /*移動にかける時間 */
  transition-delay: 0.1s; /*遅延をかける秒数 */
}
.awainview1.show{
  opacity: 1;
}
.awainview2{
  opacity: 0; /*表示前に透明にしておく */
  transition: 0.8s; /*移動にかける時間 */
  transition-delay: 0.2s; /*遅延をかける秒数 */
}
.awainview2.show{
  opacity: 1;
}
.awainview3{
  opacity: 0; /*表示前に透明にしておく */
  transition: 0.8s; /*移動にかける時間 */
  transition-delay: 0.3s; /*遅延をかける秒数 */
}
.awainview3.show{
  opacity: 1;
}

/*---------------------------
re10
---------------------------*/
.re10 {
  position: relative;
  overflow: hidden;
}

.re10_in_zoomIn {
  position: absolute;
  top: 28.5%;
  width: 41%;
  right: 5%;
}

/* 初期状態 */
.inviewzoomIn10 {
  transform: scale(0);
  -webkit-transform: scale(0);
}

/* 発火（バウンドズーム） */
.zoomIn10 {
  animation: zoomInBounce10 0.8s cubic-bezier(.34, 1.56, .64, 1) forwards;
  -webkit-animation: zoomInBounce10 0.8s cubic-bezier(.34, 1.56, .64, 1) forwards;
}

/* キーフレーム */
@keyframes zoomInBounce10 {
  0% {
    transform: scale(0);
  }
  60% {
    transform: scale(1.08);
  }
  80% {
    transform: scale(0.95);
  }
  100% {
    transform: scale(1);
  }
}

@-webkit-keyframes zoomInBounce10 {
  0% {
    -webkit-transform: scale(0);
  }
  60% {
    -webkit-transform: scale(1.08);
  }
  80% {
    -webkit-transform: scale(0.95);
  }
  100% {
    -webkit-transform: scale(1);
  }
}

/* 丸 */
.re10_maru1 {
  position: absolute;
  bottom: 19%;
  left: 10%;
  width: 38%;
}

.re10_maru2 {
  position: absolute;
  bottom: 19%;
  right: 10%;
  width: 38%;
}

.maruinview1 {
  opacity: 0;
  transition: 0.8s;
  transition-delay: 0.2s;
}
.maruinview1.show {
  opacity: 1;
}

.maruinview2 {
  opacity: 0;
  transition: 0.8s;
  transition-delay: 0.4s;
}
.maruinview2.show {
  opacity: 1;
}
/*---------------------------
re12
---------------------------*/
.re12 {
  position: relative;
  overflow: hidden;
}

.re12_in_zoomIn {
  position: absolute;
  top: 51.5%;
  width: 90%;
  left: 5%;
}

/* 初期状態 */
.inviewzoomIn12 {
  transform: scale(0);
  -webkit-transform: scale(0);
}

/* 発火（バウンドズーム） */
.zoomIn12 {
  animation: zoomInBounce12 0.8s cubic-bezier(.34, 1.56, .64, 1) forwards;
  -webkit-animation: zoomInBounce12 0.8s cubic-bezier(.34, 1.56, .64, 1) forwards;
}

/* キーフレーム */
@keyframes zoomInBounce12 {
  0% {
    transform: scale(0);
  }
  60% {
    transform: scale(1.08);
  }
  80% {
    transform: scale(0.95);
  }
  100% {
    transform: scale(1);
  }
}

@-webkit-keyframes zoomInBounce12 {
  0% {
    -webkit-transform: scale(0);
  }
  60% {
    -webkit-transform: scale(1.08);
  }
  80% {
    -webkit-transform: scale(0.95);
  }
  100% {
    -webkit-transform: scale(1);
  }
}

/*---------------------------
re13
---------------------------*/
.re13 {
  position: relative;
  overflow: hidden; /* 横スクロール領域を隠す */
}
.bg {
  width: 100%;
  display: block;
}
.htu-slides-wrap {
  position: absolute;
  top: 10%;
  width: 95%;
  left: 2%;
}
/* スライド */
.htu-slides {
  display: flex;                  /* 横並び */
  overflow-x: auto;               /* 横スクロール可能 */
  scroll-snap-type: x mandatory;  /* スナップ */
  -webkit-overflow-scrolling: touch;
  width: 100%;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
.htu-slides::-webkit-scrollbar {
  display: none; /* スクロールバー非表示 */
}

.htu-slides div {
  flex: 0 0 100%;          /* スライド幅を100%に固定 */
  scroll-snap-align: start; /* スクロール後スナップ */
  position: relative;       /* absolute ではなく relative */
  opacity: 1;               /* 常に表示 */
}

.htu-slides img {
  width: 100%;
  display: block;
}

/* 番号ボタン */
.htu-numbers {
  position: absolute;
  top: 41.5%;
  width: 29%;
  left: 4%;
  display: flex;
  gap: 10px; /* ボタン間のスペース */
}
.htu-numbers img {
  cursor: pointer;
}
/*---------------------------
くるくる
---------------------------*/
.overlaid {
  position: relative;
  overflow: hidden;
}
.abs {
  position: absolute;
  top: 36%;
  left: -23%;
  width: 147%;
}
.kurukuru_top {
  position: absolute;
  top: 22%;
  z-index: 1;
}
.kurukuru_bottle {
  position: absolute;
  z-index: 1;
  top: 44%;
  left: 50%;
  transform: translateX(-50%);
}
.keyframe2 {
  animation-name: anim_r;
  animation-duration: 4s;
  animation-timing-function: linear;
  animation-direction: normal;
}
.animation7 {
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-direction: alternate;
  animation-duration: 30s;
}
@keyframes anim_r {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/*---------------------------
よくある質問
---------------------------*/
.faq dl {
  margin: 0 auto;
}

.faq dt {
  position: relative;
}
/* 矢印 */
.faq-arrow {
  position: absolute;
  top: 50%;
  right: 8%;
  transform: translateY(-50%);
  width: 5%;
  height: auto;
  transition: transform 0.3s ease;
}
/* 開いたとき回転 */
.faq dt.acd-open .faq-arrow {
  transform: translateY(-50%) rotate(180deg);
}

/*---------------------------
下部固定用フローティングボタン
---------------------------*/
#fbtn {
  position: fixed;
  bottom: 0;
  text-align: center;
  z-index: 99;
  display: none;
  margin: 0 auto;
  max-width: 750px;
}
#fbtn a {
  position: relative;
}
@media screen and (max-width: 749px) {
  .wrapper {
    width: 100%;
  }
}
