@charset "utf-8";

/*==============================
	RESET
==============================*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure, 
footer, header, hgroup, menu, main, nav, section, summary,
time, mark, audio, video {
    margin:0;
    padding:0;
    border:0;
    outline:0;
    font-size:100%;
    font-weight:normal;
    vertical-align:baseline;
    background:transparent;
}

body {
    line-height:1;
}

article,aside,details,figcaption,figure,
footer,header,hgroup,menu,main,nav,section { 
    display:block;
}

ol, ul, li {
　　list-style: none;
    list-style-type:none;
}

a {
    margin:0;
    padding:0;
    font-size:100%;
    font-weight:normal;
    vertical-align:baseline;
    background:transparent;
}

abbr[title], dfn[title] {
    border-bottom:1px dotted;
    cursor:help;
}

table {
    border-collapse:collapse;
    border-spacing:0;
}

hr {
    display:block;
    height:1px;
    border:0;   
    border-top:1px solid #cccccc;
    margin:1em 0;
    padding:0;
}

input, select {
    vertical-align:middle;
}

img {
    vertical-align: top;
    font-size:0;
    line-height: 0;
}


/*==============================
	
==============================*/
html, body {
	width: 100%;
	height: 100%;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-size: 15px;
	color: #020202;
	background-color: #fdfdf9;
}

@media screen and (min-width: 951px) {
	.forSP {
		display: none !important;
	}
}
@media screen and (max-width: 950px) {
	.forPC {
		display: none !important;
	}
}


/*==============================
	HEADER
==============================*/
header {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-left: 180px;
	height: 300px;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}
header h1 {
	color: #fff;
	font-size: 28px;
	letter-spacing: 6px;
	text-align: center;
	line-height: 1.3;
	text-shadow: 1px 1px 8px black;
}


@media screen and (max-width: 950px) {
	header {
		margin-left: 0;
		height: 40vw;
	}
	header h1 {
		font-size: 6vw;
		letter-spacing: 1vw;
	}
}


/*==============================
	FOOTER
==============================*/
footer {
	box-sizing: border-box;
	margin-left: 180px;
	padding-top: 400px;
	height: 623px;
	background: url(../images/common/footer.jpg) center top no-repeat;
	background-size: cover;
	color: #fbf9ff;
	font-size: 11px;
	letter-spacing: 1.5px;
	text-align: center;
}


@media screen and (max-width: 950px) {
	footer {
		margin-left: 0;
		padding-top: 36vw;
		height: 60vw;
		background-position: center bottom;
		background-size: 140%;
		font-size: 2.8vw;
		line-height: 2
	}
}


/*==============================
	SIDE MENU
==============================*/
.side {
	position: fixed;
	top: 0;
	left: 0;
	width: 44px;
	height: 100%;
	min-height: 600px;
	background: rgba(255,255,255,0.2) url(../images/common/icon_menu.png) center center no-repeat;
	background-size: 24px;
	transition: .6s;
	z-index: 10;
}
.side._fixed,
.side:hover {
	width: 180px;
	background-color: #fdfdf9;
	box-shadow: 0px 0px 8px 2px rgba(0,0,0,0.15);
}
.side .logo {
	position: absolute;
	top: 44px;
	left: 26px;
}
.side .logo a {
	padding: 0;
}
.side .logo img {
	width: 132px;
}

.side a {
	display: block;
	padding: 5px 26px;
	color: inherit;
	text-decoration: none;
}
.side a:hover {
	color: rgb(0,84,142);
}

.side .nv-main {
	position: absolute;
	top: 50%;
	left: 0;
	margin-top: -1em;
	font-size: 14px;
	line-height: 40px;
}
.side .nv-sub {
	position: absolute;
	left: 0;
	bottom: 0;
	box-sizing: border-box;
	padding: 0 0 50px 0;
	width: 100%;
	border-bottom: 8px solid #00548e;
	font-family: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", sans-serif;
	font-size: 13px;
}
.side .nv-sub li {
	margin-top: 8px;
}
.side .nv-sub li span {
	display: block;
	padding: 0 26px 6px;
	color: #999;
	font-size: 75%;
}

.side p,
.side ul {
	opacity: 0;
	transition-delay: 0;
	transition-duration: 0;
}
.side._fixed p, .side:hover p,
.side._fixed ul, .side:hover ul {
	opacity: 1;
	transition-delay: 0.5s;
	transition-duration: 1.5s;
}

.side li {
	position: relative;
}
.side li.current:after {
	content: '';
	position: absolute;
	top: 48%;
	left: 0;
	width: 18px;
	height: 1px;
	background-color: rgba(0,84,142,0.8);
}


@media screen and (max-width: 950px) {
	.side,
	.side._fixed {
		position: relative;
		box-sizing: border-box;
		margin-top: 20vw;
		padding: 4vw 0 0 0;
		width: 100%;
		height: auto;
		min-height: auto;
	}
	
	.side .logo {
		position: relative;
		top: 0;
		left: 0;
		text-align: center;
	}
	.side .logo img {
		width: 30vw;
	}
	
	.side .nv-main {
		position: relative;
		top: 0;
		margin-top: 5vw;
	}
	.side .nv-main li {
		box-sizing: border-box;
		padding: 3.4vw;
		width: 100vw;
		border-top: 1px solid rgba(0,0,0,0.1);
		font-family: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", sans-serif;
		font-size: 4vw;
		letter-spacing: 0.2vw;
		text-align: center;
	}
	
	.side .nv-sub {
		position: relative;
		display: flex;
		flex-wrap: wrap;
		margin: 0;
		padding: 0;
		border-bottom: none;
	}
	.side .nv-sub li {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		box-sizing: border-box;
		margin: 0;
		padding: 3.4vw;
		width: 50vw;
		border-top: 1px solid rgba(0,0,0,0.1);
		font-size: 3.4vw;
		text-align: center;
	}
	.side .nv-sub li:nth-child(even) {
		border-left: 1px solid rgba(0,0,0,0.1);
	}
	
	.side li.current:after {
		top: 0;
		left: 0;
		width: 1vw;
		height: 100%;
	}
}


/*==============================
	CONTENTS
==============================*/
.contents {
	position: relative;
	padding-left: 180px;
}
@media screen and (max-width: 950px) {
	.contents {
		padding-left: 0;
	}
}


/*==============================
	OTHER COMMON
==============================*/
.object-fit-img {
	object-fit: cover;
	object-position: center;
	font-family: 'object-fit: cover; object-position: center;'
}

.btn {
	position: relative;
	display: inline-block;
	margin-top: 30px;
	padding: 12px 0;
	width: 240px;
	background-image: -moz-linear-gradient( 0deg, rgb(218,228,238) 0%, rgb(235,235,235) 100%);
	background-image: -webkit-linear-gradient( 0deg, rgb(218,228,238) 0%, rgb(235,235,235) 100%);
	background-image: -ms-linear-gradient( 0deg, rgb(218,228,238) 0%, rgb(235,235,235) 100%);
	color: #020202;
	font-family: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", sans-serif;
	font-size: 13px;
	letter-spacing: 1px;
	text-decoration: none;
	text-align: center;
	transition: .5s;
}
.btn:hover {
	filter: brightness(1.05);
	opacity: .8;
}
.btn:after {
	content: '';
	position: absolute;
	top: 34%;
	right: 15px;
	width: 29px;
	height: 7px;
	background: url(../images/common/arrow.png) center center no-repeat;
	background-size: 100%;
}


@media screen and (max-width: 950px) {
	.btn:after {
		top: 40%;
		width: 7vw;
		height: 2vw;
		background-size: 7vw;
	}
}