
/*
 * Brand tags are too high
 */
.offre .offre-visuel .brand-tag{
    bottom: 50px;
    /*
     * Brand tags must be contained in height
     */
    img {
        max-height: 40px;
        max-width: 100px;
    }
}
/**
 * Align kuoni rating picto with text
 */
.offre img.rating-kuoni{
    padding-bottom: .25rem;
}

/*
 * Select2 is used for geographical-tree and has to be customized to fit the provided UI Design
 * >>> SELECT2
 */
.select2-container {
    --cui-form-select-bg-img: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='%23323a49' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>");
    appearance: none;
    background-color: var(--cui-body-bg);
    background-image: var(--cui-form-select-bg-img),var(--cui-form-select-bg-icon,none);
    background-repeat: no-repeat;
    background-position: right .75rem center;
    background-size: 16px 12px;
    border: var(--cui-border-width) solid var(--cui-border-color);
    border-radius: var(--cui-border-radius);
    transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;

    .n1{
        font-weight: 800;
    }
    .n2{
        font-weight: 700;
        padding-left: .7rem;
    }
    .n3{
        font-weight: 600;
        padding-left: 1.4rem;
    }
    .n4{
        font-weight: 400;
        padding-left: 2.1rem;
    }
    .select2-selection:focus-visible {
        outline: 0;
    }

    .select2-results__option--highlighted[aria-selected] {
        background-color: var(--cui-dark-bg-subtle);
        color: inherit;
    }

    .select2-selection--single ,
    .select2-selection--multiple {
        border: 1px solid transparent;
    }

    .select2-selection--multiple .select2-selection__rendered,
    .select2-selection--single .select2-selection__rendered {
        padding: 0 15px;
    }

    .select2-results > .select2-results__options{
        max-height: 500px;
    }

}
/* Hide disabled options, useful for geotree facet filtering has the user type while keeping the options */
.select2-container--default .select2-results__option[aria-disabled="true"]{
    height: 0;
    overflow: hidden;
    padding: 0;
}
/* Make the clear cross bigger */
.select2-container--default .select2-selection--single .select2-selection__clear,
.select2-container--default .select2-selection--multiple .select2-selection__clear
{
    font-size: 1.8em;
}
.select2-container--default .select2-selection--multiple .select2-selection__clear
{
    line-height: 25px;
}

#ks-filter-home,#ks-filter-home-product-name{
    .select2 {
        padding: .375rem 0 1rem .75rem;
        font-size: 1rem;
        font-weight: 400;
        line-height: 1.5;
        color: var(--cui-body-color);
        background-clip: padding-box;
        border: 1px solid transparent;
        margin: -1px;
    }
    .select2-selection__placeholder{
        font-style: italic;
        color: var(--cui-secondary);
        font-weight: 400;
        font-size: .9em;
    }
    .select2-container--default.select2-container--focus .select2-selection--single ,
    .select2-container--default.select2-container--focus .select2-selection--multiple {
        border: 1px transparent solid;
    }

    .select2-container--default .select2-selection--single .select2-selection__rendered ,
    .select2-container--default .select2-selection--multiple .select2-selection__rendered {
        padding: 4px 0 0 0;
    }
    .select2-selection__arrow{
        display: none;
    }
}

#booking-travel{
    .select2-container {
        padding: 4px;
    }

    .select2-selection__arrow{
        margin-top: 4px;
    }
}

.select2-dropdown.select2-dropdown--above .home, .select2-dropdown.select2-dropdown--above.ks-filter-home-product-name {
    margin-left: -35px;

    .select2-container--default .select2-results > .select2-results__options {
        max-height: 400px;
    }

    input.select2-search__field {
        position: absolute;
        bottom: -2.7em;
        width: 11rem;
        border: none !important;
        outline: 0;
        left: 35px;
    }
}
.select2-dropdown.select2-dropdown--above.ks-filter-home-product-name,.select2-dropdown.select2-dropdown--below.ks-filter-home-product-name{
    input.select2-search__field {
        width: 100%;
    }
}

