@charset "utf-8";
/* =====================================================
   Eigoわーるど - Modern Design Overlay
   本体 style.css の後に読み込む上書き専用CSS。
   Phase 1: デザイントークン定義 + 色替え(font/link/背景/文字色)
   ===================================================== */

/* -----------------------------------------------------
   1. デザイントークン
   ----------------------------------------------------- */
:root {
  /* ---- Color (2026-09-01 beige/navy 王道パレットへ差替) ---- */
  --eigo-primary:        #2e4882;   /* ネイビー(主色/リンク/見出し帯) */
  --eigo-primary-dark:   #1e336a;
  --eigo-primary-light:  #4a6ab2;
  --eigo-primary-050:    #e4edf3;   /* 薄背景(旧青系保持) */
  --eigo-accent:         #c9a25e;   /* ゴールド(CTA・強調) */
  --eigo-accent-dark:    #b0813d;
  --eigo-accent-050:     #f6efdc;

  --eigo-secondary:      #4d6660;   /* 副色 ディープグリーン */
  --eigo-sage:           #6a8178;   /* セージ(サブ/ラベル) */

  --eigo-ink:            #1a2838;
  --eigo-ink-soft:       #4d6660;   /* サブテキスト */
  --eigo-ink-mute:       #6a8178;

  --eigo-bg:             #f0ece2;   /* ページ背景 アイボリー */
  --eigo-bg-card:        #ffffff;   /* カード地 */
  --eigo-bg-soft:        #f7f9fb;
  --eigo-bg-mint:        #e4f0eb;   /* うっすらセージ背景 */
  --eigo-line:           #c9c2b4;   /* 罫線 ベージュ */

  /* ---- Radius ---- */
  --eigo-r-card:  14px;
  --eigo-r-input: 10px;
  --eigo-r-pill:  999px;

  /* ---- Shadow (ベージュに合わせて暖色系グレイに) ---- */
  --eigo-shadow-sm:    0 2px 8px rgba(26,40,56,.06);
  --eigo-shadow-md:    0 2px 8px rgba(26,40,56,.06), 0 12px 32px rgba(26,40,56,.10);
  --eigo-shadow-hover: 0 4px 12px rgba(26,40,56,.08), 0 20px 40px rgba(26,40,56,.14);

  /* ---- Spacing ---- */
  --eigo-section-pad-y:    6rem;
  --eigo-section-pad-y-sp: 3.5rem;
  --eigo-gap:              1.25rem;

  /* ---- Typography ---- */
  --eigo-font-body: 'Noto Sans JP', -apple-system, BlinkMacSystemFont, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
  --eigo-font-en:   'Inter', 'Helvetica Neue', Arial, sans-serif;
  --eigo-lh-body:   1.8;
  --eigo-lh-tight:  1.4;

  /* ---- Motion ---- */
  --eigo-transition: 0.24s cubic-bezier(.2,.7,.2,1);
}

/* -----------------------------------------------------
   2. ベース(フォント統一 / 文字色 / 背景)
   ----------------------------------------------------- */
html {
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--eigo-font-body);
  color: var(--eigo-ink);
  background: var(--eigo-bg);
  line-height: var(--eigo-lh-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* テーマ本体で ID詳細度が高い箇所も念のため受ける */
#base,
#bg {
  background: var(--eigo-bg);
}

#content,
#content #main,
#content #main p,
#content #main li {
  color: var(--eigo-ink);
  font-family: var(--eigo-font-body);
}

/* 見出しもNoto Sansへ(サイズはPhase 3で調整) */
#content #main h1,
#content #main h1.singletitle,
#content #main h1.title,
#content #main h2, h2,
#content #main h3, h3,
#content #main h4, h4,
#submain h1 {
  font-family: var(--eigo-font-body);
  color: var(--eigo-ink);
  letter-spacing: .02em;
}

/* -----------------------------------------------------
   3. リンク色
   ----------------------------------------------------- */
a {
  color: var(--eigo-primary);
  transition: color var(--eigo-transition), opacity var(--eigo-transition);
}
a:hover,
a:focus {
  color: var(--eigo-primary-dark);
}

/* 既存で個別に色指定されているリンク箇所を上書き */
#content #main a,
#footermenu ul a,
#copyright a,
#pan a {
  color: var(--eigo-primary);
}
#copyright { color: var(--eigo-ink-soft); }
#footermenu ul a:hover,
#pan a:hover {
  color: var(--eigo-primary-dark);
  opacity: 1;
}

/* -----------------------------------------------------
   4. ボタン系(色調整のみ / 形はPhase 3)
   ----------------------------------------------------- */
/* Contact Form 7 の送信ボタン */
.wpcf7 input[type="submit"],
.wpcf7 button[type="submit"] {
  background: var(--eigo-primary);
  color: #fff;
  border: 0;
  transition: background var(--eigo-transition), transform var(--eigo-transition), box-shadow var(--eigo-transition);
  font-family: var(--eigo-font-body);
  cursor: pointer;
}
.wpcf7 input[type="submit"]:hover,
.wpcf7 button[type="submit"]:hover {
  background: var(--eigo-primary-dark);
}

/* WPのデフォルトボタン(検索フォーム等) */
button,
input[type="button"],
input[type="submit"] {
  font-family: var(--eigo-font-body);
}

/* 既存の .qaBtn 等の青ボタンは色をトークン化(形はそのまま) */
.qa_banner .qaBtn {
  background: var(--eigo-primary);
  transition: background var(--eigo-transition);
}
.qa_banner .qaBtn:hover {
  background: var(--eigo-primary-dark);
}

/* -----------------------------------------------------
   5. 入力フォームの文字色/フォント統一
   ----------------------------------------------------- */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
select,
textarea {
  font-family: var(--eigo-font-body);
  color: var(--eigo-ink);
}

/* -----------------------------------------------------
   6. 選択・強調時の色
   ----------------------------------------------------- */
::selection {
  background: var(--eigo-primary-050);
  color: var(--eigo-ink);
}

/* -----------------------------------------------------
   FV 画像フィッティング(Retina 2000px 対応)
   原寸表示だと画面からはみ出すため、コンテナ幅に収める
   ----------------------------------------------------- */
.mainimg .mainpic {
  width: 100%;
  max-width: 1000px;
  height: auto;
  display: block;
  margin: 0 auto;
}

/* =====================================================
   Phase 2: ヘッダー・フッター現代化
   ===================================================== */

/* -----------------------------------------------------
   H1. Sticky ヘッダ + 背景ブラー
   ----------------------------------------------------- */
.wrapper_head {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.88);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--eigo-line);
  box-shadow: var(--eigo-shadow-sm);
  transition: box-shadow var(--eigo-transition), background var(--eigo-transition);
}
/* backdrop-filter 非対応ブラウザ用フォールバック */
@supports not ((backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))) {
  .wrapper_head { background: rgba(255, 255, 255, 0.96); }
}

/* PC ヘッダ内側の余白調整 */
#header {
  padding: 4px 20px;
  background-color: transparent;   /* 親のブラー背景を活かす */
}

/* -----------------------------------------------------
   H2. PCナビ(画像スプライト) hover 演出
   ----------------------------------------------------- */
#menu li a {
  transition: transform var(--eigo-transition), opacity var(--eigo-transition);
  will-change: transform;
}
#menu li a:hover {
  transform: translateY(-2px);
  opacity: 0.92;
}
/* 区切り縦線: 濃グレー → 罫線色に(控えめに残す) */
#menu li a::after {
  background: var(--eigo-line);
}
#menu li:first-child a::before {
  background: var(--eigo-line);
}

/* -----------------------------------------------------
   H3. モバイル ハンバーガー ボタン
   ----------------------------------------------------- */
#mobile_button {
  background-color: transparent;
}
#mobile_button .lines,
#mobile_button .lines::before,
#mobile_button .lines::after {
  background: var(--eigo-ink);
}
#mobile_button .menutxt svg path {
  fill: var(--eigo-ink);
}

/* -----------------------------------------------------
   F1. フッタ全体(PC)
   ----------------------------------------------------- */
.footer_com {
  background: var(--eigo-bg-soft);
  border-top: 0;
  padding: 3.5rem 1.25rem 2.5rem;
  color: var(--eigo-ink-soft);
}
.footer_com,
.footer_com a:visited,
.footer_com a:link {
  color: var(--eigo-ink-soft);
}

.footer_btm {
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
}
.footer_btm_wrap { float: none; }

.f_left {
  float: none;
  width: auto;
}

/* -----------------------------------------------------
   F2. フッタメニュー(PC)
   ----------------------------------------------------- */
#footermenu {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem 3.5rem;
  justify-content: center;
  text-align: left;
  margin: 0 auto;
}
#footermenu ul {
  float: none;
  margin: 0;
  padding: 0;
  list-style: none;
  min-width: 180px;
}
#footermenu ul li {
  background: none;                  /* f_navi_bg.png(本番URL)を撤去 */
  padding: 0 0 0 1.1em;
  line-height: 2.1;
  position: relative;
  font-size: 0.95rem;
}
#footermenu ul li::before {
  content: '▸';
  position: absolute;
  left: 0;
  top: 0;
  color: var(--eigo-primary);
  opacity: 0.55;
  font-size: 0.75em;
  line-height: 2.8;
}
#footermenu ul li:first-child { padding-left: 1.1em; }

#footermenu ul a {
  color: var(--eigo-ink-soft);
  text-decoration: none;
  font-size: 0.95rem;
  transition: color var(--eigo-transition);
}
#footermenu ul a:hover {
  color: var(--eigo-primary);
  opacity: 1;
  filter: none;
  -ms-filter: none;
}

/* 空 <a>(consultation / abroad / writing 等)は行ごと非表示 */
#footermenu ul a:empty { display: none; }
#footermenu ul li:has(> a:empty) { display: none; }

/* -----------------------------------------------------
   F3. SP: フッタメニューを表示(A案)
   ----------------------------------------------------- */
@media screen and (max-width: 1000px) {
  /* PCナビ(.headnav)は現状どおり非表示のまま */
  #footermenu {
    display: block;
    padding: 0 1rem;
    max-width: 480px;
  }
  #footermenu ul {
    display: block;
    float: none;
    margin: 0 0 0.5rem 0;
    width: 100%;
  }
  #footermenu ul li {
    padding: 0.8rem 0 0.8rem 1.1em;
    line-height: 1.5;
    border-bottom: 1px solid var(--eigo-line);
  }
  #footermenu ul li::before {
    line-height: 2;
  }
  #footermenu ul:last-child li:last-child {
    border-bottom: 0;
  }
  .footer_com {
    padding: 2.5rem 0 2rem;
  }
}

/* =====================================================
   Phase 3: 共通コンポーネント restyle
   ===================================================== */

/* -----------------------------------------------------
   S1. #submain(下層ページの見出し帯)
   ----------------------------------------------------- */
#submain {
  height: auto;
  min-height: 120px;
  background: linear-gradient(180deg, var(--eigo-primary-050) 0%, var(--eigo-bg-soft) 100%);
  border-bottom: 1px solid var(--eigo-line);
  padding: 2rem 0 1.75rem;
  overflow: hidden;
}
#submain .h1wrap {
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 1rem;
  text-align: center;
}
#submain h1 {
  color: var(--eigo-primary-dark);
  font-size: clamp(1.4rem, 3.5vw, 1.9rem);
  font-weight: 700;
  letter-spacing: .04em;
  margin-top: 0;
  padding: 0;
  line-height: 1.35;
}
#submain img { display: none; }   /* 位置ずれ気味の装飾imgを非表示 */

/* -----------------------------------------------------
   S2. パンくず
   ----------------------------------------------------- */
#pan_wrap {
  background: var(--eigo-bg-soft);
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--eigo-line);
}
#pan {
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 1rem;
  font-size: 0.8rem;
  font-family: var(--eigo-font-body);
  color: var(--eigo-ink-mute);
}
#pan a {
  color: var(--eigo-primary);
  background: transparent;
}
#pan a:hover { color: var(--eigo-primary-dark); }

/* -----------------------------------------------------
   T1. 本文タイポグラフィ(段落・リスト・引用)
   ----------------------------------------------------- */
#content #main {
  font-size: 1rem;
  line-height: var(--eigo-lh-body);
}
#content #main p {
  margin-bottom: 1.2em;
  line-height: 1.9;
  color: var(--eigo-ink);
}
#content #main ul,
#content #main ol {
  margin: 0 0 1.4em 1.4em;
  padding: 0;
}
#content #main ul { list-style: disc; }
#content #main ol { list-style: decimal; }
#content #main li {
  margin-bottom: .35em;
  line-height: 1.8;
}
#content #main blockquote {
  background: var(--eigo-bg-soft);
  border-left: 4px solid var(--eigo-primary);
  border-radius: 0 8px 8px 0;
  padding: 1.2rem 1.5rem 1rem 3.5rem;
  color: var(--eigo-ink-soft);
  font-style: normal;
  margin: 1.5rem 0;
}
#content #main blockquote:before {
  color: var(--eigo-primary);
  opacity: .35;
  top: 20px;
  left: 18px;
}

/* -----------------------------------------------------
   H1. 見出し h1/h2/h3/h4
   ----------------------------------------------------- */
#content #main h1.singletitle,
#content #main h1 {
  color: var(--eigo-primary-dark);
  font-size: clamp(1.6rem, 4vw, 2.1rem);
  letter-spacing: .04em;
  padding: 0 0 .6em;
  margin: 0 0 1.5rem;
  background: none;
  text-align: center;
  line-height: 1.35;
}

#content #main h2,
h2 {
  background: transparent;
  color: var(--eigo-ink);
  border-top: 0;
  border-left: 5px solid var(--eigo-primary);
  border-radius: 0 6px 6px 0;
  text-align: left;
  font-size: clamp(1.25rem, 2.6vw, 1.55rem);
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.45;
  padding: .5rem 0 .5rem 1rem;
  margin: 2.8rem 0 1.3rem;
}

#content #main h3,
h3 {
  color: var(--eigo-ink);
  border-bottom: 2px solid var(--eigo-primary);
  background: none;
  text-align: left;
  font-size: clamp(1.1rem, 2.2vw, 1.3rem);
  font-weight: 700;
  letter-spacing: .03em;
  line-height: 1.45;
  padding: .3rem 0 .5rem;
  margin: 2.2rem 0 1.1rem;
}

#content #main h4,
h4 {
  color: var(--eigo-ink);
  border-bottom: 1px solid var(--eigo-line);
  background: none;
  text-align: left;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: .03em;
  line-height: 1.5;
  padding: .3rem 0 .4rem;
  margin: 1.8rem 0 .9rem;
}

/* -----------------------------------------------------
   C1. 汎用カード(枠線 → 柔らかい影、角丸16px、hover浮き)
   ----------------------------------------------------- */
.post_box,
.eyecatch_box,
.teacher_box,
.plan_box,
.kyouzai_box,
.catch_box {
  border: 0;
  border-radius: var(--eigo-r-card);
  background: #fff;
  box-shadow: var(--eigo-shadow-md);
  padding: 1.2rem;
  transition: transform var(--eigo-transition), box-shadow var(--eigo-transition);
}
.post_box:hover,
.eyecatch_box:hover,
.teacher_box:hover,
.plan_box:hover,
.kyouzai_box:hover,
.catch_box:hover {
  transform: translateY(-2px);
  box-shadow: var(--eigo-shadow-hover);
}

/* eyecatch_box は元 padding が非対称だったので均す */
.eyecatch_box { padding: 1.5rem; }

/* post_box: 画像を上端まで、角丸を維持 */
.post_box { padding: 0; overflow: hidden; }
.post_box img { border-radius: 0; display: block; }
#content #main .post_wrap h3 {
  border: 0;
  padding: .8rem 1rem 0;
  margin: 0;
  font-size: 1.05rem;
  letter-spacing: .02em;
}
#content #main .post_box p { padding: .4rem 1rem; }
#content #main .post_box p.date {
  padding: 0 1rem;
  color: var(--eigo-ink-mute);
  font-size: .8rem;
}
.post_box a.post_link:hover { transform: none; }   /* カード側で浮くので二重に浮かせない */

/* voice: 見出し帯を軽く */
.voice .sqred { border-color: var(--eigo-accent); background: var(--eigo-accent-050); }

/* -----------------------------------------------------
   C2. 囲みボックス(.sq1/.sq2/.sqred)
   ----------------------------------------------------- */
.sq1,
.sq2,
.sqred {
  border-radius: 12px;
  padding: 1.25rem 1.5rem .25rem;
  margin: 1rem 0 1.8rem;
}
.sq2 {
  border-color: var(--eigo-primary);
  background: var(--eigo-primary-050);
}
.sqred {
  border-color: var(--eigo-accent);
  background: var(--eigo-accent-050);
}

/* -----------------------------------------------------
   T2. テーブル(素の table / .table2 / TablePress / .tablestyle)
   ----------------------------------------------------- */
#content #main table,
.table2,
.tablestyle,
.tablepress {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
  border: 1px solid var(--eigo-line);
  border-radius: 12px;
  overflow: hidden;
  margin: 1rem 0 1.8rem;
  background: #fff;
}
#content #main table th,
.table2 th,
.tablestyle th,
.tablepress thead th {
  background: var(--eigo-primary-050);
  color: var(--eigo-ink);
  font-weight: 700;
  padding: .8rem 1rem;
  border-bottom: 1px solid var(--eigo-line);
  border-right: 1px solid var(--eigo-line);
  text-align: left;
  vertical-align: middle;
}
#content #main table td,
.table2 td,
.tablestyle td,
.tablepress tbody td {
  padding: .8rem 1rem;
  border-bottom: 1px solid var(--eigo-line);
  border-right: 1px solid var(--eigo-line);
  vertical-align: middle;
  background: #fff;
}
#content #main table th:last-child,
#content #main table td:last-child { border-right: 0; }
#content #main table tr:last-child th,
#content #main table tr:last-child td { border-bottom: 0; }

/* 既存 tdstyle 系(背景グレー)は角丸コンテナ内で色差をやわらかく */
.tdstyle,
.tdstyle_none { background: var(--eigo-bg-soft); border-color: var(--eigo-line); }
.tdstyle2, .tdstyle3, .tdstyle4 { border-color: var(--eigo-line); }
.table2 { border-color: var(--eigo-line); }
.table2 th.groupbg { background: var(--eigo-accent-050); }

/* TablePress: 標準スキンの帯色を上書き */
.tablepress tbody tr:nth-child(odd) td { background: var(--eigo-bg); }
.tablepress tbody tr:nth-child(even) td { background: var(--eigo-bg-soft); }
.tablepress tbody tr:hover td,
.tablepress tbody tr.row-hover:hover td { background: var(--eigo-primary-050) !important; }

/* -----------------------------------------------------
   F1. フォーム入力
   ----------------------------------------------------- */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="date"],
select,
textarea {
  border: 1px solid var(--eigo-line);
  border-radius: var(--eigo-r-input);
  padding: .7rem .9rem;
  background: #fff;
  color: var(--eigo-ink);
  font-size: 1rem;
  line-height: 1.5;
  width: 100%;
  max-width: 100%;
  transition: border-color var(--eigo-transition), box-shadow var(--eigo-transition);
  -webkit-appearance: none;
  appearance: none;
}
textarea { min-height: 8rem; }
input:focus,
select:focus,
textarea:focus {
  outline: none;
  border-color: var(--eigo-primary);
  box-shadow: 0 0 0 3px var(--eigo-primary-050);
}
select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%230c88cc' d='M6 8L0 0h12z'/></svg>");
  background-repeat: no-repeat;
  background-position: right .9rem center;
  padding-right: 2.2rem;
}
::placeholder { color: var(--eigo-ink-mute); }

/* -----------------------------------------------------
   B1. 既存ボタン(.btn-round1/2, .btn-list1)を控えめに近代化
   ----------------------------------------------------- */
.btn-round1,
.btn-round2 {
  border-radius: var(--eigo-r-pill);
  padding: .8rem 2rem;
  box-shadow: var(--eigo-shadow-sm);
  transition: transform var(--eigo-transition), box-shadow var(--eigo-transition), background var(--eigo-transition);
}
.btn-round1 { background: var(--eigo-primary); }
.btn-round2 { background: var(--eigo-accent); }
.btn-round1:hover,
.btn-round2:hover {
  transform: translateY(-2px);
  box-shadow: var(--eigo-shadow-md);
  opacity: 1;
}
.btn-round1:hover { background: var(--eigo-primary-dark); }
.btn-round2:hover { background: var(--eigo-accent-dark); }

.btn-list1 {
  border-radius: var(--eigo-r-pill);
  border-color: var(--eigo-primary);
  color: var(--eigo-primary);
  padding: .7rem 1.8rem;
  transition: background var(--eigo-transition), color var(--eigo-transition);
}
.btn-list1:hover {
  background: var(--eigo-primary);
  color: #fff;
}

/* Contact Form 7 送信ボタン: pill 型 + 影 */
.wpcf7 input[type="submit"],
.wpcf7 button[type="submit"] {
  border-radius: var(--eigo-r-pill);
  padding: .9rem 2.4rem;
  font-weight: 700;
  box-shadow: var(--eigo-shadow-sm);
}
.wpcf7 input[type="submit"]:hover,
.wpcf7 button[type="submit"]:hover {
  transform: translateY(-2px);
  box-shadow: var(--eigo-shadow-md);
}

/* -----------------------------------------------------
   FAQ. アコーディオン (Responsive Accordion and Collapse)
   ----------------------------------------------------- */
.wpsm_panel-group .wpsm_panel {
  border: 0 !important;
  border-radius: 12px !important;
  box-shadow: var(--eigo-shadow-sm);
  margin-bottom: .8rem !important;
  overflow: hidden;
  background: #fff;
}
.wpsm_panel-group .wpsm_panel-heading {
  background: #fff !important;
  border: 0 !important;
  padding: 0 !important;
}
.wpsm_panel-group .wpsm_panel-title > a {
  color: var(--eigo-ink) !important;
  font-weight: 700 !important;
  padding: 1rem 1.25rem !important;
  display: block;
}
.wpsm_panel-group h4 { border: 0; margin: 0; padding: 0; }
.wpsm_panel-group .wpsm_panel-body {
  background: var(--eigo-bg-soft) !important;
  border-top: 1px solid var(--eigo-line) !important;
  color: var(--eigo-ink);
  padding: 1rem 1.25rem !important;
}

/* -----------------------------------------------------
   P1. wp-pagenavi ページネーション
   ----------------------------------------------------- */
.wp-pagenavi {
  text-align: center;
  margin: 2rem 0;
}
.wp-pagenavi a,
.wp-pagenavi span {
  display: inline-block;
  padding: .5rem .85rem;
  margin: 0 .15rem;
  border-radius: var(--eigo-r-input);
  border: 1px solid var(--eigo-line);
  color: var(--eigo-ink-soft);
  background: #fff;
  transition: all var(--eigo-transition);
  text-decoration: none;
}
.wp-pagenavi a:hover {
  border-color: var(--eigo-primary);
  color: var(--eigo-primary);
  background: var(--eigo-primary-050);
}
.wp-pagenavi span.current {
  background: var(--eigo-primary);
  border-color: var(--eigo-primary);
  color: #fff;
}

/* -----------------------------------------------------
   CAT. カテゴリピル(.cat_list) 単記事内
   ----------------------------------------------------- */
.cat_list { padding: 0; margin: 0 0 1.5rem; }
.cat_list li a {
  border-radius: var(--eigo-r-pill) !important;
  border-color: var(--eigo-primary) !important;
  color: var(--eigo-primary) !important;
  padding: .35em 1em !important;
  height: auto !important;
  font-size: .78rem !important;
  background: #fff !important;
  transition: all var(--eigo-transition);
}
.cat_list li a:hover {
  background: var(--eigo-primary) !important;
  color: #fff !important;
}

/* -----------------------------------------------------
   IMG. 本文内画像(記事本文のみ、角丸+柔らかい影)
   ----------------------------------------------------- */
