/* ==========================================================================
   Farmersi 2.0 — base.css
   Czcionki lokalne, reset, typografia bazowa, dostępność.
   Mobile-first (375 px).
   ========================================================================== */

/* --- Czcionki ------------------------------------------------------------
   „Rye” z STYL.md, hostowany lokalnie — zero zapytań do Google Fonts,
   zero opóźnień zależnych od obcej sieci. Podzbiory latin + latin-ext
   (polskie znaki diakrytyczne są w latin-ext).
   font-display: swap — tekst jest widoczny natychmiast, font dochodzi. */

@font-face {
  font-family: 'Rye';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/rye-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
    U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF,
    U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Rye';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/rye-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

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

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

body {
  margin: 0;
  padding: 0;
  font-family: var(--font-tresc);
  font-size: var(--rozmiar-m);
  line-height: var(--wysokosc-linii);
  color: var(--tekst);
  background-color: var(--tlo-noc);
  /* Papierowa faktura: subtelne gradienty + drobna siatka, zero obrazków. */
  background-image:
    radial-gradient(
      ellipse at 50% 0%,
      rgba(201, 162, 39, 0.10) 0%,
      transparent 60%
    ),
    linear-gradient(180deg, #2e2314 0%, #1d150c 100%);
  background-attachment: fixed;
  min-height: 100vh;
}

/* --- Typografia -------------------------------------------------------- */

h1,
h2,
h3,
h4 {
  font-family: var(--font-naglowek);
  line-height: var(--wysokosc-linii-naglowek);
  margin: 0 0 var(--odst-3);
  font-weight: 700;
  color: var(--tekst);
  text-wrap: balance;
}

/* Rye tylko na nagłówku najwyższego poziomu — jest ozdobny i na mniejszych
   rozmiarach traciłby czytelność. */
h1 {
  font-family: var(--font-display);
  font-weight: 400; /* Rye ma tylko jeden krój */
  font-size: var(--rozmiar-2xl);
  letter-spacing: 0.01em;
  line-height: 1.25;
}

h2 {
  font-size: var(--rozmiar-xl);
}

h3 {
  font-size: var(--rozmiar-l);
}

h4 {
  font-size: var(--rozmiar-m);
}

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

p:last-child {
  margin-bottom: 0;
}

ul,
ol {
  margin: 0 0 var(--odst-4);
  padding-left: var(--odst-5);
}

li {
  margin-bottom: var(--odst-1);
}

li:last-child {
  margin-bottom: 0;
}

strong,
b {
  font-weight: 700;
}

small {
  font-size: var(--rozmiar-s);
}

a {
  color: var(--akcent);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--czas-szybki) var(--krzywa);
}

a:hover {
  color: var(--akcent-czerwony);
}

/* Liczby, waluta, współczynniki — efekt stempla, wyrównanie kolumn. */
.liczby,
.tabularnie {
  font-family: var(--font-liczby);
  font-variant-numeric: tabular-nums;
}

/* --- Dostępność -------------------------------------------------------- */

/* Widoczny fokus dla klawiatury — wymóg, w 1.0 nie istniał. */
:focus-visible {
  outline: 2px solid var(--akcent-czerwony);
  outline-offset: 2px;
  border-radius: var(--promien-s);
}

/* Ukryte wizualnie, dostępne dla czytników ekranu. */
.wizualnie-ukryte {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Link "przejdź do treści" — pierwszy element tab-order. */
.przejdz-do-tresci {
  position: absolute;
  left: var(--odst-3);
  top: -100px;
  z-index: 100;
  padding: var(--odst-2) var(--odst-4);
  background: var(--akcent-czerwony);
  color: #fff;
  text-decoration: none;
  border-radius: var(--promien-s);
  font-weight: 700;
  transition: top var(--czas) var(--krzywa);
}

.przejdz-do-tresci:focus {
  top: var(--odst-3);
  color: #fff;
}

/* Cele o minimalnym rozmiarze dotykowym 44x44 px. */
@media (pointer: coarse) {
  a,
  button,
  summary,
  input[type="submit"] {
    min-height: 44px;
  }
}

/* --- Media -------------------------------------------------------------- */

img,
svg,
picture {
  max-width: 100%;
  display: block;
}

img {
  height: auto;
}

/* --- Formularze --------------------------------------------------------- */

input,
select,
textarea,
button {
  font: inherit;
  color: inherit;
}

/* ==========================================================================
   Druk — 1.0 miało "obj_ukrytydruk"; tutaj upraszczamy.
   ========================================================================== */

@media print {
  body {
    background: #fff;
    color: #000;
  }

  .nie-drukowac {
    display: none !important;
  }
}
