.bookzo-search-mod {
    background: #008ad1;
    color: #FFF;
    padding: 20px;
    margin-bottom: 20px;
}

.bookzo-search .form-inline {
    display: flex;
    align-items: flex-end;
    flex-wrap: nowrap;
    width: 100% !important;
    gap: 12px;
}

/* The outer blocks grow */
.bookzo-search .form-inline .form-group-inline {
    margin-right: 0 !important;
    margin-bottom: 0;
    min-width: 0;
}

/* Arrival/departure block */
.bookzo-search .form-inline .bookzo-search-arrival-departure {
    flex: 1 1 0;
}

/* Persons block */
.bookzo-search .form-inline .bookzo-search-persons {
    flex: 1 1 0;
}

/* Button keeps normal size */
.bookzo-search .form-inline #searchButton {
    flex: 0 0 125px;
}

/* Keep Bootstrap input-group in one row */
.bookzo-search .form-inline .input-group {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
}

/* Icon part should not stretch */
.bookzo-search .form-inline .input-group-prepend {
    flex: 0 0 auto;
}

/* Inputs share available space but stay inline */
.bookzo-search .form-inline .input-group>.form-control {
    flex: 1 1 0;
    width: 0 !important;
    min-width: 0 !important;
}

.bookzo-search .form-inline label {
    font-size: 1.1rem;
    padding-bottom: 15px;
}

.bookzo-bootstrap .bookzo-search .input-group-text {
    background: #e7edf0;
    color: #000 !important;
}

bookzo-objects-to-book .objects-to-book-buttons,
bookzo-arrival-departure-picker .datepicker-buttons {
    display: none !important;
}

/**
 * buttons
 */
.bookzo.bookzo-bootstrap .btn,
.bookzo-search #searchButton,
bookzo-objects-to-book .btn {
    background: #ffd200;
    color: #000;
    font-family: brandon-grotesque, sans-serif;
    font-size: 26px !important;
    font-weight: 500 !important;
    text-align: center;
    border: none !important;
    box-sizing: border-box;
    box-shadow: none !important;
    text-transform: none;
    letter-spacing: 0;
}

.bookzo.bookzo-bootstrap .btn:hover,
.bookzo-search #searchButton:hover {
    background: #263289;
    color: #FFF;
}

.bookzo.bookzo-bootstrap .btn-secondary,
bookzo-persons .btn-primary {
    background: #008ad1;
    color: #FFF;
}

.bookzo.bookzo-bootstrap .btn-secondary:hover,
bookzo-persons .btn-primary:hover,
.bookzo.bookzo-bootstrap .btn-secondary:focus,
bookzo-persons .btn-primary:focus {
    background: #263289;
    color: #FFF;
}

.bookzo.bookzo-bootstrap .btn-link:not(.ngb-dp-arrow-btn) {
    background: none;
    color: #000;
    text-decoration: underline;
    font-size: 14px !important;
    font-weight: normal;
    padding: 0;
}


/**
 * pagination
 */
.bookzo.bookzo-bootstrap .pagination {
    justify-content: flex-end;
    gap: 8px;
}

.bookzo.bookzo-bootstrap .page-item.active .page-link {
    background: #008ad1;
    color: #FFF;
}

/**
 * filterlist page
 */
.bookzo.bookzo-bootstrap .results-badges .badge-secondary {
    background: #008ad1;
    color: #FFF;
}

.bookzo.bookzo-bootstrap .results-badges .filter-button-wrapper {
    display: none;
}

/**
 * results
 */
.bookzo.bookzo-bootstrap .number-of-results {
    display: block;
    margin-bottom: 30px;
    width: 100%;
    font-size: 1.25rem;
}

.bookzo.bookzo-bootstrap .result-item.card.clickable,
.bookzo.bookzo-bootstrap .result-item.card.clickable:hover {
    transform: none;
    background: #e7edf0;
}

.bookzo.bookzo-bootstrap .result-item .card-buttons-and-selections {
    margin-top: 20px;
}

.bookzo.bookzo-bootstrap .result-item .card-title-name .location {
    display: none;
}

.bookzo.bookzo-bootstrap .result-item .card-icons {
    margin: 15px 0 20px;
}

.bookzo.bookzo-bootstrap .result-item .object-combined-icons-wrapper {
    justify-content: flex-end;
    align-items: flex-end;
    gap: 12px;
}

