/* ============================================================
   E.S. WAGNER — BASE ELEMENT STYLES
   Lightweight, token-driven defaults. Safe to ship to consumers.
   ============================================================ */

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

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

h1, h2, h3, h4, h5 {
  font-family: var(--font-heading);
  color: var(--text-strong);
  line-height: var(--lh-heading);
  letter-spacing: var(--ls-tight);
  margin: 0 0 0.4em;
  font-weight: var(--fw-bold);
  text-transform: uppercase;
}
h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }
h4 { font-size: var(--fs-h4); text-transform: none; }

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

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

/* Eyebrow — the wide-tracked uppercase label used above headings */
.esw-eyebrow {
  font-family: var(--font-heading);
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--brand-primary);
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
}

/* The signature heavy red rule used to underline section headers */
.esw-rule {
  width: 56px;
  height: var(--rule-accent);
  background: var(--brand-primary);
  border: 0;
  margin: var(--space-4) 0;
}

::selection { background: var(--brand-primary); color: #fff; }
