@charset "utf-8";
/* CSS Document */

/* == header == */
header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 86px;
	z-index: 100;
	/*transition: all 500ms 0s ease;*/
	background-color: #FFFFFF;
}

#header_logo {
	display: block;
	z-index: 500;
	position: absolute;
	left: 20px;
	top: 0px;
	margin: auto;
	height: 100%;
}
#header_logo a{
	display: block;
	margin-top: 24px;
	line-height: 1em;
}
#header_logo img {
	display: inline-block;
	width: 135px;
	height: auto;
}
#header_logo a em{
	font-size: 1.8rem;
	vertical-align: middle;
	font-family: 'Ubuntu', sans-serif;
	font-style: normal;
	margin-left: 0.15em;
}
#header_logo a span{
	display: inline-block;
	vertical-align: bottom;
	font-size: 0.8rem;
	margin-left: 1em;
}

#header_nav {
	font-size: 0;
	padding-top: 15px;
	width: 100%;
	display: block;
	text-align: center;
	letter-spacing: -.4em;
}
#header_nav a {
	text-decoration: none;
	color: rgba(255,255,255,1.00);
}
#header_nav #main_menu{
	display: none;
}
#header_nav #main_menu a{
	font-size: 1.8rem;
	padding-right: 1em;
	padding-left: 1em;
	line-height: 52px;
	letter-spacing: 0.1em;
	position: relative;
}

#header_nav #main_menu a:before {
	content: "";
	display: block;
	display: none;
	position: absolute;
	width: 0;
	height: 2px;
	background-color: #AAC7FF;
	bottom: 0px;
	left: 0;
	right: 0;
	margin: auto;
	transition: width 300ms 0s ease;
}

#header_nav #main_menu a:hover:before {
    width: 20%;
}

.p_home #header_nav #main_menu li:nth-child(1) a:before,
.p_works #header_nav #main_menu li:nth-child(2) a:before,
.p_news #header_nav #main_menu li:nth-child(3) a:before,
.p_staff #header_nav #main_menu li:nth-child(4) a:before,
.p_company #header_nav #main_menu li:nth-child(4) a:before
/*.p_company #header_nav #main_menu li:nth-child(5) a:before*/{ width: 20%; background: #ffffff; }

#header_nav #sub_menu {
	position: absolute;
	right: 15px;
	top: 28px;
}
#header_nav #sub_menu li{
	margin-left: 8px;
}
#header_nav #sub_menu li a.header_nav_l1{
	color: #FFFFFF;
	background-color: #ffa10e;
/*	padding-right: 1.25em;
	padding-left: 1.25em;
	padding-top: 0.5em;
	padding-bottom: 0.75em;
	border-radius: 4px;*/
}
#header_nav #sub_menu li a {
	font-size: 1.2rem;
	letter-spacing: 0.1em;
	font-family: 'M PLUS Rounded 1c', sans-serif;
		padding-right: 1.25em;
	padding-left: 1.25em;
	padding-top: 0.5em;
	padding-bottom: 0.6em;
		border-radius: 4px;
}
#header_nav a.header_nav_sub {
	    color: #716f63;
		box-shadow:inset 0 0 0 2px #adaca9;
}
#header_nav #sub_menu li a.header_nav_l1:before{
	content: "";
	display: none;
	width: 0.5em;
	height: 0.5em;
	vertical-align: middle;
	margin-right: 0.5em;
	background-position: center center;
	background-size: 100% auto;
	background-repeat: no-repeat;
}
#header_nav #sub_menu li.sub_database a:before{	background-image: url(../img/comm_database.svg); }
#header_nav #sub_menu li.sub_recruit a:before{ background-image: url(../img/comm_recruit.svg);}
#header_nav #sub_menu li.sub_english a:before{ background-image: url(../img/arr_white.svg);}

