/* ──────────────────────────────────────────────────────────────────────
 * bazuba Standorte — Frontend
 * Container/Klassen-Prefix: bzbst-
 * Kein Reset – die Theme-Styles bleiben unangetastet.
 * ────────────────────────────────────────────────────────────────────── */

.bzbst-app {
    --bzbst-c-bg: #ffffff;
    --bzbst-c-bg-soft: #f6f6f6;
    --bzbst-c-border: rgba(0,0,0,0.08);
    --bzbst-c-text: #1a1a1a;
    --bzbst-c-muted: #6a6a6a;
    --bzbst-c-primary: #1a1a1a;
    --bzbst-c-primary-on: #ffffff;
    --bzbst-c-accent: #1eaf9b;
    --bzbst-c-star: #f5b921;
    --bzbst-c-star-off: #e5e7ea;
    --bzbst-radius: 6px;
    --bzbst-gap: 18px;
    color: var(--bzbst-c-text) !important;
    font-family: inherit !important;
    width: 100%;
    box-sizing: border-box;
    padding: 24px;
}
.bzbst-app *, .bzbst-app *::before, .bzbst-app *::after { box-sizing: border-box; }

/* Suche
 * Wichtig: !important an den meisten Properties, damit Theme-Buttons (z.B. Elementor-Pink)
 * oder generische .button-Regeln das Aussehen nicht überschreiben.
 * Die Such-Box sitzt seit v0.5.1 direkt über der Standort-Liste (im listcol-Stack),
 * damit User die Suche nicht übersieht.
 */
.bzbst-search {
    position: relative;
    background: var(--bzbst-c-bg-soft);
    padding: 14px 16px;
    border-radius: var(--bzbst-radius);
    border: 2px solid var(--bzbst-c-border);
}
.bzbst-search__form {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    align-items: center !important;
    margin: 0 !important;
}
.bzbst-search__input {
    flex: 1 1 280px !important;
    min-width: 0 !important;
    padding: 12px 16px !important;
    font-size: 16px !important;
    font-family: inherit !important;
    border: 2px solid var(--bzbst-c-border) !important;
    border-radius: var(--bzbst-radius) !important;
    background: var(--bzbst-c-bg) !important;
    color: var(--bzbst-c-text) !important;
    line-height: 1.4 !important;
    height: auto !important;
    box-shadow: none !important;
    margin: 0 !important;
    width: auto !important;
}
.bzbst-search__input:focus {
    outline: none !important;
    border-color: var(--bzbst-c-border) !important;
    box-shadow: 0 0 0 3px rgba(0,0,0,0.05) !important;
}
/* Native Such-Cancel-Button (X) — manche Themes färben das Browser-Default rot/rosa ein,
 * weil sie alle input-Schaltflächen mit Akzentfarbe stylen. Override mit schwarzem X-SVG. */
.bzbst-search__input::-webkit-search-cancel-button,
.bzbst-finder__input::-webkit-search-cancel-button {
    -webkit-appearance: none !important;
    appearance: none !important;
    height: 14px !important;
    width: 14px !important;
    margin-left: 6px !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M2 2 L10 10 M10 2 L2 10' stroke='%231a1a1a' stroke-width='2' stroke-linecap='round'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 12px 12px !important;
    cursor: pointer !important;
    opacity: 0.7 !important;
}
.bzbst-search__input::-webkit-search-cancel-button:hover,
.bzbst-finder__input::-webkit-search-cancel-button:hover {
    opacity: 1 !important;
}
.bzbst-search__submit,
.bzbst-search__reset {
    padding: 12px 22px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    font-family: inherit !important;
    border: 0 !important;
    border-radius: var(--bzbst-radius) !important;
    cursor: pointer !important;
    line-height: 1.2 !important;
    height: auto !important;
    margin: 0 !important;
    text-decoration: none !important;
    text-transform: none !important;
    box-shadow: none !important;
    transition: background-color 0.12s, opacity 0.12s !important;
}
.bzbst-search__submit {
    background: var(--bzbst-c-primary) !important;
    color: var(--bzbst-c-primary-on) !important;
}
.bzbst-search__submit:hover {
    background: #000 !important;
    color: var(--bzbst-c-primary-on) !important;
    opacity: 1 !important;
}
.bzbst-search__reset {
    background: var(--bzbst-c-bg-soft) !important;
    color: var(--bzbst-c-text) !important;
    border: 1px solid var(--bzbst-c-border) !important;
}
.bzbst-search__status {
    margin: 10px 2px 0;
    font-size: 14px;
    color: var(--bzbst-c-muted);
    min-height: 1.2em;
}
.bzbst-search__status--error { color: var(--bzbst-c-accent); }

