@charset "UTF-8";
/*=======================================
トップページ
=========================================*/
.l-kv {
  padding-top: min(4.1666666667vw,80px);
  margin-top: 63px;
}
.l-kv .copy .txt {
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.1em;
  font-size: 7.1428571429vw;
}
@media screen and (max-width: 767px) {
  .l-kv .copy .txt {
    font-size: 21.7391304348vw;
  }
}
.l-kv .copy .txt span {
  color: #20419B;
}
.l-kv .copy .txt span.txt-black {
  color: #000;
}
.l-kv .copy p {
  font-weight: 700;
  letter-spacing: 0.1em;
  font-size: 2vw;
  margin-bottom: min(8.8541666667vw,170px);
  margin-top: min(2.0833333333vw,40px);
}
@media screen and (max-width: 767px) {
  .l-kv .copy p {
    font-size: 6.0869565217vw;
  }
}
.l-kv .mv {
  width: min(89.0625vw,1710px);
  height: min(35.7291666667vw,686px);
  background-color: #000;
  position: relative;
  z-index: 10;
  overflow: hidden;
}
@keyframes zoomUp {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.15);
  }
}
.l-kv .mv .swiper-slide-active .swiper-img,
.l-kv .mv .swiper-slide-duplicate-active .swiper-img,
.l-kv .mv .swiper-slide-prev .swiper-img {
  animation: zoomUp 10s linear 0s normal both;
}

.animate span {
  display: inline-block;
}
.animate span:nth-of-type(2) {
  animation-delay: 0.05s;
}
.animate span:nth-of-type(3) {
  animation-delay: 0.1s;
}
.animate span:nth-of-type(4) {
  animation-delay: 0.15s;
}
.animate span:nth-of-type(5) {
  animation-delay: 0.2s;
}
.animate span:nth-of-type(6) {
  animation-delay: 0.25s;
}
.animate span:nth-of-type(7) {
  animation-delay: 0.3s;
}
.animate span:nth-of-type(8) {
  animation-delay: 0.35s;
}
.animate span:nth-of-type(9) {
  animation-delay: 0.4s;
}
.animate span:nth-of-type(10) {
  animation-delay: 0.45s;
}
.animate span:nth-of-type(11) {
  animation-delay: 0.5s;
}
.animate span:nth-of-type(12) {
  animation-delay: 0.55s;
}
.animate span:nth-of-type(13) {
  animation-delay: 0.6s;
}
.animate span:nth-of-type(14) {
  animation-delay: 0.65s;
}
.animate span:nth-of-type(15) {
  animation-delay: 0.7s;
}
.animate span:nth-of-type(16) {
  animation-delay: 0.75s;
}
.animate span:nth-of-type(17) {
  animation-delay: 0.8s;
}
.animate span:nth-of-type(18) {
  animation-delay: 0.85s;
}
.animate span:nth-of-type(19) {
  animation-delay: 0.9s;
}
.animate span:nth-of-type(20) {
  animation-delay: 0.95s;
}

.seven span {
  color: #20419B;
  opacity: 0;
  transform: translate(-150px, 0) scale(0.3);
  animation: leftRight 0.9s forwards;
}

