/* =========================================================================
   Re-volta v3 – moduł ogłoszeń (klasy rv3-oglo-*)
   Ładowany tylko przy przerobionej treści ogłoszeń (Rv3_Wyglad::arkuszModulu).
   ========================================================================= */

/* ---------- Lista: układ ---------- */
.rv3-oglo {
  padding-top: 18px;
}
.rv3-oglo__uklad {
  padding-top: 0;
}
.rv3-oglo__baner {
  grid-column: 1 / -1;
  overflow: hidden;
  text-align: center;
}
.rv3-oglo__baner:empty {
  display: none;
}
.rv3-oglo__baner--panel {
  margin-top: var(--rv3-space-7);
}

/* Polecane (do 30 wyróżnionych pasujących do filtrów) – przewijany pasek .rv3-promo--przewijane,
   style niżej (sekcja „Promowane”). */

/* ---------- Nagłówek listy ---------- */
/* „Filtry (n)” i aktywne filtry nad wynikami – tylko na telefonie (tam panel jest szufladą) */
.rv3-oglo__filtry-btn,
.rv3-oglo__filtry-plywajacy,
.rv3-oglo-aktywne--wyniki {
  display: none;
}
.rv3-oglo-aktywne--wyniki {
  align-items: center;
  margin-bottom: var(--rv3-space-8);
}

/* ---------- Panel filtrów ---------- */
.rv3-oglo-filtry__glowa {
  display: none;
}
.rv3-oglo-grupa {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.rv3-oglo-grupa > legend,
.rv3-oglo-grupa > .rv3-label {
  display: block;
  padding: 0;
  margin-bottom: var(--rv3-space-3);
}
.rv3-oglo-grupa__ile {
  color: var(--rv3-accent-ink);
}
.rv3-oglo-aktywne .rv3-overline {
  margin: 0 0 var(--rv3-space-3);
}
.rv3-oglo-aktywne__wyczysc {
  margin-top: var(--rv3-space-4);
}

/* „Pokaż wyniki” po zmianie filtrów (is-zmieniony, ogloszenia.js) wisi przy dolnej krawędzi ekranu,
   aż przewinie się do jego miejsca w panelu; is-przyklejony – faktycznie wisi (cień).
   Na telefonie szuflada ma własną, stałą wersję (niżej). */
@media (min-width: 761px) {
  /* Własne odstępy paska odejmowane od odstępów panelu – przyklejenie nie przesuwa układu */
  .rv3-oglo-filtry__form.is-zmieniony {
    padding-bottom: calc(var(--rv3-space-9) - var(--rv3-space-5));
  }
  .rv3-oglo-filtry__form.is-zmieniony .rv3-oglo-filtry__przyciski {
    position: sticky;
    bottom: 0;
    z-index: 3;
    margin: calc(var(--rv3-space-9) - var(--rv3-space-5) - 1px) calc(-1 * var(--rv3-space-9)) 0;
    padding: var(--rv3-space-5) var(--rv3-space-9);
    border-top: 1px solid transparent;
    background: var(--rv3-panel);
  }
  .rv3-oglo-filtry__form.is-zmieniony .rv3-oglo-filtry__przyciski.is-przyklejony {
    border-top-color: var(--rv3-divider);
    box-shadow: 0 -6px 16px oklch(30% 0.02 40 / 0.10);
  }
}

/* Liczba wyników na przycisku – w trakcie liczenia poprzednia, przygaszona */
.rv3-oglo-filtry__przyciski .rv3-btn {
  transition: opacity 0.15s;
}
.rv3-oglo-filtry__przyciski .rv3-btn.is-liczy {
  opacity: 0.75;
}

/* Szukaj – lupa w polu */
.rv3-oglo-szukaj {
  position: relative;
}
.rv3-oglo-szukaj .rv3-input {
  padding-right: 42px;
}
.rv3-oglo-szukaj__btn {
  position: absolute;
  top: 50%;
  right: 4px;
  width: 34px;
  height: 34px;
  margin: 0;
  padding: 0;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: var(--rv3-radius-sm);
  background: transparent;
  color: var(--rv3-muted);
  cursor: pointer;
  transition: color var(--rv3-transition);
}
.rv3-oglo-szukaj__btn:hover {
  color: var(--rv3-accent-ink);
}
.rv3-oglo-szukaj__btn:focus-visible {
  outline: 2px solid var(--rv3-accent-ink);
  outline-offset: 0;
}

/* Pola „od – do” (cena, wzrost, wiek) */
.rv3-oglo-od-do {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--rv3-space-2);
  color: var(--rv3-muted);
}
.rv3-oglo-od-do .rv3-input {
  width: 100%;
  min-width: 0;
}
.rv3-oglo-od-do__jednostka {
  font-size: var(--rv3-fs-sm);
}

/* Długa lista opcji – reszta chipów pod „Pokaż wszystkie” */
.rv3-oglo-wiecej {
  margin-top: var(--rv3-space-3);
}
.rv3-oglo-wiecej__przelacznik {
  display: inline-block;
  font-size: var(--rv3-fs-sm);
  font-weight: var(--rv3-fw-semibold);
  color: var(--rv3-link);
  list-style: none;
  cursor: pointer;
}
.rv3-oglo-wiecej__przelacznik::-webkit-details-marker {
  display: none;
}
.rv3-oglo-wiecej__przelacznik:hover {
  color: var(--rv3-link-hover);
}
.rv3-oglo-wiecej[open] > summary {
  margin-bottom: var(--rv3-space-3);
}
/* Z JS (ogloszenia.js, klasa ma-zwin): po rozwinięciu „Pokaż wszystkie” znika,
   a na końcu listy jest „Zwiń”. Bez JS zostaje sam przełącznik <summary>. */
.rv3-oglo-wiecej.ma-zwin[open] > summary {
  display: none;
}
.rv3-oglo-wiecej__zwin {
  margin-top: var(--rv3-space-3);
  padding: 0;
  border: 0;
  background: none;
  font-family: inherit;
}

/* Lokalizacja: miejscowość + promień */
.rv3-oglo-lokalizacja {
  position: relative;
  display: flex;
  gap: var(--rv3-space-2);
}
.rv3-oglo-lokalizacja .rv3-input {
  flex: 1 1 auto;
  min-width: 0;
}
.rv3-oglo-lokalizacja .rv3-select {
  flex: none;
}

/* Kategorie typu */
.rv3-oglo-kategorie {
  margin: 0;
  padding: 0;
  list-style: none;
}
.rv3-oglo-kategorie a {
  display: block;
  padding: 5px 0;
  font-size: var(--rv3-fs-base);
  color: var(--rv3-text-2);
  text-decoration: none;
  transition: color var(--rv3-transition);
}
.rv3-oglo-kategorie a:hover {
  color: var(--rv3-link-hover);
  text-decoration: none;
}
.rv3-oglo-kategorie a[aria-current] {
  color: var(--rv3-accent-ink);
  font-weight: var(--rv3-fw-semibold);
}

/* Suwak ceny (buduje go ogloszenia.js nad checkboxami zakres) – tylko na desktopie;
   wtedy chipy zakresów się chowają. Na telefonie i bez JS zostają chipy. */
.rv3-oglo-suwak {
  margin-top: var(--rv3-space-2);
}
.rv3-oglo-grupa.ma-suwak [data-rv3-cena-chipy] {
  display: none;
}
/* Suwak kwot (cena poza końmi na sprzedaż) – pod polami od / do, które go uzupełniają;
   także na telefonie, bo tam nie ma innej wygodnej alternatywy dla wpisywania kwot */
.rv3-oglo-suwak--kwoty {
  margin-top: var(--rv3-space-5);
}

/* ---------- Karta: dodatki modułu ---------- */
.rv3-oglo-karta__kategoria {
  align-self: flex-start;
  font-size: var(--rv3-fs-xs);
  font-weight: var(--rv3-fw-medium);
  color: var(--rv3-link);
  text-decoration: none;
}
.rv3-oglo-karta__kategoria:hover {
  color: var(--rv3-link-hover);
  text-decoration: none;
}
.rv3-oglo-karta__powiat {
  color: var(--rv3-subtle);
}

/* Płatna galeria na miniaturce (Swiper, buduje ją ogloszenia.js). Nad rozciągniętym linkiem
   karty (z-index 1), pod ♥ i plakietkami (też z-index 2, ale dalej w kodzie). */
.rv3-media .rv3-oglo-galeria {
  position: absolute;
  inset: 0;
  z-index: 2;
}
.rv3-oglo-galeria .swiper-slide {
  display: block;
  position: relative;
}
.rv3-oglo-galeria .swiper-slide img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.rv3-oglo-galeria__nav {
  position: absolute;
  top: 50%;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin-top: -16px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--rv3-overlay);
  color: var(--rv3-overlay-ink);
  font-size: 12px;
  cursor: pointer;
  opacity: 0;
  transition: opacity var(--rv3-transition);
}
.rv3-oglo-galeria__nav--poprz {
  left: 8px;
}
.rv3-oglo-galeria__nav--nast {
  right: 8px;
}
.rv3-card:hover .rv3-oglo-galeria__nav {
  opacity: 1;
}
/* Dotyk: przesuwanie palcem, bez strzałek */
@media (hover: none) {
  .rv3-oglo-galeria__nav {
    display: none;
  }
}
.rv3-oglo-galeria .rv3-oglo-galeria__licznik {
  position: absolute;
  left: auto;
  right: 10px;
  bottom: 10px;
  z-index: 3;
  width: auto;
  padding: 2px 8px;
  border-radius: var(--rv3-radius-pill);
  background: var(--rv3-overlay);
  color: var(--rv3-overlay-ink);
  font-size: var(--rv3-fs-2xs);
  font-weight: var(--rv3-fw-medium);
  line-height: 1.4;
}

