/*
Theme Name: Listeo Child
Theme URI: https://purethemes.net/
Description: Child theme for Listeo
Author: DIPANI
Template: listeo
Version: 1.0.2
Text Domain: listeo-child
*/

/* ==========================================================
   DIPANI – MODERNES EINZEL-LISTING
   Nur für öffentliche Listing-Detailseiten
========================================================== */

body.single-listing {
    --dipani-blue: #022D94;
    --dipani-blue-2: #1249c4;
    --dipani-blue-soft: #eef3ff;
    --dipani-red: #ef4444;
    --dipani-yellow: #ffb800;
    --dipani-text: #172033;
    --dipani-muted: #667085;
    --dipani-line: #e4e8f0;
    --dipani-surface: #ffffff;
    --dipani-page: #f7f9fc;
    --dipani-radius: 24px;
    --dipani-shadow: 0 18px 50px rgba(23, 32, 51, 0.08);

    background: var(--dipani-page) !important;
    color: var(--dipani-text);
}

body.single-listing .single-listing-page-titlebar {
    height: 28px !important;
    min-height: 28px !important;
    background: transparent !important;
}

body.single-listing .container:has(> .row.sticky-wrapper),
body.single-listing .single-listing-page-titlebar + .container {
    width: calc(100% - 48px) !important;
    max-width: 1500px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

body.single-listing .row.sticky-wrapper {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

body.single-listing .row.sticky-wrapper::before,
body.single-listing .row.sticky-wrapper::after {
    display: none !important;
}

/* ---------- Kopfbereich ---------- */
body.single-listing #titlebar.listing-titlebar {
    margin: 0 0 30px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

body.single-listing #titlebar.listing-titlebar:has(.listing-logo) {
    display: grid !important;
    grid-template-columns: minmax(0, 1.65fr) minmax(360px, 0.72fr) !important;
    gap: 32px !important;
    align-items: stretch !important;
}

body.single-listing #titlebar .listing-logo {
    float: none !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--dipani-surface) !important;
    border: 1px solid var(--dipani-line) !important;
    border-radius: var(--dipani-radius) !important;
    overflow: hidden !important;
    box-shadow: var(--dipani-shadow) !important;
}

body.single-listing #titlebar .listing-logo img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 540px !important;
    max-height: 680px !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 0 !important;
}

body.single-listing #titlebar .listing-titlebar-title {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 34px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
    background: var(--dipani-surface) !important;
    border: 1px solid var(--dipani-line) !important;
    border-radius: var(--dipani-radius) !important;
    box-shadow: var(--dipani-shadow) !important;
    box-sizing: border-box !important;
}

body.single-listing #titlebar.listing-titlebar:not(:has(.listing-logo)) .listing-titlebar-title {
    max-width: 100% !important;
}

body.single-listing #titlebar .listing-titlebar-tags {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin: 0 0 20px !important;
}

body.single-listing #titlebar .listing-tag,
body.single-listing #titlebar .listing-pricing-tag {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 34px !important;
    margin: 0 !important;
    padding: 7px 12px !important;
    background: var(--dipani-blue-soft) !important;
    border: 1px solid #dbe5ff !important;
    border-radius: 999px !important;
    color: var(--dipani-blue) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
}

body.single-listing #titlebar .listing-tag a,
body.single-listing #titlebar .listing-pricing-tag a {
    color: var(--dipani-blue) !important;
    text-decoration: none !important;
}

body.single-listing #titlebar h1 {
    margin: 0 0 16px !important;
    color: var(--dipani-text) !important;
    font-size: clamp(34px, 3vw, 52px) !important;
    font-weight: 800 !important;
    line-height: 1.08 !important;
    letter-spacing: -0.035em !important;
}

body.single-listing #titlebar .listing-address {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 0 18px !important;
    color: var(--dipani-muted) !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
}

body.single-listing #titlebar .listing-address i {
    color: var(--dipani-red) !important;
    font-size: 19px !important;
}

body.single-listing #titlebar .star-rating,
body.single-listing #titlebar .numerical-rating {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 42px !important;
    margin-top: 2px !important;
    padding: 9px 13px !important;
    background: #fff8e6 !important;
    border: 1px solid #ffe2a3 !important;
    border-radius: 999px !important;
}

body.single-listing #titlebar .star-rating::before,
body.single-listing #titlebar .star-rating span::before {
    color: var(--dipani-yellow) !important;
}

