/* Contact Form 7 を新デザイン（form-panel）に合わせる */
.wpcf7 .cf7-form-group { margin-bottom: 30px; }
.wpcf7 .cf7-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 30px; }
.wpcf7 .cf7-form-row .cf7-form-group { margin-bottom: 0; }
@media (max-width: 720px) { .wpcf7 .cf7-form-row { grid-template-columns: 1fr; } }

/* wpautop（自動整形）が残っていても崩れないための防御。
   ラベル直後の <br> と、控えめでない <p> の余白を殺し、
   入力欄ラップをブロック化して素直な縦積みに戻す。 */
.wpcf7 .cf7-form-group > p,
.wpcf7 .cf7-form-submit > p { margin: 0; }
.wpcf7 .cf7-form-group br { display: none; }
.wpcf7 .wpcf7-form-control-wrap { display: block; }

.wpcf7 label { display: block; font-size: 14.5px; font-weight: 700; margin-bottom: 12px; color: var(--ink); }
.wpcf7 .required-mark { color: var(--coral); font-size: 12px; margin-left: 6px; }

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select,
.wpcf7 textarea {
  width: 100%; font-family: var(--font); font-size: 15px; color: var(--ink);
  padding: 15px 18px; border: 1.5px solid var(--line-dark); border-radius: 10px; background: var(--paper);
  transition: border-color 0.25s, background 0.25s; -webkit-appearance: none; appearance: none;
}
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { outline: none; border-color: var(--coral); background: #fff; }
.wpcf7 textarea { min-height: 190px; resize: vertical; }

/* ラジオをチップ型に */
.wpcf7 .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 10px; }
.wpcf7 .wpcf7-radio .wpcf7-list-item { margin: 0; }
.wpcf7 .wpcf7-radio label {
  display: inline-flex; align-items: center; gap: 8px; margin: 0;
  font-size: 14px; font-weight: 500; border: 1.5px solid var(--line-dark); border-radius: 8px;
  padding: 10px 20px; cursor: pointer; transition: all 0.2s; background: var(--paper);
}
.wpcf7 .wpcf7-radio input { accent-color: var(--coral); }
.wpcf7 .wpcf7-radio label:has(input:checked) { border-color: var(--coral); color: var(--coral-dark); background: var(--coral-pale); }

/* 送信ボタン */
.wpcf7 .wpcf7-submit {
  display: inline-flex; align-items: center; gap: 12px;
  background: var(--coral); color: #fff; border: 1.5px solid var(--coral);
  font-family: var(--font); font-size: 15.5px; font-weight: 700; letter-spacing: 0.06em;
  padding: 16px 40px; border-radius: 8px; cursor: pointer;
  transition: background 0.25s, border-color 0.25s;
}
.wpcf7 .wpcf7-submit:hover { background: var(--coral-dark); border-color: var(--coral-dark); }
.wpcf7 .wpcf7-spinner { margin-left: 12px; }

/* 応答メッセージ（未送信時は空枠を出さない。メッセージが出る状態でのみ表示） */
.wpcf7 form .wpcf7-response-output {
  display: none;
  margin: 28px 0 0; padding: 16px 20px; border: 1.5px solid var(--line-dark); border-radius: 10px;
  font-size: 14px; color: var(--ink);
}
.wpcf7 form.sent .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output { display: block; }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--coral); background: var(--coral-pale); }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output { border-color: #b3261e; color: #b3261e; }
.wpcf7-not-valid-tip { font-size: 12.5px; color: #b3261e; margin-top: 6px; }

/* ------------------------------------------------------------------
   保険（詳細度で確実に勝たせる）:
   外部プラグイン（tcd-classic-editor の utility.css 等）が .wpcf7 ラッパーに
   枠線・背景・余白を付けてくる場合があるため、フォームパネル内では打ち消す。
   通常は functions.php 側で当該CSSを dequeue 済みだが、二重の保険として残す。
   ------------------------------------------------------------------ */
.form-panel .wpcf7 { width: auto; border: 0; background: transparent; font-size: inherit; }
.form-panel .wpcf7 form { margin: 0; }
.form-panel .wpcf7 p { margin-bottom: 0; font-size: inherit; }
.form-panel .wpcf7 input[type="text"],
.form-panel .wpcf7 input[type="email"],
.form-panel .wpcf7 input[type="tel"],
.form-panel .wpcf7 select,
.form-panel .wpcf7 textarea {
  width: 100%; padding: 15px 18px; line-height: 1.5;
  border: 1.5px solid var(--line-dark); border-radius: 10px; background: var(--paper);
}
.form-panel .wpcf7 textarea { height: auto; min-height: 190px; }
.form-panel .wpcf7 .wpcf7-submit {
  display: inline-flex; width: auto; height: auto; margin: 0;
  padding: 16px 40px; border-radius: 8px;
  background: var(--coral); color: #fff; border: 1.5px solid var(--coral) !important;
}
.form-panel .wpcf7 .wpcf7-submit:hover { background: var(--coral-dark); }
