:root {
  --in-sine: cubic-bezier(.47, 0, .745, .715);
  --out-sine: cubic-bezier(.39, .575, .565, 1);
  --in-out-sine: cubic-bezier(.445, .05, .55, .95);
  --in-quad: cubic-bezier(.55, .085, .68, .53);
  --out-quad: cubic-bezier(.25, .46, .45, .94);
  --in-out-quad: cubic-bezier(.455, .03, .515, .955);
  --in-cubic: cubic-bezier(.55, .055, .675, .19);
  --out-cubic: cubic-bezier(.215, .61, .355, 1);
  --in-out-cubic: cubic-bezier(.645, .045, .355, 1);
  --in-quart: cubic-bezier(.895, .03, .685, .22);
  --out-quart: cubic-bezier(.165, .84, .44, 1);
  --in-out-quart: cubic-bezier(.77, 0, .175, 1);
  --in-quint: cubic-bezier(.755, .05, .855, .06);
  --out-quint: cubic-bezier(.23, 1, .32, 1);
  --in-out-quint: cubic-bezier(.86, 0, .07, 1);
  --in-expo: cubic-bezier(.95, .05, .795, .035);
  --out-expo: cubic-bezier(.19, 1, .22, 1);
  --in-out-expo: cubic-bezier(1, 0, 0, 1);
  --in-circ: cubic-bezier(.6, .04, .98, .335);
  --out-circ: cubic-bezier(.075, .82, .165, 1);
  --in-out-circ: cubic-bezier(.785, .135, .15, .86);
  --in-back: cubic-bezier(.6, -.28, .735, .045);
  --out-back: cubic-bezier(.175, .885, .32, 1.275);
  --in-out-back: cubic-bezier(.68, -.55, .265, 1.55);
}

.l-content {
  overflow: visible;
  width: 100%;
  max-width: none;
  overflow: hidden;
  padding-bottom: 0;
}

.l-bg_text {
  display: none;
}
.p-intro_main .l-bg_text {
  width: auto;
  display: block;
}
.is-foot .p-intro_main .l-bg_text {
  position: absolute;
}

.p-intro {
  position: relative;
  padding-top: 0.7rem;
}
@media screen and (max-width: 899px) {
  .p-intro {
    padding-top: 0;
    margin-top: -0.7rem;
  }
}

