html,
body {
  min-width: 0 !important;
}

body.pc-booking-index {
  margin: 0;
  background: #f8f4f2 !important;
  color: #4b3039;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue",
    "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  font-size: 17px;
  line-height: 1.8;
}

/* 旧サイト外装 */
#masthead,
.cont_single_b-u2,
.entry-header,
.entry-meta,
#comments,
body > .site-footer,
#colophon {
  display: none !important;
}

/* フォーム専用ヘッダー */
.booking-test-hero {
  box-sizing: border-box;
  width: calc(100% - 32px);
  max-width: 820px;
  margin: 36px auto 0;
  padding: 36px 44px;
  background: linear-gradient(135deg, #fff 0%, #fff7fa 100%);
  border: 1px solid #efd9e1;
  border-radius: 22px 22px 0 0;
  text-align: center;
}

.booking-test-logo {
  display: block;
  width: 105px;
  height: auto;
  margin: 0 auto 18px;
}

.booking-test-eyebrow {
  margin: 0 0 8px;
  color: #d93475;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .1em;
}

.booking-test-hero h1 {
  margin: 0;
  color: #5d293d;
  font-size: 32px;
  line-height: 1.45;
}

.booking-test-lead {
  margin: 16px 0 20px;
  color: #715c64;
  font-size: 17px;
  font-weight: 600;
}

.booking-test-benefits {
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

.booking-test-benefits span {
  padding: 8px 15px;
  border: 1px solid #efabc4;
  border-radius: 999px;
  background: #fff;
  color: #bd315f;
  font-size: 14px;
  font-weight: 700;
}

/* 本体レイアウト */
#page {
  box-sizing: border-box;
  width: calc(100% - 32px) !important;
  max-width: 820px !important;
  min-width: 0 !important;
  margin: 0 auto 60px !important;
  padding: 0 !important;
  border: 1px solid #efd9e1;
  border-top: 0;
  border-radius: 0 0 22px 22px;
  background: #fff;
  box-shadow: 0 18px 50px rgba(91, 48, 63, .09);
}

#page > #main.wrapper,
#primary,
#content,
.cont_single_b,
.entry-content,
.ForBusiness,
#aplInternet {
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  float: none !important;
}

/* 古いキャンペーン訴求をフォーム上では簡略化 */
img[src*="campaignbanner-medium"],
img[src*="heading02-04.jpg"],
#booking-news-box {
  display: none !important;
}

.entry-content {
  padding: 38px 54px 48px !important;
}

form[name="memory_form"] {
  display: none;
}

form[name="main_form"] fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

form[name="main_form"] legend {
  display: block;
  width: 100%;
  margin: 0 0 28px;
  color: #5d293d;
  font-size: 25px;
  font-weight: 800;
  text-align: center;
}

dl.data {
  width: 100% !important;
  margin: 0 !important;
}

dl.data > dt,
dl.data > dd {
  box-sizing: border-box;
  float: none !important;
  width: 100% !important;
  min-width: 0 !important;
  margin-left: 0 !important;
}

dl.data > dt {
  clear: both;
  margin-top: 25px !important;
  padding: 0 0 8px !important;
  color: #51343e;
  font-size: 17px !important;
  font-weight: 800;
  line-height: 1.6;
}

dl.data > dd {
  padding: 0 !important;
  color: #5c4a50;
  font-size: 16px !important;
  line-height: 1.8;
}

dl.data > dt strong,
form[name="main_form"] > fieldset > p strong {
  color: #e83e78;
}

/* 入力欄 */
form[name="main_form"] input[type="text"],
form[name="main_form"] input[type="email"],
form[name="main_form"] input[type="tel"],
form[name="main_form"] select,
form[name="main_form"] textarea {
  box-sizing: border-box;
  max-width: 100%;
  min-height: 52px;
  padding: 11px 13px;
  border: 1px solid #d8c3cb;
  border-radius: 9px;
  background: #fff;
  color: #37272d;
  font-family: inherit;
  font-size: 17px !important;
  line-height: 1.5;
}

form[name="main_form"] input.inputField {
  width: 100% !important;
}

form[name="main_form"] textarea {
  width: 100% !important;
  min-height: 150px;
  resize: vertical;
}

form[name="main_form"] input:focus,
form[name="main_form"] select:focus,
form[name="main_form"] textarea:focus {
  border-color: #e84b84;
  outline: 3px solid rgba(232, 75, 132, .13);
}

