/* ============================================================
   TallySquared site2 page styles.
   Imports brand tokens from the local ./tallysquared.css copy
   (NOT ../brand/tallysquared.css) on purpose:
   the zip build walks site2/ only; tallysquared.css is a local copy
   whose source of truth is brand/ (recopy here if tokens change) so
   the import below resolves identically whether this page is served
   straight out of site2/ during development or out of the flattened
   web2.zip root after harness/build_webzip.js runs (walks site2/ into
   one flat archive, so the sibling relationship this @import depends
   on survives the flatten unchanged).
   Mobile-first: base rules below target 375px; enhancements sit
   behind min-width media queries. No horizontal scroll at any width.
   ============================================================ */
@import url("./tallysquared.css");

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  max-width: 100vw;
  overflow-x: hidden;
}
img, svg { max-width: 100%; display: block; }
a { color: var(--ts-accent); }
a:hover { color: var(--ts-accent-deep); }

.ts-container {
  width: 100%;
  max-width: 72rem;
  margin: 0 auto;
  padding: 0 var(--ts-space-4);
}

/* ---- Buttons ---- */
.ts-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ts-space-2);
  min-height: var(--ts-tap-min);
  padding: var(--ts-space-3) var(--ts-space-5);
  border-radius: var(--ts-radius);
  font-family: var(--ts-font-sans);
  font-size: var(--ts-body-size);
  font-weight: 700;
  text-decoration: none;
  border: 2px solid transparent;
  touch-action: manipulation;
  cursor: pointer;
  transition: background-color 200ms ease, color 200ms ease, border-color 200ms ease;
}
.ts-btn-primary {
  background: var(--ts-accent);
  color: var(--ts-paper-raised);
}
.ts-btn-primary:hover { background: var(--ts-accent-deep); color: var(--ts-paper-raised); }
.ts-btn-secondary {
  background: transparent;
  color: var(--ts-ink);
  border-color: var(--ts-line-strong);
}
.ts-btn-secondary:hover { border-color: var(--ts-ink); color: var(--ts-ink); }
.ts-btn-on-ink.ts-btn-secondary {
  color: var(--ts-paper);
  border-color: var(--ts-accent-bright);
}
.ts-btn-on-ink.ts-btn-secondary:hover { background: rgba(255,160,92,0.12); }

/* ---- Header / nav ---- */
.ts-site-header {
  background: var(--ts-ink);
  position: sticky;
  top: 0;
  z-index: 40;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.ts-site-header .ts-container {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 64px;
  gap: var(--ts-space-4);
}

/* Mobile nav: CSS-only checkbox toggle (no JS on this static site).
   Copy this whole header block into Tasks 3-6's pages verbatim. */
.ts-menu-toggle-input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.ts-menu-toggle-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--ts-tap-min);
  height: var(--ts-tap-min);
  color: var(--ts-paper);
  cursor: pointer;
  touch-action: manipulation;
}
.ts-nav-links {
  display: none;
  position: absolute;
  top: 64px;
  left: 0;
  right: 0;
  flex-direction: column;
  gap: var(--ts-space-1);
  background: var(--ts-ink);
  border-top: 1px solid rgba(255,255,255,0.08);
  padding: var(--ts-space-3) var(--ts-space-4) var(--ts-space-5);
}
.ts-menu-toggle-input:checked ~ .ts-nav-links { display: flex; }
.ts-nav-links a {
  color: var(--ts-paper);
  text-decoration: none;
  font-size: var(--ts-body-size);
  min-height: var(--ts-tap-min);
  display: flex;
  align-items: center;
  padding: 0 var(--ts-space-2);
}
.ts-nav-links a:hover { color: var(--ts-accent-bright); }
.ts-nav-links .ts-btn { margin-top: var(--ts-space-2); }

