/* =========================================================================
   Re-volta v3 – dział stajni (klasy rv3-stajnie-*)
   Ładowany przy przerobionej treści stajni, PO ogloszenia.css (Rv3_Wyglad::ARKUSZE_WSPOLNE) – karty,
   panel filtrów, paski, układ karty stajni i pełny ekran zdjęć są wspólne z ogłoszeniami. Tu tylko to,
   czego ogłoszenia nie mają: wyszukiwarka działu, miasta, mapa z wieloma stajniami, oferty i cena na
   karcie, kontakt bez opiekuna. Kolory wyłącznie przez role (moduly.css: [data-modul="stajnie"]).
   ========================================================================= */

.rv3-stajnie {
  padding-bottom: var(--rv3-space-14);
}
.rv3-stajnie-naglowek {
  align-items: center;
  margin-bottom: var(--rv3-space-8);
}
.rv3-stajnie-naglowek .rv3-h1 {
  margin: 0;
}
.rv3-stajnie-sekcja__glowka {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--rv3-space-2) var(--rv3-space-6);
  margin-bottom: var(--rv3-space-5);
}
.rv3-stajnie-sekcja__glowka .rv3-h2 {
  margin: 0;
}
.rv3-stajnie-sekcja__glowka .rv3-meta {
  margin: 0;
}

/* ---------- Oferty (wolne boksy, jazdy) – plakietki na karcie, w nagłówku i w popupie mapy ---------- */
.rv3-stajnie-oferty {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rv3-space-2);
  margin: 0;
}
.rv3-stajnie-oferty .rv3-badge {
  gap: 5px;
}
.rv3-stajnie-oferty .rv3-badge i {
  font-size: 10px;
}
.rv3-stajnie-oferty--duze .rv3-badge {
  font-size: var(--rv3-fs-sm);
  padding: 4px 10px;
}

/* ---------- Karta stajni (rv3-card + rv3-stajnie-karta) ---------- */
/* Bez zdjęcia: spokojne tło z ikoną zamiast pasków „brak zdjęcia” – 60% stajni nie ma zdjęć,
   lista pełna placeholderów wyglądałaby na zepsutą */
.rv3-stajnie-karta .rv3-media:has(.rv3-stajnie-brak-zdjecia) {
  background: var(--rv3-accent-soft);
}
.rv3-stajnie-brak-zdjecia {
  font-size: 40px;
  color: var(--rv3-accent-ink);
  opacity: 0.35;
}
.rv3-stajnie-karta .rv3-card__meta {
  margin-top: auto;
}
.rv3-stajnie-karta .rv3-card__bottom + .rv3-card__meta {
  margin-top: 0;
}
/* Karta ogłoszenia ma datę z lewej i miejscowość z prawej; tu miejscowość z lewej, odległość z prawej */
.rv3-stajnie-karta .rv3-card__meta > :last-child {
  margin-left: 0;
}
.rv3-stajnie-karta .rv3-card__meta > .rv3-stajnie-karta__odleglosc {
  margin-left: auto;
  white-space: nowrap;
}
.rv3-stajnie-karta__wiecej {
  color: var(--rv3-subtle);
  white-space: nowrap;
}
.rv3-stajnie-karta__cena {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 var(--rv3-space-2);
}
.rv3-stajnie-karta__od {
  font-size: var(--rv3-fs-xs);
  color: var(--rv3-muted);
}
/* Lista: niższy wiersz niż ogłoszenie (mniej treści) – zdjęcie węższe, bez wysokości 300px */
.rv3-stajnie-karta.rv3-card--row > .rv3-media {
  flex-basis: 34%;
  min-width: 240px;
  min-height: 180px;
}
/* Wiersz bez zdjęcia: wąski pas z ikoną zamiast dużego pustego kafla */
.rv3-stajnie-karta.rv3-card--row > .rv3-media:has(.rv3-stajnie-brak-zdjecia) {
  flex: 0 0 120px;
  min-width: 0;
  min-height: 0;
}
.rv3-stajnie-karta.rv3-card--row .rv3-card__body {
  padding: var(--rv3-space-8) var(--rv3-space-9);
}
@media (max-width: 640px) {
  .rv3-stajnie-karta.rv3-card--row > .rv3-media {
    flex-basis: 100%;
    min-width: 0;
    min-height: 0;
  }
  /* Telefon: wiersz bez zdjęcia to sam tekst */
  .rv3-stajnie-karta.rv3-card--row > .rv3-media:has(.rv3-stajnie-brak-zdjecia) {
    display: none;
  }
}

