/* =========================================================================
   Re-volta v3 – powłoka: kontener, toper, breadcrumb, stopka

   Ładowana na WSZYSTKICH stronach – także nad starą treścią, obok starych arkuszy
   (revolta2.min.css ma m.in. *{margin:0;padding:0}, a:hover{text-decoration:underline},
   h4 w rem przy html{font-size:62.5%}). Dlatego:
   - arkusz ładujemy PO starych, a reset poniżej ma specyficzność samego elementu (:where) –
     przy remisie wygrywa kolejność;
   - każdy element powłoki ma własną klasę i sam ustawia font, rozmiar, odstępy i kolor;
   - tylko px, nigdy rem.
   ========================================================================= */

/* ---------- Kontener ---------- */
/* Treść ma max 1400px; margines --rv3-gutter jest przyklejony do krawędzi OKNA, a nie treści:
   na szerokim ekranie go nie widać, na wąskim zwęża treść. */
.rv3-container {
  box-sizing: border-box;
  width: 100%;
  max-width: calc(var(--rv3-container) + 2 * var(--rv3-gutter));
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--rv3-gutter);
  padding-right: var(--rv3-gutter);
}

/* ---------- Strona: toper, treść, stopka – stopka zawsze przy dolnej krawędzi okna ---------- */
/* Także nad starą treścią: tam .rv3-main to zwykły blok wokół starego kontenera, żeby jego
   margin:0 auto nie zwęził go do szerokości treści (element flex z auto-marginesami). */
.rv3-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
/* Treść między toperem a stopką (id="rv3-tresc" – cel linku „Przejdź do treści”) */
.rv3-main {
  flex: 1 0 auto;
}

/* ---------- Reset powłoki (odporny na stare arkusze) ---------- */
:where(.rv3-header, .rv3-breadcrumb, .rv3-footer, .rv3-drawer, .rv3-skip) {
  font-family: var(--rv3-font);
  font-size: var(--rv3-fs-base);
  font-weight: var(--rv3-fw-regular);
  font-style: normal;
  line-height: var(--rv3-lh-body);
  letter-spacing: normal;
  text-align: left;
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
:where(.rv3-header, .rv3-breadcrumb, .rv3-footer, .rv3-drawer, .rv3-skip),
:where(.rv3-header, .rv3-breadcrumb, .rv3-footer, .rv3-drawer, .rv3-skip) *,
:where(.rv3-header, .rv3-breadcrumb, .rv3-footer, .rv3-drawer, .rv3-skip) *::before,
:where(.rv3-header, .rv3-breadcrumb, .rv3-footer, .rv3-drawer, .rv3-skip) *::after {
  box-sizing: border-box;
  font-variation-settings: "GRAD" var(--rv3-grad);
}
:where(.rv3-header, .rv3-breadcrumb, .rv3-footer, .rv3-drawer, .rv3-skip) :is(p, ul, ol, li, h1, h2, h3, h4, h5, h6, nav, figure) {
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
}
/* Odstępy i punktory list – mocniej (klasa + element): stare szablony mają w <body> bloki
   <style> typu ul,ol{padding-left:48px} czy ol li{margin:16px 0}, które stoją PO naszych
   arkuszach i wygrałyby remis. Reguła komponentu, która sama ustawia margin / padding na
   p / ul / li, musi więc mieć co najmniej dwie klasy (np. .rv3-drawer .rv3-drawer__sekcja). */
:is(.rv3-header, .rv3-breadcrumb, .rv3-footer, .rv3-drawer) :is(p, ul, ol, li, h1, h2, h3, h4, h5, h6, nav, figure, details, summary) {
  margin: 0;
  padding: 0;
  list-style: none;
}
:where(.rv3-header, .rv3-breadcrumb, .rv3-footer, .rv3-drawer, .rv3-skip) a,
:where(.rv3-header, .rv3-breadcrumb, .rv3-footer, .rv3-drawer, .rv3-skip) a:hover {
  text-decoration: none;
}
:where(.rv3-header, .rv3-breadcrumb, .rv3-footer, .rv3-drawer, .rv3-skip) img {
  max-width: 100%;
  vertical-align: middle;
}
:where(.rv3-header, .rv3-breadcrumb, .rv3-footer, .rv3-drawer, .rv3-skip) :is(input, button) {
  font: inherit;
  margin: 0;
}
:where(.rv3-header, .rv3-breadcrumb, .rv3-footer, .rv3-drawer, .rv3-skip) :focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* ---------- Pomocnicze ---------- */
/* Tekst tylko dla czytników ekranu (powłoka jest też nad starą treścią, więc tutaj, nie w baza.css) */
.rv3-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
/* „Przejdź do treści” – widoczny dopiero po fokusie z klawiatury */
.rv3-skip {
  position: absolute;
  left: var(--rv3-space-3);
  top: -200px;
  z-index: 1100;
  padding: var(--rv3-space-4) var(--rv3-space-6);
  border-radius: var(--rv3-radius-sm);
  background: var(--rv3-surface);
  color: var(--rv3-text);
  font-weight: var(--rv3-fw-semibold);
  box-shadow: var(--rv3-shadow-pop);
}
.rv3-skip:focus {
  top: var(--rv3-space-3);
}

/* ---------- Toper ---------- */
/* Pozycje menu i menu konta rozciągają się na całą wysokość topera, więc panele
   (top: 100%) zaczynają się dokładnie pod nim, a przejście myszą z pozycji na panel
   nie gubi :hover. Z-index ponad starą treścią (mapy Leaflet mają do 1000). */
.rv3-header {
  position: relative;
  z-index: 1050;
  background: var(--rv3-header-bg);
  color: var(--rv3-header-ink);
}
.rv3-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rv3-space-7);
  min-height: var(--rv3-header-h);
}
.rv3-header__logo {
  display: flex;
  align-items: center;
  flex: 0 1 auto;
  min-width: 0;
  padding: var(--rv3-space-2) 0;
}
/* Na wąskim ekranie logo zwęża się, żeby „+” i ☰ zostały w tym samym rzędzie */
.rv3-header__logo img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: var(--rv3-logo-h);
}
.rv3-header__nav {
  display: flex;
  align-self: stretch;
}