/* ──────────────────────────────────────────────────────────────────────
 * Autocomplete-Dropdown (PLZ + Ortsname)
 * Wird unter Search/Finder-Input absolut positioniert.
 * Der Input wird zur Laufzeit in einen .bzbst-input-wrap (position:relative)
 * gepackt, damit das Dropdown direkt unter ihm sitzen kann.
 * ────────────────────────────────────────────────────────────────────── */
.bzbst-input-wrap {
    position: relative !important;
    flex: 1 1 280px !important;
    min-width: 0 !important;
}
.bzbst-input-wrap > .bzbst-search__input,
.bzbst-input-wrap > .bzbst-finder__input {
    flex: 1 1 auto !important;
    width: 100% !important;
}
/* Im stacked-Finder läuft die Form als column-flex. Dort ist flex-basis 280px die
 * VERTIKALE Höhe und macht riesigen Whitespace unter dem Input. Im column-Layout
 * den Wrap auf content-height + full-width zwingen. */
.bzbst-finder--stacked .bzbst-input-wrap {
    flex: 0 0 auto !important;
    width: 100% !important;
}
.bzbst-suggestions {
    position: absolute !important;
    z-index: 50 !important;
    background: var(--bzbst-c-bg) !important;
    border: 1px solid var(--bzbst-c-border) !important;
    border-radius: var(--bzbst-radius) !important;
    box-shadow: 0 6px 24px rgba(0,0,0,0.10) !important;
    max-height: 320px !important;
    overflow-y: auto !important;
    list-style: none !important;
    margin: 4px 0 0 !important;
    padding: 4px !important;
    min-width: 280px !important;
}
.bzbst-suggestions[hidden] { display: none !important; }
.bzbst-suggestion {
    display: flex !important;
    align-items: baseline !important;
    gap: 10px !important;
    padding: 8px 12px !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
}
.bzbst-suggestion:hover,
.bzbst-suggestion.is-active {
    background: var(--bzbst-c-bg-soft) !important;
}
.bzbst-suggestion__plz {
    font-weight: 700 !important;
    color: var(--bzbst-c-text) !important;
    flex: 0 0 auto !important;
    min-width: 50px !important;
}
.bzbst-suggestion__city {
    flex: 1 1 auto !important;
    color: var(--bzbst-c-text) !important;
}
.bzbst-suggestion__region {
    font-size: 12px !important;
    color: var(--bzbst-c-muted) !important;
    flex: 0 0 auto !important;
}
.bzbst-suggestion__country {
    font-size: 11px !important;
    padding: 2px 6px !important;
    background: var(--bzbst-c-bg-soft) !important;
    border-radius: 3px !important;
    color: var(--bzbst-c-muted) !important;
    flex: 0 0 auto !important;
    text-transform: uppercase !important;
}

/* Grid: Karte links, rechts ein Stack aus Such-Box + Liste */
.bzbst-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, 1fr);
    gap: var(--bzbst-gap);
    align-items: stretch;
}

.bzbst-listcol {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 0;
    max-height: var(--bzbst-height, 650px);
}

.bzbst-map {
    position: relative;
    min-height: 500px;
    border-radius: var(--bzbst-radius);
    overflow: hidden;
    background: var(--bzbst-c-bg-soft);
}
.bzbst-app[data-height] .bzbst-map { height: var(--bzbst-height, 650px); }
.bzbst-map__placeholder {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    color: var(--bzbst-c-muted); font-size: 14px;
}

