/* =========================================================
   Entry page font fix (iOS対策)
========================================================= */
body.wl-entry-page {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Helvetica Neue",
    "Hiragino Sans",
    "Hiragino Kaku Gothic ProN",
    "Noto Sans JP",
    "Yu Gothic",
    "Meiryo",
    Arial,
    sans-serif;
}

/* =========================
   Entry page scope
========================= */
body.wl-entry-page .wl-entry{
  max-width: 920px;
  margin: 0 auto;
  padding: 40px 20px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

/* =========================
   CF7 Recruit Form Layout (match your HTML)
========================= */
body.wl-entry-page .wl-formRow{
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 18px;
  padding: 18px 0;
  border-bottom: 1px solid #e7e7e7;
}

body.wl-entry-page .wl-formLabel{
  font-weight: 700;
  color: #123a63;
  line-height: 1.5;
}

body.wl-entry-page .wl-formLabel small{
  display: block;
  margin-top: 6px;
  font-weight: 400;
  color: #666;
}

body.wl-entry-page .wl-req{
  display: inline-block;
  margin-left: 10px;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  background: #d4a11e;
  color: #fff;
  vertical-align: middle;
}

body.wl-entry-page .wl-formField input,
body.wl-entry-page .wl-formField textarea,
body.wl-entry-page .wl-formField select{
  width: 100%;
  border: 1px solid #d9d9d9;
  border-radius: 10px;
  padding: 12px 14px;
  font-size: 16px;
  line-height: 1.6;
  background: #fff;
}

body.wl-entry-page .wl-formField textarea{
  min-height: 150px;
  resize: vertical;
}

/* 2カラム（姓/名、セイ/メイ） */
body.wl-entry-page .wl-formField--2col{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 14px;
}

body.wl-entry-page .wl-subLabel{
  display: block;
  font-size: 12px;
  color: #666;
  margin-bottom: 6px;
}

/* 短い入力（電話など） */
body.wl-entry-page .wl-formField--short{
  max-width: 360px;
}

/* 住所：郵便番号行 */
body.wl-entry-page .wl-addressGrid{
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 12px 14px;
  align-items: start;
  margin-bottom: 12px;
}

body.wl-entry-page .wl-zipBtn{
  display: inline-block;
  border: 1px solid #cfcfcf;
  background: #f4f4f4;
  border-radius: 10px;
  padding: 10px 14px;
  cursor: pointer;
}

body.wl-entry-page .wl-note{
  display: block;
  margin-top: 6px;
  font-size: 12px;
  color: #666;
}

/* 生年月日 */
body.wl-entry-page .wl-formField--birth{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
body.wl-entry-page .wl-formField--birth select{
  width: auto;
  min-width: 140px;
}

/* 同意・送信 */
body.wl-entry-page .wl-consent{
  margin-top: 18px;
  font-size: 14px;
}
body.wl-entry-page .wl-submit{
  margin-top: 44px;
  text-align: center;
}
body.wl-entry-page .wl-submit .cta-btn{
  width: min(420px, 100%);
}

/* CF7エラー */
body.wl-entry-page .wpcf7-not-valid-tip{
  margin-top: 8px;
  font-size: 13px;
}
body.wl-entry-page .wpcf7 form .wpcf7-response-output{
  margin: 18px 0 0;
}

/* SP */
@media (max-width: 767px){
  body.wl-entry-page .wl-formRow{
    grid-template-columns: 1fr;
    gap: 10px;
  }
  body.wl-entry-page .wl-formField--2col{
    grid-template-columns: 1fr;
  }
  body.wl-entry-page .wl-addressGrid{
    grid-template-columns: 1fr;
  }
}


/* =========================================================
   CF7 Radio -> Button UI
   対象: [radio ... use_label_element]
========================================================= */

/* CF7のラジオ一式（span.wpcf7-form-control-wrap の中に入る想定） */
.wpcf7-form .wpcf7-radio{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 6px 0 0;
}

/* CF7は label.wpcf7-list-item-label ではなく
   label内に input と span.wpcf7-list-item-label を生成します */
.wpcf7-form .wpcf7-radio .wpcf7-list-item{
  margin: 0; /* CF7のデフォルト余白を消す */
}

/* labelをボタンの見た目にする */
.wpcf7-form .wpcf7-radio .wpcf7-list-item > label{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;

  /* ボタン形状 */
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid #d8dde5;
  border-radius: 8px;
  background: #fff;

  /* 文字 */
  font-size: 14px;
  font-weight: 600;
  color: #223;

  /* 動き */
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, color .18s ease;
  cursor: pointer;
  user-select: none;
}

/* ラジオ本体は見えなくする（アクセシビリティは保持） */
.wpcf7-form .wpcf7-radio input[type="radio"]{
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}

/* 未選択時の「丸ぽち」代わりの小アイコン */
.wpcf7-form .wpcf7-radio .wpcf7-list-item > label::before{
  content: "";
  width: 14px;
  height: 14px;
  border-radius: 999px;
  border: 2px solid #c6ccd6;
  background: #fff;
  box-sizing: border-box;
}

/* hover */
.wpcf7-form .wpcf7-radio .wpcf7-list-item > label:hover{
  border-color: #b8c1cf;
  box-shadow: 0 4px 12px rgba(0,0,0,.06);
}

/* 選択状態（重要） */
.wpcf7-form .wpcf7-radio input[type="radio"]:checked + .wpcf7-list-item-label{
  color: #0b2a5b; /* 文字色（必要なら調整OK） */
}

/* 選択状態：ボタン背景・枠 */
.wpcf7-form .wpcf7-radio input[type="radio"]:checked{
  /* 何も書かなくてOK（条件用） */
}

.wpcf7-form .wpcf7-radio input[type="radio"]:checked + .wpcf7-list-item-label{
  /* ラベル文字は上で色指定 */
}

/* 選択状態：label全体をハイライトしたいので label に当てる */
.wpcf7-form .wpcf7-radio .wpcf7-list-item > label:has(input[type="radio"]:checked){
  border-color: #2f6fec;
  background: rgba(47,111,236,.08);
  box-shadow: 0 6px 16px rgba(47,111,236,.14);
}

/* 選択状態：丸アイコンも塗る */
.wpcf7-form .wpcf7-radio .wpcf7-list-item > label:has(input[type="radio"]:checked)::before{
  border-color: #2f6fec;
  background: #2f6fec;
  box-shadow: inset 0 0 0 3px #fff;
}

/* キーボードフォーカス（Tab移動対応） */
.wpcf7-form .wpcf7-radio .wpcf7-list-item > label:has(input[type="radio"]:focus-visible){
  outline: 3px solid rgba(47,111,236,.25);
  outline-offset: 2px;
}

/* =========================================================
   SP: 縦並び寄り（押しやすい）
========================================================= */
@media (max-width: 767px){
  .wpcf7-form .wpcf7-radio{
    gap: 10px;
  }
  .wpcf7-form .wpcf7-radio .wpcf7-list-item > label{
    width: 100%;
    justify-content: flex-start;
    padding: 12px 14px;
  }
}

/* 個人情報保護方針：スクロール枠 */
.wl-privacyScroll{
  max-height: 220px;      /* ← ここで表示範囲を固定（参考画像に近い） */
  overflow-y: auto;       /* 縦スクロール */
  padding: 16px;
  border: 1px solid #ddd;
  background: #fff;
  -webkit-overflow-scrolling: touch; /* iOSで慣性スクロール */
}

/* 見出しなどの余白を整えて読みやすく */
.wl-privacyBox{
  margin-top: 24px;
}

.wl-privacyTitle{
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 12px;
}

.wl-privacyScroll{
  max-height: 220px;      /* PCの目安。必要なら 180〜280 で調整 */
  overflow-y: auto;
  padding: 16px 18px;
  border: 1px solid #e3e3e3;
  background: #fff;
  border-radius: 6px;
  -webkit-overflow-scrolling: touch;
}

/* policy.php 側の中身（.wl-privacyPolicy）を整形 */
.wl-privacyPolicy{
  font-size: 13px;
  line-height: 1.8;
  color: #333;
}

.wl-privacyPolicy h3{
  font-size: 14px;
  margin: 14px 0 8px;
}

.wl-privacyPolicy p{
  margin: 0 0 10px;
}

.wl-privacyPolicy ul{
  margin: 0 0 10px 1.2em;
  padding: 0;
}

/* =========================================================
   Entry form tweaks (7 points)
   ※ entry.css の一番下に追記
========================================================= */

/* ---------------------------------------------------------
  共通：幅計算ズレ（姓名が被る）の根本対策
  → input/select/textarea を border-box にする
--------------------------------------------------------- */
body.wl-entry-page .wl-formField input,
body.wl-entry-page .wl-formField textarea,
body.wl-entry-page .wl-formField select{
  box-sizing: border-box;
}

/* 2カラムの中で子要素が縮められず溢れる問題を防ぐ */
body.wl-entry-page .wl-formField--2col,
body.wl-entry-page .wl-formField--2col > *{
  min-width: 0;
}

/* ---------------------------------------------------------
  1) タイトル＋リード文をセンター揃い
--------------------------------------------------------- */
body.wl-entry-page .wl-entry__title,
body.wl-entry-page .wl-entry__lead{
	text-align: center;
	line-height: 2em;
}

body.wl-entry-page .wl-entry__lead{
  margin-left: auto;
  margin-right: auto;
  max-width: 720px; /* 長文でも読みやすく */
}

/* ---------------------------------------------------------
  2) お名前（姓名）が被る → 1:1で均等＆崩れにくく
  ※すでに1fr 1fr なので、上の border-box/min-width が主な効き
  追加で gap と列を明示
--------------------------------------------------------- */
body.wl-entry-page .wl-formField--2col{
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 14px;
}

/* ---------------------------------------------------------
  3) 郵便番号入力の右に「郵便番号検索」ボタンを横並びで揃える
--------------------------------------------------------- */
body.wl-entry-page .wl-addressGrid{
  grid-template-columns: 220px auto; /* 右はボタン幅ぶん */
  align-items: end;                  /* 入力の下端に揃える */
}

body.wl-entry-page .wl-addressBtn{
  justify-self: start; /* 右列の左側に寄せる */
}

body.wl-entry-page .wl-zipBtn{
  min-height: 48px;       /* 入力と高さを揃えやすい */
  padding: 10px 18px;
  white-space: nowrap;    /* ボタン文字折返し防止 */
}

/* SPでは縦積み */
@media (max-width: 767px){
  body.wl-entry-page .wl-addressGrid{
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  body.wl-entry-page .wl-addressBtn{
    justify-self: stretch;
  }
  body.wl-entry-page .wl-zipBtn{
    width: 100%;
  }
}

/* ---------------------------------------------------------
  4) ラジオ：丸ボタンを非表示＆文字をボタン枠の真ん中へ
  ※既存の radio→button UI を上書き
--------------------------------------------------------- */
.wpcf7-form .wpcf7-radio .wpcf7-list-item > label{
  justify-content: center; /* 常に中央 */
  gap: 0;                  /* 丸を消すので隙間も不要 */
}

/* 既存の丸アイコンを完全に無効化 */
.wpcf7-form .wpcf7-radio .wpcf7-list-item > label::before{
  content: none !important;
  display: none !important;
}

/* SP時に左寄せにしていたのを中央に戻す */
@media (max-width: 767px){
  .wpcf7-form .wpcf7-radio .wpcf7-list-item > label{
    width: 100%;
    justify-content: center;
  }
}

/* ---------------------------------------------------------
  5) 生年月日：年・月・日を横並び（CF7のwrapが幅100%になりがち対策）
--------------------------------------------------------- */
body.wl-entry-page .wl-formField--birth{
  display: flex;
  flex-wrap: nowrap !important;      /* 横並び固定 */
  gap: 10px;
  align-items: center;
}

/* CF7の各selectを包む span を横並びのままにする */
body.wl-entry-page .wl-formField--birth .wpcf7-form-control-wrap{
  flex: 0 0 auto;
}

body.wl-entry-page .wl-formField--birth select{
  width: auto;
  min-width: 140px;
}

/* SPは必要なら折り返しOK（押しやすさ優先） */
@media (max-width: 767px){
  body.wl-entry-page .wl-formField--birth{
		flex-wrap: wrap;
  }
  body.wl-entry-page .wl-formField--birth select{
    min-width: 120px;
  }
}

/* ---------------------------------------------------------
  6) 同意チェックをセンター配置＋送信ボタンを参考サイト風に
--------------------------------------------------------- */
body.wl-entry-page .wl-consent{
  text-align: center;
}

body.wl-entry-page .wl-submit{
  text-align: center;
}

/* acceptance の生成要素を中央寄せ */
body.wl-entry-page .wl-consent .wpcf7-form-control-wrap{
  display: flex;
  justify-content: center;
}

/* チェック行の見た目 */
body.wl-entry-page .wl-consent label{
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

/* 送信ボタン装飾（参考サイトっぽい“しっかりCTA”） */
body.wl-entry-page .wl-submit .cta-btn{
  appearance: none;
  border: none;
  border-radius: 10px;
  padding: 14px 18px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;

  background: #2f6fec;  /* メイン */
  color: #fff;

  box-shadow: 0 10px 24px rgba(47,111,236,.22);
  transition: transform .12s ease, box-shadow .12s ease, opacity .12s ease;
}

body.wl-entry-page .wl-submit .cta-btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(47,111,236,.26);
}

body.wl-entry-page .wl-submit .cta-btn:active{
  transform: translateY(0);
  box-shadow: 0 8px 18px rgba(47,111,236,.20);
}

/* 送信中・無効時（CF7がdisabledを付ける想定） */
body.wl-entry-page .wl-submit .cta-btn:disabled{
  opacity: .45;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

/* ---------------------------------------------------------
  7) 入力エラー（赤文字）は「ボタン押下後」だけ表示
  → CF7は送信を試みて失敗すると form に .invalid が付く
--------------------------------------------------------- */
body.wl-entry-page .wpcf7 form:not(.invalid) .wpcf7-not-valid-tip{
  display: none;
}

/* ついでにレスポンス枠も押下後だけ出す（任意） */
body.wl-entry-page .wpcf7 form:not(.invalid) .wpcf7-response-output{
  display: none;
}

/* =========================================================
   FIX: 生年月日（CF7が<p>と<br>を吐く対策）
========================================================= */

/* CF7が吐く<p>を横並びのflexコンテナにする */
body.wl-entry-page .wl-formField--birth > p{
  display: flex;
  flex-wrap: nowrap;  /* 横並び固定 */
  gap: 10px;
  align-items: center;
  margin: 0;          /* CF7のp余白を消す */
}

/* CF7が挟む<br>が強制改行の犯人なので消す */
body.wl-entry-page .wl-formField--birth br{
  display: none !important;
}

/* wrap(span)がblockで幅100%にならないように */
body.wl-entry-page .wl-formField--birth .wpcf7-form-control-wrap{
  display: inline-block;
  flex: 0 0 auto;
}

/* selectの幅 */
body.wl-entry-page .wl-formField--birth select{
  width: auto;
  min-width: 140px;
}

/* SPは折返しOK（押しやすさ優先） */
@media (max-width: 767px){
  body.wl-entry-page .wl-formField--birth > p{
    flex-wrap: wrap;
  }
  body.wl-entry-page .wl-formField--birth select{
    min-width: 120px;
  }
}

/* =========================================================
   Submit button alignment fix
   848px以下で左にズレる問題を確実に止める
========================================================= */
body.wl-entry-page .wl-submit{
  text-align: center; /* 残してOK */
}

body.wl-entry-page .wl-submit .cta-btn{
  display: block;            /* ← これが重要 */
  margin-left: auto;         /* ← これが重要 */
  margin-right: auto;        /* ← これが重要 */
  max-width: 600px;          /* min()をやめてこっちで管理すると安定 */
  width: 100%;
}

/* =========================================================
   SP only: Radio & Birth layout (vertical)
========================================================= */
@media (max-width: 767px){

  /* ---------------------------------
     ラジオボタン：縦並び（1列）
  --------------------------------- */
  body.wl-entry-page .wpcf7-form .wpcf7-radio{
    flex-direction: column;   /* 横 → 縦 */
    gap: 12px;
  }

  body.wl-entry-page .wpcf7-form .wpcf7-radio .wpcf7-list-item > label{
    width: 100%;              /* ボタンを横幅いっぱい */
    justify-content: center;  /* 文字は中央 */
  }

  /* ---------------------------------
     生年月日：年 / 月 / 日 を縦並び
  --------------------------------- */
	
/* wrap(span)がblockで幅100%にならないように */
body.wl-entry-page .wl-formField--birth .wpcf7-form-control-wrap{
    width: 100%;
}
	
  body.wl-entry-page .wl-formField--birth > p{
    /*flex-direction: column;   /* 横 → 縦 */
	align-items: stretch;     /* selectを幅いっぱい */
    gap: 10px;
  }

  body.wl-entry-page .wl-formField--birth select{
    width: 100%;
    min-width: 0;             /* PC用min-widthを解除 */
  }
}

/* =========================================================
   FIX: Radio label overflow (SP only)
========================================================= */
@media (max-width: 767px){

  /* ラジオ1項目（span）をレイアウトの基準にする */
  body.wl-entry-page .wpcf7-form .wpcf7-radio .wpcf7-list-item{
    display: block;          /* flex子でもOKだが blockが安全 */
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;        /* ← はみ出し防止の要 */
  }

  /* labelは必ずこの中に収める */
  body.wl-entry-page .wpcf7-form .wpcf7-radio .wpcf7-list-item > label{
    width: 100%;
    box-sizing: border-box;
    margin: 0;               /* CF7デフォルト対策 */
  }
	
  body.wl-entry-page .wl-entry__title{
  	font-size: 1.6rem;
  }		
  body.wl-entry-page .wl-entry__lead{
	font-size: 0.8rem;
	padding: 0 20px;
  }

}

/* =========================================================
   Entry page: Top logo area
========================================================= */
body.wl-entry-page .wl-entryTop{
  padding: 28px 20px 10px;
}

body.wl-entry-page .wl-entryTop__inner{
  max-width: 920px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
}

body.wl-entry-page .wl-entryTop__logo img{
  display: block;
  height: 80px;       /* ここでロゴサイズ調整 */
  width: auto;
}
@media (max-width: 767px){
  body.wl-entry-page .wl-entryTop{
    padding: 20px 16px 6px;
  }
  body.wl-entry-page .wl-entryTop__logo img{
    height: 38px;
  }
}

/* =========================================================
   FIX: Footer（LPページだけ共通フッターを整える）
========================================================= */

/* LPページのフッター全体 */
body.wl-lp footer,
body.wl-lp .siteFooter,
body.wl-lp .globalFooter{
  background: #000000;          /* CTAの濃紺に寄せる（お好みで） */
  color: #ffffff;
}

/* フッター内の文字 */
body.wl-lp footer *,
body.wl-lp .siteFooter *,
body.wl-lp .globalFooter *{
  color: #ffffff !important;
}

/* フッター上の余白（“消えた感”をなくす） */
body.wl-lp footer,
body.wl-lp .siteFooter,
body.wl-lp .globalFooter{
  padding-top: 40px;
  padding-bottom: 40px;
  text-align: center;
}

/* コピーライトの位置・余白 */
body.wl-lp footer .copy,
body.wl-lp .siteFooter .copy,
body.wl-lp .globalFooter .copy,
body.wl-lp footer small,
body.wl-lp .siteFooter small,
body.wl-lp .globalFooter small{
  display: block;
  text-align: center;
  opacity: .9;
  font-size: 13px;
  line-height: 1.6;
}

/* フッター内リンク（下線・hover） */
body.wl-lp footer a,
body.wl-lp .siteFooter a,
body.wl-lp .globalFooter a{
  text-decoration: none;
  opacity: .95;
}
body.wl-lp footer a:hover,
body.wl-lp .siteFooter a:hover,
body.wl-lp .globalFooter a:hover{
  opacity: 1;
  text-decoration: underline;
}

@media (max-width: 767px){
  body.wl-lp .wl-footer p {
    font-size: 0.6rem;
  }
}

/* =========================================================
   郵便番号検索ボタン：7桁でアクティブ / それ以外は非アクティブ
========================================================= */
body.wl-entry-page .wl-zipBtn{
  background: #f4f4f4;
  color: #666;
  border: 1px solid #cfcfcf;
  opacity: .6;
  cursor: not-allowed;
  transition: background .15s ease, color .15s ease, opacity .15s ease, transform .15s ease;
}

/* 7桁入力でアクティブ（黒） */
body.wl-entry-page .wl-zipBtn.is-active{
  background: #111;
  color: #fff;
  border-color: #111;
  opacity: 1;
  cursor: pointer;
}

body.wl-entry-page .wl-zipBtn.is-active:hover{
  transform: translateY(-1px);
}

/* ローディング中 */
body.wl-entry-page .wl-zipBtn.is-loading{
  opacity: .75;
  cursor: wait;
}

/* =========================================================
   Zip Modal（検索エラーのポップアップ）
========================================================= */
#wlZipModal{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
}

#wlZipModal.is-open{
  display: block;
}

#wlZipModal .wlZipModal__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.45);
}

#wlZipModal .wlZipModal__panel{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(560px, calc(100% - 32px));
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 18px 45px rgba(0,0,0,.25);
  padding: 24px 22px 18px;
}

