/*
 Theme Name: Lightning Child
 Description: Lightning の子テーマ（クリーン版）
 Template: lightning
 Version: 1.0.0
*/

/* ===================== 変数 ===================== */
:root{
  /* フォント */
  --font-base: "Noto Sans JP","Hiragino Sans","Yu Gothic","Meiryo",
               system-ui,-apple-system,"Segoe UI",Arial,sans-serif;

  /* Brand */
  --header-bg : #007CBD;
  --header-fg : #ffffff;

  /* 背景帯 */
  --band-white:#ffffff;
  --band-gray :#f6f8fb;

  /* レイアウト幅（％で管理） */
  --container-pct: 94%;  /* 通常器：本文や大半のセクション */
  --narrow-pct   : 92%;  /* 2カラム等 少し絞る器 */
  --contact-pct  : 90%;  /* お問い合わせ等 さらに絞る器 */

  /* ヒーロー */
  --hero-gap-bottom : 28px;

  /* 余白スケール */
  --space-xxl: 56px;
  --space-xl:  48px;
  --space-lg:  40px;
  --space-md:  28px;
  --space-sm:  16px;

  /* カード内の白箱 幅（％で統一）*/
  --card-inner-pct:   94%;
  --card-inner-pct-lg:96%;

  /* スケジュール用 ＝ グローバル色に寄せる */
  --brand-blue:  var(--header-bg); /* ヘッダー色と連動 */
  --brand-green: #00A497;
  --card-border:#e6e6e6;
  --divider:    #eee;

}

/* ===================== ベース ===================== */
html, body{ overflow-x:hidden; }
body{ font-family:var(--font-base); font-weight:400; }
h1,h2,h3,h4,h5,h6,.section-title{ font-weight:700; }
.hero-date,.schedule-table,time{ font-variant-numeric: tabular-nums; }

/* 小見出し＆注記 */
h3.section-sub{ font-size:20px; font-weight:700; margin:.6em 0 .4em; }
.note{ color:#666; font-size:13px; margin-top:8px; }

/* アクセシビリティ */
.visually-hidden,.screen-reader-text{
  position:absolute !important; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ===================== Lightning 既定のページヘッダー抑止 ===================== */
header#site-header,
.vk-page-header,.ltg-page-header,.page-header,.vk_pageHeader,.ltg-pageHeader{ display:none !important; }

/* ===================== 自作ヘッダー（PC固定／SPはLightningのハンバーガー） ===================== */
#custom-site-header{
  background:var(--header-bg); color:var(--header-fg);
  border-bottom:1px solid rgba(0,0,0,.08); box-shadow:0 2px 10px rgba(0,0,0,.06);
}
#custom-site-header .inner{
  width: var(--container-pct); margin:0 auto; padding:10px 1.2%;
  display:flex; align-items:center;
}
#custom-site-header .primary-nav{ margin-left:auto; }
#custom-site-header .menu{ display:flex; gap:1.5rem; margin:0; padding:0; list-style:none; }
#custom-site-header .menu > li > a{
  display:block; padding:10px 6px; text-decoration:none; color:var(--header-fg);
  font-weight:600; letter-spacing:.02em;
}
#custom-site-header .menu > li > a:hover,
#custom-site-header .menu > li.current-menu-item > a,
#custom-site-header .menu > li.current_page_item > a{ color:#eaf6ff; }

/* PC：固定ヘッダー＆アンカー補正 */
@media (min-width: 992px){
  html body #custom-site-header{
    position:fixed !important; top:0 !important; left:0; right:0;
    z-index:10050 !important;
  }
  html body.admin-bar #custom-site-header{ top:32px !important; }
  /* アンカー補正 */
  [id]{ scroll-margin-top:calc(60px + 8px); }              /* 60px ≒ ヘッダー高 */
  .admin-bar [id]{ scroll-margin-top:calc(60px + 46px); }
}

/* モバイル：ヘッダー非表示＋Lightningのハンバーガーを固定 */
@media (max-width: 991.98px){
  #custom-site-header{ display:none !important; }
  .vk-mobile-nav-menu-btn{
    position:fixed; right:8px !important; left:auto !important;
    top:8px; z-index:10050;
  }
  .admin-bar .vk-mobile-nav-menu-btn{ top:46px; }
  .vk-mobile-nav-menu-btn .vk-mobile-nav-menu-btn-icon,
  .vk-mobile-nav-menu-btn .vk-mobile-nav-menu-btn-icon::before,
  .vk-mobile-nav-menu-btn .vk-mobile-nav-menu-btn-icon::after{
    background-color:#fff !important;
  }
  [id]{ scroll-margin-top:48px; }
}

/* ===================== 帯（band）：背景は全幅、中身は中央 ===================== */
.band{ background:var(--band-white); }
.band.band--gray{ background:var(--band-gray); }

/* 全幅帯（calc方式） */
.band.alignfull{
  margin-left:  calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  max-width: 100vw !important;
  width:auto !important;
  transform:none !important;
}

/* 器（中央寄せ＆余白／％幅） */
.band .wp-block-group__inner-container,
.band > .wp-block-group{
  width: var(--container-pct);
  max-width: none;              /* px上限を撤廃して％運用に */
  margin-inline:auto;
  padding: var(--space-xl) 1.4%;
}

/* セクション共通（器は％幅） */
.section{
  width: var(--container-pct);
  max-width: none;
  margin: 0 auto;
  padding: var(--space-xl) 1.2%;
}
@media (max-width:781px){
  .section{ padding: var(--space-lg) 1.2%; }
}

/* 見出し：デフォ非表示、グレー帯のみ下線 */
.section :is(.wp-block-heading, .section-title){
  text-align:center; margin:.2em 0 .6em; font-weight:800; font-size:clamp(22px, 2.2vw, 30px);
}
.section :is(.wp-block-heading, .section-title)::after{ content:""; display:none; }
.band.band--gray .section :is(.wp-block-heading, .section-title)::after{
  display:block; width:12%; height:2px; margin:10px auto 0; background:#2aa6cf; border-radius:2px;
}

