/* ==========================================================================
   PROPERTIES (katalog) — nové styly, prefix .cat-
   Načteno AŽ za style.css; nic v něm nepřepisuje. Klidný editoriální tón,
   jedna zlatá akční barva, filtry tichý nástroj nad kartami.
   ========================================================================== */

/* Atribut hidden musí vždy schovat (naše .cat-* display pravidla by ho jinak přebila) */
[hidden] { display: none !important; }

/* Žádné padding-bottom na main — CTA sekce má navazovat přímo na patičku (jako index). */
.cat-main { padding-top: 0; padding-bottom: 0; }

/* Světlá mezera pod dlaždicemi, aby karty nebyly nalepené na tmavou CTA sekci (jako index). */
.cat-main > .container { padding-bottom: var(--space-xl); }

/* ---- HERO — tmavý full-bleed pruh: nadpis + AI hledání v jednom.
   Horní odsazení pod fixní hlavičku bere hero, takže tmavé pozadí navazuje
   na hlavičku bez světlé mezery (jako u detailu). ---- */
.cat-hero {
  background: var(--grad-dark-ink);
  color: var(--text-dark-main);
  padding: clamp(116px, 8vw + 30px, 168px) 0 clamp(40px, 5vw, 64px);
  margin-bottom: var(--space-lg);
}
.cat-hero .eyebrow { color: var(--color-gold-hi); }
.cat-hero .cat-title {
  font-family: var(--font-serif);
  margin-top: var(--space-xs);
  color: var(--text-dark-main);
}
.cat-hero .cat-lead {
  margin-top: 10px;
  font-size: var(--fs-md);
  color: var(--text-dark-muted);
  max-width: 56ch;
}

/* ---- AI hledání uvnitř hera (na tmavém) ---- */
.cat-hero-search { margin-top: var(--space-md); max-width: 760px; }
.cat-hero .concierge-input-wrap {
  align-items: center;
  gap: 6px;
  background-color: var(--bg-dark-surface);
  border: 1.5px solid var(--color-gold-base);        /* výrazný zlatý obrys */
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.38);       /* nadzvednutí od tmavého hero */
}
.cat-hero .concierge-input-wrap:focus-within {
  border-color: var(--color-gold-base);
  box-shadow: 0 0 0 3px rgba(201, 162, 75, 0.20);
}
.cat-hero .concierge-input-wrap > svg { stroke: var(--color-gold-hi); }   /* lupa zlatě */
.cat-hero .concierge-input { color: var(--text-dark-main); }
.cat-hero .concierge-input::placeholder { color: rgba(243, 238, 227, 0.6); }

.cat-ai-mic,
.cat-ai-go {
  flex: none;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 0;
  cursor: pointer;
  border-radius: var(--radius-control);
  transition: background var(--trans-fast), color var(--trans-fast), border-color var(--trans-fast);
}
.cat-ai-mic svg,
.cat-ai-go svg { width: 20px; height: 20px; stroke: currentColor; }

/* Mikrofon = ghost ikona (zatím jen připravená pro pozdější použití) */
.cat-ai-mic { background: none; color: var(--text-dark-muted); }
.cat-ai-mic:hover { color: var(--text-dark-main); background: rgba(243, 238, 227, 0.08); }

/* AI hledání na katalogu: lišta „matches below" + akční tlačítka na tmavém hero. */
.cat-ai-banner {
  margin-top: 12px;
  padding: 10px 14px;
  border-radius: var(--radius-control);
  background: rgba(201, 162, 75, 0.12);
  border: 1px solid rgba(201, 162, 75, 0.35);
  color: var(--text-dark-main);
  font-size: var(--fs-sm);
  line-height: 1.5;
  max-width: 760px;   /* zarovnat na šířku search pole (.cat-hero-search), ať banner nepřečnívá */
}
.cat-ai-banner[hidden] { display: none; }
.cat-ai-banner strong { color: var(--color-gold-hi); }
.cat-ai-banner-ico { display: inline-flex; vertical-align: -3px; margin-right: 3px; }
.cat-ai-banner-ico svg { width: 16px; height: 16px; stroke: var(--color-gold-hi); }

