/* Shared public search/category/listing components. Page/map-specific overrides stay in their own files. */

.page-wrap{ margin-top:70px; margin-bottom:60px; }

.result-bar{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }

.map-col{ position:sticky; top:90px; height:calc(100vh - 110px); }

#map{ width:100%; height:100%; border-radius:16px; display:block; }

.cards-col{ min-height:300px; }


.btn-outline-dark{
  border-radius: 50px;
}

.card{ border-radius:20px; border:none; }

.sgg-inner-carousel .carousel-item > *{ height:230px; object-fit:cover; border-top-left-radius:20px; border-top-right-radius:20px; }

.sgg-inner-carousel .carousel-control-prev, .sgg-inner-carousel .carousel-control-next{ width:16%; }

.sgg-inner-carousel .carousel-control-prev-icon, .sgg-inner-carousel .carousel-control-next-icon{ filter:drop-shadow(0 2px 6px rgba(0,0,0,.35)); }



.hidden{ display:none !important; }

.search-filter{ border-radius:12px; background:#fff !important; min-height:1000px; padding:20px; position:sticky; top:50px; }

.form-check-input { width:1.3em; height:1.3em; margin-right:14px; }

.form-check { margin:0 0 5px; }

.leaflet-popup-content { margin:8px; line-height:1; font-size:1.08333em; min-height:1px; width:auto !important; }

.leaflet-popup-content-wrapper, .leaflet-popup-tip { background:white; color:#333; box-shadow:0 3px 14px rgba(0,0,0,0.4); }

.dropdown-item.active, .dropdown-item:active { color:#fff; background:#000; }

.facility-buttons { flex-wrap:wrap; justify-content:space-between; width:100%; margin-top:25px; }

.facility-buttons .facility-filter { width:calc(50% - 10px); margin-bottom:10px; }

.btn.facility-filter { background:#fff; color:#000; border:1.5px solid #dee2e6; }

.btn.facility-filter.active { background:#0c9b87; color:#fff; border:1.5px solid #0c9b87; }

.btn-link{ padding:0 0 0 8px; color:#fff; text-decoration:none; font-weight:700; vertical-align:middle; }

.btn-link:hover,.btn-link:active{ color:#fff; }







#sauna-places-list {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
}

#sauna-places-list .sauna-place {
  width: 100% !important;
  min-width: 0;
  height: 100%;
  margin: 0 !important;
}

#sauna-places-list .sauna-place > a {
  display: block;
  width: 100%;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

#sauna-places-list .sauna-card {
  display: flex;
  width: 100%;
  height: 100%;
  flex-direction: column;
}

#sauna-places-list .price-section { margin-top: auto; }























.price-marker {
    background: #fff;
    color: #000;
    font-weight: 600;
    padding: 6px 10px;
    border-radius: 20px;
    font-size: 10px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .25);
    border: 1px solid rgba(0, 0, 0, .12);
    white-space: nowrap;
}

.price-marker.active {
    background: #000;
    color: #fff;
    border-color: #000;
}

.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{ background:transparent; }

.marker-cluster div {
    background: #fff;
    color: #000;
    font-weight: 600;
    border-radius: 999px;
    line-height: 30px;
    min-width: 30px;
    text-align: center;
    padding: 0px 7px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, .18);
    border: 1px solid rgba(0, 0, 0, .15);
    font-size: 10px;
}

.fullscreen-map{
  position: fixed !important;
  top: calc(var(--fs-offset, 0px) + env(safe-area-inset-top)) !important;
  left: 0 !important;
  width: 100vw !important;
  height: calc(100vh - var(--fs-offset, 0px) - env(safe-area-inset-top)) !important;
  z-index: 1020 !important;
  border-radius: 0 !important;
  margin-top: 0 !important;
}

body.map-fullscreen-active{ overflow:hidden; }

.sgg-popup .leaflet-popup-content-wrapper{
  padding:0; border-radius:20px; box-shadow:0 16px 40px rgba(0,0,0,.2); max-width:700px;
}

.sgg-popup .leaflet-popup-content{ margin:0; width:auto !important; }

.sgg-popup .popup-card{ border-radius:20px; overflow:hidden; background:#fff; width:300px; }

.sgg-popup .popup-title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 10px;
    color: #111;
}

.sgg-popup .popup-price{ font-size:1.05rem; color:#111; margin:0; }

.sgg-popup .leaflet-popup-close-button:hover{ background:#fff; color:#000; opacity:1; }

.sgg-popup .carousel-control-prev, .sgg-popup .carousel-control-next{ z-index:4; }

.mobile-wrap{ display:none; }
