@charset "UTF-8";

/* --------------------------------------------------------------------------------------
	フォーム
--------------------------------------------------------------------------------------- */

.form-wrap { margin-bottom: 100px; }

.form-content { margin-top: 64px; }

.form-content .step {
	display: flex;
	justify-content: center;
}

.form-content .step li {
	color: #b3b3b3;
	font-size: 18px;
	font-weight: var(--Bold);
	position: relative;
}

.form-content .step .current { color: var(--color-blue); }

.form-content .step li:nth-of-type(n+2) { margin-left: 100px; }

.form-content .step li:not(:last-of-type):after {
	background-color: #b3b3b3;
	content: '';
	display: block;
	height: 1px;
	position: absolute;
	right: -81px;
	top: 50%;
	transform: translateY(-50%);
	width: 62px;
}

.form-table {
	display: table;
	margin-top: 64px;
	width: 100%;
}

.form-column { display: table-row; }

.form-column dt,
.form-column dd { padding: 10px 0; }

.form-column dt {
	display: table-cell;
	font-weight: var(--Bold);
	vertical-align: top;
	white-space: nowrap;
}

.form-column dt.top {
	padding-top: 20px;
	vertical-align: top;
}

.form-column dt.required::after {
	background-color: var(--color-magenta);
	border-radius: 4px;
	color: #fff;
	content: '必須';
	display: inline-block;
	font-size: 12px;
	line-height: 1;
	margin-left: 10px;
	padding: 4px 5px;
	vertical-align: middle;
}

.form-column dd {
	display: table-cell;
	padding-left: 24px;
}

.form-column input,
.form-column select,
.form-column textarea,
.form-column .privacy-wrap {
	appearance: none;
	background-color: #fff;
	border: 1px solid var(--color-border);
	border-radius: 4px;
	max-width: 100%;
	outline: none;
	padding: 12px 20px;
}

.form-column textarea {
	min-height: 160px;
	width: 100%;
}

.form-column select {
	background: #fff url(../images/common/icon-arrow.svg) no-repeat calc(100% - 20px) center;
	padding-right: 52px;
}

.form-column .name {
	align-items: center;
	display: flex;
	gap: 24px;
}

.form-column .post-code,
.form-column .tel {
	align-items: center;
	display: flex;
}

.form-column .post-code > span,
.form-column .tel > span {
	display: inline-block;
	margin: 0 16px;
	vertical-align: middle;
}

.form-column .post-code > span:first-child { margin-left: 0; }

.form-column .tel input,
.form-column input[type="number"] { max-width: 100px; }

