


/*************************/
/******    common    *****/
/*************************/
.bg-blue{ background-color: #243A73; }
.bg-gray{ background-color: #F0F3F5; }

a{cursor: pointer;}
sup{font-size: 6px!important;}

.no-gutters{
    margin-right: 0;
    margin-left: 0;
    padding-right: 0;
    padding-left: 0;
}

.imgover {
    -webkit-transition: 0.3s ease-in-out;
    -moz-transition: 0.3s ease-in-out;
    -o-transition: 0.3s ease-in-out;
    transition: 0.3s ease-in-out;
}
.imgover:hover {
    opacity: 0.6;
    filter: alpha(opacity=60);
}


.link-arrow-icon{
    position: relative;
}

.link-arrow-icon i{
  font-family: "Font Awesome 5 Free";
  content: '\f105';
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  -webkit- transform: translateY(-50%);
}

.ol-list-pl{
    padding-left: 1rem!important;
    line-height: 1.6;
}


/* 992px以下 */
@media screen and (max-width: 992px){
}

/*大デバイス（デスクトップ, 1200px 未満）*/
@media screen and (max-width: 1024px) and (orientation: portrait) {
 .f-xl {
   font-size: 0.8rem!important;
 }
}
/*中デバイス（タブレット, 992px 未満）*/
@media (max-width: 991.98px) {
 .f-lg {
 }
}
/*小デバイス（横向きモバイル, 768px 未満）*/
@media (max-width: 767.98px) {
 .f-md {
   font-size: 1.8rem!important;
 }
}

/*極小デバイス（縦向きモバイル, 576px 未満）*/
@media (max-width: 575.98px) {
 .f-sm {
   font-size: 1.0rem;
 }
}


/*************************/
/******    layout    *****/
/*************************/

body{
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 300;
    color: #333;
}

p{ line-height: 2;
}

.inner{
    padding: 80px 0;
}


h2{
    font-size: 40px;
    font-family: 'Roboto Condensed', sans-serif;
}


/*************************/
/******     nav      *****/
/*************************/

#nav-toggle {
  position: fixed;
  top: 20px;
  right: 20px;
  height: 32px;
  cursor: pointer;
}
#nav-toggle > div {
  position: relative;
  width: 32px;
}
#nav-toggle span {
  width: 100%;
  height: 2px;
  left: 0;
  display: block;
  background: #fff;
  position: absolute;
  -webkit-transition: top 0.5s ease, -webkit-transform 0.6s ease-in-out;
  transition: top 0.5s ease, -webkit-transform 0.6s ease-in-out;
  transition: transform 0.6s ease-in-out, top 0.5s ease;
  transition: transform 0.6s ease-in-out, top 0.5s ease, -webkit-transform 0.6s ease-in-out;
}
#nav-toggle span:nth-child(1) {
  top: 0;
}
#nav-toggle span:nth-child(2) {
  top: 10px;
}
#nav-toggle span:nth-child(3) {
  top: 20px;
}
#nav-toggle:hover span:nth-child(1) {
  top: 0px;
}
#nav-toggle:hover span:nth-child(3) {
  top: 20px;
}

.open #nav-toggle span {
  background: #fff;
}
.open #nav-toggle span:nth-child(1) {
  top: 10px;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.open #nav-toggle span:nth-child(2) {
  top: 10px;
  width: 0;
  left: 50%;
}
.open #nav-toggle span:nth-child(3) {
  top: 10px;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

/* z-index */
#nav-toggle {
  z-index: 2002;
}

#container {
  z-index: 900;
}

#gloval-nav {
  background: #000;
  color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2001;
  text-align: center;
  display: -webkit-box;
  display: flex;
  visibility: hidden;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
          flex-direction: column;
  -webkit-box-pack: center;
          justify-content: center;
  -webkit-box-align: center;
          align-items: center;
  font-size: 18px;
  opacity: 0;
  -webkit-transition: opacity 0.6s ease, visibility 0.6s ease;
  transition: opacity 0.6s ease, visibility 0.6s ease;
}

#gloval-nav ul{
    padding-inline-start: 0px;
}

