@charset "UTF-8";

/* 資料請求フォーム（seikyu/）を相談フォーム（consultant-phase2）と同じ型に載せ替えるための固有スタイル。
   共通部品（カード・STEP・入力欄・追従CTA・確認/完了画面）は consultant-phase2.css / -theme.css を再利用し、
   ここには資料請求だけにある要素（商品カード・dl/dt/dd の項目・生年月日・性別/時間帯のボタン型・同意）を置く。
   読み込み順は theme → phase2 → 本ファイル。validation.js（jQuery Validation）の errorPlacement が
   element.closest('dd') / #ValidItem / #ValidOthers / #agree_box に依存するため、dl/dt/dd と id は維持する。 */

/* ---------- ページ枠 ---------- */

/* 相談フォームは form#consultation-form 限定で見出し帯を出しているため、資料請求の form#confirmValid にも同じ帯を出す */

.consultant-phase2.document-phase2 #confirmValid > .phase2-card {
  --phase2-card-padding: 32px;
}

.consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head {
  margin: calc(-1 * var(--phase2-card-padding)) calc(-1 * var(--phase2-card-padding)) 16px;
  padding: 12px var(--phase2-card-padding);
  background: #fafbfc;
}

.consultant-phase2.document-phase2 .phase2-main form#confirmValid > .phase2-card {
  border-top: 1px solid #ececec;
}

/* 見出しは validation.js のエラースクロール先。固定ヘッダーは無いが余白を確保する */

.consultant-phase2.document-phase2 .phase2-section-head h2 {
  scroll-margin-top: 20px;
}

/* 見出し横の補足（「※複数選択可」等）。base.css の h2 内 p 装飾を打ち消す */

/* エラー集約（validation.js が hidden を外す）。インライン style の色はそのまま、余白だけ整える */

.consultant-phase2.document-phase2 #form-error-summary,
.consultant-phase2.document-phase2 #form-error-summary-customer {
  margin: 0 0 16px !important;
  font-size: 1.4rem !important;
}

.consultant-phase2.document-phase2 #form-error-summary ul {
  margin: 4px 0 0 !important;
}

/* ---------- 1. 商品カード ---------- */

.consultant-phase2.document-phase2 .itemselect_box {
  display: grid;
  margin: 0;
}

/* style.css の .item_list（紺2px枠・角丸上のみ・width33%・margin）を phase2 のカードに置き換える */

.consultant-phase2.document-phase2 .itemselect_box .item_list {
  position: relative;
  display: block;
  width: auto;
  margin: 0;
  border: 2px solid var(--phase2-line);
  border-radius: 10px;
  background: #fff;
  text-align: center;
  transition: border-color 0.15s, background 0.15s;
}

/* 実チェックボックスは残して視覚的に隠す（display:none だと jQuery Validation の対象から外れる） */

.consultant-phase2.document-phase2 .itemselect_box .item_list input[type="checkbox"] {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
  transform: none;
  z-index: 0;
}

.consultant-phase2.document-phase2 .itemselect_box .seikyu_btn {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  transition: background 0.15s;
}

.consultant-phase2.document-phase2 .itemselect_box .item_list:hover {
  border-color: var(--phase2-primary-line);
}

.consultant-phase2.document-phase2 .itemselect_box .item_list.is-selected {
  border-color: var(--phase2-primary);
  background: var(--phase2-primary-soft);
}

.consultant-phase2.document-phase2 .itemselect_box .item_list:has(input:checked) {
  border-color: var(--phase2-primary);
  background: var(--phase2-primary-soft);
}

.consultant-phase2.document-phase2 .itemselect_box .item_list.is-selected .seikyu_btn,
.consultant-phase2.document-phase2 .itemselect_box input[type="checkbox"]:checked + .seikyu_btn {
  background: var(--phase2-primary-soft);
}

.consultant-phase2.document-phase2 .itemselect_box .item_list:focus-within {
  outline: 2px solid var(--phase2-primary);
  outline-offset: 2px;
}

.consultant-phase2.document-phase2 .itemselect_box .form_item_ttl_box {
  width: 100%;
  height: auto;
  max-height: none;
}

.consultant-phase2.document-phase2 .itemselect_box .item_ttl {
  width: auto;
  height: auto;
  margin: 0 0 6px;
  padding: 2px 10px;
  border-radius: 999px;
  background: #eef2f6;
  color: var(--phase2-muted);
  font-weight: 700;
  line-height: 1.6;
}

.consultant-phase2.document-phase2 .itemselect_box .item_ttl h3 {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
}

.consultant-phase2.document-phase2 .itemselect_box .item_list.is-selected .item_ttl {
  background: #fff;
  color: var(--phase2-primary-deep);
}

.consultant-phase2.document-phase2 .itemselect_box .item_list:has(input:checked) .item_ttl {
  background: #fff;
  color: var(--phase2-primary-deep);
}

.consultant-phase2.document-phase2 .itemselect_box .item_box {
  width: 100%;
  margin: 0;
  padding: 0;
}

.consultant-phase2.document-phase2 .itemselect_box .item_logo {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 96px;
  max-height: none;
  margin: 0 auto;
}

.consultant-phase2.document-phase2 .itemselect_box .item_logo img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* C6: ?item= で畳んだときの要約（ロゴ＋商品名＋「他の商品も追加する・変更する」） */

.consultant-phase2.document-phase2 .product-select-summary__btn {
  width: 100%;
  border: 1.5px solid var(--phase2-primary);
  border-radius: 8px;
  background: #fff;
  color: var(--phase2-primary-deep);
}

.consultant-phase2.document-phase2 .product-select-summary__btn:hover,
.consultant-phase2.document-phase2 .product-select-summary__btn:focus-visible {
  background: #fff;
  border-color: var(--phase2-primary-deep);
}

/* ---------- 2. お客様情報（dl/dt/dd を phase2 の項目風に） ---------- */

.consultant-phase2.document-phase2 .form_block {
  display: block;
  width: 100%;
  margin: 0;
  font-size: 1.6rem;
}

.consultant-phase2.document-phase2 .form_block > div {
  display: block;
  width: 100%;
}

/* validation.js のエラー受け皿（#ValidName 等）の div。中身が無いときは余白を出さない */

.consultant-phase2.document-phase2 .form_block > div[style] {
  font-size: 1.3rem !important;
}

.consultant-phase2.document-phase2 .form_block dt {
  display: flex;
  align-items: center;
  width: 100%;
}

.consultant-phase2.document-phase2 .form_block dt p {
  width: auto;
  margin: 0;
  padding: 0;
  background: transparent;
  font-weight: 700;
  line-height: 1.4;
}

/* 必須/任意バッジ（相談フォームの .phase2-badge と同じ見た目） */

.consultant-phase2.document-phase2 .form_block dt span {
  position: static;
  flex: none;
  display: inline-block;
  height: auto;
  margin: 0;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.consultant-phase2.document-phase2 .form_block dd {
  width: 100%;
  margin: 0 0 24px;
}

.consultant-phase2.document-phase2 .form_block dd:last-child {
  margin-bottom: 0;
}

/* 入力欄は相談フォームと同寸（52px・1.6rem）。style.css の .form_input_s 指定を上書き */

.consultant-phase2.document-phase2 .form_block input[type="text"],
.consultant-phase2.document-phase2 .form_block input[type="tel"],
.consultant-phase2.document-phase2 .form_block input[type="email"],
.consultant-phase2.document-phase2 .form_block select,
.consultant-phase2.document-phase2 .form_block textarea {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0;
  border: 1.5px solid var(--phase2-input-line);
  background: #fff;
  color: var(--phase2-ink);
  line-height: 1.4;
}

.consultant-phase2.document-phase2 .form_block input[type="text"],
.consultant-phase2.document-phase2 .form_block input[type="tel"],
.consultant-phase2.document-phase2 .form_block input[type="email"],
.consultant-phase2.document-phase2 .form_block select {
  padding: 0 16px;
}

.consultant-phase2.document-phase2 .form_block textarea {
  min-height: 132px;
  padding: 16px;
  line-height: 1.55;
  resize: vertical;
}

/* na の reset.css が select の矢印を消すため、相談フォームと同じく復元する */

.consultant-phase2.document-phase2 .form_block select {
  -webkit-appearance: menulist;
  appearance: auto;
}

.consultant-phase2.document-phase2 .form_block input::placeholder,
.consultant-phase2.document-phase2 .form_block textarea::placeholder {
  color: #626b75;
  opacity: 1;
}

/* jQuery Validation が付けるエラーメッセージ */

.consultant-phase2.document-phase2 p.error,
.consultant-phase2.document-phase2 .phone_error,
.consultant-phase2.document-phase2 #agree_box p {
  margin: 8px 0 0;
  color: #bd3434 !important;
  font-weight: 700 !important;
}

/* メール欄の赤い注記（現行文言のまま・サイズだけ補足に揃える） */

.consultant-phase2.document-phase2 .form_block dd .txt_red {
  display: block;
  margin: 8px 0 0;
}

/* 生年月日のエラー（validation.js が dd 末尾に append する）は1行で全幅に */

.consultant-phase2.document-phase2 .form_block dd.birthdate-fields > p.error {
  margin-top: 0;
}

/* 性別: ボタン型（実 radio は残す。base.css の input[type=radio]{display:none} を上書き） */

.consultant-phase2.document-phase2 .form_block label.form_sex {
  position: relative;
  display: flex;
  flex: 1 1 0;
  margin: 0;
  padding-top: 10px;
  padding-bottom: 10px;
  align-items: center;
  justify-content: center;
  border-width: 1.5px;
  border-style: solid;
  border-radius: 8px;
  background: #fff;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  cursor: pointer;
}

.consultant-phase2.document-phase2 .form_block label.form_sex input[type="radio"] {
  position: absolute;
  display: block;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
}

.consultant-phase2.document-phase2 .form_block label.form_sex .sim_radio_p {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
}

.consultant-phase2.document-phase2 .form_block label.form_sex .sim_radio_p::before,
.consultant-phase2.document-phase2 .form_block label.form_sex .sim_radio_p::after {
  display: none;
}

/* 通話時間帯: チップ型（実 checkbox は残す） */

.consultant-phase2.document-phase2 .form_block .teltime_box {
  display: block;
  margin: 16px 0 0;
  line-height: 1.5;
}

.consultant-phase2.document-phase2 .form_block .teltime-grid {
  display: grid;
  gap: 8px;
}

.consultant-phase2.document-phase2 .form_block label.form_teltime {
  position: relative;
  display: flex;
  min-width: 0;
  margin: 0;
  padding-top: 8px;
  padding-bottom: 8px;
  align-items: center;
  justify-content: flex-start;
  border-width: 1.5px;
  border-style: solid;
  border-radius: 9px;
  background: #fff;
  font-weight: 700;
  line-height: 1.4;
  text-align: left;
  white-space: normal;
  cursor: pointer;
}

.consultant-phase2.document-phase2 .form_block label.form_teltime input[type="checkbox"] {
  position: absolute;
  display: block;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
}

.consultant-phase2.document-phase2 .form_block label.form_sex.is-selected,
.consultant-phase2.document-phase2 .form_block label.form_teltime.is-selected {
  background: var(--phase2-primary-soft);
}

.consultant-phase2.document-phase2 .form_block label.form_sex:has(input:checked),
.consultant-phase2.document-phase2 .form_block label.form_teltime:has(input:checked) {
  background: var(--phase2-primary-soft);
}

.consultant-phase2.document-phase2 .form_block label.form_sex:focus-within,
.consultant-phase2.document-phase2 .form_block label.form_teltime:focus-within {
  outline: 2px solid var(--phase2-primary);
  outline-offset: 2px;
}

/* 郵便番号: 入力欄＋「郵便番号から住所を入力」ボタン（相談フォームの .phase2-zip-row と同じ） */

.consultant-phase2.document-phase2 .form_block .phase2-zip-row input {
  flex: 1;
  min-width: 0;
}

.consultant-phase2.document-phase2 .form_block .phase2-zip-row button {
  flex: none;
  padding: 0 14px;
  border: 1.5px solid var(--phase2-primary);
  background: var(--phase2-primary-soft);
  color: var(--phase2-primary-deep);
  font-weight: 700;
  line-height: 1.3;
  cursor: pointer;
}

/* ---------- 3. 個人情報の取扱い・同意 ---------- */

.consultant-phase2.document-phase2 #agree-container {
  text-align: left;
}

.consultant-phase2.document-phase2 #agree_box p {
  margin: 0 0 8px;
  text-align: left;
}

/* 同意は枠全体が押せる 60px（実 checkbox はネイティブ描画・25px） */