.bzbst-list {
    overflow-y: auto;
    border: 2px solid var(--bzbst-c-border);
    border-radius: var(--bzbst-radius);
    background: var(--bzbst-c-bg);
    flex: 1 1 auto;
    min-height: 0;
}
.bzbst-list__items {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Card */
.bzbst-card {
    position: relative;        /* Anker für die absolute positionierte Distance */
    display: grid;
    grid-template-columns: 28px 1fr;
    grid-template-areas:
        "icon  header"
        "icon  body"
        "icon  meta"
        ".     actions";
    column-gap: 14px;
    row-gap: 6px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--bzbst-c-border);
    cursor: pointer;
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
    background: var(--bzbst-c-bg);
}
.bzbst-card:last-child { border-bottom: 0; }
.bzbst-card:hover,
.bzbst-card.is-active {
    background: var(--bzbst-c-bg-soft);
}
.bzbst-card.is-highlighted {
    background: #fff;
    box-shadow: inset 4px 0 0 var(--bzbst-c-accent), 0 1px 0 var(--bzbst-c-border);
    padding-left: 24px;
}
/* Fallback-Card („kein Standort in der Nähe") in Warning-Rot statt Akzent-Türkis.
 * Vermittelt klar: das ist ein „No-Result"-State, nicht ein normaler Treffer. */
.bzbst-card--fallback.is-highlighted {
    box-shadow: inset 4px 0 0 #d63d3d, 0 1px 0 var(--bzbst-c-border) !important;
    background: #fef6f5 !important;
}
.bzbst-card--fallback .bzbst-card__badge {
    background: #d63d3d !important;
}
.bzbst-card__icon {
    grid-area: icon;
    width: 22px;
    height: 22px;
    margin-top: 4px;
    fill: var(--bzbst-c-primary);
    flex-shrink: 0;
    opacity: 0.85;
}
.bzbst-card__header {
    grid-area: header;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.bzbst-card__title {
    margin: 0 !important;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--bzbst-c-text);
    padding-right: 60px;  /* Platz freihalten für den absolut positionierten Distance-Chip */
}
.bzbst-card__distance {
    position: absolute;
    top: 18px;
    right: 20px;
    z-index: 1;
    font-size: 12px;
    font-weight: 600;
    color: var(--bzbst-c-muted);
    white-space: nowrap;
    background: var(--bzbst-c-bg-soft);
    padding: 3px 10px;
    border-radius: 999px;
    line-height: 1.4;
}
.bzbst-card.is-highlighted .bzbst-card__distance {
    background: rgba(30, 175, 155, 0.12);
    color: var(--bzbst-c-accent);
}
.bzbst-card.is-highlighted .bzbst-card__distance {
    /* Highlighted-Card hat padding-left: 24 statt 20 → Distance ein Tick weiter rechts halten */
    right: 20px;
}
.bzbst-card__badge {
    display: inline-block;
    align-self: flex-start;
    margin: 0 0 2px;
    padding: 3px 10px;
    background: var(--bzbst-c-accent);
    color: var(--bzbst-c-primary-on);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-radius: 999px;
    line-height: 1.4;
}
.bzbst-card__body { grid-area: body; }
.bzbst-card__address-link {
    display: block;
    margin: 2px 0 0;
    padding: 4px 6px;
    margin-left: -6px;
    font-size: 14px;
    color: var(--bzbst-c-muted) !important;
    line-height: 1.5;
    text-decoration: none !important;
    border-radius: 4px;
    transition: background-color 0.12s, color 0.12s;
}
.bzbst-card__address-link:hover,
.bzbst-card__address-link:focus {
    background: var(--bzbst-c-bg-soft);
    color: var(--bzbst-c-text) !important;
    text-decoration: underline !important;
    text-decoration-color: var(--bzbst-c-muted) !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px !important;
}
.bzbst-card__address-link:hover::after,
.bzbst-card__address-link:focus::after {
    content: '↗';
    margin-left: 6px;
    font-weight: 700;
    color: var(--bzbst-c-primary);
}
/* inline (nicht inline-block) damit text-decoration vom Parent-Link auch hier sichtbar wird */
.bzbst-card__region {
    display: inline;
    font-size: 12px;
    opacity: 0.85;
}
.bzbst-card__meta {
    grid-area: meta;
    margin-top: 4px;
}
.bzbst-card__contact {
    font-size: 13px;
    color: var(--bzbst-c-muted);
    line-height: 1.4;
}
.bzbst-card__actions {
    grid-area: actions;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}