/* ===================== Buttons（集約） ===================== */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; padding:0 18px; border-radius:999px;
  font-weight:700; text-decoration:none; border:1px solid transparent;
  transition:.2s ease; line-height:1;
}
.btn--primary{ background:var(--header-bg); color:#fff; }
.btn--primary:hover{ filter:brightness(1.05); transform:translateY(-1px); }
.btn--inverse{ background:#fff; color:var(--header-bg); border-color:#fff; }
.btn--inverse:hover{ background:#f7fbff; transform: translateY(-1px); }
.btn--wide{ min-width:240px; }

/* ===================== 大会概要（色付き2カード）％幅運用 ===================== */
.outline-cards{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: clamp(24px, 3vw, 44px);
  width: var(--container-pct);   /* セクション器と同じ％幅 */
  margin: 0 auto var(--space-lg);
}
/* --- A) カード内見出し（グレー帯）を消す ---------------------- */
.outline-cards .oCard__body h4{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* --- B) 本文行の先頭に丸アイコンを付与（カード色） -------------- */
/* 本文行（白い箱の中の <p> 直下のみ） */
.outline-cards .oCard__body > p{
  display: flex;
  align-items: baseline;
  column-gap: .55em;          /* 丸と本文の間隔 */
  margin: .35em 0;            /* 既存のマージン調整と併用OK */
}

/* 丸アイコン（カードカラー var(--c) を使用） */
.outline-cards .oCard__body > p::before{
  content: "";
  flex: 0 0 auto;
  width: .50em;               /* 文字サイズに連動（em） */
  height: .50em;
  border-radius: 50%;
  background: var(--c);       /* ←カード色（緑/青） */
  box-shadow: 0 0 0 .08em #fff;  /* 白背景で視認性UP（任意） */
}

/* SPで丸を少しだけ小さく */
@media (max-width: 860px){
  .outline-cards .oCard__body > p::before{
    width: .45em; height: .45em;
  }
}

@media (max-width:860px){ .outline-cards{ grid-template-columns:1fr; } }

.oCard{
  --c: #1e64b7;
  background: var(--c); color:#fff;
  border-radius:24px; padding:22px 22px 16px; position:relative;
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
}
.oCard::before{
  content:""; position:absolute; inset:0.6%; border-radius:18px; /* 内縁も％ */
  box-shadow: inset 0 0 0 3px #fff; pointer-events:none;
}
.oCard__date{
  text-align:center; font-weight:800; letter-spacing:.04em;
  font-size: clamp(18px, 1.2vw + 14px, 28px);
  margin: 0.4em auto 10px; padding-bottom:8px;
  width: min(var(--card-inner-pct), 96%);
  border-bottom: 3px solid color-mix(in srgb, #fff 80%, var(--c));
}
.oCard__date .num{ font-size: clamp(30px, 4.6vw, 48px); margin-right:.15em; } /* 36→30へ変更20250831 */
.oCard__band{
  margin: 10px auto 16px; text-align:center; font-weight:800;
  font-size: clamp(16px, 1vw + 14px, 22px); line-height:1.2;
  background: color-mix(in srgb, var(--c) 85%, #000 0%);
  padding:12px 10px; border-radius:12px; width: min(var(--card-inner-pct), 96%); color:#fff;
}
.oCard__body{
  background:#fff; color:#1b2733; border-radius:16px;
  padding:16px 20px; margin: 8px auto 14px;
  width: min(var(--card-inner-pct), 96%); box-shadow: 0 3px 10px rgba(0,0,0,.06);
}
@media (min-width:1440px){
  .oCard__date,.oCard__band,.oCard__body{ width: min(var(--card-inner-pct-lg), 96%); }
}
.oCard__hr{ border:0; border-top: 4px dotted color-mix(in srgb, var(--c) 35%, #fff); margin:12px 0; }
.oCard__cta{ text-align:center; margin:10px 0 4px; }
.oCard__cta .btn--inverse{ background:#fff; color:var(--c); border-color:#fff; 
  padding:10px 16px; border-radius:999px; font-size:14px; box-shadow:0 1px 0 rgba(0,0,0,.05); }

/* ===================== 表（共通） ===================== */
.table{ width:100%; border-collapse:collapse; }
.table th,.table td{ border:1px solid #ddd; padding:10px; vertical-align:top; }
.table th{ background:#fafafa; white-space:nowrap; text-align:left; }
.table.schedule th{ background:#f3f7fb; font-weight:700; }
.table.schedule th, .table.schedule td{ padding:10px 12px; }
.table.schedule tr:nth-child(even) td{ background:#fcfdff; }
.table-wrap{ overflow-x:auto; }

/* ===================== スケジュール（画像＋テキスト版） ===================== */
.schedule-graphic{
  width: var(--container-pct);
  margin: 0 auto;
}
.schedule-graphic img{
  width:100%; height:auto; display:block;
  border-radius:12px; box-shadow:0 4px 16px rgba(0,0,0,.06);
}
.schedule-text{ margin-top: var(--space-md); }
.schedule-text > summary{
  cursor:pointer; display:inline-block; padding:10px 14px;
  border:1px solid #e5e7eb; border-radius:10px; background:#fff; font-weight:700;
}
.schedule-text[open] > summary{ border-bottom-left-radius:0; border-bottom-right-radius:0; }
.schedule-text__inner{
  border:1px solid #e5e7eb; border-top:0; border-radius:0 0 10px 10px;
  padding:14px 16px; background:#fff; width:min(90%, 900px);
}

/* 印刷時：テキスト版は展開、画像は幅優先 */
@media print{
  .schedule-text{ display:block; }
  .schedule-text > summary{ display:none; }
  .schedule-text__inner{ border:0; padding:0; width:100%; }
}

/* ===================== ページ部品 ===================== */
.greeting{ width: var(--narrow-pct); margin:0 auto; text-align:center; }
.greeting .lead{ font-size:clamp(18px,2vw,20px); font-weight:600; letter-spacing:.02em; text-align:left; }
.greeting p{ line-height:1.95; color:#4b4b4b; margin:1.5em 0; text-align:left; }
.greeting .sig{ text-align:right; font-weight:700; margin-top:.8em; }

.steps{ counter-reset: step; display:grid; gap:16px; width: var(--narrow-pct); margin:0 auto; }
.step{
  display:grid; grid-template-columns:52px 1fr; gap:14px; align-items:start;
  padding:14px 16px; border:1px solid #e6eef5; border-radius:12px; background:#fff;
}
.step::before{
  counter-increment: step; content: counter(step);
  width:36px; height:36px; display:grid; place-items:center;
  border-radius:999px; background:#007CBD; color:#fff; font-weight:700; margin-top:2px;
}
.step .ttl{ margin:0 0 4px; font-weight:700; }
.step .txt{ margin:0; color:#444; font-size:14px; }

.orgs{ width: var(--contact-pct); margin:0 auto; }
.orgs dl{ display:grid; grid-template-columns:5em 1fr; gap:8px 14px; }
.orgs dt{ color:#678; font-weight:700; }
.orgs dd{ margin:0; }

/* ===================== Brand帯（濃色） ===================== */
.band--brand{ background: var(--header-bg); color:#fff; }
.band--brand :is(h2,h3,h4,.wp-block-heading){ color:#fff !important; }
.band--brand .section{ padding:48px 1.4%; } 
.band--brand .section .wp-block-heading::after{ background:#fff; width:12%; }
.band--brand a:not(.btn){ color:#eaf6ff; text-decoration:underline; }
.band--brand a:not(.btn):hover{ text-decoration:none; opacity:.9; }
.band--brand .btn--inverse{ background:#fff; color:var(--header-bg); border-color:#fff; }
.band--brand input[type="text"], .band--brand input[type="email"], .band--brand textarea{
  background:#fff; color:#222; border:1px solid #e2f0f8; border-radius:10px; padding:12px 14px; width:100%;
}
.band--brand :is(input,textarea):focus{ outline:2px solid #fff; outline-offset:1px; }

/* ===================== 不要UIの無効化（Swiper 等） ===================== */
.vk-swiper,.vk_swiper,.vk-slider,.vk_slider,
.ltg-slider,.ltg-header-slider,[class*="vk-"][class*="slider"],
.swiper,.swiper-container,.swiper-wrapper,
.swiper-pagination,.swiper-button-prev,.swiper-button-next{
  display:none !important; visibility:hidden !important;
  height:0 !important; margin:0 !important; padding:0 !important; overflow:hidden !important;
}

/* ===================== フッター Powered by 抑止 ===================== */
.site-footer .powered-by,.site-footer .vkExUnit_powered,.site-footer .vkexunit-powered{ display:none !important; }
.site-footer .site-info,.site-footer .copySection{ position:relative; }
.site-footer :is(p,div,small,li).powered-by,
.site-footer :is(p,div,small,li).vkExUnit_powered,
.site-footer :is(p,div,small,li)[class*="powered"],
.site-footer :is(p,div,small,li):has(a[href*="lightning"]){
  display:none !important; visibility:hidden !important; height:0 !important; margin:0 !important; padding:0 !important;
}

/* ===================== 最終パッチ（HOME） ===================== */
/* TOPの上スキマゼロ */
body.home main#content.site-content,
body.home .site-content.site-content{ margin-top:0 !important; padding-top:0 !important; }
body.home .entry-content > *:first-child{ margin-top:0 !important; padding-top:0 !important; }
body.home .hero-band:first-of-type{ display: flow-root; }

/* ページ末尾の白帯防止 */
.entry-content > :last-child{ margin-bottom:0; }
.entry-content > .wp-block-group.contact.band--brand:last-child{ margin-bottom:0 !important; }

/* ページ枠の下パディングをなくす（横ガターは残す） */
body.home .site-body{ padding-bottom:0 !important; }

/* ===================== SP：グレー帯の“二重ガター”解消（確実版） ===================== */
@media (max-width: 860px){
  /* 1) Gutenberg内側ラッパにガターを付与（対象広め） */
  .band.band--gray.alignfull > :is(
    .wp-block-group__inner-container,.wp-block-group,
    .is-layout-constrained,.is-layout-flow,.is-layout-flex
  ){ padding-inline: 12px !important; }

  /* 2) sectionの横paddingをゼロ（重複ガター回避） */
  .band.band--gray .section{ padding-left:0 !important; padding-right:0 !important; }

  /* 3) 2カード→1カード＆中央寄せ（％運用） */
  .band.band--gray .outline-cards{
    width: 90% !important; max-width:none !important; margin-inline:auto !important;
    grid-template-columns: 1fr; gap: clamp(16px, 4vw, 24px);
  }
  .band.band--gray .oCard__date,
  .band.band--gray .oCard__band,
  .band.band--gray .oCard__body{ width:95%; }
}
/* 2025-08-20 追加 ー 1440px での見え方を上限に固定（＝1440 × 94% ≒ 1354px） */
:root{
  /* 94% を使っているので “同じ比率の上限” を変数化 */
  --cards-cap-w: calc(1440px * 0.94);
}

/* 2025-08-20 追加 ー 2カードの器：画面幅が広くても cap を超えない */
.outline-cards{
  /* ふだんは 94%（var(--container-pct)）、広い画面では cap 側が採用される */
  width: min(var(--container-pct), var(--cards-cap-w));
  margin-inline: auto; /* 中央寄せを維持 */
}

/* 2025-08-20 追加 ー 超ワイドでカード間のすき間を少し増やす */
@media (min-width: 1920px){
  .outline-cards{ gap: clamp(40px, 3vw, 64px); }
}

/* === モバイルの上下スキマを全ページで潰す（グローバル版） === */
@media (max-width: 991.98px){
  /* 上：テーマ側の余白をゼロに */
  .site-body,
  .site-content,
  main#content{
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  /* 先頭ブロックの“折り畳みマージン”もゼロに */
  .entry-content > *:first-child,
  .entry-content > .wp-block-group:first-child,
  .entry-content > .wp-block-group.alignfull:first-child,
  .entry-content > .band.alignfull:first-child{
    margin-top: 0 !important;
    padding-top: 0 !important;
    display: flow-root; /* BFCで margin 折り畳み防止 */
  }

/* === 下の白スキマを消す（モバイル中心・安全パッチ） === */
  /* コンテンツ本体の下余白をゼロに */
  #content, .site-content, .site-main { margin-bottom:0 !important; padding-bottom:0 !important; }
  .entry-content > *:last-child,
  .entry-content > .wp-block-group:last-child,
  .entry-content > .band.alignfull:last-child {
    margin-bottom:0 !important; padding-bottom:0 !important;
  }
}
/* お問い合わせ帯の外側マージンを常に0（last-child条件を外す） */
.contact.alignfull{ margin-bottom: 0 !important; }

/* 見た目のゆとりは内側で確保（必要なら値を調整） */
.contact.alignfull .section{ padding-bottom: clamp(40px, 6vw, 56px); }

/* 念のため：LPの終端余白もゼロ化 */
body.home .entry-content{ margin-bottom:0 !important; padding-bottom:0 !important; }
body.home .site-body{ padding-bottom:0 !important; }

/* フッター側が余白を持っている場合の保険（表示は消さない） */
body.home .site-footer, body.home #colophon{ margin:0 !important; padding:0 !important; }


/* ===== スマホ時：LP末尾の .contact を画面下に吸着（sticky footer）ここから追加 ===== */
@media (max-width: 991.98px){
  /* 1) 画面高基準を安定させる */
  html, body{ height:100%; }

  /* 2) main を縦フレックス＋画面高に */
  main#content.site-content{
    min-height: 100svh;      /* アドレスバー考慮の svh */
    display: flex;
    flex-direction: column;
  }

  /* 3) .entry-content は残り高さを受け持つ */
  main#content.site-content > .entry-content{
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
  }

  /* 4) 末尾の“お問い合わせ帯”を最下部へ押し下げる（外側は常に0） */
  .entry-content > .wp-block-group.alignfull.band.band--brand.contact{
    margin-top: auto !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important; /* 外側余白は持たない */
  }

  /* 5) 念のため、最終ブロックの下余白を全消し（保険） */
  .entry-content > *:last-child{ margin-bottom:0 !important; padding-bottom:0 !important; }

  /* ページトップボタンが被る場合の位置微調整（修正202508201716追加） */
  .vk-pageTop, #pagetop, .vk_pageTop{
    display:block !important; position:fixed !important;
    right:12px; bottom:12px; z-index:10060;
  }
}

/*202508201652追加　スマホの下の隙間なくし対応*/

/* 下端の白帯を確実に潰す（お問い合わせ帯） */
.wp-block-group.alignfull.band.band--brand.contact{
  display: flow-root;                 /* ← margin 折り畳みを停止 */
  margin-bottom: 0 !important;        /* 親自身の外側マージンは常に0 */
  padding-bottom: clamp(40px, 6vw, 56px);  /* 見た目の余白は内側paddingで確保 */
}

/* 内側の最後のブロックが margin-bottom を持っても外へ漏れないように */
.wp-block-group.alignfull.band.band--brand.contact > *:last-child{
  margin-bottom: 0 !important;
}

/* 念のため：この帯より後ろに何かがあっても“下余白”は出さない */
.entry-content > .wp-block-group.alignfull.band.band--brand.contact ~ *{
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/*202508201652追加　スマホの下の隙間なくし対応※CSSチェック後*/

/* === 0) ベース：bodyの余白を確実にゼロ（白帯の最短原因つぶし） === */
html, body { margin:0 !important; padding:0 !important; }

/* === 1) モバイル時：フッターは消さず中身だけ非表示、ページトップは生かす === */
@media (max-width: 991.98px){
  /* フッター本体は表示（高さ0指定を打ち消す） */
  footer.site-footer, .site-footer, #colophon{
    display:block !important;
    height:auto !important; min-height:0 !important; overflow:visible !important;
    margin:0 !important; padding:0 !important; border:0 !important;
    background: transparent !important;
  }
}

/* === 2) Sticky化：どのラッパでも成立するように“親”を広くカバー === */
@media (max-width: 991.98px){
  /* ページの縦骨格をフレックス＋画面高に */
  .site-body,
  .site-body-container.container,
  #content.site-content,
  .site-content{
    min-height: 100svh;
    display: flex;
    flex-direction: column;
  }
  /* 本文ラッパを縦フレックス化（余り高さを受ける） */
  .site-content .entry-content,
  #content.site-content .entry-content{
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
  }
  /* お問い合わせ帯を最下部へ押し下げ（外側余白はゼロ） */
  .entry-content > .wp-block-group.alignfull.band.band--brand.contact{
    margin-top: auto !important;
    margin-bottom: 0 !important;
    display: flow-root; /* 子のmargin-bottomの折り畳み防止 */
    padding-bottom: clamp(40px, 6vw, 56px);
  }
  .entry-content > .wp-block-group.alignfull.band.band--brand.contact > *:last-child{
    margin-bottom: 0 !important;
  }
}
/* iOSのセーフエリア考慮（下部ホームバー分が白く見える問題の保険） */
@supports (padding-bottom: env(safe-area-inset-bottom)){
  .entry-content > .wp-block-group.alignfull.band.band--brand.contact{
    padding-bottom: calc(clamp(40px, 6vw, 56px) + env(safe-area-inset-bottom));
  }
}

/* ===== スマホ時：ページトップボタンを必ず表示・最前面・画面固定 202508201720追加===== */
@media (max-width: 991.98px){
  /* Lightningのバリエーションを一網打尽に */
  .vk-pageTop, #pagetop, .vk_pageTop,
  .site-footer .vk-pageTop, .site-footer #pagetop, .site-footer .vk_pageTop,
  [class*="pagetop"], [id*="pagetop"]{
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;

    position: fixed !important;
    right: clamp(12px, 3vw, 20px);
    bottom: calc(12px + env(safe-area-inset-bottom, 0px)); /* iOSのホームバー回避 */
    z-index: 2147483647 !important;  /* いちばん上に */
    transform: none !important;
    clip: auto !important;
  }

  /* クリップ対策：フッターがoverflow隠しでもはみ出せるように */
  footer.site-footer, .site-footer, #colophon{ overflow: visible !important; }
}

@media (max-width: 991.98px){
  #page_top, .page_top_btn{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;

    position:fixed !important;
    right: clamp(12px, 3vw, 20px);
    bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    z-index: 10060 !important;
    transform:none !important;
  }
  /* クリップ防止 */
  footer.site-footer, .site-footer, #colophon{ overflow:visible !important; }

  /* フッターに他要素（コピーライト等）消す */
  body.home .site-footer .site-info,
  body.home .site-footer .copySection{ display:none !important; }
}

/* === [SP] ハンバーガーは常に右上固定 202508201830=== */
@media (max-width: 991.98px){
  .vk-mobile-nav-menu-btn{
    position: fixed !important;
    top: 8px !important;
    right: 8px !important;
    left: auto !important;
    transform: none !important;
    z-index: 10060 !important;
  }
  .vk-mobile-nav-menu-btn .vk-mobile-nav-menu-btn-icon,
  .vk-mobile-nav-menu-btn .vk-mobile-nav-menu-btn-icon::before,
  .vk-mobile-nav-menu-btn .vk-mobile-nav-menu-btn-icon::after{
    background-color:#fff !important;
  }
}

/* === [SP] ページトップボタンは必ず右下に表示 === */
@media (max-width: 991.98px){
  #page_top, .page_top_btn{
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;

    position: fixed !important;
    right: clamp(12px, 3vw, 20px);
    bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    z-index: 10060 !important;
    transform: none !important;
  }
  /* クリップ対策：フッターがoverflow隠しでもはみ出せるように */
  footer.site-footer, .site-footer, #colophon{ overflow: visible !important; }
}

/* （保険）Lightningのヘッダー/スライダー類を強制OFF */
.vk-page-header,.ltg-page-header,.page-header,.vk_pageHeader,.ltg-pageHeader,
.vk-swiper,.vk_swiper,.vk-slider,.vk_slider,.ltg-slider,.ltg-header-slider,
.swiper,.swiper-container,.swiper-wrapper,.swiper-pagination,.swiper-button-prev,.swiper-button-next{
  display:none !important; height:0 !important; margin:0 !important; padding:0 !important; overflow:hidden !important;
}

/* 2025-08-20: iPad横だけヘッダー高さを薄くしてヒーロー見せ量UP */
@media (min-width: 992px) and (max-width: 1060px){
  /* ヘッダー本体の上下パディングを小さく */
  #custom-site-header .inner{
    padding-block: 6px !important;   /* 10px → 6px（4〜8に調整OK） */
  }
  /* メニューリンクも少しだけ圧縮（クリック面は確保） */
  #custom-site-header .menu > li > a{
    padding-block: 8px !important;   /* 10px → 8px（7〜9で調整） */
    line-height: 1.2;
  }
}

/* アンカー位置補正（ヘッダーが薄くなる帯域だけ微調整） */
@media (min-width: 992px) and (max-width: 1060px){
  [id]{ scroll-margin-top: calc(52px + 8px); }  /* 目安。薄くした分に合わせて±してね */
}

/* === 2025-08-20 PC: 2カードの高さ揃え＋ボタン最下部固定（統合版） ================= */
@media (min-width: 860px){
  /* グリッド各アイテムを行高いっぱいに */
  .outline-cards{ align-items: stretch; }

  /* 各カードを縦フレックス化して全高を使う */
  .outline-cards .oCard{
    display:flex;
    flex-direction:column;
    height:100%;
  }

  /* 白い内容ボックスも縦フレックス＋伸縮 */
  .outline-cards .oCard__body{
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
  }

  /* ボタン（外側 or 白箱内のButtons）を最下部へ押し下げる */
  .outline-cards :is(.oCard__cta, .oCard__body :is(.wp-block-buttons, .vk_buttons)){
    margin-top:auto;
  }

  /* 念のため：最後の要素は常に auto を優先 */
  .outline-cards :is(.oCard__cta, .oCard__body :is(.wp-block-buttons, .vk_buttons)):last-child{
    margin-top:auto !important;
  }
}

/* ===================== 2025-08-20　ボタン上下のゆとりを追加（見た目調整）※PC/SP共通　 ===================== */
/* ボタン外側ラッパ */
.outline-cards .oCard__cta:last-child{
  padding-top:   clamp(10px, 1vw, 18px);          /* ← 上のゆとりは padding で */
  margin-bottom: clamp(10px, 1vw, 18px) !important;
}

/* Gutenberg の Buttons ブロックが白箱の中にある場合 */
.outline-cards .oCard__body :is(.wp-block-buttons, .vk_buttons):last-child{
  padding-top:   clamp(10px, 1vw, 18px);
  margin-bottom: clamp(10px, 1vw, 18px) !important;
}

/* =========================================================
   2025-08-20  大会概要：event-info（レイアウト＋可変文字＋■）
   ========================================================= */
.event-info{
  width: min(92%, 960px);
  margin: 0 auto var(--space-md);
  line-height: 1.9;
  color: #222;
  font-size: clamp(16px, 15px + 0.50vw, 25px); /* 最大 22→25px */
}
.event-info p{
  display: flex;
  align-items: center;      /* ■と文字を縦センター */
  column-gap: .45em;
  margin: .35em 0;
}
.event-info p::before{
  content: "";
  flex: 0 0 auto;
  display: inline-block;
  width: .60em;             /* 文字サイズに追従 */
  aspect-ratio: 1 / 1;
  background: #222;         /* ブランド色なら var(--header-bg) */
  border-radius: .02em;
}
@media (min-width: 1200px){
  .event-info{ width: min(94%, 1100px); }
  .event-info p{ column-gap: .38em; }
}
@media (min-width: 1440px){
  .event-info{ width: min(96%, 1200px); }
  .event-info p{ column-gap: .34em; }
}

/* =========================================================
   見出しの下線が“ここだけ短い”問題の補正（グレー帯）
   ========================================================= */
.band.band--gray .section :is(.wp-block-heading, .section-title)::after{
  width: clamp(72px, 12%, 96px) !important; /* 最小72～最大96px */
  height: 2px;
  margin: 10px auto 0;
  background: #2aa6cf;
  display: block;
  border-radius: 2px;
}
.band.band--gray .section .wp-block-heading.is-style-vk-heading-plain::after{
  width: clamp(72px, 12%, 96px) !important;
}

/* =========================================================
   outline-cards：タイトルの下線を消す（カード見出しのみ）
   ※ Gutenbergの区切り線は消すが、.oCard__hr は残す
   ========================================================= */
.outline-cards :is(h2, h3, h4, .wp-block-heading){
  border: none !important;
  box-shadow: none !important;
}
.outline-cards :is(h2, h3, h4, .wp-block-heading)::after{
  display: none !important;
}
/* 区切り線：Gutenbergの separator は消すが、.oCard__hr は表示 */
.outline-cards :is(hr:not(.oCard__hr), .wp-block-separator){
  display: none !important;
}

/* =========================================================
   outline-cards：タイポ＆点線区切り＆2カード同高さ＋ボタン最下＆余白
   ========================================================= */

/* 文字サイズを h4 / p でそろえる（カード内の基準） */
.outline-cards .oCard{ --oc-body-font: clamp(18px, 1.1vw + 12px, 24px); }
.outline-cards .oCard__body h4{
  font-size: var(--oc-body-font);
  line-height: 1.4;
  margin: .2em 0 .1em;
}
.outline-cards .oCard__body p{
  font-size: var(--oc-body-font);
  line-height: 1.85;
  margin: .4em 0 .2em;
}

/* 区切り線（点線） */
.oCard__hr{
  border: 0;
  border-top: clamp(4px, 0.4vw, 6px) dotted color-mix(in srgb, var(--c) 35%, #fff);
  margin: clamp(14px, 2.0vw, 22px) 0;
  opacity: .95;
}
@media (max-width: 860px){
  .outline-cards .oCard{ --oc-body-font: clamp(15px, 3.4vw, 20px); } /* 17px→15pxに変更20250831 */
  .oCard__hr{ border-top-width: 4px; margin: clamp(10px, 3vw, 16px) 0; }
}

/* PC：2カードの高さを揃え、ボタンを最下に固定 */
@media (min-width: 860px){
  .outline-cards{ align-items: stretch; }   /* グリッド項目を行高いっぱいに */
  .outline-cards .oCard{
    display: flex; flex-direction: column; height: 100%;
  }
  .outline-cards .oCard__body{
    display: flex; flex-direction: column; flex: 1 1 auto;
  }
  /* ボタンがカード直下にあるパターン */
  .outline-cards .oCard__cta:last-child{ margin-top: auto !important; }
  /* ボタンブロックが白箱内にあるパターン */
  .outline-cards .oCard__body :is(.wp-block-buttons, .vk_buttons):last-child{
    margin-top: auto !important;
  }
}

/* ボタン上下のゆとり（PC/SP共通） */
.outline-cards .oCard__cta:last-child{
  margin-top: clamp(10px, 1vw, 18px) !important;
  margin-bottom: clamp(10px, 1vw, 18px) !important;
}
.outline-cards .oCard__body :is(.wp-block-buttons, .vk_buttons):last-child{
  margin-top: clamp(10px, 1vw, 18px) !important;
  margin-bottom: clamp(10px, 1vw, 18px) !important;
}

/* ==== 2025-08-20 大会概要カード：本文の縦リズムを統一（追加パッチ） ==== */
.outline-cards .oCard__body > p{ margin: .20em 0 .35em; }
.outline-cards .oCard__body h4{ margin: 0 0 .45em; }
.outline-cards .oCard__body h4 + p{ margin: 0 0 .35em; }   /* ●学校名の下 */
.outline-cards .oCard__body h4 + p + p{ margin: 0 0 .80em; }/* 概要の下 */
.outline-cards .oCard__body .oCard__hr{ margin: .70em 0 .90em; }
.outline-cards .oCard__body p + .oCard__hr{ margin-top: .60em; }
.outline-cards .oCard__body .oCard__hr + h4{ margin-top: .30em; }
.outline-cards .oCard__body > :last-child{ margin-bottom: 0 !important; }

/* ==== カード下の申込ボタン　共通CTA行（中央寄せ＋上下余白）— apply-cta をエイリアス化 ==== */
:root{ --cta-mt: clamp(28px, 6vw, 72px); --cta-mb: var(--space-lg); }

.cta-row,
.apply-cta{
  width: var(--container-pct);
  margin-inline: auto;
  display: flex;
  justify-content: center;
  margin-block: var(--cta-mt) var(--cta-mb);
}

/* 余白バリエーション（必要なら） */
.cta-row--tight{ --cta-mt: clamp(16px, 3vw, 40px); }
.cta-row--loose{ --cta-mt: clamp(48px, 8vw, 96px); }

/* カード直後で余白が詰まるケースの保険 */
.outline-cards + .cta-row,
.outline-cards + .apply-cta{
  margin-block-start: var(--cta-mt) !important;
}

/* ボタンの見栄え（どちらのラッパでも効くように統合） */
.cta-row .btn,
.apply-cta .btn{
  font-size: clamp(16px, 0.95rem + 0.25vw, 18px);
  padding: clamp(12px, 1.2vw, 16px) clamp(24px, 3vw, 40px);
  font-weight: 800;
}

/* ちょい大きめの幅 */
.btn--xl{ min-width: min(90%, 520px); }

/* アウトライン版 */
.btn--outline{
  background:#fff;
  color: var(--header-bg);
  border-color: var(--header-bg);
}
.btn--outline:hover{
  background:#f7fbff;
  transform: translateY(-1px);
}

/* =========================================================
   20250821 Schedule（画像方式のチップ）最終整理版（重複クリーン）
   目的：
   - 既存デザインを変えずにダブり/衝突を解消
   - 見出しリセットで■が消える問題を回避
   前提: :root に --brand-blue / --brand-green / --card-border / --divider が定義済み
   ========================================================= */

/* ---- 変数・スコープ ---- */
#schedule{
  --accent-line: var(--brand-green);
  --venue-bullet: var(--brand-green);    /* 既定は緑。Day2は下で青に */
  --schedule-max: min(94%, 1240px);      /* セクション基準幅 */
  --tbl-border: #c6c6c6;                  /* 表の薄グレー線 */
}
#schedule .is-day2{ --venue-bullet: #0B72D9; }

/* ---- セクション基本レイアウト ---- */
.schedule{ width: var(--schedule-max); margin-inline: auto; }
#schedule.section.schedule{ padding-top:8px !important; padding-bottom:16px !important; }
#schedule :is(.is-layout-flow,.is-layout-constrained,.is-layout-flex){
  --wp--style--block-gap:0 !important; gap:0 !important; row-gap:0 !important;
}
#schedule .schedule__titleBar{ display:none !important; }

/* 内部ナビ（任意） */
.schedule__nav{ display:flex; gap:10px; flex-wrap:wrap; margin:10px 0 18px; }
.schedule__navLink{ display:inline-block; padding:.4em .8em; border:1px solid #ddd; border-radius:8px; text-decoration:none; }
.schedule__navLink:focus-visible{ outline:2px dashed #888; outline-offset:2px; }

/* ---- Day1 会場カード ---- */
.dayCards{ display:grid; gap:14px; grid-template-columns:1fr; }
@media (min-width:860px){ .dayCards{ grid-template-columns:1fr 1fr; } }
.dayCard{ background:#fff; border:1px solid var(--card-border); border-radius:16px; padding:16px 16px 12px; box-shadow:0 2px 10px rgba(0,0,0,.03); }
.dayCard__head{ display:flex; align-items:center; gap:10px; margin:0 0 6px; }
.dayCard__badge{ font-weight:700; font-size:14px; padding:.1em .6em; border-radius:999px; border:1px solid var(--brand-green); color:var(--brand-green); }
.dayCard__title{ font-size:clamp(16px,2.6vw,18px); margin:0; }
.dayCard__time{ color:#666; font-size:13px; margin:4px 0 10px; }
.dayCard__list{ margin:0; padding:0; list-style:none; border-top:1px solid var(--divider); }
.dayCard__item{ display:flex; gap:10px; padding:10px 4px; border-bottom:1px dashed var(--divider); }
.dayCard__label{ width:110px; font-variant-numeric:tabular-nums; color:#333; }
.dayCard__desc{ flex:1; color:#444; }

/* ---- Day2 タイムライン ---- */
.timeline{ --line:#e4e8ee; --dot:var(--brand-blue); padding:10px 2px 0; margin:0; }
.timeline__item{ list-style:none; display:grid; grid-template-columns:120px 1fr; column-gap:14px; padding:12px 0; position:relative; border-bottom:1px dashed var(--divider); }
.timeline__time{ font-variant-numeric:tabular-nums; color:#333; line-height:1.4; }
.timeline__title{ margin:0 0 .2em; font-size:clamp(16px,2.4vw,20px); }
.timeline__meta{ margin:.2em 0 0; color:#666; font-size:clamp(13px,1.9vw,15px); }
.timeline__item:before{ content:""; position:absolute; left:110px; top:0; bottom:0; width:2px; background:var(--line); }
.timeline__item:after{ content:""; position:absolute; left:104px; top:20px; width:14px; height:14px; border-radius:50%; background:#fff; border:3px solid var(--dot); box-shadow:0 0 0 3px #fff; }
@media (max-width:600px){ .timeline__item{ grid-template-columns:95px 1fr; } .timeline__item:before{ left:85px; } .timeline__item:after{ left:79px; } }

/* ---- #schedule 内の見出し装飾OFF（テーマ装飾を消す） ---- */
#schedule .wp-block-heading, #schedule .section__title{
  margin:0 0 4px !important; border:0 !important; background:none !important; background-image:none !important; box-shadow:none !important;
}
#schedule .wp-block-heading::before, #schedule .wp-block-heading::after,
#schedule .section__title::before, #schedule .section__title::after{ content:none !important; }
#schedule .vk-heading .vk-heading-title, #schedule .vk-heading .vk-heading-title::before, #schedule .vk-heading .vk-heading-title::after{
  border:0 !important; content:none !important; background:none !important;
}

/* ---- 会場見出し（■＋下線） ---- */
#schedule .venueRow{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  padding-bottom:8px; margin:10px auto 12px;
  border-bottom:3px solid var(--accent-line);
  max-width: var(--schedule-max);
}
#schedule .venueRow__name{
  margin:0; font-weight:700; font-size:clamp(18px,2.6vw,20px);
  display:inline-flex; align-items:center; gap:.45em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; flex:1 1 auto;
}
#schedule .venueRow__name::before{
  content:"" !important;
  display:inline-block; width:.72em; height:.72em;
  background: var(--venue-bullet);
  border-radius:2px; flex:0 0 auto; transform: translateY(.03em);
}
#schedule .venueRow__time{ margin:0; color:#414141; font-size:clamp(15px,2.6vw,18px); white-space:nowrap; flex:0 0 auto; }
@media (max-width:480px){
  #schedule .venueRow{ flex-direction:column; align-items:flex-start; gap:6px; }
  #schedule .venueRow__time{ white-space:normal; }
}

/* ---- 印刷 ---- */
@media print{
  .schedule{ width:100%; }
  .schedule__nav{ display:none !important; }
  .timeline__item:before, .timeline__item:after{ background:#000; opacity:.1; box-shadow:none; border-color:#000; }
}

/* ---- アクセシビリティ補助 ---- */
.visually-hidden{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* ---- ピル画像（chipRow）幅・間隔：定義を一本化 ---- */
#schedule .wp-block-image.chipRow--imgTag,
#schedule .chipRow--imgTag{
  width: var(--schedule-max);
  max-width: 100%;
  margin: 2px auto 16px;
}
#schedule .wp-block-image.chipRow--imgTag img,
#schedule .chipRow--imgTag img{
  display:block; width:100%; height:auto;
  /* 画像実寸比が分かるなら指定（例） aspect-ratio: 5100 / 240; */
}
/* 旧方式のチップは隠す */
#schedule .chipBar, #schedule .chipRow--img{ display:none !important; }
/* 画像直後の最初の .venueRow に上マージン追加 */
#schedule .chipRow--imgTag + .venueRow,
#schedule .chipRow--imgTag ~ .venueRow:first-of-type{
  margin-top: clamp(24px, 4vw, 48px) !important;
}

/* ---- スクロール位置補正 ---- */
#schedule #schedule-day2{ scroll-margin-top: 80px; }

/* =========================================================
   28日専用：テーブル（progTable）
   ========================================================= */
:root{
  --tbl-teal: var(--brand-green, #00A497);
  --tbl-line: #a8ddd7;
  --tbl-head: #e8f7f5;
}
#schedule .scheduleTableBlock{ --qr-size:128px; width: var(--schedule-max); max-width:100%; margin-inline:auto; }
.tableScroller{ overflow:auto; }              /* ラッパは共通 */
#schedule .tableScroller{ width:100%; }       /* 親幅いっぱい */

#schedule .progTable{
  width:100%;
  border-collapse:separate; border-spacing:0;
  font-size:clamp(14px, 1.6vw, 15px); color:#333;
  background:#fff;
  /* 角丸/枠の最終値（薄グレー） */
  border-radius:0 !important;
  border:1px solid var(--tbl-border) !important;
}
#schedule .progTable thead th{
  position:sticky; top:0;
  background:var(--tbl-head);
  border-bottom:1px solid var(--tbl-border) !important;
  padding:.55em .7em; text-align:center; font-weight:700; white-space:nowrap;
}
#schedule .progTable td, #schedule .progTable th{
  border-right:1px solid var(--tbl-border) !important;
  border-bottom:1px solid var(--tbl-border) !important;
  padding:.6em .7em; vertical-align:middle; text-align:center;
}
#schedule .progTable tbody tr:last-child > *{ border-bottom:0; }
#schedule .progTable tr > *:last-child{ border-right:0; }
#schedule .progTable .sideHead{ border-right:1px solid var(--tbl-border) !important; }

/* 基本：全セル中央＋縦中央 20250828　差し替え*/
#schedule .progTable th,
#schedule .progTable td {
  text-align: center;
  vertical-align: middle;
}

/* 本文だけ：単元名／活用列は左寄せ（見出しは中央のまま） */
#schedule .progTable tbody [data-col="単元名"],
#schedule .progTable tbody [data-col="活用番組"],
#schedule .progTable tbody [data-col="活用ICT機器・教材"] {
  text-align: left;
  padding-left: .6em;
  white-space: normal; /* 長い語句も折り返しOK */
}

/* 学年／クラスは折り返さない（任意） */
#schedule .progTable tbody [data-col="学年"],
#schedule .progTable tbody [data-col="クラス"] {
  white-space: nowrap;
}
/* ココまで */


/* フッター（住所・QR・備考） */
.programFooter{
  display:grid; grid-template-columns: 1fr 1fr auto;
  gap:16px; align-items:start; margin:18px 0 10px;
}
.programFooter--single{ display:grid; grid-template-columns:1fr; gap:16px; margin:18px 0 10px; }
.infoBox{
  border:1px solid var(--tbl-border);   /* 仕上げの薄グレー */
  border-radius:0; background:#fff;
  /* padding は運用でON/OFFする想定（必要ならpadding:16px;） */
}
.infoBox__head{ font-weight:700; margin:0 0 6px; display:flex; align-items:center; gap:.5em; }
.infoBox__head .sq{ width:.9em; height:.9em; background:var(--tbl-teal); display:inline-block; border-radius:2px; }
.infoBox__body{ margin:0; line-height:1.7; }
.qrBox{ margin:0; width:var(--qr-size); height:var(--qr-size); }
.qrBox img{ display:block; width:100%; height:auto; }
.programNote{ margin:6px 0 0; font-size:12px; color:#666; text-align:right; }

/* 住所  レイアウト装飾追加　20250902 */
/* ボックス幅：親のレールに合わせる（親が既にレール管理している想定） */
.programFooter,
.programFooter--single{
  width: 100%;
  margin: 18px 0 2%;  /* 下に余白を多めに */
}

/* 余白はボックスに付ける */
.infoBox{
  border:1px solid var(--tbl-border);
  border-radius:0;
  padding:8px 10px;
  background-color: #f5f5f5; /* ←BGグレー */
  margin-left: 1.2em;  /* 左に余白 */
  margin-right: 1.2em;  /* 右に余白 */
  margin-bottom: 1.5em;  /* 下に余白 */
}

/* 見出し：左のインデントをゼロにして行頭を合わせる */
.infoBox__head{
  display:flex; align-items:center; gap:.5em;
  margin:0 0 5px !important;
  padding-left:0;              /* ←ココで行頭を揃える */
  font-weight:700;
}

/* 見出しの■は本文色に合わせる */
.infoBox__head .sq{
  display:inline-block;
  width:.85em; height:.85em;
  background: var(--accent-28, var(--accent-1128, #00A497));
  border-radius:2px;
}

/* 本文（住所）は適度にインデントして読みやすく */
.infoBox__body{
  margin:0;
  line-height:1.9;
  font-style:normal;          /* <address>の斜体を打消し */
  padding-left: 16px;         /* ←見出しだけ行頭揃え、本文は余白キープ */
}

/* モバイルは少しタイトに */
@media (max-width: 720px){
  .infoBox{ padding:12px 14px; }
  .infoBox__body{ padding-left:12px; }
}
/* ココまで */

/* レイアウト間隔 */
#schedule .chipRow--imgTag{ margin-bottom: clamp(16px, 2.6vw, 28px) !important; }
#schedule .tableScroller{ margin-bottom: clamp(16px, 3vw, 28px) !important; }
#schedule .accessBox, #schedule .infoBox{ margin-top: clamp(10px, 1.2vw, 20px); }

/* モバイル調整 */
@media (max-width: 720px){
  .programFooter{ grid-template-columns:1fr; }
  .qrBox{ order:3; }
}

/* スケジュール詳細に追加枠 20250828*/
/* ===== 11/28 専用 ===== */
/* ===== 11/28 追加枠だけ（超ミニマム&限定適用） ===== */
/* 川崎・北区のラッパーにだけ作用（他は影響なし） */
#sch28-kawasaki.day28-extras,
#sch28-kita.day28-extras{
  --extras-indent: 32px;                 /* 左の開始位置（±2pxで微調整） */
  --mark-size: 12px;                     /* 行頭マークサイズ */
  --mark-gap: 8px;                       /* マークと文字の間隔 */
  --mark-color: var(--c-teal, #53b3b0);  /* 緑 */
}

/* 縦並び＋余白＋左インデント（既存grid指定を無効化） */
#sch28-kawasaki.day28-extras .wsGrid,
#sch28-kita.day28-extras .wsGrid{
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  margin: 18px 0 24px !important;
  padding-left: 0.5em; /* 左の余白変更　20250902 */
  grid-template-columns: none !important;
}
#sch28-kawasaki.day28-extras .wsGrid > div,
#sch28-kita.day28-extras .wsGrid > div{
  width: 100% !important;
}

/* 住所 */
.infoBox__body .mapNote{ margin-left:.25em; white-space:nowrap; }
.infoBox__body .mapLink{
  text-decoration: underline;
  text-underline-offset: .15em;
}
.infoBox__body .mapLink:hover{ text-decoration-thickness: 2px; }

/* タイポ（見出し控えめ／本文は太字にしない） */
#sch28-kawasaki.day28-extras .wsGrid h4,
#sch28-kita.day28-extras .wsGrid h4{
  margin: 0 0 4px;
  font-size: clamp(16px, 1.55vw, 18px);
  font-weight: 700;
  line-height: 1.3;
}
#sch28-kawasaki.day28-extras .wsGrid .meta,
#sch28-kita.day28-extras .wsGrid .meta,
#sch28-kawasaki.day28-extras .wsGrid p,
#sch28-kita.day28-extras .wsGrid p{
  margin: 0;
  font-weight: 400;
  font-size: clamp(15px, 1.6vw, 16px);
  line-height: 1.8;
}

/* 29日は常にマークなし（保険） */
#sch29 .wsGrid h4{ padding-left:0 !important; }
#sch29 .wsGrid h4::before{ content:none !important; }

/* 28日だけマーク表示（親幅は触らない） */
#sch28-kawasaki .wsGrid h4,
#sch28-kita .wsGrid h4{
  position: relative;
  padding-left: 22px !important;  /* 20–26pxで微調整OK */
}
#sch28-kawasaki .wsGrid h4::before,
#sch28-kita .wsGrid h4::before{
  content:"";
  position:absolute; left:0; top:.28em;
  width:12px; height:12px;
  background:#53b3b0; border-radius:2px;
}

/* 28日の追加枠：本文も見出しと同じ位置から始める */
#sch28-kawasaki .wsGrid .meta,
#sch28-kita .wsGrid .meta{
  padding-left: calc(var(--mark-size) + var(--mark-gap));
}
/* スケジュール詳細に追加枠 20250828　ここまで*/

/* =========================================================
   グローバル見出し装飾OFF（Lightning/VK）※■は除外！
   ※ サイト全体に効くが、.venueRow__name は対象外にして擬似要素を守る
   ========================================================= */
:where(h1,h2,h3,h4,h5,h6, .wp-block-heading, .vk-heading .vk-heading-title){
  border:0 !important; background:none !important; background-image:none !important; box-shadow:none !important;
  padding:0 !important;
}
/* 擬似要素の装飾を消すが、■付き見出しは除外 */
:where(h1,h2,h3,h4,h5,h6, .wp-block-heading, .vk-heading .vk-heading-title):not(.venueRow__name)::before,
:where(h1,h2,h3,h4,h5,h6, .wp-block-heading, .vk-heading .vk-heading-title):not(.venueRow__name)::after{
  content:none !important;
}
/* テーマが個別に当てる h3 下線を消すが、■付きは除外 */
h3:where(:not(.wp-block-post-title)):not(.venueRow__name){
  border:0 !important; padding:0 !important; background:none !important;
}

/* ===== 基準幅にそろえる（センタリング） ===== */
#schedule :is(.chipRow--imgTag,.venueRow,.schedule__nav,.dayCards,.scheduleDay,.scheduleTableBlock,.programFooter,.tableScroller){
  max-width: var(--schedule-max); margin-inline: auto;
}

/* 細かな余白の微調整（任意） */
#schedule .schedule__nav{ margin-top: 8px; }
#schedule .venueRow{ margin-top: 20px; }

/* =========================
   申込みの流れ #apply-flow
   （区切りは画像で表示）
   ========================= */
#apply-flow{
  --flow-w: var(--content-w, min(92vw, 1000px)); /* セクション内容幅 */
}

/* セクション幅の中央寄せ（保険） */
#apply-flow > .wp-block-group__inner-container,
#apply-flow .is-layout-constrained{
  max-width: var(--flow-w);
  margin-inline: auto;
}

/* タイトル */
#apply-flow h2{ text-align:center; margin: 0 0 14px; }

/* 上の「ボタン＋説明」を横並び（スマホで縦並び） */
#apply-flow .flow__lead{
  display:grid; grid-template-columns: auto 1fr;
  align-items:center; gap:16px; margin: 8px 0 12px;
}
#apply-flow .flow__lead .wp-block-buttons{ margin:0; justify-content:center; }
#apply-flow .flow__lead .lead__note{ color:#666; }

/* ★ 区切り画像（flow_line.png） */
#apply-flow .flow-imgSep{
  width: min(96%, var(--flow-w));
  margin: 10px auto 16px;
  line-height: 0;                 /* 余計な行高を消す */
}
#apply-flow .flow-imgSep img{
  display:block; width:100%; height:auto;
}

