@charset "UTF-8";
.mv {
  width: 100%;
  height: 80vh;
  background: #000;
  overflow: hidden;
  z-index: 0;
  position: relative;
}
.mv::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background-color: rgba(0, 0, 0, 0.12);
}
.mv .cvsbtn {
  position: absolute;
  right: 1.5rem;
  bottom: 1rem;
  z-index: 1000;
  width: 100%;
}
.mv .cvsbtn a {
  position: absolute;
  right: 0;
  bottom: 2rem;
  z-index: 1000;
  background-image: linear-gradient(to right, #000 0%, #000 50%, #FF0000 50%, #FF0000 100%);
}
@media only screen and (min-width: 769px) {
  .mv {
    width: 100%;
    height: 100vh;
  }
  .mv {
    height: 100vh;
  }
  #youtube {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 260vw;
    height: 110vh;
    min-width: 100%;
    min-height: 100%;
    overflow: hidden;
  }
  #youtube {
    width: 110vw;
    height: 56.25vw;
  }
}
@media only screen and (max-width: 768px) {
  .bg_movie {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    overflow: hidden;
  }
  .bg_movie video {
    width: auto;
    height: 80vh;
  }
}
.topics {
  background: url("../../images/index/topic_s.png")no-repeat left -10% bottom -10%/60%;
}
.topics .cont_inr {
  flex-wrap: wrap;
}
.topics .left_cont, .topics .right_cont {
  width: 100%;
}
.topics .right_cont {
  max-width: 80rem;
}
.topics_list li .thum {
  width: 11rem;
  height: 7rem;
}
.topics_list li .txtcont {
  width: calc(100% - 12rem);
}
@media only screen and (min-width: 769px) {
  .topics {
    background: url("../../images/index/topic_s.png")no-repeat left -10% bottom -10%/45%;
  }
  .topics .cont_inr {
    justify-content: space-between;
  }
  .topics .left_cont {
    width: 30rem;
  }
  .topics .right_cont {
    width: calc(100% - 30rem);
  }
  .topics_list li .thum {
    width: 18rem;
    height: 11.7rem;
  }
  .topics_list li .txtcont {
    width: calc(100% - 21rem);
  }
}
@media only screen and (min-width: 1367px) {
  .topics .right_cont {
    width: calc(100% - 40rem);
  }
}
@media only screen and (max-width: 768px) {
  .topics .right_cont {
    margin-bottom: 3rem;
  }
  .topics .cvsbtn {
    max-width: 32rem;
    margin: auto;
  }
  .topics .cvsbtn a {
    padding: 2.5rem 6rem;
  }
}
.service {
  background: url("../../images/index/service_c-1.png")no-repeat top right/50%, url("../../images/index/service_c-2.png")no-repeat top 40% left/60%, url("../../images/index/service_c-3.png")no-repeat top 65% left/60%, url("../../images/index/service_c-4.png")no-repeat bottom 10% right/60%, #FAFAFA;
  border-radius: 10px 10px 0 0;
}
.service .cont_ttl {
  margin-bottom: 9rem;
}
.service .service_box {
  padding: 0 0 5rem;
  position: relative;
  z-index: 0;
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 10rem;
}
.service .service_box:last-child {
  margin-bottom: 0;
}
.service .service_box .txt {
  color: #fff;
}
.service .service_box::after {
  width: 100%;
  height: 100%;
  content: "";
  left: 0;
  top: 0;
  border-radius: 10px;
  overflow: hidden;
  position: absolute;
  z-index: -1;
  box-shadow: 0 0 60px rgba(0, 0, 0, 0.18);
}
.service .service_box.box01::after {
  background: url("../../images/index/service_bg.jpg")no-repeat center center/cover;
}
.service .service_box.box01-2::after {
  background: url("../../images/index/service_bg4.jpg")no-repeat center center/cover;
}
.service .service_box.box02::after {
  background: url("../../images/index/service_bg2.jpg")no-repeat center center/cover;
}
.service .service_box.box03::after {
  background: url("../../images/index/service_bg3.jpg")no-repeat center center/cover;
}
.service .service_box.box02 .service_box-left::before, .service .service_box.box02 .service_box-left::after {
  position: absolute;
  content: "";
  width: 10rem;
  height: 7rem;
}
.service .service_box.box02 .service_box-left::before {
  background: url("../../images/index/genchi_img_d1.png")no-repeat center center/contain;
  right: -18px;
  top: -90%;
}
.service .service_box.box02 .service_box-left::after {
  background: url("../../images/index/genchi_img_d2.png")no-repeat center center/contain;
}
.service .service_box.box01 .tr_logo {
  max-width: 32rem;
  margin: 0 auto 2rem;
}
.service .service_box.box01-2 .tr_logo {
  max-width: 28rem;
  margin: 0 auto 2rem;
}
.service .service_box .txt {
  max-width: 52rem;
  margin-bottom: 4rem;
  width: 100%;
}
.service .service_box .service_box-ttl {
  margin-bottom: 2rem;
  font-size: 2.8rem;
  line-height: 1.1;
  color: #fff;
}
.service .service_box .service_box-left {
  max-width: 53rem;
  width: 100%;
  position: relative;
}
.service .cvsbtn {
  max-width: 32rem;
}
.service .cvsbtn a {
  color: #000;
   background-image: linear-gradient(to right, #FF0000 0%, #FF0000 50%, #fff 50%, #fff 100%); 
}
.service .achievements {
  padding: 0 0 12rem;
}
.service .achievements .ttl {
  text-align: center;
  line-height: 1.4;
  margin-bottom: 2rem;
}
.service .achievements .red_txt {
  color: #FF0000;
}
.service .achievements .en {
  font-size: 3.4rem;
  font-weight: 600;
}
.service .achievements .border-serif {
  position: relative;
}
.service .achievements .border-serif::before, .service .achievements .border-serif::after {
  position: absolute;
  width: 2px;
  height: 4rem;
  content: "";
  background-color: #000;
  top: 50%;
}
.service .achievements .border-serif::before {
  left: -2rem;
  transform: rotate(-30deg)translateY(-50%);
}
.service .achievements .border-serif::after {
  right: -2rem;
  transform: rotate(30deg)translateY(-50%);
}
.service .achievements .big_txt {
  font-size: 2.8rem;
  display: block;
}
@media only screen and (min-width: 769px) {
  .service {
    background: url("../../images/index/service_c-1.png")no-repeat top right/35%, url("../../images/index/service_c-2.png")no-repeat top 20% left/30%, url("../../images/index/service_c-3.png")no-repeat center left/30%, url("../../images/index/service_c-4.png")no-repeat bottom 10% right/30%, #FAFAFA;
  }
  .service .cont_ttl {
    margin-bottom: 5rem;
  }
  .service .service_box {
    padding: 10rem 6rem;
    margin-bottom: 14rem;
  }
  .service .service_box .service_box-left {
    width: 48%
  }
  .service .service_box .service_box-right {
    width: 46%;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }
  .service .service_box .service_box-ttl {
    margin-bottom: 2.5rem;
    font-size: 3.2rem;
  }
  /* .service .service_box.box01 .service_box-right, .service .service_box.box03 .service_box-right {
    right: -2rem;
  } */
  .service .service_box.box01 .service_box-right, .service .service_box.box02 .service_box-right {
    right: -2rem;
  }
  .service .service_box.box01 .tr_logo {
    max-width: 38.5rem;
    margin-left: 0;
  }
  /* .service .service_box.box02 {
    justify-content: flex-end;
  } */
  .service .service_box.box01-2, .service .service_box.box03 {
    justify-content: flex-end;
  }
  .service .service_box.box01-2 .tr_logo {
    max-width: 32rem;
    margin: 0 0 2rem;
  }
  .service .service_box.box02 .service_box-left::before, .service .service_box.box02 .service_box-left::after {
    width: 23rem;
    height: 14rem;
    right: -5rem;
  }
  .service .service_box.box02 .service_box-left::before {
    top: -15rem;
    right: -8rem;
  }
  .service .service_box.box02 .service_box-left::after {
    bottom: -14rem;
  }
  /* .service .service_box.box02 .service_box-right {
    left: -2rem;
    width: 43%
  } */
  .service .service_box.box01-2 .service_box-right, .service .service_box.box03 .service_box-right {
    left: -2rem;
    width: 43%
  }
  .service .cvsbtn a:hover {
    color: #fff;
  }
}
@media only screen and (min-width: 1367px) {
  .service .service_box {
    padding: 10rem 8rem;
  }
  .service .service_box .service_box-ttl {
    font-size: 4rem;
  }
}
@media only screen and (max-width: 768px) {
  .service .service_box {
    justify-content: center;
  }
  .service .service_box .service_box-ttl {
    text-align: center;
  }
  .service .service_box .cvsbtn {
    margin: auto;
  }
  .service .service_box .service_box-right {
    width: 90%;
    margin: -1.5rem auto 3rem;
    max-width: 40rem;
  }
  .service .service_box.box01 .service_box-right {
    margin: -2rem auto 3rem;
  }
  .service .service_box .service_box-left {
    padding: 0 2rem;
  }
  .service .service_box.box02 .service_box-left::after {
    left: 0;
    top: -35%;
  }
}
@media only screen and (max-width: 600px) {
  .service .service_box.box01 .service_box-right {
    margin: -2rem -2.5% 3rem;
    width: 105%;
  }
}
.abaut {
  background: url("../../images/index/about_c-1.png")no-repeat top right/60%, url("../../images/index/about_c-2.png")no-repeat bottom left/60%, #fff;
}
.abaut .cont_inr {
  display: flex;
  flex-wrap: wrap;
}
.abaut .abaut_box {
  border-radius: 15px;
  padding: 6rem 3rem;
  background-color: #fff;
  width: 100%;
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.1);
}
.abaut .txt {
  margin-bottom: 4rem;
}
.abaut .cvsbtn {
  max-width: 32rem;
}
@media only screen and (min-width: 769px) {
  .abaut {
    background: url("../../images/index/about_c-1.png")no-repeat top right/35%, url("../../images/index/about_c-2.png")no-repeat bottom left/30%, #fff;
  }
  .abaut .cont_inr {
    justify-content: space-between;
  }
  .abaut .abaut_box {
    padding: 8rem 4rem;
    width: 48%;
  }
  .abaut .cont_ttl {
    margin-bottom: 3.2rem;
  }
}
@media only screen and (min-width: 1367px) {
  .abaut .abaut_box {
    border-radius: 30px;
    padding: 10rem;
  }
}
@media only screen and (max-width: 1366px) {
  .abaut .cont_ttl .en {
    font-size: 4.2rem;
  }
}
@media only screen and (max-width: 768px) {
  .abaut .abaut_box {
    margin-bottom: 4rem;
  }
}
.concept {
  background: url("../../images/index/concept_bg.jpg")no-repeat center center/cover;
  position: relative;
  overflow: hidden;
  padding: 8rem 2rem;
  text-align: center;
  color: #fff;
  font-size: 1.8rem;
  font-weight: 500;
}
/*
.concept .titles {
  position: absolute;
  width: 18em;
  height: 140rem;
  bottom: 0;
  left: 50%;
  margin-left: -9em;
  font-size: 350%;
  font-weight: bold;
  overflow: hidden;
  transform-origin: 50% 100%;
  transform: perspective(300px) rotateX(25deg);
  color: #F5FF00;
  text-align: center;
}
.concept .titles:after {
  position: absolute;
  content: "";
  left: 0;
  right: 0;
  top: 0;
  background-image: linear-gradient(to bottom, #000 0%, transparent 100%);
  pointer-events: none;
  height: 30rem;
  width: 100%;
}
.concept .titlecontent {
  position: absolute;
  top: 100%;
  animation: scroll 70s linear 1s infinite;
}
.concept .titlecontent .txt {
  font-size: 75%;
  font-weight: 500;
}
*/
@keyframes scroll {
  0% {
    top: 100%;
  }
  100% {
    top: -170%;
  }
}
@media only screen and (min-width: 768px) {
  .concept {
    font-size: 2.4rem;
    padding: 12rem 3rem;
  }
}