.bzbst-card__action {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none !important;
    border-radius: 999px;
    line-height: 1.2;
    transition: background-color 0.18s ease, transform 0.16s ease, box-shadow 0.18s ease, border-color 0.18s ease;
    border: 1px solid transparent;
    white-space: nowrap;
    will-change: transform;
}
.bzbst-card__action:hover { transform: translateY(-1px); }
.bzbst-card__action:active { transform: translateY(1px); transition-duration: 0.05s; }
.bzbst-card__action:focus-visible {
    outline: 2px solid var(--bzbst-c-accent);
    outline-offset: 2px;
}
.bzbst-card__action--primary {
    background: var(--bzbst-c-primary);
    color: var(--bzbst-c-primary-on) !important;
}
.bzbst-card__action--primary:hover {
    background: #000;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.bzbst-card__action--secondary {
    background: var(--bzbst-c-bg);
    color: var(--bzbst-c-text) !important;
    border-color: var(--bzbst-c-border);
}
.bzbst-card__action--secondary:hover {
    background: var(--bzbst-c-bg-soft);
    border-color: rgba(0,0,0,0.16);
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}
.bzbst-card__action--whatsapp {
    background: #25D366;
    color: #ffffff !important;
}
.bzbst-card__action--whatsapp:hover {
    background: #1ebe5d;
    box-shadow: 0 2px 8px rgba(37, 211, 102, 0.35);
}
.bzbst-card__action--whatsapp::before {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    margin-right: 2px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'><path d='M17.5 14.4c-.3-.1-1.6-.8-1.9-.9-.3-.1-.5-.1-.7.1-.2.3-.7.9-.9 1.1-.2.2-.3.2-.6.1-.3-.1-1.2-.4-2.3-1.4-.8-.7-1.4-1.7-1.6-2-.2-.3 0-.5.1-.6.1-.1.3-.3.4-.5.1-.2.2-.3.3-.5.1-.2 0-.4 0-.5-.1-.1-.7-1.6-.9-2.2-.2-.6-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.4-.3.3-1 1-1 2.4 0 1.4 1 2.8 1.2 3 .2.2 2 3.1 4.9 4.3 2.9 1.2 2.9.8 3.4.8.5-.1 1.6-.7 1.8-1.3.2-.6.2-1.2.2-1.3-.1-.1-.3-.1-.6-.3zm-5.5 7.5c-1.7 0-3.3-.5-4.7-1.3l-3.3.9.9-3.3c-.9-1.4-1.4-3.1-1.4-4.8C3.5 6.8 7.3 3 12 3s8.5 3.8 8.5 8.5-3.8 8.4-8.5 8.4zm0-18.4C6.5 3.5 2 8 2 13.5c0 1.8.5 3.5 1.3 5l-1.4 5 5.1-1.3c1.4.8 3.1 1.2 4.9 1.2 5.5 0 10-4.5 10-10s-4.4-10-9.9-10z'/></svg>");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.bzbst-empty {
    padding: 30px 20px;
    text-align: center;
    color: var(--bzbst-c-muted);
    font-size: 14px;
}

/* ──────────────────────────────────────────────────────────────────────
 * Aggregate-Rating-Komponente (Sterne + Wert + Anzahl)
 * Pattern analog zu bazuba-reviews: gelbe Sterne, Half-Star via ::before.
 * ────────────────────────────────────────────────────────────────────── */