/* ---------- Pusty wynik ---------- */
.rv3-oglo-pusto {
  padding: var(--rv3-space-14) var(--rv3-space-8);
  border: 1px solid var(--rv3-border-card);
  border-inline-color: var(--rv3-ramka-bok, var(--rv3-border-card));
  border-radius: var(--rv3-radius-xl);
  background: var(--rv3-surface);
  text-align: center;
}
.rv3-oglo-pusto__ikona {
  font-size: 40px;
  color: var(--rv3-faint);
}
.rv3-oglo-pusto .rv3-h2 {
  margin: var(--rv3-space-7) 0 var(--rv3-space-3);
}
.rv3-oglo-pusto p {
  margin: 0 auto;
  max-width: 460px;
  color: var(--rv3-muted);
}
.rv3-oglo-pusto__akcje {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--rv3-space-3);
  margin-top: var(--rv3-space-10);
}

/* ---------- Telefon: panel filtrów jako szuflada ---------- */
/* Bez JS otwiera ją :target (#rv3-filtry), z JS klasa is-open (menu.js, data-rv3-drawer). */
@media (max-width: 760px) {
  /* „Filtry” wypełnione kolorem modułu, razem z sortowaniem na całą szerokość */
  .rv3-pagehead__tools {
    width: 100%;
    flex-wrap: nowrap;
  }
  .rv3-oglo__filtry-btn {
    display: inline-flex;
    flex: 1 1 0;
    justify-content: center;
  }
  .rv3-pagehead__tools .rv3-select {
    flex: 1 1 0;
    min-width: 0;
  }
  .rv3-oglo__filtry-btn .rv3-badge,
  .rv3-oglo__filtry-plywajacy .rv3-badge {
    margin-left: var(--rv3-space-1);
    background: var(--rv3-on-accent);
    color: var(--rv3-accent-ink);
  }
  /* Pływający „Filtry” – pokazuje go ogloszenia.js (is-widoczny), gdy przycisk w nagłówku zniknie
     z ekranu, a stopka jeszcze nie weszła; chowa się przy otwartej szufladzie */
  .rv3-oglo__filtry-plywajacy {
    position: fixed;
    left: 50%;
    bottom: calc(16px + env(safe-area-inset-bottom));
    z-index: 900;
    display: inline-flex;
    padding-left: var(--rv3-space-9);
    padding-right: var(--rv3-space-9);
    border-radius: var(--rv3-radius-pill);
    box-shadow: var(--rv3-shadow-pop);
    transform: translate(-50%, 160%);
    opacity: 0;
    pointer-events: none;
    transition: transform var(--rv3-transition), opacity var(--rv3-transition);
  }
  .rv3-oglo__filtry-plywajacy.is-widoczny {
    transform: translate(-50%, 0);
    opacity: 1;
    pointer-events: auto;
  }
  .rv3-drawer-otwarty .rv3-oglo__filtry-plywajacy {
    opacity: 0;
    pointer-events: none;
  }
  .rv3-oglo-aktywne--wyniki {
    display: flex;
    flex-wrap: wrap;
  }
  .rv3-oglo__widok {
    display: none;
  }
  .rv3-oglo-suwak:not(.rv3-oglo-suwak--kwoty) {
    display: none;
  }
  .rv3-oglo-grupa.ma-suwak [data-rv3-cena-chipy] {
    display: flex;
  }

  .rv3-oglo-filtry {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1060;
    max-width: none;
    margin: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--rv3-page);
  }
  .rv3-oglo-filtry:target,
  .rv3-oglo-filtry.is-open {
    display: block;
  }
  .rv3-oglo-filtry__glowa {
    position: sticky;
    top: 0;
    z-index: 3;
    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-oglo-filtry__tytul {
    margin: 0;
    font-size: var(--rv3-fs-lg);
    font-weight: var(--rv3-fw-semibold);
  }
  .rv3-oglo-filtry__zamknij {
    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;
    text-decoration: none;
  }
  .rv3-oglo-filtry__zamknij:hover {
    border-color: var(--rv3-header-ink);
    color: var(--rv3-header-ink);
  }
  .rv3-oglo-filtry__form {
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    padding: var(--rv3-space-7) var(--rv3-gutter) 0;
  }
  /* „Pokaż wyniki” zawsze pod ręką */
  .rv3-oglo-filtry__przyciski {
    position: sticky;
    bottom: 0;
    z-index: 3;
    margin-left: calc(-1 * var(--rv3-gutter));
    margin-right: calc(-1 * var(--rv3-gutter));
    padding: var(--rv3-space-5) var(--rv3-gutter);
    border-top: 1px solid var(--rv3-divider);
    background: var(--rv3-page);
  }
  .rv3-oglo__baner--panel {
    display: none;
  }
}

/* =========================================================================
   Strona ogłoszenia (etap 3b, ogloszenia/rv3/ogloszenie.tpl)
   ========================================================================= */

.rv3-ogl {
  padding-top: 18px;
  padding-bottom: var(--rv3-space-14);
}
.rv3-ogl__komunikat {
  margin-bottom: var(--rv3-space-8);
}

/* Układ: telefon / tablet – jedna kolumna, oba kontenery „znikają” (display: contents),
   a kolejność elementów ustala order. Od 900px – treść + panel. */
.rv3-ogl__uklad {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-8);
}
.rv3-ogl__tresc,
.rv3-ogl__bok,
.rv3-ogl__przyklejone {
  display: contents;
}
.rv3-ogl-galeria { order: 1; }
.rv3-ogl-naglowek { order: 2; }
.rv3-ogl-filmy { order: 3; }
.rv3-ogl-parametry { order: 4; }
.rv3-ogl-opis { order: 6; }
.rv3-ogl__baner--opis { order: 6; }
.rv3-ogl-kontakt { order: 7; }
.rv3-ogl__przyklejone { order: 7; }
.rv3-ogl__baner--bok { order: 8; }
.rv3-ogl-lokalizacja { order: 9; }
.rv3-ogl-info { order: 10; }
.rv3-ogl__baner--opis {
  display: none;
}
.rv3-ogl__baner {
  text-align: center;
  overflow: hidden;
}
.rv3-ogl__baner:empty {
  display: none;
}

@media (min-width: 900px) {
  .rv3-ogl__uklad {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    align-items: stretch;
    gap: var(--rv3-main-gap);
  }
  .rv3-ogl__tresc,
  .rv3-ogl__bok {
    display: flex;
    flex-direction: column;
    gap: var(--rv3-space-8);
    min-width: 0;
  }
  .rv3-ogl__baner--opis {
    display: block;
  }
  .rv3-ogl__przyklejone {
    display: flex;
    flex-direction: column;
    gap: var(--rv3-space-8);
  }
}
/* Kontakt z banerem pod nim towarzyszą przy przewijaniu długiej treści (tytuł odjeżdża). Tylko gdy
   oba mieszczą się w oknie – na niskim ekranie dół banera byłby nieosiągalny. */
@media (min-width: 900px) and (min-height: 760px) {
  .rv3-ogl__przyklejone {
    position: sticky;
    top: 20px;
  }
}
@media (min-width: 1200px) {
  .rv3-ogl__uklad {
    grid-template-columns: minmax(0, 1fr) 380px;
  }
}

/* ---------- Sekcje treści ---------- */
.rv3-ogl-sekcja {
  min-width: 0;
}
.rv3-ogl-sekcja__tytul {
  margin-bottom: var(--rv3-space-5);
}
.rv3-ogl-sekcja__licznik {
  color: var(--rv3-subtle);
  font-weight: var(--rv3-fw-regular);
}
/* Nagłówek sekcji z linkiem po prawej (Filmy → „Otwórz odtwarzacz”) */
.rv3-ogl-sekcja__glowka {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--rv3-space-2) var(--rv3-space-5);
  margin-bottom: var(--rv3-space-5);
}
.rv3-ogl-sekcja__glowka .rv3-ogl-sekcja__tytul {
  margin-bottom: 0;
}
.rv3-ogl-sekcja__link {
  font-size: var(--rv3-fs-sm);
  font-weight: var(--rv3-fw-medium);
  color: var(--rv3-link);
  text-decoration: none;
}
.rv3-ogl-sekcja__link i {
  font-size: 11px;
  margin-left: 3px;
}
.rv3-ogl-sekcja__link:hover {
  color: var(--rv3-link-hover);
  text-decoration: none;
}

/* Panele treści i panelu bocznego: białe (--rv3-surface), jaśniejsze niż --rv3-panel.
   Telefon: na pełną szerokość, tylko górna i dolna ramka. */
.rv3-ogl-panel,
.rv3-ogl .rv3-ogl-naglowek,
.rv3-ogl .rv3-ogl-kontakt {
  background: var(--rv3-surface);
  border: 1px solid var(--rv3-border-card);
  border-inline-color: var(--rv3-ramka-bok, var(--rv3-border-card));
  border-radius: var(--rv3-radius-xl);
  box-shadow: var(--rv3-shadow-card);
}
.rv3-ogl-panel {
  padding: var(--rv3-space-9);
}
@media (max-width: 640px) {
  .rv3-ogl-panel,
  .rv3-ogl .rv3-ogl-naglowek,
  .rv3-ogl .rv3-ogl-kontakt {
    margin-left: calc(-1 * var(--rv3-gutter));
    margin-right: calc(-1 * var(--rv3-gutter));
    padding: var(--rv3-space-8) var(--rv3-gutter);
    border-left: none;
    border-right: none;
    border-radius: 0;
    box-shadow: none;
  }
  .rv3-ogl__uklad {
    gap: var(--rv3-space-5);
  }
}

