form table{
	margin:auto;
}

form table td,
form table th{
	padding:15px;
	box-sizing:border-box;
	vertical-align:middle;
}

form table th{
	text-align:right;
	width:30%;
	position:relative;
	padding-right:50px;
}

form table.kakunin_tbl{
	margin-bottom:30px;
}

form table.kakunin_tbl td,
form table.kakunin_tbl th{
	width:50%;
}

form table th span{
	position:absolute;
	right:0;
	top:calc(50% - 12px);
	font-size:12px;
	padding:5px;
	color:#fff;
	border-radius:3px;
	line-height:1;
}

form table th span.hissu{
	background:#f77;
}

form table th span.ninni{
	background:#5af;
}

form table td{
	width:70%;
}

form table td ul{
	overflow:hidden;
}

form table td ul li{
	width:50%;
	float:left;
}

form table td input[type=password],
form table td textarea,
form table td input[type=tel],
form table td input[type=email],
form table td input[type=text]{
	width:70%;
	border:none;
	padding:10px;
	outline:none;
	background:#f4f4f4;
	border:solid 1px #ccc;
}

form table td textarea{
	height:10em;
}

.login_page form input[type=password]:focus,
.login_page form input[type=text]:focus,
.login_page form input[type=password]:active,
.login_page form input[type=text]:active,
form table td textarea:focus,
form table td input[type=password]:focus,
form table td input[type=tel]:focus,
form table td input[type=email]:focus,
form table td input[type=text]:focus,
form table td textarea:active,
form table td input[type=tel]:active,
form table td input[type=email]:active,
form table td input[type=text]:active{
	border:solid 1px #37a;
}

form input[type=checkbox] {
	display: none;
}

form label {
	box-sizing: border-box;
	-webkit-transition: background-color 0.2s linear;
	transition: background-color 0.2s linear;
	position: relative;
	display: inline-block;
	margin: 0 20px 8px 0;
	padding: 12px 30px 12px 55px;
	border-radius: 8px;
	background-color: #F2F1F7;
	vertical-align: middle;
	cursor: pointer;
	font-weight:bold;
	padding-left:42px;
	font-weight:normal;
	background-color: #f6f7f8;
	color:#2E2F57;
}

form label:hover {
	background-color: #B6DEF3;
}

form label:hover:after {
	border-color: #2E2F57;
}

form label:after {
	-webkit-transition: border-color 0.2s linear;
	transition: border-color 0.2s linear;
	position: absolute;
	top: 50%;
	left: 15px;
	display: block;
	margin-top: -10px;
	width: 16px;
	height: 16px;
	border: 2px solid #2E2F57;
	border-radius: 6px;
	content: '';
}

form label:before {
	-webkit-transition: opacity 0.2s linear;
	transition: opacity 0.2s linear;
	position: absolute;
	top: 50%;
	left: 21px;
	display: block;
	margin-top: -7px;
	width: 5px;
	height: 9px;
	border-right: 3px solid #000;
	border-bottom: 3px solid #000;
	content: '';
	opacity: 0;
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
	z-index:+1;
}

form input[type=checkbox]:checked + label:before {
	opacity: 1;
}

.sbmt_area{
	margin:10px auto;
}

form .sbmt_area input[type=submit]{
	text-align:center;
	margin:20px auto;
	display:block;
	background:#2383C6;
	border:none;
	font-size:120%;
	color:#eee;
	padding:10px 50px;
	border:solid 1px #2383C6;
	border-radius:3px;
	-webkit-transition: all .3s;
	transition: all .3s;
}

.index_link a{
	display:block;
	margin:10px auto;
	width:100px;
	text-align:center;
	color:#fff;
	background:#2383C6;
	border-radius:3px;
	padding:10px 50px;
}


form .sbmt_area input[type=submit]:hover{
	cursor:pointer;
	background:#fff;
	color:#2383C6;
}

#main .err_mes{
	width:100%;
	margin:10px auto;
	border:solid 1px #f55;
	padding:10px;
	box-sizing:border-box;
	border-radius:3px;
	color:#f55;
}

#main .err_mes li{
	color:#f55;
	position:relative;
	padding-left:0;
	margin-bottom:10px;
	margin-left:10px;
	z-index:1;
}

.checkarea{
	text-align:center;
}


@media only screen and (max-width:999px) {
	#main .content_block.contact .fmPrivacyArea,
	#main .content_block.contact form table{
		width:90%;
		margin:10px auto;
	}

	#main .content_block.contact form label{
		width:60%;
		display:block;
		margin:auto;
	}
	

	#main form table td,
	#main form table th{
		display:block;
		padding:5px;
		width:100%;
		box-sizing:border-box;
		vertical-align:middle;
		border-bottom:dashed 1px #ccc;
	}

	#main form table th{
		text-align:left;
		position:relative;
		padding-left:45px;
	}

	#main form table.kakunin_tbl th{
		padding-left:5px;
		font-weight:bold;
	}

	form table th span{
		position:absolute;
		right:auto;
		left:5px;
		top:calc(50% - 12px);
		font-size:12px;
		padding:5px;
		color:#fff;
		border-radius:3px;
		line-height:1;
	}

	#main form table td{
		margin-bottom:25px;
	}

	.login_page form input[type=password],
	.login_page form input[type=text],
	form table td textarea,
	form table td input[type=tel],
	form table td input[type=email],
	form table td input[type=text]{
		width:100%;
		border:none;
		padding:10px;
		outline:none;
		background:#eee;
		box-sizing:border-box;
	}

	form table td ul li{
		width:100%;
		float:none;
	}

	form label.radio,
	form label {
		box-sizing: border-box;
		-webkit-transition: background-color 0.2s linear;
		transition: background-color 0.2s linear;
		position: relative;
		display: block;
		margin: 0 20px 8px 0;
		padding: 12px 12px 12px 42px;
		border-radius: 8px;
		background-color: #F2F1F7;
		vertical-align: middle;
		cursor: pointer;
		color:#2E2F57;
		font-weight:bold;
	}

	.end_form .sbmt_area{
		width:90%;
		margin:10px auto;
	}

}
