@charset "UTF-8";
/* ==========================================================================
	form.css
	資料請求・お問い合わせフォーム（Contact Form 7）専用スタイル
	--------------------------------------------------------------------------
	- 新設クラスはすべて form_ / thanks_ 接頭辞
	- セレクタは .p-form / .form_body 配下にスコープ（サイト他所へ影響なし）
	- 既存クラス（.u-btn01 / .cmn_inner 等）は上書きせず、必要な値のみ複製
	- キーカラー: #229DA4 / グラデ: #21C0CA→#227072 / 罫線: #e4e4e4
	- ブレークポイント: min-width:1000px（hover系）/ max-width:999px / 767px
========================================================================== */

/* --------------------------------------------------------------------------
	フォーム全体ラッパー
-------------------------------------------------------------------------- */
.p-form .form_body {
	max-width: 1120px;
	margin: 0 auto;
}

/* --------------------------------------------------------------------------
	導入文・注記
-------------------------------------------------------------------------- */
.p-form .form_lead {
	max-width: 1120px;
	margin: 0 auto 30px;
	line-height: 2;
	text-align: center;
}
.p-form .form_note {
	max-width: 1120px;
	margin: 0 auto 50px;
	font-size: 13px;
	line-height: 1.75;
	color: #D93025;
	text-align: center;
}

/* --------------------------------------------------------------------------
	入力テーブル（dl.form_tbl 直下に dt/dd が全ペア並ぶ構造）
	PC: dt 30% / dd 70% の2カラムGrid、行間にドット下線
	SP: 縦積み
-------------------------------------------------------------------------- */
.form_body .form_tbl {
	display: grid;
	grid-template-columns: 30% 1fr;
	border-top: 1px dotted #ccc;
	margin: 0;
}
.form_body .form_tbl dt {
	padding: 38px 20px 25px 10px;
	border-bottom: 1px dotted #ccc;
	font-weight: 500;
}
.form_body .form_tbl dd {
	padding: 25px 10px 25px 0;
	border-bottom: 1px dotted #ccc;
	margin: 0;
}
.form_body .form_tbl dt p,
.form_body .form_tbl dd p {
	margin: 0;
}
.form_body .form_tbl dd p + p {
	margin-top: 8px;
}

/* --------------------------------------------------------------------------
	必須／任意バッジ
-------------------------------------------------------------------------- */
.form_body .form_req,
.form_body .form_opt {
	display: inline-block;
	margin-left: 10px;
	padding: 2px 10px;
	border-radius: 3px;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;
	color: #fff;
	white-space: nowrap;
	vertical-align: middle;
}
.form_body .form_req {
	background: #D93025;
}
.form_body .form_opt {
	background: #999;
}

/* --------------------------------------------------------------------------
	入力部品（input / textarea / select）
-------------------------------------------------------------------------- */
.form_body input[type="text"],
.form_body input[type="email"],
.form_body input[type="tel"],
.form_body input[type="number"],
.form_body textarea,
.form_body select {
	width: 100%;
	padding: 12px 15px;
	border: 1px solid #e4e4e4;
	border-radius: 4px;
	background-color: #fff;
	font-family: inherit;
	font-size: 15px;
	line-height: 1.5;
	color: #1D1D1D;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color .3s, box-shadow .3s;
}
.form_body input[type="number"] {
	max-width: 200px;
}
.form_body input[type="text"]:focus,
.form_body input[type="email"]:focus,
.form_body input[type="tel"]:focus,
.form_body input[type="number"]:focus,
.form_body textarea:focus,
.form_body select:focus {
	border-color: #229DA4;
	box-shadow: 0 0 0 3px rgba(34, 157, 164, .15);
	outline: none;
}
.form_body input::placeholder,
.form_body textarea::placeholder {
	color: #aaa;
}
.form_body textarea {
	min-height: 200px;
	resize: vertical;
}
.form_body select {
	padding-right: 40px;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 10 7'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23229DA4' stroke-width='1.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 15px center;
	cursor: pointer;
}

/* 幅ユーティリティ（郵便番号・電話番号など短い入力欄用） */
.form_body .form_input_s {
	max-width: 200px;
}
.form_body .form_input_m {
	max-width: 400px;
}

/* --------------------------------------------------------------------------
	チェックボックス／ラジオ（CF7 .wpcf7-list-item）
-------------------------------------------------------------------------- */
.form_body .wpcf7-list-item {
	display: inline-block;
	margin: 5px 30px 5px 0;
}
.form_body .wpcf7-list-item label {
	cursor: pointer;
}
.form_body .wpcf7-list-item input[type="checkbox"],
.form_body .wpcf7-list-item input[type="radio"] {
	margin-right: 8px;
	accent-color: #229DA4;
	vertical-align: -1px;
	cursor: pointer;
}
.form_body .wpcf7-list-item .wpcf7-list-item-label {
	vertical-align: middle;
}

/* --------------------------------------------------------------------------
	同意チェック（中央寄せ）
-------------------------------------------------------------------------- */
.form_body .form_agree {
	margin: 50px auto 0;
	text-align: center;
}
.form_body .form_agree .wpcf7-list-item {
	margin: 0;
}
.form_body .form_agree_note {
	margin-top: 10px;
	font-size: 13px;
	line-height: 1.75;
	color: #777;
	text-align: center;
}

