/* ============================================================
   B&B Pilot — Base resets & document defaults
   Lightweight: tokens do the heavy lifting; components are React.
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body {
  margin: 0;
  font-family: var(--body-font);
  font-size: var(--body-size);
  line-height: var(--body-leading);
  color: var(--text-body);
  background: var(--bg-app);
  font-feature-settings: "ss01" on, "cv01" on;
}

h1, h2, h3, h4, h5 {
  font-family: var(--heading-font);
  color: var(--text-strong);
  font-weight: var(--heading-weight);
  letter-spacing: var(--tracking-snug);
  line-height: var(--leading-snug);
  margin: 0;
}

p { margin: 0; }

a {
  color: var(--text-link);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1.5px;
  transition: var(--transition-color);
}
a:hover { color: var(--primary-press); }

/* tabular figures everywhere numbers matter */
.tnum { font-variant-numeric: tabular-nums; }

/* numeric / price display */
.numeric {
  font-family: var(--numeric-font);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

/* eyebrow / overline label */
.eyebrow {
  font-family: var(--label-font);
  font-size: var(--text-xs);
  font-weight: var(--weight-bold);
  letter-spacing: var(--eyebrow-tracking);
  text-transform: uppercase;
  color: var(--text-muted);
}

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

:focus-visible {
  outline: none;
  box-shadow: var(--shadow-focus);
  border-radius: var(--radius-sm);
}

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