#gloval-nav a {
  display: block;
  color: #fff;
  text-decoration: none;
  padding: 10px 0;
  -webkit-transition: color 0.6s ease;
  transition: color 0.6s ease;
}
#gloval-nav a:hover {
  color: #666;
}
#gloval-nav ul {
  list-style: none;
}
#gloval-nav ul li, #gloval-nav .sns{
  opacity: 0;
  -webkit-transform: translateX(80px);
          transform: translateX(80px);
  -webkit-transition: opacity 0.2s ease, -webkit-transform 0.6s ease;
  transition: opacity 0.2s ease, -webkit-transform 0.6s ease;
  transition: transform 0.6s ease, opacity 0.2s ease;
  transition: transform 0.6s ease, opacity 0.2s ease, -webkit-transform 0.6s ease;
}
#gloval-nav ul li:nth-child(2) {
  -webkit-transition-delay: 0.1s;
          transition-delay: 0.1s;
}
#gloval-nav ul li:nth-child(3) {
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
#gloval-nav ul li:nth-child(4) {
  -webkit-transition-delay: 0.3s;
          transition-delay: 0.3s;
}

/* open */
.open {
  overflow: hidden;
}
.open #gloval-nav {
  visibility: visible;
  opacity: 1;
}
.open #gloval-nav li, #gloval-nav .sns {
  opacity: 1;
  -webkit-transform: translateX(0);
          transform: translateX(0);
  -webkit-transition: opacity 0.9s ease, -webkit-transform 0.2s ease;
  transition: opacity 0.9s ease, -webkit-transform 0.2s ease;
  transition: transform 0.2s ease, opacity 0.9s ease;
  transition: transform 0.2s ease, opacity 0.9s ease, -webkit-transform 0.2s ease;
}




.navbar{
    padding: 5px 10px 10px 20px;
    background-color: #243A73;
    /*background: url(../img/navi_bk.png) top left repeat-x;*/
}

.navbar-nav{
  position: absolute;
  top: 20px;
  right: 20px;
}

.navbar .nav-item{
    text-align: center;
    margin:0 10px 0 0;
    padding: 0 10px 0 0;
}

.navbar-nav .nav-link{
    color: #fff!important;
    font-size: 15px;
}

.navbar-nav .nav-link:hover{
  text-decoration: underline;
}

.navbar-nav .no-link:hover{ text-decoration: none; }





@media (max-width: 767.98px) {
  .logo img{ width: 80%; }

  .navbar{
    padding: 0px 10px 5px 20px;
  }
}




/*************************/
/******     top      *****/
/*************************/
.logo{
  color: #fff;
}


.top-mv{
  position: relative;
  height: 100vh; /* 全画面表示 */
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  background-image: url(../img/mv.jpg);

  -webkit-animation: mvTop 1s 0.5s linear forwards;
  animation: mvTop 1s 0.5s linear forwards;
  opacity: 0
}