/* 各ステップ */
#apply-flow .flow__step{ text-align:center; margin: 6px 0 16px; }
#apply-flow .flow__stepTitle{ margin:0 0 6px; font-weight:700; font-size:clamp(18px, 2.4vw, 22px); }
#apply-flow .flow__desc{ margin:0 auto; color:#444; line-height:1.9; max-width:42em; }

/* CTAボタン（見た目揃え＆1行固定） */
#apply-flow .cta-row{ display:flex; justify-content:center; margin: 8px 0 16px; }
#apply-flow .cta-row--tight{ margin: 8px 0 12px; }
#apply-flow .btn{
  display:inline-block; white-space:nowrap; text-decoration:none;
  font-weight:700; line-height:1; transition:.2s ease;
  font-size: clamp(14px, 1.9vw, 16px);
  padding: .75em 1.4em; border-radius:9999px;
}
#apply-flow .btn--outline{ color: var(--brand-blue, #0B72D9); border:1.6px solid currentColor; background:#fff; }
#apply-flow .btn--l{ padding:.75em 2.5em; }
#apply-flow .btn.is-static{ pointer-events:none; cursor:default; opacity:.95; }

/* 最下段の余白（ボタン下） */
#apply-flow .cta-row:last-of-type{ margin-bottom: 36px !important; }
#apply-flow{ padding-bottom: 20px; } /* マージン相殺の保険 */