/* ---------- Galeria ---------- */
.rv3-ogl-galeria__glowne {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: var(--rv3-radius-xl);
  background: repeating-linear-gradient(135deg, var(--rv3-media-a) 0 12px, var(--rv3-media-b) 12px 24px);
  display: flex;
  align-items: center;
  justify-content: center;
}
.rv3-ogl-galeria__glowne--puste {
  aspect-ratio: 3 / 1;
}
.rv3-ogl-galeria__swiper {
  position: absolute;
  inset: 0;
}
.rv3-ogl-galeria__swiper .swiper-slide {
  display: block;
  position: relative;
  cursor: zoom-in;
  background: var(--rv3-media-a);
}
.rv3-ogl-galeria__swiper img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.rv3-ogl-galeria__nav,
.rv3-ogl-galeria__pelny {
  position: absolute;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--rv3-overlay);
  color: var(--rv3-overlay-ink);
  font-size: 15px;
  cursor: pointer;
  box-shadow: var(--rv3-shadow-thumb);
}
.rv3-ogl-galeria__nav {
  top: 50%;
  margin-top: -20px;
}
.rv3-ogl-galeria__nav--poprz {
  left: 12px;
}
.rv3-ogl-galeria__nav--nast {
  right: 12px;
}
.rv3-ogl-galeria__pelny {
  top: 12px;
  right: 12px;
  width: 36px;
  height: 36px;
  font-size: 14px;
}
.rv3-ogl-galeria__nav[hidden],
.rv3-ogl-galeria__pelny[hidden] {
  display: none;
}
@media (hover: none) {
  .rv3-ogl-galeria__nav {
    display: none;
  }
}
.rv3-ogl-galeria__licznik {
  position: absolute;
  right: 12px;
  bottom: 12px;
  z-index: 3;
  padding: 3px 10px;
  border-radius: var(--rv3-radius-pill);
  background: var(--rv3-overlay);
  color: var(--rv3-overlay-ink);
  font-size: var(--rv3-fs-xs);
  font-weight: var(--rv3-fw-medium);
}
.rv3-ogl-galeria__top {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 3;
}
.rv3-ogl-galeria__filmy {
  position: absolute;
  left: 12px;
  bottom: 12px;
  z-index: 3;
  font-size: var(--rv3-fs-xs);
  padding: 4px 10px;
  text-decoration: none;
}
.rv3-ogl-galeria__filmy:hover {
  color: var(--rv3-badge-ink);
  text-decoration: none;
}
.rv3-ogl-galeria__miniatury {
  display: flex;
  gap: var(--rv3-space-3);
  margin: var(--rv3-space-4) 0 0;
  padding: 0 0 var(--rv3-space-1);
  list-style: none;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
}
.rv3-ogl-galeria__miniatury li {
  flex: none;
  scroll-snap-align: start;
}
.rv3-ogl-galeria__miniatury a {
  display: block;
  width: 92px;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: var(--rv3-radius-md);
  opacity: 0.75;
  transition: opacity var(--rv3-transition), border-color var(--rv3-transition);
}
.rv3-ogl-galeria__miniatury a:hover,
.rv3-ogl-galeria__miniatury a[aria-current] {
  opacity: 1;
}
.rv3-ogl-galeria__miniatury a[aria-current] {
  border-color: var(--rv3-accent-ink);
}
.rv3-ogl-galeria__miniatury img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 640px) {
  /* Telefon: zdjęcie na pełną szerokość, bez zaokrągleń */
  .rv3-ogl-galeria {
    margin-left: calc(-1 * var(--rv3-gutter));
    margin-right: calc(-1 * var(--rv3-gutter));
  }
  .rv3-ogl-galeria__glowne {
    border-radius: 0;
  }
  .rv3-ogl-galeria__miniatury {
    padding-left: var(--rv3-gutter);
    padding-right: var(--rv3-gutter);
  }
  .rv3-ogl-galeria__miniatury a {
    width: 72px;
  }
}


/* Paski przewijane poziomo (miniatury zdjęć i filmów, promowane): przewijane.js dokłada przeciąganie
   myszą i klasy krawędzi – na promowanych wygaszona krawędź pokazuje, że dalej jest więcej
   (miniatury bez wygaszania). */
[data-rv3-przeciagane].is-przewijane {
  cursor: grab;
}
[data-rv3-przeciagane].is-ciagniete {
  cursor: grabbing;
  scroll-snap-type: none;
  user-select: none;
}
[data-rv3-przeciagane].is-ciagniete a {
  pointer-events: none;
}
[data-rv3-przeciagane] img {
  -webkit-user-drag: none;
  user-select: none;
}
.rv3-promo__grid[data-rv3-przeciagane].ma-dalej {
  -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 20px), transparent);
  mask-image: linear-gradient(to right, #000 calc(100% - 20px), transparent);
}
.rv3-promo__grid[data-rv3-przeciagane].ma-wczesniej {
  -webkit-mask-image: linear-gradient(to right, transparent, #000 20px);
  mask-image: linear-gradient(to right, transparent, #000 20px);
}
.rv3-promo__grid[data-rv3-przeciagane].ma-wczesniej.ma-dalej {
  -webkit-mask-image: linear-gradient(to right, transparent, #000 20px, #000 calc(100% - 20px), transparent);
  mask-image: linear-gradient(to right, transparent, #000 20px, #000 calc(100% - 20px), transparent);
}
/* Pełny ekran (buduje ogloszenie.js). Zawsze ciemny – niezależnie od motywu. */
.rv3-ogl-pelny {
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: flex;
  flex-direction: column;
  background: oklch(14% 0.01 60 / 0.96);
  color: #fff;
}
.rv3-ogl-pelny[hidden] {
  display: none;
}
.rv3-ogl-pelny__gora {
  display: flex;
  align-items: center;
  gap: var(--rv3-space-5);
  padding: 10px 14px;
  font-size: var(--rv3-fs-sm);
}
.rv3-ogl-pelny__tytul {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  opacity: 0.85;
}
.rv3-ogl-pelny__licznik {
  flex: none;
  font-variant-numeric: tabular-nums;
}
.rv3-ogl-pelny__zamknij,
.rv3-ogl-pelny__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: oklch(100% 0 0 / 0.12);
  color: #fff;
  font-size: 18px;
  cursor: pointer;
  transition: background-color var(--rv3-transition);
}
.rv3-ogl-pelny__zamknij:hover,
.rv3-ogl-pelny__nav:hover {
  background: oklch(100% 0 0 / 0.24);
}
.rv3-ogl-pelny__zamknij:focus-visible,
.rv3-ogl-pelny__nav:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
.rv3-ogl-pelny__scena {
  position: relative;
  flex: 1;
  min-height: 0;
}
.rv3-ogl-pelny__scena .swiper-container {
  width: 100%;
  height: 100%;
}
.rv3-ogl-pelny__scena .swiper-slide {
  position: relative;
}
.rv3-ogl-pelny__scena img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.rv3-ogl-pelny__nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  margin-top: -22px;
}
.rv3-ogl-pelny__nav--poprz {
  left: 14px;
}
.rv3-ogl-pelny__nav--nast {
  right: 14px;
}
@media (hover: none) {
  .rv3-ogl-pelny__nav {
    display: none;
  }
}
html.rv3-ogl-pelny-otwarty {
  overflow: hidden;
}

/* ---------- Filmy ---------- */
.rv3-ogl-filmy__ekran {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--rv3-radius-lg);
  background: #000;
}
.rv3-ogl-filmy__ekran--pionowy {
  aspect-ratio: 9 / 16;
  width: min(100%, calc(80vh * 9 / 16));
  margin: 0 auto;
}
.rv3-ogl-filmy__ekran iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.rv3-ogl-filmy__okladka {
  position: absolute;
  inset: 0;
  display: block;
}
.rv3-ogl-filmy__okladka img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.9;
}
.rv3-ogl-filmy__play {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 68px;
  height: 68px;
  margin: -34px 0 0 -34px;
  border-radius: 50%;
  background: var(--rv3-badge-video);
  color: var(--rv3-badge-ink);
  font-size: 24px;
  box-shadow: var(--rv3-shadow-pop);
}
.rv3-ogl-filmy__play i {
  margin-left: 4px;
}
.rv3-ogl-filmy__lista {
  display: flex;
  gap: var(--rv3-space-3);
  margin: var(--rv3-space-4) 0 0;
  padding: 0 0 var(--rv3-space-1);
  list-style: none;
  overflow-x: auto;
  scrollbar-width: thin;
}
.rv3-ogl-filmy__lista li {
  flex: none;
}
.rv3-ogl-filmy__lista a {
  position: relative;
  display: block;
  width: 136px;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: var(--rv3-radius-md);
  background: #000;
}
.rv3-ogl-filmy__lista a[aria-current] {
  border-color: var(--rv3-accent-ink);
}
.rv3-ogl-filmy__lista img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.85;
}
.rv3-ogl-filmy__nr {
  position: absolute;
  right: 4px;
  bottom: 4px;
  padding: 1px 6px;
  border-radius: var(--rv3-radius-xs);
  background: oklch(0% 0 0 / 0.6);
  color: #fff;
  font-size: var(--rv3-fs-2xs);
  line-height: 1.4;
}

