@charset "UTF-8";
/* =============================================================
   Entry Form — 採用エントリーフォーム専用スタイル
   -------------------------------------------------------------
   デザインカンプ: recruit_entry｜1920｜浜医.整形様.psd (1920px 基準)
   実測値をそのまま反映している。主な基準値:
     - コンテンツ幅 ........ 1100px  (PSD x409 → x1511)
     - 行ピッチ ............ 72px    (行中心 744 / 816 / 888 …)
     - ラベル左インデント .. 36px    (PSD x445 − x409)
     - 必須バッジ左位置 .... 259px   (PSD x668 − x409) ※ラベル長に非依存
     - 入力列左位置 ........ 371px   (PSD x780 − x409)
     - 入力欄 .............. 短 350 / 長 700 / 生年月日 100、高さ 44px
     - テキストエリア ...... 700 × 200
     - 交互背景 ............ 奇数行 #F3FFFF / 偶数行 #FFFFFF
     - フッターまでの間隔 .. 100px

   フォームプラグイン: Contact Form 7 6.x
     + Confirm Plus Contact Form 7 2.0.3.1 (確認画面 / 16 節)
     セレクタは CF7 の出力 DOM (.wpcf7 / .wpcf7-form / .wpcf7-list-item /
     .wpcf7-not-valid-tip / .wpcf7-response-output / .wpcf7-spinner) に準拠。
     CF7 同梱 styles.css より詳細度を 1 段上げて打ち消す箇所がある。

   ★ スコープは the_content 内 + ページタイトル + 注意文に限定する。
     .l-mv / .container / パンくず / header / footer は style.css の
     既存定義が正。本ファイルでは一切定義しない (上書き・干渉禁止)。
     /contact/ 側の .contact-form スコープ (style.css 15 節) とも非干渉。
   ============================================================= */

.entryForm {
  --ef-content:      1100px;   /* コンテンツ幅 */
  --ef-label-indent: 36px;     /* 行左端 → ラベル */
  --ef-badge-left:   259px;    /* 行左端 → 必須バッジ */
  --ef-control-left: 371px;    /* 行左端 → 入力欄 */
  --ef-row-h:        72px;     /* 行ピッチ */
  --ef-field-h:      44px;     /* 入力欄の高さ */
  --ef-w-short:      350px;
  --ef-w-long:       700px;
  --ef-w-date:       100px;

  --ef-text:         #333333;
  --ef-text-sub:     #666666;
  --ef-placeholder:  #999999;
  --ef-tint:         #F3FFFF;
  --ef-badge:        #3399CC;
  --ef-agree:        #003399;
  --ef-button:       #3366FF;
  --ef-button-hover: #2751d8;
  --ef-line:         #333333;
  --ef-error:        #C0392B;

  color: var(--ef-text);
  /* PSD: コンテンツ下端 2101 → フッター上端 2200 = 100px */
  padding-bottom: 100px;
}

.entryForm__inner {
  width: 100%;
  max-width: var(--ef-content);
  margin: 0 auto;
  box-sizing: border-box;
}

/* -------------------------------------------------------------
   1. ページタイトル  (PSD: 中央 / 下線 / y501–536)
   ------------------------------------------------------------- */
.entryForm__pageTitle {
  margin: 16px 0 0;
  padding: 0;
  text-align: center;
  font-size: 32px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.04em;
  color: var(--ef-text);
}

.entryForm__pageTitle > span {
  display: inline-block;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--ef-line);
}

/* -------------------------------------------------------------
   2. 注意文  (PSD: y613–664 / 2 行目に下線)
   ------------------------------------------------------------- */
.entryForm__notice {
  margin: 72px 0 0;
  /* PSD: テキスト左端 x453 = 行左端 409 + 44。1 行目が 1045px あるため
     右パディングは置かない (1100 − 44 = 1056px の折り返し幅を確保する)。 */
  padding: 0 0 0 44px;
  font-size: 18px;
  line-height: 1.78;
  color: var(--ef-text);
}

.entryForm__noticeLine {
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
}

/* -------------------------------------------------------------
   3. フォーム本体ラッパ
   ------------------------------------------------------------- */
