/* ── Generic WordPress page (page.php) ───────────────────────────────
   page.php emits .page-single / .page-title / .page-body but nothing ever
   styled them, so every default-template page — About, FAQ, Terms, the
   cheat sheets — rendered as unstyled text running the full width of the
   window. This is the reading layout for that content.

   Scoped to .page-single so it cannot reach the tool templates, and built
   on the site's theme tokens so it follows light / dim / dark. */

.page-single {
  --pg-w: 820px;
  max-width: var(--pg-w);
  margin: 0 auto;
  padding: 40px var(--content-px, 24px) 72px;
  margin-top: calc(var(--ticker-h, 34px) + var(--topbar-h, 36px) + var(--header-h, 64px));
  color: var(--text-2);
  font-size: 1.05rem;
  line-height: 1.75;
}

.page-title {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.9rem, 1.2rem + 2.4vw, 2.6rem);
  line-height: 1.15;
  font-weight: 700;
  color: var(--text-1);
  margin: 0 0 28px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--border-card);
}

/* ── Prose ───────────────────────────────────────────────────────── */
.page-body > :first-child { margin-top: 0; }
.page-body p { margin: 0 0 1.15em; }

.page-body h2,
.page-body h3,
.page-body h4 {
  font-family: Georgia, 'Times New Roman', serif;
  color: var(--text-1);
  line-height: 1.25;
  margin: 2em 0 .6em;
}
.page-body h2 { font-size: 1.6rem; }
.page-body h3 { font-size: 1.28rem; }
.page-body h4 { font-size: 1.1rem; }

/* The editor writes headings that wrap a link (each rankings/PDF section);
   they should read as headings, not as raw blue link text. */
.page-body h2 a,
.page-body h3 a,
.page-body h4 a { color: inherit; text-decoration: none; border-bottom: 2px solid var(--brand); }
.page-body h2 a:hover,
.page-body h3 a:hover,
.page-body h4 a:hover { color: var(--brand); }

.page-body a { color: var(--brand); text-decoration: none; }
.page-body a:hover { text-decoration: underline; }

.page-body em { color: var(--text-3); font-size: .92rem; }

/* Lists lose their markers to the global reset — put them back. */
.page-body ul,
.page-body ol { margin: 0 0 1.3em; padding-left: 1.35em; }
.page-body ul { list-style: disc; }
.page-body ol { list-style: decimal; }
.page-body li { margin: .35em 0; padding-left: .2em; }
.page-body li::marker { color: var(--text-3); }

/* A list of nothing but download links is the shape of this page; give it
   some presence rather than three bare words on three lines. */
.page-body ul li > a[href$=".pdf"],
.page-body ul li > a[href*=".pdf?"] {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 3px 2px; font-weight: 600;
}
.page-body ul li > a[href$=".pdf"]::before,
.page-body ul li > a[href*=".pdf?"]::before {
  content: "PDF";
  font: 700 10px/1 var(--font-mono, ui-monospace, monospace);
  letter-spacing: .08em;
  background: var(--brand); color: #fff;
  padding: 4px 6px; border-radius: 3px;
}

.page-body blockquote {
  margin: 1.5em 0; padding: 4px 0 4px 20px;
  border-left: 3px solid var(--brand);
  color: var(--text-1); font-style: italic;
}
.page-body hr { border: 0; border-top: 1px solid var(--border-card); margin: 2.4em 0; }

.page-body img { max-width: 100%; height: auto; margin: 1.4em 0; }

/* Wide content must scroll inside itself; the page must never scroll. */
.page-body table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: .95rem; }
.page-body th, .page-body td { padding: 9px 12px; border-bottom: 1px solid var(--border-card); text-align: left; }
.page-body th { color: var(--text-1); font-weight: 700; }
.page-body .table-scroll, .page-body figure.wp-block-table { overflow-x: auto; }

/* Embedded widgets (the rankings tool) should fill the column. */
.page-body iframe { max-width: 100%; border: 1px solid var(--border-card); }

@media (max-width: 640px) {
  .page-single { padding-top: 28px; font-size: 1rem; }
}
