/* Article layout; type and component styling come from the shared site system. */
html { scroll-padding-top: 88px; }
.skip-link { position: absolute; left: 24px; top: -80px; padding: 10px 16px; background: var(--surface); color: var(--text); z-index: 101; }
.skip-link:focus { top: 10px; }
.article { margin: 72px auto 96px; }
.article :is(h1, h2, h3) { color: var(--text); }
.article-header { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: center; gap: 40px; padding-bottom: 32px; border-bottom: 1px solid var(--border-strong); }
.article-header-copy { display: flex; flex-direction: column; gap: 28px; }
.article-header-art { width: 100%; max-width: 440px; height: auto; justify-self: end; }
.article h1 { max-width: 920px; text-wrap: balance; }
.prose { max-width: 70ch; }
.intro p { margin-top: 20px; }
.intro .lead { margin-top: 32px; }
.article > section { margin-top: 64px; }
.article h2 { max-width: 800px; }
.article section > .prose { margin-top: 20px; }
.table-wrap { margin-top: 28px; }
/* Match the shared article/legal table: white surface, pale header and 14px frame. */
.policy-table { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; background: var(--surface); border: 1px solid var(--rule); border-radius: 14px; overflow: hidden; }
.policy-table col:first-child { width: 30%; }
.policy-table th, .policy-table td { padding: 12px 16px; text-align: left; vertical-align: top; }
.policy-table thead th { display: table-cell; color: var(--text); background: var(--bg-alt); border-bottom: 2px solid var(--rule); letter-spacing: .04em; }
.policy-table tbody th, .policy-table td { font-size: 14px; line-height: 1.6; color: var(--text-subtle); }
.policy-table tbody th { font-weight: 600; }
.policy-table tbody tr + tr > * { border-top: 1px solid var(--rule); }
.policy-diagram { margin-top: 28px; }
.figure-label { margin: 0; }
.diagram-flow { display: grid; grid-template-columns: minmax(0, 1fr) 44px minmax(0, 2fr); gap: 24px; align-items: stretch; padding: 24px; }
.policy-baseline { display: flex; flex-direction: column; gap: 14px; padding: 24px; background: var(--navy); color: var(--bg); border-radius: 10px; }
.policy-baseline .panel-label { color: var(--primary-light); }
.policy-baseline .body, .policy-baseline h3 { color: var(--bg); }
.policy-baseline ul { list-style: none; }
.diagram-arrow { display: flex; align-items: center; justify-content: center; }
.diagram-arrow img { width: 44px; height: 40px; }
.assessment-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.assessment-b { border-top-color: var(--navy); }
.assessment-b .panel-label { color: var(--navy); }
.policy-diagram figcaption { border-top: 1px solid var(--border-strong); }
.contact-section { padding: 40px; border-radius: 14px; }
.contact-section .eyebrow { margin-bottom: 16px; }
.article .contact-section h2 { color: var(--surface); }
.contact-section .lead { max-width: 70ch; margin-top: 20px; }
.contact-button { margin-top: 24px; }
@media (max-width: 1000px) {
  .diagram-flow { display: flex; flex-direction: column; }
  .diagram-arrow { height: 44px; align-self: center; }
  .diagram-arrow img { transform: rotate(90deg); }
}
/* Use the News page's navigation breakpoint for this article too. */
@media (max-width: 800px) {
  #main-nav .nav-links { display: none; }
  #mobile-menu .nav-link { display: block; }
}
@media (max-width: 400px) {
  #main-nav .nav-cta > a[href="/pricing"] { display: none; }
}
@media (max-width: 720px) {
  .article { margin-top: 48px; margin-bottom: 64px; }
  .article-header { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-bottom: 24px; }
  .article-header-copy { gap: 24px; }
  .article-header-art { max-width: 320px; justify-self: center; }
  .article > section { margin-top: 48px; }
  .policy-table, .policy-table tbody { display: block; }
  .policy-table thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .policy-table colgroup { display: none; }
  .policy-table tbody tr { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 16px; }
  .policy-table tbody tr + tr { border-top: 1px solid var(--rule); }
  .policy-table tbody tr > * { display: block; padding: 0; border: 0; }
  .policy-table tbody tr + tr > * { border-top: 0; }
  .diagram-flow { padding: 20px; }
  .policy-baseline { padding: 20px; }
  .assessment-options { grid-template-columns: minmax(0, 1fr); }
  .contact-section { padding: 24px; }
}
@media print {
  .contact-section, .skip-link { display: none; }
  .article { max-width: none; width: 100%; padding: 0; margin: 0; }
  .policy-table tr, .policy-diagram { break-inside: avoid; }
}