#wlZipModal .wlZipModal__close{
  position: absolute;
  right: 10px;
  top: 10px;
  width: 38px;
  height: 38px;
  border: none;
  background: transparent;
  font-size: 22px;
  cursor: pointer;
}

#wlZipModal .wlZipModal__title{
  margin: 0 0 12px;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
}

#wlZipModal .wlZipModal__text{
  margin: 0 0 16px;
  font-size: 15px;
  line-height: 1.8;
  text-align: center;
  color: #333;
}

#wlZipModal .wlZipModal__btn{
  display: block;
  width: min(260px, 100%);
  margin: 0 auto;
  border: 1px solid #ddd;
  background: #fff;
  border-radius: 999px;
  padding: 12px 14px;
  font-weight: 700;
  cursor: pointer;
}

/* =========================================================
   Entry Confirm / Error Modal
========================================================= */

/* 背景スクロール停止 */
html.wl-modal-lock,
html.wl-modal-lock body{
  overflow: hidden;
}

/* Modal root */
#wlEntryModal{
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: none;
}
#wlEntryModal.is-open{
  display: block;
}

/* backdrop */
#wlEntryModal .wlEntryModal__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
}

/* panel */
#wlEntryModal .wlEntryModal__panel{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(860px, calc(100% - 32px));
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 20px 55px rgba(0,0,0,.28);
  padding: 28px 26px 22px;
  display: none;
}

