@charset "UTF-8";

/* form dl */
.form dl {
	margin-left: -10px;
	border-bottom: 1px #ccc solid;
}
.form dl:not(:has( dd)) {
	display: none;
}
.form dl dt {
	float: left;
	clear: left;
	width: 200px;
	padding: 10px;
	border-top: 1px #ccc solid;
	text-align: right;
}
.form dl dt.required::after{
	content:"必須";
	display: inline-block;
	position: relative;
	top: -1px;
	margin-left: 5px;
	padding: 1px 10px;
	font-size: 12px;
	color: #f00;
	border:1px solid #f00;
}
.form dl dd {
	margin-left: 220px;
	padding: 10px;
	border-top: 1px #ccc solid;
}

/* form table */
.form table {
	border-bottom: 1px #ccc solid;
}
.form table:not(:has( tr)) {
	display: none;
}
.form table th {
	width: 190px;
	padding: 10px;
	border-top: 1px #ccc solid;
	text-align: right;
	vertical-align: top;
}
.form table th.required::after{
	content:"必須";
	display: inline-block;
	position: relative;
	top: -1px;
	margin-left: 5px;
	padding: 1px 10px;
	font-size: 12px;
	color: #f00;
	border:1px solid #f00;
}
.form table td {
	padding: 10px;
	border-top: 1px #ccc solid;
}

/* form content */
.form .form_h { display: block; margin: 15px 0 10px; font-size: 1.5em; font-weight: bold; text-align: center; }
.form .output div:first-child .form_h { margin-top: 0; }
.form .form_text { margin: 10px 0; }
.form::after { content: ""; display: block; font-size: 0; clear: both; }

.form .errors { color: red; margin-bottom: 10px; }

.form span.md_note {
	font-size: 89%;
}

.icon_required{
	position: relative;
	top: -1px;
	display: inline-block;
	margin-left: 5px;
	padding: 1px 10px;
	font-size: 12px;
	color: #f00;
	border:1px solid #f00;
}

.form .icon_required{
	position: relative;
	top: -1px;
	display: inline-block;
	margin-left: 5px;
	padding: 1px 10px;
	font-size: 12px;
	color: #f00;
	border:1px solid #f00;
}

.form fieldset label {
	display: block;
}
.form fieldset label input {
	margin: 0 3px 0 0;
}

.form p.trivial {
	margin: 0;
}
.form#confirm .trivial {
	display: none;
	height: 0;
}

.form#confirm .conf_none {
	display: none;
}

.form input[type="text"],
.form input[type="password"],
.form input[type="url"],
.form input[type="email"] {
	box-sizing: border-box;
	width: 100%;
}
.form input[type="tel"] {
	width: 15em;
}
.form input[type="number"] {
	width: 5em;
}
.form textarea {
	box-sizing: border-box;
	width: 100%;
	height: 5em;
}

.form .input_check, .form .input_radio { display: inline-block; margin: 0 1em 0 0; }
.form .input_name input { width: 7em; }

/* form submit */
.form p.submit {
	width: 100%;
	margin-top: 1em;
	text-align: center;
}

.form input[type="submit"],
.form .submit button {
	clear: left;
	width: 300px;
	margin: 20px 0;
	vertical-align: middle;
	padding: 10px 0;
	font-size: 20px;
	font-weight: bold;
}

.form .submit.confirm button {
	width: 40%;
}
.form .submit.confirm button+button {
	margin-left: 10px;
}