@charset "UTF-8";
/* CSS Document */

/*ALL
--------------------------------------------------*/
div,p,h1,h2,h3,h4,ul,li,dl,dt,dd,ol,table,th,td,form,input,fieldset,a,section,article,nav{
	margin:0;
	padding:0;
	/*-webkit-tap-highlight-color:rgba(0, 0, 0, 0);*/
	/*-webkit-touch-callout:none;*/
	box-sizing:border-box;
}
fieldset{
	border:none;
}
.wrapper{
	width:100%;
	margin:0 auto;
	box-sizing:border-box;
	text-align: left;
	overflow:hidden;
}
.clear{
	clear:both;
}
.clearfix{
	height:1%;
	overflow:hidden;
}
.clearfix:after{
	content:"";
	display:block;
	clear: both;
}
a{
	text-decoration: none;
	color:#404040;
	cursor: pointer;
}
a img{
	border:none;
}
img,
video{
	width:100%;
	height:auto;
}
li{
	list-style:none;
}
/*LAYOUT
--------------------------------------------------*/
body{
	font-family:'Noto Sans JP','Lucida Grande',Meiryo,メイリオ,sans-serif;
	font-weight: 400;
	line-height:1.2;
	margin:0;
	padding:0;
	color: #404040;
	font-size-adjust:100%;
	width:100%;
	background-color: #fff;
}
.flexbox{
	display:-webkit-flex;
	display:-moz-flex;
	display:-ms-flex;
	display:-o-flex;
	display:flex;
}
/* CONTENTS
--------------------------------------------------*/
/* HEDER */
#header{
	background: rgb(255,255,255,0);
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 999;
	-webkit-transition: translate3d(0, 0, 0);
	-moz-transition: translate3d(0, 0, 0);
	-ms-transition: translate3d(0, 0, 0);
	-o-transition: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
	-webkit-backface-visibility:hidden;
    backface-visibility:hidden;
}
#header .flexbox{
	justify-content: space-between;
	align-items: center;
}
#header a{
	color: #404040;
	-webkit-transition:all 0.2s ease-in-out;
	-moz-transition:all 0.2s ease-in-out;
	-ms-transition:all 0.2s ease-in-out;
	-o-transition:all 0.2s ease-in-out;
	transition:all 0.2s ease-in-out;
}
#header a:hover{
	color: #EBEBEB;
}
#header .logo .logo_img{
	-webkit-transition:all 0.2s ease-in-out;
	-moz-transition:all 0.2s ease-in-out;
	-ms-transition:all 0.2s ease-in-out;
	-o-transition:all 0.2s ease-in-out;
	transition:all 0.2s ease-in-out;
}
#header .logo .logo_img{
	fill: #404040;
}
.open #header .logo .logo_img{
    fill: #989898;
}
#header .logo a:hover .logo_img{
	fill: #EBEBEB;
}
#header .logo{
	line-height: 0.9;
}
#header .logo .logo_img,
#header .logo span{
	display: block;
}
#header .logo span{
	font-weight: 500;
}
/* NAV BTN */
#header .nav_btn{
	position: fixed;
	z-index: 10000;
	-webkit-transition: translate3d(0, 0, 0);
	-moz-transition: translate3d(0, 0, 0);
	-ms-transition: translate3d(0, 0, 0);
	-o-transition: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
	-webkit-backface-visibility:hidden;
    backface-visibility:hidden;
}
#header .nav_btn span{
	display: block;
	position: relative;
	width: 37px;
	height: 28px;
	background: #404040;
	background: linear-gradient(to bottom, #404040, #404040);
    background-size: 100% 15%;
    background-repeat: no-repeat;
    background-position: center center;
	-webkit-transition:all 0.2s ease-in-out;
	-moz-transition:all 0.2s ease-in-out;
	-ms-transition:all 0.2s ease-in-out;
	-o-transition:all 0.2s ease-in-out;
	transition:all 0.2s ease-in-out;
	cursor: pointer;
	font-size: 0;
}
#header .nav_btn span:before,
#header .nav_btn span:after{
	height: 15%;
    width: 100%;
    position: absolute;
    left: 0;
    background-color: #404040;
    content: '';
	-webkit-transition:all 0.2s ease-in-out;
	-moz-transition:all 0.2s ease-in-out;
	-ms-transition:all 0.2s ease-in-out;
	-o-transition:all 0.2s ease-in-out;
	transition:all 0.2s ease-in-out;
}
#header .nav_btn span:before{
	top: 0;
	-webkit-transform-origin: 9% 150%;
	-moz-transform-origin: 9% 150%;
	-o-transform-origin: 9% 150%;
	transform-origin: 9% 150%;
}
#header .nav_btn span:after{
	bottom: 0;
	-webkit-transform-origin: 9% -50%;
	-moz-transform-origin: 9% -50%;
	-o-transform-origin: 9% -50%;
	transform-origin: 9% -50%;
}
.open #header .nav_btn span{
    background-size: 0 20%;
    transition-delay: 0s;
}
.open #header .nav_btn span:before{
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    transform: rotate(45deg);
    -webkit-transition-delay: 0.15s;
    -moz-transition-delay: 0.15s;
    -o-transition-delay: 0.15s;
    transition-delay: 0.15s;
}
.open #header .nav_btn span:after{
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
    -webkit-transition-delay: 0.15s;
    -moz-transition-delay: 0.15s;
    -o-transition-delay: 0.15s;
    transition-delay: 0.15s;
}
/* HEAD NAV */
#header .head_nav{
	position: relative;
}
#header .head_nav ul{
	display:-webkit-flex;
	display:-moz-flex;
	display:-ms-flex;
	display:-o-flex;
	display:flex;
	width: 100%;
}
#header .head_nav li a:before{
	display: inline-block;
	font-weight: 700;
}
#header .head_nav li.about a:before{
	content: "About";
}
#header .head_nav li.service a:before{
	content: "Service";
}
#header .head_nav li.recruit a:before{
	content: "Recruit";
}
#header .head_nav li.contact a:before{
	content: "Contact";
}
#header .wrapper:before{
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	left: 1%;
	width: 98%;
	border-bottom: 1px #ccc solid;
}
/* FOOTER */
#footer{
	background: #EEEEEE;
}
#footer .flexbox{
	justify-content: space-between;
	align-items: flex-end;
}
#footer .logo p{
	font-weight: 500;
}
#footer .logo p span,
#footer .text span{
    display: block;
}
#footer .text{
	text-align: right;
}
#footer:after{
	content:"";
	display: block;
	background-image: url("../images/m_line.gif");
	background-repeat: repeat-x;
	background-color: #666;
	overflow: hidden;
	height: 8px;
}
/*MEDIA QUERIES
--------------------------------------------------*/
/*sp+tab*/
@media (max-width: 893px) {
	/*LAYOUT---------------------------*/
	.open{
		overflow: hidden;
	}
	.open #header{
		background: rgba(255,255,255,1);
        -webkit-transition:all 0.2s ease-in-out;
        -moz-transition:all 0.2s ease-in-out;
        -o-transition:all 0.2s ease-in-out;
        transition:all 0.2s ease-in-out;
		overflow-y: hidden;
        height: 100vh;
	}
	.open #header .flexbox{
		flex-wrap: wrap;
    }
	#header .nav_btn{
		overflow: visible;
	}
	.open #header .head_nav{
		display: block;
        box-sizing: border-box;
        width: 100%;
	}
	.open #header .head_nav ul{
        position: relative;
		text-align: left;
		flex-wrap: wrap;
		height: 100vh;
	}
    #header .head_nav ul li{
		display: block;
        position: absolute;
		right: -100vw;
        width: 100%;
        -webkit-transition:all 0.3s ease-in-out;
        -moz-transition:all 0.3s ease-in-out;
        -o-transition:all 0.3s ease-in-out;
        transition:all 0.3s ease-in-out;
		margin-top: 15px;
		line-height: 1.8;
		border-bottom: 1px #AAA solid;
		z-index: 1000;
    }
	.open #header .head_nav ul li{
		right: 0;
    }
	.open #header .head_nav ul li:nth-child(2){
        top: 3em;
        -webkit-transition-delay: 0.2s;
        -moz-transition-delay: 0.2s;
        -o-transition-delay: 0.2s;
        transition-delay: 0.2s;
	}
	.open #header .head_nav ul li:nth-child(3){
        top: 6em;
        -webkit-transition-delay: 0.4s;
        -moz-transition-delay: 0.4s;
        -o-transition-delay: 0.4s;
        transition-delay: 0.4s;
	}
	.open #header .head_nav ul li:nth-child(4){
        top: 9em;
        -webkit-transition-delay: 0.6s;
        -moz-transition-delay: 0.6s;
        -o-transition-delay: 0.6s;
        transition-delay: 0.6s;
	}
	#header a{
		display: block;
	}
	#header .head_nav li a:before{
		margin-right: 8px;
	}
	.open #header .wrapper:before{
        display: none;
    }
}
/*smartphone*/
@media (max-width: 640px) {
	/*LAYOUT---------------------------*/
	body{
		font-size:14px;
		min-width:320px;
		max-width:640px;
	}
	.wrapper{
		padding: 0 10px;
	}
	/*HEADER/FOOTER*/
    #header .wrapper{
        padding-top: 10px;
		padding-bottom: 15px;
    }
    #header .logo .svg{
		width: 200px;
    }
    #header .logo span{
        font-size: 12px;
		margin-top: 3px;
		padding-left: 60px;
	}
    #header .head_nav li a:before{
		font-size: 16px;
	}
    #header .nav_btn{
        top: 28px;
        right: 10px;
    }
