/* ================================================================== */
/* kaname.css — Kaname（仮）専用デザイン                          */
/*   ブランド: 禅・引き算・静か。柔らかい和の配色。                    */
/*   プロミス「ふやすより、まず整える。」                              */
/*   Michi（暗い/紫の神秘）とは別レイヤー。.kt-wrap の中だけを塗る。   */
/* ================================================================== */
:root {
  /* ============================================================== */
  /* 配色 v2（2026-06-25・ポップ大改造／AD・Opus）                  */
  /*   方向: 明るい地に、調和した鮮やかコア（信頼の青）＋差し色。    */
  /*   旧「和・生成り×墨×藍・明朝」を全面刷新。色数は絞り上質に。   */
  /*   ※ これは全ページの土台。.kt-pop 層がこの上で旗艦を作り込む。 */
  /* -------------------------------------------------------------- */
  --kt-bg:        #FCFCFA;   /* ほぼ白（微ニュートラル・2026-07-03案2で青みを抜く） */
  --kt-bg-soft:   #F7F8FA;   /* ごく薄いニュートラル面（カードの土台） */
  --kt-card:      #FFFFFF;
  --kt-ink:       #1E2433;   /* 濃紺グレー（黒すぎない・親しみ） */
  --kt-ink-soft:  #5B6478;   /* やわらかい紺グレー（AA確保） */
  --kt-line:      #E6E8EE;   /* うすいニュートラルの罫（2026-07-03案2） */
  --kt-accent:    #2B6CF6;   /* 信頼の青（主役・CTA・見出し。案2でも不変） */
  --kt-accent-d:  #1B52CC;   /* 深い青（hover・押下） */
  --kt-accent-bg: #E7EFFF;   /* 青のごく薄い面 */
  --kt-gold:      #F5A623;   /* サニーオレンジ（差し色・数字/灯） */
  --kt-shadow:    0 6px 22px rgba(43, 108, 246, 0.10);
  /* 役割トークン（2026-07-03・配色「案1 最小修正」／CTA・ロゴ・theme-colorの --kt-accent は不変）。 */
  /*   青は「押せるCTA」専用に絞り、見出しキッカー・本文リンク・状態色を別の色相へ分離する。 */
  --kt-link:      #2850A6;   /* 本文テキストリンク（案2で濃紺藍へ更新・押せるCTAの明るい青と区別） */
  --kt-kicker:    #A64B35;   /* 見出しキッカー／セクションラベル（テラコッタ） */
  --kt-kicker-bg: #FFF0EA;   /* キッカーの淡い地（テラコッタの薄い面） */
  --kt-success:   #0C6B5E;   /* 成功・完了・整った状態 */
  --kt-warning:   #7B5800;   /* 警告・注意 */
  --kt-info:      #2850A6;   /* 情報・ブランド表記（濃い藍） */
  --kt-nav-active: var(--kt-link); /* 固定タブバー現在地（2026-07-03案2・CTA青より落ち着いた濃紺で分離） */

  /* ---------------------------------------------------------------- */
  /* 柱トークン（2026-07-03・配色「案2 柱カラー展開」／CEO設計・Codex相談済み）。 */
  /*   6本柱に固有色。nth-child依存禁止＝利用側は data-pillar/data-axis 属性で参照する。 */
  /*   各 -bg（薄面）・-line（枠）は白地に11%/30%混色。文字用途は機械検査でAA 4.5:1を確保し、 */
  /*   満たさない色相（整える・稼ぐ）だけ -text 変種（明度調整・色相は維持）を別途用意した。 */
  --kt-p-totonoeru:      #2B6CF6;  /* 整える（柱1・青＝--kt-accentと同色でCTAとの一体感） */
  --kt-p-totonoeru-text: #2260E0;  /* 整える・文字用（AA 4.5:1確保のため明度調整・色相維持） */
  --kt-p-totonoeru-bg:   #E8EFFE;
  --kt-p-totonoeru-line: #BFD3FC;

  --kt-p-tameru:      #0C6B5E;     /* 貯める（柱2・深緑＝--kt-successと同色） */
  --kt-p-tameru-bg:   #E4EFED;
  --kt-p-tameru-line: #B6D3CF;

  --kt-p-kasegu:      #B26A00;     /* 稼ぐ（柱3・褐色オレンジ） */
  --kt-p-kasegu-text: #A15E00;     /* 稼ぐ・文字用（AA 4.5:1確保のため明度調整・色相維持） */
  --kt-p-kasegu-bg:   #F7EFE3;
  --kt-p-kasegu-line: #E8D2B2;

  --kt-p-fuyasu:      #7C3AAE;     /* 増やす（柱4・紫） */
  --kt-p-fuyasu-bg:   #F1E9F6;
  --kt-p-fuyasu-line: #D8C4E7;

  --kt-p-mamoru:      #B33A2E;     /* 守る（柱5・朱赤） */
  --kt-p-mamoru-bg:   #F7E9E8;
  --kt-p-mamoru-line: #E8C4C0;

  --kt-p-tsukau:      #A64B35;     /* 使う（柱6・テラコッタ＝--kt-kickerと同色） */
  --kt-p-tsukau-bg:   #F5EBE9;
  --kt-p-tsukau-line: #E4C9C2;
  /* 見出しは丸太ゴシックで親しみ＋元気。本文は可読性の高いサンセリフ。 */
  --kt-display: 'M PLUS Rounded 1c', 'Noto Sans JP', 'Hiragino Sans', sans-serif;
  --kt-serif:   'M PLUS Rounded 1c', 'Noto Sans JP', 'Hiragino Sans', sans-serif;
  --kt-sans:    'Noto Sans JP', 'Hiragino Sans', sans-serif;
}

/* ================================================================== */
/* 基盤モバイル堅牢化（全ページに効く土台。kaname.css が最初に読まれる）*/
/*   目的: 横スクロール根絶／セーフエリア／タブクリアランス／タップ領域 */
/*   ※ 後段の kaname_mobile.css・kaname_tabbar.css と同方針で重ねる  */
/*     （border-box / overflow-x:clip / safe-area / 44px を一致させる）。 */
/*   装飾は変えず寸法だけを安全側に。既存レイアウトは非破壊。          */
/* ------------------------------------------------------------------ */
/* R-1. box-sizing を全要素で border-box（padding/border が幅を膨らませない）。 */
*,
*::before,
*::after { box-sizing: border-box; }

/* R-2. ルートで横方向のはみ出しを断つ。clip はスクロールを生まないので
   固定タブバー・sticky を壊さない。iOS の勝手な文字拡大も止める。 */
html,
body {
  overflow-x: clip;
  max-width: 100vw;
  -webkit-text-size-adjust: 100%;
}
/* 下部固定タブバー分のクリアランス（safe-area 込み）を body で担保。
   ページ本文がタブバーに隠れない。tabbar.css/mobile.css とも一致。 */
body {
  padding-bottom: calc(var(--kt-tabbar-h, 64px) + env(safe-area-inset-bottom, 0px) + 16px);
}

/* R-3. 置換要素・表・整形済みが器を超えない（横はみ出しの主因を断つ）。 */
img,
svg,
video,
canvas,
iframe,
embed,
object,
audio {
  max-width: 100%;
  height: auto;
}
table { max-width: 100%; }
pre,
code,
kbd,
samp { max-width: 100%; white-space: pre-wrap; overflow-wrap: anywhere; }

/* R-4. 長い英数字・URL・連続数字が一行で器を突き破るのを防ぐ（本文系）。 */
body,
p, li, dd, dt, span, small, strong, em, label, td, th,
h1, h2, h3, h4, h5, h6, blockquote, figcaption,
.kt-lead, .kt-card-body, .kt-rsec-text {
  overflow-wrap: anywhere;
  word-break: normal;
}