/* Megamenu: pozycja = link do działu + przycisk ▾ (klawiatura, dotyk) + panel.
   Mysz: panel otwiera najechanie (tylko urządzenia z hover). Fokus z klawiatury go NIE otwiera –
   inaczej Tab przechodziłby przez kilkadziesiąt linków każdego panelu. */
.rv3-mega {
  display: flex;
  align-items: stretch;
  gap: var(--rv3-space-9);
}
.rv3-mega__poz {
  display: flex;
  align-items: center;
  gap: 2px;
}
.rv3-mega__poz--maly {
  position: relative;
}
.rv3-mega__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  align-self: stretch;
  color: var(--rv3-header-ink);
  font-size: var(--rv3-fs-md);
  font-weight: var(--rv3-fw-medium);
  white-space: nowrap;
  transition: color var(--rv3-transition);
}
.rv3-mega__link:hover {
  color: var(--rv3-header-ink-2);
}
/* Bieżący dział – kreska przy dolnej krawędzi topera */
.rv3-mega__link[aria-current]::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: var(--rv3-header-ink);
}
.rv3-mega__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: var(--rv3-tap);
  padding: 0;
  border: 0;
  border-radius: var(--rv3-radius-xs);
  background: transparent;
  color: var(--rv3-header-ink);
  font-size: 10px;
  cursor: pointer;
  opacity: 0.8;
}
.rv3-mega__toggle:hover {
  opacity: 1;
}
.rv3-mega__toggle i,
.rv3-header__account .fa-chevron-down {
  transition: transform var(--rv3-transition);
}
.rv3-mega__toggle[aria-expanded="true"] i,
.rv3-header__account[aria-expanded="true"] .fa-chevron-down {
  transform: rotate(180deg);
}

