@charset "UTF-8";
/* CSS Document */


/*MAIN CONTENTS
--------------------------------------------------*/
/*MAIN VISUAL*/
.main_visual{
	position: relative;
	text-align: center;
}
.main_visual .catch{
	font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
	color: #fff;
	text-shadow: 0 0 10px #3691e5, 1px 1px 8px #3691e5, -1px 1px 8px #3691e5, 1px -1px 8px #3691e5, -1px -1px 8px #3691e5;
	width: 100%;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	z-index: 3;
}
.main_visual .catch span{
	display: block;
}
.main_visual .video_box{
	display: inline-block;
	width: 100%;
	height: auto;
	overflow: hidden;
}
.about_top .text{
    line-height: 1.6;
}
/* BTN */
.btn{
	display: inline-block;
}
.btn a{
	display: block;
	color: #fff;
	background: #e84653;
	border: 1px #e84653 solid;
	padding: 10px;
	-webkit-transition:all 0.2s ease-in;
	-moz-transition:all 0.2s ease-in;
	-ms-transition:all 0.2s ease-in;
	-o-transition:all 0.2s ease-in;
	transition:all 0.2s ease-in;
}
p.btn a:hover{
	color: #e84653;
	background: #fff;
}
/* 共通 */
.about_top,
.service_top .wrapper{
	text-align: center;
}
.about_top .sect_title,
.service_top .sect_title{
	display: inline-block;
	border-bottom: 2px #f29600 solid;
}
/* SERVICE */
.service_top{
	background: #D4D4D4;
}
.service_top .flexbox div{
	background: #fff;
	-webkit-transition:all 0.4s ease-in;
	-moz-transition:all 0.4s ease-in;
	-ms-transition:all 0.4s ease-in;
	-o-transition:all 0.4s ease-in;
	transition:all 0.4s ease-in;
	-webkit-opacity: 0;
	-moz-opacity: 0;
	-ms-opacity: 0;
	-o-opacity: 0;
	opacity: 0;
	box-shadow: 2px 2px 4px #fff,-2px -2px 4px #fff,2px -2px 4px #fff,-2px 2px 4px #fff;
}
.service_top .flexbox div.active{
	-webkit-opacity: 1;
	-moz-opacity: 1;
	-ms-opacity: 1;
	-o-opacity: 1;
	opacity: 1;
	box-shadow: 0px 0px 0px #fff;
}
.service_top .flexbox div a{
	display: block;
	position: relative;
	cursor: pointer;
	padding: 10px;
	background-repeat: no-repeat;
}
.service_top .flexbox div:nth-child(1) a{
	background-image: url("../images/web_icon.svg");
}
.service_top .flexbox div:nth-child(2) a{
	background-image: url("../images/cons_icon.svg");
}
.service_top .flexbox div .en_text{
	display: block;
	font-weight: 700;
}
.service_top .flexbox div .en_text{
	color: #f29600;
}
.service_top .flexbox div p:nth-child(1),
.service_top .flexbox div p:nth-child(2){
	position: absolute;
}
.service_top .flexbox div p:nth-child(2){
	color: #888;
}
/*MEDIA QUERIES
--------------------------------------------------*/
/*smartphone*/
@media (max-width: 640px) {
	/*LAYOUT---------------------------*/
    .main_visual .catch{
		font-size: 7.2vw;
    }
	.video_box video{
		width: 120%;
	}
    /*BTN*/
    p.btn{
		margin-top: 20px;
		width: 50%;
	}
    p.btn a{
		font-size: 14px;
    }
    /*MAIN CONTENTS*/
    .about_top .sect_title,
    .service_top .sect_title{
        width: 80%;
        font-size: 18px;
		padding-bottom: 3px;
    }
	.about_top,
	.service_top{
		padding-top: 20px;
		padding-bottom: 25px;
	}
	/*ABIUT*/
    .about_top .text{
        margin-top: 15px;
    }
    .about_top p span{
		display: block;
    }
	/*SERVICE*/
    .service_top .flexbox{
        flex-direction: column;
		align-items: center;
		margin-top: 25px;
    }
	.service_top .flexbox div{
		margin-bottom: 15px;
	}
    .service_top .flexbox div a{
		display: block;
        height:  240px;
        width: 300px;
		text-align: left;
        background-size:  auto 120px;
        background-position: top 10px center;
    }
	.service_top .flexbox div:last-child{
		margin-bottom: 5px;
	}
    .service_top .flexbox div p:nth-child(1),
    .service_top .flexbox div p:nth-child(2){
        width: calc(100% - 20px);
		text-align: center;
    }
    .service_top .flexbox div p:nth-child(1){
        bottom: calc(5em + 10px);
    }
    .service_top .flexbox div p:nth-child(2){
        bottom: calc(1em + 10px);
    }
    .service_top .flexbox div p:nth-child(2) span{
		display: block;
    }
}
/*tablet*/
@media (min-width: 641px) and (max-width: 893px) {
	/*LAYOUT---------------------------*/
    .main_visual .catch{
		font-size: 6.4vw;
    }
    /*BTN*/
    p.btn{
		margin-top: 20px;
	}
    p.btn a{
		font-size: 15px;
		width: 240px;
    }
    /*MAIN CONTENTS*/
    .about_top .sect_title,
    .service_top .sect_title{
        width: 420px;
        font-size: 18px;
		padding-bottom: 4px;
    }
	.about_top,
	.service_top{
		padding-top: 20px;
		padding-bottom: 30px;
	}
	/*ABOUT*/
    .about_top .text{
        margin-top: 20px;
    }
	/*SERVICE*/
    .service_top .flexbox{
        flex-direction: column;
		align-items: center;
		margin-top: 25px;
    }
	.service_top .flexbox div{
		margin-bottom: 15px;
	}
    .service_top .flexbox div a{
		display: block;
        height:  120px;
        width: 620px;
		text-align: left;
        background-size:  auto 100px;
        background-position: top 10px left 15px;
    }
	.service_top .flexbox div:last-child{
		margin-bottom: 5px;
	}
    .service_top .flexbox div p:nth-child(1),
    .service_top .flexbox div p:nth-child(2){
        width: calc(100% - 140px);
		left: 130px;
    }
    .service_top .flexbox div p:nth-child(1){
        bottom: calc(4em + 10px);
    }
    .service_top .flexbox div p:nth-child(1) b{
		font-size: 16px;
    }
    .service_top .flexbox div p:nth-child(2){
        bottom: calc(2em + 10px);
    }
	.service_top .flexbox div a:after{
		position: absolute;
		top: 50%;
		right: 10px;
		content: "";
		width: 5px;
		height: 5px;
		overflow: hidden;
		border-right: 1px #666 solid;
		border-bottom: 1px #666 solid;
		transform: rotate(-45deg);
	}
}
/*PC*/
@media (min-width: 894px) {
	/*LAYOUT---------------------------*/
    .main_visual .catch{
		font-size: 68px;
    }
	.main_visual .video_box{
		max-height: 1080px;
	}
    /*BTN*/
    p.btn{
		margin-top: 30px;
	}
    p.btn a{
		font-size: 15px;
		width: 240px;
    }
    /*MAIN CONTENTS*/
    .about_top .sect_title,
    .service_top .sect_title{
        width: 280px;
        font-size: 20px;
		padding-bottom: 8px;
        -webkit-transition:all 0.2s ease-in;
        -moz-transition:all 0.2s ease-in;
        -ms-transition:all 0.2s ease-in;
        -o-transition:all 0.2s ease-in;
        transition:all 0.2s ease-in;
    }
	.about_top .sect_title.hover,
    .service_top .sect_title.hover{
        width: 760px;
	}
	.about_top,
	.service_top{
		padding-top: 30px;
		padding-bottom: 50px;
	}
	/*ABOUT*/
    .about_top .text{
        margin-top: 30px;
    }
    /*SERVICE*/
    .service_top .flexbox{
        justify-content: center;
        align-items: center;
		margin-top: 30px;
    }
	.service_top .flexbox div{
		margin: 0 10px;
	}
    .service_top .flexbox div a{
        height:  260px;
        width: 260px;
        background-size:  auto 130px;
        background-position: top 10px center;
        -webkit-transition:all 0.2s ease-in;
        -moz-transition:all 0.2s ease-in;
        -ms-transition:all 0.2s ease-in;
        -o-transition:all 0.2s ease-in;
        transition:all 0.2s ease-in;
        -webkit-opacity: 1;
        -moz-opacity: 1;
        -ms-opacity: 1;
        -o-opacity: 1;
        opacity: 1;
    }
    .service_top .flexbox div a:hover{
        background-size: auto 145px;
        -webkit-opacity: 0.5;
        -moz-opacity: 0.5;
        -ms-opacity: 0.5;
        -o-opacity: 0.5;
        opacity: 0.5;
    }
    .service_top .flexbox div p:nth-child(1),
    .service_top .flexbox div p:nth-child(2){
        width: calc(100% - 20px);
    }
    .service_top .flexbox div p:nth-child(1){
        bottom: calc(4em + 10px);
    }
    .service_top .flexbox div p:nth-child(2){
        bottom: calc(1em + 10px);
    }
    .service_top .flexbox div p:nth-child(2) span{
		display: block;
    }
}