/* R-5. グリッド/フレックスの子が min-content で器を割る古典バグの保険。 */
.kt-wrap,
.kt-inner,
main, section, article { min-width: 0; }

/* --- 全面を生成りで塗る（body の暗背景を打ち消す） --- */
.kt-wrap {
  min-height: 100vh;
  background: var(--kt-bg);
  color: var(--kt-ink);
  font-family: var(--kt-sans);
  -webkit-font-smoothing: antialiased;
  display: flex;
  justify-content: center;
  /* セーフエリア（ノッチ/丸角）を左右に加味。下の基本余白テイスト(64px)は維持。
     タブバー分のクリアランスは body の padding-bottom 側で担保（二重化しない）。 */
  padding: 40px calc(20px + env(safe-area-inset-right, 0px)) 64px
           calc(20px + env(safe-area-inset-left, 0px));
  box-sizing: border-box;
}
.kt-inner {
  width: 100%;
  max-width: 480px;
  min-width: 0;
}

/* ================================================================== */
/* デスクトップ表示（2026-07-05・PC最適化／オーナー指摘対応）。          */
/*   背景：モバイル1st設計のため、PC幅では「引き伸ばしたモバイル」に      */
/*   見えていた（本文列は中央寄せでも、下部固定バーがビューポート全幅に  */
/*   広がり列とズレて見える／列の外側が生成り一色で意図が伝わらない）。  */
/*   方針：モバイル(≤767px)の値は一切変更しない。min-widthクエリの中だけ */
/*   で完結させ、既存のモバイルCSSには触れない設計を最優先する。         */
/*   --kt-app-w / --kt-app-gutter-x は、固定バー（tabbar/wayfind/       */
/*   feedback FAB/totop・各専用CSS）も同じ中心軸へ整列できるよう、       */
/*   ここで共通トークンとして公開する（フォールバック値も各所に併記）。  */
/* ------------------------------------------------------------------ */
@media (min-width: 768px) {
  :root {
    --kt-app-w: 600px;        /* 中央アプリ列の幅（モバイル480pxよりやや広げ、読みやすさ優先） */
    --kt-app-gutter-x: 40px;  /* kt-wrap 左右パディング合計と一致（固定バー幅の計算に使用） */
  }
  /* 【2026-07-25・オーナー決裁「全ページ幅を1つに完全統一」】ページ種別ごとの本文列幅の
     上書きは全廃し、タブレット(≥768px)は全ページ 600px に統一（診断=460 / 道具箱=560 の
     個別指定も撤去）。固定バー/FABは同じ --kt-app-w を継承するので列-バーの整列は保たれる。
     PC(≥1024px)は kaname_desktop.css で 960px に統一。 */
  /* 列の外側の余白を上質な淡いグラデーションで満たす（引き伸ばし感の解消）。
     body ではなく html に塗る： body には既定UAマージン(8px)が残っており
     （このコードベースでは未リセット）、body に塗ると四辺に8pxの白い
     縁が残ってしまう（生成り地色の時は白と近似して気づかなかった差分）。
     html はマージンを持たないため、この事故が起きない。 */
  html {
    background: linear-gradient(180deg, #F2F5FC 0%, #ECF1FB 45%, #E7ECFA 100%);
  }
  .kt-wrap {
    /* 地色は kt-inner 側が引き継ぐ（見た目は非変更）。ここは透過にして
       body の淡いグラデーションを列の外側にだけ見せる。 */
    background: transparent;
    padding-top: 56px;
    padding-bottom: 88px;
  }
  .kt-inner {
    max-width: var(--kt-app-w);
    background: var(--kt-bg);
  }
}

/* --- 言語スイッチ（右上・控えめ） --- */
.kt-langbar {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-bottom: 20px;
  font-size: 12px;
  letter-spacing: .04em;
}
.kt-langbar a { color: var(--kt-ink-soft); text-decoration: none; opacity: .9; }
.kt-langbar a.is-active { color: var(--kt-accent-d); opacity: 1; font-weight: 600; }

/* --- ブランド --- */
.kt-brand {
  font-family: var(--kt-display);
  font-weight: 800;
  font-size: 17px;
  letter-spacing: .22em;
  color: var(--kt-info);
  text-align: center;
  margin: 0 0 26px;
  padding-left: .22em;
}

/* --- ブランドロゴ画像（採用ロゴ案A・横組み） --- */
/* ヘッダーに馴染む高さ（幅auto＝比率維持）。SVGなのでにじまず、狭幅でも縮む。 */
.kt-brand-logo {
  display: block;
  height: 30px;
  width: auto;
  max-width: 200px;
  vertical-align: middle;
}

/* --- ヒーロー --- */
.kt-hero {
  font-family: var(--kt-display);
  font-weight: 800;
  font-size: 38px;
  line-height: 1.32;
  letter-spacing: .005em;
  text-align: center;
  margin: 8px 0 22px;
  color: var(--kt-ink);
}
.kt-lead {
  text-align: center;
  font-size: 15px;
  line-height: 2;
  color: var(--kt-ink-soft);
  margin: 0 0 30px;
}

/* --- カード（提案・オファー） --- */
.kt-card {
  background: var(--kt-card);
  border: 1px solid var(--kt-line);
  border-radius: 24px;
  box-shadow: var(--kt-shadow);
  padding: 28px 24px;
  margin: 0 0 26px;
  text-align: center;
}
.kt-card--soft { background: var(--kt-bg-soft); }
.kt-card--accent { background: var(--kt-accent-bg); border-color: #CDD8E6; }
.kt-card-kicker {
  font-size: 12px;
  letter-spacing: .2em;
  color: var(--kt-kicker);
  margin: 0 0 10px;
}
.kt-card-title {
  font-family: var(--kt-display);
  font-size: 23px;
  font-weight: 800;
  letter-spacing: .005em;
  margin: 0 0 14px;
  color: var(--kt-ink);
}
.kt-card-title .kt-sub { font-size: 14px; color: var(--kt-ink-soft); }
.kt-card-body {
  font-size: 14px;
  line-height: 1.95;
  color: var(--kt-ink-soft);
  margin: 0 0 22px;
}
.kt-card-body strong { color: var(--kt-accent-d); font-weight: 600; }

/* --- ボタン --- */
.kt-btn {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 16px 20px;
  border: none;
  border-radius: 999px;
  font-family: var(--kt-sans);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .06em;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}
.kt-btn--primary {
  background: var(--kt-accent);
  color: #FFFFFF;
  font-weight: 800;
  box-shadow: 0 8px 22px rgba(43, 108, 246, 0.32);
}
.kt-btn--primary:hover { background: var(--kt-accent-d); }
.kt-btn--ghost {
  background: transparent;
  color: var(--kt-accent-d);
  border: 1px solid var(--kt-accent);
}
.kt-btn--gold {
  background: var(--kt-gold);
  color: #FFFDF7;
  box-shadow: 0 6px 20px rgba(184, 155, 106, 0.30);
}
.kt-note {
  font-size: 11.5px;
  color: var(--kt-ink-soft);
  margin: 14px 0 0;
  line-height: 1.7;
}

/* --- プロミス（三点・点で区切る） --- */
.kt-promise {
  list-style: none;
  padding: 0;
  margin: 6px 0 30px;
}
.kt-promise li {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  color: var(--kt-ink-soft);
  padding: 11px 4px;
  border-bottom: 1px solid var(--kt-line);
  line-height: 1.7;
}
.kt-promise li:last-child { border-bottom: none; }
.kt-dot {
  width: 7px; height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--kt-accent);
}

.kt-foot {
  font-size: 11px;
  line-height: 1.8;
  /* コントラスト是正：旧 #9A948A（比2.93）→ #6B6B6B（白地で比≈4.6, AA達成）。 */
  color: #6B6B6B;
  text-align: center;
  margin: 18px 0 0;
}

/* ================================================================== */
/* 診断（1問1画面）— entry_anim（墨×真鍮の暗い世界観）を、Kanameの   */
/* 「柔らかい和・静か」へ明るく上書き。Michi 本体には一切触れない。     */
/* （.kt-diagnose スコープのみ。entry_anim.js のモーションはそのまま使う）*/
/* ================================================================== */
/* 器：暗背景を生成りへ。entry_anim の縦線・点も和の落ち着いた色へ。 */
.kt-wrap .kt-diagnose.diagnose-wrap { background: transparent; min-height: auto; }
.kt-wrap .kt-diagnose .diagnose-inner { padding-top: 1.6rem; }
/* 中央の真鍮の縦線は、Kanameでは藍のごく薄い一筋に。 */
.kt-wrap .kt-diagnose.entry-flow::before {
  background: linear-gradient(to bottom,
    transparent 0%, rgba(46,74,107,0.0) 8%, rgba(46,74,107,0.20) 50%,
    rgba(46,74,107,0.0) 92%, transparent 100%);
}
/* 進捗の点：金→藍。残数テキスト：墨のうすい色。 */
.kt-wrap .kt-diagnose .entry-dot { background: rgba(46,74,107,0.22); }
.kt-wrap .kt-diagnose .entry-dot.done,
.kt-wrap .kt-diagnose .entry-dot.current {
  background: var(--kt-accent);
  box-shadow: 0 0 8px rgba(46,74,107,0.45);
}
.kt-wrap .kt-diagnose .entry-remain { color: var(--kt-ink-soft); opacity: .9; }

/* 問い文：明朝・墨（暗背景前提の light 文字／text-shadow を打ち消す）。 */
.kt-wrap .kt-diagnose .q-text {
  font-family: var(--kt-serif);
  color: var(--kt-ink);
  text-shadow: none;
}
/* 選択肢の短冊：白カード・墨文字・藍ハイライト（金文字を上書き）。 */
.kt-wrap .kt-diagnose .option-item--probe {
  background: var(--kt-card);
  border: 1px solid var(--kt-line);
  border-radius: 14px;
  box-shadow: var(--kt-shadow);
}
.kt-wrap .kt-diagnose .option-item--probe .option-label {
  color: var(--kt-ink);
  font-family: var(--kt-sans);
}
.kt-wrap .kt-diagnose .option-item--probe:hover,
.kt-wrap .kt-diagnose .option-item--probe.selected {
  border-color: var(--kt-accent);
  background: var(--kt-accent-bg);
}
.kt-wrap .kt-diagnose .option-item--probe.tapped { border-color: var(--kt-accent); }

/* 選択肢リストの土台レイアウト（基盤 entry_anim CSS 不在時の崩れ対策）。
   ・<li> の黒丸を消す ・短冊どうしに余白 ・短冊内に充分なパディング。 */
.kt-wrap .kt-diagnose .option-list--probe {
  list-style: none;
  padding: 0;
  margin: 14px 0 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.kt-wrap .kt-diagnose .option-item--probe {
  list-style: none;
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: 14px 18px;
  cursor: pointer;
}
.kt-wrap .kt-diagnose .option-item--probe::marker { content: none; }
.kt-wrap .kt-diagnose .option-item--probe .option-label {
  line-height: 1.5;
}
/* 問い（1問）どうしの間（基盤 CSS 不在時、ぴたり接して読みにくいのを防ぐ）。 */
.kt-wrap .kt-diagnose .q-step { margin: 0 0 26px; }
.kt-wrap .kt-diagnose .q-step:last-child { margin-bottom: 0; }

/* 締めの一拍（handoff）：暗オーバーレイ→生成りの静かな面へ。金の珠→藍の珠。 */
.entry-handoff.kt-handoff { background: var(--kt-bg); }
.entry-handoff.kt-handoff .entry-handoff-orb {
  background: var(--kt-accent);
  box-shadow: 0 0 16px rgba(46,74,107,0.5), 0 0 40px rgba(46,74,107,0.22);
}
.entry-handoff.kt-handoff .entry-handoff-text {
  font-family: var(--kt-serif);
  color: var(--kt-ink);
  max-width: 18em;
  padding: 0 28px;
  text-align: center;
  line-height: 1.9;
  box-sizing: border-box;
}

/* ================================================================== */
/* 結果（あなたのお金のタイプ＋整える一歩）                            */
/* ================================================================== */
.kt-result-kicker {
  text-align: center;
  font-size: 12px;
  letter-spacing: .22em;
  color: var(--kt-kicker);
  margin: 0 0 12px;
}
.kt-type-sym {
  text-align: center;
  margin: 0 0 14px;
}
.kt-type-sym img {
  display: inline-block;
  width: 88px;
  height: 88px;
}
.kt-type {
  font-family: var(--kt-serif);
  font-size: 27px;
  font-weight: 600;
  text-align: center;
  color: var(--kt-ink);
  margin: 0 0 8px;
  line-height: 1.5;
}
.kt-type-oneline {
  text-align: center;
  font-family: var(--kt-serif);
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--kt-accent-d);
  margin: 0 0 26px;
  letter-spacing: .03em;
}
/* 強み／クセ／優しい対処のブロック（結果の作り込み・価値の瞬間） */
.kt-block {
  margin: 0 0 22px;
}
.kt-block-label {
  font-size: 12px;
  letter-spacing: .12em;
  color: var(--kt-accent-d);
  margin: 0 0 8px;
  display: flex; align-items: center; gap: 8px;
}
.kt-block-label::before {
  content: ""; width: 18px; height: 1px; background: var(--kt-accent);
}
.kt-block-body {
  font-size: 14px;
  line-height: 2;
  color: var(--kt-ink-soft);
  margin: 0;
}
.kt-block--strength {
  background: var(--kt-accent-bg);
  border-radius: 14px;
  padding: 18px 20px;
}
.kt-block--strength .kt-block-body { color: var(--kt-accent-d); }
.kt-block--pitfall {
  border-left: 3px solid var(--kt-line);
  padding-left: 16px;
}
.kt-read-lead {
  font-family: var(--kt-serif);
  font-size: 18px;
  line-height: 1.85;
  color: var(--kt-ink);
  margin: 0 0 14px;
}
.kt-read-body {
  font-size: 14px;
  line-height: 2;
  color: var(--kt-ink-soft);
  margin: 0 0 16px;
}
.kt-evidence {
  background: var(--kt-accent-bg);
  border-left: 3px solid var(--kt-accent);
  border-radius: 0 10px 10px 0;
  padding: 12px 16px;
  font-size: 13.5px;
  line-height: 1.8;
  color: var(--kt-accent-d);
  margin: 0 0 18px;
}
.kt-relief {
  font-size: 13.5px;
  line-height: 1.95;
  color: var(--kt-ink-soft);
  margin: 0 0 22px;
}
.kt-step {
  background: var(--kt-bg-soft);
  border: 1px solid var(--kt-line);
  border-radius: 14px;
  padding: 20px;
  margin: 0 0 26px;
}
.kt-step-label {
  font-size: 12px;
  letter-spacing: .12em;
  color: var(--kt-accent-d);
  margin: 0 0 10px;
  display: flex; align-items: center; gap: 8px;
}
.kt-step-label::before {
  content: ""; width: 18px; height: 1px; background: var(--kt-accent);
}
.kt-step-body {
  font-size: 15px;
  line-height: 1.95;
  color: var(--kt-ink);
}
.kt-secondary {
  border-top: 1px solid var(--kt-line);
  padding-top: 22px;
  margin-top: 8px;
}
.kt-secondary-intro {
  font-size: 12px;
  letter-spacing: .1em;
  color: var(--kt-ink-soft);
  margin: 0 0 10px;
}
.kt-divider {
  text-align: center;
  color: var(--kt-line);
  letter-spacing: 1em;
  margin: 30px 0;
}

/* ================================================================== */
/* 結果・縦スクロール版（ゴチャゴチャ解消）                            */
/*   オーナー指示: 折りたたみ禁止・1スクロール=1セクション=1つだけ。   */
/*   型の象徴(大)→型名→一言→強み→クセ→整える一歩→CTA1つ。           */
/*   たっぷりの余白で呼吸・各セクションに小さな図解で視覚の変化。      */
/* ================================================================== */
/* 縦スクロールの器：各セクションを“一画面に一つ”の呼吸で並べる。 */
.kt-result-flow { width: 100%; }

/* 1セクション＝1つの意味。上下にたっぷり余白を取り、呼吸を作る。 */
.kt-rsec {
  min-height: 72vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 64px 6px;
  box-sizing: border-box;
}
/* 最初（型）のセクションは画面いっぱいに、いちばん静かに。 */
.kt-rsec--hero { min-height: 84vh; padding-top: 24px; }
/* 余白を詰めたい締め（オファー）は少し短く。 */
.kt-rsec--offer { min-height: auto; padding: 40px 6px 30px; }

/* セクション内の小さな見出しラベル（章の符牒・静かな符号）。 */
.kt-rsec-label {
  font-size: 11.5px;
  letter-spacing: .22em;
  color: var(--kt-accent-d);
  margin: 0 0 18px;
  display: inline-flex; align-items: center; gap: 9px;
}
.kt-rsec-label::before,
.kt-rsec-label::after {
  content: ""; width: 14px; height: 1px; background: var(--kt-line);
}
/* セクションの中身（1つだけ）。読みやすい幅に抑え、行間ゆったり。 */
.kt-rsec-text {
  font-size: 15.5px;
  line-height: 2.05;
  color: var(--kt-ink-soft);
  margin: 0;
  max-width: 21em;
}
.kt-rsec-text--lead {
  font-family: var(--kt-serif);
  font-size: 19px;
  line-height: 1.95;
  color: var(--kt-ink);
}
/* 各セクションの小さな図解（視覚の変化・呼吸の合間の挿し絵）。 */
.kt-rsec-fig {
  margin: 0 0 26px;
  width: 116px; height: 116px;
  display: flex; align-items: center; justify-content: center;
}
.kt-rsec-fig img { width: 100%; height: 100%; object-fit: contain; }
/* 図解が無いセクションの、ごく静かな符（点）。 */
.kt-rsec-mark {
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--kt-accent); opacity: .55; margin: 0 0 26px;
}
/* 「もっと下を見たくなる」静かな誘い（次へ・スクロールの呼吸）。 */
.kt-scroll-cue {
  margin: 30px auto 0;
  width: 1px; height: 30px;
  background: linear-gradient(var(--kt-accent), transparent);
  opacity: .5;
}