.single #content #main .article_img img,
.single #content #main p > img,
.single #content #main .wp-block-image img {
  border-radius: 12px;
  box-shadow: var(--eigo-shadow-sm);
  height: auto;
  max-width: 100%;
}

/* -----------------------------------------------------
   MISC. 各種細部
   ----------------------------------------------------- */
/* 記事日付 */
#content #main p.date,
.post .s-time,
.single .s-time {
  color: var(--eigo-ink-mute);
  font-size: .82rem;
}
/* .sec width は現代的に伸縮 */
.sec {
  width: 100%;
  max-width: 1080px;
  padding: 0 1rem;
}
/* .cd4 の薄青セクションはトークン化 */
.cd4 { background: var(--eigo-bg-soft); }

/* =====================================================
   Phase 4: トップページ ヒーロー + セクションリズム
   スコープは .home / .page-id-2 のみ、他ページには影響しない
   ===================================================== */

/* -----------------------------------------------------
   H1. ヒーロー(FV): 背景を青→水色の淡いグラデに置換
   既存の .mainimg 背景画像(人物バナー)を上書き
   ----------------------------------------------------- */
.home .mainimg,
.page-id-2 .mainimg {
  background: linear-gradient(180deg, #d8ecfa 0%, #e8f4fb 45%, #f6fafd 100%);
  height: auto;
  min-height: 520px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2.5rem 1rem 2rem;
  margin-bottom: 0;
  border-bottom: 1px solid var(--eigo-line);
  position: relative;
  overflow: hidden;
}

/* さらに奥行きを出す装飾ブロブ(疑似要素) */
.home .mainimg::before,
.page-id-2 .mainimg::before {
  content: '';
  position: absolute;
  width: 460px; height: 460px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, rgba(46,72,130,.10), transparent 70%);
  top: -140px; left: -100px;
  pointer-events: none;
}
.home .mainimg::after,
.page-id-2 .mainimg::after {
  content: '';
  position: absolute;
  width: 380px; height: 380px;
  border-radius: 50%;
  background: radial-gradient(circle at 70% 70%, rgba(153,191,66,.08), transparent 70%);
  bottom: -120px; right: -80px;
  pointer-events: none;
}

/* SP: 高さ制約緩め、装飾ブロブは小さめ */
@media screen and (max-width: 1000px) {
  .home .mainimg,
  .page-id-2 .mainimg {
    background: linear-gradient(180deg, #d8ecfa 0%, #f6fafd 100%);
    min-height: 0;
    padding: 1.5rem 1rem 1.25rem;
  }
  .home .mainimg::before,
  .page-id-2 .mainimg::before,
  .home .mainimg::after,
  .page-id-2 .mainimg::after {
    width: 220px; height: 220px;
  }
}

/* SP の hero 装飾(既存 .mainimg.sp 内の背景 url を打ち消す) */
.home .mainimg.sp,
.page-id-2 .mainimg.sp {
  background: linear-gradient(180deg, #d8ecfa 0%, #f6fafd 100%);
}

/* FV画像自身は影+丸みで浮かす */
.home .mainimg .mainpic,
.page-id-2 .mainimg .mainpic {
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(46,72,130,.12), 0 24px 60px rgba(46,72,130,.10);
  background: #fff;
  position: relative;
  z-index: 1;
}

/* -----------------------------------------------------
   S1. トップページ コンテンツ全体を全幅化してセクションを効かせる
   ----------------------------------------------------- */
.page-id-2 #content {
  padding: 0;
  background: transparent;
}
.page-id-2 #content #main {
  padding: 0;
  margin: 0;
  width: 100%;
}

/* -----------------------------------------------------
   S2. #top_wrap を「セクション」として扱う(外側だけ)
   ---- #top_wrap は content 内で複数回使われている(入れ子含む) ----
   ----------------------------------------------------- */
.page-id-2 #main > #top_wrap {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: var(--eigo-section-pad-y) 1rem;
  position: relative;
}
/* 偶数セクションを薄青地に(交互リズム) */
.page-id-2 #main > #top_wrap:nth-of-type(even) {
  background: var(--eigo-bg-soft);
}
/* セクション内の主要ブロックを 1080px に絞って中央配置 */
.page-id-2 #main > #top_wrap > * {
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
}

/* 入れ子 #top_wrap は装飾を無効化(二重パディング防止) */
.page-id-2 #main #top_wrap #top_wrap {
  padding: 0;
  margin: 0 auto;
  background: transparent;
  max-width: 1080px;
  width: 100%;
}

/* SP: パディング圧縮 */
@media screen and (max-width: 1000px) {
  .page-id-2 #main > #top_wrap {
    padding: var(--eigo-section-pad-y-sp) 1rem;
  }
}

/* -----------------------------------------------------
   S3. トップページ内の h2 は中央寄せ気味の「セクション見出し」に
   Phase 3 の左border h2 を、home 限定で上書き
   ----------------------------------------------------- */
.page-id-2 #content #main h2 {
  border-left: 0;
  border-bottom: 0;
  background: none;
  text-align: center;
  padding: 0 0 .5rem;
  margin: 0 auto 2rem;
  font-size: clamp(1.5rem, 3.4vw, 2rem);
  position: relative;
  display: block;
}
.page-id-2 #content #main h2::after {
  content: '';
  display: block;
  width: 56px;
  height: 3px;
  background: var(--eigo-primary);
  border-radius: 2px;
  margin: .75rem auto 0;
}
/* h2 の中に <img> が入っているケース(装飾画像見出し)は装飾線を消す */
.page-id-2 #content #main h2:has(img) {
  padding: 0;
  margin: 0 auto 1.5rem;
}
.page-id-2 #content #main h2:has(img)::after { display: none; }
.page-id-2 #content #main h2 img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: var(--eigo-shadow-sm);
}

/* -----------------------------------------------------
   S4. トップページ本文の画像を柔らかく
   ----------------------------------------------------- */
.page-id-2 #content #main p > img,
.page-id-2 #content #main .aligncenter {
  border-radius: 14px;
  box-shadow: var(--eigo-shadow-sm);
  height: auto;
  max-width: 100%;
}

/* -----------------------------------------------------
   S5. トップページのグリッドテーブル(6サムネのボタン群)
   .home の <table> は装飾セル → 角丸を落ち着かせ、hover 演出
   ----------------------------------------------------- */
.page-id-2 #content #main table td {
  border: 0 !important;
  background: transparent !important;
  padding: .5rem !important;
  text-align: center;
}
.page-id-2 #content #main table {
  border: 0;
  border-radius: 0;
  background: transparent;
}
.page-id-2 #content #main table td img {
  border-radius: 14px;
  box-shadow: var(--eigo-shadow-sm);
  transition: transform var(--eigo-transition), box-shadow var(--eigo-transition);
}
.page-id-2 #content #main table td a:hover img {
  transform: translateY(-3px);
  box-shadow: var(--eigo-shadow-hover);
  opacity: 1;
}

/* =====================================================
   Phase 5: レスポンシブ総点検 - 事前予防修正
   ===================================================== */

/* -----------------------------------------------------
   R1. 横スクロール発生防止(ページ全体)
   ----------------------------------------------------- */
html, body {
  overflow-x: hidden;
  max-width: 100%;
}

/* -----------------------------------------------------
   R2. 幅広テーブルをSPで水平スクロール可能に(はみ出し防止)
   TablePress / 素の table / .table2 / .tablestyle 全対応
   ----------------------------------------------------- */
@media screen and (max-width: 768px) {
  #content #main table,
  .tablepress,
  .table2,
  .tablestyle {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
  }
  /* スクロールバーを控えめに */
  #content #main table::-webkit-scrollbar,
  .tablepress::-webkit-scrollbar {
    height: 6px;
  }
  #content #main table::-webkit-scrollbar-thumb,
  .tablepress::-webkit-scrollbar-thumb {
    background: var(--eigo-primary);
    border-radius: 3px;
  }
}

/* -----------------------------------------------------
   R3. トップページの6サムネtable(装飾グリッド)は
   SPで縦積みに(横スクロールより見やすい)
   ----------------------------------------------------- */
@media screen and (max-width: 600px) {
  .page-id-2 #content #main table,
  .page-id-2 #content #main tbody,
  .page-id-2 #content #main tr {
    display: block;
    width: 100% !important;
    height: auto !important;
    overflow: visible;
    white-space: normal;
  }
  .page-id-2 #content #main td {
    display: block;
    width: 100% !important;
    height: auto !important;
    padding: .75rem 0 !important;
  }
  .page-id-2 #content #main td img {
    max-width: 280px;
    margin: 0 auto;
    display: block;
  }
}

/* -----------------------------------------------------
   R4. コンテンツ内画像に max-width: 100% 保険
   ----------------------------------------------------- */
#content #main img {
  max-width: 100%;
  height: auto;
}

/* -----------------------------------------------------
   R5. SPでヒーロー装飾ブロブが視覚的にうるさい場合の
   透明度絞り
   ----------------------------------------------------- */
@media screen and (max-width: 600px) {
  .home .mainimg::before,
  .page-id-2 .mainimg::before,
  .home .mainimg::after,
  .page-id-2 .mainimg::after {
    opacity: .5;
  }
}

/* -----------------------------------------------------
   R6. フォーカスリング(キーボードアクセシビリティ)
   ----------------------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--eigo-primary);
  outline-offset: 2px;
}

/* -----------------------------------------------------
   R7. SP時のセクション内 max-width の内側余白確保
   トップページの #top_wrap 直下要素が横いっぱいに広がりすぎるのを防ぐ
   ----------------------------------------------------- */
@media screen and (max-width: 600px) {
  .page-id-2 #main > #top_wrap {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .page-id-2 #main > #top_wrap > * {
    max-width: 100%;
  }
}

/* -----------------------------------------------------
   R8. Sticky ヘッダの z-index を明示、
   sidr(スマホメニュー) / チャット窓との重ね順を安定化
   sidr は 999999 でヘッダより上、チャットは 40 前後で下
   ----------------------------------------------------- */
.wrapper_head { z-index: 100; }
.chat-window, .chat-button { z-index: 60; }   /* headerより下 */
#sidr-nav, .sidr { z-index: 999999; }         /* headerより上 */

/* =====================================================
   feedback フェーズ: SP/PC 実機検証で見つかった微修正
   ===================================================== */

/* -----------------------------------------------------
   FB1. トップFV: SP用旧画像(英検版)を非表示に
   → 当面はPC用画像 (.mainimg.pc) をSPでも表示。
   SP専用のEigoわーるど版画像が用意されたら FB1 を削除。
   ----------------------------------------------------- */
.home .mainimg.sp,
.page-id-2 .mainimg.sp {
  display: none !important;
}
.home .mainimg.pc,
.page-id-2 .mainimg.pc {
  display: flex !important;   /* 既存 .pc { display:none } を SP でも上書き */
}

/* -----------------------------------------------------
   FB2. SP時: トップ6サムネ table を「2列grid・コンパクト」に
   Phase 5 の R3(縦1列)を上書き
   ----------------------------------------------------- */
@media screen and (max-width: 600px) {
  .page-id-2 #content #main table {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 0.6rem !important;
    width: 100% !important;
    height: auto !important;
    max-width: 420px;
    margin: 1rem auto !important;
    white-space: normal !important;
  }
  .page-id-2 #content #main table tbody,
  .page-id-2 #content #main table tr {
    display: contents !important;
  }
  .page-id-2 #content #main table td {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    padding: 0 !important;
  }
  .page-id-2 #content #main table td img,
  .page-id-2 #content #main table td a img {
    max-width: 100% !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
  }
}

/* -----------------------------------------------------
   FB3. トップ .three_box (STEP1/2..) を統一されたカードに
   緑帯とコンテンツ本体の隙間を解消して1枚のカードとして機能させる
   ----------------------------------------------------- */
.page-id-2 #content #main .three_box {
  border: 1px solid var(--eigo-line);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: var(--eigo-shadow-sm);
  padding: 0;
  background: #fff;
}
.page-id-2 #content #main .three_box .ttl_wrap {
  background: var(--eigo-accent);
  padding: 0;
  margin: 0;
  border-radius: 0;
}
.page-id-2 #content #main .three_box .ttl {
  padding: 0.55rem 1rem;
  margin: 0;
  color: #fff;
  font-weight: 700;
  text-align: left;
  font-size: 1rem;
  line-height: 1.4;
}
.page-id-2 #content #main .three_box img {
  margin: 1rem auto 0.5rem;
  box-shadow: none;         /* Phase 4 の aligncenter shadow を打消し */
  border-radius: 0;
  display: block;
}
.page-id-2 #content #main .three_box h3 {
  text-align: center;
  border-bottom: 0;         /* Phase 3 の下線を .three_box 内では撤去 */
  padding: 0.3rem 1rem;
  margin: 0 0 0.4rem;
  font-size: 1.1rem;
  background: none;
}
.page-id-2 #content #main .three_box .txt {
  padding: 0 1rem 1rem;
  text-align: left;
  font-size: 0.92rem;
  line-height: 1.7;
}

/* -----------------------------------------------------
   FB4. 本文画像の傾き解消(防衛的リセット)
   予期しない transform: rotate / skew を img から除去
   hover時の translate はセレクタ specificity で残る
   ----------------------------------------------------- */
#content #main img {
  transform: none;
}

/* FB4-followup: /course/lecturer-copy/ の <video> ポスター表示の
   アスペクト不一致による「傾き」錯覚対策 + video要素のレスポンシブ化 */
#content #main video,
#content #main .video-center video {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  border-radius: 8px;
}
.video-center {
  text-align: center;
}

/* -----------------------------------------------------
   C3. フッター下部 リーガルリンク(特商法・運営会社)
   #footermenu の 3ブロック UL の下に小さく配置
   ----------------------------------------------------- */
#footer .footer_legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem 1.5rem;
  list-style: none;
  padding: 0;
  margin: 1.5rem auto 0;
  border-top: 1px solid var(--eigo-line);
  padding-top: 1rem;
  width: 100%;
  max-width: 480px;
}
#footer .footer_legal li {
  background: none;
  padding: 0;
  margin: 0;
  line-height: 1.4;
}
#footer .footer_legal li::before { display: none; }   /* ▸ アイコンを消す */
#footer .footer_legal a {
  color: var(--eigo-ink-mute);
  font-size: 0.78rem;
  text-decoration: none;
  transition: color var(--eigo-transition);
}
#footer .footer_legal a:hover {
  color: var(--eigo-primary);
  text-decoration: underline;
}
@media screen and (max-width: 1000px) {
  #footer .footer_legal {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

/* -----------------------------------------------------
   FB5. PC/SP: トップ6サムネ table を囲む <ul> の disc bullet を撤去
   PC: 3列均等grid で綺麗に整列(現状の inline width % を無効化)
   ----------------------------------------------------- */
.page-id-2 #content #main ul:has(li table),
.page-id-2 #content #main ul:has(> li > ul),
.page-id-2 #content #main li:has(> table),
.page-id-2 #content #main li:has(> ul > li > table) {
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}

@media screen and (min-width: 601px) {
  .page-id-2 #content #main table {
    table-layout: fixed !important;
    width: 100% !important;
    max-width: 900px;
    height: auto !important;
    margin: 1.5rem auto !important;
    border-collapse: separate;
    border-spacing: .5rem;
  }
  .page-id-2 #content #main table td {
    vertical-align: middle !important;
    width: 33.33% !important;
    height: auto !important;
    padding: 0.5rem !important;
    text-align: center;
  }
  .page-id-2 #content #main table td img {
    max-width: 180px;
    width: 100%;
    height: auto;
    margin: 0 auto;
    display: block;
  }
}

/* =====================================================
   L1. 講師一覧ページ (page-lecturer.php, page-id-17)
   カードグリッド + <details> 展開でプロフィール表示
   ===================================================== */
.page-id-17 .lecturer-lead {
  max-width: 780px;
  margin: 1.5rem auto 2.5rem;
  padding: 1.5rem;
  background: #f6fafd;
  border-left: 4px solid var(--eigo-primary);
  border-radius: var(--eigo-radius);
}
.page-id-17 .lecturer-lead h2 {
  margin-top: 0;
  font-size: 1.35rem;
  color: var(--eigo-primary);
}
.page-id-17 .lecturer-lead p {
  line-height: 1.85;
  margin: 0.6rem 0;
  color: var(--eigo-ink);
}

.page-id-17 .lecturer-count {
  text-align: center;
  color: var(--eigo-ink-mute);
  font-size: 0.9rem;
  margin: 0 0 1rem;
}

.page-id-17 .lecturer-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
  max-width: 1080px;
  margin: 0 auto 3rem;
}
@media (max-width: 900px) {
  .page-id-17 .lecturer-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .page-id-17 .lecturer-grid { grid-template-columns: 1fr; }
}

.page-id-17 .lecturer-card {
  background: #fff;
  border: 1px solid var(--eigo-line);
  border-radius: 12px;
  overflow: hidden;
  transition: box-shadow var(--eigo-transition), border-color var(--eigo-transition), transform var(--eigo-transition);
}
.page-id-17 .lecturer-card:hover {
  border-color: var(--eigo-primary);
  box-shadow: var(--eigo-shadow-md);
  transform: translateY(-2px);
}
.page-id-17 .lecturer-card[open] {
  border-color: var(--eigo-primary);
  box-shadow: var(--eigo-shadow-md);
  grid-column: 1 / -1;
}

.page-id-17 .lecturer-card__face {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 1rem;
  padding: 1.2rem;
  cursor: pointer;
  list-style: none;
  align-items: center;
}
.page-id-17 .lecturer-card__face::-webkit-details-marker { display: none; }
.page-id-17 .lecturer-card__face::marker { display: none; content: ""; }

.page-id-17 .lecturer-card__photo {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  overflow: hidden;
  background: #e6f0f6;
  border: 2px solid var(--eigo-line);
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-id-17 .lecturer-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.page-id-17 .lecturer-card__photo--placeholder span {
  font-size: 2rem;
  font-weight: 700;
  color: var(--eigo-primary);
}

.page-id-17 .lecturer-card__meta { min-width: 0; }
.page-id-17 .lecturer-card__name {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--eigo-ink);
  margin-bottom: 0.3rem;
  line-height: 1.3;
  word-break: break-word;
}
.page-id-17 .lecturer-card__qual {
  font-size: 0.78rem;
  color: var(--eigo-ink-mute);
  line-height: 1.5;
  margin-bottom: 0.35rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.page-id-17 .lecturer-card__fields {
  font-size: 0.75rem;
  color: var(--eigo-primary);
  background: #eaf4fb;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.page-id-17 .lecturer-card__more {
  grid-column: 1 / -1;
  text-align: right;
  font-size: 0.8rem;
  color: var(--eigo-primary);
  font-weight: 600;
}
.page-id-17 .lecturer-card__more::after { content: " ▸"; }
.page-id-17 .lecturer-card[open] .lecturer-card__more::after { content: " ▾"; }
.page-id-17 .lecturer-card[open] .lecturer-card__more { color: var(--eigo-ink-mute); }

.page-id-17 .lecturer-card__body {
  padding: 0 1.2rem 1.4rem;
  border-top: 1px solid var(--eigo-line);
  margin-top: 0.6rem;
}
.page-id-17 .lecturer-row {
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: 1rem;
  padding: 0.85rem 0;
  border-bottom: 1px dashed var(--eigo-line);
}
.page-id-17 .lecturer-row:last-child { border-bottom: none; }
.page-id-17 .lecturer-row__label {
  font-size: 0.85rem;
  color: var(--eigo-primary);
  font-weight: 600;
}
.page-id-17 .lecturer-row__value {
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--eigo-ink);
}
.page-id-17 .lecturer-row__value p { margin: 0.3em 0; }
.page-id-17 .lecturer-row__value img { max-width: 100%; height: auto; border-radius: 8px; }

@media (max-width: 520px) {
  .page-id-17 .lecturer-row {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }
}

.page-id-17 .lecturer-cta {
  max-width: 640px;
  margin: 3rem auto 1rem;
  padding: 2rem 1.5rem;
  text-align: center;
  background: #fff;
  border: 1px solid var(--eigo-line);
  border-radius: 12px;
}
.page-id-17 .lecturer-cta h2 {
  margin-top: 0;
  font-size: 1.2rem;
  color: var(--eigo-primary);
}
.page-id-17 .lecturer-cta p { color: var(--eigo-ink-mute); line-height: 1.7; }
.page-id-17 .lecturer-cta .btn-round1 { margin-top: 0.8rem; }

/* --- 閉じるボタン(details 展開時、body 末尾) --- */
.page-id-17 .lecturer-card__close {
  display: block;
  margin: 1.2rem auto 0.2rem;
  padding: 0.55rem 1.6rem;
  background: transparent;
  color: var(--eigo-primary);
  border: 1.5px solid var(--eigo-primary);
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background var(--eigo-transition), color var(--eigo-transition);
}
.page-id-17 .lecturer-card__close:hover {
  background: var(--eigo-primary);
  color: #fff;
}

/* 講師ページの旧 <video> 要素は新テンプレでは出力されないため、
   FB4-followup の残存ルールは無害だが不要になった旨だけコメント。 */

/* =====================================================
   L2. 講師紹介 入口ページ /lecturer/ + 個別ページ (single-teacher)
   lecturer.html 準拠。page-id 非依存(講師テンプレのみで有効)
   ===================================================== */

/* --- 共通スコープ: body に .page-template-page-lecturer を持つ,
       もしくは single-teacher テンプレの body クラスを想定 --- */
.page-template-page-lecturer .lect-hero,
.single-teacher .single-lect-hero {
  display: block;
}

/* --- ヒーロー(写真+コピー、左右2カラム) --- */
.page-template-page-lecturer .lect-hero {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 2rem;
  align-items: center;
  max-width: 1100px;
  margin: 2rem auto 2.6rem;
  padding: 0 1rem;
}
@media (max-width: 780px) {
  .page-template-page-lecturer .lect-hero { grid-template-columns: 1fr; gap: 1.2rem; }
}
.page-template-page-lecturer .lect-hero__media {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(26,40,56,.14);
}
.page-template-page-lecturer .lect-hero__media img {
  display: block;
  object-position: center var(--face-y, 40%);
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 4 / 3;
}
.page-template-page-lecturer .lect-hero__eyebrow {
  display: inline-block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.24em;
  color: var(--eigo-primary);
  border-bottom: 1px solid var(--eigo-primary);
  padding-bottom: 0.28rem;
  margin-bottom: 1rem;
}
.page-template-page-lecturer .lect-hero__title {
  font-size: clamp(1.5rem, 4.4vw, 2.1rem);
  line-height: 1.55;
  color: #1a2838;
  font-weight: 700;
  margin: 0 0 1rem;
  border-left: none !important;
  padding-left: 0 !important;
}
.page-template-page-lecturer .lect-hero__title::after,
.page-template-page-lecturer .lect-hero__title::before { display: none !important; }
.page-template-page-lecturer .lect-hero__lead {
  font-size: 0.96rem;
  line-height: 1.9;
  color: #4d6660;
  margin: 0 0 1.4rem;
}
.page-template-page-lecturer .lect-hero__pills {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.page-template-page-lecturer .lect-hero__pills li {
  background: #fff;
  border: 1px solid #c9c2b4;
  color: #4d6660;
  padding: 0.35rem 1rem;
  border-radius: 999px;
  font-size: 0.82rem;
  list-style: none !important;
}
.page-template-page-lecturer .lect-hero__pills li::before,
.page-template-page-lecturer .lect-hero__pills li::marker { content: "" !important; display: none !important; }

/* --- 3ステップ --- */
.page-template-page-lecturer .lect-howto {
  max-width: 1000px;
  margin: 0 auto 2.6rem;
  padding: 0 1rem;
}
.page-template-page-lecturer .lect-howto__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  justify-content: center;
}
.page-template-page-lecturer .lect-howto__step {
  flex: 1 1 260px;
  max-width: 320px;
  background: #fff;
  border: 1px solid #c9c2b4;
  border-radius: 10px;
  padding: 1.1rem 1.2rem;
  display: flex;
  gap: 0.8rem;
  align-items: flex-start;
  text-align: left;
}
.page-template-page-lecturer .lect-howto__num {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #2e4882;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1rem;
}
.page-template-page-lecturer .lect-howto__step h3 {
  font-size: 0.95rem;
  margin: 0 0 0.2rem;
  color: #1a2838;
  border-left: none !important;
  padding-left: 0 !important;
}
.page-template-page-lecturer .lect-howto__step h3::after,
.page-template-page-lecturer .lect-howto__step h3::before { display: none !important; }
.page-template-page-lecturer .lect-howto__step p {
  font-size: 0.85rem;
  color: #4d6660;
  line-height: 1.7;
  margin: 0;
}

