/* Long-form page content (.pl-prose in page.php).
   The policy, guide and handling pages are genuine reading — terms, research-use
   policy, storage. A comfortable measure and a real vertical rhythm matter more
   here than anywhere else on the site.

   Every selector is scoped to .pl-prose so editor-authored markup gets styled
   without a bare `p { }` rule leaking out and outranking a component. */

.pl-page { max-width: 78ch; }
.pl-pagehead { margin-bottom: 30px; }
.pl-pagehead__desc { margin-top: 10px; color: var(--pl-t2); }

.pl-prose {
  font-size: 16.5px;
  line-height: 1.7;
  color: var(--pl-t2);
  text-wrap: pretty;
}

.pl-prose > * + * { margin-top: 1.1em; }

.pl-prose h2 {
  margin-top: 1.9em;
  font-size: 27px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.025em;
  color: var(--pl-ink);
}
.pl-prose h3 {
  margin-top: 1.6em;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -.015em;
  color: var(--pl-ink);
}
.pl-prose h4 {
  margin-top: 1.4em;
  font-size: 16.5px;
  font-weight: 700;
  color: var(--pl-ink);
}
/* A heading immediately after another heading should not inherit the big gap. */
.pl-prose h2 + h3,
.pl-prose h3 + h4 { margin-top: .7em; }

.pl-prose a {
  color: var(--pl-navy);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.pl-prose a:hover { color: var(--pl-ink); }

.pl-prose ul,
.pl-prose ol { padding-left: 1.3em; }
.pl-prose li { margin-top: .45em; }
.pl-prose ul { list-style: disc; }
.pl-prose ol { list-style: decimal; }
.pl-prose li::marker { color: var(--pl-faint); }

.pl-prose strong { color: var(--pl-ink); font-weight: 700; }

.pl-prose blockquote {
  padding: 18px 22px;
  background: var(--pl-surface-alt);
  border: 1px solid var(--pl-bd);
  font-size: 16px;
}

.pl-prose code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .92em;
  padding: 2px 6px;
  background: var(--pl-chip);
}

.pl-prose hr {
  height: 1px;
  margin: 2.2em 0;
  background: var(--pl-bd);
  border: 0;
}

/* Callouts written into page content as <div class="pl-info"> */
.pl-prose .pl-info { margin-top: 1.6em; }
.pl-prose .pl-info > :first-child { margin-top: 0; }

/* A table in a policy page must scroll inside itself rather than widening the
   page — the site is audited for horizontal overflow at 375px. */
.pl-prose table {
  display: block;
  width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
  font-size: 15px;
}
.pl-prose th,
.pl-prose td {
  padding: 10px 14px;
  text-align: left;
  border-bottom: 1px solid var(--pl-bd);
  white-space: nowrap;
}
.pl-prose th {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--pl-muted);
  border-bottom-color: var(--pl-bd-strong);
}

.pl-prose img { margin-top: 1.4em; }

/* Empty-state / 404 shared block */
.pl-empty { max-width: 60ch; padding: 40px 0; }
.pl-empty p { margin-top: 10px; }
.pl-empty .pl-btn,
.pl-404search { margin-top: 22px; }
.pl-404search { display: flex; gap: 10px; max-width: 460px; }
.pl-404cats { margin-top: 34px; }
.pl-404cat { text-decoration: none; }
.pl-404cat h2 { margin-top: 10px; }

.pl-postlist { margin-top: 30px; }
.pl-postcard__media img { width: 100%; height: 190px; object-fit: cover; }
.pl-pagination { margin-top: 34px; }

@media (max-width: 767px) {
  .pl-prose { font-size: 16px; }
  .pl-prose h2 { font-size: 23px; }
  .pl-prose h3 { font-size: 18.5px; }
  .pl-404search { flex-direction: column; }
}