/* ヒーロー（型）セクション：象徴を大きく・型名・一言だけ。 */
.kt-rsec--hero .kt-type-sym img { width: 128px; height: 128px; }
.kt-rsec--hero .kt-type { font-size: 30px; margin: 22px 0 12px; }
.kt-rsec--hero .kt-type-oneline { margin: 0; font-size: 16px; }

/* 強みセクション：温かい面で“いいところ”をひとつ。 */
.kt-rsec--strength { background: var(--kt-accent-bg); }
.kt-rsec--strength .kt-rsec-text { color: var(--kt-accent-d); }

/* 整える一歩セクション：行動の背をそっと押す（カードで包む）。 */
.kt-rsec-stepcard {
  background: var(--kt-bg-soft);
  border: 1px solid var(--kt-line);
  border-radius: 18px;
  padding: 28px 24px;
  max-width: 22em;
  box-shadow: var(--kt-shadow);
}
.kt-rsec-stepcard .kt-rsec-text { color: var(--kt-ink); font-size: 16px; }

/* 根拠（本人の選択回数）の小さな帯。 */
.kt-rsec-evidence {
  display: inline-block;
  background: var(--kt-card);
  border: 1px solid var(--kt-line);
  border-radius: 999px;
  padding: 9px 18px;
  font-size: 13px;
  color: var(--kt-accent-d);
  margin: 22px 0 0;
}

