/* Long-form pages — legal documents, support and docs. Builds on the tokens,
   topbar and footer in site.css; nothing here applies to the landing pages. */
.doc-head { padding:64px 0 42px; border-bottom:1px solid var(--line); }
.doc-head h1 { font:500 clamp(38px,5vw,62px)/1.08 'Manrope',sans-serif; letter-spacing:-2.6px; margin:20px 0 18px; }
.doc-head .lede { font-size:17px; line-height:1.7; color:var(--ink-2); max-width:690px; margin:0; }
.doc-meta { display:flex; flex-wrap:wrap; gap:6px 22px; margin:22px 0 0; font-size:12px; color:var(--ink-3); }
.doc-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:72px; padding:52px 0 96px; align-items:start; }
.doc-layout.single { grid-template-columns:minmax(0,1fr); }

/* Contents: a sticky rail on wide screens, a collapsible box on narrow ones. */
.toc { position:sticky; top:24px; font-size:13px; }
.toc summary { list-style:none; font-size:10px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase; padding:0 0 12px; pointer-events:none; }
.toc summary::-webkit-details-marker { display:none; }
.toc ol { list-style:none; margin:0; padding:0; border-left:1px solid var(--line); }
.toc li a { display:block; padding:6px 0 6px 14px; margin-left:-1px; border-left:1px solid transparent; color:var(--ink-2); line-height:1.4; }
.toc li a:hover { color:var(--ink); border-left-color:var(--ink); }

