main {
  padding: 0;
}
main section {
  position: relative;
}
main .mv {
  height: 660px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  background: #181818;
  position: relative;
  z-index: 0;
  opacity: 1;
  -webkit-transition: opacity 1.5s;
  transition: opacity 1.5s;
}
main .mv.none {
  opacity: 0;
}
main .mv::before, main .mv::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  position: absolute;
  z-index: -1;
  -webkit-transition: all 0.6s;
  transition: all 0.6s;
}
main .mv::before {
  border-color: transparent transparent #0100ca transparent;
  border-width: 0px 0px 356px 227px;
  right: 0;
  bottom: 0;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
}
main .mv::after {
  border-color: #fff transparent transparent transparent;
  border-width: 356px 227px 0px 0px;
  left: 0;
  top: 0;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}
main .mv .mv_txt {
  display: none;
  font-family: "Noto Serif JP";
  font-weight: 500;
  color: #fff;
  text-align: center;
  -webkit-transition: all 0.8s;
  transition: all 0.8s;
  opacity: 0;
  -webkit-transform: translateY(100%);
          transform: translateY(100%);
}
main .mv .mv_txt.active {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
main .mv h1 {
  overflow: hidden;
  padding: 12px;
  position: relative;
  width: 100%;
}
main .mv h1 .ttl {
  color: #fff;
  text-decoration: underline;
  -webkit-transition: all .8s;
  transition: all .8s;
  position: relative;
  bottom: -30vh;
  text-decoration-thickness: 1px;
  -webkit-text-decoration-color: rgba(255, 255, 255, 0);
          text-decoration-color: rgba(255, 255, 255, 0);
}
main .mv h1 .ttl.border {
  -webkit-text-decoration-color: #fff;
          text-decoration-color: #fff;
}
main .mv h1 .ttl.up_txt {
  bottom: 0;
}
main .mv h1 .sub_ttl {
  font-size: 42px;
  -webkit-transform: translateY(60%);
          transform: translateY(60%);
  -webkit-transition: all 1s;
  transition: all 1s;
}
main .mv h1 .sub_ttl span {
  font-family: "Noto Serif JP";
  font-size: 42px;
  opacity: 0;
  color: #fff;
  -webkit-transition: font-size 1s;
  transition: font-size 1s;
}
main .mv h1 .sub_ttl.appeartext span {
  -webkit-animation: mv_txt_anime .7s ease-out forwards;
          animation: mv_txt_anime .7s ease-out forwards;
}
main .mv h1 .sub_ttl.small {
  font-size: 22px;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
main .mv h1 .sub_ttl.small span {
  font-size: 22px;
}
main .mv .scroll_txt {
  font-size: 10px;
  color: #fff;
  margin-top: 8px;
  padding-bottom: 55px;
  position: absolute;
  bottom: 0;
  -webkit-transform: translateY(100%);
          transform: translateY(100%);
  opacity: 0;
  -webkit-transition: all 0.6s;
  transition: all 0.6s;
}
main .mv .scroll_txt::before {
  content: "";
  width: 1px;
  height: 45px;
  background: #fff;
  position: absolute;
  bottom: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
main .mv .mv_video {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  z-index: -2;
}
main .mv .mv_video::before {
  content: "";
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0);
  position: absolute;
  top: 0;
  left: 0;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
main .mv .mv_video video {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
main .mv .mv_video.blur::before {
  background: rgba(0, 0, 0, .3);
}
main .mv.active::before {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}
main .mv.active::after {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}
main .mv.active .scroll_txt {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
main .about {
  padding: 111px 0 174px;
}
main .about .media {
  margin-top: 60px;
}
main .about .media h3 {
  position: relative;
}
main .about .media h3::before, main .about .media h3::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 53%;
  background: #282828;
}
main .about .media h3::before {
  width: 57px;
  height: 1px;
  -webkit-transform: translate(-50%, -50%) rotate(-38deg);
          transform: translate(-50%, -50%) rotate(-38deg);
}
main .about .media h3::after {
  width: 27px;
  height: 3px;
  -webkit-transform: translate(-50%, -50%) rotate(-134deg);
          transform: translate(-50%, -50%) rotate(-134deg);
}
main .about .media h3 span + span {
  text-align: right;
  margin-top: 7px;
}
main .about .media p {
  margin-top: 38px;
}
main .business {
  background: #F5F5F5;
  padding: 105px 0 160px;
}
main .business .media h3 {
  margin-top: 40px;
}
main .company {
  padding: 105px 0 0;
}
main .company .media {
  margin-top: 53px;
}
main .recruit {
  padding: 154px 0 155px;
}
main .recruit .body {
  background: url("../img/top/recruit_bg.png") center center/cover no-repeat;
  margin-top: 63px;
  padding: 66px 32px 63px 50px;
  border-radius: 20px;
}
main .recruit .btn {
  margin-top: 145px;
  text-align: right;
}
main .bg_texture_wrap {
  max-width: 1366px;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  z-index: -1;
}
main .bg_texture {
  position: absolute;
  z-index: -1;
}
main .bg_texture::after {
  content: none;
}
main .bg_texture01 {
  top: 0;
  right: 0;
}
main .bg_texture02 {
  bottom: 0;
  left: -100px;
}
main .bg_texture03 {
  top: 0;
  right: 0;
}
main .bg_texture04 {
  top: 140px;
  left: 0;
}
main .bg_texture05 {
  top: -160px;
  right: 90px;
}
main .bg_texture06 {
  top: 70px;
  left: -140px;
}
main .bg_texture07 {
  bottom: 0;
  right: 0;
}

@-webkit-keyframes mv_txt_anime {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes mv_txt_anime {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes slideText {
  from {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
    opacity: 0;
  }
  to {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
}
@keyframes slideText {
  from {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
    opacity: 0;
  }
  to {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
}
header {
  -webkit-transition: all 0.6s;
  transition: all 0.6s;
}
header.top {
  background: none;
}
header.top .nav {
  border: none;
}
header.top .nav_body .js-megaMenu > a {
  color: #fff;
}
header.top .nav_body .js-megaMenu > a:hover {
  color: #0100ca;
}
@media screen and (min-width: 768px) and (max-width: 1180px) {
  main .mv h1 .ttl::before {
    bottom: 1.9491525424vw;
  }
}
@media screen and (min-width: 768px) and (max-width: 1250px) {
  main .about .media h3 span + span {
    margin-top: 60px;
  }
}
@media screen and (max-width: 767px) {
  main {
    padding: 0;
  }
  main section {
    position: relative;
  }
  main .mv {
    height: 177.3333333333vw;
    z-index: 1;
  }
  main .mv::before {
    border-width: 0px 0px 23.0666666667vw 100vw;
  }
  main .mv::after {
    border-width: 23.0666666667vw 100vw 0px 0px;
  }
  main .mv .mv_txt {
    display: block;
    font-size: 6.4vw;
    line-height: 1.22;
    letter-spacing: 0.2666666667vw;
    margin-top: 50.4vw;
  }
  main .mv h1 {
    padding: 0;
    top: 0;
  }
  main .mv h1 .ttl {
    font-size: 18vw;
    line-height: 1.2;
  }
  main .mv h1 .sub_ttl {
    display: none;
  }
  main .mv .scroll_txt {
    font-size: 3.4666666667vw;
    margin-top: 11.2vw;
    padding-bottom: 19.2vw;
  }
  main .mv .scroll_txt::before {
    width: 1px;
    height: 16vw;
  }
  main .about {
    padding: 16.1333333333vw 0;
  }
  main .about .media {
    margin-top: 8vw;
  }
  main .about .media .body {
    margin-top: 7.0666666667vw;
  }
  main .about .media h3 {
    position: relative;
  }
  main .about .media h3::before, main .about .media h3::after {
    content: "";
    position: absolute;
    top: 54%;
    left: 48%;
    background: #282828;
  }
  main .about .media h3::before {
    width: 16vw;
    height: 0.5333333333vw;
    -webkit-transform: translate(-50%, -50%) rotate(-38deg);
            transform: translate(-50%, -50%) rotate(-38deg);
  }
  main .about .media h3::after {
    width: 7.4666666667vw;
    height: 1.0666666667vw;
    -webkit-transform: translate(-50%, -50%) rotate(-134deg);
            transform: translate(-50%, -50%) rotate(-134deg);
  }
  main .about .media h3 span + span {
    margin-top: 14.8vw;
  }
  main .about .media p {
    margin-top: 5.3333333333vw;
  }
  main .business {
    padding: 16vw 0 19.7333333333vw;
  }
  main .company {
    padding: 16vw 0 0;
  }
  main .company .media {
    margin-top: 8.5333333333vw;
  }
  main .company .body {
    margin-top: 5.6vw;
  }
  main .recruit {
    padding: 19.8666666667vw 0 16vw;
  }
  main .recruit .body {
    background: url("../img/top/recruit_bg-sp.png") center center/cover no-repeat;
    margin-top: 7.0666666667vw;
    padding: 9.7333333333vw 7.3333333333vw 6.1333333333vw;
    border-radius: 2.6666666667vw;
  }
  main .recruit .body p {
    padding: 0 1.8666666667vw;
  }
  main .recruit .btn {
    margin-top: 55.2vw;
  }
  main .bg_texture_wrap {
    max-width: 100%;
  }
  main .bg_texture01 {
    width: 56.6666666667vw;
    top: 1.3333333333vw;
    right: -5.3333333333vw;
  }
  main .bg_texture02 {
    width: 44.9333333333vw;
    bottom: 56vw;
    left: -16vw;
  }
  main .bg_texture03 {
    width: 56.6666666667vw;
    top: 5.3333333333vw;
    right: -5.3333333333vw;
  }
  main .bg_texture04 {
    width: 53.3333333333vw;
    top: auto;
    bottom: -13.3333333333vw;
    left: -18.6666666667vw;
  }
  main .bg_texture05 {
    width: 56.6666666667vw;
    top: 4vw;
    right: -5.3333333333vw;
  }
  main .bg_texture06 {
    width: 69.0666666667vw;
    top: auto;
    bottom: -26.6666666667vw;
    left: -18.6666666667vw;
  }
}