/* セクションどうしの、ごく細い仕切り（章の変わり目）。 */
.kt-rsec + .kt-rsec { border-top: 1px solid var(--kt-line); }

/* オファーの“続き”導線は控えめなテキストリンク（CTAを1つに保つため）。 */
.kt-result-more {
  margin: 20px 0 0;
  font-size: 13px;
  line-height: 1.9;
  color: var(--kt-ink-soft);
  text-align: center;
}
.kt-text-link { color: var(--kt-link); text-decoration: underline; text-underline-offset: 3px; }
.kt-result-more .kt-sep { margin: 0 8px; color: var(--kt-line); }
.kt-lp-school { text-align: center; margin: 2px 0 24px; font-size: 14px; }

/* ================================================================== */
/* オファー（無料メール／¥980キット）                                 */
/* ================================================================== */
.kt-offer-heading {
  font-family: var(--kt-serif);
  font-size: 19px;
  text-align: center;
  color: var(--kt-ink);
  margin: 0 0 20px;
  letter-spacing: .04em;
}
.kt-input {
  width: 100%;
  box-sizing: border-box;
  padding: 14px 16px;
  border: 1px solid var(--kt-line);
  border-radius: 12px;
  /* 16px 以上：iOS でフォーカス時に画面が勝手にズームするのを防ぐ。 */
  font-size: 16px;
  min-height: 44px;               /* タップ領域の下限 */
  margin: 0 0 12px;
  background: var(--kt-card);
  color: var(--kt-ink);
}
.kt-input:focus { outline: none; border-color: var(--kt-accent); }
.kt-price {
  font-family: var(--kt-serif);
  font-size: 30px;
  font-weight: 700;
  color: var(--kt-ink);
}
.kt-price-prefix { font-size: 13px; color: var(--kt-ink-soft); margin-right: 6px; }
.kt-done {
  text-align: center;
  font-size: 14px;
  color: var(--kt-accent-d);
  background: var(--kt-accent-bg);
  border-radius: 12px;
  padding: 16px;
  line-height: 1.8;
  margin: 0 0 12px;
}

/* ================================================================== */
/* キット（¥980 案内）                                                */
/* ================================================================== */
.kt-kit-list { padding: 0; margin: 0 0 26px; list-style: none; }
.kt-kit-item {
  background: var(--kt-card);
  border: 1px solid var(--kt-line);
  border-radius: 14px;
  padding: 18px 20px;
  margin: 0 0 14px;
}
.kt-kit-item-title {
  font-family: var(--kt-serif);
  font-size: 16px;
  font-weight: 600;
  color: var(--kt-ink);
  margin: 0 0 8px;
}
.kt-kit-item-body {
  font-size: 13px;
  line-height: 1.85;
  color: var(--kt-ink-soft);
  margin: 0;
}
.kt-forwho { margin: 0 0 26px; }
.kt-forwho-h {
  font-size: 12px; letter-spacing: .12em; color: var(--kt-accent-d); margin: 0 0 10px;
}
.kt-forwho ul { padding-left: 1.2em; margin: 0; }
.kt-forwho li { font-size: 13.5px; line-height: 1.95; color: var(--kt-ink-soft); }

