@charset "utf-8";

/* リセットスタイル
========================================================= */

h1, h2, h3, h4, h5, h6 { font-weight: normal; margin: 0; padding: 0; }

ol, ul, li { list-style: none; margin: 0; padding: 0; }
dl, dd { margin: 0; }

p { margin: 0; }
img { width: 100%; height: auto; vertical-align: top; }

table { border-collapse: collapse; }
th, td { vertical-align: top; }
th { text-align: left; }

figure { padding: 0; margin: 0; }
figcaption { font-size: 1.3rem; line-height: 1.5; margin-top: 5px; }

.fwB { font-weight: bold; }
.taL { text-align: left; }
.taC { text-align: center; }
.taR { text-align: right; }





/* 基礎スタイル
========================================================= */

html { font-size: 62.5%; /* 10px */ overflow-y: scroll; }

body {
	background: #ffffff;
	color: #000000;
	font-family: "Yu Gothic", YuGothic, Verdana, Meiryo, sans-serif;
	font-size: 1.6rem;
	line-height: 1;
	margin: 0;
}

@font-face { font-family: "Yu Gothic"; src: local("Yu Gothic Medium"); font-weight: 100; }
@font-face { font-family: "Yu Gothic"; src: local("Yu Gothic Medium"); font-weight: 200; }
@font-face { font-family: "Yu Gothic"; src: local("Yu Gothic Medium"); font-weight: 300; }
@font-face { font-family: "Yu Gothic"; src: local("Yu Gothic Medium"); font-weight: 400; }
@font-face { font-family: "Yu Gothic"; src: local("Yu Gothic Bold"); font-weight: bold; }

a			{ text-decoration: none; }
a:hover		{ text-decoration: none; }





/* ヘッダー
========================================================= */

header {
	width: 100%;
	max-width: 1200px;
	background: url(../images/header_bg.jpg) no-repeat center bottom;
	background-size: 100%;
	box-sizing: border-box;
	margin: 0 auto;
	transition: all 0.3s;
}
header div { width: 100%; margin: 0 auto; }
header div .logo {
	width: calc(50/320 * 100%);
	max-width: 115px;
	min-width: 50px;
	float: left;
	padding: 21px 0 0 0;
}
header div .title {
	width: calc(200/320 * 100%);
	max-width: 594px;
	min-width: 200px;
	padding: 50px 0 35px 0;
	margin: 0 auto;
}



@media screen and (max-width: 1240px) {
	header { padding: 0 20px; }
}

@media screen and (max-width: 767px) {
	header { background-size: 80% 100%; padding: 0 10px 10px; }
	header div .logo { float: left; padding: 10px 0 0 0; }
	header div .title { padding: 15px 0 0 0; margin: 0 auto; }
}



/* ナビゲーション
--------------------------------------------------------- */