.bzbst-card__rating {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    line-height: 1.1;
    font-size: 13px;
    color: var(--bzbst-c-muted, #6a6a6a);
}
.bzbst-stars {
    display: inline-flex;
    align-items: center;
    line-height: 1;
    letter-spacing: 0.04em;
    font-size: 15px;
    color: var(--bzbst-c-star-off, #e5e7ea);
}
.bzbst-star {
    display: inline-block;
    color: inherit;
}
.bzbst-star--full {
    color: var(--bzbst-c-star, #f5b921);
}
.bzbst-star--half {
    position: relative;
    color: var(--bzbst-c-star-off, #e5e7ea);
}
.bzbst-star--half::before {
    content: '★';
    position: absolute;
    inset: 0;
    width: 50%;
    overflow: hidden;
    color: var(--bzbst-c-star, #f5b921);
}
.bzbst-card__rating-value {
    color: var(--bzbst-c-text, #1a1a1a);
    font-weight: 700;
    font-size: 13px;
}
.bzbst-card__rating-count {
    color: var(--bzbst-c-muted, #6a6a6a);
    font-size: 12px;
}

/* Mobile */
@media (max-width: 820px) {
    /* Auf Mobile keine seitlichen Padding — Karte + Listcol nutzen volle Viewport-Breite. */
    .bzbst-app { padding: 16px 0; }
    .bzbst-grid {
        grid-template-columns: 1fr;
        gap: 12px;                    /* gleicher Abstand wie intern zwischen Such-Box und Liste */
    }
    .bzbst-listcol {
        max-height: none;
    }
    .bzbst-map { min-height: 280px; }
    .bzbst-app[data-height] .bzbst-map { height: 280px; }
    /* Karte und Liste auf Mobile ohne abgerundete Ecken — sieht bei full-width sauberer aus */
    .bzbst-map,
    .bzbst-list,
    .bzbst-search { border-radius: 0; }
    .bzbst-list { max-height: none; border-left: 0; border-right: 0; }
    .bzbst-search { border-left: 0; border-right: 0; }
}

/* ──────────────────────────────────────────────────────────────────────
 * Mini-Finder [bazuba_standortfinder]
 * ────────────────────────────────────────────────────────────────────── */
.bzbst-finder {
    --bzbst-c-bg: #ffffff;
    --bzbst-c-bg-soft: #f6f6f6;
    --bzbst-c-border: rgba(0,0,0,0.08);
    --bzbst-c-text: #1a1a1a;
    --bzbst-c-muted: #6a6a6a;
    --bzbst-c-primary: #1a1a1a;
    --bzbst-c-primary-on: #ffffff;
    --bzbst-c-accent: #1eaf9b;
    --bzbst-c-star: #f5b921;
    --bzbst-c-star-off: #e5e7ea;
    --bzbst-radius: 6px;
    color: var(--bzbst-c-text) !important;
    font-family: inherit !important;
    width: 100%;
    box-sizing: border-box;
    /* Default-Breite begrenzen — sonst zerfließt der Finder bei full-width-Containern
     * (1500-1920 px) und der Submit-Button wird absurd breit. Per CSS überschreibbar. */
    max-width: 480px;
}
.bzbst-finder--inline { max-width: 640px; }
/* Hero-Variante: prominenter, größerer Input + Button, breiteres Layout für Hero-Sections.
 * Form bleibt inline (Input + Button nebeneinander). */
.bzbst-finder--hero { max-width: 800px; }
.bzbst-finder--hero .bzbst-finder__form {
    flex-direction: row !important;
    gap: 10px !important;
}
.bzbst-finder--hero .bzbst-finder__input {
    padding: 18px 22px !important;
    font-size: 18px !important;
    border-radius: 8px !important;
}
.bzbst-finder--hero .bzbst-finder__submit {
    padding: 18px 36px !important;
    font-size: 17px !important;
    border-radius: 8px !important;
    width: auto !important;
}
.bzbst-finder--hero .bzbst-finder__title {
    font-size: 22px !important;
    margin-bottom: 16px !important;
}
@media (max-width: 640px) {
    .bzbst-finder--hero .bzbst-finder__form {
        flex-direction: column !important;
    }
    .bzbst-finder--hero .bzbst-finder__submit { width: 100% !important; }
}
/* Zentrierte Variante — Container mittig im Parent-Layout, Title text-zentriert */
.bzbst-finder--align-center {
    margin-left: auto !important;
    margin-right: auto !important;
}
.bzbst-finder--align-center .bzbst-finder__title {
    text-align: center;
}
.bzbst-finder *, .bzbst-finder *::before, .bzbst-finder *::after { box-sizing: border-box; }
.bzbst-finder__title {
    margin: 0 0 12px !important;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--bzbst-c-text) !important;
}
.bzbst-finder__form {
    display: flex !important;
    gap: 8px !important;
    align-items: stretch !important;
    margin: 0 !important;
    position: relative;
}
.bzbst-finder--stacked .bzbst-finder__form {
    flex-direction: column !important;
}
.bzbst-finder--stacked .bzbst-finder__submit {
    width: 100% !important;
}
.bzbst-finder__input {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    padding: 12px 16px !important;
    font-size: 16px !important;
    font-family: inherit !important;
    border: 2px solid var(--bzbst-c-border) !important;
    border-radius: var(--bzbst-radius) !important;
    background: var(--bzbst-c-bg) !important;
    color: var(--bzbst-c-text) !important;
    line-height: 1.4 !important;
    height: auto !important;
    margin: 0 !important;
    box-shadow: none !important;
}
.bzbst-finder__input:focus {
    outline: none !important;
    border-color: var(--bzbst-c-border) !important;
    box-shadow: 0 0 0 3px rgba(0,0,0,0.05) !important;
}
.bzbst-finder__submit {
    padding: 12px 22px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    font-family: inherit !important;
    border: 0 !important;
    border-radius: var(--bzbst-radius) !important;
    cursor: pointer !important;
    background: var(--bzbst-c-primary) !important;
    color: var(--bzbst-c-primary-on) !important;
    line-height: 1.2 !important;
    height: auto !important;
    margin: 0 !important;
    text-decoration: none !important;
    text-transform: none !important;
    box-shadow: none !important;
    transition: background-color 0.12s !important;
}
.bzbst-finder__submit:hover {
    background: #000 !important;
    color: var(--bzbst-c-primary-on) !important;
    opacity: 1 !important;
}
.bzbst-finder__status {
    margin: 10px 2px 0;
    font-size: 14px;
    color: var(--bzbst-c-muted);
    min-height: 1.2em;
}
.bzbst-finder__status--error { color: var(--bzbst-c-accent); }
.bzbst-finder__result {
    margin-top: 14px;
}
.bzbst-finder__result .bzbst-list__items {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 2px solid var(--bzbst-c-border);
    border-radius: var(--bzbst-radius);
    overflow: hidden;
}
.bzbst-finder__all-link {
    display: inline-block;
    margin-top: 12px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    color: var(--bzbst-c-primary);
}
.bzbst-finder__all-link:hover { text-decoration: underline; }

/* Karte unter dem Finder (wenn show_map=1) */
.bzbst-finder__map {
    position: relative;
    margin-top: 16px;
    min-height: 320px;
    border-radius: var(--bzbst-radius);
    overflow: hidden;
    background: var(--bzbst-c-bg-soft);
    border: 2px solid var(--bzbst-c-border);
}
/* Bei align="center" hat Finder max-width — Karte sollte gleiche Breite haben */
.bzbst-finder--with-map .bzbst-finder__map .bzbst-map__placeholder {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    color: var(--bzbst-c-muted); font-size: 14px;
}

/* ──────────────────────────────────────────────────────────────────────
 * Single-Card [bazuba_standort slug="..."]
 * ────────────────────────────────────────────────────────────────────── */
.bzbst-single {
    --bzbst-c-bg: #ffffff;
    --bzbst-c-bg-soft: #f6f6f6;
    --bzbst-c-border: rgba(0,0,0,0.08);
    --bzbst-c-text: #1a1a1a;
    --bzbst-c-muted: #6a6a6a;
    --bzbst-c-primary: #1a1a1a;
    --bzbst-c-primary-on: #ffffff;
    --bzbst-c-accent: #1eaf9b;
    --bzbst-c-star: #f5b921;
    --bzbst-c-star-off: #e5e7ea;
    --bzbst-radius: 6px;
    --bzbst-gap: 18px;
    color: var(--bzbst-c-text) !important;
    font-family: inherit !important;
    width: 100%;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--bzbst-gap);
}
.bzbst-single *, .bzbst-single *::before, .bzbst-single *::after { box-sizing: border-box; }

/* side (default): Card links, Karte rechts — zweispaltig */
.bzbst-single--with-map.bzbst-single--map-side {
    grid-template-columns: minmax(280px, 1fr) minmax(0, 1.2fr);
}

/* top: Karte oben, Card unten — einspaltig, HTML-Order Map→Card */
.bzbst-single--with-map.bzbst-single--map-top,
.bzbst-single--with-map.bzbst-single--map-bottom {
    grid-template-columns: 1fr;
}
.bzbst-single__card .bzbst-list__items {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 2px solid var(--bzbst-c-border);
    border-radius: var(--bzbst-radius);
    overflow: hidden;
}
.bzbst-single__map {
    position: relative;
    min-height: 280px;
    border-radius: var(--bzbst-radius);
    overflow: hidden;
    background: var(--bzbst-c-bg-soft);
}

.bzbst-error {
    padding: 14px 16px;
    background: #fef3f3;
    border: 1px solid var(--bzbst-c-accent, #d63d3d);
    color: #a31818;
    border-radius: 6px;
    font-size: 14px;
}

@media (max-width: 820px) {
    .bzbst-single--with-map,
    .bzbst-single--with-map.bzbst-single--map-side {
        grid-template-columns: 1fr;
    }
    .bzbst-single__map { min-height: 240px; }
}