@keyframes mvTop {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.top-sp-mv{
  position: relative;
  height: 100vh; /* 全画面表示 */
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  background-image: url(..//img/sp-mv@2x.png);
}



  .left-cut:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 140%;
    background: #fff;
    -webkit-transform-origin: left center;
    -ms-transform-origin: left center;
    transform-origin: left center;
    -webkit-transform: skew(0deg, -65deg);
    -ms-transform: skew(0deg, -65deg);
  }


.bg{
  position: absolute;
  top: 300px;
  left: 100px;
  z-index: 100;
}

/* 背景色が流れてくる */
.bg .bg-wrap {
  position: relative;
  display: inline-block;
  margin-top: 5px;
}
.bg.is-animated .bg-wrap::before {
  animation: bg 4s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  -webkit-background: linear-gradient(to right, #243A73 0%,#3b79cc 100%);
  background: linear-gradient(to right, #243A73 0%,#3b79cc 100%);
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform-origin: left center;
}

.bg.is-animated .-second::before {
  animation: bg 4s 0.5s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  -webkit-animation: bg 4s 0.5s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  opacity: 0;
}

.bg.is-animated .-third::before {
  animation: bg 4s 1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  -webkit-animation: bg 4s 1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  opacity: 0;
}


.bg .bg-wrap .inn {
  color: #fff;
  display: inline-block;
  font-weight: 300;
  font-size: 40px;
  padding: 10px 20px;
  position: relative;
  z-index: 1;
  -webkit-animation: mvTxtIn 1s linear forwards;
  animation: mvTxtIn 1s linear forwards;
}

.bg .bg-wrap .-txt_second{
  -webkit-animation: mvTxtIn 1s 0.5s linear forwards;
  animation: mvTxtIn 1s 0.5s linear forwards;
  opacity: 0
}

.bg .bg-wrap .-txt_third{
  -webkit-animation: mvTxtIn 1s 1s linear forwards;
  animation: mvTxtIn 1s 1s linear forwards;
  opacity: 0
}

@keyframes bg {
  0% {
    opacity: 0;
    transform: scaleX(0) translateX(0);
  }
  30% {
    transform: scaleX(1) translateX(0);
  }
  100% {
    transform: scaleX(1) translateX(0);
  }
  30%, 100% {
    opacity: 1;
  }
}



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

@keyframes mvTxtIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}


@media (max-width: 767.98px) {
  .logo img{ width: 80%; }
}






/******************************/
/******     philosophy    *****/
/******************************/
.philosophy-sec{
  padding-top: 180px;
  padding-bottom: 180px;
  position: relative;
}

.philosophy-bk:after{
  content: '';
  position: absolute;
  display: block;
  right: 0;
  top: 100px;
  background: #F0F3F5;
  width: 75%;
  height: 80%;
  z-index: -1;
}

.philosophy-sec .read{
  line-height: 2;
  margin-bottom: 80px;
  font-size: 18px;
}

.philosophy-sec h2{
    color: #3B4043;
    margin-bottom: 80px;
}

.philosophy-sec h2 span{
    display: block;
    font-size: 16px;
}

.philosophy-sec ol{
    line-height: 2.2;
}



@media (max-width: 767.98px) {

  .philosophy-sec{
    padding-top: 90px;
    padding-bottom: 60px;
  }

}


/******************************/
/******     business    *****/
/******************************/
.business-sec h2{
    color: #fff;
    padding-top: 120px;
}

.business-sec h2 span{
    display: block;
    font-size: 16px;
}

.business-sec .title-bk{
    height: 420px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    background-image: url(../img/business-img01.png);

}

.business-sec .box1{
  margin-top: -150px;
}

.business-sec .box2{
  margin-top: -75px;
}

.business-sec h3{
  padding: 50px 0;
  font-size: 24px;
  text-align: center;
}


@media (max-width: 767.98px) {

  .business-sec .box1{
    margin-bottom: 40px;
  }

  .business-sec .box2{
    margin-top: 0px;
  }

  .business-sec h3{
    padding: 30px 0 20px 0;
  }

}



/******************************/
/******     company    *****/
/******************************/
.company-sec h2{
    text-align: center;
    padding: 80px 0;
}

.company-sec h2 span{
    display: block;
    font-size: 16px;
}


.company-sec .scene{
    width: : 100%;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  background-image: url(../img/company-img01@2x.jpg);

}

.info{
  width: 70%;
  margin-left: 15%;
  padding-bottom: 80px;
  line-height: 2;
}

.info dl {
padding: 3px 0;
border-bottom: 1px solid #ccc;
}

.info dt {
padding-bottom: 2px;
}


@media (max-width: 991.98px) {

  .info{
    width: 90%;
    margin-left: 5%;
    padding-bottom: 40px;
  }

  .company-sec .scene{
      width: : 100%;
      height: 400px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    background-image: url(../img/company-img01.png);

  }

}


/******************************/
/******     recruit    *****/
/******************************/
.recruit-sec{
  padding-top: 120px;
  padding-bottom: 120px;
  position: relative;
}

.recruit-sec .read{
  line-height: 2;
  margin-bottom: 80px;
  font-size: 18px;
}

.recruit-sec h2{
    color: #3B4043;
    margin-bottom: 80px;
}

.recruit-sec h2 span{
    display: block;
    font-size: 16px;
}


@media (max-width: 767.98px) {

  .recruit-sec{
    padding-top: 90px;
    padding-bottom: 60px;
  }

  .recruit-sec .read{
    line-height: 2;
    margin-bottom: 40px;
  }

  .recruit-sec h2{
      margin-bottom: 40px;
  }
}





/******************************/
/******     map    *****/
/******************************/
.map-sec iframe{
    width: 100%;
    height: 400px;
}





/*************************/
/******    foofer    *****/
/*************************/
footer{
    font-size: 14px;
    color: #fff;
}


#toTop{
  display: none;
  position: fixed;
  right: 10px;
  bottom: 10px;
  cursor: pointer;
}


@media (max-width: 767.98px) {
  #toTop{
    right: 0px;
  }
  #toTop img{
    width: 80%;
  }
}
