/* =====================================================================
   Contact Form 7 互換スタイル
   既存フォームCSSは全て .form 配下にスコープされているため、
   CF7フォーム内を <div class="form"> で包む運用とし、その差分のみ補正する。
   - CF7 の <form> 自体はレイアウトに関与させない（display:contents）
   - CF7 が各入力に付与する .wpcf7-form-control-wrap（inline span）をブロック化
   - チェック/ラジオ/承諾の入れ子マークアップを .field-check / .field-radio に馴染ませる
   - 検証エラー・応答メッセージの見た目をデザインに合わせる
   ===================================================================== */

/* CF7 の form 要素をレイアウト上透過にし、内側 .form をグリッドの主体にする */
.jda-cf7 .wpcf7 form.wpcf7-form {
  display: contents;
}

/* 入力ラッパ（CF7が自動付与する inline span）をブロック化して全幅に */
.jda-cf7 .form .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

/* テキスト系入力を全幅に（素の .form では flex 子要素として伸長していた分を補う） */
.jda-cf7 .form input[type="text"],
.jda-cf7 .form input[type="email"],
.jda-cf7 .form input[type="tel"],
.jda-cf7 .form input[type="url"],
.jda-cf7 .form input[type="number"],
.jda-cf7 .form select,
.jda-cf7 .form textarea {
  width: 100%;
  display: block;
}

/* チェックボックス / ラジオ / 承諾: CF7のリスト項目を縦並びのラベル行に */
.jda-cf7 .form .field-check .wpcf7-form-control,
.jda-cf7 .form .field-radio .wpcf7-form-control,
.jda-cf7 .form .field-check .wpcf7-acceptance,
.jda-cf7 .form .field-radio .wpcf7-acceptance {
  display: block;
  width: 100%;
}

.jda-cf7 .form .field-check .wpcf7-list-item,
.jda-cf7 .form .field-radio .wpcf7-list-item {
  display: block;
  margin: 0;
}

/* リスト項目のラベルを、素の .field-check / .field-radio label と同じ見た目に */
.jda-cf7 .form .field-check .wpcf7-list-item label,
.jda-cf7 .form .field-radio .wpcf7-list-item label,
.jda-cf7 .form .field-check .wpcf7-acceptance label,
.jda-cf7 .form .field-radio .wpcf7-acceptance label {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 44px;
  padding: 0.5rem 0.4rem;
  border-bottom: 1px solid var(--line);
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--text);
  cursor: pointer;
  transition: background 0.2s;
  margin: 0;
}

.jda-cf7 .form .field-check .wpcf7-list-item label:hover,
.jda-cf7 .form .field-radio .wpcf7-list-item label:hover {
  background: var(--paper-2);
}

/* 承諾チェック（acceptance）にリンクを含めても整列を保つ */
.jda-cf7 .form .field-check .wpcf7-list-item-label,
.jda-cf7 .form .field-radio .wpcf7-list-item-label {
  font-weight: 500;
}
.jda-cf7 .form .field-check a,
.jda-cf7 .form .field-radio a {
  display: inline;
}

/* 送信ボタン: [submit class:btn class:btn-solid] で .btn .btn-solid を付与する前提。
   念のため最低限の整列だけ補正。 */
.jda-cf7 .form .wpcf7-submit {
  justify-self: start;
  cursor: pointer;
}

/* 送信中スピナー */
.jda-cf7 .wpcf7-spinner {
  margin: 0 0 0 0.8rem;
}

/* 検証エラー（個別フィールド） */
.jda-cf7 .form .wpcf7-not-valid {
  border-color: var(--danger) !important;
  border-width: 2px !important;
}
.jda-cf7 .form .wpcf7-not-valid:focus {
  box-shadow: 0 0 0 3px var(--danger-soft) !important;
}
.jda-cf7 .wpcf7-not-valid-tip {
  display: block;
  margin-top: 0.4rem;
  font-size: 0.84rem;
  line-height: 1.7;
  color: var(--danger);
}

/* 応答メッセージ（送信完了・全体エラー等） */
.jda-cf7 .wpcf7-response-output {
  margin: 1.2rem 0 0;
  padding: 0.95rem 1.1rem;
  border: 1.5px solid var(--line-field);
  border-radius: var(--r-sm);
  font-size: 0.92rem;
  line-height: 1.7;
}
.jda-cf7 form.sent .wpcf7-response-output {
  border-color: var(--accent);
  color: var(--navy);
  background: var(--accent-soft);
}
.jda-cf7 form.invalid .wpcf7-response-output,
.jda-cf7 form.failed .wpcf7-response-output,
.jda-cf7 form.spam .wpcf7-response-output {
  border-color: var(--danger);
  color: var(--danger);
  background: var(--danger-soft);
}

/* 設定前のプレースホルダ表示 */
.jda-cf7 .cf7-placeholder {
  padding: 1.6rem;
  border: 1.5px dashed var(--line-field);
  border-radius: var(--r-sm);
  background: var(--card);
  color: var(--text);
  line-height: 1.9;
}
.jda-cf7 .cf7-placeholder p {
  margin: 0 0 0.6rem;
}