/* Panel: duży na całą szerokość topera, mały (jedna kolumna) pod swoją pozycją */
.rv3-mega__panel {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--rv3-surface);
  color: var(--rv3-text);
  border-top: 1px solid var(--rv3-divider);
  box-shadow: var(--rv3-shadow-pop);
}
.rv3-mega__poz--maly .rv3-mega__panel {
  left: 50%;
  right: auto;
  transform: translateX(-50%); /* wyśrodkowany pod swoją pozycją menu */
  min-width: 230px;
  border: 1px solid var(--rv3-border-card);
  border-radius: 0 0 var(--rv3-radius-lg) var(--rv3-radius-lg);
}
.rv3-mega__poz.is-open > .rv3-mega__panel {
  display: block;
}
@media (hover: hover) {
  .rv3-mega__poz:hover > .rv3-mega__panel {
    display: block;
  }
}
.rv3-mega__kolumny {
  display: flex;
  gap: var(--rv3-space-13);
  padding-top: var(--rv3-space-11);
  padding-bottom: var(--rv3-space-12);
}
.rv3-mega__poz--maly .rv3-mega__kolumny {
  padding: var(--rv3-space-3) 0;
}
.rv3-mega__kol {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-8);
}
.rv3-mega__kol + .rv3-mega__kol {
  border-left: 1px solid var(--rv3-divider);
  padding-left: var(--rv3-space-13);
}
.rv3-mega__kol:has(.rv3-mega__blok--2) {
  flex-grow: 2;
}
.rv3-header .rv3-mega__tytul {
  margin-bottom: var(--rv3-space-3);
  font-size: var(--rv3-fs-xs);
  font-weight: var(--rv3-fw-bold);
  letter-spacing: var(--rv3-tracking-overline);
  text-transform: uppercase;
  color: var(--rv3-muted);
}
.rv3-mega__tytul a {
  color: var(--rv3-text);
  transition: color var(--rv3-transition);
}
.rv3-mega__tytul a:hover {
  color: var(--rv3-link-hover);
}
.rv3-mega__blok--2 .rv3-mega__linki {
  columns: 2;
  column-gap: var(--rv3-space-12);
}
.rv3-mega__linki li {
  break-inside: avoid;
}
/* Link = cały wiersz: tekst + „›” przy prawej krawędzi, najechanie podświetla wiersz.
   Ujemny margines trzyma tekst w linii z tytułem bloku, a tło wychodzi poza niego. */
.rv3-mega__linki a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rv3-space-3);
  margin: 0 calc(-1 * var(--rv3-space-4));
  padding: 5px var(--rv3-space-4);
  border-radius: var(--rv3-radius-xs);
  font-size: var(--rv3-fs-md);
  line-height: var(--rv3-lh-tight);
  color: var(--rv3-text-2);
  transition: color var(--rv3-transition), background-color var(--rv3-transition);
}
.rv3-mega__linki a i {
  flex: none;
  font-size: 12px;
  color: var(--rv3-muted);
  transition: color var(--rv3-transition);
}
.rv3-mega__linki a:hover {
  background: var(--rv3-accent-soft);
  color: var(--rv3-accent-ink);
}
.rv3-mega__linki a:hover i {
  color: currentColor;
}
.rv3-mega__poz--maly .rv3-mega__linki a {
  margin: 0;
  padding: 9px 18px;
  border-radius: 0;
  white-space: nowrap;
}

/* Prawa strona: „+ Dodaj ogłoszenie” i konto */
.rv3-header__actions {
  display: flex;
  align-items: center;
  align-self: stretch;
  gap: var(--rv3-space-8);
}
.rv3-header__cta {
  flex: none;
}
/* Miejsce po przycisku tam, gdzie go nie ma (forum) – zajmuje tyle samo, ale jest niewidoczne */
.rv3-header__cta--puste {
  visibility: hidden;
  pointer-events: none;
}
.rv3-header__account {
  display: inline-flex;
  align-items: center;
  gap: var(--rv3-space-2);
  min-height: var(--rv3-tap);
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--rv3-header-ink);
  font-size: var(--rv3-fs-md);
  font-weight: var(--rv3-fw-medium);
  white-space: nowrap;
  cursor: pointer;
  transition: color var(--rv3-transition);
}
.rv3-header__account:hover {
  color: var(--rv3-header-ink-2);
}
.rv3-header__account .fa-circle-user {
  font-size: 18px;
}
.rv3-header__account .fa-chevron-down {
  font-size: 10px;
  opacity: 0.8;
}

