/* ts-trust.css — Trust Center posture block.
 *
 * Replaces the four "SOC 2 / AES-256 / High Availability / Continuous" badge
 * tiles. Those gave a certification-shaped claim hero-scale priority while the
 * body text three paragraphs down said no attestation is held. This block
 * states status first and in words, so the summary cannot be read as a badge.
 *
 * Self-contained on purpose: trust-center.html does not load
 * sovereignty-base.css, and that sheet is SHARED with cichocki.com.
 * Palette follows the threadsync registry — emerald #10B981, violet banned.
 */

.ts-posture {
  --tsp-emerald: #10b981;
  --tsp-line: rgba(148, 163, 184, 0.16);
  --tsp-ink: #e6edf6;
  --tsp-dim: #93a3b8;
  --tsp-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
              "Liberation Mono", "Courier New", monospace;
  margin: 0 0 3.25rem;
  text-align: left;
}

.ts-posture__eyebrow {
  font-family: var(--tsp-mono);
  font-size: .688rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--tsp-emerald);
  margin: 0 0 .75rem;
}

.ts-posture__head h2 {
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  line-height: 1.2;
  color: var(--tsp-ink);
  margin: 0 0 .6rem;
  text-wrap: balance;
}

.ts-posture__note {
  color: var(--tsp-dim);
  font-size: .938rem;
  line-height: 1.6;
  max-width: 62ch;
  margin: 0 0 1.75rem;
}

/* The table itself. Grid rather than <table> so it can reflow to stacked
   rows on narrow screens without a horizontal scrollbar. */
.ts-posture__grid {
  margin: 0;
  border-top: 1px solid var(--tsp-line);
}

.ts-posture__row {
  display: grid;
  grid-template-columns: minmax(11rem, 15rem) minmax(7rem, 9rem) 1fr;
  gap: 1rem 1.5rem;
  align-items: baseline;
  padding: .95rem 0;
  border-bottom: 1px solid var(--tsp-line);
}

.ts-posture__row dt {
  color: var(--tsp-ink);
  font-weight: 600;
  font-size: .938rem;
  margin: 0;
}

.ts-posture__row dd {
  color: var(--tsp-dim);
  font-size: .906rem;
  line-height: 1.55;
  margin: 0;
}

/* Status chip. Deliberately not a green tick for everything — "not certified"
   must read differently from "in place" at a glance, or the block repeats the
   overclaim it exists to remove. */
.ts-status {
  display: inline-block;
  font-family: var(--tsp-mono);
  font-size: .688rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: .25rem .55rem;
  border-radius: 3px;
  border: 1px solid currentColor;
  white-space: nowrap;
}

.ts-status--yes  { color: var(--tsp-emerald); background: rgba(16, 185, 129, .09); }
.ts-status--no   { color: #cbd5e1; background: rgba(148, 163, 184, .10); }
.ts-status--vary { color: #93a3b8; background: rgba(148, 163, 184, .07); }

.ts-posture__foot {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.25rem;
  align-items: baseline;
  margin: 1.5rem 0 0;
  font-family: var(--tsp-mono);
  font-size: .75rem;
  letter-spacing: .04em;
  color: var(--tsp-dim);
}

.ts-posture__foot a { color: var(--tsp-emerald); text-decoration: none; }
.ts-posture__foot a:hover,
.ts-posture__foot a:focus-visible { text-decoration: underline; }

@media (max-width: 720px) {
  .ts-posture__row {
    grid-template-columns: 1fr;
    gap: .45rem;
    padding: 1.05rem 0;
  }
  .ts-status { align-self: start; }
}