/* Document text. */
.prose { max-width:740px; min-width:0; }
.prose.wide { max-width:none; }
.prose.wide section > p, .prose.wide section > ul { max-width:740px; }
.prose section { margin-bottom:46px; }
.prose h2 { font:600 26px/1.25 'Manrope',sans-serif; letter-spacing:-.8px; margin:0 0 16px; }
.prose h3 { font:600 18px/1.35 'Manrope',sans-serif; letter-spacing:-.4px; margin:28px 0 10px; }
.prose p, .prose li { font-size:15.5px; line-height:1.75; color:#33493f; }
.prose p { margin:0 0 14px; }
.prose ul, .prose ol { margin:0 0 16px; padding-left:22px; }
.prose li { margin-bottom:6px; }
.prose li > ul { margin:6px 0 0; }
.prose a:not(.button) { text-decoration:underline; text-decoration-color:#9fb093; text-underline-offset:3px; overflow-wrap:anywhere; }
.prose a:not(.button):hover { text-decoration-color:var(--ink); }
.prose strong { color:var(--ink); font-weight:650; }
.prose code { font:500 .9em/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; background:var(--surface-2); border:1px solid var(--border); border-radius:4px; padding:1px 5px; overflow-wrap:anywhere; }
.prose pre { background:var(--ink); color:#eef3e6; border-radius:8px; padding:15px 18px; margin:0 0 16px; font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; white-space:pre-wrap; overflow-wrap:anywhere; }
.prose pre code { background:none; border:0; padding:0; color:inherit; font:inherit; }
.prose .small { font-size:13px; color:var(--ink-2); }

/* Callouts, steps and cards. */
.note { background:var(--surface); border:1px solid var(--border-strong); border-left:4px solid var(--accent); border-radius:8px; padding:16px 20px; margin:0 0 20px; }
.note.key { border-left-color:#9dbb45; background:#f7fbe9; }
.note > :last-child { margin-bottom:0; }
.note p, .note li { font-size:14.5px; }
.steps { counter-reset:step; list-style:none; padding-left:0 !important; }
.steps > li { counter-increment:step; position:relative; padding-left:40px; margin-bottom:12px; }
.steps > li::before { content:counter(step); position:absolute; left:0; top:2px; width:26px; height:26px; border-radius:50%; background:var(--ink); color:var(--paper); font:700 12px/26px 'DM Sans',sans-serif; text-align:center; }
.cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:0 0 22px; }
.card { background:var(--surface); border:1px solid var(--border-strong); border-radius:10px; padding:20px 22px; min-width:0; }
.card h3 { margin:0 0 8px; }
.card p { font-size:14.5px; margin:0 0 10px; }
.card > :last-child { margin-bottom:0; }
.prose p.contact-line { font:600 22px/1.3 'Manrope',sans-serif; letter-spacing:-.5px; color:var(--ink); margin:4px 0 10px; overflow-wrap:anywhere; }
.prose .contact-line a { text-decoration:none; }
.pill { display:inline-block; font-size:11px; font-weight:650; letter-spacing:.2px; padding:2px 8px; border-radius:20px; background:var(--surface-2); border:1px solid var(--border-strong); color:var(--ink-2); white-space:nowrap; vertical-align:1px; }
.pill.write { background:#fbf0dc; border-color:#ecd2a6; color:#80501d; }

/* Tables: bordered on wide screens, stacked label/value blocks on phones. */
.table-wrap { margin:0 0 20px; border:1px solid var(--border-strong); border-radius:8px; overflow:hidden; background:var(--surface); }
.prose table { width:100%; border-collapse:collapse; }
.prose th { text-align:left; vertical-align:bottom; font-size:10.5px; font-weight:700; letter-spacing:.7px; text-transform:uppercase; color:var(--ink-2); background:var(--surface-2); padding:11px 14px; border-bottom:1px solid var(--border-strong); }
.prose td { font-size:13.5px; line-height:1.6; color:#33493f; padding:12px 14px; border-top:1px solid var(--border); vertical-align:top; }
.prose tbody tr:first-child td { border-top:0; }
.prose td p { font-size:13.5px; margin:0 0 6px; }
.prose td > :last-child { margin-bottom:0; }
.prose td ul { padding-left:18px; margin:0; }
.prose td li { font-size:13.5px; margin-bottom:3px; }
.prose td:first-child { font-weight:600; color:var(--ink); }

/* Unfilled facts and pending decisions — impossible to miss on purpose. */
.ph { background:#fbf0dc; color:#80501d; border:1px dashed #d39a52; border-radius:4px; padding:0 4px; font-weight:650; font-style:normal; }

@media(max-width:1000px) {
  .doc-layout { grid-template-columns:minmax(0,1fr); gap:28px; padding:32px 0 72px; }
  .toc { position:static; background:var(--surface); border:1px solid var(--border-strong); border-radius:8px; padding:14px 18px; }
  .toc summary { pointer-events:auto; cursor:pointer; padding:0; display:flex; justify-content:space-between; align-items:center; }
  .toc summary::after { content:'+'; font-size:18px; font-weight:400; letter-spacing:0; }
  .toc[open] summary { padding-bottom:10px; }
  .toc[open] summary::after { content:'−'; }
  .toc ol { columns:2; column-gap:28px; border-left:0; }
  .toc li { break-inside:avoid; }
  .toc li a { padding:5px 0; margin:0; border-left:0; }
}
@media(max-width:700px) {
  .doc-head { padding:44px 0 32px; }
  .doc-head h1 { font-size:40px; letter-spacing:-1.6px; }
  .doc-head .lede { font-size:16px; }
  .toc ol { columns:1; }
  .prose h2 { font-size:23px; }
  .prose p, .prose li { font-size:15px; }
  .cards { grid-template-columns:minmax(0,1fr); }
  .prose table, .prose thead, .prose tbody, .prose tr, .prose th, .prose td { display:block; }
  .prose thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .prose tbody tr { padding:12px 16px; border-top:1px solid var(--border-strong); }
  .prose tbody tr:first-child { border-top:0; }
  .prose td { border:0; padding:3px 0; }
  .prose td[data-label]::before { content:attr(data-label); display:block; font-size:10px; font-weight:700; letter-spacing:.7px; text-transform:uppercase; color:var(--ink-3); margin-top:6px; }
  .prose td:first-child[data-label]::before { margin-top:0; }
}
