@charset "utf-8";

section.hero{
  background-color: #041023;
  color: #fff;
  position: relative;
  overflow: hidden;
}
section.hero .inner{
  height: 100vh;
  position: relative;
}
section.hero .copy{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
section.hero .copy .en{
  opacity: .37;
}
section.hero .copy .main{
  font-size: clamp(30px, 9vw, 46px);
  margin-bottom: .3em;
  white-space: nowrap;
}
section.hero .copy .message{
  max-width: 29em;
  margin: 0 auto;
}
section.hero .video{
  position: absolute;
  left: 0;
  top: 0;
}
section.hero .video::before{
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background-color: rgba(5,20,33,.61);
}
@media screen and (max-width: 1279px){

}
@media screen and (max-width: 1090px){
  section.hero .copy .main{
    font-size: clamp(25px, 8vw, 40px);
    margin-bottom: .3em;
  }
}
@media screen and (max-width: 520px){
  section.hero .copy{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    padding: 0 6vw;
    width: 100%;
    box-sizing: border-box;
  }
  section.hero .copy .message{
    max-width: 20em;
    margin: 0 auto;
  }
}

/*--------------------------------------------------------------------*/

section.hero .scroll{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 10em;
  margin: auto;
  padding-bottom: 2em;
  transition: .3s;
}
section.hero .scroll:hover{
  opacity: 0.6;
}
section.hero .scroll .arrow{
  transition: transform .3s;
}
section.hero .scroll:hover .arrow{
  transform: translateY(8%);
}
section.hero .hint{
  margin-top: 1em;
}
@media screen and (min-width: 521px){

}
@media screen and (max-width: 520px){

}

section.hero .scroll .arrow::before,
section.hero .scroll .arrow::after {
  content: none;
}


/*--------------------------------------------------------------------*/

section.hero .label{
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 4.7em;
  overflow: hidden;
  border-left: 1px solid rgba(255,255,255,.35);
  background-color: rgba(255,255,255,.035);
}
section.hero .label .com{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) rotate(90deg);
  white-space: nowrap;
}
@media screen and (max-width: 780px){
  section.hero .label{
    display: none;
  }
}
@media screen and (max-width: 520px){
  section.hero .label{
    display: none;
  }
}

/*--------------------------------------------------------------------*/

section.hero .down{
  position: absolute;
  left: 1em;
  bottom: 1em;
}
section.hero .down .item{
  width: 2px;
  height: 12px;
  background-color: #fff;
  margin-bottom: 5px;
  animation: down 1.5s linear infinite;
}
section.hero .down .item:nth-of-type(2){
  animation-delay: .15s;
}
section.hero .down .item:nth-of-type(3){
  animation-delay: .4s;
}
@media screen and (min-width: 521px){

}
@media screen and (max-width: 520px){

}
@keyframes down{
  0%{
    background-color: #fff;
  }
  20%{
    background-color: #085196;
  }
  40%{
    background-color: #fff;
  }
}

/*--------------------------------------------------------------------*/

section.business{
  padding: 4em 0;
  overflow: hidden;
}
section.business .box{
  padding-top: 8em;
}
section.business .container{
  position: relative;
  min-height: 500px;
}
section.business .container .reading{
  padding-left: 2em;
  max-width: 27em;
}
@media screen and (min-width: 521px) and (max-width: 1279px){
  section.business .box{
    padding-top: 6em;
  }
  section.business .container{
    padding: 0 6vw;
  }
  section.business .container .reading{
    padding-left: 2em;
    max-width: 35%;
  }
}
@media screen and (min-width: 521px) and (max-width: 730px){
  section.business .container{
    padding: 0 3vw;
  }
  section.business .container .reading{
    padding-left: 2em;
    max-width: 43%;
    margin-right: 2%;
  }
}
@media screen and (max-width: 830px){
  section.business .box{
    padding-top: 2em;
  }
}
@media screen and (max-width: 520px){
  section.business .box{
    padding-top: 6em;
  }
  section.business .container .reading{
    padding: 0 6vw !important;
  }
}

/*--------------------------------------------------------------------*/

