/* ==========================================================================
   Sabe-Inn — unified modern listing cards
   Applies a fresh, consistent, responsive look to every service card
   (hotel, tour, car, restaurant/boat, space, event, visa, flight).
   Loaded last so it overrides the legacy module styles.
   ========================================================================== */

/* ---- Card shell ---- */
.bc_wrap .item-loop,
.bc_wrap .item-tour,
.bc_wrap .item-boat,
.bc_wrap .bc-card-unified {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    position: relative !important;
    background: #ffffff !important;
    border: 1px solid #e7ecf3 !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 10px rgba(16, 43, 82, 0.06) !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease !important;
}

.bc_wrap .item-loop:hover,
.bc_wrap .item-tour:hover,
.bc_wrap .item-boat:hover,
.bc_wrap .bc-card-unified:hover {
    transform: translateY(-5px) !important;
    border-color: rgba(30, 100, 181, 0.35) !important;
    box-shadow: 0 18px 44px rgba(16, 43, 82, 0.14) !important;
}

/* ---- Image ---- */
.bc_wrap .item-loop .thumb-image,
.bc_wrap .item-tour .thumb-image,
.bc_wrap .item-boat .thumb-image {
    position: relative !important;
    aspect-ratio: 4 / 3 !important;
    height: auto !important;
    max-height: none !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: #eef2f7 !important;
}

.bc_wrap .item-loop .thumb-image a,
.bc_wrap .item-tour .thumb-image a,
.bc_wrap .item-boat .thumb-image a {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

.bc_wrap .item-loop .thumb-image img,
.bc_wrap .item-tour .thumb-image img,
.bc_wrap .item-boat .thumb-image img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transition: transform .5s ease !important;
}

.bc_wrap .item-loop:hover .thumb-image img,
.bc_wrap .item-tour:hover .thumb-image img,
.bc_wrap .item-boat:hover .thumb-image img {
    transform: scale(1.06) !important;
}

/* ---- Badges ---- */
.bc_wrap .item-loop .featured,
.bc_wrap .item-tour .featured,
.bc_wrap .item-boat .featured {
    position: absolute !important;
    top: 12px !important;
    left: 12px !important;
    right: auto !important;
    z-index: 4 !important;
    height: auto !important;
    line-height: 1.3 !important;
    padding: 5px 11px !important;
    border-radius: 999px !important;
    background: #1E64B5 !important;
    color: #ffffff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .4px !important;
    text-transform: uppercase !important;
    box-shadow: 0 2px 8px rgba(30, 100, 181, 0.32) !important;
}

.bc_wrap .item-loop .sale_info,
.bc_wrap .item-tour .sale_info,
.bc_wrap .item-boat .sale_info {
    position: absolute !important;
    top: 12px !important;
    left: 12px !important;
    right: auto !important;
    z-index: 4 !important;
    height: auto !important;
    line-height: 1.3 !important;
    padding: 5px 11px !important;
    border-radius: 999px !important;
    background: #F7941D !important;
    color: #ffffff !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    box-shadow: 0 2px 8px rgba(247, 148, 29, 0.32) !important;
}

/* Keep discount below the "Featured" badge when both are present */
.bc_wrap .item-loop .thumb-image .sale_info,
.bc_wrap .item-tour .thumb-image .sale_info,
.bc_wrap .item-boat .thumb-image .sale_info {
    top: 48px !important;
}

/* ---- Wishlist heart ---- */
.bc_wrap .item-loop .service-wishlist,
.bc_wrap .item-tour .service-wishlist,
.bc_wrap .item-boat .service-wishlist {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    z-index: 4 !important;
    width: 34px !important;
    height: 34px !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, 0.94) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 2px 8px rgba(16, 43, 82, 0.16) !important;
    cursor: pointer !important;
    transition: transform .2s ease !important;
}

