@charset "utf-8";

/* --------------------------------------------------------------------------------------
	キービジュアル
--------------------------------------------------------------------------------------- */

.key-image { background-image: url(../img/inquiry/key-image.jpg); }

/* --------------------------------------------------------------------------------------
	お問い合わせ（入力・確認・完了の3画面共通）
--------------------------------------------------------------------------------------- */

.inquiry .head-title { margin-bottom: 40px; }

.inquiry-lead {
	line-height: 2;
	margin-bottom: 48px;
	text-align: center;
}

/* --- ステップ表示 ---------------------------------------------------------------- */

.inquiry-step {
	display: flex;
	gap: 0 8px;
	justify-content: center;
	margin-bottom: 48px;
}

.inquiry-step li {
	align-items: center;
	color: rgba(255, 255, 255, .4);
	display: flex;
	gap: 0 8px;
	letter-spacing: .04em;
}

.inquiry-step li:not(:last-child)::after {
	background-color: rgba(255, 255, 255, .25);
	content: "";
	display: block;
	height: 1px;
	margin: 0 12px;
	width: 40px;
}

.inquiry-step li span {
	align-items: center;
	border: 1px solid rgba(255, 255, 255, .3);
	border-radius: 100vw;
	display: flex;
	height: 28px;
	justify-content: center;
	width: 28px;
}

.inquiry-step li.done { color: rgba(255, 255, 255, .7); }