.entryForm__body {
  margin-top: 44px;
}

.entryForm__body .wpcf7,
.entryForm__body .wpcf7-form {
  width: 100%;
}

/* 空段落は行揃えを崩すので潰す
   (inc/cf7-form.php の wpcf7_autop_or_not でエントリー画面の
    wpautop は無効化済み。保険として残す) */
.entryForm__body .wpcf7-form p:empty,
.entryForm__body .wpcf7-form > p > br:only-child {
  display: none;
  margin: 0;
}

/* CF7 のフィールドラッパ。エラー文 (.wpcf7-not-valid-tip) の
   絶対配置基準になるので position だけ確保する。 */
.entryForm .wpcf7-form-control-wrap {
  position: relative;
}

/* -------------------------------------------------------------
   4. フォーム表  (罫線なし / 72px ピッチ / 交互背景)
   ------------------------------------------------------------- */
.entryForm__table {
  width: 100%;
  max-width: var(--ef-content);
  margin: 0 auto;
  border-collapse: collapse;
  border-spacing: 0;
  table-layout: fixed;
}

.entryForm__table th,
.entryForm__table td {
  border: 0;
  background: transparent;
  vertical-align: middle;
  text-align: left;
  font-weight: 400;
  padding: 12px 0;
}

/* 交互背景: 1 行目から色付き (PSD 長方形 10 の位置に一致) */
.entryForm__table tbody tr {
  height: var(--ef-row-h);
  background: #FFFFFF;
}

.entryForm__table tbody tr:nth-child(odd) {
  background: var(--ef-tint);
}

/* ---- 4-1. ラベル列 ---- */
.entryForm__table th {
  position: relative;
  width: var(--ef-control-left);
  padding-left: var(--ef-label-indent);
  padding-right: 8px;
  font-size: 18px;
  line-height: 1.5;
  color: var(--ef-text);
  box-sizing: border-box;
}

/* ---- 4-2. 必須バッジ (行左端から 259px の固定位置) ---- */
.entryForm__req {
  position: absolute;
  left: var(--ef-badge-left);
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 28px;
  border-radius: 12px;
  background: var(--ef-badge);
  color: #FFFFFF;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.25em;
  text-indent: 0.25em;   /* letter-spacing 分の右寄りを中央へ戻す */
  white-space: nowrap;
}

/* ---- 4-3. 入力列 ---- */
.entryForm__table td {
  padding-right: 0;
  font-size: 18px;
  line-height: 1.6;
}

/* ---- 4-4. 上揃えの行 (お問い合わせ内容)
   PSD: 行 y1667–1968 (301px)。ラベル / 説明文の行ボックス上端が行上端に
   ほぼ接し (+1px)、テキストエリア下に 23px 残る。 ---- */
.entryForm__row--top th,
.entryForm__row--top td {
  vertical-align: top;
  padding-top: 2px;
  padding-bottom: 22px;
}

.entryForm__row--top .entryForm__req {
  top: 23px;
  transform: none;
}

/* ---- 4-5. 2 行構成の行 (最終学歴)
   PSD ではラベル / 必須バッジが 1 行目の入力欄と同じ高さに揃う
   (ラベル中心 y1563 ≒ 入力欄中心 y1564.5)。入力欄 44px とラベル 27px の
   差 (17px) の半分を th の上パディングに足して揃える。 ---- */
.entryForm__row--multi th,
.entryForm__row--multi td {
  vertical-align: top;
}

/* PSD: 行 y1514–1667 (153px)。1 行目の入力欄は行上端 +29px。 */
.entryForm__row--multi td {
  padding-top: 27px;
  padding-bottom: 30px;
}

/* ラベル (行高 27px) の中心を 1 行目の入力欄 (44px) の中心に合わせる */
.entryForm__row--multi th {
  padding-top: 35px;
  padding-bottom: 30px;
}

.entryForm__row--multi .entryForm__req {
  top: 35px;
  transform: none;
}

/* -------------------------------------------------------------
   5. 入力欄
   ------------------------------------------------------------- */
