.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn) {
    padding: 0;
}

div.dataTables_length label {
    margin-bottom: 0.5rem !important;
}

.iframe-container,
.video-container {
    position: relative;
    margin-bottom: 10px;
    padding-bottom: 56.25%;
    padding-top: 25px;
    height: 0;
    max-width: 100%;
}

.iframe-container iframe,
.video-container video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,
.bootstrap-select>.dropdown-toggle.bs-placeholder:active {
    background-color: #fff !important;
    border: 0px solid;
    font-size: 15px;
}

.bootstrap-select>.dropdown-toggle.bs-placeholder,
.bootstrap-select>.dropdown-toggle.bs-placeholder:hover,
.bootstrap-select>.dropdown-toggle {
    background-color: inherit !important;
    border: 0px solid;
    font-size: 15px;
}

.checkwdh {
    display: none;
}

.lg-outer .lg-video {
    height: auto;
    padding-bottom: 0;
    position: absolute;
    top: 45px;
    bottom: 40px;
    left: 0px;
    right: 0px;
}

.lg-object:after {
    color: #333;
    font-size: 25px;
    content: attr(alt);
    position: relative;
    top: 15px;
}

.lg-sub-html {
    padding: 5px 40px;
}

.loader {
    width: 20px;
    height: 20px;
    position: relative;
    animation: loader-mobile 1s ease infinite;
    top: 50%;
    margin: -46px auto 0;
}