/* --- teachers セクション --- */
.page-template-page-lecturer .lect-teachers {
  max-width: 1180px;
  margin: 0 auto 2.4rem;
  padding: 1rem;
}

/* --- 絞り込みバー --- */
.page-template-page-lecturer .lect-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
  margin-bottom: 2rem;
}
.page-template-page-lecturer .lect-filter-btn {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  cursor: pointer;
  padding: 0.42rem 1.15rem;
  border-radius: 999px;
  border: 1px solid #c9c2b4;
  background: #fff;
  color: #4d6660;
  transition: background .2s, color .2s, border-color .2s;
}
.page-template-page-lecturer .lect-filter-btn:hover {
  border-color: #2e4882;
  color: #2e4882;
}
.page-template-page-lecturer .lect-filter-btn.is-active {
  background: #2e4882;
  border-color: #2e4882;
  color: #fff;
}

/* --- 講師グループ(認定/一般) --- */
.page-template-page-lecturer .lect-group { margin-bottom: 2.4rem; }
.page-template-page-lecturer .lect-group__head {
  text-align: center;
  margin-bottom: 1.6rem;
}
.page-template-page-lecturer .lect-group__en {
  display: inline-block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.28em;
  color: #c9a25e;
  font-weight: 700;
  margin-bottom: 0.5rem;
}
.page-template-page-lecturer .lect-group__head h2 {
  font-size: 1.4rem;
  color: #1a2838;
  margin: 0;
  border-left: none !important;
  padding-left: 0 !important;
  font-weight: 700;
}
.page-template-page-lecturer .lect-group__head h2::after,
.page-template-page-lecturer .lect-group__head h2::before { display: none !important; }
.page-template-page-lecturer .lect-group__head small {
  font-size: 0.7em;
  color: #6a8178;
  font-weight: 400;
}
.page-template-page-lecturer .lect-group__note {
  color: #4d6660;
  font-size: 0.88rem;
  margin: 0.5rem 0 0;
  line-height: 1.65;
}

/* --- カードグリッド --- */
.page-template-page-lecturer .lect-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}
@media (max-width: 900px) { .page-template-page-lecturer .lect-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .page-template-page-lecturer .lect-grid { grid-template-columns: 1fr; } }

.page-template-page-lecturer .lect-card {
  background: #fff;
  border: 1px solid #c9c2b4;
  border-radius: 12px;
  padding: 1.4rem 1.1rem 1.2rem;
  text-align: center;
  display: block;
  color: inherit !important;
  text-decoration: none !important;
  position: relative;
  transition: box-shadow .25s, transform .25s, border-color .25s;
}
.page-template-page-lecturer .lect-card:hover,
.page-template-page-lecturer .lect-card:focus-visible {
  border-color: #2e4882;
  transform: translateY(-3px);
  box-shadow: 0 12px 26px rgba(46,72,130,.12);
  outline: none;
}
.page-template-page-lecturer .lect-card__badge {
  position: absolute;
  top: 0.7rem;
  right: 0.7rem;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  color: #fff;
  padding: 0.18rem 0.6rem;
  border-radius: 4px;
  letter-spacing: 0.04em;
}
/* 満席バッジ: 濃ネイビーで AAA (visibility 兼 AA準拠) */
.page-template-page-lecturer .lect-card__badge--full { background: #1e336a; }
.page-template-page-lecturer .lect-card__photo {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  margin: 0 auto 0.85rem;
  overflow: hidden;
  background: #f8f5ee;
  border: 1px solid #c9c2b4;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: none !important;
}
/* defensive: 万一の装飾 ::before/::after を全消し */
.page-template-page-lecturer .lect-card__photo::before,
.page-template-page-lecturer .lect-card__photo::after { content: none !important; display: none !important; }
.page-template-page-lecturer .lect-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(var(--photo-zoom, 1.16));
  transform-origin: center top;
}
.page-template-page-lecturer .lect-card__initial {
  font-family: 'Noto Serif JP', serif;
  font-size: 2.4rem;
  color: #2e4882;
  font-weight: 600;
}
.page-template-page-lecturer .lect-card__name {
  font-size: 1.1rem;
  font-weight: 700;
  color: #1a2838;
  margin-bottom: 0.5rem;
}
.page-template-page-lecturer .lect-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem;
  justify-content: center;
  margin-bottom: 0.6rem;
}
.page-template-page-lecturer .lect-card__tags span {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  color: #4d6660;
  background: #e4f0eb;
  padding: 0.15rem 0.6rem;
  border-radius: 999px;
}
.page-template-page-lecturer .lect-card__items {
  font-size: 0.82rem;
  color: #4d6660;
  line-height: 1.6;
  margin: 0 0 0.4rem;
  min-height: 2em;
}
.page-template-page-lecturer .lect-card__times {
  font-size: 0.75rem;
  color: #6a8178;
  line-height: 1.55;
  margin: 0 0 0.6rem;
  min-height: 2em;
}
.page-template-page-lecturer .lect-card__more {
  display: inline-block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  color: #c9a25e;
  margin-top: 0.4rem;
}
.page-template-page-lecturer .lect-card__more::after { content: " ▸"; }

/* .lect-empty は T31-v3 (下部) に移設 (2026-09-10) */

/* --- 迷ったら事務局 --- */
.page-template-page-lecturer .lect-undecided {
  max-width: 680px;
  margin: 2.4rem auto 3rem;
  text-align: center;
  background: #fff;
  border: 1px solid #c9c2b4;
  border-radius: 12px;
  padding: 2rem 1.4rem;
}
.page-template-page-lecturer .lect-undecided h2 {
  font-size: 1.15rem;
  margin: 0 0 0.5rem;
  color: #1a2838;
  border-left: none !important;
  padding-left: 0 !important;
}
.page-template-page-lecturer .lect-undecided h2::after,
.page-template-page-lecturer .lect-undecided h2::before { display: none !important; }
.page-template-page-lecturer .lect-undecided p {
  font-size: 0.92rem;
  color: #4d6660;
  margin: 0 0 1.1rem;
}

/* --- テンプレ内 共通ボタン --- */
.page-template-page-lecturer .eigo-btn {
  display: inline-block;
  padding: 0.65rem 1.6rem;
  border-radius: 999px;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none !important;
  transition: transform .25s, box-shadow .25s, background .25s;
  line-height: 1.2;
}
.page-template-page-lecturer .eigo-btn--primary {
  background: #c9a25e;
  color: #fff !important;
}
.page-template-page-lecturer .eigo-btn--primary:hover {
  background: #b0813d;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(176,129,61,.35);
}
.page-template-page-lecturer .eigo-btn--outline {
  background: transparent;
  color: #2e4882 !important;
  border: 1.5px solid #2e4882;
}
.page-template-page-lecturer .eigo-btn--outline:hover {
  background: #2e4882;
  color: #fff !important;
}
.page-template-page-lecturer .eigo-btn--lg {
  padding: 1rem 2.4rem;
  font-size: 1rem;
}

/* =====================================================
   L3. 講師 個別ページ (single-teacher.php)
   ===================================================== */
.single-teacher #main {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 1rem;
}

/* ヒーロー(顔写真 + メタ) */
.single-teacher .single-lect-hero {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 1.6rem;
  align-items: center;
  background: #fff;
  border: 1px solid #c9c2b4;
  border-radius: 14px;
  padding: 1.8rem 1.6rem;
  margin: 1.6rem 0 1.4rem;
}
@media (max-width: 640px) {
  .single-teacher .single-lect-hero { grid-template-columns: 1fr; text-align: center; }
  .single-teacher .single-lect-hero__photo { margin: 0 auto; }
}
.single-teacher .single-lect-hero__photo {
  width: 180px;
  height: 180px;
  border-radius: 50%;
  overflow: hidden;
  background: #f8f5ee;
  border: 1px solid #c9c2b4;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: none !important;
}
.single-teacher .single-lect-hero__photo::before,
.single-teacher .single-lect-hero__photo::after { content: none !important; display: none !important; }
.single-teacher .single-lect-hero__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(var(--photo-zoom, 1.16));
  transform-origin: center top;
}
.single-teacher .single-lect-hero__initial {
  font-family: 'Noto Serif JP', serif;
  font-size: 3.5rem;
  color: #2e4882;
  font-weight: 600;
}
.single-teacher .single-lect-hero__kubun {
  display: inline-block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  color: #fff;
  padding: 0.2rem 0.75rem;
  border-radius: 4px;
  letter-spacing: 0.04em;
  margin-right: 0.4rem;
}
/* T13: 認定/一般 バッジ共通クラス。認定は ヘッダーピル の hover/is-current 塗り
   (#b0813d) と揃え、文字は白。一般は既存の深緑 + 白 のまま(AAA).
   ※ヘッダーピルの通常時は #c9a25e 薄ゴールドで、白文字だと 2.6:1 で AA 未達のため
     バッジ側は 濃ゴールド #b0813d + 白 (3.4:1 = AA大文字) を採用。
     ピルを #b0813d に統一する提案は別途クライアント確認待ち。 */
.eigo-kubun-badge {
  display: inline-block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  color: #fff !important;
  padding: 0.2rem 0.75rem;
  border-radius: 4px;
  letter-spacing: 0.04em;
}
.eigo-kubun-badge--certified {
  background: var(--eigo-accent-dark, #b0813d) !important;
  color: #fff !important;
}
.eigo-kubun-badge--general {
  background: #4d6660 !important;
  color: #fff !important;
}
/* 既存 single-lect-hero__kubun 系にも同色を適用(HTML 側は次リビジョンで
   共通クラスに置換予定。今回は互換維持のため両方定義) */
.single-teacher .single-lect-hero__kubun--certified {
  background: var(--eigo-accent-dark, #b0813d) !important;
  color: #fff !important;
}
.single-teacher .single-lect-hero__kubun--general {
  background: #4d6660 !important;
  color: #fff !important;
}
.single-teacher .single-lect-hero__badge {
  display: inline-block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  color: #fff;
  background: #1e336a;
  padding: 0.2rem 0.75rem;
  border-radius: 4px;
}
.single-teacher .single-lect-hero__name {
  font-size: clamp(1.4rem, 4vw, 1.9rem);
  color: #1a2838;
  font-weight: 700;
  margin: 0.6rem 0 0.8rem;
  border-left: none !important;
  padding-left: 0 !important;
}
.single-teacher .single-lect-hero__name::after,
.single-teacher .single-lect-hero__name::before { display: none !important; }
/* T32: PC のみ 講師名・メタを左寄せ(イラスト側に寄せる)。
   style.css:1123 の #content #main h1 { text-align:center } を打ち消す。
   SP(<=640px) は line 2002 で center を継承しているためそのまま維持。 */
@media (min-width: 641px) {
  .single-teacher .single-lect-hero__meta { text-align: left; }
  .single-teacher #content #main .single-lect-hero__name { text-align: left; }
}
.single-teacher .single-lect-hero__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
@media (max-width: 640px) { .single-teacher .single-lect-hero__tags { justify-content: center; } }
.single-teacher .single-lect-hero__tags span {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.75rem;
  color: #4d6660;
  background: #e4f0eb;
  padding: 0.18rem 0.7rem;
  border-radius: 999px;
}

/* 指導項目 / 対応時間 */
.single-teacher .single-lect-info {
  background: #fff;
  border: 1px solid #c9c2b4;
  border-radius: 12px;
  padding: 1.3rem 1.4rem;
  margin-bottom: 1.4rem;
}
.single-teacher .single-lect-info__row {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 1rem;
  padding: 0.6rem 0;
  border-bottom: 1px dashed #c9c2b4;
}
.single-teacher .single-lect-info__row:last-child { border-bottom: 0; }
@media (max-width: 640px) {
  .single-teacher .single-lect-info__row { grid-template-columns: 1fr; gap: 0.25rem; }
}
.single-teacher .single-lect-info__label {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  color: #2e4882;
  letter-spacing: 0.06em;
  align-self: start;
  padding-top: 0.15rem;
}
.single-teacher .single-lect-info__value {
  font-size: 0.94rem;
  color: #3a4a56;
  line-height: 1.85;
}

/* 本文(post_content そのまま。h2 帯とピル画像に override) */
.single-teacher .single-lect-body {
  background: #fff;
  border: 1px solid #c9c2b4;
  border-radius: 12px;
  padding: 1.6rem 1.6rem 1rem;
  margin-bottom: 1.6rem;
}
.single-teacher .single-lect-body h2 {
  background: #2e4882 !important;
  color: #fff !important;
  padding: 0.6rem 1rem !important;
  border: none !important;
  border-radius: 6px;
  font-size: 1rem !important;
  letter-spacing: 0.1em;
  margin: 1.6rem 0 1rem !important;
}
.single-teacher .single-lect-body h2:first-child { margin-top: 0 !important; }
.single-teacher .single-lect-body h2::before,
.single-teacher .single-lect-body h2::after { display: none !important; }
/* ピル画像(150×40 の分類バッジ)は saturation を落として統一感を出す */
.single-teacher .single-lect-body .wp-block-gallery img,
.single-teacher .single-lect-body figure.wp-block-image img[width="150"] {
  filter: saturate(0.6) contrast(0.95) brightness(1.02);
  mix-blend-mode: multiply;
  transition: filter .25s;
}
.single-teacher .single-lect-body p { line-height: 1.9; color: #3a4a56; }

/* CTA — 2026-09-06 グラデ廃止(右側青みの指摘) → アイボリー単色 (--bg-ivory 相当) */
.single-teacher .single-lect-cta {
  background: #f0ece2;
  border: 1px solid #c9c2b4;
  border-radius: 14px;
  padding: 2rem 1.6rem;
  text-align: center;
  margin-bottom: 1.4rem;
}
.single-teacher .single-lect-cta__title {
  font-size: 1.15rem;
  color: #1a2838;
  margin: 0 0 0.7rem;
  border-left: none !important;
  padding-left: 0 !important;
}
.single-teacher .single-lect-cta__title::before,
.single-teacher .single-lect-cta__title::after { display: none !important; }
.single-teacher .single-lect-cta__lead {
  font-size: 0.92rem;
  color: #4d6660;
  margin: 0 0 1.2rem;
  line-height: 1.75;
}
.single-teacher .single-lect-cta .eigo-btn {
  display: inline-block;
  padding: 1rem 2.4rem;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none !important;
  transition: transform .25s, box-shadow .25s, background .25s;
  line-height: 1.2;
  background: #c9a25e;
  color: #fff !important;
}
.single-teacher .single-lect-cta .eigo-btn:hover {
  background: #b0813d;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(176,129,61,.4);
}
.single-teacher .single-lect-cta .eigo-btn--outline {
  background: transparent;
  color: #2e4882 !important;
  border: 1.5px solid #2e4882;
}
.single-teacher .single-lect-cta__sub {
  font-size: 0.78rem;
  color: #6a8178;
  margin: 0.9rem 0 0;
}
/* T33: CTA 下注記が 4行構成(sub×2 + sub-note×2)になった 2026-09-15。
   sub 同士は密に、sub → sub-note の切替時に 1行分の余白を挟む。 */
.single-teacher .single-lect-cta__sub + .single-lect-cta__sub { margin-top: 0.1rem; }
.single-teacher .single-lect-cta__sub + .single-lect-cta__sub-note { margin-top: 0.9rem; }

/* 一覧へ戻る */
.single-teacher .single-lect-back {
  text-align: center;
  margin: 2rem 0 3rem;
}
.single-teacher .single-lect-back a {
  font-size: 0.9rem;
  color: #2e4882;
  text-decoration: none;
  padding: 0.5rem 1rem;
}
.single-teacher .single-lect-back a:hover { text-decoration: underline; }

/* =====================================================
   T1. トップ(旧、後方互換用の残置)
   ===================================================== */


/* 既存の .catch_box / .three_box が .home で使われた場合の
   float 解除セーフティ(ID=2以外にも同じ症状が波及するのを防ぐ) */
.home .catch_box,
.page-id-2 .catch_box {
  float: none !important;
  width: 100% !important;
  max-width: 780px;
  margin: 1rem auto !important;
}

/* --- ID=2 の全 <section> を中央寄せ・共通 max-width --- */
.page-id-2 .eigo-section {
  max-width: 1080px;
  margin: 2.4rem auto;
  padding: 0 1rem;
}
.page-id-2 .eigo-hero-lead {
  max-width: 780px;
  margin: 1.5rem auto 2.5rem;
  padding: 2rem 1.8rem;
  background: linear-gradient(135deg, #eaf4fb 0%, #f4faec 100%);
  border-radius: 16px;
  border: 1px solid var(--eigo-line);
}
.page-id-2 .eigo-hero-lead h2 {
  margin-top: 0;
  font-size: clamp(1.3rem, 3vw, 1.7rem);
  color: #1a3a5c;
  line-height: 1.5;
}
.page-id-2 .eigo-hero-lead p {
  line-height: 1.85;
  color: var(--eigo-ink);
}

/* --- 共通 h2 見出し(ID=2 内) --- */
.page-id-2 .eigo-section > h2 {
  text-align: center;
  font-size: clamp(1.25rem, 3vw, 1.6rem);
  color: #1a3a5c;
  margin: 0 0 1.5rem;
  position: relative;
  padding-bottom: 0.6rem;
}
.page-id-2 .eigo-section > h2::after {
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  background: linear-gradient(90deg, var(--eigo-primary), #c9a25e);
  margin: 0.6rem auto 0;
  border-radius: 2px;
}

/* --- こんな方におすすめ チェックリスト --- */
.page-id-2 .eigo-check-list {
  list-style: none;
  padding: 0;
  max-width: 780px;
  margin: 0 auto;
}
.page-id-2 .eigo-check-list li {
  padding: 0.75rem 0.75rem 0.75rem 2.4rem;
  border-bottom: 1px dashed var(--eigo-line);
  position: relative;
  line-height: 1.7;
  color: var(--eigo-ink);
}
.page-id-2 .eigo-check-list li::before {
  content: "✓";
  position: absolute;
  left: 0.6rem;
  top: 0.75rem;
  width: 1.4rem;
  height: 1.4rem;
  background: var(--eigo-primary);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  font-weight: 700;
}

/* --- 3 カード グリッド (選ばれる理由 / 対応レッスン 共通) --- */
.page-id-2 .eigo-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}
@media (max-width: 900px) {
  .page-id-2 .eigo-card-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .page-id-2 .eigo-card-grid { grid-template-columns: 1fr; gap: 0.9rem; }
}

.page-id-2 .eigo-card {
  background: #fff;
  border: 1px solid var(--eigo-line);
  border-radius: 12px;
  padding: 1.5rem 1.3rem 1.3rem;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  transition: box-shadow var(--eigo-transition), transform var(--eigo-transition), border-color var(--eigo-transition);
  overflow: hidden;
}
.page-id-2 .eigo-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--eigo-primary), #c9a25e);
}
.page-id-2 .eigo-card:hover {
  border-color: var(--eigo-primary);
  box-shadow: var(--eigo-shadow-md);
  transform: translateY(-3px);
}
.page-id-2 .eigo-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  background: #eaf4fb;
  border-radius: 50%;
  margin: 0.3rem auto 0.2rem;
}
.page-id-2 .eigo-card__title {
  font-size: 1.1rem;
  color: #1a3a5c;
  font-weight: 700;
  text-align: center;
  margin: 0.3rem 0 0.3rem;
  line-height: 1.4;
}
.page-id-2 .eigo-card__body {
  font-size: 0.92rem;
  color: var(--eigo-ink);
  line-height: 1.75;
  flex-grow: 1;
  margin: 0;
}
.page-id-2 .eigo-card__cta {
  margin: 0.3rem 0 0;
  text-align: center;
}

/* --- 対応レッスン カード内: 見出しヨコ + ピルリスト --- */
.page-id-2 .eigo-lesson-head {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  border-bottom: 1px solid var(--eigo-line);
  padding-bottom: 0.7rem;
  margin-bottom: 0.5rem;
}
.page-id-2 .eigo-lesson-head .eigo-card__title {
  text-align: left;
  margin: 0;
  flex: 1;
}
.page-id-2 .eigo-lesson-icon {
  font-size: 1.4rem;
  color: #c9a25e;
}
.page-id-2 .eigo-pill-list {
  list-style: none;
  padding: 0;
  margin: 0;
  flex-grow: 1;
}
.page-id-2 .eigo-pill-list li {
  font-size: 0.9rem;
  padding: 0.55rem 0.5rem 0.55rem 1.6rem;
  color: var(--eigo-ink);
  line-height: 1.55;
  position: relative;
}
.page-id-2 .eigo-pill-list li::before {
  content: "▸";
  position: absolute;
  left: 0.3rem;
  top: 0.55rem;
  color: var(--eigo-primary);
  font-weight: 700;
}

/* --- 対応レッスン セクションの上の余白を詰める --- */
.page-id-2 .eigo-lessons { margin-top: 1.2rem; }

/* --- 汎用ボタン --- */
.page-id-2 .eigo-btn {
  display: inline-block;
  padding: 0.65rem 1.6rem;
  border-radius: 999px;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none !important;
  transition: transform var(--eigo-transition), box-shadow var(--eigo-transition), background var(--eigo-transition);
  line-height: 1.2;
}
.page-id-2 .eigo-btn--primary {
  background: var(--eigo-primary);
  color: #fff !important;
}
.page-id-2 .eigo-btn--primary:hover {
  background: #1e336a;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(46,72,130, 0.35);
}
.page-id-2 .eigo-btn--outline {
  background: transparent;
  color: var(--eigo-primary) !important;
  border: 1.5px solid var(--eigo-primary);
}
.page-id-2 .eigo-btn--outline:hover {
  background: var(--eigo-primary);
  color: #fff !important;
}
.page-id-2 .eigo-btn--lg {
  padding: 1rem 2.4rem;
  font-size: 1rem;
}

/* --- 料金カード --- */
.page-id-2 .eigo-price-card {
  max-width: 560px;
  margin: 0 auto;
  padding: 2rem 1.8rem;
  background: #fff;
  border: 1px solid var(--eigo-line);
  border-radius: 16px;
  box-shadow: var(--eigo-shadow-sm);
  text-align: center;
}
.page-id-2 .eigo-price-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 1rem;
}
.page-id-2 .eigo-price-table th,
.page-id-2 .eigo-price-table td {
  padding: 0.9rem 1rem;
  border-bottom: 1px solid var(--eigo-line);
  text-align: left;
  font-size: 1rem;
}
.page-id-2 .eigo-price-table th {
  background: #f6fafd;
  color: #1a3a5c;
  font-weight: 700;
  width: 55%;
}
.page-id-2 .eigo-price-table td {
  text-align: right;
  color: var(--eigo-primary);
  font-weight: 700;
}
.page-id-2 .eigo-price-note {
  padding: 0.85rem 1rem;
  background: #fffde7;
  border-radius: 8px;
  margin: 1rem 0 0.6rem;
  font-size: 0.95rem;
}
.page-id-2 .eigo-price-note-sub {
  font-size: 0.85rem;
  color: var(--eigo-ink-mute);
  margin: 0.6rem 0 0;
}