.entryForm input[type="text"],
.entryForm input[type="email"],
.entryForm input[type="tel"],
.entryForm input[type="number"],
.entryForm textarea {
  box-sizing: border-box;
  border: 1px solid var(--ef-line);
  border-radius: 0;
  background: transparent;
  color: var(--ef-text);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.6;
  -webkit-appearance: none;
  appearance: none;
}

.entryForm input[type="text"],
.entryForm input[type="email"],
.entryForm input[type="tel"],
.entryForm input[type="number"] {
  width: var(--ef-w-short);
  max-width: 100%;
  height: var(--ef-field-h);
  padding: 0 16px;
}

.entryForm textarea {
  width: var(--ef-w-long);
  max-width: 100%;
  height: 200px;
  padding: 14px 20px;
  line-height: 1.9;
  resize: vertical;
  /* CF7 は textarea を inline の span.wpcf7-form-control-wrap で包むため、
     既定の baseline 揃えだと行ボックス下に約 7px のディセンダ余白が残り、
     PSD の 301px 行 (y1667-1968) が 308px になる。top 揃えで打ち消す。 */
  vertical-align: top;
}

.entryForm input::placeholder,
.entryForm textarea::placeholder {
  color: var(--ef-placeholder);
  opacity: 1;
}

.entryForm input:focus,
.entryForm textarea:focus {
  outline: 2px solid var(--ef-badge);
  outline-offset: 1px;
}

/* 幅バリエーション
   CF7 は class: オプションでも指定できるが、管理画面でのタグ編集ミスに
   強い name 属性ベースを採用する
   (name は inc/cf7-form.php のバリデーションと対になる SSOT)。
   ※ name -> your-name: WordPress の公開クエリ変数 `name` との衝突回避。 */
.entryForm input[name="email"],
.entryForm input[name="email-confirm"],
.entryForm input[name="address"] {
  width: var(--ef-w-long);
}

.entryForm input[name="your-name"],
.entryForm input[name="kana"],
.entryForm input[name="tel"],
.entryForm input[name="workplace"],
.entryForm input[name="education-school"] {
  width: var(--ef-w-short);
}

.entryForm input[name="birth-year"],
.entryForm input[name="birth-month"],
.entryForm input[name="birth-day"],
.entryForm input[name="education-grade"] {
  width: var(--ef-w-date);
  padding: 0 8px;
  text-align: center;
}

/* -------------------------------------------------------------
   6. インライン行 (生年月日 / 最終学歴 2 行目)
   ------------------------------------------------------------- */
.entryForm__inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
}

.entryForm__inline + .entryForm__inline {
  margin-top: 8px;
}

/* 生年月日を確認画面で「西暦○年○月○日」の形で出すためのラッパ。
   Confirm Plus の .text-set-contactform7 を兼ねる。
   display:contents で入力画面のレイアウトには一切影響させない
   (子要素がそのまま .entryForm__inline の flex アイテムになる)。 */
.entryForm__dateSet {
  display: contents;
}

.entryForm__unit {
  font-size: 18px;
  color: var(--ef-text);
  white-space: nowrap;
}

/* 単位の直後に来る次の入力欄との間隔 (PSD: 年→次の枠 = 7px) */
.entryForm__inline .entryForm__gap {
  width: 18px;   /* PSD 実測 25px − flex gap 7px */
  flex: none;
}

/* -------------------------------------------------------------
   7. チェックボックス / ラジオ  (Contact Form 7 の出力に合わせる)
   -------------------------------------------------------------
   CF7 6.x が出力する DOM:
     span.wpcf7-form-control-wrap[data-name]
       > span.wpcf7-form-control.wpcf7-checkbox (/ .wpcf7-radio / .wpcf7-acceptance)
           > span.wpcf7-list-item
               > label > input + span.wpcf7-list-item-label   ※use_label_element
   項目の並びは .wpcf7-checkbox / .wpcf7-radio 側を flex にして制御する
   (.entryForm__choices の直接の子ではないため子結合子は使えない)。
   ------------------------------------------------------------- */
.entryForm .wpcf7-list-item {
  display: inline-flex;
  align-items: center;
  /* CF7 同梱 styles.css の .wpcf7-list-item{margin:0 0 0 1em} を打ち消す */
  margin: 0;
  vertical-align: middle;
}