/* Delete = světlejší červená / Last results = zlatě (čitelné na tmavém hero). */
.cat-hero .ai-act-clear { color: #E9846F; border-color: rgba(233, 132, 111, 0.5); }
.cat-hero .ai-act-clear:hover { background: #C74634; color: #fff; border-color: #C74634; }
.cat-hero .ai-act-last { color: var(--color-gold-hi); border-color: rgba(231, 200, 120, 0.5); }
.cat-hero .ai-act-last:hover { background: var(--color-gold-hi); color: var(--color-ink); border-color: var(--color-gold-hi); }

/* Odeslání = decentní tlačítko s minimalistickou SVG šipkou */
.cat-ai-go {
  background: var(--grad-gold);
  border: 1px solid transparent;
  color: var(--color-ink);          /* zlaté tlačítko = jasná výzva k akci */
}
.cat-ai-go:hover {
  filter: brightness(1.08);
  color: var(--color-ink);
}

.cat-ai-hint {
  margin-top: 10px;
  font-size: var(--fs-sm);
  color: var(--text-dark-muted);
}

/* ---- Vlastní roletka (nahrazuje nativní <select>) ---- */
.cat-cselect { position: relative; }
.cat-cselect > select { display: none; }
.cat-cselect-trigger {
  width: 100%;
  min-width: 160px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 12px;
  font-size: var(--fs-base);
  font-family: inherit;
  color: var(--color-espresso);
  background: var(--bg-surface);
  border: 1px solid var(--border-line);
  border-radius: var(--radius-control);
  cursor: pointer;
  text-align: left;
  transition: border-color var(--trans-fast), box-shadow var(--trans-fast);
}
.cat-cselect-trigger:hover { border-color: var(--color-gold-base); }
.cat-cselect.is-open .cat-cselect-trigger {
  border-color: var(--color-gold-base);
  box-shadow: 0 0 0 3px rgba(201, 162, 75, 0.18);
}
.cat-cselect-val { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cat-cselect-val.is-placeholder { color: var(--text-muted); }
.cat-cselect-caret { flex: none; width: 12px; height: 12px; color: var(--text-muted); transition: transform var(--trans-fast); }
.cat-cselect.is-open .cat-cselect-caret { transform: rotate(180deg); }

.cat-cselect-panel {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: 40;
  background: var(--bg-surface);
  border: 1px solid var(--border-line);
  border-radius: var(--radius-card);
  box-shadow: 0 16px 34px rgba(18, 16, 11, 0.14);
  padding: 6px;
  max-height: 280px;
  overflow-y: auto;
  opacity: 0;
  transform: translateY(-6px) scale(0.98);
  transform-origin: top center;
  pointer-events: none;
  transition: opacity var(--trans-fast), transform var(--trans-fast);
}
.cat-cselect.is-open .cat-cselect-panel { opacity: 1; transform: none; pointer-events: auto; }

.cat-cselect-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 10px;
  font-size: var(--fs-base);
  color: var(--text-main);
  border-radius: var(--radius-control);
  cursor: pointer;
  transition: background var(--trans-fast);
}
.cat-cselect-item:hover { background: rgba(201, 162, 75, 0.10); }
.cat-cselect-item.is-selected { color: var(--color-gold-shadow); font-weight: 600; }
.cat-cselect-item.is-selected::after { content: "\2713"; margin-left: auto; }

/* ---- 2. Taby Rent / Sale — hlavní přepínač katalogu, vycentrovaný ---- */
.cat-tabs-center { display: flex; justify-content: center; }
.cat-tabs {
  display: inline-flex;
  gap: 4px;
  padding: 5px;
  margin-bottom: var(--space-md);
  background: var(--grad-dark-ink);
  border: 1px solid var(--border-dark-line);
  border-radius: var(--radius-card);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.25);
}
.cat-tab {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 12px 30px;
  font-family: inherit;
  font-size: var(--fs-md);
  font-weight: 600;
  color: var(--text-dark-muted);
  border-radius: var(--radius-control);
  transition: color var(--trans-fast), background var(--trans-fast), box-shadow var(--trans-fast);
}
.cat-tab svg { width: 18px; height: 18px; flex: none; }
.cat-tab:hover { color: var(--text-dark-main); }
.cat-tab.active {
  background: var(--grad-gold);
  color: var(--color-ink);
  box-shadow: 0 6px 16px rgba(201, 162, 75, 0.30);
}
@media (max-width: 480px) {
  .cat-tabs { display: flex; width: 100%; }
  .cat-tab { flex: 1; justify-content: center; padding: 12px 14px; }
}

/* ---- 3. Pruh filtrů ---- */
.cat-controls {
  display: flex;
  align-items: flex-end;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: var(--space-sm);
}
.cat-basic {
  display: flex;
  align-items: flex-end;
  gap: 14px;
  flex: 1 1 auto;
  flex-wrap: wrap;
}
.cat-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cat-field-price { flex: 1 1 240px; }
.cat-label {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: var(--fs-sm);        /* bylo --fs-xs (10–11px) — málo čitelné, hlavně na mobilu */
  font-weight: 700;               /* bylo 600 */
  letter-spacing: 0.1em;          /* při větším písmu stačí užší tracking */
  text-transform: uppercase;
  color: var(--color-espresso);   /* dark brown (hlavička/patička) místo šedo-černé */
}

.cat-label .cat-ico {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  opacity: 1;                     /* bylo 0.85 — ikona teď ladí s tmavším labelem */
}

.cat-input,
.cat-select {
  height: 44px;
  padding: 0 12px;
  font-size: var(--fs-base);
  font-family: inherit;
  color: var(--color-espresso);
  background: var(--bg-surface);
  border: 1px solid var(--border-line);
  border-radius: var(--radius-control);
  outline: none;
  transition: border-color var(--trans-fast), box-shadow var(--trans-fast);
}
.cat-select { min-width: 160px; cursor: pointer; appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--text-muted) 50%),
                    linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);
  background-position: calc(100% - 18px) 19px, calc(100% - 13px) 19px;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-right: 34px;
}
.cat-input:focus,
.cat-select:focus {
  border-color: var(--color-gold-base);
  box-shadow: 0 0 0 3px rgba(201, 162, 75, 0.18);
}

