#main {
	padding: 0 0 100px 0;
	position: relative;
}
img {
	margin: 0 auto;
	display: block;
	width: 100%;
	height: auto;
}

div.spec, #input {
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	font-feature-settings: 'palt';
	letter-spacing: 0.05em;
	box-sizing: border-box;
	margin: 0 auto;
	padding: 0 30px;
	max-width: 1000px;
}
#cover {
	font-family: "Noto Serif JP", serif;
	font-size: .9em;
	line-height: 1.7;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	margin: 0 auto 50px auto;
	padding-right: 30px;
	display: table;
	table-layout: fixed;
	box-sizing: border-box;
	max-width: 1000px;
}
#cover > div {
	vertical-align: top;
	display: table-cell;
}
#cover > div:first-child {
	width: 420px;
}
#cover > div:last-child {
	padding-top: 125px;
}
h2 {
	margin-bottom: 1.5rem;
}
#cover p {
	text-align: justify;
	text-justify: inter-ideograph;
}
#cover > div > p + p {
	margin-top: 1.5em;
}
#designers {
	font-size: .95em;
	line-height: 1.5;
	background: url("../img/stamp.jpg") left .5em / 4.5em auto no-repeat;
	margin-top: 2em;
	padding-left: 7em;
}
#designers p + p {
	margin-top: .5em;
}
#cal {
	display: flex;
	flex-wrap: wrap;
	margin: 0 auto;
	padding: 0 15px;
	box-sizing: border-box;
	max-width: 1000px;
}
#cal > div:first-child {
	width: calc(100% * 10/18);
}
#cal > div:last-child {
	width: calc(100% * 8/18);
}
@media screen and (max-width: 780px) {
	#cover {
		padding: 0;
		display: block;
	}
	#cover > div:first-child,
	#cover > div {
		display: block;
		box-sizing: border-box;
		width: 100%;
	}
	#cover > div:last-child {
		padding: 40px 30px 0 30px;
	}
	#cal > div:first-child,
	#cal > div:last-child {
		width: 100%;
	}
	#cal > div:last-child > img {
		width: 80%;
	}
}

div.spec {
	margin: 20px auto;
	display: flex;
	flex-wrap: wrap;
}
div.spec > div:not(:last-child) {
	width: 30%;
}
div.spec > div:last-child {
	width: 40%;
}
div.spec p {
	font-size: .9em;
}
div.spec p + p {
	margin-top: 1em;
}
div.spec em {
	color: #fff;
	font-size: .9em;
	line-height: 19px;
	font-style: normal;
	text-align: center;
	margin-bottom: .2em;
	background-color: #557;
	border-radius: 9.5px;
	display: block;
	width: 7em;
}
div.spec strong {
	font-weight: 700;
}
div.spec span {
	white-space: nowrap;
}
@media screen and (max-width: 780px) {
	div.spec > div:not(:last-child) {
		text-align: center;
		width: 50%;
	}
	div.spec > div:last-child {
		margin-top: 1em;
		text-align: center;
		width: 100%;
	}
	div.spec em {
		margin: 0 auto .2em auto;
	}
}
@media screen and (max-width: 490px) {
	div.spec > div:not(:last-child) {
		width: 100%;
	}
	div.spec > div:nth-child(2) {
		margin-top: 1em;
	}
}

#input {
	border-top: 1px solid #999;
	display: table;
	table-layout: fixed;
	width: 100%;
}
#input > * {
	display: table-cell;
}
#input > div {
	padding-left: 40px;
	width: 370px;
}
#input > form h3 {
	font-weight: normal;
}
#input > div h3 {
	text-align: center;
}
@media screen and (max-width: 720px) {
	#input,
	#input > * {
		display: block;
	}
	#input > div {
		padding-left: 0;
		width: 100%;
	}
}

form > div,
div#sended > div {
	margin: 0 auto;
	max-width: 660px;
}
div#sended > div {
	display: table;
	height: 400px;
}
div#sended > div > div {
	vertical-align: middle;
	padding: 20px;
	border: 1px solid #ccc;
	display: table-cell;
}

#confirm,
#sended,
body.confirm #input,
body.sended #input {
	display: none;
}
body.confirm #confirm,
body.sended #sended {
	padding: 0 30px;
	display: block;
}

form p {
	font-size: .9em;
	margin-bottom: 10px;
}
h3 {
	font-size: .9em;
	margin: 30px 0 10px 0;
}
table {
	font-size: .8em;
	line-height: 1.3;
	margin-bottom: 10px;
	border-collapse: collapse;
	border-spacing: 0;
	border-bottom: 1px solid #999;
	width: 100%;
}
tr {
	border-top: 1px solid #999;
}
th {
	color: #555;
	font-size: .9em;
	text-align: left;
	width: 10em;
}
td {
	padding: 10px 0;
}
label {
	color: #fff;
	font-size: .7em;
	line-height: 40px;
	font-weight: bold;
	text-align: center;
	vertical-align: middle;
	background-color: #557;
	border-radius: 5px 0 0 5px;
	width: 80px;
	display: inline-block;
}
input,
select {
	color: #222;
	font-size: 16px;
	line-height: 18px;
	padding: 10px;
	vertical-align: middle;
	background-color: #fff;
	border: 1px solid #666;
	border-left: none;
	border-radius: 0 5px 5px 0;
	box-sizing: border-box;
	display: inline-block;
	width: calc(100% - 80px);
	height: 40px;
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
	outline: none;
}
button {
	color: #fff;
	font-size: .9em;
	line-height: 40px;
	text-align: center;
	background-color: #06f;
	border-radius: 20px;
	width: 100%;
	height: 40px;
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	border: none;
	cursor: pointer;
}
button:hover {
	background-color: #39f;
}
#confirm span {
	color: #06f;
	font-size: .9em;
	text-align: center;
	margin: 1em auto 0 auto;
	width: 3em;
	display: block;
	cursor: pointer;
}
#confirm span:hover {
	text-decoration: underline;
}

div.grecaptcha-badge {
	bottom: 45px !important;
}