/* ============================================================
   FIX.CSS — Sovrascritture per cuore, badge, dashboard mobile,
   sidebar filtri search, card.
   Caricato DOPO style.css. Sovrascrive i fix precedenti.
   ============================================================ */

/* ============================================================ */
/* 0. MENU SOPRA TUTTO                                           */
/* ============================================================ */
.site-header {
    z-index: 1000 !important;
    position: sticky !important;
}
.mobile-nav { z-index: 1000 !important; }
.mega-menu { z-index: 1001 !important; }
.dropdown__menu { z-index: 1001 !important; }

/* ============================================================ */
/* 1. CUORE PREFERITI — DENTRO la card, sotto il menu            */
/* ============================================================ */

/* La card crea un contesto di stacking locale (isolation) */
.ad-card,
.card,
.card__media,
.mag-card__img {
    position: relative !important;
    isolation: isolate !important;
}

/* Il cuore: in alto a DESTRA, dentro la card, z-index 1 locale */
.card-heart,
.js-card-heart {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    left: auto !important;
    bottom: auto !important;
    z-index: 1 !important;
    width: 36px !important;
    height: 36px !important;
    background: #111 !important;
    border: 2px solid rgba(0,0,0,0.35) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    font-size: 16px !important;
    line-height: 1 !important;
    padding: 0 !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.35) !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transition: transform 0.15s ease, border-color 0.15s ease !important;
}

.card-heart:hover,
.js-card-heart:hover {
    transform: scale(1.1) !important;
}

/* Badge condizione/Premium: in alto a SINISTRA */
.ad-card__tag,
.card__media .badge {
    position: absolute !important;
    top: 8px !important;
    left: 8px !important;
    right: auto !important;
    z-index: 5 !important;
}

.ad-card__overlay { z-index: 1 !important; }
.ad-card__content { z-index: 2 !important; }

/* ============================================================ */
/* 2. CARD CON SFONDO BIANCO E BORDO, OVERFLOW HIDDEN            */
/* ============================================================ */

.card {
    background: var(--white) !important;
    border: 1px solid var(--gray-border) !important;
    border-radius: var(--radius) !important;
    overflow: hidden !important;
    box-shadow: var(--shadow) !important;
}

.card__media {
    position: relative !important;
    overflow: hidden !important;
    background: var(--gray-light) !important;
    aspect-ratio: 4 / 3 !important;
    border-radius: var(--radius) var(--radius) 0 0 !important;
}

.card__media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.card__body {
    background: var(--white) !important;
    padding: 16px !important;
}

/* ============================================================ */
/* 3. DASHBOARD MOBILE — statistiche e azioni rapide             */
/* ============================================================ */
@media (max-width: 768px) {
    .section .grid.grid--4 {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }
    .section .grid.grid--4 > .card {
        padding: 16px 12px !important;
        text-align: center !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 6px !important;
    }
    .section .grid.grid--4 > .card > div:first-child {
        width: 42px !important;
        height: 42px !important;
        margin: 0 auto !important;
    }
    .section .grid.grid--4 > .card > div:first-child svg {
        width: 22px !important;
        height: 22px !important;
    }
    .section .grid.grid--4 > .card > div:nth-child(2) {
        font-size: 1.6rem !important;
        line-height: 1 !important;
    }
    .section .grid.grid--4 > .card > div:nth-child(3) {
        font-size: 0.8rem !important;
        line-height: 1.2 !important;
        text-align: center !important;
    }
    .section .grid.grid--4 > a.card {
        flex-direction: column !important;
        text-align: center !important;
        padding: 16px 10px !important;
        gap: 8px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
    .section .grid.grid--4 > a.card > div:first-child {
        width: 44px !important;
        height: 44px !important;
        margin: 0 auto !important;
        flex-shrink: 0 !important;
    }
    .section .grid.grid--4 > a.card > div:first-child svg {
        width: 22px !important;
        height: 22px !important;
    }
    .section .grid.grid--4 > a.card > div:last-child {
        text-align: center !important;
    }
    .section .grid.grid--4 > a.card > div:last-child > div:first-child {
        font-size: 0.9rem !important;
        line-height: 1.2 !important;
    }
    .section .grid.grid--4 > a.card > div:last-child > div:last-child {
        font-size: 0.75rem !important;
    }
    .section .flex-between h1 {
        font-size: 1.4rem !important;
        line-height: 1.2 !important;
    }
    .section .card table {
        font-size: 0.8rem !important;
    }
    .section .card table th,
    .section .card table td {
        padding: 8px 6px !important;
        white-space: nowrap !important;
    }
    .section .card table .btn {
        padding: 6px 10px !important;
        font-size: 0.75rem !important;
    }
}

@media (max-width: 380px) {
    .section .grid.grid--4 {
        grid-template-columns: 1fr !important;
    }
}

/* ============================================================ */
/* 4. HOVER IMMAGINI — contenuto, niente fuoriuscita              */
/* ============================================================ */
.ad-card:hover img {
    transform: scale(1.05) !important;
}

.card:hover .card__media img {
    transform: scale(1.04) !important;
}

/* ============================================================ */
/* 5. SEARCH MOBILE — 1 colonna come home, foto grandi 4/3       */
/* ============================================================ */
@media (max-width: 768px) {
    .search-mobile-layout .listings-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
    .search-mobile-layout .listings-grid .card {
        overflow: hidden !important;
        background: var(--white) !important;
        border: 1px solid var(--gray-border) !important;
        border-radius: var(--radius) !important;
    }
    .search-mobile-layout .listings-grid .card__media {
        aspect-ratio: 4 / 3 !important;
        overflow: hidden !important;
        border-radius: var(--radius) var(--radius) 0 0 !important;
        background: var(--gray-light) !important;
    }
    .search-mobile-layout .listings-grid .card__media img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        display: block !important;
    }
    .search-mobile-layout .listings-grid .card__body { padding: 14px !important; }
    .search-mobile-layout .listings-grid .card__title { font-size: 1rem !important; }
    .search-mobile-layout .listings-grid .card__price { font-size: 1.15rem !important; }
    .search-mobile-layout .listings-grid .card__meta { font-size: 0.85rem !important; }
}

/* ============================================================ */
/* 6. FIX: SIDEBAR FILTRI SEARCH — non sfonda il footer          */
/* ============================================================ */
.search-desktop-layout {
    align-items: start !important;
}
.search-filters-desktop {
    position: sticky !important;
    top: 90px !important;
    max-height: calc(100vh - 110px) !important;
    overflow-y: auto !important;
}
@media (max-width: 900px) {
    .search-filters-desktop {
        position: static !important;
        max-height: none !important;
        overflow: visible !important;
    }
}