/* ---------- Parametry ---------- */
.rv3-ogl-parametry__lista {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  column-gap: var(--rv3-space-12);
  margin: 0;
}
.rv3-ogl-parametry__lista > div {
  display: flex;
  justify-content: space-between;
  gap: var(--rv3-space-5);
  padding: 9px 0;
  border-bottom: 1px solid var(--rv3-divider-soft);
}
.rv3-ogl-parametry__lista dt {
  color: var(--rv3-muted);
}
.rv3-ogl-parametry__lista dd {
  margin: 0;
  font-weight: var(--rv3-fw-medium);
  text-align: right;
}

/* ---------- Cechy konia ---------- */
.rv3-ogl-cechy {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--rv3-space-8);
}
.rv3-ogl-parametry__lista + .rv3-ogl-cechy {
  margin-top: var(--rv3-space-9);
}
.rv3-ogl-cechy__grupa .rv3-label {
  margin-bottom: var(--rv3-space-3);
}
.rv3-ogl-cechy__lista {
  margin: 0;
  padding: 0;
  list-style: none;
}
.rv3-ogl-cechy__lista li + li {
  margin-top: var(--rv3-space-2);
}
/* Link do listy z tym filtrem, ale wygląda jak zwykły tekst – kolor dopiero po najechaniu */
.rv3-ogl-cechy__cecha {
  display: inline-flex;
  align-items: baseline;
  gap: var(--rv3-space-3);
  color: var(--rv3-text);
  text-decoration: none;
}
.rv3-ogl-cechy__cecha i {
  flex: none;
  color: var(--rv3-ok);
  font-size: 11px;
}
.rv3-ogl-cechy__cecha:hover {
  color: var(--rv3-accent-ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ---------- Opis ---------- */
.rv3-ogl-opis__tekst {
  max-width: var(--rv3-text-max);
  font-size: var(--rv3-fs-md);
  line-height: var(--rv3-lh-relaxed);
  overflow-wrap: anywhere;
}

/* ---------- Lokalizacja ---------- */
.rv3-ogl-lokalizacja__nazwa {
  margin: 0 0 var(--rv3-space-5);
}
.rv3-ogl-lokalizacja__nazwa i {
  color: var(--rv3-accent-ink);
}
.rv3-ogl-lokalizacja__nazwa span {
  color: var(--rv3-muted);
}
.rv3-ogl-lokalizacja__mapa {
  position: relative;
  z-index: 0;
  height: 300px;
  overflow: hidden;
  border: 1px solid var(--rv3-border-card);
  border-radius: var(--rv3-radius-lg);
  background: var(--rv3-map-bg);
}

/* ---------- Informacje ---------- */
.rv3-ogl-info__lista {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: var(--rv3-space-4) var(--rv3-space-8);
  margin: 0 0 var(--rv3-space-5);
  font-size: var(--rv3-fs-sm);
}
.rv3-ogl-info__lista dt {
  color: var(--rv3-muted);
  font-size: var(--rv3-fs-xs);
}
.rv3-ogl-info__lista dd {
  margin: 0;
}
.rv3-ogl-info__zglos {
  margin: 0;
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-muted);
}

/* ---------- Panel: nagłówek ---------- */
.rv3-ogl-naglowek {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-4);
}
.rv3-ogl-naglowek__tytul {
  margin: 0;
  font-size: var(--rv3-fs-2xl);
  font-weight: var(--rv3-fw-heading);
  letter-spacing: var(--rv3-tracking-heading);
  line-height: var(--rv3-lh-tight);
  overflow-wrap: anywhere;
}
.rv3-ogl-naglowek__cechy {
  margin: 0;
  color: var(--rv3-muted);
  font-size: var(--rv3-fs-base);
}
.rv3-ogl-naglowek__cena {
  margin: var(--rv3-space-2) 0 0;
  font-size: var(--rv3-fs-3xl);
}
/* ID i data nad tytułem */
.rv3-ogl-naglowek__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--rv3-space-3);
  margin: 0;
  font-size: var(--rv3-fs-xs);
  color: var(--rv3-muted);
}
.rv3-ogl-naglowek__id {
  padding: 2px 8px;
  border-radius: var(--rv3-radius-xs);
  background: var(--rv3-accent-soft);
  color: var(--rv3-accent-ink);
  font-weight: var(--rv3-fw-semibold);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
}
/* Obserwuj + udostępnianie w jednym wierszu */
.rv3-ogl-naglowek__akcje {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--rv3-space-3);
  margin-top: var(--rv3-space-3);
}
.rv3-ogl-naglowek__obserwuj {
  flex: 1 1 140px;
  justify-content: center;
  padding-left: 12px;
  padding-right: 12px;
  white-space: nowrap;
}
/* Oba napisy zajmują tę samą komórkę – przycisk ma zawsze szerokość dłuższego („Obserwujesz”) */
.rv3-ogl-obserwuj__napisy {
  display: inline-grid;
}
.rv3-ogl-obserwuj__napisy > span {
  grid-area: 1 / 1;
  text-align: center;
}
.rv3-ogl-naglowek__obserwuj[aria-pressed="true"] .rv3-ogl-obserwuj__nie,
.rv3-ogl-naglowek__obserwuj:not([aria-pressed="true"]) .rv3-ogl-obserwuj__tak {
  visibility: hidden;
}
.rv3-ogl-udostepnij {
  display: flex;
  gap: var(--rv3-space-2);
}
.rv3-ogl-udostepnij__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 40px;
  padding: 0;
  border: 1px solid var(--rv3-border);
  border-radius: var(--rv3-radius-sm);
  background: var(--rv3-surface);
  color: var(--rv3-text-2);
  font-size: 16px;
  text-decoration: none;
  cursor: pointer;
  transition: border-color var(--rv3-transition), color var(--rv3-transition);
}
.rv3-ogl-udostepnij__btn:hover,
.rv3-ogl-udostepnij__btn.is-skopiowane {
  border-color: var(--rv3-accent-ink);
  color: var(--rv3-accent-ink);
  text-decoration: none;
}
.rv3-ogl-udostepnij__btn:focus-visible {
  outline: 2px solid var(--rv3-accent-ink);
  outline-offset: 2px;
}
.rv3-ogl-udostepnij__btn[hidden] {
  display: none;
}
.rv3-ogl-udostepnij__stan {
  margin: 0;
  font-size: var(--rv3-fs-xs);
  color: var(--rv3-ok);
}
.rv3-ogl-udostepnij__stan:empty {
  display: none;
}
.rv3-ogl-naglowek__obserwuj[aria-pressed="true"] {
  border-color: var(--rv3-accent-ink);
  color: var(--rv3-accent-ink);
}

/* ---------- Panel: kontakt ---------- */
.rv3-ogl-kontakt {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-5);
}
.rv3-ogl-sprzedawca {
  display: flex;
  align-items: center;
  gap: var(--rv3-space-5);
  color: var(--rv3-text);
  text-decoration: none;
}
.rv3-ogl-sprzedawca:hover {
  text-decoration: none;
}
.rv3-ogl-sprzedawca:hover strong {
  color: var(--rv3-link-hover);
}
.rv3-ogl-sprzedawca__avatar {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  overflow: hidden;
  border-radius: 50%;
  background: var(--rv3-accent-soft);
  color: var(--rv3-accent-ink);
  font-size: var(--rv3-fs-lg);
  font-weight: var(--rv3-fw-bold);
}
.rv3-ogl-sprzedawca__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.rv3-ogl-sprzedawca__dane {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.rv3-ogl-sprzedawca__dane strong {
  font-size: var(--rv3-fs-md);
  transition: color var(--rv3-transition);
}
.rv3-ogl-sprzedawca__online,
.rv3-ogl-sprzedawca__profil {
  font-size: var(--rv3-fs-xs);
  color: var(--rv3-muted);
}
.rv3-ogl-sprzedawca__online::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 5px;
  border-radius: 50%;
  background: var(--rv3-ok);
}
.rv3-ogl-kontakt__miejsce {
  color: var(--rv3-text-2);
  font-size: var(--rv3-fs-sm);
  text-decoration: none;
}
.rv3-ogl-kontakt__miejsce i {
  color: var(--rv3-accent-ink);
  margin-right: 3px;
}
.rv3-ogl-kontakt__miejsce:hover {
  color: var(--rv3-link-hover);
  text-decoration: none;
}
.rv3-ogl-kontakt__akcje {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-3);
}
.rv3-ogl-kontakt__akcje .rv3-btn {
  justify-content: center;
}
.rv3-ogl-kontakt__akcje a.rv3-btn {
  text-decoration: none;
}
.rv3-ogl-wiadomosc > summary {
  list-style: none;
  cursor: pointer;
}
.rv3-ogl-wiadomosc > summary::-webkit-details-marker {
  display: none;
}
.rv3-ogl-wiadomosc[open] > summary {
  border-color: var(--rv3-accent-ink);
  color: var(--rv3-accent-ink);
}
.rv3-ogl-wiadomosc__tresc {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-3);
  padding-top: var(--rv3-space-4);
}
.rv3-ogl-wiadomosc__tresc form {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-3);
  margin: 0;
}
/* Niezalogowany: zaproszenie do logowania zamiast formularza wiadomości */
.rv3-ogl-logowanie {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--rv3-space-4);
  padding: var(--rv3-space-7) var(--rv3-space-6);
  border-radius: var(--rv3-radius-lg);
  background: var(--rv3-accent-soft);
  text-align: center;
}
.rv3-ogl-logowanie__ikona {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--rv3-surface);
  color: var(--rv3-accent-ink);
  font-size: 22px;
}
.rv3-ogl-logowanie__tekst {
  margin: 0;
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-text-2);
  line-height: var(--rv3-lh-body);
}
.rv3-ogl-logowanie__tekst strong {
  display: block;
  margin-bottom: 2px;
  font-size: var(--rv3-fs-md);
  color: var(--rv3-text);
}
.rv3-ogl-logowanie__konto {
  margin: 0;
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-muted);
}
.rv3-ogl-logowanie__konto a {
  color: var(--rv3-link);
  font-weight: var(--rv3-fw-semibold);
}
.rv3-ogl-kontakt__uwaga {
  margin: 0;
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-muted);
}
.rv3-ogl-kontakt__profil {
  justify-content: center;
  margin-top: calc(-1 * var(--rv3-space-2));
  text-decoration: none;
}
.rv3-ogl-kontakt__profil:hover {
  text-decoration: none;
}
.rv3-ogl-moderacja {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--rv3-space-2);
  padding-top: var(--rv3-space-5);
  border-top: 1px dashed var(--rv3-error-border);
  font-size: var(--rv3-fs-sm);
}
.rv3-ogl-moderacja a,
.rv3-ogl-moderacja .rv3-btn--link {
  padding: 0;
  color: var(--rv3-error);
  font-size: var(--rv3-fs-sm);
  font-weight: var(--rv3-fw-semibold);
}
.rv3-ogl-moderacja form {
  margin: 0;
}

