@charset "utf-8";
/* CSS Document */

/*-----------------------------------------------------------*/
/*ヘッダー*/

#top #header_wrap{
	width: 100%;
	min-height: 5.74vw;/*85*/
	display: flex;
	justify-content: flex-end;
	background: rgba(255,255,255,0.85);
	/*overflow: hidden;*/
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	z-index: 2;
}

#top #header_wrap h1{
	width: 20.95vw;/*310*/
	margin: 1.28vw 9.1% 0.27vw 0;/*19 135 4*/
}

#top #header_wrap h1 img{
	width: 100%;
	height: auto;
}

#top #header_wrap .gnavi{
	width: 42.64vw;/*631*/
	margin-right: 19.46vw;/*288*/
}

#top #header_wrap .gnavi ul{
	height: calc(100% - 1.49vw);/*22*/
	list-style: none;
	display: flex;
	justify-content: space-between;
	margin-top: 0.74vw;/*11*/
}

#top #header_wrap .gnavi ul li{
	width: 9.05vw;/*134*/
	box-sizing: border-box;
	border-left: 1px solid #C9C9C9;
	position: relative;
}

#top #header_wrap .gnavi ul li:nth-child(3){
	width: 13.31vw;
}

#top #header_wrap .gnavi ul li:nth-child(4){
	width: 11.22vw;
}

#top #header_wrap .gnavi ul li a{
	display: block;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	text-align: center;
	padding-top: 2.36vw;/*35*/
	position: relative;
}

#top #header_wrap .gnavi ul li a::before{
	content: 'Our Services';
	display: inline-block;
    font-family: source-han-sans-japanese, sans-serif;
    font-weight: 500;
    font-style: normal;
	font-size: 1.01vw;
	color: #008FCE;
	width: 100%;
	position: absolute;
	top: 0.54vw;/*8*/
	left: 50%;
	transform: translateX(-50%);
}

#top #header_wrap .gnavi ul li:nth-child(3) a::before{
	white-space: pre;
	content: 'Technical Intern\ATraining Program';
	display: inline-block;
    font-family: source-han-sans-japanese, sans-serif;
    font-weight: 500;
    font-style: normal;
	font-size: 1.01vw;
	line-height: 1.13;
	color: #008FCE;
	width: 100%;
	position: absolute;
	top: -0.20vw;/*-3*/
	left: 50%;
	transform: translateX(-50%);
}

#top #header_wrap .gnavi ul li:nth-child(4) a::before{
	white-space: pre;
	content: 'Specified Skilled\AWorker Program';
	display: inline-block;
    font-family: source-han-sans-japanese, sans-serif;
    font-weight: 500;
    font-style: normal;
	font-size: 1.01vw;
	line-height: 1.13;
	color: #008FCE;
	width: 100%;
	position: absolute;
	top: -0.20vw;/*-3*/
	left: 50%;
	transform: translateX(-50%);
}

#top #header_wrap .gnavi ul li:last-child a::before{
	content: 'About us';
	display: inline-block;
    font-family: source-han-sans-japanese, sans-serif;
    font-weight: 500;
    font-style: normal;
	font-size: 1.01vw;
	color: #008FCE;
	width: 100%;
	position: absolute;
	top: 0.54vw;/*8*/
	left: 50%;
	transform: translateX(-50%);
}

#top #header_wrap .contact_btn{
	position: absolute;
	top: 0;
	right: 0;
	width: 19.46vw;/*288*/
	/*min-width: 19.46vw;/*288*/
	height: 7.30vw;/*108*/
	background: url("image/common/head_bg.png")no-repeat #ED1C24 right 1.42vw top 1.08vw;
	background-size: 4.53vw auto;/*67*/
	border-bottom-left-radius: 5px;
}

#top #header_wrap .contact_btn a{
	display: block;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	position: relative;
	overflow: hidden;
}

#top #header_wrap .contact_btn a:hover{
	opacity: 1;
}