.form-column .address {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.form-column .address > input[placeholder="市区町村"] { width: 78.3%; }
.form-column .address > input[placeholder="ビル・マンション名"] { margin-top: 16px; width: 100%; }

.form-column input[type="email"] { min-width: 300px; }

.form-column input[type="checkbox"],
.form-column input[type="radio"] {
	cursor: pointer;
	height: 24px;
	padding: 0;
	width: 24px;
}

.form-column input[type="checkbox"]:checked {
	background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMGI0ZGMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cG9seWxpbmUgcG9pbnRzPSIyMCA2IDkgMTcgNCAxMiI+PC9wb2x5bGluZT48L3N2Zz4=");
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 86%;
}

.form-column input[type="number"]::-webkit-outer-spin-button,
.form-column input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.form-column input[type="radio"] { border-radius: 100vw; }

.form-column .form-radio label {
	align-items: center;
	display: flex;
	position: relative;
}

.form-column .form-radio label:has(input[type="radio"]:checked)::before {
	background-color: var(--color-blue);
	border-radius: 100vw;
	content: '';
	display: block;
	height: 12px;
	left: 6px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 12px;
}

.form-column .form-radio label:nth-of-type(n+2) { margin-top: 10px; }

.form-column dd .note {
	font-size: 14px;
	margin-top: 12px;
}

.form-column .privacy,
.form-column .privacy label {
	align-items: center;
	display: flex;
}

.form-column .privacy label,
.form-column .form-radio label {
	cursor: pointer;
	gap: 12px;
}

.form-column .privacy p { margin-left: 12px; }

.form-column .privacy p a { text-decoration: underline; }

.form-column .privacy-wrap {
	margin-top: 20px;
	max-height: 200px;
	overflow-y: scroll;
}

.form-column .privacy-wrap p:not(.titie):nth-of-type(n+2) { margin-top: 16px; }

.form-wrap .error {
	background-color: rgba(202, 3, 73, 0.20);
	color: var(--color-magenta);
	font-weight: var(--Bold);
	margin-top: 48px;
	padding: 10px;
	text-align: center;
}

.form-wrap .form-navi {
	display: flex;
	gap: 32px;
	justify-content: center;
	margin-top: 48px;
}

.form-wrap .preferred-date-text {
	background-color: var(--color-pale-gray);
	padding: 32px;
}

.form-wrap .preferred-date-input,
.form-wrap .preferred-date-input .date-column {
	align-items: center;
	display: flex;
}

.form-wrap .preferred-date-input { gap: 24px; }
.form-wrap .preferred-date-input .date-column { gap: 16px; }

.form-wrap .preferred-date-text + .preferred-date-input { margin-top: 32px; }

@media (max-width: 1099px) {

	.form-wrap { margin: auto 4.975vw 11.94vw; }

	.form-content { margin-top: 6.965vw; }

	.form-content .step li { font-size: 3.483vw; }

	.form-content .step li:not(:last-of-type):after {
		right: -6.167vw;
		width: 4.975vw;
	}

	.form-content .step li:nth-of-type(n+2) { margin-left: 7.463vw; }

	.form-column:nth-of-type(n+2) { margin-top: 4.975vw; }

	.form-table { margin-top: 9.95vw; }

	.form-table,
	.form-column,
	.form-column dt,
	.form-column dd { display: block; }

	.form-column dt,
	.form-column dd { padding: 0; }

	.form-column dd { margin-top: 2.488vw; }

	.form-column input,
	.form-column select,
	.form-column textarea,
	.form-column .privacy-wrap { padding: 3.234vw 4.975vw; }

	.form-column dt.top { padding-top: 0; }

	.form-column .name {
		gap: 0;
		justify-content: space-between;
	}

	.form-column .name > input,
	.form-column .address select,
	.form-column .address > input[placeholder="市区町村"] { width: 43.781vw; }

	.form-column .post-code > span,
	.form-column .tel > span { margin: 0 .995vw; }

	.form-column .address > input[placeholder="ビル・マンション名"] { margin-top: 2.488vw; }

	.form-column select {
		padding-right: 11.333vw;
		width: stretch;
	}

	.form-column input[type="checkbox"] {
		height: 4.975vw;
		width: 4.975vw;
	}

	.form-column dd .note {
		font-size: 2.985vw;
		margin-top: 2.488vw;
	}

	.form-column .privacy label,
	.form-column .form-radio label { gap: 2.985vw; }

	.form-wrap .error {
		margin-top: 7.96vw;
		padding: 1.244vw 5.97vw;
	}

	.form-wrap .form-navi {
		flex-wrap: wrap;
		gap: 3.333vw;
		margin-top: 7.96vw;
	}

	.form-wrap .preferred-date-text { padding: 4.975vw; }

	.form-wrap .preferred-date-input {
		align-items: flex-start;
		flex-direction: column;
		flex-wrap: wrap;
		gap: 2.488vw;
	}

	.form-wrap .preferred-date-input .date-column { gap: 0; }

	.form-wrap .preferred-date-input .date-column p {
		min-width: 18.333vw;
		white-space: nowrap;
	}

	.form-wrap .preferred-date-input .date-column select { min-width: 50.333vw; }
}
