@charset "utf-8";

/*
************************************************************************
* ヘッダー
* @copyright Revolme Inc.
************************************************************************
*/

/* ################################################################################################ */
/* ## PC                         ################################################################## */
/* ################################################################################################ */
#header
{
}
#header-contents
{
}

/*
************************************************************************
 ロゴ部
************************************************************************
*/
#header .site-title
{
	height:80px;
	display:flex;
	justify-content: flex-start;
	/* justify-content: center; */
	/* justify-content: flex-end; */
	
	align-items: center;
}
#header .site-title > *
{
	flex:1 1 auto;
}
#header .site-title .logo
{
	padding:0.8em;
}
#header .site-title .logo a
{
	display:inline-block;
	
	font-size:1.5em;
	font-weight:bold;
}
#header .site-title .logo img
{
	height:calc(80px - 1em);
}
#header .site-title .ope
{
	display:none;
}
#header .site-title .btnMobileMenu
{
	border:0px solid transparent;
	background: none;
	width:100%;
	height:100%;
}
#header .site-title .btnMobileMenu > span.border
{
	display:block;
	position:absolute;
	
	left:20%;
	right:20%;
	
	width:60%;
	height:0px;
}
#header .site-title .btnMobileMenu > span
{
	transition-duration:0.3s;
	transition-property:all;
	transition-timing-function:ease;
	transform: translate3d(0,0,0);
}
#header .site-title .btnMobileMenu > span.border:nth-child(1){top:20%;}
#header .site-title .btnMobileMenu > span.border:nth-child(2){top:40%;}
#header .site-title .btnMobileMenu > span.border:nth-child(3){top:60%;}
#header .site-title .btnMobileMenu > span.label
{
	display:block;
	position:absolute;
	bottom:5%;
	left:0%;
	right:0%;
	
	font-size:0.6em;
	text-align:center;
}
#header.showMenu .site-title .btnMobileMenu > span.border:nth-child(1)
{
	transform:rotate(45deg);
	top:40%;
}
#header.showMenu .site-title .btnMobileMenu > span.border:nth-child(2)
{
	filter:alpha(opacity=0);
	-moz-opacity: 0.0;
	opacity: 0.0;
}
#header.showMenu .site-title .btnMobileMenu > span.border:nth-child(3)
{
	transform:rotate(-45deg);
	top:40%;
}

/*
************************************************************************
 ナビ部
************************************************************************
*/
#header .navigation
{
	display:flex;
	justify-content: flex-start;
	/* justify-content: center; */
	/* justify-content: flex-end; */
}
#header .navigation > *
{
	flex:1 1 auto;
}
#header .navigation > ul.global-nav
{
	display:flex;
	justify-content: flex-start;
	/* justify-content: center; */
	/* justify-content: flex-end; */
	align-items: center;
	
	list-style:none;
	margin:0;
	padding:0;
}
#header .navigation > ul.global-nav > li
{
	list-style:none;
	margin:0;
	padding:0;
	line-height:1.0;
}
#header .navigation > ul.global-nav > li:after
{
	content:"";
	display:block;
	position:absolute;
	bottom:0;
	left:0;
	right:0;
	
	height:0.25em;
}
#header .navigation > ul.global-nav > li > a
{
	display:block;
	transition-duration:0.2s;
	transition-property:all;
	transition-timing-function:ease;
}
#header .navigation > ul.global-nav > li > a > span
{
	display:block;
	padding:0.8em 1.0em;
}
#header .navigation > ul.global-nav > li > a > span > .main
{
	display:block;
	line-height:1;
	font-size:1.4rem;
	text-align:left;
}
#header .navigation > ul.global-nav > li > a > span > .sub
{
	display:block;
	line-height:1;
	font-size:1.0rem;
	text-align:left;
	margin-top:0.25em;
}

/*
************************************************************************
 小階層
************************************************************************
*/
#header .navigation li.has-child > ul
{
	display:none;
	position:absolute;
	top:calc(100%);
	left:0;
	min-width:100%;
	width:15em;
	width:max-content;
	
	list-style:none;
	margin:0;
	padding:0;
	
	box-shadow:2px 2px 5px 0px rgba(0,0,0,0.2);
}
#header .navigation li.has-child:hover > ul
{
	display:block;
}
#header .navigation li.has-child > ul > li
{
	list-style:none;
	margin:0;
	padding:0;
	line-height:1.0;
	
	transition-duration:0.2s;
	transition-property:all;
	transition-timing-function:ease;
	border-left:0.25em solid transparent;
}
#header .navigation li.has-child > ul > li > a
{

}
#header .navigation li.has-child > ul > li > a > span
{
	display:block;
	padding:0.8em 0.8em;
	font-size:1.2rem;
}