.select2-dropdown.select2-dropdown--below.home, .select2-dropdown.select2-dropdown--below.ks-filter-home-product-name {
    margin-left: -35px;

    .select2-container--default .select2-results > .select2-results__options {
        max-height: 400px;
    }

    input.select2-search__field {
        position: absolute;
        top: -2.7em;
        width: 11rem;
        border: none !important;
        outline: 0;
        left: 35px;
    }
}
#select2-ks-product-name-results{
    min-height: 35px;
}
/*
 * <<< SELECT2
 */

/*
 * Handle disabled a tags
 */
a[disabled=disabled]{
    pointer-events: none;
    color: var(--cui-disabled);
    user-select: none;
}
/*
 * Handle no results block
 * >>> NO RESULTS
 */

.section-recherche {
    .first-bloc {
        margin-bottom:60px;
        padding:60px;
        img {
            margin:0 0 0 60px;
        }
        h2 {
            font-size:24px;
            color:#1f5683;
            font-weight:700;
            margin-bottom:30px;
            strong {
                font-size:30px;
                color:black;
                font-weight:700;
            }
        }
        p,ul{
            font-size:16px;
            color:#666666;
            strong {
                color:#1f5683;
                font-weight:700;
            }
        }
        table tr td {
            padding: 5px 25px 5px 0;
            line-height:25px;
            :first-child {
                white-space: nowrap;
                width: 1%;
                padding-left:15px;
            }
        }
    }
    @media only screen and (max-width: 767px) {
        .first-bloc {
            margin-top:60px;
            margin-bottom:60px;
            padding:30px;
            img {
                margin:0 0 15px 15px;
                width:100%;
            }
            table tr td {
                :first-child {
                    white-space: normal;
                    width: auto;
                    padding-left: 0;
                }
                input {
                    max-width:100% !important;
                }
            }
        }
    }
}
/*
 * <<< NO RESULTS
 */

/*
 * >>> HOME Filter changes
 */

@keyframes l16 {
    0%   {background-position:-150% 0,-150% 0}
    66%  {background-position: 250% 0,-150% 0}
    100% {background-position: 250% 0, 250% 0}
}
#ks-filter-home {
    /* Add a loader on top when OS is searching */
    position: relative;
    .loader {
        height: 4px;
        width: 100%;
        --c: no-repeat linear-gradient(#1f5683 0 0);
        background: var(--c), var(--c), transparent;
        background-size: 60% 100%;
        animation: l16 3s infinite;
        border: 1px transparent;
        border-top-left-radius: 4px;
        border-top-right-radius: 4px;
        position: absolute;
        top: 0;
        left: 0;
    }
}
/*
 * <<< HOME Filter changes
 */

/*
 * >>> Product details
 */
/* Limit carousel height and make images cropped to size */
.diaporama-visuels{
    height: 300px;
    .slick-list{
        height: 100%;
        overflow: hidden;
        pointer-events: none;
        .slick-track {
            height: 100%;
            .slick-slide {
                height: 100%;
                div {
                    height: 100%;
                    pointer-events: initial;
                    z-index: 600;
                    a {
                        height: 100%;
                        img {
                            height: 100%;
                            object-fit: cover;
                        }
                    }
                }
            }
        }
    }
}

.norme-kuoni, .norme-locale {
    img.rating-half{
        width: 7px;
        object-fit: none;
        height: 14px;
        object-position: left;
    }
}

@media (min-width: 800px) {
    .modal-dialog {
        max-width: 800px;
        margin-right: auto;
        margin-left: auto;
    }
}

