/* ==========================================================================
   EPA — Base resets + type utility classes
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--body-md-size);
  line-height: var(--body-md-lh);
  color: var(--ink);
  background: var(--canvas-light);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ---- Display ---- */
.epa-display-xxl { font-family: var(--font-display); font-weight: var(--display-xxl-wt); font-size: var(--display-xxl-size); line-height: var(--display-xxl-lh); letter-spacing: var(--display-xxl-ls); }
.epa-display-xl  { font-family: var(--font-display); font-weight: var(--display-xl-wt);  font-size: var(--display-xl-size);  line-height: var(--display-xl-lh);  letter-spacing: var(--display-xl-ls); }
.epa-display-lg  { font-family: var(--font-display); font-weight: var(--display-lg-wt);  font-size: var(--display-lg-size);  line-height: var(--display-lg-lh);  letter-spacing: var(--display-lg-ls); }
.epa-display-md  { font-family: var(--font-display); font-weight: var(--display-md-wt);  font-size: var(--display-md-size);  line-height: var(--display-md-lh);  letter-spacing: var(--display-md-ls); }

/* ---- Headings ---- */
.epa-heading-lg { font-family: var(--font-display); font-weight: var(--heading-lg-wt); font-size: var(--heading-lg-size); line-height: var(--heading-lg-lh); letter-spacing: var(--heading-lg-ls); }
.epa-heading-md { font-family: var(--font-display); font-weight: var(--heading-md-wt); font-size: var(--heading-md-size); line-height: var(--heading-md-lh); letter-spacing: var(--heading-md-ls); }
.epa-heading-sm { font-family: var(--font-body);    font-weight: var(--heading-sm-wt); font-size: var(--heading-sm-size); line-height: var(--heading-sm-lh); }

/* ---- Body ---- */
.epa-body-lg { font-family: var(--font-body); font-size: var(--body-lg-size); line-height: var(--body-lg-lh); }
.epa-body-md { font-family: var(--font-body); font-size: var(--body-md-size); line-height: var(--body-md-lh); }
.epa-body-sm { font-family: var(--font-body); font-size: var(--body-sm-size); line-height: var(--body-sm-lh); }

/* ---- Labels / eyebrow (uppercase, tracked) ---- */
.epa-label-md { font-family: var(--font-body); font-weight: var(--label-md-wt); font-size: var(--label-md-size); line-height: var(--label-md-lh); letter-spacing: var(--label-md-ls); text-transform: uppercase; }
.epa-label-sm { font-family: var(--font-body); font-weight: var(--label-sm-wt); font-size: var(--label-sm-size); line-height: var(--label-sm-lh); letter-spacing: var(--label-sm-ls); text-transform: uppercase; }

/* ---- Mono (part numbers, specs) ---- */
.epa-mono-md { font-family: var(--font-mono); font-size: var(--mono-md-size); line-height: var(--mono-md-lh); letter-spacing: var(--mono-md-ls); }
.epa-mono-sm { font-family: var(--font-mono); font-size: var(--mono-sm-size); line-height: var(--mono-sm-lh); letter-spacing: var(--mono-sm-ls); }

.epa-caption { font-family: var(--font-body); font-size: var(--caption-size); line-height: var(--caption-lh); color: var(--mute); }