@keyframes leftRight {
  40% {
    transform: translate(50px, 0) scale(0.7);
    opacity: 1;
    color: #20419B;
  }
  60% {
    color: #8498cd;
  }
  80% {
    transform: translate(0) scale(2);
    opacity: 0;
  }
  100% {
    transform: translate(0) scale(1);
    opacity: 1;
  }
}
@keyframes noise-anim {
  0% {
    clip: rect(143px, 9999px, 182px, 0);
  }
  5% {
    clip: rect(120px, 9999px, 40px, 0);
  }
  10% {
    clip: rect(155px, 9999px, 192px, 0);
  }
  15% {
    clip: rect(162px, 9999px, 161px, 0);
  }
  20% {
    clip: rect(162px, 9999px, 150px, 0);
  }
  25% {
    clip: rect(4px, 9999px, 12px, 0);
  }
  30% {
    clip: rect(156px, 9999px, 135px, 0);
  }
  35% {
    clip: rect(118px, 9999px, 158px, 0);
  }
  40% {
    clip: rect(92px, 9999px, 139px, 0);
  }
  45% {
    clip: rect(20px, 9999px, 24px, 0);
  }
  50% {
    clip: rect(126px, 9999px, 4px, 0);
  }
  55% {
    clip: rect(112px, 9999px, 181px, 0);
  }
  60% {
    clip: rect(93px, 9999px, 164px, 0);
  }
  65% {
    clip: rect(83px, 9999px, 111px, 0);
  }
  70% {
    clip: rect(189px, 9999px, 16px, 0);
  }
  75% {
    clip: rect(167px, 9999px, 183px, 0);
  }
  80% {
    clip: rect(151px, 9999px, 14px, 0);
  }
  85% {
    clip: rect(109px, 9999px, 107px, 0);
  }
  90% {
    clip: rect(16px, 9999px, 139px, 0);
  }
  95% {
    clip: rect(105px, 9999px, 165px, 0);
  }
  100% {
    clip: rect(112px, 9999px, 138px, 0);
  }
}
.glitch:after {
  content: attr(data-text);
  position: absolute;
  left: 2px;
  text-shadow: -1px 0 red;
  top: 0;
  color: white;
  background: transparent;
  overflow: hidden;
  clip: rect(0, 900px, 0, 0);
  animation: noise-anim 2s infinite linear alternate-reverse;
}

@keyframes noise-anim-2 {
  0% {
    clip: rect(73px, 9999px, 22px, 0);
  }
  5% {
    clip: rect(66px, 9999px, 93px, 0);
  }
  10% {
    clip: rect(7px, 9999px, 25px, 0);
  }
  15% {
    clip: rect(25px, 9999px, 28px, 0);
  }
  20% {
    clip: rect(74px, 9999px, 3px, 0);
  }
  25% {
    clip: rect(48px, 9999px, 16px, 0);
  }
  30% {
    clip: rect(71px, 9999px, 31px, 0);
  }
  35% {
    clip: rect(1px, 9999px, 53px, 0);
  }
  40% {
    clip: rect(51px, 9999px, 62px, 0);
  }
  45% {
    clip: rect(55px, 9999px, 44px, 0);
  }
  50% {
    clip: rect(48px, 9999px, 74px, 0);
  }
  55% {
    clip: rect(73px, 9999px, 71px, 0);
  }
  60% {
    clip: rect(72px, 9999px, 97px, 0);
  }
  65% {
    clip: rect(59px, 9999px, 16px, 0);
  }
  70% {
    clip: rect(8px, 9999px, 62px, 0);
  }
  75% {
    clip: rect(67px, 9999px, 100px, 0);
  }
  80% {
    clip: rect(99px, 9999px, 65px, 0);
  }
  85% {
    clip: rect(52px, 9999px, 9px, 0);
  }
  90% {
    clip: rect(69px, 9999px, 57px, 0);
  }
  95% {
    clip: rect(81px, 9999px, 23px, 0);
  }
  100% {
    clip: rect(36px, 9999px, 20px, 0);
  }
}
.glitch:before {
  content: attr(data-text);
  position: absolute;
  left: -2px;
  text-shadow: 1px 0 blue;
  top: 0;
  color: white;
  background: transparent;
  overflow: hidden;
  clip: rect(0, 900px, 0, 0);
  animation: noise-anim-2 3s infinite linear alternate-reverse;
}

