/* ---------------------------------------------------------------------------------------- */
/* デフォルト値																																							*/
/* ---------------------------------------------------------------------------------------- */
html, body, h1, h2, h3, h4, ul, ol, dl, li, dt, dd, p, div, span, img, a, table, tr, th, td{
	margin: 0;
	padding: 0;
	border: 0;
	vertical-align: baseline;
}

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

html{
	height: 100%;
}

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

*, *:before, *:after{
	-webkit-box-sizing: border-box;
		 -moz-box-sizing: border-box;
			 -o-box-sizing: border-box;
			-ms-box-sizing: border-box;
					box-sizing: border-box;
	margin: 0;
	padding: 0;
}

input, button, select, textarea{
	appearance: none;
	-moz-appearance: none;
	-webkit-appearance: none;
}

/* ---------------------------------------------------------------------------------------- */
/* カスタムスタイル																																					*/
/* ---------------------------------------------------------------------------------------- */
b{
	font-weight: bold;
}

u{
	border-bottom: 1px dotted #000;
}

bu{
	font-weight: bold;
	border-bottom: 2px dotted #000;
}

/* ---------------------------------------------------------------------------------------- */
/* body																																											*/
/* ---------------------------------------------------------------------------------------- */
body{
	font-family: "Helvetica Neue",
		Arial,
		"Hiragino Kaku Gothic ProN",
		"Hiragino Sans",
		"BIZ UDPGothic",
		Meiryo,
		sans-serif;
	line-height: 1.0;
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
}

/* ---------------------------------------------------------------------------------------- */
/* wapper																																										*/
/* ---------------------------------------------------------------------------------------- */
#wrapper{
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

@media all and (-ms-high-contrast: none) {
	/* IEではwrapperにflexは使わない */
	#wrapper{
		display: block;
	}
}

#wrapper.full{
	max-width: 100%;
	width: 100%;
}

#wrapper.w1200{
	max-width: 1200px;
	width: 100%;
}

#wrapper.w1024{
	max-width: 1024px;
	width: 100%;
}

#wrapper.w900{
	max-width: 900px;
	width: 100%;
}

/* ---------------------------------------------------------------------------------------- */
/* container																																								*/
/* ---------------------------------------------------------------------------------------- */
.container{
	margin: 0 auto;
	min-width: 320px;
/*				overflow: hidden;*/
}

.container.full{
	max-width: 100%;
	width: 100%;
}

.container.w1200{
	max-width: 1200px;
	width: 100%;
}

.container.w1024{
	max-width: 1024px;
	width: 100%;
}

.container.w900{
	max-width: 900px;
	width: 100%;
}

.container.w800{
	max-width: 800px;
	width: 100%;
}

.container.w768{
	max-width: 768px;
	width: 100%;
}

.container.w640{
	max-width: 640px;
	width: 100%;
}

/* ---------------------------------------------------------------------------------------- */
/* box																																											*/
/* ---------------------------------------------------------------------------------------- */
.box{
}

.box.center{
	margin: 0 auto;
}

.box.full{
	max-width: 100%;
	width: 100%;
}

.box.w1200{
	max-width: 1200px;
	width: 100%;
}

.box.w1024{
	max-width: 1024px;
	width: 100%;
}

.box.w900{
	max-width: 900px;
	width: 100%;
}

.box.w800{
	max-width: 800px;
	width: 100%;
}

.box.w768{
	max-width: 768px;
	width: 100%;
}

/* ---------------------------------------------------------------------------------------- */
/* flex-box																																									*/
/* ---------------------------------------------------------------------------------------- */
.flex-box{
	display: flex;
}

.flex-box.center{
	margin: 0 auto;
}

.flex-box.between{
	justify-content: space-between;
}

.flex-box.full{
	max-width: 100%;
	width: 100%;
}

.flex-box.w1200{
	max-width: 1200px;
	width: 100%;
}

.flex-box.w1024{
	max-width: 1024px;
	width: 100%;
}

.flex-box.w900{
	max-width: 900px;
	width: 100%;
}

.flex-box.w800{
	max-width: 800px;
	width: 100%;
}

.flex-box.w768{
	max-width: 768px;
	width: 100%;
}

/* ---------------------------------------------------------------------------------------- */
/* padding(container, block)																																*/
/* ---------------------------------------------------------------------------------------- */
.pad00{
	padding: 0px;
}

.pad05{
	padding: 5px;
}

.pad10{
	padding: 10px;
}

.pad15{
	padding: 15px;
}

/* ---------------------------------------------------------------------------------------- */
/* flex position(block)																																			*/
/* ---------------------------------------------------------------------------------------- */
.fbottom{
	align-self: flex-end;
}

.fcenter{
	align-self: center;
}

.ftop{
	align-self: flex-start;
}

/* ---------------------------------------------------------------------------------------- */
/* header																																										*/
/* ---------------------------------------------------------------------------------------- */
header{
	position: sticky;
	top: 0;
	background-color: #efefef;
	z-index: 9999;
}

@media all and (-ms-high-contrast: none) {
	/* ieではstickyがサポートされていないため、fixedで固定する */
	header{
		position: fixed;
		width: 100%;
	}
}

/* ---------------------------------------------------------------------------------------- */
/* main																																											*/
/* ---------------------------------------------------------------------------------------- */
main{
	flex: 1;
}

@media all and (-ms-high-contrast: none) {
	/* ieではstickyがサポートされていないため、ヘッダの高さ分を確保する */
	main{
		margin-top: 98px;
	}
}

/* ---------------------------------------------------------------------------------------- */
/* footer																																										*/
/* ---------------------------------------------------------------------------------------- */
footer{
	margin-top: auto;
	background-color: #fff;
	color: #000;
	font-size: 80%;
	line-height: 1.5em;
}
