/* Terms page: Ledger & Ink presentation, scoped to this route. */
body.terms-page {
  --terms-paper: #f5f3ec;
  --terms-card: #fffefa;
  --terms-soft: #eeeee5;
  --terms-ink: #17251f;
  --terms-copy: #43534a;
  --terms-muted: #596a60;
  --terms-rule: #d5d9cf;
  --terms-green: #245946;
  --terms-copper: #8d4a2b;
  margin: 0;
  color: var(--terms-ink);
  background: var(--terms-paper);
  overflow-x: clip;
}
:root[data-theme="dark"] body.terms-page {
  --terms-paper: #111c2c;
  --terms-card: #19283a;
  --terms-soft: #203248;
  --terms-ink: #f1eee5;
  --terms-copy: #d0d9d5;
  --terms-muted: #b5c3bf;
  --terms-rule: #3a4d5d;
  --terms-green: #9ad1b5;
  --terms-copper: #e2a078;
  color-scheme: dark;
}
:root[data-theme="light"] body.terms-page { color-scheme: light; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]):not([data-theme="dark"]) body.terms-page {
    --terms-paper: #111c2c;
    --terms-card: #19283a;
    --terms-soft: #203248;
    --terms-ink: #f1eee5;
    --terms-copy: #d0d9d5;
    --terms-muted: #b5c3bf;
    --terms-rule: #3a4d5d;
    --terms-green: #9ad1b5;
    --terms-copper: #e2a078;
    color-scheme: dark;
  }
}
body.terms-page :focus-visible { outline: 3px solid var(--terms-copper); outline-offset: 3px; }
body.terms-page .utility-bar { color: #e0e7f1; background: #0a1830; border: 0; }
body.terms-page .utility-bar a { color: #fff; text-underline-offset: 3px; }
body.terms-page .site-header { background: color-mix(in srgb,var(--terms-paper) 96%,transparent); }
body.terms-page .site-header .brand-mark { display: none !important; }
body.terms-page .site-header .brand-text { display: block !important; }
body.terms-page .site-header .brand-text .b-name { color: var(--terms-ink) !important; font: 600 30px/1 var(--head); letter-spacing: -.035em; }
body.terms-page .site-header .brand-text .b-name::after { content: "."; color: var(--terms-green); }
body.terms-page .site-header .brand-text .b-sub { display: none; }
body.terms-page .primary-nav { background: #10213f; overflow: visible; }
body.terms-page .nav-inner { display: flex; flex-wrap: wrap; justify-content: center; width: 100%; gap: 0 4px; }
body.terms-page .nav-inner a { color: #fff; white-space: normal; }
body.terms-page main.terms-page-main { color: var(--terms-ink); background: var(--terms-paper); }
body.terms-page .terms-hero {
  padding: clamp(48px,7vw,82px) 0;
  color: #f6f3ec;
  background: #0a1830;
  border-bottom: 4px solid #79c8d0;
}
body.terms-page .terms-hero-inner {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(230px,300px);
  align-items: end;
  gap: clamp(24px,5vw,64px);
  max-width: 1120px;
}
body.terms-page .terms-eyebrow {
  margin: 0 0 14px;
  color: #b9e6e9;
  font: 500 11px/1.5 var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}
body.terms-page .terms-hero h1 {
  max-width: 800px;
  margin: 0;
  color: #fff;
  font: 500 clamp(42px,7vw,68px)/1.05 var(--head);
  letter-spacing: -.04em;
  text-wrap: balance;
}
body.terms-page .terms-hero-meta {
  padding: 18px 20px;
  color: #e0e7e2;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(185,230,233,.32);
  border-top: 3px solid #79c8d0;
}
body.terms-page .terms-date {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  margin: 0 0 7px;
  color: #e0e7e2;
  font: 400 11px/1.65 var(--mono);
}
body.terms-page .terms-date strong { color: #b9e6e9; font-weight: 500; }
body.terms-page .terms-office-call {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 44px;
  margin-top: 13px;
  padding: 9px 11px;
  color: #fff;
  border: 1px solid rgba(255,255,255,.4);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  overflow-wrap: anywhere;
}
body.terms-page .terms-office-call span { color: #b9e6e9; white-space: nowrap; }
body.terms-page .terms-office-call:hover { background: rgba(255,255,255,.08); }
body.terms-page .terms-layout {
  display: grid;
  grid-template-columns: minmax(220px,260px) minmax(0,1fr);
  align-items: start;
  gap: clamp(22px,4vw,44px);
  max-width: 1120px;
  padding-top: clamp(28px,5vw,56px);
  padding-bottom: clamp(56px,8vw,92px);
}
body.terms-page .terms-toc-wrap { min-width: 0; }
body.terms-page .terms-toc {
  position: sticky;
  top: 28px;
  padding: 21px 19px;
  background: var(--terms-card);
  border: 1px solid var(--terms-rule);
  border-top: 3px solid var(--terms-green);
  box-shadow: 0 12px 32px rgba(16,33,63,.06);
}
body.terms-page .terms-toc h2 {
  margin: 3px 0 12px;
  color: var(--terms-ink);
  font: 600 23px/1.25 var(--head);
}
body.terms-page .terms-toc ol {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: terms-toc;
}
body.terms-page .terms-toc li { min-width: 0; margin: 0; counter-increment: terms-toc; }
body.terms-page .terms-toc li a {
  display: grid;
  grid-template-columns: 25px minmax(0,1fr);
  align-items: start;
  min-height: 40px;
  padding: 8px 2px;
  color: var(--terms-copy);
  border-bottom: 1px solid var(--terms-rule);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.45;
  text-decoration: none;
  overflow-wrap: anywhere;
}
body.terms-page .terms-toc li a::before {
  content: counter(terms-toc,decimal-leading-zero);
  padding-top: 2px;
  color: var(--terms-muted);
  font: 400 10px/1.4 var(--mono);
}
body.terms-page .terms-toc li:last-child a { border-bottom: 0; }
body.terms-page .terms-toc li a:hover { color: var(--terms-green); text-decoration: underline; text-underline-offset: 3px; }
body.terms-page .terms-document {
  min-width: 0;
  padding: clamp(22px,4vw,46px);
  color: var(--terms-copy);
  background: var(--terms-card);
  border: 1px solid var(--terms-rule);
  box-shadow: 0 18px 46px rgba(16,33,63,.06);
}
body.terms-page .terms-document > .callout.warn {
  margin: 0 0 29px;
  padding: 17px 19px;
  color: var(--terms-copy);
  background: var(--terms-soft);
  border: 1px solid var(--terms-rule);
  border-left: 4px solid var(--terms-copper);
  font-size: 14px;
  line-height: 1.7;
}
body.terms-page .terms-document > h2 {
  margin: 31px 0 12px;
  padding-top: 22px;
  color: var(--terms-ink);
  border-top: 1px solid var(--terms-rule);
  font: 600 clamp(22px,3vw,27px)/1.25 var(--head);
  scroll-margin-top: 24px;
  overflow-wrap: anywhere;
}
body.terms-page .terms-document > h2:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
body.terms-page .terms-document p {
  margin: 0 0 13px;
  color: var(--terms-copy);
  font-size: 15px;
  line-height: 1.78;
  overflow-wrap: anywhere;
}
body.terms-page .terms-document ul,
body.terms-page .terms-document ol {
  margin: 10px 0 18px;
  padding-left: 23px;
  color: var(--terms-copy);
  font-size: 14px;
}
body.terms-page .terms-document li {
  margin: 0 0 8px;
  padding-left: 3px;
  color: var(--terms-copy);
  line-height: 1.7;
  overflow-wrap: anywhere;
}
body.terms-page .terms-document li::marker { color: var(--terms-copper); }
body.terms-page .terms-document strong { color: var(--terms-ink); font-weight: 700; }
body.terms-page .terms-document a {
  color: var(--terms-green);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--terms-rule);
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}
body.terms-page .terms-document a:hover { text-decoration-color: currentColor; }
body.terms-page footer { color: var(--terms-copy); background: var(--terms-paper); border-top: 1px solid var(--terms-rule); }
body.terms-page footer .foot-inner { color: var(--terms-copy); }
body.terms-page footer .foot-inner a { color: var(--terms-green); text-underline-offset: 3px; }
@media (max-width: 900px) {
  body.terms-page .terms-layout { grid-template-columns: minmax(0,1fr); }
  body.terms-page .terms-toc { position: static; }
  body.terms-page .terms-toc ol { grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 18px; }
}
@media (max-width: 760px) {
  body.terms-page .container { width: min(100% - 28px,680px); }
  body.terms-page .terms-hero-inner { grid-template-columns: minmax(0,1fr); align-items: start; gap: 21px; }
  body.terms-page .terms-hero-meta { max-width: 360px; }
}
@media (max-width: 560px) {
  body.terms-page .container { width: calc(100% - 24px); }
  body.terms-page .utility-inner { align-items: flex-start; gap: 7px; }
  body.terms-page .utility-right { display: flex; flex-wrap: wrap; gap: 4px 10px; min-width: 0; }
  body.terms-page .header-inner { align-items: center; flex-wrap: wrap; gap: 10px; padding-block: 12px; }
  body.terms-page .header-cta { flex-wrap: wrap; gap: 6px; }
  body.terms-page .header-cta .btn { min-height: 44px; padding-inline: 9px; font-size: 12px; }
  body.terms-page .nav-inner { gap: 0 2px; }
  body.terms-page .nav-inner a { padding-inline: 8px; }
  body.terms-page .terms-hero { padding: 43px 0 38px; }
  body.terms-page .terms-hero h1 { font-size: clamp(38px,11vw,52px); }
  body.terms-page .terms-layout { gap: 15px; padding-top: 17px; padding-bottom: 52px; }
  body.terms-page .terms-toc { padding: 19px 16px; }
  body.terms-page .terms-toc ol { grid-template-columns: minmax(0,1fr); }
  body.terms-page .terms-document { padding: 20px 17px; }
  body.terms-page .terms-document > h2 { margin-top: 27px; padding-top: 18px; }
  body.terms-page .terms-document p { font-size: 14px; }
}
@media (max-width: 360px) {
  body.terms-page .container { width: calc(100% - 20px); }
  body.terms-page .header-inner { align-items: flex-start; }
  body.terms-page .header-cta .btn { padding-inline: 7px; font-size: 11px; }
  body.terms-page .utility-right { font-size: 11px; }
  body.terms-page .terms-document { padding-inline: 14px; }
}
@media print {
  body.terms-page { color: #111; background: #fff; }
  body.terms-page .utility-bar,
  body.terms-page .site-header,
  body.terms-page .primary-nav,
  body.terms-page .terms-toc-wrap { display: none; }
  body.terms-page .terms-hero { padding: 12px 0; color: #111; background: #fff; border: 0; }
  body.terms-page .terms-hero h1,
  body.terms-page .terms-hero-meta,
  body.terms-page .terms-date,
  body.terms-page .terms-date strong { color: #111; }
  body.terms-page .terms-hero-meta { padding: 0; border: 0; }
  body.terms-page .terms-office-call { display: none; }
  body.terms-page .terms-layout { display: block; padding: 0; }
  body.terms-page .terms-document { padding: 0; border: 0; box-shadow: none; }
  body.terms-page footer { display: none; }
}