/* ================================================================== */
/* 短尺台本一覧                                                       */
/* ================================================================== */
.kt-script {
  background: var(--kt-card);
  border: 1px solid var(--kt-line);
  border-radius: 14px;
  padding: 20px;
  margin: 0 0 16px;
}
.kt-script-meta { font-size: 11px; letter-spacing: .1em; color: var(--kt-gold); margin: 0 0 6px; }
.kt-script-title { font-family: var(--kt-serif); font-size: 17px; color: var(--kt-ink); margin: 0 0 12px; }
.kt-script-row { display: flex; gap: 10px; margin: 0 0 8px; font-size: 13px; line-height: 1.7; }
.kt-script-tag { flex: 0 0 56px; color: var(--kt-accent-d); font-weight: 600; }
.kt-script-text { color: var(--kt-ink-soft); }
.kt-script-cta { font-size: 12px; color: var(--kt-gold); margin: 10px 0 0; }

/* ================================================================== */
/* 学習導線（共通ナビ／二択の扉／学校セクション／結果の橋／共通フッター） */
/*   設計: Kaname_学習導線設計_v1。学校を診断と対等な主役に。        */
/*   配色は最適パレット（藍主役×温かいテラコッタ少量）を踏襲。        */
/*   ポップ色の上書きは kaname_pop.css（.kt-pop スコープ）に置く。   */
/* ================================================================== */

/* --- 共通ナビ（常時・全画面。ブランド／学校／診断へ往復） --- */
.kt-nav { margin: 0 0 18px; }
.kt-nav-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.kt-nav-brand {
  font-family: var(--kt-serif);
  font-size: 15px;
  letter-spacing: .28em;
  color: var(--kt-accent-d);
  text-decoration: none;
  padding-left: .28em;
}
.kt-nav-links { display: flex; align-items: center; gap: 14px; }
.kt-nav-link {
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--kt-ink-soft);
  text-decoration: none;
  white-space: nowrap;
}
.kt-nav-link:hover { color: var(--kt-accent-d); }
.kt-nav-link--school {
  color: var(--kt-accent-d);
  font-weight: 600;
  border: 1px solid var(--kt-line);
  border-radius: 999px;
  padding: 6px 13px;
}
.kt-nav .kt-langbar { margin-bottom: 0; margin-top: 12px; }

/* --- ② 二択の扉（診断と学校を対等な視覚重量で） --- */
.kt-doors { margin: 0 0 26px; }
.kt-doors-label {
  text-align: center;
  font-size: 12px;
  letter-spacing: .14em;
  color: var(--kt-ink-soft);
  margin: 0 0 12px;
}
.kt-doors-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
}
.kt-door {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow-wrap: anywhere;
  gap: 6px;
  text-decoration: none;
  background: var(--kt-card);
  border: 1.5px solid var(--kt-line);
  border-radius: 18px;
  padding: 18px 16px;
  text-align: center;
  box-shadow: var(--kt-shadow);
}
.kt-door-kicker {
  font-size: 11px;
  letter-spacing: .12em;
  color: var(--kt-kicker);
}
.kt-door-title {
  font-family: var(--kt-serif);
  font-size: 16px;
  font-weight: 600;
  color: var(--kt-ink);
  line-height: 1.45;
  letter-spacing: -.01em;
  word-break: keep-all;
}
.kt-door-body {
  font-size: 12px;
  line-height: 1.7;
  color: var(--kt-ink-soft);
  min-height: 2.4em;
}
.kt-door-cta {
  margin-top: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--kt-accent-d);
}
/* 左＝診断（藍寄り）／右＝学校（金寄り）の細縁で「楽しい/学び」の対比。重量は対等。 */
.kt-door--diag { border-color: #CBD6E4; }
.kt-door--school { border-color: var(--kt-gold); }

/* --- ⑤ お金の学校セクション（主役級） --- */
.kt-lp-school-section {
  margin: 8px 0 30px;
  padding: 26px 20px;
  background: var(--kt-bg-soft);
  border: 1px solid var(--kt-line);
  border-radius: 22px;
}
.kt-lp-school-kicker {
  text-align: center;
  font-size: 12px;
  letter-spacing: .16em;
  color: var(--kt-accent-d);
  margin: 0 0 10px;
}
.kt-lp-school-title {
  font-family: var(--kt-serif);
  font-size: 24px;
  font-weight: 600;
  text-align: center;
  color: var(--kt-ink);
  margin: 0 0 14px;
  letter-spacing: .02em;
}
.kt-lp-school-body {
  font-size: 14px;
  line-height: 1.95;
  text-align: center;
  color: var(--kt-ink-soft);
  margin: 0 0 22px;
}

/* (b) 6本柱を一望（網羅性の安心） */
.kt-lp-pillars-label {
  text-align: center;
  font-size: 11px;
  letter-spacing: .12em;
  color: var(--kt-ink-soft);
  margin: 0 0 12px;
}
.kt-lp-pillars {
  list-style: none;
  padding: 0;
  margin: 0 0 22px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 9px;
}
.kt-lp-pillar a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  text-decoration: none;
  background: var(--kt-card);
  border: 1px solid var(--kt-line);
  border-radius: 14px;
  padding: 12px 6px;
  height: 100%;
  box-sizing: border-box;
}
.kt-lp-pillar-glyph {
  font-family: var(--kt-serif);
  font-size: 20px;
  font-weight: 600;
  color: var(--kt-accent);
  line-height: 1;
}
.kt-lp-pillar-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--kt-ink);
}
.kt-lp-pillar-sub {
  font-size: 10px;
  line-height: 1.4;
  color: var(--kt-ink-soft);
  text-align: center;
}
.kt-lp-pillar-count {
  font-size: 10px;
  letter-spacing: .04em;
  color: var(--kt-gold);
}

/* (c) 「これ、無料？」の驚き帯 */
.kt-lp-freebadge {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: var(--kt-accent-bg);
  border-radius: 14px;
  padding: 16px 16px;
  margin: 0 0 22px;
}
.kt-lp-freebadge-tag {
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  color: #FBFCF8;
  background: var(--kt-accent);
  border-radius: 999px;
  padding: 5px 11px;
  white-space: nowrap;
}
.kt-lp-freebadge-body {
  margin: 2px 0 0;
  font-size: 12.5px;
  line-height: 1.8;
  color: var(--kt-ink);
}

/* (d) 代表レッスンのチラ見せ */
.kt-lp-peek-label {
  text-align: center;
  font-family: var(--kt-serif);
  font-size: 15px;
  color: var(--kt-ink);
  margin: 0 0 14px;
}
.kt-lp-peek { list-style: none; padding: 0; margin: 0 0 16px; }
.kt-lp-peek-card { margin: 0 0 10px; }
.kt-lp-peek-card a {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  background: var(--kt-card);
  border: 1px solid var(--kt-line);
  border-radius: 14px;
  padding: 14px 14px;
}
.kt-lp-peek-glyph {
  flex: 0 0 auto;
  width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--kt-serif);
  font-size: 18px;
  font-weight: 600;
  color: var(--kt-accent);
  background: var(--kt-accent-bg);
  border-radius: 50%;
}
.kt-lp-peek-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.kt-lp-peek-no { font-size: 10px; letter-spacing: .1em; color: var(--kt-accent-d); }
.kt-lp-peek-title { font-size: 14px; font-weight: 600; color: var(--kt-ink); line-height: 1.4; }
.kt-lp-peek-sub { font-size: 11px; color: var(--kt-ink-soft); line-height: 1.5; }
.kt-lp-peek-min { flex: 0 0 auto; font-size: 11px; color: var(--kt-gold); }
.kt-lp-peek-more { display: block; text-align: center; font-size: 13px; margin: 0 0 22px; }
.kt-lp-school-cta { margin-top: 4px; }