body.single-listing #titlebar .rating-counter,
body.single-listing #titlebar .rating-counter a {
    color: var(--dipani-text) !important;
    font-weight: 700 !important;
}

/* ---------- Desktop-Marktplatzaufbau ---------- */
@media (min-width: 1100px) {
    body.single-listing .row.sticky-wrapper {
        display: grid !important;
        grid-template-columns: minmax(0, 1.65fr) minmax(360px, 0.72fr) !important;
        gap: 32px !important;
        align-items: start !important;
    }

    body.single-listing .row.sticky-wrapper > .listeo-single-listing-content {
        display: contents !important;
    }

    body.single-listing .row.sticky-wrapper > .listeo-single-listing-content > #titlebar {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
    }

    body.single-listing .row.sticky-wrapper > .listeo-single-listing-content > .single-gallery,
    body.single-listing .row.sticky-wrapper > .listeo-single-listing-content > #listing-nav,
    body.single-listing .row.sticky-wrapper > .listeo-single-listing-content > .listing-section,
    body.single-listing .row.sticky-wrapper > .listeo-single-listing-content > [id^="listing-"] {
        grid-column: 1 !important;
    }

    body.single-listing .row.sticky-wrapper > .listeo-single-listing-sidebar {
        grid-column: 2 !important;
        grid-row: 2 / span 60 !important;
        width: auto !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        float: none !important;
        position: sticky !important;
        top: 92px !important;
        align-self: start !important;
    }
}

/* ---------- Hauptbild bei normaler Galerie ---------- */
body.single-listing img.single-gallery {
    display: block !important;
    width: 100% !important;
    max-height: 700px !important;
    margin: 0 0 24px !important;
    object-fit: cover !important;
    object-position: center !important;
    border: 1px solid var(--dipani-line) !important;
    border-radius: var(--dipani-radius) !important;
    box-shadow: var(--dipani-shadow) !important;
}

body.single-listing .listing-slider,
body.single-listing .listing-slider-small,
body.single-listing .listing-gallery {
    border-radius: var(--dipani-radius) !important;
    overflow: hidden !important;
}

/* ---------- Navigation ---------- */
body.single-listing #listing-nav.listing-nav-container {
    margin: 0 0 24px !important;
    padding: 8px !important;
    background: var(--dipani-surface) !important;
    border: 1px solid var(--dipani-line) !important;
    border-radius: 18px !important;
    box-shadow: 0 10px 30px rgba(23, 32, 51, 0.05) !important;
    overflow-x: auto !important;
}

body.single-listing #listing-nav .listing-nav {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
}

body.single-listing #listing-nav .listing-nav li {
    float: none !important;
    margin: 0 !important;
}

body.single-listing #listing-nav .listing-nav li a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    padding: 10px 16px !important;
    border-radius: 12px !important;
    color: var(--dipani-muted) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    border: 0 !important;
}

body.single-listing #listing-nav .listing-nav li a.active,
body.single-listing #listing-nav .listing-nav li a:hover {
    background: var(--dipani-blue) !important;
    color: #ffffff !important;
}

/* ---------- Inhaltskarten ---------- */
body.single-listing .listing-section {
    margin: 0 0 24px !important;
    padding: 30px !important;
    background: var(--dipani-surface) !important;
    border: 1px solid var(--dipani-line) !important;
    border-radius: var(--dipani-radius) !important;
    box-shadow: 0 12px 36px rgba(23, 32, 51, 0.055) !important;
    box-sizing: border-box !important;
}

body.single-listing .listing-section h2,
body.single-listing .listing-section h3,
body.single-listing .listing-section .listing-desc-headline {
    color: var(--dipani-text) !important;
    font-weight: 800 !important;
    letter-spacing: -0.02em !important;
}

body.single-listing .listing-section p,
body.single-listing .listing-section li {
    color: #465066 !important;
    font-size: 17px !important;
    line-height: 1.75 !important;
}