/* 表示切替 */
#wlEntryModal.is-open[data-type="error"] .wlEntryModal__panel--error{
  display: block;
}
#wlEntryModal.is-open[data-type="confirm"] .wlEntryModal__panel--confirm{
  display: block;
}

/* close */
#wlEntryModal .wlEntryModal__close{
  position: absolute;
  right: 12px;
  top: 12px;
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  font-size: 24px;
  cursor: pointer;
}

/* title / text */
#wlEntryModal .wlEntryModal__title{
  margin: 0 0 10px;
  font-size: 20px;
  font-weight: 800;
  text-align: center;
}
#wlEntryModal .wlEntryModal__text{
  margin: 0 0 16px;
  font-size: 14px;
  line-height: 1.8;
  color: #333;
  text-align: center;
}

/* error button */
#wlEntryModal .wlEntryModal__btn{
  display: block;
  width: min(240px, 100%);
  margin: 0 auto;
  border: 1px solid #ddd;
  background: #fff;
  border-radius: 999px;
  padding: 12px 14px;
  font-weight: 700;
  cursor: pointer;
}

/* confirm table */
#wlEntryModal .wlEntryModal__tableWrap{
  max-height: min(50vh, 420px);
  overflow: auto;
  border: 1px solid #eee;
  border-radius: 12px;
  margin: 14px 0 18px;
}
#wlEntryModal .wlEntryModal__table{
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
#wlEntryModal .wlEntryModal__table th,
#wlEntryModal .wlEntryModal__table td{
  padding: 10px 12px;
  border-bottom: 1px solid #f0f0f0;
  vertical-align: top;
}
#wlEntryModal .wlEntryModal__table th{
  width: 32%;
  background: #fafafa;
  font-weight: 700;
  color: #333;
}

