:root {
    --rustler-red: #B70719;
    --rustler-dark: #171717;
    --rustler-muted: #6b6b6b;
    --rustler-border: #e5e5e5;
    --rustler-soft: #f6f6f6;
}


/* ============================================================
   FORMULARE / BUTTONS
   ============================================================ */

.oo-form input[type='submit'],
.oo-searchformfield input[type='submit'],
.leadform-back,
.leadform-forward {
    text-align: center;
    color: #ffffff !important;
    padding: 5px;
    background-color: #B70719 !important;
    transition: all 0.3s;
    font-size: 16px;
    line-height: 28px;
    border: 1px solid #000;
    display: block;
}


/* ============================================================
   IMMOBILIENLISTE
   ============================================================ */

body .oo-listframe.rustler-estate-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 18px !important;
    align-items: stretch !important;
    width: calc(100% - 40px) !important;
    max-width: 1280px !important;
    margin: 36px auto 48px !important;
    padding: 0 !important;
    float: none !important;
}

body .oo-listframe.rustler-estate-grid > .oo-listobject {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    display: block !important;
    min-width: 0 !important;
}

body .rustler-estate-grid .oo-listobjectwrap {
    height: 100%;
    display: flex !important;
    flex-direction: column !important;
    background: #fff;
    border: 1px solid var(--rustler-border);
    overflow: hidden;
    box-shadow: 0 3px 14px rgba(0, 0, 0, .05);
    transition: .2s ease;
}

body .rustler-estate-grid .oo-listobjectwrap:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 22px rgba(0, 0, 0, .10);
}

body .rustler-estate-grid .oo-listimage {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    aspect-ratio: 16 / 10 !important;
    overflow: hidden !important;
    background: #eee;
    margin: 0 !important;
    padding: 0 !important;
}

body .rustler-estate-grid .oo-listimage .oo-picture,
body .rustler-estate-grid .oo-listimage picture {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

body .rustler-estate-grid .oo-listimage img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    margin: 0 !important;
}

body .rustler-estate-grid .oo-listimage:after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 58%;
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, .78),
        transparent
    );
    pointer-events: none;
    z-index: 1;
}

body .rustler-estate-grid .rustler-card-title {
    position: absolute;
    z-index: 3;
    left: 15px;
    right: 15px;
    bottom: 14px;
    color: #fff !important;
    font-size: 16px !important;
    line-height: 1.22 !important;
    font-weight: 700 !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, .35);
}

body .rustler-estate-grid .oo-listinfo {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
    padding: 14px 15px 15px !important;
}

body .rustler-estate-grid .oo-listtitle,
body .rustler-estate-grid .oo-listinfotable {
    display: none !important;
}


/* ============================================================
   LISTE – ICONS / ECKDATEN
   ============================================================ */

body .rustler-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    color: var(--rustler-red);
}

body .rustler-icon svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body .rustler-card-facts {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 18px !important;
    margin: 0 0 14px !important;
    color: #252525;
    font-size: 12.5px;
    line-height: 1.4;
}

body .rustler-estate-grid .rustler-card-facts span + span:before {
    content: none !important;
    display: none !important;
    margin: 0 !important;
}

body .rustler-card-fact {
    display: flex;
    align-items: center;
    gap: 8px !important;
    min-width: 0;
    color: #333;
}

body .rustler-card-fact:first-child {
    grid-column: 1 / -1;
}

body .rustler-card-fact .rustler-fact-text {
    min-width: 0;
}

body .rustler-card-fact strong {
    display: block;
    font-size: 12.5px;
    line-height: 1.25;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body .rustler-card-fact:first-child strong {
    white-space: normal;
}


/* ============================================================
   LISTE – PREIS
   ============================================================ */

body .rustler-estate-grid .rustler-card-price {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: flex-end !important;
    width: 100% !important;
    margin: 0 0 15px !important;
    padding-top: 18px !important;
    text-align: right !important;
}

body .rustler-estate-grid .rustler-card-price .rustler-price-copy {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    gap: 2px !important;
}

body .rustler-estate-grid .rustler-card-price small {
    font-size: 10px !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
    letter-spacing: .065em !important;
    color: #6b6b6b !important;
    font-weight: 500 !important;
}

body .rustler-estate-grid .rustler-card-price strong {
    font-size: 19px !important;
    line-height: 1.15 !important;
    color: var(--rustler-red) !important;
    font-weight: 400 !important;
    white-space: nowrap !important;
}


/* ============================================================
   LISTE – DETAILS BUTTON
   ============================================================ */

body .rustler-estate-grid .oo-detailslink {
    margin-top: auto !important;
}

body .rustler-estate-grid .oo-detailslink a,
body .rustler-estate-grid a.rustler-details-button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 42px !important;
    background: var(--rustler-red) !important;
    color: #fff !important;
    border: 0 !important;
    text-decoration: none !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    padding: 9px 12px !important;
}

body .rustler-estate-grid .oo-detailslink a:hover {
    background: #930614 !important;
}


/* ============================================================
   DETAILANSICHT
   TITELBILD – BESTEHENDES DESIGN
   ============================================================ */

body .oo-detailview.rustler-detail {
    display: block !important;
    width: calc(100% - 40px) !important;
    max-width: 1280px !important;
    margin: 28px auto 60px !important;
    padding: 0 !important;
}

body .rustler-detail .oo-detailsheadline {
    display: none !important;
}

body .rustler-detail > .oo-detailsgallery {
    position: relative !important;
    width: 100% !important;
    max-width: none !important;
    height: clamp(430px, 48vw, 620px) !important;
    margin: 0 0 28px !important;
    overflow: hidden !important;
    background: #ececec;
    border: 0 !important;
}

body .rustler-detail > .oo-detailsgallery .oo-detailspicture {
    display: none !important;
}

body .rustler-detail > .oo-detailsgallery .oo-detailspicture:first-child {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

body .rustler-detail > .oo-detailsgallery .oo-detailspicture:first-child picture {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

body .rustler-detail > .oo-detailsgallery .oo-detailspicture:first-child img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    margin: 0 !important;
}

body .rustler-detail > .oo-detailsgallery:after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 55%;
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, .72),
        transparent
    );
    pointer-events: none;
    z-index: 2;
}

body .rustler-hero-copy {
    position: absolute;
    z-index: 6;
    left: clamp(24px, 4vw, 54px);
    right: clamp(24px, 4vw, 54px);
    bottom: clamp(26px, 4vw, 48px);
    color: #fff;
}

body .rustler-hero-location {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 8px;
}

body .rustler-hero-location .rustler-icon {
    color: #fff;
    width: 18px;
    height: 18px;
    flex-basis: 18px;
}

body .rustler-hero-location .rustler-icon svg {
    width: 17px;
    height: 17px;
}

body .rustler-detail-title {
    color: #fff !important;
    font-size: clamp(30px, 3.2vw, 50px) !important;
    line-height: 1.08 !important;
    font-weight: 700 !important;
    margin: 0 !important;
    max-width: 950px;
    text-shadow: 0 2px 6px rgba(0, 0, 0, .35);
}


/* ============================================================
   DETAIL – AUFTEILUNG
   ============================================================ */

body .rustler-detail-shell {
    display: grid !important;
    max-width: 1280px !important;
    grid-template-columns:
        minmax(0, 2.15fr)
        minmax(250px, .82fr) !important;
    gap: 48px !important;
    align-items: start !important;
    margin-top: 24px !important;
}

body .rustler-detail-shell > .oo-details-main {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
}

body .rustler-detail-shell > .oo-details-sidebar {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    float: none !important;
}


/* ============================================================
   BESCHREIBUNG LINKS
   ============================================================ */

body .rustler-detail-shell .oo-details-main h2,
body .rustler-detail-shell .oo-details-main h3 {
    color: #B70719 !important;
    font-size: 18px !important;
    line-height: 1.25 !important;
    font-weight: 500 !important;
    margin: 0 0 14px !important;
    padding: 0 0 8px !important;
    border-bottom: 1px solid #B70719 !important;
}

body .rustler-detail-shell .oo-details-main p,
body .rustler-detail-shell .oo-details-main li {
    font-size: 14px !important;
    line-height: 1.6 !important;
    color: #333 !important;
}

body .rustler-detail-shell .oo-details-main ul {
    padding-left: 18px !important;
}

body .rustler-detail .oo-detailsfreetext,
body .rustler-detail .oo-detailsmap,
body .rustler-detail .oo-details-energy-certificate {
    margin: 0 0 38px !important;
    font-size: 16px !important;
    line-height: 1.7 !important;
}

body .rustler-detail .oo-details-highlights-headline,
body .rustler-detail .oo-details-highlights-table {
    display: none !important;
}


/* ============================================================
   RECHTE SIDEBAR
   ============================================================ */

body .rustler-old-sidebar {
    position: relative !important;
    display: block !important;
    min-width: 0 !important;
}


/* ============================================================
   ANSPRECHPARTNER
   ============================================================ */

