
.contact-form-wrap { max-width: 960px; margin: 0 auto; }
.contact-form-lead { margin: 0 0 34px; line-height: 1.9; }
.contact-form__item { margin: 0; padding: 24px 0; border-bottom: 1px solid #d9dce2; }
.contact-form__item label { display: block; margin-bottom: 12px; font-weight: 700; }
.contact-form__item label.form_must::after { content: "必須"; display: inline-block; margin-left: 12px; padding: 2px 8px; color: #fff; background: #e45747; border-radius: 3px; font-size: 12px; }
.contact-form__item input, .contact-form__item textarea, .contact-form__item select { display: block; width: 100%; max-width: 680px; padding: 14px 16px; border: 1px solid #c8cbd2; border-radius: 5px; background: #fff; font: inherit; }
.contact-form__item textarea { resize: vertical; }
.contact-form__item input:focus, .contact-form__item textarea:focus, .contact-form__item select:focus { outline: 2px solid #f18d00; outline-offset: 2px; }
.contact-form__item.has-error input, .contact-form__item.has-error textarea, .contact-form__item.has-error select { border-color: #b42318; }
.contact-field-error { margin: 8px 0 0; color: #b42318; font-size: 14px; }
.contact-errors { margin: 0 0 24px; padding: 18px 22px; border: 1px solid #b42318; border-radius: 8px; color: #7a271a; background: #fef3f2; }
.contact-errors ul { margin: 8px 0 0; padding-left: 1.4em; }
.contact-form__privacy { margin: 28px 0; text-align: center; }
.contact-form__privacy input { appearance: auto; width: 18px; height: 18px; margin: 0 8px 0 0; vertical-align: middle; accent-color: #f18d00; }
.contact-form__privacy a { text-decoration: underline; }
.contact-form__actions { display: flex; justify-content: center; gap: 16px; margin: 32px 0 0; }
.contact-form__actions form { margin: 0; }
.contact-form__actions .fixed-page-button { border: 0; cursor: pointer; font: inherit; }
.fixed-page-button--secondary { color: #3c4148; background: #e9edf3; }
.contact-confirm-list { margin: 0; border-top: 1px solid #d9dce2; }
.contact-confirm-list > div { display: grid; grid-template-columns: minmax(160px, 28%) 1fr; gap: 24px; padding: 22px 16px; border-bottom: 1px solid #d9dce2; }
.contact-confirm-list dt { font-weight: 700; }
.contact-confirm-list dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.contact-complete { text-align: center; line-height: 1.9; }
.contact-complete h2 { margin: 0 0 24px; font-size: clamp(24px, 3vw, 34px); }
.contact-complete p { margin: 12px 0; }
.contact-complete p a { font-weight: 700; text-decoration: underline; }
.contact-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 767px) {
  .contact-form__item { padding: 18px 0; }
  .contact-confirm-list > div { grid-template-columns: 1fr; gap: 8px; padding: 18px 8px; }
  .contact-form__actions--confirm { flex-wrap: wrap; }
  .contact-form__actions .fixed-page-button { min-width: 200px; }
}