/*FOOTER*/
	#footer .wrapper{
        padding-top: 20px;
		padding-bottom: 20px;
	}
	#footer .flexbox{
		display: block;
		text-align: center;
	}
    #footer .logo {
		display: block;
		padding-bottom: 15px;
	}
    #footer .logo img{
		display: inline-block;
		width: 220px;
    }
    #footer .logo p{
        font-size: 12px;
		width: 100%;
	}
    #footer .logo p span{
        display: inline-block;
    }
    #footer .text{
		text-align: center;
		font-size: 12px;
	}
	#footer .text span{
		display: inline-block;
	}
}
/*tablet*/
@media (min-width: 641px) and (max-width: 893px) {
	/*LAYOUT---------------------------*/
	body{
		font-size:14px;
		min-width:641px;
		max-width:893px;
	}
	.wrapper{
		padding: 0 20px;
	}
	/*HEADER/FOOTER*/
    #header .wrapper{
        padding-top: 15px;
		padding-bottom: 20px;
    }
    #header .logo .svg{
		width: 240px;
    }
    #header .logo span{
        font-size: 14px;
		margin-top: 3px;
		padding-left: 70px;
	}
    #header .head_nav li a:before{
		font-size: 18px;
	}
    #header .nav_btn{
        top: 40px;
        right: 20px;
    }
    #footer .logo img{
		width: 200px;
    }
	#footer .logo p{
		font-size: 14px;
	}
	#footer .logo p span{
		display: inline-block;
	}
	#footer .wrapper{
        padding-top: 15px;
		padding-bottom: 20px;
	}
}
/*PC*/
@media (min-width: 894px) {
	/*LAYOUT---------------------------*/
	body{
		font-size:14px;
		min-width:894px;/*1024pxだったものを変更*/
	}
	.wrapper{
		max-width:1260px;
		padding: 0 30px;
	}
	/*HEADER/FOOTER*/
	#header .logo .svg{
        width: 220px;
		height: auto;
    }
    #header .logo span{
        font-size: 13px;
		margin-top: 3px;
		padding-left: 70px;
	}
    #header .wrapper{
        padding-top: 15px;
		padding-bottom: 20px;
    }
    #header .head_nav{
        display: block;
    }
    #header .head_nav ul{
        text-align: center;
    }
    #header .head_nav li{
		margin-left: 60px;
    }
    #header .head_nav li:nth-child(1){
		margin-left: 0;
    }
    #header .head_nav li a:before{
		display: block;
		font-size: 24px;
	}
	#header .nav_btn{
		display: none;
	}
    #footer .logo img{
        width: 180px;
    }
	#footer .logo p{
		font-size: 14px;
	}
	#footer .wrapper{
        padding-top: 70px;
		padding-bottom: 30px;
	}
}