/*
Theme Name: 税金と経理の学校
Theme URI: https://accountantkeijiro.com
Author: 宍倉奎次郎
Description: 税金と経理の学校の自作テーマ（A案 学習ノート）。正本は テーマ_モックアップ_20260724.html（DESIGN SPEC v2・Codexモック反映済み）。ノート紙白×インク紺×赤ペン、全面ゴシック。
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: school
*/

/* =========================================================
   デザイントークン（DESIGN SPEC v2 §1）
   ======================================================= */
:root{
  --bg:#fafaf6;--card:#ffffff;--ink:#242e38;--sub:#64707c;--line:#e2e7ed;
  --rule:#dbe4ee;
  --blue:#2f5aa8;--blue-deep:#24467f;--blue-soft:#edf2fa;
  --red:#c25049;--red-soft:#faeeec;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);line-height:1.9;-webkit-font-smoothing:antialiased;
  font-family:-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}
h1,h2,h3{font-weight:700;letter-spacing:.04em}
a{color:inherit}
img{max-width:100%;height:auto}
.wrap{max-width:1060px;margin:0 auto;padding:0 24px}

/* ---- ヘッダー ---- */
.shead{background:var(--card);border-bottom:1px solid var(--line)}
.shead .in{max-width:1060px;margin:0 auto;padding:15px 24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.logo{display:flex;align-items:baseline;gap:12px;text-decoration:none}
.logo .nm{font-weight:800;font-size:1.22rem;letter-spacing:.08em}
.logo .nm b{color:var(--blue)}
.logo .tg{font-size:.66rem;color:var(--sub);letter-spacing:.1em}
.shead nav{margin-left:auto;display:flex;gap:2px;flex-wrap:wrap;align-items:center}
.shead nav a{text-decoration:none;font-size:.84rem;font-weight:600;padding:7px 11px}
.shead nav a:hover{color:var(--blue)}
.shead nav a.now{border-bottom:2px solid var(--red)}
.navcta{border:1px solid var(--blue);color:var(--blue);border-radius:3px;padding:7px 16px;font-size:.8rem;font-weight:700;text-decoration:none;letter-spacing:.06em;margin-left:8px}
.navcta:hover{background:var(--blue-soft)}

/* ---- ヒーロー（ノート罫線＋左端の赤マージン線） ---- */
.hero{position:relative;border-bottom:1px solid var(--line);
  background:repeating-linear-gradient(to bottom,var(--card) 0,var(--card) 35px,var(--rule) 35px,var(--rule) 36px)}
.hero .in{position:relative;max-width:1060px;margin:0 auto;padding:78px 24px 70px}
.hero .in::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--red);opacity:.55}
.kicker{color:var(--blue);font-weight:700;font-size:.76rem;letter-spacing:.28em}
.kicker.red{color:var(--red);display:inline-block;border-bottom:1px solid var(--red);padding-bottom:5px;letter-spacing:.22em}
.hero h1{margin:16px 0 18px;font-size:2.1rem;line-height:1.55;letter-spacing:.06em}
.hero h1 .u{border-bottom:3px double var(--red);padding-bottom:2px}
.hero .lead{color:#3c4650;font-size:.96rem;max-width:36em;margin:0}
/* 下層用（低め） */
.hero.sub .in{padding:52px 24px 46px}
.hero.sub h1{font-size:1.7rem;margin:12px 0 10px}
.crumb{font-size:.76rem;color:var(--sub);margin-bottom:14px}
.crumb a{text-decoration:none}
.crumb a:hover{color:var(--blue)}

/* ---- セクション ---- */
.sect{padding:66px 0 10px}
.sect.padt{padding-top:44px}
.sect.pads{padding-top:80px;padding-bottom:80px}
.sec-h{display:flex;align-items:center;justify-content:center;gap:20px;margin:0 0 8px}
.sec-h::before,.sec-h::after{content:"";height:1px;width:150px;background:var(--blue);opacity:.5}
.sec-h h2{margin:0;font-size:1.28rem;letter-spacing:.14em}
.sec-s{color:var(--sub);font-size:.86rem;text-align:center;margin:0 0 34px}

/* ---- コースカード（トップ） ---- */
.courses{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ccard{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:26px 26px 20px;text-decoration:none;display:block;position:relative}
.ccard:hover{border-color:var(--blue)}
.no{width:40px;height:40px;border:2px solid var(--red);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.05rem;color:var(--red);flex:none}
.chead{display:flex;align-items:center;gap:14px;margin:0 0 10px}
.ccard h3{margin:0;font-size:1.08rem}
.ccard .cd{font-size:.84rem;color:var(--sub);margin:0 0 14px}
.ccard ul{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.ccard li{padding:9px 22px 9px 2px;position:relative;font-size:.84rem;border-bottom:1px solid var(--line)}
.ccard li::after{content:"›";position:absolute;right:6px;top:50%;transform:translateY(-50%);color:var(--blue);font-weight:700}
.ccard .more{display:block;text-align:right;font-size:.8rem;font-weight:700;color:var(--blue);padding-top:12px}
.prep{text-align:center;color:var(--sub);font-size:.86rem;margin:0;padding:24px 0 12px}
.ccard .prep{border-top:1px solid var(--line)}

/* ---- 記事カード ---- */
.plist{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:22px 24px;text-decoration:none;display:block}
.pcard:hover{border-color:var(--blue)}
.pcard .pk{font-size:.7rem;letter-spacing:.16em;color:var(--red);font-weight:700}
.pcard h3{margin:8px 0 8px;font-size:.98rem;line-height:1.6}
.pcard p{margin:0;font-size:.82rem;color:var(--sub)}

/* ---- 著者 ---- */
.person{display:grid;grid-template-columns:180px 1fr;gap:32px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:4px;padding:32px 36px}
.person .ph{width:160px;height:180px;border:1px solid var(--line);background:var(--blue-soft);display:flex;align-items:center;justify-content:center;color:var(--blue);font-size:.8rem;letter-spacing:.1em;object-fit:cover}
.person img.ph{display:block}
.person h3{margin:0 0 4px;font-size:1.18rem}
.person .role{font-size:.8rem;color:var(--sub);margin:0 0 12px}
.person p{margin:0;font-size:.9rem}
.creds{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.creds span{font-size:.75rem;border:1px solid var(--line);border-radius:3px;padding:4px 12px;color:var(--sub);background:var(--bg)}

/* ---- CTA帯・フッター ---- */
.ctab{margin-top:70px;background:var(--blue-deep);color:#fff;padding:52px 0 56px;text-align:center}
.ctab.tight{margin-top:48px}
.ctab .en{font-size:.72rem;letter-spacing:.3em;color:#f0c9c5;font-weight:700}
.ctab h2{margin:12px 0 8px;font-size:1.5rem;letter-spacing:.1em}
.ctab h2::after{content:"";display:block;width:34px;height:1px;background:rgba(255,255,255,.55);margin:16px auto 0}
.ctab p{margin:10px 0 26px;font-size:.86rem;color:#c9d6ea}
.ctab .btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.btn-w{background:#fff;color:var(--blue-deep);text-decoration:none;font-weight:700;font-size:.9rem;padding:13px 30px;border-radius:3px;letter-spacing:.06em}
.btn-o{border:1px solid #fff;color:#fff;text-decoration:none;font-weight:600;font-size:.9rem;padding:12px 26px;border-radius:3px;letter-spacing:.04em}
.sitefooter{background:#1b3660;color:#dde5f0;padding:36px 0 30px;font-size:.8rem}
.sitefooter .in{max-width:1060px;margin:0 auto;padding:0 24px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.sitefooter a{color:#dde5f0;text-decoration:none;margin-right:18px}
.sitefooter a:hover{text-decoration:underline}

/* ---- コースページ：授業タイムライン ---- */
.lessons{max-width:760px;margin:0 auto}
.lrow{display:grid;grid-template-columns:56px 1fr;gap:0 22px;position:relative;padding-bottom:26px}
.lrow::before{content:"";position:absolute;left:20px;top:44px;bottom:0;width:1px;background:var(--rule)}
.lrow:last-child::before{display:none}
.lrow::after{content:"";position:absolute;left:44px;top:20px;width:30px;height:1px;background:var(--rule)}
.lcard{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:20px 24px;text-decoration:none;display:block}
.lcard:hover{border-color:var(--blue)}
.lcard h3{margin:0 0 6px;font-size:1.02rem}
.lcard p{margin:0;font-size:.84rem;color:var(--sub)}
.lcard .rd{display:block;text-align:right;font-size:.78rem;font-weight:700;color:var(--blue);margin-top:10px}
.lnote{border:1px dashed var(--red);border-radius:4px;background:var(--card);padding:14px 20px;font-size:.84rem;margin-top:10px}
.lnote .tt{color:var(--red);font-weight:700;font-size:.72rem;letter-spacing:.16em;margin-bottom:4px}
.lnote a{display:block;color:var(--blue);text-decoration:none;padding:2px 0}
.lnote a::after{content:"›";margin-left:8px;font-weight:700}
/* 次のコース（コースページ末尾の赤枠ボックス） */
.nextc{max-width:760px;margin:6px auto 0;border:1px solid var(--red);border-radius:4px;background:var(--card);padding:22px 26px;display:flex;align-items:center;gap:22px;text-decoration:none}
.nextc .no{width:48px;height:48px;font-size:1.2rem}
.nextc .nk{font-size:.7rem;color:var(--red);font-weight:700;letter-spacing:.18em;margin-bottom:2px}
.nextc h3{margin:0 0 4px;font-size:1.1rem}
.nextc p{margin:0;font-size:.82rem;color:var(--sub)}
.nextc .ar{margin-left:auto;color:var(--red);font-weight:700;font-size:1.3rem}

/* ---- 記事ページ ---- */
.art{max-width:760px;margin:0 auto;background:var(--card);border:1px solid var(--line);border-radius:4px;padding:46px 48px 40px}
.art .amet{font-size:.76rem;color:var(--sub);margin:0 0 6px;display:flex;gap:16px;flex-wrap:wrap}
.amet .cat{color:var(--red);font-weight:700}
.amet .cat a{color:var(--red);text-decoration:none}
.amet .ep{color:var(--blue);font-weight:600}
.art h1{font-size:1.55rem;line-height:1.6;margin:6px 0 22px}
.toc{border:1px solid var(--line);border-radius:4px;background:var(--bg);padding:18px 24px;margin:0 0 34px}
.toc .tt{font-size:.78rem;font-weight:700;letter-spacing:.2em;color:var(--blue);margin-bottom:8px}
.toc ol{margin:0;padding-left:1.3em;font-size:.86rem}
.toc li{padding:3px 0}
.toc a{text-decoration:none}
.toc a:hover{color:var(--blue)}
.art h2{font-size:1.22rem;margin:44px 0 16px;padding-bottom:10px;border-bottom:2px solid var(--blue);position:relative}
.art h2::after{content:"";position:absolute;left:0;bottom:-2px;width:56px;height:2px;background:var(--red)}
.art h3{font-size:1.02rem;margin:30px 0 10px;padding-left:12px;border-left:3px solid var(--blue)}
.art h4{font-size:.95rem;margin:24px 0 8px}
.art p{font-size:.93rem;margin:0 0 1.2em}
.art a{color:var(--blue)}
.art ul,.art ol{font-size:.93rem;padding-left:1.5em;margin:0 0 1.2em}
.art li{margin:.3em 0}
.art table{border-collapse:collapse;width:100%;font-size:.88rem;margin:0 0 1.4em}
.art th,.art td{border:1px solid var(--line);padding:8px 12px;text-align:left}
.art th{background:var(--bg)}
.art blockquote{margin:1.4em 0;padding:4px 20px;border-left:3px solid var(--rule);color:var(--sub)}
.art img{border-radius:3px}
.art strong{background:none}
.point,.care{display:flex;gap:20px;align-items:baseline;border-radius:4px;padding:18px 24px;margin:24px 0}
.point{border:1px solid var(--blue);background:var(--blue-soft)}
.care{border:1px solid var(--red);background:var(--red-soft)}
.point .tt,.care .tt{flex:none;font-size:.8rem;font-weight:800;letter-spacing:.2em;color:var(--red);padding-right:18px}
.point .tt{border-right:1px solid rgba(47,90,168,.3)}
.care .tt{border-right:1px solid rgba(194,80,73,.35)}
.point p,.care p{margin:0;font-size:.9rem}
.anav{max-width:760px;margin:26px auto 0;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
.anav a{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:14px 20px;text-decoration:none;font-size:.84rem;flex:1;min-width:220px}
.anav a:hover{border-color:var(--blue)}
.anav .dir{display:block;font-size:.7rem;color:var(--red);font-weight:700;letter-spacing:.16em;margin-bottom:4px}
.anav a.nx{text-align:right}

/* ---- すべての記事（コース別の一覧） ---- */
.shelf{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:26px 30px;margin-bottom:26px}
.shelf .sh{display:flex;align-items:center;gap:14px;border-bottom:2px solid var(--blue);padding-bottom:12px;margin-bottom:6px}
.shelf .sh .no{width:34px;height:34px;font-size:.92rem}
.shelf h2{margin:0;font-size:1.1rem}
.shelf .cnt{margin-left:auto;font-size:.76rem;color:var(--sub)}
.shelf ul{margin:0;padding:0;list-style:none}
.shelf li{border-bottom:1px dashed var(--line)}
.shelf li:last-child{border-bottom:none}
.shelf li a{display:flex;gap:18px;align-items:baseline;padding:11px 2px;text-decoration:none;font-size:.9rem}
.shelf li a:hover{color:var(--blue)}
.shelf .dt{flex:none;font-size:.76rem;color:var(--sub)}

/* ---- 404・検索 ---- */
.nf{max-width:560px;margin:0 auto;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:4px;padding:54px 40px}
.nf .code{font-size:2.4rem;font-weight:800;color:var(--blue);letter-spacing:.1em}
.nf h1{font-size:1.2rem;margin:8px 0 12px}
.nf p{font-size:.9rem;color:var(--sub)}
.sform{display:flex;max-width:420px;margin:20px auto 0}
.sform input{flex:1;border:1px solid var(--line);border-right:none;border-radius:3px 0 0 3px;padding:11px 14px;font-size:.9rem;background:var(--bg)}
.sform button{border:none;background:var(--blue);color:#fff;font-weight:700;font-size:.85rem;padding:0 22px;border-radius:0 3px 3px 0;cursor:pointer}

/* ---- WPおまけ（配置クラス・管理バー） ---- */
.aligncenter{display:block;margin-left:auto;margin-right:auto}
.alignright{float:right;margin:0 0 1em 1.5em}
.alignleft{float:left;margin:0 1.5em 1em 0}
.wp-caption{max-width:100%}
.wp-caption-text{font-size:.78rem;color:var(--sub);text-align:center}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

@media(max-width:860px){
  .courses,.plist{grid-template-columns:1fr}
  .person{grid-template-columns:1fr;text-align:center}
  .person .ph{margin:0 auto}
  .person img.ph{margin:0 auto}
  .hero h1{font-size:1.6rem}
  .art{padding:30px 22px}
  .nextc{flex-wrap:wrap}
  .shead nav{margin-left:0}
}