.bc_wrap .item-loop .service-wishlist:hover,
.bc_wrap .item-tour .service-wishlist:hover,
.bc_wrap .item-boat .service-wishlist:hover {
    transform: scale(1.1) !important;
}

.bc_wrap .item-loop .service-wishlist i,
.bc_wrap .item-tour .service-wishlist i,
.bc_wrap .item-boat .service-wishlist i {
    color: #64748b !important;
    font-size: 15px !important;
}

.bc_wrap .service-wishlist.active i {
    color: #f43f5e !important;
}

/* ---- Location ---- */
.bc_wrap .item-loop .location,
.bc_wrap .item-tour .location,
.bc_wrap .item-boat .location {
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
    margin: 13px 18px 0 !important;
    min-height: 0 !important;
    color: #64748b !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
}

.bc_wrap .item-loop .location i,
.bc_wrap .item-tour .location i,
.bc_wrap .item-boat .location i {
    color: #94a3b8 !important;
    font-size: 14px !important;
    line-height: 1 !important;
}

/* ---- Title ---- */
.bc_wrap .item-loop .item-title,
.bc_wrap .item-tour .item-title,
.bc_wrap .item-boat .item-title {
    margin: 7px 18px 0 !important;
    min-height: 0 !important;
}

.bc_wrap .item-loop .item-title a,
.bc_wrap .item-tour .item-title a,
.bc_wrap .item-boat .item-title a {
    color: #102b52 !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color .2s ease !important;
}

.bc_wrap .item-loop .item-title a:hover,
.bc_wrap .item-tour .item-title a:hover,
.bc_wrap .item-boat .item-title a:hover {
    color: #1E64B5 !important;
}

/* ---- Reviews ---- */
.bc_wrap .item-loop .service-review,
.bc_wrap .item-tour .service-review,
.bc_wrap .item-boat .service-review {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 9px 18px 0 !important;
    min-height: 20px !important;
}

.bc_wrap .service-review .list-star {
    display: inline-flex !important;
    line-height: 1 !important;
}

.bc_wrap .service-review .booking-item-rating-stars {
    margin: 0 !important;
    width: auto !important;
}

.bc_wrap .service-review .booking-item-rating-stars li {
    margin-right: 2px !important;
}

.bc_wrap .service-review .booking-item-rating-stars li .fa {
    color: #F7941D !important;
    font-size: 13px !important;
}

.bc_wrap .item-loop .service-review .review,
.bc_wrap .item-tour .service-review .review,
.bc_wrap .item-boat .service-review .review,
.bc_wrap .service-review .rate-text {
    color: #94a3b8 !important;
    font-size: 12px !important;
    margin-left: 0 !important;
    position: static !important;
    top: 0 !important;
}

