/* ==========================================================================
   Statut Osiedla Ołtarzew — /statut-osiedla

   Dwie warstwy o dwóch różnych zadaniach, więc dwa różne języki graficzne:

   1. „Co z tego wynika" — karty z wielką liczbą. Mieszkaniec ma wyjść stąd
      z jedną informacją („pięćdziesiąt podpisów"), nie z wiedzą o statucie.
   2. Pełny tekst — układ dokumentu prawnego: numer paragrafu w marginesie,
      treść w kolumnie o ograniczonej szerokości. Czyta się jak druk, a nie
      jak stronę internetową, i o to chodzi.

   Kolory wyłącznie ze zmiennych motywu (tryb ciemny i wysoki kontrast).
   ========================================================================== */

#statut h1 {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--s3);
  margin-bottom: var(--s3);
  line-height: 1.15;
}

.statut__rodzaj {
  padding: 2px var(--s3);
  border: 1px solid var(--obwodka-mocna);
  border-radius: var(--r-pill);
  color: var(--tekst-przygaszony);
  font-size: 13px;
  font-weight: var(--weight-regular);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.statut__wstep {
  max-width: 64ch;
  margin: 0 0 var(--s4);
  color: var(--tekst-przygaszony);
}

/* Zastrzeżenie o tekście pierwotnym. Nie „--blad", bo to nie jest błąd,
   tylko granica tego, za co ręczymy — ostrzeżenie w kolorze ostrzeżenia. */
.statut__ostrzezenie {
  max-width: 68ch;
  margin: 0 0 var(--s6);
  padding: var(--s3) var(--s4);
  border-left: 5px solid var(--ostrzezenie);
  border-radius: var(--r-m);
  background: var(--tlo-delikatne);
  font-size: 15px;
}

/* --- Sekcje --- */

.statut__sekcja {
  margin-bottom: var(--s6);
}

.statut__sekcja h2 {
  margin: 0 0 var(--s4);
  font-size: 13px;
  font-weight: var(--weight-bold);
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--akcent-drugi);
}

.statut__uwaga {
  max-width: 68ch;
  margin: var(--s4) 0 0;
  color: var(--tekst-przygaszony);
  font-size: 14px;
}

/* --- Konkrety: sześć kart z liczbą --- */

.statut__konkrety {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--s3);
}

.statut__konkret {
  display: flex;
  flex-direction: column;
  padding: var(--s4);
  border: 1px solid var(--obwodka);
  border-radius: var(--r-m);
  background: var(--tlo-karta);
}

/* Liczba jest tu treścią, nie ozdobą — dlatego jest największym elementem
   na karcie i stoi przed nagłówkiem. */
.statut__liczba {
  display: flex;
  align-items: baseline;
  gap: var(--s2);
  margin: 0 0 var(--s2);
  font-size: 34px;
  font-weight: var(--weight-bold);
  line-height: 1;
  color: var(--akcent-drugi);
  font-variant-numeric: tabular-nums;
}

.statut__liczba span {
  font-size: 14px;
  font-weight: var(--weight-regular);
  color: var(--tekst-przygaszony);
  letter-spacing: 0.02em;
}

.statut__konkret h3 {
  margin: 0 0 var(--s2);
  font-size: 16px;
  line-height: 1.3;
}

.statut__konkret p {
  margin: 0;
  color: var(--tekst-przygaszony);
  font-size: 14px;
}

/* Odnośnik do paragrafu dosuwany do dołu karty, żeby przy kartach różnej
   wysokości wszystkie kończyły się w tej samej linii. */
.statut__odnosnik {
  align-self: flex-start;
  margin-top: auto;
  padding-top: var(--s3);
  font-size: 13px;
  font-weight: var(--weight-semi-bold);
  text-decoration: none;
  color: var(--akcent);
}

.statut__odnosnik:hover,
.statut__odnosnik:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* --- Spis rozdziałów --- */

.statut__spis {
  max-width: 64ch;
  margin: 0;
  padding-left: var(--s5);
  display: grid;
  gap: var(--s2);
}

.statut__spis li {
  padding-left: var(--s2);
}

.statut__zakres {
  margin-left: var(--s2);
  color: var(--tekst-przygaszony);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

/* --- Pełny tekst --- */

.statut__rozdzial {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--s3);
  margin: var(--s6) 0 var(--s4);
  padding-top: var(--s4);
  border-top: 2px solid var(--obwodka);
  font-size: 20px;
  scroll-margin-top: var(--s6);
}

.statut__rzymska {
  padding: 2px var(--s2);
  border-radius: var(--r-pill);
  background: var(--akcent-drugi-tlo);
  color: var(--akcent-drugi);
  font-size: 12px;
  font-weight: var(--weight-semi-bold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.statut__srodtytul {
  margin: var(--s5) 0 var(--s3);
  font-size: 16px;
  color: var(--tekst-przygaszony);
  font-weight: var(--weight-semi-bold);
}

/* Numer paragrafu w marginesie, treść obok — układ znany z druków prawnych.
   Poniżej 720 px kolumny się składają i numer siada nad treścią. */
.statut__paragraf {
  display: grid;
  grid-template-columns: 4.5rem 1fr;
  gap: var(--s3);
  margin-bottom: var(--s4);
  scroll-margin-top: var(--s6);
}

.statut__paragraf:target {
  padding: var(--s3);
  margin-left: calc(-1 * var(--s3));
  border-radius: var(--r-m);
  background: var(--tlo-delikatne);
  box-shadow: var(--cien-2);
}

.statut__numer {
  color: var(--akcent-drugi);
  font-weight: var(--weight-bold);
  font-variant-numeric: tabular-nums;
  text-decoration: none;
  white-space: nowrap;
}

.statut__numer:hover,
.statut__numer:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.statut__ustepy {
  max-width: 68ch;
  min-width: 0;
}

.statut__ustepy p {
  margin: 0 0 var(--s2);
  line-height: 1.6;
  overflow-wrap: anywhere;
}

/* Punkty (1), 2), 3)) są częścią ustępu nad nimi — wcięcie pokazuje tę
   zależność bez dorabiania zagnieżdżonych list w PHP. */
.statut__punkt {
  margin-left: var(--s4);
  color: var(--tekst-przygaszony);
  font-size: 15px;
}

/* --- Źródła --- */

.statut__zrodla ul {
  max-width: 68ch;
  margin: 0;
  padding-left: var(--s4);
  color: var(--tekst-przygaszony);
  font-size: 14px;
}

.statut__zrodla li {
  margin-bottom: var(--s2);
}

.statut__zrodla strong {
  color: var(--tekst);
}

.statut__cisza {
  max-width: 62ch;
  padding: var(--s4);
  border: 1px dashed var(--obwodka);
  border-radius: var(--r-m);
  color: var(--tekst-przygaszony);
}

.statut__stopka {
  padding-top: var(--s3);
  border-top: 1px solid var(--obwodka);
  color: var(--tekst-przygaszony);
  font-size: 14px;
}

@media (max-width: 720px) {
  .statut__paragraf {
    grid-template-columns: 1fr;
    gap: var(--s1);
  }

  .statut__liczba {
    font-size: 28px;
  }
}

@media print {
  /* Na wydruku karty „co z tego wynika" są streszczeniem tego, co i tak
     jest niżej — a papier kosztuje. Zostaje sam tekst statutu. */
  .statut__konkrety,
  .statut__spis,
  .statut__stopka {
    display: none;
  }

  .statut__paragraf {
    break-inside: avoid;
  }
}
