h1 {
	color: #9cd3d3;
}

h2 {
	font-size: 1.2rem;

	text-align: center;
}

form {
	width: max-content;
	max-width: 100%;
	margin: auto;
	padding-top: 2rem;
}

form select,
form input,
form textarea {
	font-family: inherit;
	font-size: 1rem;

	padding: 8px 10px 7px;

	color: #2b2b2b;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 2px;
}

form input:read-only,
form textarea:read-only {
	background-color: #ccc;
}

form select:invalid,
form input:invalid,
form textarea:invalid {
	border: 1px solid rgba(255, 0, 0, 0.5);
	background-color: #fee;
}

form input[type="password"],
form input[type="email"],
form input[type="text"],
form input[type="tel"],
form textarea {
	width: 20rem;
}

form input[type="number"] {
	width: 3rem;
	margin-right: 0.5rem;
}

form textarea {
	resize: vertical;
}

.formNavi {
	color: #fff;
}

.formNavi ol {
	display: flex;

	margin-top: 1.5rem;
	padding: 0;
}

.formNavi li {
	margin: 0 1rem;

	list-style: disclosure-closed;

	white-space: nowrap;
}

.formNavi li.now::marker {
	color: #24890d;
}

.formTitle {
	margin-top: 1.5rem;

	color: #fff;
}

.info {
	position: relative;
	padding-right: 2rem;
}

.info::after {
	position: absolute;
	padding-left: 0.5rem;

	content: url("info.svg");
}

@media (pointer: coarse), (hover: none) {
	.info:focus::after {
		font-size: 0.9rem;

		width: max-content;
		max-width: 50vw;
		margin-left: 0;
		padding: 0.5rem;

		content: attr(title);

		color: #000;
		border-width: 2px;
		border-style: solid;
		border-color: #000;
		border-radius: 3px;
		background-color: #fff;

		filter: none;
		z-index:1;
	}
}

.labelAndInput {
	display: table-row;
}

.labelAndInput dt,
.labelAndInput dd {
	padding: 0.5rem 1rem;

	vertical-align: middle;
}

.labelAndInput dt {
	display: table-cell;
}

.labelAndInput dd {
	display: inline-block;

	margin-left: 0;
}

.labelAndInput .designButton {
	margin: 0;
}

.optional,
.required {
	position: relative;
	padding-right: 2.5rem !important;
}

.optional::after,
.required::after {
	position: absolute;
	white-space: nowrap;
	right: 0;

	font-size: 0.7rem;
	width: max-content;
	border-width: 1px;
	border-style: solid;
	border-radius: 3px;
	padding: 0.2rem;
}

.optional::after {
	content: '任意';
	border-color: #000;
	color: #000;
}

.required::after {
	content: '必須';
	border-color: #900;
	background-color: #900;
	color: #fff;
}

.size5 {
	width: 5rem !important;
}

.size10,
select {
	width: 10rem !important;
}

@media screen and (max-width: 980px) {
	.formTitle,
	.formNavi ol {
		margin-top: 0.8rem;
	}
}

@media screen and (max-width: 500px) {
	h1 {
		display: none;
	}

	form input,
	form textarea {
		max-width: 80vw;
	}

	.labelAndInput dt,
	.labelAndInput dd {
		display: block;

		margin: 0;
	}

	.optional,
	.required {
		padding-right: 1rem !important;
	}
	
	.optional::after,
	.required::after {
		position: static;
		margin-left: 0.3rem;
	}
}

@media screen and (max-width: 340px) {
	.formTitle {
		display: none;
	}
}