/* --- STEP フロー --- */
.page-id-2 .eigo-step-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  max-width: 900px;
  margin: 0 auto;
}
@media (max-width: 700px) {
  .page-id-2 .eigo-step-grid { grid-template-columns: 1fr; }
}
.page-id-2 .eigo-step {
  background: #fff;
  border: 1px solid var(--eigo-line);
  border-radius: 12px;
  padding: 1.5rem 1.2rem;
  text-align: center;
  position: relative;
}
.page-id-2 .eigo-step__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--eigo-primary), #c9a25e);
  color: #fff;
  font-weight: 700;
  font-size: 1.1rem;
  margin-bottom: 0.6rem;
}
.page-id-2 .eigo-step h3 {
  font-size: 1.05rem;
  color: #1a3a5c;
  margin: 0.4rem 0;
}
.page-id-2 .eigo-step p {
  font-size: 0.88rem;
  line-height: 1.7;
  color: var(--eigo-ink);
  margin: 0;
  text-align: left;
}

/* --- CTA ボタン中央 --- */
.page-id-2 .eigo-cta-buttons {
  text-align: center;
  margin: 0.6rem 0;
}

/* --- ブログ / カスハラ セクション --- */
.page-id-2 .eigo-blog p,
.page-id-2 .eigo-caution p {
  max-width: 780px;
  margin: 0.7rem auto;
  line-height: 1.85;
  color: var(--eigo-ink);
}
.page-id-2 .eigo-caution {
  background: #f8f9fa;
  padding: 2rem 1.5rem;
  border-radius: 12px;
  border-left: 4px solid #c9a25e;
}
.page-id-2 .eigo-caution h2 {
  text-align: left;
  font-size: 1.15rem;
}
.page-id-2 .eigo-caution h2::after { display: none; }

/* --- メニューテーブル(旧6サムネナビ)は既存の table 上書きが効くのでそのまま --- */

/* =====================================================
   T2. トップ (ID=2) sample1(A案) 準拠 レイアウト
   post_content 側 .top-* クラス。既存 .eigo-* とは干渉しない。
   ===================================================== */

/* --- 共通セクション --- */
.page-id-2 .top-section {
  max-width: 1080px;
  margin: 3rem auto;
  padding: 0 1rem;
}
.page-id-2 .top-section-head {
  text-align: center;
  margin-bottom: 2rem;
}
.page-id-2 .top-section-head .top-en {
  display: inline-block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.28em;
  color: var(--eigo-primary);
  font-weight: 700;
  margin-bottom: 0.6rem;
}
.page-id-2 .top-section-head h2 {
  font-size: clamp(1.3rem, 3.6vw, 1.9rem);
  line-height: 1.5;
  color: #1a2838;
  margin: 0;
  font-weight: 700;
  border-left: none !important;
  padding-left: 0 !important;
}
.page-id-2 .top-section-head h2::after,
.page-id-2 .top-section-head h2::before { display: none !important; }

.page-id-2 .top-accent {
  background: linear-gradient(transparent 62%, rgba(153,191,66,.4) 62%);
  padding: 0 .1em;
}

/* --- 6サムネナビ --- */
.page-id-2 .top-menu { margin-top: 1.4rem; }
.page-id-2 .top-thumbs {
  border-collapse: separate;
  border-spacing: 12px;
  width: 100%;
  table-layout: fixed;
  border: 0 !important;
  background: transparent !important;
}
.page-id-2 .top-thumbs td {
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  text-align: center;
}
.page-id-2 .top-thumbs img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  transition: transform .25s, box-shadow .25s;
}
.page-id-2 .top-thumbs a:hover img {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(46,72,130,.18);
}

/* --- ヒーロー(写真+コピー グリッド) --- */
.page-id-2 .top-hero {
  max-width: 820px;
  margin: 2rem auto 2.4rem;
  padding: 0 1rem;
  text-align: center;
}
.page-id-2 .top-hero--photo {
  max-width: 1180px;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 2rem;
  align-items: center;
  text-align: left;
}
@media (max-width: 820px) {
  .page-id-2 .top-hero--photo { grid-template-columns: 1fr; gap: 1.3rem; text-align: center; }
}
.page-id-2 .top-hero__media {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 14px 34px rgba(26,40,56,.14);
  aspect-ratio: 4 / 3;
}
.page-id-2 .top-hero__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center var(--face-y, 40%);
}
@media (max-width: 820px) {
  .page-id-2 .top-hero__media { aspect-ratio: 16 / 10; max-height: 320px; margin: 0 auto; }
}
.page-id-2 .top-hero__copy { padding: 0.4rem 0; }
@media (max-width: 820px) { .page-id-2 .top-hero__copy .top-lead { text-align: left; } }
.page-id-2 .top-hero--photo .top-eyebrow { margin-bottom: 0.9rem; }
.page-id-2 .top-hero--photo .top-h1 { font-size: clamp(1.5rem, 4.4vw, 2.2rem); text-align: left; }
@media (max-width: 820px) { .page-id-2 .top-hero--photo .top-h1 { text-align: center; } }
.page-id-2 .top-hero--photo .top-cta-row { justify-content: flex-start; }
@media (max-width: 820px) { .page-id-2 .top-hero--photo .top-cta-row { justify-content: center; } }
.page-id-2 .top-hero--photo .top-pills { justify-content: flex-start; }
@media (max-width: 820px) { .page-id-2 .top-hero--photo .top-pills { justify-content: center; } }

.page-id-2 .top-hero .top-eyebrow {
  display: inline-block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  color: var(--eigo-primary);
  border-bottom: 1px solid var(--eigo-primary);
  padding-bottom: 0.28rem;
  margin-bottom: 1.1rem;
}
.page-id-2 .top-h1 {
  font-size: clamp(1.7rem, 5.5vw, 2.6rem);
  line-height: 1.5;
  color: #1a2838;
  font-weight: 700;
  margin: 0 0 1.2rem;
  border-left: none !important;
  padding-left: 0 !important;
}
.page-id-2 .top-h1::after,
.page-id-2 .top-h1::before { display: none !important; }
.page-id-2 .top-lead {
  font-size: 1rem;
  line-height: 1.9;
  color: #4d6660;
  text-align: left;
  max-width: 40em;
  margin: 0 auto 1.6rem;
}
@media (min-width: 700px) {
  .page-id-2 .top-lead { text-align: center; }
}
.page-id-2 .top-cta-row {
  display: flex;
  gap: 0.8rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 1.4rem;
}
.page-id-2 .top-pills {
  list-style: none !important;
  padding: 0 !important;
  margin: 1.2rem 0 0 !important;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}
.page-id-2 .top-pills li {
  background: #fff;
  border: 1px solid #dfe6ea;
  color: #4d6660;
  padding: 0.42rem 1rem;
  border-radius: 999px;
  font-size: 0.83rem;
  line-height: 1.4;
  list-style: none !important;
}
.page-id-2 .top-pills li::before,
.page-id-2 .top-pills li::marker { content: "" !important; display: none !important; }
/* PC (641px+): 中央ピル短縮後もタブレット幅(~1024)では default が 3行になるため、
   font-size は 0.78rem を下限、padding/gap も僅かにタイトンして 1200+ は 1行、~1024 は 2行に収める */
@media (min-width: 641px) {
  .page-id-2 .top-pills { gap: 0.4rem; }
  .page-id-2 .top-pills li {
    padding: 0.4rem 0.9rem;
    font-size: 0.78rem;
  }
}
/* SP: 3ピルを縦積みに(2026-09-07)
   中央ピルの文言長期化で 375px 幅では横並びが破綻し右端が切れるため、
   フォント縮小(可読性低下)や自然折返し(不安定)ではなく縦積みで安定化 */
@media (max-width: 640px) {
  .page-id-2 .top-pills {
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 0 0.5rem !important;
  }
  .page-id-2 .top-pills li {
    display: block;
    max-width: 100%;
    width: auto;
    text-align: center;
    padding: 0.4rem 1rem;
    font-size: 0.85rem;
    box-sizing: border-box;
    white-space: normal;
  }
}

/* --- PROBLEM --- */
.page-id-2 .top-problem { background: #fff; }
.page-id-2 .top-worries {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}
@media (max-width: 780px) {
  .page-id-2 .top-worries { grid-template-columns: 1fr; }
}
.page-id-2 .top-worry {
  background: #f7fbfd;
  border: 1px solid #e4edf2;
  border-radius: 12px;
  padding: 1.5rem 1.3rem;
  text-align: center;
}
.page-id-2 .top-worry svg { margin-bottom: 0.6rem; }
.page-id-2 .top-worry p {
  font-size: 0.92rem;
  line-height: 1.75;
  color: #3a4a56;
  margin: 0;
}
.page-id-2 .top-worry-note {
  text-align: center;
  font-size: 1.05rem;
  color: #1a2838;
  margin-top: 1.6rem;
  line-height: 1.7;
}
.page-id-2 .top-worry-note strong {
  color: var(--eigo-primary);
  border-bottom: 2px solid #c9a25e;
  padding-bottom: 2px;
}

/* --- REASON --- */
.page-id-2 .top-reason-list {
  display: flex;
  flex-direction: column;
  gap: 1.3rem;
}
.page-id-2 .top-reason {
  background: #fff;
  border: 1px solid #e4edf2;
  border-radius: 12px;
  padding: 1.8rem 1.6rem;
  position: relative;
  transition: box-shadow .25s, transform .25s;
}
.page-id-2 .top-reason:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(46,72,130,.12);
}
.page-id-2 .top-reason__num {
  display: inline-block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.24em;
  color: #c9a25e;
  font-weight: 700;
  margin-bottom: 0.55rem;
}
.page-id-2 .top-reason h3 {
  font-size: 1.15rem;
  line-height: 1.55;
  color: #1a2838;
  margin: 0 0 0.9rem;
  font-weight: 700;
  border-left: none !important;
  padding-left: 0 !important;
}
.page-id-2 .top-reason h3::after,
.page-id-2 .top-reason h3::before { display: none !important; }
.page-id-2 .top-reason p {
  font-size: 0.95rem;
  line-height: 1.85;
  color: #4d6660;
  margin: 0;
}

/* --- TEACHERS --- */
.page-id-2 .top-teachers { background: #f7fbfd; padding: 2.4rem 1rem; border-radius: 12px; }
.page-id-2 .top-teachers-lead {
  text-align: center;
  color: #4d6660;
  max-width: 40em;
  margin: 0 auto 1.8rem;
  font-size: 0.95rem;
  line-height: 1.85;
}
.page-id-2 .top-teacher-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
  margin-bottom: 1.8rem;
}
@media (max-width: 780px) {
  .page-id-2 .top-teacher-cards { grid-template-columns: 1fr; }
}
.page-id-2 .top-teacher-card {
  background: #fff;
  border: 1px solid #e4edf2;
  border-radius: 12px;
  padding: 1.4rem 1.1rem 1.2rem;
  text-align: center;
  transition: box-shadow .25s, transform .25s, border-color .25s;
  /* 2026-09-06 <a> ラップに対応: 下線/色継承の抑制 */
  display: block;
  color: inherit !important;
  text-decoration: none !important;
  cursor: pointer;
}
.page-id-2 .top-teacher-card:hover,
.page-id-2 .top-teacher-card:focus-visible {
  border-color: var(--eigo-primary);
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(46,72,130,.14);
  text-decoration: none !important;
}
.page-id-2 a.top-teacher-card:hover .top-teacher-card__name {
  color: var(--eigo-primary);
}
.page-id-2 .top-teacher-card__photo {
  width: 110px;
  height: 110px;
  border-radius: 50%;
  margin: 0 auto 0.9rem;
  overflow: hidden;
  background: #f8f5ee;
  border: 1px solid #c9c2b4;
  box-shadow: none !important;
}
.page-id-2 .top-teacher-card__photo::before,
.page-id-2 .top-teacher-card__photo::after { content: none !important; display: none !important; }

/* =====================================================
   T14. 講師写真 v2 個別微調整 (--photo-zoom) 2026-09-03
   共通デフォルト: scale(1.16) transform-origin: center top
   下記は個別に切れ目が見える講師のみ数値を上げる。
   ここに集中管理。テンプレ側は data-slug 属性を出すだけ、
   inline style は使わない。
   ===================================================== */
.lect-card__photo[data-slug="sueyoshi"] img,
.single-lect-hero__photo[data-slug="sueyoshi"] img,
.top-teacher-card__photo img[src*="sueyoshi"] {
  --photo-zoom: 1.24;
}
/* 玉木・大倉・石田(トップページ 3枚)は post_content のため src で target
   URL-encoded 日本語 (%E7%8E%89%E6%9C%A8 = 玉木, %E5%A4%A7%E5%80%89 = 大倉, %E7%9F%B3%E7%94%B0 = 石田) */
.page-id-2 .top-teacher-card__photo img[src*="lecturers/"] {
  --photo-zoom: 1.18;
}
/* 玉木・大倉 circle 版(2026-09-06 差替)は素材が既に丸枠に収まっているため 1(等倍)
   拡大すると円の下端が再び切れて修正の意味が消える。
   石田は circle 未差替のため既定 1.18 のまま維持。 */
.lect-card__photo[data-slug="tamaki"] img,
.single-lect-hero__photo[data-slug="tamaki"] img,
.lect-card__photo[data-slug="okura"] img,
.single-lect-hero__photo[data-slug="okura"] img,
.page-id-2 .top-teacher-card__photo img[src*="circle"] {
  --photo-zoom: 1 !important;
}

/* Top 3枚 plain 版(2026-09-07 差替)/lecturer/ と揃えた素の丸枠。
   素材が 1000×1000 の #f8f5ee 背景で既に円構図に収まっているため 等倍 base。
   石田は他 2枚より顔比率が小さいため個別に拡大。 */
.page-id-2 .top-teacher-card__photo img[src*="-plain"] {
  --photo-zoom: 1 !important;
}
.page-id-2 .top-teacher-card__photo img[src*="ishida-plain"] {
  --photo-zoom: 1.18 !important;
}

/* =====================================================
   T49 (2026-09-17): Topカード 3枚に per-card スラッグクラスが付いたので、
   個別 object-position / transform-origin を安定して指定可能に。
   石田(illust版): 元素材の顔が画像の中央より 上寄り + transform-origin: center top
   の共通指定で さらに頭側が押しつけられて 顔が円上部に寄って見えるため、
   石田のみ transform-origin を center 45% にして顔を円枠中央付近に戻す。
   玉木・大倉 は 現状のバランスを維持するため 上書きしない。
   ===================================================== */