/* actions */
#wlEntryModal .wlEntryModal__actions{
  display: flex;
  gap: 14px;
  justify-content: center;
  align-items: center;
}
#wlEntryModal .wlEntryModal__action{
  width: min(280px, 100%);
  border-radius: 999px;
  padding: 12px 18px;
  font-weight: 800;
  cursor: pointer;
}
#wlEntryModal .wlEntryModal__action--back{
  border: 1px solid #ddd;
  background: #fff;
}
#wlEntryModal .wlEntryModal__action--send{
  border: none;
  background: #8a6b4f;  /* 参考画像の茶系に寄せる。必要なら変更OK */
  color: #fff;
}

/* SP */
@media (max-width: 767px){
  #wlEntryModal .wlEntryModal__panel{
    padding: 22px 18px 18px;
  }
  #wlEntryModal .wlEntryModal__actions{
    flex-direction: column;
  }
  #wlEntryModal .wlEntryModal__action{
    width: 100%;
  }
}

.wl-hidden-submit{
  display:none !important;
}

/* CF7 標準の下部メッセージを非表示 */
.wl-entry-page .wpcf7-response-output{
  display:none !important;
}

.wl-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
}

.wl-modal.is-open {
  display: block;
}

.wl-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.6);
}

.wl-modal__box {
  position: relative;
  max-width: 640px;
  margin: 10vh auto;
  background: #fff;
  border-radius: 12px;
  padding: 32px;
}

