/**
 * Gaya halaman single estate_property — templates/listing_page_2.php.
 *
 * Sebelumnya empat blok <style> yang ditulis langsung di dalam template. Isinya
 * dipindah ke sini apa adanya supaya bisa di-cache browser dan tidak ikut
 * membesarkan setiap dokumen HTML properti.
 *
 * Handle 'bcv_listing_single' sengaja masuk $keep_blocking di
 * core/asset-optimization.php, BUKAN $critical. Berkas ini memuat reservasi
 * tinggi (min-height) dan aturan anti-FOUC yang harus berlaku sebelum paint
 * pertama; kalau ikut dimuat async seperti stylesheet lain, ia justru menjadi
 * sumber layout shift — persis hal yang ingin dicegah aturan-aturan itu.
 *
 * Sejumlah selektor di sini sengaja dibiarkan tanpa prefix (.owl-nav button,
 * .panel-wrapper ul, .responsive-tabs ...). Cakupannya tetap sama seperti dulu
 * karena berkas ini hanya di-enqueue di halaman single estate_property.
 */

/* ---------------------------------------------------------------------------
 * Villa highlights
 * ------------------------------------------------------------------------- */

/* .property_header_wrapper {
    min-height: 405px;
} */

#listing_highlights {
    min-height: 190px;
}

.panel-wrapper ul {
    margin-bottom: 0;
}

/* ---------------------------------------------------------------------------
 * Property images
 * ------------------------------------------------------------------------- */

.imagebody_new {
    display: flex !important;
    overflow: hidden;
}

.imagebody_new .image_gallery {
    width: inherit !important;
    flex: 1 0 33.333% !important;
    padding: 0 !important;
}

.imagebody_new .image_gallery:hover .img_listings_overlay {
    opacity: 0.3;
    background-color: #b881fc;
}

.owl-nav button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    height: 40px;
    width: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 27px !important;
    background-color: #fff !important;
}

.owl-prev {
    left: 0;
}

.owl-next {
    right: 0;
}

.owl-nav button span {
    line-height: 1;
    margin-top: -4px;
}

.owl-nav button.disabled {
    opacity: 0;
    pointer-events: none;
}

.video-body {
    position: relative;
}

.video-body .video {
    padding-top: 56.25%
}

.video-body iframe {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    min-height: 100% !important
}

.imagebody_wrapper {
    min-height: 221px;
}

/* ---------------------------------------------------------------------------
 * Villa amenities
 *
 * Class .tabby-loaded dipasang oleh <script> kecil yang masih tinggal di
 * template (listing_page_2.php), bukan oleh berkas ini.
 * ------------------------------------------------------------------------- */

body:not(.tabby-loaded) #collapse_amenities .product-section.lazy-content {
    display: none;
}

/* Saat Tabby sudah aktif, biarkan tinggi menyesuaikan */
body.tabby-loaded #collapse_amenities .panel-body {
    min-height: auto;
    overflow: visible;
}

body.tabby-loaded #collapse_amenities .product-section.lazy-content {
    display: block;
}

.responsive-tabs .responsive-tabs__heading {
    display: none;
}

@media (max-width: 767px) {
    .responsive-tabs .responsive-tabs__heading {
        display: block;
        cursor: pointer;
    }
}

/* ---------------------------------------------------------------------------
 * Sleeping arrangements
 *
 * Carousel ini dulu FlexSlider, sekarang Owl Carousel 2 (init di js/bcv.js:
 * initBeddingSlider). Aturan di bawah menjaga tampilannya tetap sama setelah
 * pindah.
 * ------------------------------------------------------------------------- */

/* Reset list. Sebelumnya datang dari css/flexslider.css
   (.slides,.slides>li{margin:0;padding:0;list-style:none}), yang sudah tidak
   di-enqueue lagi. .menu.vertical di style.css tidak menolong karena <ul> ini
   .menu.horizontal — tanpa reset ini bullet dan indent bawaan <ul> akan
   muncul. */
#collapse_bedding_arrangement .slides,
#collapse_bedding_arrangement .slides > li {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Tampilan sebelum Owl selesai init (anti-FOUC): daftar tampil sebagai satu
   baris terpotong, bukan kolom panjang. Dibatasi :not(.owl-loaded) karena
   !important di sini akan melawan layout Owl setelah init. Pola yang sama
   dipakai slider lain di core/asset-optimization.php. */
#collapse_bedding_arrangement .slides:not(.owl-loaded) {
    display: flex !important;
    overflow: hidden;
}

/* css/bcv-styles.css memasang .owl-stage{height:220px} (280px di bawah 768px)
   tanpa prefix, dan hanya membatalkannya lewat .home .owl-stage. Kartu bedding
   punya tinggi sendiri, jadi ikuti preseden itu dan lepas tingginya di sini. */
#collapse_bedding_arrangement .owl-stage {
    height: auto;
}

/* Titik paging. Owl core tidak menata .owl-dots sama sekali dan
   owl.theme.default.css tidak ada di theme ini, jadi tampilannya diport dari
   .flex-control-paging milik flexslider.css supaya sama persis dengan
   sebelumnya. */
#collapse_bedding_arrangement .owl-dots {
    width: 100%;
    text-align: center;
    margin-top: 10px;
}

#collapse_bedding_arrangement .owl-dot {
    display: inline-block;
    margin: 0 6px;
}

#collapse_bedding_arrangement .owl-dot span {
    display: block;
    width: 11px;
    height: 11px;
    border-radius: 20px;
    background: rgba(0, 0, 0, .5);
    box-shadow: inset 0 0 3px rgba(0, 0, 0, .3);
}

#collapse_bedding_arrangement .owl-dot:hover span {
    background: rgba(0, 0, 0, .7);
}

#collapse_bedding_arrangement .owl-dot.active span {
    background: rgba(0, 0, 0, .9);
}

#collapse_bedding_arrangement .owl-item li {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#listing_bedding_arrangement {
    min-height: 185px;
}