/* スマホ調整 */
@media (max-width:560px){
  #apply-flow .flow__lead{ grid-template-columns:1fr; }
  #apply-flow .flow__lead .lead__note{ text-align:center; }
  #apply-flow .flow__stepTitle{ font-size:18px; }
}
@media (max-width:360px){
  #apply-flow .btn{ font-size:13px; padding:.65em 1.2em; }
}

/* ボタン＋説明を中央に横並び、縦位置も中央 */
#apply-flow .flow__lead{
  display:flex;
  justify-content:center;
  align-items:center;
  gap: 14px;                 /* ボタンとテキストの間隔 */
  margin: 8px 0 12px;
  flex-wrap: wrap;           /* 狭い画面で自然に改行 */
}

/* グループ内の個別調整 */
#apply-flow .flow__lead .cta-row{ margin:0; }  /* 既定の外側マージンを打ち消し */

#apply-flow .flow__lead .lead__note,
#apply-flow .flow__desc{                      /* ← カンマで連結 */
  margin: 0;
  font-size: clamp(15px, 1.9vw, 17px);        /* 読みやすい最小値に調整推奨 */
  color: #444;
  line-height: 1.8;
  /* 文字間を少し広げたいなら：  */
  letter-spacing: .02em;
}

/* スマホ時は縦積み＋中央寄せ */
@media (max-width:560px){
  #apply-flow .flow__lead{ flex-direction:column; gap:8px; }
  #apply-flow .flow__lead .lead__note{ text-align:center; }
}
/* ココまで */

/* ① セクション上部（タイトル上）の余白をギュッと */
#apply-flow{
  padding-top: 12px !important;     /* ← 好みで 8–16px くらいに */
}
#apply-flow h2{
  margin-top: 2px !important;
  margin-bottom: 12px;              /* タイトル下は軽めに */
}

/* ② 一番下の区切り画像とボタンの間を狭く */
#apply-flow .flow-imgSep:last-of-type{
  margin-bottom: 6px;               /* デフォルト16px → 6px に縮める */
}
#apply-flow .flow-imgSep + .cta-row{
  margin-top: 8px !important;       /* 直後のボタンの上マージンを小さく */
}

/* タイトル下を少しだけ広げる */
#apply-flow h2{
  margin-bottom: 18px !important;   /* ←お好みで 16–24px */
}

/* ボタン＋説明の縦横ギャップを個別に調整 */
#apply-flow .flow__lead{
  /* タイトルからの距離（上マージン）もここで微調整できます */
  margin-top: 12px;                 /* ←タイトルとの間を広げる */
  margin-bottom: 10px;

  /* 横方向の間隔（横並び時）と縦方向の間隔（折返し時）を分けて指定 */
  display: flex; justify-content: center; align-items: center;
  column-gap: 14px;                 /* ボタンとテキストの横間隔 */
  row-gap: 0px;                     /* 折返したときの縦間隔 → “狭める” */
  flex-wrap: wrap;
}

/* 説明文のサイズと余白の微調整（念のため） */
#apply-flow .flow__lead .lead__note{
  margin-top: 16px;                        /* 余計な余白をゼロに */
  font-size: clamp(15px, 2vw, 17px);
  line-height: 1.6;
}

/* 本文フォントを強制的に同一に */
#apply-flow .lead__note,
#apply-flow .flow__desc,
#apply-flow .flow__step p{
  font-family: var(--vk-font-family, inherit) !important; /* Lightning の本文フォント／なければ継承 */
  font-weight: 400;
}

/* 案内テキストの見た目 */
#apply-flow .apply-intro{
  text-align: center;
  margin: 10px 0 14px;               /* 上下の間隔はお好みで */
  font-size: clamp(15px, 2vw, 17px);  /* 本文より少しだけ大きめ */
  font-weight: 600;
  letter-spacing: .02em;
  color: #444;
}

/* もし以前つけた「一番下のボタンの下マージン」を残していたら無効化 */
#apply-flow .cta-row:last-of-type{ margin-bottom: 0 !important; }

/* =========================
   申込フォーム（クリーン版）
   ========================= */

/* ラッパー（中央寄せ＆色変数） */
#entry-form{
  width:100%;
  max-width:1100px;
  margin-inline:auto;
  padding-inline:clamp(12px,3vw,24px);
  --accent: #0b5cab;               /* 青系アクセント */
  --accent-rose: #b4476b;          /* 見出し：参加者情報 */
  --btn-color: #0b7cc2;            /* 送信ボタン色 */
  --btn-width: 560px;              /* 送信ボタン横幅 */
}

#entry-form .entry-form{
  font-family: var(--vk-font-family, "Noto Sans JP", sans-serif);
}

/* ========== テーブル共通 ========== */
#entry-form .program-table,
#entry-form .info-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0 6px;            /* 行間 */
  table-layout:fixed;              /* 中身に影響されない幅計算 */
  border:0;
  background:transparent;
}

/* 列幅（colgroupがある前提／保険も付与） */
#entry-form .program-table col.col-left,
#entry-form .info-table   col.col-left{  width:36%; }
#entry-form .program-table col.col-right,
#entry-form .info-table   col.col-right{ width:64%; }
#entry-form .program-table th:first-child,
#entry-form .info-table   th:first-child{ width:36%; }        /* フォールバック */
#entry-form .program-table td:nth-child(2),
#entry-form .info-table   td:nth-child(2){ width:64%; }

/* 左列（設問） */
#entry-form .program-table th,
#entry-form .info-table th{
  padding:12px 14px;
  background:#f7f9fb;
  color:#222;
  font-weight:600;
  line-height:1.6;
  text-align:left;
  white-space:nowrap;              /* 1行目は折り返さない */
  overflow:hidden; text-overflow:ellipsis;
  border:0; box-shadow:none;
  border-radius:12px 0 0 12px;
}

/* 右列（選択/入力） */
#entry-form .program-table td,
#entry-form .info-table td{
  padding:12px;
  background:#fff;
  border:1px solid #e6ecf2;
  border-left:none;
  border-radius:0 12px 12px 0;
  vertical-align:middle;
  text-align:center;
}

/* 見出し行（帯） */
#entry-form .program-table .day-row th{
  background:#eaf4ff;
  color:var(--accent);
  border:0;
  text-align:center;
  white-space:nowrap;
  border-radius:12px;
  padding:10px 14px;
  font-weight:700;
  line-height:1.4;
}

/* ========== ラジオを“カプセルボタン”に ========== */
#entry-form .choice .wpcf7-list-item{ margin:0 6px 6px 0; }

#entry-form .choice label{
  display:inline-flex; align-items:center; gap:.55em;
  padding:7px 12px;
  border:1px solid #cfd8e3; border-radius:999px;
  background:#fff; cursor:pointer; user-select:none; transition:.15s;
}

#entry-form .choice input[type="radio"]{ position:absolute; opacity:0; }
#entry-form .choice input[type="radio"] + .wpcf7-list-item-label{ line-height:1; }

#entry-form .choice label:has(input[type="radio"]:checked){
  border-color:var(--accent);
  background:#eaf4ff;
  font-weight:600;
}

/* 選択肢グループの外枠は消す＆中央寄せ */
#entry-form .program-table td.choice .wpcf7-form-control-wrap,
#entry-form .program-table td.choice .wpcf7-radio{
  border:0; box-shadow:none; background:transparent;
  padding:0; border-radius:0;
  display:inline-flex; gap:20px; justify-content:center; align-items:center;
}
#entry-form .program-table td.choice{ text-align:center; }

/* ========== 分岐（説明＋二択） ========== */

/* HTMLは <tr class="branch-row"><td colspan="2">…</td></tr> の1セル構成 */
#entry-form .branch-row td{ padding:6px 0 10px; }

/* 説明ボックス */
#entry-form .branch-note{
  margin:6px 0; padding:12px 14px;
  background:#f6fbff; color:#174a7e;
  border:1px solid #d9ecff; border-left:4px solid var(--accent);
  border-radius:10px;
  text-align:left;
  max-width:100%; overflow-wrap:anywhere;
}
#entry-form .branch-note p{ margin:0; line-height:1.6; }
#entry-form .branch-note p + p{ margin-top:.9em; }
#entry-form .branch-note br{ display:block; margin:.35em 0; }

/* 二択 */
#entry-form .branch-choice{
  text-align:center; margin-top:8px;
}
#entry-form .branch-choice .wpcf7-radio{
  display:inline-flex; gap:16px; justify-content:center; align-items:center; flex-wrap:wrap;
}

/* PC（1025px〜）：見た目だけ 36% / 64% に分割して右側に載せる */
@media (min-width:1025px){
  #entry-form .program-table .branch-row td[colspan="2"]{
    display:grid; grid-template-columns:36% 64%;
    width:100%; padding:0; border:none; box-sizing:border-box;
  }
  #entry-form .program-table .branch-row td[colspan="2"] > .branch-note,
  #entry-form .program-table .branch-row td[colspan="2"] > .branch-choice{
    grid-column:2/3;   /* 右側64%に配置 */
  }
}

/* ========== 入力ボックス等 ========== */
#entry-form .wpcf7-form-control:not([type="radio"]):not([type="checkbox"]){
  border:1px solid #cfd8e3; border-radius:10px; padding:10px 12px; outline:0;
}
#entry-form .wpcf7-form-control:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(11,92,171,.12);
}
#entry-form ::placeholder{ color:#9aa6b2; }

/* ヘルプ文（左寄せ） */
#entry-form .help{ display:block; margin-top:6px; color:#666; font-size:.92em; text-align:left; }

/* エラー/レスポンス */
#entry-form .wpcf7-not-valid-tip{ color:#b42318; margin-top:6px; font-size:.92em; }
#entry-form .wpcf7 form .wpcf7-response-output{ border-color:var(--accent); background:#f6fbff; }

/* 初期状態は非表示 20250903追加*/
.wpcf7-response-output {
  display: none;  /* 初期状態は非表示 */
}


/* ========== セクション見出し ========== */
#entry-form .form-secTitle{
  display:flex; align-items:center; gap:.55em;
  margin:28px 0 12px; font-size:clamp(16px,1.5vw,18px);
  font-weight:700; letter-spacing:.02em;
}
#entry-form .form-secTitle::before{ content:"■"; font-size:1em; }
#entry-form .form-secTitle--program{ color:#1b5fb8; }
#entry-form .form-secTitle--program::before{ color:#1b5fb8; }
#entry-form .form-secTitle--info{ color:var(--accent-rose); }
#entry-form .form-secTitle--info::before{ color:var(--accent-rose); }

/* ========== 必須/任意バッジ（1行目の末尾に） ========== */
/* .th-main を置いた見出しでは従来の th::after を無効化 */
#entry-form .info-table tr > th:has(.th-main)::after{ content:none; }

/* 必須 */
#entry-form .info-table tr:has(.wpcf7-validates-as-required) > th .th-main::after{
  content:"（必須）"; margin-left:.4em; color:#b42318; font-weight:600; font-size:.9em;
}
/* 任意 */
#entry-form .info-table tr:not(:has(.wpcf7-validates-as-required)) > th .th-main::after{
  content:"（任意）"; margin-left:.4em; color:#667085; font-weight:400; font-size:.9em;
}
#entry-form .info-table th .th-sub{
  display:block; margin-top:4px; color:#6b7280; font-weight:400; line-height:1.6;
}

/* ==== 参加プログラム：必須のみ 20250908追記==== */

/* day見出し（colspan行）は除外 */
#entry-form .program-table tr.day-row > th::after{ content:none !important; }

/* .th-main を入れた行は th::after を使わない（重複防止） */
#entry-form .program-table tr > th:has(.th-main)::after{ content:none !important; }

/* 必須バッジは .th-main の直後にだけ付与（横並び・参加者情報と同サイズ=.9em） */
#entry-form .program-table tr:has(td.choice .wpcf7-radio) > th .th-main::after,
#entry-form .program-table tr:has(td.choice .wpcf7-validates-as-required) > th .th-main::after{
  content:"（必須）";
  margin-left:.4em;
  color:#b42318;
  font-weight:600;
  font-size:.9em;
  display:inline;
  white-space:nowrap;
  vertical-align:baseline;
}

/* 分岐の案内文にも必須（先頭に表示） */
#entry-form .program-table .branch-choice:has(.wpcf7-radio)::before,
#entry-form .program-table .branch-choice:has(.wpcf7-validates-as-required)::before{
  content:"（必須）";
  margin-right:.5em;
  color:#b42318;
  font-weight:600;
  font-size:.9em;
}

/* 横並び固定（info/program 共通の保険） */
#entry-form .info-table th .th-main::after,
#entry-form .program-table th .th-main::after{
  display:inline;
  white-space:nowrap;
  vertical-align:baseline;
}

/* ========== プライバシー枠（枠なし 配置） ========== */
#entry-form .privacy-box{
  border:0; background:transparent; margin:18px 2% 10px; text-align: left;
}
#entry-form .privacy-box p{ margin:0 0 10px; }
#entry-form .privacy-box .wpcf7-acceptance,
#entry-form .privacy-box .wpcf7-form-control-wrap{
  border:0; background:transparent; padding:0;
}
#entry-form .privacy-box .wpcf7-list-item label{ border:0; background:transparent; padding:0; }
#entry-form .privacy-box input[type="checkbox"]{ transform:scale(1.05); vertical-align:middle; }

#entry-form .privacy-box .privacy-check{
  border:0; background:transparent; text-align:left; margin:18px 0 10px;

}
#entry-form .privacy-box .wpcf7-acceptance{ display: inline-block; margin-top: 8px; }

/* ========== 送信ボタン（他ボタン風の長いカプセル） ========== */
#entry-form .submit-wrap{ text-align:center; margin-top:14px; }
#entry-form .submit-wrap .wpcf7-submit{
  appearance:none; -webkit-appearance:none;
  display:block; width:min(var(--btn-width),92%); margin:0 auto;
  padding:14px 32px;
  border:2px solid var(--btn-color);
  border-radius:9999px;                 /* 常に pill 形状 */
  background:#fff; color:var(--btn-color);
  font-weight:700; font-size:clamp(18px,2.1vw,20px);
  line-height:1; letter-spacing:.02em;
  transition:background .15s ease, color .15s ease, transform .05s ease;
}
#entry-form .submit-wrap .wpcf7-submit:hover{
  background:var(--btn-color); color:#fff; transform:translateY(-1px);
}