.p-intro_main {
  position: relative;
  padding-bottom: 13.9rem;
  z-index: 1;
}
@media screen and (max-width: 899px) {
  .p-intro_main {
    padding-bottom: 6.6rem;
  }
}
.p-intro_main__inner {
  padding: 0 5%;
}
.p-intro_main__deco {
  pointer-events: none;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: 100%;
}
@media screen and (min-width: 1930px) {
  .p-intro_main__deco {
    max-width: 1800px;
  }
}
.p-intro_main__deco-item {
  position: absolute;
  transform: translateY(45px);
  opacity: 0;
}
@media screen and (max-width: 899px) {
  .p-intro_main__deco-item .p-in_img {
    transition: transform 1s cubic-bezier(0.33, 1, 0.68, 1);
  }
}
.is-load .p-intro_main__deco-item {
  opacity: 1;
  transform: translateY(0);
  transition: transform 1.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 1s cubic-bezier(0.25, 1, 0.5, 1);
}
.is-load .p-intro_main__deco-item:nth-child(1) {
  transition-delay: 0.4s;
}
.is-load .p-intro_main__deco-item:nth-child(2) {
  transition-delay: 0.58s;
}
.is-load .p-intro_main__deco-item:nth-child(3) {
  transition-delay: 0.76s;
}
.is-load .p-intro_main__deco-item:nth-child(4) {
  transition-delay: 0.94s;
}
.p-intro_main__deco-item:nth-child(1) {
  top: -11%;
  left: 7%;
  width: 13%;
}
@media screen and (max-width: 899px) {
  .p-intro_main__deco-item:nth-child(1) {
    top: -5%;
    left: -5%;
    width: 23%;
  }
}
.p-intro_main__deco-item:nth-child(2) {
  top: 2%;
  right: -3.5%;
  width: 20.5%;
}
@media screen and (max-width: 899px) {
  .p-intro_main__deco-item:nth-child(2) {
    top: 7%;
    right: -12.5%;
    width: 31.5%;
  }
}
.p-intro_main__deco-item:nth-child(3) {
  top: 17.6%;
  left: -4.5%;
  width: 21.8%;
}
@media screen and (max-width: 899px) {
  .p-intro_main__deco-item:nth-child(3) {
    top: 14.5%;
    left: -8.5%;
    width: 32.8%;
  }
}
.p-intro_main__deco-item:nth-child(4) {
  bottom: -3.5%;
  right: 6%;
  width: 13.3%;
}
@media screen and (max-width: 899px) {
  .p-intro_main__deco-item:nth-child(4) {
    bottom: -1.5%;
    right: 2%;
    width: 22.3%;
  }
}
.p-intro_main__ttl {
  text-align: center;
  font-weight: 700;
  font-size: 3.1rem;
  line-height: 1.55;
  letter-spacing: 0.1rem;
  margin-bottom: 3.7rem;
  transform: translateY(30px);
  opacity: 0;
}
.is-load .p-intro_main__ttl {
  opacity: 1;
  transform: translateY(0);
  transition: transform 1.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 1s cubic-bezier(0.25, 1, 0.5, 1);
  transition-delay: 0.4s;
}
@media screen and (max-width: 899px) {
  .p-intro_main__ttl {
    font-size: 1.8rem;
    margin-bottom: 2.1rem;
  }
}
.p-intro_main__text {
  text-align: center;
  line-height: 2.1;
  letter-spacing: 0.5px;
}
@media screen and (max-width: 899px) {
  .p-intro_main__text {
    line-height: 2;
    font-size: 1.3rem;
  }
}
.p-intro_main__text-item {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  transform: translateY(35px);
  opacity: 0;
}
.is-load .p-intro_main__text-item {
  opacity: 1;
  transform: translateY(0);
  transition: transform 1.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 1.2s cubic-bezier(0.25, 1, 0.5, 1);
}
.is-load .p-intro_main__text-item:nth-child(1) {
  transition-delay: 0.7s;
}
.is-load .p-intro_main__text-item:nth-child(2) {
  transition-delay: 0.9s;
}
.is-load .p-intro_main__text-item:nth-child(3) {
  transition-delay: 1.1s;
}
.p-intro_main__text-item.is-grad {
  background: linear-gradient(90deg, #e9578b 0%, #e6885e 50%, #e9578b 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.p-intro_main__text-item + .p-intro_main__text-item {
  margin-top: 2.5rem;
}
@media screen and (max-width: 899px) {
  .p-intro_main__text-item + .p-intro_main__text-item {
    margin-top: 1.5rem;
  }
}
.p-intro_main__foot {
  text-align: center;
  margin-top: 4.5rem;
  font-size: 2.4rem;
  line-height: 1.6;
  letter-spacing: -0.05rem;
  transform: translateY(30px);
  opacity: 0;
}
.p-intro_main__foot.is-active {
  opacity: 1;
  transform: translateY(0);
  transition: transform 1.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 1s cubic-bezier(0.25, 1, 0.5, 1);
  transition-delay: 0.1s;
}
@media screen and (max-width: 899px) {
  .p-intro_main__foot {
    line-height: 1.8;
    margin-top: 3.1rem;
    font-size: 1.5rem;
  }
}
.p-intro_main__foot-item + .p-intro_main__foot-item {
  margin-top: 1.8rem;
}
@media screen and (max-width: 899px) {
  .p-intro_main__foot-item + .p-intro_main__foot-item {
    margin-top: 1.1rem;
  }
}

.p-intro_info {
  position: relative;
}
.p-intro_info__bg {
  pointer-events: none;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 100%;
  background-color: #000;
  display: flex;
  overflow: hidden;
}
.p-intro_info__bg::after {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: #000;
  opacity: 0.8;
}
.p-intro_info__bg-item {
  width: 33.33%;
  height: 100%;
  overflow: hidden;
}
@media screen and (max-width: 899px) {
  .p-intro_info__bg-item {
    width: 50%;
  }
}
.is-load .p-intro_info__bg-item .p-intro_info__bg-list {
  animation: loop_vertical 55s linear infinite reverse;
}
.is-load .p-intro_info__bg-item:nth-child(2) .p-intro_info__bg-list {
  animation: loop_vertical 55s linear infinite;
}
@media screen and (max-width: 899px) {
  .p-intro_info__bg-item:nth-child(3) {
    display: none;
  }
}
.p-intro_info__bg-list {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.p-intro_info__content {
  position: relative;
  padding: 12.5rem 0 14.4rem;
  width: 90%;
  max-width: 1160px;
  margin: 0 auto;
}
@media screen and (max-width: 899px) {
  .p-intro_info__content {
    padding: 7.3rem 0 7.1rem;
  }
}
.p-intro_info__box + .p-intro_info__box {
  margin-top: 6.3rem;
  padding-top: 5.3rem;
  position: relative;
}
@media screen and (max-width: 899px) {
  .p-intro_info__box + .p-intro_info__box {
    margin-top: 3.4rem;
    padding-top: 3.6rem;
  }
}
.p-intro_info__box + .p-intro_info__box::before {
  content: "";
  width: 100%;
  height: 5px;
  position: absolute;
  top: 0;
  left: 0;
  background: url(../img/common/deco_ttl.svg) no-repeat center center;
  background-size: contain;
}
@media screen and (max-width: 899px) {
  .p-intro_info__box + .p-intro_info__box::before {
    height: 4px;
  }
}
.p-intro_info__ttl {
  text-align: center;
  background: linear-gradient(90deg, #e9578b 0%, #e6885e 50%, #e9578b 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto 20px;
  font-weight: 700;
  font-size: 3.2rem;
  line-height: 1.45;
  transform: translateY(30px);
  opacity: 0;
}
.p-intro_info__box.is-active .p-intro_info__ttl {
  opacity: 1;
  transform: translateY(0);
  transition: transform 1.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 1s cubic-bezier(0.25, 1, 0.5, 1);
}
@media screen and (max-width: 899px) {
  .p-intro_info__ttl {
    font-size: 23px;
    margin: 0 auto 22px;
  }
}
.p-intro_info__ttl .is-small {
  font-size: 2.1rem;
}
@media screen and (max-width: 899px) {
  .p-intro_info__ttl .is-small {
    font-size: 15px;
  }
}
.p-intro_info__text {
  color: #fff;
  text-align: center;
  line-height: 2.1;
  transform: translateY(30px);
  opacity: 0;
}
.p-intro_info__box.is-active .p-intro_info__text {
  opacity: 1;
  transform: translateY(0);
  transition: transform 1.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 1s cubic-bezier(0.25, 1, 0.5, 1);
  transition-delay: 0.3s;
}
@media screen and (max-width: 899px) {
  .p-intro_info__text {
    line-height: 1.8;
    text-align: left;
    font-size: 12.5px;
    letter-spacing: 0.1rem;
  }
}
.p-intro_info__text-item + .p-intro_info__text-item {
  margin-top: 0.9rem;
}
@media screen and (max-width: 899px) {
  .p-intro_info__text-item + .p-intro_info__text-item {
    margin-top: 1.3rem;
  }
}
.p-intro_info__text-item.is-large {
  font-size: 2.4rem;
}
@media screen and (max-width: 899px) {
  .p-intro_info__text-item.is-large {
    font-size: 1.6rem;
    line-height: 1.7;
  }
}
.p-intro_info__thumbs {
  display: flex;
  flex-wrap: wrap;
  margin: 0 auto;
  width: 92%;
  margin-top: 33px;
}
@media screen and (max-width: 899px) {
  .p-intro_info__thumbs {
    width: 99%;
    margin-top: 23px;
  }
}
.p-intro_info__thumbs-item {
  width: 24%;
  margin-right: 1.33%;
  transform: translateY(35px);
  opacity: 0;
}
.p-intro_info__thumbs-item:last-of-type {
  margin-right: 0;
}
.p-intro_info__box.is-active .p-intro_info__thumbs-item {
  opacity: 1;
  transform: translateY(0);
  transition: transform 1.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 1s cubic-bezier(0.25, 1, 0.5, 1);
}
.p-intro_info__box.is-active .p-intro_info__thumbs-item:nth-child(1) {
  transition-delay: 0.5s;
}
.p-intro_info__box.is-active .p-intro_info__thumbs-item:nth-child(2) {
  transition-delay: 0.68s;
}
.p-intro_info__box.is-active .p-intro_info__thumbs-item:nth-child(3) {
  transition-delay: 0.86s;
}
.p-intro_info__box.is-active .p-intro_info__thumbs-item:nth-child(4) {
  transition-delay: 1.04s;
}
@media screen and (max-width: 899px) {
  .p-intro_info__thumbs-item {
    width: 48.5%;
    margin-bottom: 3%;
    margin-right: 3%;
  }
  .p-intro_info__thumbs-item:nth-child(2n) {
    margin-right: 0;
  }
}

.p-intro_route {
  text-align: center;
  margin-top: 50px;
  position: relative;
  padding-top: 64px;
}
@media screen and (max-width: 899px) {
  .p-intro_route {
    margin-top: 33px;
    padding-top: 36px;
  }
}
.p-intro_route::before {
  content: "";
  width: 100%;
  height: 5px;
  position: absolute;
  top: 0;
  left: 0;
  background: url(../img/common/deco_ttl.svg) no-repeat center center;
  background-size: contain;
}
@media screen and (max-width: 899px) {
  .p-intro_route::before {
    height: 4px;
  }
}
.p-intro_route__head {
  position: relative;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  padding: 0 10%;
}
@media screen and (max-width: 899px) {
  .p-intro_route__head {
    width: 100%;
  }
}
.p-intro_route__head-ttl {
  font-size: 3.4rem;
  letter-spacing: 0.5px;
  position: relative;
  margin-bottom: 29px;
  font-weight: 700;
  transform: translateY(25px);
  opacity: 0;
}
.p-intro_route.is-active .p-intro_route__head-ttl {
  opacity: 1;
  transform: translateY(0);
  transition: transform 1.2s cubic-bezier(0.25, 1, 0.5, 1), opacity 1s cubic-bezier(0.25, 1, 0.5, 1);
}
@media screen and (max-width: 899px) {
  .p-intro_route__head-ttl {
    line-height: 1.4;
    font-size: 24px;
    margin-bottom: 15px;
  }
}
.p-intro_route__head-label {
  position: absolute;
  top: -85%;
  right: 0;
  transform: translateY(-50%);
  width: 20%;
}
@media screen and (max-width: 899px) {
  .p-intro_route__head-label {
    top: 24%;
    width: 27%;
  }
}
.p-intro_route__head-label img {
  transform: scale(0.8);
  opacity: 0;
}
.p-intro_route.is-active .p-intro_route__head-label img {
  opacity: 1;
  transform: scale(1);
  transition: transform 1.2s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s cubic-bezier(0.25, 1, 0.5, 1);
  transition-delay: 0.1s;
}
.p-intro_route__text {
  line-height: 2.1;
  transform: translateY(25px);
  opacity: 0;
}
.p-intro_route.is-active .p-intro_route__text {
  opacity: 1;
  transform: translateY(0);
  transition: transform 1.2s cubic-bezier(0.25, 1, 0.5, 1), opacity 1s cubic-bezier(0.25, 1, 0.5, 1);
  transition-delay: 0.2s;
}
@media screen and (max-width: 899px) {
  .p-intro_route__text {
    line-height: 2;
    font-size: 1.3rem;
  }
}
.p-intro_route__note {
  font-size: 1.3rem;
  margin-top: 8px;
}
@media screen and (max-width: 899px) {
  .p-intro_route__note {
    line-height: 1.8;
    font-size: 1.1rem;
  }
}
.p-intro_route__blocks {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin: 0 auto;
  margin-top: 29px;
  width: 90%;
  max-width: 1070px;
  position: relative;
}
@media screen and (max-width: 899px) {
  .p-intro_route__blocks {
    max-width: 500px;
    width: 94%;
    display: block;
  }
}
.p-intro_route__blocks-head {
  position: absolute;
  top: 2%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  z-index: 2;
  width: 72%;
}
@media screen and (max-width: 899px) {
  .p-intro_route__blocks-head {
    width: 92%;
    top: 0%;
  }
}
.p-intro_route__blocks-item {
  width: 47.5%;
  position: relative;
  margin-bottom: 3.5%;
  transform: translate(-30px, 30px);
  opacity: 0;
}
.p-intro_route__blocks-item.is-active {
  opacity: 1;
  transform: translate(0, 0);
  transition: transform 1.2s cubic-bezier(0.25, 1, 0.5, 1), opacity 1s cubic-bezier(0.25, 1, 0.5, 1);
}
@media screen and (max-width: 899px) {
  .p-intro_route__blocks-item {
    width: 100%;
    margin-bottom: 8.5%;
  }
}
@media screen and (min-width: 900px) {
  .p-intro_route__blocks-item:nth-child(2n) {
    margin-left: 5%;
  }
}
.p-intro_route__blocks-frame {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  pointer-events: none;
  z-index: 1;
}
.p-intro_route__blocks-content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 49%;
  padding: 16% 8% 8%;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 899px) {
  .p-intro_route__blocks-content {
    justify-content: center;
    height: 55%;
    padding: 18% 5% 5%;
  }
}
.p-intro_route__blocks-catch {
  font-size: 2.75rem;
  line-height: 1.2;
  letter-spacing: 1px;
  position: relative;
  padding-bottom: 4.8%;
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
}
@media screen and (max-width: 899px) {
  .p-intro_route__blocks-catch {
    flex-grow: 0;
    line-height: 1.4;
    font-size: 1.8rem;
    padding-bottom: 6%;
  }
}
.p-intro_route__blocks-catch::before {
  content: "";
  width: 100%;
  height: 5px;
  position: absolute;
  bottom: 0;
  left: 0;
  background: url(../img/common/deco_ttl.svg) no-repeat center center;
  background-size: contain;
}
@media screen and (max-width: 899px) {
  .p-intro_route__blocks-catch::before {
    height: 3px;
  }
}
.p-intro_route__blocks-lead {
  line-height: 1.9;
  margin-top: 4.5%;
}
@media screen and (max-width: 899px) {
  .p-intro_route__blocks-lead {
    font-size: 1.2rem;
  }
}
.p-intro_route__blocks-thumbs {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  overflow: hidden;
}
.p-intro_route__blocks-thumbs-item {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  opacity: 0;
}
.p-intro_route__blocks-thumbs-item.is-current {
  opacity: 1;
}