/* PropFirm.pl — czcionki (PROTOTYP typografii, wariant A: Inter + Geist Mono dla liczb).
   Pliki samohostowane (RODO, bez CDN): fonts/*.woff2, licencja SIL OFL 1.1 (fonts/LICENSE-*.txt).
   Ładuj PO pf-tokens.css. Ten plik NIE zmienia wyglądu stron, dopóki element nie dostanie
   data-type="inter" | "display" (strona typografia-porownanie.html). Po akceptacji: reguły [data-type="inter"]
   przenieść do pf-base.css (body + liczby), a tokeny już są w tokens.json. */

/* Inter — zmienna (oś wght 100–900), latin + latin-ext (ą ć ę ł ń ó ś ź ż). */
@font-face {
  font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/inter-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-017F, U+0218-021B, U+02C6, U+02DA, U+02DC, U+20AC;
}
@font-face {
  font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/inter-latin.woff2") format("woff2");
  unicode-range: U+0020-007E, U+00A0-00FF, U+2010-2015, U+2018-201E, U+2020-2022, U+2026, U+2030, U+2032, U+2033, U+2039, U+203A, U+2116, U+2122, U+2190-2193, U+2197, U+2212, U+2215, U+2248, U+2260, U+2264, U+2265, U+25CF, U+2713;
}
/* Geist Mono — tylko liczby i znaki liczbowe (latin). */
@font-face {
  font-family: "Geist Mono"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/geist-mono-latin.woff2") format("woff2");
  unicode-range: U+0020-007E, U+00A0, U+00B0, U+00B1, U+00D7, U+2013, U+2014, U+2022, U+2026, U+20AC, U+2190-2193, U+2197, U+2212, U+2248, U+2264, U+2265;
}

/* Fallbacki dopasowane do metryk docelowych fontów (bez skoku układu przy podmianie, CLS).
   Inter: szerokość ≈ Arial × 1.06, ascent 0.969 / descent 0.241 em. Geist Mono: 0.6 em jak Courier New. */
@font-face {
  font-family: "Inter Fallback"; src: local("Arial"), local("Helvetica"), local("Liberation Sans");
  size-adjust: 106%; ascent-override: 91.4%; descent-override: 22.8%; line-gap-override: 0%;
}
@font-face {
  font-family: "Geist Mono Fallback"; src: local("Courier New"), local("Courier"), local("Liberation Mono");
  size-adjust: 100%; ascent-override: 100.5%; descent-override: 29.5%; line-gap-override: 0%;
}

/* Liczby: PropIndeks, ceny, wartości w tabelach, oceny, rabaty. Cyfry zawsze tabelaryczne (Geist Mono jest monospace). */
.pf-num { font-family: var(--pf-font-num); font-variant-numeric: tabular-nums; font-feature-settings: "calt" 0; }

/* Wariant 2 „Inter + Geist Mono” */
[data-type="inter"], [data-type="display"] {
  --pf-font: var(--pf-font-inter);
  font-family: var(--pf-font);
  font-feature-settings: "calt" 1, "kern" 1;
  font-optical-sizing: auto;
}
[data-type="inter"] :is(h1, .pf-h1)  { letter-spacing: var(--pf-ls-inter-h1); }
[data-type="inter"] :is(h2, .pf-h2)  { letter-spacing: var(--pf-ls-inter-h2); }
[data-type="inter"] :is(h3, h4, .pf-h3, .pf-h4) { letter-spacing: var(--pf-ls-inter-h3); }
/* Liczby w istniejących komponentach (bez zmiany ich CSS). */
:is([data-type="inter"], [data-type="display"]) :is(.pf-score__value, .pf-firm__rank, .pf-discount, .pf-price-table__price strong, .pf-facts__value .pf-num, td.pf-num, .pf-code__value) {
  font-family: var(--pf-font-num); font-variant-numeric: tabular-nums;
}
:is([data-type="inter"], [data-type="display"]) .pf-score__value { letter-spacing: -0.04em; }  /* Geist Mono jest szeroki: lekki tracking, bez zmiany rozmiaru */
:is([data-type="inter"], [data-type="display"]) .pf-score__value small { font-family: inherit; }
:is([data-type="inter"], [data-type="display"]) :is(.pf-firm__rank, .pf-discount, td.pf-num) { letter-spacing: -0.02em; }

/* Wariant 3 „Inter Display-style”: mocniejszy kontrast wag w nagłówkach, ciaśniejszy tracking. */
[data-type="display"] :is(h1, h2, h3, .pf-h1, .pf-h2, .pf-h3, .pf-display) { font-weight: var(--pf-fw-display-strong); letter-spacing: var(--pf-ls-display-h); }
[data-type="display"] :is(h4, .pf-h4, .pf-card__title) { font-weight: var(--pf-fw-heading); letter-spacing: -0.015em; }
[data-type="display"] :is(p, .pf-lead) { font-weight: 400; }

/* ===== Wariant 2 zatwierdzony (#28) =====
   Geist Mono WYŁĄCZNIE dla samych liczb (wartość PropIndeksu, rabat %, numer w rankingu, liczniki) — nigdy dla słów, etykiet, przycisków, opisów ani całych komórek.
   Znaki spoza podzbioru latin (np. ą ę ó ł) spadają na Inter (stos --pf-font-num: Geist Mono → Inter), nie na font monospace.
   Komórki tabel/cennika: Inter + cyfry tabelaryczne (font-variant-numeric: tabular-nums), waga 500 w kolumnach liczbowych. */
[data-type="inter"] :is(.pf-score__value, .pf-discount, .pf-firm__rank, .pf-stats dd, .pf-tab__count) {
  font-family: var(--pf-font-num); font-variant-numeric: tabular-nums; font-feature-settings: "calt" 0;
}
[data-type="inter"] :is(.pf-table td, .pf-price-table td, .pf-offer-panel dd, .pf-offer-panel__price, .pfv2 td, .pfv2-price, .pfv2-panel dd, .pfv2-panel-price) {
  font-variant-numeric: tabular-nums;
}
[data-type="inter"] :is(.pf-price-table td:not(:first-child), .pfv2 td[data-label]:not([data-label="Program"])) { font-weight: 500; }
[data-type="inter"] .pf-score__value small { font-family: var(--pf-font-inter); }