.consultant-phase2.document-phase2 .phase2-agreement {
  min-height: 60px;
}

.consultant-phase2.document-phase2 .phase2-agreement.is-error {
  border-color: var(--phase2-required);
  background: var(--phase2-required-soft);
}

/* ---------- SP ---------- */

@media screen and (max-width: 768.98px) {
  .consultant-phase2.document-phase2 .phase2-section-head {
    flex-wrap: wrap;
  }

}

@media screen and (max-width: 479px) {
  .consultant-phase2.document-phase2 .form_block dd.birthdate-fields .form_select_year {
    min-width: 0;
  }

  .consultant-phase2.document-phase2 .form_block .phase2-zip-row {
    flex-direction: column;
  }

  .consultant-phase2.document-phase2 .form_block .phase2-zip-row input {
    flex: none;
  }

}

@media screen and (min-width: 769px) {
  .consultant-phase2.document-phase2 .form_block input[name="電話番号"] {
    max-width: 320px;
  }

}

/* ---------- 確認画面（seikyu/confirm.php） ---------- */

.consultant-phase2.document-phase2 .document-confirm__head {
  align-items: center;
}

.consultant-phase2.document-phase2 .document-confirm__products {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.consultant-phase2.document-phase2 .document-confirm__products li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 10px 8px;
  border: 1px solid var(--phase2-line);
  border-radius: 8px;
  background: #fff;
  text-align: center;
}

.consultant-phase2.document-phase2 .document-confirm__products img {
  display: block;
  width: 100%;
  height: auto;
}

.consultant-phase2.document-phase2 .document-confirm__products span {
  color: var(--phase2-ink);
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.4;
}

.consultant-phase2.document-phase2 .phase2-confirm-lead {
  margin-top: 0;
}

/* ---------- 完了画面（seikyu/thanks.php） ---------- */

.consultant-phase2.document-phase2 .document-complete__text {
  margin: 0 0 16px;
  color: var(--phase2-ink);
  font-size: 1.5rem;
  line-height: 1.8;
}

.consultant-phase2.document-phase2 .document-complete__text:last-child {
  margin-bottom: 0;
}

@media screen and (max-width: 768.98px) {
  .consultant-phase2.document-phase2 .document-complete__text {
    font-size: 1.4rem;
  }

}

/* 生年月日: style.css の body#form #confirmValid 規則（SP=grid 2列縦積み・PC=125px/11px）より詳細度を上げ、
   「select＋単位」を1組（label）として横並びにする */

body#form .document-phase2 #confirmValid dd.birthdate-fields {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px;
}

body#form .document-phase2 #confirmValid dd.birthdate-fields > label {
  display: flex;
  flex: 1 1 0;
  align-items: center;
  gap: 6px;
  width: auto;
  min-width: 0;
}

body#form .document-phase2 #confirmValid dd.birthdate-fields .birthdate-unit {
  flex: none;
  color: var(--phase2-ink);
  font-weight: 700;
}

body#form .document-phase2 #confirmValid dd.birthdate-fields .form_select_year,
body#form .document-phase2 #confirmValid dd.birthdate-fields .form_select_month,
body#form .document-phase2 #confirmValid dd.birthdate-fields .form_select_day {
  box-sizing: border-box;
  flex: 1 1 0;
  width: 100%;
  min-width: 0;
  padding: 0 26px 0 10px;
}

body#form .document-phase2 #confirmValid dd.birthdate-fields > p.error {
  flex: 0 0 100%;
}

@media screen and (max-width: 768.98px) {
  body#form .document-phase2 #confirmValid dd.birthdate-fields {
    flex-wrap: wrap;
    gap: 8px 6px;
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label {
    flex: 1 1 calc(33.333% - 6px);
  }

}

/* ---------- レビュー反映（既存 style.css の id 詳細度・label 疑似要素への対処） ---------- */

/* 都道府県などの select を包む label: style.css の .form_block label（inline-block＋右端の紺ブロック/白三角）を打ち消す */

.consultant-phase2.document-phase2 .form_block dd > label:not(.form_sex):not(.form_teltime) {
  position: static;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
}

.consultant-phase2.document-phase2 .form_block dd > label:not(.form_sex):not(.form_teltime)::before,
.consultant-phase2.document-phase2 .form_block dd > label:not(.form_sex):not(.form_teltime)::after {
  display: none;
}

.consultant-phase2.document-phase2 .form_block select.form_select_prefectures {
  position: static;
  z-index: auto;
  background: #fff !important;
}

/* #form .item_logo {height:130px}（style.css:1581 / SP :2001）に id 詳細度で勝つ */

/* #form h2#product-select-heading {padding:16px 0} / #form .itemselect_box {margin-bottom:24px}（style.css PC規則）に勝つ */

body#form .document-phase2 h2#product-select-heading {
  padding: 0;
}

body#form .document-phase2 .itemselect_box {
  margin: 0;
}

/* ---------- 高齢者向けの寸法（資料請求フォームだけ・相談フォームは不変／2026-09-07 ユーザー決定）
   現行フォーム（項目名20px・バッジ18px・ボタン20px/96px・ロゴ280px）との差を埋める。 ---------- */

/* 見出し 20px・項目名 18px・バッジ 13px */

.consultant-phase2.document-phase2 .phase2-section-head h2 {
  font-size: 2rem;
}

.consultant-phase2.document-phase2 .form_block dt p {
  font-size: 1.8rem;
}

/* 入力欄・select・textarea の文字 18px（高さは 52px のまま） */

.consultant-phase2.document-phase2 .form_block input[type="text"],
.consultant-phase2.document-phase2 .form_block input[type="tel"],
.consultant-phase2.document-phase2 .form_block input[type="email"],
.consultant-phase2.document-phase2 .form_block select,
.consultant-phase2.document-phase2 .form_block textarea {
  font-size: 1.8rem;
}

body#form .document-phase2 #confirmValid dd.birthdate-fields .birthdate-unit {
  font-size: 1.7rem;
}

/* 補足文 */

/* ボタン型の選択肢（性別・時間帯）18px／住所ボタン 16px */

.consultant-phase2.document-phase2 .form_block label.form_sex,
.consultant-phase2.document-phase2 .form_block label.form_teltime {
  font-size: 1.8rem;
  min-height: 56px;
}

.consultant-phase2.document-phase2 .form_block .phase2-zip-row button {
  font-size: 1.6rem;
}

/* 同意 18px */

.consultant-phase2.document-phase2 .phase2-agreement {
  font-size: 1.8rem;
}

.consultant-phase2.document-phase2 .phase2-agreement input[type="checkbox"] {
  width: 28px;
  height: 28px;
}

/* 折りたたみ要約のボタン 17px・商品名 15px */

.consultant-phase2.document-phase2 .product-select-summary__btn {
  min-height: 56px;
  font-size: 1.7rem;
}

/* 確認画面・完了画面 */

.consultant-phase2.document-phase2 .phase2-confirm-list dd,
.consultant-phase2.document-phase2 .document-confirm__products span {
  font-size: 1.8rem;
}

.consultant-phase2.document-phase2 .phase2-confirm-lead,
.consultant-phase2.document-phase2 .document-complete__text {
  font-size: 1.6rem;
}

@media screen and (max-width: 768.98px) {
  /* SP: 商品カードは1商品1行の横並び（ロゴ左 約170px＋種別右）。2列3段とほぼ同じ全長でロゴが約1.3倍 */

  .consultant-phase2.document-phase2 .phase2-section-head h2 {
    font-size: 2rem;
  }

  .consultant-phase2.document-phase2 .form_block label.form_teltime {
    font-size: 1.7rem;
  }

  .consultant-phase2.document-phase2 .phase2-agreement__text {
    font-size: 1.7rem;
  }

}

@media screen and (max-width: 768.98px) {
  /* SP: 見出しは番号の横で折り返し、番号だけが1行に残らないようにする */

  .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    column-gap: 8px;
    row-gap: 6px;
    align-items: center;
  }

  .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head h2 {
    grid-column: 2;
    min-width: 0;
    letter-spacing: 0;
    font-size: 1.9rem;
    /* 「ご希望の商品を選択してください」が390pxで1行に収まる上限 */;
  }

  .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head .phase2-badge {
    grid-row: 2;
    grid-column: 2;
    justify-self: start;
  }

  /* 生年月日の「年」は18pxの「選択」が収まるよう他より広く */

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label:first-child {
    flex-basis: calc(40% - 6px);
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label:not(:first-child) {
    flex-basis: calc(30% - 6px);
  }

}

/* ---------- 商品カードの並び（2026-09-07 ユーザー決定: SP=種別をロゴの上・1列／PC=2列） ---------- */

/* PC: 2列（ロゴ約260px） */

.consultant-phase2.document-phase2 .itemselect_box {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.consultant-phase2.document-phase2 .itemselect_box .seikyu_btn {
  min-height: 0;
  padding: 12px 12px 16px;
}

body#form .document-phase2 .itemselect_box .item_logo {
  height: 110px;
  max-height: none;
}

.consultant-phase2.document-phase2 .itemselect_box .item_logo img {
  max-width: 260px;
  max-height: 110px;
}

.consultant-phase2.document-phase2 .itemselect_box .item_ttl {
  font-size: 1.5rem;
}

.consultant-phase2.document-phase2 .document-confirm__products {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.consultant-phase2.document-phase2 .document-confirm__products img {
  max-width: 220px;
}

@media screen and (max-width: 768.98px) {
  /* SP: 1列・種別をロゴの上（縦積み）に戻し、ロゴを約220pxに */

  .consultant-phase2.document-phase2 .itemselect_box {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  .consultant-phase2.document-phase2 .itemselect_box .seikyu_btn {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    min-height: 0;
    padding: 10px 44px 12px;
  }

  .consultant-phase2.document-phase2 .itemselect_box .form_item_ttl_box {
    order: 1;
    flex: none;
    width: 100%;
    text-align: center;
  }

  .consultant-phase2.document-phase2 .itemselect_box .item_box {
    order: 2;
    flex: none;
    width: 100%;
  }

  body#form .document-phase2 .itemselect_box .item_logo {
    height: 84px;
  }

  .consultant-phase2.document-phase2 .itemselect_box .item_logo img {
    max-width: 220px;
    max-height: 84px;
  }

  .consultant-phase2.document-phase2 .itemselect_box .item_ttl {
    display: block;
    /* inline-block だと文字幅に縮んで中央に浮く。PC と同じくカード幅いっぱいに（デザイナー指摘 2026-09-08） */
    margin: 0;
    padding: 3px 12px;
    line-height: 1.4;
    text-align: center;
  }

  .consultant-phase2.document-phase2 .document-confirm__products {
    grid-template-columns: minmax(0, 1fr);
  }

}

@media screen and (max-width: 359px) {
  .consultant-phase2.document-phase2 .itemselect_box .item_box {
    width: 100%;
  }

  .consultant-phase2.document-phase2 .itemselect_box .item_logo img {
    max-width: 200px;
  }

}

/* ---------- 2026-09-07 ユーザー指摘3点 ---------- */

/* 1. 「資料請求」の見出しをキャンペーンバナーの上に（何のページかすぐ分かるように）。
      base.css の h1 装飾（青帯等）を打ち消して phase2 の見出しと同じ素の太字にする */

html.consultant-form-page .document-page-title {
  padding: 28px 16px 0;
  text-align: center;
}

html.consultant-form-page .document-page-title h1 {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #222;
  font-size: 3.2rem;
  font-weight: 900;
  line-height: 1.4;
  text-align: center;
}

/* h1 を外した分、STEP だけの見出し帯は上下の余白を詰める */

.consultant-phase2.document-phase2 .phase2-page-head--steps-only .l-progressbar {
  margin-top: 0;
}

/* 2. STEP 表示を大きく（13px/38px → 15px/48px。SPは13px）。矢印は高さに合わせて描き直す */

.consultant-phase2.document-phase2 .l-progressbar__item {
  padding: 4px 4px 4px 18px;
  line-height: 1.2;
}

@media screen and (max-width: 768.98px) {
  html.consultant-form-page .document-page-title {
    padding: 20px 12px 0;
  }

  html.consultant-form-page .document-page-title h1 {
    font-size: 2.6rem;
  }

  .consultant-phase2.document-phase2 .l-progressbar__item {
    font-size: 1.4rem;
    padding-left: 14px;
  }

}

@media screen and (max-width: 479px) {
  .consultant-phase2.document-phase2 .l-progressbar__item {
    padding-left: 12px;
    font-size: 1.3rem;
    white-space: normal;
  }

}

@media screen and (max-width: 768.98px) {
  /* SP: 「ご入力内容の確認」が3行にならないよう STEP.2 を広く取り、高さも少し余裕を持たせる */

  .consultant-phase2.document-phase2 .l-progressbar__item {
    height: 52px;
  }

  .consultant-phase2.document-phase2 .l-progressbar__item:nth-child(2) {
    flex-grow: 1.5;
  }

  .consultant-phase2.document-phase2 .l-progressbar__item:not(:last-child)::before,
  .consultant-phase2.document-phase2 .l-progressbar__item:not(:last-child)::after {
    border-width: 26px;
    border-left-width: 16px;
  }

}

/* ✓ が角丸で欠けないよう、ボタン型ラベルは overflow を出す */

.consultant-phase2.document-phase2 .form_block label.form_sex,
.consultant-phase2.document-phase2 .form_block label.form_teltime {
  overflow: visible;
}

/* 見出しとバナーの間隔（.main_column.consultant の margin 30px が上下で重なるのを詰める） */

html.consultant-form-page .document-page-title {
  margin: 0 auto;
}

html.consultant-form-page .document-page-title + .main_column.consultant {
  margin-top: 12px;
}

html.consultant-form-page .document-page-title + .main_column.consultant .bnr_img {
  margin-top: 0;
}

/* #form .main_column の上下 padding（PC40px/SP10px）が見出し・バナーの上下に付くので、id 詳細度で詰める */

body#form .document-page-title {
  padding: 28px 16px 0;
}