/*キラッと光る*/
#top #header_wrap .contact_btn a::before {
  content: '';
    /*絶対配置でキラッと光るの位置を決める*/
  position: absolute;
  top: 0;
  left: -75%;
    /*キラッと光る形状*/
    width: 50%;
  height: 100%;
  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.3) 100%);
  transform: skewX(-25deg);
}

/*hoverした際の移動のアニメーション*/
#top #header_wrap .contact_btn a:hover::before {
  animation: shine 0.7s;
}

@keyframes shine {
  100% {
    left: 125%;
  }
}

#top #header_wrap .contact_btn a dl{
	padding: 1.55vw 0 0 1.69vw;/*23 25*/
	color: #fff;
}

#top #header_wrap .contact_btn a dl dt{
	font-size: 1.79vw;/*26.5*/
	padding-left: 3.51vw;/*52*/
	position: relative;
}

#top #header_wrap .contact_btn a dl dt::before{
	content: '';
	display: inline-block;
	background: url("image/common/head_ico.png")no-repeat;
	background-size: contain;
	width: 2.30vw;/*34*/
	height: 1.76vw;/*26*/
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
}

#top #header_wrap .contact_btn a dl dd{
	font-size: 1.35vw;/*20*/
}


/*-----------------------------------------------------------*/

#slider {
    width: 100%;
    height: 100vh;/*スライダー全体の縦幅を画面の高さいっぱい（100vh）にする*/
	position: relative;
}

@media (orientation: portrait){
	#slider{
		height: 858px;
	}
}



#slider .catch_area{
	position: absolute;
	/*top: 16.89rem;/*250*/
	top: 41.77%;
	left: 10.68rem;/*158*/
	width: 42.43rem;/*628*/
	background: url("image/top/catch_bg.png")no-repeat;
	background-size: 100% auto;
	/*background-position: top 12.84rem center;/*190*/
	background-position: top 7.5rem center;/*190*/

}

#slider .catch_area h2{
	font-size: 5.34rem;/*78.99*/
	line-height: 1.06;
	letter-spacing: 0.05em;
	color: #fff;
	padding-left: 4.5rem;/*60*/
	padding-bottom: 2.16rem;/*32*/
	position: relative;
}


#slider .catch_area dl{
	padding: 1.69rem 0 13.51rem 4.50rem;/*25 200 60*/
	color: #fff;
}

#slider .catch_area dl dt{
	font-size: 2.70rem;/*40*/
	letter-spacing: 0.2em;
}

#slider .catch_area dl dd{
	margin-top: 0.68rem;/*10*/
	font-size: 1.28rem;/*19*/
	line-height: 1.63;
	letter-spacing: 0.05em;
}

/**/

#slider .scroll a {
  display: inline-block;
  position: absolute;
  right: 17.43vw;/*258*/
  bottom: 0;
  z-index: 2;
  padding: 0 0 1.69vw;/*25*/
  color: #fff;
  line-height: 1;
}

#slider .scroll a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 4.12vw;/*61*/
  width: 1px;
  height: 7.16vw;/*106*/
  background: #fff;
  animation: sdl 1.5s cubic-bezier(1, 0, 0, 1) infinite;
}
@keyframes sdl {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  50.1% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}

/*-----------------------------------------------------------*/

.block01{
	overflow: hidden;
}

.block01 .block_inner{
	margin: 4.39rem auto 5.95rem;/*65 88*/
	position: relative;
	overflow: hidden;
}

.block01 .block_inner::before{
	content: '';
	display: inline-block;
	background: #D9E8ED;
	width: 40.20rem;
	height: 27.97rem;
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: -1;
}

.block01 .block_inner .service_area{
	width: 81.08rem;/*1200*/
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	overflow: hidden;
}

.block01 .block_inner .service_area .left{
	width: 40.00rem;/*592*/
}

.block01 .block_inner .service_area .left h2{
	font-size: 2.16rem;/*32*/
	font-weight: 500;
	line-height: 1;
	color: #008FCE;
	padding-left: 3.99rem;/*59*/
	position: relative;
}

.block01 .block_inner .service_area .left h2 span{
	display: block;
	font-size: 4.26rem;/*63*/
	padding-bottom: 3.72rem;/*55*/
}