.bookzo.bookzo-bootstrap .icon-wrapper .bookzo-icon-wrapper {
    display: inline-block;
    height: 50px;
    width: 50px;
    line-height: 50px;
    background: #e7edf0;
    color: #000;
    border-radius: 50%;
    text-align: center;
    margin-right: 10px;
}

.bookzo.bookzo-bootstrap .result-item .icon-wrapper .bookzo-icon-wrapper {
    background: #FFF;
}

.bookzo.bookzo-bootstrap .result-item .card-prices {
    text-align: center !important;
    margin-bottom: 30px !important;
}

.bookzo.bookzo-bootstrap .result-item .card-prices .total-wrapper {
    font-size: 1.5rem !important;
    margin-top: 15px;
}

/*
* detail page 
*/
.bookzopage .bookzo-onepage-main {
    margin-bottom: 80px;
}

.bookzo-onepage bookzo-object-icons .icons > div {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 12px;
}


.bookzo-calendar bookzo-arrival-departure-picker .datepicker-wrapper {
    border: none;
    border-radius: 0;
}

.bookzo-onepage .bookzo-calendar bookzo-object-calendar .calendar-persons .persons-wrapper,
.bookzo-onepage .bookzo-calendar bookzo-object-calendar .object-calendar-prices {
    display: none !important;
}

/* gallery */
.bookzo-onepage .images-wrapper .main-image {
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
}

.bookzo-onepage .images-wrapper .smaller-images {
    margin-top: 20px;
    display: flex;
    height: auto !important;
    gap: 8px;
    overflow: hidden;
    align-items: flex-start;
}

.bookzo-onepage .images-wrapper .smaller-images .item {
    flex: 0 0 calc((100% - 24px) / 4);
    width: calc((100% - 24px) / 4);
    max-width: none;
    min-width: 0;
    height: auto !important;
    align-self: flex-start;
    aspect-ratio: 3 / 2;
    overflow: hidden;
}

.bookzo-onepage .images-wrapper .smaller-images .item img.image {
    display: block;
    width: 100%;
    height: 100% !important;
    object-fit: cover;
}

.bookzo-onepage .images-wrapper .smaller-images .item:nth-child(n+5) {
    display: none;
}

.bookzo-onepage .images-wrapper {
    padding-bottom: 40px;
    position: relative;
}

.bookzo-onepage .images-wrapper .btn {
    position: absolute;
    bottom: 0;
    right: 0;
    height: 30px;
    line-height: 30px;
    font-size: 14px !important;
    padding: 0 10px;
}

/* features */
@media (min-width: 1000px) {
    .bookzo-onepage .feature-groups .feature-group {
        min-width: 50% !important;
    }
}

/* infoblock */
.bookzo-onepage .bookzo-infoblock {
    padding: 40px;;
}

.bookzo-onepage .bookzo-infoblock .bookzo-infoblock-content + h4 {
    margin-top: 40px;
}

/* calendar */
.bookzo-calendar bookzo-object-part,
.bookzo-calendar .bookzo.bookzo-bootstrap,
.bookzo-calendar .bookzo-object-part,
.bookzo-calendar bookzo-object-calendar,
.bookzo-calendar .calendar-persons,
.bookzo-calendar .calendar-persons>div,
.bookzo-calendar bookzo-arrival-departure-picker,
.bookzo-calendar .datepicker-wrapper,
.bookzo-calendar bookzo-arrival-departure-dates-picker,
.bookzo-calendar bookzo-arrival-departure-dates-picker>div,
.bookzo-calendar ngb-datepicker {
    display: block;
    width: 100%;
    flex: 1 1 100%;
}

/* Header row (month names + nav arrows) */
.bookzo-calendar .ngb-dp-header,
.bookzo-calendar .ngb-dp-months {
    width: 100%;
}

.bookzo-calendar ngb-datepicker-navigation {
    flex: 1 1 auto;
    width: 100%;
}

/* Each month block shares the width equally */
.bookzo-calendar .ngb-dp-month {
    flex: 1 1 0;
    width: auto;
}

/* Day grid: each week row fills 100%, each day/weekday cell shares it evenly */
.bookzo-calendar .ngb-dp-week {
    width: 100%;
}

.bookzo-calendar .ngb-dp-day,
.bookzo-calendar .ngb-dp-weekday {
    flex: 1 1 0;
    width: auto;
}

.bookzo-calendar .ngb-dp-header {
    margin-bottom: 20px;
    position: relative;
}