/*
************************************************************************
 サブナビ
************************************************************************
*/
#header .navigation > ul.sub-nav
{
	display:flex;
	
	/* justify-content: flex-start; */
	/* justify-content: center; */
	justify-content: flex-end;
	align-items: center;
	
	list-style:none;
	margin:0;
	padding:0;
	font-size:1.2rem;
}
#header .navigation > ul.sub-nav > li
{
	list-style:none;
	margin:0;
	padding:0;
	
	line-height:1.0;
}
#header .navigation > ul.sub-nav > li > a
{
	display:block;
	padding:1.0em 1.5em;
	
	transition-duration:0.2s;
	transition-property:all;
	transition-timing-function:ease;
}

/* ################################################################################################ */
/* ## TAB                        ################################################################## */
/* ################################################################################################ */
@media screen and (max-width:1100px) {
	#header .site-title
	{
		height:5em;
	}
	#header .site-title .logo img
	{
		height:calc(5em - 1em);
	}
}

/* ################################################################################################ */
/* ## スマホサイト用スタイル ###################################################################### */
/* ################################################################################################ */
@media screen and (max-width:640px) {
	/*
	************************************************************************
	 ロゴ部
	************************************************************************
	*/
	#header .site-title
	{
		height:15vw;
	}
	#header .site-title .logo img
	{
		height:calc(15vw - 1em);
	}
	#header .site-title .ope
	{
		display:block;
		width:15vw;
		height:15vw;
		flex: 0 1 auto;
	}
	#header .site-title .ope.ope-ext
	{
		
	}
	#header .site-title .ope.ope-ext a
	{
		display:block;
		width:15vw;
		height:15vw;
		
		padding-top:0.8em;
		
		color:#FFFFFF;
		text-align:center;
	}
	#header .site-title .ope.ope-ext a img
	{
		display:block;
		
		position:absolute;
		top:10%;
		left:20%;
		right:20%;
		
		width:calc(60%);
	}
	#header .site-title .ope.ope-ext a .label
	{
		display:block;
		position:absolute;
		bottom:5%;
		left:0%;
		right:0%;
		
		font-size:0.6em;
		text-align:center;
	}
	
	
	/*
	************************************************************************
	 ナビ部
	************************************************************************
	*/
	#header .navigation
	{
		display:none;
		justify-content: flex-start;
		/* justify-content: center; */
		/* justify-content: flex-end; */
	}
	#header.showMenu .navigation
	{
		display:block;
		position:absolute;
		top:100%;
		left:0;
		right:0;
	}
	#header .navigation > ul.global-nav
	{
		display:block;
	}
	#header .navigation > ul.global-nav > li:after
	{
		content:"";
		display:block;
		position:absolute;
		top:0;
		bottom:0;
		left:0;
		right:auto;
		height:auto;
		width:0.25em;
	}
	#header .navigation > ul.global-nav > li > a > span > .main
	{
		font-size:2.4rem;
	}
	#header .navigation > ul.global-nav > li > a > span > .sub
	{
		font-size:1.5rem;
	}

	/*
	************************************************************************
	 小階層
	************************************************************************
	*/
	#header .navigation li.has-child > ul
	{
		display:none;
		position:relative;
		top:auto;
		left:auto;
		min-width:auto;
		width:100%;
		
		list-style:none;
		margin:0;
		padding:0;
		
		box-shadow:none;
	}
	#header .navigation li.has-child:hover > ul
	{
		display:none;
	}
	#header .navigation li.has-child > ul
	{
		padding:0.8em 0;
	}
	#header .navigation li.has-child > ul.on
	{
		display:block;
	}
	#header .navigation li.has-child > ul > li > a > span
	{
		font-size:2.0rem;
	}

	/*
	************************************************************************
	 サブナビ
	************************************************************************
	*/
	#header .navigation > ul.sub-nav
	{
		display:flex;
		
		/* justify-content: flex-start; */
		justify-content: center;
		/* justify-content: flex-end; */
		align-items: center;
		
		list-style:none;
		margin:0;
		padding:0;
	}
	#header .navigation > ul.sub-nav > li
	{
		list-style:none;
		margin:0;
		padding:0;
		
		line-height:1.0;
	}
	#header .navigation > ul.sub-nav > li > a
	{
		display:block;
		padding:1.5em 1.5em;
		
		transition-duration:0.2s;
		transition-property:all;
		transition-timing-function:ease;
		font-size:2.0rem;
	}
}