body#form .document-page-title h1 {
  margin: 0;
}

body#form .document-page-title + .main_column.consultant {
  margin: 12px auto 0;
  padding-top: 0;
}

@media screen and (max-width: 768.98px) {
  body#form .document-page-title {
    padding: 20px 12px 0;
  }

  body#form .document-page-title + .main_column.consultant {
    margin-top: 8px;
  }

}

/* 入力・確認画面ではPCのグローバルナビを出さない（元々リンク無効の飾りで、押せないメニューは混乱の元。完了画面は残す／2026-09-07 ユーザー決定） */

html.document-form--nonav .gnavi_wrap {
  display: none;
}

/* バナーの下端と灰色背景の境界が一致して見えるので、バナー下に白い余白を置く */

body#form .document-page-title + .main_column.consultant {
  padding-bottom: 36px;
}

@media screen and (max-width: 768.98px) {
  body#form .document-page-title + .main_column.consultant {
    padding-bottom: 24px;
  }

}

/* 同意チェックも商品カードと同じ「青い丸に白い✓」にする（未選択は白い丸枠）。実 checkbox はそのまま使い、見た目だけ差し替える */

html.consultant-form-page .consultant-phase2.document-phase2 .phase2-agreement input[type="checkbox"] {
  -webkit-appearance: none;
  appearance: none;
  position: relative;
  flex: none;
  width: 28px;
  height: 28px;
  margin: 0;
  border: 2px solid var(--phase2-input-line);
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
}

html.consultant-form-page .consultant-phase2.document-phase2 .phase2-agreement input[type="checkbox"]::after {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  content: '✓';
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
  opacity: 0;
}

html.consultant-form-page .consultant-phase2.document-phase2 .phase2-agreement input[type="checkbox"]:checked {
  border-color: var(--phase2-primary);
  background: var(--phase2-primary);
}

html.consultant-form-page .consultant-phase2.document-phase2 .phase2-agreement input[type="checkbox"]:checked::after {
  opacity: 1;
}

html.consultant-form-page .consultant-phase2.document-phase2 .phase2-agreement input[type="checkbox"]:focus-visible {
  outline: 2px solid var(--phase2-primary);
  outline-offset: 2px;
}

/* STEP表示は白いカードで囲わず、確認画面と同じく灰色地に直接置く。文字も一段大きく（PC17px/SP15px） */

.consultant-phase2.document-phase2 .phase2-page-head--steps-only {
  padding: 0 0 20px;
  border-radius: 0;
  background: transparent;
}

.consultant-phase2.document-phase2 .phase2-main form#confirmValid > .phase2-card:first-of-type {
  overflow: hidden;
  border-top: 0;
  border-radius: 14px 14px 0 0;
}

.consultant-phase2.document-phase2 .l-progressbar {
  max-width: none;
  margin-bottom: 0;
}

.consultant-phase2.document-phase2 .l-progressbar__item {
  padding-left: 20px;
  font-size: 1.7rem;
}

.consultant-phase2.document-phase2 .l-progressbar__item:not(:last-child)::before,
.consultant-phase2.document-phase2 .l-progressbar__item:not(:last-child)::after {
  border-width: 26px;
  border-left-width: 18px;
}

.consultant-phase2.document-phase2 .phase2-confirm-shell .l-progressbar {
  margin-bottom: 20px;
}

@media screen and (max-width: 768.98px) {
  .consultant-phase2.document-phase2 .phase2-page-head--steps-only {
    padding: 0 0 14px;
  }

  .consultant-phase2.document-phase2 .l-progressbar__item {
    height: 56px;
    padding-left: 16px;
    font-size: 1.5rem;
  }

  .consultant-phase2.document-phase2 .l-progressbar__item:not(:last-child)::before,
  .consultant-phase2.document-phase2 .l-progressbar__item:not(:last-child)::after {
    border-width: 28px;
    border-left-width: 18px;
  }

}

@media screen and (max-width: 479px) {
  .consultant-phase2.document-phase2 .l-progressbar__item {
    padding-left: 14px;
    font-size: 1.4rem;
  }

}

/* iPhone SE(375px)で「ご入力内容の確認」が矢印に接するため、矢印の幅(18px)ぶん左に余白を取り、STEP.2 をさらに広く */

@media screen and (max-width: 768.98px) {
  .consultant-phase2.document-phase2 .l-progressbar__item {
    padding-left: 24px;
  }

  .consultant-phase2.document-phase2 .l-progressbar__item:first-child {
    padding-left: 8px;
  }

  .consultant-phase2.document-phase2 .l-progressbar__item:nth-child(2) {
    flex-grow: 1.8;
  }

}

@media screen and (max-width: 359px) {
  .consultant-phase2.document-phase2 .l-progressbar__item {
    padding-left: 22px;
    font-size: 1.3rem;
  }

  .consultant-phase2.document-phase2 .l-progressbar__item:nth-child(2) {
    flex-grow: 1.9;
    /* 320pxでも「ご入力内容の確認」を2行に収める */;
  }

}

@media screen and (max-width: 389.98px) {
  /* 375px(iPhone SE)で「ご希望の商品を選択してください」が2行に折れないよう見出しを18pxに */

  .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head h2 {
    font-size: 1.8rem;
  }

}

@media screen and (max-width: 359px) {
  /* 320pxでSTEP.2が3行にならない上限 */

  .consultant-phase2.document-phase2 .l-progressbar__item {
    font-size: 1.2rem;
  }

}

@media screen and (max-width: 768.98px) {
  /* SPのキャンペーンバナーは画面端まで出さず、左右16pxの余白を取って一回り小さく見せる */

  html.consultant-form-page .document-page-title + .main_column.consultant .bnr_img {
    margin-left: 16px;
    margin-right: 16px;
  }

}

/* ---------- 折りたたみ方式の変更（2026-09-07 ユーザー要望「画像サイズも見た目も全く同じに」）
   別の要約カードを作るのをやめ、商品カードそのものを「選択中だけ表示」にする。展開しても同じ要素なので寸法が変わらない ---------- */

.consultant-phase2.document-phase2 .itemselect_box.is-collapsed {
  display: grid;
}

.consultant-phase2.document-phase2 .itemselect_box.is-collapsed .item_list:not(.is-kept) {
  display: none;
}

.consultant-phase2.document-phase2 .product-select-summary {
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: transparent;
}

.consultant-phase2.document-phase2 .product-select-summary__actions {
  margin-top: 12px;
}

.consultant-phase2.document-phase2 .product-select-summary__actions[hidden] {
  display: none;
}

@media screen and (max-width: 389.98px) {
  /* iPhone SE(375px): 年のプルダウンが見切れるため、年を広く(44%)・select の内側余白を詰める */

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label:first-child {
    flex-basis: calc(44% - 6px);
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label:not(:first-child) {
    flex-basis: calc(28% - 6px);
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields .form_select_year,
  body#form .document-phase2 #confirmValid dd.birthdate-fields .form_select_month,
  body#form .document-phase2 #confirmValid dd.birthdate-fields .form_select_day {
    padding: 0 22px 0 8px;
    font-size: 1.7rem;
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label {
    gap: 4px;
  }

}

/* ---------- 完了画面（オリックスの資料請求完了を参考: バナー→お礼→キャンペーン案内→電話→トップへ戻る） ---------- */

.consultant-phase2.document-phase2 .phase2-complete-title {
  padding: 0;
  text-align: center;
}

.consultant-phase2.document-phase2 .document-complete__campaign p:last-child {
  margin-bottom: 0;
}

.consultant-phase2.document-phase2 .document-complete__campaign b {
  color: #8a5c14;
}

.consultant-phase2.document-phase2 .document-complete__campaign-link a {
  display: inline-block;
  padding: 10px 18px;
  border: 1.5px solid #c99a4a;
  border-radius: 8px;
  background: #fff;
  color: #7a4f0c;
  font-size: 1.5rem;
  font-weight: 700;
  text-decoration: none !important;
}

.consultant-phase2.document-phase2 .document-complete__actions {
  justify-content: center;
}

.consultant-phase2.document-phase2 .document-complete__actions .phase2-confirm-back {
  flex: 0 1 360px;
}

/* 完了画面のバナーはキャンペーン詳細へのリンク（入力・確認は aria-disabled で無効） */

html.consultant-form-page .document-page-title + .main_column.consultant .bnr_img a[href] {
  cursor: pointer;
}

/* ---------- 完了画面 v2（エコスマほけんの資料請求完了を参考: 今後の流れ3ステップ＋特典 → 電話カード → 他商品 → トップへ） ---------- */

.consultant-phase2.document-phase2 .document-complete__flow .complete-flow__body h3 {
  font-size: 1.7rem;
}

.consultant-phase2.document-phase2 .document-complete__flow .complete-flow__body p {
  font-size: 1.5rem;
  line-height: 1.8;
}

.consultant-phase2.document-phase2 .document-complete__flow .complete-flow__badge {
  font-size: 1.25rem;
}

.consultant-phase2.document-phase2 .document-complete__campaign p {
  margin: 0 0 12px;
  font-size: 1.45rem;
}

/* 電話カード: 紺地＋ブランドのアクセント色ボタン（電話が最優先CVのため主役に） */

.consultant-phase2.document-phase2 .document-complete__tel {
  margin: 0 0 20px;
  padding: 28px 20px;
  border-radius: 14px;
  background: var(--phase2-primary-deep);
  text-align: center;
}

.consultant-phase2.document-phase2 .document-complete__tel h2 {
  margin: 0 0 14px;
  color: #dbe7f5;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1.5;
}

.consultant-phase2.document-phase2 .document-complete__tel-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: 100%;
  padding: 14px 32px;
  border-radius: 999px;
  background: var(--phase2-accent);
  color: var(--phase2-primary-deep);
  font-size: 2.6rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  line-height: 1.35;
  text-decoration: none !important;
  transition: background 0.2s;
}

.consultant-phase2.document-phase2 .document-complete__tel-btn:hover,
.consultant-phase2.document-phase2 .document-complete__tel-btn:focus-visible {
  background: var(--phase2-accent-deep);
  color: var(--phase2-primary-deep);
  opacity: 1;
}

.consultant-phase2.document-phase2 .document-complete__tel-icon {
  display: inline-flex;
  width: 0.85em;
  height: 0.85em;
}

.consultant-phase2.document-phase2 .document-complete__tel-icon svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}

.consultant-phase2.document-phase2 .document-complete__tel-hours {
  margin: 12px 0 0;
  color: #b7c9de;
  font-size: 1.35rem;
  line-height: 1.6;
}

/* 他商品: 副次導線としてテキストリンク列 */

.consultant-phase2.document-phase2 .document-complete__products {
  padding: 20px 24px;
}

.consultant-phase2.document-phase2 .document-complete__products h2 {
  margin: 0 0 6px;
  color: var(--phase2-muted);
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

.consultant-phase2.document-phase2 .document-complete__product-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.consultant-phase2.document-phase2 .document-complete__product-list li {
  border-bottom: 1px solid var(--phase2-line);
}

.consultant-phase2.document-phase2 .document-complete__product-list li:last-child {
  border-bottom: 0;
}

.consultant-phase2.document-phase2 .document-complete__product-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 4px;
  color: var(--phase2-primary-deep);
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none !important;
}