/* ラジオボタン */
form[name="main_form"] input[type="radio"] {
  width: 20px;
  height: 20px;
  margin: 7px 9px 7px 0;
  vertical-align: middle;
  accent-color: #e83e78;
}

.radio-wrap,
dd.content,
dd.content2 {
  padding: 15px 18px !important;
  border: 1px solid #eadde2;
  border-radius: 12px;
  background: #fffafb;
}

.content2_font {
  display: inline-block;
  margin: 7px 0 15px;
  font-size: 16px;
  line-height: 1.7;
}

/* 日時 */
.datepicker,
.datepicker2,
.datepicker3 {
  width: 260px !important;
  margin-right: 8px;
}

form[name="main_form"] select {
  margin: 5px 4px 5px 0;
}

/* 個人情報 */
#privacy {
  margin-top: 30px;
}

.privacy-ttl {
  margin: 0 0 10px;
  color: #51343e;
  font-size: 17px;
  font-weight: 800;
}

#privacy-text {
  box-sizing: border-box;
  width: 100% !important;
  height: 180px;
  overflow-y: auto;
  padding: 18px;
  border: 1px solid #ded1d6;
  border-radius: 10px;
  background: #fafafa;
  font-size: 14px;
  line-height: 1.8;
}

/* 送信ボタン */
ul.action {
  margin: 30px 0 0 !important;
  padding: 0 !important;
  list-style: none;
}

ul.action li.send {
  margin: 0 !important;
  text-align: center;
}

button.btn_send {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  min-height: 68px;
  padding: 16px 24px;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(90deg, #ee4b8a, #dc3275);
  box-shadow: 0 10px 24px rgba(220, 50, 117, .25);
  color: #fff;
  cursor: pointer;
  font-family: inherit;
}

button.btn_send img {
  display: none;
}

button.btn_send::before {
  content: "入力内容を確認する　→";
  color: #fff;
  font-size: 20px;
  font-weight: 800;
}

button.btn_send:hover {
  transform: translateY(-1px);
  filter: brightness(1.04);
}

/* 旧レイアウトの残骸 */
.clear {
  clear: both;
}

hr {
  display: none;
}

@media screen and (max-width: 700px) {
  .booking-test-hero,
  #page {
    width: calc(100% - 20px) !important;
  }

  .booking-test-hero {
    margin-top: 10px;
    padding: 25px 18px;
    border-radius: 16px 16px 0 0;
  }

  .booking-test-hero h1 {
    font-size: 25px;
  }

  .entry-content {
    padding: 28px 20px 36px !important;
  }

  .datepicker,
  .datepicker2,
  .datepicker3 {
    width: calc(100% - 54px) !important;
  }
}

/* 2026-09-20 UI test v2 */

/* 念のため旧サイドバーを完全に非表示 */
#secondary,
.hidden_sp,
.widget-area {
  display: none !important;
}

/* 旧レイアウト由来の右寄せを解除 */
form[name="main_form"],
form[name="main_form"] fieldset,
form[name="main_form"] dl,
form[name="main_form"] dt,
form[name="main_form"] dd,
form[name="main_form"] label,
form[name="main_form"] p {
  text-align: left !important;
}

/* キャンペーンバナーは小さめに残す */
img[src*="campaignbanner-medium"] {
  display: block !important;
  box-sizing: border-box;
  width: calc(100% - 80px) !important;
  max-width: 460px !important;
  height: auto !important;
  margin: 0 auto 26px !important;
  border: 1px solid #f1c6d5;
  border-radius: 12px;
}

/* 全体の可読性を少し上げる */
body.pc-booking-index {
  font-size: 18px !important;
}

form[name="main_form"] legend {
  font-size: 28px !important;
}

dl.data > dt {
  font-size: 19px !important;
}

dl.data > dd,
.radio-wrap,
dd.content,
dd.content2,
.content2_font {
  font-size: 17px !important;
}

form[name="main_form"] input[type="text"],
form[name="main_form"] input[type="email"],
form[name="main_form"] input[type="tel"],
form[name="main_form"] select,
form[name="main_form"] textarea {
  font-size: 18px !important;
}

/* 希望日と時間帯を上下に配置 */
input[id="datepicker"],
input[id="datepicker2"],
input[id="datepicker3"] {
  display: inline-block !important;
  width: calc(100% - 55px) !important;
  max-width: 420px !important;
}

