/* ===========================================================================
   Better Earth — Base element styles & shared helpers
   Lightweight resets + a few brand text roles used across cards/kits.
   =========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

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

/* Brand text roles ------------------------------------------------------- */
.el-display {
  font-family: var(--font-display);
  font-weight: var(--fw-display);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--text-primary);
  margin: 0;
  text-wrap: balance;
}
.el-eyebrow {
  font-family: var(--font-sans);
  font-weight: var(--fw-semibold);
  font-size: var(--eyebrow-size);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--text-brand);
  margin: 0;
}
.el-lede {
  font-size: var(--text-md);
  line-height: var(--leading-relaxed);
  color: var(--text-secondary);
  margin: 0;
  text-wrap: pretty;
}
.el-rule {
  width: 56px; height: 2px; border: 0;
  background: var(--accent);
  margin: 0;
}

/* Logotype lockup (CSS wordmark fallback when no SVG logo is placed) ------ */
.el-logotype {
  font-family: var(--font-display);
  font-weight: var(--fw-display);
  letter-spacing: var(--tracking-wide);
  line-height: 1;
  color: var(--brand-deep);
}
.el-logotype-sub {
  font-family: var(--font-sans);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-logo);
  text-transform: uppercase;
  color: var(--brand);
}

::selection { background: var(--green-200); color: var(--ink-900); }