/* Rozsah od–do */
.cat-range { display: flex; align-items: center; gap: 8px; }
.cat-range .cat-input { width: 100%; min-width: 0; }
.cat-range-sep { color: var(--text-muted); flex: none; }
.cat-price-unit {
  flex: none;
  font-size: var(--fs-sm);
  color: var(--text-muted);
  white-space: nowrap;
}

/* Segmentovaný přepínač (ložnice, parkování) */
.cat-seg { display: inline-flex; border: 1px solid var(--border-line); border-radius: var(--radius-control); overflow: hidden; background: var(--bg-surface); height: 44px; }
.cat-seg button {
  border: 0;
  background: transparent;
  padding: 0 14px;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--text-muted);
  cursor: pointer;
  border-left: 1px solid var(--border-line);
  transition: background var(--trans-fast), color var(--trans-fast);
}
.cat-seg button:first-child { border-left: 0; }
.cat-seg button:hover { color: var(--text-main); }
.cat-seg button.is-active { background: var(--color-ink); color: var(--color-bone); }

/* Tlačítko Všechny filtry */
.cat-morefilters,
.cat-mobilebtn {
  height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 18px;
  font-size: var(--fs-base);
  font-weight: 600;
  color: var(--text-main);
  background: var(--bg-surface);
  border: 1px solid var(--color-ink);
  border-radius: var(--radius-control);
  cursor: pointer;
  transition: background var(--trans-fast);
}
.cat-morefilters:hover,
.cat-mobilebtn:hover { background: rgba(18, 16, 11, 0.05); }

.cat-badge {
  display: inline-grid;
  place-items: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--grad-gold);
  color: var(--color-ink);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.cat-mobilebtn { display: none; width: 100%; justify-content: center; margin-bottom: var(--space-sm); }

/* ---- Plovoucí „Filters" — objeví se po odscrollování filtrů (vlevo dole,
   ať nekoliduje s chat widgetem vpravo dole). Otevře plný filtrační modal. ---- */
.cat-fab {
  position: fixed;
  left: clamp(14px, 3vw, 24px);
  bottom: clamp(14px, 3vw, 24px);
  z-index: 600;                       /* pod modalem (1000), nad obsahem */
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 46px;
  padding: 0 18px;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--color-bone);
  background: var(--grad-dark-ink);
  border: 1px solid var(--color-gold-base);
  border-radius: 999px;
  box-shadow: 0 10px 28px rgba(18, 16, 11, 0.28);
  cursor: pointer;
  opacity: 0;
  transform: translateY(14px);
  pointer-events: none;
  transition: opacity var(--trans-fast), transform var(--trans-fast), box-shadow var(--trans-fast);
}
.cat-fab.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.cat-fab:hover { box-shadow: 0 12px 32px rgba(18, 16, 11, 0.36); }
.cat-fab svg { width: 18px; height: 18px; flex: none; }
.cat-fab .cat-badge { margin-left: 2px; }
/* Desktop: levý okraj FAB zarovnat s obsahem hlavičky (logo) — .header-inner
   má max-width 1360px + padding 40px, tj. levý okraj = 50% − 680px + 40px.
   `50%` (ne 50vw) u fixed prvku počítá bez scrollbaru → sedí s margin:auto hlavičkou.
   max(40px, …) drží FAB uvnitř, ať nikdy nezasahuje vlevo za hlavičku. */
