/* Text pages: legal, help, blog. Built on site.css tokens. */
.page { padding-top: 40px; }
.page .prose h1 { font-size: clamp(2rem, 4.2vw, 2.9rem); line-height: 1.08; margin: 0 0 18px; max-width: 22ch; }
.page .prose a { color: var(--sky); text-underline-offset: 3px; }
.page .prose strong { color: var(--text); }
.page .prose hr { border: 0; border-top: 1px solid var(--line); margin: 40px 0; }
.page .prose code { background: var(--panel); padding: 1px 6px; border-radius: 6px; font-size: .92em; }
.page .prose blockquote { margin: 0 0 16px; padding: 12px 16px; border-left: 3px solid var(--amber); background: var(--panel); border-radius: 0 var(--r-sm) var(--r-sm) 0; }
.page .prose h2, .page .prose h3 { scroll-margin-top: 90px; }
.table-scroll { overflow-x: auto; margin: 0 0 20px; border: 1px solid var(--line); border-radius: var(--r-sm); }
.page .prose table { border-collapse: collapse; width: 100%; min-width: 520px; font-size: .95rem; }
.page .prose th, .page .prose td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid var(--line); color: #C9D5EA; }
.page .prose th { color: var(--text); background: var(--deep); font-weight: 600; }
.page .prose tr:last-child td { border-bottom: 0; }
.page-meta { color: var(--muted); font-size: .92rem; margin: -6px 0 24px; }

/* blog */
.post-list { list-style: none; padding: 0; margin: 24px 0 0; display: grid; gap: 14px; max-width: 48rem; }
.post-list a { display: block; padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--panel); color: var(--text); text-decoration: none; }
.post-list a:hover, .post-list a:focus-visible { border-color: var(--line-hi); }
.post-list strong { display: block; font-family: var(--display, inherit); font-size: 1.15rem; margin-bottom: 4px; }
.post-list span { color: var(--muted); font-size: .95rem; }
.post-cta { margin-top: 40px; padding: 22px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--deep); }

/* contact form */
.contact-form { display: grid; gap: 14px; max-width: 36rem; margin: 8px 0 32px; }
.contact-form label { display: grid; gap: 6px; font-weight: 600; color: var(--text); }
.contact-form input, .contact-form select, .contact-form textarea {
  font: inherit; font-size: 16px; color: var(--text); background: var(--panel);
  border: 1px solid var(--line-hi); border-radius: var(--r-sm); padding: 12px 14px; }
.contact-form textarea { min-height: 150px; resize: vertical; }
.contact-form :focus-visible { outline: 2px solid var(--amber); outline-offset: 2px; }
.contact-form button { justify-self: start; }
.form-status { min-height: 1.5em; margin: 0; }
.form-status.is-ok { color: #86EFAC; }
.form-status.is-error { color: #FCA5A5; }
.form-note { color: var(--muted); font-size: .92rem; }
.page .prose img.shot { box-sizing: border-box; display: block; width: 100%; height: auto; margin: 8px 0 18px; border-radius: 14px; border: 5px solid #10192C; box-shadow: 0 0 0 1px var(--line-hi), 0 24px 50px -24px rgba(0, 0, 0, .8); }