/* Menu konta – otwiera je JS (klik); bez JS fokus (Tab / klik w przycisk) */
.rv3-konto {
  position: relative;
  display: flex;
  align-items: center;
  align-self: stretch;
}
.rv3-konto__menu {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  min-width: 250px;
  padding: var(--rv3-space-3) 0;
  background: var(--rv3-surface);
  color: var(--rv3-text);
  border: 1px solid var(--rv3-border-card);
  border-radius: 0 0 var(--rv3-radius-lg) var(--rv3-radius-lg);
  box-shadow: var(--rv3-shadow-pop);
}
.rv3-konto.is-open .rv3-konto__menu,
html:not(.rv3-js) .rv3-konto:focus-within .rv3-konto__menu {
  display: block;
}
.rv3-header .rv3-konto__kto {
  padding: var(--rv3-space-3) 18px var(--rv3-space-3);
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rv3-konto__linki a,
.rv3-konto__wyloguj {
  display: flex;
  align-items: center;
  gap: var(--rv3-space-4);
  padding: 9px 18px;
  font-size: var(--rv3-fs-base);
  color: var(--rv3-text);
  transition: color var(--rv3-transition), background-color var(--rv3-transition);
}
.rv3-konto__linki a:hover,
.rv3-konto__wyloguj:hover {
  background: var(--rv3-accent-soft);
  color: var(--rv3-accent-ink);
}
.rv3-konto__linki i,
.rv3-konto__wyloguj i {
  width: 18px;
  text-align: center;
  color: var(--rv3-muted);
}
.rv3-konto__wyloguj {
  margin-top: var(--rv3-space-2);
  border-top: 1px solid var(--rv3-divider);
  padding-top: var(--rv3-space-5);
}

/* Liczniki nowych wiadomości (uzupełnia menu.js) */
.rv3-konto__licznik {
  margin-left: auto;
  min-width: 20px;
  padding: 1px 6px;
  border-radius: var(--rv3-radius-pill);
  background: var(--rv3-cta);
  color: var(--rv3-cta-ink);
  font-size: var(--rv3-fs-2xs);
  font-weight: var(--rv3-fw-bold);
  font-stretch: var(--rv3-wdth-ciasny);
  line-height: 16px;
  text-align: center;
}
.rv3-header__count[hidden],
.rv3-konto__licznik[hidden] {
  display: none;
}

/* Przyciski-ikony (mobile) */
.rv3-header__icon-btn {
  position: relative;
  width: var(--rv3-tap);
  height: var(--rv3-tap);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--rv3-radius-sm);
  border: 1px solid var(--rv3-header-line);
  background: transparent;
  color: var(--rv3-header-ink);
  font-size: 19px;
  cursor: pointer;
  transition: border-color var(--rv3-transition), color var(--rv3-transition);
}
.rv3-header__icon-btn:hover {
  border-color: var(--rv3-header-ink);
  color: var(--rv3-header-ink);
}
/* Kwadratowy „+” na mobile */
.rv3-header__icon-btn--cta {
  border-color: transparent;
  background: var(--rv3-cta);
  color: var(--rv3-cta-ink);
  font-size: 22px;
  font-weight: var(--rv3-fw-bold);
}
.rv3-header__icon-btn--cta:hover {
  border-color: transparent;
  background: var(--rv3-cta-hover);
  color: var(--rv3-cta-ink);
}
/* Licznik (nowe wiadomości) na ☰ */
.rv3-header__count {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: var(--rv3-radius-pill);
  background: var(--rv3-cta);
  color: var(--rv3-cta-ink);
  font-size: var(--rv3-fs-2xs);
  font-weight: var(--rv3-fw-bold);
  font-stretch: var(--rv3-wdth-ciasny);
  line-height: 18px;
  text-align: center;
}
/* …i obok „Moje konto” */
.rv3-header__count--obok {
  position: static;
}
.rv3-header__mobile {
  display: none;
  align-items: center;
  gap: var(--rv3-space-3);
}