.block01 .block_inner .service_area .left h2::before{
	content: '';
	display: inline-block;
	background: #008FCE;
	width: 39.80rem;/*589*/
	height: 0.61rem;/*9*/
	position: absolute;
	top: 6.01rem;/*89*/
	left: 0;
}

.block01 .block_inner .service_area .left .image{
	width: 100%;
	margin: 3.99rem 0 3.18rem;/*59 47*/
}

.block01 .block_inner .service_area .right{
	width: 35.95rem;/*532*/
	margin-right: 1.35rem;/*20*/
}

.block01 .block_inner .service_area .right p{
	margin-top: 5.07rem;/*75*/
	font-size: 1.22rem;/*18*/
	line-height: 2;
}

.block01 .block_inner .service_area .right .btn01{
	width: 100%;
	margin-top: 3.72rem;/*55*/
}

.block01 .block_inner .service_area .right .btn01 a{
	display: block;
	width: 100%;
	height: 9.12rem;/*135*/
	box-sizing: border-box;
	background: url("image/top/btn_ico03.png")no-repeat #0071BC right 2.03rem bottom 1.89rem;/*30 28*/
	background-size: 2.23rem auto;/*33*/
	position: relative;
	overflow: hidden;
}

.block01 .block_inner .service_area .right .btn01 a:hover{
	opacity: 1;
}

/*キラッと光る*/
.block01 .block_inner .service_area .right .btn01 a::before {
  content: '';
    /*絶対配置でキラッと光るの位置を決める*/
  position: absolute;
  top: 0;
  left: -75%;
    /*キラッと光る形状*/
    width: 50%;
  height: 100%;
  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.3) 100%);
  transform: skewX(-25deg);
}

/*hoverした際の移動のアニメーション*/
.block01 .block_inner .service_area .right .btn01 a:hover::before {
  animation: shine 0.7s;
}

@keyframes shine {
  100% {
    left: 125%;
  }
}

.block01 .block_inner .service_area .right .btn01 a dl{
	padding: 1.69rem 0 0 7.09rem;/*25 105*/
	position: relative;
	color: #fff;
}

.block01 .block_inner .service_area .right .btn01 a dl dt{
	font-size: 1.22rem;/*18*/
	letter-spacing: 0.1em;
}

.block01 .block_inner .service_area .right .btn01 a dl dd{
	margin-top: 1.42rem;/*21*/
	font-size: 1.55rem;/*23*/
	letter-spacing: 0.1em;
}

.block01 .block_inner .service_area .right .btn01 a dl::before{
	content: '';
	display: inline-block;
	background: url("image/top/btn_ico01.png")no-repeat;
	background-size: contain;
	width: 3.65rem;/*54*/
	height: 4.93rem;/*73*/
	position: absolute;
	top: 2.03rem;/*30*/
	left: 1.69rem;/*25*/
}

.block01 .block_inner .service_area .right .btn02{
	width: 100%;
	margin-top: 3.04rem;/*45*/
}

.block01 .block_inner .service_area .right .btn02 a{
	display: block;
	width: 100%;
	height: 9.12rem;/*135*/
	box-sizing: border-box;
	background: url("image/top/btn_ico03.png")no-repeat #009245 right 2.03rem bottom 1.89rem;/*30 28*/
	background-size: 2.23rem auto;/*33*/
	position: relative;
	overflow: hidden;
}

.block01 .block_inner .service_area .right .btn02 a:hover{
	opacity: 1;
}

/*キラッと光る*/
.block01 .block_inner .service_area .right .btn02 a::before {
  content: '';
    /*絶対配置でキラッと光るの位置を決める*/
  position: absolute;
  top: 0;
  left: -75%;
    /*キラッと光る形状*/
    width: 50%;
  height: 100%;
  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.3) 100%);
  transform: skewX(-25deg);
}

/*hoverした際の移動のアニメーション*/
.block01 .block_inner .service_area .right .btn02 a:hover::before {
  animation: shine 0.7s;
}

@keyframes shine {
  100% {
    left: 125%;
  }
}