.bc_wrap .item-boat .service-review .rate {
    color: #1E64B5 !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

/* ---- Amenities (restaurant / boat) ---- */
.bc_wrap .item-boat .amenities {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
    margin: 13px 18px 0 !important;
    color: #64748b !important;
    font-size: 13px !important;
}

.bc_wrap .item-boat .amenities .amenity {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.bc_wrap .item-boat .amenities .amenity i {
    color: #1E64B5 !important;
    font-size: 14px !important;
}

/* ---- Footer: price / duration ---- */
.bc_wrap .item-loop .info,
.bc_wrap .item-tour .info,
.bc_wrap .item-boat .info {
    margin-top: auto !important;
    margin-left: 18px !important;
    margin-right: 18px !important;
    margin-bottom: 0 !important;
    padding: 13px 0 15px !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 8px !important;
    border-top: 1px solid #eef1f6 !important;
}

.bc_wrap .item-loop .info .duration,
.bc_wrap .item-tour .info .duration {
    color: #64748b !important;
    font-size: 13px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.bc_wrap .item-loop .info .duration i,
.bc_wrap .item-tour .info .duration i {
    color: #94a3b8 !important;
    font-size: 14px !important;
}

.bc_wrap .item-loop .g-price,
.bc_wrap .item-tour .g-price,
.bc_wrap .item-boat .g-price {
    text-align: right !important;
}

.bc_wrap .item-loop .g-price .prefix,
.bc_wrap .item-tour .g-price .prefix,
.bc_wrap .item-boat .g-price .prefix {
    color: #94a3b8 !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
}

.bc_wrap .item-loop .g-price .price .text-price,
.bc_wrap .item-tour .g-price .price .text-price,
.bc_wrap .item-boat .g-price .price .text-price {
    color: #1E64B5 !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
}

.bc_wrap .item-loop .g-price .price .onsale,
.bc_wrap .item-tour .g-price .price .onsale {
    display: block !important;
    color: #94a3b8 !important;
    text-decoration: line-through !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
    position: static !important;
}

.bc_wrap .item-loop .g-price .price .unit,
.bc_wrap .item-tour .g-price .price .unit {
    color: #94a3b8 !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    margin-left: 2px !important;
}

/* Boat/restaurant card has no duration slot — right-align its single price */
.bc_wrap .item-boat .info {
    justify-content: flex-end !important;
}

/* ---- Grid rhythm ---- */
.bc_wrap .bc-list-item .list-item .row,
.bc_wrap .bc-list-item .list-item > .row {
    row-gap: 20px !important;
}

.bc_wrap .bc-list-item .list-item .row > [class*="col-"],
.bc_wrap .bc-list-item .list-item > .row > [class*="col-"] {
    margin-bottom: 0 !important;
    display: flex !important;
}

.bc_wrap .bc-list-item .list-item .row > [class*="col-"] > .item-loop,
.bc_wrap .bc-list-item .list-item .row > [class*="col-"] > .item-tour {
    width: 100% !important;
}

/* ---- Map layout cards (results_item list) ---- */
.bc_wrap .bc_search_map .results_item .item-loop,
.bc_wrap .bc_search_map .results_item .item-tour,
.bc_wrap .bc_search_map .results_item .item-boat {
    height: auto !important;
}

/* ---- Skeleton loading state ---- */
.bc_wrap .item-loop.skeleton-loading,
.bc_wrap .item-tour.skeleton-loading {
    pointer-events: none !important;
    opacity: 0.6 !important;
}

/* ==========================================================================
   Flight cards (Bootstrap .card structure)
   ========================================================================== */
.bc_wrap .card.item-loop-wrap {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    background: #ffffff !important;
    border: 1px solid #e7ecf3 !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 10px rgba(16, 43, 82, 0.06) !important;
    margin-bottom: 0 !important;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease !important;
}

.bc_wrap .card.item-loop-wrap:hover {
    transform: translateY(-5px) !important;
    border-color: rgba(30, 100, 181, 0.35) !important;
    box-shadow: 0 18px 44px rgba(16, 43, 82, 0.14) !important;
}

/* Full-bleed top image (16:9) */
.bc_wrap .card.item-loop-wrap > div:first-of-type {
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    background: #eef2f7 !important;
}

.bc_wrap .card.item-loop-wrap .card-img-top {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    transition: transform .5s ease !important;
}

.bc_wrap .card.item-loop-wrap:hover .card-img-top {
    transform: scale(1.05) !important;
}

.bc_wrap .card.item-loop-wrap .card-body {
    padding-top: 14px !important;
}

.bc_wrap .card.item-loop-wrap .card-title {
    color: #102b52 !important;
}

.bc_wrap .card.item-loop-wrap .btn-choose-flight {
    border-radius: 10px !important;
    font-weight: 600 !important;
    padding: 9px 22px !important;
}

/* ==========================================================================
   Horizontal list layout (item-loop-list)
   ========================================================================== */
.bc_wrap .item-loop-list {
    width: 100% !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
    position: relative !important;
    background: #ffffff !important;
    border: 1px solid #e7ecf3 !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 10px rgba(16, 43, 82, 0.06) !important;
    margin-bottom: 20px !important;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease !important;
}

.bc_wrap .item-loop-list:hover {
    transform: translateY(-4px) !important;
    border-color: rgba(30, 100, 181, 0.35) !important;
    box-shadow: 0 18px 44px rgba(16, 43, 82, 0.14) !important;
}

/* Image: keep 30% column, but fill it without distortion */
.bc_wrap .item-loop-list .thumb-image {
    position: relative !important;
    overflow: hidden !important;
    background: #eef2f7 !important;
}

.bc_wrap .item-loop-list .thumb-image a {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
}

.bc_wrap .item-loop-list .thumb-image img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    max-width: none !important;
    min-width: 0 !important;
    transition: transform .5s ease !important;
}

.bc_wrap .item-loop-list:hover .thumb-image img {
    transform: scale(1.06) !important;
}

/* Badges */
.bc_wrap .item-loop-list .featured {
    position: absolute !important;
    top: 12px !important;
    left: 12px !important;
    z-index: 4 !important;
    height: auto !important;
    line-height: 1.3 !important;
    padding: 5px 11px !important;
    border-radius: 999px !important;
    background: #1E64B5 !important;
    color: #ffffff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .4px !important;
    text-transform: uppercase !important;
    box-shadow: 0 2px 8px rgba(30, 100, 181, 0.32) !important;
}

.bc_wrap .item-loop-list .thumb-image .service-wishlist {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    width: 34px !important;
    height: 34px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, 0.94) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 2px 8px rgba(16, 43, 82, 0.16) !important;
    cursor: pointer !important;
    transition: transform .2s ease !important;
}

.bc_wrap .item-loop-list .thumb-image .service-wishlist:hover {
    transform: scale(1.1) !important;
}

.bc_wrap .item-loop-list .thumb-image .service-wishlist i {
    color: #64748b !important;
    font-size: 15px !important;
}

.bc_wrap .item-loop-list .thumb-image .service-wishlist.active i {
    color: #f43f5e !important;
}

/* Info column */
.bc_wrap .item-loop-list .g-info {
    padding: 18px 24px !important;
}

.bc_wrap .item-loop-list .g-info .item-title a {
    color: #102b52 !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
    transition: color .2s ease !important;
}

.bc_wrap .item-loop-list .g-info .item-title a:hover {
    color: #1E64B5 !important;
}

.bc_wrap .item-loop-list .g-info .location {
    color: #64748b !important;
    font-size: 13px !important;
}

.bc_wrap .item-loop-list .g-info .location i {
    color: #94a3b8 !important;
}

.bc_wrap .item-loop-list .g-info .list-star .booking-item-rating-stars li .fa {
    color: #F7941D !important;
}

.bc_wrap .item-loop-list .g-info .terms .attr-title,
.bc_wrap .item-loop-list .g-info .terms .g-attributes .item {
    color: #64748b !important;
}

/* Price / rating column */
.bc_wrap .item-loop-list .g-rate-price {
    padding: 18px 24px !important;
}

.bc_wrap .item-loop-list .g-rate-price:before {
    border-right-color: #eef1f6 !important;
}

.bc_wrap .item-loop-list .g-rate-price .service-review-pc .head .score {
    background: #1E64B5 !important;
    border-radius: 8px !important;
}

.bc_wrap .item-loop-list .g-rate-price .service-review-pc .head .score:after {
    border-bottom-color: #1E64B5 !important;
}

.bc_wrap .item-loop-list .g-price .price .text-price {
    color: #1E64B5 !important;
    font-weight: 700 !important;
    font-size: 20px !important;
}

.bc_wrap .item-loop-list .g-price .price .onsale {
    color: #94a3b8 !important;
    text-decoration: line-through !important;
}

.bc_wrap .item-loop-list .g-price .prefix,
.bc_wrap .item-loop-list .g-price .price .unit {
    color: #94a3b8 !important;
}