.consultant-phase2.document-phase2 .document-complete__product-list a::after {
  flex: none;
  color: #9aa5b1;
  content: "›";
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1;
}

.consultant-phase2.document-phase2 .document-complete__product-list small {
  display: block;
  color: var(--phase2-muted);
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.4;
}

.consultant-phase2.document-phase2 .document-complete__product-list a:hover,
.consultant-phase2.document-phase2 .document-complete__product-list a:focus-visible {
  color: var(--phase2-primary);
  opacity: 1;
}

@media (max-width: 768.98px) {
  .consultant-phase2.document-phase2 .document-complete__flow .complete-flow__body h3 {
    font-size: 1.6rem;
  }

  .consultant-phase2.document-phase2 .document-complete__tel {
    padding: 24px 16px;
  }

  .consultant-phase2.document-phase2 .document-complete__tel h2 {
    font-size: 1.6rem;
  }

  .consultant-phase2.document-phase2 .document-complete__tel-btn {
    padding: 12px 24px;
    font-size: 2.3rem;
  }

  .consultant-phase2.document-phase2 .document-complete__products {
    padding: 16px;
  }

  .consultant-phase2.document-phase2 .document-complete__product-list a {
    padding: 11px 2px;
    font-size: 1.5rem;
  }

}

.consultant-phase2.document-phase2 #submit-btn {
  padding: 10px 16px;
}

@media (max-width: 768.98px) {
  .consultant-phase2.document-phase2 .phase2-cta-bar {
    padding: 6px 12px calc(6px + env(safe-area-inset-bottom));
  }

  .consultant-phase2.document-phase2 #submit-btn {
    padding: 8px 10px;
  }

  /* 上部の積み上げを詰める（見出し・バナー・STEPの外側余白のみ。バナーと文言は不変） */

  body#form .document-page-title {
    padding: 10px 12px 0;
  }

  body#form .document-page-title + .main_column.consultant {
    margin-top: 6px;
    padding-bottom: 10px;
  }

  .consultant-phase2.document-phase2.phase2-page {
    padding-top: 14px;
  }

  .consultant-phase2.document-phase2 .phase2-confirm-shell .l-progressbar {
    margin-bottom: 10px;
  }

}

/* 文字拡大150%で引受保険会社の行（dt が nowrap）が横にはみ出すのを防ぐ */

@media (max-width: 768.98px) {
  html.consultant-form-page body .consultant-form-footer__underwriter dt {
    white-space: normal;
  }

  html.consultant-form-page body .consultant-form-footer__company {
    display: inline;
    overflow-wrap: anywhere;
  }

}

/* ---------- 高齢者対応・アクセシビリティ調整（2026-09-08） ---------- */

/* 項目名を入力欄へ関連付けた label は、従来の p と同じ表示にする */

.consultant-phase2.document-phase2 .form_block dt > label {
  width: auto;
  margin: 0;
  padding: 0;
  background: transparent;
  color: var(--phase2-ink);
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: left;
}

.consultant-phase2.document-phase2 .form_block dt label::before,
.consultant-phase2.document-phase2 .form_block dt label::after {
  content: none;
}

.consultant-phase2.document-phase2 .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.consultant-phase2.document-phase2 .document-confirm__value-edit {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
}

.consultant-phase2.document-phase2 .document-confirm__value-edit > span {
  flex: 1 1 180px;
  min-width: 0;
}

/* 生年月日は rem 指定を優先し、文字拡大時には高さも内容に追従させる */

body#form .document-phase2 #confirmValid dd.birthdate-fields .form_select_year,
body#form .document-phase2 #confirmValid dd.birthdate-fields .form_select_month,
body#form .document-phase2 #confirmValid dd.birthdate-fields .form_select_day {
  height: auto;
  min-height: 52px;
  font-size: 1.8rem !important;
}

/* STEP帯は3項目の横並びを保ったまま、拡大した文字に合わせて縦へ伸ばす */

.consultant-phase2.document-phase2 .l-progressbar__item {
  height: auto;
  min-height: 52px;
}

.consultant-phase2.document-phase2 .l-progressbar__item:not(:last-child)::before,
.consultant-phase2.document-phase2 .l-progressbar__item:not(:last-child)::after {
  top: 0;
  bottom: 0;
  width: 18px;
  height: auto;
  margin: 0;
  border: 0;
  background: #f2f2f2;
  -webkit-clip-path: polygon(0 0, 100% 50%, 0 100%);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}

.consultant-phase2.document-phase2 .l-progressbar__item:not(:last-child)::before {
  margin-left: 2px;
  background: #fff;
}

.consultant-phase2.document-phase2 .l-progressbar__item.active:not(:last-child)::after {
  background: #2b75c8;
}

@media screen and (max-width: 768.98px) {
  .consultant-phase2.document-phase2 .l-progressbar__item {
    min-height: 56px;
  }

}

.consultant-phase2.document-phase2 .form_block :is(input,
select,
textarea):focus-visible {
  outline: 3px solid #004ea2;
  outline-offset: 2px;
}

/* ---------- 入力完了で「必須」→「✓ OK」（es-g の資料請求フォームと同じ挙動・2026-09-08） ---------- */

.consultant-phase2.document-phase2 .form_block dt span.phase2-badge-done,
.consultant-phase2.document-phase2 .phase2-section-head .phase2-badge--done {
  display: none;
  border-color: var(--phase2-primary-line);
  background: var(--phase2-primary-soft);
  color: var(--phase2-primary-deep);
}

.consultant-phase2.document-phase2 .form_block dt.is-ok > span:not(.phase2-badge-done),
.consultant-phase2.document-phase2 .phase2-section-head.is-ok .phase2-badge--required {
  display: none;
}

.consultant-phase2.document-phase2 .form_block dt.is-ok > span.phase2-badge-done,
.consultant-phase2.document-phase2 .phase2-section-head.is-ok .phase2-badge--done {
  display: inline-block;
}

/* ---------- 生年月日: 年は「1952（昭和27）」形式で単位「年」は月・日と同じく select の外（2026-09-08）。年の欄を広く ---------- */

body#form .document-phase2 #confirmValid dd.birthdate-fields > label:first-child {
  flex: 2.2 1 0;
}

@media screen and (max-width: 768.98px) {
  /* SP: 年を1行まるごと、月・日を2行目に半分ずつ */

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label:first-child {
    flex: 1 1 100%;
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label:not(:first-child) {
    flex: 1 1 calc(50% - 6px);
  }

}

/* ---------- 資料請求フォーム: ヘッダー固定（ユーザー判断 2026-09-08）。相談フォーム(soudan)には影響させない ----------
   base.css の header{position:fixed} を consultant-phase2.css がフォーム用に relative へ戻しているのを、資料請求3画面だけ再び固定に。
   本文の上余白はヘッダー実測高（SP 70px／PC 100px／ナビあり完了画面 160px）で補正 */

html.consultant-form-page.document-form--fixed-header header {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
}

html.consultant-form-page.document-form--fixed-header main {
  margin-top: 70px;
}

@media screen and (min-width: 769px) {
  html.consultant-form-page.document-form--fixed-header main {
    margin-top: 100px;
  }

  html.consultant-form-page.document-form--fixed-header:not(.document-form--nonav) main {
    margin-top: 160px;
  }

}

/* ---------- 送信ボタン領域 ---------- */

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar {
  position: static;
  margin-top: 8px;
  box-shadow: none;
}

/* ---------- 残り件数ピル（右下固定）: 紺のカプセル。押すと次の未入力項目へ。
   入力中（キーボード表示中）と、末尾の送信ボタンが見えている間は隠す ---------- *

/* ---------- 仕上げ（2026-09-08）: 進む＝ピンク、戻る＝紺の枠線 で3画面を統一 ---------- */

/* --- 入力画面: 送信ボタン。角丸カプセル・右端に「›」・押し込みは控えめな2段影 --- */

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar__inner {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar .phase2-cta-actions {
  width: 100%;
}

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar #submit-btn,
html.consultant-form-page.document-form--fixed-header .phase2-cta-bar #submit-btn.is-ready {
  position: relative;
  width: 100%;
  max-width: 480px;
  margin: 0 auto;
  padding: 0 52px 0 28px;
  min-height: 72px;
  border-radius: 999px;
  background-color: #0072e5;
  background-image: none;
  box-shadow: 0 5px 0 #0a4fa3, 0 10px 22px rgba(0, 114, 229, 0.28);
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.2s;
}

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar #submit-btn::after {
  position: absolute;
  top: 50%;
  right: 24px;
  width: 12px;
  height: 12px;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  transform: translateY(-50%) rotate(45deg);
  content: "";
}

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar #submit-btn:hover,
html.consultant-form-page.document-form--fixed-header .phase2-cta-bar #submit-btn:focus-visible {
  background-color: #0062c8;
  color: #fff;
}

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar #submit-btn:focus-visible {
  outline: 3px solid #00396f;
  outline-offset: 3px;
}

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar #submit-btn:active {
  transform: translateY(3px);
  box-shadow: 0 2px 0 #0a4fa3, 0 4px 10px rgba(0, 114, 229, 0.2);
}

/* 注記「この後、確認画面があります。まだ送信されません。」はボタンの上に常時表示（押す前の安心） */

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar .phase2-cta-note,
html.consultant-form-page.document-form--fixed-header .phase2-cta-bar:not(.is-ready) .phase2-cta-note,
html.consultant-form-page.document-form--fixed-header .phase2-cta-bar.is-ready .phase2-cta-note {
  display: block;
  margin: 0;
  color: var(--phase2-muted);
  font-size: 1.5rem;
  line-height: 1.6;
  text-align: center;
}

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar .phase2-cta-note__default {
  display: inline;
}

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar {
  padding-top: 20px;
  padding-bottom: 28px;
}

/* --- 右下ピル: 数字を大きく・下向きの小さな矢印で「次の項目へ」を示す --- *

/* --- 確認画面: 送信する＝入力画面と同じピンク、戻る＝紺の枠線。SPは縦積み（送信が上）、PCは横並び --- */

html.consultant-form-page.document-form--fixed-header .phase2-confirm-actions {
  flex-wrap: wrap;
  margin-bottom: 8px;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2 #confirm-send-button {
  position: relative;
  flex: 1 1 100%;
  max-width: 480px;
  min-height: 72px;
  padding: 0 52px 0 28px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.2s;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2 #confirm-send-button:not(:disabled) {
  background-color: #0072e5;
  box-shadow: 0 5px 0 #0a4fa3, 0 10px 22px rgba(0, 114, 229, 0.28);
  cursor: pointer;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2 #confirm-send-button:not(:disabled):hover,
html.consultant-form-page.document-form--fixed-header .consultant-phase2 #confirm-send-button:not(:disabled):focus-visible {
  background-color: #0062c8;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2 #confirm-send-button:not(:disabled):focus-visible {
  outline: 3px solid #00396f;
  outline-offset: 3px;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2 #confirm-send-button:not(:disabled):active {
  transform: translateY(3px);
  box-shadow: 0 2px 0 #0a4fa3, 0 4px 10px rgba(0, 114, 229, 0.2);
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2 #confirm-send-button:disabled {
  background-color: #c9c9c9;
  box-shadow: none;
  color: #fff;
  cursor: default;
}

html.consultant-form-page.document-form--fixed-header .phase2-confirm-back {
  border: 2px solid var(--phase2-primary-deep);
  border-radius: 999px;
  background: #fff;
  box-shadow: none;
  color: var(--phase2-primary-deep);
  font-weight: 700;
}

html.consultant-form-page.document-form--fixed-header .phase2-confirm-back::before {
  border-left: 2.5px solid currentColor;
  border-bottom: 2.5px solid currentColor;
  transform: rotate(45deg);
  content: "";
}

html.consultant-form-page.document-form--fixed-header .phase2-confirm-back:hover,
html.consultant-form-page.document-form--fixed-header .phase2-confirm-back:focus-visible {
  background: var(--phase2-primary-soft);
}

html.consultant-form-page.document-form--fixed-header .phase2-confirm-back:active {
  transform: translateY(2px);
  box-shadow: none;
}

/* 完了画面の「トップページへ戻る」も同じ枠線ボタンに（::before の矢印は付けない） */

html.consultant-form-page.document-form--fixed-header .document-complete__actions .phase2-confirm-back::before {
  display: none;
}