/* --------------------------------------------------------------------------
	送信ボタン（.u-btn01 調を複製：グラデ背景・角丸なし・白文字）
-------------------------------------------------------------------------- */
.form_body .form_submit {
	margin-top: 50px;
	text-align: center;
}
.form_body .form_submit input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 280px;
	height: 70px;
	padding: 0 40px;
	border: none;
	border-radius: 0;
	background-color: #21C0CA;
	background-image: linear-gradient(to right, #227072, #21C0CA);
	font-family: inherit;
	font-size: 16px;
	letter-spacing: .1em;
	line-height: 1;
	color: #fff;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: opacity .3s;
}
.form_body .form_submit input[type="submit"]:disabled {
	opacity: .5;
	cursor: default;
}

/* --------------------------------------------------------------------------
	CF7 状態表示
-------------------------------------------------------------------------- */
/* 未入力・形式エラー（項目下の赤文字） */
.form_body .wpcf7-not-valid-tip {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	line-height: 1.5;
	color: #D93025;
}
.form_body input.wpcf7-not-valid,
.form_body textarea.wpcf7-not-valid,
.form_body select.wpcf7-not-valid {
	border-color: #D93025;
	background-color: #FDF3F2;
}

/* 送信結果メッセージ（成功／エラーで枠色分け） */
.form_body .wpcf7-response-output {
	max-width: 1120px;
	margin: 40px auto 0;
	padding: 15px 20px;
	border: 1px solid #e4e4e4;
	font-size: 14px;
	line-height: 1.75;
	text-align: center;
}
.form_body .wpcf7-form.sent .wpcf7-response-output {
	border-color: #229DA4;
	background-color: #EFFAFF;
	color: #227072;
}
.form_body .wpcf7-form.invalid .wpcf7-response-output,
.form_body .wpcf7-form.failed .wpcf7-response-output,
.form_body .wpcf7-form.aborted .wpcf7-response-output,
.form_body .wpcf7-form.spam .wpcf7-response-output,
.form_body .wpcf7-form.unaccepted .wpcf7-response-output {
	border-color: #D93025;
	background-color: #FDF3F2;
	color: #D93025;
}

/* 送信中スピナー */
.form_body .wpcf7-spinner {
	display: block;
	margin: 15px auto 0;
}

/* --------------------------------------------------------------------------
	サンクスページ
-------------------------------------------------------------------------- */
.p-form .thanks_box {
	max-width: 1120px;
	margin: 0 auto;
	padding: 60px 20px 80px;
	text-align: center;
}
.p-form .thanks_ttl {
	font-family: 'Noto Serif JP', serif;
	font-size: 28px;
	font-weight: 500;
	line-height: 1.5;
	color: #1D1D1D;
}
.p-form .thanks_ttl::after {
	content: "";
	display: block;
	width: 60px;
	height: 1px;
	margin: 25px auto 0;
	background-image: linear-gradient(to right, #227072, #21C0CA);
}
.p-form .thanks_txt {
	margin-top: 30px;
	line-height: 2;
}
/* 戻るボタン（送信ボタンと同調のリンクボタン。<a class="thanks_back"> に付与） */
.p-form .thanks_back {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 280px;
	height: 70px;
	margin-top: 50px;
	padding: 0 40px;
	background-color: #21C0CA;
	background-image: linear-gradient(to right, #227072, #21C0CA);
	font-size: 16px;
	letter-spacing: .1em;
	line-height: 1;
	color: #fff;
	text-decoration: none;
	transition: opacity .3s;
}

/* --------------------------------------------------------------------------
	hover（サイトの流儀に合わせ min-width:1000px 内に記述）
-------------------------------------------------------------------------- */
@media (min-width: 1000px) {
	.form_body .form_submit input[type="submit"]:hover {
		opacity: .7;
	}
	.form_body .form_submit input[type="submit"]:disabled:hover {
		opacity: .5;
	}
	.p-form .thanks_back:hover {
		opacity: .7;
	}
}

/* --------------------------------------------------------------------------
	タブレット（≦999px）
-------------------------------------------------------------------------- */
@media (max-width: 999px) {
	.p-form .form_lead {
		text-align: left;
	}
	.p-form .form_note {
		margin-bottom: 40px;
		text-align: left;
	}
	.form_body .form_tbl {
		grid-template-columns: 35% 1fr;
	}
}

/* --------------------------------------------------------------------------
	スマートフォン（≦767px）: 縦積み
-------------------------------------------------------------------------- */
@media (max-width: 767px) {
	.p-form .form_lead {
		margin-bottom: 25px;
	}
	.form_body .form_tbl {
		grid-template-columns: 1fr;
	}
	.form_body .form_tbl dt {
		padding: 20px 5px 0;
		border-bottom: none;
	}
	.form_body .form_tbl dd {
		padding: 10px 5px 20px;
	}
	.form_body input[type="text"],
	.form_body input[type="email"],
	.form_body input[type="tel"],
	.form_body input[type="number"],
	.form_body textarea,
	.form_body select {
		font-size: 16px;
	}
	.form_body textarea {
		min-height: 160px;
	}
	.form_body .form_input_s {
		max-width: 160px;
	}
	.form_body .form_input_m {
		max-width: 100%;
	}
	.form_body .wpcf7-list-item {
		display: block;
		margin: 8px 0;
	}
	.form_body .form_agree {
		margin-top: 40px;
	}
	.form_body .form_submit {
		margin-top: 40px;
	}
	.form_body .form_submit input[type="submit"] {
		width: 100%;
		min-width: 0;
		height: 60px;
	}
	.p-form .thanks_box {
		padding: 40px 0 50px;
	}
	.p-form .thanks_ttl {
		font-size: 22px;
	}
	.p-form .thanks_txt {
		margin-top: 20px;
		text-align: left;
	}
	.p-form .thanks_back {
		width: 100%;
		min-width: 0;
		height: 60px;
		margin-top: 40px;
	}
}