/* Próg tabletu / małego laptopa: węższy krój menu, mniejsze logo, konto jako ikona */
@media (max-width: 1280px) {
  .rv3-header__inner {
    gap: var(--rv3-space-5);
  }
  .rv3-header__logo img {
    max-height: var(--rv3-logo-h-waskie);
  }
  .rv3-mega {
    gap: var(--rv3-space-5);
  }
  .rv3-mega__link,
  .rv3-header__account,
  .rv3-header__cta {
    font-stretch: var(--rv3-wdth-waski);
  }
  .rv3-header__actions {
    gap: var(--rv3-space-6);
  }
  .rv3-header__account-nazwa {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
  .rv3-header__account .fa-circle-user {
    font-size: 22px;
  }
}
/* Telefon i tablet pionowo: „+” i ☰, menu w panelu */
@media (max-width: 1024px) {
  .rv3-header__nav,
  .rv3-header__actions {
    display: none;
  }
  .rv3-header__inner {
    min-height: var(--rv3-header-h-mobile);
  }
  .rv3-header__mobile {
    display: flex;
    flex: none;
  }
  /* Przyklejony do góry ekranu; przy przewijaniu w dół wysuwa się w górę, wraca przy przewijaniu
     w górę (is-schowany – menu.js). Bez JS po prostu stoi przyklejony. */
  .rv3-header {
    position: sticky;
    top: 0;
    transition: transform 0.25s ease;
  }
  .rv3-header.is-schowany {
    transform: translateY(-100%);
  }
}

/* ---------- Szuflada (panel wysuwany z boku) – menu mobilne; ten sam mechanizm ma panel filtrów ---------- */
/* Bez JS otwiera go :target (#rv3-drawer), z JS klasa is-open (i blokada przewijania strony). */
.rv3-drawer {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1060;
}
.rv3-drawer:target,
.rv3-drawer.is-open {
  display: block;
}
@media (min-width: 1025px) {
  .rv3-drawer--menu:target,
  .rv3-drawer--menu.is-open {
    display: none;
  }
}
html.rv3-drawer-otwarty {
  overflow: hidden;
}
.rv3-drawer__tlo {
  position: absolute;
  inset: 0;
  background: var(--rv3-backdrop);
}
.rv3-drawer__okno {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(420px, 100%);
  display: flex;
  flex-direction: column;
  background: var(--rv3-page);
  color: var(--rv3-text);
  box-shadow: var(--rv3-shadow-pop);
}
.rv3-drawer__glowa {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rv3-space-5);
  min-height: var(--rv3-header-h-mobile);
  padding: 0 var(--rv3-gutter);
  background: var(--rv3-header-bg);
  color: var(--rv3-header-ink);
}
.rv3-drawer__powitanie {
  min-width: 0;
  font-size: var(--rv3-fs-lg);
  font-weight: var(--rv3-fw-semibold);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rv3-drawer__zamknij {
  flex: none;
  width: var(--rv3-tap);
  height: var(--rv3-tap);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--rv3-header-line);
  border-radius: var(--rv3-radius-sm);
  color: var(--rv3-header-ink);
  font-size: 20px;
}
.rv3-drawer__zamknij:hover {
  border-color: var(--rv3-header-ink);
  color: var(--rv3-header-ink);
}
.rv3-drawer__tresc {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-6);
  padding: var(--rv3-space-7) var(--rv3-gutter) var(--rv3-space-12);
  overflow-y: auto;
  overscroll-behavior: contain;
}
/* Przewija się cały panel – elementy (np. karta działów z overflow:hidden) nie mogą się kurczyć */
.rv3-drawer__tresc > * {
  flex-shrink: 0;
}
/* Skróty konta: trzy kafelki */
.rv3-drawer__skroty {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--rv3-space-3);
}
.rv3-drawer__skroty a {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--rv3-space-2);
  min-height: 72px;
  padding: var(--rv3-space-4) var(--rv3-space-2);
  border: 1px solid var(--rv3-border-card);
  border-radius: var(--rv3-radius-lg);
  background: var(--rv3-surface);
  color: var(--rv3-text);
  font-size: var(--rv3-fs-sm);
  font-weight: var(--rv3-fw-medium);
  font-stretch: var(--rv3-wdth-waski);
  text-align: center;
  line-height: var(--rv3-lh-tight);
}
.rv3-drawer__skroty i {
  font-size: 18px;
  color: var(--rv3-accent-ink);
}
.rv3-drawer__skroty .rv3-konto__licznik {
  position: absolute;
  top: 6px;
  right: 6px;
}
.rv3-drawer__gosc {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--rv3-space-3);
}
/* Działy – lista w karcie, każdy dział rozwijany (<details>) */
.rv3-drawer__nav {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--rv3-border-card);
  border-radius: var(--rv3-radius-xl);
  background: var(--rv3-surface);
  overflow: hidden;
}
.rv3-drawer__nav > * + * {
  border-top: 1px solid var(--rv3-divider);
}
.rv3-drawer .rv3-drawer__pozycja {
  display: flex;
  align-items: center;
  gap: var(--rv3-space-5);
  min-height: 52px;
  padding: 0 var(--rv3-space-7);
  color: var(--rv3-text);
  font-size: var(--rv3-fs-md);
  font-weight: var(--rv3-fw-semibold);
  list-style: none;
  cursor: pointer;
}
.rv3-drawer summary::-webkit-details-marker {
  display: none;
}
.rv3-drawer__pozycja[aria-current] {
  color: var(--rv3-accent-ink);
}
.rv3-drawer__ikona {
  width: 20px;
  text-align: center;
  color: var(--rv3-accent-ink);
}
.rv3-drawer__strzalka {
  margin-left: auto;
  font-size: 11px;
  color: var(--rv3-muted);
  transition: transform var(--rv3-transition);
}
details[open] > summary > .rv3-drawer__strzalka {
  transform: rotate(180deg);
}
.rv3-drawer__zawartosc {
  padding: 0 var(--rv3-space-7) var(--rv3-space-6) 49px;
}
.rv3-drawer__wszystkie {
  display: inline-flex;
  align-items: center;
  gap: var(--rv3-space-2);
  padding: var(--rv3-space-1) 0 var(--rv3-space-4);
  color: var(--rv3-link);
  font-weight: var(--rv3-fw-semibold);
}
.rv3-drawer__wszystkie i {
  font-size: 11px;
}
.rv3-drawer .rv3-drawer__podtytul {
  padding: var(--rv3-space-4) 0 var(--rv3-space-1);
  font-size: var(--rv3-fs-xs);
  font-weight: var(--rv3-fw-bold);
  letter-spacing: var(--rv3-tracking-overline);
  text-transform: uppercase;
  color: var(--rv3-muted);
}
.rv3-drawer__podtytul a {
  color: inherit;
}
/* Zwijany blok (długie listy kategorii) – nagłówek jak zwykła pozycja listy */
.rv3-drawer summary.rv3-drawer__podtytul {
  display: flex;
  align-items: center;
  min-height: var(--rv3-tap);
  padding: 0;
  border-top: 1px solid var(--rv3-divider-soft);
  font-size: var(--rv3-fs-base);
  font-weight: var(--rv3-fw-semibold);
  letter-spacing: normal;
  text-transform: none;
  color: var(--rv3-text);
  list-style: none;
  cursor: pointer;
}
.rv3-drawer__linki a {
  display: flex;
  align-items: center;
  gap: var(--rv3-space-5);
  min-height: 40px;
  font-size: var(--rv3-fs-base);
  color: var(--rv3-text-2);
}
.rv3-drawer__linki a:hover {
  color: var(--rv3-link-hover);
}
.rv3-drawer__linki strong {
  font-weight: var(--rv3-fw-semibold);
}
.rv3-drawer .rv3-drawer__linki--konto {
  padding: 0 var(--rv3-space-7);
  border: 1px solid var(--rv3-border-card);
  border-radius: var(--rv3-radius-xl);
  background: var(--rv3-surface);
}
.rv3-drawer__linki--konto li + li {
  border-top: 1px solid var(--rv3-divider-soft);
}
.rv3-drawer__linki--konto a {
  min-height: 48px;
  color: var(--rv3-text);
}
.rv3-drawer__linki--konto i {
  width: 20px;
  text-align: center;
  color: var(--rv3-muted);
}
.rv3-drawer .rv3-drawer__sekcja {
  margin-top: var(--rv3-space-3);
  font-size: var(--rv3-fs-xs);
  font-weight: var(--rv3-fw-bold);
  letter-spacing: var(--rv3-tracking-overline);
  text-transform: uppercase;
  color: var(--rv3-muted);
}