@media (min-width: 1200px) {
  .cat-fab { left: max(40px, calc(50% - 640px)); }
}
@media (prefers-reduced-motion: reduce) {
  .cat-fab { transition: opacity var(--trans-fast); transform: none; }
}

/* ---- 4. Aktivní filtry (čipy) ---- */
.cat-chipsrow {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-bottom: var(--space-sm);
}
.cat-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cat-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 32px;
  padding: 0 6px 0 12px;
  font-size: var(--fs-sm);
  color: var(--text-main);
  background: rgba(201, 162, 75, 0.12);
  border: 1px solid rgba(201, 162, 75, 0.35);
  border-radius: 999px;
}
.cat-chip button {
  border: 0;
  background: none;
  cursor: pointer;
  color: var(--color-gold-shadow);
  font-size: var(--fs-md);
  line-height: 1;
  width: 20px;
  height: 20px;
  border-radius: 50%;
}
.cat-chip button:hover { background: rgba(201, 162, 75, 0.25); }
/* Sdílet vyfiltrovaný list — toggle share komponenty (includes/share.php) jako
   výrazná zlatá pilulka. Desktop slot je vedle „All filters" (v .cat-controls,
   jen >880px); mobilní slot je v řádku chipů (jen ≤880px). Modal je sdílený
   (fixed vycentrovaný) — stejný jako u nemovitosti. */
.cat-share-slot { display: inline-flex; align-items: flex-end; }
@media (min-width: 881px) { .cat-share-slot--mobile { display: none; } }
/* desktop slot se skryje sám s .cat-controls (display:none ≤880px) */

/* Mobil: pruh „Filters" (roste) + kompaktní Share vpravo (jen s filtrem).
   Desktop tenhle pruh nepoužívá — Filters je skrytý a share sedí v .cat-controls. */
.cat-mobilebar { display: none; }
@media (max-width: 880px) {
  .cat-mobilebar {
    display: flex;
    align-items: stretch;
    gap: 10px;
    margin-bottom: var(--space-sm);
  }
  .cat-mobilebar .cat-mobilebtn { flex: 1 1 auto; width: auto; margin-bottom: 0; }
  .cat-mobilebar .cat-share-slot--mobile { flex: 0 0 auto; }
}
/* Share list má smysl jen s aktivním filtrem → JS toggluje [hidden] na desktop
   slotu (bez filtru = sdílení default stránky). .cat-share-slot má explicitní
   display, takže UA [hidden] přebít nestačí — nutné !important. */
.cat-share-slot[hidden] { display: none !important; }

.cat-share-slot .share-toggle {
  height: 44px;                 /* sladěno s „All filters" (.cat-morefilters) */
  padding: 0 18px;
  gap: 7px;
  font-size: var(--fs-base);
  font-weight: 700;
  color: var(--color-ink);
  background: linear-gradient(180deg, var(--color-gold-hi), var(--color-gold-base));
  border: 1px solid var(--color-gold-base);
  border-radius: var(--radius-control);   /* brand = zaoblený rectangle, ne pill */
  box-shadow: 0 4px 12px rgba(201, 162, 75, 0.35);
  transition: filter var(--trans-fast), box-shadow var(--trans-fast), transform var(--trans-fast);
}
.cat-share-slot .share-toggle:hover {
  filter: brightness(1.04);
  box-shadow: 0 6px 16px rgba(201, 162, 75, 0.45);
  transform: translateY(-1px);
  background: linear-gradient(180deg, var(--color-gold-hi), var(--color-gold-base));
  color: var(--color-ink);
}
.cat-share-slot .share-ico { width: 16px; height: 16px; }

.cat-clearall {
  border: 0;
  background: none;
  color: var(--text-muted);
  font-size: var(--fs-sm);
  text-decoration: underline;
  cursor: pointer;
  margin-left: auto;   /* Share už není v řádku chipů → Clear all zpět doprava. */
}
.cat-clearall:hover { color: var(--text-main); }

