@charset "utf-8";

/*
************************************************************************
* 基本設定
* @copyright Revolme Inc.
* 
* サイトの基本設定を行う
************************************************************************
*/

/*
************************************************************************
 基本
************************************************************************
*/
body
{
	min-width:1200px;
	font-size:1.4rem;
	font-weight:normal;
	line-height:1.7;
	letter-spacing:0.10em;
	color:#000000;
	background-color:#FFFFFF;
}
body #wrapper
{
	opacity:0.0;
	visibility:hidden;
}
body.inited #wrapper
{
	opacity:1.0;
	visibility:visible;
}

/*
************************************************************************
 ページラッパー
************************************************************************
*/
#wrapper
{
	z-index:0;
	/* overflow:hidden; */
	min-height:100vh;
	
	display: -ms-grid; /* グリッドレイアウト */
	display: grid; /* グリッドレイアウト */
}
#wrapper.site-layout
{
	-ms-grid-rows: auto auto 1fr auto auto; /* 行区切り */
	-ms-grid-columns: 100%; /* 列区切り */
	
	grid-template-rows: auto auto 1fr auto auto; /* 行区切り */
	grid-template-columns: 100%; /* 列区切り */
}
#wrapper.dashboard-layout
{
	-ms-grid-rows: auto 1fr auto auto; /* 行区切り */
	-ms-grid-columns: 320px calc(100% - 320px) ; /* 列区切り */
	
	grid-template-rows: auto 1fr auto auto; /* 行区切り */
	grid-template-columns: 320px calc(100% - 320px); /* 列区切り */
}
#wrapper.login-layout
{
	-ms-grid-rows: auto 1fr auto; /* 行区切り */
	-ms-grid-columns: 100%; /* 列区切り */
	
	grid-template-rows: auto 1fr auto; /* 行区切り */
	grid-template-columns: 100%; /* 列区切り */
}

/*
************************************************************************
 共通ヘッダー
************************************************************************
*/
#global-header
{
	z-index:5;
}
#wrapper.site-layout > #global-header
{
	-ms-grid-row: 1;
	-ms-grid-column: 1;
	
	grid-row: 1;
	grid-column: 1;
}
#wrapper.dashboard-layout > #global-header
{
	-ms-grid-row: 1;
	-ms-grid-column: 1/3;
	
	grid-row: 1;
	grid-column: 1/3;
}
#wrapper.login-layout > #global-header
{
	-ms-grid-row: 1;
	-ms-grid-column: 1;
	
	grid-row: 1;
	grid-column: 1;
}


/*
************************************************************************
 ヘッダー
************************************************************************
*/
#header
{
	z-index:4;
}
#header-contents
{
	z-index:0;
}
#wrapper.site-layout > #header
{
	-ms-grid-row: 2;
	-ms-grid-column: 1;
	
	grid-row: 2;
	grid-column: 1;

	position:sticky;
	top:0;
}
#wrapper.dashboard-layout > #header
{
	-ms-grid-row: 2/4;
	-ms-grid-column: 1;
	
	grid-row: 2/4;
	grid-column: 1;
}
#wrapper.login-layout > #header
{
	display:none;
}


/*
************************************************************************
 ボディ（コンテンツ部）
************************************************************************
*/
#body
{
	z-index:3;
}
#body-title
{
	z-index:1;
}
#body-contents
{
	z-index:0;
}
#wrapper.site-layout > #body
{
	-ms-grid-row: 3;
	-ms-grid-column: 1;
	
	grid-row: 3;
	grid-column: 1;
}
#wrapper.dashboard-layout > #body
{
	-ms-grid-row: 2;
	-ms-grid-column: 2;
	
	grid-row: 2;
	grid-column: 2;
}
#wrapper.login-layout > #body
{
	-ms-grid-row: 2;
	-ms-grid-column: 2;
	
	grid-row: 2;
	grid-column: 1;
	
	height:100%;
}
#wrapper.login-layout > #body > #body-contents
{
	height:100%;
}

/*
************************************************************************
 フッター
************************************************************************
*/
#footer
{
	z-index:2;
}
#footer-contents
{
	z-index:0;
}
#wrapper.site-layout > #footer
{
	-ms-grid-row: 4;
	-ms-grid-column: 1;
	
	grid-row: 4;
	grid-column: 1;
}
#wrapper.dashboard-layout > #footer
{
	-ms-grid-row: 3;
	-ms-grid-column: 2;
	
	grid-row: 3;
	grid-column: 2;
}
#wrapper.login-layout > #footer
{
	display:none;
}