/* ---------- Wyszukiwarka działu ---------- */
.rv3-stajnie-start {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-7);
}
.rv3-stajnie-szukaj {
  background: var(--rv3-surface);
  border-color: var(--rv3-border-card);
}
.rv3-stajnie-szukaj__pola {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: var(--rv3-space-5);
}
.rv3-stajnie-szukaj__gdzie {
  flex: 1 1 320px;
  min-width: 0;
}
.rv3-stajnie-szukaj__promien {
  flex: 0 0 auto;
}
.rv3-stajnie-szukaj .rv3-label {
  display: block;
  margin-bottom: var(--rv3-space-2);
}
/* Pole z pinezką; lista podpowiedzi (rv3-suggest) liczy położenie od przodka z position */
.rv3-stajnie-szukaj__pole {
  position: relative;
}
.rv3-stajnie-szukaj__pole > i {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--rv3-accent-ink);
  pointer-events: none;
}
.rv3-stajnie-szukaj__pole .rv3-input {
  padding-left: 38px;
  min-height: 48px;
  font-size: var(--rv3-fs-md);
}
.rv3-stajnie-szukaj__promien .rv3-select {
  min-height: 48px;
}
.rv3-stajnie-szukaj__przycisk {
  min-height: 48px;
}
.rv3-stajnie-szukaj__oferta {
  margin: var(--rv3-space-6) 0 0;
  padding: 0;
  border: 0;
  min-width: 0;
}
@media (max-width: 640px) {
  .rv3-stajnie-szukaj__promien {
    flex: 1 1 auto;
  }
  .rv3-stajnie-szukaj__promien .rv3-select {
    width: 100%;
  }
  .rv3-stajnie-szukaj__przycisk {
    flex: 1 1 auto;
  }
}

/* Skróty do katalogu (udogodnienia z licznikami) */
.rv3-stajnie-skroty .rv3-label {
  display: block;
  margin-bottom: var(--rv3-space-3);
}
.rv3-stajnie-skroty .rv3-chips {
  align-items: center;
}
.rv3-stajnie-skroty .rv3-chip {
  text-decoration: none;
}

/* Opis okolicy na stronie miasta – tekst do czytania, nie panel */
.rv3-stajnie-opis {
  margin: 0;
  max-width: var(--rv3-text-max);
  font-size: var(--rv3-fs-md);
  line-height: var(--rv3-lh-relaxed);
  color: var(--rv3-text-2);
}

/* ---------- Miasta ---------- */
.rv3-stajnie-miasta__lista {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); /* telefon: dwie kolumny */
  gap: var(--rv3-space-3);
  margin: 0;
  padding: 0;
  list-style: none;
}
.rv3-stajnie-miasto {
  display: flex;
  flex-direction: column;
  gap: 2px;
  height: 100%;
  padding: var(--rv3-space-6) var(--rv3-space-7);
  border: 1px solid var(--rv3-border-card);
  border-inline-color: var(--rv3-ramka-bok, var(--rv3-border-card));
  border-radius: var(--rv3-radius-lg);
  background: var(--rv3-surface);
  color: var(--rv3-text);
  text-decoration: none;
  transition: border-color var(--rv3-transition), color var(--rv3-transition);
}
.rv3-stajnie-miasto:hover {
  border-color: var(--rv3-accent-ink);
  color: var(--rv3-accent-ink);
  text-decoration: none;
}
.rv3-stajnie-miasto__nazwa {
  font-size: var(--rv3-fs-md);
  font-weight: var(--rv3-fw-semibold);
}
.rv3-stajnie-miasto__ile {
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-muted);
}

.rv3-stajnie-wiecej {
  margin: var(--rv3-space-9) 0 0;
  text-align: center;
}

