:root{
  --ink:#1b2430; --ink-soft:#4a5666; --line:#dfe4ea; --bg:#ffffff; --bg-soft:#f5f7fa;
  --accent:#0b6b5f; --accent-soft:#e6f2f0; --warn:#8a5a00; --warn-soft:#fff6e5;
  --radius:10px; --maxw:960px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  font-size:17px; line-height:1.85; letter-spacing:.01em;
}
a{color:var(--accent)}
a:focus-visible,button:focus-visible{outline:3px solid var(--accent); outline-offset:2px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;z-index:99;background:#fff;padding:.6em 1em;border:2px solid var(--accent);border-radius:var(--radius)}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 20px}
header.site{border-bottom:1px solid var(--line); background:var(--bg-soft)}
header.site .wrap{padding-top:18px; padding-bottom:18px}
header.site .name{font-size:1.15rem; font-weight:700; text-decoration:none; color:var(--ink)}
header.site .tag{margin:.3em 0 0; font-size:.86rem; color:var(--ink-soft)}
.draft{background:var(--warn-soft); border-bottom:1px solid #f0dcae; color:var(--warn); font-size:.85rem}
.draft .wrap{padding-top:.6em; padding-bottom:.6em}
nav.crumb{font-size:.85rem; color:var(--ink-soft); padding:14px 0 0}
nav.crumb ol{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.4em}
nav.crumb li+li::before{content:"›"; margin-right:.4em; color:#9aa5b1}
main{padding:8px 0 56px}
h1{font-size:1.55rem; line-height:1.5; margin:.6em 0 .3em}
h2{font-size:1.18rem; margin:2em 0 .6em; padding-bottom:.3em; border-bottom:2px solid var(--accent-soft)}
h3{font-size:1.02rem; margin:1.6em 0 .4em}
.lead{color:var(--ink-soft); margin:.2em 0 1.4em}
.count{display:inline-block; background:var(--accent-soft); color:var(--accent); font-weight:700;
  border-radius:999px; padding:.1em .8em; font-size:.9rem; margin-left:.4em}
.cards{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:minmax(0,1fr); gap:14px}
@media(min-width:700px){.cards{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.card{border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; background:#fff; min-width:0; overflow-wrap:anywhere}
.card h3{margin:0 0 .3em; font-size:1.05rem}
.card h3 a{text-decoration:none}
.card h3 a:hover{text-decoration:underline}
.card .meta{margin:0; font-size:.88rem; color:var(--ink-soft)}
.tag{display:inline-block; font-size:.78rem; background:var(--bg-soft); border:1px solid var(--line);
  border-radius:999px; padding:.05em .7em; color:var(--ink-soft); margin:0 .3em .3em 0}
.links{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px}
.links a{display:inline-block; border:1px solid var(--line); border-radius:999px;
  padding:.35em 1em; text-decoration:none; background:#fff; font-size:.92rem}
.links a:hover{background:var(--accent-soft)}
table.facts{border-collapse:collapse; width:100%; margin:.6em 0 1.2em; font-size:.95rem}
table.facts th,table.facts td{border:1px solid var(--line); padding:.6em .8em; text-align:left; vertical-align:top}
table.facts th{background:var(--bg-soft); width:11em; font-weight:600; white-space:nowrap}
.empty{color:#8892a0}
.note{background:var(--bg-soft); border-left:4px solid var(--accent); padding:.9em 1.1em; border-radius:0 var(--radius) var(--radius) 0; font-size:.92rem}
footer.site{border-top:1px solid var(--line); background:var(--bg-soft); font-size:.84rem; color:var(--ink-soft)}
footer.site .wrap{padding-top:24px; padding-bottom:40px}
footer.site p{margin:.4em 0}
.srcbox{font-size:.84rem; color:var(--ink-soft); background:var(--bg-soft);
  border:1px solid var(--line); border-radius:var(--radius); padding:.9em 1.1em; margin:2em 0 0}
/* 出典URL・法人URLは途中で折れないと、狭い画面で本文ごと横へはみ出す（390px幅で実測） */
.srcbox a,footer.site a,table.facts td a{overflow-wrap:anywhere; word-break:break-word}
@media(max-width:520px){
  table.facts th{width:7em; white-space:normal}
  table.facts th,table.facts td{padding:.5em .6em}
  .links a{max-width:100%; overflow-wrap:anywhere}
}