/* ========== モバイルレイアウト（〜720px） ========== */
@media (max-width:720px){
  /* 縦積みUIに切替（このブレークポイントだけでOK） */
  #entry-form .program-table th,
  #entry-form .info-table th{
    display:block; width:100%;
    border-radius:12px 12px 0 0;
    white-space:normal;
  }
  #entry-form .program-table td,
  #entry-form .info-table td{
    display:block; width:100%;
    border-left:1px solid #e6ecf2;
    border-radius:0 0 12px 12px;
    padding:10px 12px;
    text-align:left;                 /* 入力側は左寄せ */
  }

  /* 分岐行：1セルをそのまま全幅で */
  #entry-form .program-table .branch-row td[colspan="2"]{
    display:block; width:100%; padding:0; box-sizing:border-box;
  }
}

/* === 送信ボタンを「常に長いカプセル」＋余白を固定（強制ロック版） === */
#entry-form{
  --btn-color: #0b7cc2;                 /* ボタン色（枠/文字） */
  --btn-width: 560px;                   /* 横幅：例 560px（お好みで） */
  --btn-font: clamp(20px, 2.3vw, 22px); /* 文字サイズ */
  --btn-pad-v: 16px;                    /* 上下の内側余白 */
  --btn-pad-h: 36px;                    /* 左右の内側余白 */
  --btn-gap-top: 24px;                  /* ボタン上の余白 */
}

/* ボタン上の余白（戻らないよう強制） */
#entry-form .submit-wrap{
  text-align: center;
  margin-top: var(--btn-gap-top) !important;
  margin-bottom: 8px;
}

/* ボタン本体：pill形状と見た目を強制 */
#entry-form .submit-wrap .wpcf7-submit{
  appearance: none !important;
  -webkit-appearance: none !important;
  display: block !important;
  box-sizing: border-box !important;

  width: min(var(--btn-width), 92%) !important;
  margin: 0 auto !important;
  padding: var(--btn-pad-v) var(--btn-pad-h) !important;

  background: #fff !important;
  color: var(--btn-color) !important;
  border: 2px solid var(--btn-color) !important;
  border-radius: 9999px !important;   /* ←常に“長いカプセル” */
  box-shadow: none !important;

  font-weight: 700 !important;
  font-size: var(--btn-font) !important;
  line-height: 1 !important;
  letter-spacing: .02em !important;
  text-align: center !important;

  transition: background .15s ease, color .15s ease, transform .05s ease !important;
}
#entry-form .submit-wrap .wpcf7-submit:hover{
  background: var(--btn-color) !important;
  color: #fff !important;
  transform: translateY(-1px) !important;
}

/* モバイル時は少しだけコンパクトに（任意） */
@media (max-width: 720px){
  #entry-form{
    --btn-width: 520px;
    --btn-pad-v: 14px;
    --btn-gap-top: 20px;
  }
}
/* ==== FINAL LOCK: acceptance — 枠/影/背景を完全無効 ==== */
#entry-form .privacy-box .wpcf7-acceptance,
#entry-form .privacy-box .wpcf7-acceptance *,
#entry-form .privacy-box .wpcf7-form-control-wrap,
#entry-form .privacy-box .wpcf7-list-item,
#entry-form .privacy-box .wpcf7-list-item label,
#entry-form .privacy-box .wpcf7-list-item .wpcf7-list-item-label{
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  outline: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* ========== FINAL MOBILE LOCK (<=1024px) ========== */
@media (max-width:1024px){
  /* 1) 縦書き系の継承を完全無効化（テーマ対策） */
  #entry-form, #entry-form *{
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
  }

  /* 2) 固定列幅(colgroup)を無効化＆固定レイアウト解除 */
  #entry-form .program-table colgroup,
  #entry-form .info-table colgroup{ display:none !important; }
  #entry-form .program-table,
  #entry-form .info-table{ table-layout:auto !important; }

  /* 3) th/tdは縦積み・全幅・適切に折り返し */
  #entry-form .program-table th,
  #entry-form .program-table td,
  #entry-form .info-table th,
  #entry-form .info-table td{
    display:block !important;
    width:100% !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
  }

  /* 4) 選択肢2択は中央寄せのまま・折返しても中央 */
  #entry-form .program-table td.choice .wpcf7-radio{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    gap:12px !important;
    flex-wrap:wrap !important;
    margin-inline:auto !important;
  }
}
/* ================================================ */

/* 分岐（二択）— 外枠はナシ、中央寄せだけ維持 */
#entry-form .branch-choice{
  text-align: center;
  margin-top: 8px;
}

/* 枠・背景・影など一切ナシに */
#entry-form .branch-choice .wpcf7-form-control-wrap,
#entry-form .branch-choice .wpcf7-radio{
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* 並びは中央寄せ＋間隔だけ */
#entry-form .branch-choice .wpcf7-radio{
  display: inline-flex !important;
  justify-content: center;
  align-items: center;
  gap: 20px;        /* ←お好みで 16〜24px */
  flex-wrap: wrap;  /* 画面が狭い時は折り返し */
}

/* 分岐の各ラベルは“カプセル化”させない（枠なし・素のラジオ） */
#entry-form .branch-choice .wpcf7-list-item label{
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* === PC(>=1025px) だけ：分岐行を 36% / 64% の2セルに固定 === */
@media (min-width: 1025px){
  #entry-form .program-table{ table-layout: fixed !important; }

  /* 分岐行は table-row / table-cell を強制（崩れ防止） */
  #entry-form .program-table .branch-row{ display: table-row !important; }

  #entry-form .program-table .branch-row > th.branch-spacer{
    display: table-cell !important;
    width: 36% !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-sizing: border-box !important;
  }
  #entry-form .program-table .branch-row > td{
    display: table-cell !important;
    width: 64% !important;
    vertical-align: top;
    box-sizing: border-box !important;
  }

  /* セル内の要素が横幅を押し広げないよう保険 */
  #entry-form .program-table .branch-row td > *,
  #entry-form .program-table .branch-row td .wpcf7-form-control-wrap{
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}
/* ===== もう戻らせないための最小ガード（最後に置く） ===== */

/* 1) 申し込みボタン：pill形状・内側余白・中央寄せを固定 */
#entry-form .submit-wrap{ text-align:center !important; margin-top: 5% !important; }
#entry-form .submit-wrap .wpcf7-submit{
  display:block !important;
  width:min(560px,92%) !important;
  margin:0 auto !important;
  padding:14px 32px !important;
  border:2px solid #0b7cc2 !important;
  background:#fff !important;
  color:#0b7cc2 !important;
  border-radius:9999px !important;   /* ←pill確定 */
  font-weight:700 !important;
  line-height:1 !important;
}
#entry-form .submit-wrap .wpcf7-submit:hover{
  background:#0b7cc2 !important; color:#fff !important;
}

/* 2) 同意チェックの”囲み枠”を常に消す（テキストはそのまま） */
#entry-form .privacy-box .wpcf7-form-control-wrap,
#entry-form .privacy-box .wpcf7-acceptance,
#entry-form .privacy-box .wpcf7-list-item label{
  border:0 !important; background:transparent !important; box-shadow:none !important; padding:0 !important;
}

/* 3) プログラムの二択グループ外枠も常に消す（カプセル自体は残す） */
#entry-form .program-table td.choice .wpcf7-form-control-wrap,
#entry-form .program-table td.choice .wpcf7-radio{
  border:0 !important; background:transparent !important; box-shadow:none !important; padding:0 !important;
}

/* 4) 分岐（二択）の“囲い枠”は付けない（= 常に外す） */
#entry-form .branch-choice,
#entry-form .branch-choice .wpcf7-radio{
  border:0 !important; background:transparent !important; box-shadow:none !important; padding:0 !important;
}

/* 5) 文章ボックスの可読性だけ担保（崩れても読めるよう保険） */
#entry-form .branch-note{ overflow-wrap:anywhere !important; }

/* 説明テキストのフォントを指定 20250831*/
#entry-form p {
  font-size: 1.1rem;   /* 他より少し大きめに */
  line-height: 1.7;
}

/* =========================
   開催団体一覧 #orgs-section
   ========================= */
#orgs-section {
  --orgs-w: min(92vw, 1000px);     /* ← これが抜けてた！ */
  --orgs-box-w: 880px;                 /* 3枠の共通幅（好みで 760/960 等） */
  padding: 12px 0 20px;
}

/* セクション幅の中央寄せ */
#orgs-section > .wp-block-group__inner-container,
#orgs-section .is-layout-constrained {
  max-width: var(--orgs-w);
  margin-inline: auto;
}

/* タイトル中央寄せ */
#orgs-section .orgs-title {
  text-align: center;
  margin: 0 0 18px;
  color: var(--brand-blue, #0B72D9);
}

/* 飾り線（見出し下） */
#orgs-section .orgs-header-divider {
  width: min(240px, 96%);
  margin: 10px auto 16px;
  line-height: 0;
}
#orgs-section .orgs-header-divider img {
  display: block;
  width: 100%;
  height: auto;
}

/* リスト本体 */
#orgs-section .orgs-list {
  display: grid;
  gap: 16px;
  margin: 12px 0;
  grid-template-columns: 1fr;      /* 1列 */
  justify-items: center;           /* 中央寄せ */
}

/* 各枠の見た目＆幅を統一してセンター寄せ */
#orgs-section .orgs-block {
  width: min(100%, var(--orgs-box-w)) !important;
  margin-inline: auto !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 12px;
  padding: 14px 18px;
  display: grid;
  gap: 8px;
}

#orgs-section .orgs-label {
  font-weight: 700;
  color: var(--brand-blue, #0B72D9);
  font-size: 15px;
}
#orgs-section .orgs-items ul {
  margin: 0;
  padding-left: 1.2em;
}
#orgs-section .orgs-items li {
  line-height: 1.8;
  margin: 2px 0;
  color: #444;
}

/* 区切り線（セクション下） */
#orgs-section .orgs-divider {
  width: min(96%, var(--orgs-w));
  margin: 20px auto 0;
  line-height: 0;
}
#orgs-section .orgs-divider img {
  display: block;
  width: 100%;
  height: auto;
}

/* 横並び（PC時） */
@media (min-width: 720px) {
  #orgs-section .orgs-block {
    grid-template-columns: 120px 1fr;
    align-items: start;
  }
  #orgs-section .orgs-label { text-align: center; }
}

/* 親の wp-block-html による幅の差を吸収して、全枠おなじ幅で中央に */
#orgs-section { --orgs-w: min(92vw, 1000px); --orgs-box-w: 880px; }

#orgs-section .wp-block-html.orgs-html{
  /* まず親をセクション幅いっぱいに */
  width: 100% !important;
  max-width: var(--orgs-w) !important;
  margin-inline: auto !important;
}

/* その上で中身の箱幅を統一 */
#orgs-section .wp-block-html.orgs-html .orgs-list,
#orgs-section .wp-block-html.orgs-html .orgs-block{
  width: min(100%, var(--orgs-box-w)) !important;
  margin-inline: auto !important;
}

/* 見た目はこれまで通り（枠線なし・背景なし） */
#orgs-section .orgs-block{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 12px;
  padding: 14px 18px;
}

/* PC時のラベル/本文 2カラムは維持 */
@media (min-width: 720px){
  #orgs-section .orgs-block{ grid-template-columns: 120px 1fr; display:grid; gap:8px; }
  #orgs-section .orgs-label{ text-align:center; }
}

/* 親ブロックの縮み（flex）を解除＋セクション幅に広げる */
#orgs-section .wp-block-group.orgs-html,
#orgs-section .wp-block-html.orgs-html{
  box-sizing: border-box;
  display: block !important;          /* flex → block に */
  align-items: normal !important;
  justify-content: normal !important;
  gap: 0 !important;

  width: 100% !important;
  max-width: var(--orgs-w, min(92vw, 1000px)) !important;
  margin-inline: auto !important;

  flex: 1 1 100% !important;          /* 親がflexでも1列占有 */
  align-self: stretch !important;
}

/* 中の箱幅を統一して中央へ */
#orgs-section .wp-block-group.orgs-html .orgs-block,
#orgs-section .wp-block-html.orgs-html .orgs-block{
  width: min(100%, var(--orgs-box-w, 880px)) !important;
  margin-inline: auto !important;
}

/* 見た目はこれまで通り */
#orgs-section .orgs-block{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 12px;
  padding: 14px 18px;
}

@media (min-width: 720px){
  #orgs-section .orgs-block{
    display:grid; grid-template-columns:120px 1fr; gap:8px;
  }
  #orgs-section .orgs-label{ text-align:center; }
}

/* リストマーク削除対応　20250901 */
#orgs-section .orgs-items li.no-bullet {
  list-style-type: none;  /* 箇条書きマークを非表示 */
  padding-left: 0;        /* 左のインデント調整 */
  margin-left: 0;         /* 左マージンもリセット */
}

/* スケジュール詳細対応　20250824 */
/* 29日だけ最大幅を指定（28日には影響しない） */
/* =========================================================
   共通：28日(#schedule)／29日(#sch29) の基準幅
   ========================================================= */
#schedule, #sch29 { --schedule-max: min(98%, 1300px); }

/* =========================================================
   28日セクション  (#schedule)
   - .container(1140px)制限を回避して full-bleed
   - 中身は共通の基準幅で中央寄せ
   - 見出し(H2)も同幅で中央
   - 上の白帯対策：margin 折り畳みを停止
   ========================================================= */
#schedule {
  /* 上の白帯の原因になりやすい margin 折り畳みを止める */
  display: flow-root;
}
#schedule > *:first-child { margin-top: 0; }

/* 28日：中身の主要ブロックを基準幅で中央寄せ */
#schedule :is(.chipRow--imgTag, .venueRow, .scheduleTableBlock,
               .programFooter, .tableScroller) {
  width: var(--schedule-max);
  max-width: 100%;
  margin-inline: auto;
}

/* 28日：セクション見出し（「スケジュール詳細」）も本文と同幅で中央寄せ */
#schedule > h2.wp-block-heading,
#schedule > .wp-block-heading.section-title,
#schedule-title {
  width: var(--schedule-max);
  max-width: 100%;
  margin: 0 auto .6em;
  padding: 0;
}
/* テーマの装飾はオフ（下線など） */
#schedule > h2.wp-block-heading::before,
#schedule > h2.wp-block-heading::after { content: none !important; }

/* アンカー調整（固定ヘッダーがある場合） */
#schedule #schedule-day1,
#schedule #schedule-day2 { scroll-margin-top: 80px; }

/* =========================================================
   29日セクション  (#sch29)
   - full-bleed ＋ 中身は共通の基準幅で中央寄せ
   - 小見出し(H3相当)を「■＋青の下線」で統一
   - 2カラム等のレイアウト最小限
   ========================================================= 

/* ===== 共通の基準幅（28日/29日） ===== 　調整版チェック*/
:root{
  --sch-width: min(98%, 1300px);  /* 好みで 96–99% / 1200–1400px に調整可 */
  --accent:   #0B72D9;            /* 見出しの色（青） */
}

/* 画像は絶対にはみ出させない（28日/29日） */
#schedule img,
#sch29    img{
  display:block;
  max-width:100%;
  height:auto;
}

/* ========== 28日 (#schedule) ========== */
/* 中身の主要ブロックだけを同じ幅で中央寄せ */
#schedule :is(
  .chipRow--imgTag,
  .venueRow,
  .scheduleTableBlock,
  .programFooter,
  .tableScroller
){
  width: var(--sch-width);
  max-width: 100%;
  margin-inline: auto;
  box-sizing: border-box;
}

/* 28日の見出し(H2)を本文と同じ幅で中央寄せ（テーマ装飾は打消し） */
#schedule > h2.wp-block-heading{
  width: var(--sch-width);
  max-width: 100%;
  margin: clamp(16px,3vw,28px) auto clamp(12px,2.4vw,20px);
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
}
#schedule > h2.wp-block-heading::before,
#schedule > h2.wp-block-heading::after{
  content:none !important;
}

/* ========== 29日 (#sch29) ========== */
/* 中身の主要ブロックだけを同じ幅で中央寄せ（セクション本体は触らない） */
#sch29 :is(
  .chipRow,
  .chipRow--imgTag,
  .venueRow,
  .section-body,
  .wsGrid,
  .progList,
  .scheduleTableBlock,
  .programFooter,
  .tableScroller
){
  width: var(--sch-width);
  max-width: 100%;
  margin-inline: auto;
  box-sizing: border-box;
}

/* テーマ側の見出し装飾は #sch29 内だけオフ（勝手な下線などを防止） */
#sch29 :is(h1,h2,h3,h4,h5,h6,.wp-block-heading){
  border:0 !important;
  background:none !important;
  box-shadow:none !important;
  padding:0 !important;
}

/* テーマ側の見出し装飾は #sch29 内だけオフ（勝手な下線などを防止）□非表示対策用20250825 */
/* #sch29 内の見出し装飾は消すが、.venueRow__name だけは例外にする */
#sch29 :is(h1,h2,h3,h4,h5,h6,.wp-block-heading):not(.venueRow__name)::before,
#sch29 :is(h1,h2,h3,h4,h5,h6,.wp-block-heading):not(.venueRow__name)::after{
  content:none !important;
}

