/* Base — element defaults & shared helpers. */

*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-relaxed);
  color: var(--text-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5 {
  font-family: var(--font-display);
  color: var(--text-strong);
  margin: 0;
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-heading);
  text-wrap: balance;
}

h1 { font-size: var(--fs-h1); line-height: var(--lh-tight); letter-spacing: -0.05em; }

h2 { font-size: var(--fs-h2); line-height: 1.1; letter-spacing: -0.04em; }

h3 { font-size: var(--fs-h3); line-height: var(--lh-snug); letter-spacing: -0.03em; }

h4 { font-size: var(--fs-h4); line-height: var(--lh-snug); letter-spacing: -0.02em; }

p { margin: 0; text-wrap: pretty; }

a { color: var(--text-link); text-decoration: none; }

a:hover { color: var(--color-accent-hover); }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: linear-gradient(180deg, var(--wash-a) 0%, var(--wash-b) 100%);
  background-attachment: fixed;
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16.5px;
  line-height: 1.66;
  -webkit-font-smoothing: antialiased;
}

p { margin: 0 0 16px; text-wrap: pretty; }

strong { font-weight: 700; color: #10233a; }

em { font-style: italic; }

a { color: var(--coa-blue); }

figcaption {
  margin-top: 12px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text-muted);
  padding-left: 16px;
  border-left: 2px solid var(--coa-blue);
}

figcaption b { color: var(--coa-navy); font-weight: 700; letter-spacing: 0.04em; }