section.business .container .reading .heading{
  margin-bottom: 1em;
}
section.business .container .reading .heading .label{
  margin-left: -1.5em;
}
section.business .container .reading .heading .main{
  font-size: clamp(40px, 15vw, 66px);
}
@media screen and (max-width: 880px){
  section.business .container .reading .heading .main{
    font-size: clamp(25px, 15vw, 45px);
  }
}
@media screen and (max-width: 520px){
  section.business .container .reading .heading{
    text-align: center;
  }
}

/*--------------------------------------------------------------------*/

section.business .container .reading .bodying{

}
section.business .container .reading .bodying P + P{
  margin-top: 1.5em;
}
section.business .container .mockup{
  position: absolute;
  right: 0;
  bottom: 0;
  transform: translate(30%, 0%);
}
@media screen and (min-width: 521px) and (max-width: 1279px){
  section.business .container .mockup{
    max-width: 55%;
    position: relative;
    transform: none;
  }
  section.business .container .mockup img{
    max-width: 120%;
  }
}
@media screen and (min-width: 521px) and (max-width: 730px){
  section.business .container .mockup img{
    max-width: 160%;
  }
}
@media screen and (max-width: 520px){
  section.business .container .reading .bodying{
    font-size: 3.5vw;
  }
  section.business .container .mockup{
    width: 100%;
    position: relative;
    transform: none;
    margin-bottom: 2em;
  }
  section.business .container .mockup img{
    max-width: 135%;
  }
}

/*--------------------------------------------------------------------*/

section.business .container .mockup .freeasy{
  position: absolute;
  left: 0;
  bottom: -2em;
}
section.business .container .mockup .freeasy a{
  box-shadow: 6px 9px 15px rgba(0,0,0,.16);
}
@media screen and (max-width: 1279px){
  section.business .container .mockup .freeasy{
    max-width: 40%;
  }
}
@media screen and (max-width: 520px){
  section.business .container .mockup .freeasy{
    position: relative;
    bottom: 0;
    margin-top: -2em;
    padding: 1em 0;
  }
  section.business .container .mockup .freeasy a img{
    max-width: 240px;
  }
}

/*--------------------------------------------------------------------*/

section.business .container .banners{
  border: 1px solid #D4D4D4;
  background-color: rgba(255,255,255,.93);
  margin-top: 2em;
  flex-wrap: wrap;
  gap: 8px;
  padding: 1em 1em;
}
section.business .container .banners .item{
  box-sizing: border-box;
  width: calc((100% - 8px * (3 - 1)) / 3);
  padding: 8px;
  border: 1px solid #eee;
  background-color: #fff;
}
section.business .container .banners .item img{
  width: 100%;
}
@media screen and (min-width: 521px){

}
@media screen and (max-width: 520px){
  section.business .container .banners .item{
    width: calc((100% - 8px * (2 - 1)) / 2);
  }
}

/*--------------------------------------------------------------------*/