/* ---------- Promowane (przewijane poziomo także na desktopie) ---------- */
.rv3-ogl-promowane {
  margin-top: var(--rv3-space-12);
}
@media (min-width: 641px) {
  .rv3-promo--przewijane .rv3-promo__grid {
    grid-auto-flow: column;
    grid-template-columns: none;
    grid-auto-columns: calc((100% - 4 * var(--rv3-space-7)) / 5);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    padding-bottom: var(--rv3-space-2);
  }
  .rv3-promo--przewijane .rv3-promo-card {
    scroll-snap-align: start;
  }
}
@media (min-width: 641px) and (max-width: 1099px) {
  .rv3-promo--przewijane .rv3-promo__grid {
    grid-auto-columns: calc((100% - 2 * var(--rv3-space-7)) / 3);
  }
}
.rv3-promo__nav {
  display: flex;
  gap: var(--rv3-space-2);
}
.rv3-promo__nav[hidden] {
  display: none;
}
@media (max-width: 640px) {
  .rv3-promo__nav {
    display: none;
  }
}

/* ---------- Linki siodeł / strzemion ---------- */
.rv3-oglo-linki {
  margin-top: var(--rv3-space-10);
  padding: var(--rv3-space-8);
  border: 1px solid var(--rv3-panel-border);
  border-inline-color: var(--rv3-ramka-bok, var(--rv3-panel-border));
  border-radius: var(--rv3-radius-xl);
  background: var(--rv3-panel);
}
.rv3-oglo-linki .rv3-h3 {
  margin-bottom: var(--rv3-space-6);
}
.rv3-oglo-linki__kolumny {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--rv3-space-8);
}
.rv3-oglo-linki__naglowek {
  margin-bottom: var(--rv3-space-2);
  font-weight: var(--rv3-fw-bold);
}
.rv3-oglo-linki__lista + .rv3-oglo-linki__naglowek {
  margin-top: var(--rv3-space-6);
}
.rv3-oglo-linki__naglowek a {
  color: var(--rv3-text);
  text-decoration: none;
}
.rv3-oglo-linki__lista {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--rv3-fs-sm);
  line-height: 1.9;
}
.rv3-oglo-linki a {
  color: var(--rv3-link);
  text-decoration: none;
}
.rv3-oglo-linki a:hover {
  color: var(--rv3-link-hover);
  text-decoration: underline;
}

/* ---------- Telefon: pasek kontaktu na dole ekranu ---------- */
.rv3-ogl-pasek {
  display: none;
}
@media (max-width: 899px) {
  .rv3-ogl-pasek {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 900;
    display: flex;
    gap: var(--rv3-space-3);
    padding: 10px var(--rv3-gutter) calc(10px + env(safe-area-inset-bottom));
    background: var(--rv3-surface);
    border-top: 1px solid var(--rv3-border-card);
    box-shadow: var(--rv3-shadow-pop);
    transition: transform var(--rv3-transition);
  }
  .rv3-ogl-pasek .rv3-btn {
    flex: 1;
    justify-content: center;
  }
  .rv3-ogl-pasek.is-ukryty {
    transform: translateY(110%);
  }
  /* Miejsce na pasek, żeby nie zasłaniał dołu stopki */
  body:has(.rv3-ogl-pasek) .rv3-footer {
    padding-bottom: 72px;
  }
}

/* =========================================================================
   Strona filmu / odtwarzacz (ogloszenia/rv3/film.tpl)
   Szeroki ekran: odtwarzacz i ogłoszenie z lewej, siatka filmów z prawej (obszary siatki);
   węższy – jedno pod drugim: odtwarzacz, filmy, ogłoszenie.
   ========================================================================= */
.rv3-film__tytul {
  margin-bottom: var(--rv3-space-6);
  overflow-wrap: anywhere;
}
.rv3-film__uklad {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "odtwarzacz" "lista" "ogloszenie";
  gap: var(--rv3-space-8);
  align-items: start;
}
@media (min-width: 1000px) {
  .rv3-film__uklad {
    grid-template-columns: minmax(0, 1fr) 380px;
    grid-template-areas: "odtwarzacz lista" "ogloszenie lista";
    grid-template-rows: auto 1fr;
    column-gap: var(--rv3-main-gap);
  }
  .rv3-film__uklad--jeden {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "odtwarzacz" "ogloszenie";
    grid-template-rows: auto;
  }
}
.rv3-film__odtwarzacz {
  grid-area: odtwarzacz;
  min-width: 0;
}
.rv3-film__lista {
  grid-area: lista;
  min-width: 0;
}
.rv3-film__ogloszenie {
  grid-area: ogloszenie;
}
.rv3-film__meta {
  margin-top: var(--rv3-space-3);
}
.rv3-film__meta:empty {
  display: none;
}

/* Siatka filmów – rośnie z liczbą filmów, bez przewijania */
.rv3-film__siatka {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: var(--rv3-space-5) var(--rv3-space-4);
  margin: 0;
  padding: 0;
  list-style: none;
}
.rv3-film__siatka a {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-2);
  color: var(--rv3-text-2);
  text-decoration: none;
}
.rv3-film__siatka a:hover {
  color: var(--rv3-link-hover);
  text-decoration: none;
}
.rv3-film__miniatura {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: var(--rv3-radius-md);
  background: #000;
}
.rv3-film__siatka a[aria-current] .rv3-film__miniatura {
  border-color: var(--rv3-accent-ink);
}
.rv3-film__miniatura img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.85;
  transition: opacity var(--rv3-transition);
}
.rv3-film__siatka a:hover img {
  opacity: 1;
}
.rv3-film__play {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin: -17px 0 0 -17px;
  border-radius: 50%;
  background: oklch(0% 0 0 / 0.55);
  color: #fff;
  font-size: 12px;
}
.rv3-film__play i {
  margin-left: 2px;
}
.rv3-film__teraz {
  position: absolute;
  top: 6px;
  left: 6px;
  padding: 1px 7px;
  border-radius: var(--rv3-radius-xs);
  background: var(--rv3-accent);
  color: var(--rv3-on-accent);
  font-size: var(--rv3-fs-2xs);
  font-weight: var(--rv3-fw-bold);
}
.rv3-film__podpis {
  font-size: var(--rv3-fs-xs);
  line-height: var(--rv3-lh-tight);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rv3-film__siatka a[aria-current] .rv3-film__podpis {
  color: var(--rv3-text);
  font-weight: var(--rv3-fw-semibold);
}

/* Skrót ogłoszenia: zdjęcie | opis | przycisk */
.rv3-film__ogloszenie {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  grid-template-areas: "zdjecie opis" "zdjecie przycisk";
  gap: var(--rv3-space-3) var(--rv3-space-8);
  align-items: start;
}
.rv3-film__zdjecie {
  grid-area: zdjecie;
  border-radius: var(--rv3-radius-lg);
}
.rv3-film__opis {
  grid-area: opis;
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-2);
  min-width: 0;
}
.rv3-film__opis .rv3-overline,
.rv3-film__opis p {
  margin: 0;
}
.rv3-film__cena {
  font-size: var(--rv3-fs-2xl);
}
.rv3-film__przycisk {
  grid-area: przycisk;
  justify-self: start;
  align-self: end;
}
.rv3-film__nazwa a {
  color: var(--rv3-text);
  text-decoration: none;
}
.rv3-film__nazwa a:hover {
  color: var(--rv3-link-hover);
}
@media (max-width: 640px) {
  .rv3-film__ogloszenie {
    grid-template-columns: 110px minmax(0, 1fr);
    grid-template-areas: "zdjecie opis" "przycisk przycisk";
    gap: var(--rv3-space-5);
  }
  .rv3-film__przycisk {
    justify-self: stretch;
    justify-content: center;
  }
  .rv3-film__siatka {
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  }
}

/* ---------- Profil użytkownika (/profil/ID/, Ctrl_Ogloszenia::profilRv3) ----------
   Z lewej panel użytkownika (szerszy niż panel filtrów listy), z prawej ogłoszenia – zawsze siatka. */
