:root{
  --bg:#f2f4ef; --bg2:#e8ece5; --ink:#1b271f; --sub:#56655e; --line:#dce3da; --card:#fbfcfa;
  --brand:#0fa86e; --brand-d:#0a7d52; --brand-l:#e6f8ef;
  --accent:#ff5a3c; --link:#0a7d52;
  --sev5:#e11d48; --sev4:#ef7c00; --sev3:#d6a400; --sev2:#0fa86e; --sev1:#8a978f;
  --maxw:980px;
}
*{box-sizing:border-box}
@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}
html{font-size:clamp(15px, 0.5vw + 13.2px, 17px)}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic Medium","Yu Gothic","Meiryo",sans-serif;
  line-height:1.95;font-size:1.16rem;letter-spacing:.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:6px}
header.site{position:sticky;top:0;z-index:30;background:rgba(242,244,239,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bar{max-width:var(--maxw);margin:0 auto;padding:.75rem 1.25rem;display:flex;align-items:center;gap:1rem}
.bar .logo{font-weight:800;font-size:1.02rem}
.bar .logo .dot{color:var(--brand)}
.bar a.back{margin-left:auto;font-size:.92rem;font-weight:700;color:var(--brand-d)}
.bar .hlinks{margin-left:auto;display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.bar .hlinks a.back{margin-left:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.25rem}
.head{padding:2.4rem 0 1.2rem;border-bottom:1px solid var(--line)}
.bc{font-size:.85rem;color:var(--sub)}
.cattag{display:inline-block;font-size:.8rem;font-weight:800;color:#fff;background:var(--cc,var(--brand));border-radius:999px;padding:.18rem .7rem;margin-bottom:.5rem}
h1.t{font-size:1.95rem;line-height:1.45;margin:.3rem 0 .7rem;font-weight:800;letter-spacing:-.015em}
.badges{display:flex;flex-wrap:wrap;gap:.7rem 1.2rem;align-items:center;font-size:.95rem;color:var(--sub)}
.badges b{letter-spacing:.05em}
.sev5,.sev4,.sev3,.sev2,.sev1{color:var(--ink)}
.time{font-size:.84rem;font-weight:600;color:var(--sub);background:#fff;border:1px solid var(--line);border-radius:999px;padding:.12rem .7rem}
.certbox{margin:1rem 0 0;padding:.6rem .9rem;border-radius:12px;background:var(--bg2);border:1px solid var(--line);font-size:.96rem;font-weight:700;color:var(--ink)}
.certbox .cd{font-weight:400;letter-spacing:.08em}
.lead30{background:var(--bg2);border:1px solid var(--line);border-left:5px solid var(--brand);border-radius:14px;padding:1.1rem 1.2rem;margin:1.6rem 0;font-size:1.08rem;font-weight:600}
.lead30 .k{display:block;font-size:.8rem;font-weight:800;color:var(--brand-d);letter-spacing:.05em;margin-bottom:.3rem}
section.dsec{padding:1.6rem 0;border-top:1px solid var(--line)}
/* 本文幅はページ全体(--maxw:980px)に統一。本文だけ狭める指定は廃止 */
section.dsec h2{font-size:1.3rem;margin:0 0 .8rem;font-weight:800;letter-spacing:-.01em;display:flex;align-items:center;gap:.5rem}
section.dsec h2 .ic{width:.5rem;height:1.3rem;border-radius:3px;background:var(--cc,var(--brand));display:inline-block}
.fact{margin:.5rem 0;font-size:1rem}
.fact .s{font-size:.84rem;color:var(--sub)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-top:.4rem}
.two .box{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem}
.two .box.keep{border-top:4px solid var(--brand)}
.two .box.fold{border-top:4px solid var(--sub)}
.two h3{margin:.1rem 0 .5rem;font-size:1.05rem}
.two ul{margin:.3rem 0;padding-left:1.2rem}
.two li{margin:.35rem 0}
.bridge{background:linear-gradient(180deg,#fff7f3,#fff);border:1px solid #ffd8cc;border-left:5px solid var(--accent);border-radius:14px;padding:1.1rem 1.2rem}
.bridge .num{font-size:1.5rem;font-weight:800;color:var(--accent)}
.cases .case{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.95rem 1.15rem;margin:.6rem 0;line-height:1.85}
.cases .case b{color:var(--brand-d);font-size:1.04rem}
.ctag{display:inline-block;font-size:.74rem;font-weight:700;color:#fff;background:var(--brand);border-radius:999px;padding:.1rem .55rem;vertical-align:middle;margin-bottom:.2rem}
.ctag.c{background:#1f7a8c}
.ctag.o{background:#6f7d75}
.cintro{font-size:1.14rem;color:#28332d;margin:.2rem 0 1.1rem;line-height:1.95}
.cgrp{font-size:1.05rem;font-weight:800;margin:1.2rem 0 .5rem;padding-left:.6rem;border-left:5px solid #6f7d75}
.cgrp.t{border-left-color:var(--brand)} .cgrp.c{border-left-color:#1f7a8c} .cgrp.o{border-left-color:#6f7d75}
.cgrp:first-of-type{margin-top:.4rem}
.fine{color:var(--sub);font-size:.85rem;margin-top:.35rem}
.views{display:grid;gap:.7rem;margin:.5rem 0}
.view{background:var(--card);border:1px solid var(--line);border-left:5px solid #6f7d75;border-radius:12px;padding:.9rem 1.1rem;line-height:1.9}
.view.warn{border-left-color:var(--accent)} .view.pos{border-left-color:var(--brand)}
.view .vtag{display:inline-block;font-size:.78rem;font-weight:800;color:#fff;background:#6f7d75;border-radius:999px;padding:.14rem .65rem;margin-bottom:.4rem}
.view.warn .vtag{background:var(--accent)} .view.pos .vtag{background:var(--brand)}
.dstatus{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:.95rem 1.15rem;font-size:1.12rem;color:#26332c;margin-top:.7rem;line-height:1.97}
.dstatus .dk{font-weight:800;color:var(--brand-d)}
.rchips{display:flex;flex-wrap:wrap;gap:.5rem}
.rchips a{font-size:.92rem;border:1px solid var(--line);border-radius:999px;padding:.3rem .8rem;background:var(--bg2);color:var(--link)}
.rchips a:hover{border-color:var(--brand);text-decoration:none}
.chip{display:inline-block;font-size:.78rem;border-radius:999px;padding:.08rem .55rem;border:1px solid var(--line);font-weight:600}
.cf-A{background:#e7f1fb;border-color:#cadcef;color:#1b5b97}
.cf-B{background:#e8f7ee;border-color:#c7e9d3;color:#1c7a45}
.cf-C{background:#fdf0d8;border-color:#f0dcab;color:#8a6410}
.cf-D{background:#f1ece4;border-color:#ddd0bd;color:#5f4f39}
.backrow{padding:2rem 0 3rem}
.backrow a{font-weight:700}
a.ilink{font-weight:700;border-bottom:1px dashed var(--link);white-space:nowrap}
.note{color:var(--sub);font-size:.95rem}
footer{padding:2.4rem 1.25rem 3.4rem;color:var(--sub);font-size:.9rem;border-top:1px solid var(--line);text-align:center}
@media(max-width:680px){.two{grid-template-columns:1fr}h1.t{font-size:1.5rem}}

/* ===== 追加分（2026-08 改修） ===== */
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--brand-solid);color:#fff;padding:.7rem 1.1rem;border-radius:0 0 10px 0;font-weight:700}
.skip:focus{left:0;text-decoration:none}
.bar .logo a{color:inherit}
.bar .logo a:hover{text-decoration:none}
/* 出典チップ。宗派一次・制度・注記は、これまで書籍/推計(C)と同じ色になっていた */
.cf-S{background:#efe9fb;border-color:#d8cbf2;color:#5b3fa0}
.cf-X{background:#e9f3f2;border-color:#c8e2df;color:#18685f}
.cf-N{background:#f1f1ef;border-color:#dcdcd6;color:#5a5a52}
details.srclegend{margin:.2rem 0 .9rem;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:0 .9rem}
details.srclegend summary{cursor:pointer;font-size:.9rem;font-weight:700;color:var(--sub);padding:.6rem 0;list-style:none}
details.srclegend summary::-webkit-details-marker{display:none}
details.srclegend summary::before{content:"▸ ";color:var(--brand)}
details.srclegend[open] summary::before{content:"▾ "}
.srclegend .slg{font-size:.88rem;line-height:1.85;padding:0 0 .8rem}
.srclegend .slg p{margin:.3rem 0}
/* 前後の課題への移動 */
.backrow{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between}
.backrow .pn{flex:1 1 14rem;border:1px solid var(--line);border-radius:12px;padding:.6rem .9rem;background:var(--card);font-size:.92rem}
.backrow .pn:hover{border-color:var(--brand);text-decoration:none}
@media(max-width:720px){
  .bar{padding:.55rem .9rem;gap:.4rem}
  .bar .logo{font-size:.93rem}
  .bar .hlinks{gap:.7rem;font-size:.85rem}
}

/* ===== 事例カード（2026-08 改修） =====
   「参照先あり＝見に行ける」と「型＝実例をまだ特定できていない」を一目で分ける */
.case{position:relative}
.case .cbadge,.ccard .cbadge{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.02em;
  border-radius:999px;padding:.1rem .6rem;margin-bottom:.4rem}
.case.real .cbadge,.ccard.real .cbadge{background:var(--brand-l);color:var(--brand-d);border:1px solid #c3e7d5}
.case.kata .cbadge,.ccard.kata .cbadge{background:#f1efe9;color:#7a6f5c;border:1px solid #e0d9c9}
.case.kata,.ccard.kata{border-left-style:dashed}
.cmeta{display:grid;grid-template-columns:auto 1fr;gap:.18rem .8rem;margin:.65rem 0 .2rem;
  font-size:.88rem;line-height:1.75;border-top:1px solid var(--line);padding-top:.55rem}
.cmeta dt{color:var(--sub);font-weight:700;white-space:nowrap}
.cmeta dd{margin:0;color:var(--ink)}
.casestat{font-size:.92rem;color:var(--sub);background:var(--bg2);border:1px solid var(--line);
  border-radius:12px;padding:.6rem .9rem;margin:.2rem 0 1rem}
.casestat b{color:var(--ink)}

/* ===== 狭い画面の下部固定ナビ ===== */
.mbar{display:none}
@media(max-width:720px){
  .mbar{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;z-index:40;
    background:rgba(251,252,250,.96);backdrop-filter:blur(10px);border-top:1px solid var(--line);
    padding:.35rem .3rem calc(.35rem + env(safe-area-inset-bottom))}
  .mbar a{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.4rem .2rem;
    font-size:.74rem;font-weight:700;color:var(--sub);border-radius:12px}
  .mbar a .mic{display:flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;
    border-radius:9px;background:var(--bg2);color:var(--brand-d);font-size:.95rem;font-weight:800}
  .mbar a[aria-current]{color:var(--brand-d)}
  .mbar a[aria-current] .mic{background:var(--brand-solid);color:#fff}
  .mbar a:hover{text-decoration:none}
  body{padding-bottom:4.4rem}
}

/* ===== 取り組みの個別ページ ===== */
.chead{padding:2.2rem 0 1.2rem;border-bottom:1px solid var(--line)}
.chead .bc{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.6rem}
.chead .cattag{display:inline-block;font-size:.8rem;font-weight:800;color:#fff;border-radius:999px;padding:.18rem .75rem}
.chead .cattag:hover{text-decoration:none;opacity:.88}
.chead .kindtag{font-size:.78rem;font-weight:700;color:var(--sub);background:var(--bg2);
  border:1px solid var(--line);border-radius:999px;padding:.16rem .7rem}
.chead h1{font-size:1.95rem;line-height:1.45;margin:.2rem 0 0;font-weight:800;letter-spacing:-.015em}
.clead{font-size:1.08rem;line-height:1.95}
.cmeta.big{grid-template-columns:auto 1fr;gap:.35rem 1.2rem;font-size:.98rem;
  background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:1rem 1.2rem;border-top:0;margin-top:1rem}
.firststep{background:var(--brand-l);border:1px solid #c6e6d6;border-left:6px solid var(--brand);
  border-radius:14px;padding:1.1rem 1.3rem;font-size:1.08rem;line-height:1.95;font-weight:600;margin:0}
.clinklist{margin:.2rem 0 .6rem;padding-left:1.2rem;font-size:1.02rem;line-height:2}
.rchips.sibs .nolink{display:inline-flex;align-items:center;gap:.3rem;border:1px dashed var(--line);
  border-radius:999px;padding:.22rem .8rem;background:var(--bg2);color:var(--sub);font-size:.9rem}
.rchips.sibs .nolink i{font-style:normal;font-size:.8rem;opacity:.75}
a.cmore2{font-weight:700;color:var(--brand-d)}
@media(max-width:680px){.chead h1{font-size:1.45rem}.cmeta.big{grid-template-columns:1fr;gap:.1rem}}

/* ===== サイト内を探す ===== */
.searchbtn{display:flex;align-items:center;gap:.3rem;border:1px solid var(--line);background:#fff;
  color:var(--sub);font:inherit;font-size:.9rem;font-weight:700;border-radius:999px;
  padding:.32rem .85rem;cursor:pointer;margin-left:.6rem;flex:none}
.searchbtn:hover{border-color:var(--brand);color:var(--brand-d)}
.searchbtn span[aria-hidden]{font-size:1.05rem;line-height:1}
body.search-on{overflow:hidden}
.searchpane{position:fixed;inset:0;z-index:60;background:rgba(21,32,26,.45);
  backdrop-filter:blur(3px);padding:4vh 1rem;overflow-y:auto}
.searchpane .sinner{max-width:44rem;margin:0 auto;background:var(--card);border:1px solid var(--line);
  border-radius:18px;padding:1.2rem 1.3rem 1.4rem;position:relative;box-shadow:0 20px 60px rgba(10,40,25,.25)}
.slabel{display:block;font-size:.9rem;font-weight:800;color:var(--sub);margin-bottom:.5rem}
#searchQ{width:100%;font:inherit;font-size:1.15rem;padding:.7rem .9rem;border:2px solid var(--line);
  border-radius:12px;background:var(--bg2)}
#searchQ:focus{border-color:var(--brand);outline:none}
#searchClose{position:absolute;top:.8rem;right:1rem;border:0;background:none;font-size:1.6rem;
  line-height:1;color:var(--sub);cursor:pointer;padding:.1rem .4rem}
#searchHint{margin:.5rem 0 0;color:var(--sub)}
.scount{margin:.9rem 0 .4rem;font-size:.9rem;font-weight:700;color:var(--sub)}
.snone{margin:1rem 0;font-size:.98rem;line-height:1.9}
.sgroup{margin:.9rem 0 0}
.sgroup h3{display:flex;align-items:center;gap:.5rem;font-size:.86rem;font-weight:800;color:var(--sub);
  letter-spacing:.06em;margin:.9rem 0 .4rem;border-top:1px solid var(--line);padding-top:.7rem}
.sgroup h3 span{background:var(--bg2);border-radius:999px;padding:.05rem .5rem;font-size:.78rem}
.sgroup a{display:flex;gap:.7rem;padding:.6rem .5rem;border-radius:10px;color:var(--ink)}
.sgroup a:hover,.sgroup a:focus-visible{background:var(--bg2);text-decoration:none}
.sk{flex:none;width:4px;border-radius:2px;margin:.15rem 0}
.sbody{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.sbody b{font-size:1rem;font-weight:700;line-height:1.5}
.sc{font-size:.8rem;color:var(--sub);font-weight:600}
.ss{font-size:.87rem;color:var(--sub);line-height:1.6}
.sgroup mark{background:#fff1a8;color:inherit;border-radius:2px;padding:0 .1em}
@media(max-width:720px){
  .searchbtn .sbl{display:none}
  .searchbtn{padding:.32rem .6rem;margin-left:.35rem}
  .searchpane{padding:1rem .6rem}
}

/* ===== 現在位置（パンくず） ===== */
.crumbs{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;font-size:.86rem;
  color:var(--sub);padding:1rem 0 0;margin:0}
.crumbs a{color:var(--sub)}
.crumbs a:hover{color:var(--brand-d)}
.crumbs i{font-style:normal;opacity:.5;font-size:.8rem}
.crumbs [aria-current]{color:var(--ink);font-weight:700}

/* ===== 印刷（課題・取り組みの詳細ページ） ===== */
@media print {
  @page { margin: 16mm 14mm; }
  header.site, .mbar, .searchbtn, .searchpane, .crumbs, .backrow, .srclegend, .skip { display: none !important; }
  html { font-size: 10.5pt; }
  body { background: #fff; color: #000; padding-bottom: 0; }
  .wrap { max-width: none; padding: 0; }
  .case, .box, .view, .fact, .rchips, .cmeta { break-inside: avoid; }
  .case, .box, .cmeta.big { background: #fff !important; border-color: #bbb !important; }
  .lead30, .firststep, .bridge { background: #f6f6f4 !important; border-color: #bbb !important; }
  h1, h2, h3 { break-after: avoid; }
  section.dsec { break-inside: auto; padding: .7rem 0; }
  main a[href^="http"]::after { content: " ⟨" attr(href) "⟩"; font-size: .78em; color: #555; word-break: break-all; }
  main a { color: #000; text-decoration: underline; }
  footer { border-top: 1px solid #bbb; margin-top: 1rem; padding-top: .5rem; font-size: 9pt; }
}
