/* お問い合わせフォーム（Contact Form 7）
 * Elementor Pro のフォームウィジェットの見た目を再現している。
 */

.wpcf7 {
	--yc-primary: #20255f;
	--yc-secondary: #666980;
	--yc-text: #1c1c1c;
	--yc-border: #e4e4e4;
	font-family: "Noto Sans JP", sans-serif;
	color: var(--yc-text);
}

.wpcf7 form p {
	margin: 0 0 32px;
}

.wpcf7 label {
	display: block;
	margin-bottom: 8px;
	color: var(--yc-text);
	font-size: 1.125em;
	font-weight: 600;
	line-height: 1.5em;
}

.yc-required {
	color: #d23c6b;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="email"],
.wpcf7 textarea {
	display: block;
	width: 100%;
	padding: 0.75em;
	border: 1px solid var(--yc-border);
	border-radius: 4px;
	background: #fff;
	color: var(--yc-text);
	font-family: inherit;
	font-size: 1.125em;
	line-height: 1.5em;
}

.wpcf7 textarea {
	height: 188px;
}

.wpcf7 input:focus,
.wpcf7 textarea:focus {
	outline: 2px solid var(--yc-primary);
	outline-offset: 1px;
}

/* ラジオボタンは横並び */
.wpcf7 .wpcf7-radio {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
}

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

.wpcf7 .wpcf7-list-item label {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: 1.125em;
	font-weight: 400;
	line-height: 1.5em;
	cursor: pointer;
}

.wpcf7 input[type="file"] {
	padding: 0;
	font-size: 1em;
}

/* Turnstile（送信ボタンの直前に表示する） */
.wpcf7 .wpcf7-turnstile,
.wpcf7 .cf-turnstile {
	margin: 0 0 24px;
}

/* 送信ボタン */
.wpcf7 input[type="submit"] {
	display: block;
	width: 100%;
	margin: 0;
	padding: 9px 40px;
	border: 0;
	border-radius: 40px;
	background: var(--yc-secondary);
	color: #fff;
	font-family: inherit;
	font-size: 1.25em;
	font-weight: 400;
	line-height: 1.8em;
	cursor: pointer;
	transition: background 0.2s;
}

.wpcf7 input[type="submit"]:hover {
	background: var(--yc-primary);
}

/* メッセージ */
.wpcf7 .wpcf7-response-output {
	margin: 24px 0 0;
	padding: 12px 16px;
	border-width: 1px;
	font-size: 1.125em;
	line-height: 1.5em;
}

.wpcf7 form.sent .wpcf7-response-output {
	border-color: #38925e;
	color: #38925e;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
	border-color: #d23c6b;
	color: #d23c6b;
}

.wpcf7 .wpcf7-not-valid-tip {
	margin-top: 4px;
	color: #d23c6b;
	font-size: 1em;
}

.wpcf7 .wpcf7-spinner {
	position: absolute;
	margin: 12px 0 0 16px;
}

@media (max-width: 767px) {
	.wpcf7 label,
	.wpcf7 input[type="text"],
	.wpcf7 input[type="tel"],
	.wpcf7 input[type="email"],
	.wpcf7 textarea,
	.wpcf7 .wpcf7-list-item label {
		font-size: 1em;
	}

	.wpcf7 input[type="submit"] {
		font-size: 1.125em;
	}
}
