/* OWN Partners — Base element styling & helpers
 * Lightweight resets and a few opt-in utility/typography classes.
 */

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

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

/* ---- Typographic primitives ---- */
.own-eyebrow {
  font-size: var(--text-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--text-brand);
}

.own-display {
  font-family: var(--font-display);
  font-weight: var(--display-weight);
  font-size: var(--text-5xl);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--text-primary);
  margin: 0;
}

.own-heading {
  font-weight: var(--heading-weight);
  font-size: var(--text-2xl);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-tight);
  margin: 0;
}

.own-body {
  font-size: var(--text-base);
  line-height: var(--leading-relaxed);
  color: var(--text-secondary);
  text-wrap: pretty;
}

.own-lede {
  font-size: var(--text-xl);
  font-weight: var(--fw-light);
  line-height: var(--leading-normal);
  color: var(--text-secondary);
  text-wrap: pretty;
}

/* ---- Brand quote (Munger-style maxims appear throughout OWN material) ---- */
.own-maxim {
  font-weight: var(--fw-light);
  font-size: var(--text-3xl);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-tight);
  color: var(--text-primary);
  text-wrap: balance;
}

/* ---- Tabular figures for fund data ---- */
.own-tnum {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* ---- Interactive states for components (inline styles can't do :hover) ---- */
.own-btn[data-variant="primary"]:not(:disabled):hover { background: var(--brand-hover) !important; border-color: var(--brand-hover) !important; }
.own-btn[data-variant="primary"]:not(:disabled):active { background: var(--brand-active) !important; border-color: var(--brand-active) !important; transform: translateY(0.5px); }
.own-btn[data-variant="secondary"]:not(:disabled):hover { border-color: var(--border-strong) !important; background: var(--steel-50) !important; }
.own-btn[data-variant="secondary"]:not(:disabled):active { transform: translateY(0.5px); }
.own-btn[data-variant="ghost"]:not(:disabled):hover { background: var(--steel-50) !important; }
.own-btn[data-variant="inverse"]:not(:disabled):hover { background: var(--steel-100) !important; border-color: var(--steel-100) !important; }
.own-btn[data-variant="inverse"]:not(:disabled):active { transform: translateY(0.5px); }

.own-iconbtn:not(:disabled):hover { background: var(--steel-50) !important; color: var(--text-primary) !important; }
.own-iconbtn:not(:disabled):active { transform: translateY(0.5px); }

.own-link { color: var(--text-brand); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color var(--dur-base) var(--ease-out); }
.own-link:hover { border-bottom-color: currentColor; }

.own-doclink:hover { color: var(--text-brand) !important; }
.own-doclink:hover .own-doclink__label { text-decoration: underline; text-underline-offset: 3px; }

.own-card--interactive:hover { box-shadow: var(--shadow-md) !important; transform: translateY(-2px); }

.own-input:focus { border-color: var(--border-strong) !important; box-shadow: var(--shadow-focus) !important; outline: none; }

/* ---- Focus ---- */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: none;
  box-shadow: var(--shadow-focus);
  border-radius: var(--radius-xs);
}