/* ---- Hero ---- */
.ts-hero {
  background: var(--ts-ink);
  color: var(--ts-paper);
  padding: var(--ts-space-8) 0 var(--ts-space-7);
}
.ts-hero__eyebrow {
  font-size: var(--ts-meta-size);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ts-accent-bright);
  margin: 0 0 var(--ts-space-4);
}
.ts-hero h1 {
  font-size: var(--ts-h1-size);
  line-height: var(--ts-heading-line-height);
  margin: 0 0 var(--ts-space-4);
  max-width: 20ch;
}
.ts-hero__sub {
  font-size: var(--ts-lead-size);
  line-height: var(--ts-line-height);
  color: var(--ts-paper);
  opacity: 0.92;
  max-width: var(--ts-measure);
  margin: 0 0 var(--ts-space-6);
}
.ts-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ts-space-3);
}

/* ---- Section scaffolding ---- */
.ts-section {
  padding: var(--ts-space-7) 0;
}
.ts-section-alt { background: var(--ts-paper-raised); }
.ts-section h2 {
  font-size: var(--ts-h2-size);
  line-height: var(--ts-heading-line-height);
  margin: 0 0 var(--ts-space-3);
}
.ts-section-lead {
  font-size: var(--ts-lead-size);
  color: var(--ts-ink-soft);
  max-width: var(--ts-measure);
  margin: 0 0 var(--ts-space-6);
}

/* ---- How it works ---- */
.ts-steps {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ts-space-5);
}
.ts-step {
  display: flex;
  gap: var(--ts-space-4);
  align-items: flex-start;
}
.ts-step__num {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: var(--ts-radius);
  background: var(--ts-accent-tint);
  color: var(--ts-accent-deep);
  font-family: var(--ts-font-mono);
  font-weight: 700;
  font-size: var(--ts-h3-size);
  display: flex;
  align-items: center;
  justify-content: center;
}
.ts-step h3 {
  font-size: var(--ts-h3-size);
  margin: 0 0 var(--ts-space-1);
  line-height: var(--ts-heading-line-height);
}
.ts-step p {
  margin: 0;
  color: var(--ts-ink-soft);
}

/* ---- Error catalog (claim families) ---- */
.ts-families {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ts-space-5);
}
.ts-family {
  background: var(--ts-paper-raised);
  border: 1px solid var(--ts-line);
  border-radius: var(--ts-radius);
  padding: var(--ts-space-5);
  box-shadow: var(--ts-shadow-raised);
}
.ts-family h3 {
  font-size: var(--ts-h3-size);
  margin: 0 0 var(--ts-space-2);
  line-height: var(--ts-heading-line-height);
}
.ts-family p {
  margin: 0 0 var(--ts-space-4);
  color: var(--ts-ink-soft);
}
.ts-proof {
  border-left: 3px solid var(--ts-square);
  padding: var(--ts-space-3) var(--ts-space-4);
  background: var(--ts-paper);
  border-radius: 0 var(--ts-radius) var(--ts-radius) 0;
}
.ts-proof__label {
  display: block;
  font-size: var(--ts-meta-size);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ts-square);
  margin-bottom: var(--ts-space-2);
}
.ts-proof p {
  margin: 0;
  color: var(--ts-ink);
  font-size: var(--ts-body-size);
}
.ts-proof .ts-figures { font-weight: 700; }

/* ---- Vertical ladder ---- */
.ts-verticals {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ts-space-5);
}
.ts-vertical-card {
  border: 1px solid var(--ts-line);
  border-radius: var(--ts-radius);
  padding: var(--ts-space-5);
  background: var(--ts-paper-raised);
  display: flex;
  flex-direction: column;
  gap: var(--ts-space-3);
}
.ts-vertical-card--flagship {
  border-color: var(--ts-accent);
  border-width: 2px;
}
.ts-vertical-card--soon {
  background: var(--ts-paper);
  color: var(--ts-ink-soft);
}
.ts-vertical-card h3 {
  font-size: var(--ts-h3-size);
  margin: 0;
  line-height: var(--ts-heading-line-height);
}
.ts-badge {
  display: inline-block;
  font-size: var(--ts-meta-size);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: var(--ts-space-1) var(--ts-space-2);
  border-radius: var(--ts-radius);
  width: fit-content;
}
.ts-badge-flagship { background: var(--ts-accent-tint); color: var(--ts-accent-deep); }
.ts-badge-soon { background: var(--ts-line); color: var(--ts-ink-soft); }