section.business .navigation{
  margin-bottom: 8em;
}
section.business .navigation .heading{
  margin-bottom: 2em;
}
section.business .navigation .bodying{
  max-width: 800px;
  margin: 0 auto;
  padding-top: 4em;
  background-image: url("../img/business_tree.png");
	background-repeat: no-repeat;
	background-position: top center;
	background-size: auto;
}
section.business .navigation .item{
  width: 33.333%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
section.business .navigation .item .image{
  box-shadow: 0 0 20px rgba(0,0,0,.07);
  border-radius: 50%;
}
section.business .navigation .item .label{
  margin: 1em 0;
}
section.business .navigation .item .scroll a{
  background-color: #000;
  display: block;
  width: 100%;
  max-width: 8em;
  box-sizing: border-box;
  padding: .25em 2em;
}
section.business .navigation .item .scroll a .icon_arrow{
  display: block;
}
section.business .navigation .item .scroll a .icon_arrow::before{
  width: .3em;
  height: .3em;
  border-width: 1px;
}
@media screen and (min-width: 521px){

}
@media screen and (max-width: 520px){
  section.business .navigation{
    margin-bottom: 0;
  }
  section.business .navigation .heading .en{
    font-size: 8vw;
  }
  section.business .navigation .bodying{
    background-size: 70%;
  }
  section.business .navigation .item .image{
    width: 20vw;
    height: 20vw;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  section.business .navigation .item .image img{
    width: 80%;
  }
  section.business .navigation .item .scroll a .icon_arrow{
    font-size: 1rem;
  }
}
@media screen and (min-width: 521px) and (max-width: 1279px){
  section.business .navigation{
    margin-bottom: 4em;
  }
  section.business .navigation .bodying{
    width: 80vw;
  }
}

/*--------------------------------------------------------------------*/

section.business .saas{
  background-image: url("../img/business_bg.svg");
	background-repeat: repeat-x;
	background-position-x: 0%;
  background-position-y: 20%;
	background-size: 1940px;
  animation: business_bg 60s linear infinite;
}
@media screen and (min-width: 521px){

}
@media screen and (max-width: 520px){

}
@keyframes business_bg{
  0%{
    background-position-x: 0%;
  }
  100%{
    background-position-x: -1940px;
  }
}

/*--------------------------------------------------------------------*/

section.business .media{

}
section.business .box.even .container{
  flex-direction: row-reverse;
}
section.business .box.even .container .reading{
  padding-left: 0;
  padding-right: 2em;
}
section.business .box.even .mockup{
  right: auto;
  left: 0;
  transform: translate(0%, 0%);
}
@media screen and (min-width: 521px){

}
@media screen and (max-width: 520px){

}

/*--------------------------------------------------------------------*/

section.business .ec{

}
@media screen and (min-width: 521px){

}
@media screen and (max-width: 520px){

}

/*--------------------------------------------------------------------*/

section.news{
  overflow: hidden;
  margin-top: 3em;
}
section.news .heading{
  background-color: #085196;
  max-width: 50%;
  height: 20em;
}
section.news .heading::before{
  background-color: #085196;
  background-image: url("../img/news_bg.png");
	background-repeat: no-repeat;
	background-position: right 17% top;
	background-size: auto;
  width: 100vw;
  height: 100%;
  right: 0;
  top: 0;
}
section.news .heading .index{
  padding-top: 4em;
}
section.news .heading .index .en{
  font-size: clamp(35px, 4vw, 40px);
}
section.news .bodying{
  padding: 3em 5em;
  max-width: 75%;
  box-sizing: border-box;
  margin-top: -13em;
}
section.news .bodying::before{
  background-color: #F6F6F6;
  width: 100vw;
  height: 100%;
  top: 0;
  left: 0;
}
section.news .bodying .item{
  padding-bottom: 1.5em;
  border-bottom: 1px solid rgba(0,0,0,.1);
  margin-bottom: 1.5em;
}
section.news .bodying .item:last-of-type{
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}
section.news .bodying .date{
  margin-right: 2em;
  white-space: nowrap;
}
section.news .bodying .category{
  padding-right: 2em;
}
section.news .bodying .category .label{
  padding: .1em .75em;
  white-space: nowrap;
  background-color: #085196;
}
section.news .bodying .content a{
  text-decoration: underline;
}
@media screen and (max-width: 1279px){
  section.news .heading{
    max-width: 70vw;
    padding: 0 6vw;
  }
  section.news .heading .index{
    padding-top: 2em;
  }
  section.news .bodying{
    padding: 3em 6vw;
    max-width: 85vw;
  }
}
@media screen and (max-width: 520px){
  section.news .heading{
    max-width: 100vw;
    height: 20em;
    padding: 0 6vw;
    box-sizing: border-box;
  }
  section.news .bodying{
    padding: 3em 12vw;
    max-width: 95vw;
    box-sizing: border-box;
    margin-top: -12em;
  }
  section.news .bodying .item{
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
  }
  section.news .bodying .upper{
    margin-bottom: 1em;
  }
  section.news .bodying .date{
    font-size: 1.2rem;
  }
  section.news .bodying .category{
    font-size: 1.1rem;
  }
  section.news .bodying .content{
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 840px) and (max-width: 1430px){
  section.news .bodying{
    padding-right: 20vw;
  }
}

/*--------------------------------------------------------------------*/

section.company{
  margin: 10em 0 10em 0;
  background-image: url("../img/company_bg.png");
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: auto;
}
section.company .heading{
  margin-bottom: 3em;
}
section.company .heading .en{
  font-size: clamp(35px, 4vw, 40px);
}
section.company .heading span{
  display: inline-block;
}
section.company .bodying table{
  max-width: 730px;
  margin: 0 auto;
}
section.company .bodying table tr{
  border-top: 1px solid #EFEFEF;
}
section.company .bodying table th,
section.company .bodying table td{
  padding: 1.2em 0;
}
section.company .bodying table th{
  font-weight: bold;
  padding-right: 2em;
  white-space: nowrap;
}
section.company .bodying table td{

}
section.company .bodying table .location .container .item{
  margin-right: 4em;
}
section.company .bodying table .location .address a .label{
  padding: .5em 2.7em .5em 1em;
  border-radius: 3em;
  background-color: #F2F2F2;
  margin-top: .75em;
  margin-bottom: 1em;
  display: inline-block;
  background-image: url("../img/icon_gmap.svg");
	background-repeat: no-repeat;
	background-position: right 1.8em top 55%;
	background-size: auto;
  line-height: 1;
}
@media screen and (min-width: 521px) and (max-width: 840px){
  section.company{
    padding-top: 7em;
    margin-bottom: 0;
  }
  section.company .bodying table{
    max-width: 90vw;
	  font-size: clamp(1.2rem, 1.5vw, 1.6rem);
  }
}
@media screen and (max-width: 520px){
  section.company{
    padding: 4em 6vw;
	  background-size: 200vw;
  }
  section.company .bodying table th,
  section.company .bodying table td{
    display: block;
    text-align: center;
  }
  section.company .bodying table th{
    padding-bottom: 0;
    padding-right: 0;
  }
  section.company .bodying table td{
    padding-top: 0;
  }
  section.company .bodying table .location .container{
    justify-content: space-between;
    margin-top: 1.5em;
    padding: 0 2.5%;
    align-items: stretch;
  }
  section.company .bodying table .location .container .item{
    max-width: 45%;
    margin-right: 0;
    text-align: left;
    font-size: 1.3rem;
  }
  section.company .bodying table .location .address a .label{
    font-size: 1.2rem;
  }
}

/*--------------------------------------------------------------------*/

section.recruit{
  padding: 4em 0;
}
section.recruit .image{
  flex: 1;
  margin-right: 10%;
}
section.recruit .image::after{
  background-color: #F6F6F6;
  width: 100vw;
  height: 85%;
  bottom: 0;
  right: 0;
}
section.recruit .image .box{
  position: relative;
  padding-bottom: 8em;
  padding-left: 7%;
  text-align: right;
}
section.recruit .image .item:last-of-type{
  position: absolute;
  right: -3em;
  bottom: 2em;
}
@media screen and (min-width: 521px){

}
@media screen and (max-width: 520px){
  section.recruit{
    padding: 0 6vw;
    margin-top: 3em;
  }
  section.recruit .container{
    flex-direction: column-reverse;
  }
  section.recruit .image .item:nth-of-type(1) img{
    max-width: 100%;
  }
  section.recruit .image .item:nth-of-type(2) img{
    max-width: 60%;
  }
}
@media screen and (min-width: 521px)  and (max-width: 876px){
  section.recruit .image .item:last-of-type{
    right: -5vw;
  }
}
@media screen and (min-width: 521px)  and (max-width: 1279px){
  section.recruit .image{
    max-width: 50%;
  }
  section.recruit .image .item:nth-of-type(1){
    max-width: 100%;
  }
  section.recruit .image .item:nth-of-type(2){
    max-width: 60%;
  }
  section.recruit .image .item:nth-of-type(1) img,
  section.recruit .image .item:nth-of-type(2) img{
    max-width: 100%;
  }
}

/*--------------------------------------------------------------------*/

section.recruit .information{
  width: 40%;
}
section.recruit .information .heading{
  position: relative;
  margin-bottom: 3em;
}
section.recruit .information .heading .en{
  font-size: clamp(35px, 4vw, 40px);
}
section.recruit .information .heading .arch{
  position: absolute;
  right: 10%;
  top: 50%;
  transform: translate(0, -60%);
}
section.recruit .information .bodying .description{
  max-width: 18em;
  margin: 1em 0 2em 0;
}
section.recruit .information .bodying .link a{
  padding-right: 1.7em;
  background-image: url("../img/recruit_icon_arrow.svg");
	background-repeat: no-repeat;
	background-position: right center;
	background-size: auto;
  line-height: 1;
  padding-bottom: .3em;
}
section.recruit .information .bodying .link a .icon{
  padding-bottom: .2em;
  line-height: 1;
  display: inline-block;
}
section.recruit .information .bodying .link a .icon::after{
  width: 100%;
  height: 1px;
  background-color: #085196;
  bottom: 0;
}
@media screen and (min-width: 521px){

}
@media screen and (max-width: 520px){
  section.recruit .information{
    width: 100%;
    margin-bottom: 4em;
  }
  section.recruit .information .heading .arch{
    position: absolute;
    right: auto;
    left: -15vw;
    top: 50%;
    transform: translate(0, -60%) scale(0.6);
  }
  section.recruit .information .bodying .message{
    font-size: 6vw;
  }
  section.recruit .information .bodying .description{
    max-width: 22em;
    font-size: 1.4rem;
  }
  section.recruit .information .bodying .link a .icon{
    font-size: 1.3rem;
  }
}
@media screen and (min-width: 521px) and (max-width: 876px){
  section.recruit .information .heading .arch{
    max-width: 50vw;
  }
  section.recruit .information .heading .arch img{
    max-width: 100%;
  }
}
@media screen and (min-width: 521px) and (max-width: 1279px){
  section.recruit .information{
    flex: 1;
  }
}

/*--------------------------------------------------------------------*/

section.contact{
  padding: 5em 0;
}
section.contact .heading{
  margin-bottom: 3em;
}
section.contact .heading .en{
  font-size: clamp(35px, 4vw, 40px);
}
section.contact .bodying .item{
  width: 25%;
  box-sizing: border-box;
  padding: 2em 0;
}
section.contact .bodying .item::after{
  width: 1px;
  height: 80%;
  background-color: #E2E2E2;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
}
section.contact .bodying .item:last-of-type::after{
  display: none;
}
section.contact .bodying .container .item a{
  display: block;
}
section.contact .bodying .item .title{
  padding: .5em 0 1.5em;
  max-width: 9em;
  margin: 0 auto;
  height: 3em;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (min-width: 521px) and (max-width: 960px){
  section.contact{
    padding: 2em 0;
  }
}
@media screen and (min-width: 521px) and (max-width: 1190px){
  section.contact .bodying{
    padding: 0 10vw;
  }
  section.contact .bodying .container{
    flex-wrap: wrap;
  }
  section.contact .bodying .container .item{
    width: 50%;
  }
  section.contact .bodying .item:nth-of-type(even)::after{
    display: none;
  }
}
@media screen and (max-width: 520px){
  section.contact{
    padding: 6em 6vw 3em 6vw;
  }
  section.contact .heading{
    margin-bottom: 1.5em;
  }
  section.contact .bodying .container{
    flex-direction: column;
    padding: 0 5vw;
  }
  section.contact .bodying .container .item{
    width: auto;
    padding: 1em 0;
  }
  section.contact .bodying .item::after{
    width: 100%;
    height: 1px;
    background-color: #E2E2E2;
    right: 0;
    left: 0;
    top: auto;
    bottom: 0;
    margin: auto;
  }
  section.contact .bodying .container .item a{
    display: flex;
    justify-content: flex-start;
    align-items: center;
  }
  section.contact .bodying .container .item a .image{
    margin-right: .5em;
  }
  section.contact .bodying .container .item a .image img{
    width: 20vw;
  }
  section.contact .bodying .container .item a .title{
    text-align: left;
    padding: 0;
    margin: 0;
  }
  section.contact .bodying .container .item a .popup{
    margin-left: auto;
  }
  section.contact .bodying .container .item a .popup img{
    width: 13vw;
  }
}