/* 29日の小見出し（H3相当）：■＋青の下線 */
#sch29 .venueRow{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  width: var(--sch-width);
  margin:10px auto 12px;
  padding-bottom:8px;
  border-bottom:3px solid var(--accent);
}
#sch29 .venueRow__name{
  margin:0;
  font-weight:700;
  font-size:clamp(18px,2.6vw,20px);
  display:inline-flex;
  align-items:center;
  gap:.45em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  min-width:0;
  flex:1 1 auto;
}
#sch29 .venueRow__time{
  margin:0;
  color:#414141;
  font-size:clamp(15px,2.6vw,18px);
  white-space:nowrap;
  flex:0 0 auto;
}
@media (max-width:480px){
  #sch29 .venueRow{ flex-direction:column; align-items:flex-start; gap:6px; }
  #sch29 .venueRow__time{ white-space:normal; }
}

/* 29日の2カラム（ワークショップ/セミナー）最小 */
#sch29 .wsGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
@media (max-width:760px){
  #sch29 .wsGrid{ grid-template-columns:1fr; }
}

/* 29日のカード（必要最低限・お好みで調整OK） */
#sch29 .progList{ display:grid; gap:16px; margin:12px 0 18px; }
#sch29 .progCard{
  display:grid;
  grid-template-columns:56px 1fr;
  column-gap:14px;
  row-gap:6px;
  padding:16px;
  background:#fff;
  border:1px solid var(--card-border, #c6c6c6);
  border-radius:5px;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
#sch29 .progCard__num{
  grid-row:1 / span 4;
  display:grid;
  place-items:center;
  width:56px; height:56px;
  background:#80b8f0;
  color:#fff;
  font-weight:800;
  font-size:22px;
  line-height:1;
  border-radius:50px;
}
#sch29 .progCard__title{
  margin:0 0 4px;
  padding-bottom:6px;
  font-weight:800;
  font-size:clamp(16px,2.2vw,18px);
  border-bottom:2px solid color-mix(in srgb, var(--accent) 25%, #000 0%);
}
#sch29 .progCard__row{ margin:0; font-size:clamp(14px,1.9vw,15px); color:#333; }
#sch29 .progLabel{ font-weight:700; color:#1b2733; margin-right:.35em; }
@media (max-width:720px){
  #sch29 .progCard{ grid-template-columns:48px 1fr; }
  #sch29 .progCard__num{ width:48px; height:48px; font-size:20px; }
}

/* ココまで　*/
/* ===== スケジュール 28日(#schedule) / 29日(#sch29) 安定化パッチ　幅・一崩れ20250825 ===== */
/* どちらも同じ“レール幅”で運用（好みで 96〜99% / 1200〜1400px に調整可） */
#schedule, #sch29 { --rail: min(98%, 1300px); display: flow-root; } /* margin折り畳み停止 */

/* 親テーマの .container など幅制限を中で無効化（迷子の元凶） */
#schedule .container, #schedule [class*="container"],
#sch29 .container,   #sch29   [class*="container"] {
  max-width: none !important;
  width: auto !important;
}

/* 直下の子は“全部”レール幅で中央寄せ（左右逃げを統一的に封じる） */
#schedule > :not(style), #sch29 > :not(style) {
  width: var(--rail);
  max-width: 100%;
  margin-inline: auto;
  box-sizing: border-box;
}

/* 画像のはみ出し防止（chipRow等を含む） */
#schedule img, #sch29 img { display:block; max-width:100%; height:auto; }

/* 28日の見出し（「スケジュール詳細」）を本文と同じ幅レールに乗せる */
#schedule > h2.wp-block-heading{
  width: var(--rail);
  max-width: 100%;
  margin: clamp(16px,2.8vw,28px) auto clamp(10px,2vw,18px);
  padding: 0;
  text-align: center;               /* 体裁だけ中央。装飾はテーマをオフ */
  border: 0 !important; box-shadow: none !important; background: none !important;
}
#schedule > h2.wp-block-heading::before,
#schedule > h2.wp-block-heading::after{ content:none !important; }

/* 29日の小見出し（■＋青の下線）は従来の指定を最小で維持 */
#sch29 .venueRow{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  width: var(--rail);               /* ←ここをレール幅に揃えるのがポイント */
  margin: 10px auto 12px; padding-bottom:8px;
  border-bottom:3px solid #0B72D9;
}
#sch29 .venueRow__name{
  margin:0; font-weight:700; font-size:clamp(18px,2.6vw,20px);
  display:inline-flex; align-items:center; gap:.45em; min-width:0;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex:1 1 auto;
}
#sch29 .venueRow__name::before{
  content:""; display:inline-block; width:.72em; height:.72em;
  background:#0B72D9; border-radius:2px; transform:translateY(.03em);
}
#sch29 .venueRow__time{ margin:0; color:#414141; font-size:clamp(15px,2.6vw,18px); white-space:nowrap; flex:0 0 auto; }
@media (max-width:480px){
  #sch29 .venueRow{ flex-direction:column; align-items:flex-start; gap:6px; }
  #sch29 .venueRow__time{ white-space:normal; }
}
/* 全大会だけ山吹色 20250825追加*/
#sch29 .venueRow--gold { border-bottom:3px solid #F6B145; }
#sch29 .venueRow--gold .venueRow__name::before{ background:#F6B145; }

/* 29日の 2 カラム（ワークショップ/セミナー）最小限 */
#sch29 .wsGrid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; width:var(--rail); margin-inline:auto; }
@media (max-width:760px){ #sch29 .wsGrid{ grid-template-columns:1fr; } }

/* テーマが h見出しに勝手な装飾を入れても #sch29 内では無効化 */
#sch29 :is(h1,h2,h3,h4,h5,h6,.wp-block-heading){
  border:0 !important; background:none !important; box-shadow:none !important; padding:0 !important;
}

/* 実践発表カードは既存の見た目を維持（必要最小限のまま） */
#sch29 .progList { display:grid; gap:16px; margin:12px 0 18px; width:var(--rail); margin-inline:auto; }

/* 28日・29日：677px以下のみ2行にして行間を詰める（影響最小） 20250904*/
/* モバイル時：スケジュール見出し行だけ左寄せ＆2行化（超限定） */
/* 900px以下：見出し行（■タイトル＋時間）だけ2行＆左寄せ。親は触らない */
/* ← このH2をセンター固定（テーマのフォントサイズは触らない） */
#schedule-title,
.section.schedule > :is(h1,h2,.wp-block-heading) {
  text-align: center !important;
}

/* 900px以下：見出し行（■タイトル＋時間）だけ左寄せ＆2行化 */
@media (max-width: 900px) {
  .section.schedule > .venueRow {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 2px !important;
    margin-bottom: 4px !important;
    padding-bottom: 4px !important;
  }
  .section.schedule > .venueRow .venueRow__name {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    white-space: normal !important;  /* 重なり防止 */
    text-align: left !important;
    margin: 0 !important;
  }
  .section.schedule > .venueRow .venueRow__time {
    order: 2 !important;             /* 2行目へ */
    flex: 0 0 100% !important;       /* 改行確定 */
    white-space: normal !important;
    line-height: 1.2 !important;
    text-align: left !important;
    margin: 0 !important;
  }
}

/* iOSの自動文字拡大はページ全体で抑制（サイズバラつき防止） */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

/* =========================================================
   迷子・幅ズレ対策（#sch29 と 見出しだけを局所修正）
   ========================================================= */
/* 祖先/子孫にある .container 系の上限を #sch29 内だけ無効化 */
#sch29 .container,
#sch29 [class*="container"]{
  max-width: none !important;
  width: auto !important;
}

/* 2) #sch29 の直下の子は “同じレール幅” で中央寄せ（逃げ止め） */
#sch29 > :not(style){
  width: var(--rail) !important;
  max-width: 100% !important;
  margin-inline: auto !important;
  box-sizing: border-box;
}

/* 3) 画像ははみ出さないように */
#sch29 img{ display:block; max-width:100%; height:auto; }

/* 4) 「スケジュール詳細」の H2 を確実に“レール幅＆中央寄せ” */
#schedule > h2.wp-block-heading,
.schedule  > h2.wp-block-heading{
  width: var(--rail) !important;
  max-width: 100% !important;
  margin: clamp(16px,3vw,28px) auto clamp(12px,2.4vw,20px) !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: none !important;
  text-align: center;           /* ← 中央に固定 */
  display: block;
}

/* 5) 念のため：見出しの変な装飾をテーマ側から無効化（局所） */
#schedule > h2.wp-block-heading::before,
#schedule > h2.wp-block-heading::after,
.schedule  > h2.wp-block-heading::before,
.schedule  > h2.wp-block-heading::after{
  content: none !important;
}

/* 脱出したうえで“中身”は 28日と同じ基準幅で中央寄せ */
#sch29 > :not(style){
  width: min(98%, 1300px) !important;
  max-width: 100% !important;
  margin-inline: auto !important;
  box-sizing: border-box;
}

/* テーマ由来の .container が中に入っていても無効化 */
#sch29 .container,
#sch29 [class*="container"]{
  max-width: none !important;
  width: auto !important;
}

/* 画像は枠内で100%（はみ出し防止） */
#sch29 img{ display:block; max-width:100%; height:auto; }


/* #sch29 を含むときだけ、親の 1140px キャップを解除 さらに追加*/
.site-body-container.container:has(#sch29) {
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  overflow: visible !important;  /* 念のため切られ防止 */
}

/* そのうえで、#sch29 の“中身”は共通幅で中央寄せ */
#sch29 > :not(style){
  width: min(98%, 1300px) !important;
  max-width: 100% !important;
  margin-inline: auto !important;
  box-sizing: border-box;
}

/* 画像のはみ出し防止（保険） */
#sch29 img{ display:block; max-width:100%; height:auto; }


/* 29日セクションの最大幅を1300pxで固定しつつ中央寄せ また追加*/
#sch29 {
  max-width: 1300px;       /* 好きな上限に変更可 */
  margin-left: auto;
  margin-right: auto;
  width: 100%;             /* 画面幅には合わせる */
  box-sizing: border-box;
}

/* 29日セクションを max-width で中央寄せ（シンプル版）削除してからの追加*/
#sch29 {
  max-width: 1300px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
#sch29 > * {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

/* #sch29 内の見出し装飾は消すが、.venueRow__name だけは例外にする ■非表示対応　20250825*/
#sch29 :is(h1,h2,h3,h4,h5,h6,.wp-block-heading):not(.venueRow__name)::before,
#sch29 :is(h1,h2,h3,h4,h5,h6,.wp-block-heading):not(.venueRow__name)::after{
  content:none !important;
}

/* =========================================================
   #sch29 クリーン版（29日だけに効く最終整理）
   - 見出し ■＋下線
   - 実践発表カード：中央／幅／番号バッジ／A/B縦／司会・記録2カラム
   - 全大会：山吹色・番号リストの字下げ
   - WS/セミナー：本文の字下げを全大会と揃える
   ========================================================= */

#sch29{
  /* --- 調整ノブ（数値を変えるだけで微調整OK） --- */
  --rail:        min(98%, 1300px);  /* セクション内の基準幅 */
  --card-width:  min(94%, 1200px);  /* 実践発表カードの最大幅（中央の箱） */
  --ol-indent:   3em;               /* 全大会の「1. 2. 」本文の字下げ */
  --ws-indent:   1.2em;                 /* WS/セミナー本文の字下げ（全大会と揃える） */
  --accent:      #0B72D9;           /* 青（小見出し線・装飾） */
  --gold:        #F6B145;           /* 全大会の山吹 */
  --badge:       #80b8f0;           /* バッジの水色 */
  --card-border: #c6c6c6;           /* カード枠の色 */
}

/* 画像のはみ出し防止＆各ブロックは基準幅に */
#sch29 img{ display:block; max-width:100%; height:auto; }
#sch29 :is(.chipRow,.chipRow--imgTag,.venueRow,.section-body,
           .wsGrid,.progList,.scheduleTableBlock,.programFooter,.tableScroller){
  width: var(--rail); max-width:100%; margin-inline:auto; box-sizing:border-box;
}

/* テーマ側の見出し装飾を #sch29 内だけOFF（venueRow__nameの■は残す） */
#sch29 :is(h1,h2,h3,h4,h5,h6,.wp-block-heading):not(.venueRow__name)::before,
#sch29 :is(h1,h2,h3,h4,h5,h6,.wp-block-heading):not(.venueRow__name)::after{
  content:none !important;
}

/* ===== 小見出し（■＋下線） ===== */
#sch29 .venueRow{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  margin:10px auto 12px; padding-bottom:8px; border-bottom:3px solid var(--accent);
}
#sch29 .venueRow__name{
  margin:0; font-weight:700; font-size:clamp(18px,2.6vw,20px);
  display:inline-flex; align-items:center; gap:.45em; min-width:0;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex:1 1 auto;
}
#sch29 .venueRow__name::before{
  content:""; width:.72em; height:.72em; background:var(--accent);
  display:inline-block; border-radius:2px; transform:translateY(.03em);
}
#sch29 .venueRow__time{ margin:0; color:#414141; font-size:clamp(15px,2.6vw,18px); white-space:nowrap; }
@media (max-width:480px){
  #sch29 .venueRow{ flex-direction:column; align-items:flex-start; gap:6px; }
  #sch29 .venueRow__time{ white-space:normal; }
}

/* ===== 全大会（山吹）＋番号リスト強調 ===== */
#sch29 .venueRow--gold{ border-bottom-color:var(--gold); }
#sch29 .venueRow--gold .venueRow__name::before{ background:var(--gold); }
#sch29 .venueRow--gold + .section-body ol{
  font-size:clamp(16px,2.2vw,18px); font-weight:700; line-height:1.75;
  padding-inline-start: var(--ol-indent); margin: 0;
  list-style-position: outside;
}

/* ===== 実践発表カード ===== */
/* リストは中央寄せ、カードは可変幅（--card-width）で中央 */
#sch29 .progList{
  display:grid; gap:16px; margin:12px 0 18px;
  width: var(--rail); margin-inline:auto;
}
#sch29 .progCard{
  width: var(--card-width);
  margin-inline:auto;
  display:grid; grid-template-columns:56px 1fr; column-gap:14px; row-gap:6px;
  padding:16px; background:#fff; border:1px solid var(--card-border);
  border-radius:5px; box-shadow:0 2px 8px rgba(0,0,0,.04);
}

/* バッジ（数字を白で表示） */
#sch29 .progCard__num{
  grid-row:1 / span 4; display:grid; place-items:center;
  width:56px; height:56px; background:var(--badge); border-radius:50px; color:#fff; font-weight:800; font-size:22px; line-height:1;
}

/* タイトル下の仕切り */
#sch29 .progCard__title{
  margin:0 0 4px; padding-bottom:6px; font-weight:800; font-size:clamp(16px,2.2vw,18px);
  border-bottom:2px solid color-mix(in srgb, var(--accent) 25%, #000 0%);
}
#sch29 .progCard__row{ margin:0; font-size:clamp(15px,2.0vw,16.5px); line-height:1.9; color:#333; }
#sch29 .progLabel{ font-weight:700; color:#1b2733; margin-right:.35em; }

/* 司会・記録：2カラム。幅が狭い時は自動で1カラム */
#sch29 .progPairRow{
  grid-column: 2;
  display:grid; grid-template-columns: minmax(280px,1fr) minmax(280px,1fr);
  column-gap:24px; row-gap:6px; align-items:start; margin-top:12px;
}
#sch29 .progPairRow .kv{ display:flex; flex-wrap:wrap; gap:.35em; align-items:baseline; }
#sch29 .progPairRow .progLabel{ white-space:nowrap; }
@media (max-width:760px){ #sch29 .progPairRow{ grid-template-columns:1fr; } }

/* ===== ワークショップ・セミナー ===== */
#sch29 .wsGrid{
  display:grid; grid-template-columns:1fr; gap:16px;
  width: var(--rail); margin-inline:auto; padding-left: var(--ws-indent);
}
#sch29 .wsGrid > div > h4{
  margin:6px 0 8px; font-size:clamp(16px,2.2vw,18px); font-weight:800;
  border-bottom:2px solid color-mix(in srgb, var(--accent) 25%, #000 0%); padding-bottom:6px;
}
#sch29 .wsGrid > div{ font-size:clamp(15px,2.0vw,16.5px); line-height:1.8; }
#sch29 .wsGrid > div .meta{ margin:0 0 6px; font-weight:600; }/* カラー変更555→333へ20250903 */
#sch29 .wsGrid > div .meta__title{ margin:6px 0 6px; font-weight:600; }/* 追加_20250903 */
#sch29 .wsGrid > div > p{ color:#333; margin-bottom:6px !important;}/* margin-bottomを消す 20250903 */

/* セクション間の余白：PC */
#sch29 .venueRow {
  margin-top: 40px;
}