body .rustler-old-sidebar .rustler-contact-card {
    position: static !important;
    top: auto !important;
    margin: 0 0 26px !important;
    padding: 0 0 24px !important;
    border: 0 !important;
    border-bottom: 1px solid #ddd !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

body .rustler-old-sidebar .rustler-contact-card h2,
body .rustler-old-sidebar .rustler-contact-card h3 {
    color: #B70719 !important;
    font-size: 18px !important;
    font-weight: 500 !important;
    text-align: left !important;
}


/* Ansprechpartnerbild – rund, Fokus oben */

body .rustler-old-sidebar .rustler-contact-card img {
    display: block !important;

    width: 140px !important;
    height: 140px !important;

    max-width: 140px !important;
    max-height: 140px !important;

    aspect-ratio: 1 / 1 !important;

    margin: 0 auto 20px !important;
    padding: 0 !important;

    border-radius: 50% !important;

    object-fit: cover !important;
    object-position: center top !important;
}

body .rustler-old-sidebar .oo-aspinfo {
    font-size: 13px !important;
    line-height: 1.55 !important;
    color: #555 !important;
}


/* Telefonnummer / E-Mail klickbar */

body .rustler-contact-card .rustler-contact-link {
    color: inherit !important;
    text-decoration: none !important;
    transition: color .2s ease !important;
}

body .rustler-contact-card .rustler-contact-link:hover,
body .rustler-contact-card .rustler-contact-link:focus {
    color: var(--rustler-red) !important;
    text-decoration: none !important;
}


/* Anfragebutton */

body .rustler-old-sidebar .rustler-contact-button {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;

    margin-top: 15px !important;
    padding: 11px 10px !important;

    background: #B70719 !important;
    border: 1px solid #B70719 !important;
    border-radius: 0 !important;

    color: #fff !important;

    font-size: 11px !important;
    line-height: 1.2 !important;
    font-weight: 600 !important;

    text-transform: uppercase !important;
    text-align: center !important;
    text-decoration: none !important;
}

body .rustler-old-sidebar .rustler-contact-button:hover {
    background: #930614 !important;
    border-color: #930614 !important;
    color: #fff !important;
}


/* ============================================================
   PREISDETAILS
   ============================================================ */

body .rustler-old-section-title {
    color: #B70719 !important;
    font-size: 18px !important;
    line-height: 1.25 !important;
    font-weight: 500 !important;

    margin: 0 !important;
    padding: 0 0 8px !important;

    border-bottom: 1px solid #B70719 !important;
}

body .rustler-old-price-details {
    display: block !important;

    margin: 0 0 28px !important;
    padding: 0 !important;

    border: 0 !important;
    background: transparent !important;
}

body .rustler-old-price-details .rustler-keyfact {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;

    gap: 12px !important;
    align-items: center !important;

    min-height: 0 !important;

    padding: 7px 0 !important;

    border: 0 !important;
    border-bottom: 1px solid #e1e1e1 !important;

    background: transparent !important;
}

body .rustler-old-price-details .rustler-icon {
    display: none !important;
}

body .rustler-old-price-details .rustler-keyfact > div {
    display: contents !important;
}

body .rustler-old-price-details span {
    color: #888 !important;

    font-size: 14px !important;
    font-weight: 400 !important;

    text-transform: none !important;
    letter-spacing: 0 !important;
}

body .rustler-old-price-details strong {
    color: #555 !important;

    font-size: 14px !important;
    font-weight: 400 !important;

    text-align: right !important;
}


/* ============================================================
   FAKTEN / AUSSTATTUNGEN / ENERGIEEFFIZIENZ
   ============================================================ */

body .rustler-old-sidebar .rustler-object-details {
    margin: 0 0 28px !important;
    padding: 0 !important;

    border: 0 !important;
    background: transparent !important;
}

body .rustler-old-sidebar .rustler-old-facts > h2 {
    display: none !important;
}

body .rustler-old-sidebar .rustler-sidebar-section {
    margin: 0 0 28px !important;
    padding: 0 !important;

    border: 0 !important;
    background: transparent !important;
}

body .rustler-old-sidebar .rustler-sidebar-section > h2 {
    color: #B70719 !important;

    font-size: 18px !important;
    line-height: 1.25 !important;
    font-weight: 500 !important;

    margin: 0 0 8px !important;
    padding: 0 0 8px !important;

    border-bottom: 1px solid #B70719 !important;
}

body .rustler-old-sidebar
.rustler-sidebar-section
.rustler-detail-facts-grid {
    display: block !important;
    margin: 0 !important;
}

body .rustler-old-sidebar
.rustler-sidebar-section
.rustler-detail-fact {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;

    gap: 12px !important;
    align-items: center !important;

    min-height: 0 !important;

    padding: 7px 0 !important;
    margin: 0 !important;

    border: 0 !important;
    border-bottom: 1px solid #e1e1e1 !important;
    border-radius: 0 !important;

    background: transparent !important;
}

body .rustler-old-sidebar
.rustler-sidebar-section
.rustler-detail-fact > .rustler-icon {
    display: none !important;
}

body .rustler-old-sidebar
.rustler-sidebar-section
.rustler-detail-fact > div {
    display: contents !important;
}

body .rustler-old-sidebar
.rustler-sidebar-section
.rustler-detail-fact span {
    color: #888 !important;

    font-size: 14px !important;
    font-weight: 400 !important;

    text-transform: none !important;
    letter-spacing: 0 !important;
}

body .rustler-old-sidebar
.rustler-sidebar-section
.rustler-detail-fact strong {
    color: #555 !important;

    font-size: 14px !important;
    font-weight: 400 !important;

    text-align: right !important;
}


/* ============================================================
   FALLBACK OBJEKTDETAILS
   ============================================================ */

body .rustler-object-details > .oo-detailstable {
    display: none !important;
}

body .rustler-detail-facts-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 18px;
}

body .rustler-detail-fact {
    display: flex;
    align-items: flex-start;

    gap: 13px;

    padding: 15px 16px;

    background: #fff;
    border: 1px solid #e7e7e7;

    min-width: 0;
}

body .rustler-detail-fact .rustler-icon {
    margin-top: 2px;

    flex-basis: 25px;

    width: 25px;
    height: 25px;
}

body .rustler-detail-fact .rustler-icon svg {
    width: 22px;
    height: 22px;
}

body .rustler-detail-fact > div {
    min-width: 0;

    display: flex;
    flex-direction: column;

    gap: 3px;
}

body .rustler-detail-fact span {
    font-size: 14px;
    line-height: 1.25;

    text-transform: uppercase;
    letter-spacing: .045em;

    color: var(--rustler-muted);

    font-weight: 600;
}

body .rustler-detail-fact strong {
    font-size: 15px;
    line-height: 1.35;

    color: var(--rustler-dark);

    font-weight: 650;

    overflow-wrap: anywhere;
}


/* ============================================================
   KARTE – onOffice-Karte auf Detailseiten ausblenden
   Der Textbereich „Lage“ bleibt davon unberührt.
   ============================================================ */

body .rustler-detail .oo-detailsmap {
    display: none !important;
}


/* ============================================================
   KONTAKTFORMULAR
   ============================================================ */

body .rustler-estate-contact {
    clear: both !important;
    display: block !important;
    position: relative !important;

    width: calc(100% - 40px) !important;
    max-width: 1280px !important;

    margin: 38px auto 0 !important;
    padding: 30px !important;

    border: 1px solid #ececec !important;
    background: #fafafa !important;

    scroll-margin-top: 110px !important;

    box-sizing: border-box !important;
}


/* ============================================================
   KONTAKTFORMULAR – ÜBERSCHRIFT
   ============================================================ */

body .rustler-estate-contact .rustler-contact-form-heading {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;

    width: 100% !important;

    margin: 0 0 30px !important;
    padding: 0 !important;
}

body .rustler-estate-contact .rustler-contact-form-title {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;

    width: 100% !important;

    margin: 0 0 12px !important;
    padding: 0 0 10px !important;

    color: #B70719 !important;

    font-size: 26px !important;
    line-height: 1.25 !important;
    font-weight: 500 !important;

    background: transparent !important;

    border: 0 !important;
    border-bottom: 1px solid #B70719 !important;
}

body .rustler-estate-contact .rustler-contact-form-title:after {
    display: none !important;
    content: none !important;
}

body .rustler-estate-contact .rustler-contact-form-intro {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;

    width: 100% !important;

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

    color: #555 !important;

    font-size: 14px !important;
    line-height: 1.6 !important;
    font-weight: 400 !important;
}


/* ============================================================
   KONTAKTFORMULAR – FELDER
   ============================================================ */

body .rustler-estate-contact
input:not([type="checkbox"]):not([type="radio"]),
body .rustler-estate-contact textarea,
body .rustler-estate-contact select {
    max-width: 100% !important;
}


/* ============================================================
   KONTAKTFORMULAR – ABSENDEN BUTTON
   ============================================================ */

body .rustler-estate-contact input[type="submit"],
body .rustler-estate-contact button[type="submit"],
body .rustler-estate-contact .oo-form input[type="submit"],
body .rustler-estate-contact .oo-form button[type="submit"],
body .rustler-estate-contact .oo-form .submit_button {
    display: block !important;

    width: 100% !important;

    background: #B70719 !important;
    background-color: #B70719 !important;

    border: 1px solid #B70719 !important;

    color: #fff !important;

    box-shadow: none !important;
}

body .rustler-estate-contact input[type="submit"]:hover,
body .rustler-estate-contact button[type="submit"]:hover,
body .rustler-estate-contact .oo-form input[type="submit"]:hover,
body .rustler-estate-contact .oo-form button[type="submit"]:hover,
body .rustler-estate-contact .oo-form .submit_button:hover {
    background: #970614 !important;
    background-color: #970614 !important;

    border-color: #970614 !important;

    color: #fff !important;
}


/* ============================================================
   ABSTAND NACH DEM KONTAKTFORMULAR
   ============================================================ */

/*
 * Dieser Spacer wird von der PHP direkt NACH dem Kontaktformular
 * ausgegeben. Dadurch sind wir nicht mehr von margin-collapse,
 * dem onOffice-Formular oder dem Theme/Footer abhängig.
 */

body .rustler-after-contact-space {
    display: block !important;
    clear: both !important;

    width: 100% !important;
    height: 100px !important;
    min-height: 100px !important;

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

    visibility: visible !important;
    pointer-events: none !important;
}