/* 初期は両方非表示 */
.wl-modal__content {
  display: none;
}

/* JSで type を切り替える */
.wl-modal[data-type="error"] .wl-modal--error,
.wl-modal[data-type="confirm"] .wl-modal--confirm {
  display: block;
}

/* 確認ボタン：同意前は非アクティブ */
body.wl-entry-page #wlConfirmBtn:disabled,
body.wl-entry-page #wlConfirmBtn.is-disabled{
  opacity: .45;
  cursor: not-allowed;
  transform: none !important;
  box-shadow: none !important;
}

/* =========================================================
   Modal styling (ref-like) + scroll lock
========================================================= */

/* 背景スクロールロック（開いてる間だけ） */
html.wl-modal-lock{
  overflow: hidden;
}
html.wl-modal-lock body{
  position: fixed;
  width: 100%;
  overflow: hidden;
}

/* Modal base */
#wEntryModal,
#wlEntryModal{
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: none;
}
#wlEntryModal.is-open{
  display: block;
}

#wlEntryModal .wl-modal__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
}

/* panel */
#wlEntryModal .wl-modal__box{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(760px, calc(100% - 32px));
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 22px 60px rgba(0,0,0,.28);
  padding: 26px 26px 22px;
}

/* close x */
#wlEntryModal .wl-modal__x{
  position: absolute;
  right: 10px;
  top: 10px;
  width: 42px;
  height: 42px;
  border: none;
  background: transparent;
  font-size: 24px;
  cursor: pointer;
  line-height: 1;
}

