/**
 * Beratungsstellen-Übersicht (Shortcode [beratungsstellen_uebersicht])
 * Datei: assets/css/uebersicht.css
 */

.lohibw-bs-uebersicht {
    width: 100%;
    box-sizing: border-box;
}

.lohibw-bs-uebersicht *,
.lohibw-bs-uebersicht *::before,
.lohibw-bs-uebersicht *::after {
    box-sizing: border-box;
}

/* --- Sortierleiste --- */
.lohibw-bs-sortierung {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 0 0 22px 0;
}

.lohibw-bs-sortierung__label {
    font-weight: 700;
    font-size: 16px;
    line-height: 1.3;
}

.lohibw-bs-sortierung__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.lohibw-bs-sortbtn {
    appearance: none;
    -webkit-appearance: none;
    border: 1px solid #d9d9d9 !important;
    background: #f2f2f2 !important;
    color: #333 !important;
    border-radius: 0 !important;
    padding: 8px 16px !important;
    font-size: 15px;
    line-height: 1.3;
    font-weight: 600;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.lohibw-bs-sortbtn:hover,
.lohibw-bs-sortbtn:focus-visible {
    background: #ffee00 !important;
    border-color: #ffee00 !important;
    color: #000 !important;
}

.lohibw-bs-sortbtn.is-active {
    background: #ffee00 !important;
    border-color: #ebda00 !important;
    color: #000 !important;
}

/* --- Liste --- */
.lohibw-bs-liste {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.lohibw-bs-item {
    display: grid;
    grid-template-columns: 1.4fr 1.4fr 1fr auto;
    align-items: center;
    gap: 16px;
    width: 100%;
    background: #ffffff !important;
    border-radius: 0 !important;
    padding: 20px 24px;
    box-shadow: 0 0 14px rgba(0, 0, 0, .13);
    transition: transform .25s ease, box-shadow .25s ease;
    will-change: transform;
}

.lohibw-bs-item__ortname {
    display: block;
    font-size: 22px;
    line-height: 1.2;
    font-weight: 700;
    color: #222;
}

.lohibw-bs-item__plz {
    display: block;
    margin-top: 4px;
    font-size: 15px;
    color: #666;
}

.lohibw-bs-item__strasse,
.lohibw-bs-item__telefon {
    font-size: 16px;
    line-height: 1.4;
    color: #333;
}

.lohibw-bs-item__telefon a {
    color: #333;
    text-decoration: none;
    border-bottom: 1px solid rgba(0, 0, 0, .25);
}

.lohibw-bs-item__telefon a:hover {
    border-bottom-color: #000;
}

.lohibw-bs-item__aktion {
    text-align: right;
}

.lohibw-bs-infobutton {
    display: inline-block;
    background: #ececec !important;
    color: #222 !important;
    border-radius: 0 !important;
    padding: 11px 22px !important;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none !important;
    white-space: nowrap;
    transition: background-color .2s ease, color .2s ease;
}

.lohibw-bs-infobutton:hover,
.lohibw-bs-infobutton:focus-visible {
    background: #ffee00 !important;
    color: #000 !important;
}

/* Hover-Effekt nur auf Geräten mit echtem Mauszeiger */
@media (hover: hover) and (pointer: fine) {
    .lohibw-bs-item:hover {
        transform: scale(1.03);
        box-shadow: 0 0 22px rgba(0, 0, 0, .18);
    }
}

@media (prefers-reduced-motion: reduce) {
    .lohibw-bs-item {
        transition: none;
    }
    .lohibw-bs-item:hover {
        transform: none;
    }
}

/* --- Responsive --- */
@media (max-width: 980px) {
    .lohibw-bs-item {
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "ort     aktion"
            "strasse aktion"
            "telefon aktion";
        align-items: center;
        column-gap: 20px;
        row-gap: 6px;
    }
    .lohibw-bs-item__ort {
        grid-area: ort;
        margin-bottom: 6px;
    }
    .lohibw-bs-item__strasse {
        grid-area: strasse;
    }
    .lohibw-bs-item__telefon {
        grid-area: telefon;
    }
    .lohibw-bs-item__aktion {
        grid-area: aktion;
        align-self: center;
        text-align: right;
    }
}

@media (max-width: 640px) {
    .lohibw-bs-item {
        grid-template-columns: 1fr;
        grid-template-areas: none;
        padding: 18px 18px;
        row-gap: 10px;
        text-align: left;
    }
    .lohibw-bs-item__ort,
    .lohibw-bs-item__strasse,
    .lohibw-bs-item__telefon,
    .lohibw-bs-item__aktion {
        grid-area: auto;
    }
    .lohibw-bs-item__ort {
        margin-bottom: 0;
    }
    .lohibw-bs-item__ortname {
        font-size: 20px;
    }
    .lohibw-bs-item__aktion {
        text-align: left;
    }
    .lohibw-bs-infobutton {
        display: block;
        text-align: center;
        width: 100%;
    }
    .lohibw-bs-sortierung {
        gap: 8px;
    }
    .lohibw-bs-sortbtn {
        flex: 1 1 auto;
    }
}
