@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ============================================================
   目次（この目次の行番号は、目次込みのファイル全体での行番号です）
   ・探すときは「【02】」などの番号で検索すると早いです
   ・CSSを追加・削除すると行番号はずれます（目安として使ってください）
------------------------------------------------------------
     66  【01】ページタイトル（H1）サイト共通
     74    ・共通：明朝体のタイトル
     89    ・タイトル背景画像の上
     95    ・画像なしでコンテンツ内に表示
     98    ・ふわっと表示
    105    ・スマホ
    114  【02】コース詳細ページ共通（.sfc）
    120    ・基本設定・色の変数
    132    ・見出し・セクション番号
    147    ・ヒーロー・実績数字
    164    ・ボタン
    174    ・こんな方へ
    180    ・試験概要（表・スコア・補足枠）
    200    ・SWELLの表デザイン打ち消し
    206    ・2級の壁・落ちる理由
    219    ・講師の視点
    231    ・対策（技能別）
    244    ・自宅学習メニュー例
    249    ・技能別の補足（枠・手順・Q&A・チップ）
    265    ・写真・講師の顔写真
    288    ・スケジュール
    300    ・合格者の声
    310    ・合格事例
    320    ・料金
    331    ・FAQ
    343    ・最後のCTA
    352    ・記入待ちの目印
    356    ・スマホ（ここまでの部品）
    394    ・追加：準1級ページ以降の部品
    403    ・英検まとめページの部品
    404      ・合格実績
    415      ・4回1サイクル
    432      ・特長カード
    438      ・級別コースカード
    458      ・2列の比較ボックス
    465      ・3列の表
    480      ・4回1サイクル：下の補足欄
    486      ・まとめページの写真
    498    ・技能別の説明（アコーディオン）
    516  【03】追従LINEボタン（.sff）
    555  【04】メインビジュアルの文字（明朝体）
    567  【05】メインビジュアルの強みバッジ（.sfm）
    593  【06】目次（SWELLの目次機能）
    651    ・目次ポップアップ（スマホ）
============================================================ */

/* ============================================================
   【01】サンフレンズ英語塾｜ページタイトル（H1）サイト共通CSS
   ・設置場所：外観 → カスタマイズ → 追加CSS（他のCSSとは別に貼る）
   ・SWELLの .c-pageTitle に効きます（固定ページ・アーカイブなどサイト全体）
   ・タイトル背景画像の上に表示される場合と、画像なしでコンテンツ内に表示される場合の両方に対応
   ・背景画像の上では、見出しの部分だけに半透明の紺の背景が付きます（濃さは rgba の最後の .6 で調整）
============================================================ */

/* ---------- 共通：明朝体のタイトル ---------- */
.c-pageTitle{
  position:relative;margin:0;padding:0;border:none;background:none;box-shadow:none;
  font-family:"Shippori Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho",serif;
  font-weight:600;letter-spacing:.14em;line-height:1.5}
