/*
Theme Name: earthcraft v2 野の図書館
Theme URI: https://earthcraft.jp/
Description: 地球生活術 earthcraft 専用カスタムテーマ v2.0「野の図書館」。大カテゴリ（棚）→シリーズ（LP固定ページ＋サブカテゴリ）→チャプター投稿の三層構造に対応。wp-members / Smart Slider 3 / Presto Player / Wonderplugin Audio / Contact Form 7 / WP-PageNavi と互換。テーマは表示層のみで、会員・決済の仕組みには触れない。
Author: WILD AND NATIVE
Author URI: https://earthcraft.jp/
Version: 2.0.0
Requires at least: 5.8
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: earthcraft
*/

/* ============================================================
   design tokens — mockups-v2（A案「野の図書館」）準拠
   ============================================================ */
:root{
  --kraft:  #e7dcc6;   /* クラフト紙 = 棚・外装・章の扉 */
  --paper:  #f4ecd9;   /* 明るい紙 = 読む面 */
  --paper2: #f7f1e2;   /* カード紙 */
  --dark:   #20241b;   /* 夜の面（ヒーロー・CTA帯・フッター） */
  --dark2:  #171a12;
  --green:  #3a4a30;   /* 深緑 = 見出し・タグ */
  --green-l:#566b45;
  --ember:  #b4502a;   /* 熾火 = ボタン・番号・鍵の印「だけ」 */
  --sepia:  #8a7048;   /* 学名・古い記録 */
  --ink:    #2a271d;
  --ink2:   #5c5747;
  --rule:   #c9bd9e;
  --ember-ink:#953d20; /* 文字リンク用の濃い熾火（AA合格） */
  --amber:  #d99a5b;   /* 夜の面の文字アクセント */
  --gold:   #C2A15E;   /* 家族の金（相関図の接続線・フッター罫線のみ） */
}

/* ============================================================
   base
   ============================================================ */
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN",sans-serif;
  font-weight:400; font-size:15px; line-height:1.9;
  background:var(--kraft); color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; height:auto; display:block;}
a{color:var(--ember-ink); text-decoration:none;}
a:hover{text-decoration:underline;}
h1,h2,h3,.serif{font-family:"Zen Antique","Hiragino Mincho ProN",serif; font-weight:400;}
.en{font-family:Georgia,"Times New Roman",serif;}
.klee{font-family:"Klee One",cursive;}
.wrap{max-width:1060px; margin:0 auto; padding:0 20px;}
.narrow{max-width:760px; margin:0 auto; padding:0 20px;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);}
@media(min-width:768px){ .wrap,.narrow{padding:0 28px;} }

/* ---- ふわっと現れる（1種のみ / 動きを減らす設定では停止） ---- */
.reveal{opacity:0; transform:translateY(14px); transition:opacity .7s ease, transform .7s ease;}
.reveal.is-in{opacity:1; transform:none;}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1; transform:none; transition:none;}
}

/* ============================================================
   ヘッダー
   ============================================================ */
.topbar{
  background:var(--dark2); color:#c7b58f; font-size:10px;
  letter-spacing:.28em; text-align:center; padding:7px 10px;
  text-transform:uppercase; font-family:Georgia,serif;
}
.topbar b{color:var(--amber); font-weight:400;}
header.site{background:var(--paper); border-bottom:2px solid var(--dark); position:relative; z-index:5;}
.hdr{
  display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between;
  gap:10px 18px; padding:16px 20px; max-width:1060px; margin:0 auto;
}
.logo a{text-decoration:none !important; display:block;}
.logo b{font-family:Georgia,serif; font-size:26px; letter-spacing:.14em; color:var(--dark); display:block; line-height:1;}
.logo small{font-size:10px; letter-spacing:.46em; color:var(--ember); display:block; margin-top:4px;}
.logo-img img{max-height:56px; width:auto;}
nav.gnav{
  display:flex; gap:4px; font-size:12.5px; letter-spacing:.05em;
  overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%;
  padding-bottom:2px;
}
nav.gnav li{list-style:none; display:flex;}
nav.gnav a{color:var(--ink); padding:10px 9px; white-space:nowrap; min-height:44px; display:flex; align-items:center;}
nav.gnav a:hover{color:var(--ember-ink); text-decoration:none;}
.nav-toggle{display:none;}
@media(min-width:768px){
  .hdr{padding:20px 28px;}
  .logo b{font-size:30px;}
  nav.gnav{gap:10px; font-size:13px;}
}
@media(max-width:600px){
  .nav-toggle{
    display:inline-flex; align-items:center; min-height:44px;
    background:none; border:1px solid var(--rule); color:var(--ink);
    font-family:Georgia,serif; font-size:12px; letter-spacing:.14em;
    padding:6px 14px; cursor:pointer;
  }
  nav.gnav{display:none; width:100%; flex-direction:column; gap:0;}
  nav.gnav.open{display:flex;}
  nav.gnav a{border-top:1px dotted var(--rule); width:100%;}
}