.page-id-2 .top-teacher-card.top-teacher-card--ishida .top-teacher-card__photo img {
  /* 元テーマの `#content #main img { transform: none }` が prefixed で全 transform
     を無効化するため、石田のみ !important で 拡大+下シフト を復活させて 顔位置を
     円枠中央に持ってくる。玉木・大倉は 元素材で顔位置が中央にあるので触らない。 */
  transform: scale(1.08) translateY(6%) !important;
  transform-origin: center center !important;
}
.page-id-2 .top-teacher-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(var(--photo-zoom, 1.16));
  transform-origin: center top;
}
.page-id-2 .top-teacher-card__name {
  font-size: 1.1rem;
  font-weight: 700;
  color: #1a2838;
}
.page-id-2 .top-teacher-card__qual {
  font-size: 0.82rem;
  color: #4d6660;
  margin: 0.35rem 0 0.7rem;
  line-height: 1.55;
}
.page-id-2 .top-teacher-card__fields {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  justify-content: center;
}
.page-id-2 .top-teacher-card__fields span {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  color: #1e336a;
  background: #e4f0eb;
  padding: 0.14rem 0.6rem;
  border-radius: 999px;
}
.page-id-2 .top-teachers-cta {
  display: flex;
  gap: 0.8rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* --- COURSES --- */
.page-id-2 .top-courses { background: #fff; text-align: center; padding: 2.4rem 1rem; border-radius: 12px; }
.page-id-2 .top-courses-lead {
  color: #4d6660;
  margin: 0 auto 1.4rem;
  font-size: 0.95rem;
  max-width: 40em;
}
.page-id-2 .top-course-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
  margin-bottom: 1.8rem;
}
.page-id-2 .top-course-tags span {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.85rem;
  color: #1e336a;
  background: #e4f0eb;
  border: 1px solid #c9c2b4;
  padding: 0.35rem 1rem;
  border-radius: 999px;
}
.page-id-2 .top-price-callout {
  max-width: 520px;
  margin: 0 auto;
  background: linear-gradient(135deg, #f7fbfd 0%, #eaf5ed 100%);
  border: 1px solid #c9c2b4;
  border-radius: 14px;
  padding: 1.6rem 1.4rem;
}
.page-id-2 .top-price-callout h3 {
  font-size: 0.9rem;
  letter-spacing: 0.14em;
  color: var(--eigo-primary);
  margin: 0 0 0.5rem;
  font-weight: 700;
  border-left: none !important;
  padding-left: 0 !important;
}
.page-id-2 .top-price-callout h3::after,
.page-id-2 .top-price-callout h3::before { display: none !important; }
.page-id-2 .top-price {
  font-size: 1.8rem;
  font-weight: 700;
  color: #1a2838;
  margin: 0.25rem 0 0.6rem;
}
.page-id-2 .top-price__tax { font-size: 0.75rem; color: #6a8178; margin-left: 0.4em; }
.page-id-2 .top-price-note {
  font-size: 0.92rem;
  color: #3a4a56;
  margin-bottom: 1rem;
  line-height: 1.65;
}
.page-id-2 .top-price-note strong {
  color: #c9a25e;
  border-bottom: 2px solid #c9a25e;
  padding-bottom: 1px;
}
.page-id-2 .top-price-cta { margin: 1rem 0 0.5rem; }
.page-id-2 .top-price-sub {
  font-size: 0.82rem;
  color: #6a8178;
  margin-top: 0.6rem;
}

/* --- VOICE --- */
.page-id-2 .top-voices { background: #fff; padding: 2.4rem 1rem; border-radius: 12px; }
.page-id-2 .top-voice-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.1rem;
  margin-bottom: 1.4rem;
}
@media (max-width: 900px) {
  .page-id-2 .top-voice-list { grid-template-columns: 1fr; }
}
.page-id-2 .top-voice {
  background: #f7fbfd;
  border: 1px solid #e4edf2;
  border-radius: 12px;
  padding: 1.3rem 1.2rem;
}
.page-id-2 .top-voice__stars {
  color: #f5b301;
  font-size: 0.95rem;
  letter-spacing: 0.15em;
  margin-bottom: 0.5rem;
}
.page-id-2 .top-voice p {
  font-size: 0.9rem;
  color: #3a4a56;
  line-height: 1.85;
  margin: 0 0 0.7rem;
}
.page-id-2 .top-voice__who {
  font-size: 0.8rem !important;
  color: #6a8178;
  border-top: 1px dashed #d7e0e6;
  padding-top: 0.6rem;
  margin: 0 !important;
}
.page-id-2 .top-voice-more { text-align: center; }

/* --- FAQ --- */
.page-id-2 .top-faq-list {
  max-width: 780px;
  margin: 0 auto;
}
.page-id-2 .top-faq-list dt {
  font-weight: 700;
  color: #1a2838;
  padding: 1rem 0 0.4rem;
  border-top: 1px solid #e4edf2;
  font-size: 0.98rem;
  position: relative;
  padding-left: 1.6em;
}
.page-id-2 .top-faq-list dt::before {
  content: "Q.";
  position: absolute;
  left: 0;
  color: var(--eigo-primary);
  font-weight: 700;
}
.page-id-2 .top-faq-list dd {
  margin: 0 0 1rem 0;
  padding: 0.2rem 0 0.6rem 1.6em;
  color: #4d6660;
  line-height: 1.85;
  font-size: 0.93rem;
  position: relative;
}
.page-id-2 .top-faq-list dd::before {
  content: "A.";
  position: absolute;
  left: 0;
  color: #c9a25e;
  font-weight: 700;
}
.page-id-2 .top-faq-list dt:first-child { border-top: 0; padding-top: 0; }

/* --- TRIAL LESSON CTA (暗背景・全文字を白/アイボリー統一) --- */
.page-id-2 .top-last-push { padding-top: 1rem; }
.page-id-2 .top-contact-box {
  background: linear-gradient(135deg, #2e4882 0%, #1e336a 100%);
  color: #fff;
  border-radius: 16px;
  padding: 2.4rem 1.6rem;
  text-align: center;
  box-shadow: 0 12px 30px rgba(46,72,130,.22);
}
.page-id-2 .top-contact-box,
.page-id-2 .top-contact-box p,
.page-id-2 .top-contact-box h2,
.page-id-2 .top-contact-box h3,
.page-id-2 .top-contact-box .top-section-head h2 {
  color: #fff !important;
}
.page-id-2 .top-contact-box p {
  color: #f0ece2 !important;
  max-width: 38em;
  margin: 0 auto 1.4rem;
  line-height: 1.85;
  font-size: 0.96rem;
}
.page-id-2 .top-contact-box .top-section-head .top-en {
  color: #f0ece2 !important;
  border-color: rgba(240,236,226,.6);
}
.page-id-2 .top-contact-box strong {
  background: transparent !important;
  color: #fff !important;
  padding: 0 0 2px;
  border-radius: 0;
  border-bottom: 2px solid #c9a25e;
}
.page-id-2 .top-contact-box .eigo-btn--primary {
  background: #c9a25e;
  color: #fff !important;
}
.page-id-2 .top-contact-box .eigo-btn--primary:hover {
  background: #b0813d;
  box-shadow: 0 6px 18px rgba(0,0,0,.20);
}
.page-id-2 .top-contact-box .eigo-btn--outline {
  border-color: #f0ece2;
  color: #f0ece2 !important;
  background: transparent;
}
.page-id-2 .top-contact-box .eigo-btn--outline:hover {
  background: rgba(255,255,255,.15);
  color: #fff !important;
  border-color: #fff;
}
.page-id-2 .top-contact-cta { margin-bottom: 0.6rem; }

/* --- F2 (旧 top-reasons__deco / top-courses__deco はサイト共通 .eigo-photoband に統合、下記参照) --- */

/* --- F2: 体験CTA (写真+コピー 左右) --- */
.page-id-2 .top-contact-box--photo {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 0;
  padding: 0;
  overflow: hidden;
  align-items: stretch;
}
@media (max-width: 780px) {
  .page-id-2 .top-contact-box--photo { grid-template-columns: 1fr; }
}
.page-id-2 .top-contact-box__deco {
  min-height: 100%;
  overflow: hidden;
}
.page-id-2 .top-contact-box__deco img {
  width: 100%;
  height: 100%;
  min-height: 260px;
  object-fit: cover;
  object-position: center var(--face-y, 40%);
  display: block;
}
.page-id-2 .top-contact-box__body {
  padding: 2rem 1.8rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* --- F2: メニュー SVGカードグリッド(旧6サムネ置換) --- */
.page-id-2 .top-menu-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  max-width: 900px;
  margin: 0 auto;
}
@media (max-width: 720px) { .page-id-2 .top-menu-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 400px) { .page-id-2 .top-menu-grid { grid-template-columns: 1fr; } }
.page-id-2 .top-menu-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  background: #fff;
  border: 1px solid var(--eigo-line);
  border-radius: 14px;
  padding: 1.5rem 1rem;
  color: var(--eigo-ink) !important;
  text-decoration: none !important;
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
.page-id-2 .top-menu-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(46,72,130,.12);
  border-color: var(--eigo-primary);
}
.page-id-2 .top-menu-card__icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--eigo-bg-mint);
  color: var(--eigo-primary);
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-id-2 .top-menu-card__icon svg { width: 28px; height: 28px; }
.page-id-2 .top-menu-card__label {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--eigo-ink);
}

/* --- BLOG --- */
.page-id-2 .top-blog { text-align: center; }
.page-id-2 .top-blog .top-section-head { margin-bottom: 0.9rem; }
.page-id-2 .top-blog-list {
  margin: 0 auto;
  max-width: 720px;
  text-align: left;
}
.page-id-2 .top-blog-list ul.newsblog {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.page-id-2 .top-blog-list ul.newsblog li {
  padding: 0.55rem 0;
  border-bottom: 1px solid #e4edf2;
  list-style: none !important;
}
.page-id-2 .top-blog-list ul.newsblog li::before,
.page-id-2 .top-blog-list ul.newsblog li::marker { content: "" !important; display: none !important; }
.page-id-2 .top-blog-more { margin-top: 1.2rem; }

/* --- CAUTION --- */
.page-id-2 .top-caution {
  background: #f8f9fa;
  padding: 2rem 1.5rem;
  border-radius: 12px;
  border-left: 4px solid #c9a25e;
  max-width: 900px;
}
.page-id-2 .top-caution h2 {
  text-align: left;
  font-size: 1.1rem;
  margin: 0 0 0.8rem;
  border-left: none !important;
  padding-left: 0 !important;
  color: #1a2838;
}
.page-id-2 .top-caution h2::after,
.page-id-2 .top-caution h2::before { display: none !important; }
.page-id-2 .top-caution p {
  max-width: none;
  margin: 0.6rem 0;
  line-height: 1.85;
  color: #3a4a56;
  font-size: 0.9rem;
}

/* --- br-sp / br-sp2 表示制御 --- */
.page-id-2 .br-sp,
.page-id-2 .br-sp2 { display: none; }
@media (max-width: 640px) {
  .page-id-2 .br-sp { display: inline; }
}
@media (max-width: 400px) {
  .page-id-2 .br-sp2 { display: inline; }
}

/* =====================================================
   M1. 微修正バッチ (2026-09-01) — トップ+入口 10件
   ===================================================== */

/* [1] トップ ヒーロー: 見出し折返し均等化・本文左揃え・行間・最大幅・余白詰め */
.page-id-2 .top-hero {
  margin-top: 1.5rem !important;
  margin-bottom: 1.8rem !important;
}
.page-id-2 .top-h1 {
  text-wrap: balance;
  word-break: keep-all;
  overflow-wrap: normal;
  font-size: clamp(1.4rem, 3.6vw, 1.95rem) !important;
  line-height: 1.55;
  margin: 0 0 1rem !important;
}
.page-id-2 .top-lead {
  text-align: left !important;
  line-height: 1.9 !important;
  max-width: 34em !important;
  font-size: 0.96rem !important;
  margin-bottom: 1.2rem !important;
}
.page-id-2 .top-hero--photo .top-lead { margin-left: 0; }
.page-id-2 .top-hero .top-cta-row { margin-bottom: 1rem; }
.page-id-2 .top-hero .top-pills { margin-top: 0.8rem !important; }
.page-id-2 .top-hero__media { aspect-ratio: 4 / 3.2; }
.page-id-2 .top-hero--photo { gap: 1.8rem; }

/* [2] お悩みカード: 下 padding 確保、締め文がカード内に収まる */
.page-id-2 .top-problem {
  background: #fff;
  border: 1px solid var(--eigo-line);
  border-radius: 14px;
  padding: 2rem 1.6rem 2.2rem !important;
}
.page-id-2 .top-worries { margin-bottom: 1.4rem; }
.page-id-2 .top-worry-note {
  margin: 0.4rem 0 0 !important;
  padding: 0.4rem 0 0.2rem;
}

/* [3] FAQ: Q/A ラベル固定+レイアウト整理(dt/dd を縦積みで安定) */
.page-id-2 .top-faq-list dt,
.page-id-2 .top-faq-list dd {
  padding-left: 2em !important;
  position: relative;
}
.page-id-2 .top-faq-list dt {
  border-top: 1px solid var(--eigo-line);
  padding-top: 1rem !important;
  padding-bottom: 0.5rem !important;
  font-size: 1rem !important;
  line-height: 1.65;
}
.page-id-2 .top-faq-list dt::before {
  content: "Q.";
  position: absolute;
  left: 0.3em;
  top: 1rem;
  color: var(--eigo-primary);
  font-weight: 700;
  width: 1.6em;
}
.page-id-2 .top-faq-list dd {
  padding-top: 0.2rem !important;
  padding-bottom: 1rem !important;
  margin: 0 0 0 !important;
  line-height: 1.9;
  font-size: 0.94rem;
}
.page-id-2 .top-faq-list dd::before {
  content: "A.";
  position: absolute;
  left: 0.3em;
  top: 0.2rem;
  color: #c9a25e;
  font-weight: 700;
  width: 1.6em;
}
.page-id-2 .top-faq-list dt:first-child { border-top: 0; padding-top: 0 !important; }
.page-id-2 .top-faq-list dt:first-child::before { top: 0; }

/* [4] TRIAL CTA: 写真パネル全高+テキスト左揃え+最大幅+単独行防止 */
.page-id-2 .top-contact-box--photo {
  align-items: stretch;
}
.page-id-2 .top-contact-box__deco {
  align-self: stretch;
  height: 100%;
}
.page-id-2 .top-contact-box__deco img {
  width: 100%;
  height: 100%;
  min-height: 100%;
  object-fit: cover;
  object-position: center;
}
.page-id-2 .top-contact-box__body {
  padding: 2.4rem 2rem !important;
  text-align: left;
  align-items: flex-start;
}
.page-id-2 .top-contact-box__body .top-section-head { text-align: left; }
.page-id-2 .top-contact-box__body p {
  max-width: 30em;
  text-wrap: pretty;
  margin: 0 0 1.2rem !important;
}
.page-id-2 .top-contact-box__body .top-contact-cta,
.page-id-2 .top-contact-box__body .top-contact-sub { text-align: left; margin: 0.4rem 0; }
@media (max-width: 780px) {
  .page-id-2 .top-contact-box__deco img { min-height: 220px; }
  .page-id-2 .top-contact-box__body { padding: 1.8rem 1.4rem !important; }
}

/* [5] /lecturer/ ヒーロー: 行間・段落・ピル調整 */
.page-template-page-lecturer .lect-hero__lead {
  line-height: 1.9 !important;
  margin-bottom: 0.9rem !important;
}
.page-template-page-lecturer .lect-hero__lead + .lect-hero__lead {
  margin-top: 0;
  margin-bottom: 1.4rem !important;
}
.page-template-page-lecturer .lect-hero__pills li {
  font-size: 0.78rem;
  padding: 0.32rem 0.85rem;
}
@media (min-width: 780px) {
  .page-template-page-lecturer .lect-hero__pills {
    justify-content: flex-start;
    gap: 0.4rem;
  }
}

/* [6] 絞り込みバー: 詰めて 1行(PC) / 折返し(SP) */
.page-template-page-lecturer .lect-filter-bar {
  gap: 0.4rem !important;
  padding: 0 0.5rem;
}
.page-template-page-lecturer .lect-filter-btn {
  font-size: 0.79rem;
  padding: 0.36rem 0.88rem;
  white-space: nowrap;
}
@media (max-width: 720px) {
  .page-template-page-lecturer .lect-filter-btn {
    font-size: 0.76rem;
    padding: 0.32rem 0.78rem;
  }
}

/* [7] カード顔写真: object-fit 保証・object-position center */
.page-template-page-lecturer .lect-card__photo img {
  object-fit: cover !important;
  object-position: center center;
}

/* [9] 対応時間 表示: 全文改行OK、切り詰めなし */
.page-template-page-lecturer .lect-card__items,
.page-template-page-lecturer .lect-card__times {
  min-height: 0 !important;
  overflow: visible !important;
  text-overflow: unset !important;
  display: block !important;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.page-template-page-lecturer .lect-card__items { line-height: 1.7; margin-bottom: 0.5rem; }
.page-template-page-lecturer .lect-card__times { line-height: 1.65; margin-bottom: 0.8rem; }

/* [10] タグの折り返し 均等・余白統一 */
.page-template-page-lecturer .lect-card__tags {
  gap: 0.32rem;
  margin-bottom: 0.7rem;
  align-items: center;
}
.page-template-page-lecturer .lect-card__tags span {
  line-height: 1.6;
  white-space: nowrap;
}

/* =====================================================
   M2. FAQ カード構造 (dt/dd → div ネスト)
   ===================================================== */
.page-id-2 .top-faq-list {
  max-width: 780px;
  margin: 0 auto;
  display: grid;
  gap: 1rem;
}
.page-id-2 .top-faq-item {
  background: #fff;
  border: 1px solid var(--eigo-line);
  border-radius: 12px;
  padding: 1.2rem 1.4rem;
  box-shadow: 0 2px 8px rgba(26,40,56,.04);
}
.page-id-2 .top-faq-item__q,
.page-id-2 .top-faq-item__a {
  display: flex;
  gap: 0.7rem;
  align-items: flex-start;
}
.page-id-2 .top-faq-item__q {
  padding-bottom: 0.7rem;
  margin-bottom: 0.7rem;
  border-bottom: 1px dashed var(--eigo-line);
}
.page-id-2 .top-faq-item__label {
  flex: 0 0 1.6em;
  font-weight: 700;
  line-height: 1.85;
  font-size: 1.02rem;
}
.page-id-2 .top-faq-item__label--q { color: #c9a25e; }
.page-id-2 .top-faq-item__label--a { color: var(--eigo-primary); }
.page-id-2 .top-faq-item__q .top-faq-item__text {
  font-weight: 700;
  color: #1a2838;
  font-size: 1rem;
  line-height: 1.7;
  flex: 1;
  word-break: normal;
  overflow-wrap: break-word;
}
.page-id-2 .top-faq-item__a .top-faq-item__text {
  color: #4d6660;
  font-size: 0.94rem;
  line-height: 1.9;
  flex: 1;
  word-break: normal;
  overflow-wrap: break-word;
}
@media (max-width: 480px) {
  .page-id-2 .top-faq-item { padding: 1rem 1rem; }
  .page-id-2 .top-faq-item__label { flex-basis: 1.4em; }
}

/* =====================================================
   N1. ヘッダーナビ 4項目化 (Top/講師/コース/声)
   2026-09-02 update: --highlight を廃止、装飾色と現在地表示を分離
     - 通常: 4項目とも同一ネイビー
     - 現在地: .is-current で ゴールド文字 + 2px ゴールド下線
     - --arrow: 「あなたの講師を選ぶ」に → アイコンのみ残す(色は通常時ネイビー)
     - list-style: none を marker まで含めて徹底
   ===================================================== */
#menu.eigo-nav,
.mobile_menu .eigo-mobile-menu {
  list-style: none !important;
  list-style-type: none !important;
}
#menu.eigo-nav > li,
.mobile_menu .eigo-mobile-menu > li,
#menu.eigo-nav .eigo-nav__item,
.mobile_menu .eigo-mobile-menu .eigo-mobile-menu__item {
  list-style: none !important;
  list-style-type: none !important;
  background-image: none !important;
}
#menu.eigo-nav > li::marker,
.mobile_menu .eigo-mobile-menu > li::marker,
#menu.eigo-nav .eigo-nav__item::marker,
.mobile_menu .eigo-mobile-menu .eigo-mobile-menu__item::marker {
  content: "" !important;
  display: none !important;
}

#menu.eigo-nav {
  display: flex !important;
  gap: 0 !important;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}
#menu.eigo-nav .eigo-nav__item {
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  width: auto !important;
  background: transparent !important;
}
#menu.eigo-nav .eigo-nav__item a {
  display: inline-flex;
  align-items: center;
  padding: 0.75rem 1.4rem !important;
  color: var(--eigo-ink) !important;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 600;
  font-size: 0.92rem;
  text-decoration: none !important;
  background: transparent !important;
  border: none !important;
  height: auto !important;
  line-height: 1.3 !important;
  transition: color .2s, background .2s;
  position: relative;
}
#menu.eigo-nav .eigo-nav__item a::after {
  /* hover/current で共有する下線ホルダー */
  content: "";
  position: absolute;
  left: 1.2rem; right: 1.2rem; bottom: 0.5rem;
  height: 2px;
  background: transparent;
  border-radius: 2px;
  transition: background .2s;
}
#menu.eigo-nav .eigo-nav__item a:hover {
  color: var(--eigo-primary) !important;
  background: rgba(46,72,130,.03) !important;
  opacity: 1 !important;
}
#menu.eigo-nav .eigo-nav__item a:hover::after {
  background: rgba(201, 162, 94, 0.35); /* 現在地とは区別: 薄いゴールド 1本 */
  height: 1px;
}

/* → アイコンのみ残す(色は通常時ネイビー、is-current時は下記で上書き) */
#menu.eigo-nav .eigo-nav__item--arrow a::before {
  content: "\2192";
  margin-right: 0.35em;
  color: var(--eigo-accent, #c9a25e);
  font-weight: 700;
}

/* 現在地: ゴールド文字 + 2px ゴールド下線(hoverでも維持) */
#menu.eigo-nav .eigo-nav__item.is-current a,
#menu.eigo-nav .eigo-nav__item.is-current a:hover {
  color: var(--eigo-accent-dark, #b8904d) !important;
  font-weight: 700 !important;
  background: transparent !important;
}
#menu.eigo-nav .eigo-nav__item.is-current a::after,
#menu.eigo-nav .eigo-nav__item.is-current a:hover::after {
  background: var(--eigo-accent, #c9a25e) !important;
  height: 2px !important;
}
/* is-current & arrow: → もダーク寄りゴールドに */
#menu.eigo-nav .eigo-nav__item--arrow.is-current a::before {
  color: var(--eigo-accent-dark, #b8904d);
}

/* WordPress ネイティブの current-menu-item / current_page_item を利用する場合の予備 */
#menu.eigo-nav .eigo-nav__item.current-menu-item a,
#menu.eigo-nav .eigo-nav__item.current_page_item a,
#menu.eigo-nav .eigo-nav__item.current-menu-ancestor a {
  color: var(--eigo-accent-dark, #b8904d) !important;
  font-weight: 700 !important;
}
#menu.eigo-nav .eigo-nav__item.current-menu-item a::after,
#menu.eigo-nav .eigo-nav__item.current_page_item a::after,
#menu.eigo-nav .eigo-nav__item.current-menu-ancestor a::after {
  background: var(--eigo-accent, #c9a25e) !important;
  height: 2px !important;
}

/* SP ハンバーガー内メニュー */
.mobile_menu .eigo-mobile-menu {
  padding: 1rem 0 !important;
  margin: 0 !important;
}
.mobile_menu .eigo-mobile-menu li {
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid var(--eigo-line);
}
.mobile_menu .eigo-mobile-menu li a {
  display: block;
  padding: 1rem 1.2rem;
  color: var(--eigo-ink);
  font-weight: 600;
  text-decoration: none;
  font-size: 1rem;
  border-left: 3px solid transparent;
  transition: background .2s, color .2s, border-color .2s;
}
.mobile_menu .eigo-mobile-menu li a:hover {
  color: var(--eigo-primary);
  background: rgba(46,72,130,.04);
  border-left-color: rgba(201, 162, 94, 0.35);
}
/* SP 現在地: ゴールド文字+左ボーダー3px */
.mobile_menu .eigo-mobile-menu .is-current a,
.mobile_menu .eigo-mobile-menu .is-current a:hover {
  color: var(--eigo-accent-dark, #b8904d) !important;
  font-weight: 700 !important;
  border-left-color: var(--eigo-accent, #c9a25e) !important;
  background: rgba(201,162,94,.06) !important;
}
/* SP → アイコン(色は通常時ゴールド、is-current時ダークゴールド) */
.mobile_menu .eigo-mobile-menu__item--arrow a::before {
  content: "\2192  ";
  color: var(--eigo-accent, #c9a25e);
}
.mobile_menu .eigo-mobile-menu__item--arrow.is-current a::before {
  color: var(--eigo-accent-dark, #b8904d);
}
/* SP WP ネイティブ current 予備 */
.mobile_menu .eigo-mobile-menu .current-menu-item a,
.mobile_menu .eigo-mobile-menu .current_page_item a {
  color: var(--eigo-accent-dark, #b8904d) !important;
  font-weight: 700 !important;
  border-left-color: var(--eigo-accent, #c9a25e) !important;
}

/* =====================================================
   N2. フッター再構成
   ===================================================== */
#footermenu .footer_nav {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2.5rem;
  justify-content: center;
  list-style: none !important;
  padding: 1rem 0 !important;
  margin: 0 auto !important;
  max-width: 900px;
}
#footermenu .footer_nav li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  width: auto !important;
  background: transparent !important;
}
#footermenu .footer_nav li a {
  color: var(--eigo-ink) !important;
  font-weight: 600;
  font-size: 0.92rem;
  text-decoration: none !important;
  padding: 0.3rem 0.5rem;
  border: none !important;
}
#footermenu .footer_nav li a:hover {
  color: var(--eigo-primary) !important;
}
.footer_legal {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1.5rem;
  justify-content: center;
  list-style: none !important;
  padding: 0.6rem 1rem 1.2rem !important;
  margin: 0.6rem auto 0 !important;
  max-width: 900px;
  border-top: 1px solid var(--eigo-line);
}
.footer_legal li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.footer_legal li a {
  color: var(--eigo-ink-soft) !important;
  font-size: 0.78rem;
  text-decoration: none !important;
}
.footer_legal li a:hover { color: var(--eigo-primary) !important; text-decoration: underline !important; }
@media (max-width: 640px) {
  #footermenu .footer_nav { gap: 0.6rem 1.5rem; }
  .footer_legal { gap: 0.3rem 1rem; padding-bottom: 1.4rem !important; }
}

/* ============================================================
 * B4: /course/ (page-id-6182) 画像バナー→HTML/CSS化
 * ------------------------------------------------------------
 * すべてのルールを .course-page 内スコープに限定
 * ============================================================ */
.course-page { max-width: 1080px; margin: 0 auto; padding: 0 1rem; }

.course-page .course-section {
  background: var(--eigo-bg-card);
  border: 1px solid var(--eigo-line);
  border-radius: 12px;
  padding: 1.8rem 1.8rem;
  margin: 1.6rem 0;
  box-shadow: 0 2px 8px rgba(46,72,130,0.04);
}
@media (max-width: 640px) {
  .course-page .course-section { padding: 1.2rem 1rem; }
}

.course-page .course-h2 {
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  color: var(--eigo-primary) !important;
  border: none !important;
  border-left: 4px solid var(--eigo-accent) !important;
  padding: 0.15rem 0 0.15rem 0.9rem !important;
  margin: 0 0 1.2rem 0 !important;
  background: none !important;
}
.course-page .course-h2 small { font-size: 0.85rem; color: var(--eigo-ink-soft); margin-left: 0.5rem; }

.course-page .course-h3 {
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  color: var(--eigo-ink) !important;
  margin: 1.4rem 0 0.7rem !important;
  padding: 0 0 0.4rem !important;
  border: none !important;
  border-bottom: 2px solid var(--eigo-accent-050) !important;
  background: none !important;
}
.course-page .course-h3 small { font-size: 0.8rem; color: var(--eigo-ink-soft); margin-left: 0.4rem; font-weight: 500; }
.course-page .course-h3--center { text-align: center; border-bottom-color: transparent !important; }

.course-page .course-lead { font-size: 1rem; line-height: 1.9; color: var(--eigo-ink); margin: 0.6rem 0 1rem; }
.course-page .course-note { font-size: 0.88rem; color: var(--eigo-ink-soft); line-height: 1.75; margin: 0.8rem 0; }
.course-page .course-note--center { text-align: center; }

.course-page .course-check {
  list-style: none !important;
  padding: 0 !important;
  margin: 0.6rem 0 !important;
}
.course-page .course-check li {
  position: relative;
  padding: 0.35rem 0 0.35rem 1.75rem !important;
  margin: 0 !important;
  list-style: none !important;
  line-height: 1.75;
}
.course-page .course-check li::before {
  content: "✓";
  position: absolute;
  left: 0.3rem; top: 0.35rem;
  color: var(--eigo-accent-dark);
  font-weight: 700;
  font-size: 1.05rem;
}

.course-page .course-price-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0.6rem 0 0.8rem !important;
  display: grid;
  gap: 0.5rem;
}
.course-page .course-price-list li {
  list-style: none !important;
  background: var(--eigo-bg);
  border-left: 3px solid var(--eigo-accent);
  padding: 0.6rem 0.9rem !important;
  margin: 0 !important;
  border-radius: 4px;
}
.course-page .course-price-list li strong { color: var(--eigo-primary); font-size: 1.08em; }

.course-page .course-pill-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0.6rem 0 !important;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.course-page .course-pill-list li {
  list-style: none !important;
  background: var(--eigo-primary);
  color: #fff !important;
  padding: 0.35rem 0.85rem !important;
  border-radius: 999px;
  font-size: 0.9rem;
  margin: 0 !important;
}

/* Hero: 短期集中 (旧 5d27073a...png 置換) */
.course-page .course-hero--shortterm {
  background: linear-gradient(135deg, var(--eigo-primary) 0%, var(--eigo-primary-dark) 100%);
  color: #fff;
  border-radius: 12px;
  padding: 2rem 1.8rem;
  margin: 1rem 0 1.4rem;
  box-shadow: 0 4px 14px rgba(46,72,130,0.15);
  position: relative;
  overflow: hidden;
}
.course-page .course-hero--shortterm::after {
  content: "";
  position: absolute;
  right: -60px; bottom: -60px;
  width: 220px; height: 220px;
  background: radial-gradient(circle, rgba(201,162,94,0.25) 0%, transparent 70%);
  border-radius: 50%;
}
.course-page .course-hero__eyebrow {
  display: inline-block;
  background: var(--eigo-accent);
  color: var(--eigo-ink);
  padding: 0.2rem 0.8rem;
  border-radius: 4px;
  font-size: 0.85rem;
  font-weight: 700;
  margin: 0 0 0.7rem;
}
.course-page .course-hero__title {
  font-size: 1.9rem !important;
  font-weight: 800;
  line-height: 1.3;
  margin: 0 0 0.9rem;
  color: #fff !important;
}
.course-page .course-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 1.2rem;
  margin: 0 0 1rem;
  font-size: 1rem;
  color: #fff !important;
}
.course-page .course-hero__meta span {
  background: rgba(255,255,255,0.15);
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  font-weight: 500;
}
.course-page .course-hero__list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.4rem 1rem;
}
.course-page .course-hero__list li {
  list-style: none !important;
  padding: 0.2rem 0 0.2rem 1.3rem !important;
  margin: 0 !important;
  position: relative;
  color: #fff !important;
}
.course-page .course-hero__list li::before {
  content: "●";
  position: absolute; left: 0.2rem; top: 0.25rem;
  color: var(--eigo-accent);
  font-size: 0.7rem;
}
@media (max-width: 640px) {
  .course-page .course-hero--shortterm { padding: 1.5rem 1.2rem; }
  .course-page .course-hero__title { font-size: 1.4rem !important; }
}

/* 比較表 (specificity 強化: 既存 style.css の table 系ルールに勝つよう !important + 詳細セレクタ) */
.course-page .course-compare-wrap { overflow-x: auto; margin: 0 0 0.4rem; }
.page-id-6182 table.course-compare {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border: 1px solid var(--eigo-line) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  font-size: 0.95rem !important;
  background: #fff !important;
  height: auto !important;
}
.page-id-6182 table.course-compare tr { height: auto !important; }
.page-id-6182 table.course-compare thead th {
  background-color: var(--eigo-primary) !important;
  background-image: none !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  padding: 0.55rem 0.75rem !important;
  text-align: center !important;
  border: none !important;
  border-bottom: 1px solid var(--eigo-line) !important;
  vertical-align: middle !important;
  line-height: 1.4 !important;
  height: auto !important;
  width: auto !important;
}
.page-id-6182 table.course-compare tbody th {
  background-color: var(--eigo-bg) !important;
  color: var(--eigo-ink) !important;
  font-weight: 700 !important;
  padding: 0.55rem 0.75rem !important;
  text-align: center !important;
  width: 26% !important;
  border-top: 1px solid var(--eigo-line) !important;
  border-right: 1px solid var(--eigo-line) !important;
  vertical-align: middle !important;
  line-height: 1.5 !important;
  height: auto !important;
}
.page-id-6182 table.course-compare tbody td {
  background-color: #ffffff !important;
  color: var(--eigo-ink) !important;
  padding: 0.55rem 0.75rem !important;
  text-align: center !important;
  border-top: 1px solid var(--eigo-line) !important;
  border-left: 1px solid var(--eigo-line) !important;
  vertical-align: middle !important;
  line-height: 1.5 !important;
  height: auto !important;
  width: auto !important;
}
.page-id-6182 table.course-compare tbody td small { color: var(--eigo-ink-soft) !important; font-size: 0.78rem !important; display: block; margin-top: 0.15rem; }