/* ---- Evidence teaser ---- */
.ts-evidence-teaser {
  background: var(--ts-accent-tint);
  border-radius: var(--ts-radius);
  padding: var(--ts-space-6);
  display: flex;
  flex-direction: column;
  gap: var(--ts-space-4);
}
.ts-evidence-teaser h2 { margin: 0; }
.ts-evidence-teaser p { margin: 0; color: var(--ts-ink); max-width: var(--ts-measure); }

/* ---- Final CTA ---- */
.ts-cta-section {
  background: var(--ts-ink);
  color: var(--ts-paper);
  text-align: center;
  padding: var(--ts-space-8) 0;
}
.ts-cta-section h2 { color: var(--ts-paper); }
.ts-cta-section p {
  color: var(--ts-paper);
  opacity: 0.92;
  max-width: var(--ts-measure);
  margin: 0 auto var(--ts-space-6);
}
.ts-cta-section .ts-hero__actions { justify-content: center; }

/* ---- Footer ---- */
.ts-site-footer {
  background: var(--ts-ink);
  color: var(--ts-paper);
  padding: var(--ts-space-6) 0;
  font-size: var(--ts-meta-size);
}
.ts-site-footer .ts-container {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ts-space-4);
  justify-content: space-between;
  align-items: center;
}
.ts-site-footer a { color: var(--ts-paper); opacity: 0.85; }
.ts-site-footer a:hover { opacity: 1; color: var(--ts-accent-bright); }
.ts-footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ts-space-2);
  list-style: none;
  margin: 0;
  padding: 0;
}
.ts-footer-links a {
  display: inline-flex;
  align-items: center;
  min-height: var(--ts-tap-min);
  padding: var(--ts-space-2);
}

/* ---- Evidence page: standing line ---- */
.ts-standing-line {
  font-weight: 700;
  border-left: 3px solid var(--ts-accent);
  padding: var(--ts-space-3) var(--ts-space-4);
  background: var(--ts-paper-raised);
  border-radius: 0 var(--ts-radius) var(--ts-radius) 0;
  max-width: var(--ts-measure);
  margin: var(--ts-space-5) 0 0;
}

/* ---- Evidence page: exhibit specimens ---- */
.ts-exhibit-lead {
  background: var(--ts-paper-raised);
  border: 2px solid var(--ts-square);
  border-radius: var(--ts-radius);
  padding: var(--ts-space-6);
  box-shadow: var(--ts-shadow-raised);
  margin-bottom: var(--ts-space-6);
  display: flex;
  flex-direction: column;
  gap: var(--ts-space-3);
}
.ts-exhibit-lead h3 {
  margin: 0;
  font-size: var(--ts-h2-size);
  line-height: var(--ts-heading-line-height);
}
.ts-exhibits {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ts-space-5);
}
.ts-exhibit {
  background: var(--ts-paper-raised);
  border: 1px solid var(--ts-line);
  border-radius: var(--ts-radius);
  padding: var(--ts-space-5);
  box-shadow: var(--ts-shadow-raised);
  display: flex;
  flex-direction: column;
  gap: var(--ts-space-3);
}
.ts-exhibit h3 {
  margin: 0;
  font-size: var(--ts-h3-size);
  line-height: var(--ts-heading-line-height);
}
.ts-exhibit__tag,
.ts-exhibit-lead .ts-exhibit__tag {
  display: block;
  font-family: var(--ts-font-mono);
  font-size: var(--ts-meta-size);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ts-ink-soft);
}
.ts-exhibit-lead .ts-exhibit__tag { color: var(--ts-square); }
.ts-exhibit__block h4 {
  margin: 0 0 var(--ts-space-2);
  font-size: var(--ts-meta-size);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ts-accent);
}
.ts-exhibit__block p {
  margin: 0;
  color: var(--ts-ink-soft);
}
.ts-exhibit__block--paper {
  border-left: 3px solid var(--ts-line-strong);
  padding: var(--ts-space-3) var(--ts-space-4);
  background: var(--ts-paper);
  border-radius: 0 var(--ts-radius) var(--ts-radius) 0;
}
.ts-exhibit__block--paper p { color: var(--ts-ink); }
.ts-exhibit__block--paper .ts-figures { font-weight: 700; }
.ts-exhibit__family {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  min-height: var(--ts-tap-min);
  font-size: var(--ts-meta-size);
  font-weight: 700;
  padding: var(--ts-space-2) var(--ts-space-3);
  border-radius: var(--ts-radius);
  background: var(--ts-accent-tint);
  color: var(--ts-accent-deep);
  text-decoration: none;
}
.ts-exhibit__family:hover { background: var(--ts-line); color: var(--ts-ink); }