/* 目盛りの帯 */
.ruler{height:14px; background:var(--dark); position:relative; overflow:hidden;}
.ruler::before{
  content:""; position:absolute; inset:0; opacity:.5;
  background:repeating-linear-gradient(90deg,#6a6450 0 1px,transparent 1px 14px);
}

/* ============================================================
   ヒーロー（トップ）
   ============================================================ */
.hero{
  position:relative; border-bottom:2px solid var(--dark);
  min-height:92svh; display:flex; align-items:flex-end;
  background-color:#12150d;
  background-size:cover; background-position:center 30%; background-repeat:no-repeat;
}
.hero-inner{
  width:100%; max-width:1060px; margin:0 auto;
  padding:56px 20px 40px;
  display:flex; flex-direction:column; gap:26px;
}
.hero .kick, .door .kick{
  display:inline-flex; align-items:center; gap:10px;
  font-family:Georgia,serif; font-size:11px; letter-spacing:.3em;
  color:var(--amber); text-transform:uppercase;
}
.hero .kick::before, .door .kick::before{content:""; width:30px; height:1px; background:var(--amber);}
.hero h1{
  font-size:clamp(26px, 6.4vw, 44px); line-height:1.55; letter-spacing:.05em;
  color:#f3ecd8; text-shadow:0 2px 20px rgba(0,0,0,.55); margin-top:14px;
}
.hero .lead{
  font-size:13.5px; color:#e4dcc5; max-width:34em;
  text-shadow:0 1px 12px rgba(0,0,0,.5); margin-top:12px;
}
.hero .actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:18px;}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:12px 26px;
  background:var(--ember); color:#fff !important; border:1px solid #c8632f;
  font-size:13.5px; letter-spacing:.1em; text-decoration:none !important;
  font-family:inherit; cursor:pointer;
}
.btn:hover{background:#a04624;}
.btn.ghost{background:transparent; color:#efe7d2 !important; border:1px solid #97917c;}
.btn.ghost:hover{background:rgba(244,236,217,.1);}
.btn.ghost-light{background:transparent; color:var(--ember-ink) !important; border:1px solid var(--ember);}
.btn.ghost-light:hover{background:rgba(180,80,42,.08);}
@media(min-width:768px){
  .hero{min-height:78svh; align-items:center;}
  .hero-inner{
    flex-direction:row; align-items:flex-end; justify-content:space-between;
    padding:90px 28px 64px; gap:40px;
  }
  .hero .lead{font-size:14.5px;}
}

/* 蔵書目録カード */
.catalog-card{
  background:var(--paper2); border:1px solid #d8cbab;
  box-shadow:0 14px 34px rgba(0,0,0,.4);
  padding:18px 20px 14px; max-width:340px; width:100%;
  position:relative;
}
.catalog-card::before{ /* 画鋲 */
  content:""; position:absolute; top:-8px; left:50%; transform:translateX(-50%);
  width:16px; height:16px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #c9763a, #7d3f17);
  box-shadow:0 3px 6px rgba(0,0,0,.4);
}
.catalog-card h2{
  font-size:14px; letter-spacing:.2em; color:var(--green);
  border-bottom:1px solid var(--rule); padding-bottom:8px; margin-bottom:6px;
  display:flex; justify-content:space-between; align-items:baseline;
}
.catalog-card h2 .en{font-size:10px; letter-spacing:.24em; color:var(--sepia); text-transform:uppercase;}
.catalog-card table{width:100%; border-collapse:collapse; font-size:13px;}
.catalog-card td{padding:5px 0; border-bottom:1px dotted var(--rule); color:var(--ink);}
.catalog-card td:last-child{text-align:right; font-family:Georgia,serif; color:var(--ink);}
.catalog-card tr:last-child td{border-bottom:none;}
.catalog-card .since{
  text-align:right; font-family:Georgia,serif; font-size:11px;
  color:var(--sepia); letter-spacing:.12em; margin-top:6px;
}

/* ============================================================
   扉（シリーズLP・申込LPのヒーロー）
   ============================================================ */
.door{
  position:relative; border-bottom:2px solid var(--dark);
  background-color:#12150d;
  background-size:cover; background-position:center 42%; background-repeat:no-repeat;
}
.door-inner{max-width:760px; margin:0 auto; padding:72px 20px 56px;}
.door h1{
  font-size:clamp(24px,5.6vw,36px); line-height:1.6; letter-spacing:.05em;
  color:#f3ecd8; text-shadow:0 2px 20px rgba(0,0,0,.55); margin-top:14px;
}
.door p{
  font-size:14px; color:#e4dcc5; max-width:36em;
  text-shadow:0 1px 12px rgba(0,0,0,.5); margin-top:14px;
}
.door .door-meta{font-size:12px; letter-spacing:.14em; color:var(--amber);}
@media(min-width:768px){ .door-inner{padding:96px 28px 72px;} }

/* ============================================================
   セクション共通
   ============================================================ */
section{padding:56px 0;}
.sec-head{
  border-bottom:2px solid var(--dark); padding-bottom:10px; margin-bottom:14px;
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
}
.sec-head h2{font-size:21px; color:var(--green); letter-spacing:.08em;}
.sec-head .lbl{
  font-family:Georgia,serif; font-size:11px; letter-spacing:.28em;
  color:var(--ember); text-transform:uppercase; white-space:nowrap;
}
.sec-intro{font-size:14px; color:var(--ink2); max-width:38em; margin-bottom:30px;}
@media(min-width:768px){
  section{padding:72px 0;}
  .sec-head h2{font-size:24px;}
}

/* ページヘッダー（カテゴリ・固定ページ・検索など） */
.page-head{background:var(--paper); padding:36px 0 26px; border-bottom:0;}
.page-head .lbl{
  font-family:Georgia,serif; font-size:11px; letter-spacing:.28em;
  color:var(--ember); text-transform:uppercase; display:block;
}
.page-head h1{font-size:clamp(22px,5vw,32px); color:var(--green); letter-spacing:.06em; margin-top:8px;}
.page-head .desc{font-size:13.5px; color:var(--ink2); max-width:38em; margin-top:10px;}

/* パンくず */
.crumbs{
  font-size:11.5px; color:var(--ink2); letter-spacing:.04em;
  display:flex; flex-wrap:wrap; gap:6px; align-items:baseline;
  margin-bottom:14px;
}
.crumbs a{color:var(--ink2);}
.crumbs a:hover{color:var(--ember-ink);}
.crumbs span[aria-current]{color:var(--ink);}
.crumbs.on-dark, .crumbs.on-dark a{color:#cfc7b2;}
.crumbs.on-dark span[aria-current]{color:#f1e9d4;}

/* ============================================================
   コース棚・レッスンカード
   ============================================================ */
.stacks{background:var(--kraft);}
.shelf{margin-bottom:44px;}
.shelf:last-child{margin-bottom:0;}
.shelf-head{
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  margin-bottom:16px;
}
.shelf-head h3{font-size:16.5px; color:var(--green); letter-spacing:.05em;}
.shelf-head h3 .cnt{font-family:Georgia,serif; font-size:12.5px; color:var(--sepia); letter-spacing:.1em; margin-left:6px;}
.shelf-head a{font-size:12.5px; white-space:nowrap; min-height:44px; display:inline-flex; align-items:center;}
/* 棚1段 = 横スクロール。棚板2px */
.shelf-row{
  display:grid; grid-auto-flow:column; grid-auto-columns:72%;
  gap:16px; overflow-x:auto; -webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity;
  padding:0 4px 18px;
  border-bottom:2px solid var(--dark); /* 棚板 */
}
.shelf-row::-webkit-scrollbar{height:6px;}
.shelf-row::-webkit-scrollbar-thumb{background:var(--rule);}
@media(min-width:600px){ .shelf-row{grid-auto-columns:44%;} }
@media(min-width:900px){ .shelf-row{grid-auto-columns:calc((100% - 48px)/4);} }
.lesson{
  background:var(--paper2); border:1px solid var(--rule);
  scroll-snap-align:start; display:flex; flex-direction:column; position:relative;
}
.lesson-link{display:flex; flex-direction:column; flex:1; color:inherit; text-decoration:none !important;}
.lesson .fig{aspect-ratio:4/3; overflow:hidden; border-bottom:1px solid var(--rule); position:relative;}
.lesson .fig img{width:100%; height:100%; object-fit:cover;}
.lesson .no{
  position:absolute; top:8px; left:10px;
  font-family:Georgia,serif; font-size:10.5px; letter-spacing:.18em; color:var(--ember);
  background:rgba(247,241,226,.88); padding:1px 6px;
}
/* 鍵の印: 熾火の枠、塗らない。ぼかし・灰色化はしない */
.key{
  position:absolute; top:8px; right:8px;
  font-size:10px; letter-spacing:.08em; color:var(--ember-ink);
  border:1px solid var(--ember); background:rgba(247,241,226,.92);
  padding:2px 7px; display:inline-flex; align-items:center; gap:4px;
}
.key svg{width:9px; height:9px; fill:var(--ember-ink);}
.open-tag{
  position:absolute; top:8px; right:8px;
  font-size:10px; letter-spacing:.08em; color:#fff;
  background:var(--green); padding:2.5px 8px;
}
.lesson .body{padding:13px 14px 15px; display:flex; flex-direction:column; gap:6px; flex:1;}
.lesson h4{
  font-family:"Zen Antique",serif; font-weight:400; font-size:14.5px;
  line-height:1.6; color:var(--ink);
}
.lesson p{font-size:12px; color:var(--ink2); line-height:1.75;}
.lesson .meta{
  margin-top:auto; font-family:Georgia,serif; font-size:10.5px;
  color:var(--sepia); letter-spacing:.08em; padding-top:6px;
  border-top:1px dotted var(--rule);
}
.shelf-alt{font-size:11.5px; color:var(--ink2); margin-top:10px;}

/* 目録のみの小さな棚（サブカテゴリ無しの棚・章一覧） */
.shelf-list{border-bottom:2px solid var(--dark); list-style:none;}
.shelf-list li{
  display:flex; align-items:baseline; gap:12px;
  padding:13px 4px; border-top:1px dotted var(--rule); font-size:13.5px;
  flex-wrap:wrap;
}
.shelf-list li:first-child{border-top:none;}
.shelf-list .no{font-family:Georgia,serif; font-size:11px; color:var(--ember); letter-spacing:.14em; flex:none;}
.shelf-list .ttl{font-family:"Zen Antique",serif; color:var(--ink);}
.shelf-list .fm{margin-left:auto; font-family:Georgia,serif; font-size:10.5px; color:var(--sepia); white-space:nowrap;}
.shelf-list .key, .shelf-list .open-tag{position:static; flex:none;}

/* シリーズ一覧グリッド（大カテゴリページ）・新着グリッド */
.series-grid, .recent-grid{display:grid; gap:20px;}
@media(min-width:600px){ .series-grid, .recent-grid{grid-template-columns:repeat(2,1fr);} }
@media(min-width:900px){ .series-grid, .recent-grid{grid-template-columns:repeat(3,1fr); gap:28px;} }
.recent{background:var(--paper);}
.recent .lesson .fig{aspect-ratio:16/10;}

/* チャプター一覧（台帳式。series-lp.html 準拠） */
.chapter-list{list-style:none; max-width:760px;}
.chapter-list>li{border-bottom:1px solid var(--rule);}
.chapter-list>li:first-child{border-top:2px solid var(--dark);}
.chapter-list>li:last-child{border-bottom:2px solid var(--dark);}
.ch-link{
  display:flex; align-items:center; gap:14px;
  padding:16px 6px; min-height:64px;
  color:var(--ink); text-decoration:none !important;
}
.ch-link:hover{background:var(--paper2);}
.ch-no{
  flex:none; width:44px; text-align:center;
  font-family:Georgia,serif; font-size:22px; color:var(--ember); line-height:1;
}
.ch-no small{display:block; font-size:9px; letter-spacing:.24em; color:var(--sepia); margin-bottom:3px; text-transform:uppercase;}
.ch-body{flex:1; min-width:0;}
.ch-body h3{font-size:15.5px; line-height:1.65; letter-spacing:.02em; color:var(--ink);}
.ch-body .ch-meta{
  font-family:Georgia,serif; font-size:11px; color:var(--sepia);
  letter-spacing:.08em; margin-top:3px;
}
.chapter-list .key, .chapter-list .open-tag{position:static; flex:none;}
.done-dot{flex:none; width:9px; height:9px; border-radius:50%; background:var(--ember);}
.chapters{background:var(--kraft);}
.chapters .note{font-size:12.5px; color:var(--ink2); margin-top:16px; max-width:42em;}
@media(max-width:479px){
  .ch-link{gap:10px; padding:14px 2px;}
  .ch-no{width:36px; font-size:19px;}
  .ch-body h3{font-size:14.5px;}
}
.ec-empty{color:var(--ink2); font-size:13.5px;}

/* シリーズLPへの誘導バナー（サブカテゴリページ） */
.series-lp-banner{
  background:var(--paper2); border:1px solid var(--rule);
  outline:1px solid var(--rule); outline-offset:3px;
  padding:20px 20px 22px; margin-bottom:40px;
  display:flex; flex-direction:column; gap:14px;
}
.series-lp-banner p{font-size:13.5px; color:var(--ink2);}
@media(min-width:768px){
  .series-lp-banner{flex-direction:row; align-items:center; justify-content:space-between; gap:24px;}
  .series-lp-banner .btn{flex:none;}
}

/* ============================================================
   シリーズLP
   ============================================================ */
.series-body{background:var(--paper); padding:48px 0 36px;}
.series-toc{background:var(--kraft); padding-top:48px;}

/* ============================================================
   4スクール相関図
   ============================================================ */
.family{
  background:linear-gradient(180deg,#23271d,#191d13);
  border-bottom:2px solid var(--dark);
  color:#cfc7b2;
}
.family .sec-head{border-color:#3a3e2f;}
.family .sec-head h2{color:#f1e9d4;}
.family .sec-head .lbl{color:var(--amber);}
.family .sec-intro{color:#a89f86;}
.school-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:12px;}
@media(min-width:768px){ .school-grid{grid-template-columns:repeat(4,1fr); gap:16px;} }
.school{
  border:1px solid #3a3e2f; padding:16px 14px; text-align:center;
  display:flex; flex-direction:column; gap:4px; min-height:44px;
}
.school .ro{font-family:Georgia,serif; font-size:12px; color:var(--amber); letter-spacing:.2em;}
.school b{color:#f1e9d4; font-size:13.5px; font-weight:500; letter-spacing:.03em;}
.school small{font-family:Georgia,serif; font-size:10px; color:#9a9277; letter-spacing:.1em;}
.school .fld{font-size:11px; color:#a89f86;}
.flow-svg{display:block; width:100%; max-width:560px; margin:0 auto; height:64px;}
.hub{
  max-width:560px; margin:0 auto; text-align:center;
  border:1px solid var(--gold); padding:22px 18px;
  background:rgba(194,161,94,.06);
}
.hub .en{font-family:Georgia,serif; font-size:10px; letter-spacing:.3em; color:var(--gold); text-transform:uppercase;}
.hub h3{font-size:20px; color:#f1e9d4; letter-spacing:.1em; margin-top:6px;}
.hub p{font-size:12.5px; color:#cfc7b2; margin-top:8px;}
.hub p a{color:var(--amber);}
.family .note{text-align:center; font-size:12px; color:#a89f86; margin-top:18px;}

/* ============================================================
   申込CTA帯（暗面）
   ============================================================ */
.cta{
  background:var(--dark); color:#efe7d2;
  border-top:2px solid var(--dark2); text-align:center;
}
.cta .lbl{font-family:Georgia,serif; font-size:11px; letter-spacing:.3em; color:var(--amber); text-transform:uppercase;}
.cta h2{font-size:clamp(21px,5vw,27px); color:#f3ecd8; letter-spacing:.05em; margin:12px 0 10px;}
.cta .cta-lead{font-size:13.5px; color:#cfc7b2; max-width:34em; margin:0 auto;}
.cta-table{
  max-width:480px; margin:26px auto 30px; text-align:left;
  border-top:1px solid #4a4e3e;
}
.cta-table div{
  display:flex; justify-content:space-between; gap:16px;
  padding:11px 4px; border-bottom:1px solid #4a4e3e; font-size:13px;
}
.cta-table dt{color:#a89f86; flex:none;}
.cta-table dd{text-align:right;}
.cta .actions{display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:22px;}
.cta .fine{font-size:11.5px; color:#8f8871; margin-top:18px;}

/* ============================================================
   申込LP（page-about.php）
   ============================================================ */
.prose{font-size:14.5px; max-width:38em;}
.prose p{margin-bottom:1.3em;}
.prose p:last-child{margin-bottom:0;}

.fields{background:var(--paper);}
.field-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:14px;}
@media(min-width:768px){ .field-grid{grid-template-columns:repeat(4,1fr); gap:20px;} }
.field{
  background:var(--paper2); border:1px solid var(--rule);
  outline:1px solid var(--rule); outline-offset:2px;
  padding:10px 10px 14px; position:relative;
}
.field .fig{aspect-ratio:1/1; overflow:hidden; border:1px solid #ddd0b2;}
.field .fig img{width:100%; height:100%; object-fit:cover;}
.field .no{
  position:absolute; top:16px; left:16px;
  font-family:Georgia,serif; font-size:10px; letter-spacing:.16em; color:var(--ember);
  background:rgba(247,241,226,.88); padding:1px 5px;
}
.field h3{font-size:14.5px; letter-spacing:.05em; color:var(--ink); margin-top:10px;}
.field .en-sub{
  font-family:Georgia,serif; font-style:italic; font-size:11px;
  color:var(--sepia); display:block; margin-top:1px;
}
.field p{font-size:12px; color:var(--ink2); margin-top:7px; line-height:1.8;}

.catalog{background:var(--kraft);}
.catalog-table{max-width:520px; border-top:1px solid var(--sepia); font-size:14px;}
.catalog-table div{
  display:flex; justify-content:space-between; gap:16px;
  padding:12px 4px; border-bottom:1px solid var(--rule);
}
.catalog-table dt{color:var(--ink);}
.catalog-table dd{font-family:Georgia,serif; text-align:right;}
.catalog .since{
  font-family:Georgia,serif; font-size:12px; color:var(--sepia);
  letter-spacing:.12em; margin-top:10px; max-width:520px; text-align:right;
}
.catalog .note{font-size:12.5px; color:var(--ink2); margin-top:18px; max-width:38em;}
.fields .note{font-size:12.5px; color:var(--ink2); margin-top:18px; max-width:38em;}

/* ---------- 中の様子（開架の紹介） ---------- */
.inside{background:var(--paper);}
.inside-grid{display:grid; gap:26px;}
@media(min-width:768px){ .inside-grid{grid-template-columns:1.1fr .9fr; align-items:center; gap:44px;} }
.inside .fig{
  border:1px solid var(--sepia); outline:1px solid var(--sepia); outline-offset:4px;
  aspect-ratio:16/10; overflow:hidden; position:relative;
}
.inside .fig img{width:100%; height:100%; object-fit:cover;}
.inside .fig.video{aspect-ratio:auto;}
.inside .fig .play{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(23,26,18,.28);
}
.inside .fig .play i{
  width:64px; height:64px; border-radius:50%;
  background:rgba(247,241,226,.92); border:1px solid var(--sepia);
  display:flex; align-items:center; justify-content:center;
}
.inside .fig .play i::before{
  content:""; display:block; margin-left:5px;
  border-style:solid; border-width:10px 0 10px 16px;
  border-color:transparent transparent transparent var(--ember);
}
.inside .cap{font-family:"Klee One",cursive; font-size:12px; color:var(--sepia); margin-top:10px;}
.inside p{font-size:13.5px; color:var(--ink2); margin-bottom:14px;}
.inside ul{list-style:none; margin-bottom:16px;}
.inside li{
  display:flex; align-items:baseline; gap:10px;
  padding:9px 2px; border-top:1px dotted var(--rule); font-size:13px;
}
.inside li::before{content:"—"; color:var(--sepia); flex:none;}

/* ---------- レッスンシリーズ（学びの単位） ---------- */
.trails-sec{background:var(--kraft);}
.trail-list{list-style:none; max-width:640px;}
.trail-list li{
  display:flex; align-items:baseline; gap:12px; flex-wrap:wrap;
  padding:14px 4px; border-bottom:1px dotted var(--rule); font-size:14px;
}
.trail-list .ro{font-family:Georgia,serif; font-size:11px; color:var(--ember); letter-spacing:.18em; flex:none;}
.trail-list .ttl{font-family:"Zen Antique",serif;}
.trail-list .cnt{font-family:Georgia,serif; font-size:11.5px; color:var(--sepia); letter-spacing:.1em;}
.trail-list .free{
  margin-left:auto; font-size:10.5px; letter-spacing:.06em; color:#fff;
  background:var(--green); padding:2px 8px; white-space:nowrap;
}
.trails-sec .note{font-size:12.5px; color:var(--ink2); margin-top:16px; max-width:38em;}

.teacher{
  background:linear-gradient(180deg,#23271d,#191d13);
  border-top:2px solid var(--dark); border-bottom:2px solid var(--dark);
  color:#cfc7b2;
}
.teacher .sec-head{border-color:#3a3e2f;}
.teacher .sec-head h2{color:#f1e9d4;}
.teacher .sec-head .lbl{color:var(--amber);}
.teacher .prose{color:#cfc7b2; font-size:14px; max-width:40em;}
.teacher .prose p{margin-bottom:1.2em;}
.teacher .prose b{color:#f1e9d4; font-weight:500;}
/* 4スクールの札 */
.ms-schools{display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:26px;}
@media(min-width:768px){ .ms-schools{grid-template-columns:repeat(4,1fr); gap:16px;} }
.ms-schools .school{
  border:1px solid #3a3e2f; padding:16px 14px; text-align:center;
  display:flex; flex-direction:column; gap:4px;
}
.ms-schools .ro{font-family:Georgia,serif; font-size:12px; color:var(--amber); letter-spacing:.2em;}
.ms-schools b{color:#f1e9d4; font-size:13px; font-weight:500; letter-spacing:.03em;}
.ms-schools .fld{font-size:11px; color:#a89f86;}
/* マザースクールの帯（家族の金の枠） */
.ms-hub{
  margin-top:16px; border:1px solid var(--gold); background:rgba(194,161,94,.06);
  padding:18px 16px; text-align:center; font-size:12.5px; color:#cfc7b2;
}
.ms-hub b{color:#f1e9d4; font-weight:500;}
.ms-hub .en{display:block; font-size:10px; letter-spacing:.3em; color:var(--gold); text-transform:uppercase; margin-bottom:6px;}
.teacher .ms-close{font-size:12.5px; color:#a89f86; margin-top:14px;}
/* 案内役（川口拓）— マザースクールの中の一要素として従属配置 */
.librarian{
  margin-top:36px; padding-top:28px; border-top:1px solid #3a3e2f;
  display:grid; gap:20px;
}
@media(min-width:768px){ .librarian{grid-template-columns:340px 1fr; gap:38px; align-items:start;} }
.librarian .fig{border:1px solid #3a3e2f; overflow:hidden;}
.librarian .fig img{width:100%; height:auto;}
.librarian .cap{font-family:"Klee One",cursive; font-size:11.5px; color:#a89f86; margin-top:8px;}
.librarian .who{font-family:Georgia,serif; font-size:10px; letter-spacing:.28em; color:var(--amber); text-transform:uppercase;}
.librarian h3{font-size:17px; color:#f1e9d4; letter-spacing:.08em; margin-top:6px;}
.librarian h3 .name-en{font-size:12px; letter-spacing:.2em; margin-left:12px; color:#a89f86;}
.librarian .roles{font-size:11.5px; color:#a89f86; letter-spacing:.03em; margin:6px 0 12px; line-height:1.9;}
.librarian p{font-size:13px; color:#cfc7b2;}
.librarian p+p{margin-top:.9em;}
.teacher .cap{font-family:"Klee One",cursive; font-size:12px; color:#a89f86; margin-top:10px;}

.price{background:var(--paper);}
.price-card{
  max-width:560px; background:var(--paper2);
  border:1px solid var(--sepia); outline:1px solid var(--sepia); outline-offset:4px;
  padding:26px 22px 24px;
}
.price-card .head{
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  border-bottom:2px solid var(--dark); padding-bottom:12px; margin-bottom:6px;
}
.price-card .head h3{font-size:16px; color:var(--green); letter-spacing:.1em;}
.price-card .head .p{font-family:Georgia,serif; font-size:15px; color:var(--ink);}
.price-card .head .p b{font-size:26px; font-weight:400; letter-spacing:.02em;}
.price-card dl div{
  display:flex; justify-content:space-between; gap:16px;
  padding:11px 2px; border-bottom:1px dotted var(--rule); font-size:13.5px;
}
.price-card dl div:last-child{border-bottom:none;}
.price-card dt{color:var(--ink2); flex:none;}
.price-card dd{text-align:right;}
.price .fine{font-size:12px; color:var(--ink2); margin-top:18px; max-width:36em;}
.mid-cta{text-align:center; margin-top:30px;}

.faq{background:var(--kraft);}
.faq details{border:1px solid var(--rule); background:var(--paper2); margin-bottom:12px;}
.faq summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; gap:12px;
  padding:15px 16px; min-height:48px;
  font-family:"Zen Antique",serif; font-size:14.5px; color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::before{
  content:"問"; flex:none;
  font-size:11px; color:var(--ember); border:1px solid var(--ember);
  width:22px; height:22px; display:flex; align-items:center; justify-content:center;
}
.faq summary::after{
  content:"+"; margin-left:auto; font-family:Georgia,serif;
  font-size:18px; color:var(--sepia); transition:transform .25s ease;
}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq .a{padding:0 16px 16px 50px; font-size:13.5px; color:var(--ink2);}

.flow{background:var(--paper);}
.steps{list-style:none; max-width:560px; position:relative; padding-left:34px;}
.steps::before{
  content:""; position:absolute; left:11px; top:10px; bottom:10px;
  width:1.5px; background:var(--sepia);
}
.steps li{position:relative; padding-bottom:28px;}
.steps li:last-child{padding-bottom:0;}
.steps li::before{
  content:""; position:absolute; left:-29px; top:7px;
  width:13px; height:13px; border-radius:50%;
  background:var(--ember); border:2px solid var(--paper);
  box-shadow:0 0 0 1.5px var(--sepia);
}
.steps h3{font-size:15.5px; color:var(--ink); letter-spacing:.04em;}
.steps h3 .en{font-size:10.5px; letter-spacing:.2em; color:var(--ember); margin-right:10px; text-transform:uppercase;}
.steps p{font-size:13px; color:var(--ink2); margin-top:5px;}

/* ============================================================
   記事（チャプター）ページ
   ============================================================ */
.single-main{background:var(--paper);}
.article-head{background:var(--paper); padding:36px 0 8px;}
.article-head .cat-line{
  font-family:Georgia,serif; font-size:11px; letter-spacing:.24em;
  color:var(--ember); text-transform:uppercase;
}
.article-head h1{
  font-size:clamp(22px,5vw,32px); color:var(--green);
  letter-spacing:.05em; line-height:1.6; margin-top:8px;
}
.article-head .meta-line{
  font-size:12px; color:var(--sepia); letter-spacing:.1em; margin-top:10px;
  display:flex; align-items:center; gap:10px;
}
.ec-featured{margin:22px 0 6px; border:1px solid var(--sepia); outline:1px solid var(--sepia); outline-offset:4px; overflow:hidden;}
.ec-featured img{width:100%; height:auto;}

/* 本文（the_content 出力） */
.ec-entry-content{padding:18px 0 8px; font-size:15px;}
.ec-entry-content > *{margin-bottom:1.4em;}
.ec-entry-content h2{
  font-size:20px; color:var(--green); letter-spacing:.06em;
  border-bottom:2px solid var(--dark); padding-bottom:8px; margin:1.8em 0 1em;
}
.ec-entry-content h3{
  font-size:17px; color:var(--green); letter-spacing:.05em; margin:1.6em 0 .8em;
  padding-left:12px; border-left:3px solid var(--ember);
}
.ec-entry-content h4{font-size:15.5px; color:var(--ink); margin:1.4em 0 .7em;}
.ec-entry-content ul, .ec-entry-content ol{padding-left:1.6em;}
.ec-entry-content li{margin-bottom:.4em;}
.ec-entry-content blockquote{
  border-left:3px solid var(--rule); padding:4px 0 4px 18px; color:var(--ink2);
  font-family:"Zen Antique",serif;
}
.ec-entry-content img{border:1px solid var(--rule);}
.ec-entry-content iframe, .ec-entry-content video{max-width:100%;}
.ec-entry-content a{text-decoration:underline;}
.ec-entry-content table{border-collapse:collapse; width:100%;}
.ec-entry-content th, .ec-entry-content td{border:1px solid var(--rule); padding:8px 10px; font-size:13.5px;}
.ec-entry-content th{background:var(--paper2); color:var(--green);}

/* ティーザー＋ロックパネル */
.ec-teaser{padding-bottom:0;}
.teaser-rule{
  display:flex; align-items:center; margin:26px 0 10px;
}
.teaser-rule span{
  flex:1; height:0; border-top:2px dotted var(--sepia);
}
.teaser-note{
  text-align:center; font-size:12.5px; color:var(--sepia);
  font-family:"Klee One",cursive; margin-bottom:22px;
}
.lock-panel{
  background:var(--paper2); border:1px solid var(--sepia);
  outline:1px solid var(--sepia); outline-offset:4px;
  padding:28px 22px 26px; text-align:center; margin:10px 0 30px;
}
.lock-panel h2{font-size:18px; color:var(--green); letter-spacing:.06em;}
.lock-panel p{font-size:13.5px; color:var(--ink2); max-width:34em; margin:12px auto 18px;}
.lock-panel .actions{display:flex; flex-wrap:wrap; gap:12px; justify-content:center;}

/* 記事フッター・前後章ナビ */
.article-foot{padding:6px 0 14px;}
.ec-tags a{
  display:inline-block; font-size:11px; color:var(--green);
  border:1px solid var(--green-l); padding:2px 9px; margin:0 6px 6px 0;
}
.chapter-nav{
  display:grid; grid-template-columns:1fr auto 1fr; gap:14px; align-items:start;
  border-top:2px solid var(--dark); padding:18px 0 40px; font-size:13px;
}
.chapter-nav .dir{
  display:block; font-size:10.5px; letter-spacing:.2em; color:var(--sepia);
  text-transform:uppercase; margin-bottom:4px;
}
.chapter-nav .prev{text-align:left;}
.chapter-nav .next{text-align:right;}
.chapter-nav .center{text-align:center; align-self:center;}
.chapter-nav .series-back{
  font-size:12px; letter-spacing:.06em;
  border:1px solid var(--rule); padding:8px 16px; display:inline-block;
  background:var(--paper2); color:var(--ink);
}
.chapter-nav .series-back:hover{color:var(--ember-ink); text-decoration:none; border-color:var(--ember);}
@media(max-width:600px){
  .chapter-nav{grid-template-columns:1fr; gap:16px;}
  .chapter-nav .prev, .chapter-nav .next, .chapter-nav .center{text-align:left;}
}

/* ============================================================
   固定ページ・404・検索・その他
   ============================================================ */
.page-body{background:var(--paper); padding:40px 0 64px;}
.nf{background:var(--paper); min-height:52vh; display:flex; align-items:center;}
.nf .lbl{
  font-family:Georgia,serif; font-size:11px; letter-spacing:.3em;
  color:var(--ember); text-transform:uppercase;
}
.nf h1{font-size:clamp(22px,5vw,30px); color:var(--green); margin:12px 0 10px;}
.nf-msg{color:var(--ink2); max-width:32em; margin:0 auto 24px;}
.nf-search{max-width:420px; margin:0 auto 22px;}
.nf-shelves{display:flex; flex-wrap:wrap; gap:4px 18px; justify-content:center; font-size:13px; margin-bottom:28px;}

.ec-searchform{display:flex; gap:8px;}
.ec-searchform input[type="search"]{
  flex:1; padding:9px 12px; border:1px solid var(--rule);
  background:var(--paper2); font-family:inherit; font-size:14px; color:var(--ink);
  min-height:48px;
}
.ec-searchform .btn{padding:9px 20px;}

.ec-admin-note{
  background:var(--paper2); border:1px dashed var(--ember);
  padding:14px 16px; font-size:12.5px; color:var(--ink2);
}

/* ページネーション（WP-PageNavi / paginate_links 両対応） */
.ec-pagination, .wp-pagenavi{
  display:flex; flex-wrap:wrap; gap:8px; justify-content:center;
  margin:34px 0 10px; font-family:Georgia,serif; font-size:13px;
}
.ec-pagination ul{display:flex; flex-wrap:wrap; gap:8px; list-style:none;}
.ec-pagination a, .ec-pagination span,
.wp-pagenavi a, .wp-pagenavi span{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:40px; min-height:40px; padding:4px 10px;
  border:1px solid var(--rule); background:var(--paper2); color:var(--ink);
}
.ec-pagination .current, .wp-pagenavi span.current{
  background:var(--green); color:#fff; border-color:var(--green);
}
.ec-pagination a:hover, .wp-pagenavi a:hover{border-color:var(--ember); text-decoration:none;}

/* コメント */
.ec-comments{margin-top:40px; padding-top:24px; border-top:2px solid var(--dark);}
.ec-comments h2{font-size:18px; color:var(--green); margin-bottom:14px;}
.ec-commentlist{list-style:none;}
.ec-commentlist .comment-body{
  background:var(--paper2); border:1px solid var(--rule);
  padding:14px 16px; margin-bottom:14px; font-size:14px;
}
.ec-comments input[type="text"], .ec-comments input[type="email"],
.ec-comments input[type="url"], .ec-comments textarea{
  width:100%; padding:9px 12px; border:1px solid var(--rule);
  background:var(--paper2); font-family:inherit; font-size:14px; color:var(--ink);
  margin-bottom:12px;
}

/* フォーム汎用（CF7・wp-membersのフォームがテーマの体裁で崩れないように） */
.ec-entry-content input[type="text"], .ec-entry-content input[type="email"],
.ec-entry-content input[type="password"], .ec-entry-content input[type="tel"],
.ec-entry-content input[type="url"], .ec-entry-content textarea,
.ec-entry-content select{
  max-width:100%; padding:9px 12px; border:1px solid var(--rule);
  background:var(--paper2); font-family:inherit; font-size:14px; color:var(--ink);
}
.ec-entry-content input[type="submit"], .ec-entry-content button[type="submit"]{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:12px 26px;
  background:var(--ember); color:#fff; border:1px solid #c8632f;
  font-size:13.5px; letter-spacing:.1em; font-family:inherit; cursor:pointer;
}
.ec-entry-content input[type="submit"]:hover{background:#a04624;}

/* ============================================================
   フッター
   ============================================================ */
footer.site-foot{
  background:var(--dark2); color:#9a9277; font-size:12px;
  padding:34px 0 40px; border-top:2px solid var(--gold); /* 家族の金の罫線 */
}
footer.site-foot .cols{display:flex; flex-direction:column; gap:18px;}
@media(min-width:768px){ footer.site-foot .cols{flex-direction:row; justify-content:space-between; align-items:flex-end;} }
footer.site-foot b{color:#c7b58f; font-weight:500;}
footer.site-foot .fam{display:flex; flex-wrap:wrap; gap:4px 18px; font-size:11.5px;}
footer.site-foot .fam li{list-style:none;}
footer.site-foot .fam a{color:#9a9277; min-height:44px; display:inline-flex; align-items:center;}
footer.site-foot .fam a:hover{color:var(--amber);}
footer.site-foot .copy{font-family:Georgia,serif; letter-spacing:.06em;}

/* ============================================================
   WordPress 標準クラスの下支え
   ============================================================ */
.alignleft{float:left; margin:0 20px 12px 0;}
.alignright{float:right; margin:0 0 12px 20px;}
.aligncenter{margin-left:auto; margin-right:auto;}
.wp-caption{max-width:100%;}
.wp-caption-text{font-size:12px; color:var(--sepia); font-family:"Klee One",cursive; margin-top:6px;}
.screen-reader-text{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0);}

/* ============================================================
   シリーズの扉・章ページ（mockups-v2/series-lp.html・chapter.html 準拠）
   フェーズ4追補: 未移植だったコンポーネントCSS
============================================================ */

/* ---- シリーズの扉（書物の扉ページ） ---- */
.s-door{background:var(--paper); border-bottom:2px solid var(--dark); padding:44px 0 52px;}
.s-door-grid{display:grid; gap:30px;}
@media(min-width:768px){ .s-door-grid{grid-template-columns:1.15fr .85fr; gap:52px; align-items:center;} }
.s-door .tags, .ch-head .tags{display:flex; flex-wrap:wrap; align-items:center; gap:8px;}
.field-tag{
  font-size:11px; letter-spacing:.08em; color:var(--green);
  border:1px solid var(--green-l); padding:2.5px 10px; text-decoration:none !important;
}
.callno{
  font-family:Georgia,serif; font-size:12px; letter-spacing:.22em;
  color:var(--ember); border:1px solid var(--ember); padding:2px 10px;
}
.s-door h1{
  font-size:clamp(26px,6vw,40px); line-height:1.5; letter-spacing:.04em;
  color:var(--ink); margin:18px 0 4px;
}
.s-door .en-sub{
  font-family:Georgia,serif; font-style:italic; font-size:13px;
  color:var(--sepia); letter-spacing:.06em; display:block;
}
.s-meta{
  display:flex; flex-wrap:wrap; gap:6px 0; margin-top:16px;
  font-family:Georgia,serif; font-size:12.5px; color:var(--sepia); letter-spacing:.1em;
}
.s-meta span+span::before{content:"・"; margin:0 8px; color:var(--rule);}
.free-note{
  display:inline-flex; align-items:center; gap:8px; margin-top:16px;
  font-size:12px; color:#fff; background:var(--green); padding:4px 12px; letter-spacing:.06em;
}
/* 表紙（額装。ルーラー帯と接して見えないよう余白＋二重枠） */
.s-door .cover{
  border:1px solid var(--sepia); outline:1px solid var(--sepia); outline-offset:4px;
  aspect-ratio:4/3; overflow:hidden; margin:6px;
}
.s-door .cover img{width:100%; height:100%; object-fit:cover;}
.s-door .cap{font-family:"Klee One",cursive; font-size:12px; color:var(--sepia); margin-top:12px;}

/* ---- シリーズの語り・学べること ---- */
.story{background:var(--kraft);}
.story .prose{font-size:14.5px; max-width:38em;}
.story .prose p{margin-bottom:1.3em;}
.story .prose p:last-child{margin-bottom:0;}
.story .pull{
  font-family:"Zen Antique",serif; font-size:17px; line-height:1.9;
  color:var(--green); border-left:2px solid var(--ember);
  padding-left:18px; margin:0 0 26px; max-width:34em;
}
.learn{background:var(--paper);}
.learn ul{list-style:none; max-width:640px;}
.learn li{
  display:flex; align-items:baseline; gap:12px;
  padding:12px 2px; border-top:1px dotted var(--rule); font-size:14px;
}
.learn li:first-child{border-top:none;}
.learn li::before{content:"—"; color:var(--sepia); flex:none;}

/* ---- シリーズカード（背表紙つきの本）・同じ棚 ---- */
.series-card{
  background:var(--paper2); border:1px solid var(--rule);
  border-left:5px solid var(--green);
  box-shadow:3px 3px 0 rgba(32,36,27,.10);
  scroll-snap-align:start; display:flex; flex-direction:column; position:relative;
}
.series-card .fig{aspect-ratio:16/10; overflow:hidden; border-bottom:1px solid var(--rule); position:relative;}
.series-card .fig img{width:100%; height:100%; object-fit:cover;}
.series-card .fig .key,.series-card .fig .open-tag{position:absolute; top:8px; right:8px;}
.series-card .no{
  position:absolute; top:8px; left:10px;
  font-family:Georgia,serif; font-size:10.5px; letter-spacing:.18em; color:var(--ember);
  background:rgba(247,241,226,.88); padding:1px 6px;
}
.series-card .body{padding:13px 14px 15px; display:flex; flex-direction:column; gap:6px; flex:1;}
.series-card h4{
  font-family:"Zen Antique",serif; font-weight:400; font-size:15px;
  line-height:1.6; color:var(--ink);
}
.series-card h4 a{color:var(--ink);}
.series-card p{font-size:12px; color:var(--ink2); line-height:1.75;}
.series-card .meta{
  margin-top:auto; font-family:Georgia,serif; font-size:10.5px;
  color:var(--sepia); letter-spacing:.08em; padding-top:6px;
  border-top:1px dotted var(--rule);
}
.same-shelf{background:var(--paper);}
.same-grid{
  display:grid; grid-auto-flow:column; grid-auto-columns:72%;
  gap:16px; overflow-x:auto; -webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity; padding:0 4px 18px;
  border-bottom:2px solid var(--dark);
}
.same-grid::-webkit-scrollbar{height:6px;}
.same-grid::-webkit-scrollbar-thumb{background:var(--rule);}
@media(min-width:600px){ .same-grid{grid-auto-columns:44%;} }
@media(min-width:900px){ .same-grid{grid-template-columns:repeat(3,1fr); grid-auto-flow:row; overflow:visible; padding-bottom:18px;} }
.same-shelf .more{margin-top:14px; font-size:13px;}
.sub-series{background:var(--paper);}

/* ---- 静かな案内帯 ---- */
.quiet-cta{
  background:var(--dark); color:#efe7d2;
  border-top:2px solid var(--dark2); text-align:center;
}
.quiet-cta .lbl{font-family:Georgia,serif; font-size:11px; letter-spacing:.3em; color:var(--amber); text-transform:uppercase;}
.quiet-cta h2{font-size:clamp(19px,4.6vw,24px); color:#f3ecd8; letter-spacing:.05em; margin:12px 0 10px;}
.quiet-cta p{font-size:13.5px; color:#cfc7b2; max-width:34em; margin:0 auto 26px;}
.quiet-cta .actions{display:flex; flex-wrap:wrap; gap:12px; justify-content:center;}
.quiet-cta .fine{font-size:11.5px; color:#8f8871; margin-top:18px;}

/* ---- 章の扉 ---- */
.ch-head{padding:40px 0 8px;}
.ch-head .callno{font-size:11.5px; padding:2px 9px;}
.ch-head .series-link{font-size:12px; letter-spacing:.04em;}
.ch-head h1{
  font-size:clamp(22px,5.4vw,32px); line-height:1.6; letter-spacing:.04em;
  color:var(--ink); margin:16px 0 6px;
}
.ch-head .meta, .en-mix{
  font-family:Georgia,serif; font-size:12px; color:var(--sepia); letter-spacing:.1em;
  margin-top:12px; padding-bottom:20px; border-bottom:2px solid var(--dark);
}
.ch-head .meta .key, .en-mix .key{position:static; margin-left:10px;}

/* ---- 章の本文・図版の額装 ---- */
.body-text{padding:36px 0 8px; font-size:15px;}
@media(min-width:768px){ .body-text{font-size:15.5px;} }
.body-text p{margin-bottom:1.5em;}
.body-text h2{
  font-size:18px; color:var(--green); letter-spacing:.06em;
  margin:2em 0 .9em; padding-bottom:8px; border-bottom:1px solid var(--rule);
}
.body-text img{margin:1.6em auto .8em;}

/* ---- このシリーズの現在地（進捗の点） ---- */
.progress{
  margin:40px auto 0; padding:18px 20px;
  background:var(--paper2); border:1px solid var(--rule);
}
.progress .ttl{
  font-size:12px; letter-spacing:.1em; color:var(--green);
  display:flex; justify-content:space-between; align-items:baseline; gap:10px;
  margin-bottom:10px;
}
.progress .ttl .en{font-size:10px; letter-spacing:.24em; color:var(--sepia); text-transform:uppercase;}
.trail{display:flex; align-items:center; gap:9px; flex-wrap:wrap;}
.trail i{
  width:13px; height:13px; border-radius:50%;
  border:1.5px solid var(--sepia); background:transparent; flex:none;
}
.trail i.lit{background:var(--ember); border-color:var(--ember);}
.trail .t-note{
  margin-left:auto; font-family:Georgia,serif; font-size:12.5px;
  color:var(--ink); letter-spacing:.1em;
}
.progress .memo{font-size:11.5px; color:var(--ink2); margin-top:10px;}

/* ---- 前章・次章ナビ ---- */
.ch-nav{margin:26px auto 0;}
.ch-nav .row{display:grid; gap:12px;}
@media(min-width:600px){ .ch-nav .row{grid-template-columns:1fr 1fr;} .ch-nav .row.single-col{grid-template-columns:1fr;} }
.ch-nav a.card{
  display:flex; flex-direction:column; gap:4px;
  border:1px solid var(--rule); background:var(--paper2);
  padding:14px 16px; min-height:64px; color:var(--ink);
  text-decoration:none !important;
}
.ch-nav a.card:hover{border-color:var(--sepia);}
.ch-nav .dir{
  font-family:Georgia,serif; font-size:10.5px; letter-spacing:.22em;
  color:var(--ember); text-transform:uppercase;
}
.ch-nav .t{font-family:"Zen Antique",serif; font-size:14px; line-height:1.6;}
.ch-nav .next{text-align:right; align-items:flex-end;}
.ch-nav .back{text-align:center; margin-top:14px;}
.ch-nav .back a{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:10px 26px;
  border:1px solid var(--green-l); color:var(--green);
  font-size:13px; letter-spacing:.08em; text-decoration:none !important;
}
.ch-nav .back a:hover{background:var(--paper2);}

/* ---- 非会員ビュー: リード＋閉架パネルの付属 ---- */
.locked-lead{padding:28px 0 0; font-size:15px;}
.locked-lead p{margin-bottom:1.5em;}
.lock-panel .poster{border:1px solid var(--sepia); overflow:hidden; position:relative; aspect-ratio:16/9;}
.lock-panel .poster img{width:100%; height:100%; object-fit:cover;}
.lock-panel .inner{text-align:center; padding:22px 14px 10px; border-top:1px solid var(--rule); margin-top:14px;}
.lock-panel .keymark{
  display:inline-flex; align-items:center; gap:6px;
  font-size:11px; letter-spacing:.1em; color:var(--ember-ink);
  border:1px solid var(--ember); padding:3px 10px; background:var(--paper2);
}
.lock-panel .keymark svg{width:10px; height:10px; fill:var(--ember-ink);}
.btn.line{background:transparent; color:var(--ember-ink) !important; border:1px solid var(--ember);}
.btn.line:hover{background:var(--paper2);}
.locked-toc{margin:34px auto 0;}
.locked-toc h2{
  font-size:15px; color:var(--green); letter-spacing:.08em;
  padding-bottom:8px; border-bottom:1px solid var(--rule); margin-bottom:4px;
}
.locked-toc ul{list-style:none;}
.locked-toc li{
  display:flex; align-items:baseline; gap:10px;
  padding:10px 2px; border-bottom:1px dotted var(--rule); font-size:13.5px; color:var(--ink2);
}
.locked-toc li::before{content:"—"; color:var(--sepia); flex:none;}

/* ============================================================
   相関図 v2.1（Mother School を頂点 → 各スクール → 地球生活術の帯）
   線はCSSで自動接続（カード数 --n から中心位置を計算。SVG座標は不使用）
============================================================ */
.org{--gap:16px;}
.org-top{
  max-width:340px; margin:0 auto; text-align:center;
  border:1px solid var(--gold); background:rgba(194,161,94,.08);
  padding:18px 16px 14px;
}
.org-top .en{display:block; font-family:Georgia,serif; font-size:10px; letter-spacing:.3em; color:var(--gold); text-transform:uppercase;}
.org-top b{display:block; color:#f1e9d4; font-size:17px; font-weight:500; letter-spacing:.08em; margin-top:6px;}
.org-top .fld{display:block; font-size:11.5px; color:#a89f86; margin-top:4px;}
.org-stem{width:1px; height:26px; background:var(--gold); margin:0 auto; opacity:.9;}
.org-row{
  display:grid; grid-template-columns:repeat(var(--n),1fr);
  gap:var(--gap); position:relative; padding-top:26px;
}
/* 横線: 最初のカード中心 〜 最後のカード中心 */
.org-row::before{
  content:""; position:absolute; top:0; height:1px; background:var(--gold); opacity:.9;
  left:calc((100% - (var(--n) - 1) * var(--gap)) / var(--n) / 2);
  right:calc((100% - (var(--n) - 1) * var(--gap)) / var(--n) / 2);
}
/* 縦の枝: 各カードの中心へ */
.org-card{position:relative;}
.org-card::before{
  content:""; position:absolute; top:-26px; left:50%; width:1px; height:26px;
  background:var(--gold); opacity:.9;
}
.org .school{border:1px solid #3a3e2f; background:rgba(0,0,0,.14); padding:16px 14px; text-align:center; display:flex; flex-direction:column; gap:4px;}
/* 地球生活術の帯（受け皿） */
.hub-bar{
  position:relative; max-width:none; margin-top:26px;
  display:flex; flex-direction:column; gap:8px; align-items:flex-start; text-align:left;
  border:1px solid var(--gold); background:rgba(194,161,94,.06);
  padding:20px 22px;
}
.hub-bar .badge{
  position:absolute; top:-11px; left:50%; transform:translateX(-50%);
  font-size:11px; letter-spacing:.14em; color:var(--dark2);
  background:var(--gold); padding:2px 14px; white-space:nowrap;
}
.hub-bar .hub-id .en{font-family:Georgia,serif; font-size:10px; letter-spacing:.3em; color:var(--gold); text-transform:uppercase;}
.hub-bar .hub-id h3{font-size:20px; color:#f1e9d4; letter-spacing:.1em; margin-top:2px;}
.hub-bar p{font-size:12.5px; color:#cfc7b2; margin:0;}
.hub-bar p a{color:var(--amber);}
@media(min-width:768px){
  .hub-bar{flex-direction:row; align-items:center; gap:28px;}
  .hub-bar .hub-id{flex:none; min-width:180px;}
}
/* スマホ: カードは縦積み・接続線は省略（幹線のみ） */
@media(max-width:600px){
  .org-row{grid-template-columns:1fr; padding-top:18px;}
  .org-row::before, .org-card::before{display:none;}
}

/* 閉架パネル内のログインフォーム（wp-members [wpmem_form login]） */
.lock-login-form{
  max-width:380px; margin:20px auto 6px; text-align:left;
  border-top:1px dotted var(--rule); padding-top:18px;
}
.lock-login-form #wpmem_login legend, .lock-login-form h2, .lock-login-form h3{
  font-size:13px; color:var(--green); letter-spacing:.08em; margin-bottom:8px;
}
.lock-login-form label{display:block; font-size:12px; color:var(--ink2); margin:10px 0 4px;}
.lock-login-form input[type=text], .lock-login-form input[type=password]{
  width:100%; min-height:44px; padding:8px 12px;
  border:1px solid var(--rule); background:#fff; color:var(--ink);
  font-family:inherit; font-size:14px;
}
.lock-login-form input[type=submit], .lock-login-form button[type=submit]{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; padding:10px 24px; margin-top:14px;
  background:var(--ember); color:#fff; border:1px solid #c8632f;
  font-size:13px; letter-spacing:.1em; font-family:inherit; cursor:pointer;
}
.lock-login-form input[type=submit]:hover{background:#a04624;}
.lock-login-form .link-text, .lock-login-form .wpmem-txt{font-size:11.5px; color:var(--ink2); margin-top:10px;}
.lock-login-form a{color:var(--ember-ink);}

/* ============================================================
   旧記事の回り込み画像（alignleft/alignright・float指定）対策
   本文ブロックで float を内包し、後続の部品（現在地・章ナビ・コメント）
   に回り込みが漏れないようにする
============================================================ */
.body-text, .ec-entry-content, .locked-lead, .ec-page .ec-entry-content{
  display:flow-root; /* float をこの箱の中で完結させる */
}
.body-text::after, .ec-entry-content::after{
  content:""; display:block; clear:both;
}
/* 回り込み自体は活かす（文章と並ぶ小さめ画像のため）。余白だけ整える */
.ec-entry-content img.alignleft, .body-text img.alignleft,
.ec-entry-content .alignleft{float:left; margin:6px 22px 14px 0; max-width:52%;}
.ec-entry-content img.alignright, .body-text img.alignright,
.ec-entry-content .alignright{float:right; margin:6px 0 14px 22px; max-width:52%;}
.ec-entry-content img.aligncenter, .body-text img.aligncenter{float:none; margin-left:auto; margin-right:auto;}
/* 後続部品は念のため常に回り込みを解除 */
.progress, .ch-nav, .ec-tags, .comments-area, #comments{clear:both;}
/* スマホでは回り込みをやめて全幅（小さな画面で文字が細切れになるのを防ぐ） */
@media(max-width:600px){
  .ec-entry-content img.alignleft, .ec-entry-content img.alignright,
  .body-text img.alignleft, .body-text img.alignright,
  .ec-entry-content .alignleft, .ec-entry-content .alignright{
    float:none; max-width:100%; margin:14px auto;
  }
}

/* 記録の一覧（新しい順）ページ */
.archive-list .ch-no{width:56px; font-size:17px;}
.archive-list .ch-no small{font-size:9px; letter-spacing:.18em;}
.archive-pagination{margin-top:30px; text-align:center; font-family:Georgia,serif;}
.archive-pagination a, .archive-pagination span{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:44px; min-height:44px; padding:6px 12px; margin:2px;
  border:1px solid var(--rule); color:var(--ember-ink); font-size:13px;
  text-decoration:none !important;
}
.archive-pagination span.current, .archive-pagination .wp-pagenavi .current{
  background:var(--green); color:#fff; border-color:var(--green);
}
.archive-pagination a:hover{background:var(--paper2);}
.more-link{margin-top:22px; font-size:13.5px; letter-spacing:.06em;}
.more-link a{min-height:44px; display:inline-flex; align-items:center;}
