/* Listenkarten com_psproperties (10.09.2026) - Ziel: /media/templates/site/panorama_scouting/css/ps-cards.css
   Desktop ab 768px: Entwurf "04.2" - links drei Bilder, rechts Datenblatt, darunter Navy-Balken mit Versaltitel.
   Handy unter 768px: Entwurf "Y1" - feste Hoehe 349px, Slider fuellt den Rest, Ort/Preis im Bild, Titel im Balken,
   darunter eine Zeile mit vier Werten und Symbolen.
   Zustaende: .ps-card--reduced (gruener Verlauf), .ps-card--recommended (Verlauf Navy > Cyan),
   .ps-card--reserved (Rotorange), .ps-card--sold (Dunkelrot, Bilder grau). */

.ps-cards .ps-card {
    display: grid;
    grid-template-columns: minmax(0, 66%) minmax(0, 34%);
    grid-template-rows: 176px auto;
    row-gap: 2px;
    margin-bottom: 2.25rem;
    background: #fff;
    color: #2c2c2a;
    border: 1px solid #d5dcea;
}

/* ---------- Bilder (Desktop) ---------- */
.ps-cards .ps-card__pics {
    grid-column: 1;
    grid-row: 1;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    min-width: 0;
    width: 100%;
    align-self: stretch;
    justify-self: stretch;
}

.ps-cards .ps-card__pic {
    position: relative;
    display: block;
    min-width: 0;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    background: #e6ecf5;
}

.ps-cards .ps-card__pic picture,
.ps-cards .ps-card__pic img {
    display: block;
    width: 100%;
    height: 100%;
}

.ps-cards .ps-card__pic img {
    object-fit: cover;
    object-position: center;
}

.ps-cards .ps-card__pic--empty {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    font-size: 12px;
    color: #7a7d86;
    text-align: center;
    text-decoration: none;
}

.ps-cards .ps-card__pics .ps-card__pic--empty:only-child {
    grid-column: 1 / -1;
}

/* Handy-Slider auf dem Desktop aus */
.ps-cards .ps-card__slider {
    display: none;
}

