
:root{--brand-navy:#0a2a49;--brand-accent:#e4572e;--brand-sky:#eff6fb;--ink:#223;--muted:#6b7280;--line:#e5e7eb;--radius:14px;--shadow:0 10px 30px rgba(10,42,73,.08)}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.75}
a{color:inherit;text-decoration:none}
.site-header{background:linear-gradient(135deg,var(--brand-navy),#12365e);color:#fff}
.container{max-width:1100px;margin-inline:auto;padding:clamp(16px,4vw,28px)}
.brand{font-weight:700;letter-spacing:.02em;font-size:32px}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.search{flex:1 1 280px;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;box-shadow:var(--shadow)}
.search input{border:none;outline:none;width:100%;font-size:16px}
.sections{padding-block:20px 60px;background:linear-gradient(180deg,var(--brand-sky),#fff 30%)}
details.group-block{margin:20px 0;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}
details.group-block[open]{background:#fafcff}
summary.group-title{margin:0;padding:16px 20px;font-size:20px;color:var(--brand-navy);font-weight:800;cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px}
summary.group-title .caret{margin-left:auto;transition:transform .25s ease;display:inline-block}
details.group-block[open] summary.group-title .caret{transform:rotate(90deg)}
summary.group-title::-webkit-details-marker{display:none}
.sub-title{margin:14px 18px 8px;font-size:16px;color:#0f172a;font-weight:700;border-left:4px solid var(--brand-navy);padding-left:10px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 18px 18px}
@media (max-width:720px){.grid{grid-template-columns:1fr}}
.item{border:1px dashed var(--line);border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:10px;transition:background .2s ease}
.item:hover{background:#f0f8ff}
.item .num{width:40px;height:40px;flex-shrink:0;border-radius:10px;background:#f6f9fc;color:#475569;display:flex;align-items:center;justify-content:center;font-weight:700}
.item h4{margin:0;font-size:16px;line-height:1.4}
.item p{margin:.15rem 0 0;color:var(--muted);font-size:13px}
.hidden{display:none !important}