input[id="datepicker"] ~ select,
input[id="datepicker2"] ~ select,
input[id="datepicker3"] ~ select {
  display: block !important;
  width: 100% !important;
  max-width: 520px !important;
  margin: 12px 0 0 !important;
}

/* 日時ブロックを見分けやすくする */
input[id="datepicker"],
input[id="datepicker2"],
input[id="datepicker3"] {
  background-color: #fff;
}

img.ui-datepicker-trigger {
  width: 30px !important;
  height: 30px !important;
  margin-left: 8px;
  cursor: pointer;
  vertical-align: middle;
}

/* 注釈も読めるサイズに */
dd.form_font,
form[name="main_form"] > fieldset > p {
  font-size: 15px !important;
  line-height: 1.7 !important;
}

/* サイドバー消去後の余白対策 */
#page > #main.wrapper {
  min-height: 0 !important;
}

#primary {
  min-height: 0 !important;
}

/* 2026-09-20 UI test v3 */

/* PCではフォーム全体を広げる */
.booking-test-hero,
#page {
  max-width: 940px !important;
}

.entry-content {
  padding-right: 70px !important;
  padding-left: 70px !important;
}

img[src*="campaignbanner-medium"] {
  max-width: 520px !important;
}

/* 希望テーマ・英会話レベルの見出し */
dl.data > dt:has(+ dd.content),
dl.data > dt:has(+ dd.content2) {
  margin-top: 38px !important;
  padding-top: 28px !important;
  border-top: 1px solid #eadde2;
  color: #512d3a;
  font-size: 21px !important;
  line-height: 1.65 !important;
}

/* 選択肢全体 */
dd.content,
dd.content2 {
  margin-top: 10px !important;
  padding: 12px !important;
  background: #fffafb;
}

/* ご希望テーマ：縦一列 */
dd.content input[type="radio"],
dd.content2 input[type="radio"] {
  float: left;
  flex: 0 0 auto;
  margin: 4px 13px 0 0 !important;
}

dd.content label,
dd.content2 label {
  box-sizing: border-box;
  display: block !important;
  min-height: 52px;
  margin: 0 0 10px !important;
  padding: 14px 16px 14px 48px !important;
  border: 1px solid #ead9df;
  border-radius: 10px;
  background: #fff;
  color: #49343b;
  font-size: 18px !important;
  font-weight: 600;
  line-height: 1.65 !important;
  cursor: pointer;
}

/* ラジオボタンをカード内の左側へ重ねる */
dd.content input[type="radio"] + label,
dd.content2 input[type="radio"] + label {
  margin-top: -31px !important;
}

/* レベル名 */
dd.content2 label strong {
  display: block;
  margin-bottom: 4px;
  color: #c83267;
  font-size: 19px !important;
  font-weight: 800;
}

/* レベル説明文 */
dd.content2 label {
  font-weight: 500;
}

/* ホバー・選択時 */
dd.content label:hover,
dd.content2 label:hover {
  border-color: #e879a0;
  background: #fff7fa;
}

dd.content input[type="radio"]:checked + label,
dd.content2 input[type="radio"]:checked + label {
  border-color: #e83e78;
  background: #fff0f5;
  box-shadow: 0 0 0 2px rgba(232, 62, 120, .1);
}

/* その他ご質問・ご要望 */
label[for="apl-request-comment"] strong {
  color: #512d3a;
  font-size: 21px !important;
  font-weight: 800;
}

#apl-request-comment {
  margin-top: 10px;
}

/* SP幅では余白を戻す */
@media screen and (max-width: 700px) {
  .entry-content {
    padding-right: 20px !important;
    padding-left: 20px !important;
  }

  dd.content label,
  dd.content2 label {
    padding-right: 12px !important;
    font-size: 17px !important;
  }
}

/* 2026-09-20 UI test v4: alignment and readability */

/* 全体の文字を濃く・少し太く */
body.pc-booking-index {
  color: #34242a !important;
  font-size: 19px !important;
  font-weight: 500;
}

.booking-test-hero h1,
form[name="main_form"] legend {
  color: #482431 !important;
  font-weight: 800 !important;
}

.booking-test-lead {
  color: #554149 !important;
  font-weight: 700 !important;
}