.entryForm .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  cursor: pointer;
  font-size: 18px;
  line-height: 1.4;
  color: var(--ef-text);
}

.entryForm .wpcf7-list-item-label {
  display: inline;
}

/* CF7 同梱 styles.css がラベル前後に挿入する空白を無効化 */
.entryForm .wpcf7-list-item-label::before,
.entryForm .wpcf7-list-item-label::after {
  content: none;
}

/* .entryForm__choices は <span> のまま使うのでブロック化しておく
   (td / .entryForm__inline の双方で flex アイテムとして機能させる) */
.entryForm__choices {
  display: block;
}

.entryForm__choices .wpcf7-form-control-wrap {
  display: block;
}

.entryForm__choices .wpcf7-checkbox,
.entryForm__choices .wpcf7-radio {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;   /* チェックボックス群 (PSD: 項目間 20px) */
}

.entryForm__choices--radio .wpcf7-radio {
  gap: 12px 48px;   /* ラジオ群 (PSD: 項目間 48px) */
}

/* 2 行目に他要素が並ぶ行 (最終学歴) 用の詰めた項目間 (PSD: 39px) */
.entryForm__choices--tight .wpcf7-radio,
.entryForm__choices--tight .wpcf7-checkbox {
  gap: 12px 40px;
}

.entryForm input[type="checkbox"],
.entryForm input[type="radio"] {
  box-sizing: border-box;
  flex: none;
  width: 18px;
  height: 18px;
  margin: 0;
  border: 1px solid #000000;
  background: #FFFFFF;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

.entryForm input[type="radio"] {
  border-radius: 50%;
}

.entryForm input[type="checkbox"]:checked {
  background: var(--ef-badge);
  border-color: var(--ef-badge);
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3.2 8.4l3.1 3.1 6.5-6.9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 14px 14px;
}

.entryForm input[type="radio"]:checked {
  border-color: var(--ef-badge);
  box-shadow: inset 0 0 0 4px #FFFFFF;
  background: var(--ef-badge);
}

.entryForm input[type="checkbox"]:focus-visible,
.entryForm input[type="radio"]:focus-visible {
  outline: 2px solid var(--ef-badge);
  outline-offset: 2px;
}

/* -------------------------------------------------------------
   8. 注記 / 説明文
   ------------------------------------------------------------- */
.entryForm__note {
  display: inline-block;
  margin: 0;
  font-size: 18px;
  line-height: 1.6;
  color: var(--ef-placeholder);
  white-space: nowrap;
}

.entryForm__desc {
  /* CF7 のフォーム本文で段落化されないよう <span> で書く前提。
     縦マージンを効かせるためにブロック化する。 */
  display: block;
  margin: 0 0 14px;
  font-size: 18px;
  line-height: 1.75;
  color: var(--ef-text);
}

.entryForm__desc small {
  font-size: inherit;
}

/* -------------------------------------------------------------
   9. エラー表示  (CF7 の .wpcf7-not-valid-tip / .wpcf7-not-valid)
   ------------------------------------------------------------- */
.entryForm__error,
.entryForm .wpcf7-not-valid-tip {
  display: block;
  margin-top: 6px;
  color: var(--ef-error);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
}

/* エラーになった入力欄は赤枠にする */
.entryForm .wpcf7-form-control.wpcf7-not-valid {
  border-color: var(--ef-error);
  box-shadow: inset 0 0 0 1px var(--ef-error);
}

/* 生年月日など横並びの行では、エラー文で行高が崩れないよう浮かせる */
.entryForm__inline .wpcf7-not-valid-tip {
  position: absolute;
  top: 100%;
  left: 0;
  margin-top: 2px;
  white-space: nowrap;
}

/* 送信結果メッセージ ([response])
   CF7 同梱 styles.css の `.wpcf7 form .wpcf7-response-output` (0,2,1) を
   上回る詳細度にするため form.wpcf7-form を挟む。 */
.entryForm .wpcf7 form.wpcf7-form .wpcf7-response-output {
  box-sizing: border-box;
  max-width: var(--ef-content);
  margin: 24px auto 0;
  padding: 12px 20px;
  border: 1px solid var(--ef-badge);
  border-radius: 4px;
  font-size: 16px;
  line-height: 1.7;
  text-align: center;
}

.entryForm .wpcf7 form.wpcf7-form.invalid .wpcf7-response-output,
.entryForm .wpcf7 form.wpcf7-form.unaccepted .wpcf7-response-output,
.entryForm .wpcf7 form.wpcf7-form.spam .wpcf7-response-output,
.entryForm .wpcf7 form.wpcf7-form.failed .wpcf7-response-output {
  border-color: var(--ef-error);
  color: var(--ef-error);
}

/* -------------------------------------------------------------
   10. ハニーポット (視覚・読み上げともに隠す)
   ------------------------------------------------------------- */
.entryForm__honeypot {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* -------------------------------------------------------------
   11. 同意行  (PSD: 中央 / #003399 / 表の 12px 下)
   ------------------------------------------------------------- */
.entryForm__agree {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 12px 0 0;
}

.entryForm__agree .wpcf7-form-control-wrap,
.entryForm__agree .wpcf7-acceptance,
.entryForm__agree .wpcf7-list-item {
  display: inline-flex;
  align-items: center;
  margin: 0;
}

.entryForm__agree .wpcf7-list-item label,
.entryForm__agree .wpcf7-acceptance label {
  gap: 11px;
  color: var(--ef-agree);
  font-size: 18px;
}

.entryForm__agree a {
  color: var(--ef-agree);
  text-decoration: underline;
}

/* -------------------------------------------------------------
   12. 送信ボタン  (PSD: 238 × 60 / r10 / #3366FF / 同意行の 38px 下)
   ------------------------------------------------------------- */
.entryForm__actions {
  position: relative;   /* .wpcf7-spinner の配置基準 */
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin: 38px 0 0;
}

.entryForm__actions input[type="submit"],
.entryForm__actions button[type="submit"],
.entryForm__actions .wpcf7-submit {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 238px;
  height: 60px;
  padding: 0 16px;
  border: 0;
  border-radius: 10px;
  background: var(--ef-button);
  color: #FFFFFF;
  font-family: inherit;
  font-size: 24px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.04em;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: background-color 0.2s ease, opacity 0.2s ease;
}

.entryForm__actions input[type="submit"]:hover,
.entryForm__actions button[type="submit"]:hover {
  background: var(--ef-button-hover);
}

.entryForm__actions .is-disabled,
.entryForm__actions input[type="submit"]:disabled,
.entryForm__actions .wpcf7-submit:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

/* CF7 の送信中スピナー。
   既定では inline-block + margin:0 24px でボタンを中央から押し出すため、
   フローから外してボタンの右脇に固定する (238px の半分 = 119px + 16px)。 */
.entryForm__actions .wpcf7-spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  margin: 0 0 0 135px;
  transform: translateY(-50%);
}

/* -------------------------------------------------------------
   13. 送信中の状態  (CF7 が form に .submitting を付与する)
   -------------------------------------------------------------
   ※ 確認ステップは Confirm Plus Contact Form 7 が担当する (16 節)。
     最終送信の成功 (wpcf7mailsent) で /entry-thanks/ へリダイレクトする。
   ------------------------------------------------------------- */
.entryForm .wpcf7-form.submitting .entryForm__table {
  opacity: 0.6;
  pointer-events: none;
}

.entryForm .wpcf7-form.submitting .wpcf7-submit {
  cursor: progress;
}

/* ハニーポットは常に非表示 (レイアウトへ影響させない) */
.entryForm .entryForm__honeypot .wpcf7-form-control-wrap {
  position: static;
}

/* -------------------------------------------------------------
   14. 完了画面
   ------------------------------------------------------------- */
.entryForm__thanks {
  margin-top: 56px;
  font-size: 18px;
  line-height: 1.9;
  text-align: center;
}

.entryForm__backHome {
  margin: 48px 0 0;
  text-align: center;
}

.entryForm__backLink {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 238px;
  height: 60px;
  padding: 0 24px;
  border-radius: 10px;
  background: var(--ef-button);
  color: #FFFFFF;
  font-size: 20px;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.entryForm__backLink:hover {
  background: var(--ef-button-hover);
  color: #FFFFFF;
}

/* =============================================================
   15. レスポンシブ
   ============================================================= */

/* ---- 15-1. 中間幅: 1100px の実寸を保てない領域 ---- */
@media (max-width: 1199px) {
  .entryForm__table {
    table-layout: auto;
  }

  .entryForm__table th {
    width: 34%;
    min-width: 260px;
  }

  .entryForm input[name="email"],
  .entryForm input[name="email-confirm"],
  .entryForm input[name="address"],
  .entryForm textarea {
    width: 100%;
  }

  .entryForm input[name="your-name"],
  .entryForm input[name="kana"],
  .entryForm input[name="tel"],
  .entryForm input[name="workplace"],
  .entryForm input[name="education-school"] {
    width: min(350px, 100%);
  }

  .entryForm__note {
    white-space: normal;
  }
}

/* ---- 15-2. タブレット: 必須バッジをラベルの隣へ ---- */
@media (max-width: 959px) {
  .entryForm__table th {
    padding-left: 20px;
    padding-right: 16px;
    width: 38%;
    min-width: 0;
  }

  .entryForm__req {
    position: static;
    transform: none;
    margin-left: 12px;
    vertical-align: middle;
  }

  .entryForm__row--top .entryForm__req,
  .entryForm__row--multi .entryForm__req {
    top: auto;
  }
}

/* ---- 15-3. スマートフォン: 縦積み ---- */
@media (max-width: 767px) {
  .entryForm {
    padding-bottom: 60px;
  }

  .entryForm__pageTitle {
    font-size: 24px;
  }

  .entryForm__notice {
    margin-top: 32px;
    padding: 0;
    font-size: 15px;
    line-height: 1.75;
  }

  .entryForm__body {
    margin-top: 28px;
  }

  .entryForm__table,
  .entryForm__table tbody,
  .entryForm__table tr,
  .entryForm__table th,
  .entryForm__table td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  .entryForm__table tbody tr {
    height: auto;
    padding: 16px 16px 20px;
  }

  .entryForm__table th {
    padding: 0 0 10px;
    font-size: 16px;
    font-weight: 700;
  }

  .entryForm__table td {
    padding: 0;
    font-size: 16px;
  }

  .entryForm__row--top th,
  .entryForm__row--top td,
  .entryForm__row--multi th,
  .entryForm__row--multi td {
    padding-top: 0;
    padding-bottom: 0;
  }

  .entryForm__row--top th,
  .entryForm__row--multi th {
    padding-bottom: 10px;
  }

  .entryForm__choices--tight .wpcf7-radio,
  .entryForm__choices--tight .wpcf7-checkbox {
    gap: 10px 24px;
  }

  .entryForm__req {
    width: 64px;
    height: 24px;
    font-size: 12px;
    border-radius: 12px;
  }

  /* iOS の自動ズーム防止: 16px 未満にしない */
  .entryForm input[type="text"],
  .entryForm input[type="email"],
  .entryForm input[type="tel"],
  .entryForm input[type="number"],
  .entryForm textarea {
    width: 100%;
    font-size: 16px;
  }

  .entryForm input[name="birth-year"],
  .entryForm input[name="birth-month"],
  .entryForm input[name="birth-day"],
  .entryForm input[name="education-grade"] {
    width: 84px;
  }

  .entryForm textarea {
    height: 200px;
    padding: 12px 14px;
  }

  .entryForm__inline {
    gap: 6px;
  }

  /* SP では絶対配置 + nowrap のエラー文が画面幅からはみ出すため通常フローへ戻す */
  .entryForm__inline .wpcf7-not-valid-tip {
    position: static;
    margin-top: 4px;
    white-space: normal;
  }

  /* SP では詰めるが、ラジオと次の入力欄がくっつかない程度は残す */
  .entryForm__inline .entryForm__gap {
    width: 8px;
  }

  .entryForm__unit {
    font-size: 15px;
  }

  .entryForm__choices .wpcf7-checkbox,
  .entryForm__choices .wpcf7-radio {
    gap: 10px 16px;
  }

  .entryForm__choices--radio .wpcf7-radio {
    gap: 10px 24px;
  }

  .entryForm .wpcf7-list-item label {
    font-size: 16px;
  }

  .entryForm__note,
  .entryForm__desc {
    font-size: 14px;
    white-space: normal;
  }

  .entryForm__desc {
    margin-bottom: 12px;
  }

  .entryForm__agree {
    margin-top: 24px;
    padding: 0 8px;
  }

  .entryForm__agree .wpcf7-list-item,
  .entryForm__agree .wpcf7-acceptance {
    align-items: flex-start;
  }

  .entryForm__agree .wpcf7-list-item label {
    align-items: flex-start;
    font-size: 16px;
    line-height: 1.5;
  }

  .entryForm__agree input[type="checkbox"] {
    margin-top: 2px;
  }

  .entryForm__actions {
    margin-top: 28px;
    gap: 12px;
  }

  .entryForm__actions input[type="submit"],
  .entryForm__actions button[type="submit"],
  .entryForm__actions .wpcf7-submit {
    width: 100%;
    max-width: 320px;
    height: 56px;
    font-size: 20px;
  }

  /* SP はボタンが可変幅なので、スピナーは右端に寄せる */
  .entryForm__actions .wpcf7-spinner {
    left: auto;
    right: 0;
    margin: 0;
  }

  .entryForm__thanks {
    margin-top: 32px;
    font-size: 16px;
    text-align: left;
  }

  .entryForm__backLink {
    width: 100%;
    max-width: 320px;
    height: 56px;
    font-size: 18px;
  }
}

/* =============================================================
   16. 確認画面  (Confirm Plus Contact Form 7 2.0.3.1)
   -------------------------------------------------------------
   プラグインが生成する DOM (プラグイン本体のソースで確認済み):

     div.wpcf7
       form.wpcf7-form.wpcf7cp-form-hide      ← 入力画面 (visibility:hidden)
       div#wpcf7cpcnf                         ← 確認画面 (position:absolute)
         table                                ← class 無しの素の table
           tr > th > p  (ラベル)
           tr > td > p  (値)
         div.wpcf7cp-btns
           button.wpcf7cp-cfm-edit-btn        ← 「修正する」
           button.wpcf7-submit.wpcf7cp-cfm-submit-btn  ← 「送信する」

   PSD に確認画面のカンプは無いため、入力画面のトーンを踏襲する:
     コンテンツ幅 1100 / ラベル列 371 / 行 72px / 交互背景 / ボタン 238×60。
   入力欄の枠・必須バッジ・注記は確認画面には出ない (値のテキストのみ)。

   プラグイン同梱 styles.css (div#wpcf7cpcnf ... = 詳細度 0,1,0,2) は
   .entryForm を挟んで (0,1,1,1) で上書きする。
   ============================================================= */

/* ---- 16-1. 入力画面を隠す ----
   既定は visibility:hidden なので、非表示のまま高さが残り
   確認画面 (absolute) の下に巨大な空白ができる。display:none にして
   確認画面を通常フローへ戻す。
   ※ 最終送信はプラグインが form 内の .wpcf7-submit を click() して
     行うが、HTMLElement.click() は display:none でも発火する。 */
.entryForm .wpcf7-form.wpcf7cp-form-hide {
  display: none;
}

/* ---- 16-2. 確認画面ラッパ ---- */
.entryForm #wpcf7cpcnf {
  position: static;
  box-sizing: border-box;
  width: 100%;
  max-width: var(--ef-content);
  margin: 0 auto;
  padding: 0;
  background: transparent;
}

/* ---- 16-3. 確認テーブル (入力画面と同じ寸法) ---- */
.entryForm #wpcf7cpcnf table {
  width: 100%;
  max-width: var(--ef-content);
  margin: 0 auto 0;
  border-collapse: collapse;
  border-spacing: 0;
  table-layout: fixed;
}

.entryForm #wpcf7cpcnf tr {
  height: var(--ef-row-h);
  background: #FFFFFF;
}