/* ---------- Przełącznik motywu (tylko strony z przerobioną treścią) ---------- */
.rv3-motyw {
  display: inline-flex;
  align-items: center;
  gap: var(--rv3-space-1);
  align-self: flex-start;
  padding: 3px;
  border: 1px solid var(--rv3-border);
  border-radius: var(--rv3-radius-pill);
  font-family: var(--rv3-font);
  font-size: var(--rv3-fs-sm);
}
.rv3-motyw[hidden] {
  display: none;
}
.rv3-motyw__etykieta {
  padding: 0 var(--rv3-space-2) 0 var(--rv3-space-3);
  color: var(--rv3-muted);
}
.rv3-motyw__opcja {
  display: inline-flex;
  align-items: center;
  gap: var(--rv3-space-2);
  min-height: 32px;
  padding: 0 var(--rv3-space-5);
  border: 0;
  border-radius: var(--rv3-radius-pill);
  background: transparent;
  color: var(--rv3-text-2);
  font: inherit;
  cursor: pointer;
  transition: background-color var(--rv3-transition), color var(--rv3-transition);
}
.rv3-motyw__opcja:hover {
  color: var(--rv3-accent-ink);
}
.rv3-motyw__opcja[aria-pressed="true"] {
  background: var(--rv3-accent-soft);
  color: var(--rv3-accent-ink);
  font-variation-settings: "GRAD" var(--rv3-grad-aktywny);
}
.rv3-footer .rv3-motyw {
  border-color: var(--rv3-footer-field-border);
}
.rv3-footer .rv3-motyw__etykieta,
.rv3-footer .rv3-motyw__opcja {
  color: var(--rv3-footer-meta-link);
}
.rv3-footer .rv3-motyw__opcja:hover {
  color: var(--rv3-footer-link-hover);
}
.rv3-footer .rv3-motyw__opcja[aria-pressed="true"] {
  background: var(--rv3-footer-field);
  color: var(--rv3-footer-heading);
}