/* ---- Počet výsledků ---- */
.cat-count {
  font-size: var(--fs-sm);
  color: var(--text-muted);
  margin-bottom: var(--space-sm);
}
.cat-count strong { color: var(--text-main); }

/* ---- Stránkování (dole, max 40/stránku) ---- */
.cat-pager {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin: 36px 0 8px;
}
.cat-pager-btn {
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fs-sm);
  font-weight: 600;
  font-family: inherit;
  color: var(--text-main);
  background: var(--bg-surface);
  border: 1px solid var(--border-line);
  border-radius: var(--radius-control);
  cursor: pointer;
  transition: border-color var(--trans-fast), background var(--trans-fast), color var(--trans-fast);
}
.cat-pager-btn:hover:not(:disabled) { border-color: var(--color-gold-base); }
.cat-pager-btn.is-active {
  background: var(--grad-gold);
  border-color: transparent;
  color: var(--color-ink);
  cursor: default;
}
.cat-pager-nav:disabled { opacity: 0.4; cursor: default; }
.cat-pager-dots {
  border: 0; background: none; color: var(--text-muted);
  min-width: 20px; padding: 0; cursor: default;
}

/* ---- Řádek: počet výsledků (vlevo) + řazení (vpravo) ---- */
.cat-countrow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: var(--space-sm);
}
.cat-countrow .cat-count { margin-bottom: 0; }
.cat-sort { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; }
/* Stejné zvýraznění jako labely filtrů (.cat-label) — kontrast + čitelnost. */
.cat-sort-label {
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-espresso);
  white-space: nowrap;
}
.cat-sort .cat-cselect { min-width: 190px; }
.cat-sort .cat-cselect-trigger { height: 40px; min-width: 190px; }

/* ---- 5. Grid + karta (staví na .cards-grid / .property-card) ---- */
.cat-grid { margin-top: 0; }
.cat-card { text-decoration: none; color: inherit; transition: transform var(--trans-fast), box-shadow var(--trans-fast); }
.cat-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(18, 16, 11, 0.10); }
.cat-card .card-content { display: flex; flex-direction: column; }
.cat-card.is-hidden { display: none; }

/* ---- Prázdný stav ---- */
.cat-empty {
  text-align: center;
  padding: clamp(40px, 8vw, 80px) 20px;
  border: 1px dashed var(--border-line);
  border-radius: var(--radius-card);
  margin-top: var(--space-sm);
}
.cat-empty h3 { font-family: var(--font-serif); font-weight: 500; }
.cat-empty p { color: var(--text-muted); margin: 8px 0 18px; }

/* ---- Modal ---- */
.cat-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: clamp(16px, 1.8vw, 20px); }
.cat-modal[hidden] { display: none; }
.cat-modal-overlay { position: absolute; inset: 0; background: rgba(18, 16, 11, 0.55); backdrop-filter: blur(2px); }
.cat-modal-panel {
  position: relative;
  width: 100%;
  max-width: 580px;
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  background: var(--bg-surface);
  border: 1px solid var(--border-line);
  border-radius: var(--radius-card);
  box-shadow: 0 30px 70px rgba(18, 16, 11, 0.35);
  overflow: hidden;
}
.cat-modal-head {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(14px, 1.6vw, 18px) clamp(16px, 1.8vw, 20px);
  border-bottom: 1px solid var(--border-line);
}
.cat-modal-title { font-family: var(--font-serif); font-size: var(--fs-xl); font-weight: 500; }
.cat-modal-close {
  border: 0; background: none; cursor: pointer;
  /* Zavírací × — vlastní clamp se stropem na původních 28px */
  font-size: clamp(24px, 1vw + 20px, 28px); line-height: 1; color: var(--text-muted);
}
.cat-modal-close:hover { color: var(--text-main); }
.cat-modal-body { overflow-y: auto; padding: clamp(16px, 1.8vw, 20px); }
.cat-adv { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.cat-adv .cat-field-wide { grid-column: 1 / -1; }
.cat-modal-foot {
  flex: none;
  display: flex;
  gap: 12px;
  padding: 16px 20px;
  border-top: 1px solid var(--border-line);
}
.cat-modal-foot .btn { flex: 1; }

/* Když se do modalu na mobilu přesune základní pruh */
.cat-modal-basicslot:not(:empty) { margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--border-line); }
.cat-modal-basicslot .cat-basic { flex-direction: column; align-items: stretch; gap: 16px; }
.cat-modal-basicslot .cat-field-price { flex: none; }
.cat-modal-basicslot .cat-select,
.cat-modal-basicslot .cat-seg { width: 100%; }
.cat-modal-basicslot .cat-seg { display: flex; }
.cat-modal-basicslot .cat-seg button { flex: 1; }