/* title/text */
#wlEntryModal .wl-modal__title{
  margin: 0 0 12px;
  font-size: 20px;
  font-weight: 800;
  text-align: center;
  color: #222;
}
#wlEntryModal .wl-modal__text{
  margin: 0 0 16px;
  font-size: 14px;
  line-height: 1.9;
  text-align: center;
  color: #333;
}

/* content switch */
#wlEntryModal .wl-modal__content{ display:none; }
#wlEntryModal.is-open[data-type="error"] .wl-modal--error{ display:block; }
#wlEntryModal.is-open[data-type="confirm"] .wl-modal--confirm{ display:block; }

/* confirm table */
#wlEntryModal .wl-confirmTableWrap{
  max-height: min(54vh, 420px);
  overflow: auto;
  border: 1px solid #eee;
  border-radius: 12px;
  margin: 14px 0 18px;
}
#wlEntryModal .wl-confirmTable{
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
#wlEntryModal .wl-confirmTable th,
#wlEntryModal .wl-confirmTable td{
  padding: 10px 12px;
  border-bottom: 1px solid #f2f2f2;
  vertical-align: top;
}
#wlEntryModal .wl-confirmTable th{
  width: 32%;
  background: #fafafa;
  font-weight: 700;
  color: #333;
}

/* actions */
#wlEntryModal .wl-modal__actions{
  display: flex;
  gap: 12px;
  justify-content: center;
}
#wlEntryModal .wl-modal__btn{
  width: min(280px, 100%);
  border-radius: 999px;
  padding: 12px 18px;
  font-weight: 800;
  cursor: pointer;
}