.entryForm #wpcf7cpcnf tr:nth-child(odd) {
  background: var(--ef-tint);
}

.entryForm #wpcf7cpcnf th,
.entryForm #wpcf7cpcnf td {
  border: 0;
  background: transparent;
  vertical-align: middle;
  text-align: left;
  font-size: 18px;
  line-height: 1.6;
  color: var(--ef-text);
  padding: 12px 0;
}

.entryForm #wpcf7cpcnf th {
  width: var(--ef-control-left);
  padding-left: var(--ef-label-indent);
  padding-right: 8px;
  font-weight: 400;
  box-sizing: border-box;
}

.entryForm #wpcf7cpcnf td {
  padding-right: 0;
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* th > p / td > p はプラグインが必ず 1 段挟む */
.entryForm #wpcf7cpcnf th p,
.entryForm #wpcf7cpcnf td p {
  margin: 0;
  padding: 0;
  font-size: inherit;
  line-height: inherit;
}

/* ---- 16-4. ボタン列 (入力画面と同じ 238 × 60) ---- */
.entryForm #wpcf7cpcnf .wpcf7cp-btns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin: 38px 0 0;
}

.entryForm #wpcf7cpcnf .wpcf7cp-btns button {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 238px;
  height: 60px;
  margin: 0;
  padding: 0 16px;
  border-radius: 10px;
  font-family: inherit;
  font-size: 24px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.04em;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}

