.fade__Up,
.fade__Up__Load {
  opacity: 0;
  transform: translate(0%, 70px);
  transition: all 0.15s ease-out;
}

.fade__left,
.fade__left__Load {
  opacity: 0;
  transform: translate(-70px, 0px);
  transition: all 0.8s ease-out;
}

.fade__right,
.fade__right__Load {
  opacity: 0;
  transform: translate(90px, 0px);
  transition: all 0.8s ease-out;
  /*transition-delay: 0.4s;*/
}

.fade__in,
.fade__in__Load {
  opacity: 0;
  transform: translate(0%, 0px);
  transition: all 2.2s ease-out;
}

.fadeUp__on,
.fadeUpLoad__on {
  opacity: 1;
  transform: translate(0%, 0px);
}

@keyframes infinity-scroll-left {
    from {
      transform: translateX(0);
    }
      to {
      transform: translateX(-100%);
    }
    }
    .scroll-infinity__wrap {
      display: flex;
      overflow: hidden;
      position: relative;
      z-index: 1;
    }
    .scroll-infinity__list {
      display: flex;
      list-style: none;
      padding: 0
    }
    .scroll-infinity__list--left {
      animation: infinity-scroll-left 80s infinite linear 0.5s both;
    }
    .scroll-infinity__item {
      width: 620px;
      padding-left: 18px;
      padding-right: 18px;
      padding-top: 12px;
      padding-bottom: 12px;
    }
    .scroll-infinity__item>img {
      width: 100%;
    }


    /* Offset start positions while keeping the same speed */
    .scroll-infinity.ptn1 .scroll-infinity__list--left {
      animation-delay: 0s;
    }
    .scroll-infinity.ptn2 .scroll-infinity__list--left {
      animation-delay: -10s; /* adjust this value to fine-tune the offset */
    }
    
/* Intro sequence on load (head section only) */
.head-box .scroll-infinity.ptn1 .scroll-infinity__item {
  opacity: 0;
  transform: translateX(-12px);
  transition: opacity 2.2s ease, transform 2.2s ease;
}
.head-box .scroll-infinity.ptn1 .scroll-infinity__item.is-visible {
  opacity: 1;
  transform: none;
}
.head-box .scroll-infinity.ptn2 {
  opacity: 0;
  transition: opacity 2.4s ease;
}
.head-box .scroll-infinity.ptn2.is-visible {
  opacity: 1;
}
/* Also reveal ptn2 items one-by-one */
.head-box .scroll-infinity.ptn2 .scroll-infinity__item {
  opacity: 0;
  transform: translateX(-12px);
  transition: opacity 2.2s ease, transform 2.2s ease;
}
.head-box .scroll-infinity.ptn2 .scroll-infinity__item.is-visible {
  opacity: 1;
  transform: none;
}
    
