/* ==========================================================================
   Contact Form 7 — LPお問い合わせ（既存 .contact-form__* との整合）
   ========================================================================== */

/* CF7 送信用 hidden フィールド（CF7 デフォルト CSS 相当） */
.top-contact .wpcf7 .hidden-fields-container {
  display: none;
}

/* 上部のエラー一覧（スクリーンリーダー用・CF7 デフォルト CSS 相当） */
.top-contact .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;
}

.top-contact .wpcf7 {
  width: 76rem;
  max-width: 100%;
  margin: 0 auto;
}

.top-contact form.wpcf7-form.contact-form {
  width: 100%;
  margin: 0;
}

.top-contact .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

.top-contact .contact-form__select-wrap .wpcf7-form-control-wrap {
  display: block;
}

/* CF7 デフォルトの list-item 余白をリセット */
.top-contact .wpcf7-list-item {
  display: block;
  margin: 0;
}

.top-contact .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance) {
  box-sizing: border-box;
  max-width: 100%;
}

.top-contact .wpcf7-form-control.wpcf7-not-valid {
  border-color: #c51d27;
}

/* 各入力フィールド直下のエラー（赤字） */
.top-contact .wpcf7-form-control-wrap .wpcf7-not-valid-tip {
  display: block;
  margin-top: 0.6rem;
  color: #c51d27;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.5;
}

.top-contact .wpcf7-form-control-wrap .wpcf7-not-valid-tip[aria-hidden="true"] {
  display: block;
}

/* 送信前・送信中は非表示（CF7 デフォルト CSS 相当） */
.top-contact form.wpcf7-form.init .wpcf7-response-output,
.top-contact form.wpcf7-form.resetting .wpcf7-response-output,
.top-contact form.wpcf7-form.submitting .wpcf7-response-output {
  display: none;
  margin: 0;
  padding: 0;
  border: 0;
}

.top-contact .wpcf7-response-output {
  margin: 2rem 0 0;
  padding: 1.2rem 1.6rem;
  border: 2px solid #c51d27;
  border-radius: 0.4rem;
  color: #2d2d2d;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}

.top-contact .wpcf7-response-output:empty {
  display: none;
  margin: 0;
  padding: 0;
  border: 0;
}

.top-contact form.wpcf7-form.sent .wpcf7-response-output {
  border-color: #46b450;
}

/* バリデーションエラー時は下部のまとめ枠を非表示（各フィールド下のみ表示） */
.top-contact form.wpcf7-form.invalid .wpcf7-response-output,
.top-contact form.wpcf7-form.unaccepted .wpcf7-response-output {
  display: none;
  margin: 0;
  padding: 0;
  border: 0;
}

.top-contact form.wpcf7-form.failed .wpcf7-response-output {
  border-color: #c51d27;
}

/* 同意チェック */
.top-contact .contact-form__privacy .wpcf7-form-control-wrap {
  display: inline-block;
  width: auto;
}

.top-contact .contact-form__privacy .wpcf7-list-item {
  display: inline-block;
  margin: 0;
}

.top-contact .contact-form__privacy label {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  margin: 0;
  cursor: pointer;
}

.top-contact .contact-form__privacy input[type="checkbox"] {
  width: 1.6rem;
  height: 1.6rem;
  margin: 0;
  flex-shrink: 0;
  accent-color: #c51d27;
}

.top-contact .contact-form__privacy .wpcf7-list-item-label {
  color: #2d2d2d;
  font-size: 1.4rem;
  font-weight: 700;
  text-decoration: underline;
}

/* 送信ボタン */
.top-contact .contact-form__submit {
  position: relative;
}

.top-contact .contact-form__submit .wpcf7-form-control-wrap {
  display: inline-block;
  width: auto;
}

.top-contact input.wpcf7-submit.contact-form__button {
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
}

.top-contact input.wpcf7-submit.contact-form__button::after {
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 1rem;
  border-top: 0.6rem solid transparent;
  border-bottom: 0.6rem solid transparent;
  border-left: 0.9rem solid #fff;
  vertical-align: middle;
}

.top-contact .contact-form__submit .wpcf7-spinner {
  display: block;
  margin: 1.6rem auto 0;
}

@media (max-width: 768px) {
  .top-contact .wpcf7 {
    width: 100%;
  }

  .top-contact .wpcf7-not-valid-tip {
    font-size: 1.2rem;
  }

  .top-contact .wpcf7-response-output {
    font-size: 1.25rem;
  }

  .top-contact .contact-form__privacy .wpcf7-list-item-label {
    font-size: 1.25rem;
  }
}
