.listing-carousel-wrapper {
    position: relative;
}

.listing-carousel-header {
    margin-bottom: 1.5rem;
}

.listing-carousel-title {
    color: var(--white);
    margin: 0;
    text-align: center;
}

/* Slider row: prev | slider | next */
.listing-carousel-slider-wrap {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    position: relative;
}

.listing-carousel-slider-wrap .swiper-button-prev,
.listing-carousel-slider-wrap .swiper-button-next {
    position: static;
    margin: 0;
    width: auto;
    height: auto;
    flex-shrink: 0;
    color: var(--white);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.listing-carousel-slider-wrap .swiper-button-next::after,
.listing-carousel-slider-wrap .swiper-button-prev::after {
    display: none;
}

.listing-carousel-slider-wrap .swiper-button-next svg,
.listing-carousel-slider-wrap .swiper-button-prev svg {
    width: 20.377px;
    height: 25.059px;
    display: block;
}

/* Slider takes remaining space between arrows */
.listing-carousel-slider-wrap .realty_listing_carousel.swiper-slider {
    flex: 1;
    min-width: 0;
}

.listing_thumbnail {
    position: relative;
}

.listing_thumbnail .listing_image img {
    aspect-ratio: 4 / 3;
    display: block;
}

.realty_listing_carousel.swiper-slider {
    position: relative;
    overflow: visible !important;
    /* Hide slider until Swiper initializes */
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    /* Prevent layout shift by maintaining height */
    min-height: 300px;
}

/* Show slider once Swiper is initialized */
.realty_listing_carousel.swiper-slider.swiper-initialized {
    opacity: 1;
    visibility: visible;
}

.realty_listing_carousel.swiper-slider .swiper-slide {
    /* Smoother fade between active and neighboring peek slides */
    transition: opacity 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: opacity;
}

.listing_ribbon_2 {
    display: flex;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    box-sizing: border-box;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, var(--primary) 100%);
    color: var(--white);
    padding: 1rem;
    padding-top: 5rem;
    align-items: center;
    justify-content: space-between;
}

.listing_ribbon_2 .ribbon-column {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0 0.625rem;
    position: relative;
}

.listing_ribbon_2 .ribbon-column:not(.price-column) {
    font-size: 90%;
}

.listing_ribbon_2 .ribbon-column:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 100%;
    background-color: rgba(255, 255, 255, 1);
}

.listing_ribbon_2 .price-column {
    justify-content: center;
}

.listing_ribbon_2 .price-column .price {
    font-size: inherit;
    margin: 0;
    white-space: nowrap;
    font-weight: 600;
}

.listing_ribbon_2 .ribbon-column .icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: inherit;
}

.listing_ribbon_2 .ribbon-column .icon svg {
    width: 20px;
    height: 20px;
    display: block;
}

.listing_ribbon_2 .ribbon-column .value {
    white-space: nowrap;
}

.listing_ribbon_2 .ribbon-column .label {
    white-space: nowrap;
}

.listing_ribbon_2 p {
   margin-bottom: 0;
}

.listing_ribbon {
    background-color: var(--primary);
    margin-top: 1rem;
}

.listing_link {
    text-decoration: none;
    color: var(--white);
}

.main_information {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

.main_information h3 {
    text-align: center;
    margin-bottom: 0.25rem;
    font-family: muli;
    text-transform: none;
}

.main_information small {
    font-size: 85%;
}

button.listing-favourite {
    width: 35px;
    height: 35px;
}

button.listing-favourite svg {
    filter: drop-shadow(0 0 2px #000)!important;
}

.price.price-mobile {
    display: none;
}

@media (max-width: 768px) {

    .ribbon-column.price-column,
    .ribbon-column .icon {
        display: none!important;
    }

    .price.price-mobile {
        display: block;
    }
}