.navPC nav { width: 100%; font-size: 1.8rem; }
.navPC nav ul { display: table; margin: 0 auto; }
.navPC nav li { float: left; }
.navPC nav li + li { margin: 0 0 0 170px; transition: all 0.3s; }
.navPC nav li a { display: block; color: #000000; }
.navPC nav li a:after {
	content: "";
	width: 0;
	height: 2px;
	display: block;
	background: rgba(0,0,0,0);
	margin-top: 3px;
	transition: all 0.3s;
}

.navSP { display: none; }
.spBtn { display: none; }



@media screen and (min-width: 769px) {
	.navPC nav li a:hover:after { width: 100%; background: rgba(0,0,0,1); }
}

@media screen and (max-width: 1100px) {
	.navPC nav li + li { margin: 0 0 0 70px; }
}

@media screen and (max-width: 767px) {
	.navPC { display: none; }
	
	.navSP { display: block; position: relative; z-index: 100; }
	.navSP nav {
		width: 100%;
		display: none;
		background: rgba(0,0,0,0.9);
		font-size: 1.6rem;
		line-height: 6.0rem;
		box-sizing: border-box;
		padding: 5px 0;
		position: absolute;
		top: 0;
		left: 0;
	}
	.navSP nav li a { display: block; color: #ffffff; box-sizing: border-box; padding: 0 calc(25/320 * 100%); }
	.navSP nav li + li a { position: relative; }
	.navSP nav li + li a::before {
		content: "";
		width: calc(290/320 * 100% );
		height: 1px;
		display: block;
		background-color: #666666;
		position: absolute;
		top: 0;
		right: 0;
		left: 0;
		margin-right: auto;
		margin-left: auto;
	}
	
	.spBtn {
		width: 20px;
		height: 20px;
		display: block;
		position: absolute;
		top: -40px;
		right: calc(15/320 * 100%);
	}
	.spBtn span {
		width: 20px;
		height: 2px;
		display: block;
		background: #000000;
		position: absolute;
		top: 9px;
		right: 0;
	}
	.spBtn:before {
		content:'';
		width: 20px;
		height: 2px;
		display: block;
		background: #000000;
		position: absolute;
		top: 0;
		right: 0;
		transition: all 0.3s;
	}
	.spBtn:after {
		content:'';
		width: 20px;
		height: 2px;
		display: block;
		background: #000000;
		position: absolute;
		bottom: 0;
		right: 0;
		transition: all 0.3s;
	}
	.spBtn.active span { background: none; }
	.spBtn.active:before { width: 22px; transform: rotate(-135deg); top: 9px; right: 0; }
	.spBtn.active:after { width: 22px; transform: rotate(135deg); bottom: 9px; right: 0; }
}





/* ページレイアウト
========================================================= */



/* ページタイトル
--------------------------------------------------------- */

.pageTitle {
	width: 100%;
	height: 140px;
	background: #000000;
	margin: 20px 0 0 0;
	transition: all 0.3s;
	position: relative;
}
.pageTitle h1 {
	width: 100%;
	color: #ffffff;
	font-size: 3.6rem;
	font-weight: bold;
	text-align: center;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}


@media screen and (max-width: 767px) {
	.pageTitle { height: 70px; margin: 0; }
	.pageTitle h1 { font-size: 2.0rem; }
}



/* コンテンツ
--------------------------------------------------------- */

main { padding: 0 calc(15/320 * 100%) }



@media screen and (max-width: 767px) {
}



/* ページトップ
--------------------------------------------------------- */

.pageTop { display: none; z-index: 1000; padding: 0 calc(15/320 * 100%); transition: all 0.3s; }
.pageTop div { }
.pageTop a {
	width: 50px;
	height: 50px;
	display: block;
	float: right;
	border: solid 1px #000000;
	border-radius: 50%;
	background: rgba(255,255,255,0.5);
	text-indent: 100%;
	white-space: nowrap;
	overflow: hidden;
	margin: 50px 0 0 0;
	position: relative;
}
.pageTop a:after {
	content: "";
	width: 15px;
	height: 15px;
	display: block;
	border-top: solid 1px #000000;
	border-right: solid 1px #000000;
	transform: rotate(-45deg);
	position: absolute;
	top: 20px;
	right: 0;
	bottom: auto;
	left: 0;
	margin: auto;
}
.pageTopSp { display: none; }



@media screen and (min-width: 769px) {
	.pageTop a:hover { background: #000000; transition: all 0.3s; }
	.pageTop a:hover:after { border-top: solid 1px #ffffff; border-right: solid 1px #ffffff; transition: all 0.3s; }
}

@media screen and (max-width: 767px) {
	.pageTop a { display: none ; }
	.pageTopSp {
		width: 100%;
		display: block;
		border-top: solid 2px #000000;
		box-sizing: border-box;
		padding: 0 calc(15/320 * 100%);
		margin: 70px 0 0 0;
	}
	.pageTopSp a {
		width: 100%;
		display: block;
		color: #000000;
		font-size: 1.7rem;
		line-height: 4.6rem;
		text-align: center;
		position: relative;
	}
	.pageTopSp a:after {
		content: "";
		width: 13px;
		height: 13px;
		border-top: solid 1px #000000;
		border-right: solid 1px #000000;
		transform: rotate(-45deg);
		position: absolute;
		top: 20px;
		right: 4px;
	}
}





/* フッター
========================================================= */

footer {
	width: 100%;
	height: 210px;
	display: block;
	background: #000000;
	box-sizing: border-box;
	padding: 30px calc(15/320 * 100%) 60px;
	margin: 150px 0 0 0;
}
footer ul { width: 100%; max-width: 1000px; display: table; table-layout: fixed; margin: 0 auto; }
footer li { display: table-cell; border-right: solid 1px #ffffff; text-align: center; vertical-align: middle; }
footer li:first-child { border-left: solid 1px #ffffff; }
footer li a { display: block; color: #ffffff; font-size: 1.5rem; line-height: 1.9rem; padding: 0 0.5em; }

footer small { display: block; color: #ffffff; font-size: 1.2rem; text-align: center; padding: 90px 0 0 0; }



@media screen and (min-width: 769px) {
	footer li a:hover { background: rgba(255,255,255,0.5); transition: all 0.3s; }
}

@media screen and (max-width: 960px) {
	footer li { width: 22%; }
	footer li:first-child { width: 34%; }
}

@media screen and (max-width: 767px) {
	footer { height: auto; padding: 15px calc(15/320 * 100%) 30px; margin: 0; }
	footer li { width: 100%; display: block; border-right: none; text-align: left; }
	footer li:first-child { width: 100%; border-left: none; }
	footer li a { font-size: 1.6rem; line-height: 3.5rem; padding: 0; margin: 5px 0 0 0; }
	footer small { padding: 40px 0 0 0; }
}