.bookzo-calendar .ngb-dp-header .ngb-dp-arrow-prev,
.bookzo-calendar .ngb-dp-header .ngb-dp-arrow-next {
    position: absolute;
    left: -80px;
    right: auto;
    top: 14px;
}

.bookzo-calendar .ngb-dp-header .ngb-dp-arrow-next {
    left: auto;
    right: -80px;
}

.bookzo-calendar .ngb-dp-header .ngb-dp-arrow-prev .btn,
.bookzo-calendar .ngb-dp-header .ngb-dp-arrow-next .btn {
    height: 60px;
    width: 60px;
    line-height: 60px;
    border-radius: 50%;
    font-size: 36px;
    text-align: center;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
}

@media (max-width: 1270px) {
    .bookzo-calendar .ngb-dp-header .ngb-dp-arrow-prev {
        left: -10px;
    }
    .bookzo-calendar .ngb-dp-header .ngb-dp-arrow-next {
        right: -10px;
    }
    .bookzo-calendar .ngb-dp-header .ngb-dp-arrow-prev .btn,
.bookzo-calendar .ngb-dp-header .ngb-dp-arrow-next .btn {
    background: transparent;
}
}

.bookzo-calendar .ngb-dp-header ngb-datepicker-navigation {
    display: block;
}

.bookzo-calendar .ngb-dp-header ngb-datepicker-navigation:after {
    content: "";
    display: table;
    clear: both;
}

.bookzo-calendar .ngb-dp-header .ngb-dp-arrow.ng-star-inserted {
    display: none;
}

.bookzo-calendar .ngb-dp-header .ngb-dp-month-name {
    float: left;
    width: 50%;
    height: 60px;
    line-height: 60px;
    font-size: 26px;
    text-align: center;
    background: #ffd200;
    color: #2F2F2F;
    text-transform: capitalize;
}

@media (max-width: 1000px) {
    .bookzo-calendar .ngb-dp-header .ngb-dp-month-name {
        width: 100%;
    }
}

.bookzo-calendar .ngb-dp-day,
.bookzo-calendar .ngb-dp-weekday {
    text-align: center;
}

/*** mew ****/

/* Kill the blanket green base layer */
.bookzo-calendar .occupancy-layer {
    background: transparent;
}

.bookzo-calendar bookzo-arrival-departure-picker ngb-datepicker .ngb-dp-weekdays {
    border-bottom: 0;
    margin-bottom: 10px;
}

.bookzo-calendar bookzo-arrival-departure-picker ngb-datepicker .ngb-dp-weekday {
    color: #666;
}

.bookzo-calendar bookzo-arrival-departure-picker ngb-datepicker .ngb-dp-day.disabled .custom-day:not(.first-date):not(.second-date):not(.range) .custom-day-circle {
    color: #666;
    text-decoration: none;
}

.bookzo-calendar bookzo-arrival-departure-picker ngb-datepicker .custom-day {
    position: relative;
}

.bookzo-calendar bookzo-arrival-departure-picker ngb-datepicker .custom-day-circle,
.bookzo-calendar bookzo-arrival-departure-picker ngb-datepicker .custom-day:hover .custom-day-circle,
.bookzo-calendar bookzo-arrival-departure-picker ngb-datepicker .ngb-dp-day .custom-day .custom-day-circle.selected {
    background: transparent;
    position: relative;
    border-radius: 0;
    text-decoration: none;
    color: inherit;
}


.bookzo-calendar bookzo-arrival-departure-picker ngb-datepicker .custom-day {
    width: 100%;
}

.bookzo-calendar bookzo-arrival-departure-picker ngb-datepicker .occupancy-layer.free {
    background: #d0dbe2;
}

.bookzo-calendar bookzo-arrival-departure-picker ngb-datepicker .occupancy-layer.free.disabled>*,
.bookzo-calendar bookzo-arrival-departure-picker ngb-datepicker .occupancy-layer.free.disabled {
    color: #666666;
}


/* Plain available days (bookable, not yet selected) -> gold */
.bookzo-calendar bookzo-arrival-departure-picker ngb-datepicker .ngb-dp-day:not(.disabled) .occupancy-layer.free {
    background: #008ad1;
    color: #FFF;
}