/* スマホは余白を縮める */
@media (max-width: 768px) {
  #sch29 .venueRow {
    margin-top: 24px; /* ← スマホだけ少なめに */
  }
  #sch29 .progList {
    gap: 16px; /* カード間の余白も少し控えめに */
    margin-bottom: 24px;
  }
  #sch29 .venueRow + .section-body {
    margin-top: 12px; /* 見出しとの間のゆとりも少なめ */
  }
}

/* 参加申し込みボタンの下に余白を追加（親コンテナに適用） */
.cta-row.cta-row--tight {
  display: block;
  text-align: center;
  margin-bottom: 65px;   /* PC用 */
}

@media (max-width: 768px) {
  .cta-row.cta-row--tight {
    margin-bottom: 28px; /* スマホ用は控えめに */
  }
}

/* 20250829　区切り線　はみ出し対応　ココから */
/* 右カラムを「押されて広がらない」ようにする（常時） */
#sch29 .progCard{
  /* 既存: grid-template-columns:56px 1fr; の置換 */
  grid-template-columns: 56px minmax(0,1fr);
  overflow: clip; /* サブピクセルで1px出ても見せない */
}
@supports not (overflow: clip){
  #sch29 .progCard{ overflow: hidden; }
}

/* 子要素側でも縮小を許可（保険） */
#sch29 .progCard > *{ min-width: 0; }
#sch29 .progCard__row,
#sch29 .progPairRow{ min-width: 0; }

/* 区切り線は「右カラム内に100%」で固定 */
#sch29 .progCard hr.progDivider{
  grid-column: 2;
  width: 100%;
  max-width: 100%;
  margin: 12px 0 8px;
  height: 1px;
  border: 0;
  background: #e4e4e4;
}

/* 英数長文でも自然に折り返す（念のため） */
#sch29 .progValue{ overflow-wrap: anywhere; word-break: break-word; }

/* 20250829　ココまで */

/* =========================
   幅と中央寄せの“単一ソース” 20250826 

   28日(#schedule) と 29日(#sch29) を完全同一ルールに
   ========================= */
:root{
  --rail-pct: 98%;          /* パーセント運用（お好みで 92–98%）20250829 */
  --rail-max: 1300px;       /* 上限px（お好みで 1200–1400） */
  --rail:     min(var(--rail-pct), var(--rail-max));
}

/* 親テーマの .container キャップ解除（この2セクションを含むページだけ） */
.site-body-container.container:has(#schedule),
.site-body-container.container:has(#sch29){
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* セクション直下の子は“同じレール幅”で中央寄せ（ズレの元を一括封じ） */
#schedule > :not(style),
#sch29   > :not(style){
  width: var(--rail) !important;
  max-width: 100% !important;
  margin-inline: auto !important;
  box-sizing: border-box;
}

/* 画像はみ出し防止（両セクション共通） */
#schedule img,
#sch29    img{
  display:block; max-width:100%; height:auto;
}

/* 28日の見出し(H2)も本文と同じレールに乗せる（下線装飾は無効） */
#schedule > h2.wp-block-heading{
  width: var(--rail) !important;
  max-width: 100% !important;
  margin: clamp(16px,3vw,28px) auto clamp(12px,2.4vw,20px) !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
  text-align: center;
}
#schedule > h2.wp-block-heading::before,
#schedule > h2.wp-block-heading::after{ content:none !important; }

/* ========== Chrome 対策（ヒーロー＆謎“MENU”）========== */
/* ヒーロー帯の full-bleed を安全に（Chromeでの水平ズレ予防） */
.hero-band.alignfull{
  margin-left:  calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  max-width: 100vw !important;
  width: 100vw !important;
  overflow-x: clip; /* Chromeのサブピクセルはみ出し保険 */
}

/* コンテンツ末尾に出る“MENU”の誤表示を封じる（モバイルドロワー本体はJSで開く時だけ見せる） */
.entry-content > .vk-mobile-nav,
.entry-content > nav.wp-block-navigation{
  display: none !important;   /* もし本文末に出現しても非表示 */
}
/* テーマ側が開いたときだけ表示（クラス名は Lightning の想定） */
.vk-mobile-nav.is-show,
body.vk-mobile-nav-open .vk-mobile-nav{
  display:block !important;
}

/* ココまで */
/* === sch29 幅＆中央寄せを28日と完全一致させる最終パッチ === 20250829*/
#sch29{ --rail: min(98%, 1300px) !important; max-width: none !important; }

#sch29 :is(.chipRow, .chipRow--imgTag, .venueRow, .section-body,
           .wsGrid, .progList, .scheduleTableBlock, .programFooter, .tableScroller){
  width: var(--rail) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 100% !important;
}

/* 左寄せを強制していた古い指定を無力化 */
#sch29 :is(.progList, .section-body, .wsGrid){
  margin-left: auto !important;
  margin-right: auto !important;
}

/* 20250826 幅問題、ココまで */
/* 20250826 フォームの送信ボタン関連 */
#entry-form .wpcf7-response-output{
  margin: 10px auto 0 !important;
  width: min(92%, 680px);
  text-align: center;
  border-radius: 10px;
  border-width: 2px;
  padding: 12px 14px;
  line-height: 1.6;
}

/* --- アンカーリンクの対応 ---20250829ココから */
/* 1) アンカーのスクロールを滑らかに（全体） */
html { scroll-behavior: smooth; }

/* 2) 見出しやセクションなど id を持つ要素に、ヘッダーぶんのマージンを確保 */
:root { --anchor-offset: 76px; } /* ←スマホ時のヘッダー高さに合わせて調整 */
[id] { scroll-margin-top: var(--anchor-offset); }

/* --- 20250829ココまで */
/* === CF7用トーストモーダル ============================== */
#cf7-toast{ position:fixed; inset:0; display:none; z-index:10060; }
#cf7-toast.is-open{ display:block; }

#cf7-toast .toast__backdrop{
  position:absolute; inset:0; background:rgba(0,0,0,.25);
}

#cf7-toast .toast__title{
  display:block; font-weight:800; margin:0 0 6px; font-size:18px;
}
#cf7-toast .toast__msg{ font-size:15px; line-height:1.7; }
#cf7-toast .toast__list{ margin:.4em 0 0 1.2em; }

#cf7-toast .toast__close{
  position:absolute; right:10px; top:8px;
  border:0; background:transparent; font-size:20px; line-height:1; cursor:pointer;
  color:#667085;
}

/* 種別色（上辺ボーダーで区別） */
#cf7-toast.type-success .toast__panel{ border-top:4px solid #16a34a; }
#cf7-toast.type-error   .toast__panel{ border-top:4px solid #e11d48; }
#cf7-toast.type-warning .toast__panel{ border-top:4px solid #f59e0b; }
#cf7-toast.type-info    .toast__panel{ border-top:4px solid #3b82f6; }

@media (max-width:560px){
  #cf7-toast .toast__panel{ top:10%; padding:14px 14px 12px; }
  #cf7-toast .toast__title{ font-size:16px; }
  #cf7-toast .toast__msg{ font-size:14px; }
}

/* === CF7 トースト（中央配置） ===================== */
#cf7-toast{ 
  position: fixed; inset: 0; z-index: 9999; pointer-events: none; 
  opacity: 0; transition: opacity .2s ease;
}
#cf7-toast.is-open{ opacity: 1; pointer-events: auto; }

/* 背景 */
#cf7-toast .toast__backdrop{
  position: absolute; inset: 0; background: rgba(0,0,0,.35);
}

/* パネル（中央） */
#cf7-toast .toast__panel{
  position: absolute; left: 50%; top: 30%;
  transform: translate(-50%, -50%);
  min-width: clamp(280px, 60vw, 560px);
  max-width: 90vw;
  background: #fff; border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.2);
  padding: 18px 20px 16px;
}
/* 高さが低い端末は中央に */
@media (max-height: 700px){
  #cf7-toast .toast__panel{ top: 50%; }
}

/* 見出し・本文・閉じる */
#cf7-toast .toast__title{ display:block; font-weight:700; font-size: 1.1rem; margin-bottom:.25em; }
#cf7-toast .toast__msg{ line-height:1.7; }
#cf7-toast .toast__list{ margin:.5em 0 0 1.2em; }
#cf7-toast .toast__close{
  position:absolute; right:10px; top:8px; border:none; background:transparent;
  font-size:20px; line-height:1; cursor:pointer;
}

/* 状態色（必要なら少し色づけ） */
#cf7-toast.type-error   .toast__title{ color:#c62828; }
#cf7-toast.type-success .toast__title{ color:#1b5e20; }
#cf7-toast.type-warning .toast__title{ color:#ef6c00; }

/* 20250826 フォームの送信ボタン関連 ココまで　*/
/* CF7 フォーカス時の一時ハイライト 20250827　ココから*/
.cf7-focus-ring{
  outline: 2px solid rgba(255, 25, 0, 0.6) !important;
  box-shadow: 0 0 0 4px rgba(255,80,0,.15) !important;
}

/* 20250828 thanksページ関連 ココから　*/
/* ==== Thanks ページ（シンプル仕上げ） ==== */
/* 中央寄せを強制（親が grid/flex でも真ん中へ）*/
.is-thanks-page .thanks-hero,
.is-thanks-page .thanks-faq,
.is-thanks-page .thanks-contact {
  max-width: 800px;
  width: min(800px, calc(100% - 40px)); /* 画面が狭い時は左右20px余白 */
  margin: 40px auto;                    /* 中央寄せ＋上下余白 */
  box-sizing: border-box;
  place-self: center;
  justify-self: center;
}

/* ヒーロー */
.is-thanks-page .thanks-hero{
  padding: clamp(20px, 4vw, 36px);
  background: #fff;
  border: 1px solid #eee;
  border-radius: 12px;
  box-shadow: 0 6px 24px rgba(0,0,0,.06);
  text-align: center;
}
.is-thanks-page .thanks-hero h1{ margin:0 0 8px; font-size: clamp(22px,3vw,30px); }
.is-thanks-page .thanks-hero p { margin:0; color:#444; }

/* FAQ（使うときだけ） */
.is-thanks-page .thanks-faq{
  padding: 18px 20px;
  background: #f9f9f9;
  border: 2px solid #e0e0e0;
  border-radius: 10px;
}
.is-thanks-page .thanks-faq h2{ margin-top:0; font-size: clamp(18px,2.4vw,24px); }
.is-thanks-page .thanks-faq ul{ margin:0; padding-left:1.4em; line-height:1.7; }

/* 問い合わせボタン（共通化しない） */
.is-thanks-page .thanks-contact{ text-align:center; }
.is-thanks-page .thanks-contact .wp-block-button__link{
  display:inline-block;
  padding:12px 22px;
  min-width:160px;
  border-radius:999px;
  background:#007CBD;
  color:#fff;
  font-weight:600;
  text-decoration:none;
  transition:background .2s;
}
.is-thanks-page .thanks-contact .wp-block-button__link:hover{
  background:#005f99;
  color:#fff;
}

/* 強制センター（親が grid / flex / padding 持ちでも中央に） */
.is-thanks-page .thanks-hero,
.is-thanks-page .thanks-faq,
.is-thanks-page .thanks-contact{
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 800px;
  width: min(800px, calc(100% - 40px)); /* 画面小のとき左右20pxマージン */
  box-sizing: border-box;
}

/* ===== Thanks ページだけ、コンテンツの土台をフル幅＆中央にする ===== */

/* テーマのレイアウト（グリッド/左右ガター）の影響を切る */
.is-thanks-page .site-body-container,
.is-thanks-page .site-body {
  display: block !important; /* Lightning の grid をやめて 1 カラム化 */
}

/* 本文の“器”をフル幅に伸ばす（余白は内側のボックスで管理） */
.is-thanks-page .main-section,
.is-thanks-page .entry,
.is-thanks-page .entry-body {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
  width: 100% !important;
}

/* ここから下はボタン中央寄せ（既に入れていなければ追加） */
.is-thanks-page .thanks-contact .wp-block-buttons {
  justify-content: center;
  gap: 12px;
}

/*区切り線/フッター罫（消えるかも）*/
.is-thanks-page .entry-body,
.is-thanks-page .main-section {
  border-bottom: none !important;
}

/* Thanks ページだけ、Lightningの container をフル幅にする */
.is-thanks-page .container,
.is-thanks-page .container-sm,
.is-thanks-page .container-md,
.is-thanks-page .container-lg,
.is-thanks-page .container-xl,
.is-thanks-page .site-body-container,
.is-thanks-page .site-body,
.is-thanks-page .main-section,
.is-thanks-page .entry,
.is-thanks-page .entry-body {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* 中央寄せは margin: auto で誤差ゼロ */
.is-thanks-page .thanks-hero,
.is-thanks-page .thanks-faq,
.is-thanks-page .thanks-contact {
  max-width: 800px;
  width: min(800px, calc(100% - 40px)); /* 狭い画面で左右 20px 余白 */
  margin: 40px auto;                    /* ど真ん中 */
  box-sizing: border-box;

  /* 以前の left:50%+transform を無効化しておく */
  left: auto !important;
  transform: none !important;
}

/* ヒーローの見た目 */
.is-thanks-page .thanks-hero{
  padding: clamp(20px, 4vw, 36px);
  background: #fff;
  border: 1px solid #eee;
  border-radius: 12px;
  box-shadow: 0 6px 24px rgba(0,0,0,.06);
  text-align: center;
}

/* FAQ の見た目（必要なときだけ） */
.is-thanks-page .thanks-faq{
  padding: 18px 20px;
  background: #f9f9f9;
  border: 2px solid #e0e0e0;
  border-radius: 10px;
}

/* ボタン（そのページ専用の .thanks-contact 内だけ） */
.is-thanks-page .thanks-contact{ text-align: center; }
.is-thanks-page .thanks-contact .wp-block-button__link{
  display: inline-block;
  padding: 12px 22px;
  min-width: 160px;
  border-radius: 999px;
  background: #007CBD;
  color: #fff; font-weight: 600; text-decoration: none;
  transition: background .2s;
}
.is-thanks-page .thanks-contact .wp-block-button__link:hover{
  background: #005f99; color: #fff;
}

/* お問い合わせ Thanks：FAQ を左寄せ＆行頭の「・」削除 20250901*/
.is-thanks-page .thanks-faq{
  text-align: left !important;
}
.is-thanks-page .thanks-faq ul{
  list-style: none;     /* 行頭の・を消す */
  padding-left: 0;      /* 左のインデントも詰める */
  margin: 0;
}
.is-thanks-page .thanks-faq li{
  margin: 0 0 .9em;     /* 項目の間隔だけ整える */
  line-height: 1.8;
}

/* ===== お問い合わせページ レイアウト 20250901===== */
.contact-wrap{
  max-width: 1100px;
  margin: 0 auto;
  padding: clamp(16px, 4%, 32px);
  box-sizing: border-box;
}

/* タイトル & リード */
.contact-wrap .page-title{ margin: 0 0 .4em; font-size: 1.4rem; }
.contact-wrap .page-lead{ margin: 0 0 1.8em; color: #444; font-size: 1.1rem; }

/* FAQイントロ（任意） */
.contact-wrap .faq-intro{
  padding: 14px 16px; margin: 0 0 24px;
  background: #f7f9fc; border: 1px solid #e6ecf5; border-radius: 8px;
}
.contact-wrap .faq-title{ margin: 0 0 .6em; font-size: clamp(18px,2.2vw,22px); }
.contact-wrap .faq-list{ margin: 0; padding-left: 1.2em; line-height: 1.8; }
.contact-wrap .faq-list li{ margin: 0 0 .6em; }

/* 2カラムのテーブルレイアウト（申込フォームと同トーン） */
.contact-wrap .info-table{
  width: 100%; border-collapse: separate; border-spacing: 0 12px;
}
.contact-wrap .info-table .col-left{ width: 28%; }
.contact-wrap .info-table .col-right{ width: 72%; }
@media (max-width: 768px){
  .contact-wrap .info-table .col-left{ width: 36%; }
  .contact-wrap .info-table .col-right{ width: 64%; }
}
.contact-wrap .info-table th,
.contact-wrap .info-table td{
  vertical-align: top; text-align: left;
}
.contact-wrap .info-table th{
  padding: 10px 12px 0 0; white-space: nowrap;
}
.contact-wrap .th-main{ font-weight: 700; }

/* フォーム部品（最低限） */
.contact-wrap input[type="text"],
.contact-wrap input[type="email"],
.contact-wrap textarea,
.contact-wrap select{
  width: 100%; box-sizing: border-box;
  padding: 10px 12px; border: 1px solid #d9d9d9; border-radius: 4px;
}
.contact-wrap textarea{ min-height: 160px; }
.contact-wrap .agree{ padding-top: 8px; }
.contact-wrap .submit{ text-align: center; padding-top: 12px; }
.contact-wrap input[type="submit"]{
  display:inline-block; padding: 10px 22px; min-width: 180px;
  border: 0; border-radius: 999px; background:#007CBD; color:#fff; font-weight:700; cursor:pointer;
}
.contact-wrap input[type="submit"]:hover{ background:#005f99; }

/* CF7のエラーメッセージの整え */
.contact-wrap .wpcf7-not-valid-tip{ color:#c0392b; font-size:.9em; margin-top:.3em; }
.contact-wrap .wpcf7 form.invalid .wpcf7-response-output{
  border-color:#c0392b; color:#c0392b;
}
.contact-wrap .wpcf7 form.sent .wpcf7-response-output{
  border-color:#2e7d32; color:#2e7d32;
}
/* --- 20250901ココまで */

/* --- CF7トースト：閉じてる時は完全に消す（クリック遮らない） ---20250828ココから */
#cf7-toast:not(.is-open) {
  display: none !important;
  pointer-events: none !important;
  opacity: 0 !important;
}
#cf7-toast.is-open {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 9999;
}

/* 念のため：ヘッダーを最前面に */
#custom-site-header.custom-header {
  position: relative;
  z-index: 1000;
}

/* モバイルのオーバーレイが常時クリックを奪う場合の保険（テーマによりクラス名が違う） */
.vk-mobile-nav-overlay:not(.is-active),
.lightning-mobile-drawer-overlay:not(.is-active),
.drawer-overlay:not(.is-active) {
  pointer-events: none !important;
  opacity: 0 !important;
}

/* =========================
   Tablet pack (<=1024px)
   2025-08-31 all-in-one
   ※必ずCSSの最下部に置く！
========================= */
@media (max-width: 1024px){

  /* H2：全セクション共通（インライン対策で !important） */
  h2{
    font-size: clamp(18px, 3.2vw, 20px) !important;
    line-height: 1.35 !important;
    margin-bottom: .6em !important;
  }
}

/* =========================================
   768px以下：H2 / ご挨拶リード / 大会概要 / 29日カード
   2025-08-31 最終まとめ
   既存のインラインstyleや強い指定を上書きするため!important使用
========================================= */
@media (max-width: 768px){

  /* --- H2：全セクション共通 --- */
  .entry-content h2,
  .site-main h2,
  .content-area h2,
  h2.wp-block-heading,
  h2[class*="vk-heading"],
  h2.is-style-vk-heading-plain,
  h2.has-text-align-center,
  .section :is(h2, .section-title) {
    font-size: clamp(16px, 4.5vw, 18px) !important;
    line-height: 1.35 !important;
    margin-bottom: .6em !important;
  }

  /* --- ご挨拶リード文（太字部分） --- */
  .greeting .lead {
    font-size: clamp(14px, 3.5vw, 16px) !important;
    line-height: 1.6 !important;          /* 行間も少し詰める */
    font-weight: 700 !important;
    letter-spacing: .02em;
    text-align: left;
    margin-bottom: 1em !important;
  }

  /* --- 大会概要：本文・リスト --- */
  #overview p,
  #overview li,
  #overview dt,
  #overview dd {
    font-size: clamp(13px, 3.2vw, 15px) !important;
    line-height: 1.6 !important;
  }

  /* 大会概要：■リスト折返し対策 */
  #overview .dotList li,
  #overview .dotList p {
    display: flex;
    gap: 0.6em;
    align-items: flex-start;
    margin: 0.25em 0;
  }
  #overview .dotList li::before,
  #overview .dotList p::before {
    content: "■";
    flex: 0 0 1em;
    line-height: 1.6;
  }
  /* --- 29日カード：数字とテキストの幅調整 --- 追加20250831*/
  #sch29 .progCard {
    column-gap: 0.1em !important;
  }

  /* --- 29日カード：ラベル／値＋行全体 --- 追加20250831*/
  #sch29 .progCard .progPairRow .progLabel,
  #sch29 .progCard .progPairRow .progValue,
  #sch29 .progCard__row {     /* ← これを追加 */
    font-size: clamp(12px, 3.2vw, 14px) !important;
    line-height: 1.6 !important;
  }

  /* --- 29日カード：NOを小さく --- 追加20250831*/
    #sch29 .progCard__num {
    width: 42px !important;       /* 幅を小さく */
    height: 42px !important;      /* 高さも合わせる */
    font-size: 18px !important;   /* 数字を小さめに */
    line-height: 1 !important;    /* 行間は1で中央に */
  }
}