.block01 .block_inner .service_area .right .btn02 a dl{
	padding: 1.69rem 0 0 7.09rem;/*25 105*/
	position: relative;
	color: #fff;
}

.block01 .block_inner .service_area .right .btn02 a dl dt{
	font-size: 1.22rem;/*18*/
	letter-spacing: 0.1em;
}

.block01 .block_inner .service_area .right .btn02 a dl dd{
	margin-top: 1.42rem;/*21*/
	font-size: 1.55rem;/*23*/
	letter-spacing: 0.1em;
}

.block01 .block_inner .service_area .right .btn02 a dl::before{
	content: '';
	display: inline-block;
	background: url("image/top/btn_ico02.png")no-repeat;
	background-size: contain;
	width: 4.05rem;/*60*/
	height: 4.46rem;/*66*/
	position: absolute;
	top: 2.03rem;/*30*/
	left: 1.82rem;/*27*/
}
	
/*-----------------------------------------------------------*/

.block02{
	/*height: 33.92rem;/*502*/
	background: url("image/top/block_bg.jpg")no-repeat;
	background-size: cover;
	overflow: hidden;
}

.block02 .block_inner{
	width: 81.08rem;/*1200*/
	height: 33.92rem;
	margin: 0 auto;
	position: relative;
}

.block02 .block_inner .c_area{
	width: 38.58rem;/*571*/
	background: #fff;
	box-sizing: border-box;
	border-radius: 0.68rem;/*10*/
	padding: 2.70rem 2.70rem 3.38rem;/*40 40 50*/
	position: absolute;
	top: 6.01rem;/*89*/
	right: -1.96rem;/*-29*/
}



.block02 .block_inner .c_area h2{
	font-size: 2.16rem;/*32*/
	font-weight: 500;
	line-height: 1;
	text-align: center;
}

.block02 .block_inner .c_area h2 span{
	display: block;
	width: 100%;
	font-size: 4.46rem;/*66*/
	color: #ED1C24;
	padding-bottom: 0.68rem;/*10*/
	border-bottom: 0.68rem solid #ED1C24;
	margin-bottom: 1.62rem;/*24*/
}

.block02 .block_inner .c_area .btn01{
	width: 19.05rem;/*282*/
	margin: 2.30rem auto 0;/*34*/
}

.block02 .block_inner .c_area .btn01 a{
	display: block;
	width: 100%;
	line-height: 4.80rem;/*71*/
	background: url("image/top/btn_ico03.png")no-repeat #ED1C24 right 1.69rem center;
	background-size: 2.16rem auto;
	font-size: 1.49rem;/*22*/
	text-align: center;
	color: #fff;
	position: relative;
	overflow: hidden;
}

.block02 .block_inner .c_area .btn01 a:hover{
	opacity: 1;
}

/*キラッと光る*/
.block02 .block_inner .c_area .btn01 a::before {
  content: '';
    /*絶対配置でキラッと光るの位置を決める*/
  position: absolute;
  top: 0;
  left: -75%;
    /*キラッと光る形状*/
    width: 50%;
  height: 100%;
  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.3) 100%);
  transform: skewX(-25deg);
}

/*hoverした際の移動のアニメーション*/
.block02 .block_inner .c_area .btn01 a:hover::before {
  animation: shine 0.7s;
}

@keyframes shine {
  100% {
    left: 125%;
  }
}



/*-----------------------------------------------------------*/

.block03{
	position: relative;
	overflow: hidden;
}

.block03::before{
	content: '';
	display: inline-block;
	background: #008FCE;
	width: 100%;
	height: 25.47rem;/*377*/
	position: absolute;
	/*top: 18.04rem;/*267*/
	/*bottom: 5.74rem;/*85*/
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	z-index: -1;
}

.block03 .block_inner{
	width: 81.08rem;/*1200*/
	/*margin: 6.42rem auto 0;/*95*/
	margin: 4.05rem auto;/*60*/
	overflow: hidden;
}

.block03 .block_inner .sns_area{
	width: 67.57rem;/*1000*/
	margin: 0 auto;
	display: flex;
	justify-content: space-around;
}