/* ---------- Zgodność ze starą treścią (html.rv3-stara: nowa powłoka, stara treść) ---------- */
/* Stary toper mobilny był position:fixed, a revolta2 robił pod niego body{margin-top:55px}. */
body.rv3-powloka {
  margin-top: 0;
}
html.rv3-stara .rv3-footer {
  margin-top: var(--rv3-space-14);
}

/* ---------- Breadcrumb ---------- */
.rv3-breadcrumb {
  padding-top: 18px;
}
.rv3-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--rv3-space-3);
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-muted);
}
.rv3-breadcrumb a {
  color: var(--rv3-text-2);
  transition: color var(--rv3-transition);
}
.rv3-breadcrumb a:hover {
  color: var(--rv3-link-hover);
}
.rv3-breadcrumb__sep {
  color: var(--rv3-faint);
}
.rv3-breadcrumb [aria-current="page"] {
  color: var(--rv3-text);
  font-weight: var(--rv3-fw-semibold);
}
/* Okruszki z „Wróć do wyników” (strona ogłoszenia): okruszki po lewej, powrót po prawej */
.rv3-breadcrumb:has(.rv3-breadcrumb__powrot:not([hidden])) {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--rv3-space-3) var(--rv3-space-8);
}
.rv3-breadcrumb ol li[aria-current="page"] {
  max-width: 40ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rv3-breadcrumb__powrot {
  flex: none;
  font-size: var(--rv3-fs-sm);
  font-weight: var(--rv3-fw-medium);
}
.rv3-breadcrumb .rv3-breadcrumb__powrot {
  color: var(--rv3-link);
}
.rv3-breadcrumb__powrot i {
  font-size: 10px;
  margin-right: 3px;
}
.rv3-breadcrumb__powrot[hidden] {
  display: none;
}

/* ---------- Tryb ciemny: zdjęcia i logo przygaszone ---------- */
/* Jasne zdjęcia (także kafelki mapy, avatary, pełny ekran galerii) i logo raziłyby na ciemnym tle.
   Logo w toperze – krycie zamiast filtra; logo i znak wodny stopki mają już własne krycie. */
[data-theme="dark"] img {
  filter: brightness(.8) contrast(1.1);
}
[data-theme="dark"] .rv3-header__logo img {
  filter: none;
  opacity: 0.8;
}
[data-theme="dark"] .rv3-footer img {
  filter: none;
}
/* Mapy (Leaflet + OpenStreetMap): nocna mapa z tych samych kafelków – odwrócone jasności,
   hue-rotate przywraca odcienie (woda niebieska, lasy zielone). Bez osobnego dostawcy kafelków
   i bez przeładowania mapy przy zmianie motywu. Znaczniki i dymki są w innych warstwach – bez zmian. */
[data-theme="dark"] .leaflet-container {
  background: var(--rv3-page);
}
[data-theme="dark"] .leaflet-tile-pane {
  filter: invert(1) hue-rotate(180deg) brightness(.95) contrast(.9) saturate(.6);
}
[data-theme="dark"] .leaflet-tile-pane img {
  filter: none;
}
[data-theme="dark"] .leaflet-container .leaflet-control-attribution {
  background: rgb(0 0 0 / .55);
  color: var(--rv3-muted);
}
[data-theme="dark"] .leaflet-container .leaflet-control-attribution a {
  color: var(--rv3-text-2);
}

/* ---------- Stopka ---------- */
.rv3-footer {
  position: relative;
  overflow: hidden;
  margin-top: auto;
  background: var(--rv3-footer-bg);
  color: var(--rv3-footer-text);
}
.rv3-footer__cta {
  background: var(--rv3-footer-cta-bg);
}
.rv3-footer__cta-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--rv3-space-10);
  padding-top: var(--rv3-space-12);
  padding-bottom: var(--rv3-space-12);
}
.rv3-footer__cta-text {
  flex: 1 1 380px;
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-2);
}
.rv3-footer__cta-title {
  font-size: var(--rv3-fs-3xl);
  font-weight: var(--rv3-fw-bold);
  font-stretch: var(--rv3-wdth-szeroki);
  letter-spacing: var(--rv3-tracking-heading);
  line-height: var(--rv3-lh-tight);
  color: var(--rv3-header-ink);
  text-wrap: balance;
}
.rv3-footer__cta-lead {
  font-size: var(--rv3-fs-md);
  color: var(--rv3-header-ink-2);
  text-wrap: pretty;
}
.rv3-footer__cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rv3-space-5);
}
.rv3-footer__main {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--rv3-space-13) 32px;
  padding-top: var(--rv3-space-14);
  padding-bottom: var(--rv3-space-13);
}
.rv3-footer__brand {
  grid-column: span 2;
  display: flex;
  flex-direction: column;
  gap: 18px;
  max-width: 420px;
  min-width: 0;
}
/* Szerokość z max-width, wysokość z proporcji (atrybuty width/height) – stała wysokość przy
   max-width:100% ściskała logo w poziomie, gdy kolumna była węższa od niego. */