dl.data > dt,
dl.data > dt label,
.privacy-ttl,
label[for="apl-request-comment"] strong {
  color: #3e2931 !important;
  font-weight: 800 !important;
}

dl.data > dt {
  font-size: 20px !important;
}

dl.data > dd,
dl.data > dd label,
dl.data > dd p {
  color: #3d3035;
}

/* 入力値も濃くする */
form[name="main_form"] input[type="text"],
form[name="main_form"] input[type="email"],
form[name="main_form"] input[type="tel"],
form[name="main_form"] select,
form[name="main_form"] textarea {
  color: #281c21 !important;
  font-weight: 600 !important;
}

/* v3の重ね配置を解除 */
dd.content input[type="radio"],
dd.content2 input[type="radio"] {
  float: none !important;
  position: static !important;
  margin: 18px 10px 0 2px !important;
}

dd.content input[type="radio"] + label,
dd.content2 input[type="radio"] + label {
  margin-top: 0 !important;
}

/* 選択肢を安定した縦一列にする */
dd.content,
dd.content2 {
  display: grid !important;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 10px 0;
  align-items: start;
  box-sizing: border-box;
  width: 100% !important;
  padding: 14px !important;
}

dd.content br,
dd.content2 br {
  display: none !important;
}

dd.content input[type="radio"],
dd.content2 input[type="radio"] {
  grid-column: 1;
}

dd.content label,
dd.content2 label {
  grid-column: 2;
  box-sizing: border-box;
  display: block !important;
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 58px;
  margin: 0 !important;
  padding: 14px 16px !important;
  border: 1px solid #dfcbd2;
  border-radius: 10px;
  background: #fff;
  color: #36272d !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.7 !important;
}

/* レベル名と説明文 */
dd.content2 label strong {
  display: block;
  margin-bottom: 5px;
  color: #b9275b !important;
  font-size: 20px !important;
  font-weight: 800 !important;
}

/* 補足・注意書きも薄くしすぎない */
dd.form_font,
form[name="main_form"] > fieldset > p,
#privacy-text {
  color: #55464c !important;
  font-weight: 500 !important;
}

#privacy-text {
  font-size: 15px !important;
}

/* 必須マーク */
dl.data > dt strong,
form[name="main_form"] > fieldset > p strong {
  color: #d92f6c !important;
  font-weight: 800 !important;
}

/* v5: radio options layout repair */
.form.box dd.content,
.form.box dd.content2,
.form.box dl dd.content,
.form.box dl dd.content2 {
  display: block !important;
  grid-template-columns: none !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 18px 20px !important;
  box-sizing: border-box !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
  color: #34242a !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.75 !important;
}

/* ラジオボタン自体を通常サイズへ戻す */
.form.box dd.content input[type="radio"],
.form.box dd.content2 input[type="radio"] {
  display: inline-block !important;
  float: none !important;
  width: 20px !important;
  min-width: 20px !important;
  height: 20px !important;
  margin: 0 9px 0 0 !important;
  vertical-align: -4px !important;
}

/* 選択肢の文字領域を狭めない */
.form.box dd.content label,
.form.box dd.content2 label {
  display: inline !important;
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  white-space: normal !important;
  word-break: normal !important;
  color: #34242a !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.75 !important;
}

/* 強調見出し */
.form.box dd.content strong,
.form.box dd.content2 strong,
.form.box dd.content b,
.form.box dd.content2 b {
  color: #b52d61 !important;
  font-weight: 800 !important;
}

@media screen and (max-width: 600px) {
  .form.box dd.content,
  .form.box dd.content2,
  .form.box dl dd.content,
  .form.box dl dd.content2 {
    padding: 16px !important;
    font-size: 17px !important;
    line-height: 1.7 !important;
  }

  .form.box dd.content label,
  .form.box dd.content2 label {
    font-size: 17px !important;
  }
}

/* v6: actual radio field structure repair */
dd.content,
dd.content2 {
  display: block !important;
  grid-template-columns: none !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 10px 0 !important;
  box-sizing: border-box !important;
  color: #34242a !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.7 !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
}

/* 古い改行タグは非表示にし、ラベルの余白で縦一列にする */
dd.content br,
dd.content2 br {
  display: none !important;
}

/* ラジオボタンをカード内の左側へ配置 */
dd.content input[type="radio"],
dd.content2 input[type="radio"] {
  position: relative !important;
  z-index: 2 !important;
  float: left !important;
  display: block !important;
  width: 20px !important;
  min-width: 20px !important;
  height: 20px !important;
  margin: 19px -34px 0 15px !important;
  padding: 0 !important;
}

