/* Style IV scoped styles – no changes to original Tevily Style I/II/III. */
.gva-booking-allitems .vnt-booking-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
    overflow: hidden;
    border-radius: 30px;
    background: #fff;
    color: #444;
    box-shadow: 0 1px 2px rgba(0,0,0,.06);
    container-type: inline-size;
}
.gva-booking-allitems .item-column:has(> .vnt-booking-card),
.gva-booking-allitems .swiper-slide:has(> .vnt-booking-card) { display: flex; min-width: 0; height: auto; }
.vnt-booking-card *, .vnt-booking-card *::before, .vnt-booking-card *::after { box-sizing: border-box; }
.vnt-booking-card .vnt-booking-card__cover {
    display: block;
    flex: none;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 1.55;
    background: #c5e7f4;
    text-decoration: none;
}
.vnt-booking-card .vnt-booking-card__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform .3s ease;
}
.vnt-booking-card:hover .vnt-booking-card__image { transform: scale(1.025); }
.vnt-booking-card__image-empty { display: flex; align-items: center; justify-content: center; height: 100%; color: #fff; font-size: 42px; }
.vnt-booking-card .vnt-booking-card__body {
    position: relative;
    display: flex;
    flex: 1;
    flex-direction: column;
    margin-top: -23px;
    padding: 25px 24px 27px;
    border: 1px solid #ececec;
    border-radius: 29px;
    background: #fff;
}
.vnt-booking-card .vnt-booking-card__title {
    margin: 0;
    padding: 0;
    font-size: clamp(21px, 2vw, 28px);
    font-weight: 750;
    line-height: 1.3;
    color: #252326;
}
.vnt-booking-card .vnt-booking-card__title a,
.vnt-booking-card .vnt-booking-card__title a:hover { color: inherit; text-decoration: none; }
.vnt-booking-card .vnt-booking-card__facts { display: flex; flex-direction: column; gap: 13px; margin: 36px 0 28px; }
.vnt-booking-card .vnt-booking-card__fact { display: flex; align-items: baseline; gap: 13px; min-width: 0; }
.vnt-booking-card .vnt-booking-card__fact-icon { display: inline-flex; flex: 0 0 23px; align-items: center; justify-content: center; color: #f6ab51; font-size: 22px; }
.vnt-booking-card .vnt-booking-card__fact-text { font-size: 16px; line-height: 1.45; min-width: 0; overflow-wrap: anywhere; }
.vnt-booking-card .vnt-booking-card__fact-label { white-space: nowrap; }
.vnt-booking-card .vnt-booking-card__bottom { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 14px; margin-top: auto; }
.vnt-booking-card .vnt-booking-card__pricing { min-width: 0; }
.vnt-booking-card .vnt-booking-card__price-label { display: block; margin-bottom: 2px; font-size: 17px; line-height: 1.4; }
.vnt-booking-card .vnt-booking-card__price-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px; }
.vnt-booking-card .vnt-booking-card__price { color: #03509e; font-size: 24px; font-weight: 800; line-height: 1.3; white-space: nowrap; }
.vnt-booking-card .vnt-booking-card__unit { color: #444; font-size: 16px; }
.vnt-booking-card .vnt-booking-card__old-price { display: block; color: #999; font-size: 13px; }
.vnt-booking-card .vnt-booking-card__contact { color: #03509e; font-weight: 700; }
.vnt-booking-card .vnt-booking-card__button {
    display: inline-flex;
    min-height: 48px;
    padding: 11px 25px;
    border: none;
    border-radius: 100px;
    background: linear-gradient(105deg, #034da7, #00a6d9);
    align-items: center;
    justify-content: center;
    color: #fff !important;
    font-size: 17px;
    line-height: 1.3;
    font-weight: 500;
    text-decoration: none !important;
    white-space: nowrap;
    transition: filter .2s ease;
}
.vnt-booking-card .vnt-booking-card__button:hover { filter: brightness(1.08); }
.vnt-booking-card .vnt-booking-card__button:focus-visible,
.vnt-booking-card .vnt-booking-card__cover:focus-visible { outline: 2px solid #0274b7; outline-offset: 3px; }
@container (min-width: 650px) {
    .vnt-booking-card .vnt-booking-card__body { margin-top: -34px; padding: 51px 60px 53px; border-radius: 35px; }
    .vnt-booking-card .vnt-booking-card__title { font-size: 36px; }
    .vnt-booking-card .vnt-booking-card__facts { margin: 86px 0 40px; gap: 20px; }
    .vnt-booking-card .vnt-booking-card__fact { gap: 24px; }
    .vnt-booking-card .vnt-booking-card__fact-icon { flex-basis: 35px; font-size: 30px; }
    .vnt-booking-card .vnt-booking-card__fact-text { font-size: 29px; }
    .vnt-booking-card .vnt-booking-card__price-label { font-size: 29px; }
    .vnt-booking-card .vnt-booking-card__price { font-size: 34px; }
    .vnt-booking-card .vnt-booking-card__unit { font-size: 26px; }
    .vnt-booking-card .vnt-booking-card__button { min-height: 70px; padding: 14px 36px; font-size: 29px; }
}
@media(max-width:480px) {
    .vnt-booking-card .vnt-booking-card__body { padding: 24px 20px; }
    .vnt-booking-card .vnt-booking-card__title { font-size: 21px; }
    .vnt-booking-card .vnt-booking-card__price { font-size: 21px; }
    .vnt-booking-card .vnt-booking-card__button { padding: 10px 21px; }
}
@media(prefers-reduced-motion:reduce) { .vnt-booking-card .vnt-booking-card__image { transition: none; } }
