: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);
}

@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fade-out {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
img {
  max-width: 100%;
  display: block;
  vertical-align: middle;
}

@media screen and (min-width: 961px) {
  .is-pc {
    display: block;
  }
  .is-sp {
    display: none;
  }
}
@media screen and (max-width: 960px) {
  .is-pc {
    display: none;
  }
  .is-sp {
    display: block;
  }
}
.navigation_btn {
  display: none;
}

.p-serial {
  padding-bottom: 174px;
  position: relative;
  margin: 0 auto;
  font-weight: 600;
}
@media screen and (max-width: 960px) {
  .p-serial {
    padding-bottom: 114px;
  }
}

.p-serial_bg {
  position: fixed;
  pointer-events: none;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/bg_deco_pc.png) no-repeat center top/100% auto;
}
@media screen and (max-width: 960px) {
  .p-serial_bg {
    background: url(../img/bg_deco_sp.png) no-repeat center top/100% auto;
  }
}

.p-serial_main {
  position: relative;
  margin: 0 auto;
  width: 90%;
  max-width: 1000px;
}
@media screen and (max-width: 960px) {
  .p-serial_main {
    width: 89%;
  }
}

.p-serial_head {
  padding: 5.7% 0 7.2%;
}
@media screen and (max-width: 960px) {
  .p-serial_head {
    padding: 10.4% 0 11.5%;
  }
}
.p-serial_head__logo {
  margin: 0 auto;
  width: 252px;
  opacity: 0;
  transform: translateY(30px);
}
.is_start .p-serial_head__logo {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.5s cubic-bezier(0.5, 1, 0.89, 1) 0.1s, transform 0.5s cubic-bezier(0.5, 1, 0.89, 1) 0.1s;
}
@media screen and (max-width: 960px) {
  .p-serial_head__logo {
    width: 120px;
  }
}
.p-serial_head__ttl {
  padding-top: 14px;
  margin: 0 auto;
  width: 575px;
  opacity: 0;
  transform: translateY(30px);
}
.is_start .p-serial_head__ttl {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.5s cubic-bezier(0.5, 1, 0.89, 1), transform 0.5s cubic-bezier(0.5, 1, 0.89, 1);
  transition-delay: 0.3s;
}
@media screen and (max-width: 960px) {
  .p-serial_head__ttl {
    padding-top: 12px;
    width: 95%;
  }
}
.p-serial_head__lead {
  text-align: center;
  line-height: 1.7;
  margin-top: 50px;
  font-size: 21px;
  letter-spacing: 2.5px;
  opacity: 0;
  transform: translateY(30px);
}
.is_start .p-serial_head__lead {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.5s cubic-bezier(0.5, 1, 0.89, 1), transform 0.5s cubic-bezier(0.5, 1, 0.89, 1);
  transition-delay: 0.6s;
}
@media screen and (max-width: 960px) {
  .p-serial_head__lead {
    margin-top: 45px;
    font-size: min(13px, 3.5vw);
    letter-spacing: 1.7px;
    line-height: 1.85;
  }
}
.p-serial_head__limit {
  text-align: center;
  margin-top: 57px;
  opacity: 0;
  transform: translateY(30px);
}
.is_start .p-serial_head__limit {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.5s cubic-bezier(0.5, 1, 0.89, 1), transform 0.5s cubic-bezier(0.5, 1, 0.89, 1);
  transition-delay: 0.8s;
}
@media screen and (max-width: 960px) {
  .p-serial_head__limit {
    margin-top: 28px;
  }
}
.p-serial_head__limit-ttl {
  background-color: var(--color-yellow);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto 21px;
  padding: 2px 10px 3px;
  font-size: 20px;
  width: 169px;
}
@media screen and (max-width: 960px) {
  .p-serial_head__limit-ttl {
    padding: 1px 10px 2px;
    font-size: 13px;
    width: 96px;
    margin: 0 auto 14px;
  }
}
.p-serial_head__limit-text {
  font-size: 28px;
  letter-spacing: 1px;
}
@media screen and (max-width: 960px) {
  .p-serial_head__limit-text {
    letter-spacing: 0.5px;
    font-size: 19px;
    line-height: 1.3;
  }
}
.p-serial_head__limit-text .is-small {
  vertical-align: baseline;
  font-size: 20px;
}
@media screen and (max-width: 960px) {
  .p-serial_head__limit-text .is-small {
    font-size: 15px;
  }
}

.serial-modal__bg {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100% !important;
  background: rgba(7, 10, 125, 0.8);
  pointer-events: none;
}

.serial-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  opacity: 0;
  z-index: 100;
}
.serial-modal.is-open {
  animation: fade-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.serial-modal.is-close {
  animation: fade-out 0.5s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.c-btn {
  text-align: center;
  background-color: var(--color-blue);
  position: relative;
  border-radius: 100px;
  overflow: hidden;
  cursor: pointer;
  transition: background-color 0.2s cubic-bezier(0.33, 1, 0.68, 1);
}
@media (hover: hover) {
  .c-btn:hover {
    background-color: var(--color-orange);
  }
}
.c-btn__inner {
  padding: 5px 0;
  min-height: 50px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media screen and (max-width: 960px) {
  .c-btn__inner {
    min-height: 30px;
  }
}
.c-btn__text {
  color: #fff;
  line-height: 1.4;
  font-size: 16px;
}
@media screen and (max-width: 960px) {
  .c-btn__text {
    font-size: 12px;
  }
}
.c-btn input {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}