.c-pageTitle__inner{display:inline;padding:0!important;margin:0;border:none!important;background:none!important;box-shadow:none!important;color:inherit}
.c-pageTitle__inner::before,.c-pageTitle__inner::after{content:none!important;display:none!important}
/* 上の英字ラベル */
.c-pageTitle::before{
  content:"SAN FRIENDS ENGLISH";position:static;display:block;width:auto;height:auto;background:none;border:none;transform:none;opacity:1;
  font-family:"LINE Seed JP","Hiragino Sans","Noto Sans JP",sans-serif;font-size:11px;font-weight:700;letter-spacing:.42em;line-height:1;margin:0 0 18px;color:#A8824A}
/* 下の金の細線 */
.c-pageTitle::after{
  content:"";position:static;display:block;width:56px;height:1px;margin:22px 0 0;border:none;transform:none;opacity:1;background:#A8824A}

/* ---------- タイトル背景画像の上（今の表示） ---------- */
#top_title_area .c-pageTitle{color:#fff;font-size:40px;display:inline-block;padding:30px 44px 28px;
  background:rgba(22,33,58,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:4px}
#top_title_area .c-pageTitle::before{color:#D8C29C}
#top_title_area .c-pageTitle::after{background:#D8C29C;width:64px}

/* ---------- 画像なしでコンテンツ内に表示される場合 ---------- */
.l-mainContent .c-pageTitle{color:#16213A;font-size:34px;margin:8px 0 48px}

/* ---------- ふわっと表示 ---------- */
@keyframes sf-title-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes sf-line-in{from{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}
.c-pageTitle{animation:sf-title-in 1s cubic-bezier(.2,.7,.2,1) both}
.c-pageTitle::after{transform-origin:left center;animation:sf-line-in 1s cubic-bezier(.2,.7,.2,1) .4s both}
@media (prefers-reduced-motion:reduce){.c-pageTitle,.c-pageTitle::after{animation:none}}

/* ---------- スマホ ---------- */
@media (max-width:767px){
  #top_title_area .c-pageTitle{font-size:26px;letter-spacing:.1em}
  .c-pageTitle::before{font-size:10px;letter-spacing:.32em;margin-bottom:12px}
  .c-pageTitle::after{margin-top:16px;width:44px}
  #top_title_area .c-pageTitle{padding:20px 24px 18px}
  .l-mainContent .c-pageTitle{font-size:25px;margin-bottom:36px}
}

/* ============================================================
   【02】サンフレンズ英語塾｜コース詳細ページ共通CSS（.sfc）
   設置場所：外観 → カスタマイズ → 追加CSS に貼り付け
   ・すべてのコース詳細ページで共通して使えます
   ・効く範囲は <div class="sfc"> の中だけです（セクション番号用に body に counter-reset を1つ設定）
============================================================ */
.sfc{
  --ink:#16213A;--ink-2:#24324F;--gold:#A8824A;--gold-l:#D8C29C;--gold-p:#F5EEE1;
  --ivory:#FAF7F1;--text:#2A2E37;--muted:#6B7080;--line:#E4DCCD;
  --serif:"Shippori Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho",serif;
  --sans:"LINE Seed JP","Hiragino Sans","Noto Sans JP","Yu Gothic",sans-serif;
  font-family:var(--sans);color:var(--text);font-size:16px;line-height:1.9;letter-spacing:.02em;
  max-width:980px;margin:0 auto}
.sfc *{box-sizing:border-box}
.sfc p{margin:0 0 1.1em}
.sfc a{color:inherit}
.sfc .sfc-sec{margin:0 0 96px}

/* ---------- 見出し（SWELLの装飾をリセット。目次には反映されます） ---------- */
.sfc h2.sfc-h2,.sfc h3.sfc-h3{all:unset;display:block;font-family:var(--serif);color:var(--ink);font-weight:600}
.sfc h2.sfc-h2::before,.sfc h2.sfc-h2::after,.sfc h3.sfc-h3::before,.sfc h3.sfc-h3::after{content:none!important;display:none!important}
.sfc-head{text-align:center;margin:0 0 44px}
/* セクション番号は自動で振られます（セクションを外しても番号が詰まります） */
body{counter-reset:sfc-sec}
.sfc-head .sfc-no{counter-increment:sfc-sec}
.sfc-head .sfc-no::before{content:counter(sfc-sec,decimal-leading-zero)}
.sfc-head .sfc-no{display:block;font-family:var(--serif);color:var(--gold);font-size:15px;letter-spacing:.3em;margin-bottom:6px}
.sfc h2.sfc-h2{font-size:30px;line-height:1.5;letter-spacing:.08em}
.sfc-head .sfc-en{display:block;font-size:11px;letter-spacing:.35em;color:var(--muted);text-transform:uppercase;margin-top:10px}
.sfc-head::after{content:"";display:block;width:40px;height:1px;background:var(--gold);margin:22px auto 0}
.sfc h3.sfc-h3{font-size:21px;line-height:1.6;letter-spacing:.05em;margin:0 0 14px}
.sfc .sfc-lead{text-align:center;color:var(--muted);max-width:720px;margin:-16px auto 40px}

/* ---------- ヒーロー ---------- */
.sfc-hero{position:relative;background:var(--ink);color:#fff;border-radius:4px;padding:72px 48px 56px;text-align:center;overflow:hidden;margin:0 0 72px}
.sfc-hero::before{content:"";position:absolute;inset:14px;border:1px solid rgba(216,194,156,.45);pointer-events:none}
.sfc-hero .sfc-label{display:block;font-size:12px;letter-spacing:.4em;color:var(--gold-l);margin-bottom:22px}
.sfc-hero .sfc-catch{font-family:var(--serif);font-size:34px;line-height:1.6;letter-spacing:.08em;margin:0 0 20px;color:#fff}
.sfc-hero .sfc-sub{color:#C9CFDB;font-size:15px;max-width:620px;margin:0 auto 40px}
.sfc-kpis{display:grid;grid-template-columns:repeat(3,1fr);max-width:720px;margin:0 auto;border-top:1px solid rgba(216,194,156,.35);border-bottom:1px solid rgba(216,194,156,.35)}
.sfc-kpi{padding:20px 8px}
.sfc-kpi+.sfc-kpi{border-left:1px solid rgba(216,194,156,.35)}
.sfc-kpi small{display:block;font-size:12px;color:#AEB6C6;letter-spacing:.1em}
.sfc-kpi strong{display:block;font-family:var(--serif);font-size:34px;font-weight:500;color:var(--gold-l);line-height:1.4}
.sfc-kpi strong span{font-size:15px;margin-left:2px}

/* ブログパーツ経由でも実績とボタンの間隔を確保 */
.sfc-hero .p-blogParts{margin:0!important}
.sfc-hero .sfc-btns{margin-top:40px}

/* ---------- ボタン ---------- */
.sfc-btns{display:flex;justify-content:center;flex-wrap:wrap;gap:14px}
.sfc a.sfc-btn{display:inline-block;min-width:240px;text-align:center;text-decoration:none;font-weight:700;letter-spacing:.1em;font-size:15px;padding:16px 28px;border-radius:2px;transition:.25s}
.sfc a.sfc-btn.is-gold{background:var(--gold);color:#fff}
.sfc a.sfc-btn.is-gold:hover{background:#94713D}
.sfc a.sfc-btn.is-line{border:1px solid var(--gold-l);color:#fff}
.sfc a.sfc-btn.is-line:hover{background:rgba(216,194,156,.12)}
.sfc a.sfc-btn.is-dark{border:1px solid var(--ink);color:var(--ink)}
.sfc a.sfc-btn.is-dark:hover{background:var(--ink);color:#fff}

/* ---------- こんな方へ ---------- */
.sfc-for{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.sfc-for li{position:relative;padding:20px 0 20px 40px;margin:0;border-bottom:1px solid var(--line);font-size:16px}
.sfc-for li::marker{content:none}
.sfc-for li::before{content:"";position:absolute;left:4px;top:28px;width:16px;height:9px;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}

/* ---------- 試験概要 ---------- */
.sfc-split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.sfc-dl{margin:0;border-top:1px solid var(--ink)}
.sfc-dl div{display:grid;grid-template-columns:130px 1fr;border-bottom:1px solid var(--line);padding:16px 0}
.sfc-dl dt{font-family:var(--serif);color:var(--ink);font-weight:600}
.sfc-dl dd{margin:0;font-size:15px}
.sfc-table{width:100%;border-collapse:collapse;font-size:15px;margin:0}
.sfc-table th,.sfc-table td{border:none;border-bottom:1px solid var(--line);padding:14px 12px;text-align:left;vertical-align:top;background:none;line-height:1.7}
.sfc-table thead th{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);font-family:var(--serif);color:var(--ink);font-weight:600;font-size:14px;letter-spacing:.08em}
.sfc-table tbody th{font-family:var(--serif);color:var(--ink);font-weight:600;white-space:nowrap}
.sfc-table .is-new{display:inline-block;font-size:11px;font-weight:700;color:#fff;background:var(--gold);padding:0 8px;margin-left:6px;letter-spacing:.1em;vertical-align:2px}
.sfc-scores{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:32px 0 0}
.sfc-score{border:1px solid var(--line);background:#fff;padding:22px;text-align:center}
.sfc-score small{display:block;font-size:13px;color:var(--muted);letter-spacing:.08em}
.sfc-score strong{display:block;font-family:var(--serif);font-size:36px;font-weight:500;color:var(--ink);line-height:1.4}
.sfc-score strong span{font-size:15px;color:var(--muted);margin-left:4px}
.sfc-callout{border-left:2px solid var(--gold);background:var(--ivory);padding:20px 24px;margin:32px 0 0;font-size:15px}
.sfc-callout b{display:block;font-family:var(--serif);color:var(--ink);font-size:17px;margin-bottom:4px}
.sfc-callout p:last-child{margin:0}

/* SWELLの表デザインを打ち消す */
.sfc .sfc-table{border:none!important;background:none!important}
.sfc .sfc-table th,.sfc .sfc-table td{background:none!important;border-top:none!important;border-left:none!important;border-right:none!important;border-bottom:1px solid var(--line)!important;color:var(--text)}
.sfc .sfc-table thead th{background:none!important;color:var(--ink)!important;border-top:1px solid var(--ink)!important;border-bottom:1px solid var(--ink)!important;padding:12px!important;font-family:var(--serif);font-weight:600}
.sfc .sfc-table tbody th{color:var(--ink)!important}

/* ---------- 2級の壁 ---------- */
.sfc-walls{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:0 0 48px}
.sfc-wall{background:#fff;padding:28px 22px}
.sfc-wall .sfc-num{display:block;font-family:var(--serif);font-size:28px;color:var(--gold);line-height:1;margin-bottom:14px}
.sfc-wall b{display:block;font-family:var(--serif);color:var(--ink);font-size:17px;line-height:1.6;margin-bottom:8px}
.sfc-wall p{font-size:14px;color:var(--muted);margin:0;line-height:1.8}
.sfc-fail{background:var(--ink);color:#E6E9F0;padding:40px 44px}
.sfc-fail h3.sfc-h3{color:#fff}
.sfc-fail ol{margin:0;padding:0;list-style:none;counter-reset:f}
.sfc-fail li{counter-increment:f;position:relative;padding:12px 0 12px 44px;margin:0;border-bottom:1px solid rgba(255,255,255,.12);font-size:15px}
.sfc-fail li::marker{content:none}
.sfc-fail li::before{content:counter(f,decimal-leading-zero);position:absolute;left:0;top:12px;font-family:var(--serif);color:var(--gold-l)}

/* 講師の視点 */
.sfc-view{border:1px solid var(--gold-l);background:#fff;padding:40px 44px;margin:48px 0 0;position:relative}
.sfc-view-label{position:absolute;top:-12px;left:40px;background:var(--gold);color:#fff;font-size:12px;font-weight:700;letter-spacing:.2em;padding:2px 16px}
.sfc-view-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 24px}
.sfc-view-item{display:flex;gap:14px;align-items:flex-start;background:var(--ivory);padding:18px 20px}
.sfc-view-item span{font-family:var(--serif);font-size:24px;color:var(--gold);line-height:1.2}
.sfc-view-item p{margin:0;font-size:15px}
.sfc-view strong{color:var(--ink)}
.sfc-view-answer{border-top:1px solid var(--line);padding-top:20px}
.sfc-view-answer b{display:block;font-family:var(--serif);color:var(--ink);font-size:17px;margin-bottom:6px}
.sfc-view-answer p{margin:0;font-size:15px}

/* ---------- 対策（技能別） ---------- */
.sfc-skills{display:grid;gap:0;border-top:1px solid var(--ink)}
.sfc-skill{display:grid;grid-template-columns:200px 1fr;gap:32px;padding:32px 0;border-bottom:1px solid var(--line)}
.sfc-skill-name{font-family:var(--serif)}
.sfc-skill-name small{display:block;font-size:11px;letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
.sfc-skill-name b{display:block;font-size:22px;color:var(--ink);font-weight:600;line-height:1.5}
.sfc-skill p{margin:0 0 .6em}
.sfc-skill ul{margin:8px 0 0;padding:0;list-style:none}
.sfc-skill li{position:relative;padding:3px 0 3px 18px;margin:0;font-size:15px}
.sfc-skill li::marker{content:none}
.sfc-skill li::before{content:"";position:absolute;left:0;top:15px;width:8px;height:1px;background:var(--gold)}
.sfc-skill .sfc-tag{display:inline-block;font-size:12px;font-weight:700;color:var(--gold);border:1px solid var(--gold);padding:0 10px;margin-left:8px;letter-spacing:.06em;vertical-align:3px}

/* 自宅学習メニュー例 */
.sfc-menu{background:var(--ivory);border:1px solid var(--line);padding:36px 40px;margin:48px 0 0}
.sfc-menu .sfc-table th:last-child{text-align:right}
.sfc-menu .sfc-table td:last-child{white-space:nowrap;text-align:right;font-family:var(--serif);color:var(--ink)}

/* 技能別の補足（枠・手順・Q&A） */
.sfc-skill strong{color:var(--ink)}
.sfc-skill .sfc-box{background:var(--ivory);border:1px solid var(--line);padding:18px 22px;margin:16px 0 0;font-size:15px}
.sfc-skill .sfc-box b{display:block;font-family:var(--serif);color:var(--ink);font-size:16px;margin-bottom:4px}
.sfc-skill .sfc-box p{margin:0}
.sfc-qa{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:4px}
.sfc-qa .sfc-box{margin-top:12px}
.sfc-steps{list-style:none;padding:0;margin:12px 0 0;counter-reset:s}
.sfc-steps li{counter-increment:s;position:relative;padding:8px 0 8px 40px;margin:0;font-size:15px;border-bottom:1px dotted var(--line)}
.sfc-steps li::marker{content:none}
.sfc-skill .sfc-steps li::before{content:counter(s);background:#fff;position:absolute;left:0;top:8px;width:26px;height:26px;border:1px solid var(--gold);border-radius:50%;color:var(--gold);font-family:var(--serif);font-size:14px;line-height:24px;text-align:center}
.sfc-skill .sfc-mini{font-size:14px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;margin:16px 0 0}
.sfc-chips{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.sfc-chips li{margin:0;padding:6px 16px;border:1px solid var(--gold-l);background:#fff;font-size:14px;color:var(--ink)}
.sfc-chips li::marker,.sfc-chips li::before{content:none}

/* ---------- 写真 ---------- */
.sfc figure.sfc-photo{position:relative;margin:0 0 48px;padding:0;overflow:hidden;background:var(--gold-p)}
.sfc figure.sfc-photo img{display:block;width:100%;height:100%;aspect-ratio:21/9;object-fit:cover;margin:0;border-radius:0;max-width:none}
.sfc figure.sfc-photo::before{content:"";position:absolute;inset:12px;border:1px solid rgba(255,255,255,.55);pointer-events:none;z-index:1}
.sfc figure.sfc-photo figcaption{position:absolute;left:0;bottom:0;z-index:2;background:var(--ink);color:var(--gold-l);font-family:var(--serif);font-size:14px;letter-spacing:.12em;padding:10px 22px;margin:0;text-align:left}
.sfc-with-photo{display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:start}
.sfc figure.sfc-photo.is-side{margin:0;position:sticky;top:90px}
.sfc figure.sfc-photo.is-side img{aspect-ratio:4/5}
/* 講師の視点：講師の顔写真 */
.sfc-view-who{display:flex;align-items:center;gap:14px;margin:0 0 18px}
.sfc-view-who img{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:center 20%;border:2px solid var(--gold-l);margin:0;flex:0 0 auto}
.sfc .sfc-view-who p{margin:0;font-size:12px;color:var(--muted);line-height:1.5}
.sfc-view-who p b{display:block;font-family:var(--serif);font-size:17px;color:var(--ink)}
@media (max-width:767px){
  .sfc figure.sfc-photo{margin-bottom:36px}
  .sfc figure.sfc-photo img{aspect-ratio:4/3}
  .sfc figure.sfc-photo::before{inset:8px}
  .sfc figure.sfc-photo figcaption{font-size:12px;padding:8px 16px}
  .sfc-with-photo{grid-template-columns:1fr;gap:28px}
  .sfc figure.sfc-photo.is-side{position:static}
  .sfc figure.sfc-photo.is-side img{aspect-ratio:16/10}
}

/* ---------- スケジュール ---------- */
.sfc-time{list-style:none;padding:0;margin:0;position:relative}
.sfc-time::before{content:"";position:absolute;left:111px;top:8px;bottom:8px;width:1px;background:var(--gold-l)}
.sfc-time li{display:grid;grid-template-columns:96px 1fr;gap:40px;padding:0 0 32px;margin:0;position:relative}
.sfc-time li::marker{content:none}
.sfc-time li::before{content:"";position:absolute;left:106px;top:9px;width:11px;height:11px;border-radius:50%;background:#fff;border:1px solid var(--gold)}
.sfc-time li:last-child{padding-bottom:0}
.sfc-time li:last-child::before{background:var(--gold)}
.sfc-time-when{font-family:var(--serif);color:var(--gold);font-size:15px;text-align:right;line-height:1.6}
.sfc-time b{display:block;font-family:var(--serif);color:var(--ink);font-size:18px;margin-bottom:4px}
.sfc-time p{margin:0;font-size:15px;color:var(--muted)}

/* ---------- 合格者の声 ---------- */
.sfc-voices{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.sfc-voice{background:#fff;border:1px solid var(--line);padding:32px 26px 26px;position:relative}
.sfc-voice::before{content:"“";position:absolute;top:2px;left:18px;font-family:var(--serif);font-size:60px;color:var(--gold-l);line-height:1}
.sfc-voice .sfc-who{display:block;font-size:13px;color:var(--gold);letter-spacing:.06em;margin-bottom:10px;font-weight:700}
.sfc-voice p{font-size:15px}
.sfc-voice dl{margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--line);font-size:13px;display:grid;grid-template-columns:auto 1fr;gap:4px 12px}
.sfc-voice dt{color:var(--muted)}
.sfc-voice dd{margin:0;color:var(--ink);font-weight:700}

/* ---------- 合格事例 ---------- */
.sfc-cases{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.sfc-case{background:#fff;border:1px solid var(--line);border-top:2px solid var(--gold);padding:28px 26px 24px;display:flex;flex-direction:column}
.sfc-case-no{font-family:var(--serif);font-size:13px;letter-spacing:.3em;color:var(--gold)}
.sfc-case-who{display:block;font-size:13px;color:var(--muted);margin:6px 0 12px}
.sfc .sfc-case-title{word-break:auto-phrase;font-family:var(--serif);font-size:19px;line-height:1.6;color:var(--ink);font-weight:600;margin:0 0 18px}
.sfc-case dl{margin:auto 0 0;padding:14px 0 0;border-top:1px solid var(--line);font-size:14px;display:grid;grid-template-columns:auto 1fr;gap:6px 14px}
.sfc-case dt{color:var(--muted)}
.sfc-case dd{margin:0;color:var(--ink);font-weight:700}

/* ---------- 料金 ---------- */
.sfc-prices{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:0 0 20px}
.sfc-price{border:1px solid var(--line);background:#fff;padding:32px;text-align:center;position:relative}
.sfc-price.is-rec{border:1px solid var(--gold);background:var(--ivory)}
.sfc-price .sfc-rec{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--gold);color:#fff;font-size:12px;font-weight:700;letter-spacing:.12em;padding:2px 16px;white-space:nowrap}
.sfc-price b{display:block;font-family:var(--serif);color:var(--ink);font-size:18px;font-weight:600}
.sfc-price strong{display:block;font-family:var(--serif);font-size:44px;font-weight:500;color:var(--ink);line-height:1.4;margin:8px 0}
.sfc-price strong span{font-size:15px;color:var(--muted);margin-left:4px}
.sfc-price p{font-size:14px;color:var(--muted);margin:0}
.sfc-note{font-size:13px;color:var(--muted);text-align:center;margin:0 0 28px}

/* ---------- FAQ ---------- */
.sfc-faq{border-top:1px solid var(--ink)}
.sfc-faq details{border-bottom:1px solid var(--line)}
.sfc-faq summary{list-style:none;cursor:pointer;position:relative;padding:22px 48px 22px 44px;font-family:var(--serif);font-size:17px;color:var(--ink);font-weight:600;line-height:1.6}
.sfc-faq summary::-webkit-details-marker{display:none}
.sfc-faq summary::before{content:"Q";position:absolute;left:4px;top:20px;font-size:22px;color:var(--gold)}
.sfc-faq summary::after{content:"";position:absolute;right:12px;top:30px;width:9px;height:9px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);transform:rotate(45deg);transition:.2s}
.sfc-faq details[open] summary::after{transform:rotate(-135deg);top:34px}
.sfc-faq .sfc-a{position:relative;padding:0 16px 24px 44px;font-size:15px}
.sfc-faq .sfc-a::before{content:"A";position:absolute;left:4px;top:-4px;font-family:var(--serif);font-size:22px;color:var(--muted)}
.sfc-faq .sfc-a p:last-child{margin:0}

/* ---------- 最後のCTA ---------- */
.sfc-cta{position:relative;background:var(--ink);color:#fff;text-align:center;padding:64px 32px;border-radius:4px}
.sfc-cta::before{content:"";position:absolute;inset:14px;border:1px solid rgba(216,194,156,.45);pointer-events:none}
.sfc-cta .sfc-label{display:block;font-size:12px;letter-spacing:.4em;color:var(--gold-l);margin-bottom:16px}
.sfc-cta .sfc-catch{font-family:var(--serif);font-size:26px;letter-spacing:.08em;line-height:1.6;margin:0 0 12px}
.sfc-cta p{color:#C9CFDB;margin:0 0 32px;font-size:15px}
.sfc-cta p b{color:var(--gold-l)}
.sfc-cta .sfc-btns{position:relative}

/* ---------- 記入待ちの目印（公開前にすべて消してください） ---------- */
.sfc .sfc-todo{background:#FFF3B0;outline:2px dashed #E0B400;padding:2px 6px;color:#5A4A00;font-size:14px}
.sfc div.sfc-todo,.sfc p.sfc-todo{display:block;padding:14px 18px;margin:16px 0}

/* ---------- スマホ ---------- */
@media (max-width:767px){
  .sfc{font-size:15px}
  .sfc .sfc-sec{margin-bottom:72px}
  .sfc h2.sfc-h2{font-size:24px}
  .sfc-head{margin-bottom:32px}
  .sfc .sfc-lead{text-align:left;margin:-8px 0 28px}
  .sfc-hero{padding:52px 22px 40px;margin-bottom:56px}
  .sfc-hero::before{inset:8px}
  .sfc-hero .sfc-catch{font-size:24px}
  .sfc-kpi strong{font-size:26px}
  .sfc-kpi small{font-size:11px}
  .sfc a.sfc-btn{display:block;width:100%;min-width:0}
  .sfc-btns{flex-direction:column}
  .sfc-for,.sfc-split,.sfc-scores,.sfc-prices,.sfc-voices,.sfc-cases{grid-template-columns:1fr}
  .sfc-split{gap:32px}
  .sfc-for li{padding:16px 0 16px 36px}
  .sfc-for li::before{top:24px}
  .sfc-dl div{grid-template-columns:96px 1fr}
  .sfc-table th,.sfc-table td{padding:12px 6px}
  .sfc-walls{grid-template-columns:1fr 1fr}
  .sfc-wall{padding:22px 16px}
  .sfc-fail{padding:28px 22px}
  .sfc-view{padding:32px 20px 24px}
  .sfc-view-label{left:20px}
  .sfc-view-grid{grid-template-columns:1fr}
  .sfc-skill{grid-template-columns:1fr;gap:10px;padding:26px 0}
  .sfc-menu{padding:24px 18px}
  .sfc-qa{grid-template-columns:1fr}
  .sfc-time::before{left:7px}
  .sfc-time li{grid-template-columns:1fr;gap:2px;padding-left:32px}
  .sfc-time li::before{left:2px;top:6px}
  .sfc-time-when{text-align:left}
  .sfc-cta{padding:48px 20px}
  .sfc-cta::before{inset:8px}
  .sfc-cta .sfc-catch{font-size:19px}
}

/* ===== 追加：準1級ページ以降で使う部品 ===== */
.sfc-view-grid.is-3{grid-template-columns:repeat(3,1fr)}
.sfc-view-note{font-size:14px;color:var(--muted);line-height:1.9;margin:0 0 24px!important}
.sfc-case-note{font-size:13px;color:var(--muted);line-height:1.8;border-top:1px solid var(--line);padding-top:12px;margin:14px 0 0!important}
.sfc-callout a{color:var(--gold);font-weight:700;text-decoration:underline;text-underline-offset:3px}
@media (max-width:767px){
  .sfc-view-grid.is-3{grid-template-columns:1fr}
}

/* ===== 英検対策（まとめページ）で使う部品 ===== */
/* 合格実績 */
.sfc-results{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.sfc-result{background:#fff;text-align:center;padding:28px 12px 24px}
.sfc-result small{display:block;font-size:12px;color:var(--muted);letter-spacing:.1em}
.sfc-result b{display:block;font-family:var(--serif);color:var(--ink);font-size:17px;margin:2px 0 6px}
.sfc-result strong{display:block;font-family:var(--serif);font-weight:500;font-size:44px;line-height:1.2;color:var(--gold)}
.sfc-result strong span{font-size:15px;color:var(--ink);margin-left:4px}
.sfc-result.is-top{background:var(--ink)}
.sfc-result.is-top small{color:#AEB6C6}
.sfc-result.is-top b,.sfc-result.is-top strong span{color:#fff}
.sfc-result.is-top strong{color:var(--gold-l)}
/* 4回1サイクル */
.sfc-cycle{border:1px solid var(--gold-l);background:var(--ivory);padding:40px 40px 32px;margin:0 0 24px;position:relative}
.sfc-cycle::before{content:"";position:absolute;inset:6px;border:1px solid rgba(168,130,74,.18);pointer-events:none}
.sfc-cycle-head{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:start;margin-bottom:28px}
.sfc-cycle-no{font-family:var(--serif);font-size:44px;line-height:1;color:var(--gold)}
.sfc-cycle-head p{margin:0;font-size:15px}
.sfc ol.sfc-cycle-flow{list-style:none;margin:0!important;padding:0!important;display:grid;grid-template-columns:repeat(4,1fr);gap:28px;position:relative}
.sfc-cycle-flow li{margin:0!important;list-style:none;position:relative;background:#fff;border:1px solid var(--line);text-align:center;padding:18px 8px 16px}
.sfc-cycle-flow li+li::before{content:"";position:absolute;left:-21px;top:50%;width:14px;height:14px;border-top:1px solid var(--gold);border-right:1px solid var(--gold);transform:translateY(-50%) rotate(45deg)}
.sfc-cycle-flow small{display:block;font-family:var(--serif);color:var(--gold);font-size:14px;letter-spacing:.1em}
.sfc-cycle-flow b{display:block;font-family:var(--serif);color:var(--ink);font-size:18px}
.sfc-cycle-flow li.is-meet{background:var(--ink);border-color:var(--ink)}
.sfc-cycle-flow li.is-meet small{color:var(--gold-l)}
.sfc-cycle-flow li.is-meet b{color:#fff}
.sfc-cycle-flow em{display:inline-block;font-style:normal;font-size:11px;font-weight:700;color:var(--ink);background:var(--gold-l);padding:1px 8px;margin-top:6px;letter-spacing:.04em}
.sfc-cycle-next{text-align:center;font-size:13px;color:var(--muted);margin:18px 0 0!important;letter-spacing:.06em}
.sfc-cycle-next::before{content:"↻";color:var(--gold);margin-right:6px;font-size:15px}
/* 特長カード */
.sfc-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.sfc-feat{background:#fff;padding:30px 26px}
.sfc-feat .sfc-num{display:block;font-family:var(--serif);font-size:28px;color:var(--gold);line-height:1;margin-bottom:14px}
.sfc-feat b{display:block;font-family:var(--serif);color:var(--ink);font-size:18px;line-height:1.6;margin-bottom:10px}
.sfc-feat p{font-size:14px;color:var(--muted);margin:0;line-height:1.85}
/* 級別コースカード */
.sfc-lvls{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.sfc-lvls.is-main{grid-template-columns:1fr 1fr;margin-bottom:16px}
.sfc .sfc-lvl{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);padding:26px 24px 22px;text-decoration:none;color:var(--text);transition:border-color .2s,transform .2s}
.sfc .sfc-lvl:hover{border-color:var(--gold);transform:translateY(-2px)}
.sfc-lvl-tag{align-self:flex-start;display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--gold);border:1px solid var(--gold-l);padding:2px 10px;margin-bottom:12px}
.sfc-lvl b{display:block;font-family:var(--serif);font-size:22px;color:var(--ink);line-height:1.4;margin-bottom:8px}
.sfc-lvl b small{font-family:var(--sans);font-size:12px;color:var(--muted);font-weight:400;margin-left:10px;letter-spacing:.06em}
.sfc-lvl p{font-size:14px;color:var(--muted);line-height:1.8;margin:0 0 16px}
.sfc-lvl-more{margin-top:auto;font-size:13px;font-weight:700;color:var(--ink);letter-spacing:.08em}
.sfc-lvl-more::after{content:"→";color:var(--gold);margin-left:8px;transition:margin .2s}
.sfc .sfc-lvl:hover .sfc-lvl-more::after{margin-left:14px}
.sfc .sfc-lvl.is-dark{background:var(--ink);border-color:var(--ink);padding:34px 32px 28px}
.sfc .sfc-lvl.is-dark:hover{border-color:var(--gold)}
.sfc-lvl.is-dark b{color:#fff;font-size:28px}
.sfc-lvl.is-dark b small{color:#AEB6C6}
.sfc-lvl.is-dark p{color:#C9CFDB;font-size:15px}
.sfc-lvl.is-dark .sfc-lvl-tag{color:var(--gold-l);border-color:rgba(216,194,156,.5)}
.sfc-lvl.is-dark .sfc-lvl-more{color:var(--gold-l)}
.sfc .sfc-note a{color:var(--gold);font-weight:700}
/* 2列の比較ボックス */
.sfc-duo{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.sfc-duo-item{background:#fff;border:1px solid var(--line);border-top:2px solid var(--gold);padding:30px 28px 24px}
.sfc .sfc-duo-item ul{margin:0 0 16px!important;padding:0!important;list-style:none}
.sfc-duo-item li{position:relative;padding-left:20px;font-size:15px;margin-bottom:6px}
.sfc-duo-item li::before{content:"";position:absolute;left:2px;top:.75em;width:8px;height:1px;background:var(--gold)}
.sfc-duo-item p{font-size:14px;color:var(--muted);margin:0;border-top:1px solid var(--line);padding-top:14px}
/* 3列の表 */
.sfc-table.sfc-table-3 td{width:40%}
@media (max-width:767px){
  .sfc-results{grid-template-columns:1fr 1fr}
  .sfc-result strong{font-size:36px}
  .sfc-cycle{padding:28px 20px 24px}
  .sfc-cycle-head{grid-template-columns:1fr;gap:8px}
  .sfc-cycle-no{font-size:34px}
  .sfc ol.sfc-cycle-flow{grid-template-columns:1fr 1fr;gap:12px}
  .sfc-cycle-flow li+li::before{display:none}
  .sfc-feats,.sfc-lvls,.sfc-lvls.is-main,.sfc-duo{grid-template-columns:1fr}
  .sfc .sfc-lvl.is-dark{padding:28px 22px 24px}
  .sfc-lvl.is-dark b{font-size:24px}
  .sfc-duo-item{padding:24px 20px 20px}
}
/* 4回1サイクル：下の補足欄 */
.sfc-cycle-more{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}
.sfc-cycle-more b{display:block;font-family:var(--serif);color:var(--ink);font-size:16px;margin-bottom:6px}
.sfc-cycle-more p{font-size:14px;color:var(--muted);line-height:1.85;margin:0}
.sfc-cycle-more small{display:block;font-size:12px;margin-top:6px}
@media (max-width:767px){.sfc-cycle-more{grid-template-columns:1fr}}
/* まとめページの写真 */
.sfc-cycle-head.has-photo{grid-template-columns:auto 1fr 300px}
.sfc-cycle-photo{position:relative;margin:0;background:var(--gold-p);border:1px solid var(--line)}
.sfc-cycle-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;margin:0;max-width:none}
.sfc-cycle-photo figcaption{position:absolute;left:0;bottom:0;background:var(--ink);color:var(--gold-l);font-family:var(--serif);font-size:12px;letter-spacing:.12em;padding:6px 14px;margin:0}
.sfc-feat-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.sfc-feat-top .sfc-num{margin-bottom:0}
.sfc .sfc-feat-img{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:center 20%;border:2px solid var(--gold-l);margin:0;max-width:none}
.sfc-duo.is-stack{grid-template-columns:1fr}
@media (max-width:767px){
  .sfc-cycle-head.has-photo{grid-template-columns:1fr}
}
/* 技能別の説明（アコーディオン） */
details.sfc-skill{display:block;padding:0;gap:0}
details.sfc-skill>summary.sfc-skill-name{list-style:none;cursor:pointer;position:relative;display:grid;grid-template-columns:200px 1fr;gap:4px 32px;align-items:center;padding:28px 48px 28px 0}
details.sfc-skill>summary::-webkit-details-marker{display:none}
details.sfc-skill>summary small{grid-column:1}
details.sfc-skill>summary b{grid-column:1}
details.sfc-skill>summary .sfc-skill-hint{grid-column:2;grid-row:1/span 2;font-family:var(--sans);font-size:15px;color:var(--muted);line-height:1.7}
details.sfc-skill>summary::after{content:"";position:absolute;right:14px;top:50%;width:10px;height:10px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);transform:translateY(-70%) rotate(45deg);transition:.2s}
details.sfc-skill[open]>summary::after{transform:translateY(-30%) rotate(-135deg)}
details.sfc-skill>summary:hover b{color:var(--gold)}
details.sfc-skill[open]>summary .sfc-skill-hint{color:var(--gold)}
.sfc-skill-body{padding:0 0 32px 232px}
@media (max-width:767px){
  details.sfc-skill>summary.sfc-skill-name{grid-template-columns:1fr;padding:22px 40px 22px 0}
  details.sfc-skill>summary .sfc-skill-hint{grid-column:1;grid-row:auto;font-size:13px;margin-top:2px}
  .sfc-skill-body{padding:0 0 26px}
}

/* ============================================================
   【03】サンフレンズ英語塾｜追従LINEボタン 専用CSS（.sff）
   ・設置場所：外観 → カスタマイズ → 追加CSS（他のCSSとは別に貼る）
   ・画面下に固定メニューなどがあって重なる場合は、--sff-bottom の数値を大きくしてください
============================================================ */
.sff{--sff-green:#06C755;--sff-ink:#16213A;--sff-bottom:20px;--sff-left:20px;
  position:fixed;left:var(--sff-left);bottom:calc(var(--sff-bottom) + env(safe-area-inset-bottom,0px));z-index:90;
  display:flex;align-items:center;height:56px;padding:0 6px;border-radius:999px;
  background:#fff;border:1px solid rgba(6,199,85,.35);box-shadow:0 6px 20px rgba(22,33,58,.14);
  text-decoration:none!important;color:var(--sff-ink);
  font-family:"LINE Seed JP","Hiragino Sans","Noto Sans JP","Yu Gothic",sans-serif;
  opacity:0;transform:translateY(16px) scale(.9);pointer-events:none;
  transition:opacity .45s ease,transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .3s}
.sff-ic{flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:var(--sff-green);display:flex;align-items:center;justify-content:center}
.sff-ic svg{width:24px;height:24px;fill:#fff;display:block}
.sff-tx{max-width:0;overflow:hidden;white-space:nowrap;opacity:0;font-size:14px;font-weight:700;letter-spacing:.06em;line-height:1;
  transition:max-width .5s cubic-bezier(.2,.7,.2,1),opacity .3s ease,margin .5s cubic-bezier(.2,.7,.2,1)}
.sff-tx small{display:block;font-size:10px;font-weight:400;color:#6B7080;letter-spacing:.04em;margin-top:4px}

/* 表示（スクロールして本文に入ったら） */
.sff.is-show{opacity:1;transform:none;pointer-events:auto}
/* 文字を伸ばす（初回の数秒／PCでマウスを乗せたとき） */
.sff.is-open .sff-tx{max-width:170px;opacity:1;margin:0 14px 0 12px}
@media (hover:hover){.sff:hover .sff-tx{max-width:170px;opacity:1;margin:0 14px 0 12px}.sff:hover{box-shadow:0 10px 26px rgba(22,33,58,.2)}}
/* 下に読み進めている間は小さく控えめに */
.sff.is-show.is-min{opacity:.72;transform:scale(.86);transform-origin:left bottom}
/* CTAやフッターが見えている間は隠す */
.sff.is-show.is-hide{opacity:0;transform:translateY(16px) scale(.9);pointer-events:none}
.sff:focus-visible{outline:2px solid var(--sff-green);outline-offset:3px}

@media (max-width:767px){
  .sff{--sff-left:14px;--sff-bottom:14px;height:52px;padding:0 5px}
  .sff-ic{flex-basis:42px;width:42px;height:42px}
}
@media (prefers-reduced-motion:reduce){.sff,.sff-tx{transition:none}}
/* 印刷時は出さない */
@media print{.sff{display:none}}


/* ============================================================
   【04】メインビジュアルの文字（明朝体）
============================================================ */
.p-mainVisual__slideTitle{
  font-family:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif!important;
  font-weight:700;letter-spacing:.06em;line-height:1.5;
  text-shadow:0 2px 12px rgba(0,0,0,.35);
}
.p-mainVisual__slideText{
  text-shadow:0 2px 8px rgba(0,0,0,.4);
}

/* ============================================================
   【05】サンフレンズ英語塾｜メインビジュアルの強みバッジ 専用CSS（.sfm）
   ・設置場所：外観 → カスタマイズ → 追加CSS（他のCSSとは別に貼る）
============================================================ */
.sfm{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 12px;margin:24px auto 0;padding:0;list-style:none;max-width:1100px;
  font-family:"LINE Seed JP","Hiragino Sans","Noto Sans JP","Yu Gothic",sans-serif}
.sfm li{display:flex;align-items:center;gap:8px;margin:0;padding:9px 18px;border-radius:999px;
  background:rgba(255,255,255,.94);color:#16213A;font-size:14px;font-weight:700;letter-spacing:.04em;line-height:1.3;
  box-shadow:0 4px 14px rgba(0,0,0,.16);white-space:nowrap}
.sfm li::marker{content:none}
.sfm li::before{content:"";flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:#A8824A}
/* ふわっと順番に表示 */
@keyframes sfm-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.sfm li{animation:sfm-in .8s cubic-bezier(.2,.7,.2,1) both}
.sfm li:nth-child(1){animation-delay:.5s}
.sfm li:nth-child(2){animation-delay:.65s}
.sfm li:nth-child(3){animation-delay:.8s}
.sfm li:nth-child(4){animation-delay:.95s}
@media (prefers-reduced-motion:reduce){.sfm li{animation:none}}
/* スマホ：2列でそろえる */
@media (max-width:767px){
  .sfm{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px;padding:0 4px}
  .sfm li{justify-content:center;padding:8px 8px;font-size:12px;gap:6px;white-space:normal;text-align:center}
  .sfm li::before{width:5px;height:5px}
}

/* ============================================================
   【06】サンフレンズ英語塾｜目次（SWELLの目次機能）専用CSS
   ・設置場所：外観 → カスタマイズ → 追加CSS（他のCSSとは別に貼る）
   ・SWELLの目次の「デザイン」設定はどれでもOK（このCSSで上書きします）
============================================================ */
.p-toc{
  --toc-ink:#16213A;--toc-gold:#A8824A;--toc-line:#E4DCCD;--toc-ivory:#FAF7F1;--toc-muted:#6B7080;
  --toc-serif:"Shippori Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  position:relative;max-width:760px;margin:56px auto!important;padding:40px 44px 32px!important;
  background:var(--toc-ivory)!important;border:1px solid var(--toc-line)!important;border-top:2px solid var(--toc-gold)!important;
  border-radius:0!important;box-shadow:none!important}
.p-toc::before,.p-toc::after{content:none!important;display:none!important}

/* タイトル：CONTENTS ＋ 目次 */
.p-toc__ttl{display:block!important;text-align:center;margin:0 0 24px!important;padding:0!important;border:none!important;background:none!important;
  font-family:var(--toc-serif)!important;font-size:20px!important;font-weight:600!important;letter-spacing:.3em;color:var(--toc-ink)!important}
.p-toc__ttl::before{content:"CONTENTS"!important;display:block!important;position:static!important;width:auto!important;height:auto!important;background:none!important;border:none!important;
  font-family:"LINE Seed JP","Hiragino Sans","Noto Sans JP",sans-serif;font-size:11px;font-weight:700;letter-spacing:.4em;color:var(--toc-gold);margin:0 0 6px;transform:none!important}
.p-toc__ttl::after{content:""!important;display:block!important;width:32px;height:1px;background:var(--toc-gold)!important;margin:14px auto 0;border:none!important;position:static!important}

/* 大見出し（h2）：01 02 … の番号付き */
.p-toc__list,.p-toc ol,.p-toc ul{list-style:none!important;margin:0!important;padding:0!important;border:none!important}
.p-toc__list{counter-reset:toc}
.p-toc__list>li{counter-increment:toc;margin:0!important;padding:0!important;border-bottom:1px dashed var(--toc-line)}
.p-toc__list>li:last-child{border-bottom:none}
.p-toc li::before,.p-toc li::marker{content:none!important;display:none!important}
.p-toc__list>li>a,.p-toc__list>li>.p-toc__link{position:relative;display:block;padding:14px 8px 14px 52px!important;
  font-family:var(--toc-serif);font-size:16px;font-weight:600;line-height:1.6;color:var(--toc-ink)!important;text-decoration:none!important;transition:color .2s,padding .3s}
.p-toc__list>li>a::before,.p-toc__list>li>.p-toc__link::before{content:counter(toc,decimal-leading-zero)!important;display:block!important;position:absolute!important;left:6px;top:14px;
  width:auto!important;height:auto!important;background:none!important;border:none!important;
  font-family:var(--toc-serif);font-size:15px;font-weight:500;letter-spacing:.06em;color:var(--toc-gold);line-height:1.7}

/* 小見出し（h3） */
.p-toc__list li li>a,.p-toc__list li li>.p-toc__link{position:relative;display:block;padding:4px 8px 4px 70px!important;
  font-family:"LINE Seed JP","Hiragino Sans","Noto Sans JP",sans-serif;font-size:14px;font-weight:400;line-height:1.7;color:var(--toc-muted)!important;text-decoration:none!important}
.p-toc__list li li>a::before,.p-toc__list li li>.p-toc__link::before{content:""!important;display:block!important;position:absolute!important;left:54px;top:15px;width:8px!important;height:1px!important;background:var(--toc-gold)!important;border:none!important}
.p-toc__list li ul,.p-toc__list li ol{margin:-6px 0 12px!important}
.p-toc__list li li{border:none!important;margin:0!important;padding:0!important}

/* ホバー：金色に、少し右へ */
@media (hover:hover){
  .p-toc a:hover{color:var(--toc-gold)!important}
  .p-toc__list>li>a:hover{padding-left:58px!important}
}

/* 「もっと見る」ボタン（項目が多いとき） */
.p-toc__expandBtn{margin-top:16px;border:1px solid var(--toc-ink)!important;background:#fff!important;color:var(--toc-ink)!important;border-radius:0!important;
  font-size:13px;letter-spacing:.1em;padding:8px 24px!important}

@media (max-width:767px){
  .p-toc{padding:32px 18px 22px!important;margin:40px auto!important}
  .p-toc__ttl{font-size:18px!important;margin-bottom:18px!important}
  .p-toc__list>li>a,.p-toc__list>li>.p-toc__link{font-size:15px;padding:12px 4px 12px 42px!important}
  .p-toc__list>li>a::before,.p-toc__list>li>.p-toc__link::before{left:2px;top:12px;font-size:14px}
  .p-toc__list li li>a,.p-toc__list li li>.p-toc__link{padding-left:58px!important;font-size:13px}
  .p-toc__list li li>a::before,.p-toc__list li li>.p-toc__link::before{left:44px}
}

/* ---------- 目次ボタンから開くポップアップ（スマホの目次） ----------
   ・「閉じる」ボタンは枠の外に出ているため、枠ではなく目次の中だけをスクロールさせます */
.p-indexModal__inner{padding:0!important;background:transparent!important}
.p-indexModal .p-toc{margin:0!important;max-width:none;max-height:calc(100vh - 200px)!important;max-height:calc(100dvh - 200px)!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;
  border:none!important;border-top:2px solid #A8824A!important;padding:28px 18px 20px!important}