/* 各選択肢を読みやすいカードにする */
dd.content input[type="radio"] + label,
dd.content2 input[type="radio"] + label {
  display: block !important;
  float: none !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 58px !important;
  margin: 0 0 12px !important;
  padding: 14px 16px 14px 48px !important;
  border: 1px solid #ead7df !important;
  border-radius: 10px !important;
  background: #fffafb !important;
  color: #34242a !important;
  font-size: 18px !important;
  font-weight: 650 !important;
  line-height: 1.65 !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
  cursor: pointer !important;
}

/* レベル名などの強調 */
dd.content2 input[type="radio"] + label strong,
dd.content input[type="radio"] + label strong {
  display: block !important;
  margin: 0 0 3px !important;
  color: #b52d61 !important;
  font-size: 19px !important;
  font-weight: 800 !important;
}

/* 選択時 */
dd.content input[type="radio"]:checked + label,
dd.content2 input[type="radio"]:checked + label {
  border-color: #eb3f82 !important;
  background: #fff2f7 !important;
  box-shadow: 0 0 0 2px rgba(235, 63, 130, 0.11) !important;
}

@media screen and (max-width: 600px) {
  dd.content input[type="radio"] + label,
  dd.content2 input[type="radio"] + label {
    padding: 13px 13px 13px 44px !important;
    font-size: 17px !important;
    line-height: 1.6 !important;
  }

  dd.content2 input[type="radio"] + label strong,
  dd.content input[type="radio"] + label strong {
    font-size: 18px !important;
  }

  dd.content input[type="radio"],
  dd.content2 input[type="radio"] {
    margin-left: 13px !important;
  }
}

/* v8: level section and submit button finishing */

/* 英会話レベル全体を囲む大きな枠・背景を外す */
dd.content2 {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* 見出しと案内文にも枠を付けない */
dl.data > dt:has(+ dd.content2),
.level-instruction {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* 各レベルの説明文を濃く、少し太く */
dd.content2 input[type="radio"] + label {
  color: #34242a !important;
  font-weight: 700 !important;
}

/* レベル名 */
dd.content2 input[type="radio"] + label strong {
  color: #b52d61 !important;
  font-weight: 800 !important;
}

/* 最後を含む説明文・引用文を読みやすく */
dd.content2 input[type="radio"] + label,
dd.content2 input[type="radio"] + label span,
dd.content2 input[type="radio"] + label small {
  color: #34242a !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.65 !important;
}

/* 送信ボタンの文字を大きくする */
form[name="main_form"] button[type="submit"],
form[name="main_form"] input[type="submit"],
form[name="main_form"] p:has(input[type="image"]),
form[name="main_form"] p:has(input[type="image"])::before {
  font-size: 20px !important;
  font-weight: 800 !important;
  letter-spacing: 0.03em !important;
}

@media screen and (max-width: 600px) {
  dd.content2 input[type="radio"] + label,
  dd.content2 input[type="radio"] + label span,
  dd.content2 input[type="radio"] + label small {
    font-size: 17px !important;
  }

  form[name="main_form"] button[type="submit"],
  form[name="main_form"] input[type="submit"],
  form[name="main_form"] p:has(input[type="image"]),
  form[name="main_form"] p:has(input[type="image"])::before {
    font-size: 18px !important;
  }
}

/* v9: first English-level radio alignment */
.level-instruction {
  display: flow-root !important;
  clear: both !important;
  width: 100% !important;
  margin-bottom: 14px !important;
}

dd.content2 input[type="radio"]:first-of-type {
  clear: both !important;
  margin-top: 19px !important;
}

dd.content2 input[type="radio"]:first-of-type + label {
  margin-top: 0 !important;
}

/* v10: English-level first option alignment */
dd.content2 .level-instruction {
  display: block !important;
  clear: both !important;
  width: 100% !important;
  margin: 0 0 14px !important;
  color: #34242a !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  line-height: 1.6 !important;
}

dd.content2 .level-instruction + br {
  display: none !important;
}

dd.content2 .level-instruction ~ input[type="radio"]:first-of-type {
  clear: both !important;
}

@media screen and (max-width: 600px) {
  dd.content2 .level-instruction {
    font-size: 17px !important;
  }
}