/* --- ⑥.5 結果→学習の橋（型に紐づくおすすめ） --- */
.kt-rsec--bridge { text-align: center; }
.kt-bridge-cards { list-style: none; padding: 0; margin: 6px 0 14px; }
.kt-bridge-card { margin: 0 0 10px; }
.kt-bridge-card a {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  text-align: left;
  background: var(--kt-card);
  border: 1px solid var(--kt-line);
  border-radius: 14px;
  padding: 14px 14px;
  box-shadow: var(--kt-shadow);
}
.kt-bridge-glyph {
  flex: 0 0 auto;
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--kt-serif);
  font-size: 19px;
  font-weight: 600;
  color: var(--kt-accent);
  background: var(--kt-accent-bg);
  border-radius: 50%;
}
.kt-bridge-thumb { flex: 0 0 auto; width: 40px; height: 40px; }
.kt-bridge-thumb img { width: 100%; height: 100%; object-fit: contain; }
.kt-bridge-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.kt-bridge-no { font-size: 10px; letter-spacing: .1em; color: var(--kt-accent-d); }
.kt-bridge-title { font-size: 14px; font-weight: 600; color: var(--kt-ink); line-height: 1.4; }
.kt-bridge-sub { font-size: 11px; color: var(--kt-ink-soft); line-height: 1.5; }
.kt-bridge-min { flex: 0 0 auto; font-size: 11px; color: var(--kt-gold); }
.kt-bridge-note { font-size: 12px; line-height: 1.8; color: var(--kt-ink-soft); margin: 4px 0 0; }

/* --- 学校イントロの「全Nレッスン・ぜんぶ無料」と地図リンク --- */
.ktl-school-intro-free {
  font-size: 13px;
  color: var(--kt-ink-soft);
  margin: 8px 0 0;
  text-align: center;
}
.ktl-school-intro-num {
  font-family: var(--kt-serif);
  font-size: 18px;
  font-weight: 700;
  color: var(--kt-accent-d);
  margin: 0 3px;
}
.ktl-school-intro-map { display: inline-block; margin-top: 10px; font-size: 13px; }

/* --- 共通フッター（静かなサイトマップ） --- */
.kt-foot-nav { margin: 26px 0 0; padding-top: 22px; border-top: 1px solid var(--kt-line); }
.kt-foot-nav-cols { display: flex; gap: 24px; justify-content: center; margin: 0 0 18px; }
.kt-foot-nav-col { flex: 0 1 auto; }
.kt-foot-nav-h {
  font-size: 11px;
  letter-spacing: .12em;
  color: var(--kt-accent-d);
  margin: 0 0 10px;
}
.kt-foot-nav-list { list-style: none; padding: 0; margin: 0; }
.kt-foot-nav-list li { margin: 0; }
.kt-foot-nav-list a {
  display: flex;
  align-items: center;
  min-height: 44px;            /* フッターリンクのタップ領域を確保（最低40px以上） */
  font-size: 12.5px;
  color: var(--kt-ink-soft);
  text-decoration: none;
  line-height: 1.4;
}
.kt-foot-nav-list a:hover { color: var(--kt-accent-d); }
.kt-foot-nav-list--pillars a { letter-spacing: .02em; }
.kt-foot-nav .kt-foot { text-align: center; margin-top: 6px; }

@media (max-width: 380px) {
  .kt-hero { font-size: 30px; }
  .kt-type { font-size: 23px; }
  .kt-door { padding: 15px 12px; }
  .kt-door-title { font-size: 16px; }
  .kt-lp-pillars { gap: 7px; }
}

/* ===================================================================== */
/* 月額メンバーシップ「つづける」（ストック導線）                          */
/*   控えめが原則：診断・学校（無料）の主役を奪わない視覚重量。            */
/*   藍を主役・テラコッタ/金は少量の差し色。煽らない。                     */
/* ===================================================================== */

/* --- 各画面に置く「続けたい人へ」の帯（LP・結果・キット共通） --- */
.kt-club-band {
  margin: 30px auto 0;
  max-width: 560px;
  padding: 20px 22px;
  background: var(--kt-bg-soft);
  border: 1px solid var(--kt-line);
  border-radius: 16px;
  border-left: 3px solid var(--kt-accent);
  text-align: center;
}
.kt-club-band-kicker {
  font-size: 11.5px;
  letter-spacing: .1em;
  color: var(--kt-kicker);
  margin: 0 0 6px;
}
.kt-club-band-title {
  font-family: var(--kt-serif);
  font-size: 18px;
  color: var(--kt-ink);
  margin: 0 0 8px;
  line-height: 1.5;
}
.kt-club-band-body {
  font-size: 13.5px;
  color: var(--kt-ink-soft);
  line-height: 1.85;
  margin: 0 0 12px;
}
.kt-club-band-cta {
  display: inline-block;
  font-size: 13.5px;
  font-weight: 600;
}
.kt-club-band-note {
  margin-top: 10px;
}
/* 結果・キットでは、さらに静かに（主役を奪わない） */
.kt-club-band--result,
.kt-club-band--kit {
  background: transparent;
  border-style: dashed;
  margin-top: 22px;
}

/* --- 学習ハブの「続ける器」＝月額への主戦場（信頼が最も厚い場所・中くらいの強さ） --- */
.kt-hub-club {
  margin: 34px auto 0;
  max-width: 620px;
  padding: 26px 24px;
  background: var(--kt-accent-bg);
  border: 1px solid #CDD8E6;
  border-radius: 18px;
  text-align: center;
}
.kt-hub-club-kicker {
  font-size: 12px;
  letter-spacing: .1em;
  color: var(--kt-kicker);
  margin: 0 0 8px;
}
.kt-hub-club-title {
  font-family: var(--kt-serif);
  font-size: 21px;
  color: var(--kt-ink);
  margin: 0 0 10px;
}
.kt-hub-club-body {
  font-size: 14px;
  color: var(--kt-ink-soft);
  line-height: 1.9;
  margin: 0 auto 16px;
  max-width: 440px;
}
.kt-hub-club-cta { margin: 0 auto; }
.kt-hub-club-note { margin-top: 12px; }

/* --- 代表レッスン末の、そっとした1リンク（弱） --- */
.ktl-club-link {
  margin: 22px auto 0;
  max-width: 520px;
  text-align: center;
  font-size: 13.5px;
  line-height: 1.8;
}
.ktl-club-link-k {
  display: block;
  color: var(--kt-ink-soft);
  margin-bottom: 4px;
  font-size: 12.5px;
}

/* --- 月額LP（kaname_club.html）--- */
.kt-club-compare {
  margin: 30px auto 0;
  max-width: 620px;
}
.kt-club-compare-label {
  text-align: center;
  font-size: 12px;
  letter-spacing: .1em;
  color: var(--kt-accent-d);
  margin: 0 0 14px;
}
.kt-club-compare-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
}
.kt-club-compare-col {
  background: var(--kt-card);
  border: 1px solid var(--kt-line);
  border-radius: 14px;
  padding: 16px 16px 8px;
}
.kt-club-compare-col--club {
  background: var(--kt-accent-bg);
  border-color: #CDD8E6;
}
.kt-club-compare-h {
  font-family: var(--kt-serif);
  font-size: 14.5px;
  color: var(--kt-ink);
  margin: 0 0 10px;
  text-align: center;
}
.kt-club-compare-col ul { list-style: none; padding: 0; margin: 0; }
.kt-club-compare-col li {
  font-size: 12.5px;
  color: var(--kt-ink-soft);
  line-height: 1.7;
  margin: 0 0 9px;
  padding-left: 16px;
  position: relative;
}
.kt-club-compare-col li .kt-dot {
  position: absolute;
  left: 0;
  top: 8px;
}
.kt-club-compare-note { margin-top: 14px; text-align: center; }