/* ---- Evidence page: worked-example download ---- */
.ts-download-block {
  background: var(--ts-paper-raised);
  border: 1px solid var(--ts-line);
  border-radius: var(--ts-radius);
  padding: var(--ts-space-6);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--ts-space-3);
  max-width: var(--ts-measure);
}
.ts-download-block h3 { margin: 0; font-size: var(--ts-h3-size); }
.ts-download-block > p { margin: 0; color: var(--ts-ink-soft); }
.ts-btn-disabled {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--ts-tap-min);
  padding: var(--ts-space-3) var(--ts-space-5);
  border-radius: var(--ts-radius);
  font-family: var(--ts-font-sans);
  font-size: var(--ts-body-size);
  font-weight: 700;
  border: 2px solid var(--ts-line-strong);
  color: var(--ts-ink-soft);
  background: var(--ts-paper);
  opacity: 0.5;
  cursor: not-allowed;
  width: fit-content;
}
.ts-download-note { margin: 0; font-size: var(--ts-meta-size); color: var(--ts-ink-soft); }

/* ---- Sample page: honesty banner reuses .ts-standing-line (evidence.html) ---- */
.ts-honesty-band { background: var(--ts-paper); padding: var(--ts-space-5) 0 0; }
.ts-honesty-band .ts-standing-line { margin-top: 0; }

/* ---- Sample page: the paper (document thumbnail grid) ---- */
.ts-paper-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ts-space-4);
  margin-top: var(--ts-space-6);
}
.ts-paper-card {
  background: var(--ts-paper-raised);
  border: 1px solid var(--ts-line);
  border-radius: var(--ts-radius);
  padding: var(--ts-space-3);
  box-shadow: var(--ts-shadow-raised);
}
.ts-paper-card img {
  border: 1px solid var(--ts-line);
  border-radius: var(--ts-radius);
  width: 100%;
}
.ts-paper-card__kind {
  font-family: var(--ts-font-mono);
  font-size: var(--ts-meta-size);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ts-ink-soft);
  margin: var(--ts-space-2) 0 var(--ts-space-1);
}
.ts-paper-card--ticket .ts-paper-card__kind { color: var(--ts-square); }
.ts-paper-card__name {
  font-family: var(--ts-font-mono);
  font-size: 0.8125rem;
  color: var(--ts-ink);
  word-break: break-all;
}

/* ---- Sample page: month-at-a-glance dark band ---- */
.ts-sum-section {
  background: var(--ts-ink);
  color: var(--ts-paper);
  padding: var(--ts-space-7) 0;
}
.ts-sum-section h2 { color: var(--ts-paper); }
.ts-sum-section .ts-section-lead { color: rgba(247,244,238,0.78); }
.ts-sum-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ts-space-4);
  margin-top: var(--ts-space-6);
}
.ts-sum-card {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: var(--ts-radius);
  padding: var(--ts-space-5);
}
.ts-sum-card--hot { border-color: var(--ts-accent-bright); }
.ts-sum-label {
  font-family: var(--ts-font-mono);
  font-size: var(--ts-meta-size);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(247,244,238,0.6);
  margin-bottom: var(--ts-space-2);
}
.ts-sum-num {
  font-family: var(--ts-font-mono);
  font-size: clamp(1.8rem, 1.4rem + 2vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ts-paper);
  font-variant-numeric: tabular-nums;
}
.ts-sum-card--hot .ts-sum-num { color: var(--ts-accent-bright); }
.ts-sum-note { font-size: 0.9375rem; color: rgba(247,244,238,0.72); margin-top: var(--ts-space-3); }

