@charset "UTF-8";
body {
  background: #eee;
}
.contents {
  background: #fff;
  box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, .05);
}
.relative {
  position: relative;
}
.parts {
  position: absolute;
  z-index: 1;
}
.overflow_hidden {
  overflow: hidden;
}

.anim_stamp.active {
  -webkit-animation: stamp 0.6s ease-in both;
  -moz-animation: stamp 0.6s ease-in both;
  animation: stamp 0.6s ease-in both;
}
.anim_flash.active {
  -webkit-animation: flash .5s step-end both 2;
  -moz-animation: flash .5s step-end both 2;
  animation: flash .5s step-end both 2;
}
.anim_flash_fv.active {
  -webkit-animation: flash_fv 4s step-end both infinite;
  -moz-animation: flash_fv 4s step-end both infinite;
  animation: flash_fv 4s step-end both infinite;
}
.anim_bounceIn {
  -webkit-animation: bounceIn 2.5s ease-in 0.0s forwards infinite;
  -moz-animation: bounceIn 2.5s ease-in 0.0s forwards infinite;
  animation: bounceIn 2.5s ease-in 0.0s forwards infinite;
}
.zoom_in_2.active {
  -webkit-animation: zoom_in 3s linear both;
  -moz-animation: zoom_in 3s linear both;
  animation: zoom_in 3s linear both;
}
.anim_infinite {
  animation-iteration-count: infinite !important;
}
.anim_duration {
  animation-duration: 2s !important;
}
.anim_arrow {
  -webkit-animation-name: arrow;
  -webkit-animation-duration: 1s;
  -webkit-animation-iteration-count: infinite;
  -webkit-animation-timing-function: ease;
  -moz-animation-name: arrow;
  -moz-animation-duration: 1s;
  -moz-animation-iteration-count: infinite;
  -moz-animation-timing-function: ease;
  animation-name: arrow;
  animation-duration: 1s;
  animation-iteration-count: infinite;
  animation-timing-function: ease;
}
.anim_arrow_l {
  -webkit-animation-name: arrow_l;
  -webkit-animation-duration: 1.5s;
  -webkit-animation-iteration-count: infinite;
  -webkit-animation-timing-function: ease;
  -moz-animation-name: arrow_l;
  -moz-animation-duration: 1.5s;
  -moz-animation-iteration-count: infinite;
  -moz-animation-timing-function: ease;
  animation-name: arrow_l;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease;
}
.anim_arrow_r {
  -webkit-animation-name: arrow_r;
  -webkit-animation-duration: 1.5s;
  -webkit-animation-iteration-count: infinite;
  -webkit-animation-timing-function: ease;
  -moz-animation-name: arrow_r;
  -moz-animation-duration: 1.5s;
  -moz-animation-iteration-count: infinite;
  -moz-animation-timing-function: ease;
  animation-name: arrow_r;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease;
}

@-webkit-keyframes flash_fv {
  6.25%,18.75% {opacity:0;}
  12.5%,25% {opacity:1;}
}
@-moz-keyframes flash_fv {
  6.25%,18.75% {opacity:0;}
  12.5%,25% {opacity:1;}
}
@keyframes flash_fv {
  6.25%,18.75% {opacity:0;}
  12.5%,25% {opacity:1;}
}

@-webkit-keyframes border_fv {
  30% {width:0;}
  35%,100% {width:100%;}
}
@-moz-keyframes border_fv {
  30% {width:0;}
  35%,100% {width:100%;}
}
@keyframes border_fv {
  30% {width:0;}
  35%,100% {width:100%;}
}

@-webkit-keyframes border_fv2 {
  35% {width:0;}
  40%,100% {width:100%;}
}
@-moz-keyframes border_fv2 {
  35% {width:0;}
  40%,100% {width:100%;}
}
@keyframes border_fv2 {
  35% {width:0;}
  40%,100% {width:100%;}
}

@-webkit-keyframes arrow {
    /*初期位置*/
    0% {-webkit-transform: translate(0, 0);}
    50% {-webkit-transform: translate(0, -15px);}
    100% {-webkit-transform: translate(0, 0);}
}
@-moz-keyframes arrow {
    0% {-moz-transform: translate(0, 0);}
    50% {-moz-transform: translate(0, -15px);}
    100% {-moz-transform: translate(0, 0);}
}
@keyframes arrow {
    0% {transform: translate(0, 0);}
    50% {transform: translate(0, -15px);}
    100% {transform: translate(0, 0);}
}