.header_nav_wrap {
	display: inline-block;
	letter-spacing: normal;
}
.header_nav_wrap-hasChild .header_nav_children {
    display: block;
    position: absolute;
    top: 42px;
    left: 100%;
    background: rgba(0,0,0,0.7);
    font-size: 1rem;
    width: 100%;
    opacity: 0;
    transition: opacity 300ms 0s ease, left 300ms 0s ease;
    padding: 15px 25px;
}
.header_nav_children-main,
.header_nav_children-sup {
    padding: 0.8em 0;
    text-align: center;
}
.header_nav_children-sup {
    border-top: 1px solid rgba(124,124,124,0.7);
}
.header_nav_l1
{

}
.reserve,.login{

}
.reserve .header_nav_l1{

}
.login .header_nav_l1{
}


.header_nav_wrap-hasChild-on .header_nav_children {
    left: 0;
    opacity: 1;
}


.header_nav_l2 {
    display: inline-block;
    padding: 0.2em 1.2em;
    margin: 0.5em;
    position: relative;
    transition: background 300ms 0s ease;
}
.header_nav_l2:before {
    content: "";
    display: block;
    background: transparent;
    position: absolute;
    border-top: 1px solid #999999;
    border-left: 1px solid #999999;
    width: 5px;
    height: 5px;
    top: 0;
    left: 0;
    transition: width 300ms 0s ease, height 300ms 0s ease;
}
.header_nav_l2:after {
    content: "";
    display: block;
    background: transparent;
    position: absolute;
    border-bottom: 1px solid #999999;
    border-right: 1px solid #999999;
    width: 5px;
    height: 5px;
    bottom: 0;
    right: 0;
    transition: width 300ms 0s ease, height 300ms 0s ease;
}
.header_nav_l2:hover { background-color: #000000; }
.header_nav_l2:hover:before, .header_nav_l2:hover:after { width: 100%; height: 100%; }


/**footer**/
footer{
	background-color: #767676;
	padding-right: 0;
	padding-left: 0;
	padding-bottom: 20px;
}
footer .footer-inner{
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	color: #FFFFFF;
}
footer .footer-inner .footer_logo{
	display: block;
	background-color: #919191;
	padding-top: 1.5em;
	padding-bottom: 1.5em;
}
footer .footer-inner .footer_logo img{
	width: auto;
	height: 2rem;
	display: inline-block;
}
footer .footer-inner .footer_logo em {
	font-size: 1.8rem;
	vertical-align: middle;
	font-family: 'Ubuntu', sans-serif;
	font-style: normal;
	margin-left: 0.1em;
}
footer .footer-inner .footer_logo span{
	display: block;
	font-size: 0.8rem;
	padding-top: 0.5em;
}

footer .footer-inner .foot_smap{
letter-spacing: -.4em;
text-align: center;
padding-top: 36px;
margin-left: auto;
margin-right: auto;
}
footer .footer-inner .foot_smap li{
display: inline-block;
letter-spacing: 0.1em;
border-right: 1px solid #595959;
width: 14%;
margin-bottom: 10px;
}
footer .footer-inner .foot_smap li:last-child{
border-right-style: none;
}
footer .footer-inner .foot_smap li a{
font-size: 1rem;
padding-top: 0.1em;
padding-bottom: 0.1em;
display: block;
color: #FFFFFF;
} 

footer .footer-inner .foot_toout{
	letter-spacing: -.4em;
	text-align: center;
	padding-bottom: 10px;
}
footer .footer-inner .foot_toout li{
	display: inline-block;
	letter-spacing: 0.1em;
	font-size: 1em;
	text-align: left;
	padding-left: 1em;
	padding-right: 1em;
	border-right: 1px solid #595959;
	width: 14%;
}
footer .footer-inner .foot_toout li:last-child{
border-right-style: none;
}
footer .footer-inner .foot_toout li a{
	color: #FFFFFF;
	display: block;
	text-align: center;
}


footer .footer-inner .foot_pp{
	letter-spacing: -.4em;
	text-align: center;
	padding-bottom: 30px;
	padding-top: 30px;
}
footer .footer-inner .foot_pp li{
	display: inline-block;
	letter-spacing: 0.1em;
	font-size: 1em;
	padding-left: 1em;
	padding-right: 1em;
	border-right: 1px solid #eeeeee;
	width: 30%;
	text-align: right;
}
footer .footer-inner .foot_pp li:last-child{
	border-right-style: none;
	text-align: left;
}
footer .footer-inner .foot_pp li a{
	color: #eeeeee;
	display: block;
	text-align: center;
	font-size: 0.9rem;
}









footer .footer-inner .foot_sns{
	letter-spacing: -.4em;
	text-align: center;
}
footer .footer-inner .foot_sns li{
	display: inline-block;
	letter-spacing: 0.1em;
	padding-left: 0.5em;
	padding-right: 0.5em;
}
footer .footer-inner .foot_copy{
	font-size: 0.8em;
	letter-spacing: 0.1em;
	color: #FFFFFF;
	margin-top: 0px;
	padding-top: 1em;
}

/* ##### ヘッダ・フッタ ##### */
@media screen and (max-width: 1400px) {
#main_menu{

}
#header_nav a{
}