body.single-listing .listing-features.checkboxes {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

body.single-listing .listing-features.checkboxes li {
    margin: 0 !important;
    padding: 14px 16px !important;
    background: var(--dipani-blue-soft) !important;
    border: 1px solid #dce6ff !important;
    border-radius: 14px !important;
}

body.single-listing .listing-features.checkboxes li::before {
    color: var(--dipani-blue) !important;
}

/* ---------- Rechte Anbieter- und Aktionsspalte ---------- */
body.single-listing .listeo-single-listing-sidebar .widget,
body.single-listing .listeo-single-listing-sidebar .listing-widget,
body.single-listing .listeo-single-listing-sidebar .boxed-widget,
body.single-listing .listeo-single-listing-sidebar .hosted-by,
body.single-listing .listeo-single-listing-sidebar .listing-share,
body.single-listing .listeo-single-listing-sidebar .sidebar-textbox {
    margin: 0 0 18px !important;
    padding: 24px !important;
    background: var(--dipani-surface) !important;
    border: 1px solid var(--dipani-line) !important;
    border-radius: 20px !important;
    box-shadow: 0 12px 34px rgba(23, 32, 51, 0.065) !important;
    box-sizing: border-box !important;
}

body.single-listing .listeo-single-listing-sidebar .hosted-by-title,
body.single-listing .listeo-single-listing-sidebar .hosted-by-title h4,
body.single-listing .listeo-single-listing-sidebar .hosted-by-title a {
    color: var(--dipani-text) !important;
}

body.single-listing .listeo-single-listing-sidebar .hosted-by-avatar img,
body.single-listing .listeo-single-listing-sidebar .avatar img {
    border: 3px solid #ffffff !important;
    box-shadow: 0 0 0 2px #dce6ff, 0 10px 24px rgba(2, 45, 148, 0.14) !important;
}

body.single-listing .listeo-single-listing-sidebar a.button,
body.single-listing .listeo-single-listing-sidebar button.button,
body.single-listing .listeo-single-listing-sidebar input[type="submit"],
body.single-listing .listeo-single-listing-sidebar .bookmark-button,
body.single-listing .listeo-single-listing-sidebar .send-message-to-owner {
    width: 100% !important;
    min-height: 52px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    margin: 10px 0 0 !important;
    padding: 13px 18px !important;
    background: var(--dipani-blue) !important;
    border: 1px solid var(--dipani-blue) !important;
    border-radius: 14px !important;
    color: #ffffff !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    box-shadow: 0 10px 24px rgba(2, 45, 148, 0.2) !important;
    transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease !important;
}

body.single-listing .listeo-single-listing-sidebar a.button:hover,
body.single-listing .listeo-single-listing-sidebar button.button:hover,
body.single-listing .listeo-single-listing-sidebar input[type="submit"]:hover,
body.single-listing .listeo-single-listing-sidebar .bookmark-button:hover,
body.single-listing .listeo-single-listing-sidebar .send-message-to-owner:hover {
    background: var(--dipani-blue-2) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 14px 30px rgba(2, 45, 148, 0.24) !important;
}

body.single-listing .listing-share .social-icons,
body.single-listing .listing-share ul.social-icons {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin: 0 !important;
}

body.single-listing .listing-share .social-icons li {
    margin: 0 !important;
}

body.single-listing .listing-share .social-icons li a {
    width: 42px !important;
    height: 42px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--dipani-blue-soft) !important;
    border: 1px solid #dce6ff !important;
    border-radius: 50% !important;
    color: var(--dipani-blue) !important;
}

/* ---------- Bewertungen ---------- */
body.single-listing #listing-reviews,
body.single-listing .listing-reviews {
    border-radius: var(--dipani-radius) !important;
}

body.single-listing .review-box,
body.single-listing .comments .comment-content,
body.single-listing .comment-list .comment-content {
    background: #fbfcff !important;
    border: 1px solid var(--dipani-line) !important;
    border-radius: 18px !important;
    box-shadow: none !important;
}

body.single-listing .rating-bars-item .rating-bars-rating-inner {
    background: var(--dipani-blue) !important;
}

body.single-listing .star-rating::before,
body.single-listing .star-rating span::before {
    color: var(--dipani-yellow) !important;
}

body.single-listing .add-review-box,
body.single-listing #add-review {
    background: var(--dipani-surface) !important;
    border: 1px solid var(--dipani-line) !important;
    border-radius: var(--dipani-radius) !important;
}

/* ---------- Formulare ---------- */
body.single-listing input[type="text"],
body.single-listing input[type="email"],
body.single-listing input[type="tel"],
body.single-listing input[type="number"],
body.single-listing textarea,
body.single-listing select,
body.single-listing .select2-container--default .select2-selection--single {
    border: 1px solid #d8deea !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    box-shadow: none !important;
}