/* 修正する: 白地 + 青枠 */
.entryForm #wpcf7cpcnf .wpcf7cp-cfm-edit-btn {
  border: 1px solid var(--ef-button);
  background: #FFFFFF;
  color: var(--ef-button);
}

.entryForm #wpcf7cpcnf .wpcf7cp-cfm-edit-btn:hover {
  background: var(--ef-tint);
}

/* 送信する: 塗り */
.entryForm #wpcf7cpcnf .wpcf7cp-cfm-submit-btn {
  border: 0;
  background: var(--ef-button);
  color: #FFFFFF;
}

.entryForm #wpcf7cpcnf .wpcf7cp-cfm-submit-btn:hover {
  background: var(--ef-button-hover);
}

.entryForm #wpcf7cpcnf .wpcf7cp-btns button:focus-visible {
  outline: 2px solid var(--ef-badge);
  outline-offset: 2px;
}

.entryForm #wpcf7cpcnf .wpcf7cp-btns button.is-disabled,
.entryForm #wpcf7cpcnf .wpcf7cp-btns button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

/* ---- 16-5. 送信中オーバーレイ ----
   プラグインは form (= display:none) の中に .wpcf7cp-progress-* を挿すため
   実際には見えない。念のため確認画面側には出さない。 */
.entryForm .wpcf7cp-progress-cover,
.entryForm .wpcf7cp-progress-content {
  display: none;
}

