/******************************************************
 * 小学生向け（page-id-1200）＆中高生向け（page-id-1297）
 * Lightning装飾無効化 + デザインCSS + KV修正
 ******************************************************/

/* === 共通対象化 === */
.page-id-1200 .siteContent,
.page-id-1297 .siteContent,
.page-id-1200 .siteContent .mainSection,
.page-id-1297 .siteContent .mainSection,
.page-id-1200 .siteContent .mainSection .container,
.page-id-1297 .siteContent .mainSection .container,
.page-id-1200 .siteContent .mainSection .container > .row,
.page-id-1297 .siteContent .mainSection .container > .row,
.page-id-1200 main,
.page-id-1297 main,
.page-id-1200 .entry-body,
.page-id-1297 .entry-body {
  background:#fff !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  box-shadow:none !important;
}
.page-id-1200 .mainSection::before,
.page-id-1297 .mainSection::before,
.page-id-1200 .mainSection::after,
.page-id-1297 .mainSection::after,
.page-id-1200 .siteContent .mainSection .container::before,
.page-id-1297 .siteContent .mainSection .container::before,
.page-id-1200 .siteContent .mainSection .container::after,
.page-id-1297 .siteContent .mainSection .container::after {
  content:none !important;
}

/* 1) コンテンツ幅 */
.page-id-1200 .entry-body > *:not(.alignfull),
.page-id-1297 .entry-body > *:not(.alignfull){
  max-width:1080px !important;
  margin-inline:auto !important;
  padding-inline:24px !important;
  box-sizing:border-box !important;
}
.page-id-1200 .entry-body > *:first-child,
.page-id-1297 .entry-body > *:first-child{ margin-top:0 !important; }

/* 2) 見出し装飾OFF */
.page-id-1200 h1,.page-id-1297 h1,
.page-id-1200 h2,.page-id-1297 h2,
.page-id-1200 h3,.page-id-1297 h3,
.page-id-1200 h4,.page-id-1297 h4,
.page-id-1200 h5,.page-id-1297 h5,
.page-id-1200 h6,.page-id-1297 h6,
.page-id-1200 .vk-heading,.page-id-1297 .vk-heading,
.page-id-1200 .vk-heading__title,.page-id-1297 .vk-heading__title,
.page-id-1200 .section-title,.page-id-1297 .section-title,
.page-id-1200 .page-header .entry-title,.page-id-1297 .page-header .entry-title {
  border-left:none !important;
  border-bottom:none !important;
  padding-left:0 !important;
  box-shadow:none !important;
}

/* 3) KV（ヒーロー） */
.g002 .kv__caption{ font-size:17px; opacity:.9; }
.page-id-1200 .g002.kv,
.page-id-1297 .g002.kv {
  position:relative !important;
  isolation:isolate;
  min-height:58vh !important;
  margin:0 !important;
  padding:56px 0 48px !important;
  background-position:center center !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;
  background-color:transparent !important;
  color:#fff;
  overflow:hidden;
}
.page-id-1200 .g002.kv::before,
.page-id-1297 .g002.kv::before,
.page-id-1200 .g002.kv::after,
.page-id-1297 .g002.kv::after {
  content:none !important;
  background:transparent !important;
  display:none !important;
}
.page-id-1200 .g002 .kv__inner,
.page-id-1297 .g002 .kv__inner {
  position:relative; z-index:1;
  display:grid; gap:18px;
  place-items:center;
  text-align:center;
  max-width:960px;
  margin:0 auto;
}
@media (min-width:1025px){
  .page-id-1200 .g002 .kv__inner,
  .page-id-1297 .g002 .kv__inner {
    place-items:end;
    text-align:right;
    margin-right:5%;
    padding-right:8%;
    padding-bottom:4%;
  }
}
@media (max-width:768px){
  .page-id-1200 .g002 .kv__inner,
  .page-id-1297 .g002 .kv__inner {
    place-items:center;
    text-align:center;
    padding:0 12px 24px;
    background:rgba(0,0,0,0.35);
    border-radius:12px;
  }
}

/* KVタイトルとボタン */
.page-id-1200 .g002 .kv__title,
.page-id-1297 .g002 .kv__title {
  display:inline-block;
  font-weight:800;
  font-size:clamp(28px,3.8vw,44px);
  line-height:1.3;
  background:rgba(255,255,255,.9); color:#111;
  box-shadow:0 8px 32px rgba(0,0,0,.28);
}
.page-id-1200 .g002 .ctaRow,
.page-id-1297 .g002 .ctaRow {
  display:flex; gap:16px; flex-wrap:wrap;
  margin-top:12px; justify-content:center;
}
@media (min-width:1025px){
  .page-id-1200 .g002 .ctaRow,
  .page-id-1297 .g002 .ctaRow { justify-content:flex-end; }
}
.page-id-1200 .g002 .btn,
.page-id-1297 .g002 .btn {
  display:inline-flex; align-items:center; gap:.6em;
  padding:14px 22px; border-radius:999px;
  font-weight:700; line-height:1;
  border:2px solid transparent;
  background:#e53935; color:#fff;
  box-shadow:0 6px 16px rgba(229,57,53,.35);
  white-space:nowrap;
}
.page-id-1200 .g002 .btn--ghost,
.page-id-1297 .g002 .btn--ghost {
  background:#fff; color:#e53935;
  border-color:#e53935; box-shadow:none;
}

/* 4) セクション共通 */
.page-id-1200 .g002 section,
.page-id-1297 .g002 section { padding:clamp(36px,6vw,72px) 0; background:#fff; color:#222; }
.page-id-1200 .g002 .sec__head,
.page-id-1297 .g002 .sec__head { text-align:center; margin-bottom:28px; margin-top:80px; }
@media (max-width:768px){
  .page-id-1200 .g002 .sec__head,
  .page-id-1297 .g002 .sec__head { margin-top:40px; }
}
.page-id-1200 .g002 .sec__eyebrow,
.page-id-1297 .g002 .sec__eyebrow { color:#e53935; font-weight:800; letter-spacing:.1em; font-size:12px; }
.page-id-1200 .g002 .sec__title,
.page-id-1297 .g002 .sec__title { font-size:clamp(22px,3vw,32px); font-weight:800; margin-top:8px; }
.page-id-1200 .g002 .lead,
.page-id-1297 .g002 .lead { text-align:left; color:#404040; margin:12px auto 0; max-width:820px; }

/* 5) 8つの力（カード） */
.page-id-1200 .g002 .skills,
.page-id-1297 .g002 .skills { display:grid !important; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)) !important; gap:16px !important; margin-top:22px !important; }
.page-id-1200 .g002 .card,
.page-id-1297 .g002 .card { background:#fff; border:1px solid #ececec; border-radius:14px; padding:18px; box-shadow:0 4px 18px rgba(16,24,40,.04); }
.page-id-1200 .g002 .card h3,
.page-id-1297 .g002 .card h3 { font-size:18px; margin:0 0 8px; color:#0f172a; }
.page-id-1200 .g002 .card p,
.page-id-1297 .g002 .card p { font-size:14px; color:#475569; margin:0; }

/* 6) Features */
.page-id-1200 .g002 .features,
.page-id-1297 .g002 .features { display:grid; grid-template-columns:1.2fr .8fr; gap:28px; align-items:start; }
@media (max-width:768px){
  .page-id-1200 .g002 .features,
  .page-id-1297 .g002 .features { grid-template-columns:1fr !important; gap:20px !important; }
}

/* 7) ラボ（2カラム） */
.page-id-1200 .g002 .labs,
.page-id-1297 .g002 .labs { display:grid !important; grid-template-columns:repeat(2,1fr); gap:24px; }
@media (max-width:960px){
  .page-id-1200 .g002 .labs,
  .page-id-1297 .g002 .labs { grid-template-columns:1fr; }
}

/* 8) 料金 */
.page-id-1200 #pricing .pricing,
.page-id-1297 #pricing .pricing {
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr)) !important;
  gap:16px !important;
  max-width:900px; margin:0 auto;
}
.page-id-1200 #pricing .priceBox,
.page-id-1297 #pricing .priceBox {
  border:2px solid #f1f5f9; border-radius:14px;
  padding:20px; text-align:center; background:#fff;
}
.page-id-1200 #pricing .priceBox b,
.page-id-1297 #pricing .priceBox b { font-size:24px; color:#e53935; }

/* 割引強調 */
.page-id-1200 #pricing .discount,
.page-id-1297 #pricing .discount { margin-top:12px; font-weight:700; color:#e53935; text-align:center; }

/* 9) Chip を横書き */
.page-id-1200 .g002 .chip,
.page-id-1297 .g002 .chip {
  writing-mode:horizontal-tb !important;
  text-orientation:mixed !important;
  display:inline-flex; align-items:center; justify-content:center;
  line-height:1; white-space:nowrap; vertical-align:middle;
  padding:4px 10px;
}

/******************************************************
 * 1200（小学生）/1297（中高生） だけに適用する軽量パッチ
 ******************************************************/

/* ========== 1) KV上の空白だけをゼロ（見出し間隔は維持） ========== */
/* テーマのページヘッダー（タイトル帯）→ 余白と罫線を削除 */
.page-id-1200 .mainSection header,
.page-id-1297 .mainSection header {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}

/* 本文開始の上側の余白もゼロ（KV直上のみを詰める） */
.page-id-1200 .entry-body,
.page-id-1297 .entry-body {
  margin-top: 0 !important;
}

/* ただし通常セクションの見出し（.sec__head）は今の余白のまま触らない */


