/* ============================================================
   Lutopie Business Club — Base layer
   Light resets + a few brand primitives. Token-driven only.
   ============================================================ */

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

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

/* ---- Headings: Fraunces, forest, tight ---- */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  color: var(--text-heading);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-tight);
  margin: 0 0 var(--space-4);
  text-wrap: balance;
}
h1 { font-size: var(--text-3xl); line-height: var(--leading-tight); }
h2 { font-size: var(--text-2xl); }
h3 { font-size: var(--text-xl); }

p { margin: 0 0 var(--space-4); text-wrap: pretty; }

a { color: var(--text-heading); text-underline-offset: 3px; }

/* ============================================================
   Brand primitives (utility classes)
   ============================================================ */

/* Eyebrow / kicker — uppercase, tracked, gold or muted */
.lbc-eyebrow {
  font-family: var(--font-body);
  font-size: var(--eyebrow-size);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--text-gold);
}

/* Fine gold filet — the signature divider */
.lbc-filet {
  border: none;
  height: 1px;
  background: var(--hairline);
  opacity: 0.7;
  margin: var(--space-5) 0;
}
.lbc-filet--short { width: 56px; opacity: 1; }

/* Dark signature surface */
.lbc-surface-dark {
  background: var(--surface-dark);
  color: var(--text-on-dark);
}
.lbc-surface-dark h1, .lbc-surface-dark h2, .lbc-surface-dark h3 {
  color: var(--text-on-dark);
}

/* Display utility */
.lbc-display {
  font-family: var(--font-display);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-tight);
}

/* Focus visibility */
:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}