.rv3-profil .rv3-layout__aside {
  flex-basis: 280px;
  max-width: 320px;
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-7);
}
.rv3-profil__karta {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-7);
}
.rv3-profil__kto {
  display: flex;
  align-items: center;
  gap: var(--rv3-space-5);
}
.rv3-profil__avatar {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  overflow: hidden;
  border-radius: 50%;
  background: var(--rv3-accent-soft);
  color: var(--rv3-accent-ink);
  font-size: var(--rv3-fs-xl);
  font-weight: var(--rv3-fw-bold);
}
.rv3-profil__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.rv3-profil__nazwa {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-1);
  min-width: 0;
  overflow-wrap: anywhere;
}
.rv3-profil__nazwa .rv3-h2 {
  margin: 0;
}
/* Dane: etykieta – wartość w wierszach */
.rv3-profil__dane {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-3);
  margin: 0;
  font-size: var(--rv3-fs-sm);
}
.rv3-profil__dane div {
  display: flex;
  justify-content: space-between;
  gap: var(--rv3-space-5);
}
.rv3-profil__dane dt {
  color: var(--rv3-muted);
}
.rv3-profil__dane dd {
  margin: 0;
  font-weight: var(--rv3-fw-semibold);
  text-align: right;
}
.rv3-profil__linki {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-3);
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--rv3-fs-sm);
}
.rv3-profil__linki a {
  display: inline-flex;
  align-items: center;
  gap: var(--rv3-space-3);
  color: var(--rv3-link);
  font-weight: var(--rv3-fw-medium);
  overflow-wrap: anywhere;
}
.rv3-profil__linki a:hover {
  color: var(--rv3-link-hover);
}
.rv3-profil__linki i {
  width: 18px;
  text-align: center;
  color: var(--rv3-muted);
}
.rv3-profil__opis {
  font-size: var(--rv3-fs-sm);
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.rv3-profil__mapa {
  height: 220px;
}
.rv3-profil__filtry .rv3-select {
  max-width: 260px;
}
/* Telefon: dane użytkownika → ogłoszenia → „O mnie” → lokalizacja (opis i mapka nie odsuwają ogłoszeń) */
@media (max-width: 640px) {
  .rv3-profil .rv3-layout__aside {
    display: contents;
  }
  .rv3-profil__karta,
  .rv3-profil__sekcja {
    flex: 1 1 100%;
    order: 1;
  }
  .rv3-profil .rv3-layout__main {
    order: 2;
  }
  .rv3-profil__sekcja {
    order: 3;
  }
  .rv3-profil__filtry {
    width: 100%;
  }
  .rv3-profil__filtry .rv3-select {
    flex: 1 1 0;
    min-width: 0;
    max-width: none;
  }
}

/* ---------- Strona /ogloszenia/ (Ctrl_Ogloszenia::startRv3) ----------
   Promowane – zwykły panel .rv3-promo; zajawki kategorii – ten sam przewijany pasek, ale bez tła panelu. */
.rv3-oglo-start {
  padding-bottom: var(--rv3-space-14);
}
.rv3-oglo-start__naglowek {
  align-items: center;
  margin-bottom: var(--rv3-space-6);
}
.rv3-oglo-start__dzialy {
  margin-bottom: var(--rv3-space-10);
}
.rv3-oglo-start__dzialy .rv3-chip {
  text-decoration: none;
}
.rv3-oglo-start__ile {
  color: var(--rv3-muted);
  font-weight: var(--rv3-fw-regular);
}
.rv3-oglo-zajawka {
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
}
.rv3-oglo-zajawka .rv3-promo__head {
  margin-bottom: var(--rv3-space-5);
}
.rv3-oglo-zajawka__tytul {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--rv3-space-2) var(--rv3-space-6);
  min-width: 0;
}
.rv3-oglo-zajawka__tytul .rv3-h2 {
  margin: 0;
}
.rv3-oglo-zajawka__tytul .rv3-h2 a {
  color: var(--rv3-text);
  text-decoration: none;
}
.rv3-oglo-zajawka__tytul .rv3-h2 a:hover {
  color: var(--rv3-link-hover);
}
.rv3-oglo-zajawka__wszystkie {
  font-size: var(--rv3-fs-sm);
  font-weight: var(--rv3-fw-medium);
  color: var(--rv3-link);
  text-decoration: none;
  white-space: nowrap;
}
.rv3-oglo-zajawka__wszystkie i {
  font-size: 11px;
  margin-left: 3px;
}
.rv3-oglo-zajawka__wszystkie:hover {
  color: var(--rv3-link-hover);
  text-decoration: none;
}
@media (max-width: 640px) {
  /* Bez panelu: pasek kart od krawędzi do krawędzi ekranu, nagłówek w marginesie strony */
  .rv3-oglo-zajawka {
    margin-left: 0;
    margin-right: 0;
    padding: 0;
  }
  .rv3-oglo-zajawka .rv3-promo__grid {
    margin: 0 calc(-1 * var(--rv3-gutter));
    padding: 0 var(--rv3-gutter) var(--rv3-space-1);
    scroll-padding: 0 var(--rv3-gutter);
  }
}

/* Rodowód konia na karcie („po Ojciec / Matka”, Rv3_Ogloszenia::rodowod) – tylko w widoku listy;
   w siatce karta jest za wąska, przełącznik widoku zmienia tylko klasę rv3-card--row */
.rv3-card:not(.rv3-card--row) .rv3-card__rodowod {
  display: none;
}
/* Przy rodowodzie maść w widoku listy zbędna – widać ją na zdjęciu (w siatce zostaje) */
.rv3-card--row .rv3-card__masc {
  display: none;
}

/* =========================================================================
   Dodaj ofertę (/dodaj/, dodaj/rv3/index.tpl) – kreator wyboru kategorii pytaniami: nad pytaniem „Wstecz”
   i ścieżka wyborów, odpowiedzi jako karty (ikona, nazwa, opis) albo lista kategorii; ?krok=wszystkie –
   działy z kategoriami. Na telefonie karty w jednej kolumnie, lista kategorii w jednej.
   ========================================================================= */
.rv3-dodaj {
  padding-bottom: var(--rv3-space-14);
}
.rv3-dodaj__komunikaty {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-5);
  margin-bottom: var(--rv3-space-8);
}
.rv3-dodaj__komunikaty:empty {
  display: none;
}

/* Wstecz + ścieżka wyborów */
.rv3-dodaj-nawigacja {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--rv3-space-4) var(--rv3-space-7);
  margin-bottom: var(--rv3-space-7);
}
.rv3-dodaj-sciezka {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--rv3-space-1) 0;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-muted);
}
.rv3-dodaj-sciezka li + li::before {
  content: "›";
  margin: 0 var(--rv3-space-3);
  color: var(--rv3-faint);
}
.rv3-dodaj-sciezka a {
  color: var(--rv3-link);
  text-decoration: none;
}
.rv3-dodaj-sciezka a:hover {
  color: var(--rv3-link-hover);
  text-decoration: underline;
}
.rv3-dodaj-sciezka [aria-current] {
  font-weight: var(--rv3-fw-bold);
  color: var(--rv3-text);
}

.rv3-dodaj-pytanie {
  margin: 0 0 var(--rv3-space-8);
  font-size: var(--rv3-fs-2xl);
  font-weight: var(--rv3-fw-heading);
  line-height: var(--rv3-lh-tight);
  color: var(--rv3-text);
}

/* Ikona w kółku – karty odpowiedzi i działy pełnej listy */
.rv3-dodaj-ikona {
  display: grid;
  place-items: center;
  flex: none;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--rv3-accent-soft);
  color: var(--rv3-accent-ink);
  font-size: 19px;
  transition: background var(--rv3-transition), color var(--rv3-transition);
}

/* Odpowiedzi – karty */
.rv3-dodaj-opcje {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: var(--rv3-space-6);
  margin: 0;
  padding: 0;
  list-style: none;
}
.rv3-dodaj-opcje > li {
  display: flex;
}
.rv3-dodaj-opcja {
  flex: 1;
  display: flex;
  align-items: center;
  gap: var(--rv3-space-7);
  min-height: 96px;
  padding: var(--rv3-space-7) var(--rv3-space-8);
  border: 1px solid var(--rv3-border-card);
  border-radius: var(--rv3-radius-xl);
  background: var(--rv3-surface);
  box-shadow: var(--rv3-shadow-card);
  color: var(--rv3-text);
  text-decoration: none;
  transition: border-color var(--rv3-transition), background var(--rv3-transition);
}
a.rv3-dodaj-opcja:hover {
  border-color: var(--rv3-accent-ink);
  background: var(--rv3-accent-soft);
}
a.rv3-dodaj-opcja:hover .rv3-dodaj-ikona {
  background: var(--rv3-accent-ink);
  color: var(--rv3-on-accent);
}
a.rv3-dodaj-opcja:focus-visible {
  outline: 2px solid var(--rv3-accent-ink);
  outline-offset: 2px;
}
.rv3-dodaj-opcja__tresc {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.rv3-dodaj-opcja__nazwa {
  font-size: var(--rv3-fs-md);
  font-weight: var(--rv3-fw-bold);
  line-height: var(--rv3-lh-tight);
}
.rv3-dodaj-opcja__opis {
  font-size: var(--rv3-fs-sm);
  line-height: var(--rv3-lh-body);
  color: var(--rv3-muted);
}
.rv3-dodaj-opcja__kategoria,
.rv3-dodaj-lista__nazwa small {
  font-size: var(--rv3-fs-xs);
  color: var(--rv3-subtle);
}
.rv3-dodaj-opcja__strzalka {
  flex: none;
  font-size: 14px;
  color: var(--rv3-faint);
}
a.rv3-dodaj-opcja:hover .rv3-dodaj-opcja__strzalka {
  color: var(--rv3-accent-ink);
}
.rv3-dodaj-opcja.is-zablokowana {
  box-shadow: none;
  opacity: .8;
}

/* Odpowiedzi – lista kategorii */
.rv3-dodaj-lista {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--rv3-space-4);
  margin: 0;
  padding: 0;
  list-style: none;
}
.rv3-dodaj-lista > li {
  display: flex;
}
.rv3-dodaj-lista__pozycja {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rv3-space-4);
  min-height: 52px;
  padding: var(--rv3-space-4) var(--rv3-space-6);
  border: 1px solid var(--rv3-border-card);
  border-radius: var(--rv3-radius-md);
  background: var(--rv3-surface);
  color: var(--rv3-text);
  font-weight: var(--rv3-fw-semibold);
  text-decoration: none;
  transition: border-color var(--rv3-transition), background var(--rv3-transition);
}
a.rv3-dodaj-lista__pozycja:hover {
  border-color: var(--rv3-accent-ink);
  background: var(--rv3-accent-soft);
  color: var(--rv3-accent-ink);
}
.rv3-dodaj-lista__pozycja > i {
  flex: none;
  font-size: 12px;
  color: var(--rv3-faint);
}
a.rv3-dodaj-lista__pozycja:hover > i {
  color: var(--rv3-accent-ink);
}
.rv3-dodaj-lista__nazwa {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.rv3-dodaj-lista__nazwa small {
  font-weight: var(--rv3-fw-regular);
}
.rv3-dodaj-lista__pozycja.is-zablokowana {
  flex-direction: column;
  align-items: flex-start;
}
.rv3-dodaj-limit {
  font-size: var(--rv3-fs-sm);
  font-weight: var(--rv3-fw-regular);
  color: var(--rv3-warning);
}

.rv3-dodaj-stopka {
  margin: var(--rv3-space-10) 0 0;
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-muted);
}
.rv3-dodaj-stopka:empty {
  display: none;
}

