/* ============================================================
   ASPLOT — System Typography (V2 — wg dostarczonej specyfikacji)
   Zero Google Fonts. Zero zewnętrznych zależności.
   ============================================================ */

:root {
  /* Nagłówki: nowoczesne, geometryczne, ostre. */
  --font-heading:
    "Segoe UI Variable Display",
    "SF Pro Display",
    -apple-system,
    "Inter",
    system-ui,
    "Helvetica Neue",
    sans-serif;

  /* Treść / akapity: maksymalna czytelność, Inter-like look. */
  --font-body:
    "Inter",
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI Variable Text",
    "Segoe UI",
    Roboto,
    Ubuntu,
    "Helvetica Neue",
    sans-serif;

  /* UI / menu: czytelne w małych rozmiarach, profesjonalne. */
  --font-ui:
    "Aptos",
    "Segoe UI Variable Text",
    "SF Pro Text",
    -apple-system,
    Roboto,
    sans-serif;

  /* Monospace: techniczny top. */
  --font-mono:
    "Cascadia Code",
    "SF Mono",
    "JetBrains Mono",
    "Fira Code",
    Consolas,
    "Liberation Mono",
    monospace;

  /* ── SKALA ── */
  --text-xs:   0.75rem;
  --text-sm:   0.875rem;
  --text-base: 1rem;
  --text-md:   1.25rem;
  --text-lg:   1.5rem;
  --text-xl:   2rem;
  --text-2xl:  2.5rem;

  /* ── WEIGHTS ── */
  --fw-light:    300;
  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;

  /* ── LINE HEIGHTS ── */
  --lh-tight:   1.15;
  --lh-normal:  1.5;
  --lh-relaxed: 1.65;

  /* ── LETTER SPACING ── */
  --ls-tight:  -0.02em;
  --ls-normal:  0em;
  --ls-wide:    0.025em;
}

/* ── REBOOT ── */
html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--lh-relaxed);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* ── NAGŁÓWKI ── */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  letter-spacing: var(--ls-tight);
  font-weight: var(--fw-bold);
}

h1 { font-size: var(--text-2xl); line-height: var(--lh-tight); }
h2 { font-size: var(--text-xl);  line-height: var(--lh-tight); }
h3 { font-size: var(--text-lg);  line-height: 1.3; }

/* ── AKAPITY ── */
p {
  font-family: var(--font-body);
  line-height: var(--lh-relaxed);
  margin-bottom: 1.25rem;
}

/* ── NAWIGACJA / MENU ── */
nav, .menu, .nav-link, .ui-label, .nb, .mb, .ncta, .mcta {
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-wide);
}

/* ── ELEMENTY TECHNICZNE ── */
code, pre, kbd, samp,
.mono, .font-mono,
.stat-l, .f-copy, .logo-sub,
.eyebrow, .sl-tag, .pf-tag, .pf-sub,
.fl, .fmsg, .ci-l,
[style*="Space Mono"] {
  font-family: var(--font-mono) !important;
}

pre { font-size: var(--text-sm); line-height: var(--lh-relaxed); }

/* ── UTILITIES ── */
.font-heading { font-family: var(--font-heading) !important; }
.font-body    { font-family: var(--font-body) !important; }
.font-ui      { font-family: var(--font-ui) !important; }
.font-mono    { font-family: var(--font-mono) !important; }
.fw-bold      { font-weight: var(--fw-bold); }
.fw-medium    { font-weight: var(--fw-medium); }
.text-sm      { font-size: var(--text-sm); }
.text-muted   { color: #636e72; }
.tabular-nums { font-variant-numeric: tabular-nums; }
.caps         { text-transform: uppercase; letter-spacing: var(--ls-wide); }