@keyframes arrow_l {
  0% {transform: translate(0, 0);}
  50% {transform: translate(10px, 0);}
  100% {transform: translate(0, 0);}
}
@keyframes arrow_r {
  0% {transform: translate(0, 0);}
  50% {transform: translate(-10px, 0);}
  100% {transform: translate(0, 0);}
}

video {
  vertical-align: top;
  display: block;
  filter: drop-shadow(0px 0px rgba(0,0,0,0));
  outline: none;
  border: none;
}
.fv {
  position: relative;
  z-index: 2;
  height: 1006px;
}
.gif_fv_text {
  bottom: 0;
}


.slide_shiny_lp41 {
  overflow: hidden;
  width: 97%;
  position: absolute;
  height: 100%;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
}

.gif_img {
  padding: 0 30px;
  box-sizing: border-box;
  width: 100%;
}
.gif_360_text01 {
  margin: 30px 0 0 0;
}

.voc_img {
  padding: 100px 60px 0;
  box-sizing: border-box;
  position: absolute;
}

.cta_btn01 {
  max-width: 713px;
  margin: -212px auto 0;
  text-align: center;
  left: 0;
  right: 0;
  padding: 0 0 0 15px;
}

.slide_shiny {
  position: absolute;
  top: 0;
  left: 0;
  width: 80px;
  height: 100%;
  top: 0;
  transform: skew(20deg, 0deg);
  background-image: linear-gradient(
    left,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 1) 50%,
    rgba(000, 255, 255, 0) 100%
  );
  background-image: -webkit-gradient(
    linear,
    left bottom,
    right bottom,
    color-stop(0%, rgba(255, 255, 255, 0)),
    color-stop(50%, rgba(255, 255, 255, 1)),
    color-stop(100%, rgba(255, 255, 255, 0))
  );
  -webkit-animation: shiny 3s linear both infinite;
  -moz-animation: shiny 3s linear both infinite;
  animation: shiny 3s linear both infinite;
}

@-webkit-keyframes zoom_in {
  from {transform: scale(0, 0);}
  20% {transform: scale(1, 1);}
  to {transform: scale(1, 1);}
}
@-moz-keyframes zoom_in {
  from {transform: scale(0, 0);}
  20% {transform: scale(1, 1);}
  to {transform: scale(1, 1);}
}
@keyframes zoom_in {
  from {transform: scale(0, 0);}
  20% {transform: scale(1, 1);}
  to {transform: scale(1, 1);}
}

@-webkit-keyframes bounceIn {
  0% {transform: scale(1, 1);}
  5.0% {transform: scale(1.1, 1.1);}
  10.0% {transform: scale(1, 1);}
  15.0% {transform: scale(1.1, 1.1);}
  20% {transform: scale(1, 1);}
  100% {transform: scale(1, 1);}
}
@-moz-keyframes bounceIn {
  0% {transform: scale(1, 1);}
  5.0% {transform: scale(1.1, 1.1);}
  10.0% {transform: scale(1, 1);}
  15.0% {transform: scale(1.1, 1.1);}
  20% {transform: scale(1, 1);}
  100% {transform: scale(1, 1);}
}
@keyframes bounceIn {
  0% {transform: scale(1, 1);}
  5.0% {transform: scale(1.1, 1.1);}
  10.0% {transform: scale(1, 1);}
  15.0% {transform: scale(1.1, 1.1);}
  20% {transform: scale(1, 1);}
  100% {transform: scale(1, 1);}
}

@-webkit-keyframes flash {
  0%,100% {opacity:1;}
  50% {opacity:0;}
}
@-moz-keyframes flash {
  0%,100% {opacity:1;}
  50% {opacity:0;}
}
@keyframes flash {
  0%,100% {opacity:1;}
  50% {opacity:0;}
}

@-webkit-keyframes stamp {
  0% {
    opacity: 0;
    transform: scale(2.0);
  }
  1% {
    opacity: 1;
    transform: scale(2.0);
  }
  100% {
    opacity: 1;
    transform: scale(1.0);
  }
}

@-moz-keyframes stamp {
  0% {
    opacity: 0;
    transform: scale(2.0);
  }
  1% {
    opacity: 1;
    transform: scale(2.0);
  }
  100% {
    opacity: 1;
    transform: scale(1.0);
  }
}

@keyframes stamp {
  0% {
    opacity: 0;
    transform: scale(2.0);
  }
  1% {
    opacity: 1;
    transform: scale(2.0);
  }
  100% {
    opacity: 1;
    transform: scale(1.0);
  }
}

