:root{
  --bg:#f4f6f8; --card:#fff; --text:#1c2733; --muted:#5f7081;
  --primary:#1565c0; --primary-dark:#0d47a1; --accent:#ef6c00;
  --correct:#2e7d32; --correct-bg:#e8f5e9; --wrong:#c62828; --wrong-bg:#ffebee;
  --warn-bg:#fff8e1; --warn-border:#f9a825; --border:#dde3e9; --radius:12px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Hiragino Sans","Yu Gothic UI","Meiryo",sans-serif;background:var(--bg);color:var(--text);line-height:1.75}
a{color:var(--primary)}
.muted{color:var(--muted);font-size:.85rem}

.topbar{background:var(--primary);position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px}
.brand{color:#fff;font-weight:bold;text-decoration:none;font-size:1.02rem}
.topnav a{color:#cfe3f7;text-decoration:none;font-size:.85rem;margin-left:14px}
.topnav a:hover{color:#fff}

.container{max-width:760px;margin:0 auto;padding:16px}
h1{font-size:1.4rem;margin:6px 0 12px;line-height:1.4}
h2{font-size:1.1rem;margin:22px 0 10px}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:14px}

/* ヒーロー */
.hero{text-align:center;padding:10px 0 6px}
.hero h1{font-size:1.7rem;color:var(--primary-dark)}
.hero-lead{font-size:1rem;margin:10px 0 16px}
.hero-note{margin-top:10px}

.btn{display:inline-block;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);padding:14px 22px;font-size:1rem;font-weight:bold;text-decoration:none;cursor:pointer;font-family:inherit}
.btn.primary{background:var(--accent)}
.btn.block{display:block;width:100%;text-align:center}
.btn.secondary{background:var(--card);color:var(--primary);border:2px solid var(--primary)}
.btn:disabled{opacity:.5;cursor:default}
.answer-submit{margin-top:12px}

/* 分野・特徴・記事リスト */
.cat-list,.article-list{display:flex;flex-direction:column;gap:8px}
.cat-item{display:flex;justify-content:space-between;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:13px 14px;text-decoration:none;color:var(--text);font-weight:bold;font-size:.95rem}
.cat-item:active{background:#eef3f8}
.cat-n{color:var(--muted);font-weight:normal;white-space:nowrap}
.feature-list{padding-left:1.1em}
.feature-list li{margin:6px 0}
.article-item{display:block;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:12px 14px;text-decoration:none;color:var(--text)}
.article-title{display:block;font-weight:bold;color:var(--primary-dark);margin-bottom:2px}
.disclaimer{margin-top:18px}

/* クイズ */
.quiz-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
.tally{font-size:.85rem;font-weight:bold;white-space:nowrap}
.tally .t-ok{color:var(--correct)} .tally .t-ng{color:var(--wrong)}
.q-meta{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}
.badge{display:inline-block;font-size:.7rem;padding:2px 8px;border-radius:999px}
.badge.session{background:#ede7f6;color:#4527a0}
.badge.cat{background:#e3f2fd;color:var(--primary-dark)}
.question-text{font-size:1rem;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 12px}
.choices{display:flex;flex-direction:column;gap:10px}
.choice-btn{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;background:var(--card);border:2px solid var(--border);border-radius:var(--radius);padding:14px 12px;font-size:.95rem;line-height:1.6;cursor:pointer;font-family:inherit;color:var(--text)}
.choice-btn .n{flex:0 0 28px;height:28px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:.9rem}
.choice-btn:active{background:#eef3f8}
.choice-btn.selected{border-color:var(--primary);background:#eaf3ff}
.choice-btn.selected .n{background:var(--primary);color:#fff}
.choice-btn:disabled{cursor:default}
.choice-btn.correct{border-color:var(--correct);background:var(--correct-bg)}
.choice-btn.correct .n{background:var(--correct);color:#fff}
.choice-btn.wrong{border-color:var(--wrong);background:var(--wrong-bg)}
.choice-btn.wrong .n{background:var(--wrong);color:#fff}
.choice-btn.dim{opacity:.55}

.answer-panel{scroll-margin-top:64px;margin-top:14px;border-top:1px solid var(--border);padding-top:12px}
.verdict{font-size:1.25rem;font-weight:bold;margin-bottom:6px}
.verdict.correct{color:var(--correct)} .verdict.wrong{color:var(--wrong)}
.v-sub{display:block;font-size:.8rem;font-weight:normal;color:var(--muted)}
.choice-review{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:#fbfcfd;margin-bottom:12px}
.choice-review summary{color:var(--primary);cursor:pointer;font-weight:bold;font-size:.9rem}
.choice-review ol{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.choice-review li{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:start;border:1px solid var(--border);border-radius:8px;padding:9px;background:#fff;font-size:.9rem}
.choice-review li.correct{border-color:var(--correct);background:var(--correct-bg)}
.choice-review li.wrong{border-color:var(--wrong);background:var(--wrong-bg)}
.choice-review .rn{font-weight:bold;text-align:center}
.choice-review .mk{font-size:.72rem;font-weight:bold;color:var(--muted);white-space:nowrap}
.exp-head{font-weight:bold;margin:6px 0 4px}
.explanation{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.95rem}
.notice{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:8px;padding:10px 12px;font-size:.82rem;margin:10px 0}
.source-line{font-size:.75rem;color:var(--muted);margin-top:10px}
.sticky-next{position:sticky;bottom:12px;margin-top:12px;box-shadow:0 8px 18px rgba(13,71,161,.24)}

.result-banner{text-align:center;padding:18px;border-radius:var(--radius);margin-bottom:14px}
.result-banner.pass{background:var(--correct-bg);color:var(--correct)}
.result-banner.fail{background:var(--wrong-bg);color:var(--wrong)}
.result-banner .big{font-size:1.5rem;font-weight:bold}

/* 記事・法務 */
.article-body h2{font-size:1.12rem;border-left:4px solid var(--primary);padding-left:8px;margin-top:24px}
.article-body h3{font-size:1rem;margin-top:16px}
.article-body ul,.article-body ol{padding-left:1.3em}
.article-body li{margin:5px 0}
.legal h2{font-size:1.05rem;margin-top:20px}
.info-table{width:100%;border-collapse:collapse;font-size:.9rem}
.info-table th,.info-table td{border:1px solid var(--border);padding:8px 10px;text-align:left;vertical-align:top}
.info-table th{background:#f3f6f9;width:30%;white-space:nowrap}
.contact-box{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:14px;font-weight:bold}

/* 広告枠(後で差し込む) */
.ad-slot{max-width:760px;margin:10px auto;min-height:0}

/* フッター */
.site-footer{background:#eceff2;border-top:1px solid var(--border);padding:20px 16px 40px;margin-top:24px}
.footer-links{max-width:760px;margin:0 auto;display:flex;flex-wrap:wrap;gap:10px 16px;justify-content:center}
.footer-links a{color:var(--muted);text-decoration:none;font-size:.82rem}
.footer-links a:hover{color:var(--primary)}
.footer-note{max-width:760px;margin:14px auto 0;color:var(--muted);font-size:.72rem;text-align:center}
.footer-copy{text-align:center;color:var(--muted);font-size:.72rem;margin-top:8px}

@media(max-width:640px){
  .container{padding:12px}
  .hero h1{font-size:1.45rem}
  h1{font-size:1.25rem}
}