.rv3-footer__brand img {
  display: block;
  width: 264px;
  max-width: 100%;
  height: auto;
  align-self: flex-start;
  /* oryginalne logo; luminosity zabarwia gwiazdkę i litery tonem stopki */
  opacity: 0.3;
  mix-blend-mode: luminosity;
}
.rv3-footer__brand p {
  font-size: var(--rv3-fs-md);
  line-height: var(--rv3-lh-relaxed);
  color: var(--rv3-footer-body);
  text-wrap: pretty;
}
.rv3-footer__col {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-6);
}
.rv3-footer__heading {
  font-size: var(--rv3-fs-sm);
  font-weight: var(--rv3-fw-bold);
  letter-spacing: var(--rv3-tracking-overline);
  text-transform: uppercase;
  color: var(--rv3-footer-heading);
}
.rv3-footer__links {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-4);
  font-size: var(--rv3-fs-base);
}
.rv3-footer__links a {
  color: var(--rv3-footer-link);
  transition: color var(--rv3-transition);
}
.rv3-footer__links a:hover {
  color: var(--rv3-footer-link-hover);
}
.rv3-footer__form {
  display: flex;
  gap: var(--rv3-space-3);
}
.rv3-footer__field {
  flex: 1;
  min-width: 0;
  background: var(--rv3-footer-field);
  border: 1px solid var(--rv3-footer-field-border);
  border-radius: var(--rv3-radius-md);
  padding: 11px 14px;
  font-size: var(--rv3-fs-base);
  color: var(--rv3-footer-heading);
  outline: none;
}
.rv3-footer__field::placeholder {
  color: var(--rv3-footer-meta);
}
.rv3-footer__field:focus {
  border-color: var(--rv3-footer-link);
}
.rv3-footer__social {
  display: flex;
  gap: var(--rv3-space-4);
}
.rv3-footer__social a {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--rv3-footer-social-border);
  color: var(--rv3-footer-heading);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  transition: border-color var(--rv3-transition);
}
.rv3-footer__social a:hover {
  border-color: var(--rv3-footer-link);
  color: var(--rv3-footer-heading);
}
/* Duże logo jako znak wodny, przycięte od dołu */
.rv3-footer__watermark {
  height: clamp(70px, 13vw, 190px);
  overflow: hidden;
  pointer-events: none;
}
.rv3-footer__watermark img {
  display: block;
  width: 100%;
  height: auto;
  opacity: 0.07;
  mix-blend-mode: luminosity;
}
.rv3-footer__bottom {
  border-top: 1px solid var(--rv3-footer-rule);
}
.rv3-footer__bottom-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--rv3-space-5) var(--rv3-space-10);
  padding-top: var(--rv3-space-8);
  padding-bottom: var(--rv3-space-8);
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-footer-meta);
}
.rv3-footer__bottom-inner nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rv3-space-8);
}
.rv3-footer__bottom-inner a {
  color: var(--rv3-footer-meta-link);
}
.rv3-footer__bottom-inner a:hover {
  color: var(--rv3-footer-link-hover);
}
@media (max-width: 640px) {
  .rv3-footer__brand {
    grid-column: auto;
  }
}