/* ============================================================
   RESPONSIVE – TABLET
   ============================================================ */

@media (max-width: 1100px) {

    body .oo-listframe.rustler-estate-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
    }

    body .rustler-detail-shell {
        grid-template-columns: 1fr !important;
    }

    body .rustler-detail-shell > .oo-details-sidebar {
        position: static !important;
    }
}


/* ============================================================
   RESPONSIVE – DETAIL
   ============================================================ */

@media (max-width: 1000px) {

    body .rustler-detail-shell {
        display: block !important;
    }

    body .rustler-old-sidebar {
        margin-top: 34px !important;
    }

    body .rustler-old-sidebar .rustler-contact-card img {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}


/* ============================================================
   RESPONSIVE – MOBILE
   ============================================================ */

@media (max-width: 767px) {

    body .rustler-estate-contact {
        width: calc(100% - 24px) !important;

        margin-top: 30px !important;
        margin-bottom: 0 !important;

        padding: 20px !important;
    }

    body .rustler-estate-contact .rustler-contact-form-heading {
        margin-bottom: 24px !important;
    }

    body .rustler-estate-contact .rustler-contact-form-title {
        font-size: 23px !important;
    }

    body .rustler-estate-contact .rustler-contact-form-intro {
        font-size: 14px !important;
    }

    body .rustler-after-contact-space {
        height: 100px !important;
        min-height: 100px !important;
    }
}


@media (max-width: 760px) {

    body .rustler-detail-facts-grid {
        grid-template-columns: 1fr;
    }

    body .rustler-card-facts {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}


@media (max-width: 650px) {

    body .oo-listframe.rustler-estate-grid {
        grid-template-columns: 1fr !important;
        width: calc(100% - 28px) !important;
    }

    body .oo-detailview.rustler-detail {
        width: calc(100% - 28px) !important;
    }

    body .rustler-detail > .oo-detailsgallery {
        height: 58vw !important;
        min-height: 300px !important;
    }

    body .rustler-object-details .oo-detailstable {
        grid-template-columns: 1fr 1fr !important;
    }

    body .rustler-detail-title {
        font-size: 28px !important;
    }

    /*
     * Ansprechpartner bleibt auch mobil
     * 140 × 140 px und kreisrund.
     */
    body .rustler-old-sidebar .rustler-contact-card img {
        width: 140px !important;
        height: 140px !important;

        max-width: 140px !important;
        max-height: 140px !important;

        aspect-ratio: 1 / 1 !important;

        border-radius: 50% !important;

        object-fit: cover !important;
        object-position: center top !important;
    }
}

/* ============================================================
   GRUNDRISS & LAGEPLAN
   ============================================================ */

body .rustler-detail .rustler-floorplans {
    display: block !important;
    width: 100% !important;
    margin: 0 0 38px !important;
    padding: 0 !important;
}

body .rustler-detail .rustler-floorplans + .rustler-floorplans {
    margin-top: 8px !important;
}

body .rustler-detail .rustler-floorplans > h2 {
    color: #B70719 !important;
    font-size: 18px !important;
    line-height: 1.25 !important;
    font-weight: 500 !important;
    margin: 0 0 18px !important;
    padding: 0 0 8px !important;
    border-bottom: 1px solid #B70719 !important;
}

body .rustler-detail .rustler-floorplans-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
    width: 100% !important;
}

body .rustler-detail .rustler-floorplans-grid .oo-detailspicture,
body .rustler-detail .rustler-floorplans-grid .rustler-floorplan-item {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #fff !important;
    border: 1px solid var(--rustler-border) !important;
    box-sizing: border-box !important;
}

body .rustler-detail .rustler-floorplans-grid picture,
body .rustler-detail .rustler-floorplans-grid a {
    display: block !important;
    width: 100% !important;
    height: auto !important;
}

body .rustler-detail .rustler-floorplans-grid img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-height: 620px !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: contain !important;
    background: #fff !important;
}

body .rustler-detail > .oo-detailsgallery.rustler-gallery-empty {
    display: none !important;
}

@media (max-width: 760px) {
    body .rustler-detail .rustler-floorplans-grid {
        grid-template-columns: 1fr !important;
    }
}


/* Grundriss & Lageplan – Zoom / Lightbox */
body .rustler-detail .rustler-floorplan-zoomable {
    cursor: zoom-in !important;
}

body .rustler-detail .rustler-floorplan-zoomable:after {
    content: "\1F50D  Vergrößern";
    position: absolute;
    right: 10px;
    bottom: 10px;
    z-index: 3;
    padding: 7px 10px;
    background: rgba(23, 23, 23, .78);
    color: #fff;
    font-size: 12px;
    line-height: 1;
    pointer-events: none;
}

body .rustler-floorplan-lightbox {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 999999;
    align-items: center;
    justify-content: center;
    padding: 30px;
    background: rgba(0, 0, 0, .88);
    box-sizing: border-box;
}

body .rustler-floorplan-lightbox.is-open {
    display: flex;
}

body .rustler-floorplan-lightbox-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

body .rustler-floorplan-lightbox img {
    display: block;
    width: auto;
    height: auto;
    max-width: min(1500px, 96vw);
    max-height: 92vh;
    object-fit: contain;
    background: #fff;
    box-shadow: 0 12px 50px rgba(0, 0, 0, .35);
}

body .rustler-floorplan-lightbox-close {
    position: fixed;
    top: 16px;
    right: 22px;
    z-index: 1000000;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: #171717;
    font-size: 34px;
    line-height: 44px;
    font-weight: 300;
    text-align: center;
    cursor: pointer;
}

body.rustler-lightbox-open {
    overflow: hidden !important;
}

@media (max-width: 760px) {
    body .rustler-floorplan-lightbox {
        padding: 16px;
    }

    body .rustler-floorplan-lightbox-close {
        top: 10px;
        right: 10px;
    }

    body .rustler-floorplan-lightbox img {
        max-width: 96vw;
        max-height: 88vh;
    }
}


/* ============================================================
   DETAIL – ZURÜCK ZUR IMMOBILIENÜBERSICHT
   ============================================================ */

body .rustler-detail .rustler-back-overview {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    width: auto !important;
    margin: 0 0 18px !important;
    padding: 9px 14px !important;
    border: 1px solid var(--rustler-red) !important;
    background: #fff !important;
    color: var(--rustler-red) !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease !important;
}

body .rustler-detail .rustler-back-overview:hover,
body .rustler-detail .rustler-back-overview:focus {
    background: var(--rustler-red) !important;
    color: #fff !important;
    border-color: var(--rustler-red) !important;
    text-decoration: none !important;
}

body .rustler-detail .rustler-back-overview-arrow {
    display: inline-block !important;
    font-size: 18px !important;
    line-height: 1 !important;
    transform: translateY(-1px);
}

@media (max-width: 650px) {
    body .rustler-detail .rustler-back-overview {
        margin-bottom: 14px !important;
        padding: 8px 12px !important;
        font-size: 12.5px !important;
    }
}

/* ============================================================
   IMMOBILIENFILTER – TREFFER / RESET
   ============================================================ */

body .oo-searchform .rustler-filter-actions {
    display: flex !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    flex-basis: 100% !important;
    width: 100% !important;
    max-width: none !important;
    margin: 8px 0 0 !important;
    padding: 0 !important;
}