.inquiry-step li.current { color: #fff; }

.inquiry-step li.current span {
	background: var(--gradient-gold);
	border-color: transparent;
	color: #000;
	font-weight: var(--Bold);
}

/* --- 全体エラー ------------------------------------------------------------------ */

.inquiry-alert {
	background-color: rgba(159, 17, 17, .15);
	border: 1px solid var(--color-red);
	border-radius: var(--border-radius);
	line-height: 1.8;
	margin-bottom: 40px;
	padding: 20px 24px;
	text-align: center;
}

/* --- 入力行 ---------------------------------------------------------------------- */

.inquiry-row:nth-of-type(n+2) { margin-top: 40px; }


.inquiry-row dt {
	align-items: center;
	display: flex;
	flex-shrink: 0;
	gap: 0 12px;
	padding-top: 12px;
	width: 260px;
}

.inquiry-row dt label {
	line-height: 1.6;
}


.inquiry-row dd { margin-top: 16px; }

.inquiry-row .note {
	color: rgba(255, 255, 255, .55);
	font-size: 16px;
	line-height: 1.7;
	margin-top: 10px;
}

.inquiry-row .error-text {
	color: #ff8b8b;
	line-height: 1.7;
	margin-top: 10px;
}

/* --- 入力欄 ---------------------------------------------------------------------- */

.inquiry-form input[type="text"],
.inquiry-form input[type="email"],
.inquiry-form input[type="tel"],
.inquiry-form textarea,
.inquiry-form select {
	appearance: none;
	background: rgba(255, 255, 255, 0.20);
	border: none;
	color: #fff;
	font-size: 18px;
	line-height: 1.7;
	outline: none;
	padding: 10px 16px;
	transition: background-color .3s ease-in-out;
	width: 100%;
}

.inquiry-form input.half { max-width: 320px; }

.inquiry-form textarea {
	display: block;
	resize: vertical;
}

.inquiry-form ::placeholder { color: rgba(255, 255, 255, .3); }

/* .inquiry-form input:focus,
.inquiry-form textarea:focus,
.inquiry-form select:focus {
	background-color: rgba(255, 255, 255, .1);
	border-color: #fddc78;
} */

.inquiry-row.is-error input,
.inquiry-row.is-error textarea,
.inquiry-row.is-error select { border-color: #ff8b8b; }

/* セレクト（矢印を自前で描く） */

.select-wrap {
	display: block;
	position: relative;
}

.select-wrap::after {
	border-bottom: 1px solid rgba(255, 255, 255, .7);
	border-right: 1px solid rgba(255, 255, 255, .7);
	content: "";
	height: 7px;
	pointer-events: none;
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-70%) rotate(45deg);
	width: 7px;
}

.inquiry-form select { cursor: pointer; }

.inquiry-form select option {
	background-color: #111;
	color: #fff;
}

/* チェックボックス（同意） */

.inquiry-check {
	align-items: flex-start;
	cursor: pointer;
	display: flex;
	gap: 0 12px;
	padding-top: 12px;
}

.inquiry-check input[type="checkbox"] {
	appearance: none;
	background-color: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 4px;
	cursor: pointer;
	flex-shrink: 0;
	height: 22px;
	margin-top: 2px;
	position: relative;
	transition: all .3s ease-in-out;
	width: 22px;
}

.inquiry-check input[type="checkbox"]:checked {
	background: var(--gradient-gold);
	border-color: transparent;
}

.inquiry-check input[type="checkbox"]:checked::after {
	border-bottom: 2px solid #000;
	border-left: 2px solid #000;
	content: "";
	height: 6px;
	left: 5px;
	position: absolute;
	top: 5px;
	transform: rotate(-45deg);
	width: 11px;
}

.inquiry-check span {
	line-height: 1.6;
}

.inquiry-check a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ハニーポット（bot対策の隠し項目。display:none だと埋めない bot がいるので画面外へ） */

.inquiry-honeypot {
	height: 0;
	left: -9999px;
	overflow: hidden;
	position: absolute;
	width: 0;
}

/* --- reCAPTCHA -------------------------------------------------------------------- */

.inquiry-recaptcha {
	display: flex;
	justify-content: center;
	margin-top: 48px;
}

/*
	v2 のウィジェットは 304px 固定幅で、狭い端末だと box の内側からはみ出します。
	縮小して収めます。
*/
@media (max-width: 380px) {

	.inquiry-recaptcha .g-recaptcha {
		transform: scale(.85);
		transform-origin: center center;
	}

}

/*
	v3 のバッジ（右下固定）。非表示にすると Google の規約で
	代わりに所定の文言の掲載が必要になるため、隠していません。
*/
.grecaptcha-badge { box-shadow: 0 0 8px rgba(0, 0, 0, .4) !important; }

/* --- 確認画面 -------------------------------------------------------------------- */

.inquiry-confirm {
	margin: 0 auto 56px;
	max-width: 680px;
	text-align: center;
}

.inquiry-confirm .inquiry-row dt {
	color: rgba(255, 255, 255, .7);
	display: block;
	padding-top: 0;
	width: auto;
}

.inquiry-confirm .inquiry-row dd {
	line-height: 1.9;
	word-break: break-word;
}

/* --- 完了画面 -------------------------------------------------------------------- */

.inquiry-complete {
	line-height: 2;
	text-align: center;
}

.inquiry-complete .lead {
	font-size: 24px;
	font-weight: var(--Regular);
	margin-bottom: 24px;
}

.inquiry-complete .note {
	color: rgba(255, 255, 255, .55);
	margin-top: 24px;
}

/* --- ボタン ---------------------------------------------------------------------- */

.inquiry-action {
	align-items: center;
	display: flex;
	gap: 20px;
	justify-content: center;
	margin-top: 42px;
}


@media (any-hover: hover) {

	.inquiry-action .banner.back button:hover { border-color: #fff; }

}

/* --------------------------------------------------------------------------------------
	スマホ
--------------------------------------------------------------------------------------- */

@media (max-width: 900px) {

	.inquiry .head-title { margin-bottom: 4.994vw; }

	.inquiry-lead {
		font-size: 3.496vw;
		margin-bottom: 5.993vw;
	}

	.inquiry-step {
		gap: 0 0.999vw;
		margin-bottom: 5.993vw;
	}

	.inquiry-step li {
		font-size: 2.996vw;
		gap: 0 0.999vw;
	}

	.inquiry-step li:not(:last-child)::after {
		margin: 0 1.498vw;
		width: 3.995vw;
	}

	.inquiry-step li span {
		height: 4.494vw;
		width: 4.494vw;
	}

	.inquiry-alert {
		font-size: 3.246vw;
		margin-bottom: 4.994vw;
		padding: 2.996vw 3.496vw;
	}

	.inquiry-row {
		display: block;
		padding: 4.494vw 0;
	}

	.inquiry-row dt {
		margin-bottom: 2.497vw;
		padding-top: 0;
		width: auto;
	}

	.inquiry-row dt label { font-size: 3.496vw; }

	.inquiry-row dt .require {
		font-size: 2.497vw;
		padding: 1.123vw 1.498vw;
	}

	.inquiry-row .note { font-size: 2.871vw; }

	.inquiry-row .error-text { font-size: 3.121vw; }

	.inquiry-form input[type="text"],
	.inquiry-form input[type="email"],
	.inquiry-form input[type="tel"],
	.inquiry-form textarea,
	.inquiry-form select {
		font-size: 3.496vw;
		padding: 3.121vw 3.496vw;
	}

	.inquiry-form input.half { max-width: 100%; }

	.select-wrap::after {
		height: 1.498vw;
		right: 3.995vw;
		width: 1.498vw;
	}

	.inquiry-check {
		gap: 0 2.497vw;
		padding-top: 0;
	}

	.inquiry-check input[type="checkbox"] {
		height: 4.494vw;
		width: 4.494vw;
	}

	.inquiry-check input[type="checkbox"]:checked::after {
		height: 1.248vw;
		left: 0.999vw;
		top: 1.123vw;
		width: 2.247vw;
	}

	.inquiry-check span { font-size: 3.246vw; }

	.inquiry-recaptcha { margin-top: 5.993vw; }

	.inquiry-confirm { margin-bottom: 6.99vw; }

	.inquiry-confirm .inquiry-row dt { font-size: 3.246vw; }

	.inquiry-confirm .inquiry-row dd { font-size: 3.496vw; }

	.inquiry-complete { font-size: 3.496vw; }

	.inquiry-complete .lead {
		font-size: 4.494vw;
		margin-bottom: 2.996vw;
	}

	.inquiry-complete .note {
		font-size: 3.121vw;
		margin-top: 2.996vw;
	}

	.inquiry-action {
		flex-direction: column-reverse;
		gap: 2.497vw 0;
		margin-top: 6.99vw;
	}

	.inquiry-action .banner {
		min-width: 0;
		width: 100%;
	}

	.inquiry-action .banner button,
	.inquiry-action .banner a {
		min-height: 7.99vw;
		min-width: 0;
		width: 100%;
	}

	.inquiry-action .banner.back button { min-height: 6.99vw; }

}
