@charset "UTF-8";
/* ============================================================
   legacy.css
   新デザインの器（style.css）の中で、既存ページ本文（.legacy）が
   読みやすく収まるようにするための調整。
   ※ legacy-golf.css（golf.cssの自動変換版）より後に読み込むこと。
   ============================================================ */

/* ---- 各ページ固有の本文が入るセクション ---- */
.section--page { padding-block: clamp(32px, 5vw, 56px); }
.section--page:empty { display: none; }

/* 本文が空（共通部分だけのページ）のときは余白を詰める */
.section--page .legacy:empty { display: none; }

/* ---- style.css がゼロにした余白を、本文内だけ元に戻す ---- */
.legacy p { margin: 0 0 1.1em; }
.legacy p:last-child { margin-bottom: 0; }
.legacy h2 { margin: 1.8em 0 .7em; }
.legacy h3 { margin: 1.5em 0 .6em; }
.legacy h4, .legacy h5, .legacy h6 { margin: 1.3em 0 .5em; }
.legacy h1:first-child, .legacy h2:first-child, .legacy h3:first-child { margin-top: 0; }
.legacy dl { margin: 0 0 1.1em; }
.legacy dd { margin: 0 0 .6em; }
/* 空行（文字を挟まない連続した <br>）だけ詰める。判定は app.js が .br-dup を付ける
   ※ br + br は間の文字を無視するため、「項目<br>項目<br>…」の3行目以降まで消えていた */
.legacy br.br-dup { display: none; }

/* ---- 文字組みを読みやすく ---- */
.legacy {
  font-size: clamp(15.5px, 1.7vw, 17px);
  line-height: 1.95;
  color: var(--ink);
  letter-spacing: .01em;
}
.legacy h1, .legacy h2, .legacy h3, .legacy h4 { line-height: 1.5; }

/* 旧デザインの巨大な赤帯h1は、新デザインの見出しに寄せる */
.legacy h1 {
  background: linear-gradient(135deg, var(--green-700), var(--green-600)) no-repeat !important;
  color: #fff !important;
  font-size: clamp(20px, 3.2vw, 30px) !important;
  line-height: 1.5 !important;
  border-radius: var(--radius);
  padding: 18px 22px !important;
  margin: 0 0 28px !important;
  font-weight: 900;
}

/* ---- 画像 ---- */
.legacy img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
}
/* アイコン・リストマーク等の小さな画像は角丸にしない */
.legacy img[src*="listmark"],
.legacy img[src*="tee-mark"],
.legacy img[src*="icon"],
.legacy img[width="16"], .legacy img[width="20"], .legacy img[width="24"] {
  border-radius: 0;
}

/* ---- 表：スマホではみ出さないように ---- */
.legacy .table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 0 0 1.4em;
  border: 1px solid var(--line-color);
  border-radius: 12px;
}
.legacy .table-scroll > table { margin: 0; min-width: 520px; }
.legacy table th, .legacy table td { padding: 10px 12px; }