.kt-club-values { margin: 34px auto 0; max-width: 620px; }
.kt-club-value-list {
  list-style: none;
  padding: 0;
  margin: 14px 0 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
}
.kt-club-value {
  background: var(--kt-card);
  border: 1px solid var(--kt-line);
  border-radius: 14px;
  padding: 16px 16px;
}
.kt-club-value-title {
  font-family: var(--kt-serif);
  font-size: 15px;
  color: var(--kt-accent-d);
  margin: 0 0 7px;
}
.kt-club-value-body {
  font-size: 12.5px;
  color: var(--kt-ink-soft);
  line-height: 1.8;
  margin: 0;
}

.kt-club-price { margin: 34px auto 0; max-width: 480px; }
.kt-club-price-kicker {
  font-size: 12px;
  letter-spacing: .08em;
  color: var(--kt-kicker);
  margin: 0 0 10px;
}
.kt-club-price-main { margin: 0 0 6px; }
.kt-club-price-sub {
  font-size: 13px;
  color: var(--kt-ink-soft);
  margin: 0 0 4px;
}
.kt-club-price-year {
  font-size: 13px;
  color: var(--kt-ink);
  margin: 0 0 16px;
}
.kt-club-trial-cta { margin: 0 auto; }

.kt-club-reassure {
  margin: 30px auto 0;
  max-width: 480px;
}
.kt-club-reassure-h {
  font-size: 12.5px;
  letter-spacing: .08em;
  color: var(--kt-accent-d);
  margin: 0 0 12px;
  text-align: center;
}
.kt-club-reassure ul { list-style: none; padding: 0; margin: 0; }
.kt-club-reassure li {
  font-size: 12.5px;
  color: var(--kt-ink-soft);
  line-height: 1.75;
  margin: 0 0 10px;
  padding-left: 16px;
  position: relative;
}
.kt-club-reassure li .kt-dot { position: absolute; left: 0; top: 8px; }

@media (max-width: 420px) {
  .kt-club-value-list { grid-template-columns: 1fr; }
}
@media (max-width: 380px) {
  .kt-club-compare-grid { grid-template-columns: 1fr; }
}

/* ===================================================================== */
/* お金のタイプ診断：1問1画面フロー（Kaname独立・kaname配色）          */
/*   kaname_diagnose.js が .active を1つだけ付ける。no-JS時は全問スタック。 */
/* ===================================================================== */
.kt-diagnose .q-step { display: none; }
.kt-diagnose .q-step.active { display: block; }
.kt-diagnose.kt-nojs .q-step { display: block; }   /* JS無効時の安全フォールバック */

/* 進捗の点（done＝藍で満ちる／current＝藍のリング） */
.entry-progress {
  display: flex;
  justify-content: center;
  gap: 9px;
  margin: 4px 0 10px;
}
.entry-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--kt-line);
  transition: background .3s ease, transform .3s ease;
}
.entry-dot.done { background: var(--kt-accent); }
.entry-dot.current {
  background: var(--kt-accent);
  box-shadow: 0 0 0 3px var(--kt-accent-bg);
  transform: scale(1.15);
}
.entry-remain {
  text-align: center;
  font-size: 12.5px;
  letter-spacing: .08em;
  color: var(--kt-ink-soft);
  margin: 0 0 18px;
}

/* 問いの入れ替え（右から入る／左へ抜ける・やさしく） */
@keyframes ktqEnter { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
@keyframes ktqLeave { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateX(-18px); } }
.kt-diagnose .q-step.q-enter { animation: ktqEnter .42s ease both; }
.kt-diagnose .q-step.q-leave { display: block; animation: ktqLeave .30s ease both; }

/* 締めの一拍（handoff）：全問完了→結果へ渡す前の呼吸 */
.kt-handoff {
  position: fixed; inset: 0;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 18px;
  background: var(--kt-bg);
  opacity: 0; visibility: hidden;
  transition: opacity .5s ease, visibility .5s ease;
  z-index: 50;
}
.kt-handoff.show { opacity: 1; visibility: visible; }
.kt-handoff .entry-handoff-orb {
  width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--kt-accent);
  animation: ktOrbBreathe 1.6s ease-in-out infinite;
}
.kt-handoff .entry-handoff-text {
  font-family: var(--kt-serif);
  font-size: 15px;
  color: var(--kt-ink-soft);
}
@keyframes ktOrbBreathe { 0%,100% { transform: scale(1); opacity: .65; } 50% { transform: scale(1.35); opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  .kt-diagnose .q-step.q-enter,
  .kt-diagnose .q-step.q-leave { animation: none; }
  .kt-diagnose .q-step.q-leave { display: none; }
  .kt-handoff .entry-handoff-orb { animation: none; }
}

/* テスト段階プレビュー・ギャラリー（オーナー確認用） */
.kt-pv-lead { margin-bottom: 20px; }
.kt-pv-sec { margin: 0 auto 22px; max-width: 560px; }
.kt-pv-h {
  font-family: var(--kt-serif);
  font-size: 15px;
  color: var(--kt-accent-d);
  margin: 0 0 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--kt-line);
}
.kt-pv-list { list-style: none; padding: 0; margin: 0; }
.kt-pv-item {
  display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px;
  padding: 9px 0;
  border-bottom: 1px solid var(--kt-bg-soft);
}
.kt-pv-link {
  color: var(--kt-accent-d);
  text-decoration: none;
  font-size: 14.5px;
  font-weight: 600;
}
.kt-pv-link:hover { text-decoration: underline; }
.kt-pv-note { font-size: 12px; color: var(--kt-ink-soft); }
.kt-pv-subnote { font-size: 12px; color: var(--kt-ink-soft); margin: 8px 0 0; }

/* ===== メンバー限定コンテンツ（プログラム週・ワーク・ツール手順） ===== */
/* 今週のワーク（手を動かす実践）＝無料との決定的な差 */
.kt-work {
  background: var(--kt-accent-bg);
  border: 1px solid #CDD8E6;
  border-radius: 14px;
  padding: 16px 18px;
  margin: 16px 0;
}
.kt-work-label {
  font-size: 12px;
  letter-spacing: .08em;
  color: var(--kt-accent-d);
  margin: 0 0 10px;
  font-weight: 600;
}
.kt-work ol { margin: 0; padding-left: 20px; }
.kt-work li {
  font-size: 14px;
  color: var(--kt-ink);
  line-height: 1.9;
  margin: 0 0 8px;
}

/* プログラムの週ブロック */
.kt-week {
  border-top: 1px solid var(--kt-line);
  padding-top: 22px;
  margin-top: 22px;
}
.kt-week-no {
  font-size: 12px;
  letter-spacing: .1em;
  color: var(--kt-accent-d);
  margin: 0 0 4px;
}
.kt-week-title {
  font-family: var(--kt-serif);
  font-size: 19px;
  color: var(--kt-ink);
  margin: 0 0 10px;
}

/* ワークブックの手順ステップ */
.kt-tool-steps { list-style: none; padding: 0; margin: 18px 0; }
.kt-tool-step {
  display: flex; gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--kt-bg-soft);
}
.kt-tool-step-no {
  flex: 0 0 auto;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--kt-accent);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 700;
}
.kt-tool-step-title {
  font-family: var(--kt-serif);
  font-size: 15.5px;
  color: var(--kt-ink);
  margin: 2px 0 5px;
}
.kt-tool-step-text {
  font-size: 13.5px;
  color: var(--kt-ink-soft);
  line-height: 1.85;
  margin: 0;
}
.kt-member-tools { margin: 30px auto 0; max-width: 620px; }
.kt-member-tools .kt-club-value a { text-decoration: none; display: block; }