#wlEntryModal .wl-modal__btn.is-back{
  border: 1px solid #ddd;
  background: #fff;
}

#wlEntryModal .wl-modal__btn.is-submit{
  border: none;
  background: #8a6b4f; /* 参考画像の茶系寄せ（変更OK） */
  color: #fff;
}

/* error close button */
#wlEntryModal .wl-modal--error .wl-modal__btn{
  display: block;
  margin: 0 auto;
  border: 1px solid #ddd;
  background: #fff;
}

/* SP */
@media (max-width: 767px){
  #wlEntryModal .wl-modal__box{
    padding: 22px 18px 18px;
  }
  #wlEntryModal .wl-modal__actions{
    flex-direction: column;
  }
  #wlEntryModal .wl-modal__btn{
    width: 100%;
  }
}

/* =========================================================
   Confirm button: text vertical centering
========================================================= */
body.wl-entry-page #wlConfirmBtn{
  display: inline-flex;        /* ← 重要 */
  align-items: center;         /* 縦中央 */
  justify-content: center;     /* 横中央 */
}

/* ===============================
   Footer
================================ */
.wl-footer{
  padding: 40px 0 24px;
  text-align: center;
}

.wl-footer__logo{
  margin-bottom: 16px;
}

.wl-footer__logo img{
  max-width: 200px;   /* 好みで 160〜240px */
  width: 100%;
  height: auto;
}

.wl-footer__copyright{
  font-size: 13px;
  color: #666;
}

@media (max-width: 767px){
  .wl-footer__logo img{
    max-width: 160px;
  }
}

/* =========================================================
   Recruit LP Background Stripe
========================================================= */

body.wl-entry-page{
  background-image: url("../images/body-bg.gif");
  background-repeat: repeat;
}

/* br utility */
br.sp{ display:none; }
br.pc{ display:inline; }
@media (max-width: 767px){
  br.sp{ display:inline; }
  br.pc{ display:none; }
}