main img{
  max-width: 100%;
}
.con-wrap{
  width: 100%;
  overflow: hidden;
}
.head-box{
  position: relative;
  width: 100%;
}
.head-wrap{
  position: absolute;
  left: 0;
  right: 0;
  width: 84%;
  max-width: 1137px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 10;
  top: 58%;
  transform: translateY(-50%);
}
.head-wrap .head-text{
  width: 55%;
  opacity: 1;
  transition: all 2.0s ease;
}
.head-wrap .head-text.loaded{
  opacity: 1;
}
.head-wrap .head-text .head-text-1{
  position: relative;
  font-weight: 500;
  margin-bottom: 0px;
}
.head-wrap .head-text .head-text-2{
  position: relative;
  width: 85%;
  margin-top: -10px;
}
.head-wrap .head-text .head-text-1::after{
  content: "";
  background: #505050;
  width: 100%;
  height: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  border-radius: 6px 6px 6px 0;
  transition: all 1.0s ease;
}
.head-wrap .head-text .head-text-2::after{
  content: "";
  background: #505050;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  border-radius: 0 0 6px 6px;
  transition: all 1.0s ease;
}
.head-wrap .head-text .head-text-1.loadoff::after,
.head-wrap .head-text .head-text-2.loadoff::after{
  width: 0%;
  transition: all 1.0s ease;
}
.head-wrap .head-text .head-text-1.loaded::after,
.head-wrap .head-text .head-text-2.loaded::after{
  width: 0;
  left: auto;
  right: 0;
}
.head-wrap .head-text .head-text-1 img{
  opacity: 0;
  transition: all 1.0s ease;
}
.head-wrap .head-text .head-text-2 img{
  opacity: 0;
  transition: all 1.0s ease;
}
.head-wrap .head-text .head-text-1.loaded2 img,
.head-wrap .head-text .head-text-2.loaded2 img{
  opacity: 1;
}
.head-wrap .head-img{
  width: 42%;
  position: relative;
}
.head-wrap .head-img .earth-img{
  transition: all 2.0s ease;
  transform: translateX(200%);
  z-index: 7;
  position: relative;
}
.head-wrap .head-img .earth-img.loaded{
  transform: translateX(0);
}
.head-wrap .head-img .chara-img{
  transition: none;
  transform: translateY(-200%);
  z-index: 8;
  position: absolute;
  top: -95px;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
}
.head-wrap .head-img .chara-img.loaded{
  animation: 1250ms cubic-bezier(0.2, 0.85, 0.25, 1) 100ms 1 normal both running chara-drop;
}
@keyframes chara-drop{
  0%{transform: translateY(-150%);} /* start above */
  70%{transform: translateY(-0px);}  /* small dip */
  90%{transform: translateY(-20px);}  /* small dip */
  100%{transform: translateY(0px);}    /* settle */
}
.head-wrap .head-img .chara-name{
  position: absolute;
  top: 25px;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  z-index: 8;
  position: absolute;
  opacity: 0;
  transition: all 2.5s ease;
}
.head-wrap .head-img .chara-name.loaded{
  opacity: 1;
}
@media (max-width:1030px) {
.head-wrap .head-text .head-text-1{
  font-size: 35px;
}
.head-wrap .head-text .head-text-2{
  font-size: 35px;
}
}
@media (max-width:900px) {
  
  .scroll-infinity__item {
    width:75vw;
    padding-left: 2vw;
    padding-right:2vw;
    padding-top: 2vw;
    padding-bottom: 2vw;
  }
  .con-wrap{
    width: 100%;
    overflow: hidden;
  }
  .head-box{
    position: relative;
    width: 100%;
    padding-bottom: 80vw;
  }
  .head-wrap{
    position: absolute;
    left: 0;
    right: 0;
    width: 84%;
    max-width: none;
    margin-left: auto;
    margin-right: auto;
    display: block;
    justify-content: space-between;
    align-items: center;
    z-index: 10;
    top:29vw;
    transform: translateY(-0%);
  }
  .head-wrap .head-text{
    width: 100%;
    margin-bottom: 21vw;
  }
  .head-wrap .head-text.loaded{
    opacity: 1;
  }
  .head-wrap .head-text .head-text-1{
  }
  .head-wrap .head-text .head-text-2{
  }
  .head-wrap .head-text .head-text-1::after{    
    border-radius: 0.5vw 0.5vw 0 0;
    transition: all 1.0s ease;
  }
  .head-wrap .head-text .head-text-2::after{
    border-radius: 0 0 0.5vw 0.5vw;
    transition: all 1.0s ease;
  }
  .head-wrap .head-text .head-text-1.loaded::after,
  .head-wrap .head-text .head-text-2.loaded::after{
    width: 0;
  }
  .head-wrap .head-img{
    width: 100%;
    position: relative;
  }
  .head-wrap .head-img .earth-img{
    transition: all 2.8s ease;
    transform: translateX(200%);
    z-index: 7;
    position: relative;
  }
  .head-wrap .head-img .earth-img.loaded{
    transform: translateX(0);
  }
  .head-wrap .head-img .chara-img{
    transition: none;
    transform: translateY(-140vw);
    z-index: 8;
    position: absolute;
    top: -17vw;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
  }
  .head-wrap .head-img .chara-img.loaded{
    animation: chara-drop-sp .75s cubic-bezier(.2,.85,.25,1) both;
  }
  @keyframes chara-drop-sp{
    0%{transform: translateY(-140vw);} /* start above */
    68%{transform: translateY(0);}      /* fast drop */
    84%{transform: translateY(2.8vw);}  /* small dip */
    100%{transform: translateY(0);}     /* settle */
  }
  .head-wrap .head-img .chara-name{
    position: absolute;
    top:5vw;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    z-index: 8;
    position: absolute;
    opacity: 0;
    transition: all 2.5s ease;
  }
  .head-wrap .head-img .chara-name.loaded{
    opacity: 1;
  }
    }