body.single-listing input:focus,
body.single-listing textarea:focus,
body.single-listing select:focus {
    border-color: var(--dipani-blue) !important;
    box-shadow: 0 0 0 3px rgba(2, 45, 148, 0.1) !important;
}

/* ---------- Tablet ---------- */
@media (max-width: 1099px) {
    body.single-listing .container:has(> .row.sticky-wrapper),
    body.single-listing .single-listing-page-titlebar + .container {
        width: calc(100% - 30px) !important;
    }

    body.single-listing #titlebar.listing-titlebar:has(.listing-logo) {
        grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr) !important;
        gap: 22px !important;
    }

    body.single-listing #titlebar .listing-logo img {
        min-height: 440px !important;
    }

    body.single-listing .listeo-single-listing-sidebar {
        position: static !important;
    }
}

/* ---------- Smartphone ---------- */
@media (max-width: 767px) {
    body.single-listing .single-listing-page-titlebar {
        height: 14px !important;
        min-height: 14px !important;
    }

    body.single-listing .container:has(> .row.sticky-wrapper),
    body.single-listing .single-listing-page-titlebar + .container {
        width: calc(100% - 20px) !important;
    }

    body.single-listing #titlebar.listing-titlebar:has(.listing-logo) {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    body.single-listing #titlebar .listing-logo img {
        min-height: 300px !important;
        max-height: 380px !important;
    }

    body.single-listing #titlebar .listing-titlebar-title {
        padding: 22px !important;
        border-radius: 18px !important;
    }

    body.single-listing #titlebar h1 {
        font-size: 34px !important;
    }

    body.single-listing .listing-section {
        padding: 22px !important;
        border-radius: 18px !important;
    }

    body.single-listing .listing-features.checkboxes {
        grid-template-columns: 1fr !important;
    }

    body.single-listing .listeo-single-listing-sidebar .widget,
    body.single-listing .listeo-single-listing-sidebar .listing-widget,
    body.single-listing .listeo-single-listing-sidebar .boxed-widget,
    body.single-listing .listeo-single-listing-sidebar .hosted-by,
    body.single-listing .listeo-single-listing-sidebar .listing-share,
    body.single-listing .listeo-single-listing-sidebar .sidebar-textbox {
        padding: 20px !important;
        border-radius: 18px !important;
    }
}

/* ==========================================================
   DIPANI – KORREKTUR DES OBEREN LISTING-BEREICHS
   Entfernt unnötige Leerfläche und ordnet die Bewertung sauber.
========================================================== */

@media (min-width: 768px) {
    body.single-listing #titlebar.listing-titlebar:has(.listing-logo) {
        align-items: start !important;
    }

    body.single-listing #titlebar .listing-titlebar-title {
        align-self: start !important;
        height: auto !important;
        min-height: 0 !important;
        justify-content: flex-start !important;
        padding-top: 38px !important;
        padding-bottom: 38px !important;
    }
}

/* Bewertung: zuerst Sterne, danach Zahl und Bewertungslink */
body.single-listing #titlebar .star-rating {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    direction: ltr !important;
    float: none !important;
    width: auto !important;
}

body.single-listing #titlebar .star-rating > span,
body.single-listing #titlebar .star-rating::before {
    order: 1 !important;
    flex: 0 0 auto !important;
}

body.single-listing #titlebar .rating-counter {
    order: 2 !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}

body.single-listing #titlebar .rating-counter a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    text-decoration: none !important;
}

/* Rechte Spalte kompakter und ohne künstliche Mindesthöhe */
body.single-listing .listeo-single-listing-sidebar,
body.single-listing .listeo-single-listing-sidebar .widget,
body.single-listing .listeo-single-listing-sidebar .listing-widget,
body.single-listing .listeo-single-listing-sidebar .boxed-widget,
body.single-listing .listeo-single-listing-sidebar .hosted-by,
body.single-listing .listeo-single-listing-sidebar .sidebar-textbox {
    min-height: 0 !important;
    height: auto !important;
}

/* Titelkarte auf kleinen Geräten natürlich wachsen lassen */
@media (max-width: 767px) {
    body.single-listing #titlebar .listing-titlebar-title {
        height: auto !important;
        min-height: 0 !important;
        justify-content: flex-start !important;
    }

    body.single-listing #titlebar .star-rating {
        flex-wrap: wrap !important;
    }
}
/* =====================================================
   DIPANI – Abstand zwischen Beschreibung und ALLEN Feldern
   ===================================================== */