/* ========== 2) 「ラボのご案内」レイアウト安定化 ========== */
.page-id-1200 .g002 .labs,
.page-id-1297 .g002 .labs {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

@media (max-width: 960px) {
  .page-id-1200 .g002 .labs,
  .page-id-1297 .g002 .labs {
    grid-template-columns: 1fr;
  }
}

/* カード風の体裁（パネル） */
.page-id-1200 .g002 .panel,
.page-id-1297 .g002 .panel {
  border: 1px solid #ececec;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}

.page-id-1200 .g002 .panel__media,
.page-id-1297 .g002 .panel__media {
  aspect-ratio: 16/9;
  background: #ddd center / cover no-repeat;
}

.page-id-1200 .g002 .panel__body,
.page-id-1297 .g002 .panel__body {
  padding: 16px 18px;
}


/* ========== 3) FEATURES の「動画／体験…」行の整列（スマホ左寄りも補正） ========== */
/* リストのはみ出し・段落余白をリセットして中央に */
.page-id-1200 .g002 .features ul.check,
.page-id-1297 .g002 .features ul.check {
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
}

@media (max-width: 768px) {
  .page-id-1200 .g002 .features ul.check,
  .page-id-1297 .g002 .features ul.check {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: 100%;
  }
}

/* 各行：チップとテキストを縦中央で並べ、枠線と角丸で視認性UP */
.page-id-1200 .g002 .features ul.check li,
.page-id-1297 .g002 .features ul.check li {
  list-style: none;
  display: flex;
  align-items: center;             /* ← 縦中央 */
  gap: 10px;
  padding: 12px 14px;
  border: 1px dashed #e5e7eb;
  border-radius: 10px;
  background: #fff;
}

/* チップを完全に横書き・中央寄せ＆ベースラインの余白をなくす */
.page-id-1200 .g002 .chip,
.page-id-1297 .g002 .chip {
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  display: inline-flex;            /* ← ベースラインの段差回避 */
  align-items: center;             /* ← 縦中央 */
  justify-content: center;         /* ← 横中央 */
  line-height: 1;                  /* ← 下の空白を消す */
  white-space: nowrap;
  vertical-align: middle;
  padding: 4px 10px;
  background: #eef2ff;
  color: #3730a3;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}

/******************************************************
 * sec__eyebrow の上に余白を復活（1200/1297 ページのみ）
 ******************************************************/
.page-id-1200 .g002 .sec__eyebrow,
.page-id-1297 .g002 .sec__eyebrow {
  margin-top: 60px;   /* PC */
}

@media (max-width: 768px) {
  .page-id-1200 .g002 .sec__eyebrow,
  .page-id-1297 .g002 .sec__eyebrow {
    margin-top: 32px; /* SP */
  }
}

/**********************************************
 * 1297 専用 仕上げパッチ
 * - 見出し上余白（ABOUTなど）を復活
 * - FEATURESの箇条書き整形（chip横並び/中央揃え）
 * - 画像の見た目の統一（角丸/はみ出し防止）
 * - ラボ（2カラム）の余白・並び微調整
 **********************************************/

/* 1) ABOUT/FEATURES/PROGRAMS などの見出し上余白を復活 */
/* KV直下はゼロのまま、以降のセクション見出しだけに効かせます */
.page-id-1297 .g002.kv + section .sec__head { margin-top: 80px; }
@media (max-width: 768px){
  .page-id-1297 .g002.kv + section .sec__head { margin-top: 40px; }
}
/* 念のため他セクションの見出しも一定に */
.page-id-1297 .g002 section:not(.kv) .sec__head { margin-top: 80px; }
@media (max-width: 768px){
  .page-id-1297 .g002 section:not(.kv) .sec__head { margin-top: 40px; }
}

/* 2) FEATURES：箇条書きを左に寄りすぎない＆chipを完全横書き＋中央揃え */
.page-id-1297 .g002 .features {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 28px;
  align-items: start;
}
@media (max-width: 768px){
  .page-id-1297 .g002 .features {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
}
.page-id-1297 .g002 .check { display: grid; gap: 12px; margin: 0; padding: 0; }
.page-id-1297 .g002 .check li{
  list-style: none;
  padding: 12px 14px;
  border: 1px dashed #e5e7eb;
  border-radius: 10px;
  background: #fff;
  display: flex;
  align-items: center;   /* ← 縦中央で読みやすく */
  column-gap: 10px;
}
.page-id-1297 .g002 .chip{
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  white-space: nowrap;
  vertical-align: middle;
  padding: 4px 10px;
}

/* 3) 画像の見た目（角丸＆はみ出し防止） */
.page-id-1297 .g002 img{
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
  border-radius: 14px;
}
.page-id-1297 .g002 figure{ margin: 0; }

/* 4) ラボ（2カラム）の並び・余白微調整 */
.page-id-1297 .g002 .labs{
  display: grid !important;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
@media (max-width: 960px){
  .page-id-1297 .g002 .labs{ grid-template-columns: 1fr; }
}
.page-id-1297 .g002 .panel{
  border: 1px solid #ececec;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}
.page-id-1297 .g002 .panel__media{ aspect-ratio: 16/9; background: #ddd center/cover no-repeat; }
.page-id-1297 .g002 .panel__body{ padding: 16px 18px; }

/* 5) Flow（入会までの流れ）読みやすさの間隔だけ微調整（任意） */
.page-id-1297 .g002 .flow li { margin: 10px 0; line-height: 1.75; }
/* =====================
 入会までの流れ（Flow）
 ===================== */
.page-id-1200 .g002 .steps,
.page-id-1297 .g002 .steps {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(220px,1fr));
  gap: 24px;
  margin-top: 28px;
}

.page-id-1200 .g002 .step,
.page-id-1297 .g002 .step {
  background:#fff;
  border:1px solid #ececec;
  border-radius:14px;
  padding:20px;
  text-align:center;
  box-shadow:0 4px 12px rgba(0,0,0,.05);
}

.page-id-1200 .g002 .step__num,
.page-id-1297 .g002 .step__num {
  width:48px; height:48px;
  margin:0 auto 12px;
  border-radius:50%;
  background:#e53935; color:#fff;
  font-weight:700; font-size:20px;
  display:flex; align-items:center; justify-content:center;
}

.page-id-1200 .g002 .step__title,
.page-id-1297 .g002 .step__title {
  font-size:18px;
  font-weight:700;
  margin-bottom:8px;
}

.page-id-1200 .g002 .step__desc,
.page-id-1297 .g002 .step__desc {
  font-size:14px;
  color:#475569;
  margin:0;
}
/* ===== ABOUT 2カラム ===== */
.g002 #about + #about-cycle .aboutGrid,
.g002 #about + #about-cycle + #about-skills .aboutGrid,
.g002 #about-cycle .aboutGrid,
.g002 #about-skills .aboutGrid{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap:28px;
  align-items:start;
}
@media (max-width: 960px){
  .g002 #about-cycle .aboutGrid,
  .g002 #about-skills .aboutGrid{ grid-template-columns: 1fr; }
}

/* パネル（白カード） */
.g002 .panel{
  background:#fff;
  border:1px solid #ececec;
  border-radius:16px;
  padding:18px;
  box-shadow:0 4px 18px rgba(16,24,40,.04);
}
.g002 .panel__title{
  font-size:18px;
  font-weight:800;
  margin:0 0 12px;
  color:#0f172a;
}

/* ステップリスト */
.g002 .steps{ list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.g002 .step{
  display:grid;
  grid-template-columns: 44px 1fr;
  gap:12px;
  padding:12px;
  border:1px dashed #e5e7eb;
  border-radius:12px;
  background:#fff;
  position:relative;
}
.g002 .step__icon{
  width:44px; height:44px; border-radius:50%;
  display:grid; place-items:center;
  background:#eef2ff; color:#3730a3; font-size:20px; font-weight:700;
}
.g002 .step__body h4{ font-size:16px; margin:2px 0 6px; }
.g002 .step__body p{ font-size:14px; color:#475569; margin:0; }
.g002 .cycle .note{ margin-top:10px; font-size:12px; color:#64748b; }

/* スキルカード */
.g002 .skillCards{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(220px,1fr));
  gap:14px;
}
.g002 .skillCards .card{
  background:#fff;
  border:1px solid #ececec;
  border-radius:14px;
  padding:16px;
  box-shadow:0 2px 10px rgba(16,24,40,.04);
}
.g002 .skillCards .card h4{ font-size:16px; margin:0 0 6px; color:#0f172a; }
.g002 .skillCards .card p{ font-size:14px; margin:0; color:#475569; }

.g002 .skills .microcopy{
  margin-top:10px; font-size:12px; color:#64748b; text-align:right;
}
.g002 .skills .microcopy .soft{ background:linear-gradient(transparent 60%, #fff2f2 60%); }

/* 見出しまわりの余白（既存ルールと整合） */
.g002 #about .sec__head{ margin-top:0; } /* ヘッダー直下の余白は0のまま */
.g002 #about-cycle .sec__head,
.g002 #about-skills .sec__head{ margin-top:80px; }
@media (max-width:768px){
  .g002 #about-cycle .sec__head,
  .g002 #about-skills .sec__head{ margin-top:40px; }
}
/* === ABOUT / 探究学習とは：サイクル（6ステップ） === */
.g002 .cycle { margin: 32px auto 10px; max-width: 960px; }
.g002 .flow--compact {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.g002 .flow--compact li {
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 12px;
  padding: 14px;
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
}
.g002 .flow--compact .flow__head {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: center;
  margin-bottom: 6px;
}
.g002 .flow--compact .num {
  display: inline-flex;
  width: 28px; height: 28px;
  border-radius: 999px;
  align-items: center; justify-content: center;
  background: #e53935; color: #fff;
  font-weight: 700; font-size: 13px;
}
.g002 .flow--compact b { font-size: 15px; }

/* NOTE: 補足文 */
.g002 .cycle .note {
  margin: 10px 0 0;
  font-size: 12px;
  color: #64748b;
  text-align: right;
}

/* === ABOUT / 身につく力（同セクション内） === */
.g002 .skillsGrid { margin-top: 28px; }
.g002 .skills {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}
.g002 .skills .card {
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 14px;
  padding: 18px;
  box-shadow: 0 4px 18px rgba(16,24,40,.04);
  transition: transform .2s ease, box-shadow .2s ease;
}
.g002 .skills .card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(16,24,40,.10);
}
.g002 .skills .card h3 {
  margin: 0 0 6px;
  font-size: 16px; font-weight: 700;
  color: #0f172a;
}
.g002 .skills .card p {
  margin: 0; font-size: 14px; line-height: 1.65; color: #475569;
}

/* === 入会までの流れ（文字崩れ防止版） === */
.g002 .flowList {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  margin: 10px 0 0;
  padding: 0; list-style: none;
}
.g002 .flowItem {
  background: #fff;
  border: 1px solid #f1f5f9;
  border-radius: 14px;
  padding: 16px 16px 14px;
  box-shadow: 0 2px 12px rgba(0,0,0,.05);
}
.g002 .flowItem__head {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: center;
  margin-bottom: 6px;
}
.g002 .flowItem .num {
  display: inline-flex;
  width: 32px; height: 32px;
  border-radius: 999px;
  align-items: center; justify-content: center;
  background: #e53935; color: #fff;
  font-weight: 800; font-size: 14px;
}
.g002 .flowItem b { font-size: 16px; }
.g002 .flowItem p { margin: 0; font-size: 14px; color: #334155; line-height: 1.7; }

/* ミニ見出し（セクション内の導入） */
.g002 .miniTitle{
  margin: 28px 0 8px;
  font-size: 12px;
  letter-spacing: .08em;
  font-weight: 800;
  color: #e53935;
  text-transform: uppercase;
}

/* 説明の強調ボックス */
.g002 .callout{
  background: #fff;
  border: 1px solid #f1f5f9;
  border-left: 4px solid #e53935;
  border-radius: 10px;
  padding: 14px 16px;
  color: #334155;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
}
.g002 .callout p{ margin: 0; line-height: 1.8; }

/* 小見出し・補足説明 */
.g002 .miniTitle{
  margin: 24px 0 10px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .06em;
  color: #e53935;
}
.g002 .sublead{
  margin: 4px 0 18px;
  color: #334155;
  line-height: 1.8;
}

/* “なぜこのサイクルが重要？” */
.g002 .whyCycle{
  margin-top: 12px;
}
.g002 .whyList{
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(260px,1fr));
  gap: 12px;
}
.g002 .whyList li{
  background:#fff;
  border:1px solid #f1f5f9;
  border-radius:12px;
  padding:12px 14px;
  box-shadow:0 2px 10px rgba(0,0,0,.04);
  line-height:1.7;
}
.g002 .whyList b{ color:#0f172a; }
.g002 .whyList u{ text-underline-offset:2px; }

/* ============================
   強調小見出し（サイクル / 身につく力）
   ============================ */
.g002 .highlightTitle {
  margin: 40px 0 16px;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.4;
  color: #111;
  position: relative;
  text-align: center;
}

.g002 .highlightTitle::after {
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  margin: 8px auto 0;
  background: #e53935;   /* 赤の下線で強調 */
  border-radius: 2px;
}

/* 補足説明文 */
.g002 .sublead {
  margin: 8px auto 24px;
  font-size: 15px;
  line-height: 1.8;
  color: #334155;
  text-align: center;
  max-width: 780px;
}

/* ============================
   強調セクション見出し
   ============================ */
.g002 .sectionTitleStrong {
  margin: 60px 0 20px;
  font-size: clamp(24px, 3.2vw, 30px);
  font-weight: 800;
  color: #111;
  text-align: center;
  line-height: 1.4;
  position: relative;
}

.g002 .sectionTitleStrong::before {
  content: "◆";
  display: inline-block;
  color: #e53935;
  font-size: 20px;
  margin-right: 8px;
  vertical-align: middle;
}

.g002 .sectionTitleStrong::after {
  content: "";
  display: block;
  width: 80px;
  height: 3px;
  background: #e53935;
  margin: 10px auto 0;
  border-radius: 2px;
}

/* サブリード */
.g002 .sublead {
  margin: 10px auto 32px;
  font-size: 15px;
  line-height: 1.8;
  color: #334155;
  text-align: center;
  max-width: 780px;
}
/**************************************
 * 入会までの流れ（#flow）— .steps / .step 版
 **************************************/

/* 1) 文字が縦書き化・1文字折りするのを抑止 */
.page-id-1200 #flow, .page-id-1200 #flow * ,
.page-id-1297 #flow, .page-id-1297 #flow * {
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  white-space: normal !important;
  word-break: normal !important;
}

/* 2) カードのグリッド（4→2→1列） */
.page-id-1200 #flow .steps,
.page-id-1297 #flow .steps{
  display:grid !important;
  grid-template-columns: repeat(4, minmax(240px,1fr));
  gap:24px;
  align-items:stretch;
  margin-top:20px;
}
@media (max-width:1080px){
  .page-id-1200 #flow .steps,
  .page-id-1297 #flow .steps{
    grid-template-columns: repeat(2, minmax(240px,1fr));
  }
}
@media (max-width:640px){
  .page-id-1200 #flow .steps,
  .page-id-1297 #flow .steps{
    grid-template-columns: 1fr;
  }
}

/* 3) 各カードの体裁 */
.page-id-1200 #flow .step,
.page-id-1297 #flow .step{
  background:#fff;
  border:1px solid #eef2f7;
  border-radius:16px;
  padding:24px 20px 28px;
  box-shadow:0 6px 16px rgba(16,24,40,.06);
  display:flex;
  flex-direction:column;
}

/* 番号丸 */
.page-id-1200 #flow .step__num,
.page-id-1297 #flow .step__num{
  width:44px; height:44px; border-radius:999px;
  background:#e53935; color:#fff; font-weight:800;
  display:grid; place-items:center; margin-bottom:10px;
}

/* タイトルに下線（視認性UP） */
.page-id-1200 #flow .step__title,
.page-id-1297 #flow .step__title{
  font-weight:800;
  border-top:2px solid #e5e9f2;
  padding-top:8px;
  line-height:1.35;
  margin:0 0 6px;
}

/* 本文の行間と余白 */
.page-id-1200 #flow .step__desc,
.page-id-1297 #flow .step__desc{
  margin:0;
  line-height:1.9;
}

/* セクション上余白（PC80 / SP40） */
.page-id-1200 #flow .sec__head,
.page-id-1297 #flow .sec__head{ margin-top:80px; }
@media (max-width:768px){
  .page-id-1200 #flow .sec__head,
  .page-id-1297 #flow .sec__head{ margin-top:40px; }
}

.strikethrough {
        text-decoration: line-through; /* 取り消し線 */
    }
/* ===========================
   VOICE（体験談）共通スタイル
   — page-id 1200 / 1297 の両方に適用
   =========================== */
.page-id-1200 .g002.voice,
.page-id-1297 .g002.voice{
  padding:clamp(40px,6vw,80px) 0;
}

.page-id-1200 .g002.voice .wrap,
.page-id-1297 .g002.voice .wrap{
  max-width:1080px;
  margin-inline:auto;
  padding-inline:24px;
  box-sizing:border-box;
}

.page-id-1200 .g002.voice .voices,
.page-id-1297 .g002.voice .voices{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:24px;
  margin-top:32px;
}

/* カード：PCで 6/12 幅（2列）、タブレットは2列、SPは1列 */
.page-id-1200 .g002.voice .voiceCard,
.page-id-1297 .g002.voice .voiceCard{
  grid-column:span 6;
  background:#fff;
  border-radius:14px;
  box-shadow:0 4px 18px rgba(16,24,40,.08);
  padding:20px 22px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  transition:transform .25s ease, box-shadow .25s ease;
}
@media (max-width: 980px){
  .page-id-1200 .g002.voice .voiceCard,
  .page-id-1297 .g002.voice .voiceCard{ grid-column:span 6; }
}
@media (max-width: 640px){
  .page-id-1200 .g002.voice .voiceCard,
  .page-id-1297 .g002.voice .voiceCard{ grid-column:span 12; }
}

.page-id-1200 .g002.voice .voiceCard:hover,
.page-id-1297 .g002.voice .voiceCard:hover{
  transform:translateY(-4px);
  box-shadow:0 6px 24px rgba(16,24,40,.12);
}

.page-id-1200 .g002.voice .voiceCard__text,
.page-id-1297 .g002.voice .voiceCard__text{
  font-size:15px;
  line-height:1.7;
  color:#374151;
  margin-bottom:12px;
}

.page-id-1200 .g002.voice .voiceCard__author,
.page-id-1297 .g002.voice .voiceCard__author{
  font-size:13px;
  color:#6b7280;
  font-style:italic;
  text-align:right;
}

/* === なぜこのサイクルが重要？ Fancy Cards === */
.whyList.fancy {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-top: 20px;
}

.whyList.fancy .whyCard {
  background: linear-gradient(135deg, #fff, #f9fafb);
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 24px 20px;
  text-align: center;
  box-shadow: 0 6px 16px rgba(0,0,0,0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.whyList.fancy .whyCard:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 24px rgba(0,0,0,0.12);
}

.whyList.fancy .whyIcon {
  font-size: 2rem;
  margin-bottom: 12px;
}

.whyList.fancy h4 {
  font-size: 18px;
  font-weight: 700;
  color: #111827;
  margin-bottom: 8px;
}

.whyList.fancy p {
  font-size: 14px;
  color: #374151;
  line-height: 1.6;
}

.whyList.fancy p b {
  color: #e53935;
}
/* === なぜこのサイクルが重要？ Fancy Cards アイコン中央揃え修正 === */
.whyList.fancy .whyCard {
  text-align: center;          /* コンテンツ全体を中央寄せ */
}

.whyList.fancy .whyIcon {
  display: flex;               /* フレックスボックスで中央寄せ */
  justify-content: center;
  align-items: center;
  font-size: 2rem;
  margin: 0 auto 12px;         /* 自動マージンで中央に */
}

/* 問い合わせフォームのラッパー */
.wpcf7 {
  max-width: 800px;  /* 最大幅を800pxに設定 */
  width: 100%;
  margin: 0 auto;    /* 中央寄せ */
  padding: 20px;
  box-sizing: border-box;
}

/* フォームの入力エリア */
.wpcf7 input,
.wpcf7 select,
.wpcf7 textarea {
  width: 100%;  /* 入力エリアの幅を100%に */
  padding: 12px;
  margin-bottom: 12px;
  border: 1px solid #ccc;
  border-radius: 8px;
  box-sizing: border-box;
}

/* スマートフォン表示時 */
@media (max-width: 768px) {
  .wpcf7 {
    max-width: 100%;  /* スマホではフォームの最大幅100% */
    padding: 10px;
  }
  .wpcf7 input,
  .wpcf7 select,
  .wpcf7 textarea {
    width: 100%;  /* スマホでも入力フィールドが画面に合うように */
  }
}

/* =============================
   Home v2 Scoped Styles
   ============================= */
.homeV2 { --c-accent:#e53935; --c-ink:#101828; --c-muted:#475569; --c-line:#eef2f7; }
.homeV2 .wrap{max-width:1080px;margin-inline:auto;padding-inline:24px;box-sizing:border-box}

/* KV */
.homeV2 .kv{position:relative;isolation:isolate;min-height:56vh;background:#000;overflow:hidden}
.homeV2 .kv__bg{position:absolute;inset:0;object-fit:cover;width:100%;height:100%;filter:brightness(.8)}
.homeV2 .kv__inner{position:relative;z-index:1;display:grid;gap:14px;place-items:end;text-align:right;
  padding:56px 24px 48px; color:#fff}
@media (max-width:768px){
  .homeV2 .kv__inner{place-items:center;text-align:center;padding:36px 16px}
}
.homeV2 .kv__title{display:inline-block;background:rgba(255,255,255,.9);color:#111;
  font-weight:800;border-radius:14px;padding:16px 20px;line-height:1.35;
  font-size:clamp(22px,3.8vw,30px);box-shadow:0 10px 30px rgba(0,0,0,.28)}
.homeV2 .ctaRow{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:768px){.homeV2 .ctaRow{justify-content:center}}
.homeV2 .btn{display:inline-flex;align-items:center;gap:.55em;padding:14px 20px;border-radius:999px;
  font-weight:700;line-height:1;border:2px solid transparent;background:var(--c-accent);color:#fff;
  box-shadow:0 6px 16px rgba(229,57,53,.35);text-decoration:none}
.homeV2 .btn--ghost{background:#fff;color:var(--c-accent);border-color:var(--c-accent);box-shadow:none}
.homeV2 .btn:focus-visible{outline:3px solid #fff;outline-offset:2px}

/* Section heads */
.homeV2 .sec__head{text-align:center;margin:64px 0 24px}
.homeV2 .sec__eyebrow{color:var(--c-accent);font-weight:800;letter-spacing:.12em;font-size:12px}
.homeV2 .sec__title{font-size:clamp(22px,3vw,32px);font-weight:800;margin-top:8px;color:var(--c-ink)}
.homeV2 .lead{color:var(--c-muted);margin:8px auto 0;max-width:820px;text-align:center}

/* サイクル：横スクロール対応 */
.homeV2 .flowStrip{background:#fff;border:1px solid var(--c-line);border-radius:14px;padding:16px}
.homeV2 .flowStrip__list{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(180px,1fr);gap:12px;overflow:auto;padding-bottom:6px}
.homeV2 .stepCard{background:#fff;border:1px solid var(--c-line);border-radius:12px;padding:10px 12px;min-height:92px}
.homeV2 .stepCard .num{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#fef0ef;color:var(--c-accent);font-weight:800}

/* Why cycle */
.homeV2 .why{display:grid;gap:12px;margin-top:14px}
@media(min-width:900px){.homeV2 .why{grid-template-columns:repeat(3,1fr)}}
.homeV2 .whyItem{position:relative;border:1px solid var(--c-line);border-radius:16px;background:#fff;
  padding:18px 16px;box-shadow:0 6px 18px rgba(16,24,40,.06)}
.homeV2 .whyItem::before{content:"";position:absolute;inset:auto auto -1px 16px;height:4px;width:56px;border-radius:4px;background:var(--c-accent)}
.homeV2 .whyItem b{font-weight:800;color:var(--c-ink)}
.homeV2 .whyItem p{margin:.4em 0 0;color:var(--c-muted)}

/* 身につく力（チップ） */
.homeV2 .skillsChips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;justify-content:center}
.homeV2 .chip{background:#eef2ff;color:#3730a3;border-radius:999px;padding:6px 12px;font-weight:700;}

/* 2コラム「ラボのご案内」 */
.homeV2 .labs{display:grid;gap:24px}
@media(min-width:960px){.homeV2 .labs{grid-template-columns:1fr 1fr}}
.homeV2 .panel{border:1px solid var(--c-line);border-radius:16px;overflow:hidden;background:#fff}
.homeV2 .panel__media{aspect-ratio:16/9;background:#ddd center/cover no-repeat}
.homeV2 .panel__body{padding:16px 18px}
.homeV2 .bullets{margin:10px 0 0;padding-left:1.2em}
.homeV2 .bullets li{margin:.3em 0}

/* 下部CTA */
.homeV2 .ctaBand{background:#fff;border:1px solid var(--c-line);border-radius:14px;
  padding:18px;display:grid;gap:12px;place-items:center}

/* 投稿カード（既存WP側のグリッドを活かす想定。ここでは微調整のみ） */
.homeV2 .postCard{border:1px solid var(--c-line);border-radius:12px;background:#fff}
.homeV2 .postCard .meta{color:var(--c-muted);font-size:13px}

/* 微アニメーション */
.homeV2 .btn:hover{transform:translateY(-1px)}
.homeV2 .panel:hover{transform:translateY(-2px);transition:.3s}

/* ===== 基本レイアウト・共通 ===== */
.wrap { max-width: 1080px; margin: 0 auto; padding: 0 24px; }

.btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: .5em; padding: 14px 22px; border-radius: 999px; font-weight: 700;
  text-decoration: none; line-height: 1; transition: .2s ease; white-space: nowrap;
}
.btn--primary { background:#e53935; color:#fff; box-shadow:0 6px 16px rgba(229,57,53,.35); }
.btn--secondary { background:#fff; color:#e53935; border:2px solid #e53935; }
.btn--cta { background:linear-gradient(135deg, #e60012, #ff5a36); color:#fff; box-shadow:0 8px 22px rgba(229,57,53,.35); }
.btn:hover { transform: translateY(-1px); opacity:.95; }

/* ===== KV ===== */
.top-kv { position: relative; text-align: center; color: #fff; }
.kv__img { width: 100%; height: 80vh; object-fit: cover; display:block; }
.kv__overlay {
  position: absolute; inset: 0; background: rgba(0,0,0,0.45);
  display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 0 16px;
}
.kv__catch { font-size: clamp(22px, 3.4vw, 38px); line-height: 1.5; margin-bottom: 18px; }
.kv__btns .btn { margin: 0 8px; }

/* ===== Campaign ===== */
.campaign { background: #fff7e5; padding: 48px 0; }
.campaign__inner { display: flex; align-items: center; gap: 24px; }
.campaign__img { width: 40%; border-radius: 8px; display:block; }
.campaign__text h2 { font-size: clamp(20px, 2.6vw, 30px); margin-bottom: 8px; }
.campaign__text p { font-size: clamp(15px, 2vw, 18px); margin: 6px 0 16px; }
.highlight { color: #e60012; font-weight: 800; font-size: 1.25em; }

/* ===== Merits ===== */
.merits { background: #f9fafc; padding: 72px 0; }
.sec__head { text-align: center; }
.sec__title { font-size: clamp(22px, 3vw, 32px); font-weight: 800; }
.sec__lead { color:#475569; margin-top: 6px; }
.merit__list {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 28px;
}
.merit__item {
  background: #fff; padding: 24px; border-radius: 14px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08); text-align: center; transition: transform .25s ease, box-shadow .25s ease;
}
.merit__item:hover { transform: translateY(-4px); box-shadow: 0 8px 20px rgba(0,0,0,0.12); }
.merit__item .icon { font-size: 40px; margin-bottom: 8px; }
.merit__item h3 { font-size: 18px; margin: 6px 0 8px; }
.merit__item p { color:#475569; }

/* ===== CTA ===== */
.cta {
  background: linear-gradient(135deg, #e60012, #ff5a36); color: #fff; text-align: center;
  padding: 64px 24px;
}
.cta h2 { font-size: clamp(22px, 3vw, 30px); margin-bottom: 8px; }
.cta p { margin-bottom: 18px; font-size: clamp(14px, 2vw, 17px); }

/* ===== Responsive ===== */
@media (max-width: 960px) {
  .campaign__inner { flex-direction: column; text-align: center; }
  .campaign__img { width: 80%; }
  .merit__list { grid-template-columns: 1fr; }
  .kv__img { height: 64vh; }
}

/* ====== 開校キャンペーン ====== */
.campaign-block {
  background: linear-gradient(135deg, #fff8f8, #ffeaea);
  padding: 80px 0;
  position: relative;
  overflow: hidden;
}
.campaign-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
  flex-wrap: wrap;
}
.campaign-text {
  flex: 1 1 520px;
}
.campaign-label {
  display: inline-block;
  background: #e53935;
  color: #fff;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 14px;
  margin-bottom: 14px;
}
.campaign-title {
  font-size: clamp(26px, 3.2vw, 38px);
  font-weight: 800;
  margin-bottom: 14px;
}
.campaign-title .zero {
  color: #e60012;
  font-size: 1.3em;
}
.campaign-desc {
  font-size: 17px;
  line-height: 1.7;
  margin-bottom: 20px;
}
.campaign-desc .line {
  text-decoration: line-through;
  color: #666;
}
.campaign-desc .highlight {
  color: #e60012;
  font-weight: 700;
}
.campaign-benefits {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  font-size: 16px;
  line-height: 1.8;
}
.campaign-benefits li {
  margin-bottom: 6px;
}
.campaign-deadline {
  font-size: 14px;
  color: #666;
  margin-top: 16px;
}

.campaign-visual {
  flex: 1 1 380px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.campaign-img {
  width: 100%;
  max-width: 420px;
  border-radius: 16px;
  box-shadow: 0 8px 32px rgba(0,0,0,.15);
  z-index: 2;
  position: relative;
}
.circle-bg {
  position: absolute;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  background: rgba(229, 57, 53, 0.08);
  top: -40px;
  left: -40px;
  z-index: 1;
}
.price-tag {
  position: absolute;
  top: -20px;
  right: -20px;
  background: #e60012;
  color: #fff;
  border-radius: 50%;
  width: 120px;
  height: 120px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  box-shadow: 0 6px 20px rgba(229,0,0,0.35);
  z-index: 3;
}
.price-label {
  font-size: 16px;
  margin-bottom: 4px;
}
.price-zero {
  font-size: 32px;
  line-height: 1;
}

@media (max-width: 900px) {
  .campaign-inner {
    flex-direction: column;
    text-align: center;
  }
  .campaign-visual {
    order: -1;
    margin-bottom: 32px;
  }
  .price-tag {
    top: -10px;
    right: auto;
    left: 50%;
    transform: translateX(-50%);
  }
  .campaign-benefits { text-align: left; display: inline-block; }
}

/* =========================================
   TOPだけに適用（page-id-1080）
   ========================================= */
.page-id-1080 {

  /* ヘッダー直下の余白をゼロ（KV上の隙間を削除） */
  /* LightningのmainSectionヘッダー装飾を無効化 */
  /* ※他ページは触らない */
}
.page-id-1080 .mainSection header{
  margin:0 !important; padding:0 !important; border:none !important;
}
.page-id-1080 .entry-body > *:first-child{
  margin-top:0 !important;
}

/* 既存の見出しの左青バーを撤去（上部赤eyebrowに統一） */
.page-id-1080 h1, .page-id-1080 h2, .page-id-1080 h3,
.page-id-1080 .vk-heading, .page-id-1080 .vk-heading__title,
.page-id-1080 .section-title, .page-id-1080 .page-header .entry-title{
  border-left:none !important; padding-left:0 !important; box-shadow:none !important;
}

/* ===== KV（ヒーロー） ===== */
.page-id-1080 .topKV{
  position:relative; isolation:isolate;
  margin:0; padding:0; color:#fff;
}
.page-id-1080 .topKV .kv__media{ margin:0; }
.page-id-1080 .topKV .kv__media img{
  width:100%; height:auto; display:block; object-fit:cover;
  aspect-ratio: 16/9;
}
.page-id-1080 .topKV .kv__inner{
  position:absolute; inset:0; display:grid; place-content:center;
  gap:18px; text-align:center; padding:24px;
  background: linear-gradient(0deg, rgba(0,0,0,.25), rgba(0,0,0,.25));
}
@media (min-width:1025px){
  .page-id-1080 .topKV .kv__inner{
    place-content:center end;
    text-align:right; padding-right:6%;
  }
}
.page-id-1080 .topKV .kv__eyebrow{
  font-size:12px; letter-spacing:.12em; font-weight:800; color:#ff4b4b;
}
.page-id-1080 .topKV .kv__title{
  font-size:clamp(28px,3.6vw,44px); line-height:1.28; font-weight:800; margin:0;
}
.page-id-1080 .topKV .kv__title span{ background:rgba(255,255,255,.9); color:#111; padding:.08em .35em; border-radius:.35em; }
.page-id-1080 .topKV .kv__sub{ opacity:.95; margin-top:2px; }

.page-id-1080 .topKV .kv__benefits{
  display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:8px 0 6px; padding:0; list-style:none;
}
.page-id-1080 .topKV .kv__benefits li{
  display:grid; grid-template-columns:auto 1fr; gap:8px; align-items:center;
  background:rgba(255,255,255,.1); backdrop-filter:blur(4px);
  border:1px solid rgba(255,255,255,.25);
  border-radius:12px; padding:10px 12px; text-align:left;
}
.page-id-1080 .topKV .kv__benefits .icon{ font-size:20px; line-height:1; }
.page-id-1080 .topKV .kv__benefits b{ display:block; font-weight:800; }
.page-id-1080 .topKV .kv__benefits small{ opacity:.92; }

@media (max-width:768px){
  .page-id-1080 .topKV .kv__benefits{ grid-template-columns:1fr; }
}

/* CTAボタン */
.page-id-1080 .g002 .ctaRow{ display:flex; gap:12px; flex-wrap:wrap; justify-content:center; }
@media (min-width:1025px){
  .page-id-1080 .topKV .ctaRow{ justify-content:flex-end; }
}
.page-id-1080 .g002 .btn{
  display:inline-flex; align-items:center; gap:.5em;
  padding:14px 22px; border-radius:999px; font-weight:700; line-height:1;
  border:2px solid transparent; background:#e53935; color:#fff;
  box-shadow:0 8px 22px rgba(229,57,53,.25); white-space:nowrap;
}
.page-id-1080 .g002 .btn--ghost{ background:#fff; color:#e53935; border-color:#e53935; box-shadow:none; }

/* ===== CTA BAND（スマホで圧縮＆説明つき） ===== */
.page-id-1080 .ctaBand{ padding:clamp(36px,6vw,72px) 0; background:#fff; }
.page-id-1080 .ctaBand .sec__head{ text-align:center; margin-bottom:18px; }
.page-id-1080 .sec__eyebrow{ color:#e53935; font-weight:800; letter-spacing:.1em; font-size:12px; }
.page-id-1080 .sec__title{ font-size:clamp(22px,3vw,32px); font-weight:800; margin:6px 0 0; }
.page-id-1080 .ctaBand .lead{  color:#404040; margin:8px auto 16px; max-width:820px; }

.page-id-1080 .ctaBand__cards{
  display:grid; gap:14px; grid-template-columns:repeat(2,1fr); margin:8px auto 14px; max-width:960px;
}
@media (max-width:768px){ .page-id-1080 .ctaBand__cards{ grid-template-columns:1fr; } }

.page-id-1080 .ctaCard{
  display:grid; place-content:center; gap:4px; padding:22px 18px; border-radius:14px;
  text-align:center; text-decoration:none; color:#111; min-height:120px;
  box-shadow:0 8px 24px rgba(16,24,40,.06);
  transition:transform .2s ease, box-shadow .2s ease;
}
.page-id-1080 .ctaCard:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(16,24,40,.1); }
.page-id-1080 .ctaCard--yellow{ background:#ffe97a; }
.page-id-1080 .ctaCard--pink  { background:#ffc3cf; }
.page-id-1080 .ctaCard__eyebrow{ font-size:11px; letter-spacing:.12em; opacity:.8; }
.page-id-1080 .ctaCard__title{ font-size:18px; font-weight:800; }
.page-id-1080 .ctaCard__hint{ font-size:13px; opacity:.85; }

.page-id-1080 .ctaBand__row{ margin-top:6px; }

/***** TOP KV 読みやすさ & メリット3カード整形 *****/
.page-id-1080 .topKV .kv__inner{
  /* オーバーレイを少し濃くして情報の可読性UP */
  background: linear-gradient(
    0deg,
    rgba(0,0,0,.55) 0%,
    rgba(0,0,0,.40) 40%,
    rgba(0,0,0,.35) 100%
  );
  padding-top: clamp(16px, 5vw, 48px);
  padding-bottom: clamp(16px, 5vw, 40px);
}

/* タイトル文字にわずかなシャドウで背景と分離 */
.page-id-1080 .topKV .kv__title,
.page-id-1080 .topKV .kv__sub{
  text-shadow: 0 2px 8px rgba(0,0,0,.28);
}

/* ---------------- メリット3カード ---------------- */
.page-id-1080 .topKV .kv__benefits{
  /* 横幅を絞って中央寄せ、均等幅で崩れを防止 */
  max-width: min(1080px, 92vw);
  margin-inline: auto;
  grid-template-columns: repeat(3, minmax(220px, 1fr));
  gap: 14px;
}

/* カードの見やすさ・高さ揃え・内部レイアウト */
.page-id-1080 .topKV .kv__benefits li{
  display: grid;
  grid-template-columns: 42px 1fr;  /* アイコン + テキスト */
  align-items: center;
  gap: 10px;

  min-height: 96px;               /* 高さ揃え */
  padding: 12px 14px;
  border-radius: 14px;

  /* ガラスカード風でコントラストUP */
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.28);
  box-shadow: 0 6px 22px rgba(0,0,0,.16);
  backdrop-filter: blur(6px);
}

/* アイコンを正円＋中央揃えで固定幅 */
.page-id-1080 .topKV .kv__benefits .icon{
  width: 42px; height: 42px;
  display: grid; place-items: center;
  border-radius: 999px;
  background: rgba(255,255,255,.22);
  font-size: 20px; line-height: 1;
}

/* 見出しと補足のメリハリ */
.page-id-1080 .topKV .kv__benefits b{
  display: block;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: .01em;
}
.page-id-1080 .topKV .kv__benefits small{
  display: block;
  font-size: 12.5px;
  opacity: .95;
  margin-top: 2px;
}

/* ボタン群の詰まりを緩和（画像にかぶりすぎ防止） */
.page-id-1080 .topKV .ctaRow{
  margin-top: clamp(6px, 2vw, 12px);
}

/* --------- 中〜小画面のブレイクポイント調整 --------- */
@media (max-width: 1100px){
  .page-id-1080 .topKV .kv__benefits{
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 12px;
  }
}
@media (max-width: 640px){
  .page-id-1080 .topKV .kv__benefits{
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .page-id-1080 .topKV .kv__benefits li{
    min-height: 86px;
    padding: 10px 12px;
    grid-template-columns: 38px 1fr;
  }
  .page-id-1080 .topKV .kv__benefits .icon{
    width: 38px; height: 38px; font-size: 18px;
  }
  .page-id-1080 .topKV .kv__benefits b{ font-size: 15px; }
  .page-id-1080 .topKV .kv__benefits small{ font-size: 12px; }
}

/***** KV メリット3カード 完全リセット & レイアウト強化（TOPのみ） *****/
.page-id-1080 .topKV .kv__benefits,
.page-id-1080 .topKV .kv__benefits *{
  writing-mode: horizontal-tb !important;   /* 万一の縦書き干渉を完全無効化 */
  text-orientation: mixed !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: anywhere;                  /* 長い語でもこぼさない */
}

/* コンテナ（3列→2列→1列の順で崩れない） */
.page-id-1080 .topKV .kv__benefits{
  max-width: min(1120px, 92vw);
  margin: clamp(12px, 2vw, 16px) auto 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(10px, 1.6vw, 16px);
  align-items: stretch;
}

/* 各カード：フレックスでアイコンとテキストを横並び固定幅＋可変幅 */
.page-id-1080 .topKV .kv__benefits li{
  display: flex;
  align-items: center;
  gap: 12px;

  min-height: 98px;
  padding: 12px 14px;
  border-radius: 14px;

  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.28);
  box-shadow: 0 6px 22px rgba(0,0,0,.16);
  backdrop-filter: blur(6px);

  color:#fff;
  line-height: 1.55;
}

/* アイコンは正円＋中央。幅は固定してテキスト領域を圧迫しない */
.page-id-1080 .topKV .kv__benefits .icon{
  flex: 0 0 44px;
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: rgba(255,255,255,.22);
  font-size: 20px; line-height: 1;
}

/* テキスト領域は可変幅で自然に折り返し */
.page-id-1080 .topKV .kv__benefits .txt{ flex: 1 1 auto; }

/* 見出し＆補足のメリハリ */
.page-id-1080 .topKV .kv__benefits b{
  display: block;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: .01em;
}
.page-id-1080 .topKV .kv__benefits small{
  display: block;
  font-size: 12.5px;
  opacity: .95;
  margin-top: 2px;
}

/* タイトルの可読性（背景に負けないよう軽いシャドウ） */
.page-id-1080 .topKV .kv__title,
.page-id-1080 .topKV .kv__sub{
  text-shadow: 0 2px 8px rgba(0,0,0,.28);
}

/* CTAの上下詰まりを少し緩和 */
.page-id-1080 .topKV .ctaRow{ margin-top: clamp(6px, 2vw, 12px); }

/* 1100px以下：2列に */
@media (max-width:1100px){
  .page-id-1080 .topKV .kv__benefits{
    grid-template-columns: repeat(2, 1fr);
  }
}

/* 640px以下：1列。アイコンや内側余白を少しタイトに */
@media (max-width:640px){
  .page-id-1080 .topKV .kv__benefits{
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .page-id-1080 .topKV .kv__benefits li{
    min-height: 90px;
    padding: 10px 12px;
    gap: 10px;
  }
  .page-id-1080 .topKV .kv__benefits .icon{
    flex-basis: 38px; width: 38px; height: 38px; font-size: 18px;
  }
  .page-id-1080 .topKV .kv__benefits b{ font-size: 15px; }
  .page-id-1080 .topKV .kv__benefits small{ font-size: 12px; }
}

/************ TOP（page-id-1080）KV オーバーレイ & はみ出し修正 ************/
.page-id-1080 .topKV{
  position: relative;
  overflow: hidden;                 /* 画像より外にはみ出さない */
}

/* 背景画像は常に全面カバー */
.page-id-1080 .topKV .kv__bg img{
  width: 100%;
  height: clamp(420px, 68vh, 760px);
  object-fit: cover;
  display: block;
}

/* 黒オーバーレイを KV 全体にピタッと固定（ずれ防止） */
.page-id-1080 .topKV::after{
  content:"";
  position: absolute;
  inset: 0;                         /* ←上下左右0で全面 */
  background: rgba(0,0,0,.28);      /* お好みで濃さ調整（.24〜.40目安） */
  pointer-events: none;
  z-index: 0;
}

/* 文字やカードはオーバーレイより前面に */
.page-id-1080 .topKV .kv__inner,
.page-id-1080 .topKV .kv__title,
.page-id-1080 .topKV .kv__sub,
.page-id-1080 .topKV .kv__benefits,
.page-id-1080 .topKV .ctaRow{
  position: relative;
  z-index: 1;
}

/* カードの横はみ出し防止（PCでも余白基準を明示） */
.page-id-1080 .topKV .kv__benefits{
  max-width: min(1100px, 92vw);
  margin: clamp(12px, 2vw, 16px) auto 0;
  padding: 0 2px;                   /* サイドに微小バッファ */
  box-sizing: border-box;
}

/* --------- スマホ最適化（はみ出し/詰まり/文字サイズ） --------- */
@media (max-width: 640px){
  .page-id-1080 .topKV .kv__inner{
    padding: 14px 14px 22px;        /* 画面端に食い込まない */
  }
  .page-id-1080 .topKV .kv__title{
    font-size: clamp(20px, 6.2vw, 28px);
    line-height: 1.35;
    text-wrap: balance;
    margin-bottom: 8px;
    text-shadow: 0 2px 8px rgba(0,0,0,.28);
  }
  .page-id-1080 .topKV .kv__sub{
    font-size: clamp(12px, 3.6vw, 14px);
    line-height: 1.6;
    margin-bottom: 10px;
    text-shadow: 0 2px 8px rgba(0,0,0,.28);
  }

  /* メリットカード：1列・余白タイト・100%幅 */
  .page-id-1080 .topKV .kv__benefits{
    grid-template-columns: 1fr !important;
    gap: 10px;
    max-width: 100%;
    width: 100%;
    padding: 0;                     /* 余白をカード側でとる */
  }
  .page-id-1080 .topKV .kv__benefits li{
    margin: 0 10px;                 /* 画面端から 10px バッファ */
    min-height: 84px;
    padding: 10px 12px;
    border-radius: 12px;
  }
  .page-id-1080 .topKV .kv__benefits .icon{
    flex-basis: 36px; width: 36px; height: 36px;
    font-size: 18px;
  }
  .page-id-1080 .topKV .kv__benefits b{ font-size: 15px; }
  .page-id-1080 .topKV .kv__benefits small{ font-size: 12px; }

  /* CTAは縦並び・はみ出し防止 */
  .page-id-1080 .topKV .ctaRow{
    margin-top: 12px;
    padding: 0 10px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .page-id-1080 .topKV .ctaRow .btn{
    width: 100%;
    justify-content: center;
  }
}

/* iOS等での“拡大表示時の謎のはみ出し”を最終ガード */
.page-id-1080 .topKV,
.page-id-1080 .topKV .kv__inner,
.page-id-1080 .topKV .kv__benefits,
.page-id-1080 .topKV .ctaRow{
  max-width: 100%;
  overflow-x: hidden;
}

.about-page {
  background: #fff;
  padding: 60px 0;
  font-family: 'Noto Sans JP', sans-serif;
}

.wrap {
  width: 90%;
  max-width: 880px;
  margin: 0 auto;
}

.about-section {
  margin-bottom: 60px;
}

.sec__title {
  font-size: 1.8rem;
  border-left: 4px solid #e60033;
  padding-left: 10px;
  margin-bottom: 20px;
}

.lead {
  font-size: 1.2rem;
  font-weight: 500;
  margin-bottom: 20px;
}

.value-list li {
  margin-bottom: 8px;
  font-size: 1rem;
}

.message-container {
  display: flex;
  align-items: flex-start;
  gap: 40px;
}

.message-photo img {
  border-radius: 8px;
  width: 180px;
}

.company-table {
  width: 100%;
  border-collapse: collapse;
}

.company-table th {
  width: 30%;
  background: #f9f9f9;
  text-align: left;
  padding: 10px;
}

.company-table td {
  padding: 10px;
}

.brand-story {
  text-align: center;
}

.brand-story img {
  width: 180px;
  margin-bottom: 20px;
}

/* ===== About プロ化スキン（テキスト変更なし用） ===== */
.aboutPro { background:#fff; padding:56px 0 80px; font-family:"Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; }
.aboutPro .wrap { width:min(100%, 980px); margin:0 auto; padding:0 20px; }

.aboutPro .aboutSec { background:#fff; border:1px solid #eef2f7; border-radius:14px; padding:24px; margin:0 0 28px; box-shadow:0 6px 22px rgba(17,24,39,.04); }
.aboutPro .aboutSec:last-child { margin-bottom:0; }

.aboutPro .secTitle { 
  font-weight:800; 
  font-size: clamp(18px, 2.4vw, 22px);
  margin:0 0 18px; 
  position:relative; 
  padding-left:14px;
  letter-spacing:.02em;
}
.aboutPro .secTitle::before{
  content:""; position:absolute; inset:auto auto 0 calc(-14px); 
  width:4px; height:1.15em; background:#e53935; border-radius:2px;
}

.aboutPro .secBody p { line-height:1.9; color:#374151; margin:.6em 0; }
.aboutPro .secBody ul { padding-left:1.2em; margin:.6em 0; }
.aboutPro .secBody li { margin:.35em 0; color:#374151; }

/* 代表メッセージ */
.aboutPro .message .messageGrid{
  display:grid; grid-template-columns: 1.2fr .9fr; gap:22px; align-items:start;
}
@media (max-width: 840px){
  .aboutPro .message .messageGrid{ grid-template-columns:1fr; }
}
.aboutPro .messageText{
  background:linear-gradient(180deg,#fff, #fafbff);
  border:1px solid #eef2f7; border-radius:12px; padding:18px 16px;
}
.aboutPro .messagePhoto{ text-align:center; }
.aboutPro .messagePhoto img{ width:100%; max-width:360px; height:auto; border-radius:12px; box-shadow:0 12px 32px rgba(17,24,39,.12);}
.aboutPro .messagePhoto figcaption{ margin-top:10px; color:#6b7280; font-size:.95rem; }

/* 会社概要テーブル */
.aboutPro .infoTable{ width:100%; border-collapse:separate; border-spacing:0; border:1px solid #eef2f7; border-radius:12px; overflow:hidden; }
.aboutPro .infoTable th, 
.aboutPro .infoTable td{ padding:14px 16px; border-bottom:1px solid #eef2f7; vertical-align:top; }
.aboutPro .infoTable tr:last-child th,
.aboutPro .infoTable tr:last-child td{ border-bottom:none; }
.aboutPro .infoTable th{ width:30%; background:#f9fbff; color:#374151; font-weight:700; }
.aboutPro .infoTable td{ color:#374151; }

/* ロゴストーリー */
.aboutPro .brand .brandBox{ text-align:center; padding:8px 10px 16px; }
.aboutPro .brand .brandBox p{ margin-bottom:12px; }
.aboutPro .brand img{ width:min(100%, 560px); height:auto; border-radius:12px; border:1px solid #eef2f7; box-shadow:0 10px 28px rgba(17,24,39,.08); }

/* 細かなタイポ調整 */
.aboutPro p, .aboutPro li { font-size: clamp(14px, 1.7vw, 16px); }

/* セクションの見出し直前に適度な余白 */
.aboutPro .aboutSec + .aboutSec { margin-top: 26px; }

/* 余白の均し */
@media (max-width: 480px){
  .aboutPro { padding:40px 0 60px; }
  .aboutPro .aboutSec { padding:18px; border-radius:12px; }
}

/* ヘッダー全体の背景色変更 */
.site-header,
.header-inner,
.container.header-inner,
#header,
div#gMenu_outer.gMenu_outer {
  background-color: #73B8E2 !important;
}

/* ナビゲーション背景色も統一 */
.site-nav,
.main-menu,
ul.main-menu li,
ul.main-menu li a {
  background-color: #73B8E2 !important;
}

/* CTAボタン（無料体験）は独立して色を保つ場合 */
.site-nav .main-menu .cta a {
  background: #E60012 !important; /* 元の赤色維持 */
}

/***** Fix: Jetpack Slideshow が消える（高さ0問題・figure干渉） *****/
.wp-block-jetpack-slideshow,
.wp-block-jetpack-slideshow .swiper,
.wp-block-jetpack-slideshow .swiper-container,
.wp-block-jetpack-slideshow .swiper-wrapper {
  width: 100% !important;
  height: auto !important;
}

/* スライドの器に “高さの基準” を作る（必要なら比率変更OK） */
.wp-block-jetpack-slideshow .swiper {
  aspect-ratio: 16 / 9;
  max-height: 70vh;
  overflow: hidden;
}

/* figure のグローバル指定の影響を遮断 */
.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  height: 100% !important;
  width: 100% !important;
}

/* 画像の表示を安定化 */
.wp-block-jetpack-slideshow img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

/* 旧名称のクラスにも保険をかける（環境差異対策） */
.wp-block-jetpack-slideshow .swiper-slide,
.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide {
  width: 100% !important;
  height: auto !important;
  overflow: hidden;
}

.hero {
  position: relative;
  background: url('https://steeringlab.jp/wp-content/uploads/2025/09/24884061_m.jpg') center/cover no-repeat;
  min-height: 85vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35); /* 明るさを保ちつつ可読性を確保 */
}

.hero__inner {
  position: relative;
  z-index: 2;
  max-width: 800px;
  padding: 0 20px;
}

.hero__catch {
  font-size: clamp(24px, 4vw, 45px);
  font-weight: 800;
  margin-bottom: 16px;
}

.hero__usp {
  font-size: clamp(16px, 2vw, 22px);
  font-weight: 500;
  margin-bottom: 32px;
}

.hero__cta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
}

.hero__cta .btn {
  padding: 14px 28px;
  font-size: 18px;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
  transition: 0.3s;
}

.hero__cta .btn--primary {
  background: #e53935;
  color: #fff;
}

.hero__cta .btn--primary:hover {
  background: #c62828;
}

.hero__cta .btn--ghost {
  background: #fff;
  color: #e53935;
  border: 2px solid #e53935;
}
.kv__caption {
  background-color: #fff;      /* 背景を白に */
  color: #111111;     /* 背景を白に */	
  display: inline-block;       /* テキストサイズに合わせる */
  padding: 0.4em 0.8em;        /* 上下・左右の余白 */
  line-height: 1.5;            /* 読みやすさ確保 */
}

/* SPで本文幅を広げる（対象区間だけ） */
@media (max-width: 767px) {
  .section--wide .wrap,
  .section--wide .inner,
  .section--wide .container {
    max-width: none;
    width: 100%;
    padding-left: 16px;
    padding-right: 16px;
  }
}
/* テキスト背面に半透明パネル or 背景ぼかし */
.kv__copy{
  display:inline-block;
  padding: .6em .8em;
  background: color-mix(in srgb, #000 55%, transparent); /* 互換なければ rgba(0,0,0,.55) */
  border-radius: .5rem;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  line-height: 1.25;
}

@media (max-width:767px){
  .kv__headline{ font-size: clamp(18px, 5.5vw, 24px); }
  .kv__lead{ font-size: clamp(13px, 4vw, 16px); }
  .kv__cta .btn{ min-height:44px; padding:.75em 1em; }
}

/* ===== Steering Lab 共通ヘッダー（page-headerに差し込む版） ===== */
.sl-glbHeader{
  position: sticky; top: 0; z-index: 9999;
  background: #73B8E2; color: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.06);
}
.sl-glbHeader__in{
  max-width: 1140px; margin: 0 auto; padding: 10px 16px;
  display: grid; grid-template-columns: auto 1fr auto auto; gap: 14px; align-items: center;
}
.sl-logo img{ height: 38px; width: auto; display:block; }

/* PCナビ */
.sl-nav{ display:none; }
@media (min-width:1025px){ .sl-nav{ display:block; } }
.sl-nav__list{ display:flex; gap:20px; list-style:none; margin:0; padding:0; }
.sl-nav__list > li{ position:relative; }
.sl-nav__list > li > a{
  display:inline-block; padding:10px 6px; color:#fff; text-decoration:none; font-weight:800;
}
/* ホバーで子メニュー */
.sl-nav__list > li .sub{ position:absolute; left:0; top:calc(100% + 6px);
  min-width:220px; background:#fff; color:#111; border-radius:10px; padding:8px 6px;
  list-style:none; margin:0; display:none; box-shadow:0 10px 24px rgba(0,0,0,.12);
}
.sl-nav__list > li:hover .sub{ display:block; }
.sl-nav__list > li .sub a{ display:block; padding:10px 12px; border-radius:8px; color:#111; text-decoration:none; font-weight:700; }
.sl-nav__list > li .sub a:hover{ background: rgba(115,184,226,.12); }

/* 右端CTA（無料体験） */
.sl-cta{ display:inline-flex; align-items:center; justify-content:center;
  padding:12px 18px; border-radius:999px; font-weight:800; line-height:1; text-decoration:none;
  background:#E60012; color:#fff; box-shadow:0 6px 16px rgba(230,0,18,.32);
}
.sl-cta--block{ width:100%; margin-top:12px; }

/* ハンバーガー（SPのみ） */
.sl-burger{ width:42px; height:42px; border:0; background:transparent; display:grid; place-items:center; cursor:pointer; }
.sl-burger__bar{ display:block; width:22px; height:2px; background:#fff; }
.sl-burger__bar + .sl-burger__bar{ margin-top:5px; }
@media (min-width:1025px){ .sl-burger{ display:none; } }

/* ドロワー（SP） */
.sl-drawer{ position:fixed; inset:0 auto 0 0; width:min(82vw,360px); background:#fff; color:#111;
  transform:translateX(-100%); transition:transform .25s ease; z-index:10000; box-shadow:6px 0 24px rgba(0,0,0,.18);
}
.sl-drawer.is-open{ transform:translateX(0); }
.sl-drawer__in{ padding:18px 16px; }
.sl-drawer__list{ list-style:none; margin:0; padding:0; }
.sl-drawer__list > li > a{ display:block; padding:12px 10px; text-decoration:none; color:#111; font-weight:800; border-radius:8px; }
.sl-drawer__list .sub{ list-style:none; margin:0; padding:6px 0 8px 12px; }
.sl-drawer__list .sub a{ display:block; padding:10px 8px; border-radius:8px; text-decoration:none; color:#111; }

/* オーバーレイ */
.sl-overlay{ position:fixed; inset:0; background:rgba(0,0,0,.35); z-index:9999; opacity:0; visibility:hidden; transition:.2s; }
.sl-overlay.is-open{ opacity:1; visibility:visible; }

/* 親テーマのタブ風装飾を無効化（干渉回避） */
.sl-glbHeader .sl-nav__list > li > a,
.sl-glbHeader .sl-nav__list .sub a{ background:transparent !important; border:0 !important; box-shadow:none !important; }

/* 既存ヘッダー帯を隠したい場合（必要に応じてON） */
.site-header, #gMenu_outer, .global-nav { display:none !important; }

/* --- 親テーマの旧ヘッダー・ナビゲーションを完全に非表示 --- */
.siteHeader,
.navbar-header,
.siteHeaderContainer,
#gMenu_outer,
.global-nav,
header.site-header,
div.navbar-header,
div.siteHeader,
div#siteHeader,
div#menu_outer {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* --- body 上部の余白を削除 --- */
body {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* --- 新しい共通ヘッダーを最前面に出す（念のため） --- */
.sl-glbHeader {
  position: sticky;
  top: 0;
  z-index: 9999;
}
/* 1) 旧ヘッダーだけをピンポイントで隠す（最小限定） */
header.siteHeader,
#gMenu_outer { 
  display: none !important;
}

/* 2) 新ヘッダーは必ず表示＆最前面に */
.sl-glbHeader{
  display: block !important;
  position: sticky;
  top: 0;
  z-index: 100000; /* 大きめに */
  background: #73B8E2;
}

/* 3) ドロワーの中身が“空白”に見える対策（親テーマの色/装飾を打ち消す） */
.sl-drawer,
.sl-drawer a { 
  color: #111 !important;
  background: transparent !important;
  text-decoration: none !important;
  box-shadow: none !important;
  border: 0 !important;
}
.sl-drawer__list { list-style: none; margin: 0; padding: 0; }
.sl-drawer__list > li > a { display: block; padding: 12px 10px; font-weight: 800; }

/* 4) PCナビにも親テーマの“タブ風”装飾が乗らないように */
.sl-glbHeader .sl-nav__list > li > a,
.sl-glbHeader .sl-nav__list .sub a{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #fff !important;        /* PCナビは白文字で固定 */
}

/* 5) 管理バーがある時の押し下げを吸収 */
.admin-bar .sl-glbHeader{ top: 32px; }
@media (max-width:782px){ .admin-bar .sl-glbHeader{ top: 46px; } }
/*****************************
 * 0) ベース（背景色を白に／文字色調整）
 *****************************/
.sl-glbHeader{ background:#fff !important; color:#1a1a1a; }
.sl-glbHeader .sl-nav__list > li > a{ color:#1a1a1a !important; }
.sl-glbHeader .sl-logo img{ filter:none; } /* 色付きロゴ想定。必要なら削除 */

/*****************************
 * 1) コースのサブメニュー：見えない/消える問題を修正
 *   - gapを無くす
 *   - 文字色を濃色に
 *   - ドロップダウンを最前面に
 *****************************/
.sl-nav__list > li{ position:relative; }
.sl-nav__list > li .sub{
  position:absolute; left:0; top:100%; /* ← gap無しに */
  min-width:220px; z-index:100000;    /* ヒーロー画像より上に */
  background:#fff; color:#111; border-radius:10px; padding:8px 6px;
  list-style:none; margin:8px 0 0; box-shadow:0 10px 24px rgba(0,0,0,.12);
  display:none;
}
.sl-nav__list > li:hover .sub,
.sl-nav__list > li:focus-within .sub{ display:block; }
.sl-nav__list > li .sub a{
  display:block; padding:10px 12px; border-radius:8px; color:#111 !important; 
  text-decoration:none; font-weight:700;
}
.sl-nav__list > li .sub a:hover{ background:rgba(17,17,17,.06); }

/*****************************
 * 2) 「無料体験」が2つ → ナビ内のテキストは非表示（右端CTAのみ残す）
 *****************************/
@media (min-width:1025px){
  /* ナビの4番目=無料体験を消す（順序：コース/運営主体/採用情報/無料体験） */
  .sl-nav__list > li:nth-child(4){ display:none !important; }
}

/*****************************
 * 3) ヘッダー上の不要な隙間を詰める
 *****************************/
body{ margin-top:0 !important; padding-top:0 !important; }
header.siteHeader{ display:none !important; } /* 旧ヘッダー帯を確実に消す */
.sl-glbHeader{ margin-top:0 !important; }
.siteHeaderContainer{ padding-top:0 !important; } /* Lightning側の余白対策 */

/*****************************
 * 4) SPの重複ハンバーガー削除（vk-mobile-nav-menu-btn）
 *****************************/
.vk-mobile-nav-menu-btn,
#vk-mobile-nav, .vk-mobile-nav{ display:none !important; }

/*****************************
 * 5) SPでは赤い「無料体験」ボタンを非表示（ヘッダー右端のCTA）
 *****************************/
@media (max-width:1024px){
  .sl-cta{ display:none !important; }
}

/*****************************
 * 6) SPドロワーの“空白に見える”問題の後処理（色/装飾を打ち消す）
 *****************************/
.sl-drawer, .sl-drawer a{
  color:#111 !important; background:transparent !important;
  border:0 !important; box-shadow:none !important; text-decoration:none !important;
}
.sl-drawer__list{ list-style:none; margin:0; padding:0; }
.sl-drawer__list > li > a{ display:block; padding:12px 10px; font-weight:800; }

/************** 1) PC「コース」ドロップダウン修正 **************/
.sl-glbHeader{ position: sticky; top:0; z-index: 100000; overflow: visible; }
.sl-glbHeader__in{ position: relative; z-index: 100001; }

/* 親LIの下に“橋”を作ってホバー切れを防ぐ */
.sl-nav__list > li{ position: relative; }
.sl-nav__list > li::after{
  content:""; position:absolute; left:0; right:0; top:100%; height:10px; /* ←隙間を埋める */
}

/* パネル自体 */
.sl-nav__list > li .sub{
  position:absolute; left:0; top:100%; margin-top:8px;   /* ←隙間ゼロ＋少し下げる */
  min-width:240px; background:#fff; color:#111 !important;
  border-radius:10px; padding:8px 6px; list-style:none; display:none;
  box-shadow:0 10px 24px rgba(0,0,0,.12);
  z-index: 100002; /* ヒーローより上 */
}
.sl-nav__list > li:hover .sub,
.sl-nav__list > li:focus-within .sub{ display:block; }
.sl-nav__list > li .sub a{
  display:block; padding:10px 12px; border-radius:8px;
  color:#111 !important; text-decoration:none; font-weight:700;
}
.sl-nav__list > li .sub a:hover{ background:rgba(17,17,17,.06); }

/************** 2) PC ナビをCTAの右側へ寄せる **************/
/* ヘッダー内レイアウトをflexで単純化：ロゴ →（右側）ナビ＋CTA */
.sl-glbHeader__in{
  display:flex; align-items:center; gap:16px;
}
.sl-nav{ margin-left:auto; }          /* ロゴの次から右側へ寄せる */
.sl-header__right{ display:flex; gap:16px; align-items:center; } /* 使わない場合でもOK */
.sl-glbHeader .sl-cta{ margin-left:12px; } /* CTAとナビの間隔 */

/* ナビの文字色（背景を白に変えたので黒に固定） */
.sl-glbHeader{ background:#fff !important; color:#1a1a1a; }
.sl-glbHeader .sl-nav__list > li > a{ color:#1a1a1a !important; }

/************** 3) SP ドロワー背景＆ハンバーガー修正 **************/
.sl-drawer{
  background:#fff !important; color:#111 !important;
  box-shadow:6px 0 24px rgba(0,0,0,.18); border-radius:0 8px 8px 0;
}
.sl-drawer__in{ padding:18px 16px; }
.sl-drawer__list > li > a{ color:#111 !important; }

/* ハンバーガーのバーを濃色に（白背景でも見えるように） */
.sl-burger__bar{ background:#1a1a1a !important; }

/* 念のためオーバーレイも不透明に */
.sl-overlay{ background:rgba(0,0,0,.35) !important; }

/* SPでは右端の赤CTAは非表示のまま */
@media (max-width:1024px){
  .sl-cta{ display:none !important; }
}
/******** PC：メニューとCTAの“高さズレ”を揃える ********/
.sl-glbHeader{ background:#fff; }
.sl-glbHeader__in{
  display:flex; align-items:center; gap:16px;
  min-height:64px; padding:8px 16px;
}
.sl-nav{ margin-left:auto; }
.sl-nav__list{ display:flex; gap:20px; list-style:none; margin:0; padding:0; }
.sl-nav__list > li > a{
  display:flex; align-items:center;            /* 垂直中央 */
  height:40px;                                 /* CTAと同じ高さに統一 */
  padding:0 10px;                              /* 横だけ余白 */
  font-weight:800; line-height:1; color:#1a1a1a !important;
}
.sl-cta{
  display:flex; align-items:center; height:40px; /* ナビと同じ高さ */
  padding:0 16px; border-radius:999px; margin-left:12px;
}

/******** PC：「コース」→白パネルの文字が白い問題（強制上書き） ********/
.sl-glbHeader .sl-nav__list > li .sub{ color:#111 !important; }
.sl-glbHeader .sl-nav__list > li .sub a{ color:#111 !important; }

/******** SP：ハンバーガーを右端へ（中央寄り対策） ********/
@media (max-width:1024px){
  .sl-nav{ display:none; }
  .sl-cta{ display:none !important; }          /* 要件：SPは赤CTA非表示 */
  .sl-burger{ margin-left:auto; }              /* 右端へ押し出す */
  .sl-burger__bar{ background:#1a1a1a !important; } /* 黒で視認性UP */
}

/******** SP：ドロワー背景と文字装飾を統一 ********/
.sl-drawer{
  background:#ffffff !important;
  box-shadow:6px 0 24px rgba(0,0,0,.18);
}
.sl-drawer__in{ padding:20px 16px; }
.sl-drawer__list{ list-style:none; margin:0; padding:0; }
.sl-drawer__list > li > a{
  display:block; padding:14px 12px;
  font-size:16px; font-weight:800; line-height:1.2;
  color:#111 !important; text-decoration:none !important;
}
.sl-drawer__list > li + li > a{ border-top:1px solid #eee; } /* 区切り線 */

/******** PC：ドロップダウンのホバー切れ/重なり保険（前回の続き） ********/
.sl-nav__list > li{ position:relative; }
.sl-nav__list > li::after{ content:""; position:absolute; left:0; right:0; top:100%; height:10px; }
.sl-nav__list > li .sub{
  position:absolute; left:0; top:100%; margin-top:8px; min-width:240px;
  background:#fff; border-radius:10px; padding:8px 6px;
  box-shadow:0 10px 24px rgba(0,0,0,.12); z-index:100002; display:none;
}
.sl-nav__list > li:hover .sub,
.sl-nav__list > li:focus-within .sub{ display:block; }
.sl-nav__list > li .sub a:hover{ background:rgba(17,17,17,.06); }
``
/******** PC：ロゴ・ナビ・CTAを同じ高さで一直線 ********/
.sl-glbHeader__in{
  display:flex; align-items:center; gap:16px;
  min-height:64px; padding:8px 16px;
}
.sl-logo{ display:flex; align-items:center; }
.sl-logo img{ height:40px; width:auto; display:block; } /* 目安値 */
.sl-nav{ margin-left:auto; }                                /* 右側へ寄せる */
.sl-nav__list{ display:flex; gap:24px; margin:0; padding:0; list-style:none; }
.sl-nav__list > li > a{
  display:flex; align-items:center; height:40px; padding:0 10px;
  font-weight:800; line-height:1; color:#1a1a1a !important;
}
.sl-cta{
  display:flex; align-items:center; height:40px; padding:0 16px;
  border-radius:999px; margin-left:12px;
}

/******** PC：ヘッダー上の空白を削除（旧ヘッダー帯・上余白を除去） ********/
header.siteHeader, #gMenu_outer, .navbar-header{ display:none !important; }
body, .siteHeaderContainer, .siteContent{ margin-top:0 !important; padding-top:0 !important; }

/******** PC：「コース」パネルの体裁（中央寄せ・少し下に） ********/
.sl-nav__list > li{ position:relative; }
.sl-nav__list > li::after{ content:""; position:absolute; left:0; right:0; top:100%; height:10px; } /* ホバー切れ防止 */
.sl-nav__list > li .sub{
  position:absolute; left:0; top:100%; margin-top:10px; min-width:260px;
  background:#fff; border-radius:12px; padding:10px 8px;
  box-shadow:0 10px 24px rgba(0,0,0,.12); z-index:100002; display:none;
}
.sl-nav__list > li:hover .sub,
.sl-nav__list > li:focus-within .sub{ display:block; }
.sl-nav__list > li .sub a{
  display:flex; align-items:center; justify-content:center;   /* 中央配置 */
  min-height:44px; padding:8px 14px; border-radius:10px;
  color:#111 !important; font-weight:800; text-decoration:none;
}
.sl-nav__list > li .sub a:hover{ background:rgba(0,0,0,.06); }

/******** SP：ドロワーが開いたらロゴを隠す / ドロワー最前面 ********/
.sl-drawer{ z-index:100010 !important; background:#fff !important;
  box-shadow:6px 0 24px rgba(0,0,0,.18); }
.sl-overlay{ z-index:100009 !important; background:rgba(0,0,0,.35) !important; }
.sl-glbHeader.is-menu-open .sl-logo{ opacity:0; pointer-events:none; }  /* ←JSで .is-menu-open を付与 */

/******** SP：ハンバーガー右端・見やすい色 / ドロワー内の体裁統一 ********/
@media (max-width:1024px){
  .sl-burger{ margin-left:auto; }
  .sl-burger__bar{ background:#1a1a1a !important; }
  .sl-cta{ display:none !important; } /* 要件：SPは赤CTA非表示 */
  .sl-drawer__in{ padding:20px 16px; }
  .sl-drawer__list{ list-style:none; margin:0; padding:0; }
  .sl-drawer__list > li > a{
    display:block; padding:16px 12px; font-size:16px; font-weight:800; line-height:1.2;
    color:#111 !important; text-decoration:none !important;
  }
  .sl-drawer__list > li + li > a{ border-top:1px solid #eee; }
}
/***** 1) ヘッダー上の隙間を削除（旧ヘッダー帯/余白を完全無効化） *****/
html, body{ margin:0 !important; padding:0 !important; }
header.siteHeader, #gMenu_outer, .navbar-header, .siteHeaderContainer{
  display:none !important; height:0 !important; margin:0 !important; padding:0 !important; overflow:hidden !important;
}
.sl-glbHeader{ margin-top:0 !important; position:sticky; top:0; z-index:100000; }

/***** 2) PC：コース／運営主体／採用情報 と 無料体験 を“同じ高さ・一直線”に *****/
.sl-glbHeader__in{ display:flex; align-items:center; gap:20px; height:72px; padding:0 16px; }
.sl-logo{ display:flex; align-items:center; }
.sl-logo img{ height:44px; width:auto; display:block; }

/* ナビは右側へ寄せ、アイテムを中央揃え＆同一高さ */
.sl-nav{ margin-left:auto; }
.sl-nav__list{ display:flex; align-items:center; gap:28px; list-style:none; margin:0; padding:0; }
.sl-nav__list > li > a{
  display:flex; align-items:center; height:44px; padding:0 8px;
  font-weight:800; line-height:1; color:#1a1a1a !important; text-decoration:none;
}
/* CTAも同じ高さに */
.sl-cta{
  display:flex; align-items:center; height:44px; padding:0 16px;
  border-radius:999px; margin-left:12px;
}

/* ドロップダウンの配置を少し下げ、中央配置＆可読性を担保 */
.sl-nav__list > li{ position:relative; }
.sl-nav__list > li::after{ content:""; position:absolute; left:0; right:0; top:100%; height:10px; } /* ホバー切れ防止 */
.sl-nav__list > li .sub{
  position:absolute; left:0; top:100%; margin-top:12px; min-width:260px;
  background:#fff; border-radius:12px; padding:10px 8px;
  box-shadow:0 10px 24px rgba(0,0,0,.12); z-index:100002; display:none;
}
.sl-nav__list > li:hover .sub, .sl-nav__list > li:focus-within .sub{ display:block; }
.sl-nav__list > li .sub a{
  display:flex; align-items:center; justify-content:center;
  min-height:44px; padding:8px 14px; border-radius:10px;
  color:#111 !important; font-weight:800; text-decoration:none;
}
.sl-nav__list > li .sub a:hover{ background:rgba(0,0,0,.06); }

/***** 3) h1（ページタイトル）を “TOP・小学生・中高生” 以外で非表示 *****/
/* 置換メモ：下の 123, 456 を「小学生」「中高生」ページの page-id に置き換えてください */
body:not(.home):not(.page-id-00000):not(.page-id-00000) .section.page-header,
body:not(.home):not(.page-id-00000):not(.page-id-00000) .page-header_pageTitle,
body:not(.home):not(.page-id-00000):not(.page-id-00000) article > header > h1,
body:not(.home):not(.page-id-00000):not(.page-id-00000) .entry-title{
  display:none !important;
}
/* --- ヘッダー行の中央揃えを強制 --- */
.sl-glbHeader__in{
  display:flex !important;
  align-items:center !important;
  gap:16px;
  height:72px !important; /* 行の基準高さ */
  padding:0 16px !important;
}

/* ロゴ */
.sl-logo{ display:flex !important; align-items:center !important; }
.sl-logo img{ height:44px !important; width:auto; display:block; }

/* ナビを右側へ寄せ */
.sl-nav{ margin-left:auto !important; }

/* ナビ項目：高さ/行高/余白を完全固定 */
.sl-nav__list{
  display:flex !important;
  align-items:center !important;
  gap:24px !important;
  margin:0 !important; padding:0 !important; list-style:none;
}
.sl-nav__list > li{ display:flex !important; align-items:center !important; }
.sl-nav__list > li > a{
  display:flex !important;
  align-items:center !important;
  height:44px !important;
  line-height:44px !important;
  padding:0 10px !important;
  margin:0 !important;
  color:#1a1a1a !important;
  text-decoration:none !important;
  box-sizing:border-box !important;
}

/* CTAボタン：ナビと完全同じ高さに */
.sl-cta{
  display:flex !important;
  align-items:center !important;
  height:44px !important;
  line-height:44px !important;
  padding:0 16px !important;
  margin-left:12px !important;
  border-radius:999px !important;
}
/************** SPドロワーを“きれいに・統一” **************/
/* コンテナを全高にして、コンテンツとCTAを上下でレイアウト */
.sl-drawer{
  width:min(88vw, 380px) !important;
  background:#fff !important;
  box-shadow:6px 0 24px rgba(0,0,0,.18) !important;
  height:100% !important;           /* 画面いっぱい */
}
.sl-drawer__in{
  display:flex !important;
  flex-direction:column !important;
  height:100% !important;
  padding:20px 18px !important;
  box-sizing:border-box !important;
}

/* リスト全体：等間隔＆最後のCTAを下へ押し下げる */
.sl-drawer__list{
  display:flex !important;
  flex-direction:column !important;
  gap:0 !important;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
  flex:1 1 auto !important;
}
.sl-drawer__list > li{ margin:0 !important; }
.sl-drawer__list > li + li{ border-top:1px solid #F1F1F1 !important; }

/* 見出し「コース」 */
.sl-drawer__list > li:first-child > a{
  display:block !important;
  padding:16px 6px 10px !important;
  font-size:18px !important;
  font-weight:800 !important;
  line-height:1.25 !important;
  color:#111 !important;
  border:none !important;
}

/* サブリンク（小学生／中高生）を均一に、左インデント＋ガイド */
.sl-drawer__list > li:first-child .sub{
  margin:0 0 6px 0 !important;
  padding:6px 0 10px 12px !important;
  list-style:none !important;
  border-left:3px solid #F2F2F2 !important;
}
.sl-drawer__list > li:first-child .sub li + li a{ border-top:1px dashed #eee !important; }
.sl-drawer__list > li:first-child .sub a{
  display:block !important;
  padding:12px 8px !important;
  font-size:16px !important;
  font-weight:700 !important;
  color:#111 !important;
  text-decoration:none !important;
}

/* 上位メニュー（運営主体／採用情報）も統一 */
.sl-drawer__list > li:nth-child(n+2):not(:last-child) > a{
  display:block !important;
  padding:16px 6px !important;
  font-size:16px !important;
  font-weight:800 !important;
  line-height:1.25 !important;
  color:#111 !important;
  text-decoration:none !important;
}

/* CTA「無料体験」を“目立つ・固定感”で最下部に */
.sl-drawer__list > li:last-child{ margin-top:auto !important; border-top:0 !important; }
.sl-cta.sl-cta--block{
  display:block !important;
  width:100% !important;
  text-align:center !important;
  margin-top:16px !important;
  padding:14px 18px !important;
  font-size:17px !important;
  font-weight:800 !important;
  line-height:1 !important;
  border-radius:999px !important;
  background:#E60012 !important;
  color:#fff !important;
  box-shadow:0 10px 24px rgba(230,0,18,.25) !important;
  text-decoration:none !important;
}

/* 文字色・装飾の上書き（親テーマの干渉を無効化） */
.sl-drawer, .sl-drawer a{
  background:transparent !important;
  border:0 !important; box-shadow:none !important; text-decoration:none !important;
  color:#111 !important;
}

/* ハンバーガーは黒で視認性アップ（白背景前提） */
.sl-burger__bar{ background:#111 !important; }
/************ SPドロワー：背景を白で固定＆前面に ************/
.sl-drawer{
  background:#ffffff !important;        /* 完全な白 */
  backdrop-filter:none !important;      /* ぼかし無効 */
  -webkit-backdrop-filter:none !important;
  z-index:100010 !important;
}
.sl-overlay{ z-index:100009 !important; }

/************ SPドロワー：全メニューを統一（左揃え・同サイズ・同余白） ************/
@media (max-width:1024px){
  /* 上の「コース」見出しはそのまま。配下の2リンクを下2リンクと同じスタイルに */
  .sl-drawer__list > li:first-child .sub{
    margin:0 !important;
    padding:0 !important;
    border:0 !important;                 /* 左のガイド線や段差を撤去 */
  }
  .sl-drawer__list > li:first-child .sub li + li a{
    border-top:1px solid #F1F1F1 !important;  /* 区切り線だけ共通 */
  }

  /* すべてのリンクを共通化（小学生/中高生/運営主体/採用情報/無料体験ボタン以外） */
  .sl-drawer__list > li > a,
  .sl-drawer__list > li:first-child .sub a{
    display:block !important;
    padding:16px 6px !important;         /* 余白を統一 */
    font-size:16px !important;
    font-weight:800 !important;
    line-height:1.25 !important;
    color:#111 !important;
    text-align:left !important;
    text-decoration:none !important;
    background:transparent !important;
    box-shadow:none !important;
    border-radius:0 !important;
  }

  /* 最下部のCTAは従来どおり目立たせる（フル幅赤ボタン） */
  .sl-cta.sl-cta--block{
    display:block !important;
    width:100% !important;
    margin:18px 0 0 !important;
    padding:14px 18px !important;
    font-size:17px !important;
    font-weight:800 !important;
    text-align:center !important;
    color:#fff !important;
    background:#E60012 !important;
    border-radius:999px !important;
    box-shadow:0 10px 24px rgba(230,0,18,.25) !important;
  }
}