/*
************************************************************************
 共通フッター
************************************************************************
*/
#global-footer
{
	z-index:1;
}
#wrapper.site-layout > #global-footer
{
	-ms-grid-row: 5;
	-ms-grid-column: 1;
	
	grid-row: 5;
	grid-column: 1;
}
#wrapper.dashboard-layout > #global-footer
{
	-ms-grid-row: 4;
	-ms-grid-column: 1/3;
	
	grid-row: 4;
	grid-column: 1/3;
}
#wrapper.login-layout > #global-footer
{
	-ms-grid-row: 3;
	-ms-grid-column: 1;
	
	grid-row: 3;
	grid-column: 1;
}

/*
************************************************************************
 段落
************************************************************************
*/
.row
{
	max-width:1000px;
	width:100%;
	margin:3em auto;
}
.row.no-margin
{
	margin:0px auto;
}
.row.thin-margin
{
	margin:1.5em auto;
}
.row.fill
{
	max-width:100%;
}

/* ################################################################################################ */
/* ## 中型                       ################################################################## */
/* ################################################################################################ */
@media screen and (max-width:1200px) {
	body
	{
		/* 最小幅 */
		/*
		min-width:100vw;
		*/
		min-width:auto;
		width:100%;
		
		font-size:1.4rem;
		font-weight:normal;
		line-height:1.7;
		letter-spacing:0.10em;
	}
	
	/*
	************************************************************************
	 段落
	************************************************************************
	*/
	section:before
	{
		margin-bottom:8em;
	}
	section:after
	{
		margin-top:8em;
	}
	.row
	{
		width:calc(95%);
		margin-left:auto;
		margin-right:auto;
	}
	.row.fill
	{
		width:100%;
	}
	/*
	************************************************************************
	 段落内グリッド
	************************************************************************
	*/
	.main-layout
	{
		-ms-grid-rows: auto 1fr; /* 行区切り */
		-ms-grid-columns: 73% 27%; /* 列区切り */
		
		grid-template-rows: auto 1fr; /* 行区切り */
		grid-template-columns: 73% 27%; /* 列区切り */
	}
}

/* ################################################################################################ */
/* ## スマホサイト用スタイル ###################################################################### */
/* ################################################################################################ */
@media screen and (max-width:640px) {
	/*
	************************************************************************
	 基本
	************************************************************************
	*/
	body
	{
		min-width:300px;
		font-size:2.0rem;
	}
	#wrapper.dashboard-layout
	{
		-ms-grid-rows: auto auto 1fr auto auto; /* 行区切り */
		-ms-grid-columns: 100% ; /* 列区切り */
		
		grid-template-rows: auto auto 1fr auto auto; /* 行区切り */
		grid-template-columns: 100% ; /* 列区切り */
	}
	#wrapper.dashboard-layout > #global-header
	{
		-ms-grid-row: 1;
		-ms-grid-column: 1;
		
		grid-row: 1;
		grid-column: 1;
	}
	#wrapper.dashboard-layout > #header
	{
		-ms-grid-row: 2;
		-ms-grid-column: 1;
		
		grid-row: 2;
		grid-column: 1;
	}
	#wrapper.dashboard-layout > #body
	{
		-ms-grid-row: 3;
		-ms-grid-column: 1;
		
		grid-row: 3;
		grid-column: 1;
	}
	#wrapper.dashboard-layout > #footer
	{
		-ms-grid-row: 4;
		-ms-grid-column: 1;
		
		grid-row: 4;
		grid-column: 1;
	}
	#wrapper.dashboard-layout > #global-footer
	{
		-ms-grid-row: 5;
		-ms-grid-column: 1;
		
		grid-row: 5;
		grid-column: 1;
	}
	
	/*
	************************************************************************
	 段落内グリッド
	************************************************************************
	*/
	.main-layout
	{
		-ms-grid-rows: auto 1fr auto; /* 行区切り */
		-ms-grid-columns: 100%; /* 列区切り */
		
		grid-template-rows: auto 1fr auto; /* 行区切り */
		grid-template-columns: 100%; /* 列区切り */
		
		max-width:100%;
		width:100%;
		margin:5em auto;
	}
	.main-layout > *
	{
		padding:0 1em;
	}
	.main-layout > .main-contents
	{
		-ms-grid-row: 2;
		-ms-grid-column: 1;
		
		grid-row: 2;
		grid-column: 1;
	}
	.main-layout > .side-contents-top
	{
		-ms-grid-row: 1;
		-ms-grid-column:1;
		
		grid-row: 1;
		grid-column: 1;
	}
	.main-layout > .side-contents-bottom
	{
		-ms-grid-row: 3;
		-ms-grid-column: 1;
		
		grid-row: 3;
		grid-column: 1;
		
		margin-top:5em;
	}
}