.block03 .block_inner .sns_area .left{
	width: 27.16rem;/*402*/
	min-width: 402px;
}

.block03 .block_inner .sns_area .left dl dt a{
	display: block;
	width: 100%;
	height: 7.57rem;/*112*/
	border: 1px solid #606060;
	box-sizing: border-box;
	background: #fff;
	position: relative;
}

.block03 .block_inner .sns_area .left dl dt a img{
	width: auto;
	height: 29px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.block03 .block_inner .sns_area .left dl dd{
	display: none;
}

.block03 .block_inner .sns_area .right{
	width: 27.16rem;/*402*/
	min-width: 402px;
}

.block03 .block_inner .sns_area .right dl dt a{
	display: block;
	width: 100%;
	height: 7.57rem;/*112*/
	border: 1px solid #606060;
	box-sizing: border-box;
	background: #fff;
	position: relative;
}

.block03 .block_inner .sns_area .right dl dt a img{
	width: auto;
	height: 29px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}


/**/

.block_insta{
	overflow: hidden;
}


.block_insta .block_inner{
	margin: 6.49rem auto 0;/*96*/
	text-align: center;
	overflow: hidden;
}

.block_insta .block_inner .sns_head{
	margin-bottom: 2.30rem;/*34*/
}

.block_insta .block_inner .sns_head img{
	width: auto;
	height: 2.57rem;/*38*/
}

/*-----------------------------------------------------------*/

.block04{
	overflow: hidden;
}

.block04 .block_inner{
	margin: 8.99rem auto 0;/*133*/
	overflow: hidden;
}

.block04 .block_inner h2{
	font-size: 3.72rem;/*55*/
	letter-spacing: 0.1em;
	text-align: center;
	margin-bottom: 1.49rem;/*22*/
}

.block04 .block_inner h2:first-letter{
	color: #008FCE;
}

.block04 .block_inner .gmap{
	line-height: 0;
}

.block04 .block_inner .gmap iframe{
	width: 100%;
	height: 29.86rem;/*442*/
}

/*-----------------------------------------------------------*/

.sbi_item img{
	display: none !important;
}

/*-----------------------------------------------------------*/
/*-----------------------------------------------------------*/

.block_news{
	padding: 5.07rem 0 0;/*75*/
}

.block_news .block_inner{
	width: 74.32rem;/*1100*/
	margin: 0 auto;
}

.block_news .block_inner h2{
	font-size: 2.16rem;/*32*/
	font-weight: 500;
	line-height: 1;
	color: #008FCE;
	padding-left: 3.99rem;/*59*/
	position: relative;
}

.block_news .block_inner h2 span{
	display: block;
	font-size: 3.04rem;/*45*/
	padding-bottom: 2.70rem;/*40*/
}

.block_news .block_inner h2::before{
	content: '';
	display: inline-block;
	background: #008FCE;
	width: 39.80rem;/*589*/
	height: 0.34rem;/*5*/
	position: absolute;
	top: 4.05rem;/*60*/
	left: 0;
}


.topNewsList{
	margin-top: 3.04rem;/*45*/
}

.topNewsList dl{
	display: flex;
	border-bottom: 1px solid #a6a6a6;
	padding: 15px 0;
}
.topNewsList dt{
	padding: 0 0.68rem 0 3.38rem;/*10 50*/
	display: flex;
	justify-content: space-between;
	font-size: 1.15rem;/*17*/
	color: #000000;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	width: 18.92rem;/*280*/
}
.topNewsList dt span{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 7.43rem;/*110*/
	height: 2.03rem;/*30*/
	font-size: 1.15rem;/*17*/
	font-weight: 500;
	color: #fff;
}

.newsCate01,.cat01{
	background: #1c5b8e;
}
.newsCate02{
	background: #29a6dd;
}

.cat02{
	background: #E41C24;
}

.cat03{
	background: #29A6DD;
}

.topNewsList dd{
	width: calc(100% - 18.92rem);
	padding: 0 1.35rem;/*20*/
}
.topNewsList dd a{
	font-size: 1.22rem;/*18*/
	color: #000000;
}