body.single-listing #dc-description > .dc-copy + .dc-copy {
    margin-top: 35px !important;
}

@media (max-width: 767px) {
    body.single-listing #dc-description > .dc-copy + .dc-copy {
        margin-top: 26px !important;
    }
}
/* =====================================================
   DIPANI – Favoritenbutton bleibt nach Speichern rund
   ===================================================== */

body.single-listing .dipani-listing-gallery-actions .like-button {
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;

    padding: 0 !important;
    overflow: hidden !important;

    font-size: 0 !important;
    white-space: nowrap !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Texte wie „Favorit“, „Gespeichert“ oder
   „Lesezeichen gesetzt!“ niemals im runden Button anzeigen */
body.single-listing
.dipani-listing-gallery-actions
.like-button
.bookmark-btn-title {
    display: none !important;
}

/* Herz/Icon weiterhin normal anzeigen */
body.single-listing
.dipani-listing-gallery-actions
.like-button
.like-icon {
    display: block !important;
    font-size: initial !important;
}
/* =====================================================
   DIPANI – FAVORITENSTATUS
   Nicht gespeichert = volles rotes Herz
   Gespeichert       = rotes Herz als Kontur
   ===================================================== */

body.single-listing .dc-media-tools .like-button {
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;

    padding: 0 !important;
    margin: 0 !important;

    position: relative !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    background: rgba(255,255,255,.96) !important;
    border-radius: 50% !important;

    overflow: hidden !important;
}


/* Text wie Favorit / Gespeichert ausblenden */
body.single-listing .dc-media-tools .bookmark-btn-title {
    display: none !important;
}


/* Herz sauber zentrieren */
body.single-listing .dc-media-tools .like-icon {
    position: absolute !important;
    inset: 0 !important;

    width: 44px !important;
    height: 44px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 !important;

    opacity: 1 !important;
}


/* =====================================================
   NICHT GESPEICHERT
   volles rotes Herz
   ===================================================== */

body.single-listing .dc-media-tools .like-button:not(.liked) .like-icon::before {
    content: "\f004" !important;
    font-family: "FontAwesome" !important;
    font-size: 19px !important;
    font-weight: normal !important;
    color: var(--dc-red, #ff1744) !important;
}


/* =====================================================
   GESPEICHERT
   rotes Herz nur als Kontur
   ===================================================== */

body.single-listing .dc-media-tools .like-button.liked .like-icon::before,
body.single-listing .dc-media-tools .like-button .like-icon.liked::before {
    content: "\f08a" !important;
    font-family: "FontAwesome" !important;
    font-size: 20px !important;
    font-weight: normal !important;
    color: var(--dc-red, #ff1744) !important;
}


/* Kein zusätzliches Theme-Symbol */
body.single-listing .dc-media-tools .like-icon::after {
    display: none !important;
    content: none !important;
}


/* Smartphone */
@media (max-width: 680px) {

    body.single-listing .dc-media-tools .like-button,
    body.single-listing .dc-media-tools .like-icon {
        width: 40px !important;
        min-width: 40px !important;
        max-width: 40px !important;

        height: 40px !important;
        min-height: 40px !important;
        max-height: 40px !important;
    }
}
/* =====================================================
   DIPANI – FAVORITENHERZ FINAL
   Nicht gespeichert = voll rot
   Gespeichert        = rote Kontur, innen weiß
   Farbe              = #E30613
   ===================================================== */

body.single-listing .dc-media-tools .like-button {
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;

    position: relative !important;
    padding: 0 !important;
    margin: 0 !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    border-radius: 50% !important;
    background: rgba(255,255,255,.96) !important;
    overflow: hidden !important;

    font-size: 0 !important;
}

/* Listeo eigenes Herz und Texte komplett verstecken */
body.single-listing .dc-media-tools .like-button .like-icon,
body.single-listing .dc-media-tools .like-button .like-icon::before,
body.single-listing .dc-media-tools .like-button .like-icon::after,
body.single-listing .dc-media-tools .like-button .bookmark-btn-title {
    display: none !important;
}


/* =====================================================
   NICHT GESPEICHERT = VOLLES ROTES HERZ
   ===================================================== */

body.single-listing .dc-media-tools .like-button::after {
    content: "" !important;

    width: 23px !important;
    height: 23px !important;

    display: block !important;

    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: contain !important;

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23E30613' d='M12 21s-7.1-4.4-9.5-8.1C.1 9.3 1.9 5 6.1 5c2.4 0 4 1.5 5.9 3.6C13.9 6.5 15.5 5 17.9 5c4.2 0 6 4.3 3.6 7.9C19.1 16.6 12 21 12 21z'/%3E%3C/svg%3E") !important;
}


/* =====================================================
   GESPEICHERT = ROTE HERZKONTUR
   innen weiß / transparent
   ===================================================== */

body.single-listing .dc-media-tools .like-button.liked::after,
body.single-listing .dc-media-tools .like-button.save::after,
body.single-listing .dc-media-tools .like-button:has(.like-icon.liked)::after {
    width: 24px !important;
    height: 24px !important;

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23E30613' stroke-width='2.2' stroke-linejoin='round' d='M12 21s-7.1-4.4-9.5-8.1C.1 9.3 1.9 5 6.1 5c2.4 0 4 1.5 5.9 3.6C13.9 6.5 15.5 5 17.9 5c4.2 0 6 4.3 3.6 7.9C19.1 16.6 12 21 12 21z'/%3E%3C/svg%3E") !important;
}


/* Smartphone */
@media (max-width: 680px) {
    body.single-listing .dc-media-tools .like-button {
        width: 40px !important;
        min-width: 40px !important;
        max-width: 40px !important;
        height: 40px !important;
        min-height: 40px !important;
        max-height: 40px !important;
    }
}

/**
 * =========================================================
 * DIPANI – DOKAN ORIGINAL RESTORE – STEP 5
 * Restore Dokan 5.1.2's classic Orders control sizing only.
 * Rollback: remove this complete marked block.
 * =========================================================
 */

/* Restore Dokan's inherited control typography on Orders only. */
body.page-id-6438 .dokan-orders-content button,
body.page-id-6438 .dokan-orders-content input,
body.page-id-6438 .dokan-orders-content select,
body.page-id-6438 .dokan-orders-content a.dokan-btn,
body.page-id-6438 .dokan-orders-content .select2-container,
body.page-id-6438 .dokan-orders-content .select2-selection {
    font-family: inherit;
}

/* Restore the original classic Dokan form-control values. */
body.page-id-6438 .dokan-orders-content .dokan-form-control {
    font-size: 14px;
    font-weight: inherit;
    line-height: 20px;
    padding: 4px 6px;
}

/* Remove Listeo's global 51px input height from classic Dokan buttons. */
body.page-id-6438 .dokan-orders-content .dokan-btn {
    height: auto;
    font-size: 14px;
    font-weight: normal;
    line-height: 1.42857;
    padding: 6px 12px;
}

/* Dokan 5.1.2 sets every control in the Orders filter row to 35px. */
body.page-id-6438 .dokan-orders-content .dokan-orders-area .dokan-order-filter-serach .dokan-left .dokan-form-group button,
body.page-id-6438 .dokan-orders-content .dokan-orders-area .dokan-order-filter-serach .dokan-left .dokan-form-group a,
body.page-id-6438 .dokan-orders-content .dokan-orders-area .dokan-order-filter-serach .dokan-left .dokan-form-group input,
body.page-id-6438 .dokan-orders-content .dokan-orders-area .dokan-order-filter-serach .dokan-left .dokan-form-group select,
body.page-id-6438 .dokan-orders-content .dokan-orders-area .dokan-order-filter-serach .dokan-left .dokan-form-group .select2-container,
body.page-id-6438 .dokan-orders-content .dokan-orders-area .dokan-order-filter-serach .dokan-left .dokan-form-group .select2-selection--single {
    height: 35px !important;
}

/* ==========================================================
   DIPANI – LISTING-ÜBERSICHT DESIGN V6
   Referenz: Elementor Profilverzeichnis #6224 / Profilkarten #5810
   Nur CSS. Keine Änderungen an Suche, AJAX, Filterdaten oder URLs.
   Alte widersprüchliche LISTING ARCHIV V4 PRO-Regeln ersetzt.
   ========================================================== */

body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout) {
  --dipani-listing-blue: #022D94;
  --dipani-listing-blue-hover: #001F69;
  --dipani-listing-muted: #738096;
  --dipani-listing-line: #DFE6F0;
  background: #F7F9FC;
}

/* Die übrigen Seiten und Elementor-Profilverzeichnisse bleiben unverändert. */
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
.full-page-container.full-page-jobs {
  width: min(1580px, calc(100% - 48px)) !important;
  max-width: 1580px !important;
  margin: 0 auto !important;
  padding: 28px 0 64px !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 30px !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
  background: transparent !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
.full-page-container.full-page-jobs > .dipani-archive-left-gutter {display:none !important;}

/* Sidebar: wie die linke Filterkarte des Elementor-Verzeichnisses. */
@media (min-width: 992px) {
  body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
  .full-page-container.full-page-jobs > .full-page-sidebar {
    position: relative !important;
    flex: 0 0 318px !important;
    width: 318px !important;
    min-width: 318px !important;
    max-width: 318px !important;
    height: auto !important;
    max-height: none !important;
    top: auto !important;
    left: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
  }
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
.full-page-container.full-page-jobs .full-page-sidebar-inner {
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  padding: 24px !important;
  background: #F7F9FC !important;
  border: 1px solid var(--dipani-listing-line) !important;
  border-radius: 19px !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
.full-page-sidebar :is(.widget-title,.sidebar-title,h3) {
  color: #172033 !important;
  font-size: 21px !important;
  font-weight: 750 !important;
  line-height: 1.25 !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
.full-page-sidebar :is(input[type="text"],input[type="search"],select,.chosen-single,.select2-selection) {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: 51px !important;
  background: #fff !important;
  border: 1px solid #DCE4EF !important;
  border-radius: 11px !important;
  box-shadow: none !important;
  color: #253248 !important;
  font-size: 14px !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
.full-page-sidebar form :is(button[type="submit"],input[type="submit"],button.button) {
  min-height: 49px !important;
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #fff !important;
  background: var(--dipani-listing-blue) !important;
  border: 1px solid var(--dipani-listing-blue) !important;
  border-radius: 12px !important;
  font-size: 14px !important;
  font-weight: 750 !important;
  box-shadow: none !important;
  cursor: pointer !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
.full-page-sidebar form :is(button[type="submit"],input[type="submit"],button.button):hover {
  background: var(--dipani-listing-blue-hover) !important;
}

/* Content und Überschriften. Keine Formulare löschen oder ersetzen. */
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
.full-page-container.full-page-jobs > .full-page-content-container {
  position: relative !important;
  flex: 1 1 0 !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: transparent !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
:is(.full-page-content-inner,.full-page-job-listings-container) {
  min-width: 0 !important;
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
.filters-container {background: transparent !important; box-shadow: none !important; border: 0 !important;}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
.full-page-content-container :is(.page-title,h1.page-title) {
  margin-top: 0 !important;
  color: #172033 !important;
  font-weight: 800 !important;
  letter-spacing: -.025em !important;
}

/* Echtes 3er-Raster; AJAX-Ladeelement belegt keine Karten-Spalte. */
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] {
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  gap: 27px !important;
  align-items: start !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] > .loader-ajax-container {
  position: absolute !important;
  inset: 0 !important;
  z-index: 8 !important;
  pointer-events: none !important;
  width: 100% !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] > :is(.clearfix) { display: none !important; }
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"]::before,
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"]::after { display: none !important; content: none !important; }

/* Exakt der freistehende DIPANI-Kartenstil: KEINE weißen Kachelrahmen. */
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .listing-card-container-nl {
  display: block !important;
  float: none !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .listing-card-nl {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}

/* Quadratisches Banner mit überlappendem Profilbild. */
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .listing-image-container-nl {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: 1 / 1 !important;
  margin: 0 0 33px !important;
  padding: 0 !important;
  overflow: visible !important;
  border-radius: 18px !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .listing-image-container-nl > a:first-child {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  border-radius: 18px !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .slider-wrapper-nl {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: 1/1 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: 18px !important;
  background: linear-gradient(135deg,#073CA7,#1458C9) !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] :is(.slider-wrapper-nl img) {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .listing-category-tag-nl {
  display: inline-flex !important;
  max-width: calc(100% - 58px) !important;
  padding: 7px 12px !important;
  background: var(--dipani-listing-blue) !important;
  color: #fff !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  font-weight: 750 !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .favorite-icon-nl {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 39px !important;
  min-width: 39px !important;
  height: 39px !important;
  min-height: 39px !important;
  background: #fff !important;
  border-radius: 50% !important;
  box-shadow: 0 4px 15px rgba(23,32,51,.13) !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .dipani-card-avatar-link {
  position: absolute !important;
  z-index: 10 !important;
  left: 15px !important;
  bottom: -17px !important;
  display: block !important;
  width: 59px !important;
  height: 59px !important;
  min-width: 59px !important;
  min-height: 59px !important;
  margin: 0 !important;
  padding: 3px !important;
  border: 2px solid #fff !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: 0 5px 16px rgba(23,32,51,.17) !important;
  overflow: hidden !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .dipani-card-avatar-link img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 9px !important;
}

/* Textbereich freistehend – wie eure Elementor-Profilkarten. */
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .listing-details-nl {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 2px !important;
  background: transparent !important;
  border: 0 !important;
  text-decoration: none !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .details-main-col-nl {
  display: flex !important;
  flex: 0 0 auto !important;
  flex-direction: column !important;
  align-items: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .listing-title-nl {
  display: block !important;
  order: 1 !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 0 6px !important;
  padding: 0 !important;
  font-size: 17px !important;
  font-weight: 750 !important;
  color: #172033 !important;
  line-height: 1.28 !important;
  overflow-wrap: anywhere !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .listing-location-nl {
  display: block !important;
  order: 2 !important;
  margin: 0 0 6px !important;
  color: #7A8698 !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .listing-excerpt-nl {
  display: -webkit-box !important;
  order: 3 !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  max-height: 40px !important;
  min-height: 0 !important;
  margin: 0 0 8px !important;
  color: #667085 !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
  overflow: hidden !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .details-sidebar-col-nl {
  position: static !important;
  display: flex !important;
  flex: 0 0 auto !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  width: 100% !important;
  min-height: 26px !important;
  height: auto !important;
  max-height: none !important;
  margin: 6px 0 0 !important;
  padding: 8px 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-top: 1px solid #E4E9F1 !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] :is(.listing-booking-nl,.details-sidebar-upper-nl) {
  display: inline-flex !important;
  align-items: center !important;
  flex: 0 1 auto !important;
  min-width: 0 !important;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .price-nl {
  font-size: 12px !important;
  line-height: 1.3 !important;
  font-weight: 750 !important;
}

/* Nur sichtbar, wenn die aktuelle PHP-Kartenvorlage diese Elemente liefert. */
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .dipani-card-actions {
  display: grid !important;
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 8px !important;
  width: 100% !important;
  margin: 8px 0 0 !important;
  padding: 0 2px !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .dipani-card-action {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 38px !important;
  margin: 0 !important;
  padding: 8px 6px !important;
  background: var(--dipani-listing-blue) !important;
  border: 1.5px solid var(--dipani-listing-blue) !important;
  border-radius: 999px !important;
  color: #fff !important;
  text-align: center !important;
  font-size: 11px !important;
  font-weight: 750 !important;
  text-decoration: none !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .dipani-card-action--secondary {
  background: #fff !important;
  color: var(--dipani-listing-blue) !important;
}
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="grid"] .dipani-card-action:hover {
  color: #fff !important;
  background: var(--dipani-listing-blue-hover) !important;
}

/* Weder List-Mode, Paginierung noch AJAX-Ergebnisse in das Grid erzwingen. */
body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
#listeo-listings-container[data-style="list"] { display: block !important; }
@media (max-width: 1420px) and (min-width: 1150px) {
  body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
  #listeo-listings-container[data-style="grid"] { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width: 1149px) and (min-width: 992px) {
  body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
  .full-page-container.full-page-jobs {gap: 22px !important;}
  body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
  .full-page-container.full-page-jobs > .full-page-sidebar { flex-basis: 275px !important; width: 275px !important; min-width: 275px !important; max-width: 275px !important; }
  body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
  #listeo-listings-container[data-style="grid"] { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 18px !important; }
}
@media (max-width: 991px) {
  body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
  .full-page-container.full-page-jobs { width: calc(100% - 28px) !important; display: block !important; padding: 20px 0 52px !important; }
  /* Mobile Filter-Ausklappfunktion bleibt vollständig bei Listeo. */
  body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
  .full-page-container.full-page-jobs > .full-page-content-container {width: 100% !important;}
  body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
  #listeo-listings-container[data-style="grid"] { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 20px !important; }
}
@media (max-width: 650px) {
  body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
  .full-page-container.full-page-jobs { width: calc(100% - 24px) !important; }
  body:is(.post-type-archive-listing,.grid_sidebar-archive-listings-layout)
  #listeo-listings-container[data-style="grid"] { grid-template-columns: minmax(0,1fr) !important; max-width: 440px !important; gap: 24px !important; }
}