/* モバイル/タブレットで最下段だけ余白ゼロに 20250831*/
@media (max-width: 991.98px){
  /* 最後の main-section */
  .main-section:last-child { margin-bottom: 0 !important; }

  /* Gutenbergの最下段グループ（band/Group/Constrained系も念のため） */
  .entry-content > *:last-child,
  .wp-block-group.is-layout-constrained:last-child,
  .band:last-child { margin-bottom: 0 !important; padding-bottom: 0 !important; }

  /* コンテンツ側の底上げがある場合に備えて */
  #content.site-content,
  .site-content { padding-bottom: 0 !important; }

  /* フッター側にマージンがあるテーマもあるので保険 */
  .site-footer { margin-top: 0 !important; }
}

/* 固定ページだけ中央寄せ（トップ/homeは除外）20250901※固定ページ表示のエラー対応・フロントページへの影響は少なく */
.page:not(.home) .siteContent,
.page:not(.home) .l-container,
.page:not(.home) .container,
.page:not(.home) .vk_container,
.page:not(.home) .entry-content {
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
  max-width: 1100px;
}

/* full-bleed系が残っていても固定ページでは無効化（トップは除外） */
.page:not(.home) [style*="calc(50% - var(--svw)/2)"],
.page:not(.home) [style*="var(--svw)"] {
  margin-left: auto !important;
  margin-right: auto !important;
  width: auto !important;
}

/* セクション個別（例: #sch29）も固定ページでは通常幅に戻す */
.page:not(.home) #sch29,
.page:not(.home) [data-fullbleed] {
  margin-left: auto !important;
  margin-right: auto !important;
  width: auto !important;
}

/* ===== お問い合わせページ（.contact-wrap があるページだけ）を中央化 20250901===== */

/* 1) 親のズレをリセット（:has 対応ブラウザ向け） */
body.page:has(.contact-wrap) .site-body-container,
body.page:has(.contact-wrap) .site-body,
body.page:has(.contact-wrap) main#content {
  position: static !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 2) 本文ラッパーをど真ん中に */
body.page:has(.contact-wrap) .contact-wrap{
  max-width: 1100px;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: clamp(16px, 4%, 32px);
  float: none !important;
  box-sizing: border-box;
}

/* 3) テーブルは横いっぱい使う */
body.page:has(.contact-wrap) .info-table{ width:100%; }

/* 4) 念のため：区切り線の影響をカット（ページ下の細線対策） */
body.page:has(.contact-wrap) .entry,
body.page:has(.contact-wrap) .entry-body,
body.page:has(.contact-wrap) .main-section{
  border: 0 !important;
  box-shadow: none !important;
}

/* :has() 非対応ブラウザ向けの保険 */
.contact-wrap{
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: min(1100px, calc(100% - 40px)); /* 狭い画面で左右20px余白 */
  margin: 0 auto; /* こちらも保険 */
}

/* ===== .page-center を置いた固定ページだけ中央固定（2025-09-01） ===== */

/* 親コンテナのクセをリセット（.page-center があるページだけ） */
body.page:has(.page-center) :where(
  .site-body-container,.site-body,.main-section,.entry,.entry-body,
  .container,.container-sm,.container-md,.container-lg,.container-xl,
  .vk_container,.l-container, main#content
){
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  left: auto !important; right: auto !important; transform: none !important;

  display: block !important;
  justify-content: initial !important;
  align-items: initial !important;
  place-content: initial !important;
  place-items: initial !important;
  text-align: initial !important;
}

/* 器：どんな親でもど真ん中固定（margin:auto方式）＋上余白 */
.page-center{
  width: min(1100px, calc(100% - 40px));
  box-sizing: border-box;
  text-align: left !important;

  margin-left: auto !important;
  margin-right: auto !important;
  left: auto !important;
  transform: none !important;

  margin-top: clamp(24px, 4vw, 48px) !important; /* ヘッダーに隠れない余白 */
  float: none !important; clear: both !important;
}

/* page-center 自体に alignwide/alignfull が付いてもはみ出さない */
.page-center.alignwide,
.page-center.alignfull{
  max-width: min(1100px, calc(100% - 40px)) !important;
  width: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  left: auto !important;
  transform: none !important;
}

/* Gutenberg の constrained が作る左右 auto を無効化（微ズレ防止） */
.page-center.is-layout-constrained > *,
.page-center.wp-block-group-is-layout-constrained > *{
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* no-pad：内外の左右余白を完全ゼロ（案内ボックスとフォームのライン合わせ） */
.page-center .no-pad,
.page-center .no-pad > .wp-block-group__inner-container{
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: none !important;
}

/* 幅広/全幅ブロックのはみ出し保険（このページだけ） */
.page-center .alignwide,
.page-center .alignfull{
  max-width: 100% !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  left: auto !important; right: auto !important; transform: none !important;
}

/* CF7 の器は幅100%で受ける（保険） */
.page-center .wpcf7,
.page-center .wpcf7 form{
  max-width: 100% !important;
  width: 100% !important;
}

/* === WPの“コンテンツ左右パディング”を page-center 内だけ無効化 追加分20250901 === */
.page-center{
  /* Gutenberg が is-layout-constrained に参照する左右の root 余白を0に */
  --wp--style--root--padding-left: 0px;
  --wp--style--root--padding-right: 0px;
}

/* グループ（上の箱など）に自動で入る左右パディングをカット */
.page-center .wp-block-group.has-global-padding,
.page-center .wp-block-group.is-layout-constrained{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 新旧両方式の内側ラッパーのパディングを念のためゼロに */
.page-center .wp-block-group__inner-container{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 1階層目のブロック（案内ボックス／CF7）を同じ器幅で受ける */
.page-center > .wp-block-group,
.page-center > .wpcf7{
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* === page-center を置いたページ “だけ” 有効にする === */
body.page:has(.page-center) :where(
  .site-body-container,.site-body,.main-section,.entry,.entry-body,
  .container,.container-sm,.container-md,.container-lg,.container-xl,
  .vk_container,.l-container, main#content
){
  /* Lightning の器や余白のクセを無効化 */
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  left: auto !important; right: auto !important; transform: none !important;
}

/* 1) 器を中央固定（1100px、狭い画面は左右20px） */
.page-center{
  width: min(1100px, calc(100% - 40px));
  margin: clamp(24px,4vw,48px) auto 0 !important;
  box-sizing: border-box;
  text-align: left !important;
}

/* 2) no-pad 直下は左右余白ゼロで“同じ原点”に */
.page-center .no-pad,
.page-center .no-pad > .wp-block-group__inner-container{
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
}

/* 3) Gutenberg の root padding 注入を .page-center の中だけ無効化　追加20250901 */
.page-center{
  --wp--style--root--padding-left: 0px;
  --wp--style--root--padding-right: 0px;
}
.page-center [style*="--wp--style--root--padding-left"]{ padding-left:0 !important; margin-left:0 !important; }
.page-center [style*="--wp--style--root--padding-right"]{ padding-right:0 !important; margin-right:0 !important; }

/* 4) “幅広/全幅”が紛れてもはみ出させない保険 */
.page-center :where(.alignwide, .alignfull){
  max-width:100% !important; width:100% !important;
  margin-left:0 !important;  margin-right:0 !important;
  left:auto !important; right:auto !important; transform:none !important;
}

/* 5) CF7 を親幅にフィット（保険） */
.page-center .wpcf7,
.page-center .wpcf7 form{ max-width:100% !important; width:100% !important; }

/* 1) .page-center 内の “自動パディング” を完全に無効化 */
.page-center .wp-block-group.has-global-padding,
.page-center .wp-block-group.is-layout-constrained.has-global-padding,
.page-center [class*="wp-container-"].has-global-padding {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 2) グループの内側コンテナにも念押し（テーマ差分吸収） */
.page-center .wp-block-group__inner-container {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* 3) “コンテナ自動余白” を吐く wp-container-* をゼロに（左右ズレ防止） */
.page-center [class^="wp-container-"],
.page-center [class*=" wp-container-"] {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* この固定ページ（page-id-315）だけ、2カラムを殺す保険 */
body.page-id-315 .main-section--col--two{
  display:block !important;
  grid-template-columns:none !important;
}
body.page-id-315 .main-section--col--two > *{
  grid-column:1 / -1 !important;
  float:none !important;
  width:100% !important;
}

/* ページトップボタンを左下へ。z-indexは高めに */
#pagetop, .pagetop, .to-top {
  position: fixed;
  left: 16px;
  right: auto;
  bottom: 20px;
  z-index: 10001;
}

/* TEMP: ID=25 ページだけスマホで本文アンカーを無効化（#topは残す）20250908 */
@media (max-width: 991.98px){
  body:is(.page-id-25,.postid-25) :where(main,.entry-content)
    a[href^="#"]:not([href="#"]):not([href="#top"]) {
    display: none !important;
  }
  /* 必要ならカード/CTA内アンカーも個別に無効化（任意） */
  body:is(.page-id-25,.postid-25) :is(.oCard__cta,.apply-cta)
    a[href^="#"]:not([href="#top"]) {
    display: none !important;
  }
}

/* ── 共通ラッパー：avehoso2025-page 20250907───────────────── */

/* 管理バー・上下余白なし対策：先頭だけ少し下げる */
.avehoso2025-page > *:first-child {
  margin-top: clamp(12px, 2.5vw, 28px);
}
body.logged-in.admin-bar .avehoso2025-page > *:first-child {
  margin-top: calc(clamp(12px, 2.5vw, 28px) + 32px);
}
@media (max-width: 782px) {
  body.logged-in.admin-bar .avehoso2025-page > *:first-child {
    margin-top: calc(clamp(12px, 2.5vw, 28px) + 46px);
  }
}

/* 読み幅と左右ガター */
.avehoso2025-page {
  --rail: min(92vw, 1100px);
  --gutter: clamp(12px, 2vw, 24px);
}

/* ── 帯ユーティリティ：band（外側=全幅 / 内側=本文幅） ─── */

/* 外側（帯）を画面いっぱいに */
.avehoso2025-page .band.alignfull{
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  transform: none !important; /* WPのずれ計算を無効化 */
}

/* 内側（帯の中身）を本文幅で中央寄せ＋ガター */
.avehoso2025-page .band.alignfull > .wp-block-group__inner-container,
.avehoso2025-page .band.alignfull > .wp-block-group,
.avehoso2025-page .band.alignfull > .wp-block-cover__inner-container{
  max-width: var(--rail) !important;
  width: var(--rail) !important;
  margin: 0 auto !important;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
  box-sizing: border-box;
  transform: none !important;
}

/* 任意：画像/表のはみ出し保険（必要なら） */
.avehoso2025-page img,
.avehoso2025-page iframe,
.avehoso2025-page table { max-width:100%; height:auto; }

/* 任意：帯の上下余白を揃える補助（使う帯に band--spaced を付与） */
.avehoso2025-page .band--spaced { padding-block: clamp(24px, 5vw, 56px); }

/* 任意：スクロールバー起因の微妙な横ズレ対策（問題なければ不要） */
.avehoso2025-page .band.alignfull { overflow-x: hidden; }

/* 大会要項セクション（表紙＋DL一覧）— 専用スタイル 20250907 */
.avehoso2025-page .specs-section .specs-wrap{
  display: grid;
  /* 左カラムは画像maxに合わせて 330px（必要に応じて 280〜330 調整） */
  grid-template-columns: minmax(260px, 330px) 1fr;
  gap: clamp(16px, 3vw, 32px);
  align-items: start;
}

/* 左（表紙＋一括DL） */
.avehoso2025-page .specs-section .dl-all{ 
  margin-top: 12px; 
}

/* 一括DLボタン（表紙下） */
.avehoso2025-page .specs-section .dl-all .wp-block-button__link{
  display: inline-block;          /* 当たり判定を安定 */
  background: #007CBD;
  color: #fff;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
  /* テキストサイズと内側余白（PCで最大15px相当） */
  font-size: clamp(0.85rem, 1.6vw, 0.95rem);
  padding: 8px 16px;
  white-space: nowrap;            /* 1行に収める */
}

.avehoso2025-page .specs-section .dl-all .wp-block-button__link:hover,
.avehoso2025-page .specs-section .dl-all .wp-block-button__link:focus-visible{
  filter: brightness(0.95);
  outline: 2px solid transparent;
}

/* 右（ページ別DL）— 本文サイズを少し大きめに */
.avehoso2025-page .specs-section .specs-right li{
  font-size: clamp(0.9375rem, 1.6vw, 1.0625rem); /* SP15px → PC最大17px */
  line-height: 1.5;
}
.avehoso2025-page .specs-section .specs-right li small{
  font-size: 1em; /* smallを親(li)と同じサイズに */
}

/* スマホ時の調整（1つに集約） */
@media (max-width: 960px){

  /* 縦並びに切り替え */
  .avehoso2025-page .specs-section .specs-wrap{
    grid-template-columns: 1fr;
  }

  /* 一括DLボタンを中央寄せ */
  .avehoso2025-page .specs-section .dl-all {
    text-align: center;
  }

  /* ページ別ダウンロード見出しを中央寄せ＆可変17px上限に */
  .avehoso2025-page .specs-section .specs-right h3 {
    text-align: center;
    font-size: clamp(1rem, 3.5vw, 1.0625rem); /* 16px → 最大17px */
  }

  /* リストは左寄せのまま左右に余白 */
  .avehoso2025-page .specs-section .specs-right ul {
    padding-left: 2.5em;  /* ここは好みに合わせて調整OK */
    padding-right: 1.2em;
  }
}