/* ---- Sample page: paperwork check + billed-twice flag ---- */
.ts-check-block {
  margin-top: var(--ts-space-4);
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: var(--ts-radius);
  padding: var(--ts-space-5);
}
.ts-check-block__title {
  font-weight: 700;
  font-size: var(--ts-h3-size);
  margin: 0 0 var(--ts-space-2);
  color: var(--ts-paper);
}
.ts-check-block p { color: rgba(247,244,238,0.85); margin: 0; }
.ts-check-flag {
  margin-top: var(--ts-space-4);
  background: rgba(255,160,92,0.08);
  border: 1px solid rgba(255,160,92,0.55);
  border-radius: var(--ts-radius);
  padding: var(--ts-space-4) var(--ts-space-5);
}
.ts-badge {
  display: inline-block;
  font-size: var(--ts-meta-size);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: var(--ts-space-1) var(--ts-space-2);
  border-radius: var(--ts-radius);
  width: fit-content;
}
.ts-badge-flag {
  background: rgba(255,160,92,0.16);
  color: var(--ts-accent-bright);
  border: 1px solid rgba(255,160,92,0.5);
}
.ts-badge-confirmed {
  background: rgba(30,107,69,0.14);
  color: var(--ts-square);
}
.ts-check-flag__name {
  font-weight: 700;
  font-size: var(--ts-h3-size);
  color: var(--ts-paper);
  margin: var(--ts-space-2) 0 var(--ts-space-1);
}
.ts-check-flag__meta {
  font-family: var(--ts-font-mono);
  font-size: var(--ts-meta-size);
  color: rgba(247,244,238,0.6);
  display: flex;
  flex-wrap: wrap;
  gap: var(--ts-space-1) var(--ts-space-4);
  padding-bottom: var(--ts-space-3);
  border-bottom: 1px dashed rgba(255,255,255,0.18);
  margin-bottom: var(--ts-space-3);
}
.ts-check-flag p { color: var(--ts-paper); margin: 0 0 var(--ts-space-2); }
.ts-check-flag__note { font-size: 0.875rem; color: rgba(247,244,238,0.7) !important; margin: 0; }

/* ---- Sample page: findings ---- */
.ts-find-list {
  margin-top: var(--ts-space-6);
  display: flex;
  flex-direction: column;
  gap: var(--ts-space-4);
}
.ts-find-card {
  background: var(--ts-paper-raised);
  border: 1px solid var(--ts-line);
  border-radius: var(--ts-radius);
  padding: var(--ts-space-5);
  box-shadow: var(--ts-shadow-raised);
}
.ts-find-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--ts-space-4);
  flex-wrap: wrap;
  margin-bottom: var(--ts-space-1);
}
.ts-find-name {
  font-weight: 700;
  font-size: var(--ts-h3-size);
  line-height: var(--ts-heading-line-height);
}
.ts-find-amt {
  font-family: var(--ts-font-mono);
  font-size: 1.375rem;
  font-weight: 700;
  color: var(--ts-flag);
  white-space: nowrap;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.ts-find-amt small {
  display: block;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ts-ink-soft);
}
.ts-find-meta {
  font-family: var(--ts-font-mono);
  font-size: var(--ts-meta-size);
  color: var(--ts-ink-soft);
  display: flex;
  flex-wrap: wrap;
  gap: var(--ts-space-1) var(--ts-space-4);
  padding-bottom: var(--ts-space-3);
  border-bottom: 1px solid var(--ts-line);
  margin-bottom: var(--ts-space-3);
}
.ts-find-expl-label {
  font-size: var(--ts-meta-size);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ts-accent);
  margin-bottom: var(--ts-space-2);
}
.ts-find-expl { margin: 0; color: var(--ts-ink-soft); font-size: 0.9375rem; }