/* ---- 16-6. 中間幅 ---- */
@media (max-width: 1199px) {
  .entryForm #wpcf7cpcnf table {
    table-layout: auto;
  }

  .entryForm #wpcf7cpcnf th {
    width: 34%;
    min-width: 260px;
  }
}

@media (max-width: 959px) {
  .entryForm #wpcf7cpcnf th {
    width: 38%;
    min-width: 0;
    padding-left: 20px;
    padding-right: 16px;
  }
}

/* ---- 16-7. スマートフォン: 縦積み (入力画面と同じ作法) ---- */
@media (max-width: 767px) {
  .entryForm #wpcf7cpcnf table,
  .entryForm #wpcf7cpcnf tbody,
  .entryForm #wpcf7cpcnf tr,
  .entryForm #wpcf7cpcnf th,
  .entryForm #wpcf7cpcnf td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  .entryForm #wpcf7cpcnf tr {
    height: auto;
    padding: 16px 16px 20px;
  }

  .entryForm #wpcf7cpcnf th {
    min-width: 0;
    padding: 0 0 10px;
    font-size: 16px;
    font-weight: 700;
  }

  .entryForm #wpcf7cpcnf td {
    padding: 0;
    font-size: 16px;
  }

  .entryForm #wpcf7cpcnf .wpcf7cp-btns {
    flex-direction: column;
    margin-top: 28px;
    gap: 12px;
  }

  .entryForm #wpcf7cpcnf .wpcf7cp-btns button {
    width: 100%;
    max-width: 320px;
    height: 56px;
    font-size: 20px;
  }
}