:root {
    /* Disable today highlight */
    --fc-today-bg-color: #ffffff !important;

}
/* Add special offer emphasis */
#calendar {
    /* Fix calendar days height */
    .fc-daygrid-event-harness {
        /*height: 100%;*/
    }
    .special-offer::before {
        background-image: url('../img/picto-date-offre-speciale.png');
        content: "";
        position: absolute;
        left: 5px;
        top: -20px;
        width: 15px;
        height: 15px;
        background-size: contain;
    }

    .night-offer::before {
        content: "\f495";
        font-family: "bootstrap-icons";
        position: absolute;
        right: 5px;
        top: -20px;
        font-size: 12px;
        color: #f7cb19;
    }
    .warning-price.night-offer::after {
        background-image: url('../img/picto-request.png');
        content: "";
        position: absolute;
        left: 5px;
        top: -19px;
        width: 15px;
        height: 15px;
        background-size: contain;
        background-repeat: no-repeat;
    }



    .cell-best-tarif {
        background-color: #def4ee;
    }

    .fc-day-other .best-price::after {
        display: none;
    }
    .fc-daygrid-day.fc-day-today {
        border: none;
        background-color: white;
    }
    .fc-daygrid-day:has(.fc-highlight) {

        -webkit-box-shadow:inset 0 0 0 2px #1f5683;
        -moz-box-shadow:inset 0 0 0 2px #1f5683;
        box-shadow:inset 0 0 0 2px #1f5683;

        background-color: #e5effa;
        color: #1f5683;

        .best-price::after{
            margin:0 2px 2px 2px;
            padding: 3px 0 1px 0;
            width: calc(100% - 4px);
        }
    }
    .fc-daygrid-day *{
        pointer-events: none;
    }
}

.best-price::after{
    margin:0;
    bottom: 0;
}

#months-histogram {
    [data-month]{
        cursor: pointer;
    }
    .graph-top, .graph-bottom {
        pointer-events: none;
    }
}

.bloc-tendances .active-price .graph-top,.bloc-tendances .col:hover .graph-top {
    border:2px solid #1f5683;
}

.modal-body {
    height: auto;
}

:user-invalid{
    border-color: red;
}
/* display overlay copyright and legend of img on carousel */
.productcaptioncopyrightvisuel{
    position: absolute;
    bottom: 10px;
    right: 0;
    color: white;
    background: rgba(0,0,0,0.5);
    padding: 5px 10px;
    font-size: 0.7em;
    margin-left: 10px;
}
.offertag {
    font-size: 1.5em;
    font-weight: bold;
    color: #d63384;
}
.brandTourOperator {
    font-size: .8em;
    font-style: italic;
    position: relative;
    margin-left: 30px;
}
.travelvisuel {
    height: auto;
    max-width: 100%;
}
.captioncopyrightvisuel{
    position: absolute;
    bottom: 20px;
    right: 10px;
    color: white;
    background: rgba(0,0,0,0.5);
    padding: 5px 10px;
    font-size: 0.7em;
}
#product-route-block-button-accordion {
    cursor: pointer;
    font-size: 0.6em;
    text-decoration: underline;
}
.visuelIIlegendcopyright, .extension-circuit-img{
    position: absolute;
    bottom: 10px;
    right: 10px;
    color: white;
    background: rgba(0,0,0,0.5);
    padding: 5px 10px;
    font-size: 0.7em;
}
.situationLocation {
    font-size: 0.8em;
    position: relative;
    bottom: -30px;
}
.img-listing {
    aspect-ratio: 16/9;
    cursor: pointer;
}
.listingBlock {
    font-size: 0.8em;
    margin-top: auto;
}
.bloc-stay-info-left {
    display: flex;
    flex-direction: column;
    height: auto;
    float: none;
}
/*
 * <<< Product details
 */

/*
 * >>> Booking form
 */

#booking-travel {
    .flight-time{
        font-family: ui-monospace,monospace;
    }
    .flight-arrival-plus-one{
        color:green;
        font-size: smaller;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
    }

    .itinerary-details {
        .itinerary-item{
            margin-bottom: 10px;
            padding-left: 2rem;
            .dot{
                ::content ⬤;
                position: absolute;
                margin-left: -2rem!important;
                color:var(--cui-primary);
                transform: translateY(-3px);
            }
            .circle{
                ::content ⭘;
                position: absolute;
                margin-left: -2rem!important;
                color:var(--cui-primary);
                transform: translateX(-1px) scale(110%);
                background-color: white;
            }
            .line{
                background-color:var(--cui-primary);
                position:absolute;
                left:.45rem;
                width: 3px;
                margin:0!important;
                height: calc(100% + 20px) !important;
            }
            .flight-arrival-plus-one{
                position: initial;
            }
        }
        .itinerary-item:first-of-type{
            .line {
                height: 50%;
                top: .675rem;
            }
        }
        .itinerary-item:last-of-type{
            .line {
                height: 50%;
                bottom: calc(50% + 20px);
            }
        }
        .inbound {
            .itinerary-type-logo-wrapper {
                .fa.fa-plane {
                    rotate: 180deg;
                }
            }
        }
        .airline-logo-wrapper {
            display: flex;
            justify-content: center;
        }
        .airline-logo-wrapper {
            img,object {
                object-fit: contain;
                width: 46px;
                height: 46px;
            }
        }
    }

    .offcanvas {
        --cui-offcanvas-width: 37%;
    }
    .car-item{
        /*height: 150px;*/
    }
}