@media screen and (min-width: 769px) {
  html.consultant-form-page.document-form--fixed-header .phase2-confirm-actions {
    flex-wrap: nowrap;
  }

  /* DOM は送信する→戻る（SPは上から送信する・戻る）。PCだけ見た目を 戻る(左)・送信する(右) に */

  html.consultant-form-page.document-form--fixed-header .phase2-confirm-back {
    flex: 0 1 220px;
    order: 0;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2 #confirm-send-button {
    flex: 1 1 0;
    order: 1;
  }

}

/* ---------- 性別初期値／フッター配色 ---------- */

/* --- フッター: 旧フォームの配色（薄いグレー地＋濃い文字）に。資料請求3画面のみ --- */

html.consultant-form-page.document-form--fixed-header .consultant-form-footer .footer-wrapper {
  border-top: 1px solid #d5d1c9;
  background: #edece8;
  color: #333;
}

html.consultant-form-page.document-form--fixed-header .consultant-form-footer .footer-info__cont dt,
html.consultant-form-page.document-form--fixed-header .consultant-form-footer .footer-info__cont dd,
html.consultant-form-page.document-form--fixed-header .consultant-form-footer .consultant-form-footer__company {
  color: #333;
}

html.consultant-form-page.document-form--fixed-header .consultant-form-footer .footer-info__cont dt {
  color: #222;
}

/* --- 右下ピル: 数字と文字のベースラインを揃える・半透明＋背景ぼかし --- *

/* 数字は字面が上に寄って見えるぶん（キャップハイト分）を持ち上げ、文字と揃える *

/* ---------- 確認画面ボタン（戻るを小さく・間隔）／入力画面の注記をボタン下へ ---------- */

/* 入力画面: 注記「この後、確認画面があります…」はボタンの下（DOM も下に移動済み） */

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar .phase2-cta-note {
  margin-top: 2px;
}

/* 確認画面: 送信する（大・ピンク・右端に「›」）と 戻る（小・枠線）の差をはっきり付ける */

html.consultant-form-page.document-form--fixed-header .phase2-confirm-actions {
  gap: 24px;
  justify-content: center;
}

/* input[type=submit] は疑似要素が使えないため、「›」は背景SVGで描く */

html.consultant-form-page.document-form--fixed-header .consultant-phase2 #confirm-send-button {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 1.5 6 6 1.5 10.5' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='square'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 24px center;
  background-size: 12px 12px;
}

html.consultant-form-page.document-form--fixed-header .phase2-confirm-back {
  flex: 0 0 auto;
  width: auto;
  min-width: 180px;
  max-width: 320px;
  min-height: 50px;
  padding: 0 24px;
  border-width: 1.5px;
  font-size: 1.5rem;
}

html.consultant-form-page.document-form--fixed-header .phase2-confirm-back::before {
  width: 8px;
  height: 8px;
  margin-right: 8px;
}

@media screen and (min-width: 769px) {
  html.consultant-form-page.document-form--fixed-header .phase2-confirm-actions {
    align-items: center;
    justify-content: flex-start;
    gap: 28px;
  }

  html.consultant-form-page.document-form--fixed-header .phase2-confirm-back {
    flex: 0 0 auto;
    min-width: 200px;
  }

}

/* ---------- つながりやすい時間帯 ---------- */

.consultant-phase2.document-phase2 .form_block .call-time-fieldset {
  min-inline-size: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.consultant-phase2.document-phase2 .form_block .call-time-legend {
  margin: 0;
  padding: 0;
  color: var(--phase2-ink);
  font-size: 1.5rem;
  font-weight: 700;
}

.consultant-phase2.document-phase2 .form_block .call-time-help {
  margin: 4px 0 10px;
  color: var(--phase2-ink);
  font-size: 1.5rem;
  font-weight: 400;
}

.consultant-phase2.document-phase2 .form_block .teltime-grid--slots {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.consultant-phase2.document-phase2 .form_block .call-time-label {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: baseline;
}

@media screen and (min-width: 769px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

}

/* 見出し「［ご都合の良い時間帯］」は旧見出しと同じ大きさ（SP16px／PC18px）に。注記は16px */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .call-time-legend {
  font-size: 1.6rem;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .call-time-help {
  font-size: 1.6rem;
}

@media screen and (min-width: 1024px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .call-time-legend {
    font-size: 1.8rem;
  }

}

/* ---------- 進むボタンの下のぼかし影を外す（グラデーションに見える指摘）。下端の濃い縁だけ残す ---------- */

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar #submit-btn,
html.consultant-form-page.document-form--fixed-header .phase2-cta-bar #submit-btn.is-ready,
html.consultant-form-page.document-form--fixed-header .consultant-phase2 #confirm-send-button:not(:disabled) {
  box-shadow: 0 4px 0 #0a4fa3;
}

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar #submit-btn:active,
html.consultant-form-page.document-form--fixed-header .consultant-phase2 #confirm-send-button:not(:disabled):active {
  box-shadow: 0 1px 0 #0a4fa3;
}

/* ---------- 旧フォーム風の見出し帯（紺地白文字＋赤い必須）と商品カードのチェック穴 ---------- */

/* --- 項目名: 紺の帯（旧 .form_block dt p の #004ea2）に白文字。必須=赤 #e64b4b／任意=青 #3069cc／入力完了=白地に紺文字 --- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt {
  gap: 10px;
  margin: 0 0 10px;
  padding: 8px 10px 8px 14px;
  border-radius: 4px;
  background: #004ea2;
  color: #fff;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt > label,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt p {
  flex: 1 1 auto;
  color: #fff;
  font-size: 1.8rem;
  text-align: center;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt span {
  padding: 4px 10px;
  border: 0;
  border-radius: 4px;
  background: #e64b4b;
  color: #fff;
  line-height: 1.5;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt span.any {
  background: #3069cc;
  color: #fff;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt span.phase2-badge-done {
  background: #fff;
  color: #004ea2;
}

@media screen and (min-width: 769px) {
  /* PC は帯を全幅にせず、旧フォームの見出しブロックに近い幅に */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt {
    display: inline-flex;
    width: auto;
    min-width: 320px;
    padding: 8px 12px 8px 20px;
  }

}

/* --- 商品カード: 左上にチェック穴（旧フォームの実チェックボックス相当）。選択で紺に塗って✓。右上の丸✓は廃止 --- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .itemselect_box .seikyu_btn::before {
  position: absolute;
  z-index: 1;
  top: 12px;
  left: 12px;
  box-sizing: border-box;
  width: 26px;
  height: 26px;
  border: 2px solid #143289;
  border-radius: 4px;
  background: #fff;
  content: "";
  transition: background-color 0.15s, border-color 0.15s;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .itemselect_box .item_list.is-selected .seikyu_btn::before,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .itemselect_box .item_list input[type="checkbox"]:checked + .seikyu_btn::before {
  border-color: #004ea2;
  background-color: #004ea2;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3E%3Cpath d='M2 6.5 6 10.5 14 2' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .itemselect_box .form_item_ttl_box {
  padding: 0 30px;
}

@media screen and (max-width: 768.98px) {
  /* SP はラベル自体に左余白(44px)があり、チェック穴と重ならない。帯の左右余白を無くして商品名を1行に */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .itemselect_box .form_item_ttl_box {
    padding: 0;
  }

}

/* ---------- 入力欄・プルダウン・自由記入欄・郵便番号ボタンの角丸を見出し帯と同じ 4px に ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block input[type="text"],
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block input[type="tel"],
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block input[type="email"],
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block select,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block textarea,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .phase2-zip-row button {
  border-radius: 4px;
}

/* ---------- 高齢者が迷わないよう、ラジオは「○」・チェックは「☐」を左に明示 ---------- */