@keyframes loader-mobile {

    0%,
    100% {
        box-shadow: -13px 20px 0 var(--immoz-primary-color, #030097), 13px 20px 0 rgba(0, 82, 236, 0.2), 13px 46px 0 rgba(0, 82, 236, 0.2), -13px 46px 0 rgba(0, 82, 236, 0.2);
    }

    25% {
        box-shadow: -13px 20px 0 rgba(0, 82, 236, 0.2), 13px 20px 0 var(--immoz-primary-color, #030097), 13px 46px 0 rgba(0, 82, 236, 0.2), -13px 46px 0 rgba(0, 82, 236, 0.2);
    }

    50% {
        box-shadow: -13px 20px 0 rgba(0, 82, 236, 0.2), 13px 20px 0 rgba(0, 82, 236, 0.2), 13px 46px 0 var(--immoz-primary-color, #030097), -13px 46px 0 rgba(0, 82, 236, 0.2);
    }

    75% {
        box-shadow: -13px 20px 0 rgba(0, 82, 236, 0.2), 13px 20px 0 rgba(0, 82, 236, 0.2), 13px 46px 0 rgba(0, 82, 236, 0.2), -13px 46px 0 var(--immoz-primary-color, #030097);
    }
}

.bootstrap-select .dropdown-toggle .filter-option-inner-inner {
    color: var(--immoz-text-color, #000);
    text-transform: none;
}

.lSSlideOuter .lSPager.lSGallery li {
    border-radius: 0px !important;
    background-color: black;
    background-image: radial-gradient(white, rgba(255, 255, 255, .2) 2px, transparent 40px), radial-gradient(white, rgba(255, 255, 255, .15) 1px, transparent 30px), radial-gradient(white, rgba(255, 255, 255, .1) 2px, transparent 40px), radial-gradient(rgba(255, 255, 255, .4), rgba(255, 255, 255, .1) 2px, transparent 30px);
    background-size: 550px 550px, 350px 350px, 250px 250px, 150px 150px;
    background-position: 0 0, 40px 60px, 130px 270px, 70px 100px;
}

.lSSlideOuter .lSPager.lSGallery li img {
    width: 100%;
    height: 140px !important;
    object-fit: cover;
    opacity: 0.5;
    -webkit-transition: all .5s ease;
    -moz-transition: all .5s ease;
    -o-transition: all .5s ease;
    -ms-transition: all .5s ease;
    transition: all .5s ease;
}

.lSSlideOuter .lSPager.lSGallery li.active img,
.lSSlideOuter .lSPager.lSGallery li:hover img {
    opacity: 1;
}

.elementor-widget .elementor-icon-list-icon svg {
    width: 4em !important;
}

#map_canvas {
    width: 100%;
    height: 400px;
    border: 1px solid var(--immoz-border-color, #e5e4e3);
}

.autocomplete {
    position: relative;
}

.autocomplete-items {
    position: absolute;
    border: 1px solid var(--immoz-border-color, #d4d4d4);
    border-bottom: none;
    border-top: none;
    z-index: 99;
    left: 0;
    right: 0;
}

.autocomplete p .autocomplete-items {
    left: 15px;
    right: 15px;
}

.autocomplete-items div {
    padding: 10px;
    cursor: pointer;
    background-color: var(--immoz-background-color, #fff);
    border-bottom: 1px solid var(--immoz-border-color, #d4d4d4);
}

.autocomplete-items div:hover {
    background-color: var(--immoz-background-light-color, #e9e9e9);
}

.autocomplete-active {
    background-color: DodgerBlue !important;
    color: #ffffff;
}

.fusion-topobject-image {
    transition: all 0.5s ease;
}

.fusion-topobject-image:hover {
    transform: scale(1.2);
}

.immotable {
    background: var(--immoz-background-color, #fff);
    margin: 15px 0 0 0 !important;
}

.immotable thead {
    background: var(--immoz-background-light-color, #f9f9f9);
}

.price-tag {
    right: 0px;
    top: 20px;
    position: absolute;
}

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

.page-link {
    color: var(--immoz-primary-color, #030097);
    width: 40px;
    text-align: center;
}

.page-item.active .page-link {
    z-index: 1;
    color: #fff;
    background-color: var(--immoz-primary-color, #030097);
    border-color: var(--immoz-primary-color, #030097);
}

.text-primary {
    color: var(--immoz-accent-color, #002458) !important;
}

.text-secondary {
    color: var(--immoz-secondary-color, #bd8320) !important;
}

.bg-primary {
    color: #fff !important;
    background-color: var(--immoz-accent-color, #002458) !important;
}

.bg-secondary {
    color: #fff !important;
    background-color: var(--immoz-secondary-color, #bd8320) !important;
}

.table-striped tbody tr:nth-of-type(odd) {
    background-color: var(--immoz-background-color, #fff);
}

.header-search .checkbox label:after,
.header-search .radio label:after {
    content: '';
    display: table;
    clear: both;
}

.header-search .checkbox .cr,
.header-search .radio .cr {
    position: relative;
    display: inline-block;
    border: 1px solid var(--immoz-border-color, #a9a9a9);
    width: 20px;
    height: 20px;
    margin: 10px 8px 13px 0;
    float: left;
    margin-right: .5em;
}

.header-search .radio .cr {
    border-radius: 50%;
}

.header-search label {
    line-height: 40px;
}

.header-search .checkbox .cr .cr-icon,
.header-search .radio .cr .cr-icon {
    position: absolute;
    font-size: .8em;
    line-height: 0;
    top: 50%;
    left: 20%;
}

.header-search .radio .cr .cr-icon {
    margin-left: 0.04em;
}

.header-search .checkbox label input[type="checkbox"],
.header-search .radio label input[type="radio"] {
    display: none;
}

.header-search .checkbox label input[type="checkbox"]+.cr>.cr-icon,
.header-search .radio label input[type="radio"]+.cr>.cr-icon {
    -webkit-transform: scale(3) rotateZ(-20deg);
    -moz-transform: scale(3) rotateZ(-20deg);
    -ms-transform: scale(3) rotateZ(-20deg);
    -o-transform: scale(3) rotateZ(-20deg);
    transform: scale(3) rotateZ(-20deg);
    opacity: 0;
    -webkit-transition: all .3s ease-in;
    -moz-transition: all .3s ease-in;
    -o-transition: all .3s ease-in;
    transition: all .3s ease-in;
}

.header-search .checkbox label input[type="checkbox"]:checked+.cr>.cr-icon,
.header-search .radio label input[type="radio"]:checked+.cr>.cr-icon {
    -webkit-transform: scale(1) rotateZ(0deg);
    -moz-transform: scale(1) rotateZ(0deg);
    -ms-transform: scale(1) rotateZ(0deg);
    -o-transform: scale(1) rotateZ(0deg);
    transform: scale(1) rotateZ(0deg);
    opacity: 1;
}

.header-search .checkbox label input[type="checkbox"]:disabled+.cr,
.header-search .radio label input[type="radio"]:disabled+.cr {
    opacity: .5;
}

.pointer {
    cursor: pointer;
}

p label {
    cursor: pointer;
}

.bootstrap-select {
    padding-left: 0 !important;
    z-index: inherit !important;
}

.socialmediaicons a:hover {
    opacity: 0.5;
}

.socialmediaicons a {
    padding: 10px 0 10px 5px;
    text-align: center;
    text-decoration: none;
    margin: 0 2px;
}

td svg.svg-inline--fa {
    padding-right: 10px;
}

.socialmediaicons .fa-square-facebook {
    color: #3B5998;
}

.socialmediaicons .fa-square-x-twitter {
    color: #000000;
}

.socialmediaicons .fa-google-plus {
    color: #dd4b39;
}

.socialmediaicons .fa-square-whatsapp {
    color: #01E675;
}

.socialmediaicons .fa-square-envelope {
    color: #bb0000;
}

.socialmediaicons .fa-print {
    color: #125688;
}

.socialmediaicons .fa-instagram {
    color: #125688;
}

td .small,
td.small {
    font-size: 90%;
    font-weight: 300;
}

td {
    word-break: break-word;
}

table.dataTable span.highlight {
    background-color: var(--immoz-warning-color, yellow);
    border-radius: 0.28571429rem;
}

table.dataTable span.column_highlight {
    background-color: #ccd6e0;
    border-radius: 0.28571429rem;
}

table.dataTable,
table.dataTable td,
table.dataTable th {
    border: 0 !important;
}

div.dataTables_wrapper div.dataTables_length label {
    font-weight: 300 !important;
}

div.dataTables_wrapper div.dataTables_paginate a {
    padding: .5rem .6rem !important;
    text-decoration: none !important;
}

div.dataTables_wrapper div.dataTables_paginate .page-item.active .page-link {
    color: #fff !important;
}

table.dataTable thead th {
    background: transparent !important;
    white-space: nowrap;
}

table.dataTable tbody tr {
    background: var(--immoz-background-light-color, #f9f9f9) !important;
}

table.dataTable thead th,
table.dataTable td[colspan] {
    border-bottom: 20px solid var(--immoz-background-color, #ffffff) !important;
}

@media screen and (max-width: 991px) {
    .showdetail img {
        height: 55vw !important;
        object-fit: cover;
        object-position: center;
    }

    td[colspan] {
        padding-top: 0 !important;
    }
}

@media screen and (min-width: 992px) {
    .showdetail img {
        height: 170px !important;
        object-fit: cover;
    }

    .showdetail .col-lg-10 {
        display: -webkit-box;
        -webkit-line-clamp: 7;
        -webkit-box-orient: vertical;
        overflow: hidden;
        margin-bottom: 5px;
    }

    #more-options.collapse {
        display: block;
    }
}

@media screen and (max-width: 767px) {
    div.dataTables_wrapper div.dataTables_paginate a {
        padding: .5rem .6rem !important;
    }

    div.dataTables_wrapper div.dataTables_length select {
        width: 50% !important;
        height: 40px;
    }

    div.dataTables_wrapper div.dataTables_length {
        text-align: left !important;
    }

    div.dataTables_wrapper div.dataTables_filter input {
        width: 50% !important;
    }

    div.dataTables_wrapper div.dataTables_filter,
    div.dataTables_wrapper div.dataTables_filter label {
        text-align: right !important;
    }
}

@media screen and (min-width: 768px) {
    div.dataTables_wrapper div.dataTables_length select {
        width: 100% !important;
        height: 47px;
    }
}

@media print {

    body,
    div.row,
    div.col-lg-6,
    div.col-12 {
        background: #fff !important;
        background-color: #fff !important;
        background-image: none !important;
        display: block !important;
    }

    a {
        color: #333 !important;
        text-decoration: none !important;
    }

    #main {
        padding-top: 0px !important;
        padding-bottom: 0px !important;
    }

    .fusion-header-wrapper,
    .fusion-footer,
    .social_links,
    #footer,
    #custom_html-2,
    #cookie-law-info-bar {
        display: none !important;
    }

    table.table {
        page-break-inside: avoid !important;
    }
}
/* API not reachable */
.immoz-notice {
    padding: 1rem 1.25rem;
    margin: 1rem 0;
    border: 1px solid var(--immoz-border-color, #dee2e6);
    border-left: 4px solid var(--immoz-primary-color, #030097);
    background: var(--immoz-background-color, #fff);
}
.immoz-notice p {
    margin: 0;
}

/* Exposé map: placeholder until consent */
.immoz-map.immoz-map-blocked {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--immoz-background-light-color, #f6f7f4);
}
.immoz-map-placeholder {
    max-width: 460px;
    padding: 1.5rem;
    text-align: center;
}
.immoz-map-placeholder p {
    margin: 0 0 1rem;
}

/* Property links in list and grid */
/* specific enough to beat theme/Elementor kit rules like ".elementor-kit-1 a" */
.grid-item a.immoz-detail-link,
.grid-item a.immoz-detail-link:hover,
.grid-item a.immoz-detail-link:focus,
.dataTable a.immoz-detail-link,
.dataTable a.immoz-detail-link:hover,
.dataTable a.immoz-detail-link:focus {
    color: inherit;
    text-decoration: none;
}
.grid-item .immoz-detail-link:focus-visible {
    outline: none;
}
.grid-item .immoz-detail-link:focus-visible::after {
    outline: 2px solid var(--immoz-primary-color, #030097);
    outline-offset: 2px;
}

/* Accessibility: labels only for screen readers */
.immoz-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
/* Inquiry form: <label> instead of <div>, same look */
label.immoz-label {
    display: block;
    margin-bottom: 0;
}

/* List controls: themes often give selects/inputs large vertical padding with a fixed
   height, which cut off the number in "Entries per page" */
#elementor-immoz-wrapper .dataTables_length select,
#grid-view .dataTables_length select,
.dataTables_wrapper .dataTables_length select {
    height: auto;
    min-height: calc(1.5em + .5rem + 2px);
    padding-top: .25rem;
    padding-bottom: .25rem;
    line-height: 1.5;
    width: auto;
    min-width: 5rem;
    display: inline-block;
}
#grid-view .dataTables_filter input,
.dataTables_wrapper .dataTables_filter input {
    width: 16rem;
    max-width: 100%;
    min-height: calc(1.5em + .5rem + 2px);
}

/* Prices never wrap ("€ 209.000" / ",–") */
.immoz-price {
    white-space: nowrap;
}

/* Grid pagination: wraps on small screens instead of overlapping */
.immoz-grid-pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    margin: 0;
}
.immoz-grid-pagination .page-link {
    cursor: pointer;
    min-width: 2.5rem;
    text-align: center;
}
.immoz-grid-pagination .page-item.disabled .page-link {
    cursor: default;
}
@media (max-width: 575px) {
    .immoz-grid-pagination {
        justify-content: flex-start;
    }
}
.dataTables_wrapper .dataTables_paginate .pagination {
    flex-wrap: wrap;
}

/* Exposé print view / PDF (browser "Print" or ?print=<onr>) */
@media print {
    header, footer, .site-header, .site-footer, .elementor-location-header, .elementor-location-footer,
    #cmplz-cookiebanner-container, .cmplz-cookiebanner, #ast-scroll-top,
    .socialmediaicons, .im_form, .immoz-map-placeholder, .immoz-map.immoz-map-blocked,
    .lSAction, .lSPager, .elementor-field-type-submit, .elementor-button, .modal, .d-print-none {
        display: none !important;
    }
    /* Bootstrap 4 forces body/.container to min-width: 992px when printing */
    body, .container {
        min-width: 0 !important;
    }
    /* page width instead of the screen layout width */
    html, body, .e-con, .e-con-inner, .elementor-section .elementor-container {
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
    }
    .elementor .row {
        display: flex !important;
        flex-wrap: wrap !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .col-4, .col-lg-4 {
        flex: 0 0 33.333% !important;
        max-width: 33.333% !important;
    }
    /* gallery: only the first real image (the slider puts clones in front) */
    .lSSlideOuter, .lSSlideWrapper, #imageGallery {
        height: auto !important;
        width: 100% !important;
        transform: none !important;
        overflow: visible !important;
    }
    #imageGallery > li {
        display: none !important;
    }
    #imageGallery > li.clone + li:not(.clone),
    #imageGallery > li:first-child:not(.clone) {
        display: block !important;
        float: none !important;
        width: 100% !important;
        margin: 0 !important;
    }
    #imageGallery img {
        height: auto !important;
        max-height: 9cm;
        object-fit: cover;
    }
    .col-lg-6 {
        flex: 0 0 50% !important;
        max-width: 50% !important;
    }
    table, tr, img {
        page-break-inside: avoid;
    }
    a[href]::after {
        content: none !important;
    }
}

/* "Website with ImmoZ" note */
.immoz-credit {
    margin: 1.5rem 0 0;
    font-size: .8125rem;
    text-align: right;
    opacity: .75;
}
.immoz-credit a {
    color: inherit;
    text-decoration: none;
}
.immoz-credit a:hover {
    text-decoration: underline;
}
@media print {
    .immoz-credit { display: none; }
}


/* ==========================================================================
   Detailansicht: rechte Spalte (Kontakt + Ihre Anfrage) am Desktop fixieren
   Abstand oben pro Website über CSS-Variable: :root { --immoz-sticky-top: 70px; }
   Hinweis: Hat html/body "overflow-x: hidden", greift sticky nicht –
   dann auf der Website "html, body { overflow-x: clip; }" setzen.
   ========================================================================== */
@media (min-width: 992px) {
    .row > [class*="col-lg-"]:has(> form.im_form) {
        position: sticky;
        top: var(--immoz-sticky-top, 20px);
        align-self: flex-start;
        /* ist die Spalte hoeher als das Fenster, setzt frontend.js 'top' so, dass sie
           erst mit ihrem unteren Ende stehen bleibt (kein eigener Scrollbalken) */
    }
    /* overflow-x: hidden am html/body (Theme) verhindert sticky - auf Detailseiten durch clip ersetzen */
    html:has(form.im_form),
    body:has(form.im_form) {
        overflow-x: clip;
    }
}
