html { scrollbar-gutter: stable; }
.legal-directory { max-width: 800px; margin: 48px auto 0; }
.legal-directory > p { margin: 22px 0; font-size: 16px; color: var(--site-muted); }
.legal-directory nav { margin-top: 30px; border-top: 1px solid var(--site-line); }
.legal-document { display: flex; gap: 24px; align-items: center; justify-content: space-between; padding: 25px 0; text-decoration: none; border-bottom: 1px solid var(--site-line); }
.legal-document strong { display: block; font-size: 22px; line-height: 1.25; font-weight: 620; letter-spacing: -.02em; }
.legal-document span span { display: block; color: var(--site-muted); font-size: 16px; line-height: 1.6; margin-top: 8px; }
.legal-document .ph { font-size: 24px; color: #305310; }
.legal-document:hover strong { text-decoration: underline; text-underline-offset: .22em; }
.legal-directory .legal-directory-note { margin-top: 30px; font-size: 14px; }
.policy-tools { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 36px; padding-bottom: 20px; border-bottom: 1px solid var(--site-line); }
.policy-print { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 8px 14px; background: transparent; color: var(--site-text); border: 1px solid var(--site-line); border-radius: 999px; font-size: 14px; }
.policy-print:hover { background: var(--site-line); }
.policy-main .reading-layout { margin-top: 36px; }
.policy-main .reading-copy p, .policy-main .reading-copy li { font-size: 16px; line-height: 1.85; overflow-wrap: anywhere; }
.reading-copy ul { margin: 0 0 18px; padding-left: 23px; color: #4e594a; }
.reading-copy li + li { margin-top: 14px; }
.reading-copy code { font-size: .95em; overflow-wrap: anywhere; }
.policy-main .policy-draft { margin-top: 18px; }
.policy-main .policy-draft p, .legal-main .policy-draft p { font-size: 16px; line-height: 1.75; }
.policy-main .policy-draft + p { margin-top: 18px; }
.request-template { padding: 24px; margin: 22px 0; border: 1px solid var(--site-line); border-radius: 14px; }
.policy-facts { margin: 0 0 24px; }
.policy-facts > div { display: grid; grid-template-columns: 105px minmax(0,1fr); gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--site-line); font-size: 16px; line-height: 1.75; }
.policy-facts dt { font-weight: 620; }
.policy-facts dd { margin: 0; color: #4e594a; overflow-wrap: anywhere; }
@media (max-width: 800px) {
  .legal-directory { margin-top: 30px; }
  .legal-document { padding: 23px 0; gap: 18px; }
  .legal-document strong { font-size: 21px; }
  .policy-tools { margin-top: 28px; flex-wrap: wrap; gap: 14px; }
  .policy-tools .text-link { font-size: 14px; }
  .policy-main .reading-nav { margin-bottom: 30px; }
}
@media (max-width: 480px) {
  .policy-facts > div { grid-template-columns: 1fr; gap: 4px; }
  .request-template { padding: 18px; }
}
@media print {
  @page { margin: 18mm; }
  html { scroll-behavior: auto; }
  body.public-site { background: #fff; color: #111; }
  .site-header, .site-footer, .policy-tools, .reading-nav, .skip-link { display: none !important; }
  .site-wrap { width: 100%; max-width: none; }
  .page-heading { padding: 0 0 24px; text-align: left; }
  .page-heading h1 { margin: 0; font-size: 30px; }
  .page-heading > p { margin: 12px 0 0; font-size: 16px; }
  .reading-main { padding-bottom: 0; }
  .reading-layout { display: block; margin-top: 0 !important; }
  .reading-copy { max-width: none; }
  .reading-copy h2 { font-size: 21px; break-after: avoid; }
  .reading-copy p, .reading-copy li { color: #111; }
  .policy-draft, .request-template { break-inside: avoid; }
  a { color: #111 !important; }
  .reading-copy a[href^="https://"]::after { content: ' (' attr(href) ')'; font-size: 12px; overflow-wrap: anywhere; }
}