#header_nav #main_menu a{
	/*font-size: 1.8rem;*/
	padding-right: 0.75em;
    padding-left: 0.75em;
}
#header_nav #sub_menu li{
}
#header_nav #sub_menu li a{
	font-size: 0.9rem;
    padding-right: 0.75em;
    padding-left: 0.75em;
}


footer .footer-inner .foot_smap{}
footer .footer-inner .foot_smap li{
width: 20%;
}

footer .footer-inner .foot_smap li a{} 
footer .footer-inner .foot_smap li a img{}
footer .footer-inner .foot_toout{
}
footer .footer-inner .foot_toout li{
width: 20%;
}
footer .footer-inner .foot_toout li a{

}
}
/* ##### ヘッダのみ ##### */
@media screen and (max-width: 1100px) {
#header_nav #sub_menu li a:before{	display: none;}
}

/* ##### ヘッダのみ ##### */
@media screen and (max-width: 980px) 
{

    header{	height: 70px;}
    #header_btn_sp {
        display: block;
        width: 70px;
        height: 70px;
        position: absolute;
        top: 0;
        right: 0;
        z-index: 1000;
    }
    #header_btn_sp span {
	pointer-events: none;
	display: block;
	width: 24px;
	height: 2px;
	background-color: #838383;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 22px;
	margin: auto;
	transition: transform 300ms 0s ease, width 300ms 0s ease, top 300ms 0s ease, bottom 300ms 0s ease, right 300ms 0s ease;
    }
    #header_btn_sp span:first-child { top: 16px; }
    #header_btn_sp span:last-child { bottom: 16px; }
    .header_nav-on #header_btn_sp span {
        right: 18px;
        width: 18px;
    }
    .header_nav-on #header_btn_sp span:first-child {
        -ms-transform: rotate(-45deg);
        -webkit-transform: rotate(-45deg);
        transform: rotate(-45deg);
        width: 12px;
        top: 7px;
        right: 15px;
    }
    .header_nav-on #header_btn_sp span:last-child {
        -ms-transform: rotate(45deg);
        -webkit-transform: rotate(45deg);
        transform: rotate(45deg);
        width: 12px;
        bottom: 7px;
        right: 15px;
    }
    #header_logo {
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
    }
    #header_logo a{
	height: auto;
	margin-left: 4vw;
	margin-top: 21px;
}
	#header_logo a em{ font-size: 1.4rem; /*vertical-align: baseline;*/ margin-bottom: 0.2em; display: inline-block;}

	#header_logo a span{display: none;}  
    #header_logo img {
	width: 100px;
	vertical-align: bottom;
    }
    #header_nav {
	width: 100vw;
	height: 100vh;
	position: absolute;
	float: none;
	top: 0;
	right: -100vw;
	background-color: #F3F3F3;
	overflow: scroll;
	transition: all 500ms 0s ease;
	opacity: 0;
	padding-top: 70px;
	padding-left: 4vw;
	padding-right: 4vw;
	letter-spacing: normal;
	font-size: 1rem;
    }
    .header_nav-on #header_nav {
        right: 0;
        opacity: 1;
    }
    #header_nav ul {
	display: block;
	width: 100%;
    }
	#header_nav #main_menu{
	display: block;
}
	#header_nav #main_menu a{
	font-size: 1rem;
	padding-left: 0;
	padding-right: 0;
	line-height: normal;
	padding-top: 1em;
	padding-bottom: 0.4em;
	color: #3B3B3B;
}
	#header_nav #sub_menu{
	position: static;
	margin-top: 2em;	
}
	#header_nav #main_menu a,
	#header_nav #sub_menu a{
	display: block;
}

	#header_nav #sub_menu li{
	margin-left: 0;
	margin-bottom: 1em;
}
	#header_nav #sub_menu li a{
	font-size: 1.2rem;
}
	#header_nav #sub_menu li a:before{
	display: inline-block;
}
	#header_nav #main_menu a:hover:before {
		width: 20px;
	}
	.p_home #header_nav #main_menu li:nth-child(1) a:before,
	.p_works #header_nav #main_menu li:nth-child(2) a:before,
	.p_news #header_nav #main_menu li:nth-child(3) a:before,
	.p_staff #header_nav #main_menu li:nth-child(4) a:before,
	.p_company #header_nav #main_menu li:nth-child(4) a:before
	/*.p_company #header_nav #main_menu li:nth-child(5) a:before*/{ width: 20px;}
	
    .header_nav_wrap-hasChild .header_nav_children {
        background: transparent;
        position: static;
        top: auto;
        left: auto;
        padding: 0 1em 0 1.5em;
        text-align: left;
        opacity: 1;
        max-height: 0;
        overflow: hidden;
        transition: max-height 500ms 0s ease;
    }
    .header_nav_wrap-hasChild-on .header_nav_children {
        display: block;
        max-height: 100vh;
    }
    #header_nav ul li { display: block;}
    #header_nav ul li a.header_nav_l1 { line-height: 40px; width: 100%; }
    .login .header_nav_l1,.reserve .header_nav_l1{
        margin-left: 0em;
        margin-top: 0.5em;
        text-align: center;
    }
    /*.header_nav_l1:before {
        bottom: 8px;
        right: auto;
        left: 1em;
    }
    .header_nav_l1:hover:before { width: calc( 100% - 2em ); }
    */
    .header_nav_children-main { padding-top: 0; }
    .header_nav_children-main,
    .header_nav_children-sup { text-align: left; }

}

