/* --- FUNDAMENTY I TYPOGRAFIA --- */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;600;700;800&display=swap');

:root {
    --accent-1: #1C4B42;
    /* Ciemna zieleń */
    --accent-2: #B4E717;
    /* Jasna zieleń */
    --accent-4: #92C200;
    /* Limonka */
    --accent-5: #FFFFFF;
    /* Biel */
    --status-wolny: #10B981;
    --status-zajety: #EF4444;
    --status-rezerwacja: #F59E0B;
}

.bm-filters-container,
.bm-cart-sidebar,
.bm-popup-wrapper {
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* --- LOGIKA SIATKI I FIX ODSTĘPÓW (TO ROZWIĄZUJE TWÓJ PROBLEM) --- */
#bm-list-container {
    display: grid;
    /* justify-items: stretch zapewnia, że kafelki wypełniają całą kolumnę */
    justify-items: stretch;
}

/* Twój fundament, który wkleiłeś */
#bm-list-container>div {
    padding: 0 !important;
    margin: 0 !important;
}

/* Celujemy w dodatkowe kontenery Elementora, które mogłyby robić odstępy */
#bm-list-container>article,
#bm-list-container>section {
    padding: 0 !important;
    margin: 0 !important;
}

.bm-billboard-card {
    position: relative;
    margin: 0;
    width: 100% !important;
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: transform 0.3s ease;
    /* Dzięki temu kafelki będą się ładnie centrować w gridzie przy mniejszej liczbie kolumn */
    justify-self: center;
}

/* --- FILTRY --- */
.bm-filters-container {
    position: relative;
    z-index: 100;
    margin-bottom: 30px;
}

.bm-filters-top-bar {
    display: flex;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
    background: #fff;
    padding: 20px;
    border-radius: 15px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

.bm-filter-group {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.bm-filter-group label {
    font-size: 11px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.bm-filter-group input,
.bm-filter-group select {
    padding: 12px 15px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #f8fafc;
    font-size: 14px;
    transition: 0.3s;
}

.bm-filter-group input:focus {
    border-color: var(--accent-2);
    outline: none;
    background: #fff;
}

.bm-filter-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 15px;
}

#bm-apply-filters {
    background: var(--accent-1);
    color: var(--accent-5);
    border: none;
    padding: 14px 35px;
    border-radius: 10px;
    font-weight: 800;
    cursor: pointer;
    transition: 0.3s;
}

#bm-apply-filters:hover {
    background: var(--accent-2);
    color: var(--accent-1);
    transform: translateY(-2px);
}

/* --- NOWOCZESNE STATUSY (WERSJA SLIM) --- */
.bm-bind-status {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    padding: 4px 10px !important;
    border-radius: 99px !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    color: #fff !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
    z-index: 10;
    width: auto !important;
    letter-spacing: 0.5px;
    line-height: 1 !important;
}

.status-wolny {
    background: var(--status-wolny) !important;
}

.status-zajety,
.status-wynajety {
    background: var(--status-zajety) !important;
}

.status-zarezerwowany,
.status-zarezerwowane,
.status-rezerwacja {
    background: var(--status-rezerwacja) !important;
}

.status-serwis {
    background: #64748B !important;
}

/* --- TYTUŁY I TEKSTY (NAPRAWA KOLORÓW) --- */
.bm-bind-title {
    color: var(--accent-5) !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

.bm-billboard-card:hover .bm-bind-title {
    color: var(--accent-2) !important;
}

/* --- POPUP NA MAPIE (INFOWINDOW) --- */
.gm-style-iw {
    padding: 0 !important;
    max-width: 400px !important;
}

.gm-style-iw-d {
    overflow: hidden !important;
    max-height: none !important;
}

.bm-popup-wrapper {
    width: 380px;
    /* Zwiększone, by tekst "Powierzchnia" się mieścił */
    max-width: 100%;
    margin: 0;
    padding: 0;
}

/* --- KOSZYK / PLANER --- */
.bm-cart-sidebar {
    position: fixed;
    top: 0;
    right: -450px;
    width: 400px;
    height: 100vh;
    background: #fff;
    box-shadow: -10px 0 30px rgba(0, 0, 0, 0.1);
    z-index: 100000;
    transition: 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.bm-cart-sidebar.active {
    right: 0;
}

.bm-total-row {
    border-top: 2px solid #f1f5f9;
    padding-top: 15px;
    margin-top: 15px;
}

.bm-checkout-btn {
    background: var(--accent-1);
    color: #fff;
    border: none;
    padding: 16px;
    border-radius: 10px;
    font-weight: 800;
    cursor: pointer;
    transition: 0.3s;
}

.bm-checkout-btn:hover {
    background: var(--accent-2);
    color: var(--accent-1);
}

/* --- RESPONSYWNOŚĆ --- */
@media (max-width: 768px) {
    .bm-cart-sidebar {
        width: 100%;
        right: -100%;
    }

    .bm-filters-top-bar {
        padding: 15px;
        gap: 10px;
    }

    .bm-popup-wrapper {
        width: 290px;
    }

    #bm-apply-filters {
        width: 100%;
    }
}