/* Ort und Objekt-ID unten im ersten Bild (Desktop, Entwurf 16: weisses Band nach rechts auslaufend) */
.ps-cards .ps-card__pic-loc {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    padding: 4px 10px 4px 16px;
    background: linear-gradient(90deg, rgba(255, 255, 255, .92) 0%, rgba(255, 255, 255, .78) 45%, rgba(255, 255, 255, .35) 80%, rgba(255, 255, 255, 0) 100%);
    color: #2f5496;
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ps-cards .ps-card__pic-loc i {
    font-style: normal;
    margin-left: 6px;
    padding: 0 5px;
    border: 1px solid rgba(47, 84, 150, .55);
    font-size: 9px;
    letter-spacing: .06em;
}

/* ---------- Marke (Reduziert / Empfehlung / Reserviert / Verkauft) ---------- */
/* Eck-Container oben links: ID-Kaestchen + optional Farbfeld */
.ps-cards .ps-card__corner {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 3;
    display: flex;
    align-items: stretch;
    gap: 8px;
    max-width: 92%;
}

.ps-cards .ps-card__idbox {
    display: inline-flex;
    align-items: center;
    padding: 2px 4px;
    border: 1px solid rgba(255, 255, 255, .9);
    color: #fff;
    font-style: normal;
    font-size: 9.5px;
    letter-spacing: .1em;
    text-shadow: 0 1px 2px rgba(0, 27, 76, .6);
    white-space: nowrap;
}

.ps-cards .ps-card__tag {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    background: #2f5496;
    color: #fff;
    font-size: 10px;
    font-weight: 400;
    letter-spacing: .14em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ps-cards .ps-card--reduced .ps-card__tag {
    background: linear-gradient(90deg, #1e8f7a 0%, #30b8a8 100%);
}

.ps-cards .ps-card--recommended .ps-card__tag {
    background: linear-gradient(90deg, #2f5496 0%, #00cccc 100%);
}

.ps-cards .ps-card--reserved .ps-card__tag {
    background: #d9472b;
}

.ps-cards .ps-card--sold .ps-card__tag {
    background: #8f0222;
}

.ps-cards .ps-card--sold .ps-card__pic,
.ps-cards .ps-card--sold .ps-card__slider .splide__slide {
    filter: saturate(.15);
    opacity: .85;
}

/* ---------- Datenblatt rechts (Desktop) ---------- */
.ps-cards .ps-card__info {
    grid-column: 2;
    grid-row: 1;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 12px;
    min-width: 0;
    padding: 14px 22px 12px;
}

.ps-cards .ps-card__facts {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ps-cards .ps-card__facts li {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
    padding-left: 10px;
    border-left: 2px solid #2f5496;
}

.ps-cards .ps-card__facts svg,
.ps-cards .ps-card__fact-short {
    display: none;
}

.ps-cards .ps-card__fact-label {
    font-size: 9.5px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #7a7d86;
}

.ps-cards .ps-card__fact-value {
    font-size: 13px;
    color: #2c2c2a;
    font-variant-numeric: tabular-nums;
}

.ps-cards .ps-card__bot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 12px;
    border-top: 1px solid #d5dcea;
}

.ps-cards .ps-card__status {
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #7a7d86;
}

.ps-cards .ps-card--reserved .ps-card__status {
    color: #e0762b;
}

.ps-cards .ps-card--sold .ps-card__status {
    color: #8f0222;
}

.ps-cards .ps-card__btn {
    padding: 8px 14px;
    background: #2f5496;
    color: #fff;
    font-size: 10px;
    font-weight: 400;
    letter-spacing: .12em;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
    transition: background .2s ease;
}

.ps-cards .ps-card__btn:hover {
    background: #25417a;
    color: #fff;
}

/* ---------- Navy-Balken (Desktop: unter den Bildern) ---------- */
.ps-cards .ps-card__head {
    grid-column: 1 / -1;
    grid-row: 2;
    min-height: 42px;
    text-decoration: none;
    transition: background .25s ease;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 5px 22px 5px 16px;
    background: #2f5496;
    color: #fff;
}

.ps-cards .ps-card--recommended .ps-card__head {
    background: linear-gradient(90deg, #2f5496 0%, #2f5496 45%, #1f8fb0 100%);
}

/* Hover wie beim Button: Bilder, Datenblatt, Button oder Balken ueberfahren -> Balken und Button dunkler */
.ps-cards .ps-card:hover .ps-card__head,
.ps-cards .ps-card__head:focus-visible {
    background: #25417a;
    color: #fff;
    text-decoration: none;
}

.ps-cards .ps-card:hover .ps-card__btn {
    background: #25417a;
}

/* Desktop: beim Ueberfahren wird der weisse Kartenhintergrund ganz leicht blaeulich (Datenfeld + Fuge) */
@media (min-width: 768px) {
    .ps-cards .ps-card {
        transition: background-color .2s ease, border-color .2s ease;
    }

    .ps-cards .ps-card:hover {
        background: #f3f6fb;
        border-color: #c9d4e8;
    }
}

.ps-cards .ps-card--recommended:hover .ps-card__head,
.ps-cards .ps-card--recommended .ps-card__head:focus-visible {
    background: linear-gradient(90deg, #25417a 0%, #25417a 45%, #177a96 100%);
}

.ps-cards .ps-card__head-text {
    flex: 1;
    min-width: 0;
}

.ps-cards .ps-card__loc {
    display: none;
    margin: 0 0 2px;
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #bcd0f0;
}

.ps-cards .ps-card__id {
    display: inline-block;
    margin-left: 6px;
    padding: 0 6px;
    border: 1px solid #6d8cc4;
    color: #dfe7f5;
    font-size: 9.5px;
    letter-spacing: .06em;
    vertical-align: 1px;
}

.ps-cards .ps-card__title {
    display: block;
    margin: 0;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #fff;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ps-cards .ps-card:hover .ps-card__title {
    color: #fff;
    text-decoration: none;
}

.ps-cards .ps-card__pricebox {
    display: flex;
    flex: none;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
}

.ps-cards .ps-card__pricenote {
    font-size: 9.5px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #7ee0a5;
}

.ps-cards .ps-card__price {
    margin: 0;
    font-size: 17px;
    font-weight: 400;
    letter-spacing: .02em;
    white-space: nowrap;
    color: #fff;
    font-variant-numeric: tabular-nums;
}

.ps-cards .ps-card--reserved .ps-card__price {
    color: #f4b183;
}

.ps-cards .ps-card--sold .ps-card__price {
    color: #f0b7c0;
}

/* ---------- Tablet: Bilder oben, Balken, dann Datenblatt ---------- */
@media (min-width: 768px) and (max-width: 991.98px) {
    .ps-cards .ps-card {
        grid-template-columns: 1fr;
        grid-template-rows: 200px auto auto;
    }

    .ps-cards .ps-card__pics {
        grid-column: 1;
        grid-row: 1;
    }

    .ps-cards .ps-card__head {
        grid-row: 2;
    }

    .ps-cards .ps-card__info {
        grid-column: 1;
        grid-row: 3;
        padding: 16px 20px 14px;
    }
}

/* ---------- Handy: feste Hoehe, Slider fuellt den Rest ---------- */
@media (max-width: 767.98px) {
    .ps-cards .ps-card {
        display: flex;
        flex-direction: column;
        height: 349px;
        margin-bottom: 2.125rem;
        overflow: hidden;
    }

    .ps-cards .ps-card__pics {
        display: none;
    }

    .ps-cards .ps-card__slider {
        display: block;
        position: relative;
        flex: 1 1 auto;
        order: 1;
        min-height: 0;
        background: #e6ecf5;
    }

    .ps-cards .ps-card__slider .com-ps-slider {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        display: block;
    }

    .ps-cards .ps-card__slider .splide,
    .ps-cards .ps-card__slider .splide__track,
    .ps-cards .ps-card__slider .splide__list,
    .ps-cards .ps-card__slider .splide__slide,
    .ps-cards .ps-card__slider .properties-item__slide-image,
    .ps-cards .ps-card__slider .properties-item__slide-image a,
    .ps-cards .ps-card__slider .properties-item__slide-image picture,
    .ps-cards .ps-card__slider .properties-item__slide-text {
        height: 100% !important;
    }

    .ps-cards .ps-card__slider .properties-item__slide-image a,
    .ps-cards .ps-card__slider .properties-item__slide-image picture,
    .ps-cards .ps-card__slider .properties-item__slide-image img {
        display: block;
        width: 100%;
    }

    .ps-cards .ps-card__slider .properties-item__slide-image img {
        height: 100%;
        object-fit: cover;
        object-position: center;
    }

    .ps-cards .ps-card__slider .properties-item__slide-text {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0 40px;
        text-align: center;
        background: #cacaca;
    }

    /* Slider-Pfeile: kein Kreis, 80% groesser, milchig weiss */
    .ps-cards .ps-card__slider .splide__arrow {
        z-index: 4;
        width: auto;
        height: auto;
        padding: 6px;
        background: transparent;
        border-radius: 0;
        opacity: 1;
    }

    .ps-cards .ps-card__slider .splide__arrow svg {
        width: 1.875em;
        height: 1.875em;
        fill: rgba(255, 255, 255, .78);
        transform: scaleX(.8);
        filter: drop-shadow(0 1px 2px rgba(0, 27, 76, .45));
    }

    .ps-cards .ps-card__slider .splide__arrow:hover:not(:disabled) svg {
        fill: rgba(255, 255, 255, .95);
    }

    .ps-cards .ps-card__slider .splide__arrow--prev {
        left: 4px;
    }

    .ps-cards .ps-card__slider .splide__arrow--prev svg {
        transform: scaleX(-.8);
    }

    /* Auf dem ersten Bild nur den Pfeil nach rechts zeigen */
    .ps-cards .ps-card__slider .splide:has(.splide__slide:first-child.is-active) .splide__arrow--prev {
        display: none;
    }

    .ps-cards .ps-card__slider .splide__arrow--next {
        right: 4px;
    }

    /* Ort und Preis unten im Bild */
    .ps-cards .ps-card__overlay {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 3;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        padding: 26px 12px 8px;
        background: linear-gradient(180deg, rgba(0, 27, 76, 0) 0%, rgba(0, 27, 76, .85) 100%);
        color: #fff;
        pointer-events: none;
    }

    .ps-cards .ps-card__overlay-loc {
        min-width: 0;
        font-size: 9px;
        letter-spacing: .12em;
        text-transform: uppercase;
        color: #dfe7f5;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .ps-cards .ps-card__overlay-loc i {
        font-style: normal;
        margin-left: 4px;
        padding: 0 4px;
        border: 1px solid rgba(255, 255, 255, .55);
        font-size: 8px;
    }

    .ps-cards .ps-card__overlay-price {
        flex: none;
        font-size: 13.5px;
        letter-spacing: .02em;
        white-space: nowrap;
        font-variant-numeric: tabular-nums;
    }

    .ps-cards .ps-card--reserved .ps-card__overlay-price {
        color: #f4b183;
    }

    .ps-cards .ps-card--sold .ps-card__overlay-price {
        color: #f0b7c0;
    }

    .ps-cards .ps-card--sold .ps-card__slider .splide__slide {
        opacity: 1;
    }

    /* Balken: nur der Titel, vollstaendig */
    .ps-cards .ps-card__head {
        order: 2;
        flex: none;
        min-height: 0;
        padding: 9px 12px;
    }

    .ps-cards .ps-card__loc,
    .ps-cards .ps-card__pricebox {
        display: none;
    }

    .ps-cards .ps-card__pic-loc {
        display: none;
    }

    .ps-cards .ps-card__title {
        font-size: 12px;
        letter-spacing: .1em;
        line-height: 1.45;
        white-space: normal;
        overflow: visible;
    }

    /* Symbolzeile */
    .ps-cards .ps-card__info {
        order: 3;
        flex: none;
        gap: 0;
        padding: 0;
    }

    .ps-cards .ps-card__facts {
        display: flex;
        justify-content: space-between;
        gap: 4px;
        padding: 7px 12px 9px;
        font-size: 11px;
        color: #2c2c2a;
        white-space: nowrap;
        font-variant-numeric: tabular-nums;
    }

    .ps-cards .ps-card__facts li {
        flex-direction: row;
        align-items: center;
        gap: 4px;
        padding: 0;
        border: 0;
    }

    .ps-cards .ps-card__facts svg {
        display: block;
        flex: none;
        width: 14px;
        height: 14px;
        fill: none;
        stroke: #2f5496;
        stroke-width: 1.6;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .ps-cards .ps-card__fact-label,
    .ps-cards .ps-card__fact-value {
        display: none;
    }

    .ps-cards .ps-card__fact-short {
        display: inline;
    }

    .ps-cards .ps-card__bot {
        display: none;
    }
}

/* ---------- Seitennavigation (Entwurf 01, 10.09.2026): Kaesten mit Haarlinie, aktive Seite Navy ---------- */
nav.properties__pagination .pagination {
    gap: 6px;
}

nav.properties__pagination .page-item .page-link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;
    padding: 0 10px;
    background: #fff;
    border: 1px solid #d5dcea;
    border-radius: 0;
    color: #2c2c2a;
    font-size: 13px;
    text-decoration: none;
    font-variant-numeric: tabular-nums;
    transition: border-color .15s ease, color .15s ease;
}

nav.properties__pagination .page-item .page-link:hover,
nav.properties__pagination .page-item .page-link:focus-visible {
    border-color: #2f5496;
    color: #2f5496;
    box-shadow: none;
}

nav.properties__pagination .page-item.active .page-link {
    background: #2f5496;
    border-color: #2f5496;
    color: #fff;
}

nav.properties__pagination .page-item.start .page-link,
nav.properties__pagination .page-item.end .page-link {
    border-color: #d5dcea;
}

nav.properties__pagination .page-item.end .page-link {
    margin-left: 8px;
}

/* Sortierung auf gleicher Hoehe wie die Seitenzahlen */
.properties__sort select {
    height: 34px;
    padding: 0 32px 0 10px;
    border: 1px solid #d5dcea;
    border-radius: 0;
    font-size: 13px;
    color: #2c2c2a;
    background-color: #fff;
}

@media (max-width: 767.98px) {
    /* Handy: alle Seitenzahlen in einer Zeile */
    nav.properties__pagination .pagination {
        flex-wrap: nowrap;
        gap: 3px;
        width: 100%;
    }

    nav.properties__pagination .page-item {
        flex: 1 1 0;
        min-width: 0;
    }

    nav.properties__pagination .page-item .page-link {
        min-width: 0;
        width: 100%;
        height: 30px;
        padding: 0 2px;
        font-size: 12px;
    }

    nav.properties__pagination .page-item.end .page-link {
        margin-left: 0;
    }
}

/* ---------- Kopfbereich Listenseiten (Entwurf 02, 10.09.2026) ---------- */
.ps-list-head.properties__header {
    margin-bottom: 0;
}

/* H1 gleichmaessig umbrechen: "Haeuser und Villen" / "kaufen in Kroatien" statt einzelnem Wort in Zeile 2 */
.properties__header.ps-list-head h1.ps-list-title {
    text-wrap: balance;
}

.ps-list-head .ps-list-rule {
    display: none;
}

.ps-list-head .ps-list-sub {
    margin: 12px 0 1rem;
    font-size: 12px;
    color: #7a7d86;
}

.ps-list-head .ps-list-sub i {
    font-style: normal;
    margin: 0 6px;
    color: #b4b2a9;
}

.properties__header.ps-list-head .ps-list-description {
    font-size: 12.5px;
    line-height: 1.5;
    color: #7a7d86;
}

.properties__header.ps-list-head .ps-list-description b,
.properties__header.ps-list-head .ps-list-description strong {
    color: #2c2c2a;
}

.ps-list-head .ps-list-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 22px;
    padding: 12px 0;
    border-top: 1px solid #d5dcea;
    border-bottom: 1px solid #d5dcea;
    font-size: 12px;
    color: #7a7d86;
}

.ps-list-head .ps-list-bc {
    font-size: 12px;
    color: #7a7d86;
}

.ps-list-head .ps-list-bc a {
    color: inherit;
    text-decoration: none;
}

.ps-list-head .ps-list-bc a:hover {
    color: #2f5496;
}

.ps-list-head .ps-list-bc i {
    font-style: normal;
    margin: 0 6px;
    color: #b4b2a9;
}

.ps-list-head .ps-list-meta__ct {
    gap: 18px;
}

.ps-list-head .ps-list-meta__ct span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #2f5496;
    white-space: nowrap;
}

.ps-list-head .ps-list-meta__ct .fa-solid {
    font-size: 12px;
}

@media (min-width: 768px) {
    .ps-list-head .ps-list-sub {
        margin-bottom: 0;
    }
}

@media (max-width: 767.98px) {
    .ps-list-head .ps-list-rule {
        margin: 10px 0 8px;
    }

    .ps-list-head .ps-list-meta {
        margin-top: 16px;
        padding: 10px 0;
    }
}

/* Kopf (10.09.2026): H1-Spalte 5/12, Einleitung 7/12, dadurch rueckt der Text naeher an die Ueberschrift */
@media (min-width: 768px) {
    .properties__header.ps-list-head .ps-list-intro {
        display: grid;
        grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
        column-gap: 40px;
        align-items: center;
        margin: 0;
    }

    .properties__header.ps-list-head .ps-list-intro > [class*="col-"] {
        flex: none;
        width: auto;
        max-width: none;
        padding: 0;
    }
}

@media (min-width: 1200px) {
    .properties__header.ps-list-head .ps-list-intro {
        grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    }
}

/* Metazeile: "Objekte · Aktualisierung" links (10.09.2026) */
.ps-list-head .ps-list-meta__kz i {
    font-style: normal;
    margin: 0 6px;
    color: #b4b2a9;
}

/* Schriften vereinheitlichen: H1 der Listenseiten in Verdana wie die Karten, Fettungen im Intro ohne eigene Groesse (10.09.2026) */
.properties__header.ps-list-head h1.ps-list-title {
    font-family: Verdana, Geneva, sans-serif;
}

.properties__header.ps-list-head .ps-list-description b,
.properties__header.ps-list-head .ps-list-description strong {
    font-size: inherit;
    line-height: inherit;
}

/* Feld oben links: Objekt-ID, bei Zustand im Farbfeld integriert (10.09.2026) */

@media (max-width: 767.98px) {
    .ps-cards .ps-card__slider .ps-card__corner {
        z-index: 5;
    }

    .ps-cards .ps-card__idbox {
        font-size: 8.5px;
        padding: 2px 3px;
    }

    .ps-cards .ps-card__tag {
        font-size: 8.5px;
        padding: 3px 8px;
        letter-spacing: .12em;
    }
}

/* ==================================================================================================
   Kompakte Karte .ps-mcard (10.09.2026): Startseite, Regionsseiten (mod_psproperties) und aehnliche
   Objekte auf der Objektseite. Gleicher Stil wie die mobile Listenkarte: Bild mit Ort · ID und Preis
   unten, Zustand oben links, Navy-Balken mit vollstaendigem Titel, darunter die Werte mit Symbolen.
   Im Raster sind alle Karten einer Reihe gleich hoch, das Bild nimmt die Differenz auf.
   ================================================================================================== */
.ps-mcard,
a.ps-mcard,
a.ps-mcard:hover {
    display: flex;
    flex-direction: column;
    height: auto;
    background: #fff;
    border: 1px solid #d5dcea;
    color: #2c2c2a;
    font-size: 12px;
    font-weight: 400;
    text-decoration: none;
}

.ps-mcard__pic {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #e6ecf5;
}

.ps-mcard__pic picture,
.ps-mcard__pic img {
    display: block;
    width: 100%;
    height: 100%;
}

.ps-mcard__pic img {
    object-fit: cover;
    object-position: center;
}

.ps-mcard__tag {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    max-width: 88%;
    padding: 4px 9px;
    background: #2f5496;
    color: #fff;
    font-size: 9px;
    letter-spacing: .12em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ps-mcard--reduced .ps-mcard__tag {
    background: linear-gradient(90deg, #1e8f7a 0%, #30b8a8 100%);
}

.ps-mcard--recommended .ps-mcard__tag {
    background: linear-gradient(90deg, #2f5496 0%, #00cccc 100%);
}

.ps-mcard--reserved .ps-mcard__tag {
    background: #d9472b;
}

.ps-mcard--sold .ps-mcard__tag {
    background: #8f0222;
}

.ps-mcard--sold .ps-mcard__pic img {
    filter: saturate(.15);
    opacity: .85;
}

.ps-mcard__overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 22px 10px 7px;
    background: linear-gradient(180deg, rgba(0, 27, 76, 0) 0%, rgba(0, 27, 76, .85) 100%);
    color: #fff;
}

.ps-mcard__loc {
    min-width: 0;
    font-size: 8.5px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #dfe7f5;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ps-mcard__price {
    flex: none;
    font-size: 12.5px;
    letter-spacing: .02em;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.ps-mcard--reserved .ps-mcard__price {
    color: #f4b183;
}

.ps-mcard--sold .ps-mcard__price {
    color: #f0b7c0;
}

.ps-mcard__head {
    flex: none;
    padding: 8px 10px;
    background: #2f5496;
    color: #fff;
    transition: background .2s ease;
}

.ps-mcard--recommended .ps-mcard__head {
    background: linear-gradient(90deg, #2f5496 0%, #2f5496 45%, #1f8fb0 100%);
}

.ps-mcard:hover .ps-mcard__head {
    background: #25417a;
}

.ps-mcard--recommended:hover .ps-mcard__head {
    background: linear-gradient(90deg, #25417a 0%, #25417a 45%, #177a96 100%);
}

.ps-mcard__title {
    display: block;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.45;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #fff;
}

.ps-mcard__facts {
    flex: none;
    display: flex;
    justify-content: space-between;
    gap: 4px;
    margin: 0;
    padding: 6px 10px 8px;
    list-style: none;
    font-size: 10.5px;
    color: #2c2c2a;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.ps-mcard__facts li {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
}

.ps-mcard__facts li span {
    overflow: hidden;
    text-overflow: ellipsis;
}

.ps-mcard__facts svg {
    flex: none;
    width: 13px;
    height: 13px;
    fill: none;
    stroke: #2f5496;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* In Rastern (Startseite, Regionen, aehnliche Objekte) fuellen die Karten die Zeilenhoehe, das Bild nimmt die Differenz auf.
   In der Seitenleiste (Blockfluss) behalten sie ihre natuerliche Hoehe, sonst wuerde 100% die ganze Spaltenhoehe bedeuten. */
.mod-ps-properties .ps-mcard,
.mod-ps-featured-properties .ps-mcard,
.similar-properties__list .ps-mcard {
    height: 100%;
}

.mod-ps-sidebar-properties .ps-mcard {
    height: auto;
    margin: 0 0 16px;
}

.mod-ps-sidebar-properties .ps-mcard__pic {
    flex: none;
}

.similar-properties__list.ps-mcards {
    align-items: stretch;
}

/* Handy: feste Hoehe wie die mobile Listenkarte */
@media (max-width: 575.98px) {
    .mod-ps-properties .ps-mcard,
    .mod-ps-featured-properties .ps-mcard,
    .similar-properties__list .ps-mcard {
        height: 349px;
    }

    .ps-mcard__pic {
        aspect-ratio: auto;
    }
}

/* Aehnliche Objekte: die alte Regel .property-detail .similar-properties__item{display:block} hat mehr Gewicht,
   deshalb hier ausdruecklich als Spalten-Flex, sonst fuellt das Bild die feste Hoehe nicht (10.09.2026) */
.property-detail .similar-properties__list .similar-properties__item.ps-mcard {
    display: flex;
    flex-direction: column;
}

/* ---------- Kompakte Karten: feste Hoehen je Breite (10.09.2026) ----------
   Alle Karten eines Rasters sind immer exakt gleich hoch. Titel und Werte bekommen ihren Platz,
   das Bild fuellt den Rest und wird bei Platzmangel oben beschnitten (unten bleibt sichtbar). */
.ps-mcard__pic {
    aspect-ratio: auto;
    flex: 1 1 auto;
    min-height: 0;
}

.ps-mcard__pic img {
    object-position: 50% 100%;
}

.mod-ps-sidebar-properties .ps-mcard__pic {
    flex: 1 1 auto;
}

@media (min-width: 1400px) {
    .mod-ps-properties .ps-mcard,
    .mod-ps-featured-properties .ps-mcard,
    .similar-properties__list .ps-mcard {
        height: 300px;
    }

    .mod-ps-sidebar-properties .ps-mcard {
        height: 280px;
    }
}

@media (min-width: 992px) and (max-width: 1399.98px) {
    .mod-ps-properties .ps-mcard,
    .mod-ps-featured-properties .ps-mcard {
        height: 330px;
    }

    .similar-properties__list .ps-mcard {
        height: 300px;
    }

    .mod-ps-sidebar-properties .ps-mcard {
        height: 280px;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .mod-ps-properties .ps-mcard,
    .mod-ps-featured-properties .ps-mcard {
        height: 280px;
    }

    .similar-properties__list .ps-mcard {
        height: 320px;
    }
}

@media (min-width: 576px) and (max-width: 767.98px) {
    .mod-ps-properties .ps-mcard,
    .mod-ps-featured-properties .ps-mcard,
    .similar-properties__list .ps-mcard {
        height: 300px;
    }
}

@media (max-width: 575.98px) {
    .mod-ps-properties .ps-mcard,
    .mod-ps-featured-properties .ps-mcard,
    .similar-properties__list .ps-mcard {
        height: 349px;
    }
}

/* Kompakte Karten: Titelbalken immer einzeilig, Ueberlaenge mit Punkten gekuerzt (10.09.2026) */
.ps-mcard__head {
    min-width: 0;
}

.ps-mcard__title {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Bild absolut im Bildbereich verankern: Hoehe haengt damit nie vom Bildformat ab, Hoch- und Querformat
   fuellen den gleichen Rahmen. Behebt einzelne zu hohe Karten im Raster. (10.09.2026) */
.ps-mcard__pic picture,
.ps-mcard__pic > img {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.ps-mcard__pic picture img {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.ps-mcard__tag,
.ps-mcard__overlay {
    z-index: 2;
}

/* Raster-Ueberlauf (10.09.2026): einzeilige Titel/Werte gaben den Karten eine Mindestbreite, dadurch wurden
   die Spalten breiter als der Container. Karten duerfen schrumpfen, Spalten sind strikt gleich breit. */
.ps-mcard,
a.ps-mcard {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.ps-mcard__head,
.ps-mcard__facts,
.ps-mcard__overlay {
    min-width: 0;
    max-width: 100%;
}

@media (min-width: 576px) and (max-width: 767.98px) {
    .mod-ps-featured-properties,
    .mod-ps-properties {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) and (max-width: 1399.98px) {
    .mod-ps-featured-properties,
    .mod-ps-properties {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1400px) {
    .mod-ps-featured-properties,
    .mod-ps-properties {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* Ab Tablet (10.09.2026): keine festen Pixelhoehen mehr, sondern Bild im festen Format 16:10. Da der Balken einzeilig
   und die Wertezeile gleich hoch ist, sind alle Karten eines Rasters automatisch gleich hoch, und die Karte
   passt sich der Spaltenbreite an (Seitenleiste breit = Karte hoeher, Raster schmal = Karte niedriger). */
@media (min-width: 576px) {
    .mod-ps-properties .ps-mcard,
    .mod-ps-featured-properties .ps-mcard,
    .similar-properties__list .ps-mcard,
    .mod-ps-sidebar-properties .ps-mcard {
        height: auto;
    }

    .ps-mcard__pic,
    .mod-ps-sidebar-properties .ps-mcard__pic {
        flex: none;
        aspect-ratio: 16 / 10;
    }

    .ps-mcard__pic img {
        object-position: 50% 50%;
    }
}

/* Seitenleiste neben dem Regionstext (10.09.2026): die einzeiligen Titel gaben der Leiste eine Mindestbreite von
   rund 460px, dadurch war sie breiter als eine Rasterspalte. Mindestbreite aufheben, dann erhaelt die Leiste genau
   die Breite einer Rasterspalte (1/4 ab 1400px, 1/3 darunter) und die Karten sind so gross wie die im Raster. */
@media (min-width: 992px) {
    .sppb-div-addon.ps-sidebar > .addon-root-raw-html {
        flex: 1 1 0;
        min-width: 0;
    }

    .sppb-addon-raw-html > .sppb-addon-content .mod-ps-sidebar-properties {
        min-width: 0;
    }
}

/* Handy (10.09.2026): Bildbereich mit fester Hoehe statt Rest-Hoehe aus dem Flex-Layout, damit iOS Safari
   nicht auf die natuerliche Bildhoehe zurueckfaellt. 349px Karte = 287px Bild + 32px Balken + 30px Werte.
   Ohne Wertezeile (keine Angaben) waechst das Bild auf 317px. */
@media (max-width: 575.98px) {
    .ps-mcard__pic {
        flex: none;
        height: 287px;
        aspect-ratio: auto;
    }

    .ps-mcard:not(:has(.ps-mcard__facts)) .ps-mcard__pic {
        height: 317px;
    }

    .ps-mcard__head {
        height: 32px;
        box-sizing: border-box;
    }

    .ps-mcard__facts {
        height: 30px;
        box-sizing: border-box;
    }
}

/* Keine Treffer (10.09.2026) */
.ps-cards .ps-cards__empty {
    margin: 0 0 2rem;
    padding: 28px 22px;
    background: #f3f6fb;
    border: 1px solid #d5dcea;
    border-left: 4px solid #2f5496;
    color: #2f5496;
    font-size: 15px;
    line-height: 1.5;
}