.top-wrap{
  max-width: 1230px;
  margin-left: auto;
  margin-right: auto;
}
.head-copy{
  position: relative;
  z-index: 10;
  padding-top: 108px;
  padding-bottom: 506px;
}
.head-copy-text{
  position: relative;
  z-index: 9;
  max-width: 740px;
  margin-left: auto;
  margin-right: auto;
  width: 86%;
  font-size: 25px;
  line-height: 3.04;
  font-weight: 700;
  color: #505050;
  padding-top: 130px;
}
.head-copy-text p{
  z-index: 10;
  position: relative;
  letter-spacing: 0.2em;
}
.moyo-1{
  position: absolute;
  top: 0px;
  left: -270px;
  width: 270px;
  z-index: 9;
}
.moyo-2{
  position: absolute;
  top: 440px;
  right: -144px;
  width: 144px;
  z-index: 9;
}
.moyo-3{
  position: absolute;
  bottom: 24px;
  left: -194px;
  width: 104px;
  z-index: 9;
}
.head-copy::after{
  content: "";
  position: absolute;
  background: url(../images/top/town-bn.png) no-repeat center bottom / cover;
  width: 100%;
  min-height: 520px;
  height: 38vw;
  bottom: 0;
  left: 0;
  z-index: 8;
}
    @media (max-width:900px) {
      .top-wrap{
        max-width: none;
        width: 86%;
        margin-left: auto;
        margin-right: auto;
      }
      .top-wrap.ex{
        width: 100%;
      }
      .head-copy{
        position: relative;
        z-index: 10;
        padding-top: 11vw;
        padding-bottom: 60vw;
      }
      .head-copy-text{
        position: relative;
        max-width: none;
        margin-left: auto;
        margin-right: auto;
        font-size: 4.3vw;
        line-height: 2.8;
        padding-top: 11vw;
        padding-bottom: 31vw;
      }
      .moyo-1{
        position: absolute;
        top: 0px;
        left: -0px;
        width:43vw;
        z-index: 9;
      }
      .moyo-2{
        position: absolute;
        top: 128vw;
        right: 4vw;
        width: 34vw;
        z-index: 9;
      }
      .moyo-3{
        position: absolute;
        bottom: 0;
        left: -0;
        width: 21vw;
        z-index: 9;
      }
      .head-copy::after{
        content: "";
        position: absolute;
        background: url(../images/top/town-bn-sp.png) no-repeat center bottom / cover;
        width: 100%;
        height: 65vw;
        bottom: 0;
        left: 0;
        z-index: 8;
      }
      .head-copy-text p{
        z-index: 10;
        position: relative;
        letter-spacing: 0.1em;
      }
    }

.sec-box{
  margin-bottom: -190px!important;
  bottom: 190px;
  position: relative;
  z-index: 7;
  padding-top: 328px;
  padding-bottom: 150px;
  background: url(../images/top/ptn-bg.jpg) repeat center center / 1400px;
}
.movie-box{
  position: relative;
  z-index: 10;
}
.movie-ttl{
  max-width: 920px;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 40px;
  text-align: center;
  position: relative;
  z-index: 10;
}
.movie-img{
  position: relative;
  max-width: 750px;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  z-index: 10;
}
.movie-img img{
  width: 100%;
}
.movie-img a{
  display: block;
  opacity: 1!important;
  transition: none!important;
}
.movie-img a:hover img{
  opacity: 1!important;
}
.textwrapper {
  display: flex;
  width: 100%;
  overflow: hidden;
  position: absolute;
  left: 0;
  top: 70%;
  transform: translateY(-50%);
  z-index: 9;
}

.loop_text {
  flex: 0 0 auto;
  white-space: nowrap;
  font-size: 95px;
  overflow: hidden;
  padding-left: 20px;
  color: #1890c4;
  font-weight: 700;
  line-height: 1;
  margin-top: 0!important;
  margin-bottom: 0!important;
  }

.loop_text:nth-child(odd) {
  animation: loop 50s -25s linear infinite;
}

.loop_text:nth-child(even) {
  animation: loop2 50s linear infinite;
}

@keyframes loop {
    0% {
      transform: translateX(100%);
    }
    to {
      transform: translateX(-100%);
    }
}

@keyframes loop2 {
    0% {
      transform: translateX(0);
    }
    to {
      transform: translateX(-200%);
    }
}
    @media (max-width:900px) {
      .sec-box{
        margin-bottom: -7vw;
        bottom: 7vw!important;
        position: relative;
        z-index: 7;
        padding-top: 19vw;
        background: url(../images/top/ptn-bg-sp.jpg) repeat center center / 100%;
      }
      .movie-box{
        position: relative;
        z-index: 10;
      }
      .movie-ttl{
        max-width: 920px;
        width: 90%;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 2.4vw;
        text-align: center;
        position: relative;
        z-index: 10;
      }
      .movie-img{
        position: relative;
        max-width: 750px;
        width: 90%;
        margin-left: auto;
        margin-right: auto;
        z-index: 10;
      }
      .movie-img img{
        width: 100%;
      }
      .textwrapper {
        display: flex;
        width: 100%;
        overflow: hidden;
        position: relative;
        margin-top: 6vw;
        left: 0;
        top: auto;
        transform: translateY(-0%);
        z-index: 9;
      }
      
      .loop_text {
        flex: 0 0 auto;
        white-space: nowrap;
        font-size: 10.3vw;
        overflow: hidden;
        padding-left: 20px;
        font-weight: 700;
        }
      
      .loop_text:nth-child(odd) {
        animation: loop 50s -25s linear infinite;
      }
      
      .loop_text:nth-child(even) {
        animation: loop2 50s linear infinite;
      }
    }