/* 共通: 性別・時間帯のボタンは左に印を置く。右上外角の✓は廃止 */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_sex,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_teltime {
  padding-left: 40px;
  padding-right: 8px;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_sex::before,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_teltime::before {
  /* style.css の label.form_sex/form_teltime::before{display:none} を戻す */
  display: block;
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 10px;
  box-sizing: border-box;
  width: 24px;
  height: 24px;
  margin-top: -12px;
  border: 2px solid #143289;
  background: #fff;
  content: "";
  transition: background-color 0.15s, border-color 0.15s;
}

/* 性別（ラジオ）: ○ → 選択で中に●（内側の点は radial-gradient） */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_sex::before {
  border-radius: 50%;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_sex.is-selected::before {
  border-color: #004ea2;
  background: radial-gradient(circle, #004ea2 0 5px, #fff 5.5px);
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_sex:has(input:checked)::before {
  border-color: #004ea2;
  background: radial-gradient(circle, #004ea2 0 5px, #fff 5.5px);
}

/* 時間帯（チェック）: ☐ → 選択で紺に塗って白い✓（商品カードと同じ） */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_teltime::before {
  border-radius: 4px;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_teltime.is-selected::before {
  border-color: #004ea2;
  background-color: #004ea2;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3E%3Cpath d='M2 6.5 6 10.5 14 2' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_teltime:has(input:checked)::before {
  border-color: #004ea2;
  background-color: #004ea2;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3E%3Cpath d='M2 6.5 6 10.5 14 2' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
}

/* 同意チェック: 丸→四角にして商品カード・時間帯と同じ印に */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-agreement input[type="checkbox"] {
  border-color: #143289;
  border-radius: 4px;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-agreement input[type="checkbox"]::after {
  content: "";
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3E%3Cpath d='M2 6.5 6 10.5 14 2' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-agreement input[type="checkbox"]:checked {
  border-color: #004ea2;
  background: #004ea2;
}

/* ---------- 同意エラーはチェックボックスの下に（#agree_box をラベルの後ろへ移動） ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #agree_box p,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #agree_box + label.error {
  margin: 8px 0 0;
}

/* ---------- PC の右側の欄（Pマーク案内・電話案内 aside）を撤去し、フォームを1列で中央に ---------- */

@media screen and (min-width: 769px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2 .phase2-shell {
    display: block;
    max-width: 760px;
  }

}

/* ---------- PC の見出し（1 ご希望の資料を選択してください 等）を大きく 20px→26px・番号枠 30→38px ---------- */

@media screen and (min-width: 769px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head h2 {
    font-size: 2.6rem;
    line-height: 1.35;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head {
    padding-top: 16px;
    padding-bottom: 16px;
  }

}

/* ---------- 旧フォームに近づける＝薄青の背景をやめ白地に。カードの枠・影・角丸を外し、見出し帯は下線のみ ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2 {
  background: #fff;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2 .phase2-card,
html.consultant-form-page.document-form--fixed-header .consultant-phase2 .phase2-main form .phase2-card,
html.consultant-form-page.document-form--fixed-header .consultant-phase2 .phase2-main form .phase2-card:last-of-type,
html.consultant-form-page.document-form--fixed-header .consultant-phase2 .phase2-main form#confirmValid > .phase2-card {
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2 .phase2-page-head {
  border-radius: 0;
}

/* 見出し帯: 灰色の下地をやめ、下線で区切る */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head,
html.consultant-form-page.document-form--fixed-header .consultant-phase2 .phase2-section-head {
  background: transparent;
}

/* 末尾の送信ボタン領域: 上の線を消して本文と地続きに */

html.consultant-form-page.document-form--fixed-header .consultant-phase2 .phase2-cta-bar {
  border-top: 0;
  background: #fff;
}

/* ---------- PC(1024px〜)は旧フォームと同じ幅980px・商品3列・項目名(左)＋入力欄(右)の2列（旧フォームのブラッシュアップ路線 ---------- */

@media screen and (min-width: 1024px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2 .phase2-shell {
    max-width: 980px;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .itemselect_box {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  /* 項目名(紺帯 300px)｜入力欄 の2列グリッド */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    column-gap: 24px;
    /* 行間30px（旧フォームと同じ）は row-gap ではなく dt/dd の margin-top で作る（空のエラー受け皿 div が行を作っても間隔が増えないように） */
    row-gap: 0;
    align-items: start;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > dt {
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 52px;
    margin: 30px 0 0;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > dd {
    margin: 30px 0 0;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > dt:first-child,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > dt:first-child + dd {
    margin-top: 0;
  }

  /* validation.js のエラー受け皿 div（inline style 付き）は入力欄の列に置く。空なら高さ0で行間に影響しない */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > div[style] {
    grid-column: 2;
    margin: 0;
  }

  /* ご質問を包む div は透過させ、中の dt/dd をグリッドに直接並べる */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > div:not([style]) {
    display: contents;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > div:not([style]) > dt {
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 52px;
    margin: 30px 0 0;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > div:not([style]) > dd {
    margin: 30px 0 0;
  }

}

@media screen and (min-width: 1024px) {
  /* 商品3列（カード幅約293px）で「持病がある方向けの医療保険」が1行に収まるよう、帯の左右余白を詰める（チェック穴 12+26px とは重ねない） */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .itemselect_box .form_item_ttl_box {
    padding: 0 28px;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .itemselect_box .item_ttl {
    padding-right: 6px;
    padding-left: 6px;
    font-size: 1.4rem;
  }

}

/* ---------- 末尾の「入力内容の確認へ進む」と注記を中央揃え（980px幅で左に寄っていた ---------- */

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar__inner {
  align-items: center;
}

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar .phase2-cta-actions,
html.consultant-form-page.document-form--fixed-header .phase2-cta-bar .phase2-cta-note {
  margin-right: auto;
  margin-left: auto;
}

@media screen and (min-width: 769px) {
  /* consultant-phase2.css が PC で右側の欄ぶん padding-right:324px を予約している。欄は撤去済みなので外し、640px を中央に */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2 .phase2-cta-bar__inner {
    max-width: 640px;
    padding-right: 0;
  }

}

/* ---------- 高齢者向けの仕上げ（公式フォーム実測: 入力欄PC70px/文字18px・選択肢は濃い文字 を参考） ---------- */

/* 1. 入力欄・プルダウンを高く（SP 56px / PC 60px）。指で押しやすく、文字が窮屈にならない */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block input[type="text"],
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block input[type="tel"],
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block input[type="email"],
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block select,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .phase2-zip-row button,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dd.birthdate-fields .form_select_year,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dd.birthdate-fields .form_select_month,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dd.birthdate-fields .form_select_day {
  height: 56px;
  min-height: 56px;
}

/* 2. 選択肢ボタン（性別・時間帯）: 未選択の文字をグレーから濃色に（グレーは「押せない」に見える）。枠も入力欄と同じ濃さに */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_sex,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_teltime {
  border-color: var(--phase2-input-line);
  color: var(--phase2-ink);
}

/* 3. 補足文・エラー文を一段大きく（14→16px）。エラーの赤は白地で読みやすい濃さに */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dd .txt_red {
  line-height: 1.6;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 p.error,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 label.error,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phone_error,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #agree_box p {
  font-size: 1.6rem !important;
  line-height: 1.6 !important;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt span {
  font-size: 1.4rem;
}

/* 4. ボタン下の注記は少し濃く・大きく */

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar .phase2-cta-note {
  color: #555;
  font-size: 1.6rem;
}

/* 5. 商品カードの商品名帯（SP・タブレット）13→15px */

@media screen and (max-width: 1023.98px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .itemselect_box .item_ttl {
    font-size: 1.5rem;
  }

}

/* 6. 確認画面の項目名を濃く大きく（15→16px） */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-confirm-list__row dt {
  color: #444;
  font-size: 1.6rem;
}

/* 7. フッター（募集代理店・引受保険会社）12→14px */

html.consultant-form-page.document-form--fixed-header .consultant-form-footer .footer-info__cont dt,
html.consultant-form-page.document-form--fixed-header .consultant-form-footer .footer-info__cont dd,
html.consultant-form-page.document-form--fixed-header .consultant-form-footer .consultant-form-footer__company {
  font-size: 1.4rem;
  line-height: 1.7;
}

@media screen and (min-width: 1024px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block input[type="text"],
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block input[type="tel"],
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block input[type="email"],
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block select,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .phase2-zip-row button,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dd.birthdate-fields .form_select_year,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dd.birthdate-fields .form_select_month,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dd.birthdate-fields .form_select_day {
    height: 60px;
    min-height: 60px;
  }

  /* 項目名の帯・選択肢ボタンも入力欄と同じ高さに揃える */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > dt,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > div:not([style]) > dt,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_sex,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_teltime {
    min-height: 60px;
  }

}

/* 上の仕上げのうち、既存の !important / :not() 詳細度に負けていた3点を上書き */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dd .txt_red {
  color: #c62828 !important;
  font-size: 1.6rem !important;
}

html.consultant-form-page.document-form--fixed-header .consultant-form-footer .footer-info__cont dt,
html.consultant-form-page.document-form--fixed-header .consultant-form-footer .footer-info__cont dd,
html.consultant-form-page.document-form--fixed-header body .consultant-form-footer__company {
  font-size: 1.4rem !important;
}

html.consultant-form-page.document-form--fixed-header .phase2-cta-bar:not(.is-ready) .phase2-cta-note,
html.consultant-form-page.document-form--fixed-header .phase2-cta-bar.is-ready .phase2-cta-note {
  color: #555;
  font-size: 1.6rem;
}

/* ---------- Codexレビュー反映（高齢者向け仕上げの後追い） ---------- */

/* (1) 生年月日の select は既存の body#form…#confirmValid 規則(ID2つ)が勝つため、同じ詳細度で高さを揃える */

body#form .document-phase2 #confirmValid dd.birthdate-fields select.form_selectbox {
  height: 56px;
  /* auto だと iOS Safari がネイティブ select の min-height を無視して低くなる（デザイナー指摘 2026-09-08） */
  min-height: 56px;
}

/* (5) PC で生年月日のエラー（flex:0 0 100%）が年月日と同じ行に入らないよう折り返しを許可 */

@media screen and (min-width: 769px) {
  body#form .document-phase2 #confirmValid dd.birthdate-fields {
    flex-wrap: wrap;
  }

}

@media screen and (min-width: 1024px) {
  body#form .document-phase2 #confirmValid dd.birthdate-fields select.form_selectbox {
    height: 60px;
    min-height: 60px;
  }

}

/* (2) 未選択の濃色化で消えていた「選択中の紺枠・紺文字」を戻す（.is-selected は JS が同期。:has は別ブロック） */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_sex.is-selected,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_teltime.is-selected {
  border-color: var(--phase2-primary);
  color: var(--phase2-primary-deep);
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_sex:has(input:checked),
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_teltime:has(input:checked) {
  border-color: var(--phase2-primary);
  color: var(--phase2-primary-deep);
}

/* (6) 必須バッジの赤を白文字で 4.5:1 を満たす #d93a3a に（#e64b4b は 3.84:1） */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt > span:not(.any):not(.phase2-badge-done) {
  background: #d93a3a;
}

/* (7) エラー集約（#form-error-summary: inline style 14px）も 16px に。確認画面の長い英数字は折り返す */

body#form .document-phase2 #form-error-summary,
body#form .document-phase2 #form-error-summary-customer {
  font-size: 1.6rem !important;
  line-height: 1.6;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-confirm-list__row dd span {
  overflow-wrap: anywhere;
}

/* ---------- PC(1024px〜)は必須/OKマークを帯の外に（旧フォームPCと同じ・。帯の幅はバッジ幅を固定して揃える ---------- */

@media screen and (min-width: 1024px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt {
    gap: 12px;
    padding: 0;
    border-radius: 0;
    background: transparent;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt > label,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt > p {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    justify-content: center;
    min-height: 60px;
    padding: 0 12px;
    border-radius: 4px;
    background: #004ea2;
    color: #fff;
  }

  /* バッジは 必須／任意／✓ OK とも同じ幅（70px）にして帯の幅を揃える */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt > span {
    display: inline-flex;
    flex: none;
    box-sizing: border-box;
    width: 70px;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt span.phase2-badge-done {
    border: 2px solid #004ea2;
    background: #fff;
    color: #004ea2;
  }

  /* 必須→✓ OK の切替（上の dt > span 規則が既存の切替規則より強いので、同じ強さで書き直す） */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt > span.phase2-badge-done,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt.is-ok > span:not(.phase2-badge-done) {
    display: none;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt.is-ok > span.phase2-badge-done {
    display: inline-flex;
  }

}

/* ---------- 見出し（2・3）の上の余白を広げる（PC +24px / SP +16px ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card:not(:first-of-type) > .phase2-section-head {
  margin-top: calc(-1 * var(--phase2-card-padding) + 16px);
}

@media screen and (min-width: 769px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card:not(:first-of-type) > .phase2-section-head {
    margin-top: calc(-1 * var(--phase2-card-padding) + 24px);
  }

}

/* ---------- SPの横余白: 片側31px→19px（公式SP・旧フォームと同じ）。入力欄の幅を 313→337px(375px時) に ---------- */

@media screen and (max-width: 768.98px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card {
    --phase2-card-padding: 4px;
    padding-right: 4px;
    padding-left: 4px;
  }

  /* 末尾の送信ボタンも入力欄と同じ左右位置に */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-cta-bar {
    padding-right: 19px;
    padding-left: 19px;
  }

}

/* ---------- STEP表示: 「STEP.1」→ 数字のみ（旧フォームの「1 ご入力」に合わせ英語表記をやめる・。数字は一回り大きく ---------- */

html.consultant-form-page.document-form--fixed-header .l-progressbar__item .l-progressbar__num {
  display: inline-block;
  font-size: 1.35em;
  font-weight: 700;
  line-height: 1.1;
}

/* STEP表示を1行に（「1 ご入力」）。数字と文字の間は少し空け、SPは1行に収まる文字サイズに */

html.consultant-form-page.document-form--fixed-header .l-progressbar__item .l-progressbar__num {
  margin-right: 4px;
  vertical-align: -0.05em;
}

/* PC は1行固定。SP は通常サイズなら1行に収まり、文字拡大(125/150%)時は切れずに折り返す */

@media screen and (min-width: 769px) {
  html.consultant-form-page.document-form--fixed-header .l-progressbar__item span {
    white-space: nowrap;
  }

}

@media screen and (max-width: 768.98px) {
  html.consultant-form-page.document-form--fixed-header .l-progressbar__item {
    font-size: 1.3rem;
  }

}

@media screen and (max-width: 359.98px) {
  html.consultant-form-page.document-form--fixed-header .l-progressbar__item {
    font-size: 1.1rem;
  }

}

/* ---------- STEP表示の矢印: 項目幅が小数pxになると三角(left:100%)との間に1px の白い縦線が出るため、1px重ねる ---------- */

html.consultant-form-page.document-form--fixed-header .l-progressbar__item:not(:last-child)::before,
html.consultant-form-page.document-form--fixed-header .l-progressbar__item:not(:last-child)::after {
  left: calc(100% - 1px);
}

/* 白い切れ込み線（::before を2pxずらす手法）は上下端に縦の短い線が出るので廃止。隣り合う灰色の濃さを変えて矢印を見せる */

html.consultant-form-page.document-form--fixed-header .l-progressbar__item:not(:last-child)::before {
  display: none;
  content: none;
}

html.consultant-form-page.document-form--fixed-header .l-progressbar__item:nth-child(2):not(.active) {
  background: #e6e6e6;
  color: #5f5f5f;
}

html.consultant-form-page.document-form--fixed-header .l-progressbar__item:nth-child(2):not(.active):not(:last-child)::after {
  background: #e6e6e6;
}

/* ---------- 「1 ご希望の資料を選択してください」横の必須/✓OKを項目名のバッジと同じ見た目に／PCはバッジと入力欄の間隔を広げる ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head .phase2-badge {
  box-sizing: border-box;
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 1.4rem;
  line-height: 1.5;
  text-align: center;
}

@media screen and (min-width: 1024px) {
  /* PC は項目名横のバッジ（幅70px固定）と同じ大きさに */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head .phase2-badge {
    min-width: 70px;
    padding: 6px 8px;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head .phase2-badge--done {
    padding-top: 4px;
    padding-bottom: 4px;
  }

}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head .phase2-badge--required {
  border: 0;
  background: #d93a3a;
  color: #fff;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head .phase2-badge--done {
  padding-top: 2px;
  padding-bottom: 2px;
  border: 2px solid #004ea2;
  background: #fff;
  color: #004ea2;
}

@media screen and (min-width: 1024px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block {
    column-gap: 36px;
  }

}

@media screen and (min-width: 1024px) {
  /* PC の見出し横「✓ OK」を必須と同じ高さ(33px)に。上の --done 規則(上下2px)より後に置く */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head .phase2-badge--done {
    padding-top: 4px;
    padding-bottom: 4px;
  }

}

/* ---------- フッター（Pマーク・代理店情報）の左右をフォームと同じ幅・位置に揃える ---------- */

@media screen and (min-width: 769px) {
  html.consultant-form-page.document-form--fixed-header .consultant-form-footer .footer-wrapper > .inner {
    box-sizing: border-box;
    width: auto;
    max-width: 760px;
    margin: 0 auto;
    padding-right: 0;
    padding-left: 0;
  }

}

@media screen and (min-width: 1024px) {
  html.consultant-form-page.document-form--fixed-header .consultant-form-footer .footer-wrapper > .inner {
    max-width: 980px;
  }

}

/* ---------- STEP表示の選択中の色を項目名の帯と同じ紺 #004ea2 に ---------- */

html.consultant-form-page.document-form--fixed-header .l-progressbar__item.active {
  background: #004ea2;
}

html.consultant-form-page.document-form--fixed-header .l-progressbar__item.active:not(:last-child)::after {
  background: #004ea2;
}

/* ---------- 都道府県プルダウンを県名が収まる幅に（全幅は大きすぎる ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block select#customerPrefecture {
  width: 220px;
  max-width: 100%;
}

@media screen and (max-width: 479.98px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block select#customerPrefecture {
    width: 60%;
    min-width: 180px;
  }

}

/* ---------- 性別ボタンも文字が収まる幅に（PC 155px×2 / SP 150px×2 ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dd.sex-fields {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dd.sex-fields label.form_sex {
  flex: 0 0 auto;
  width: 150px;
  max-width: calc(50% - 5px);
}

@media screen and (min-width: 1024px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dd.sex-fields label.form_sex {
    width: 155px;
    /* 2つ＋隙間10px＝320px。電話番号と右端を揃える（デザイナー指摘 2026-09-08） */;
  }

}

/* ---------- エラー状態の入力欄は公式フォームと同じ薄黄色地(#fdffef)＋赤枠に ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block input.error,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block select.error,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block textarea.error {
  border-color: #d93a3a;
  background-color: #fdffef;
}

@media screen and (max-width: 768.98px) {
  /* SP: 左右の余白を詰めて通常サイズでは1行に。文字拡大時のみ折り返す */

  html.consultant-form-page.document-form--fixed-header .l-progressbar__item {
    padding-right: 2px;
    padding-left: 8px;
  }

  html.consultant-form-page.document-form--fixed-header .l-progressbar__item:first-child {
    padding-left: 4px;
  }

}

/* Codex最終レビュー反映: 都道府県のエラー時も薄黄地（既存の background:#fff !important に勝つ） */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block select#customerPrefecture.error {
  background-color: #fdffef !important;
}

@media screen and (max-width: 768.98px) {
  /* 2番目以降は前の矢印(約17px)が食い込むぶん左余白を確保し、文字拡大で折り返しても矢印と重ならないように */

  html.consultant-form-page.document-form--fixed-header .l-progressbar__item:not(:first-child) {
    padding-left: 20px;
  }

}

@media screen and (max-width: 359.98px) {
  /* 320px幅では「3 送信完了」が20pxの余白だと折り返すため16pxに（矢印の食い込みは上下端の細い部分だけ） */

  html.consultant-form-page.document-form--fixed-header .l-progressbar__item:not(:first-child) {
    padding-left: 16px;
  }

}

@media screen and (max-width: 768.98px) {
  /* SP: 各項目の幅は文字量に応じて配分（固定比率だと「3 送信完了」が360px以下で折り返す） */

  html.consultant-form-page.document-form--fixed-header .l-progressbar__item,
  html.consultant-form-page.document-form--fixed-header .l-progressbar__item:nth-child(2) {
    flex: 1 1 auto;
  }

}

/* ---------- SP の見出し（ご希望の資料を選択してください 等）も 18→20px ---------- */

@media screen and (max-width: 768.98px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head h2,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head h2 {
    font-size: 2rem;
    line-height: 1.35;
  }

}

@media screen and (max-width: 479.98px) {
  /* スマホ幅: 20px だと「ご希望の資料を選択してください」の末尾1文字だけ2行目に落ちるため 19px。見出し帯の左右余白も詰めて幅を確保 */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head h2,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head h2 {
    font-size: 1.9rem;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head {
    padding-right: 6px;
    padding-left: 6px;
  }

}

@media screen and (max-width: 374.98px) {
  /* 360px(Android標準幅)以下は19pxでも末尾1文字が落ちるため従来の18px */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head h2,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head h2 {
    font-size: 1.8rem;
  }

}

/* ---------- 見出しの番号（1・2・3）を外す。すぐ上の STEP 表示（1 ご入力…）と番号が重なるため（ユーザー指示 2026-09-09） ---------- */

@media screen and (max-width: 768.98px) {
  /* SP: 番号列(30px)を外し、見出し・バッジ・補足を1列目に */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head {
    grid-template-columns: minmax(0, 1fr);
    column-gap: 0;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head h2,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head .phase2-badge,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head .phase2-hint {
    grid-column: 1;
  }

  /* 番号が無くなった分の幅で、375px 以上は 20px でも1行に収まる（〜359px は従来どおり 18px） */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head h2,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head h2 {
    font-size: 2rem;
  }

}

@media screen and (max-width: 359.98px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head h2,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head h2 {
    font-size: 1.8rem;
  }

}

@media screen and (max-width: 479.98px) {
  /* 番号が無くなったので見出し帯の左右余白をカードの余白(4px)に揃え、見出しの左端を商品カード・入力欄と一致させる */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head {
    padding-right: var(--phase2-card-padding);
    padding-left: var(--phase2-card-padding);
  }

}

/* ---------- 「他の資料も追加する・変更する」ボタンを、畳んだ状態の商品カード1枚と同じ幅に（PCで全幅は横長すぎる：ユーザー指摘 2026-09-09）。商品グリッドと同じ列構成にしてボタンを1列目に置く ---------- */

@media screen and (min-width: 769px) {
  .consultant-phase2.document-phase2 .product-select-summary__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .consultant-phase2.document-phase2 .product-select-summary__actions[hidden] {
    display: none;
  }

}

@media screen and (min-width: 1024px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .product-select-summary__actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

}

/* ---------- 個人情報の取扱い: 旧フォームの .pri を継承し、本文列からのはみ出しだけを防止 ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-privacy-box .pri {
  box-sizing: border-box;
  /* 幅は入力欄の右端に揃える（旧 .pri は800px固定・ユーザー指示 2026-09-11） */
  width: 100%;
  max-width: 100%;
  margin: 0 0 16px;
}

/* ---------- 時間帯・同意チェックの「ボタン風の枠」を外し、旧フォームのようにチェック印＋文字だけに（ユーザー指示 2026-09-09）。印の見た目・選択時の紺文字・フォーカス枠は維持 ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots > label.form_teltime,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots > label.form_teltime.is-selected,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots > label.form_teltime:has(input:checked) {
  min-height: 44px;
  padding: 6px 0 6px 36px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots > label.form_teltime::before {
  left: 0;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots {
  gap: 4px;
}

@media screen and (min-width: 1024px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots {
    row-gap: 4px;
    column-gap: 24px;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots > label.form_teltime,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots > label.form_teltime.is-selected,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots > label.form_teltime:has(input:checked) {
    /* 選択状態の規則(44px)に負けて選択時だけ4px縮み、画面がずれていた。選択状態も同じ高さに */
    min-height: 48px;
  }

}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-agreement,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-agreement.is-error {
  min-height: 44px;
  padding: 6px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

/* 同意エラー時は枠が無いのでチェック印の枠線を赤に */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-agreement.is-error input[type="checkbox"] {
  border-color: var(--phase2-required);
}

/* 枠が無くなったので、タップ後に行全体へ残るフォーカス枠はやめ、キーボード操作時だけチェック印に枠を出す */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots > label.form_teltime:focus-within {
  outline: 0;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots > label.form_teltime:has(input:focus-visible)::before {
  outline: 2px solid var(--phase2-primary);
  outline-offset: 2px;
}

/* ---------- 同意チェックは中央寄せ。他のチェックと同じく、選択・フォーカス・ホバーの地色や枠は出さない（ユーザー指示 2026-09-09） ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-agreement,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-agreement.is-selected,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-agreement:has(input:checked),
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-agreement:hover {
  justify-content: center;
  border: 0;
  background: transparent;
  box-shadow: none;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-agreement:focus-within {
  outline: 0;
}

/* 文字の span が flex:1 で幅いっぱいに伸びて中央寄せが効いていなかった → 文字幅ぶんだけにする */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-agreement__text {
  flex: 0 1 auto;
  min-width: 0;
  text-align: left;
}

/* ---------- 「他の資料も見てみる」はボタンではなく文字リンク風に（ユーザー指示 2026-09-09） ---------- */

.consultant-phase2.document-phase2 .product-select-summary__btn,
.consultant-phase2.document-phase2 .product-select-summary__btn:hover,
.consultant-phase2.document-phase2 .product-select-summary__btn:focus-visible {
  width: auto;
  min-height: 44px;
  margin: 0;
  padding: 0 2px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--phase2-primary-deep);
  font-size: 1.6rem;
  font-weight: 700;
  text-align: left;
  text-decoration: underline;
  text-underline-offset: 4px;
  justify-self: start;
  cursor: pointer;
}

.consultant-phase2.document-phase2 .product-select-summary__btn:hover {
  color: var(--phase2-primary);
}

.consultant-phase2.document-phase2 .product-select-summary__btn:focus-visible {
  outline: 2px solid var(--phase2-primary);
  outline-offset: 2px;
}

/* ---------- 時間帯の見出し ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .call-time-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
}

/* ---------- 畳んだ状態の小見出し「ご希望の資料」を撤去したので、その入れ物の余白も 0 に ---------- */

.consultant-phase2.document-phase2 .product-select-summary {
  margin: 0;
}

/* ---------- SP のバッジ（必須／✓ OK）は同じ幅にして、切り替わっても位置・大きさが変わらないように（ユーザー指示 2026-09-09） ---------- */

@media screen and (max-width: 768.98px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt > span,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head .phase2-badge {
    box-sizing: border-box;
    width: 62px;
    min-height: 30px;
    padding-right: 0;
    padding-left: 0;
    justify-content: center;
    align-items: center;
    text-align: center;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt > span:not(.phase2-badge-done),
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt.is-ok > span.phase2-badge-done,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head .phase2-badge--required,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head.is-ok .phase2-badge--done {
    display: inline-flex;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt.is-ok > span:not(.phase2-badge-done),
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt > span.phase2-badge-done,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head.is-ok .phase2-badge--required,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head .phase2-badge--done {
    display: none;
  }

}

/* ---------- 見出し（3つ）を中央揃えに。「※複数選択可」は撤去（ユーザー指示 2026-09-09） ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head {
  justify-content: center;
  text-align: center;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head h2 {
  text-align: center;
}

@media screen and (max-width: 768.98px) {
  /* SP は1列グリッド: 見出しもバッジも中央に */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head {
    justify-items: center;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head h2,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head .phase2-badge {
    justify-self: center;
  }

}

/* ---------- プルダウン（生年月日・都道府県）を旧フォームのように青で装飾: 紺の枠＋右端に紺の四角と白い▼（ユーザー指示 2026-09-09）。
   appearance:none にするので iOS で高さが縮む問題（デザイナー指摘01）も案Bとして解消 ---------- */

body#form .document-phase2 #confirmValid dd.birthdate-fields select.form_selectbox,
body#form .document-phase2 #confirmValid select#customerPrefecture {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding-right: 42px;
  border: 1.5px solid #004ea2;
  border-radius: 4px;
  /* style.css の .form_select_* {background: transparent !important} に勝つため !important。
     帯（linear-gradient）は border-box 基準で描き、枠線の上まで重ねる（iPhone で帯の下端と枠線の間に隙間が出るため）。帯 32px・▼ 12px */
  background-color: #fff !important;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"), linear-gradient(#004ea2, #004ea2) !important;
  background-repeat: no-repeat, no-repeat !important;
  background-origin: border-box, border-box !important;
  background-clip: border-box, border-box !important;
  background-position: right 10px center, right top !important;
  background-size: 12px 8px, 32px 100% !important;
  color: var(--phase2-ink);
}

body#form .document-phase2 #confirmValid dd.birthdate-fields select.form_selectbox.error,
body#form .document-phase2 #confirmValid select#customerPrefecture.error {
  border-color: #d93a3a;
}

body#form .document-phase2 #confirmValid dd.birthdate-fields select.form_selectbox:focus-visible,
body#form .document-phase2 #confirmValid select#customerPrefecture:focus-visible {
  outline: 2px solid var(--phase2-primary);
  outline-offset: 2px;
}

/* 月・日も年・都道府県と同じ帯幅40px・矢印14px（ユーザー指示 2026-09-09: 帯と矢印の大きさを揃える） */

/* エラー時は薄黄地を優先（上の白地 !important より後に置く） */

body#form .document-phase2 #confirmValid dd.birthdate-fields select.form_selectbox.error,
body#form .document-phase2 #confirmValid select#customerPrefecture.error {
  background-color: #fdffef !important;
}

/* ---------- 最初の見出し「ご希望の商品を選択してください」の上の余白を広げる（STEP表示との間: SP 38→56px / PC 36→64px・ユーザー指示 2026-09-09） ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card:first-of-type > .phase2-section-head {
  padding-top: 30px;
}

@media screen and (min-width: 769px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card:first-of-type > .phase2-section-head {
    padding-top: 44px;
  }

}

/* ---------- STEP表示（1 ご入力…）をもう少し上に: バナーとの間 SP 24→12px / PC 84→48px（ユーザー指示 2026-09-09） ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 {
  padding-top: 2px;
}

@media screen and (min-width: 769px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 {
    padding-top: 12px;
  }

}

/* ---------- お名前（漢字・かな）は電話番号と同じ幅（PC 320px）に（ユーザー指示 2026-09-09） ---------- */

@media screen and (min-width: 769px) {
  .consultant-phase2.document-phase2 .form_block input[name="お名前（漢字）"],
  .consultant-phase2.document-phase2 .form_block input[name="お名前（カナ）"] {
    max-width: 320px;
  }

}

/* ---------- 見出し3つの下線を消す（ユーザー指示 2026-09-09） ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head,
html.consultant-form-page.document-form--fixed-header .consultant-phase2 .phase2-section-head {
  border-bottom: 0;
}

/* ---------- ページ見出し「資料請求」の下に少し余白（バナーとの間 SP 6→20px / PC 12→30px・ユーザー指示 2026-09-09） ---------- */

body#form .document-page-title {
  margin-bottom: 20px;
}

@media screen and (min-width: 769px) {
  body#form .document-page-title {
    margin-bottom: 30px;
  }

}

/* ---------- 生年月日（SP）: iPhone 実機で年と日の右端がずれるため、flex の伸縮に頼らず幅を明示し、select＋単位は grid で並べる（ユーザー報告 2026-09-09） ---------- */

@media screen and (max-width: 768.98px) {
  body#form .document-phase2 #confirmValid dd.birthdate-fields {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 6px;
    flex: none;
    box-sizing: border-box;
    min-width: 0;
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label:first-child {
    width: 100%;
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label:not(:first-child) {
    width: calc(50% - 4px);
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label > select.form_selectbox {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields .birthdate-unit {
    /* 「年」「月」「日」は同じ幅（1文字ぶん）に固定し、右端の位置を行間で揃える */
    display: inline-block;
    width: 1em;
    text-align: center;
  }

}

/* ---------- SP の見出しを1行に収まる範囲で大きく（実測の上限−1px: 375px=21 / 390px=22 / 414px〜=23。〜374px は従来どおり 20/18px・ユーザー指示 2026-09-09） ---------- */

@media screen and (min-width: 375px) and (max-width: 768.98px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head h2,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head h2 {
    font-size: 2.1rem;
  }

}

@media screen and (min-width: 390px) and (max-width: 768.98px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head h2,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head h2 {
    font-size: 2.2rem;
  }

}

@media screen and (min-width: 414px) and (max-width: 768.98px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 #confirmValid > .phase2-card > .phase2-section-head h2,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head h2 {
    font-size: 2.3rem;
  }

}

/* ---------- バッジ（必須／✓ OK）の文字を 14→16px に（項目名の帯・見出し横・ユーザー指示 2026-09-09）。幅は SP62px/PC70px のまま ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt span,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head .phase2-badge {
  font-size: 1.6rem;
}

@media screen and (min-width: 769px) {
  /* PC: 見出し横のバッジも項目名の帯のバッジと同じ 70×34px に（文字16px化で36pxになっていた） */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head .phase2-badge {
    display: inline-flex;
    box-sizing: border-box;
    width: 70px;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
    line-height: 1.5;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head .phase2-badge--done {
    display: none;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head.is-ok .phase2-badge--required {
    display: none;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-section-head.is-ok .phase2-badge--done {
    display: inline-flex;
  }

}

/* ---------- 性別の初期選択（女性）をやめ未選択に（ユーザー判断 2026-09-09）。未選択エラーは生年月日と同じくボタンの下に全幅で ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dd.sex-fields > p.error {
  flex: 0 0 100%;
  width: 100%;
  margin: 6px 0 0;
}

/* ---------- 郵便番号のエラーは入力欄の横ではなく下に（validation.js が input の直後に挿入するため、行を折返し可にして全幅・最後尾へ・ユーザー指示 2026-09-09） ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .phase2-zip-row {
  flex-wrap: wrap;
}

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .phase2-zip-row > p.error,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .phase2-zip-row > label.error {
  flex: 0 0 100%;
  order: 9;
  width: 100%;
  margin: 6px 0 0;
}

/* ---------- 郵便番号の入力欄と「郵便番号から住所を入力」ボタンを都道府県と同じ幅に（PC 220px×2・ユーザー指示 2026-09-09） ---------- */

@media screen and (min-width: 1024px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .phase2-zip-row input {
    flex: 0 0 220px;
    width: 220px;
    max-width: 220px;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .phase2-zip-row button {
    flex: 0 0 220px;
    width: 220px;
    padding: 0 8px;
  }

}

/* ---------- タブレット（769〜1023px・フォーム幅696px）: PC と同じ「項目名(左)＋入力欄(右)」の2列に（iPad で帯だけ幅広で入力欄が細く見えるため・ユーザー指摘 2026-09-09）。
   項目名の列は 260px（帯178＋隙間12＋バッジ70）、入力欄の列は約416px ---------- */

@media screen and (min-width: 769px) and (max-width: 1023.98px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    column-gap: 20px;
    row-gap: 0;
    align-items: start;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > dt,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > div:not([style]) > dt {
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 56px;
    margin: 26px 0 0;
    gap: 12px;
    padding: 0;
    border-radius: 0;
    background: transparent;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > dd,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > div:not([style]) > dd {
    margin: 26px 0 0;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > dt:first-child,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > dt:first-child + dd {
    margin-top: 0;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > div[style] {
    grid-column: 2;
    margin: 0;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block > div:not([style]) {
    display: contents;
  }

  /* 帯（項目名）と、その外のバッジ（PC と同じ形） */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt > label,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt > p {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    padding: 0 6px;
    border-radius: 4px;
    background: #004ea2;
    color: #fff;
    font-size: 1.5rem;
    /* 帯178pxに「丁目・番地・建物名」が1行で収まる大きさ */
    letter-spacing: 0;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt > span {
    display: inline-flex;
    flex: none;
    box-sizing: border-box;
    width: 70px;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt span.phase2-badge-done {
    border: 2px solid #004ea2;
    background: #fff;
    color: #004ea2;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt > span.phase2-badge-done,
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt.is-ok > span:not(.phase2-badge-done) {
    display: none;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dt.is-ok > span.phase2-badge-done {
    display: inline-flex;
  }

  /* 入力欄の列（約416px）に合わせた幅: 郵便番号・ボタン・都道府県は 200px、電話番号・お名前は 320px のまま */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .phase2-zip-row input {
    flex: 0 0 180px;
    width: 180px;
    max-width: 180px;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .phase2-zip-row button {
    flex: 0 0 180px;
    width: 180px;
    padding: 0 6px;
    font-size: 1.4rem;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block select#customerPrefecture {
    width: 180px;
  }

  /* 生年月日は列が狭いので SP と同じ「年＝1行・月日＝半分ずつ」 */

  body#form .document-phase2 #confirmValid dd.birthdate-fields {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 6px;
    flex: none;
    box-sizing: border-box;
    min-width: 0;
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label:first-child {
    flex: 0 0 100%;
    /* 共通の flex:2.2 1 0 に勝つよう flex も明示 */
    width: 100%;
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label:not(:first-child) {
    flex: 0 0 calc(50% - 4px);
    width: calc(50% - 4px);
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label > select.form_selectbox {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields .birthdate-unit {
    display: inline-block;
    width: 1em;
    text-align: center;
  }

}

/* ---------- 生年月日の「年」プルダウンも都道府県・郵便番号と同じ幅に（PC 220px／タブレット 200px・ユーザー指示 2026-09-09） ---------- */

@media screen and (min-width: 1024px) {
  body#form .document-phase2 #confirmValid dd.birthdate-fields > label:first-child {
    flex: 0 0 auto;
    width: auto;
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields .form_select_year {
    flex: none;
    width: 220px;
  }

}

@media screen and (min-width: 769px) and (max-width: 1023.98px) {
  /* 年も月・日と同じ半分幅の枠（label）に入れ、select は 180px（＝性別・都道府県・郵便番号と同じ）。単位込みで 2列にきれいに揃う */

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label:first-child {
    flex: 0 0 calc(50% - 4px);
    width: calc(50% - 4px);
    margin-right: calc(50% + 4px);
    /* 右半分を空けて、月・日を次の行へ */;
  }

  body#form .document-phase2 #confirmValid dd.birthdate-fields > label > select.form_selectbox {
    padding-left: 8px;
    font-size: 1.6rem !important;
    /* 180px（内側約130px）に「1900（明治33）」が収まる大きさ */;
  }

}

/* ---------- 年・性別・都道府県・郵便番号・住所入力ボタンを同じ幅に（PC 220px／タブレット 200px／SP は半分幅 calc(50% - 4px)・年だけ全幅・ユーザー指示 2026-09-09） ---------- */

@media screen and (min-width: 1024px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dd.sex-fields label.form_sex {
    width: 220px;
    max-width: none;
  }

}

@media screen and (min-width: 769px) and (max-width: 1023.98px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dd.sex-fields label.form_sex {
    width: 180px;
    max-width: none;
  }

}

@media screen and (max-width: 768.98px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dd.sex-fields {
    gap: 8px;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block dd.sex-fields label.form_sex {
    width: calc(50% - 4px);
    max-width: none;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block select#customerPrefecture {
    width: calc(50% - 4px);
    min-width: 0;
  }

  /* 郵便番号: 入力欄とボタンを横並び（半分ずつ）。ボタンの文字は2行まで許す */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .phase2-zip-row {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .phase2-zip-row input {
    flex: 0 0 calc(50% - 4px);
    width: calc(50% - 4px);
    max-width: none;
  }

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .phase2-zip-row button {
    flex: 0 0 calc(50% - 4px);
    width: calc(50% - 4px);
    min-height: 56px;
    padding: 4px 6px;
    font-size: 1.4rem;
    line-height: 1.3;
    white-space: normal;
    word-break: keep-all;
    /* 折り返しは <wbr>（「から」の後）だけ。幅が足りる時は1行 */;
  }

}

@media screen and (max-width: 359.98px) {
  /* 320px 幅では郵便番号の例（例：110-0015）が切れるため、文字と余白を少し詰める */

  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .phase2-zip-row input {
    padding: 0 8px;
    font-size: 1.6rem;
  }

}

/* ---------- 性別の「男性」「女性」は○印のすぐ右に左寄せ（なないろ公式に準拠・ユーザー指示 2026-09-09） ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block label.form_sex {
  justify-content: flex-start;
  padding-left: 44px;
  text-align: left;
}

/* ---------- 通話時間帯を電話番号入力欄の5px下に配置 ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime_box {
  /* 電話番号欄との間に1行分（ユーザー指示 2026-09-11） */
  margin-top: 24px;
}

/* ---------- 個人情報の取扱い: 本文の太字をやめる（reset.css の dt{font-weight:bold} を打ち消し・ユーザー指示 2026-09-11） ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-privacy-box .pri dt {
  font-weight: 400;
}

/* ---------- 同意チェックの代わりの案内文（ユーザー指示 2026-09-11） ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .phase2-consent-note {
  margin: 0 0 8px;
  text-align: center;
  color: var(--phase2-ink);
  font-size: 1.6rem;
  line-height: 1.6;
}

/* ---------- 時間帯の選択肢は短語なので折り返さない（PCは3列・ユーザー指示 2026-09-11） ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots .call-time-label {
  white-space: nowrap;
}

@media screen and (min-width: 1024px) {
  html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* ---------- 時間帯の見出しは旧フォームと同じ1行・太字なし（ユーザー指示 2026-09-11） ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .call-time-legend {
  /* 見出しと最初のチェックボックスの間は空けない（ユーザー指示 2026-09-11） */
  margin-bottom: 0;
  font-weight: 400;
}

/* ---------- 時間帯の選択肢も太字なし（ユーザー指示 2026-09-11） ---------- */

html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots > label.form_teltime,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots > label.form_teltime.is-selected,
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots > label.form_teltime:has(input:checked),
html.consultant-form-page.document-form--fixed-header .consultant-phase2.document-phase2 .form_block .teltime-grid--slots .call-time-label {
  font-weight: 400;
}