/*
 * <<< Booking form
 */


/*
 * >>> Coreui
 */
/* date picker adding white space nowrap*/
.calendar-nav-prev, .calendar-nav-date, .calendar-nav-next {
    white-space: nowrap;
}

[data-flexibility-observer] .date-picker-dropdown {
    width: fit-content;
}
.flexibility-choices label{
    height: fit-content;
}
.range-slider-label{
    transform: translateX(-50%) translateY(100%) rotate(45deg);
    white-space: nowrap;
}
.range-slider-labels-container {
    min-height: 3.5em;
}
[data-coreui-toggle="date-picker"]{
    min-height: 40px;
}
button i {
    pointer-events: none;
}
/* Weird, padding 0 is needed to avoid spacing between text and arrow */
.tooltip {
    padding:0;
}
/*
 * <<< Coreui
 */

/*
 * <<< list group callout
 */
ul.list-group-callout > li.list-group-item{
    border-radius: 0.375em;
    border-inline-start-width: 4px;
    border-inline-start-color: #f3f4f7;
}
ul.list-group-callout > li.callout-success{
    border-left-color: #1b9e3e;
}
ul.list-group-callout > li.callout-light{
    border-left-color: #f3f4f7;
}
/*
 * <<< list group callout
 */

/*
 * >>> header - geo-tree dropdown
 */
.nav-geo-tree .dropdown-menu {
    display: initial;
    visibility: hidden;
}

.navbar-item-destination-display {
    display: initial!important;
    visibility: visible!important;
}

.form-check-label{
    cursor: pointer;
}
/*
 * <<< header - geo-tree dropdown
 */

/* Google map info window */
.gm-style-iw, .gm-style-iw > div {
    overflow: hidden !important;
}

.gm-style-iw-d {
    margin-top: -36px;
}

/* Booking form readonly */
.readonly-mode .itinerary-option-toggler,
.readonly-mode .div-validate-step-1,
.readonly-mode #div-filter-booking,
.readonly-mode #kb-alternate-occupancies,
.readonly-mode #kb-alternate-optional-excursion,
.readonly-mode #kb-request-car-hire,
.readonly-mode #kb-request-domestic-flight {
    display: none!important;
}

.btn-delete-excursion:hover i,
.btn-delete-car-hire:hover i,
#btn-delete-domestic-flight:hover i{
    color: #fff !important;
}

.cursor-pointer {
    cursor: pointer;
}

.modal-body-booking-details {
    height: 800px;
    margin: 10px 0 10px 0;
}

.btn-booking-edition,#btn-delete-domestic-flight {
    font-size: .5em;
    line-height: 1em;
    width: auto;
}

.btn-reset-filter-catalog {
    font-size: .7em;
    line-height:1.1em;
}

.domestic-flight-fare-item {
    .airline-logo-wrapper {
        display: flex;
        justify-content: center;
    }
    .airline-logo-wrapper {
        img,object {
            object-fit: contain;
            width: 46px;
            height: 46px;
        }
    }
}

.modal button.btn-modal-edit-minimalist {
    font-size: .7em!important;
    line-height:1.1em!important;
    height: 20px!important;
}

.icon-small {
    font-size: 0.5rem;
}

.max-w-900 {
    max-width: 900px;
}

.card-header.chosen {
    background-color: #d4edda;
}

.card-header.not-chosen {
    background-color: #E1E4E8;
    border-left: 4px solid #E1E4E8 !important;
}

.list-group-item.chosen {
    border-top: 1px solid #198754;
    border-right: 1px solid #198754;
    border-bottom: 1px solid #198754;
    border-left: 4px solid #198754 !important;
}

.border-light-custom {
    border: 1px solid #dbdfe6;
}