/* CTA バンド: 通常(旧 30cf119...png 置換) */
.course-page .course-cta-band {
  margin: 1.4rem 0;
  text-align: center;
}
.course-page .course-cta-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  background: var(--eigo-accent);
  color: #fff !important;
  padding: 0.9rem 2.4rem;
  border-radius: 999px;
  text-decoration: none !important;
  box-shadow: 0 4px 12px rgba(201,162,94,0.35);
  transition: transform .12s ease, box-shadow .12s ease;
  border: none;
  min-width: 280px;
}
.course-page .course-cta-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(201,162,94,0.45);
  color: #fff !important;
}
.course-page .course-cta-btn__title {
  font-size: 1.15rem;
  font-weight: 700;
  color: #fff !important;
}
.course-page .course-cta-btn__sub {
  font-size: 0.82rem;
  color: rgba(255,255,255,0.9) !important;
}

/* Reason list */
.course-page .course-reason-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: grid;
  gap: 0.5rem;
}
.course-page .course-reason-list li {
  list-style: none !important;
  background: var(--eigo-bg);
  border-radius: 6px;
  padding: 0.7rem 1rem !important;
  margin: 0 !important;
  line-height: 1.7;
  border-left: 3px solid var(--eigo-primary-light);
}
.course-page .course-reason-list li strong { color: var(--eigo-primary); margin-right: 0.35rem; }

/* 検定情報 */
/* 検定日程: dl を捨てて div ベースに作り直し (2026-09-02)
   旧 .course-exam-info / .course-exam-dl は 未使用(post_content から撤去済)
   全プロパティに !important + writing-mode: horizontal-tb 明示で 既存 dl/dt 系ルールとの衝突を絶つ */
.page-id-6182 .course-exam {
  background: #ffffff !important;
  border: 1px solid var(--eigo-line) !important;
  border-radius: 8px !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
  margin: 0.6rem 0 !important;
}
.page-id-6182 .course-exam__head {
  background-color: var(--eigo-primary) !important;
  color: #ffffff !important;
  padding: 0.65rem 1rem !important;
  text-align: center !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  writing-mode: horizontal-tb !important;
  word-break: normal !important;
  white-space: normal !important;
}
.page-id-6182 .course-exam__row {
  display: grid !important;
  grid-template-columns: 160px 1fr !important;
  border-top: 1px solid var(--eigo-line) !important;
  min-width: 100%;
}
.page-id-6182 .course-exam__label {
  background-color: var(--eigo-bg) !important;
  color: var(--eigo-primary) !important;
  font-weight: 700 !important;
  padding: 0.75rem 1rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  border-right: 1px solid var(--eigo-line) !important;
  writing-mode: horizontal-tb !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  line-height: 1.5 !important;
  height: auto !important;
  min-height: 0 !important;
}
.page-id-6182 .course-exam__body {
  background: #ffffff !important;
  color: var(--eigo-ink) !important;
  padding: 0.75rem 1rem !important;
  line-height: 1.75 !important;
  writing-mode: horizontal-tb !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  height: auto !important;
  min-height: 0 !important;
}
@media (max-width: 640px) {
  .page-id-6182 .course-exam__row { grid-template-columns: 130px 1fr !important; min-width: 460px; }
  .page-id-6182 .course-exam__label { padding: 0.65rem 0.7rem !important; font-size: 0.9rem; }
  .page-id-6182 .course-exam__body { padding: 0.65rem 0.8rem !important; }
}

/* Timeline (旧 TimelineCycle.jpg 置換) */
.course-page .course-timeline {
  list-style: none !important;
  padding: 0 !important;
  margin: 1.2rem 0 !important;
  display: grid;
  gap: 0.8rem;
  counter-reset: tl;
}
.course-page .course-timeline__step {
  list-style: none !important;
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 1rem;
  background: #fff;
  border: 1px solid var(--eigo-line);
  border-left: 4px solid var(--eigo-primary-light);
  border-radius: 8px;
  padding: 1rem 1.2rem !important;
  margin: 0 !important;
  align-items: start;
}
.course-page .course-timeline__step--best {
  border-left-color: var(--eigo-accent);
  background: linear-gradient(135deg, #fff 0%, var(--eigo-accent-050) 100%);
  box-shadow: 0 3px 10px rgba(201,162,94,0.18);
}
.course-page .course-timeline__step--late {
  border-left-color: var(--eigo-ink-mute);
  background: var(--eigo-bg);
}
.course-page .course-timeline__badge {
  background: var(--eigo-primary);
  color: #fff !important;
  border-radius: 50%;
  width: 84px; height: 84px;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700;
  font-size: 0.9rem;
  line-height: 1.2;
  text-align: center;
  padding: 0.4rem;
  flex-shrink: 0;
}
.course-page .course-timeline__step--best .course-timeline__badge { background: var(--eigo-accent-dark); }
.course-page .course-timeline__step--late .course-timeline__badge { background: var(--eigo-ink-mute); }
.course-page .course-timeline__body { padding-top: 0.2rem; }
.course-page .course-timeline__title {
  font-weight: 700;
  color: var(--eigo-primary);
  margin: 0 0 0.3rem !important;
  font-size: 1.05rem;
  line-height: 1.5;
}
.course-page .course-timeline__step--best .course-timeline__title { color: var(--eigo-accent-dark); }
.course-page .course-timeline__desc { color: var(--eigo-ink-soft); margin: 0 !important; font-size: 0.92rem; line-height: 1.7; }
@media (max-width: 640px) {
  .course-page .course-timeline__step { grid-template-columns: 64px 1fr; gap: 0.7rem; padding: 0.8rem 0.9rem !important; }
  .course-page .course-timeline__badge { width: 60px; height: 60px; font-size: 0.75rem; }
  .course-page .course-timeline__title { font-size: 0.98rem; }
}

/* 講師陣 CTA (旧 339aefd...png 置換) */
.course-page .course-lecturer-cta {
  background: linear-gradient(135deg, var(--eigo-bg) 0%, var(--eigo-accent-050) 100%);
  border: 1px solid var(--eigo-line);
  border-radius: 12px;
  padding: 1.6rem 1.4rem;
  margin: 1.4rem 0;
  text-align: center;
}
.course-page .course-lecturer-cta__lead {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--eigo-primary);
  margin: 0 0 0.9rem !important;
  line-height: 1.5;
}
.course-page .course-lecturer-cta__btn {
  display: inline-block;
  background: var(--eigo-primary);
  color: #fff !important;
  padding: 0.7rem 2rem;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none !important;
  transition: transform .12s ease;
}
.course-page .course-lecturer-cta__btn:hover { transform: translateY(-1px); color: #fff !important; }

/* Trial cards */
.course-page .course-trial-card {
  background: var(--eigo-bg);
  border-radius: 8px;
  padding: 1.1rem 1.3rem;
  margin: 0.8rem 0;
  border-left: 4px solid var(--eigo-primary);
}
.course-page .course-trial-card--offer {
  border-left-color: var(--eigo-accent-dark);
  background: linear-gradient(135deg, var(--eigo-bg) 0%, var(--eigo-accent-050) 100%);
}
.course-page .course-trial-card--en { border-left-color: var(--eigo-primary-light); }
.course-page .course-trial-card__ttl {
  font-weight: 700;
  color: var(--eigo-primary);
  margin: 0 0 0.4rem !important;
  font-size: 1rem;
}
.course-page .course-trial-card__price { margin: 0 0 0.3rem !important; font-size: 1rem; }
.course-page .course-trial-card__price strong { color: var(--eigo-accent-dark); font-size: 1.15em; }
.course-page .course-trial-card__note { font-size: 0.83rem; color: var(--eigo-ink-soft); margin: 0.4rem 0 0 !important; line-height: 1.65; }
.course-page .course-hr { border: none; border-top: 1px dashed var(--eigo-line); margin: 1.4rem 0; }

/* CTA hero band (旧 7459d646...png 置換) */
.course-page .course-cta-hero-band {
  background: linear-gradient(135deg, var(--eigo-primary) 0%, var(--eigo-primary-dark) 100%);
  color: #fff !important;
  border-radius: 12px;
  padding: 2.2rem 1.8rem;
  margin: 1.6rem 0;
  text-align: center;
  box-shadow: 0 6px 16px rgba(46,72,130,0.15);
}
.course-page .course-cta-hero-band__title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #fff !important;
  line-height: 1.6;
  margin: 0 0 1.2rem !important;
}
.course-page .course-cta-hero-band__btn {
  display: inline-block;
  background: #fff;
  color: var(--eigo-primary) !important;
  padding: 0.75rem 2.2rem;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none !important;
  transition: transform .12s ease;
}
.course-page .course-cta-hero-band__btn:hover { transform: translateY(-1px); color: var(--eigo-primary) !important; }
@media (max-width: 640px) {
  .course-page .course-cta-hero-band { padding: 1.6rem 1.2rem; }
  .course-page .course-cta-hero-band__title { font-size: 1.2rem; }
}