/* ---------- Mapa (panel ze zwijaną mapą) ---------- */
.rv3-stajnie-mapa {
  padding: var(--rv3-space-6) var(--rv3-space-7) var(--rv3-space-7);
  background: var(--rv3-surface);
  border-color: var(--rv3-border-card);
}
.rv3-stajnie-mapa__glowka {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--rv3-space-2) var(--rv3-space-5);
  margin-bottom: var(--rv3-space-5);
}
.rv3-stajnie-mapa__tytul {
  margin: 0;
}
.rv3-stajnie-mapa__tytul i {
  color: var(--rv3-accent-ink);
  margin-right: 4px;
}
.rv3-stajnie-mapa__status {
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-muted);
}
.rv3-stajnie-mapa__przelacznik {
  margin-left: auto;
}
.rv3-stajnie-mapa__mapa {
  height: 420px;
  border-radius: var(--rv3-radius-lg);
  overflow: hidden;
  background: var(--rv3-map-bg);
  z-index: 0; /* kontrolki Leafleta (z-index 400–1000) pod menu topera */
}
.rv3-stajnie-mapa__podpowiedz {
  margin: var(--rv3-space-4) 0 0;
  font-size: var(--rv3-fs-xs);
  color: var(--rv3-subtle);
}
.rv3-stajnie-mapa__gdy-zwinieta,
.rv3-stajnie-mapa.is-zwinieta .rv3-stajnie-mapa__gdy-rozwinieta {
  display: none;
}
.rv3-stajnie-mapa.is-zwinieta .rv3-stajnie-mapa__gdy-zwinieta {
  display: inline;
}
.rv3-stajnie-mapa.is-zwinieta .rv3-stajnie-mapa__mapa,
.rv3-stajnie-mapa.is-zwinieta .rv3-stajnie-mapa__podpowiedz {
  display: none;
}
.rv3-stajnie-mapa.is-zwinieta .rv3-stajnie-mapa__glowka {
  margin-bottom: 0;
}
.rv3-layout__main > .rv3-stajnie-mapa {
  margin-bottom: var(--rv3-space-8);
}
@media (max-width: 640px) {
  .rv3-stajnie-mapa {
    margin-left: calc(-1 * var(--rv3-gutter));
    margin-right: calc(-1 * var(--rv3-gutter));
    padding: var(--rv3-space-6) var(--rv3-gutter);
    border-left: none;
    border-right: none;
    border-radius: 0;
    box-shadow: none;
  }
  .rv3-stajnie-mapa__mapa {
    height: 340px;
  }
}
/* Przycisk „Szukaj w tym obszarze” na mapie (kontrolka Leafleta) */
.rv3-stajnie-mapa .leaflet-control.rv3-stajnie-mapa__obszar {
  margin: 10px 10px 0 0;
  box-shadow: var(--rv3-shadow-pop);
}
/* Klastry punktów */
.rv3-stajnie-klaster {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--rv3-accent);
  color: var(--rv3-on-accent);
  border: 3px solid var(--rv3-surface);
  box-shadow: var(--rv3-shadow-pop);
  font-family: var(--rv3-font);
  font-size: var(--rv3-fs-sm);
  font-weight: var(--rv3-fw-bold);
}
/* Popup */
.rv3-stajnie-popup .leaflet-popup-content {
  margin: 12px;
  font-family: var(--rv3-font);
}
.rv3-stajnie-popup__tresc {
  display: flex;
  flex-direction: column;
  gap: var(--rv3-space-2);
}
.rv3-stajnie-popup__foto img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--rv3-radius-sm);
}
.rv3-stajnie-popup__nazwa {
  font-size: var(--rv3-fs-md);
  font-weight: var(--rv3-fw-semibold);
  line-height: var(--rv3-lh-tight);
  color: var(--rv3-link);
  text-decoration: none;
}
.rv3-stajnie-popup__nazwa:hover {
  color: var(--rv3-link-hover);
}
.rv3-stajnie-popup__miejsce {
  font-size: var(--rv3-fs-xs);
  color: var(--rv3-muted);
}

/* ---------- Katalog: wyniki ---------- */
.rv3-stajnie-wyniki {
  margin: 0 0 var(--rv3-space-7);
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-muted);
}
.rv3-stajnie-wyniki strong {
  color: var(--rv3-text);
  font-size: var(--rv3-fs-md);
}
.rv3-stajnie-lista {
  transition: opacity var(--rv3-transition);
}
.rv3-stajnie-lista.is-ladowanie {
  opacity: 0.5;
  pointer-events: none;
}

/* ---------- Karta stajni (układ i panele z ogloszenia.css, rv3-ogl-*) ---------- */
/* Telefon: kolejność jak na stronie ogłoszenia – udogodnienia w miejscu parametrów, cennik po opisie */
.rv3-stajnie-udogodnienia { order: 4; }
.rv3-stajnie-cennik { order: 6; }

.rv3-stajnie-naglowek__miejsce {
  color: inherit;
  text-decoration: none;
}
.rv3-stajnie-naglowek__miejsce:hover {
  color: var(--rv3-link-hover);
}
.rv3-stajnie-naglowek__miejsce i {
  color: var(--rv3-accent-ink);
  margin-right: 2px;
}
.rv3-stajnia .rv3-stajnie-oferty {
  margin-top: var(--rv3-space-5);
}
.rv3-stajnie-cena {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 var(--rv3-space-3);
  margin: var(--rv3-space-6) 0 0;
}
.rv3-stajnie-cena .rv3-ogl-naglowek__cena {
  margin: 0;
}
.rv3-stajnie-cena__opis {
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-muted);
}
.rv3-stajnie-udostepnij__napis {
  margin-right: var(--rv3-space-2);
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-muted);
}
.rv3-stajnie-przystanek,
.rv3-stajnie-uwaga {
  margin: 0 0 var(--rv3-space-5);
  font-size: var(--rv3-fs-sm);
  color: var(--rv3-muted);
}
.rv3-stajnie-przystanek i {
  color: var(--rv3-accent-ink);
  margin-right: 4px;
}
.rv3-stajnie-uwaga {
  margin: var(--rv3-space-4) 0 0;
}
.rv3-stajnie-bez-opiekuna {
  margin-bottom: var(--rv3-space-7);
}
/* Strona www i profile społecznościowe stajni pod przyciskami kontaktu */
.rv3-stajnie-linki {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rv3-space-2) var(--rv3-space-7);
  margin: var(--rv3-space-7) 0 0;
  padding: var(--rv3-space-6) 0 0;
  border-top: 1px solid var(--rv3-divider-soft);
  list-style: none;
}
.rv3-stajnie-linki a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: var(--rv3-tap);
  font-size: var(--rv3-fs-sm);
  font-weight: var(--rv3-fw-medium);
  color: var(--rv3-link);
  text-decoration: none;
  overflow-wrap: anywhere;
}
.rv3-stajnie-linki a:hover {
  color: var(--rv3-link-hover);
  text-decoration: underline;
}
.rv3-stajnia__okolica {
  margin-top: var(--rv3-space-12);
}
