@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;
}

/*
************************************************************************
 ページラッパー
************************************************************************
*/
#wrapper
{
	z-index:0;
	overflow:hidden;
	min-height:100vh;
	
	/*
	display:flex;
	flex-direction:row;
	flex-wrap:wrap;
	justify-content:flex-start;
	align-items:stretch;
	align-content:stretch;
	width:100%;
	*/
	display: -ms-grid; /* グリッドレイアウト */
	-ms-grid-columns: 320px calc(100% - 320px);
	
	display: grid; /* グリッドレイアウト */
	grid-template-columns: 320px calc(100% - 320px);
	
	border-top:1.0em solid #e60012;
}
#wrapper.hidden
{
	visibility:hidden;
}
/*
************************************************************************
 ヘッダー
************************************************************************
*/
#header
{
	z-index:3;
	/*
	flex:0 0 320px;
	*/
	
	-ms-grid-row: 1/3;
	-ms-grid-column: 1;
	
	grid-row: 1/3;
	grid-column: 1;
}
#header-contents
{
	z-index:0;
}

/*
************************************************************************
 ボディ（コンテンツ部）
************************************************************************
*/
#body
{
	z-index:1;
	/*
	flex:0 0 calc(100% - 320px);
	*/
	
	-ms-grid-row: 1;
	-ms-grid-column: 2;
	
	grid-row: 1;
	grid-column: 2;
	
}
#body-title
{
	z-index:1;
}
#body-contents
{
	z-index:0;
}


/*
************************************************************************
 フッター
************************************************************************
*/
#footer
{
	z-index:2;
	/*
	flex:0 0 calc(100%);
	*/
	-ms-grid-row: 2;
	-ms-grid-column: 2;
	
	grid-row: 2;
	grid-column: 2;
}
#footer-contents
{
	z-index:0;
}

/*
************************************************************************
 段落
************************************************************************
*/
section
{
	display:block;
	width:100%;
}
section:before,
section:after
{
	content: ".";
	display: block;
	clear: both;
	float: none;
	height: 0px;
	width: 100%;
	visibility: hidden;
	overflow:hidden;
}
section:before
{
	margin-bottom:8rem;
}
section:after
{
	margin-top:8rem;
}
section.no-margin:before,
section.no-margin:after
{
	margin-bottom:0px;
	margin-top:0px;
}
section.has-bg-color-w
{
	background-color:#FFFFFF !important;
}
section.has-bg-rt
{
	background-position:right top;
	background-repeat:no-repeat;
	background-size:30% auto;
	/* background-color:rgba(0,0,0,0.3) !important;*/
	/* background-blend-mode:color; */
	
	background-image:url(../../img/section-bg-rt.svg);
}
section.has-bg-rb
{
	background-position:right bottom;
	background-repeat:no-repeat;
	background-size:30% auto;
	/* background-color:rgba(0,0,0,0.3) !important;*/
	/* background-blend-mode:color; */
	
	background-image:url(../../img/section-bg-rb.svg);
}
section.has-bg-lt
{
	background-position:left top;
	background-repeat:no-repeat;
	background-size:30% auto;
	/* background-color:rgba(0,0,0,0.3) !important;*/
	/* background-blend-mode:color; */
	
	background-image:url(../../img/section-bg-lt.svg);
}
section.has-bg-lb
{
	background-position:left bottom;
	background-repeat:no-repeat;
	background-size:30% auto;
	/* background-color:rgba(0,0,0,0.3) !important;*/
	/* background-blend-mode:color; */
	
	background-image:url(../../img/section-bg-lb.svg);
}
.row
{
	max-width:880px;
	width:100%;
	margin:5rem auto;
	
	/*
	animation-name:fncRow;
	animation-duration:0.3s;
	animation-timing-function:ease;
	animation-iteration-count:1;
	animation-fill-mode:forwards;
	*/
}
.row.no-margin
{
	margin:0px auto;
}
.row.fill
{
	max-width:100%;
}
@keyframes fncRow
{
	0% {
		opacity:0;
	}
	100% {
		opacity:1;
	}
}

/*
************************************************************************
 ページ上部へ戻る
************************************************************************
*/
#toTop
{
	position:fixed;
	
	bottom:2em;
	right:2em;
}
#toTop a
{
	display:block;
	width:3em;
	height:3em;
	
	filter:alpha(opacity=60);
	-moz-opacity: 0.6;
	opacity: 0.6;
	
	transition-duration:0.3s;
	transition-property:all;
}
#toTop a img
{
	width:3em;
	height:3em;
}
#toTop a:hover
{
	filter:alpha(opacity=100);
	-moz-opacity: 1.0;
	opacity: 1.0;
}

/*
************************************************************************
 装飾
************************************************************************
*/
.img-shadow
{
	padding:0em;
	padding-right:1.0em;
	padding-bottom:1.0em;
}
.img-shadow:before
{
	content:"";
	display:block;
	
	position:absolute;
	top:1.0em;
	left:1.0em;
	bottom:0;
	right:0;
}
.img-shadow.rd-10:before{border-radius:10px;}
.img-shadow.rd-20:before{border-radius:20px;}
.img-shadow.rd-30:before{border-radius:30px;}

/* ################################################################################################ */
/* ## 中型                       ################################################################## */
/* ################################################################################################ */
@media screen and (max-width:1200px) {
	body
	{
		/* 最小幅 */
		min-width:100vw;
		
		font-size:1.6rem;
		font-weight:normal;
		line-height:1.7;
		letter-spacing:0.10em;
	}
	#wrapper
	{
		-ms-grid-template-columns: 100% 0px;
		grid-template-columns: 100% 0px;
	}
	#header
	{
		grid-row: 1;
		grid-column: 1;
	}
	#body
	{
		grid-row: 2;
		grid-column: 1;
	}
	#footer
	{
		grid-row: 3;
		grid-column: 1;
	}
	/*
	************************************************************************
	 段落
	************************************************************************
	*/
	section:before
	{
		margin-bottom:8rem;
	}
	section:after
	{
		margin-top:8rem;
	}
	.row
	{
		max-width:calc(95%);
	}
	.row.fill
	{
		width:100%;
		padding-left:0vw;
		padding-right:0vw;
	}
}

/* ################################################################################################ */
/* ## スマホサイト用スタイル ###################################################################### */
/* ################################################################################################ */
@media screen and (max-width:640px) {
	/*
	************************************************************************
	 基本
	************************************************************************
	*/
	body
	{
		min-width:300px;
		font-size:2.0rem;
	}
	/*
	************************************************************************
	 段落
	************************************************************************
	*/
	section:before
	{
		margin-bottom:15.0vw;
	}
	section:after
	{
		margin-top:15.0vw;
	}
	section.has-bg-rt,
	section.has-bg-rb,
	section.has-bg-lt,
	section.has-bg-lb
	{
		background-size:45% auto;
	}
	.row
	{
		width:88vw;
		margin:10vw auto;
	}
	.row.fill
	{
		width:100%;
	}
	.img-shadow.rd-10:before {border-radius: 1.5625vw;}
	.img-shadow.rd-20:before {border-radius: 3.125vw;}
	.img-shadow.rd-30:before {border-radius: 4.6875vw;}	
}