body .oo-searchform .rustler-filter-actions > .oo-searchformfield {
    width: auto !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

body .oo-searchform .rustler-filter-actions input[type="submit"],
body .oo-searchform .rustler-filter-actions button[type="submit"] {
    height: 100% !important;
    min-height: 40px !important;
    margin: 0 !important;
}

body .oo-searchform .rustler-filter-reset {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    width: auto !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 7px 14px !important;
    border: 1px solid #B70719 !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: #B70719 !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background-color .2s ease, color .2s ease !important;
}

body .oo-searchform .rustler-filter-reset:hover,
body .oo-searchform .rustler-filter-reset:focus {
    background: #B70719 !important;
    color: #fff !important;
    outline: none !important;
}

body .oo-searchform .rustler-filter-reset span {
    font-size: 16px !important;
    line-height: 1 !important;
}

@media (max-width: 650px) {
    body .oo-searchform .rustler-filter-actions {
        flex-wrap: wrap !important;
    }

    body .oo-searchform .rustler-filter-actions > .oo-searchformfield,
    body .oo-searchform .rustler-filter-actions .rustler-filter-reset {
        width: 100% !important;
    }
}



/* ============================================================
   IMMOBILIENFILTER – RUSTLER SUCHKOPF / FINAL-DESIGN
   ============================================================ */

body form.rustler-search-shell,
body .oo-searchform.rustler-search-shell {
    position: relative !important;
    box-sizing: border-box !important;
    width: 100% !important;
    margin: 0 0 34px !important;
    padding: 28px 28px 28px !important;
    background: #fff !important;
    border: 1px solid #e3e3e3 !important;
    border-top: 5px solid var(--rustler-red) !important;
    box-shadow: 0 8px 28px rgba(0, 0, 0, .055) !important;
}

body .oo-searchform .rustler-search-intro {
    display: grid !important;
    grid-template-columns: 150px minmax(0, 1fr) !important;
    gap: 20px !important;
    align-items: center !important;
    margin: 0 0 22px !important;
    padding: 0 0 20px !important;
    border-bottom: 1px solid #e9e9e9 !important;
}

body .oo-searchform .rustler-search-kicker {
    display: flex !important;
    align-items: center !important;
    min-height: 56px !important;
    padding-right: 18px !important;
    border-right: 2px solid var(--rustler-red) !important;
    color: var(--rustler-red) !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    letter-spacing: .035em !important;
}

body .oo-searchform .rustler-search-copy h2 {
    margin: 0 0 4px !important;
    padding: 0 !important;
    color: #111 !important;
    font-size: 29px !important;
    line-height: 1.08 !important;
    font-weight: 700 !important;
}

body .oo-searchform .rustler-search-copy p {
    margin: 0 !important;
    padding: 0 !important;
    color: #555 !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
}

/* FINAL-Feldlayout ausdrücklich beibehalten */
body form.rustler-search-shell .oo-searchformfieldwrap,
body .oo-searchform.rustler-search-shell .oo-searchformfieldwrap {
    margin-top: 0 !important;
}

@media (max-width: 760px) {
    body form.rustler-search-shell,
body .oo-searchform.rustler-search-shell {
        padding: 22px 18px 22px !important;
    }

    body .oo-searchform .rustler-search-intro {
        grid-template-columns: 1fr !important;
        gap: 9px !important;
        padding-bottom: 16px !important;
    }

    body .oo-searchform .rustler-search-kicker {
        min-height: 0 !important;
        padding: 0 0 8px !important;
        border-right: 0 !important;
        border-bottom: 2px solid var(--rustler-red) !important;
        width: max-content !important;
    }

    body .oo-searchform .rustler-search-copy h2 {
        font-size: 24px !important;
    }
}

/* 2.7.8 – Suchbox wie Immobilienraster + Abstand nach oben */
body form.rustler-search-shell,
body .oo-searchform.rustler-search-shell {
    width: min(calc(100vw - 40px), 1280px) !important;
    max-width: none !important;
    margin: 40px auto 34px !important;
}

@media (max-width: 760px) {
    body form.rustler-search-shell,
    body .oo-searchform.rustler-search-shell {
        width: calc(100vw - 24px) !important;
        margin: 24px auto 28px !important;
    }
}


/* ============================================================
   EHL-ARTIGE AUSWAHL FÜR ORT / BUNDESLAND
   ============================================================ */

body .rustler-picker-field {
    position: relative !important;
}

body .rustler-picker-field select.rustler-native-hidden {
    display: none !important;
}

body .rustler-picker-trigger {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-height: 38px !important;
    padding: 8px 40px 8px 12px !important;
    border: 1px solid #cfd5db !important;
    background: #fff !important;
    color: #233243 !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
    text-align: left !important;
    cursor: pointer !important;
    position: relative !important;
}

body .rustler-picker-trigger.is-empty {
    color: #52667a !important;
}

body .rustler-picker-trigger::after {
    content: '▾';
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #6a7480;
    font-size: 16px;
    line-height: 1;
}

body .rustler-picker-overlay[hidden] {
    display: none !important;
}

body .rustler-picker-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 99999 !important;
}

body .rustler-picker-backdrop {
    position: absolute !important;
    inset: 0 !important;
    background: rgba(10, 18, 30, .44) !important;
}

body .rustler-picker-modal {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: min(920px, calc(100vw - 32px)) !important;
    max-height: min(78vh, 760px) !important;
    padding: 28px 26px 24px !important;
    overflow: auto !important;
    background: #fff !important;
    box-shadow: 0 20px 48px rgba(0,0,0,.22) !important;
}

body .rustler-picker-modal h3 {
    margin: 0 0 22px !important;
    color: var(--rustler-red) !important;
    font-size: 18px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
}

body .rustler-picker-close {
    position: absolute !important;
    right: 16px !important;
    top: 14px !important;
    border: 0 !important;
    background: transparent !important;
    color: #111 !important;
    font-size: 48px !important;
    line-height: 1 !important;
    padding: 0 !important;
    cursor: pointer !important;
}

body .rustler-picker-options {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px 36px !important;
    margin: 0 0 22px !important;
}

body .rustler-picker-option {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    color: #5f6f80 !important;
    font-size: 15px !important;
    line-height: 1.35 !important;
    cursor: pointer !important;
}

body .rustler-picker-option input {
    margin-top: 2px !important;
}

body .rustler-picker-actions {
    display: flex !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
}

body .rustler-picker-ok,
body .rustler-picker-reset {
    min-height: 40px !important;
    padding: 9px 16px !important;
    border: 1px solid #d7dce2 !important;
    background: #fff !important;
    color: #677789 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
}

body .rustler-picker-ok {
    background: var(--rustler-red) !important;
    border-color: var(--rustler-red) !important;
    color: #fff !important;
}

body.rustler-picker-open {
    overflow: hidden !important;
}