/* Wszystkie kategorie – działy */
.rv3-dodaj__siatka {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: var(--rv3-space-8);
}
.rv3-dodaj-dzial {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-6);
}
.rv3-dodaj-dzial--sprzet {
  grid-column: span 2;
}
.rv3-dodaj-dzial__glowka {
  display: flex;
  align-items: center;
  gap: var(--rv3-space-6);
}
.rv3-dodaj-dzial__glowka .rv3-h3 {
  margin: 0;
}
.rv3-dodaj-dzial__glowka .rv3-dodaj-ikona {
  width: 40px;
  height: 40px;
  font-size: 16px;
}
.rv3-dodaj-dzial__lista {
  margin: 0;
  padding: 0;
  list-style: none;
}
.rv3-dodaj-dzial--sprzet .rv3-dodaj-dzial__lista {
  columns: 2;
  column-gap: var(--rv3-space-7);
}
.rv3-dodaj-dzial__lista li {
  break-inside: avoid;
}
.rv3-dodaj-dzial__lista a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rv3-space-3);
  min-height: 40px;
  padding: var(--rv3-space-2) var(--rv3-space-5);
  margin: 0 calc(-1 * var(--rv3-space-5));
  border-radius: var(--rv3-radius-md);
  color: var(--rv3-text);
  font-size: var(--rv3-fs-base);
  text-decoration: none;
  transition: background var(--rv3-transition), color var(--rv3-transition);
}
.rv3-dodaj-dzial__lista a i {
  flex: none;
  font-size: 11px;
  color: var(--rv3-faint);
}
.rv3-dodaj-dzial__lista a:hover {
  background: var(--rv3-accent-soft);
  color: var(--rv3-accent-ink);
}
.rv3-dodaj-dzial__lista a:hover i {
  color: var(--rv3-accent-ink);
}

@media (max-width: 1100px) {
  .rv3-dodaj__siatka {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .rv3-dodaj .rv3-pagehead .rv3-btn {
    width: 100%;
    justify-content: center;
  }
  .rv3-dodaj-pytanie {
    font-size: var(--rv3-fs-xl);
    margin-bottom: var(--rv3-space-7);
  }
  .rv3-dodaj-opcje,
  .rv3-dodaj-lista {
    grid-template-columns: minmax(0, 1fr);
  }
  .rv3-dodaj-opcja {
    min-height: 0;
    gap: var(--rv3-space-6);
    padding: var(--rv3-space-6);
  }
  .rv3-dodaj-opcja .rv3-dodaj-ikona {
    width: 40px;
    height: 40px;
    font-size: 16px;
  }
  .rv3-dodaj__siatka {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--rv3-space-7);
  }
  .rv3-dodaj-dzial--sprzet {
    grid-column: auto;
  }
  .rv3-dodaj-dzial__lista {
    columns: 2;
    column-gap: var(--rv3-space-5);
  }
  .rv3-dodaj-dzial__lista a {
    font-size: var(--rv3-fs-sm);
  }
}

/* =========================================================================
   Promowanie ogłoszenia (/dodaj/promowanie/ID/ – dodaj/rv3/promowanie.tpl) i strona po dodaniu ogłoszenia
   (dodaj/rv3/dodano.tpl). Wspólne: ogłoszenie z aktywnymi promocjami, opcje jako podłużne wiersze z radiem
   (opis z lewej, cena z prawej; wyróżnienie i promowanie obok siebie), terminy ogłoszenia dnia, podsumowanie z prawej.
   ≤ 960 px: jedna kolumna, podsumowanie jako pasek przyklejony do dołu ekranu (suma + przycisk).
   ========================================================================= */
.rv3-promowanie {
  padding-top: 18px;
  padding-bottom: var(--rv3-space-14);
}
.rv3-promowanie__ogloszenie {
  margin-bottom: var(--rv3-space-9);
}

/* Ogłoszenie: miniatura, numer, tytuł, aktywne promocje */
.rv3-promowanie-ogloszenie {
  display: flex;
  align-items: center;
  gap: var(--rv3-space-7);
}
.rv3-promowanie-ogloszenie__foto {
  flex: none;
  width: 120px;
  border-radius: var(--rv3-radius-md);
}
.rv3-promowanie-ogloszenie__foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.rv3-promowanie-ogloszenie__tresc {
  min-width: 0;
}
.rv3-promowanie-ogloszenie__tresc .rv3-meta {
  margin: 0;
  font-size: var(--rv3-fs-sm);
}
.rv3-promowanie-ogloszenie .rv3-promowanie-ogloszenie__tytul {
  margin: var(--rv3-space-1) 0 0;
  font-size: var(--rv3-fs-lg);
  font-weight: var(--rv3-fw-semibold);
  line-height: var(--rv3-lh-tight);
}
.rv3-promowanie-ogloszenie__tytul a {
  color: var(--rv3-text);
  text-decoration: none;
}
.rv3-promowanie-ogloszenie__tytul a:hover {
  color: var(--rv3-link-hover);
  text-decoration: underline;
}
.rv3-promowanie-ogloszenie .rv3-promowanie-aktywne {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rv3-space-3) var(--rv3-space-7);
  margin: var(--rv3-space-5) 0 0;
  padding: 0;
  list-style: none;
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-muted);
}
.rv3-promowanie-aktywne .rv3-badge {
  margin-right: var(--rv3-space-2);
  padding: 2px 6px;
  font-size: var(--rv3-fs-xs);
}

/* Układ: opcje + podsumowanie */
.rv3-promowanie-formularz > .rv3-alert {
  margin-bottom: var(--rv3-space-8);
}
.rv3-promowanie-uklad {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  align-items: start;
  gap: var(--rv3-main-gap);
}
/* Wyróżnienie i promowanie obok siebie, ogłoszenie dnia i galeria na całą szerokość */
.rv3-promowanie-grupy {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: var(--rv3-space-9);
  min-width: 0;
}
.rv3-promowanie-grupy > :nth-child(n+3) {
  grid-column: 1 / -1;
}

/* Grupa opcji */
.rv3-promowanie-grupa {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-7);
}
.rv3-promowanie-grupa__glowa {
  display: flex;
  align-items: center;
  gap: var(--rv3-space-6);
}
.rv3-promowanie-grupa__glowa > div {
  flex: 1;
  min-width: 0;
}
.rv3-promowanie-grupa__ikona {
  display: grid;
  place-items: center;
  flex: none;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--rv3-accent-soft);
  color: var(--rv3-accent-ink);
  font-size: 18px;
}
.rv3-promowanie-grupa .rv3-promowanie-grupa__nazwa {
  margin: 0;
  font-size: var(--rv3-fs-xl);
  font-weight: var(--rv3-fw-heading);
  line-height: var(--rv3-lh-tight);
  color: var(--rv3-text);
}
.rv3-promowanie-grupa__glowa .rv3-meta {
  margin: var(--rv3-space-1) 0 0;
}
.rv3-promowanie-grupa__aktywna {
  flex: none;
  padding: 3px 8px;
  font-size: var(--rv3-fs-xs);
}
.rv3-promowanie-grupa .rv3-promowanie-grupa__punkty {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rv3-space-2) var(--rv3-space-8);
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-text-2);
}
.rv3-promowanie-grupa__punkty i {
  margin-right: var(--rv3-space-1);
  color: var(--rv3-ok);
}
.rv3-promowanie-grupa .rv3-promowanie-grupa__uwaga {
  margin: 0;
  font-size: var(--rv3-fs-sm);
}