/* ---- リンク：新デザインのアクセントに合わせつつ、視認性を確保 ---- */
.legacy a:link, .legacy a:visited { color: #d0316b; text-decoration: underline; text-underline-offset: 3px; }
.legacy a:hover { color: #a82253; }

/* ---- タップしやすさ（スマホ） ---- */
@media (max-width: 767px) {
  .legacy a { padding-block: 2px; }
  .legacy h1 { padding: 14px 16px !important; }
}

/* ---- 旧テンプレートの残骸を隠す（本文に紛れ込んでいた場合の保険） ---- */
.legacy .global_navi,
.legacy #toggle2,
.legacy .copyright,
.legacy #pagetop,
.legacy .sp-fixed-cta { display: none !important; }

/* ============================================================
   旧サイトの見出しを新デザインのテイストに揃える
   （オレンジ・赤・緑の帯＋GIFアイコン → 左ライン付きの淡い緑の見出し）
   ※ 求人サイトは recruit.css 側の同等ルールが優先される
   ============================================================ */

/* ---- 大見出し（旧：色帯の見出し） ---- */
.legacy .midashi-sp9:not(h1),
.legacy .midashi-sp9r:not(h1),
.legacy .midashi-sp7:not(h1),
.legacy .midashi-sp2:not(h1),
.legacy .midashi-sp4:not(h1),
.legacy .midashi-sp:not(h1),
.legacy .midashi-sp0,
.legacy .midashi-sp6:not(h1),
.legacy .midashi-sp10,
.legacy .midashi-sp12,
.legacy .midashi-sp91,
.legacy .midashi3:not(span),
.legacy .midashi11,
.legacy h2:not([class]) {
  display: block; box-sizing: border-box; width: auto; max-width: none;
  margin: 2.4em 0 1em !important; padding: 13px 18px 13px 20px !important;
  background: var(--green-050) none !important; color: var(--ink) !important;
  border: 0; border-left: 6px solid var(--green-600) !important; border-radius: 0 12px 12px 0;
  font-size: clamp(19px, 2.6vw, 24px) !important; font-weight: 900 !important;
  line-height: 1.5 !important; letter-spacing: .02em; text-align: left !important;
}
.legacy h1 + .midashi-sp9, .legacy h1 + h2,
.legacy .midashi-sp9:first-child, .legacy .midashi-sp7:first-child { margin-top: 0 !important; }

/* ---- 中見出し（旧：ピンク文字・無装飾の小見出し） ---- */
.legacy .midashi-sp1,
.legacy .midashi-sp3:not(span),
.legacy .midashi-sp31,
.legacy .midashi-sp8,
.legacy div.midashi-sp5,
.legacy .midashi-sp14,
.legacy div.midashi7,
.legacy .midashi8,
.legacy .midashi-1:not(span),
.legacy h3.instructor_name,
.legacy h3.midashi3,
.legacy h3:not([class]) {
  display: block; box-sizing: border-box; width: auto;
  margin: 1.9em 0 .7em !important; padding: 0 0 .45em !important;
  background: none !important; color: var(--green-800) !important;
  border-bottom: 2px solid var(--green-100);
  font-size: clamp(17px, 2.1vw, 20px) !important; font-weight: 900 !important;
  line-height: 1.55 !important; text-align: left !important;
}
/* 文中で <span>＋<br> の形で見出しに使われているもの */
.legacy span.midashi7,
.legacy span.midashi2 {
  display: inline-block; margin: 1.1em 0 .25em; padding-bottom: .3em;
  color: var(--green-800); border-bottom: 2px solid var(--green-100);
  font-size: clamp(16.5px, 2vw, 19px); font-weight: 900; line-height: 1.55;
}
/* 旧デザインの「★」飾りは外す */
.legacy .instructor_name::before { content: none; }

/* ---- 小見出し（プロフィールの「■ 氏名」等） ---- */
.legacy .midashi-sp13,
.legacy .midashi10,
.legacy h4.midashi-sp7 {
  display: block; width: auto; margin: 1.5em 0 .3em !important; padding: 0 !important;
  background: none !important; color: var(--green-700) !important;
  font-size: clamp(15.5px, 1.8vw, 17px) !important; font-weight: 900 !important; line-height: 1.6 !important;
}
.legacy .midashi-sp13 + p, .legacy .midashi10 + p { margin-top: 0; }

/* ---- 見出し内の <font> 指定（白文字・拡大）は見出しの色とサイズに従わせる ---- */
.legacy [class*="midashi"] font,
.legacy h2 font, .legacy h3 font, .legacy h4 font { color: inherit !important; font-size: inherit !important; }

/* ---- 文中の強調 ---- */
.legacy .kyocho { color: var(--green-800); font-weight: 800; }
.legacy .midashi15 { color: var(--cta-dark); font-weight: 800; }
/* 旧サイトのピンク太字（#F36）→ 新デザインの強調色（見出しの .hot と同じオレンジ） */
.legacy strong,
.legacy .top-contents2 p strong,
.legacy .top-contents2 ol li strong,
.legacy .strong-list li span { color: var(--cta-dark); font-weight: 800; }
.legacy .strong-list li span::before { color: var(--green-500); }

/* ---- 本文の文字サイズを統一（段落だけ 20px 固定になっていた） ---- */
.legacy .top-contents2 p,
.legacy .top-contents2 ol { font-size: inherit; color: inherit; }
/* 段落だけ 95% 幅で字下げされて見えていたのを、見出し・写真と左端を揃える */
.legacy .top-contents2 p { max-width: none; margin: 0 0 1.1em; }

/* ============================================================
   旧サイトの表（時間割・料金・ラウンドレッスン・練習場情報 等）を
   新デザインのテイストに揃える
   （オレンジ地の白文字・黄色地・水色の見出しセル・ピンクの金額
     → 白地＋淡い罫線、見出しは緑、金額は緑の太字、無料はオレンジ）
   ※ HTMLは変更しない。bgcolor・<font> などの属性指定を CSS で上書きする。
   ※ 時間割の記号（●★休－）の色分けクラスは app.js が付ける。
   ============================================================ */

/* ---- 共通：罫線のある表（border="1" や bgcolor 付きの旧い表・school_table 系） ---- */
.legacy .school_table,
.legacy .school_table2,
.legacy .school_table3,
.legacy table:is([border]:not([border="0"]), [bgcolor]):not(.formTable):not(.price-table) {
  width: 100%; max-width: 100%; margin: 12px 0 1.2em;
  border-collapse: separate; border-spacing: 0;
  background: #fff !important; color: var(--ink);
  border: 1px solid var(--line-color); border-radius: 12px; overflow: hidden;
  font-size: 15.5px; line-height: 1.65; font-weight: 500;
  table-layout: auto; word-break: normal; overflow-wrap: anywhere;
}
.legacy .school_table :is(tbody, tr),
.legacy .school_table2 :is(tbody, tr),
.legacy .school_table3 :is(tbody, tr) { border: 0; background: none; }
.legacy .school_table :is(th, td),
.legacy .school_table2 :is(th, td),
.legacy .school_table3 :is(th, td),
.legacy table:is([border]:not([border="0"]), [bgcolor]):not(.formTable):not(.price-table) > * > tr > :is(th, td) {
  padding: 11px 14px; border: 0;
  border-bottom: 1px solid var(--line-color); border-right: 1px solid var(--line-color);
  background: #fff; color: var(--ink);
  font-size: 15.5px; line-height: 1.65; font-weight: 500; vertical-align: middle;
}
.legacy .school_table tr > :last-child,
.legacy .school_table2 tr > :last-child,
.legacy .school_table3 tr > :last-child,
.legacy table:is([border]:not([border="0"]), [bgcolor]) > * > tr > :last-child { border-right: 0; }
.legacy .school_table tr:last-child > *,
.legacy .school_table2 tr:last-child > *,
.legacy .school_table3 tr:last-child > *,
.legacy table:is([border]:not([border="0"]), [bgcolor]) > *:last-child > tr:last-child > * { border-bottom: 0; }

/* 見出しセル（th）は淡い緑地＋緑の太字 */
.legacy table:is([border]:not([border="0"]), [bgcolor]):not(.formTable):not(.price-table) > * > tr > th,
.legacy .school_table3 th {
  background: var(--green-050); color: var(--green-800); font-weight: 800; text-align: left;
}

/* 旧い色指定のセル：見出しに使われていた濃い色 → 見出しセルの扱い／淡い色 → 白 */
.legacy table td:is([bgcolor="#009CDD" i], [bgcolor="#ffcc66" i], [bgcolor="#FFCC00" i], [bgcolor="#FFE271" i],
  [bgcolor="#FF9966" i], [bgcolor="#FFD220" i], [bgcolor="#FF9900" i], [bgcolor="#999999" i],
  [bgcolor="#cccccc" i], [bgcolor="#FFCC99" i], [bgcolor="#FF9999" i], [bgcolor="#FFCCCC" i],
  [bgcolor="#009900" i], [bgcolor="#13A61B" i], [bgcolor="#333333" i], [bgcolor="black" i]) {
  background: var(--green-050) !important; color: var(--green-800) !important; font-weight: 800;
}
.legacy table :is(td, th):is([bgcolor="#FFFFCC" i], [bgcolor="#ccffcc" i], [bgcolor="#FFFF99" i],
  [bgcolor="#DCFF71" i], [bgcolor="#FFFF66" i], [bgcolor="#EBFFAC" i], [bgcolor="#FFFFFF" i], [bgcolor="white" i]) {
  background: #fff !important;
}
.legacy table th[bgcolor]:not([bgcolor="#FFFFFF" i]):not([bgcolor="white" i]) {
  background: var(--green-050) !important; color: var(--green-800) !important;
}

/* 表の中の <font color> や size="+2"（ピンクの大きな金額など） */
.legacy table font[color] { color: var(--green-800) !important; font-weight: 800; }
.legacy table font:is([color="#FF3399" i], [color="#FF0000" i], [color="red" i], [color="#FF3366" i], [color="#F36" i]) { color: var(--cta-dark) !important; }
.legacy table font[size] { font-size: 1.08em !important; }
.legacy table font[color="#FFFFFF" i], .legacy table font[color="white" i] { color: inherit !important; }

/* 表の中に表がある（スコアカード等）場合は、外側の枠・余白・色を消して内側の表だけ見せる */
.legacy table:has(> * > tr > * > table) { border: 0 !important; background: none !important; }
.legacy table :is(th, td):has(> table) { padding: 0 !important; border: 0 !important; background: none !important; }
.legacy table :is(th, td) > table { margin: 0 !important; }

/* 横スクロールの枠がある場合は、枠線・角丸を枠側に任せる */
.legacy .table-scroll > table { border: 0 !important; border-radius: 0 !important; margin: 0 !important; }

/* ---- 時間割（school_table ／ 旧い「レッスンの時間割」表） ---- */
.legacy .school_table,
.legacy table.is-timetable { table-layout: fixed; }
.legacy .school_table :is(th, td),
.legacy table.is-timetable :is(th, td) {
  text-align: center !important; padding: 10px 4px; font-variant-numeric: tabular-nums;
}
/* 1行目（曜日）は緑の帯 */
.legacy .school_table tr:first-child > *,
.legacy table.is-timetable tr:first-child > * {
  background: var(--green-700) !important; color: #fff !important; font-weight: 800;
  border-color: rgba(255, 255, 255, .22); letter-spacing: .08em;
}
/* 1列目（時刻）は淡い緑 */
.legacy .school_table tr:not(:first-child) > :first-child,
.legacy table.is-timetable tr:not(:first-child) > :first-child {
  width: 22%; background: var(--green-050) !important; color: var(--green-800) !important; font-weight: 800;
}
.legacy .school_table tr:first-child > :first-child,
.legacy table.is-timetable tr:first-child > :first-child { width: 22%; letter-spacing: 0; }
.legacy .school_table tr:not(:first-child):nth-child(even) > :not(:first-child),
.legacy table.is-timetable tr:not(:first-child):nth-child(even) > :not(:first-child) { background: #fbfdfb; }
/* 記号の色分け（app.js が付与） */
.legacy .tt-open { color: var(--green-600) !important; font-weight: 900; font-size: 1.1em !important; }
.legacy .tt-star { color: var(--cta) !important; font-weight: 900; font-size: 1.1em !important; }
.legacy .tt-off { color: #9aa59e !important; background: #f4f6f4 !important; font-size: 13.5px !important; }
.legacy .tt-none { color: #b5bfb8 !important; }

/* ---- 料金表（school_table2 ／ 旧い「初回体験 ￥0」表） ---- */
.legacy .school_table2 td,
.legacy table.is-pricelist td { text-align: left !important; }
.legacy .school_table2 td:first-child,
.legacy table.is-pricelist td:first-child {
  width: 55%; background: var(--surface-2) !important; color: var(--ink) !important; font-weight: 700;
}
.legacy .school_table2 td:last-child,
.legacy table.is-pricelist td:last-child {
  color: var(--green-800) !important; font-weight: 900; font-size: 17px; font-variant-numeric: tabular-nums;
}
.legacy .school_table2 td.is-free,
.legacy table.is-pricelist td.is-free,
.legacy table.is-pricelist td.is-free font { color: var(--cta) !important; }

/* 旧い料金表のピンクの金額（<font color="#FF3399" size="+2">）は料金表の色に従わせる */
.legacy table.is-pricelist font[color] { color: inherit !important; font-weight: inherit; }
.legacy table.is-pricelist font[size] { font-size: inherit !important; }
.legacy table.is-pricelist b { font-weight: inherit; }

/* ---- ラウンドレッスン料金など（school_table3：左に項目名） ---- */
.legacy .school_table3 th { width: 30%; }
.legacy .school_table3 a { font-weight: 700; line-height: inherit; }
.legacy .school_table3 a::before { content: none; }

/* ---- 区切り線（葉っぱの line.gif）→ 細い罫線。画像は残し、中身を枠外に逃がして背景色だけ見せる ---- */
.legacy img[src$="line.gif"],
.legacy img[src$="lineofficial.gif"] {
  display: block; width: 100% !important; height: 1px !important; margin: 32px 0 !important;
  border-radius: 0; background: var(--line-color);
  object-fit: none; object-position: -9999px -9999px;
}

/* ---- 教室ページ等のリンク一覧（ピンク点線＋黄色■） ---- */
.legacy .top-contents2_list { width: auto; margin: 0 0 1.2em; padding: 0; list-style: none; font-size: inherit; }
.legacy .top-contents2_list li {
  font-size: inherit; font-weight: 700; padding: 10px 0 10px 1.3em; position: relative;
  border-bottom: 1px solid var(--line-color);
}
.legacy .top-contents2_list li::before {
  content: ""; position: absolute; left: 2px; top: 1.15em; width: 7px; height: 7px;
  border-top: 2px solid var(--green-600); border-right: 2px solid var(--green-600); transform: rotate(45deg);
}
.legacy .top-contents2_list li a::before { content: none; }
.legacy .top-contents2_list.new_schools li { border-bottom: 0; padding-block: 4px; }

/* ---- スマホ ---- */
@media (max-width: 767px) {
  .legacy .school_table,
  .legacy .school_table2,
  .legacy .school_table3,
  .legacy table:is([border]:not([border="0"]), [bgcolor]):not(.formTable):not(.price-table) { font-size: 14.5px; }
  .legacy .school_table :is(th, td),
  .legacy .school_table2 :is(th, td),
  .legacy .school_table3 :is(th, td),
  .legacy table:is([border]:not([border="0"]), [bgcolor]):not(.formTable):not(.price-table) > * > tr > :is(th, td) {
    padding: 9px 10px; font-size: 14.5px;
  }
  .legacy .school_table :is(th, td),
  .legacy table.is-timetable :is(th, td) { padding: 8px 2px; font-size: 13.5px; }
  .legacy .school_table2 td:last-child,
  .legacy table.is-pricelist td:last-child { font-size: 15.5px; }
  .legacy .school_table2 td:first-child,
  .legacy table.is-pricelist td:first-child { width: 50%; }
}

/* ============================================================
   各校のご案内ページ（/school-<県>/<校>-pc.html）
   app.js の buildSchoolPage() が本文を区切って組み立てた要素の見た目。
   HTML 本文（EditRegion3）は無変更。
   ============================================================ */
html.is-school-page { scroll-padding-top: calc(var(--header-h) + var(--subnav-h) + 68px); }
@media (min-width: 1024px) {
  html.is-school-page { scroll-padding-top: calc(var(--header-h) + var(--subnav-h) + 20px); }
}
.is-school-page .section--page .wrap--narrow { max-width: var(--wrap); }

/* ---- ボタン：本文リンクのピンク・下線を打ち消す ---- */
.legacy a.btn:is(:link, :visited) { color: #fff; text-decoration: none; }
.legacy a.btn--tel:is(:link, :visited) { color: var(--green-800); }

/* ---- ヒーロー（教室の概要） ---- */
.legacy .school-hero {
  display: grid; gap: 22px; align-items: center;
  margin: 0 0 28px; padding: clamp(18px, 3.4vw, 36px);
  background:
    radial-gradient(circle at 100% 0, var(--sun-soft), rgba(255, 248, 214, 0) 55%),
    linear-gradient(160deg, var(--green-050), #fff 72%);
  border: 1px solid var(--green-100); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}
@media (min-width: 900px) {
  .legacy .school-hero.has-media { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 36px; }
}
.legacy .school-hero__media { margin: 0; }
.legacy .top-contents2 .school-hero__media img {
  display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover;
  margin: 0; border-radius: 18px; box-shadow: var(--shadow);
}
@media (max-width: 899px) {
  .legacy .school-hero__media { order: -1; }
  .legacy .top-contents2 .school-hero__media img { aspect-ratio: 16 / 9; }
}

.legacy .school-hero__tags { display: flex; flex-wrap: wrap; gap: 6px 8px; margin: 0 0 12px !important; }
.legacy .school-hero__tag {
  display: inline-flex; align-items: center; padding: 2px 12px; border-radius: 999px;
  background: #fff; color: var(--green-800); box-shadow: inset 0 0 0 1px var(--green-100);
  font-size: 13px; font-weight: 800; line-height: 1.7;
}
.legacy .school-hero__tag--open { background: var(--cta); color: #fff; box-shadow: none; }
.legacy .school-hero__tag--prep { background: var(--ink-3); color: #fff; box-shadow: none; }
.legacy .school-hero__tag--area { background: var(--sky-soft); color: #0b6f9c; box-shadow: none; }

.legacy .school-hero h1 {
  background: none !important; color: var(--ink) !important;
  margin: 0 0 18px !important; padding: 0 !important; border-radius: 0;
  font-size: clamp(18px, 2.4vw, 24px) !important; line-height: 1.35 !important;
}
.legacy .school-hero__pre {
  display: block; margin-bottom: 4px;
  font-size: clamp(13px, 1.5vw, 15px); font-weight: 800; color: var(--green-700); letter-spacing: .02em;
}
.legacy .school-hero__name {
  font-size: clamp(34px, 5.6vw, 54px); font-weight: 900; color: var(--green-800); letter-spacing: .02em;
}
.legacy .school-hero__post { margin-left: .1em; font-weight: 900; }
.legacy .school-hero__area { display: inline-block; font-size: 14px; font-weight: 700; color: var(--ink-3); }

.legacy .school-hero__facts { display: grid; gap: 8px; margin: 0 0 20px !important; }
.legacy .school-hero__fact {
  display: grid; grid-template-columns: 5.6em minmax(0, 1fr); gap: 4px 12px; align-items: baseline;
  padding: 10px 14px; background: rgba(255, 255, 255, .9); border-radius: 12px;
  box-shadow: inset 0 0 0 1px var(--line-color);
}
.legacy .school-hero__fact dt { font-size: 13px; font-weight: 800; color: var(--green-700); line-height: 1.6; }
.legacy .school-hero__fact dd { margin: 0 !important; font-size: 15px; font-weight: 700; line-height: 1.65; }
.legacy .school-hero__coaches { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.legacy a.school-hero__coach:is(:link, :visited) {
  display: inline-flex; align-items: center; gap: 8px; padding: 0;
  color: var(--ink); text-decoration: none; font-weight: 800;
}
.legacy a.school-hero__coach:hover { color: var(--green-700); }
.legacy .school-hero .school-hero__coach img {
  width: 34px; height: 34px; max-width: none; margin: 0; border-radius: 50%; object-fit: cover;
  box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--green-100);
}

.legacy .school-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.legacy .school-hero__actions .btn { flex: 1 1 auto; min-height: 52px; }
.legacy .school-hero__actions .btn--cta { flex-basis: 100%; font-size: 17px; }

/* ---- 2カラム：本文＋右側のページ内メニュー（スマホは上部の横スクロール） ---- */
.legacy .school-layout { display: block; }
.legacy .school-aside,
.legacy .school-aside__inner { display: contents; }   /* スマホ：メニューを本文全体に対して固定 */
.legacy .school-aside__cta { display: none; }
.legacy .school-toc {
  position: sticky; top: calc(var(--header-h) + var(--subnav-h)); z-index: 20;
  margin: 0 calc(var(--gutter) * -1) 24px; padding: 8px 0;
  background: rgba(255, 255, 255, .95); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line-color);
}
.legacy .school-toc__title { display: none; }
.legacy .school-toc__list {
  display: flex; gap: 8px; margin: 0; padding: 0 var(--gutter); list-style: none;
  overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.legacy .school-toc__list::-webkit-scrollbar { display: none; }
.legacy .school-toc__list li { flex: none; margin: 0; padding: 0; }
.legacy a.school-toc__link:is(:link, :visited) {
  display: block; padding: 5px 14px; border-radius: 999px; white-space: nowrap;
  background: var(--green-050); color: var(--green-800); text-decoration: none;
  font-size: 14px; font-weight: 800; line-height: 1.7;
}
.legacy a.school-toc__link[aria-current="true"] { background: var(--green-700); color: #fff; }
.legacy a.school-toc__link--cta:is(:link, :visited) { background: var(--cta-soft); color: var(--cta-dark); }

@media (min-width: 1024px) {
  .legacy .school-layout {
    display: grid; grid-template-columns: minmax(0, 1fr) 270px; gap: 40px;
  }
  .legacy .school-main { grid-column: 1; grid-row: 1; min-width: 0; }
  .legacy .school-aside { display: block; grid-column: 2; grid-row: 1; }
  .legacy .school-aside__inner { display: block; position: sticky; top: calc(var(--header-h) + var(--subnav-h) + 16px); }
  .legacy .school-toc {
    position: static; margin: 0; padding: 16px 12px 12px;
    background: #fff; border: 1px solid var(--line-color); border-radius: 16px; box-shadow: var(--shadow-sm);
  }
  .legacy .school-toc__title {
    display: block; margin: 0 6px 8px !important; padding-bottom: 8px; border-bottom: 1px solid var(--line-color);
    font-size: 15px; font-weight: 900; color: var(--green-800);
  }
  .legacy .school-toc__list { display: grid; gap: 2px; padding: 0; overflow: visible; }
  .legacy a.school-toc__link:is(:link, :visited) {
    padding: 7px 12px; border-radius: 10px; background: none; font-size: 15px; color: var(--ink-2);
  }
  .legacy a.school-toc__link:hover { background: var(--green-050); color: var(--green-800); }
  .legacy a.school-toc__link[aria-current="true"] {
    background: var(--green-050); color: var(--green-800); box-shadow: inset 3px 0 0 var(--green-600);
  }
  .legacy a.school-toc__link--cta:is(:link, :visited) { margin-top: 6px; background: var(--cta-soft); color: var(--cta-dark); text-align: center; }
  .legacy .school-aside__cta {
    display: grid; gap: 10px; margin-top: 16px; padding: 18px 16px; text-align: center;
    background: linear-gradient(160deg, var(--sun-soft), #fff); border: 1px solid #f3e3a0; border-radius: 16px;
  }
  .legacy .school-aside__lead { margin: 0 !important; font-size: 15px; font-weight: 900; color: var(--ink); }
  .legacy .school-aside__cta .btn { min-height: 48px; font-size: 15px; padding: 10px 12px; }
  .legacy a.school-aside__tel:is(:link, :visited) { color: var(--green-800); text-decoration: none; font-weight: 900; font-size: 16px; }
}

/* ---- 各ブロック ---- */
.legacy .sblock { margin: 0 0 36px; }
.legacy .sblock > :first-child { margin-top: 0 !important; }
.legacy .sblock::before {
  display: block; margin: 0 0 8px;
  font-size: 12px; font-weight: 900; letter-spacing: .16em; line-height: 1; color: var(--green-600);
}
.legacy .sblock--notice::before { content: "NEWS"; color: #b07d00; }
.legacy .sblock--price::before { content: "PRICE"; }
.legacy .sblock--timetable::before { content: "SCHEDULE"; }
.legacy .sblock--access::before { content: "ACCESS"; }
.legacy .sblock--place::before { content: "LESSON PLACE"; }
.legacy .sblock--coach::before { content: "COACH"; }
.legacy .sblock--curriculum::before { content: "CURRICULUM"; }
.legacy .sblock--lessons::before { content: "LESSON"; }
.legacy .sblock--trial::before { content: "FREE TRIAL"; color: var(--cta-dark); }

/* 料金・時間割・アクセス等の要点はカードに */
.legacy :is(.sblock--notice, .sblock--price, .sblock--timetable, .sblock--access, .sblock--place, .sblock--coach) {
  padding: clamp(18px, 3vw, 28px); background: #fff;
  border: 1px solid var(--line-color); border-radius: 20px; box-shadow: var(--shadow-sm);
}
.legacy .sblock--notice { background: var(--sun-soft); border-color: #f3e3a0; }
.legacy .sblock--notice > :is(h2, .midashi-sp9):first-of-type { background: #fff !important; border-left-color: var(--sun-deep) !important; }
.legacy .sblock .ggmap_frame { border-radius: 14px; overflow: hidden; }

/* ---- コーチ紹介カード ---- */
.legacy .coach-card { margin: 0 0 18px; padding: 18px; border-radius: 16px; background: var(--surface-2); }
.legacy .coach-card:last-child { margin-bottom: 0; }
.legacy .coach-card.has-photo { display: grid; gap: 16px; }
@media (min-width: 600px) {
  .legacy .coach-card.has-photo { grid-template-columns: 170px minmax(0, 1fr); gap: 22px; align-items: start; }
}
.legacy .coach-card__photo { max-width: 220px; }
.legacy .sblock .coach-card__photo img {
  display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: 50% 20%;
  margin: 0; border-radius: 14px; box-shadow: 0 0 0 4px #fff, var(--shadow-sm);
}
.legacy .coach-card__body { min-width: 0; }
.legacy .coach-card__body > h3.instructor_name:first-child { margin-top: 0 !important; }
.legacy .coach-card .ac_menu { margin-top: 8px; }
.legacy .coach-card label.instructor_prof {
  display: inline-flex; align-items: center; width: auto; margin: 0; padding: 7px 16px; border-radius: 999px;
  background: #fff; color: var(--green-800); box-shadow: inset 0 0 0 1.5px var(--green-100);
  font-size: 14px; font-weight: 800; text-align: left;
}
.legacy .coach-card label.instructor_prof:hover { background: var(--green-050); }
.legacy .coach-card .ac_menu :is(h3.midashi-sp7) {
  margin: 1.2em 0 .4em !important; padding: 6px 12px !important; font-size: 16px !important;
}

/* ---- レッスン内容（座学・実技・ラウンド・コンペ）を2列のカードに ---- */
.legacy .lesson-grid { display: grid; gap: 16px; margin: 16px 0 0; }
@media (min-width: 700px) {
  .legacy .lesson-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.legacy .lesson-card {
  padding: 16px 16px 6px; background: #fff; border: 1px solid var(--line-color); border-radius: 16px;
  font-size: 15px; line-height: 1.85;
}
.legacy .lesson-card > h3:first-child { margin: 0 0 12px !important; padding: 8px 12px !important; font-size: 17px !important; }
.legacy .top-contents2 .lesson-card img { aspect-ratio: 2 / 1; object-fit: cover; margin-bottom: 10px; }
.legacy .lesson-card .sp-annotation { margin-top: 10px; }

/* ---- 様子・SNS・イベント（宣伝バナー類）は2列のタイルに ---- */
.legacy .sgrid { display: grid; gap: 18px; margin: 52px 0 0; }
@media (min-width: 700px) {
  .legacy .sgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.legacy .sgrid__head, .legacy .sgrid .sblock--wide { grid-column: 1 / -1; }
.legacy .sgrid__eyebrow { display: block; font-size: 12px; font-weight: 900; letter-spacing: .16em; color: var(--green-600); }
.legacy .sgrid__title { margin: 2px 0 0 !important; font-size: clamp(20px, 2.6vw, 26px); font-weight: 900; line-height: 1.45; }
.legacy .sgrid .sblock {
  margin: 0; padding: 16px; background: #fff; border: 1px solid var(--line-color); border-radius: 16px;
  font-size: 15px; line-height: 1.8;
}
.legacy .sgrid .sblock > :first-child { padding: 8px 12px !important; font-size: 17px !important; margin-bottom: 12px !important; }
.legacy .sgrid .top-contents2_list { margin-bottom: 0; }
.legacy .sgrid .top-contents2_list li { padding-block: 7px; font-size: 14.5px; }
/* レッスン内容カード内の項目リスト（旧：黄色地＋ピンク点線）→ チェック付きのタグ */
.legacy .lesson-card .sp-annotation { width: auto; margin: 10px 0 12px; padding: 0; background: none; font-size: inherit; }
.legacy .lesson-card .sp-annotation ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.legacy .lesson-card .sp-annotation li {
  width: auto; margin: 0; padding: 3px 10px 3px 8px; border: 0; border-radius: 8px;
  background: var(--green-050); color: var(--green-900); font-size: 13.5px; font-weight: 700; line-height: 1.6;
}
.legacy .lesson-card .sp-annotation li::before { content: "✓"; margin-right: 4px; color: var(--green-600); font-weight: 900; }

/* ---- 2026-10-04 各校ページの整理 ---- */
/* 声・イベントは上部（お知らせの次）に来るので、上の余白は通常のブロックと同じに */
.legacy .school-main > .sgrid { margin: 0 0 36px; padding: clamp(16px, 2.6vw, 24px); border-radius: 20px; background: var(--sun-soft); }
.legacy .sgrid .sblock { box-shadow: var(--shadow-sm); }
/* インスタは PC は最新8枚まで（多すぎて縦に長くなるため）、スマホは4列×4段の16枚 */
@media (min-width: 768px) { .legacy .sgrid .ig-feed-grid > :nth-child(n+9) { display: none !important; } }
@media (max-width: 767px) { .legacy .sgrid .ig-feed-grid > :nth-child(n+17) { display: none !important; } }
/* インスタの正方形タイル：instagram-feed.php の padding-top:100% が .legacy a の padding で潰されるので aspect-ratio で固定 */
.legacy a.ig-feed-item { padding: 0 !important; aspect-ratio: 1 / 1; }
.legacy .ig-feed-item img {
  position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none;
  margin: 0 !important; object-fit: cover; border-radius: 0;
}
/* 画像バナーの代わりの文字ボタン */
.legacy .sbtn-row { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0 0; }
.legacy a.sbtn:is(:link, :visited) {
  display: inline-flex; align-items: center; gap: 6px; margin: 6px 0; padding: 9px 18px; border-radius: 999px;
  background: #fff; color: var(--green-800); box-shadow: inset 0 0 0 1.5px var(--green-100);
  font-size: 14.5px; font-weight: 800; line-height: 1.5; text-decoration: none;
}
.legacy a.sbtn::after { content: "→"; }
.legacy a.sbtn:hover { background: var(--green-050); }
/* 練習場・教室の写真は3列（スマホ2列）のグリッド */
.legacy .sphotos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 12px 0 16px; }
@media (min-width: 700px) { .legacy .sphotos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.legacy .sblock .sphotos img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; margin: 0; border-radius: 12px; }
/* 2つめ以降の料金表は折りたたみ */
.legacy details.sfold { margin: 4px 0 0; }
.legacy details.sfold > summary {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; border-radius: 999px; cursor: pointer; list-style: none;
  background: var(--green-050); color: var(--green-800); font-size: 14.5px; font-weight: 800;
}
.legacy details.sfold > summary::-webkit-details-marker { display: none; }
.legacy details.sfold > summary::after { content: "＋"; }
.legacy details.sfold[open] > summary::after { content: "－"; }
.legacy details.sfold[open] > summary { margin-bottom: 14px; }
/* レッスン内容：イラストを外したので、カードは文字＋項目タグだけで詰める */
.legacy .lesson-card { padding-bottom: 12px; }

/* カリキュラム・無料体験の告知バナー（文字入りGIF）は大きくなりすぎないように */
.legacy :is(.sblock--curriculum, .sblock--trial, .sblock--notice) img[src$=".gif"] { display: block; max-width: 560px; margin-inline: auto; }
/* 概要：1枚の表にまとめて縦を詰める */
.legacy .school-hero__facts {
  gap: 0; background: rgba(255, 255, 255, .92); border-radius: 14px; box-shadow: inset 0 0 0 1px var(--line-color);
}
.legacy .school-hero__fact {
  grid-template-columns: 5.4em minmax(0, 1fr); background: none; box-shadow: none; border-radius: 0;
  border-bottom: 1px solid var(--line-color);
}
.legacy .school-hero__fact:last-child { border-bottom: 0; }
@media (max-width: 479px) {
  .legacy .school-hero__fact { grid-template-columns: 4.6em minmax(0, 1fr); padding: 9px 12px; gap: 2px 8px; }
  .legacy .school-hero__fact dd { font-size: 14px; }
  .legacy .top-contents2 .school-hero__media img { aspect-ratio: 2 / 1; }
}.legacy .school-hero__fact { align-items: center; }

/* 長いプロフィールの折りたたみ（app.js が details.coach-more に包む） */
.legacy .coach-more { margin-top: 10px; }
.legacy .coach-more > summary {
  display: inline-flex; align-items: center; gap: 6px; padding: 7px 16px; border-radius: 999px; cursor: pointer; list-style: none;
  background: #fff; color: var(--green-800); box-shadow: inset 0 0 0 1.5px var(--green-100);
  font-size: 14px; font-weight: 800; line-height: 1.6;
}
.legacy .coach-more > summary::-webkit-details-marker { display: none; }
.legacy .coach-more > summary::after { content: "＋"; font-weight: 900; color: var(--green-600); }
.legacy .coach-more[open] > summary::after { content: "－"; }
.legacy .coach-more > summary:hover { background: var(--green-050); }
.legacy .coach-more[open] > summary { margin-bottom: 6px; }
.legacy .coach-more h3 { margin: 1.2em 0 .4em !important; padding: 6px 12px !important; font-size: 16px !important; }
/* ============================================================
   インストラクター紹介ページ（app.js の buildInstructorPage）
   ============================================================ */
.legacy .school-hero__lead { margin: 0 0 18px !important; font-size: 15.5px; font-weight: 700; color: var(--ink-2); line-height: 1.8; }
.legacy .ip-chips { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; margin: 0 0 20px; padding: 0; list-style: none; }
.legacy .ip-chips li { margin: 0; padding: 0; }
.legacy a.ip-chip:is(:link, :visited) {
  display: grid; grid-template-columns: 56px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 12px; align-items: center;
  padding: 10px 12px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--line-color), var(--shadow-sm);
  color: var(--ink); text-decoration: none;
}
.legacy a.ip-chip:hover { box-shadow: inset 0 0 0 1.5px var(--green-500), var(--shadow); }
.legacy .top-contents2 .ip-chip img {
  grid-row: 1 / span 2; width: 56px; height: 56px; margin: 0; border-radius: 50%; object-fit: cover; object-position: 50% 20%;
  box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--green-100);
}
.legacy .ip-chip__name { font-size: 16px; font-weight: 900; line-height: 1.4; align-self: end; }
.legacy .ip-chip__more { font-size: 12.5px; font-weight: 800; color: var(--green-700); align-self: start; }

.is-instructor-page .section--page .wrap--narrow { max-width: 900px; }
.legacy .ip-card {
  margin: 0 0 32px; padding: clamp(18px, 3.4vw, 32px); background: #fff;
  border: 1px solid var(--line-color); border-radius: 20px; box-shadow: var(--shadow-sm);
}
.legacy .ip-card__head {
  display: grid; gap: 16px; align-items: center; margin: 0 0 8px; padding-bottom: 20px; border-bottom: 2px dashed var(--green-100);
}
@media (min-width: 600px) {
  .legacy .ip-card__head:has(.ip-card__photo) { grid-template-columns: 240px minmax(0, 1fr); gap: 28px; }
}
.legacy .top-contents2 .ip-card__photo img {
  display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: 50% 20%;
  margin: 0; border-radius: 18px; box-shadow: var(--shadow);
}
@media (max-width: 599px) { .legacy .ip-card__photo { max-width: 260px; } }
.legacy .ip-card__role { display: inline-block; padding: 2px 12px; border-radius: 999px; background: var(--green-050); color: var(--green-800); font-size: 13px; font-weight: 800; }
.legacy h2.ip-card__name {
  margin: 8px 0 10px !important; padding: 0; background: none; border: 0;
  font-size: clamp(26px, 4vw, 36px); font-weight: 900; color: var(--green-800); line-height: 1.3; letter-spacing: .04em;
}
.legacy a.ip-card__link:is(:link, :visited) {
  display: inline-flex; padding: 7px 16px; border-radius: 999px; background: #fff; color: var(--green-800);
  box-shadow: inset 0 0 0 1.5px var(--green-100); font-size: 14px; font-weight: 800; text-decoration: none;
}
.legacy a.ip-card__link:hover { background: var(--green-050); }
.legacy .ip-card__body > .instructor-syokai-tag { height: 0; overflow: hidden; }
.legacy .ip-card__body > :is(h2, .midashi-sp9):first-of-type { margin-top: 1.4em !important; }
.legacy .ip-card__body img:not([hidden]) { display: block; max-width: 560px; margin: 0 auto 1em; }
/* 2校分の名前（東大阪校/阪奈生駒校）は少し小さく */
.legacy .school-hero--instructor .school-hero__name { font-size: clamp(28px, 4.6vw, 46px); }
.legacy .school-hero--instructor .school-hero__post { display: inline-block; }

/* ---- 2026-10-07 ラウンドレッスンの欄（料金・情報・開催ゴルフ場）を下部の開催予定の直後にまとめる（app.js の .sround） ---- */
.legacy .sblock--roundinfo {
  padding: clamp(18px, 3vw, 28px); background: #fff;
  border: 1px solid var(--line-color); border-radius: 20px; box-shadow: var(--shadow-sm);
}
.legacy .sblock--roundinfo::before { content: "ROUND LESSON"; }
.legacy .sround > .sblock:last-child { margin-bottom: 36px; }

/* ---- 2026-10-08 旧メールフォーム（table.formTable）を新デザインの申込フォーム（.form-card）に合わせる ----
   追加レッスン申請・事務局への相談・モニター・アンケート・練習場募集など。HTMLは無変更。
   緑地＋白文字28pxの表 → 白いカードの中に、番号付きの項目カードを縦に並べる。
   app.js が 必須/任意バッジ・入力種別（tel/email）・選択肢のラベル化を付ける（JSが無くても崩れない） */
.legacy form:has(table.formTable) {
  position: relative; overflow: hidden; counter-reset: ofld;
  margin: 18px 0 28px; padding: clamp(22px, 4vw, 40px);
  background: #fff; border: 1px solid var(--line-color); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg);
}
.legacy form:has(table.formTable)::before {
  content: ""; position: absolute; inset: 0 0 auto; height: 6px;
  background: linear-gradient(90deg, var(--green-600), var(--green-500) 55%, var(--sun));
}
.legacy table.formTable {
  display: block; width: 100% !important; margin: 0; padding: 0; border: 0;
  background: none; color: var(--ink); font-size: 15px; font-weight: 500; text-align: left;
}
.legacy table.formTable > tbody, .legacy table.formTable > tbody > tr, .legacy table.formTable > tr { display: block; width: auto; }
.legacy table.formTable tr {
  position: relative; margin-bottom: 14px; padding: 18px 18px 18px 60px;
  background: #fff; border: 1px solid var(--line-color); border-radius: 16px;
  transition: border-color .15s, box-shadow .15s, background-color .15s;
}
.legacy table.formTable tr:focus-within { border-color: #bfe0c9; background: var(--green-050); box-shadow: 0 0 0 4px rgba(41, 160, 79, .08); }
.legacy table.formTable :is(th, td) {
  display: block; width: auto; padding: 0; border: 0; background: none;
  color: var(--ink); text-align: left; line-height: 1.7;
}
.legacy table.formTable th { margin-bottom: 10px; font-size: 15px; font-weight: 800; letter-spacing: .01em; }
.legacy table.formTable th::before {
  counter-increment: ofld; content: counter(ofld);
  position: absolute; left: 18px; top: 17px;
  width: 28px; height: 28px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 900; color: #fff; background: var(--green-600);
}
/* 入力済みの必須欄は番号を ✓ に、触ってから未入力のまま離れた欄は ! に */
.legacy table.formTable tr:has(:required:valid) th::before { content: "✓"; background: var(--green-700); }
.legacy table.formTable tr:has(:user-invalid) th::before { content: "!"; background: #d93025; }
.legacy table.formTable th i.fa-check-circle { display: none; }
.legacy table.formTable th :is(.req, .opt) { display: inline-block; margin-left: 8px; vertical-align: 2px; line-height: 1.4; }
/* 見出し内の参考リンク（カリキュラム登録の教本など。元は白文字指定） */
.legacy table.formTable th a { color: var(--green-700) !important; font-weight: 700; }

/* 入力欄 */
.legacy table.formTable :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="hidden"]):not([type="file"]), select, textarea) {
  display: block; width: 100% !important; min-height: 54px; height: auto; margin: 0;
  padding: 14px 16px !important; font: inherit; font-size: 16px !important; font-weight: 500; line-height: 1.5; color: var(--ink);
  background-color: #fff; border: 1.5px solid #d6e0da; border-radius: 12px; box-shadow: none;
  transition: border-color .15s, background-color .15s, box-shadow .15s;
}
.legacy table.formTable textarea { min-height: 130px; resize: vertical; line-height: 1.7; }
.legacy table.formTable td :is(input, select, textarea) ~ :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) { margin-top: 10px; }
.legacy table.formTable :is(input, select, textarea):hover { border-color: #b9cbbf; }
.legacy table.formTable :is(input, select, textarea):focus {
  outline: none; border-color: var(--green-600); background-color: #fff; box-shadow: 0 0 0 4px rgba(41, 160, 79, .14);
}
.legacy table.formTable :is(input, textarea)::placeholder { color: #9aa8a0; font-size: 14px; }
.legacy table.formTable :is(input, select, textarea):user-invalid { border-color: #d93025; background-color: #fff8f7; }
.legacy table.formTable select {
  -webkit-appearance: none; appearance: none; padding-right: 46px !important; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%2329a04f' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 18px center; background-size: 14px 9px;
}
.legacy table.formTable input[type="file"] {
  display: block; width: 100%; padding: 14px !important; font-size: 14px !important;
  background: var(--surface-2); border: 1.5px dashed #c5d6cb; border-radius: 12px; cursor: pointer;
}
.legacy table.formTable input[type="file"]::file-selector-button {
  margin-right: 12px; padding: 8px 16px; font: inherit; font-weight: 800; color: var(--green-800);
  background: #fff; border: 1.5px solid var(--green-600); border-radius: 999px; cursor: pointer;
}

/* チェックボックス・ラジオの選択肢（app.js が文字ごと label で包む＝文字を押しても選べる） */
.legacy table.formTable td ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: 15px; }
.legacy table.formTable td ul li { margin: 0; padding: 0; border: 0; font-weight: 500; line-height: 1.6; }
.legacy table.formTable td ul li::before { content: none; }
/* 選択肢ではない行（「追記事項」＋入力欄） */
.legacy table.formTable td ul li:not(:has(input[type="checkbox"], input[type="radio"])) { margin-top: 6px; font-weight: 800; }
.legacy table.formTable td ul li:not(:has(input[type="checkbox"], input[type="radio"])) :is(textarea, input) { margin-top: 8px; }
.legacy table.formTable .oldform__choice {
  display: flex; align-items: flex-start; gap: 10px; margin: 0 0 8px; padding: 12px 14px;
  font-size: 15px; font-weight: 500; line-height: 1.6; color: var(--ink);
  background: var(--surface-2); border: 1.5px solid transparent; border-radius: 12px; cursor: pointer;
  transition: border-color .15s, background-color .15s, box-shadow .15s;
}
.legacy table.formTable li > .oldform__choice { margin: 0; }
.legacy table.formTable .oldform__choice:hover { border-color: #c5d6cb; }
.legacy table.formTable .oldform__choice:has(:checked) { background: #fff; border-color: var(--green-600); box-shadow: 0 0 0 3px rgba(41, 160, 79, .1); font-weight: 700; }
.legacy table.formTable :is(input[type="checkbox"], input[type="radio"]) {
  flex: none; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--green-600); cursor: pointer;
}
.legacy table.formTable .oldform__choice + br { display: none; }

/* 送信ボタン（.form-button > .submit_button／align=center の素の submit） */
.legacy form:has(table.formTable) :is(.form-button, div[align="center"]) { margin: 22px 0 0; text-align: center; }
.legacy form:has(table.formTable) input[type="submit"] {
  display: block; width: 100%; max-width: 520px; min-height: 64px; margin: 0 auto; padding: 14px 24px !important;
  font: inherit; font-size: 18px !important; font-weight: 900; letter-spacing: .06em; color: #fff;
  background: var(--cta); border: 0; border-radius: 999px; cursor: pointer; -webkit-appearance: none; appearance: none;
  box-shadow: 0 5px 0 var(--cta-dark), 0 12px 26px rgba(255, 122, 24, .3);
  transition: background-color .15s, transform .15s, box-shadow .15s;
}
.legacy form:has(table.formTable) input[type="submit"]:hover { background: #ff8a33; transform: translateY(-1px); }
.legacy form:has(table.formTable) input[type="submit"]:active { transform: translateY(4px); box-shadow: 0 1px 0 var(--cta-dark); }
.legacy form:has(table.formTable) input[type="submit"]:focus-visible { outline: 3px solid var(--green-600); outline-offset: 4px; }
.legacy form:has(table.formTable) .oldform__lead { margin: 0 0 16px; font-size: 13px; color: var(--ink-3); }
/* フォーム内の小見出し（カリキュラム登録の「■練習場レッスン」など） */
.legacy form:has(table.formTable) > .midashi-sp9 { margin: 26px 0 12px !important; }

/* フォームのあるページの「→前のページに戻る」 */
.legacy:has(table.formTable) .backward { margin: 14px 0; }
.legacy:has(table.formTable) .backward a {
  display: inline-flex; align-items: center; padding: 8px 16px; font-size: 14px; font-weight: 700;
  color: var(--green-800); text-decoration: none; background: var(--surface-2); border: 1px solid var(--line-color); border-radius: 999px;
}
.legacy:has(table.formTable) .backward a:hover { background: var(--green-050); border-color: #bfe0c9; }

/* 新テンプレート外の単独フォームページ（コーチ問合せ・ゴルフ場・練習場）の簡易ヘッダー／フッター */
.formpage__head { background: #fff; border-bottom: 1px solid var(--line-color); }
.formpage__head .wrap { display: flex; align-items: center; min-height: 64px; }
.formpage__logo { display: flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; }
.formpage__logo img { display: block; width: 38px; height: 38px; }
.formpage__logo b { display: block; font-size: 15px; font-weight: 900; line-height: 1.3; letter-spacing: .02em; }
.formpage__logo small { display: block; font-size: 11px; color: var(--ink-3); line-height: 1.4; }
.formpage__foot { padding: 24px 16px 32px; text-align: center; font-size: 12px; color: var(--ink-3); border-top: 1px solid var(--line-color); }
.legacy .formpage__check {
  margin: 14px 0; padding: 12px 16px; font-size: 14.5px; font-weight: 700;
  background: var(--green-050); border: 1px solid #cfe9d6; border-radius: 12px;
}

@media (max-width: 560px) {
  .legacy form:has(table.formTable) { padding: 22px 14px 24px; border-radius: 18px; }
  .legacy table.formTable tr { padding: 16px 14px 16px 52px; }
  .legacy table.formTable th::before { left: 14px; top: 16px; width: 26px; height: 26px; font-size: 13px; }
  .legacy table.formTable .oldform__choice { padding: 11px 12px; font-size: 14.5px; }
}

/* ========== 2026-10-08 各校ページ：ヒーロー先頭にトップと同じキャッチ（app.js の buildSchoolPage が挿入） ==========
   「9割が未経験者／初心者＆未経験者のための／ゴルフ無料体験、大好評受付中！！」
   スマホは写真をボタンの後ろに回し、キャッチを最初に見せる */
.legacy p.school-catch {
  margin: 0 0 16px !important; padding: 0 !important;
  font-size: clamp(34px, 4.8vw, 56px); font-weight: 900; line-height: 1.2; color: var(--green-800);
}
.legacy .school-catch > span { display: block; }
.legacy .school-catch__kicker {
  display: inline-block !important; margin-bottom: .3em;
  font-size: .8em; color: #0f3d22; background: #ffd84d;
  padding: .08em .6em .12em; border-radius: 999px; transform: rotate(-2deg);
  box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
}
.legacy .school-catch__num { font-size: 1.45em; line-height: 1; margin-right: .02em; color: var(--cta-dark); }
.legacy .school-catch__for { font-size: .68em; font-weight: 800; color: var(--ink); margin-bottom: .08em; }
.legacy .school-catch__big { letter-spacing: -.01em; }
.legacy .school-catch__big em {
  font-style: normal; color: var(--cta-dark);
  background: linear-gradient(transparent 70%, rgba(255, 216, 77, .9) 70%);
}
.legacy .school-catch__open { display: inline-block; color: var(--cta-dark); }
/* キャッチがあるときは校名の見出しを一段控えめに（H1 の文言はそのまま） */
.legacy .school-hero.has-catch .school-hero__name { font-size: clamp(28px, 4vw, 40px); }
.legacy .school-hero.has-catch .school-hero__tag--open { display: none; }
@media (max-width: 899px) {
  .legacy .school-hero.has-catch .school-hero__media { order: 1; }
}
@media (max-width: 640px) {
  .legacy p.school-catch { font-size: clamp(30px, 9.4vw, 40px); margin-bottom: 14px !important; }
  .legacy .school-catch__for { font-size: .66em; }
}

/* ========== 2026-10-08 下層ページ：H1 の直後の無料体験の帯（app.js の embedPageHook が挿入）。最新情報は本文の後ろ ========== */
.legacy .page-hook {
  margin: 0 0 28px; padding: clamp(16px, 2.6vw, 26px);
  background: var(--sky-soft); border: 2px solid var(--sun); border-radius: var(--radius-lg);
}
.legacy .page-hook p.school-catch { font-size: clamp(25px, 3.6vw, 36px); margin-bottom: 10px !important; }
.legacy p.page-hook__ctx { margin: 0 0 14px !important; font-size: 15px; font-weight: 800; color: var(--green-800); line-height: 1.7; }
.legacy .page-hook__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.legacy .page-hook__actions .btn { flex: 1 1 240px; min-height: 52px; }
.legacy p.page-hook__note { margin: 10px 0 0 !important; font-size: 12.5px; color: var(--ink-2); line-height: 1.7; }
.legacy a.page-hook__tel:is(:link, :visited) { padding: 0; font-weight: 800; color: var(--green-800); white-space: nowrap; }
/* ========== 2026-10-10 各校ページ：キャッチの直下に「当スクールの特徴」8項目（app.js の makeFeat8。トップの feat8 と同じ文言を詰めた一覧で） ========== */
.legacy .school-feat {
  margin: 0 0 18px; padding: 12px 14px 4px;
  background: #fff; border: 2px solid #ffd84d; border-radius: 14px;
  box-shadow: 0 6px 16px rgba(13, 59, 31, .08);
}
.legacy p.school-feat__title {
  display: flex; align-items: center; gap: 8px;
  margin: 0 0 4px !important; padding: 0 !important;
  font-size: 15px !important; font-weight: 900; line-height: 1.4 !important; color: var(--green-800);
}
.legacy p.school-feat__title::before {
  content: ""; flex: none; width: 5px; height: 1.1em; border-radius: 3px;
  background: linear-gradient(180deg, var(--cta) 0 50%, #ffd84d 50% 100%);
}
.legacy ul.school-feat__list {
  list-style: none !important; margin: 0 !important; padding: 0 !important;
  display: grid; grid-template-columns: minmax(0, 1fr);
}
.legacy ul.school-feat__list > li {
  display: flex; align-items: center; gap: 9px;
  margin: 0 !important; padding: 6px 0 !important; list-style: none !important;
  background: none !important; border: 0; border-bottom: 1px dashed #cfe8d7;
  font-size: 13.5px !important; font-weight: 800; line-height: 1.45 !important; color: var(--ink);
}
.legacy ul.school-feat__list > li::before,
.legacy ul.school-feat__list > li::after { content: none !important; }
.legacy ul.school-feat__list > li:last-child { border-bottom: 0; }
.legacy .school-feat__ico {
  flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%;
  background: var(--green-050); box-shadow: inset 0 0 0 2px var(--green-100);
}
.legacy .school-feat__ico svg {
  width: 15px; height: 15px; fill: none; stroke: var(--green-700, #1b7a3e);
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}
.legacy .school-feat__list > li:nth-child(odd) .school-feat__ico { background: var(--cta-soft); box-shadow: inset 0 0 0 2px #ffdcbc; }
.legacy .school-feat__list > li:nth-child(odd) .school-feat__ico svg { stroke: var(--cta-dark); }
.legacy .school-feat__text em {
  font-style: normal; font-size: 1.15em; font-weight: 900; color: var(--cta-dark);
  background: linear-gradient(transparent 64%, #fff1a8 64%); padding: 0 1px;
}
.legacy .school-feat__text small { font-size: 11.5px; font-weight: 700; color: var(--ink-3); }
.legacy .school-feat__text small em { font-size: 1.15em; }
/* 写真が横に並ばない幅（641〜899px）と、写真の無い教室のPCは2列 */
@media (min-width: 641px) and (max-width: 899px) {
  .legacy ul.school-feat__list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; }
}
@media (min-width: 900px) {
  .legacy .school-hero:not(.has-media) ul.school-feat__list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
}/* スマホは校名（H1）が下がりすぎないよう、長い補足2つ（6・8番目）を省く */
@media (max-width: 640px) {
  .legacy .school-feat { padding: 10px 12px 2px; margin-bottom: 14px; }
  .legacy ul.school-feat__list > li { padding: 5px 0 !important; }
  .legacy .school-feat__list > li:nth-child(6) small,
  .legacy .school-feat__list > li:nth-child(8) small { display: none; }
}
