.lofty-result-listing {
    display: flex;
    position: relative;
    padding-top: 20px;
    #lofty-map-container {
        margin-right: 20px;
        flex-shrink: 0;
        height: 100%;
    }
    #lofty-listing-container {
        flex: 1;
    }
    .lofty-icon-heart-fill,
    .lofty-icon-heart {
        top: unset;
    }
}
.lofty-result-listing.has-map {
    height: calc(100vh - 170px);
    #lofty-listing-container {
        min-height: 450px;
        max-height: 100%;
        overflow: auto;
    }
}
@media (max-width: 600px) {
    #lofty-map-container {
        width: 100vw;
        flex-shrink: 0;
    }
    .lofty-result-listing {
        padding: 0 15px;
    }
    .lofty-result-listing.has-map {
        padding: 0;
        margin-top: 20px;
    }
}
@media (min-width: 600px) and (max-width: 1000px) {
    .lofty-listing-page {
        padding: 40px 15px;
    }
    #lofty-map-container {
        width: 450px;
        max-width: 55%;
    }
}
@media (min-width: 1000px) and (max-width: 1200px) {
    #lofty-map-container {
        width: 500px;
        max-width: 55%;
    }
}
@media (min-width: 1200px) and (max-width: 1400px) {
    #lofty-map-container {
        width: 550px;
        max-width: 60%;
    }
}
@media (min-width: 1400px) {
    #lofty-map-container {
        width: 800px;
        max-width: 60%;
    }
}
@media (min-width: 1780px) {
    #lofty-map-container {
        width: 920px;
        max-width: 60%;
    }
}
@media (min-width: 2080px) {
    #lofty-map-container {
        width: 1000px;
        max-width: 50%;
    }
}
.lofty-listing {
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    gap: 20px;
    position: relative;
    .lofty-empty-status {
        flex: 1;
        display: flex;
        flex-direction: column;
        gap: 30px;
        justify-content: center;
        align-items: center;
        margin-top: 20px;
        .no-listing-icon {
            font-size: 64px;
            color: rgba(218, 218, 218, 0.5);
        }
        .lofty-empty-status-text {
            color: #191919;
            font-size: 18px;
            font-family: var(--lofty-font-bold);
            line-height: 1.2;
        }
    }
}
.lofty-listing:has(.lofty-empty-status) {
    height: 100%;
}
.lofty-empty-listing {
    height: 100%;
    overflow: hidden;
    &:before {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        background: rgba(255, 255, 255, 0.8);
        z-index: 1;
    }
}

@mixin mobile {
    @media (max-width: 767px) {
        @content;
    }
}
@mixin desktop {
    @media (min-width: 768px) {
        @content;
    }
}
@media (min-width: 600px) and (max-width: 1000px) {
    .has-map {
        .lofty-house-item {
            width: 100%;
        }
    }
}
@media (min-width: 1001px) and (max-width: 1800px) {
    .has-map {
        .lofty-house-item {
            width: calc((100% - 20px) / 2);
            .lofty-house-img {
                height: 180px;
            }
        }
    }
}
@media (min-width: 1801px) and (max-width: 2400px) {
    .has-map {
        .lofty-house-item {
            width: calc((100% - 40px) / 3);
            .lofty-house-img {
                height: 200px;
            }
        }
    }
}
@media (min-width: 2401px) {
    .has-map {
        .lofty-house-item {
            width: calc((100% - 60px) / 4);
            .lofty-house-img {
                height: 220px;
            }
        }
    }
}

.lofty-site-pending {
    .lofty-house-item {
        position: relative;
        &::after {
            position: absolute;
            content: '';
            background-image: url('https://static.chimeroi.com/site/images/sample-grid.png');
            left: 0;
            top: 0;
            right: 0;
            bottom: 0;
            background-position-y: center;
            background-repeat: repeat-x;
            background-size: contain;
            pointer-events: none;
            z-index: 1;
        }
    }
}

