/* CF7 の結果表示・エラー表示の見た目（contact-form-7 6.1.6 の styles.css を元に、使う分だけ） */
.wpcf7 .screen-reader-response { position: absolute; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; width: 1px; margin: -1px; padding: 0; border: 0; word-wrap: normal !important; word-break: normal !important; }
.wpcf7-form .wpcf7-response-output { margin: 2em 0.5em 1em; padding: 0.2em 1em; border: 2px solid #00a0d2; }
.wpcf7-form.init .wpcf7-response-output, .wpcf7-form.resetting .wpcf7-response-output, .wpcf7-form.submitting .wpcf7-response-output { display: none; }
.wpcf7-form.sent .wpcf7-response-output { border-color: #46b450; }
.wpcf7-form.failed .wpcf7-response-output, .wpcf7-form.aborted .wpcf7-response-output { border-color: #dc3232; }
.wpcf7-form.spam .wpcf7-response-output { border-color: #f56e28; }
.wpcf7-form.invalid .wpcf7-response-output, .wpcf7-form.unaccepted .wpcf7-response-output, .wpcf7-form.payment-required .wpcf7-response-output { border-color: #ffb900; }
.wpcf7-form-control-wrap { position: relative; }
.wpcf7-not-valid-tip { color: #dc3232; font-size: 1em; font-weight: normal; display: block; }
.wpcf7-list-item { display: inline-block; margin: 0 0 0 1em; }
.wpcf7-list-item-label::before, .wpcf7-list-item-label::after { content: " "; }
.wpcf7 [inert] { opacity: 0.5; }
.wpcf7 .wpcf7-submit:disabled { cursor: not-allowed; }
.wpcf7 input[type="url"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"] { direction: ltr; }
.wpcf7-form .dry-run-preview { margin: 1em 0.5em; padding: 1em; background: #f3f7f6; color: #14232f; font-family: monospace; font-size: 0.85em; white-space: pre-wrap; text-align: left; }
/* 送信中のぐるぐる（CF7 は JS で差し込むが、ここでは最初から置いて、行の高さを今の公開ページと同じにする） */
.wpcf7-spinner { visibility: hidden; display: inline-block; background-color: #23282d; opacity: 0.75; width: 24px; height: 24px; border: none; border-radius: 100%; padding: 0; margin: 0 24px; position: relative; }
form.submitting .wpcf7-spinner { visibility: visible; }
.wpcf7-spinner::before { content: ''; position: absolute; background-color: #fbfbfc; top: 4px; left: 4px; width: 6px; height: 6px; border: none; border-radius: 100%; transform-origin: 8px 8px; animation-name: spin; animation-duration: 1000ms; animation-timing-function: linear; animation-iteration-count: infinite; }
@media (prefers-reduced-motion: reduce) { .wpcf7-spinner::before { animation-name: blink; animation-duration: 2000ms; } }
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes blink { from { opacity: 0; } 50% { opacity: 1; } to { opacity: 0; } }
/* フォームには結果表示の枠が2つあり、文章を入れない側が空の枠として残らないようにする */
.wpcf7-form .wpcf7-response-output:empty { display: none; }
/* テーマの .contact_form input:focus（背景を白にする）が送信ボタンにも当たり、白文字が消えるのを防ぐ。フォーカスの枠線は残す */
.contact_form .wpcf7-submit:focus { background: var(--accent); color: var(--white); }
