/* ============================================================
   申込フォーム(/entry/*) — テーマの .form_row 2カラムを土台に、不足分のみ追加。
   CSP script-src 'self' のため inline 不可 → 全てここ。
   ============================================================ */

.entry-page {
  font-size: 14px;
  line-height: 1.9;
  color: #2b3138;
}
.entry-page .sub-inner {
  max-width: 100%;
  margin: 0 auto;
}
.entry-page p.text-justify {
  font-size: clamp(0.85rem, 0.8rem + 0.25vw, 0.94rem);
  line-height: 1.6;
  margin-bottom: 1rem !important;
}

/* リキ指定:label は inline-block・下マージン詰め */
.entry-page label {
  display: inline-block;
  margin-bottom: -0.5rem;
}

/* フォーム名見出し */
.entry-form-name {
  font-size: clamp(1.25rem, 1.0rem + 1.1vw, 1.6rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  padding-bottom: 1em;
  margin: 0.5em 0 2rem;
  border-bottom: 1px solid #000;
  margin-bottom: 2rem !important;
}

/* ---------- フォーム行(テーマ2カラムの微調整) ---------- */
.entry-form .form_row {
  padding: 0.9rem 0;
  border-bottom: 1px solid #eef0f2;
  align-items: flex-start;   /* ラベルを上揃え=背の高い行でもバッジが中央落ちしない */
}
.entry-form .form_row p.form_label,
.entry-form .form_row p.form_body {
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
  font-size: 14px;
}
.entry-form .form_row p.form_label label,
.entry-form .form_row p.form_label .form-label-text {
  font-size: 14px;
}
/* グループ設問のラベルもテーマの<label>同様バッジ分の余白を確保 */
.entry-form .form_row p.form_label .form-label-text {
  display: block;
  padding-left: 60px;
  margin-bottom: 0;
  font-weight: bold;
}
.entry-form .form_row p.form_label .entry-note {
  display: block;
  padding-left: 60px;
  margin-top: 3px;
  font-size: 12px;
  font-weight: normal;
  color: #6b7280;
}
/* 必須／任意バッジをラベル1行目に合わせる(縦ズレ解消) */
.entry-form .form_row p.form_label.is-required::after,
.entry-form .form_row p.form_label::after {
  top: 0.6rem;
  line-height: 1.5;
}

/* 入力欄 */
.entry-form .form_body input[type="text"],
.entry-form .form_body input[type="email"],
.entry-form .form_body input[type="tel"],
.entry-form .form_body textarea {
  font-size: 15px;
  line-height: 1.6;
  border: 1px solid #cfd5db;
  border-radius: 6px;
  padding: 9px 12px;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.entry-form .form_body input:focus,
.entry-form .form_body textarea:focus {
  outline: none;
  border-color: #2f6b4f;
  box-shadow: 0 0 0 3px rgba(47, 107, 79, 0.13);
}
.entry-form .form_body ::placeholder { color: #9aa3ac; }

/* 選択肢:radio は折り返し・checkbox は縦積み */
.entry-choices { display: block; }
.entry-choices .mwform-radio-field {
  display: inline-block;
  margin: 0 1.6em 0.5em 0;
}
.entry-choices .mwform-radio-field label,
.entry-form .form_body .mwform-checkbox-field label {
  width: auto;
  cursor: pointer;
  margin-bottom: 0;
}
.entry-choices .mwform-checkbox-field { display: block; }
.entry-form .form_body .mwform-checkbox-field label { padding: 7px 0; }
.mwform-radio-field-text,
.entry-choices .mwform-checkbox-field-text { font-size: 14px; }

/* チェックボックス／ラジオはブラウザ標準のまま(全て・プライバシー含む) */
.entry-form input[type="radio"],
.entry-form input[type="checkbox"] {
  -webkit-appearance: auto;
  appearance: auto;
  width: 15px;
  height: 15px;
  min-width: 15px;
  margin: 0 8px 0 0;
  accent-color: auto;
  transform: none;
  box-shadow: none;
  background: none;
  border: none;
  flex: 0 0 auto;
}
/* テーマが付ける独自チェック装飾(擬似要素)を無効化 */
.entry-form label::before,
.entry-form label::after { content: none !important; }
.entry-form input[type="checkbox"]::before,
.entry-form input[type="checkbox"]::after {
  content: none !important;
  display: none !important;
}

/* 条件付き設問(親の回答で表示・JS無効時は表示のまま) */
.form_row.entry-conditional.is-hidden { display: none !important; }

/* エラー */
.entry-field-error {
  display: block;
  color: #b42318;
  font-size: 13px;
  margin-top: 6px;
}
.entry-alert {
  border: 1px solid #f0c8c4;
  background: #fdf3f2;
  color: #b42318;
  border-radius: 8px;
  padding: 1em 1.2em;
  margin: 1.2em 0;
  font-size: 14px;
}
.entry-alert ul { margin: 0.4em 0 0; padding-left: 1.4em; }

/* ---------- 確認画面 ---------- */
.entry-confirm-list {
  margin: 1.4em 0 1.8em;
  border: 1px solid #e3e6ea;
  border-radius: 8px;
  overflow: hidden;
}
.entry-confirm-row {
  display: flex;
  gap: 1em;
  margin: 0;
  padding: 0.85em 1.2em;
  font-size: 14px;
}
.entry-confirm-row + .entry-confirm-row { border-top: 1px solid #eef0f2; }
.entry-confirm-row dt { flex: 0 0 14em; font-weight: 600; color: #5b6570; }
.entry-confirm-row dd { flex: 1 1 auto; margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }

/* ---------- ボタン(入力の送信・確認の2ボタン共通) ---------- */
.entry-form .row-submit .submit-btn,
.entry-actions {
  display: flex;
  gap: 20px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}
.entry-actions .submit-btn { display: block; }
.entry-form .submit-btn input[type="submit"],
.entry-actions .submit-btn input[type="submit"] {
  width: auto;
  min-width: 40vw;
  max-width: 100%;
  margin: 0;
  padding: 1em 2.4em;
  font-size: clamp(0.9rem, 0.85rem + 0.2vw, 0.95rem);
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #fff;
  background-color: #2f7d4f;
  background-image: none;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: background-color 0.2s ease, opacity 0.2s ease;
}
.entry-form .submit-btn input[type="submit"]:hover,
.entry-actions .submit-btn input[type="submit"]:hover {
  background-color: #276b43;
  opacity: 1;
}
/* 「入力画面へ戻る」= サブ(白地グレー枠) */
.entry-actions .submit-btn input[type="submit"].back {
  background-color: #fff;
  color: #4b5560;
  border: 1px solid #cfd5db;
}
.entry-actions .submit-btn input[type="submit"].back:hover {
  background-color: #f4f6f7;
}
.entry-form .submit-btn input[type="submit"]:disabled,
.entry-actions .submit-btn input[type="submit"]:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

/* ---------- 完了画面 ---------- */
.entry-complete { text-align: center; }
.entry-complete-mark {
  width: 56px; height: 56px;
  margin: 0.5em auto 1.2em;
  border: 2px solid #2f6b4f; border-radius: 50%;
  position: relative;
}
.entry-complete-mark::after {
  content: ""; position: absolute; left: 19px; top: 13px;
  width: 15px; height: 25px;
  border-right: 3px solid #2f6b4f; border-bottom: 3px solid #2f6b4f;
  transform: rotate(42deg);
}
.entry-ref-box {
  display: inline-block; margin: 1.4em auto;
  padding: 0.9em 2.2em;
  border: 1px dashed #c3cbd2; border-radius: 8px; background: #f7f8f9;
}
.entry-ref-label { font-size: 13px; color: #5b6570; margin: 0 0 0.3em; letter-spacing: 0.08em; }
.entry-ref-number {
  font-size: 22px; font-weight: 700; letter-spacing: 0.08em; margin: 0;
  font-family: "SFMono-Regular", Consolas, Menlo, monospace;
}
.entry-complete-note { font-size: 14px; color: #5b6570; }
.entry-complete-contact { font-size: 14px; font-weight: 600; }

/* ---------- 受付停止 ---------- */
.entry-closed-box {
  margin: 1.6em 0; padding: 1.5em 1.4em; text-align: center;
  border: 1px solid #e3e6ea; border-radius: 8px; background: #f7f8f9;
}
.entry-closed-message { margin: 0; font-weight: 600; }

/* リキ指定:送信行の余白調整 */
@media (min-width: 576px) {
  .pt-sm-5, .py-sm-5 {
    padding-top: 1rem !important;
    padding-bottom: 3rem !important;
  }
}

/* ---------- SP ---------- */
@media screen and (max-width: 992px) {
  .entry-form .form_row p.form_label .form-label-text,
  .entry-form .form_row p.form_label .entry-note { padding-left: 60px; }
}
@media screen and (max-width: 767px) {
  .entry-page { font-size: 14px; }
  .entry-form .form_body input[type="text"],
  .entry-form .form_body input[type="email"],
  .entry-form .form_body input[type="tel"],
  .entry-form .form_body textarea { font-size: 16px; }
  .entry-confirm-row { flex-direction: column; gap: 0.15em; }
  .entry-confirm-row dt { flex: none; }
  .entry-actions { flex-direction: column-reverse; gap: 12px; }
  .entry-form .row-submit .submit-btn,
  .entry-actions .submit-btn { width: 100%; }
  .entry-form .submit-btn input[type="submit"],
  .entry-actions .submit-btn input[type="submit"] { width: 100%; min-width: 0; }
}
