/* メールフォームプロ（v4.3.6）用スタイル
   標準CSS（assets/mailformpro/statics/mailformpro.css）の後に読み込み、
   PIXEL LAB のダークテーマに上書きする。
   入力欄などフォーム本体のスタイルは style.css の .form / .row を使用 */

/* --- エラーメッセージ --- */
form#mailformpro div.mfp_err {
  margin: 6px 0 0;
  padding: 0;
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0.06em;
  color: var(--signal);
  background: none;
}

form#mailformpro div.mfp_err::before {
  content: "! ";
  font-weight: 700;
}

/* エラー時の入力欄 */
form#mailformpro .mfp_parent_error {
  border: 1px solid var(--signal);
  box-shadow: 0 0 14px rgba(191, 227, 255, 0.18);
}

form#mailformpro .problem {
  background-color: var(--ink);
}

/* ページ上部に出るエラー・警告 */
div#mfp_error,
div#mfp_warning {
  background: var(--ink);
  border: 1px solid var(--signal);
  border-radius: 0;
  color: var(--paper);
}

/* 標準CSSが付ける内部要素 */
div#mfp_hidden {
  position: absolute;
}

form#mailformpro label {
  margin: 0;
  white-space: normal;
}

/* --- 確認画面（オーバーレイ） --- */
div#mfp_overlay_background {
  background-color: #000;
}

div#mfp_overlay_inner {
  box-sizing: border-box;
  width: 720px;
  padding: clamp(20px, 4vw, 40px);
  background: var(--ink);
  color: var(--paper);
  border: 1px solid var(--dim);
  border-radius: 0;
  box-shadow: 0 0 40px rgba(191, 227, 255, 0.12);
}

div#mfp_phase_confirm h4 {
  margin: 0 0 24px;
  padding: 0;
  font-family: var(--heading);
  font-size: 28px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-align: left;
}

table#mfp_confirm_table {
  width: 100%;
  margin-bottom: 28px;
  border-collapse: collapse;
}

table#mfp_confirm_table tr,
table#mfp_confirm_table tr.mfp_colored,
table#mfp_confirm_table tr.mfp_achroma {
  background: none;
}

table#mfp_confirm_table tr th,
table#mfp_confirm_table tr td {
  padding: 16px 0;
  border-top: 1px solid var(--line);
  font-size: 15px;
  font-weight: 400;
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
  background: none;
}

table#mfp_confirm_table tr:last-child th,
table#mfp_confirm_table tr:last-child td {
  border-bottom: 1px solid var(--line);
}

table#mfp_confirm_table tr th {
  width: 9em;
  padding-right: 24px;
  font-family: var(--display);
  font-size: 14px;
  letter-spacing: 0.1em;
  color: var(--dim);
  white-space: nowrap;
}

/* --- ボタン --- */
div.mfp_buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  padding: 0;
  text-align: left;
}

div#mfp_overlay div.mfp_buttons button {
  padding: 14px 44px;
  font-family: var(--display);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.14em;
  color: var(--paper);
  background: var(--ink);
  border: 1px solid var(--paper);
  border-radius: 0;
  text-shadow: none;
  cursor: pointer;
}

div#mfp_overlay div.mfp_buttons button:hover {
  background: var(--paper);
  color: var(--ink);
}

div#mfp_overlay div.mfp_buttons button#mfp_button_cancel {
  border-color: var(--dim);
  color: var(--dim);
}

div#mfp_overlay div.mfp_buttons button#mfp_button_cancel:hover {
  border-color: var(--paper);
  color: var(--ink);
}

/* --- 送信中表示 --- */
div#mfp_loading_screen {
  background-color: #000;
  opacity: 0.7;
}

/* --- サンクスページの受付番号 --- */
div#mfp_thanks {
  padding: 0;
  font-family: var(--display);
  font-size: 16px;
  letter-spacing: 0.1em;
  text-align: left;
  color: var(--dim);
}

div#mfp_thanks strong {
  color: var(--paper);
}

@media (max-width: 640px) {
  table#mfp_confirm_table tr th,
  table#mfp_confirm_table tr td {
    display: block;
    width: auto;
  }

  table#mfp_confirm_table tr th {
    padding: 16px 0 0;
    border-bottom: 0;
  }

  table#mfp_confirm_table tr td {
    padding: 4px 0 16px;
    border-top: 0;
  }
}
