@charset "UTF-8";
/* =========================================================
   contact.css - お問い合わせページ（Contact Form 7）
   Figma 1440px 基準（1rem = Figmaのpx ÷ 10）
   ========================================================= */

.p-contact { padding-top: 15rem; }

.p-contact__head,
.p-contact__mv,
.p-contact__body {
	width: min(100%, 144rem);
	margin-inline: auto;
	padding: 0 12rem;
}

.p-contact__mv { margin-top: 3rem; }

.p-contact__mv img {
	display: block;
	width: 100%;
	height: 25rem;
	object-fit: cover;
	border-radius: 2rem;
}

/* 左にリード文、右にフォーム */
.p-contact__body {
	display: flex;
	align-items: flex-start;
	gap: 23.3rem;
	margin-top: 12rem;
	padding-bottom: 12rem;
}

.p-contact__lead {
	flex-shrink: 0;
	width: 28.7rem;
	padding-top: .6rem;
	font-size: 1.6rem;
	line-height: 2;
	color: var(--c-main);
}

.p-contact__form { flex: 1; min-width: 0; }

/* =========================================================
   フォーム（Contact Form 7）
   ========================================================= */
.p-contact__form .wpcf7-form > p { margin: 0; }

.p-cform__field { margin-bottom: 3.6rem; }

.p-cform__label {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin-bottom: 1rem;
	font-family: var(--font-gothic);
	font-weight: 500;
	font-size: 1.8rem;
	line-height: 1.45;
	color: var(--c-text);
}

.p-cform__req {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 4rem;
	padding: .3rem .8rem;
	border-radius: .4rem;
	background: var(--c-blue-deep);
	font-size: 1.2rem;
	line-height: 1.4;
	color: #fff;
}

.p-cform__opt {
	font-size: 1.2rem;
	line-height: 1.4;
	color: #5b6572;
}

.p-cform__ask {
	margin-bottom: 1.4rem;
	font-family: var(--font-gothic);
	font-weight: 500;
	font-size: 1.8rem;
	line-height: 1.7;
	color: var(--c-text);
}

.p-cform__note {
	margin-bottom: 1.2rem;
	font-size: 1.4rem;
	line-height: 2.4;
	color: #5b6572;
}

/* ---------- 入力欄 ---------- */
.p-contact__form input[type="text"],
.p-contact__form input[type="email"],
.p-contact__form input[type="tel"],
.p-contact__form textarea {
	width: 100%;
	padding: 1.5rem 1.8rem;
	border: 1px solid var(--c-border);
	border-radius: 1rem;
	background: #fff;
	font-family: inherit;
	font-size: 1.4rem;
	line-height: 1.4;
	color: var(--c-text);
	transition: border-color .3s ease, box-shadow .3s ease;
}

.p-contact__form textarea { height: 17rem; resize: vertical; }