/* Booked/blocked days that fall inside a highlighted range -> light blue-grey */
.bookzo-calendar bookzo-arrival-departure-picker ngb-datepicker .custom-day.range,
.bookzo-calendar bookzo-arrival-departure-picker ngb-datepicker .ngb-dp-day .custom-day .custom-day-circle.selected,
.bookzo-calendar bookzo-arrival-departure-picker ngb-datepicker .ngb-dp-day:not(.disabled) .occupancy-layer.free .custom-day-circle:hover {
    background: #86B3CF;
    color: #FFF !important;
    width: 100%;
}

/* Fully unavailable days outside any range -> stay on the page background */
.bookzo-calendar .custom-day.disabled:not(.range) {
    background: transparent;
}

.bookzo-calendar bookzo-arrival-departure-picker .datepicker-wrapper .datepicker-buttons {
    margin: 20px 0 !important;
}

.bookzo-calendar bookzo-arrival-departure-picker .datepicker-wrapper .datepicker-buttons .datepicker-buttons-secondary {
    margin-right: 0 !important;
    text-align: right;
}

.bookzo-calendar bookzo-arrival-departure-picker .datepicker-wrapper .datepicker-buttons .datepicker-buttons-secondary .btn {
    height: 30px;
    line-height: 30px;
    font-size: 14px !important;
    padding: 0 10px;
    text-decoration: none;
}

/* legenda */
.bookzo-onepage .bookzo-legenda {
    margin: 20px 0;
    display: block;
    list-style: none;
    padding: 0;
}

.bookzo-onepage .bookzo-legenda li {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-right: 10px;
    line-height: 20px;
}

.bookzo-onepage .bookzo-legenda li span {
    display: inline-block;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #008ad1;
    margin-right: 0;
}

.bookzo-onepage .bookzo-legenda li span.bookzo-legenda-item-available {
    background: #d0dbe2;
}
.bookzo-onepage .bookzo-legenda li span.bookzo-legenda-item-reserved {
    background: #e1a4a4;
}
.bookzo-onepage .bookzo-legenda li span.bookzo-legenda-item-swapday {
    background: #008ad1;
}



/* Direct booking */
.bookzo-onepage .bookzo-directbook .muy-grid-title {
    margin-bottom: 5px;
}

.bookzo-onepage .bookzo-directbook bookzo-object-calendar bookzo-arrival-departure-picker {
    display: none !important;
}

.bookzo-onepage .bookzo-directbook bookzo-object-calendar .calendar-persons {
    display: block;
}

.bookzo-onepage .bookzo-directbook bookzo-object-calendar .calendar-persons .persons-wrapper {
    width: 100%;
}

.bookzo-onepage .bookzo-directbook .card {
    background: transparent !important;
    border: none !important;
}

.bookzo-onepage .bookzo-directbook .card .card-body {
    padding: 0;
}

.bookzo-onepage .bookzo-directbook .card bookzo-persons .persons {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.bookzo-onepage .bookzo-directbook .card bookzo-persons .persons>* {
    flex: 0 0 calc((100% - 20px) / 2);
    max-width: calc((100% - 20px) / 2);
    box-sizing: border-box;
}

.bookzo-onepage .bookzo-directbook .card bookzo-persons .persons .persons-item .number-control .label {
    text-align: left;
}

.bookzo-onepage .bookzo-directbook .card bookzo-persons .persons .numbers * {
    color: #000 !important;
}

.bookzo-onepage .bookzo-directbook .card bookzo-persons .persons .numbers *:hover {
    color: #FFF !important;
}

.bookzo-onepage .bookzo-directbook .card bookzo-persons .persons .numbers input {
    min-width: 60px;
    text-align: center;
    margin: 0 20px;
}

.bookzo-onepage .bookzo-directbook .object-calendar-prices {
    margin-top: 40px;
    text-align: center;
}

.bookzo-onepage .bookzo-directbook .object-calendar-prices>* {
    margin-bottom: 40px;
    font-size: 1.2rem;
}

.bookzo-onepage .bookzo-directbook #bookButtonObjectCalendar {
    background: #263289;
    color: #FFF;
}

.bookzo-onepage .bookzo-directbook #bookButtonObjectCalendar:hover {
    background: #454CA3;
    color: #FFF;
}

/**
 * Booking page
 */
.jv-bookpage .jv-book-title {
    margin-bottom: 50px;
    text-align: left;
}

.jvbook-infoblock .book-accommodation-info {
    border: none !important;
    background: transparent !important;
}

.jvbook-infoblock .book-accommodation-info > .card-body {
    padding: 0 !important;
    background: transparent !important;
}