/* ##### responsive ##### */
@media screen and (max-width: 798px) {

    /**footer**/
    footer{
    }
    footer .footer-inner{
    }
    footer .footer-inner .footer_logo{

    }
    footer .footer-inner .footer_logo img{

    }
    footer .footer-inner .foot_smap{
    width: 100%;
    padding-left: 5%;
    padding-right: 5%;
    }
    footer .footer-inner .foot_smap li{
    width: 33%;
    }
    footer .footer-inner .foot_smap li:nth-child(3n){
	border-right-style: none;
    }

    footer .footer-inner .foot_toout{
	width: 100%;
	padding-left: 5%;
	padding-right: 5%;
	padding-top: 10px;
    }
    footer .footer-inner .foot_toout li{
	width: 100%;
	border-right-style: none;
    }
    footer .footer-inner .foot_toout li a{
	text-align: center;
	border-right-style: none;
}
    footer .footer-inner .foot_toout li:first-child{
    }

    footer .footer-inner .foot_pp{
	width: 100%;
	padding-left: 5%;
	padding-right: 5%;
	padding-bottom: 1em;
    padding-top: 1em;
    }
    footer .footer-inner .foot_pp li{
	width: 100%;
	border-right-style: none;
    }
    footer .footer-inner .foot_pp li a{
	text-align: center;
	border-right-style: none;
	font-size: 0.8rem;
	}
    footer .footer-inner .foot_pp li:first-child{
    }
}