.lofty-house-item {
    width: calc((100% - 60px) / 4);
    &:nth-child(3n) {
        margin-right: 0;
    }
    .lofty-house-img {
        height: 230px;
        position: relative;
        overflow: hidden;
        margin-bottom: 20px;
        a {
            display: block;
            width: 100%;
            height: 100%;
        }
        .lofty-status-tag {
            position: absolute;
            left: 10px;
            top: 10px;
            height: 22px;
            padding: 0 6px;
            border-radius: 2px;
            color: #fff;
            font-size: 12px;
            font-weight: 400;
            line-height: 22px;
            text-align: center;
            margin: 0;
            &.hot {
                background: #f05252;
            }
            &.open-house {
                background: #45adff;
            }
            &.new {
                background: #23c864;
            }
            &.price-reduced {
                background: #ff973b;
            }
            &.active {
                background: #bb40ef;
            }
            &.sold {
                background: #505050;
            }
            &.exclusive {
                background: #2cd781;
            }
        }
        .lofty-img-counts {
            width: 51px;
            height: 28px;
            background: rgba(17, 17, 17, 0.4);
            border-bottom-left-radius: 10px;
            position: absolute;
            right: 0;
            top: 0;
            padding: 5px 7px;
            color: #fff;
            box-sizing: border-box;
            display: flex;
            align-items: center;
            justify-content: space-between;
            .lofty_iconfont {
                font-size: 14px;
            }
            .lofty-count-number {
                font-size: 14px;
                font-weight: 400;
                text-align: left;
            }
        }
        .collect-heart {
            position: absolute;
            right: 10px;
            bottom: 10px;
            cursor: pointer;
            font-size: 24px;
        }
        .lofty-icon-heart-fill {
            color: rgba(240, 69, 76, 1);
        }
        .lofty-icon-heart {
            color: #fff;
        }
        .lofty-icon-heart-mask {
            color: rgba(25, 25, 25, 0.4) !important;
            position: absolute;
            right: 10px;
            bottom: 10px;
            cursor: pointer;
            font-size: 24px;
        }

        img {
            width: 100%;
            height: 100% !important;
            object-fit: cover;
            transition: 0.5s;
        }
        &:hover {
            img {
                transform: scale(1.1);
            }
        }
    }

    .lofty-text.lofty-house-tag {
        font-size: 14px;
        font-weight: 400;
        line-height: 20px;
        text-align: left;
        color: #aaaaaa;
        margin: 0;
        display: block;
        margin-bottom: 10px;
        &.lofty-brokerage-info {
            max-width: 100%;
        }
    }

    .lofty-item-price {
        font-size: 26px;
        font-family: var(--lofty-font-bold);
        line-height: 30px;
        text-align: left;
        color: #111111;
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 3px;
        margin-bottom: 0;
        .lofty-trend-rate {
            display: flex;
            align-items: center;
            margin-left: 12px;
            font-size: 16px;
            line-height: 20px;
            font-weight: 600;
            &.lofty-down-color {
                color: #fd3131;
            }
            &.lofty-up-color {
                color: #25c44e;
            }
            .lofty_iconfont {
                font-size: 12px;
                line-height: 1;
                margin-right: 5px;
            }
        }
        .sold-info {
            display: flex;
            align-items: center;
            min-width: 120px;
        }
    }
    .lofty-house-initial-price {
        color: #a8a8a8;
        font-size: 16px;
        line-height: 20px;
    }
    .lofty-item-detail {
        font-size: 15px;
        line-height: 20px;
        text-align: left;
        color: #555555;
        margin-top: 15px;
        margin-bottom: 0;
        span + span {
            padding-left: 7px;
            &::before {
                content: '|';
                margin-right: 10px;
            }
        }
    }
    .lofty-item-address {
        margin-top: 5px;
        margin-bottom: 0;
        font-size: 15px;
        font-weight: 400;
        line-height: 20px;
        color: #555555;
        a {
            color: currentColor;
            text-decoration: none;
            &:hover {
                text-decoration: underline;
            }
        }
    }
    .lofty-house-mls-id {
        margin-top: 10px;
        color: #aaaaaa;
        font-size: 14px;
    }
    .lofty-mls-info {
        display: flex;
        margin-top: 10px;
        position: relative;
        align-items: self-end;
        justify-content: space-between;
        .lofty-text {
            font-size: 14px;
            font-weight: 400;
            line-height: 20px;
            text-align: left;
            color: #aaaaaa;
            max-width: calc(100% - 50px);
            .lofty-house-tag {
                margin: 0;
            }
        }
        .lofty-mls-logo {
            height: 18px;
            line-height: 1;
            img {
                height: 100% !important;
            }
        }
    }
    .lofty-mobile-mls-logo {
        display: none;
    }
    @include mobile {
        margin-right: 0;
        width: 100%;
        &:first-child {
            margin-top: 5px;
        }
        .lofty-house-img {
            margin-bottom: 15px;
        }
        .lofty-item-price {
            font-size: 20px;
            gap: 10px;
        }
        .lofty-item-detail {
            margin-top: 10px;
            font-size: 14px;
        }
        .lofty-item-address {
            font-size: 14px;
            margin-top: 0;
        }
        .lofty-mobile-mls-logo {
            display: block;
        }
        .lofty-pc-mls-logo {
            display: none;
        }
    }
}
.lofty-house-mask-blur {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    backdrop-filter: blur(10px);
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(0, 0, 0, 0.6);
    z-index: 10;
    .lofty-house-login-box {
        .lock-circle {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            background: #fff;
            line-height: 48px;
            text-align: center;
            margin: auto;
            i.lofty_iconfont {
                font-size: 24px;
            }
        }
        .lock-desc {
            font-size: 14px;
            color: #fff;
            margin-top: 10px;
            text-align: center;
            font-family: var(--lofty-font-regular);
        }
        .login-desc {
            font-size: 12px;
            color: #fff;
            margin-top: 6px;
            font-family: var(--lofty-font-regular);
            > span {
                text-decoration: underline;
                cursor: pointer;
            }
        }
    }
}
