/* Hallmark · macrostructure: Long Document / Split Studio · tone: clear and considered
 * palette: Cadence Compact 3.0.0 · nav: N9 · footer: Ft1
 * pre-emit critique: P4 H5 E4 S4 R5 V4 · shared site tokens from landing.css */
.subpage main { padding-bottom: var(--space-section); }
.doc-hero { padding-block: var(--space-section) var(--space-2xl); }
.doc-hero .eyebrow { color: var(--color-accent); font-size: var(--text-small); font-weight: 600; }
.doc-hero h1 { font-size: clamp(40px, 5.5vw, 72px); line-height: 1.08; margin-block: var(--space-md) var(--space-lg); }
.doc-meta { color: var(--color-muted); font-size: var(--text-small); }
.doc-intro { color: var(--color-muted); font-size: var(--text-body); line-height: 1.7; margin-top: var(--space-lg); max-width: 65ch; }
.legal-page .doc-hero, .legal-page .doc-body { max-width: 800px; }
.doc-body { min-width: 0; }
.doc-body h2 { font-size: clamp(24px, 3vw, 32px); line-height: 1.25; letter-spacing: -.03em; }
.doc-body h2 .n { display: block; margin-bottom: var(--space-sm); color: var(--color-accent); font-family: var(--font-body); font-size: var(--text-small); letter-spacing: 0; font-variant-numeric: tabular-nums; }
.doc-body h3 { font-size: 20px; margin-top: var(--space-lg); }
.doc-body section { scroll-margin-top: var(--space-xl); margin-top: var(--space-2xl); padding-top: var(--space-2xl); border-top: 1px solid var(--color-rule); }
.doc-body p, .doc-body li { color: var(--color-muted); font-size: 17px; line-height: 1.75; overflow-wrap: anywhere; }
.doc-body section p { margin-top: var(--space-md); }
.doc-body b { color: var(--color-ink); font-weight: 600; }
.doc-body ul { padding-left: var(--space-lg); margin-block: var(--space-md) 0; }
.doc-body li + li { margin-top: var(--space-sm); }
.doc-body li::marker { color: var(--color-accent); }
.doc-body a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 4px; }
.doc-body a:hover { color: var(--color-accent-hover); }
.doc-toc { border-block: 1px solid var(--color-rule); padding-block: var(--space-lg); }
.doc-toc .cap { color: var(--color-ink); font-weight: 600; font-size: 16px; }
.doc-toc ol { list-style: none; padding: 0; margin: var(--space-md) 0 0; columns: 2; column-gap: var(--space-xl); }
.doc-toc li { break-inside: avoid; margin: 0; }
.doc-toc li + li { margin: 0; }
.doc-toc a { display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; white-space: nowrap; text-decoration: none; }
.doc-toc a:hover { text-decoration: underline; }
.doc-note { margin-top: var(--space-xl); padding: var(--space-lg); border: 1px solid var(--color-rule); background: var(--color-input); }
.doc-note p:first-child { color: var(--color-ink); font-weight: 600; margin-bottom: var(--space-sm); }
.contact-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(48px, 7vw, 112px); padding-top: var(--space-section); }
.contact-layout .doc-hero { padding: 0; }
.contact-layout .doc-intro { max-width: 42ch; }
.contact-layout .doc-body section { border: 0; padding: 0; margin: 0; }
.contact-layout .doc-body h2 { font-size: 24px; letter-spacing: -.025em; margin-bottom: var(--space-xl); }
.contact-form .field { margin-top: var(--space-lg); }
.contact-form label { margin-bottom: var(--space-sm); }
.contact-form input, .contact-form textarea { display: block; width: 100%; min-width: 0; border: 1px solid var(--color-rule); border-radius: var(--radius-control); padding: var(--space-md); background: var(--color-input); color: var(--color-ink); font: 16px/1.5 var(--font-body); }
.contact-form input { min-height: 54px; }
.contact-form textarea { resize: vertical; min-height: 180px; }
.contact-form input:hover, .contact-form textarea:hover { border-color: var(--color-muted); }
.contact-form textarea:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 5px; }
.contact-form .cf-turnstile { margin-top: var(--space-lg); min-height: 140px; }
/* Compact widget fits the 280px content width on a 320px viewport. */
.contact-form .form-error { min-height: 2lh; margin-top: var(--space-md); font-size: var(--text-small); color: var(--color-error); visibility: hidden; }
.contact-form .form-error.visible { visibility: visible; }
.contact-form .button { margin-top: var(--space-md); }
.contact-success { padding: var(--space-lg); border: 1px solid var(--color-rule); background: var(--color-input); color: var(--color-ink); font-weight: 600; }
@media (max-width: 768px) {
  .contact-layout { grid-template-columns: minmax(0, 1fr); padding-top: var(--space-2xl); gap: var(--space-2xl); }
  .contact-layout .doc-intro { max-width: 65ch; }
  .doc-toc ol { columns: 1; }
}
@media (max-width: 480px) {
  .doc-hero { padding-top: var(--space-2xl); }
  .doc-body p, .doc-body li { font-size: 16px; }
  .doc-note { padding: var(--space-md); }
  .contact-form .button { width: 100%; }
}
