/* Static study-guide pages generated by site/build-pages.py (questions, road signs, test guide).
   Loaded after app.css, which provides the tokens, top bar, cards, buttons and footer. */
.crumbs { font-size: 13px; color: var(--muted); margin: 0 0 14px; display: flex; flex-wrap: wrap; gap: 6px; }
.crumbs a { color: var(--muted); text-decoration: none; }
.crumbs a:hover { color: var(--orange-ink); }
.page-hero { padding: 28px; margin-bottom: 20px; }
.page-hero h1 { font-size: 32px; font-weight: 800; line-height: 1.2; margin: 10px 0 10px; }
.page-hero .lede { color: var(--ink-2); font-size: 16px; margin: 0; max-width: 70ch; }
.page-hero .cta-row { margin: 18px 0 0; }
.toc { padding: 20px 24px; margin-bottom: 20px; }
.toc h2 { font-size: 17px; margin-bottom: 10px; }
.toc ol { margin: 0; padding-left: 20px; columns: 2; column-gap: 32px; }
.toc li { margin: 4px 0; break-inside: avoid; }
.toc a { color: var(--ink-2); text-decoration: none; font-weight: 600; }
.toc a:hover { color: var(--orange-ink); }
.toc small { color: var(--muted); font-weight: 500; }
.cat-sec { margin: 28px 0 0; scroll-margin-top: 84px; }
.cat-sec > h2 { font-size: 22px; font-weight: 800; margin-bottom: 4px; }
.cat-sec > .fine a { color: var(--orange-ink); font-weight: 700; text-decoration: none; }
.qa { padding: 20px 22px; margin-top: 12px; scroll-margin-top: 84px; }
.qa h3 { font-size: 16.5px; font-weight: 700; line-height: 1.45; }
.qa .qn { color: var(--orange-ink); margin-right: 4px; }
.qa figure { margin: 12px 0 0; }
.qa img, .sign img { display: block; max-width: 100%; height: auto; border-radius: 10px; background: var(--soft); }
.qa img { max-height: 260px; width: auto; }
.qa .opts { margin: 12px 0 0; padding-left: 24px; color: var(--ink-2); }
.qa .opts li { margin: 3px 0; }
.qa details { margin-top: 12px; }
.qa summary { cursor: pointer; font-weight: 700; color: var(--orange-ink); width: fit-content; }
.qa details p { margin: 8px 0 0; padding: 12px 14px; border-radius: 10px; background: var(--green-bg); border: 1px solid var(--green-line); color: var(--ink-2); }
.qa details b { color: var(--green-d); }
.chap-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.chap { padding: 20px; text-decoration: none; color: inherit; display: flex; flex-direction: column; gap: 8px; }
.chap h2 { font-size: 18px; font-weight: 800; }
.chap p { margin: 0; color: var(--muted); font-size: 14px; }
.signs { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; margin-top: 12px; }
.sign { padding: 16px; display: flex; flex-direction: column; gap: 10px; scroll-margin-top: 84px; }
.sign img { width: 100%; max-width: 140px; margin: 0 auto; background: none; }
.sign h3 { font-size: 15px; font-weight: 700; line-height: 1.35; }
.sign p { margin: 0; font-size: 13.5px; color: var(--muted); }
.prose { padding: 28px; }
.prose h2 { font-size: 22px; font-weight: 800; margin: 26px 0 8px; }
.prose h2:first-child { margin-top: 0; }
.prose h3 { font-size: 17px; font-weight: 700; margin: 18px 0 6px; }
.prose p, .prose li { color: var(--ink-2); max-width: 72ch; }
.prose li { margin: 6px 0; }
.prose a { color: var(--orange-ink); font-weight: 600; }
.pager { display: flex; justify-content: space-between; gap: 12px; margin-top: 28px; flex-wrap: wrap; }
@media (max-width: 860px) { .chap-grid { grid-template-columns: 1fr; } .toc ol { columns: 1; } }
@media (max-width: 600px) { .page-hero { padding: 20px 18px; } .page-hero h1 { font-size: 25px; } .prose { padding: 20px 18px; } .qa { padding: 16px; } }