/* ===== 月額LP 強化（honest/総量/ためし読み/FAQ/価格実感） ===== */
.kt-club-honest {
  text-align: center;
  font-family: var(--kt-serif);
  font-size: 15px;
  color: var(--kt-terracotta, #C2683F);
  margin: 14px auto 0;
  max-width: 520px;
}
.kt-club-value-honest {
  text-align: center;
  font-size: 13.5px;
  color: var(--kt-ink-soft);
  margin: 0 auto 14px;
  max-width: 480px;
}
.kt-club-total {
  max-width: 560px;
  margin: 0 auto 22px;
  padding: 18px 20px;
  background: var(--kt-accent-bg);
  border: 1px solid #CDD8E6;
  border-radius: 16px;
  text-align: center;
}
.kt-club-total-kicker { font-size: 12px; letter-spacing: .08em; color: var(--kt-kicker); margin: 0 0 6px; }
.kt-club-total-line { font-family: var(--kt-serif); font-size: 15px; color: var(--kt-ink); line-height: 1.85; margin: 0 0 8px; }
.kt-club-total-note { margin: 0; }

/* ためし読み */
.kt-club-peek { max-width: 560px; margin: 30px auto 0; text-align: center; }
.kt-club-peek-title { font-family: var(--kt-serif); font-size: 22px; color: var(--kt-ink); margin: 4px 0 8px; }
.kt-club-peek-lead { margin: 0 auto 16px; max-width: 460px; }
.kt-club-peek-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.kt-club-peek-item a {
  display: block; text-align: left; text-decoration: none;
  background: var(--kt-card); border: 1px solid var(--kt-line);
  border-left: 3px solid var(--kt-accent);
  border-radius: 14px; padding: 14px 16px;
  transition: border-color .2s ease, transform .2s ease;
}
.kt-club-peek-item a:hover { border-left-color: var(--kt-accent-d); transform: translateX(2px); }
.kt-club-peek-label { display: block; font-size: 11.5px; letter-spacing: .08em; color: var(--kt-accent-d); margin-bottom: 4px; }
.kt-club-peek-h { display: block; font-family: var(--kt-serif); font-size: 16px; color: var(--kt-ink); margin-bottom: 4px; }
.kt-club-peek-body { display: block; font-size: 12.5px; color: var(--kt-ink-soft); line-height: 1.7; }
.kt-club-peek-more { margin: 16px 0 0; font-size: 14px; }
.kt-club-peek-more strong { color: var(--kt-accent-d); font-family: var(--kt-serif); }

/* 価格の生活実感 */
.kt-club-price-feel { font-size: 12.5px; color: var(--kt-ink-soft); margin: 2px 0 16px; }

/* FAQ */
.kt-club-faq { max-width: 560px; margin: 30px auto 0; }
.kt-club-faq-h { text-align: center; font-size: 12.5px; letter-spacing: .08em; color: var(--kt-kicker); margin: 0 0 14px; }
.kt-club-faq-list { list-style: none; padding: 0; margin: 0; }
.kt-club-faq-item { padding: 14px 0; border-bottom: 1px solid var(--kt-line); }
.kt-club-faq-q { font-family: var(--kt-serif); font-size: 14.5px; color: var(--kt-ink); margin: 0 0 6px; }
.kt-club-faq-q::before { content: "Q. "; color: var(--kt-accent-d); }
.kt-club-faq-a { font-size: 13px; color: var(--kt-ink-soft); line-height: 1.85; margin: 0; }

/* ===== 物語レイヤー「庭をたがやす」 ===== */
.kt-journey-chapter { text-align: center; font-size: 14px; color: var(--kt-ink); margin: 6px 0 2px; }
.kt-journey-chapter strong { color: var(--kt-accent-d); font-family: var(--kt-serif); }
.kt-journey-garden { text-align: center; font-size: 12.5px; color: var(--kt-ink-soft); margin: 0 0 6px; }
.kt-journey-story {
  font-family: var(--kt-serif);
  font-size: 15px; line-height: 1.95; color: var(--kt-ink);
  background: var(--kt-bg-soft);
  border-left: 3px solid var(--kt-sage, #6E9B7C);
  border-radius: 0 12px 12px 0;
  padding: 14px 18px; margin: 14px 0;
}
.kt-journey-next {
  text-align: center; font-size: 13px; color: var(--kt-ink-soft);
  font-style: normal; margin: 22px auto 10px; max-width: 460px;
  padding-top: 16px; border-top: 1px dashed var(--kt-line);
}
.kt-journey-prologue {
  max-width: 600px; margin: 20px auto 0;
  padding: 20px 22px;
  background: var(--kt-bg-soft); border: 1px solid var(--kt-line); border-radius: 16px;
}
.kt-journey-prologue-k { font-size: 12px; letter-spacing: .1em; color: var(--kt-accent-d); margin: 0 0 10px; }
.kt-journey-prologue-b { font-family: var(--kt-serif); font-size: 14.5px; line-height: 2; color: var(--kt-ink); margin: 0 0 12px; }
.kt-journey-core { font-family: var(--kt-serif); font-size: 16px; color: var(--kt-accent-d); text-align: center; margin: 0; }
.kt-journey-arc { max-width: 560px; margin: 24px auto 0; text-align: center; }
.kt-journey-arc-kicker { font-size: 12.5px; letter-spacing: .08em; color: var(--kt-kicker); margin: 0 0 8px; }
.kt-journey-arc-lead { font-family: var(--kt-serif); font-size: 14.5px; line-height: 1.95; color: var(--kt-ink); margin: 0 auto 16px; max-width: 480px; }
.kt-journey-arc-h { font-size: 12px; letter-spacing: .08em; color: var(--kt-ink-soft); margin: 0 0 10px; }
.kt-journey-arc-list { list-style: none; padding: 0; margin: 0 auto; max-width: 440px; text-align: left; }
.kt-journey-arc-list li { font-size: 13px; color: var(--kt-ink-soft); line-height: 1.7; margin: 0 0 9px; padding-left: 16px; position: relative; }
.kt-journey-arc-list li .kt-dot { position: absolute; left: 0; top: 8px; }
.kt-journey-arc-note { margin-top: 12px; }
.kt-journey-hub { max-width: 560px; margin: 18px auto 0; padding: 16px 20px; background: var(--kt-accent-bg); border-radius: 14px; text-align: center; }
.kt-journey-hub-k { font-size: 12px; letter-spacing: .08em; color: var(--kt-accent-d); margin: 0 0 6px; }
.kt-journey-hub-b { font-size: 13.5px; color: var(--kt-ink-soft); line-height: 1.85; margin: 0; }

/* ================================================================== */
/* 基盤モバイル：タップ領域・可読性の下限（全ページ土台）              */
/* ================================================================== */
/* T-1. 主要な操作要素のタップ高さ 44px 下限（見た目は非破壊・floor だけ）。 */
.kt-btn,
button,
[role="button"],
input,
select,
textarea,
.kt-tabbar-item {
  min-height: 44px;
}

/* T-2. 極小画面（≤360px：iPhone SE 等）の可読性・非破壊の流体調整。
   見出しが器を突き破らないよう clamp で上限を抑え、行間を確保。 */
@media (max-width: 360px) {
  .kt-wrap {
    /* 左右余白を少し詰めて本文幅を確保（safe-area は維持）。 */
    padding-left: calc(14px + env(safe-area-inset-left, 0px));
    padding-right: calc(14px + env(safe-area-inset-right, 0px));
  }
  .kt-hero { font-size: clamp(24px, 8vw, 30px); line-height: 1.3; }
  .kt-type { font-size: clamp(20px, 6.4vw, 23px); }
  .kt-card-title { font-size: clamp(19px, 5.8vw, 23px); }
  .kt-lp-school-title { font-size: clamp(20px, 6vw, 24px); }
  .kt-price { font-size: clamp(24px, 8vw, 30px); }
  /* 詰まりがちな本文の行間を少しゆるめる。 */
  .kt-lead, .kt-card-body, .kt-rsec-text { line-height: 1.9; }
}