/* ---- Sample page: confirmed-total tape ---- */
.ts-tape {
  margin-top: var(--ts-space-6);
  background: var(--ts-ink);
  color: var(--ts-paper);
  border-radius: var(--ts-radius);
  padding: var(--ts-space-5) var(--ts-space-6);
  max-width: var(--ts-measure);
}
.ts-tape__title {
  font-weight: 700;
  font-family: var(--ts-font-mono);
  font-size: var(--ts-meta-size);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(247,244,238,0.7);
  margin-bottom: var(--ts-space-3);
}
.ts-tape__row {
  display: flex;
  justify-content: space-between;
  gap: var(--ts-space-3);
  padding: var(--ts-space-2) 0;
  border-bottom: 1px dashed rgba(255,255,255,0.18);
  font-family: var(--ts-font-mono);
  font-size: 0.9375rem;
}
.ts-tape__total {
  display: flex;
  justify-content: space-between;
  gap: var(--ts-space-3);
  padding-top: var(--ts-space-3);
  font-family: var(--ts-font-mono);
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--ts-accent-bright);
}

/* ---- Pricing page: plan cards ---- */
.ts-pricing-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ts-space-5);
  margin-top: var(--ts-space-6);
}
.ts-price-card {
  background: var(--ts-paper-raised);
  border: 1px solid var(--ts-line);
  border-radius: var(--ts-radius);
  padding: var(--ts-space-5);
  display: flex;
  flex-direction: column;
  box-shadow: var(--ts-shadow-raised);
}
.ts-price-card--featured { border-color: var(--ts-accent); border-width: 2px; }
.ts-price-badge {
  display: inline-block;
  font-size: var(--ts-meta-size);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: var(--ts-accent-tint);
  color: var(--ts-accent-deep);
  padding: var(--ts-space-1) var(--ts-space-2);
  border-radius: var(--ts-radius);
  width: fit-content;
  margin-bottom: var(--ts-space-2);
}
.ts-price-name { font-size: var(--ts-h3-size); font-weight: 700; margin: 0 0 var(--ts-space-1); }
.ts-price-amount {
  font-family: var(--ts-font-mono);
  font-size: clamp(1.75rem, 1.4rem + 1.5vw, 2.25rem);
  font-weight: 700;
  color: var(--ts-ink);
  font-variant-numeric: tabular-nums;
}
.ts-price-amount span { font-size: 0.9375rem; font-weight: 500; color: var(--ts-ink-soft); }
.ts-price-tags { display: flex; flex-wrap: wrap; gap: var(--ts-space-2); margin: var(--ts-space-3) 0; }
.ts-price-tag {
  font-size: var(--ts-meta-size);
  font-weight: 600;
  background: var(--ts-paper);
  border: 1px solid var(--ts-line);
  border-radius: var(--ts-radius);
  padding: var(--ts-space-1) var(--ts-space-2);
  color: var(--ts-ink-soft);
}
.ts-price-desc { color: var(--ts-ink-soft); margin: 0 0 var(--ts-space-4); font-size: 0.9375rem; }
.ts-price-features {
  display: flex;
  flex-direction: column;
  gap: var(--ts-space-2);
  margin: 0 0 var(--ts-space-5);
  padding: 0;
  list-style: none;
  flex: 1;
}
.ts-price-feature {
  display: flex;
  align-items: flex-start;
  gap: var(--ts-space-2);
  font-size: 0.9375rem;
  color: var(--ts-ink);
}
.ts-price-feature svg {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin-top: 4px;
  stroke: var(--ts-square);
  stroke-width: 2;
  fill: none;
}
.ts-price-cta { margin-top: auto; display: flex; flex-direction: column; align-items: center; }
.ts-price-fine { font-size: var(--ts-meta-size); color: var(--ts-ink-soft); margin: var(--ts-space-2) 0 0; text-align: center; }