/* Merit grid (旧 merit.png/merit_sp.png 置換) */
.course-page .course-merit-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin: 1.2rem 0 1.6rem;
}
@media (max-width: 900px) {
  .course-page .course-merit-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .course-page .course-merit-grid { grid-template-columns: 1fr; }
}
.course-page .course-merit-card {
  background: linear-gradient(135deg, var(--eigo-primary) 0%, var(--eigo-primary-dark) 100%);
  color: #fff;
  border-radius: 999px;
  aspect-ratio: 1 / 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  text-align: center;
  box-shadow: 0 4px 12px rgba(46,72,130,0.2);
}
.course-page .course-merit-card:nth-child(2) { background: linear-gradient(135deg, var(--eigo-deep, #4d6660) 0%, #3a5049 100%); }
.course-page .course-merit-card:nth-child(3) { background: linear-gradient(135deg, var(--eigo-accent-dark) 0%, #8a641f 100%); }
.course-page .course-merit-card:nth-child(4) { background: linear-gradient(135deg, var(--eigo-accent) 0%, var(--eigo-accent-dark) 100%); }
.course-page .course-merit-card__eyebrow {
  border-bottom: 1px solid rgba(255,255,255,0.6);
  padding: 0 0.6rem 0.25rem;
  margin: 0 0 0.6rem !important;
  font-weight: 600;
  color: #fff !important;
  font-size: 0.95rem;
  letter-spacing: 0.05em;
}
.course-page .course-merit-card__title {
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.55;
  color: #fff !important;
  margin: 0 !important;
}

/* Two-cards */
.course-page .course-two-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  margin: 1rem 0;
}
@media (max-width: 640px) {
  .course-page .course-two-cards { grid-template-columns: 1fr; }
}
.course-page .course-two-cards__item {
  background: var(--eigo-bg);
  border: 1px solid var(--eigo-line);
  border-radius: 10px;
  padding: 1.2rem;
}
.course-page .course-two-cards__ttl {
  color: var(--eigo-primary);
  font-weight: 700;
  font-size: 1.05rem;
  margin: 0 0 0.6rem !important;
  line-height: 1.5;
}
.course-page .course-two-cards__item p { margin: 0 0 0.4rem !important; line-height: 1.75; }

/* Book grid (教材) */
.course-page .course-book-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  margin: 0.8rem 0 1.4rem;
}
@media (max-width: 480px) {
  .course-page .course-book-grid { grid-template-columns: 1fr; }
}
.course-page .course-book {
  background: #fff;
  border: 1px solid var(--eigo-line);
  border-radius: 8px;
  padding: 1rem;
  text-align: center;
}
.course-page .course-book__ttl {
  font-weight: 700;
  color: var(--eigo-ink);
  margin: 0 0 0.6rem !important;
  font-size: 0.95rem;
  line-height: 1.5;
}
.course-page .course-book img {
  max-height: 240px;
  width: auto;
  height: auto;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

/* /course/ 全体: sample .three_box や旧サムネテーブルの影響を打ち消す */
.page-id-6182 .three_box,
.page-id-6182 .sq1,
.page-id-6182 .box_wrap,
.page-id-6182 .two_box,
.page-id-6182 .kyouzai_box { background: transparent !important; box-shadow: none !important; border: none !important; }

/* ========================================
   短期集中 料金表 (2026-09-02 A)
   ======================================== */
.page-id-6182 .course-shortterm-wrap {
  overflow-x: auto;
  margin: 1rem 0;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(46, 72, 130, 0.06);
  border: 1px solid rgba(46, 72, 130, 0.1);
}
.page-id-6182 table.course-shortterm-price {
  width: 100% !important;
  min-width: 420px;
  border-collapse: collapse !important;
  background: transparent !important;
  margin: 0 !important;
  font-size: 0.98rem;
}
.page-id-6182 table.course-shortterm-price thead th {
  background: var(--eigo-primary, #2e4882) !important;
  color: #ffffff !important;
  padding: 0.75rem 0.9rem !important;
  text-align: center !important;
  font-weight: 700 !important;
  border: none !important;
  vertical-align: middle !important;
}
.page-id-6182 table.course-shortterm-price thead th small {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 400;
  opacity: 0.9;
}
.page-id-6182 table.course-shortterm-price tbody th {
  background: var(--eigo-bg, #f0ece2) !important;
  color: var(--eigo-ink, #2f3540) !important;
  padding: 0.75rem 0.9rem !important;
  text-align: left !important;
  font-weight: 700 !important;
  border-top: 1px solid rgba(46, 72, 130, 0.08) !important;
  border-right: 1px solid rgba(46, 72, 130, 0.08) !important;
  white-space: nowrap;
}
.page-id-6182 table.course-shortterm-price tbody td {
  padding: 0.75rem 0.9rem !important;
  text-align: center !important;
  color: var(--eigo-primary, #2e4882) !important;
  font-weight: 700 !important;
  font-size: 1.02rem !important;
  border-top: 1px solid rgba(46, 72, 130, 0.08) !important;
  border-left: 1px solid rgba(46, 72, 130, 0.06) !important;
  background: #fff !important;
}
@media (max-width: 640px) {
  .page-id-6182 table.course-shortterm-price { font-size: 0.9rem; }
  .page-id-6182 table.course-shortterm-price thead th,
  .page-id-6182 table.course-shortterm-price tbody th,
  .page-id-6182 table.course-shortterm-price tbody td { padding: 0.6rem 0.5rem !important; }
}

/* ============================================================
   Longread cards (course-page) - 2026-09-02
   「英検取得の4つのメリット」「プライベートレッスンのメリット」
   の長文セクションを白カード分割+番号バッジ+アイコンで整理
   ============================================================ */
.page-id-6182 .course-longread {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin: 1.25rem 0 0;
}
.page-id-6182 .course-longread__lead {
  font-size: 1.1rem;
  line-height: 2;
  color: var(--eigo-primary, #2e4882);
  margin: 0.5rem 0 1.5rem !important;
  text-wrap: pretty;
  font-weight: 500;
}
.page-id-6182 .course-longread__card {
  background: #ffffff;
  border-radius: 12px;
  padding: 1.5rem 1.75rem;
  box-shadow: 0 2px 10px rgba(46, 72, 130, 0.07);
  border: 1px solid rgba(46, 72, 130, 0.08);
}
.page-id-6182 .course-longread__h3 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin: 0 0 1rem !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  font-size: 1.18rem;
  font-weight: 700;
  color: var(--eigo-primary, #2e4882);
  line-height: 1.45;
  text-wrap: pretty;
}
.page-id-6182 .course-longread__num {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, #d0aa66 0%, #b8904d 100%);
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  box-shadow: 0 2px 4px rgba(201, 162, 94, 0.35);
}
.page-id-6182 .course-longread__icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(201, 162, 94, 0.14);
  color: #b8904d;
}
.page-id-6182 .course-longread__icon svg { width: 20px; height: 20px; display: block; }
.page-id-6182 .course-longread__icon--sage {
  background: rgba(77, 102, 96, 0.14);
  color: #4d6660;
}
.page-id-6182 .course-longread__ttl {
  flex: 1 1 200px;
  min-width: 0;
}
.page-id-6182 .course-longread__card p {
  margin: 0 0 0.85rem !important;
  line-height: 1.9;
  color: var(--eigo-ink, #2f3540);
  text-wrap: pretty;
}
.page-id-6182 .course-longread__card p:last-child { margin-bottom: 0 !important; }

/* 強調マーカー(ゴールドの下線+bold、各節1箇所) */
.page-id-6182 .course-mark {
  font-weight: 700;
  background-image: linear-gradient(transparent 62%, rgba(201, 162, 94, 0.32) 62%, rgba(201, 162, 94, 0.32) 92%, transparent 92%);
  padding: 0 0.1em;
}

/* チェックリストをアイボリー薄ボックスで囲う */
.page-id-6182 .course-longread__card .course-checkbox {
  background: #f7f4ec;
  border-left: 4px solid #c9a25e;
  border-radius: 8px;
  padding: 1rem 1.25rem 1rem 1rem;
  margin: 0.75rem 0 1rem;
}
.page-id-6182 .course-longread__card .course-checkbox .course-check {
  margin: 0 !important;
  padding: 0 !important;
}

/* SP tweaks */
@media (max-width: 640px) {
  .page-id-6182 .course-longread__lead {
    font-size: 1.02rem;
    line-height: 1.9;
  }
  .page-id-6182 .course-longread__card {
    padding: 1.25rem 1rem;
    border-radius: 10px;
  }
  .page-id-6182 .course-longread__h3 {
    gap: 0.55rem;
    font-size: 1.05rem;
  }
  .page-id-6182 .course-longread__num { width: 30px; height: 30px; font-size: 0.9rem; }
  .page-id-6182 .course-longread__icon { width: 30px; height: 30px; }
  .page-id-6182 .course-longread__icon svg { width: 17px; height: 17px; }
  .page-id-6182 .course-longread__card p { line-height: 1.85; }
  .page-id-6182 .course-longread__card .course-checkbox { padding: 0.85rem 1rem; }
}

/* ========================================
   D. HP2 装飾写真 (2026-09-02)
   ======================================== */
/* コースページ 装飾写真もサイト共通 .eigo-photoband に統合(下記参照)。
   Free Trial CTA サイド写真(--photo variant)は装飾写真枚数削減により撤去。 */

/* ========================================
   .eigo-photoband — サイト共通の装飾写真バナー (2026-09-02 統合 + v2 per-image face-y)
   全ページ(top/course/lecturer) の装飾写真は必ずこのクラスに統一する
   ・幅: 親コンテナいっぱい (block/width:100%、親が inline/text-center でも強制)
   ・高さ: PC 240px / タブレット 200px / SP 160px 固定
   ・object-fit: cover
   ・object-position: 縦位置は --face-y (CSS変数、img毎に inline で指定) を使用
     指定なし=40% (顔がやや上寄りの一般的な写真向け)
     image毎の値は container 側に  style="--face-y: 25%"  等で inline 指定
   ・overflow: hidden、角丸カード相当、下余白 1.5rem
   ======================================== */
.eigo-photoband {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 240px;
  margin: 0 0 1.5rem;
  border-radius: 12px;
  overflow: hidden;
  background: var(--eigo-bg, #f0ece2);
  box-shadow: 0 8px 20px rgba(46, 72, 130, 0.08);
  text-align: initial;   /* 親が text-align:center でも影響を受けない */
  float: none;
}
.eigo-photoband img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center var(--face-y, 40%) !important;
  display: block !important;
  margin: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
@media (max-width: 900px) {
  .eigo-photoband { height: 200px; border-radius: 11px; }
}
@media (max-width: 640px) {
  .eigo-photoband { height: 160px; border-radius: 10px; margin-bottom: 1.2rem; }
}

/* 講師紹介ページ 下部「迷ったら」に写真 (hp2-5) */
.lect-undecided--photo {
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 1.75rem;
  align-items: center;
  padding: 1.75rem !important;
  background: #ffffff !important;
  border-radius: 14px !important;
  box-shadow: 0 6px 18px rgba(46, 72, 130, 0.08);
  border: 1px solid rgba(46, 72, 130, 0.08);
  margin-top: 2rem;
}
.lect-undecided__deco {
  overflow: hidden;
  border-radius: 10px;
  aspect-ratio: 4 / 3;
  background: var(--eigo-bg, #f0ece2);
}
.lect-undecided__deco img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center var(--face-y, 40%);
  display: block;
}
.lect-undecided__body { text-align: left; }
.lect-undecided__body h2 { margin-top: 0 !important; }
@media (max-width: 780px) {
  .lect-undecided--photo { grid-template-columns: 1fr; padding: 1.25rem !important; gap: 1.25rem; }
  .lect-undecided__deco { aspect-ratio: 16 / 9; }
  .lect-undecided__body { text-align: center; }
}

/* =====================================================
   T5. ヘッダー「あなたの講師を選ぶ」ボタン(ピル)化 2026-09-02
   常時ゴールド塗り+白文字。カレント時はダーク塗り+白ボーダー影で区別。
   ===================================================== */
/* PC */
#menu.eigo-nav .eigo-nav__item--arrow a {
  background: var(--eigo-accent, #c9a25e) !important;
  color: #fff !important;
  border-radius: 999px !important;
  padding: 0.55rem 1.2rem !important;
  margin: 0 0.25rem !important;
  box-shadow: 0 2px 6px rgba(201,162,94,.28);
  font-weight: 700 !important;
  transition: background .2s, box-shadow .2s;
}
#menu.eigo-nav .eigo-nav__item--arrow a:hover {
  background: var(--eigo-accent-dark, #b0813d) !important;
  color: #fff !important;
  box-shadow: 0 4px 12px rgba(176,129,61,.38);
}
#menu.eigo-nav .eigo-nav__item--arrow a::before {
  color: #fff !important;
}
#menu.eigo-nav .eigo-nav__item--arrow a::after {
  display: none !important;
}
/* is-current の pill: ダーク塗り + 白リング */
#menu.eigo-nav .eigo-nav__item--arrow.is-current a,
#menu.eigo-nav .eigo-nav__item--arrow.is-current a:hover {
  background: var(--eigo-accent-dark, #b0813d) !important;
  color: #fff !important;
  box-shadow: 0 0 0 2px #fff, 0 3px 10px rgba(176,129,61,.5) !important;
}
#menu.eigo-nav .eigo-nav__item--arrow.is-current a::before {
  color: #fff !important;
}

/* SP ハンバーガー内 */
.mobile_menu .eigo-mobile-menu .eigo-mobile-menu__item--arrow a {
  background: var(--eigo-accent, #c9a25e) !important;
  color: #fff !important;
  font-weight: 700 !important;
  border-left-color: transparent !important;
}
.mobile_menu .eigo-mobile-menu .eigo-mobile-menu__item--arrow a:hover {
  background: var(--eigo-accent-dark, #b0813d) !important;
  color: #fff !important;
  border-left-color: transparent !important;
}
.mobile_menu .eigo-mobile-menu .eigo-mobile-menu__item--arrow a::before {
  color: #fff !important;
}
.mobile_menu .eigo-mobile-menu .eigo-mobile-menu__item--arrow.is-current a,
.mobile_menu .eigo-mobile-menu .eigo-mobile-menu__item--arrow.is-current a:hover {
  background: var(--eigo-accent-dark, #b0813d) !important;
  color: #fff !important;
  border-left: 3px solid #fff !important;
}
.mobile_menu .eigo-mobile-menu .eigo-mobile-menu__item--arrow.is-current a::before {
  color: #fff !important;
}

/* =====================================================
   T7. トップ ヒーロー 写真右レイアウト 2026-09-02
   DOMが copy → media 順になったので、text を wider(1.1fr) にして
   photo は narrower(1fr) に。SP は縦積み(現行のまま)。
   ===================================================== */
.page-id-2 .top-hero--reverse {
  grid-template-columns: 1.1fr 1fr !important;
}
@media (max-width: 820px) {
  .page-id-2 .top-hero--reverse { grid-template-columns: 1fr !important; }
}

/* =====================================================
   T8. オレンジ系残存色 → ベージュ palette override 2026-09-02
   style.css の .singletitle a / .title a / .q / .tk4 / #feed_new を上書き
   ===================================================== */
#content #main .singletitle a,
#content #main .title a {
  color: var(--eigo-primary, #2e4882) !important;
}
#content #main .singletitle a:hover,
#content #main .title a:hover {
  color: var(--eigo-accent-dark, #b0813d) !important;
}
/* Q&A ラベル */
.q {
  background-color: var(--eigo-ivory, #f0ece2) !important;
  color: var(--eigo-primary, #2e4882) !important;
  border-left: 4px solid var(--eigo-accent, #c9a25e) !important;
  padding: 0.6rem 0.8rem !important;
  border-radius: 4px !important;
}
/* .tk4 highlight */
.tk4 {
  color: var(--eigo-accent-dark, #b0813d) !important;
  text-shadow: none !important;
}
/* RSS feed */
#feed_new {
  color: var(--eigo-primary, #2e4882) !important;
}
/* 「担当講師からのひと言」 (/voice/) - 元 #f89e00 帯 → T12 navy 8.1:1 AAA へ */
.teacher_box {
  border: 1px solid var(--eigo-primary, #2e4882) !important;
  border-radius: 8px !important;
  overflow: hidden;
}
.teacher_ttl {
  background: var(--eigo-primary, #2e4882) !important;
  padding: 0.7rem 1.2rem !important;
  border-radius: 8px 8px 0 0 !important;
}
/* T12-fix: 子孫すべてを白に(#content #main p などの ID セレクタが p を dark 上書きするため) */
.teacher_ttl,
.teacher_ttl p,
.teacher_ttl span,
.teacher_ttl strong,
.teacher_ttl b,
.teacher_ttl a,
.teacher_ttl * {
  color: #fff !important;
}
.teacher_ttl p { margin: 0 !important; font-size: 1.05rem !important; }
/* .sq1 囲み(オレンジ枠) */
.sq1 {
  border-color: var(--eigo-accent, #c9a25e) !important;
}
/* .check_list チェックマーク色 */
.check_list li:after,
.check_list-border li:after {
  border-top-color: var(--eigo-accent, #c9a25e) !important;
  border-left-color: var(--eigo-accent, #c9a25e) !important;
}
/* .sbtn_2 送信ボタン (元 #ec802e オレンジ) */
div.sbtn_2 input[type="submit"] {
  background: var(--eigo-primary, #2e4882) !important;
}

/* =====================================================
   T11. /voice/ 帯 と Q&A アコーディオン の内側パディング + 角丸統一 2026-09-02
   ===================================================== */
/* 「英検○級 合格」帯 + 本文カード をユニット化 */
.voice {
  max-width: 1080px;
  margin: 0 auto 1.4rem;
}
.voice .ttl_wrap {
  padding: 0.9rem 1.5rem !important;
  border-radius: 10px 10px 0 0 !important;
  border-bottom-width: 3px !important;
  margin: 0 !important;
}
.voice .ttl_wrap h3 {
  margin: 0 !important;
  padding: 0 !important;
  color: #fff !important;
  font-size: 1.15rem !important;
  line-height: 1.5 !important;
}
.voice .sqred {
  border-radius: 0 0 10px 10px !important;
  margin: 0 0 1.4rem !important;
  padding: 1.5rem !important;
}
@media (max-width: 640px) {
  .voice .sqred { padding: 1rem !important; }
  .voice .ttl_wrap { padding: 0.7rem 1rem !important; }
  .voice .ttl_wrap h3 { font-size: 1rem !important; }
}

/* Q&A アコーディオン: 帯の内側パディング拡張 + 角丸統一(既存 border-radius:12px) */
.wpsm_panel-group {
  max-width: 1080px;
  margin: 0 auto 1.6rem;
}
/* plugin の .ac_title_class (実質内側テキスト) の padding を拡張 */
[id^="wpsm_accordion_"] .ac_title_class {
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
}
[id^="wpsm_accordion_"] .ac_open_cl_icon {
  padding-left: 1rem !important;
  padding-right: 1.2rem !important;
}
.wpsm_panel-group .wpsm_panel-body {
  padding: 1.2rem 1.5rem !important;
}
@media (max-width: 640px) {
  [id^="wpsm_accordion_"] .ac_title_class {
    padding-left: 1rem !important;
    padding-right: 0.6rem !important;
  }
  [id^="wpsm_accordion_"] .ac_open_cl_icon {
    padding-left: 0.6rem !important;
    padding-right: 0.9rem !important;
  }
  .wpsm_panel-group .wpsm_panel-body {
    padding: 1rem !important;
  }
}

/* =====================================================
   T9. 72時間以内入会 特典 リボン + CTA 添え書き 2026-09-02
   ===================================================== */
.eigo-offer-ribbon {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: linear-gradient(135deg, var(--eigo-primary, #2e4882) 0%, #1a3568 100%);
  color: #fff;
  border-radius: 12px;
  padding: 1rem 1.4rem;
  margin: 1.2rem auto;
  max-width: 640px;
  box-shadow: 0 6px 18px rgba(46,72,130,0.20);
  position: relative;
  overflow: hidden;
}
.eigo-offer-ribbon::before {
  content: "";
  position: absolute;
  right: -50px; top: -50px;
  width: 180px; height: 180px;
  background: radial-gradient(circle, rgba(201,162,94,0.28) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.eigo-offer-ribbon__badge {
  display: inline-flex;
  align-items: center; justify-content: center;
  flex-direction: column;
  width: 74px; height: 74px;
  border-radius: 50%;
  background: var(--eigo-accent, #c9a25e);
  color: var(--eigo-ink, #1a2838);
  font-weight: 900;
  font-size: 1.35rem;
  line-height: 1;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0,0,0,0.20);
  z-index: 1;
}
.eigo-offer-ribbon__badge small {
  font-size: 0.55rem;
  letter-spacing: 0.08em;
  margin-top: 3px;
  font-weight: 700;
}
.eigo-offer-ribbon__body { flex: 1; min-width: 0; z-index: 1; }
.eigo-offer-ribbon__head {
  color: #fff !important;
  font-size: 0.98rem !important;
  margin: 0 0 0.25rem !important;
  line-height: 1.55 !important;
  font-weight: 500;
}
.eigo-offer-ribbon__head strong {
  color: var(--eigo-accent, #c9a25e) !important;
  font-size: 1.12rem;
  font-weight: 800;
}
.eigo-offer-ribbon__amount {
  color: #fff !important;
  font-size: 1.05rem !important;
  margin: 0 !important;
  line-height: 1.35 !important;
  font-weight: 600;
}
.eigo-offer-ribbon__amount s {
  opacity: 0.55;
  font-weight: 500;
  margin-right: 0.35rem;
}
.eigo-offer-ribbon__amount strong {
  color: var(--eigo-accent, #c9a25e) !important;
  font-size: 1.55rem;
  font-weight: 900;
  margin-left: 0.25rem;
}
@media (max-width: 640px) {
  .eigo-offer-ribbon { flex-direction: column; text-align: center; padding: 1rem; gap: 0.7rem; }
  .eigo-offer-ribbon__badge { width: 64px; height: 64px; font-size: 1.15rem; }
  .eigo-offer-ribbon__amount strong { font-size: 1.35rem; }
}

/* CTA近傍の短い一文 */
.eigo-cta-offer-note {
  display: block !important;
  text-align: center;
  color: var(--eigo-primary, #2e4882) !important;
  font-size: 0.86rem !important;
  font-weight: 600;
  margin: 0.35rem 0 0 !important;
  line-height: 1.5;
}
.eigo-cta-offer-note::before {
  content: "★ ";
  color: var(--eigo-accent-dark, #b0813d);
  font-weight: 900;
}

/* =====================================================
   T10. 濃背景 + 暗色文字 修正 2026-09-02
   course-hero__eyebrow: gold(#c9a25e)+navy(#1a2838) 6.4:1 → dark gold + white 3.4:1
   ※ラベル(小さいバッジ)用途につきAA大文字扱いで許容
   ===================================================== */
.course-page .course-hero__eyebrow {
  background: var(--eigo-accent-dark, #b0813d) !important;
  color: #fff !important;
}

/* =====================================================
   T15. 認定講師バッジ(共通クラス)2026-09-05
   ・.eigo-cert-badge--lg = /lecturer/ セクション見出し脇 (180px、SP 140px)
   ・.eigo-cert-badge--md = /teacher/{slug}/ ヒーロー (120px、SP 100px)
   ・可読性のため 100px 未満に縮小しない (min-width)
   ・区分判定は PHP 側 ($kubun === 'certified') で行う
   ===================================================== */
.eigo-cert-badge {
  display: inline-block !important;
  width: auto !important;
  height: auto !important;
  max-width: 100%;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
.eigo-cert-badge--lg {
  width: 180px !important;
  min-width: 120px;
}
.eigo-cert-badge--md {
  width: 120px !important;
  min-width: 100px;
}

/* /lecturer/ CERTIFIED セクション見出しレイアウト
   既存の lect-group__head (block) → flex に切替、バッジは右上、
   見出しと EN ラベルは 左側に、note は下段 100% で回り込み */
.lect-group__head--certified {
  display: flex !important;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}
.lect-group__head--certified .lect-group__title {
  flex: 1 1 auto;
  min-width: 220px;
}
.lect-group__head--certified .lect-group__note {
  flex: 1 1 100%;
  margin-top: 0.4rem;
}
@media (max-width: 640px) {
  .lect-group__head--certified {
    gap: 12px;
  }
  .eigo-cert-badge--lg {
    width: 140px !important;
  }
}

/* /teacher/{slug}/ ヒーロー: 認定バッジを上端に、ピル(kubun)は下に */
.single-lect-hero__meta .eigo-cert-badge--md {
  display: block !important;
  margin: 0 0 0.6rem !important;
}
@media (max-width: 640px) {
  .single-lect-hero__meta .eigo-cert-badge--md {
    width: 100px !important;
    margin: 0 auto 0.4rem !important;
  }
}

/* =====================================================
   T16. フォーム周辺の ul/li バレット非表示 2026-09-05
   CF7 / eigo-offer-ribbon 等の block コンテンツが <li> でラップされると
   親 <ul> の disc が左端に「●」として表示される問題を解消
   :has() を利用(モダンブラウザ対応)
   ===================================================== */
li:has(> .wpcf7),
li:has(> form.wpcf7-form),
li:has(> .eigo-offer-ribbon),
li:has(> .wpcf7 form) {
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}
ul:has(> li > .wpcf7),
ul:has(> li > form.wpcf7-form),
ul:has(> li > .eigo-offer-ribbon) {
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}
ul:has(> li > .wpcf7) > li::marker,
ul:has(> li > form.wpcf7-form) > li::marker,
ul:has(> li > .eigo-offer-ribbon) > li::marker {
  content: "" !important;
  display: none !important;
}
/* フォールバック: フォームを含む固定ページを body class で特定 */
.page-id-1293 #main ul, .page-id-1293 #main ul li,
.page-id-2436 #main ul, .page-id-2436 #main ul li,
.page-id-2858 #main ul, .page-id-2858 #main ul li,
.page-id-3829 #main ul, .page-id-3829 #main ul li,
.page-id-3133 #main ul, .page-id-3133 #main ul li {
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}
.page-id-1293 #main ul li::marker,
.page-id-2436 #main ul li::marker,
.page-id-2858 #main ul li::marker,
.page-id-3829 #main ul li::marker,
.page-id-3133 #main ul li::marker {
  content: "" !important;
  display: none !important;
}

/* =====================================================
   T17. /lecturer/ 講師募集セクション 2026-09-05
   認定バッジ設置と同時期に追加 (page-lecturer.php の下段に配置)
   2026-09-09: ベージュボックスのスタイル値を --lect-box-* に集約。
   フィルタ案内 .lect-filter-hint も同じ token を参照(T29)。
   ===================================================== */
.page-template-page-lecturer {
  --lect-box-bg:     linear-gradient(135deg, var(--eigo-cream, #f0ece2) 0%, #f7f4ec 100%);
  --lect-box-border: 1px solid rgba(46, 72, 130, 0.10);
  --lect-box-radius: 14px;
}
.page-template-page-lecturer .lect-recruit {
  margin: 2.5rem 0 3rem !important;
  padding: 1.75rem 1.5rem !important;
  background: var(--lect-box-bg);
  border-radius: var(--lect-box-radius);
  border: var(--lect-box-border);
  text-align: center;
}
.page-template-page-lecturer .lect-recruit__eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  color: var(--eigo-accent-dark, #b0813d);
  font-weight: 700;
  margin: 0 0 0.4rem;
}
.page-template-page-lecturer .lect-recruit__title {
  font-size: 1.4rem !important;
  color: var(--eigo-primary, #2e4882) !important;
  margin: 0 0 0.8rem !important;
  padding: 0 !important;
  border: 0 !important;
}
.page-template-page-lecturer .lect-recruit__title::before,
.page-template-page-lecturer .lect-recruit__title::after { display: none !important; }
/* h2 の text-align: left(#content #main h2 = 上部 H1 節)を打ち消し、
   親 .lect-recruit の text-align: center を継承させる。値の二重定義を避けるため
   inherit を使用(center の単一ソースは .lect-recruit)。 */
#content #main .lect-recruit h2 {
  text-align: inherit;
}
.page-template-page-lecturer .lect-recruit__lead {
  color: var(--eigo-ink, #333);
  max-width: 640px;
  margin: 0 auto 1.1rem !important;
  line-height: 1.75;
  font-size: 0.95rem;
}
@media (max-width: 640px) {
  .page-template-page-lecturer .lect-recruit { padding: 1.25rem 1rem !important; }
  .page-template-page-lecturer .lect-recruit__title { font-size: 1.2rem !important; }
  .page-template-page-lecturer .lect-recruit__lead { font-size: 0.9rem; }
}

/* =====================================================
   T18. SP幅で右側が切れる箇所の共通対策 2026-09-06
   - table.table2(旧テーマ由来、特商法/申込/退会/契約表など)
   - table.course-compare(既存 wrap は残置、hint 追加)
   - CF7 の <select> が長いオプションで幅を突き抜ける件
   - スクロール可能なことを視覚的手がかりで示す
   ===================================================== */
@media (max-width: 640px) {
  /* .table2 を横スクロール対応 */
  #main .table2,
  #main table.table2 {
    display: block !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    /* 右端に「もっとある」影を出して scroll 可能を示唆 */
    box-shadow: inset -14px 0 12px -12px rgba(0,0,0,0.22);
    border-radius: 6px;
  }
  #main .table2 tbody,
  #main .table2 thead,
  #main table.table2 tbody,
  #main table.table2 thead { display: table-row-group; }
  #main .table2 tr,
  #main table.table2 tr { display: table-row; }
  #main .table2 th, #main .table2 td,
  #main table.table2 th, #main table.table2 td {
    white-space: normal;
  }
  /* 最初の列(見出し)は縮まないように */
  #main .table2 th:first-child,
  #main table.table2 th:first-child { min-width: 7em; }

  /* .course-compare は SP で縦積みカードに切り替え(2026-09-07)
     - width:100% のため overflow-x:auto では横スクロールが発生せず右列が視認不可だった
     - 各 <tr> を 1カード化: 行見出し(th)=カード見出し、td 2つは「プライベート」「短期集中」ラベル付きで縦並び */
  .course-page .course-compare-wrap {
    overflow: visible !important;
    box-shadow: none !important;
    padding-bottom: 0 !important;
  }
  .course-page .course-compare-wrap::after { content: none !important; }
  .page-id-6182 table.course-compare,
  .page-id-6182 table.course-compare tbody,
  .page-id-6182 table.course-compare tr,
  .page-id-6182 table.course-compare th,
  .page-id-6182 table.course-compare td {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    height: auto !important;
    max-width: 100% !important;
  }
  .page-id-6182 table.course-compare {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    overflow: visible !important;
  }
  .page-id-6182 table.course-compare thead { display: none !important; }
  .page-id-6182 table.course-compare tbody tr {
    background: #ffffff !important;
    border: 1px solid var(--eigo-line) !important;
    border-radius: 8px !important;
    margin: 0 0 0.7rem 0 !important;
    padding: 0.7rem 0.85rem !important;
    overflow: hidden !important;
  }
  .page-id-6182 table.course-compare tbody th {
    background: transparent !important;
    color: var(--eigo-primary) !important;
    font-weight: 700 !important;
    padding: 0 0 0.4rem 0 !important;
    text-align: left !important;
    border: 0 !important;
    border-bottom: 1px solid var(--eigo-line) !important;
    margin-bottom: 0.4rem !important;
    font-size: 1rem !important;
    line-height: 1.3 !important;
  }
  .page-id-6182 table.course-compare tbody td {
    background: transparent !important;
    padding: 0.3rem 0 0.3rem 7em !important;
    text-align: left !important;
    border: 0 !important;
    position: relative !important;
    font-size: 0.92rem !important;
    line-height: 1.5 !important;
    min-height: 1.8em;
  }
  .page-id-6182 table.course-compare tbody td + td {
    border-top: 1px dashed var(--eigo-line) !important;
    margin-top: 0.15rem !important;
    padding-top: 0.4rem !important;
  }
  .page-id-6182 table.course-compare tbody td::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.3rem;
    display: inline-block;
    width: 6.3em;
    font-size: 0.75rem;
    font-weight: 700;
    color: #ffffff;
    background: var(--eigo-primary);
    text-align: center;
    padding: 0.15rem 0.2rem;
    border-radius: 3px;
    line-height: 1.3;
    box-sizing: border-box;
  }
  .page-id-6182 table.course-compare tbody td + td::before { top: 0.55rem; }
  .page-id-6182 table.course-compare tbody td:nth-child(2)::before { content: "プライベート"; }
  .page-id-6182 table.course-compare tbody td:nth-child(3)::before {
    content: "短期集中";
    background: var(--eigo-accent-dark, #b0813d);
  }

  /* CF7 の select が長いオプションで幅を突き抜ける保護 */
  #main .wpcf7 select,
  #main .wpcf7 .wpcf7-form-control-wrap select,
  #main .wpcf7 .wpcf7-select {
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box;
  }
  /* CF7 span 幅超え防止 */
  #main .wpcf7 .wpcf7-form-control-wrap {
    max-width: 100%;
    display: inline-block;
    box-sizing: border-box;
  }

  /* 保険: main 直下の table 全般 (tablepress は独自 wrapper があるので除外) */
  #main table:not(.tablepress):not(.course-shortterm-price) {
    max-width: 100%;
  }

  /* <pre> ブロック(講師CPTの自己紹介など)が SP で右にはみ出す件
     preformatted は原則折り返さないため、必要幅を超える場合は折り返し + 単語分割 */
  #main pre,
  #main .single-lect-body pre {
    white-space: pre-wrap !important;
    overflow-wrap: anywhere;
    word-break: break-word;
    max-width: 100%;
  }
  #main pre span {
    display: inline;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
  }
}

/* =====================================================
   T19. 移行お知らせバナー (Top ヒーロー直下、独立ブロック) 2026-09-06
   撤去手順: post 2 の <aside class="eigo-rebrand-notice"> ブロックを削除、
             + 本 T19 セクションも削除
   ===================================================== */
.eigo-rebrand-notice {
  margin: 1.4rem 0 2rem !important;
  background: linear-gradient(135deg, #2e4882 0%, #1e336a 100%);
  color: #fff;
  border-radius: 14px;
  padding: 1.6rem 1.5rem;
  box-shadow: 0 8px 22px rgba(46, 72, 130, 0.18);
  position: relative;
  overflow: hidden;
}
.eigo-rebrand-notice::before {
  content: "NEW";
  position: absolute;
  top: 0.75rem;
  right: 1rem;
  background: var(--eigo-accent-dark, #b0813d);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
}
.eigo-rebrand-notice__inner {
  max-width: 880px;
  margin: 0 auto;
}
.eigo-rebrand-notice__main { text-align: center; }
.eigo-rebrand-notice__lead {
  font-size: clamp(1.05rem, 3.4vw, 1.35rem);
  font-weight: 700;
  color: #fff !important;
  line-height: 1.55;
  margin: 0 0 0.5rem !important;
}
/* T19-fix (2026-09-13): PC 幅で「た。」だけ折り返す件対策。
   最大 clamp を 1.35→1.2rem に微縮小して 1 行安定化(SP は clamp 下限 1.05rem 維持)。
   letter-spacing も -0.01em で微調し bold 込み文字幅の余裕を確保。 */
@media (min-width: 641px) {
  .eigo-rebrand-notice__lead {
    font-size: clamp(1.05rem, 3.4vw, 1.2rem);
    letter-spacing: -0.01em;
  }
}
.eigo-rebrand-notice__lead strong { color: #ffe19b; font-weight: 700; }
.eigo-rebrand-notice__sub {
  font-size: clamp(0.95rem, 2.8vw, 1.05rem);
  color: #f2ede4 !important;
  margin: 0 0 0.3rem !important;
  font-weight: 500;
}
.eigo-rebrand-notice__pitch {
  font-size: clamp(0.95rem, 2.8vw, 1.05rem);
  color: #ffe19b !important;
  margin: 0 !important;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.eigo-rebrand-notice__note {
  margin-top: 1.1rem;
  padding-top: 0.9rem;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  font-size: 0.85rem;
  color: #ecebe4 !important;
  line-height: 1.65;
}
.eigo-rebrand-notice__note p { color: inherit !important; margin: 0 0 0.25rem !important; }
.eigo-rebrand-notice__note-head { color: #ffe19b !important; font-weight: 600; }
@media (max-width: 640px) {
  .eigo-rebrand-notice { padding: 1.25rem 1rem !important; margin: 1rem 0 1.6rem !important; }
  .eigo-rebrand-notice__note { font-size: 0.8rem; }
  .eigo-rebrand-notice::before { top: 0.5rem; right: 0.65rem; font-size: 0.62rem; }
}

/* =====================================================
   T20. ヘッダーロゴ (Top のみ Eigoわーるど新ロゴ) 2026-09-06
   header.php で is_front_page 判定、.m_logo--eigo クラスが付く

   ★重要★ 既存 style.css line 617 で `.header_l { display: none }`(PC基準)
   となっており、PC 幅では従来からヘッダー左側にロゴが表示されない仕様だった
   (SP は @media max-width:1000px の line 3856 で display:block に戻る)。
   Top ページのみ PC でも `.header_l` を強制表示させる。
   他ページは既存挙動(=PC 非表示)のまま。
   ===================================================== */
.home .header_l,
.page-id-2 .header_l {
  display: block !important;
  width: auto !important;
  float: none !important;
  position: relative;
}
.home header h1.title,
.page-id-2 header h1.title {
  padding: 0 !important;
  margin: 0 !important;
  display: inline-block;
  line-height: 0;
}
#m_logo.m_logo--eigo {
  display: inline-block;
  line-height: 0;
}
#m_logo.m_logo--eigo img {
  height: 48px !important;
  width: auto !important;
  max-width: none !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  visibility: visible !important;
  opacity: 1 !important;
}
/* SP (theme が @media max-width:1000px でスマホ扱いにする範囲) の縮小 */
@media screen and (max-width: 820px) {
  #m_logo.m_logo--eigo img { height: 36px !important; }
}
@media screen and (max-width: 480px) {
  #m_logo.m_logo--eigo img { height: 32px !important; }
}
/* Fixed header 状態(スクロール後)でも Eigo ロゴは表示し続ける
   既存 style.css line 591 `#header.fixed .header_l img { display: none }` を打ち消し */
.home #header.fixed .header_l img.wp-post-image,
.home #header.fixed #m_logo.m_logo--eigo img,
.page-id-2 #header.fixed .header_l img,
.page-id-2 #header.fixed #m_logo.m_logo--eigo img {
  display: block !important;
}

/* =====================================================
   T21. 講師分類 13タブ対応 (page-lecturer フィルタタブの折り返し+横スクロール補強) 2026-09-06
   8→13 に増えたので、SP でも視認しやすいよう wrap + gap tighten
   ===================================================== */
.page-template-page-lecturer .lect-filter-bar {
  flex-wrap: wrap;
  gap: 0.4rem !important;
  justify-content: center;
}
.page-template-page-lecturer .lect-filter-btn {
  font-size: 0.82rem;
  padding: 0.42rem 0.75rem;
  line-height: 1.4;
}
@media (max-width: 640px) {
  .page-template-page-lecturer .lect-filter-bar {
    gap: 0.35rem !important;
    padding-bottom: 0.3rem;
  }
  .page-template-page-lecturer .lect-filter-btn {
    font-size: 0.76rem;
    padding: 0.36rem 0.6rem;
  }
}


/* =====================================================
   T22. /lecturer/ カードのピル表示上限 4→6 に伴う カード高さ統一 2026-09-07
   用途: page-lecturer.php:100 の array_slice($tag_labels_arr, 0, 6) と対応。
   ピル数が 5〜6 の講師では 2 行に折返すため、全カードの tags ブロックに 2行分の
   min-height を予約し、行間でのカード高さの乱れを抑える。align-content: flex-start で
   1行のみの講師でも下方向の余白として現れる。
   撤去手順: page-lecturer.php:100 の slice 上限を 4 に戻したら本ブロックも削除可。
   ===================================================== */
.page-template-page-lecturer .lect-card__tags {
  min-height: 3.4rem;
  align-content: flex-start;
}


/* =====================================================
   T23. /lecturer/ カードのピル SP はみ出し 修正 2026-09-08
   用途: SP 375px 幅で 5〜6 個のピルが折り返さず右にはみ出す件の恒久対応。
   原因: CSS Grid の `1fr` は仕様上 `minmax(auto, 1fr)` の糖衣構文。
   auto の最小サイズは子孫の min-content で決まるため、`white-space:nowrap`
   ピルの累計幅がトラックの min-content を押し上げ、1fr トラックがコンテナ
   幅を超えて拡張してしまう(結果、右端はみ出し)。
   対策(共通ルール、ハードコード無し):
     [1] .lect-grid の全ブレークポイントで `1fr` を `minmax(0, 1fr)` に
         置換し、トラックの min を 0 に固定する(=コンテナ幅を厳守)。
     [2] グリッドの子 .lect-card と、その中のフレックス親 .lect-card__tags
         にも min-width:0 を保険で付与。
     [3] ピル span は白背景の視認性上 nowrap を維持(ピル内で改行させない)。
         個別ピルが親幅を超える極端ケースへの保険として max-width:100%。
   撤去手順: T22 と一緒に段階的に見直し可。ピル上限を 4 に戻し、かつ
   .lect-card の親グリッドを廃止したら削除可。
   ===================================================== */
.page-template-page-lecturer .lect-grid {
  grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 521px) and (max-width: 900px) {
  .page-template-page-lecturer .lect-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 901px) {
  .page-template-page-lecturer .lect-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.page-template-page-lecturer .lect-card {
  min-width: 0;
}
.page-template-page-lecturer .lect-card__tags {
  min-width: 0;
  max-width: 100%;
}
.page-template-page-lecturer .lect-card__tags span {
  max-width: 100%;
}


/* =====================================================
   T24. /lecturer/ カードのピル上限超え時 +N 残数表示 2026-09-09
   用途: page-lecturer.php:105 で array_slice の直後に count-6 を算出し、
   上限 6 を超えるタグ数を持つ講師にのみ「+N」ピルを表示する。
   スタイル要件: 背景塗りなし・文字色 ダークグレー緑・枠 1px ベージュ、
   オレンジ禁止、font-size 0.78rem 以上。残タグは title / aria-label に格納。
   撤去手順: page-lecturer.php:105-107 の overflow_n ブロックを削除したら
   本ブロックも削除可(通常ピル span と共通スタイルは維持されるので影響なし)。
   ===================================================== */
.page-template-page-lecturer .lect-card__tags-more {
  background: transparent;
  color: #6a8178;
  border: 1px solid #c9c2b4;
  border-radius: 999px;
  padding: 0.18rem 0.55rem;
  font-size: 0.78rem;
  line-height: 1.6;
  white-space: nowrap;
  cursor: default;
}


/* =====================================================
   T25. /lecturer/ フィルタバー SP 行末切れ 修正 2026-09-09
   用途: SP 375 幅で 14 個のフィルタタブが右端で視覚的に切れる件の恒久対応。
   原因分析:
     [1] T21 @media(max-width:640) が font-size を 0.76rem に縮小しており
         「0.78rem 未満禁止」制約に違反していた。
     [2] .lect-teachers padding 1rem + .lect-filter-bar padding 0 .5rem を差引いた
         有効幅は 327px。5 ピル+ギャップ合計は約 334px となり、
         flex-wrap: wrap は動作するが 4 ピル/行に収まらず 5 個目が右にはみ出す
         (nowrap ピル最小幅が親を超えるパターン)。
   対策(共通ルール、ハードコード無し):
     [A] SP は flex-wrap: nowrap + overflow-x: auto の横スクロール式に切替。
         全 14 タブを 1 行で表示、指スワイプで選択できる標準パターン。
     [B] font-size を 0.78rem に戻し(制約準拠)、padding も可読性維持。
     [C] scroll-snap でタブ単位のスナップ、::-webkit-scrollbar を細く。
     [D] 右端に薄いフェードマスクで「まだ続く」を視覚示唆(mask-image)。
   撤去手順: SP でも折返し表示に戻す場合、本ブロック全体を削除。
   T21 @media 640 の font/padding も同時に見直すこと。
   ===================================================== */
@media (max-width: 640px) {
  /* T25-fix2 (2026-09-13): style.css:2344 `#main div { overflow: hidden }`(clearfix
     残骸、詳細度 1,0,1)が T25 の overflow-x:auto (0,2,0)に勝ち、SP 実機で
     横スワイプ不能だった件を修正。
     ・セレクタを #content #main .lect-filter-bar に強化(2,0,1 → 1,0,1 に勝つ)
     ・touch-action: pan-x を追加(iOS Safari で明示的に横パンを許可)
     ・overflow は auto を確実適用、他プロパティも同一セレクタで維持 */
  #content #main .lect-filter-bar {
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
    scrollbar-width: thin;
    padding: 0 4rem 0.5rem 1rem !important;
    scroll-snap-type: x proximity;
    mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 24px), transparent 100%);
    -webkit-mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 24px), transparent 100%);
  }
  #content #main .lect-filter-bar::-webkit-scrollbar {
    height: 4px;
  }
  #content #main .lect-filter-bar::-webkit-scrollbar-thumb {
    background: #c9c2b4;
    border-radius: 999px;
  }
  #content #main .lect-filter-btn {
    flex: 0 0 auto;
    scroll-snap-align: start;
    font-size: 0.78rem !important;
    padding: 0.4rem 0.75rem !important;
  }
}

/* T25-fix (2026-09-13): SP フィルタバー直下の「→ 横にスライドできます」ヒント。
   PC は非表示(SP でのみ表示)。控えめな灰緑・小さめ・右寄せ。
   color は #content #main p (1,2,0,1) 詳細度に負けるため ID プレフィクスで勝たせる。 */
#content #main .lect-filter-swipe-hint {
  display: none;
}
@media (max-width: 640px) {
  #content #main .lect-filter-swipe-hint {
    display: block;
    text-align: right;
    color: #6a8178;
    font-size: 0.78rem;
    margin: 0 1rem 0.8rem;
    line-height: 1.4;
  }
}

/* T31 系: 講師個別 CTA サブ注記 ＊行(2026-09-13)。控えめグレーで小さめ。
   color/font-size は #content #main p (1,2,0,1) に負けるため ID プレフィクスで確実化。 */
#content #main .single-lect-cta__sub-note {
  color: #6a8178;
  font-size: 0.82rem;
  line-height: 1.6;
  margin: 0.25rem 0 0;
  text-align: center;
}


/* =====================================================
   T26. 規約系ページ 本文可読幅 制限 (PC のみ) 2026-09-09
   対象: 7253 プライバシーポリシー / 7204 利用規約
   PC 幅で #content が 1000px 固定 (style.css:482) のため本文が横一杯に
   広がって読みづらい。規約文は長文縦読みが基本のため、可読幅として
   max-width 860px + margin auto を #main に付与、左右に余白を作る。
   SP (max-width: 720) では既存のテーマ padding のみで運用し、追加ルールは適用しない。
   撤去手順: max-width 制限を戻す場合は本ブロック全体を削除するだけで元通り。
   ===================================================== */
@media (min-width: 721px) {
  body.page-id-7253 #content #main,
  body.page-id-7204 #content #main {
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
    box-sizing: border-box;
  }
}

/* =====================================================
   T28. Top ピルリンク化 + /lecturer/ フィルタ hint 文言 (2026-09-09)
   Top(post 2) の .top-course-tags のうち filter 対応 6ピルは
   <a href="/lecturer/?filter=xxx"><span>…</span></a> に置換。
   リンク化しても見た目が変わらないよう .top-course-tags a の
   色/下線をリセット。ピル本体のスタイル(bg/border/pad)は
   従来 .top-course-tags span (3031行) がそのまま適用される。
   /lecturer/ 側は .lect-filter-hint (フィルタバー直前の説明)を追加。
   ===================================================== */
.page-id-2 .top-course-tags a {
  color: inherit;
  text-decoration: none;
  display: inline-block;
  line-height: 1;
}
.page-id-2 .top-course-tags a:hover span,
.page-id-2 .top-course-tags a:focus-visible span {
  background: #d9e8e0;
  border-color: #a89f8a;
}
.page-template-page-lecturer .lect-filter-hint {
  box-sizing: border-box;
  max-width: 880px;
  margin: 0 auto 0.9rem;
  padding: 1rem 1.2rem;
  background: var(--eigo-primary, #2e4882);
  border: none;
  border-radius: var(--lect-box-radius, 12px);
  text-align: center;
  line-height: 1.55;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.page-template-page-lecturer .lect-filter-hint p { margin: 0; }
/* T31-v2 (2026-09-10): 「重要」バッジ。Top .eigo-rebrand-notice::before (NEW) と
   同じ実装(形・色・サイズ)を流用し、位置のみ右上→左上、文言のみ 重要 に。 */
.page-template-page-lecturer .lect-filter-hint::before {
  content: "重要";
  position: absolute;
  top: 0.75rem;
  left: 1rem;
  background: var(--eigo-accent-dark, #b0813d);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
}
/* T31-fix (2026-09-10): #content #main p (1,2,0,1) が p 色を dark 上書きするため
   ID プレフィクスを付与して詳細度 1,2,1,0 で確実に勝たせる。
   T31-v2: 1行目色を Top .eigo-rebrand-notice__pitch と同じ #ffe19b、サイズ +40%。 */
#content #main .lect-filter-hint__lead {
  color: #ffe19b;
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1.45;
}
#content #main .lect-filter-hint__desc {
  color: #f0ece2;
  font-weight: 500;
  font-size: 0.95rem;
  margin-top: 0.3rem !important;
}
@media (max-width: 640px) {
  /* T31-v3 (2026-09-10): SP で「重要」バッジと1行目が重なる問題を修正。
     バッジ実寸: top:8px + fontSize:9.92px*1.2 + padding:3.52*2 ≈ 27px、
     0.4rem(6.4px) の逃げを足すと padding-top 2.1rem(33.6px) 必要。 */
  .page-template-page-lecturer .lect-filter-hint {
    padding: 2.1rem 0.9rem 0.8rem;
    margin: 0 0.75rem 0.75rem;
  }
  .page-template-page-lecturer .lect-filter-hint::before {
    top: 0.5rem;
    left: 0.65rem;
    font-size: 0.62rem;
  }
  /* T31-v2: SP フォントサイズも ID プレフィクスで詳細度確保
     (#content #main .lect-filter-hint__lead が 1,2,1,0 で常時勝つため) */
  #content #main .lect-filter-hint__lead {
    font-size: 1.45rem;
  }
  #content #main .lect-filter-hint__desc {
    font-size: 0.85rem;
  }
}

/* T31-v3 (2026-09-10): フィルタ結果0件時のメッセージ。既存の .lect-empty rule
   (line ~1919) を T31 に集約するかたちで上書き。控えめな灰緑・中央・上下余白。
   color は #content #main p (1,2,0,1) に負けるため ID プレフィクスで詳細度確保。 */
#content #main .lect-empty {
  text-align: center;
  color: #6a8178;
  font-size: 0.9rem;
  margin: 1.6rem 0;
  line-height: 1.6;
}

/* =====================================================
   T27. ヘッダーロゴ 全ページ拡張 (2026-09-09)
   T20 は .home / .page-id-2 スコープ限定だったが、header.php で
   is_front_page 分岐を撤廃し全ページで新カラーロゴを出力する仕様に変更。
   下記は style.css:617 の `.header_l { display:none }` と
   style.css:591 の `#header.fixed .header_l img { display:none }` を
   全ページで打ち消す上書き。style.css は触らない方針。
   SP は既存の style.css:3856 (@media max-width:1000px) と重ねて
   width:auto/float:none で運用(T20 と同挙動)。
   ===================================================== */
.header_l {
  display: block !important;
  width: auto !important;
  float: none !important;
  position: relative;
}
#header.fixed .header_l img,
#header.fixed #m_logo.m_logo--eigo img {
  display: block !important;
}

/* =====================================================
   T31. /lecturer/ 絞り込みUIの訴求強化 (2026-09-10)
   [1] フィルタバー直上に「まずは目的を選んでください」小ラベル (.lect-filter-cue)
   [2] .lect-filter-btn に ::before 丸インジケータ(非選択=空円/選択=塗り円)
   [3] 認定パートナー見出しにタグライン (.lect-group__tagline) と追加リード
       (.lect-group__lead)
   [4] フィルタ適用時のカード フェード+スライド (.is-appearing)
       prefers-reduced-motion: reduce では無効化。
   ===================================================== */
.page-template-page-lecturer .lect-filter-cue {
  text-align: center;
  color: var(--eigo-primary, #2e4882);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  margin: 0 0 0.6rem;
  opacity: 0.85;
}

.page-template-page-lecturer .lect-filter-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
}
.page-template-page-lecturer .lect-filter-btn::before {
  content: "";
  display: inline-block;
  width: 0.85em;
  height: 0.85em;
  border-radius: 50%;
  background: #fff;
  border: 1.5px solid #c9c2b4;
  box-sizing: border-box;
  flex-shrink: 0;
  transition: background .2s, border-color .2s, box-shadow .2s;
}
.page-template-page-lecturer .lect-filter-btn:hover::before {
  border-color: #2e4882;
}
.page-template-page-lecturer .lect-filter-btn.is-active::before {
  background: #2e4882;
  border-color: #fff;
  box-shadow: 0 0 0 1.5px #2e4882;
}

.lect-group__tagline {
  margin: 0.3rem 0 0 !important;
  color: var(--eigo-accent-dark, #b0813d);
  font-weight: 600;
  font-size: 0.98rem;
  line-height: 1.5;
}
.lect-group__lead {
  flex: 1 1 100%;
  margin: 0.6rem 0 0.2rem !important;
  color: #2e4882;
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.6;
}
@media (max-width: 640px) {
  .lect-group__tagline { font-size: 0.9rem; }
  .lect-group__lead { font-size: 0.92rem; }
}

.page-template-page-lecturer .lect-card.is-appearing {
  animation: eigoLectCardIn 0.25s ease both;
}
@keyframes eigoLectCardIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .page-template-page-lecturer .lect-card.is-appearing {
    animation: none !important;
  }
}

/* =====================================================
   T37expand (2026-09-16): フッター 開放フィールド
   ACF「フッター 営業時間」「フッター 体験レッスンバナー」の受け皿。
   未設定時は .f_right ブロック自体が出力されないので何も適用されない。
   バナー画像はクライアントが誤って巨大画像を投稿しても崩れないよう max-width 制約。
   ===================================================== */
footer .f_right {
  margin: 16px auto 0;
  text-align: center;
  max-width: 480px;
}
footer .f_right .f_hours {
  margin: 0 0 8px;
  color: var(--eigo-ink, #2f2b28);
  font-size: 0.9rem;
  letter-spacing: 0.02em;
}
footer .f_right .f_banner {
  margin: 0;
}
footer .f_right .f_banner a {
  display: inline-block;
  line-height: 0;
}
footer .f_right .f_banner img {
  display: block;
  max-width: 100%;
  width: auto;
  max-height: 120px;
  height: auto;
  margin: 0 auto;
  border-radius: 8px;
}
@media (max-width: 640px) {
  footer .f_right {
    max-width: 92%;
    margin-top: 12px;
  }
  footer .f_right .f_banner img {
    max-height: 100px;
  }
}

/* =====================================================
   T39 (2026-09-16): 特商法(page 7196) / 運営会社(page 7197) の
   .table2 が SP で 右にはみ出して値カラム末尾が切れる件の修正。
   - 7197 は inline style="width:53.6415%" 等が付与されており、既存 T18 の
     .table2 { max-width:100% } では inline width を上書きできず 半分幅で表示されていた
   - 7196 は overflow-x:auto (T18) で横スクロール化しているが 発見性が低く URL が切れて見えていた
   → SP <=640px で 2ページに限定して 縦積みカード化(course-compare の SP と同型)。
   セレクタは body.page-id-7196 / body.page-id-7197 に限定、全サイトの table には
   波及させない。長い URL 対策で word-break/overflow-wrap を付与。
   ===================================================== */
@media (max-width: 640px) {
  body.page-id-7196 #main table.table2,
  body.page-id-7197 #main table.table2 {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    border: 0 !important;
    background: transparent !important;
    overflow-x: visible !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    -webkit-overflow-scrolling: auto !important;
  }
  body.page-id-7196 #main table.table2 tbody,
  body.page-id-7197 #main table.table2 tbody {
    display: block !important;
    width: 100% !important;
  }
  body.page-id-7196 #main table.table2 tr,
  body.page-id-7197 #main table.table2 tr {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    background: #ffffff !important;
    border: 1px solid var(--eigo-line, #d9d5cd) !important;
    border-radius: 8px !important;
    padding: 0.6rem 0.85rem !important;
    margin: 0 0 0.6rem 0 !important;
  }
  body.page-id-7196 #main table.table2 th,
  body.page-id-7197 #main table.table2 th {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    text-align: left !important;
    color: var(--eigo-primary, #2e4882) !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--eigo-line, #d9d5cd) !important;
    padding: 0 0 0.35rem 0 !important;
    margin: 0 0 0.4rem 0 !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    line-height: 1.35 !important;
    vertical-align: baseline !important;
  }
  body.page-id-7196 #main table.table2 td,
  body.page-id-7197 #main table.table2 td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    text-align: left !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    color: var(--eigo-ink, #2f2b28) !important;
    font-size: 0.92rem !important;
    line-height: 1.55 !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
  }
  body.page-id-7196 #main table.table2 td p,
  body.page-id-7197 #main table.table2 td p {
    margin: 0 0 0.3rem 0 !important;
  }
}

/* =====================================================
   T41 (2026-09-17): 運営会社(page 7197) の PC 表示崩れ修正。
   T39 では SP(<=640px) の縦積みカード化しか行っていなかったため、
   PC では <table style="width:53.6415%"> の inline 幅が そのまま適用され
   コンテンツが親幅の 54% に縮んで 左半分に寄っていた(7196 は inline width
   が無いため影響なし)。
   メディアクエリ外(=全幅対応)で 7197 の table/th/td の inline width を
   !important で解除する。SP の T39 縦積みルールには 衝突しない
   (SP は上書きしてもレイアウトが display:block になっているため無影響)。
   ===================================================== */
body.page-id-7197 #main table.table2 {
  width: 100% !important;
  max-width: 100% !important;
}
body.page-id-7197 #main table.table2 th,
body.page-id-7197 #main table.table2 td {
  width: auto !important;
}

/* =====================================================
   T50 (2026-09-18): コースページ(6182) の course-shortterm-price 2種類の
   料金表が SP<=640px で右カラムが切れて読めない件の修正。
   T39/T18 と同型で SP 縦積みカード化。
   - Table 1 (2列: コース + 月額) → th 見出し + 値のみ(ラベル不要)
   - Table 2 (3列: 級 + 計5回 + 計10回) → th 見出し + 各値に「計5回」「計10回」ラベル
   セレクタは body.page-id-6182 かつ table.course-shortterm-price に限定。
   他ページ・他テーブルには波及しない。PC は 一切変更なし(@media外は無変更)。
   ===================================================== */
@media (max-width: 640px) {
  body.page-id-6182 table.course-shortterm-price {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    border: 0 !important;
    background: transparent !important;
    overflow: visible !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }
  body.page-id-6182 table.course-shortterm-price thead {
    display: none !important;
  }
  body.page-id-6182 table.course-shortterm-price tbody,
  body.page-id-6182 table.course-shortterm-price tbody tr,
  body.page-id-6182 table.course-shortterm-price tbody th,
  body.page-id-6182 table.course-shortterm-price tbody td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  body.page-id-6182 table.course-shortterm-price tbody tr {
    background: #ffffff !important;
    border: 1px solid var(--eigo-line, #d9d5cd) !important;
    border-radius: 8px !important;
    margin: 0 0 0.6rem 0 !important;
    padding: 0.7rem 0.85rem !important;
    overflow: hidden !important;
  }
  body.page-id-6182 table.course-shortterm-price tbody th {
    background: transparent !important;
    color: var(--eigo-primary, #2e4882) !important;
    font-weight: 700 !important;
    border: 0 !important;
    border-bottom: 1px solid var(--eigo-line, #d9d5cd) !important;
    padding: 0 0 0.4rem 0 !important;
    margin: 0 0 0.5rem 0 !important;
    font-size: 1rem !important;
    line-height: 1.35 !important;
    text-align: left !important;
    vertical-align: baseline !important;
  }
  body.page-id-6182 table.course-shortterm-price tbody td {
    background: transparent !important;
    border: 0 !important;
    padding: 0.35rem 0 0.25rem 6em !important;
    margin: 0 !important;
    position: relative !important;
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
    text-align: left !important;
    color: var(--eigo-ink, #2f2b28) !important;
    min-height: 1.8em !important;
  }
  /* Table 2 (3列) 用ラベル: nth-child(2) が :not(:last-child) = 計5回、nth-child(3) = 計10回 */
  body.page-id-6182 table.course-shortterm-price tbody td::before {
    position: absolute !important;
    left: 0 !important;
    top: 0.4rem !important;
    width: 5em !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    background: var(--eigo-primary, #2e4882) !important;
    text-align: center !important;
    padding: 0.15rem 0.2rem !important;
    border-radius: 3px !important;
    line-height: 1.3 !important;
    box-sizing: border-box !important;
  }
  body.page-id-6182 table.course-shortterm-price tbody td:nth-child(2):not(:last-child)::before { content: "計5回"; }
  body.page-id-6182 table.course-shortterm-price tbody td:nth-child(3)::before { content: "計10回"; }
  /* Table 1 (2列): td:nth-child(2) が :last-child のときはラベル不要、左padding 解除 */
  body.page-id-6182 table.course-shortterm-price tbody td:nth-child(2):last-child {
    padding-left: 0 !important;
  }
  body.page-id-6182 table.course-shortterm-price tbody td:nth-child(2):last-child::before {
    content: none !important;
    display: none !important;
  }
  /* Table 2 の 2つ目 td (10回) に破線区切り */
  body.page-id-6182 table.course-shortterm-price tbody td + td {
    border-top: 1px dashed var(--eigo-line, #d9d5cd) !important;
    margin-top: 0.3rem !important;
    padding-top: 0.7rem !important;
  }
  body.page-id-6182 table.course-shortterm-price tbody td + td::before {
    top: 0.75rem !important;
  }
}