.p-top__intro {
  background-color: #20419B;
  overflow: hidden;
  padding: min(23.4375vw,450px) 0 min(4.6875vw,90px) 0;
  margin-top: -19.58vw;
  position: relative;
}
.p-top__intro .c-txt {
  position: absolute;
  right: 0;
  top: 14.58vw;
  z-index: 15;
}
.p-top__intro .catch {
  color: #FFF;
  line-height: 1.4;
  font-weight: 600;
  font-size: 2.8571428571vw;
}
@media screen and (max-width: 767px) {
  .p-top__intro .catch {
    font-size: 8.6956521739vw;
  }
}
.p-top__intro p {
  width: min(29.6875vw,570px);
  margin-top: min(1.5625vw,30px);
  font-weight: normal;
  font-size: 1.1428571429vw;
  letter-spacing: 0.1em;
  line-height: 2.3;
  color: #fff;
}
@media screen and (max-width: 767px) {
  .p-top__intro p {
    font-size: 3.4782608696vw;
  }
}
.p-top__item {
  position: relative;
  width: 100%;
  left: 0;
  top: 0;
  padding-bottom: min(7.8125vw,150px);
}
.p-top__item canvas {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.p-top__item .arrow {
  margin-top: min(1.5625vw,30px);
}
.p-top__technology {
  background-size: cover;
  padding: min(5.2083333333vw,100px) 0;
  position: relative;
}
.p-top__technology .bg-movie {
  position: absolute;
  width: 100%;
  height: 100%;
  overflow: hidden;
  top: 0;
  left: 0;
  z-index: -1;
}
.p-top__technology .bg-movie .cover {
  background-color: #627096;
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: 0;
  left: 0;
  top: 0;
  mix-blend-mode: multiply;
}
.p-top__technology h3 {
  text-align: center;
  letter-spacing: 0.1em;
  color: #FFF;
  font-size: 3.2142857143vw;
}
@media screen and (max-width: 767px) {
  .p-top__technology h3 {
    font-size: 9.7826086957vw;
  }
}
.p-top__technology p {
  text-align: center;
  font-size: 1.2857142857vw;
  font-weight: normal;
  letter-spacing: 0.1em;
  line-height: 2.5;
  text-align: center;
  color: #fff;
  margin-top: min(2.34375vw,45px);
}
@media screen and (max-width: 767px) {
  .p-top__technology p {
    font-size: 3.9130434783vw;
  }
}
.p-top__technology .c-btn1 {
  margin-top: min(2.8645833333vw,55px);
}
.p-top__info {
  padding: min(5.46875vw,105px) 0 min(11.1979166667vw,215px);
}
.p-top__info .info-wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.p-top__info .info-wrap:before, .p-top__info .info-wrap:after {
  content: none;
}
.p-top__info .info-wrap .title {
  width: min(21.3541666667vw,410px);
}
.p-top__info .info-wrap .title h3 {
  font-size: 3.2857142857vw;
  font-weight: 700;
  text-align: center;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .p-top__info .info-wrap .title h3 {
    font-size: 10vw;
  }
}
.p-top__info .info-wrap .title h3 span {
  display: block;
  letter-spacing: 0.1em;
  font-size: 1.4285714286vw;
}
@media screen and (max-width: 767px) {
  .p-top__info .info-wrap .title h3 span {
    font-size: 4.347826087vw;
  }
}
.p-top__info .i-contents {
  width: min(45.46875vw,873px);
}
.p-top__info .btn {
  max-width: min(17.96875vw,345px);
  width: 100%;
  margin: min(2.34375vw,45px) auto 0;
}
.p-top__info .btn a {
  display: block;
  height: min(3.9583333333vw,76px);
  text-decoration: none;
  line-height: min(3.9583333333vw,76px);
  text-align: center;
  border: 1px solid #000;
  border-radius: 38px;
  font-size: 1.1428571429vw;
}
@media screen and (max-width: 767px) {
  .p-top__info .btn a {
    font-size: 3.4782608696vw;
  }
}
.p-top__recruit {
  padding-bottom: min(8.8541666667vw,170px);
}
.p-top__recruit ul {
  display: flex;
  justify-content: space-between;
}
.p-top__recruit ul:before, .p-top__recruit ul:after {
  content: none;
}
.p-top__recruit ul li {
  width: 33%;
}
.p-top__recruit ul li:nth-child(1) {
  margin-top: min(-8.3333333333vw,-160px);
}
.p-top__recruit ul li:nth-child(2) {
  margin-top: min(-3.90625vw,-75px);
}
.p-top__recruit h3 {
  font-size: 11.4285714286vw;
  margin-top: min(-9.8958333333vw,-190px);
  margin-left: min(-1.0416666667vw,-20px);
  font-feature-settings: "palt";
  line-height: 1;
  margin-bottom: min(3.125vw,60px);
}
@media screen and (max-width: 767px) {
  .p-top__recruit h3 {
    font-size: 34.7826086957vw;
  }
}
.p-top__recruit .c-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.p-top__recruit .c-inner:before, .p-top__recruit .c-inner:after {
  content: none;
}
.p-top__recruit .c-inner .txt {
  padding-right: min(3.125vw,60px);
}
.p-top__recruit .c-inner .txt p {
  line-height: 2.3;
  letter-spacing: 0.05em;
  font-size: 1.1428571429vw;
}
@media screen and (max-width: 767px) {
  .p-top__recruit .c-inner .txt p {
    font-size: 3.4782608696vw;
  }
}
.p-top__recruit .c-inner .btn {
  max-width: min(17.96875vw,345px);
  width: 100%;
  margin: min(2.34375vw,45px) auto 0;
}
.p-top__recruit .c-inner .btn a {
  display: block;
  height: min(3.9583333333vw,76px);
  text-decoration: none;
  line-height: min(3.9583333333vw,76px);
  text-align: center;
  border: 1px solid #000;
  border-radius: 38px;
  font-size: 1.1428571429vw;
}
@media screen and (max-width: 767px) {
  .p-top__recruit .c-inner .btn a {
    font-size: 3.4782608696vw;
  }
}

.swiper {
  width: min(56.25vw,1080px);
  float: right;
  margin: -18vw auto 0;
}

.swiper-wrapper {
  padding-bottom: min(3.125vw,60px);
}

.swiper-slide {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-weight: bold;
  font-size: 30px;
}

.swiper-scrollbar-drag {
  background-color: #20419B;
}

.swiper-horizontal > .swiper-scrollbar, .swiper-scrollbar.swiper-scrollbar-horizontal {
  position: static;
}

.swiper-button-next,
.swiper-button-prev,
.swiper-pagination {
  position: static;
  display: inline-block;
  line-height: 1;
  margin-top: 0;
  width: auto;
  vertical-align: middle;
}

.swiper-pagination {
  margin: 0 20px;
}

.swiper-button-next,
.swiper-button-prev {
  height: 66px;
}

.swiper-button-next:after, .swiper-button-prev:after {
  content: "";
  width: 66px;
  height: 66px;
  display: block;
  background-size: contain;
}

.swiper-button-next:after {
  background: url("../img/top/arrow_next.png") no-repeat center;
}

.swiper-button-prev:after {
  background: url("../img/top/arrow_prev.png") no-repeat center;
}

/* ----------------------------- スマホ（～767px） */
@media screen and (max-width: 767px) {
  .l-kv {
    padding-top: min(10.4166666667vw,200px);
  }
  .l-kv .copy .txt {
    line-height: 1;
    letter-spacing: 0.1em;
    font-size: 2.1428571429vw;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .l-kv .copy .txt {
    font-size: 6.5217391304vw;
  }
}
@media screen and (max-width: 767px) {
  .l-kv .copy p {
    letter-spacing: 0.1em;
    font-size: 0.9285714286vw;
    margin-bottom: min(8.8541666667vw,170px);
    margin-top: min(2.0833333333vw,40px);
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .l-kv .copy p {
    font-size: 2.8260869565vw;
  }
}
@media screen and (max-width: 767px) {
  .l-kv .mv {
    width: min(89.0625vw,1710px);
    height: min(35.7291666667vw,686px);
  }
  .swiper {
    width: 95%;
    float: none;
    margin: -8vw auto 0;
  }
  .p-top__intro {
    padding: min(23.4375vw,450px) 0 min(10.4166666667vw,200px) 0;
  }
  .p-top__intro .catch {
    font-size: 1.4285714286vw;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .p-top__intro .catch {
    font-size: 4.347826087vw;
  }
}
@media screen and (max-width: 767px) {
  .p-top__intro p {
    width: 100%;
    font-size: 1vw;
    line-height: 1.8;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .p-top__intro p {
    font-size: 3.0434782609vw;
  }
}
@media screen and (max-width: 767px) {
  .p-top__item {
    position: relative;
    width: 100%;
    left: 0;
    top: 0;
    padding-bottom: min(7.8125vw,150px);
  }
  .p-top__item canvas {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
  }
  .p-top__item .arrow {
    float: right;
    margin-top: min(1.5625vw,30px);
  }
  .p-top__technology {
    padding: min(10.4166666667vw,200px) 0;
  }
  .p-top__technology h3 {
    font-size: 2.2857142857vw;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .p-top__technology h3 {
    font-size: 6.9565217391vw;
  }
}
@media screen and (max-width: 767px) {
  .p-top__technology p {
    text-align: center;
    font-size: 1.1428571429vw;
    line-height: 1.8;
    margin-top: min(6.25vw,120px);
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .p-top__technology p {
    font-size: 3.4782608696vw;
  }
}
@media screen and (max-width: 767px) {
  .p-top__technology .c-btn1 {
    margin-top: min(6.25vw,120px);
  }
  .p-top__info {
    padding: min(10.4166666667vw,200px) 0 min(20.8333333333vw,400px);
  }
  .p-top__info .info-wrap {
    display: block;
  }
  .p-top__info .info-wrap .title {
    width: 100%;
  }
  .p-top__info .info-wrap .title h3 {
    font-size: 2.2857142857vw;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .p-top__info .info-wrap .title h3 {
    font-size: 6.9565217391vw;
  }
}
@media screen and (max-width: 767px) {
  .p-top__info .info-wrap .title h3 span {
    display: block;
    letter-spacing: 0.1em;
    font-size: 1.2857142857vw;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .p-top__info .info-wrap .title h3 span {
    font-size: 3.9130434783vw;
  }
}
@media screen and (max-width: 767px) {
  .p-top__info .info-wrap .i-contents {
    width: 100%;
    margin: min(6.25vw,120px) 0 0;
  }
  .p-top__info .info-wrap .btn {
    max-width: 70%;
    width: 100%;
    margin: min(4.1666666667vw,80px) auto 0;
  }
  .p-top__info .info-wrap .btn a {
    display: block;
    height: auto;
    line-height: 1;
    font-size: 1.1428571429vw;
    padding: min(4.1666666667vw,80px) 0;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .p-top__info .info-wrap .btn a {
    font-size: 3.4782608696vw;
  }
}
@media screen and (max-width: 767px) {
  .p-top__recruit {
    padding-bottom: min(8.8541666667vw,170px);
  }
  .p-top__recruit ul li {
    width: 33%;
  }
  .p-top__recruit ul li:nth-child(1) {
    margin-top: min(-3.125vw,-60px);
  }
  .p-top__recruit ul li:nth-child(2) {
    margin-top: min(-1.5625vw,-30px);
  }
  .p-top__recruit h3 {
    font-size: 4.6428571429vw;
    margin-top: min(-1.5625vw,-30px);
    margin-left: min(0vw,0px);
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .p-top__recruit h3 {
    font-size: 14.1304347826vw;
  }
}
@media screen and (max-width: 767px) {
  .p-top__recruit .c-inner {
    display: block;
  }
  .p-top__recruit .c-inner .txt {
    padding-right: 0;
  }
  .p-top__recruit .c-inner .txt p {
    line-height: 1.8;
    font-size: 1vw;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .p-top__recruit .c-inner .txt p {
    font-size: 3.0434782609vw;
  }
}
@media screen and (max-width: 767px) {
  .p-top__recruit .c-inner .btn {
    max-width: 70%;
    width: 100%;
    margin: min(4.1666666667vw,80px) auto 0;
  }
  .p-top__recruit .c-inner .btn a {
    display: block;
    height: auto;
    line-height: 1;
    font-size: 1.1428571429vw;
    padding: min(4.1666666667vw,80px) 0;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .p-top__recruit .c-inner .btn a {
    font-size: 3.4782608696vw;
  }
}