/* ---- Pricing page: comparison table ---- */
.ts-compare { margin-top: var(--ts-space-8); }
.ts-compare h3 { font-size: var(--ts-h3-size); margin: 0 0 var(--ts-space-1); }
.ts-compare__sub { color: var(--ts-ink-soft); margin: 0 0 var(--ts-space-5); }
.ts-table-wrap { overflow-x: auto; border: 1px solid var(--ts-line); border-radius: var(--ts-radius); }
.ts-compare table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 0.875rem; }
.ts-compare th, .ts-compare td { padding: var(--ts-space-3) var(--ts-space-4); text-align: left; border-bottom: 1px solid var(--ts-line); }
.ts-compare thead th {
  font-family: var(--ts-font-mono);
  font-size: var(--ts-meta-size);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: var(--ts-paper);
}
.ts-compare th.hl, .ts-compare td.hl { background: var(--ts-accent-tint); }
.ts-compare tr.ts-compare__group td {
  font-weight: 700;
  background: var(--ts-paper);
  color: var(--ts-ink-soft);
  font-size: var(--ts-meta-size);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.ts-compare td.yes { color: var(--ts-square); font-weight: 700; text-align: center; }
.ts-compare td.no { color: var(--ts-ink-soft); text-align: center; }
.ts-compare td.mono-val { font-family: var(--ts-font-mono); text-align: center; }

/* ---- FAQ page ---- */
.ts-faq-list {
  max-width: var(--ts-measure);
  margin: var(--ts-space-6) 0 0;
  display: flex;
  flex-direction: column;
}
.ts-faq-item { border-top: 1px solid var(--ts-line); padding: var(--ts-space-5) 0; }
.ts-faq-item:last-child { border-bottom: 1px solid var(--ts-line); }
.ts-faq-q {
  font-weight: 700;
  font-size: var(--ts-h3-size);
  line-height: var(--ts-heading-line-height);
  margin: 0 0 var(--ts-space-2);
}
.ts-faq-a { color: var(--ts-ink-soft); margin: 0; }
.ts-faq-a a { color: var(--ts-ink); font-weight: 600; }

/* ---- Privacy / prose pages ---- */
.ts-prose { max-width: var(--ts-measure); }
.ts-prose h1 {
  font-size: var(--ts-h1-size);
  line-height: var(--ts-heading-line-height);
  margin: 0 0 var(--ts-space-2);
}
.ts-prose__meta { font-size: var(--ts-meta-size); color: var(--ts-ink-soft); margin: 0 0 var(--ts-space-6); }
.ts-prose h2 {
  font-size: var(--ts-h3-size);
  line-height: var(--ts-heading-line-height);
  margin: var(--ts-space-6) 0 var(--ts-space-2);
}
.ts-prose p { margin: 0 0 var(--ts-space-3); color: var(--ts-ink-soft); }
.ts-prose ul { margin: var(--ts-space-2) 0 var(--ts-space-3) var(--ts-space-5); color: var(--ts-ink-soft); padding: 0; }
.ts-prose li { margin-bottom: var(--ts-space-1); }
.ts-prose a { color: var(--ts-accent); font-weight: 600; }

/* ---- Desktop enhancements ---- */
@media (min-width: 640px) {
  .ts-verticals { grid-template-columns: repeat(2, 1fr); }
  .ts-paper-grid { grid-template-columns: repeat(2, 1fr); }
  .ts-sum-grid { grid-template-columns: repeat(2, 1fr); }
  .ts-pricing-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 768px) {
  .ts-menu-toggle-btn { display: none; }
  .ts-nav-links {
    display: flex !important;
    position: static;
    flex-direction: row;
    align-items: center;
    gap: var(--ts-space-2);
    background: none;
    border: 0;
    padding: 0;
  }
  .ts-nav-links a:not(.ts-btn) { min-height: auto; padding: var(--ts-space-2) var(--ts-space-3); }
  .ts-nav-links .ts-btn { margin-top: 0; }
  .ts-steps { grid-template-columns: repeat(2, 1fr); }
  .ts-families { grid-template-columns: repeat(2, 1fr); }
  .ts-exhibits { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 960px) {
  .ts-steps { grid-template-columns: repeat(4, 1fr); }
  .ts-verticals { grid-template-columns: repeat(3, 1fr); }
  .ts-evidence-teaser { flex-direction: row; align-items: center; justify-content: space-between; }
  .ts-evidence-teaser > div { flex: 1; }
  .ts-paper-grid { grid-template-columns: repeat(5, 1fr); }
  .ts-pricing-grid { grid-template-columns: repeat(4, 1fr); }
}
