/* ---------------------------------------------------------------------------------------- */
/* デフォルト値																																							*/
/* ---------------------------------------------------------------------------------------- */
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;
}

img{
	image-rendering: -webkit-optimize-contrast;
	image-rendering: auto;
}

/* ---------------------------------------------------------------------------------------- */
/* カスタムスタイル																																					*/
/* ---------------------------------------------------------------------------------------- */
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.5;
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
}

/* ---------------------------------------------------------------------------------------- */
/* wapper																																										*/
/* ---------------------------------------------------------------------------------------- */
#wrapper{
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	margin: 0 auto;
}
@media all and (-ms-high-contrast: none) {
	/* IEではwrapperにflexは使わない */
	#wrapper{
		display: block;
	}
}
#wrapper.full{
	max-width: 100%;
	width: 100%;
}
#wrapper.w1600s{
	max-width: 1600px;
	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: 300px;
/*	overflow: hidden;*/
}
.container.full{
	max-width: 100%;
	width: 100%;
}
.container.w1920{
	max-width: 1920px;
	width: 100%;
}
.container.w1600{
	max-width: 1600px;
	width: 100%;
}
.container.w1200{
	max-width: 1200px;
	width: 100%;
}
.container.w1050{
	max-width: 1050px;
	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;
}
.pad20{
	padding: 20px;
}
.pad25{
	padding: 25px;
}
.pad30{
	padding: 30px;
}
.pad35{
	padding: 35px;
}
.pad40{
	padding: 40px;
}
.pad45{
	padding: 45px;
}
.pad50{
	padding: 50px;
}

/* ---------------------------------------------------------------------------------------- */
/* padding(container, block) vertical (垂直/縦/上下)																			*/
/* ---------------------------------------------------------------------------------------- */
.vpad00{
	padding-top: 0px;
	padding-bottom: 0px;
}
.vpad05{
	padding-top: 5px;
	padding-bottom: 5px;
}
.vpad10{
	padding-top: 10px;
	padding-bottom: 10px;
}
.vpad15{
	padding-top: 15px;
	padding-bottom: 15px;
}
.vpad20{
	padding-top: 20px;
	padding-bottom: 20px;
}
.vpad25{
	padding-top: 25px;
	padding-bottom: 25px;
}
.vpad30{
	padding-top: 30px;
	padding-bottom: 30px;
}
.vpad35{
	padding-top: 35px;
	padding-bottom: 35px;
}
.vpad40{
	padding-top: 40px;
	padding-bottom: 40px;
}
.vpad45{
	padding-top: 45px;
	padding-bottom: 45px;
}
.vpad50{
	padding-top: 50px;
	padding-bottom: 50px;
}

/* ---------------------------------------------------------------------------------------- */
/* padding(container, block) horizontal (水平/横/左右)																			*/
/* ---------------------------------------------------------------------------------------- */
.hpad00{
	padding-left: 0px;
	padding-right: 0px;
}
.hpad05{
	padding-left: 5px;
	padding-right: 5px;
}
.hpad10{
	padding-left: 10px;
	padding-right: 10px;
}
.hpad15{
	padding-left: 15px;
	padding-right: 15px;
}
.hpad20{
	padding-left: 20px;
	padding-right: 20px;
}
.hpad25{
	padding-left: 25px;
	padding-right: 25px;
}
.hpad30{
	padding-left: 30px;
	padding-right: 30px;
}
.hpad35{
	padding-left: 35px;
	padding-right: 35px;
}
.hpad40{
	padding-left: 40px;
	padding-right: 40px;
}
.hpad45{
	padding-left: 45px;
	padding-right: 45px;
}
.hpad50{
	padding-left: 50px;
	padding-right: 50px;
}

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

.flex-center{
	align-self: center;
}

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

/* ---------------------------------------------------------------------------------------- */
/* header																																										*/
/* ---------------------------------------------------------------------------------------- */
header{
	position: sticky;
	top: 0;
	color: #000;
	background-color: #fff;
	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: 70px;
	}
}

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

/* ---------------------------------------------------------------------------------------- */
/* テキスト配置																																							*/
/* ---------------------------------------------------------------------------------------- */
.text_justify{
	text-align: justify;
	text-justify: inter-ideograph;
	-ms-text-justify: inter-ideograph;
}

.text_indent{
	text-indent:1em;
}

.text_indent2{
	padding-left: 1em;
	text-indent: -1em;
}

.rtext{
	text-align: right !important;
}

.ltext{
	text-align: left !important;
}

.ctext{
	text-align: center !important;
}