.position{
  position: relative;
}
.about-box{
  margin-top: 550px;
  margin-bottom: 260px;
  padding-top: 360px;
  padding-bottom: 10px;
  background: #daedf3;;
  position: relative;
}
.about-box::before{
  content: "";
  position: absolute;
  background: url(../images/top/bg-01.png) no-repeat center top / cover;
  width: 100%;
  height: 256px;
  top:-256px;
  left: 0;
  z-index: 9;
}
.about-box::after{
  content: "";
  position: absolute;
  background: #daedf3;;
  background: url(../images/top/bg-02.png) no-repeat center bottom / cover;
  width: 100%;
  height: 256px;
  bottom: -256px;
  left: 0;
  z-index: 9;
}
.en-ttl{
  font-size: 120px;
  line-height: 1;
  font-weight: 700;
  margin-bottom: 15px;
}
.jp-ttl{
  margin-top: 0;
}
.jp-ttl span{
  display: inline-block;
  font-size: 26px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.1em;
}
.about-ttl{
  position: absolute;
  top: -328px;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  z-index: 10;
}
.about-img{
  width: 500px;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  display: block;
  z-index: 8;
}
.about-ttl .ttl-box{
  position: absolute;
  top: 60%;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  transform: translateY(-50%);
  text-align: center;
  z-index: 9;
}
.about-ttl .ttl-box .en-ttl{
  color: #004e90;
}
.about-ttl .ttl-box .jp-ttl span{
  color: #004e90;
}
.about-link{
  display: flex;
  justify-content: space-between;
  position: relative;
}
.about-link.ptn2{
  flex-direction: row-reverse;
}
.about-linktext{
  width: 63%;
}
.about-bgbox{
  background: #004e90;
  padding-top: 67px;
  padding-bottom: 58px;
  color: #fff;
  position: relative;
  z-index: 7;
}
.about-bgbox .link-ttl{
  font-size: 40px;
  line-height: 1;
  font-weight: 700;
  margin-bottom: 33px;
}
.about-bgbox .link-ttl span{
  font-size: 70px;
}
.about-bgbox .link-mes{
  font-size: 22px;
  line-height: 2;
  margin-bottom: 55px;
}
.about-bgbox.odd{
  padding-left: 200%;
  margin-left: -200%;
  border-radius: 0 300px 300px 0;
}
.about-bgbox.odd .link-wrap{
  padding-left: 27%;
}
.about-link.ptn1{
  padding-bottom: 180px;
}
.about-linklist li{
  margin-bottom: 16px;
}
.about-linklist li:last-child{
  margin-bottom: 0;
}
.about-linklist li a{
  color: #fff;
  font-size:18px;
  font-weight: 600;
  padding-left: 45px;
  position: relative;
  display: inline-block;
  text-decoration: none;
  letter-spacing: 0.1em;
}
.about-linklist li a::before{
  content: "";
  background: url(../images/top/icon-01.png) no-repeat center center / cover;
  width: 36px;
  height: 36px;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
.about-bgbox.even{
  padding-right: 200%;
  margin-right: -200%;
  border-radius: 300px 0 0 300px;
}
.about-bgbox.even .link-wrap{
  padding-left: 27%;
}
.about-pic.ptn1{
  position: absolute;
  bottom: 85px;
  width: 58%;
  right: -5%;
  z-index: 9;
}
.about-pic.ptn1 .chara-imgex{
  position: absolute;
  top: -155px;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  z-index: 9;
  width: 262px;
}
.textwrapper2 {
  display: flex;
  width: 100%;
  overflow: hidden;
  z-index: 9;
  margin-bottom: 80px;
}

.loop_text2 {
  flex: 0 0 auto;
  white-space: nowrap;
  font-size: 75px;
  overflow: hidden;
  padding-left: 20px;
  color: #1890c4;
  font-weight: 900;
  line-height: 1;
  margin-top: 0!important;
  margin-bottom: 0!important;
  }
.about-link.ptn2{
  padding-bottom: 130px;
}
  .about-pic.ptn2{
    position: absolute;
    bottom: 0px;
    width: 58%;
    left: -5%;
    z-index: 9;
  }
  .about-pic.ptn2 .chara-imgex{
    position: absolute;
    top: -180px;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    z-index: 9;
    width: 374px;
  }
.loop_text2:nth-child(odd) {
  animation: loop3 50s -25s linear infinite;
}

.loop_text2:nth-child(even) {
  animation: loop4 50s linear infinite;
}

@keyframes loop3 {
    0% {
      transform: translateX(100%);
    }
    to {
      transform: translateX(-100%);
    }
}

@keyframes loop4 {
    0% {
      transform: translateX(0);
    }
    to {
      transform: translateX(-200%);
    }
}
@media (max-width:900px) {

  .about-box{
    margin-top:46vw;
    margin-bottom: 37vw;
    padding-top: 86vw;
    padding-bottom: 24vw;
    position: relative;
  }
  .about-box::before{
    content: "";
    position: absolute;
    background: url(../images/top/bg-01.png) no-repeat center top / cover;
    width: 100%;
    height: 18vw;
    top:-18vw;
    left: 0;
    z-index: 9;
  }
  .about-box::after{
    content: "";
    position: absolute;
    background: url(../images/top/bg-02.png) no-repeat center bottom / cover;
    width: 100%;
    height: 18vw;
    bottom: -18vw;
    left: 0;
    z-index: 9;
  }
  .en-ttl{
    font-size: 15vw;
    line-height: 1;
    font-weight: 700;
    margin-bottom: 1.5vw;
  }
  .jp-ttl span{
    font-size: 4.3vw;
    line-height: 1;
  }
  .about-ttl{
    position: absolute;
    top: -14vw;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    z-index: 10;
  }
  .about-img{
    width: 70vw;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    display: block;
    z-index: 8;
  }
  .about-ttl .ttl-box{
    position: absolute;
    top: 60%;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    transform: translateY(-50%);
    text-align: center;
    z-index: 9;
  }
  .about-link{
    display: flex;
    justify-content: space-between;
    position: relative;
  }
  .about-link.ptn2{
    flex-direction: row-reverse;
  }
  .about-linktext{
    width: 100%;
  }
  .about-bgbox{
    padding-top: 12vw;
    padding-bottom: 10vw;
    position: relative;
    z-index: 7;
  }
  .about-bgbox .link-ttl{
    font-size: 7.7vw;
    line-height: 1;
    font-weight: 700;
    margin-bottom: 5.3vw;
  }
  .about-bgbox .link-ttl span{
    font-size: 13.5vw;
  }
  .about-bgbox .link-mes{
    font-size: 4.5vw;
    line-height: 1.83;
    margin-bottom:9.6vw;
  }
  .about-bgbox.odd{
    padding-left: 200%;
    margin-left: -200%;
    border-radius: 0 40vw 40vw 0;
    margin-right: -8vw;
    padding-right: 8vw;
  }
  .about-bgbox.odd .link-wrap{
    padding-left: 6vw;
  }
  .about-link.ptn1{
    padding-bottom: 53vw;
  }
  .about-linklist li{
    margin-bottom: 6.2vw;
  }
  .about-linklist li:last-child{
    margin-bottom: 0;
  }
  .about-linklist li a{
    font-size:3.8vw;
    padding-left: 9.6vw;
    position: relative;
    display: inline-block;
    text-decoration: none;
  }
  .about-linklist li a::before{
    content: "";
    background: url(../images/top/icon-01.png) no-repeat center center / cover;
    width: 7vw;
    height: 7vw;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
  }
  .about-box .top-wrap{
    width: 100%;
  }
  .about-bgbox.even{
    padding-left: 200%;
    margin-left: -200%;
    border-radius: 0 40vw 40vw 0;
    margin-right: -8vw;
    padding-right: 8vw;
  }
  .about-bgbox.even .link-wrap{
    padding-left: 6vw;
  }
  .about-pic.ptn1{
    position: absolute;
    bottom: 0px;
    width: 98%;
    right: -10vw;
    z-index: 9;
  }
  .about-pic.ptn1 .chara-imgex{
    position: absolute;
    top: -38vw;
    left: 0;
    right: -18vw;
    margin-left: auto;
    margin-right: 0;
    z-index: 9;
    width: 28vw;
  }
  .textwrapper2 {
    display: flex;
    width: 100%;
    overflow: hidden;
    z-index: 9;
    margin-bottom: 13vw;
    margin-top: 13vw;
  }
  
  .loop_text2 {
    flex: 0 0 auto;
    white-space: nowrap;
    font-size:11vw;
    overflow: hidden;
    padding-left: 2.5vw;
    color: #1890c4;
    font-weight: 900;
    line-height: 1;
    margin-bottom: 0;
    margin-top: 0;
    }
    .about-link.ptn2{
      padding-bottom: 53vw;
    }
    .about-pic.ptn2{
      left: auto;
      position: absolute;
      bottom: 0px;
      width: 98%;
      right: -10vw;
      z-index: 9;
    }
    .about-pic.ptn2 .chara-imgex{
      position: absolute;
      top: -38vw;
      left: 0;
      right: -18vw;
      margin-left: auto;
      margin-right: 0;
      z-index: 9;
      width: 28vw;
    }
}
.top-wrap{
  width: 90%;
}
.top-wrap.ex{
  max-width: 1000px;
}
.per-box{
  padding-top: 150px;
}
.per-wrap{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding-bottom: 95px;
}
.human-bg{
  background: #fff;;
  padding-top: 115px;
  padding-bottom: 180px;
}
.per-wrap .img-box{
  width: 31.7%;
}
.per-wrap .per-text{
  width: 65%;
  text-align: right;
}
.per-wrap .per-text .en-ttl{
  color: #1890c4;
}
.per-wrap .per-text .jp-ttl span{
  color: #1890c4;
}
.ttl-flex{
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.ttl-textbox{
  width: calc(100% - 320px);
}
.ttl-textbox .en-ttl2{
  color: #daedf3;
  text-indent: -90px;
  font-size: 100px;
  line-height: 0.8;
  font-weight: 700;
  position: relative;
  z-index: 2;
  margin-bottom: 0;
  margin-top: 0;
}
.ttl-textbox .jp-ttl2{
  color: #1890c4;
  font-size: 50px;
  line-height: 1;
  font-weight: 700;
  margin-top: 0;
  margin-bottom: -18px;
  bottom: 18px;
  position: relative;
  z-index: 3;
}
.ttl-textbox .sub-text{
  font-size: 22px;
  line-height: 1.8;
  font-weight: 700;
  margin-top: 35px;
  color: #1890c4;
}
.link-btn{
  width: 300px;
}
.link-btn a{
  display: block;
  border: 1px solid #1890c4;
  padding: 14px 0px 12px;
  border-radius: 50px;
  text-align: center;
  font-weight: 700;
  background: #fff;
}
.link-btn a span{
  position: relative;
  display: inline-block;
  font-size: 20px;
  line-height: 1;
  color: #1890c4;
}
.link-btn a span::before{
  content: "";
  background: url(../images/top/icon-02.png) no-repeat center center / cover;
  width: 36px;
  height: 36px;
  display: inline-block;
  vertical-align: middle;
  margin-right: 15px;
  margin-top: -7px;
}
.human-slide{
  margin-top: 132px;
  margin-bottom: 150px;
  position: relative;
}
.slick-prev{
  position: absolute;
  left: -74px;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
}
.slick-next{
  position: absolute;
  right: -74px;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
}
.human-slide .pic{
  margin-bottom: 16px;
}
.human-slide .int-copy{
  font-size: 22px;
  line-height: 1.65;
  font-weight: 700;
  margin-bottom: 16px;
  color: #004e90;
  text-align: center;
}
.human-slide .int-copy.ptn2{
  color: #1890c4;
}
.int-name{
  font-size: 13px;
  line-height: 1.65;
  margin-bottom: 20px;
  text-align: center;
  font-weight: 500;
}
.link-text span{
  display: block;
  padding-bottom: 7px;
  font-size: 16px;
  line-height: 1;
  font-weight: 700;
  color: #004e90;
  text-align: center;
  text-decoration: none;
  background: url(../images/top/yajirushi-01.png) no-repeat right bottom / contain;
}
.link-text.ptn2 span{
  color: #1890c4;
  background: url(../images/top/yajirushi-02.png) no-repeat right bottom / contain;
}
.human-slide li{
  padding-left: 28px;
  padding-right: 28px;
}
.human-slide li a{
  text-decoration: none;
}
.cross-list{
  margin-top: 70px;
}
.cross-list li{
  margin-bottom: 30px;
  position: relative;
}
.cross-list li:last-child{
  margin-bottom: 0;
}
.cross-img{
  width: 100%;
  position: relative;
  z-index: 9;
}
.cross-textbox{
  position: absolute;
  top: 50%;
  width: 100%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  z-index: 10;
}
.cross-imgtext{
  width: 210px;
  margin-bottom: 20px;
  margin-left: auto;
  margin-right: auto;
}
.cross-ttl{
  font-size: 30px;
  line-height: 1.65;
  font-weight: 700;
  margin-bottom: 20px;
  color: #fff;
  text-align: center;
}
.cross-text{
  font-size: 18px;
  line-height: 1.65;
  font-weight: 500;
  color: #fff;
  text-align: center;
}
.cross-link{
  position: absolute;
  bottom: 24px;
  right: 24px;
  z-index: 11;
  width: 160px;
}
.cross-link span{
  display: block;
  padding-bottom: 10px;
  color: #fff;
  text-decoration: none;
  font-size: 16px;
  line-height: 1;
  font-weight: 700;
  background: url(../images/top/yajirushi-03.png) no-repeat right bottom / contain;
}
@media (max-width:1030px) {
  .human-slide .int-copy{
    font-size: 18px;
  }
  .slick-prev{
    left: -5px;
  }
  .slick-next{
    right: -5px;
  }
  .ttl-textbox .en-ttl2{
    text-indent: -45px;
    font-size: 80px;
  }
}
@media (max-width:900px) {
  .top-wrap{
    width: 90%;
  }
  .top-wrap.ex{
    max-width: 1000px;
    width: 86%;
    margin-left: auto;
    margin-right: auto;
  }
  .per-box{
    padding-top:22vw;
  }
  .per-wrap{
    display: block;
    padding-bottom:14vw;
  }
  .per-wrap .img-box{
    width:62%;
    margin-left: 29%;
    padding-bottom:7vw;
  }
  .per-wrap .per-text{
    width: 100%;
  }
  .ttl-flex{
    display: block;
  }
  .ttl-textbox{
    width: 100%;
  }
  .ttl-textbox .en-ttl2{
    text-indent: 0px;
    font-size: 13vw;
    line-height: 0.8;
    font-weight: 700;
    position: relative;
    z-index: 2;
    margin-bottom: 0;
    margin-top: 0;
  }
  .jp-ttl{
    margin-top: 0;
  }
  .ttl-textbox .jp-ttl2{
    font-size:6.7vw;
    line-height: 1;
    padding-left: 2vw;
    font-weight: 700;
    margin-top: 0;
    margin-bottom: -3vw;
    bottom: 3vw;
    position: relative;
    z-index: 3;
  }
  .ttl-textbox .sub-text{
    font-size: 4.3vw;
    line-height: 1.8;
    font-weight: 700;
    margin-top: 7vw;
  }
  .link-btn{
    width: 66%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 15vw;
    margin-bottom: 24vw;
  }
  .link-btn.last{
    margin-bottom: 0;
    padding-bottom: 4vw;
  }
  .link-btn a{
    display: block;
    padding: 2.4vw 0px;
    border-radius: 10vw;
    text-align: center;
    font-weight: 700;
    border: 1px solid #1890c4;
  }
  .link-btn a span{
    position: relative;
    display: inline-block;
    font-size: 3.3vw;
    line-height: 1;
  }
  .link-btn a span::before{
    content: "";
    background: url(../images/top/icon-02.png) no-repeat center center / cover;
    width: 6vw;
    height: 6vw;
    display: inline-block;
    vertical-align: middle;
    margin-right: 2.5vw;
    margin-top: -1vw;
  }
  .human-slide{
    margin-top:7.2vw;
    margin-bottom: 15vw;
    position: relative;
    width: 116%;
    margin-left: -8%;
    margin-right: -8%;
  }
  .slick-prev{
    position: absolute;
    left: 6vw;
    top: 50%;
    transform: translateY(-50%);
    width: 10vw;
  }
  .slick-next{
    position: absolute;
    right: 6vw;
    top: 50%;
    transform: translateY(-50%);
    width: 10vw;
  }
  .human-slide .pic{
    margin-bottom: 16px;
  }
  .human-slide .int-copy{
    font-size: 4.0vw;
    line-height: 1.65;
    font-weight: 700;
    margin-bottom:3.5vw;
  }
  .int-name{
    font-size: 3.1vw;
    line-height: 1.65;
    margin-bottom: 4.3vw;
    text-align: center;
  }
  .link-text span{
    display: block;
    padding-bottom:1.6vw;
    font-size: 3.1vw;
  }
  .human-slide li{
    padding-left: 5vw;
    padding-right: 5vw;
  }
  .cross-list{
    margin-top: 70px;
  }
  .cross-list li{
    margin-bottom: 30px;
    position: relative;
  }
  .cross-list li:last-child{
    margin-bottom: 0;
  }
  .cross-img{
    width: 100%;
    position: relative;
    z-index: 9;
  }
  .cross-textbox{
    position: absolute;
    top: 50%;
    width: 100%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    z-index: 10;
  }
  .cross-imgtext{
    width:35vw;
    margin-bottom: 3.6vw;
    margin-left: auto;
    margin-right: auto;
  }
  .cross-ttl{
    font-size:5.8vw;
    margin-bottom: 1.2vw;
    text-align: center;
  }
  .cross-text{
    font-size: 3.3vw;
    line-height: 1.45;
    font-weight: 500;
  }
  .cross-link{
    position: absolute;
    bottom: 5vw;
    right: 5vw;
    z-index: 11;
    width: 31vw;
  }
  .cpan{
    display: block;
    padding-bottom: 2vw;
    font-size: 3.1vw;
    line-height: 1;
    background: url(../images/top/yajirushi-03.png) no-repeat right bottom / contain;
    color: #fff;
    text-decoration: none;
    font-weight: 700;
  }
  .human-bg{
    background: #fff;;
    padding-top: 15vw;
    padding-bottom: 21vw;
  }
}


.sup-box{
  padding-top: 140px;
  position: relative;
}
.sup-box .scroll-infinity{
  position: relative;
  z-index: 4;
}
.sup-wrap{
  position: absolute;
  top: 60%;
  width: 100%;
  max-width: 810px;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  transform: translateY(-50%);
  z-index: 10;
}
.scroll-infinity__item.ptn2{
  width: 620px;
}
.sup-box .bg-box1{
  margin-left: 10px;
  margin-right: -200%;
  padding-right: 200%;
  padding-top: 94px;
  padding-bottom: 94px;
  color: #fff;
  border-radius: 300px 0 0 300px;
  background: #004e90;
  position: relative;
  z-index: 9;
}
.sup-box .bg-box1 > div{
  text-align: right;
  width: 100%;
  max-width: 776px;
}
.sup-box .bg-box1 .jp-ttl span{
  color: #fff;
}
.sup-box .bg-box1 .sub-text{
  margin-top: 30px;
  font-size: 24px;
}
.sup-box .bg-box2{
  padding-left: 34px;
  margin-right: -200%;
  padding-right: 200%;
  padding-top: 40px;
  padding-bottom: 40px;
  color: #fff;
  border-radius: 300px 0 0 300px;
  background: #1890c4;
  position: relative;
  z-index: 10;
  margin-bottom: -55px;
  bottom: 55px;
}
.sup-box .bg-box2 .flex{
  display: flex;
  justify-content: space-between;
}
.sup-box .bg-box2 .box{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}
.sup-box .bg-box2 .box:nth-child(1){
  width: 44%;
}
.sup-box .bg-box2 .box:nth-child(2){
  width: 54%;
}
.sup-box .bg-box2 .box-img{
  width: 168px;
}
.sup-box .bg-box2 .box-text{
  width: calc(100% - 180px);
}
.sup-box .bg-box2 .box .box-ttl{
  font-size: 26px;
  line-height: 1.42;
  font-weight: 700;
  margin-bottom: 28px;
}
.sup-box .bg-box2 .box .box-ttl.ptn2{
  margin-bottom: 16px;
}
.sup-box .bg-box2 .box .box-link a{
  display: inline-block;
  padding-left: 50px;
  position: relative;
  text-decoration: none;
  font-size: 18px;
}
.sup-box .bg-box2 .box .box-link a::before{
  content: "";
  background: url(../images/top/icon-03.png) no-repeat center center / cover;
  width: 40px;
  height: 40px;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
@media (max-width:900px) {
  .scroll-box{
    margin-bottom: -19vw!important;
    bottom: 19vw!important;
    position: relative;
  }
  .sup-box{
    padding-top: 20vw;
    position: relative;
  }
  .sup-box .scroll-infinity{
    position: relative;
    z-index: 4;
  }
  .sup-wrap{
    position: relative;
    top: auto;
    width: 100%;
    max-width: none;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    transform: none;
    z-index: 10;
  }
  .scroll-infinity__item.ptn2{
    width: 62vw;
  }
  .sup-box .bg-box1{
    margin-left: -8%;
    margin-right: -8%;
    width: 116%;
    padding-top: 20vw;
    padding-bottom: 30vw;
    border-radius: 0px 0 0 0px;
    padding-left: 6vw;
    padding-right: 6vw;
    position: relative;
    z-index: 9;
  }
  .sup-box .bg-box1 > div{
    width: 100%;
    max-width: none;
  }
  .sup-box .bg-box1 .sub-text{
    margin-top: 8.4vw;
    font-size: 4.3vw;
    line-height: 1.83;
  }
  .sup-box .bg-box2{
    padding-left: 6vw;
    margin-right: -200%;
    padding-right: 200%;
    padding-top: 6vw;
    padding-bottom: 6vw;
    border-radius: 0px 0 0 0px;
    position: relative;
    border-radius: 50vw 0 0 50vw;
    z-index: 10;
    margin-bottom: -19vw;
    bottom: 19vw;
  }
  .sup-box .bg-box2.ptn2{
    margin-top: 4.3vw;
    margin-bottom: 10vw;
    bottom: 0;
  }
  .sup-box .bg-box2 .flex{
    display: block;
    justify-content: space-between;
  }
  .sup-box .bg-box2 .box.pc-only{
    display: none;
  }
  .sup-box .bg-box2 .box:nth-child(1){
    width: 100%;
  }
  .sup-box .bg-box2 .box:nth-child(2){
    width: 100%;
  }
  .sup-box .bg-box2 .box-img{
    width: 34vw;
  }
  .sup-box .bg-box2 .box-text{
    width: calc(100% - 36vw);
  }
  .sup-box .bg-box2 .box .box-ttl{
    margin-bottom: 8vw;
    font-size: 5.2vw;
    line-height: 1.42;
    font-weight: 900;
  }
  .sup-box .bg-box2 .box .box-ttl.ptn2{
    margin-bottom: 5.3vw;
  }
  .sup-box .bg-box2 .box .box-link a{
    display: inline-block;
    padding-left: 8.7vw;
    position: relative;
    text-decoration: none;
    font-size: 3.3vw;
  }
  .sup-box .bg-box2 .box .box-link a::before{
    content: "";
    background: url(../images/top/icon-03.png) no-repeat center center / cover;
    width: 6.7vw;
    height: 6.7vw;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
  }
}