/* ==========================================================================
   MOBIL — pruh filtrů nahradí jedno tlačítko "Filters"
   ========================================================================== */
@media (max-width: 880px) {
  .cat-controls { display: none; }
  .cat-mobilebtn { display: inline-flex; }

  .cat-modal { padding: 0; align-items: stretch; justify-content: stretch; }
  .cat-modal-panel {
    max-width: none;
    max-height: none;
    height: 100%;
    border: 0;
    border-radius: 0;
  }
  .cat-adv { grid-template-columns: 1fr; }
}

/* ============ Sektorová mapa katalogu (catalog-map.js) ============ */
.cat-maptoggle{
  display:inline-flex; align-items:center; gap:.4rem; padding:.5rem .9rem;
  border:1.5px solid var(--color-gold-hi, #E7C878); border-radius:999px;
  background:transparent; color:inherit; font-weight:600; font-size:.85rem; cursor:pointer;
  white-space:nowrap;
}
.cat-maptoggle svg{ width:1.05rem; height:1.05rem; flex:0 0 auto; }
.cat-maptoggle[data-mode="map"]{ background:var(--color-gold-hi, #E7C878); color:#2C241B; border-color:var(--color-gold-hi, #E7C878); }

/* Desktop segmentový přepínač Katalog|Mapa (rovnocenný tabům Rent/Sale, vpravo v jejich
   řádku). Skrytý ve výchozím stavu — zapne ho až desktop media níž; na mobilu zůstává
   .cat-maptoggle v počítadle beze změny. Řídí stejný stav (catalog-map.js). */
.cat-viewseg{
  display:none; align-items:center; gap:4px; padding:5px;
  background:var(--grad-dark-ink); border:1px solid var(--border-dark-line);
  border-radius:var(--radius-card); box-shadow:inset 0 1px 2px rgba(0,0,0,.25);
}
.cat-viewseg-btn{
  display:inline-flex; align-items:center; gap:7px; border:0; cursor:pointer;
  background:transparent; color:var(--text-dark-muted);
  font-family:inherit; font-size:.9rem; font-weight:600;
  padding:9px 18px; border-radius:var(--radius-control); white-space:nowrap;
  transition:color var(--trans-fast), background var(--trans-fast), box-shadow var(--trans-fast);
}
.cat-viewseg-btn svg{ width:17px; height:17px; flex:none; }
.cat-viewseg-btn:hover{ color:var(--text-dark-main); }
.cat-viewseg-btn.is-active{
  background:var(--grad-gold); color:var(--color-ink);
  box-shadow:0 4px 12px rgba(201,162,75,.30);
}
@media (min-width:701px){
  .cat-tabs-center{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
    column-gap:14px; margin-bottom:var(--space-md); }
  .cat-tabs-center > .cat-tabs{ grid-column:2; margin-bottom:0; }
  .cat-tabs-center > .cat-viewseg{ grid-column:3; justify-self:end; display:inline-flex; }
  .cat-maptoggle{ display:none; }   /* desktop: režim řídí segment nahoře */
}
.cat-map-canvas{
  width:100%; height:calc(100vh - 300px); min-height:460px;
  border-radius:14px; overflow:hidden; border:1px solid rgba(0,0,0,.10);
}
@media (max-width:700px){
  .cat-map-canvas{ height:calc(100vh - 260px); }
  /* Na telefonu je tlačítko Map stejně velké jako Filters a na vlastním řádku (pod filtry). */
  .cat-countrow{ flex-wrap:wrap; }
  .cat-maptoggle{
    order:-1; width:100%; height:44px; justify-content:center;
    padding:0 18px; border-radius:12px; font-size:var(--fs-base);
    margin-bottom:var(--space-sm);
  }
}

/* Popup sektorové mapy — větší zavírací křížek + hezčí content (jako v adminu). */
#catMap .maplibregl-popup-content{ padding:12px 12px 12px; border-radius:14px; box-shadow:0 10px 30px rgba(0,0,0,.18); }
#catMap .maplibregl-popup-close-button{
  width:32px; height:32px; font-size:22px; line-height:30px; color:#555;
  top:6px; right:6px; border-radius:9px; background:transparent;
}
#catMap .maplibregl-popup-close-button:hover{ background:rgba(0,0,0,.07); color:#111; }
