@charset "utf-8";

/* ==========================================================================
   Contact Form 7 — フィードバックUI（案件非依存）
   上書きする場合は .wpcf7 配下で --cf7-feedback-* を差し替える。
   ========================================================================== */

.wpcf7 form {
	--cf7-feedback-success-bg: #eef7f0;
	--cf7-feedback-success-border: #3f9c5b;
	--cf7-feedback-success-text: #1e5b32;
	--cf7-feedback-danger-bg: #fdefef;
	--cf7-feedback-danger-border: #d64545;
	--cf7-feedback-danger-text: #8f2323;
	--cf7-feedback-warning-bg: var(--color-notice-warning-bg, #fdf6ea);
	--cf7-feedback-warning-border: var(--color-notice-warning-icon, #d99a2b);
	--cf7-feedback-warning-text: #7a5410;
}

.wpcf7 form .wpcf7-response-output {
	--cf7-feedback-accent: var(--color-border-default, rgba(17, 17, 17, 0.12));
	display: grid;
	grid-template-columns: 4px minmax(0, 1fr);
	column-gap: var(--space-3, 12px);
	align-items: stretch;
	margin: var(--space-6, 24px) 0 0;
	padding: var(--space-4, 16px) var(--space-5, 20px);
	border: 1px solid var(--cf7-feedback-accent);
	border-radius: var(--radius-sm, 4px);
	background: var(--color-bg-muted, #f5f5f5);
	color: var(--color-text-primary, #111111);
	font-size: var(--typography-fontSize-small, 14px);
	line-height: var(--typography-lineHeight-body, 1.7);
}

/* 帯の高さはテキスト行に追従（1行なら1行分、2行なら2行分） */
.wpcf7 form .wpcf7-response-output::before {
	content: '';
	width: 4px;
	border-radius: var(--radius-pill, 9999px);
	background: var(--cf7-feedback-accent);
}

.wpcf7 form.sent .wpcf7-response-output {
	--cf7-feedback-accent: var(--cf7-feedback-success-border);
	background: var(--cf7-feedback-success-bg);
	color: var(--cf7-feedback-success-text);
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
	--cf7-feedback-accent: var(--cf7-feedback-danger-border);
	background: var(--cf7-feedback-danger-bg);
	color: var(--cf7-feedback-danger-text);
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
	--cf7-feedback-accent: var(--cf7-feedback-warning-border);
	background: var(--cf7-feedback-warning-bg);
	color: var(--cf7-feedback-warning-text);
}

.wpcf7-not-valid-tip {
	display: block;
	margin-top: var(--space-1, 4px);
	color: var(--cf7-feedback-danger-text, #c22f2f);
	font-size: 13px;
	line-height: 1.6;
}

.wpcf7 input.wpcf7-not-valid,
.wpcf7 select.wpcf7-not-valid,
.wpcf7 textarea.wpcf7-not-valid {
	border-color: var(--cf7-feedback-danger-border, #d64545);
	background: #fffafa;
}

.wpcf7 form.submitting .wpcf7-submit {
	opacity: 0.6;
	cursor: wait;
}

/* 送信成功: 入力欄・同意・ボタンを隠し、完了メッセージだけ残す */
.wpcf7 form.sent > *:not(.wpcf7-response-output) {
	display: none;
}

.wpcf7 form.sent .wpcf7-response-output {
	display: block;
	margin: 0;
	padding: var(--space-10, 40px) var(--space-6, 24px);
	border: 0;
	border-radius: var(--radius-sm, 4px);
	background: var(--cf7-feedback-success-bg);
	color: var(--cf7-feedback-success-text);
	font-size: var(--typography-fontSize-h3, 20px);
	font-weight: var(--typography-fontWeight-bold, 700);
	text-align: center;
}

.wpcf7 form.sent .wpcf7-response-output::before {
	content: none;
}