.jvbook-infoblock .internal-name,
.jvbook-infoblock .book-add-accommodation,
.jvbook-infoblock .jv-thumb .card-title-wrapper,
.jvbook-infoblock .jv-thumb .object-data,
.jvbook-infoblock .jv-info .object-info {
    display: none !important;
}

.jvbook-infoblock .jv-thumb .book-accommodation-info  .object-info {
    display: block !important;
    margin: 0;
    flex-wrap: nowrap;
}

.jvbook-infoblock .jv-thumb .book-accommodation-info  .object-info  .object-image,
.jvbook-infoblock .jv-thumb .book-accommodation-info  .object-info  .object-image + .p-2,
.jvbook-infoblock .jv-info .card-title {
    margin: 0 !important;
    padding: 0 !important;
}

.jvbook-infoblock .jv-thumb .book-accommodation-info  .object-info  .carousel-wrapper {
    width: 100%;
    max-width: 100%;
    height: auto !important;
    aspect-ratio: 3 / 2;
}

.jvbook-infoblock .jv-info {
    padding: 50px 50px 30px 50px;
    font-size: 22px;
    line-height: 28px;
}

.jvbook-infoblock .jv-info h4 {
    font-size: 26px !important;
    line-height: 32px;
    margin-bottom: 15px;
    padding: 0;
    text-transform: uppercase;
}

.jvbook-infoblock .jv-info .stay-info-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.jvbook-infoblock .jv-info .stay-info-list .number-of-nights,
.jvbook-infoblock .jv-info .jv-priceblock {
    margin-top: 30px;
    padding-top: 30px;
    border-top: 2px solid #979797;
}

.jvbook-infoblock .jv-info .jv-priceblock .end-totals,
.jv-totalprice .sub-totals {
    display: none !important;
}

.jvbook-infoblock .book-prices-totals .bookzo-currency {
    font-size: 18px;
}

.jv-totalprice {
    background: #008ad1;
    color: #FFF;
    padding: 40px 50px;
}

.jv-totalprice .total-description {
    display: none;
}

.jv-totalprice {
    background: #008ad1;
    color: #fff;
    padding: 30px 50px;
}

.jv-totalprice .total-description {
    display: none;
}

.jv-totalprice .total-price.text-right {
    width: 100%;
    text-align: left !important;
}

.jv-totalprice .total-nowrap {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    white-space: nowrap;
}

.jv-totalprice .total-nowrap > .price {
    float: none !important;
    display: inline-flex !important;
    width: auto !important;
    white-space: nowrap;
    margin-left: auto;
}

.jv-book-info .jv-priceinfo {
    margin-top: 15px;
    padding: 15px;
    color: #666 !important;
}

.jv-book-info .jv-priceinfo .total-line,
.jv-book-info .jv-priceinfo .show-price-details-button-with-dates-wrapper {
    display: none !important;
}

/** booking form */
.jv-book-form .reservation-form .form-group .form-row > div {
    margin-top: 10px !important;
}

.jv-book-form .reservation-form label:not(.form-check-label) {
    font-weight: bold;
}

.jv-book-form h5 {
    margin-top: 50px;
    margin-bottom: 20px;
    border-bottom: 1px solid #979797;
    padding-bottom: 10px;
}

.jv-book-form h5.jv-personal-info-title {
    margin-top: 0;
}

.jv-book-form .form-group-coupon-code-button .btn,
.jv-book-form .optional-cost-selection .btn {
    height: 30px;
    line-height: 30px;
    font-size: 14px !important;
    padding: 0 10px;
}

.jv-book-form .bookzo-bootstrap .invalid-feedback, 
.jv-book-form .bookzo-bootstrap .invalid-feedback div {
    font-size: 14px;
}

.jv-book-form .terms-and-conditions span,
.jv-book-form .terms-and-conditions span + .btn-link {
    display: none;
}

.jv-book-form .form-group-book-button {
    text-align: right;
}

.jv-success-page .jv-priceinfo {
    padding: 0;
}

.jv-success-page .jv-priceinfo .price-details-wrapper,
.jv-success-page .jv-priceinfo .show-price-details-button-with-dates-wrapper,
.jv-success-page .jv-priceinfo h6 {
    display: none;
}

/** Result overview */
.mod-bookzoobjects .group-name,
.mod-bookzoobjects .card-bottom {
    display: none !important;
}

.mod-bookzoobjects .card-description p {
    margin-bottom: 0 !important;
}

.mod-bookzoobjects .card-description p + p {
    margin-top: 15px !important;
}