@-webkit-keyframes shiny {
  0% {left: -20%;}
  20% {left: 140%;}
  100% {left: 140%;}
}
@-moz-keyframes shiny {
  0% {left: -20%;}
  20% {left: 140%;}
  100% {left: 140%;}
}
@keyframes shiny {
  0% {left: -20%;}
  20% {left: 140%;}
  100% {left: 140%;}
}

.zoom_in_2.active {
  animation: zoom_in 3s linear infinite;
}

@keyframes zoom_in {
  from {
    transform: scale(0, 0);
  }

  20% {
    transform: scale(1, 1);;
  }

  to {
    transform: scale(0, 0)；
  }
}

.last_pb {
  padding: 0 0 50px;
}

.gif_hiza_text {
  padding: 15px 0 0;
}
.gif_nobi_text {
  margin: -50px 0 0;
}
.gif_360_text {
  padding: 10px 0 0;
}

.footer_link {
  padding: 10px 0 20px 0;
}
.footer_link p {
  padding: 20px 0 0 20px;
}
.footer_link p a:hover {
  opacity: 0.5;
}

.img_hidden img {
  display: none;
}

.lp09_text {
  margin: -400px 0 0;
}
.medicalLite {
  padding: 0 30px;
  box-sizing: border-box;
  background: #FFF89E;
}

.lp16_img {
  position: absolute;
  top: 295px;
  left: 310px;
  transform-origin: top left;
}

.lp21_img {
  position: absolute;
  bottom: 0;
}

.lp31_img {
  position: absolute;
  bottom: 0;
}

.gif01 {
  position: absolute;
  padding: 50px 80px 0;
}

.gif02 {
  position: absolute;
  padding: 50px 80px 0;
}

.gif06_text {
  margin: -55px 0 0;
}

.gif05 {
  margin: 0 0 50px;
}
.gif05_text {
  margin: 10px 0 0;
}

.gif06_text {
  margin: 20px 0 0;
}

.gif03_text {
  margin: -215px 0 0;
}

@media (max-width: 750px) {
  .contents {
    overflow: hidden;
  }

  .fv {
    margin: 0 0 0;
    height: auto;
  }
  .fv_gif {
    bottom: 5.6%;
    left: 4%;
  }

  .gif_hiza_text {
    padding: 2% 0 0;
  }

  .gif_nobi_text {
    margin: -7% 0 0;
  }

  .gif_360_text {
    padding: 2% 0 0;
  }

  .voc_img {
    padding: 14% 8.2% 0;
  }

  @-webkit-keyframes arrow {
      /*初期位置*/
      0% {-webkit-transform: translate(0, 0);}
      50% {-webkit-transform: translate(0, -10%);}
      100% {-webkit-transform: translate(0, 0);}
  }
  @-moz-keyframes arrow {
      0% {-moz-transform: translate(0, 0);}
      50% {-moz-transform: translate(0, -10%);}
      100% {-moz-transform: translate(0, 0);}
  }
  @keyframes arrow {
      0% {transform: translate(0, 0);}
      50% {transform: translate(0, -10%);}
      100% {transform: translate(0, 0);}
  }

  @keyframes arrow_l {
    0% {transform: translate(0, 0);}
    50% {transform: translate(15%, 0);}
    100% {transform: translate(0, 0);}
  }
  @keyframes arrow_r {
    0% {transform: translate(0, 0);}
    50% {transform: translate(-15%, 0);}
    100% {transform: translate(0, 0);}
  }
  
  .gif_img {
    padding: 0 4%;
    box-sizing: border-box;
  }
  .gif_360_text01 {
    margin: 4% 0 0 0;
    left: 0;
    right: 0;
    padding: 0 4%;
  }
  
  .cta_btn01 {
    max-width: 94%;
    margin: -28% auto 0;
    padding: 0 0 0 1.5%;
  }

  .slide_shiny {
    width: 15%;
  }

  .last_pb {
    padding: 0 0 6%;
  }

  .footer_link {
    padding: 3% 0 4% 0;
  }
  .footer_link p {
    padding: 3% 0 0 2%;
    font-size: 3vw;
  }

  .gif01 {
    padding: 6% 10.5% 0;
  }

  .gif02 {
    padding: 6% 10.5% 0;
  }

  .lp09_text {
    margin: -53% 0 0;
  }

  .gif03_text {
    margin: -28% 0 0;
  }

  .medicalLite {
    padding: 0 4%;
  }

  .lp16_img {
    top: 30%;
    left: 41%;
    width: 41%;
  }

  .gif05_text {
    margin: 1% 0 0;
  }

  .gif06_text {
    margin: 3% 0 0;
  }
}