/* Opcja – podłużny wiersz: pole, opis z lewej, cena z prawej */
.rv3-promowanie-opcje,
.rv3-promowanie-dni {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-3);
}
.rv3-promowanie-opcja {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 2px var(--rv3-space-5);
  padding: var(--rv3-space-5) var(--rv3-space-6);
  border: 1px solid var(--rv3-border-card);
  border-radius: var(--rv3-radius-lg);
  background: var(--rv3-surface);
  color: var(--rv3-text);
  cursor: pointer;
  transition: border-color var(--rv3-transition), background var(--rv3-transition), box-shadow var(--rv3-transition);
}
.rv3-promowanie-opcja > input {
  grid-column: 1;
  grid-row: 1 / span 3;
}
.rv3-promowanie-opcja > span {
  grid-column: 2;
}
.rv3-promowanie-opcja > .rv3-promowanie-opcja__cena {
  grid-column: 3;
  grid-row: 1 / span 3;
}
.rv3-promowanie-opcja:hover {
  border-color: var(--rv3-accent-ink);
}
.rv3-promowanie-opcja:has(input:focus-visible) {
  outline: 2px solid var(--rv3-focus-ring);
  outline-offset: 2px;
}
.rv3-promowanie-opcja:has(input:checked) {
  border-color: var(--rv3-accent-ink);
  background: var(--rv3-accent-soft);
  box-shadow: inset 0 0 0 1px var(--rv3-accent-ink);
}
.rv3-promowanie-opcja__nazwa {
  font-size: var(--rv3-fs-md);
  font-weight: var(--rv3-fw-semibold);
  line-height: var(--rv3-lh-tight);
}
.rv3-promowanie-opcja__data {
  font-weight: var(--rv3-fw-regular);
  color: var(--rv3-muted);
}
.rv3-promowanie-opcja__do,
.rv3-promowanie-opcja__stan {
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-muted);
}
.rv3-promowanie-opcja__cena {
  font-size: var(--rv3-fs-lg);
  font-weight: var(--rv3-fw-heading);
  color: var(--rv3-price);
  white-space: nowrap;
}
/* „Bez …” – tylko bez JS (z JS zaznaczoną opcję odznacza ponowne kliknięcie, promowanie.js) */
.rv3-promowanie-opcja--brak {
  border-style: dashed;
  background: transparent;
}
.rv3-promowanie-formularz.is-js .rv3-promowanie-opcja--brak {
  display: none;
}
.rv3-promowanie-opcja--brak .rv3-promowanie-opcja__nazwa {
  font-weight: var(--rv3-fw-medium);
  color: var(--rv3-muted);
}
.rv3-promowanie-opcja--brak:has(input:checked) {
  border-style: solid;
  border-color: var(--rv3-border);
  background: var(--rv3-panel);
  box-shadow: none;
}

/* Ogłoszenie dnia – zajęty termin / rezerwacja w toku */
.rv3-promowanie-opcja.is-niedostepna {
  cursor: not-allowed;
  background: var(--rv3-panel);
  border-color: var(--rv3-divider);
}
.rv3-promowanie-opcja.is-niedostepna:hover {
  border-color: var(--rv3-divider);
}
.rv3-promowanie-opcja.is-niedostepna :is(.rv3-promowanie-opcja__nazwa, .rv3-promowanie-opcja__do, .rv3-promowanie-opcja__data, .rv3-promowanie-opcja__cena) {
  color: var(--rv3-faint);
}
.rv3-promowanie-opcja.is-niedostepna .rv3-promowanie-opcja__cena {
  text-decoration: line-through;
}

.rv3-promowanie-zasady {
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-text-2);
}
.rv3-promowanie-zasady summary {
  cursor: pointer;
  font-weight: var(--rv3-fw-semibold);
  color: var(--rv3-link);
}
.rv3-promowanie-zasady summary:hover {
  color: var(--rv3-link-hover);
}
.rv3-promowanie-zasady ul {
  margin: var(--rv3-space-4) 0 0;
  padding-left: 20px;
}
.rv3-promowanie-zasady li + li {
  margin-top: var(--rv3-space-2);
}
.rv3-promowanie-grupa .rv3-alert__title {
  margin: 0 0 var(--rv3-space-1);
}

/* Podsumowanie */
.rv3-promowanie-podsumowanie {
  position: sticky;
  top: 20px;
}
.rv3-promowanie-podsumowanie .rv3-promowanie-podsumowanie__tytul {
  margin: 0 0 var(--rv3-space-6);
  font-size: var(--rv3-fs-lg);
  font-weight: var(--rv3-fw-heading);
  color: var(--rv3-text);
}
.rv3-promowanie-podsumowanie .rv3-promowanie-lista {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-3);
  margin: 0;
  padding: 0 0 var(--rv3-space-6);
  border-bottom: 1px solid var(--rv3-divider);
  list-style: none;
  font-size: var(--rv3-fs-sm);
}
.rv3-promowanie-lista li {
  display: flex;
  justify-content: space-between;
  gap: var(--rv3-space-4);
}
.rv3-promowanie-lista li span:last-child {
  flex: none;
  font-weight: var(--rv3-fw-semibold);
}
.rv3-promowanie-lista .rv3-promowanie-lista__pusto {
  color: var(--rv3-muted);
}
.rv3-promowanie-podsumowanie .rv3-promowanie-suma {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--rv3-space-4);
  margin: var(--rv3-space-6) 0 var(--rv3-space-2);
  font-size: var(--rv3-fs-md);
  font-weight: var(--rv3-fw-semibold);
}
.rv3-promowanie-suma strong {
  font-size: var(--rv3-fs-2xl);
  font-weight: var(--rv3-fw-heading);
  color: var(--rv3-price);
}
.rv3-promowanie-podsumowanie .rv3-promowanie-podsumowanie__info {
  margin: 0 0 var(--rv3-space-7);
  font-size: var(--rv3-fs-sm);
}
.rv3-promowanie-podsumowanie .rv3-btn:disabled {
  cursor: not-allowed;
  opacity: .55;
}

/* Strona po dodaniu ogłoszenia */
.rv3-promowanie-dodano {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-8);
}
.rv3-promowanie-dodano__glowa {
  display: flex;
  align-items: flex-start;
  gap: var(--rv3-space-7);
}
.rv3-promowanie-dodano__glowa .rv3-meta {
  margin: var(--rv3-space-2) 0 0;
  max-width: var(--rv3-text-max);
}
.rv3-promowanie-dodano__ikona {
  flex: none;
  font-size: 40px;
  line-height: 1;
  color: var(--rv3-ok);
}
.rv3-promowanie-dodano__kopiuj {
  display: flex;
  gap: var(--rv3-space-4);
}
.rv3-promowanie-dodano__kopiuj .rv3-btn {
  flex: none;
}
.rv3-promowanie-dodano__kopiuj .rv3-btn[hidden] {
  display: none;
}
.rv3-promowanie-dodano__akcje {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rv3-space-4);
}
.rv3-promowanie-dodano__zacheta {
  margin-top: var(--rv3-space-12);
}
.rv3-promowanie-dodano__zacheta .rv3-meta {
  margin: var(--rv3-space-2) 0 0;
}

@media (max-width: 1100px) {
  .rv3-promowanie-grupy {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 960px) {
  .rv3-promowanie-uklad {
    grid-template-columns: minmax(0, 1fr);
  }
  /* Pasek u dołu ekranu: suma i przycisk; lista wybranych i opis chowamy */
  .rv3-promowanie-podsumowanie {
    top: auto;
    bottom: 0;
    z-index: 5;
  }
  .rv3-promowanie-podsumowanie__panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0 var(--rv3-space-6);
    padding: var(--rv3-space-6) var(--rv3-space-7);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    box-shadow: var(--rv3-shadow-pop);
  }
  .rv3-promowanie-podsumowanie .rv3-promowanie-podsumowanie__tytul {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }
  .rv3-promowanie-podsumowanie .rv3-promowanie-lista,
  .rv3-promowanie-podsumowanie .rv3-promowanie-podsumowanie__info {
    display: none;
  }
  .rv3-promowanie-podsumowanie .rv3-promowanie-suma {
    margin: 0;
    justify-content: flex-start;
  }
  .rv3-promowanie-podsumowanie .rv3-btn--block {
    width: auto;
  }
}
@media (max-width: 640px) {
  .rv3-promowanie .rv3-pagehead .rv3-btn {
    width: 100%;
    justify-content: center;
  }
  .rv3-promowanie-ogloszenie {
    align-items: flex-start;
    gap: var(--rv3-space-6);
  }
  .rv3-promowanie-ogloszenie__foto {
    width: 88px;
  }
  .rv3-promowanie-grupa__glowa {
    flex-wrap: wrap;
  }
  .rv3-promowanie-grupa__ikona {
    width: 36px;
    height: 36px;
    font-size: 15px;
  }
  .rv3-promowanie-opcja {
    padding: var(--rv3-space-4) var(--rv3-space-5);
  }
  .rv3-promowanie-dodano__glowa {
    gap: var(--rv3-space-5);
  }
  .rv3-promowanie-dodano__ikona {
    font-size: 30px;
  }
  .rv3-promowanie-dodano__kopiuj {
    flex-direction: column;
  }
  .rv3-promowanie-dodano__akcje .rv3-btn {
    flex: 1 1 100%;
    justify-content: center;
  }
  .rv3-promowanie-podsumowanie {
    margin: 0 calc(-1 * var(--rv3-gutter));
  }
  .rv3-promowanie-podsumowanie__panel {
    border-left: none;
    border-right: none;
    border-radius: 0;
  }
  .rv3-promowanie-suma strong {
    font-size: var(--rv3-fs-xl);
  }
}