@media (max-width: 760px) {
    body .rustler-picker-modal {
        padding: 22px 16px 18px !important;
    }

    body .rustler-picker-options {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    body .rustler-picker-close {
        right: 10px !important;
        top: 8px !important;
        font-size: 40px !important;
    }
}


body .rustler-picker-options.is-grouped {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px 38px !important;
}

body .rustler-picker-state {
    min-width: 0 !important;
}

body .rustler-picker-state h4 {
    margin: 0 0 12px !important;
    padding: 0 0 8px !important;
    border-bottom: 2px solid var(--rustler-red) !important;
    color: var(--rustler-red) !important;
    font-size: 16px !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
}

body .rustler-picker-state-options {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
}

@media (max-width: 760px) {
    body .rustler-picker-options.is-grouped {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
}


/* ============================================================
   HOCHFORMAT-GALERIE OBERHALB DES KONTAKTFORMULARS
   ============================================================ */

body .rustler-portrait-gallery[hidden] {
    display: none !important;
}

body .rustler-portrait-gallery {
    clear: both !important;
    display: block !important;
    width: calc(100% - 40px) !important;
    max-width: 1280px !important;
    margin: 38px auto 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

body .rustler-portrait-gallery > h2 {
    margin: 0 0 18px !important;
    padding: 0 0 10px !important;
    color: #B70719 !important;
    font-size: 26px !important;
    line-height: 1.25 !important;
    font-weight: 500 !important;
    border-bottom: 1px solid #B70719 !important;
}

body .rustler-portrait-gallery-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px !important;
    align-items: start !important;
}

body .rustler-portrait-gallery-grid .oo-detailspicture,
body .rustler-portrait-gallery-grid .rustler-portrait-gallery-item {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #f4f4f4 !important;
}

body .rustler-portrait-gallery-grid picture,
body .rustler-portrait-gallery-grid a {
    display: block !important;
    width: 100% !important;
}

body .rustler-portrait-gallery-grid img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-height: 680px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
}

/* Wenn die Galerie unmittelbar vor dem Formular steht, Abstand harmonisieren. */
body .rustler-portrait-gallery + .rustler-estate-contact {
    margin-top: 28px !important;
}

@media (max-width: 900px) {
    body .rustler-portrait-gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 600px) {
    body .rustler-portrait-gallery {
        width: calc(100% - 24px) !important;
        margin-top: 28px !important;
    }

    body .rustler-portrait-gallery-grid {
        grid-template-columns: 1fr !important;
    }

    body .rustler-portrait-gallery > h2 {
        font-size: 23px !important;
    }
}


/* 2.8.3 – Hochformat-Galerie mit vergrößerbarer Lightbox */
body .rustler-portrait-gallery-grid .rustler-portrait-zoomable {
    cursor: zoom-in !important;
}

body .rustler-portrait-gallery-grid .rustler-portrait-zoomable::after {
    content: "\1F50D  Vergrößern";
    position: absolute;
    right: 10px;
    bottom: 10px;
    z-index: 3;
    padding: 7px 10px;
    background: rgba(23, 23, 23, .78);
    color: #fff;
    font-size: 12px;
    line-height: 1;
    pointer-events: none;
}


/* ============================================================
   2.8.4 – HERO-CAROUSEL FÜR VERBLEIBENDE QUERFORMATBILDER
   ============================================================ */
body .rustler-detail > .oo-detailsgallery.rustler-hero-carousel .oo-detailspicture {
    display: none !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

body .rustler-detail > .oo-detailsgallery.rustler-hero-carousel .oo-detailspicture.is-active {
    display: block !important;
}

body .rustler-detail > .oo-detailsgallery.rustler-hero-carousel .oo-detailspicture picture,
body .rustler-detail > .oo-detailsgallery.rustler-hero-carousel .oo-detailspicture img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

body .rustler-detail > .oo-detailsgallery.rustler-hero-carousel .oo-detailspicture img {
    object-fit: cover !important;
}

body .rustler-detail .rustler-hero-nav {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 8 !important;
    width: 42px !important;
    height: 42px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: rgba(0,0,0,.52) !important;
    color: #fff !important;
    font-size: 24px !important;
    line-height: 42px !important;
    text-align: center !important;
    cursor: pointer !important;
}

body .rustler-detail .rustler-hero-prev { left: 18px !important; }
body .rustler-detail .rustler-hero-next { right: 18px !important; }
body .rustler-detail .rustler-hero-nav:hover { background: rgba(0,0,0,.72) !important; }
body .rustler-detail .rustler-hero-nav[hidden] { display: none !important; }


/* 2.8.5 – onOffice kann Galeriebilder in zusätzliche Wrapper verschachteln. */
body .rustler-detail > .oo-detailsgallery.rustler-hero-carousel {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

body .rustler-detail > .oo-detailsgallery.rustler-hero-carousel .oo-detailspicture.is-active {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 2 !important;
}


/* ============================================================
   2.8.6 – STABILER HERO-SLIDER UNABHÄNGIG VON ONOFFICE/SLICK
   ============================================================ */
body .rustler-detail > .oo-detailsgallery.rustler-hero-rebuilt {
    position: relative !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Originale onOffice-/Slick-Slides dienen nur noch als Datenquelle. */
body .rustler-detail > .oo-detailsgallery.rustler-hero-rebuilt .oo-detailspicture,
body .rustler-detail > .oo-detailsgallery.rustler-hero-rebuilt .slick-list,
body .rustler-detail > .oo-detailsgallery.rustler-hero-rebuilt .slick-track,
body .rustler-detail > .oo-detailsgallery.rustler-hero-rebuilt > picture {
    visibility: hidden !important;
}

body .rustler-detail > .oo-detailsgallery.rustler-hero-rebuilt > .rustler-hero-stage {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 1 !important;
    overflow: hidden !important;
}

body .rustler-detail .rustler-hero-slide {
    position: absolute !important;
    inset: 0 !important;
    display: none !important;
    width: 100% !important;
    height: 100% !important;
    visibility: visible !important;
    opacity: 1 !important;
}

body .rustler-detail .rustler-hero-slide.is-active {
    display: block !important;
}

body .rustler-detail .rustler-hero-image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center center !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Navigation bewusst in Rustler-Rot. */
body .rustler-detail .rustler-hero-nav {
    z-index: 10 !important;
    background: rgba(255,255,255,.94) !important;
    border: 2px solid var(--rustler-red) !important;
    color: var(--rustler-red) !important;
    text-shadow: none !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.12) !important;
}

body .rustler-detail .rustler-hero-nav:hover,
body .rustler-detail .rustler-hero-nav:focus {
    background: var(--rustler-red) !important;
    border-color: var(--rustler-red) !important;
    color: #fff !important;
}

/* Auch eventuell verbliebene native Slick-Pfeile rot einfärben/verstecken,
   damit keine blauen onOffice-Pfeile darüber liegen. */
body .rustler-detail > .oo-detailsgallery.rustler-hero-rebuilt .slick-arrow {
    display: none !important;
}

/* ============================================================
   2.8.7 – HERO KOMPLETT AUSSERHALB VON ONOFFICE/SLICK
   ============================================================ */

/* onOffice-Galerie nur noch unsichtbare Datenquelle */
body .rustler-detail > .oo-detailsgallery.rustler-gallery-source-only {
    position: absolute !important;
    left: -99999px !important;
    top: 0 !important;
    width: 1px !important;
    height: 1px !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

body .rustler-detail > .rustler-hero-custom {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: clamp(430px, 48vw, 620px) !important;
    margin: 0 0 28px !important;
    overflow: hidden !important;
    background: #ececec !important;
    border: 0 !important;
}

body .rustler-detail > .rustler-hero-custom[hidden] {
    display: none !important;
}

body .rustler-detail > .rustler-hero-custom > .rustler-hero-stage {
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
}

body .rustler-detail > .rustler-hero-custom .rustler-hero-slide {
    position: absolute !important;
    inset: 0 !important;
    display: none !important;
    width: 100% !important;
    height: 100% !important;
}

body .rustler-detail > .rustler-hero-custom .rustler-hero-slide.is-active {
    display: block !important;
}

body .rustler-detail > .rustler-hero-custom .rustler-hero-picture,
body .rustler-detail > .rustler-hero-custom .rustler-hero-picture source,
body .rustler-detail > .rustler-hero-custom .rustler-hero-image {
    width: 100% !important;
    height: 100% !important;
}

body .rustler-detail > .rustler-hero-custom .rustler-hero-picture {
    display: block !important;
}

body .rustler-detail > .rustler-hero-custom .rustler-hero-image {
    display: block !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center center !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* dunkler Verlauf nur für bessere Lesbarkeit des Titels */
body .rustler-detail > .rustler-hero-custom::after {
    content: '' !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: 45% !important;
    z-index: 2 !important;
    background: linear-gradient(to top, rgba(0,0,0,.64), rgba(0,0,0,0)) !important;
    pointer-events: none !important;
}

body .rustler-detail > .rustler-hero-custom .rustler-hero-copy {
    z-index: 4 !important;
}

/* Navigation fix in Rustler-Rot */
body .rustler-detail > .rustler-hero-custom .rustler-hero-nav {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 6 !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    border: 2px solid var(--rustler-red) !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,.96) !important;
    color: var(--rustler-red) !important;
    font-size: 26px !important;
    line-height: 38px !important;
    text-align: center !important;
    cursor: pointer !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.12) !important;
}

body .rustler-detail > .rustler-hero-custom .rustler-hero-prev {
    left: 18px !important;
}

body .rustler-detail > .rustler-hero-custom .rustler-hero-next {
    right: 18px !important;
}

body .rustler-detail > .rustler-hero-custom .rustler-hero-nav:hover,
body .rustler-detail > .rustler-hero-custom .rustler-hero-nav:focus {
    background: var(--rustler-red) !important;
    color: #fff !important;
}

body .rustler-detail > .rustler-hero-custom .rustler-hero-nav[hidden] {
    display: none !important;
}

@media (max-width: 760px) {
    body .rustler-detail > .rustler-hero-custom {
        height: 390px !important;
    }

    body .rustler-detail > .rustler-hero-custom .rustler-hero-nav {
        width: 38px !important;
        height: 38px !important;
        font-size: 22px !important;
        line-height: 32px !important;
    }
}


/* 2.8.9 – Textoverlay im oberen Objektbild-Carousel vollständig deaktivieren */
body .rustler-detail > .rustler-hero-custom::after {
    display: none !important;
    content: none !important;
}
body .rustler-detail > .rustler-hero-custom .rustler-hero-copy,
body .rustler-detail > .rustler-hero-custom .rustler-hero-location,
body .rustler-detail > .rustler-hero-custom .rustler-detail-title {
    display: none !important;
}


/* 2.9.0 – Ort/Bundesland: native TomSelect-Oberfläche ausblenden.
   Die Werte selbst bleiben erhalten und werden mit onOffice synchronisiert. */
body .rustler-picker-field > .ts-wrapper,
body .rustler-picker-field .ts-wrapper.rustler-tomselect-hidden,
body .rustler-picker-field > .rustler-tomselect-hidden {
    display: none !important;
}


/* ============================================================
   2.9.1 – ORT/BUNDESLAND: NUR NOCH EINE SICHTBARE AUSWAHL
   ============================================================ */

body .rustler-picker-field select,
body .rustler-picker-field .ts-wrapper,
body .rustler-picker-field .select2-container,
body .rustler-picker-field .chosen-container,
body .rustler-picker-field .bootstrap-select,
body .rustler-picker-field .multiselect,
body .rustler-picker-field .onoffice-multiselect-popup,
body .rustler-picker-field .rustler-native-picker-ui {
    display: none !important;
}

/* Unser Trigger ist das einzige Auswahlfeld unter der Feldbezeichnung. */
body .rustler-picker-field > .rustler-picker-trigger,
body .rustler-picker-field label + .rustler-picker-trigger {
    margin-top: 0 !important;
}

/* "Alle Bezirke" innerhalb eines Bundesland-Blocks hervorheben. */
body .rustler-picker-all-districts {
    padding-bottom: 9px !important;
    margin-bottom: 2px !important;
    border-bottom: 1px solid #ececec !important;
    color: #222 !important;
    font-weight: 700 !important;
}

/* ============================================================
   2.9.1 – ZURÜCK NACH OBEN AM ENDE DER IMMOBILIENLISTE
   ============================================================ */

body .rustler-list-backtop {
    width: calc(100% - 40px) !important;
    max-width: 1280px !important;
    margin: 8px auto 46px !important;
    display: flex !important;
    justify-content: center !important;
    clear: both !important;
}

body .rustler-list-backtop-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 42px !important;
    padding: 9px 18px !important;
    border: 1px solid var(--rustler-red) !important;
    background: #fff !important;
    color: var(--rustler-red) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: background .18s ease, color .18s ease !important;
}

body .rustler-list-backtop-button:hover,
body .rustler-list-backtop-button:focus {
    background: var(--rustler-red) !important;
    color: #fff !important;
}

body .rustler-list-backtop-button span {
    font-size: 18px !important;
    line-height: 1 !important;
}

@media (max-width: 760px) {
    body .rustler-list-backtop {
        width: calc(100% - 24px) !important;
        margin-bottom: 32px !important;
    }
}


/* ============================================================
   2.9.2 – ORT/BUNDESLAND: JEWEILS NUR EINE KLICKBARE AUSWAHL
   ============================================================ */
body .rustler-picker-field > .rustler-native-picker-ui,
body .rustler-picker-field .rustler-native-picker-ui {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
}

body .rustler-picker-field > .rustler-picker-trigger {
    display: flex !important;
    width: 100% !important;
    min-height: 42px !important;
    margin: 0 !important;
    cursor: pointer !important;
}

body .rustler-picker-field > label {
    cursor: pointer !important;
}


/* ============================================================
   2.9.3 – SCHNELLNAVIGATION / 3 CARDS UNTER DEM FILTER
   ============================================================ */
body .rustler-property-quicklinks {
    box-sizing: border-box !important;
    width: min(calc(100vw - 40px), 1280px) !important;
    margin: 28px auto 8px !important;
    display: grid !important;
    grid-template-columns: 1fr 1.08fr 1.2fr !important;
    gap: 18px !important;
    align-items: stretch !important;
}

body .rustler-property-quicklinks .rustler-quickcard {
    position: relative !important;
    min-height: 260px !important;
    overflow: hidden !important;
    border: 1px solid #e2e2e2 !important;
    background: #fff !important;
    box-shadow: 0 6px 20px rgba(0,0,0,.055) !important;
}

/* Card 1: Neubauprojekte */
body .rustler-quickcard-projects {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    padding: 26px !important;
    background: var(--rustler-red) !important;
    color: #fff !important;
}

body .rustler-quickcard-projects .rustler-quickcard-full-link {
    position: absolute !important;
    inset: 0 !important;
    z-index: 3 !important;
}

body .rustler-quickcard-projects .rustler-quickcard-icon {
    width: 170px !important;
    max-width: 65% !important;
    margin-bottom: 20px !important;
    color: #fff !important;
}

body .rustler-quickcard-projects .rustler-quickcard-icon svg {
    display: block !important;
    width: 100% !important;
    height: auto !important;
}

body .rustler-quickcard-projects .rustler-quickcard-label {
    width: min(100%, 270px) !important;
    padding: 13px 18px !important;
    background: #fff !important;
    color: #454545 !important;
    text-align: center !important;
    font-size: 18px !important;
    line-height: 1.2 !important;
    font-weight: 500 !important;
}

/* Gemeinsame Überschriften Cards 2+3 */
body .rustler-quickcard-contact > header,
body .rustler-quickcard-locations > header {
    padding: 20px 20px 16px !important;
    background: #fff !important;
}

body .rustler-quickcard-contact > header strong,
body .rustler-quickcard-locations > header strong {
    display: block !important;
    color: var(--rustler-red) !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
}

body .rustler-quickcard-contact > header span,
body .rustler-quickcard-locations > header span {
    display: block !important;
    margin-top: 3px !important;
    color: #738092 !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    font-weight: 500 !important;
}

/* Card 2: Kontakt zum Immobilienteam */
body .rustler-quickcard-contact {
    display: flex !important;
    flex-direction: column !important;
}

body .rustler-quickcard-contact-body {
    flex: 1 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 10px !important;
    align-content: center !important;
    padding: 25px !important;
    background:
      linear-gradient(rgba(255,255,255,.86), rgba(255,255,255,.86)),
      linear-gradient(135deg,#ececec,#d8d8d8) !important;
}

body .rustler-quickcard-contact-body a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 44px !important;
    padding: 9px 12px !important;
    background: var(--rustler-red) !important;
    border: 1px solid var(--rustler-red) !important;
    color: #fff !important;
    text-decoration: none !important;
    text-align: center !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    transition: .18s ease !important;
}

body .rustler-quickcard-contact-body a:hover,
body .rustler-quickcard-contact-body a:focus {
    background: #910514 !important;
    border-color: #910514 !important;
}

/* Card 3: Standorte */
body .rustler-quickcard-locations {
    display: grid !important;
    grid-template-columns: 1fr 1.12fr !important;
    grid-template-rows: auto 1fr !important;
    background: var(--rustler-red) !important;
}

body .rustler-quickcard-locations > header {
    grid-column: 1 / -1 !important;
}

body .rustler-location-symbol {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 18px !important;
    color: rgba(255,255,255,.92) !important;
}

body .rustler-location-symbol svg {
    width: 100% !important;
    max-width: 175px !important;
    height: auto !important;
}

body .rustler-location-links {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    padding: 18px 18px 20px 0 !important;
}

body .rustler-location-links a {
    display: block !important;
    padding: 2px 0 !important;
    color: #fff !important;
    text-decoration: none !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    font-weight: 500 !important;
}

body .rustler-location-links a:hover,
body .rustler-location-links a:focus {
    text-decoration: underline !important;
}

@media (max-width: 980px) {
    body .rustler-property-quicklinks {
        grid-template-columns: 1fr 1fr !important;
    }
    body .rustler-quickcard-locations {
        grid-column: 1 / -1 !important;
    }
}

@media (max-width: 680px) {
    body .rustler-property-quicklinks {
        width: calc(100vw - 24px) !important;
        grid-template-columns: 1fr !important;
        gap: 14px !important;
        margin-top: 20px !important;
    }
    body .rustler-property-quicklinks .rustler-quickcard {
        min-height: 220px !important;
    }
    body .rustler-quickcard-locations {
        grid-column: auto !important;
        grid-template-columns: 1fr !important;
    }
    body .rustler-location-symbol {
        padding-bottom: 0 !important;
    }
    body .rustler-location-links {
        padding: 10px 22px 22px !important;
    }
    body .rustler-quickcard-contact-body {
        grid-template-columns: 1fr !important;
    }
}


/* ============================================================
   2.9.4 – MOBILE CAROUSEL FÜR DIE 3 SCHNELLNAVIGATION-CARDS
   ============================================================ */
body .rustler-quickcards-mobile-nav {
    display: none !important;
}

@media (max-width: 680px) {
    body .rustler-property-quicklinks {
        display: block !important;
        width: calc(100vw - 24px) !important;
        margin: 20px auto 8px !important;
        overflow: hidden !important;
    }

    body .rustler-property-quicklinks .rustler-quickcard {
        display: none !important;
        width: 100% !important;
        min-height: 250px !important;
        margin: 0 !important;
    }

    body .rustler-property-quicklinks .rustler-quickcard.is-mobile-active {
        display: flex !important;
    }

    body .rustler-property-quicklinks .rustler-quickcard-locations.is-mobile-active {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }

    body .rustler-quickcards-mobile-nav {
        display: grid !important;
        grid-template-columns: 46px 1fr 46px !important;
        align-items: center !important;
        gap: 14px !important;
        margin-top: 12px !important;
    }

    body .rustler-quickcards-prev,
    body .rustler-quickcards-next {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 46px !important;
        height: 46px !important;
        padding: 0 !important;
        border: 1px solid var(--rustler-red) !important;
        border-radius: 50% !important;
        background: #fff !important;
        color: var(--rustler-red) !important;
        font-size: 34px !important;
        line-height: 1 !important;
        font-weight: 400 !important;
        cursor: pointer !important;
    }

    body .rustler-quickcards-prev:active,
    body .rustler-quickcards-next:active {
        background: var(--rustler-red) !important;
        color: #fff !important;
    }

    body .rustler-quickcards-dots {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px !important;
    }

    body .rustler-quickcards-dots span {
        display: block !important;
        width: 8px !important;
        height: 8px !important;
        border-radius: 50% !important;
        background: #d4d4d4 !important;
    }

    body .rustler-quickcards-dots span.is-active {
        background: var(--rustler-red) !important;
    }
}


/* ============================================================
   2.9.5 – MOBILE CAROUSEL-PFEILE VERTIKAL MITTIG AN DER CARD
   ============================================================ */
@media (max-width: 680px) {
    body .rustler-property-quicklinks {
        position: relative !important;
        overflow: visible !important;
        padding-bottom: 34px !important;
    }

    body .rustler-quickcards-mobile-nav {
        display: block !important;
        position: absolute !important;
        inset: 0 !important;
        margin: 0 !important;
        pointer-events: none !important;
        z-index: 12 !important;
    }

    body .rustler-quickcards-prev,
    body .rustler-quickcards-next {
        position: absolute !important;
        top: calc(50% - 17px) !important;
        transform: translateY(-50%) !important;
        pointer-events: auto !important;
        z-index: 13 !important;
        box-shadow: 0 3px 12px rgba(0,0,0,.10) !important;
    }

    body .rustler-quickcards-prev {
        left: 8px !important;
    }

    body .rustler-quickcards-next {
        right: 8px !important;
    }

    body .rustler-quickcards-dots {
        position: absolute !important;
        left: 50% !important;
        bottom: 4px !important;
        transform: translateX(-50%) !important;
        pointer-events: none !important;
    }
}


/* ============================================================
   2.9.6 – MOBILE QUICKCARDS: INHALTE IMMER SICHTBAR
   ============================================================ */
body .rustler-quickcard-projects,
body .rustler-quickcard-locations {
    background: var(--rustler-red, #c8102e) !important;
}

body .rustler-quickcard-projects .rustler-projects-link {
    position: relative !important;
    z-index: 2 !important;
    display: flex !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    min-height: 100% !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    color: #fff !important;
    text-decoration: none !important;
}

body .rustler-quickcard-projects .rustler-quickcard-icon,
body .rustler-quickcard-projects .rustler-quickcard-label,
body .rustler-quickcard-locations > header,
body .rustler-quickcard-locations .rustler-location-symbol,
body .rustler-quickcard-locations .rustler-location-links {
    visibility: visible !important;
    opacity: 1 !important;
}

body .rustler-location-links {
    position: relative !important;
    z-index: 2 !important;
}

body .rustler-location-links a {
    color: #fff !important;
    visibility: visible !important;
    opacity: 1 !important;
}

@media (max-width: 680px) {
    body .rustler-property-quicklinks .rustler-quickcard-projects.is-mobile-active {
        display: flex !important;
        min-height: 300px !important;
        padding: 24px !important;
    }

    body .rustler-property-quicklinks .rustler-quickcard-locations.is-mobile-active {
        display: grid !important;
        grid-template-columns: 1fr !important;
        grid-template-rows: auto auto 1fr !important;
        min-height: 560px !important;
        overflow: visible !important;
    }

    body .rustler-quickcard-locations .rustler-location-symbol {
        min-height: 125px !important;
        padding: 12px 54px 0 !important;
    }

    body .rustler-quickcard-locations .rustler-location-links {
        display: flex !important;
        flex-direction: column !important;
        justify-content: flex-start !important;
        padding: 12px 58px 28px !important;
    }

    body .rustler-quickcard-locations .rustler-location-links a {
        display: block !important;
        padding: 5px 0 !important;
        font-size: 13px !important;
        line-height: 1.35 !important;
    }
}


/* ============================================================
   2.9.7 – QUICKCARDS: ROTE FLÄCHEN GEGEN ALLGEMEINE CARD-REGEL ABSICHERN
   ============================================================ */
body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-projects,
body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-locations {
    background: #B70719 !important;
    color: #fff !important;
}

body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-projects .rustler-projects-link {
    color: #fff !important;
}

body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-projects .rustler-quickcard-icon {
    display: block !important;
    color: #fff !important;
    visibility: visible !important;
    opacity: 1 !important;
}

body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-projects .rustler-quickcard-label {
    display: block !important;
    background: #fff !important;
    color: #454545 !important;
    visibility: visible !important;
    opacity: 1 !important;
}

body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-locations .rustler-location-symbol {
    display: flex !important;
    color: #fff !important;
    visibility: visible !important;
    opacity: 1 !important;
}

body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-locations .rustler-location-links {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
}

body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-locations .rustler-location-links a {
    display: block !important;
    color: #fff !important;
    visibility: visible !important;
    opacity: 1 !important;
}


/* 2.9.8 – Haus-Icon links und echte Österreichkarte rechts */
body .rustler-quickcard-projects .rustler-quickcard-icon {
    width: 150px !important;
}

body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-locations .rustler-location-symbol img {
    display: block !important;
    width: 100% !important;
    max-width: 190px !important;
    height: auto !important;
    object-fit: contain !important;
    filter: brightness(0) invert(1) !important;
}

body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-locations .rustler-location-symbol svg {
    display: none !important;
}


/* ============================================================
   2.10.4 – FORMULAR-MODAL FÜR „ICH SUCHE“ / „ICH VERKAUFE“
   ============================================================ */
body .rustler-request-modal[hidden] {
    display: none !important;
}

body .rustler-request-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 100000 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 22px !important;
}

body .rustler-request-modal-backdrop {
    position: absolute !important;
    inset: 0 !important;
    background: rgba(0,0,0,.58) !important;
    backdrop-filter: blur(2px) !important;
}

body .rustler-request-modal-dialog {
    position: relative !important;
    z-index: 2 !important;
    width: min(1040px, 96vw) !important;
    height: min(820px, 88vh) !important;
    display: flex !important;
    flex-direction: column !important;
    background: #fff !important;
    border-top: 5px solid var(--rustler-red, #B70719) !important;
    box-shadow: 0 24px 70px rgba(0,0,0,.28) !important;
    overflow: hidden !important;
}

body .rustler-request-modal-head {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 20px !important;
    min-height: 66px !important;
    padding: 14px 18px 14px 22px !important;
    border-bottom: 1px solid #e8e8e8 !important;
    background: #fff !important;
}

body .rustler-request-modal-head h2 {
    margin: 0 !important;
    color: #222 !important;
    font-size: 22px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
}

body .rustler-request-modal-close {
    flex: 0 0 42px !important;
    width: 42px !important;
    height: 42px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--rustler-red, #B70719) !important;
    font-size: 40px !important;
    line-height: 1 !important;
    cursor: pointer !important;
}

body .rustler-request-modal-frame {
    flex: 1 1 auto !important;
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    border: 0 !important;
    background: #fff !important;
}

body .rustler-request-modal-loading {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 3 !important;
    padding: 10px 14px !important;
    background: #fff !important;
    color: #555 !important;
    font-size: 14px !important;
    box-shadow: 0 3px 14px rgba(0,0,0,.08) !important;
}

body.rustler-request-modal-open {
    overflow: hidden !important;
}

@media (max-width: 680px) {
    body .rustler-request-modal {
        padding: 0 !important;
    }

    body .rustler-request-modal-dialog {
        width: 100vw !important;
        height: 100dvh !important;
        max-height: none !important;
        border-top-width: 4px !important;
    }

    body .rustler-request-modal-head {
        min-height: 58px !important;
        padding: 10px 12px 10px 16px !important;
    }

    body .rustler-request-modal-head h2 {
        font-size: 18px !important;
    }
}


/* ============================================================
   2.10.9 – LISTENKARTEN: PREIS & BUTTON IMMER AM KARTENENDE
   ============================================================ */

/* Karteninhalt als vertikale Flexbox – unabhängig davon, ob ein Bild existiert. */
body .oo-listframe.rustler-estate-grid > .oo-listobject {
    display: flex !important;
    flex-direction: column !important;
}

body .oo-listframe.rustler-estate-grid > .oo-listobject .oo-listinfo {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
}

/* Der Buttonbereich drückt sich immer nach unten.
   Ein vorhandener Preis bleibt direkt oberhalb des Buttons. */
body .oo-listframe.rustler-estate-grid > .oo-listobject .rustler-card-actions,
body .oo-listframe.rustler-estate-grid > .oo-listobject .oo-listbutton,
body .oo-listframe.rustler-estate-grid > .oo-listobject .oo-listbuttonwrap {
    margin-top: auto !important;
}

/* Falls der Preisblock vorher selbst margin-top:auto hatte, neutralisieren. */
body .oo-listframe.rustler-estate-grid > .oo-listobject .rustler-card-price {
    margin-top: 18px !important;
}


/* ============================================================
   2.10.10 – PREIS + DETAILS-BUTTON GEMEINSAM UNTEN AUSRICHTEN
   ============================================================ */
body .oo-listframe.rustler-estate-grid > .oo-listobject .rustler-card-price {
    margin-top: auto !important;
    margin-bottom: 15px !important;
    padding-top: 18px !important;
}

body .oo-listframe.rustler-estate-grid > .oo-listobject .oo-detailslink,
body .oo-listframe.rustler-estate-grid > .oo-listobject .rustler-card-actions,
body .oo-listframe.rustler-estate-grid > .oo-listobject .oo-listbutton,
body .oo-listframe.rustler-estate-grid > .oo-listobject .oo-listbuttonwrap {
    margin-top: 0 !important;
}


/* ============================================================
   2.10.11 – KARTEN OHNE VORSCHAUBILD: INFOS AUF BILDHÖHE NACH UNTEN
   ============================================================ */

/* Wenn kein Bildblock vorhanden ist, reservieren wir optisch dieselbe
   Höhe wie bei den anderen Karten und setzen die Eckdaten an dessen Unterkante. */
body .oo-listframe.rustler-estate-grid > .oo-listobject:not(:has(.oo-listimage)) .oo-listinfo {
    position: relative !important;
    padding-top: 250px !important;
}

/* Ort + Eckdaten sollen bei bildlosen Karten dort beginnen, wo bei den
   normalen Karten der Bildbereich endet. */
body .oo-listframe.rustler-estate-grid > .oo-listobject:not(:has(.oo-listimage)) .rustler-card-facts {
    margin-top: 0 !important;
}

/* Kleinere Bildhöhe auf Mobil */
@media (max-width: 760px) {
    body .oo-listframe.rustler-estate-grid > .oo-listobject:not(:has(.oo-listimage)) .oo-listinfo {
        padding-top: 210px !important;
    }
}


/* ============================================================
   2.10.12 – FOUC-SCHUTZ
   Rohes onOffice-Layout beim Seitenladen nicht anzeigen.
   Sichtbar wird es erst, sobald unser JS die Rustler-Klassen gesetzt hat.
   ============================================================ */

/* Suche: altes onOffice-Formular während der Initialisierung verbergen */
body .oo-searchform form:not(.rustler-search-shell) {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Immobilienliste: altes onOffice-Layout während der Initialisierung verbergen */
body .oo-listframe:not(.rustler-estate-grid) {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Fertig aufgebautes Rustler-Layout sofort sichtbar */
body .oo-searchform form.rustler-search-shell,
body .oo-listframe.rustler-estate-grid {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}


/* ============================================================
   2.10.13 – DIREKTKONTAKT-CARD MIT HINTERGRUNDBILD
   ============================================================ */

body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-contact {
    background:
        url('https://rustler.eu/wp-content/uploads/2026/10/bg-immosuche.png')
        center center / cover no-repeat !important;
}

body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-contact > header {
    background: rgba(255,255,255,.86) !important;
    backdrop-filter: blur(1px);
    -webkit-backdrop-filter: blur(1px);
}

body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-contact .rustler-quickcard-contact-body {
    background: transparent !important;
}


/* ============================================================
   2.10.14 – DIREKTKONTAKT-BILD BESSER AUSRICHTEN
   ============================================================ */

body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-contact {
    background:
        url('https://rustler.eu/wp-content/uploads/2026/10/bg-immosuche.png')
        center center / cover no-repeat !important;
}

body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-contact > header {
    background: rgba(255,255,255,.72) !important;
}

body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-contact .rustler-quickcard-contact-body {
    padding-top: 54px !important;
}


/* ============================================================
   2.10.15 – DETAILS-BUTTON IMMER AM UNTEREN KARTENRAND
   ============================================================ */

/* Karten ohne Preis: Der Details-Link übernimmt den flexiblen Leerraum. */
body .oo-listframe.rustler-estate-grid > .oo-listobject.rustler-card-no-price .oo-detailslink {
    margin-top: auto !important;
}

/* Karten mit Preis: Der Preisblock übernimmt den Leerraum,
   der Button bleibt direkt darunter. */
body .oo-listframe.rustler-estate-grid > .oo-listobject.rustler-card-has-price .rustler-card-price {
    margin-top: auto !important;
}

body .oo-listframe.rustler-estate-grid > .oo-listobject.rustler-card-has-price .oo-detailslink {
    margin-top: 0 !important;
}

/* Sicherheit: Link-/Button-Hülle soll die volle Breite nutzen. */
body .oo-listframe.rustler-estate-grid > .oo-listobject .oo-detailslink {
    width: 100% !important;
}


/* ============================================================
   2.10.16 – ORTSFILTER: NUR BEZIRKE SICHTBAR
   ============================================================ */
body .rustler-picker-options.is-district-only input[data-rustler-real-option="1"] {
    display: none !important;
}

body .rustler-picker-options.is-district-only .rustler-picker-district {
    font-weight: 500 !important;
}

body .rustler-picker-options.is-district-only .rustler-picker-state-options {
    display: flex !important;
    flex-direction: column !important;
}


/* 2.10.17 – Neubauprojekte: Baukran-Icon im Stil der früheren Rustler-Suche */
body .rustler-quickcard-projects .rustler-quickcard-icon.rustler-quickcard-crane {
    width: 190px !important;
    max-width: 78% !important;
    margin-bottom: 18px !important;
}

body .rustler-quickcard-projects .rustler-quickcard-icon.rustler-quickcard-crane svg {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    overflow: visible !important;
}


/* ============================================================
   2.10.18 – Neubauprojekte: externer Kran direkt am Button
   ============================================================ */
body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-projects {
    padding: 0 !important;
}

body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-projects .rustler-projects-link {
    justify-content: flex-end !important;
    padding: 26px 24px 34px !important;
    box-sizing: border-box !important;
}

body .rustler-quickcard-projects .rustler-quickcard-icon.rustler-quickcard-crane {
    width: 195px !important;
    max-width: 82% !important;
    margin-bottom: -10px !important;
    position: relative !important;
    z-index: 1 !important;
}

body .rustler-quickcard-projects .rustler-quickcard-icon.rustler-quickcard-crane img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
}

body .rustler-quickcard-projects .rustler-quickcard-label {
    position: relative !important;
    z-index: 2 !important;
}


/* ============================================================
   2.10.19 – Neubauprojekte: größerer Kran + Card-Hintergrund angleichen
   ============================================================ */
body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-projects,
body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-projects .rustler-projects-link,
body .rustler-quickcard-projects {
    background: #C20A1C !important;
}

body .rustler-quickcard-projects .rustler-quickcard-icon.rustler-quickcard-crane {
    width: 260px !important;
    max-width: 96% !important;
    margin-bottom: -14px !important;
}


/* ============================================================
   2.10.20 – Neubauprojekte: Kran-Card Hintergrund angleichen + Inhalt leicht nach links
   ============================================================ */
body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-projects,
body .rustler-property-quicklinks .rustler-quickcard.rustler-quickcard-projects .rustler-projects-link,
body .rustler-quickcard-projects {
    background: #AD0015 !important;
}

body .rustler-quickcard-projects .rustler-quickcard-icon.rustler-quickcard-crane,
body .rustler-quickcard-projects .rustler-quickcard-label {
    transform: translateX(-22px) !important;
}


/* ============================================================
   2.10.21 – Neubauprojekte Button leicht weiter nach links
   ============================================================ */
body .rustler-quickcard-projects .rustler-quickcard-label {
    transform: translateX(-32px) !important;
}


/* ============================================================
   2.10.24 – Neubauprojekte: gesamten Inhalt sauber zentrieren
   ============================================================ */
body .rustler-quickcard-projects .rustler-quickcard-icon.rustler-quickcard-crane,
body .rustler-quickcard-projects .rustler-quickcard-label {
    transform: translateX(0) !important;
}


/* ============================================================
   2.10.26 – FILTER-MODAL FIX: sticky Bedienung + sauberes Close-Icon
   ============================================================ */
body .rustler-picker-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 99999 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 16px !important;
    box-sizing: border-box !important;
}

body .rustler-picker-overlay[hidden] {
    display: none !important;
}

body .rustler-picker-modal {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    width: min(920px, calc(100vw - 32px)) !important;
    height: min(82vh, 780px) !important;
    max-height: min(82vh, 780px) !important;
    padding: 0 !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    background: #fff !important;
}

body .rustler-picker-modal h3 {
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 24px 72px 18px 26px !important;
    background: #fff !important;
    border-bottom: 1px solid #ececec !important;
    position: relative !important;
    z-index: 5 !important;
}

body .rustler-picker-options {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 22px 26px !important;
    margin: 0 !important;
    overscroll-behavior: contain !important;
}

body .rustler-picker-actions {
    flex: 0 0 auto !important;
    position: relative !important;
    z-index: 5 !important;
    margin: 0 !important;
    padding: 14px 26px 18px !important;
    border-top: 1px solid #ececec !important;
    background: #fff !important;
}

body .rustler-picker-close,
body .rustler-picker-close:hover,
body .rustler-picker-close:focus,
body .rustler-picker-close:active,
body .rustler-picker-close:focus-visible {
    position: absolute !important;
    right: 18px !important;
    top: 14px !important;
    z-index: 10 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    background: transparent !important;
    color: #111 !important;
    font-size: 42px !important;
    font-weight: 300 !important;
    line-height: 1 !important;
}

@media (max-width: 760px) {
    body .rustler-picker-overlay {
        padding: 8px !important;
    }
    body .rustler-picker-modal {
        width: calc(100vw - 16px) !important;
        height: calc(100dvh - 16px) !important;
        max-height: calc(100dvh - 16px) !important;
    }
    body .rustler-picker-modal h3 {
        padding: 18px 62px 14px 16px !important;
    }
    body .rustler-picker-options {
        padding: 18px 16px !important;
    }
    body .rustler-picker-actions {
        padding: 12px 16px 14px !important;
    }
    body .rustler-picker-close,
    body .rustler-picker-close:hover,
    body .rustler-picker-close:focus,
    body .rustler-picker-close:active,
    body .rustler-picker-close:focus-visible {
        right: 10px !important;
        top: 8px !important;
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        min-height: 40px !important;
        font-size: 38px !important;
    }
}


/* ============================================================
   2.10.30 – Bundesland-Modal kompakt ohne große Leerabstände
   ============================================================ */
body .rustler-picker-options {
    align-content: start !important;
}

/* Nur das reine Bundesland-Modal automatisch an den Inhalt anpassen. */
body .rustler-picker-modal:has(.rustler-picker-options:not(.is-grouped)) {
    height: auto !important;
    max-height: min(82vh, 780px) !important;
}

body .rustler-picker-modal:has(.rustler-picker-options:not(.is-grouped)) .rustler-picker-options {
    flex: 0 1 auto !important;
    min-height: 0 !important;
    max-height: calc(82vh - 150px) !important;
    overflow-y: auto !important;
    padding-top: 18px !important;
    padding-bottom: 18px !important;
    gap: 12px 36px !important;
}


/* ============================================================
   2.10.31 – Formular-Modal X browserübergreifend sauber
   ============================================================ */
body .rustler-request-modal-close,
body .rustler-request-modal-close:hover,
body .rustler-request-modal-close:focus,
body .rustler-request-modal-close:active,
body .rustler-request-modal-close:focus-visible {
    position: relative !important;
    flex: 0 0 42px !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    text-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    cursor: pointer !important;
    overflow: visible !important;
}

body .rustler-request-modal-close::-moz-focus-inner {
    border: 0 !important;
    padding: 0 !important;
}

body .rustler-request-modal-close::before,
body .rustler-request-modal-close::after {
    content: '' !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 24px !important;
    height: 2px !important;
    margin-left: -12px !important;
    margin-top: -1px !important;
    background: var(--rustler-red, #B70719) !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    pointer-events: none !important;
}

body .rustler-request-modal-close::before {
    transform: rotate(45deg) !important;
}

body .rustler-request-modal-close::after {
    transform: rotate(-45deg) !important;
}


/* ============================================================
   2.10.35 – Formular-Iframe ohne Seiten-Flash in Chrome/Edge
   ============================================================ */
body .rustler-request-modal-frame.is-loading {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}
body .rustler-request-modal-frame.is-ready {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}
body .rustler-request-modal-loading {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
body .rustler-request-modal-loading[hidden] { display:none !important; }
body .rustler-request-modal-loading span {
    width: 28px !important;
    height: 28px !important;
    display: block !important;
    border: 3px solid #e7e7e7 !important;
    border-top-color: var(--rustler-red, #B70719) !important;
    border-radius: 50% !important;
    animation: rustler-modal-spin .75s linear infinite !important;
}
@keyframes rustler-modal-spin { to { transform: rotate(360deg); } }
\n\n/* ============================================================
   2.10.38 – STANDORTFILTER: PLZ + ORT DIREKT NEBENEINANDER
   ============================================================ */
body .oo-searchform .rustler-plz-native-field {
    display: none !important;
}

body .oo-searchform .rustler-location-pair {
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: 105px minmax(150px, 1fr) !important;
    gap: 10px !important;
    align-items: end !important;
    flex: 1 1 calc(33.333% - 14px) !important;
    width: auto !important;
    min-width: 280px !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body .oo-searchform .rustler-location-pair .rustler-location-small {
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body .oo-searchform .rustler-location-pair label {
    display: block !important;
    margin: 0 0 5px !important;
    padding: 0 !important;
}

body .oo-searchform .rustler-location-pair input[type="text"] {
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 9px 11px !important;
    border: 1px solid #cfd5db !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: #233243 !important;
    font-size: 14px !important;
    line-height: 20px !important;
    box-shadow: none !important;
    outline: none !important;
    visibility: visible !important;
    opacity: 1 !important;
}

body .oo-searchform .rustler-location-pair input[type="text"]:focus {
    border-color: var(--rustler-red) !important;
    box-shadow: 0 0 0 1px var(--rustler-red) !important;
}

body .oo-searchform .rustler-ort-text-field datalist {
    display: none !important;
}

@media (max-width: 900px) {
    body .oo-searchform .rustler-location-pair {
        flex: 1 1 100% !important;
        width: 100% !important;
        min-width: 0 !important;
        grid-template-columns: 120px minmax(0, 1fr) !important;
    }
}

@media (max-width: 520px) {
    body .oo-searchform .rustler-location-pair {
        grid-template-columns: 105px minmax(0, 1fr) !important;
        gap: 8px !important;
    }
}



/* 2.10.39 – doppeltes natives PLZ-Feld sicher ausblenden */
body .oo-searchform .oo-searchformfield.rustler-plz-native-field,
body .oo-searchform .rustler-plz-native-field {
    display: none !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    visibility: hidden !important;
}
