  /* -----------------------
    fv
  ----------------------- */
  .fv {
    position: relative;
    background: url(../img/fv_bg.png) no-repeat center top/100%;
  }

  .fv h2,
  .fv h2 span {
    position: absolute;
    top: 0;
    z-index: 2;
  }

  .fv_model {
    position: absolute;
    top: min(calc(23 / 750 * 100vw), 23px);
    width: min(calc(750 / 750 * 100vw), 750px);
  }


  .fv_model p:nth-child(1) {
    position: absolute;
    top: 0;
    z-index: 3;
    width: 100%;
    transition: opacity 0.6s ease;
  }

  .fv_model p:nth-child(2) {
    opacity: 0;
    transition: opacity 0.6s ease;
  }
  .fv_model p.hide {
    opacity: 0;
    z-index: 3;
  }

  .fv_model p.show {
    opacity: 1;
    z-index: 3;
  }

  .fv h2 .ttl-bg {
    display: block;
    position: absolute;
    z-index: -1;
    clip-path: inset(0 0 100% 0);
    transition: all 0.8s 0s ease;
    transition-delay: .25s;
  }

  .fv_model p:nth-child(2) {
    position: absolute;
    top: 0;
  }

  .fv_pop {
    position: absolute;
    top: 0;
  }

  .fv_sub {
    position: absolute;
    bottom: min(calc(16 / 750 * 100vw), 16px);
  }

  .fv_product {
    position: absolute;
    bottom: min(calc(256 / 750 * 100vw), 256px);
  }

  .fv_product_pop {
    position: absolute;
    bottom: min(calc(256 / 750 * 100vw), 256px);
  }

  /* -----------------------
   アニメション
------------------------*/
.fv_pop,
.fv_product_pop,
.fv_sub {
  opacity: 0;
}

/* アニメーション開始時に付与されるクラス */
.fv_pop.fv_zoom {
  opacity: 1;
  animation: fv_zoom_in 0.3s ease-out forwards;
}

.fv_product_pop.fv_zoom {
  opacity: 1;
  animation: fv_fadeInRight 0.3s ease-out forwards;
}

.fv_sub.fv_fadeInRight {
  opacity: 1;
  animation: fv_fadeInRight 0.3s ease-out forwards;
}

/* アニメーション定義 */
@keyframes fv_zoom_in {
  0% {
    transform: scale(0.8);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes fv_fadeInRight {
  0% {
    transform: translateX(60px);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

  .fv h2 .ttl-bg.show {
    clip-path: inset(0);
  }

  @keyframes fv_zoomIn {
    0% {
      transform: scale(0.8);
      opacity: 0;
    }

    100% {
      transform: scale(1);
      opacity: 1;
    }
  }

  @keyframes fv_slideInRight {
    0% {
      transform: translateX(60px);
      opacity: 0;
    }

    100% {
      transform: translateX(0);
      opacity: 1;
    }
  }