.p-contact__form input::placeholder,
.p-contact__form textarea::placeholder { color: #aab2be; }

.p-contact__form input:focus,
.p-contact__form textarea:focus {
	outline: none;
	border-color: var(--c-accent);
	box-shadow: 0 0 0 .3rem rgba(94, 169, 230, .18);
}

/* ---------- チェックボックス／ラジオ ---------- */
/* CF7が挿入するspanをブロックにして、行ボックスの余白が出ないようにする */
.p-cform__choices,
.p-cform__agree { line-height: 1; }

.p-cform__choices .wpcf7-form-control-wrap,
.p-cform__choices .wpcf7-checkbox,
.p-cform__choices .wpcf7-radio,
.p-cform__agree .wpcf7-form-control-wrap,
.p-cform__agree .wpcf7-acceptance,
.p-cform__agree .wpcf7-list-item { display: block; }

.p-cform__choices .wpcf7-list-item { display: block; margin: 0 0 1.4rem; }
.p-cform__choices .wpcf7-list-item:last-child { margin-bottom: 0; }

.p-cform__choices--inline .wpcf7-radio,
.p-cform__choices--inline .wpcf7-checkbox { display: flex; gap: 2.8rem; }
.p-cform__choices--inline .wpcf7-list-item { margin-bottom: 0; }

.p-cform__choices--grid .wpcf7-checkbox {
	display: flex;
	flex-wrap: wrap;
	gap: 1.4rem 2rem;
}

.p-cform__choices--grid .wpcf7-list-item { margin: 0; }

.p-cform__choices label {
	display: inline-flex;
	align-items: center;
	gap: 1.2rem;
	font-size: 1.4rem;
	line-height: 1.45;
	color: #3a4048;
	cursor: pointer;
}

.p-contact__form input[type="checkbox"],
.p-contact__form input[type="radio"] {
	flex-shrink: 0;
	width: 2rem;
	height: 2rem;
	margin: 0;
	border: 1.5px solid var(--c-border);
	background: #fff;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	transition: border-color .2s ease, background-color .2s ease;
}

.p-contact__form input[type="checkbox"] { border-radius: .6rem; }
.p-contact__form input[type="radio"] { border-radius: 50%; }

.p-contact__form input[type="checkbox"]:checked,
.p-contact__form input[type="radio"]:checked {
	border-color: var(--c-blue-deep);
	background: var(--c-blue-deep);
}

.p-contact__form input[type="checkbox"]:checked {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M1 5l3.5 3.5L11 1.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 1.2rem auto;
}

.p-contact__form input[type="radio"]:checked {
	background: #fff;
	box-shadow: inset 0 0 0 .5rem var(--c-blue-deep);
}

.p-contact__form input[type="checkbox"]:focus-visible,
.p-contact__form input[type="radio"]:focus-visible {
	outline: 2px solid var(--c-accent);
	outline-offset: 2px;
}

/* ---------- プライバシーポリシー ---------- */
.p-cform__privacy { margin-top: 3.6rem; }

.p-cform__policy {
	height: 15rem;
	margin-bottom: 1.6rem;
	padding: 2rem 2.4rem;
	border-radius: 1rem;
	background: #edf2fb;
	overflow-y: auto;
	font-size: 1.4rem;
	line-height: 1.9;
	color: #5b6572;
	overscroll-behavior: contain;
}

.p-cform__policy h3 {
	margin-top: 1.6rem;
	font-weight: 700;
	color: var(--c-main);
}

.p-cform__policy h3:first-child { margin-top: 0; }
.p-cform__policy p { margin-top: .4rem; }

.p-cform__agree .wpcf7-list-item { margin: 0; }

.p-cform__agree label {
	display: inline-flex;
	align-items: center;
	gap: 1.2rem;
	font-size: 1.4rem;
	line-height: 1.45;
	color: #3a4048;
	cursor: pointer;
}

/* ---------- 送信ボタン ---------- */
.p-cform__submit {
	display: flex;
	justify-content: center;
	margin-top: 3.6rem;
}

.p-cform__btn {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.p-cform__btn::after {
	content: "";
	display: block;
	width: 5.4rem;
	height: 5.4rem;
	margin-left: .5rem;
	border-radius: .8rem;
	background: var(--c-blue) url("../img/common/icon-arrow-white.svg") center / 1.8rem 1.8rem no-repeat;
	transition: background-color .3s ease;
}

.p-cform__btn:hover::after { background-color: var(--c-blue-deep); }

.p-contact__form .wpcf7-submit {
	min-width: 12rem;
	padding: 1rem 2rem;
	border: 1px solid var(--c-border);
	border-radius: .8rem;
	background: #fff;
	font-family: var(--font-gothic);
	font-weight: 500;
	font-size: 1.6rem;
	line-height: 2.1;
	color: var(--c-main);
	cursor: pointer;
	transition: background-color .3s ease, color .3s ease;
}

.p-contact__form .wpcf7-submit:hover {
	background: var(--c-main);
	color: #fff;
}

.p-contact__form .wpcf7-spinner { margin-left: 1rem; }

/* ---------- バリデーション表示 ---------- */
.p-contact__form .wpcf7-not-valid-tip {
	margin-top: .6rem;
	font-size: 1.3rem;
	line-height: 1.6;
	color: #d3452f;
}

.p-contact__form .wpcf7-response-output {
	margin: 2.4rem 0 0;
	padding: 1.6rem 2rem;
	border: 1px solid var(--c-border);
	border-radius: 1rem;
	font-size: 1.4rem;
	line-height: 1.8;
}

.p-contact__form .wpcf7 form.sent .wpcf7-response-output { border-color: #2e8b57; color: #2e8b57; }
.p-contact__form .wpcf7 form.invalid .wpcf7-response-output,
.p-contact__form .wpcf7 form.failed .wpcf7-response-output { border-color: #d3452f; color: #d3452f; }

.p-contact__notice {
	padding: 2.4rem;
	border: 1px solid var(--c-border);
	border-radius: 1rem;
	font-size: 1.4rem;
	color: var(--c-text);
}

/* =========================================================
   SP（デザイン確定後に再調整する暫定レイアウト）
   ========================================================= */
@media screen and (max-width: 1023px) {
	.p-contact { padding-top: var(--header-h); }

	.p-contact__head,
	.p-contact__body { padding: 0 2.4rem; max-width: none; }



	.p-contact__body {
		display: block;
		margin-top: 6rem;
		padding-bottom: 8rem;
	}

	.p-contact__lead { width: auto; font-size: 1.4rem; }
	.p-contact__form { margin-top: 4rem; }

	.p-cform__label,
	.p-cform__ask { font-size: 1.6rem; }

	.p-cform__choices--grid .wpcf7-checkbox { flex-direction: column; gap: 1.4rem; }
	.p-cform__choices--inline { gap: 2rem; }
}
