@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&display=swap');




* {
    margin: 0;
    padding: 0;
    scroll-behavior: smooth;
}

:root {
    --font: "Manrope", sans-serif;
    --white-color: #ffffff;
    --black-color: #000000;
    --text-color-1: #697488;
    --text-color-2: #4E5561;
    --color-border: #c7dbeb;
    --border-color1: #C7DBEB;
    --border-color2: #E4EBF1;
    --color-site-1: #FB5B32;
    --color-site-2: #0088CC;
    --background: #F5F8FA;
    --linear-gradient-1: rgba(0, 0, 0, 0);
    --linear-gradient-2: rgba(16, 121, 193, .8);
    --container-max-width:1420px;
}

body {
    font-family: var(--font);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    color: var(--black-color);
    background: var(--white-color);
}
.container {
position: relative;
  max-width: var(--container-max-width) !important;
  width: 100%;
  margin: 0px auto;

  padding: 0px 20px;
}
a{
    text-decoration: none;
}
.bg-blue,
.blue-cyancolor-bg {
    background: var(--color-site-2) !important;
}

.bg-primary-color {
    background: var(--color-site-1) !important;
}

.bg-background {
    background-color: var(--background);
    border: 1px solid var(--background);
}

.text-primarycolor {
    color: var(--color-site-1) !important;
}

.text-color-2 {
    color: var(--color-site-2) !important;
}

.border-gray {
    border: 1px solid var(--border-color1);
}

@media (min-width: 768px) {
    .lead {
        font-size: 16px;
    }
}


.hr-dashed {
    border: none;
    /* Removes Bootstrap's default solid border */
    border-top: 1px dashed #0088CC33;
    opacity: 1;
    /* Adds a 1px dashed line with a dark gray color */
    /* Adjust color and thickness as needed */
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus {
    border: 1px solid green;
    -webkit-text-fill-color: var(--black-color);
    -webkit-box-shadow: 0 0 0px 40rem #ffff inset;
    transition: background-color 5000s ease-in-out 0s;
}
.user-dashboard-full .bootstrap-select .btn.btn-default,
.TravelD input.form-control,.user-dashboard-full input.form-control {
    border: 1px solid #0088CC33 !important;
    border-radius: 4px;
    min-height: 46px;
}
.text-color-primary {
    color: var(--color-site-1)
}

.btn-color-primary {
    background: var(--color-site-1);
}

.social-media {
    left: 0;
    position: fixed;
    top: 50%;
    z-index: 999;
    list-style: none;
}

.social-media li {
    width: 32px;
    height: 32px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.social-media .facebook {
    background: #4267B2;
}

.social-media .instagram {
    background: #C536A4;
}


.social-media .twitter {
    background: #0E0019;

}

.social-media .whatsup {
    background: #4CAF50;
}


/* ----- Conteneur général ----- */
.daterangepicker {
    background: #ffffff !important;
    border: 1px solid #e5e5e5 !important;
    border-radius: 14px !important;
    padding: 18px 22px !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.04) !important;
    font-size: 15px !important;
    color: #222 !important;
}

/* ----- Header ----- */
.daterangepicker .calendar-table th.month {
    font-size: 17px;
    font-weight: 600;
    color: #222 !important;
    padding-bottom: 14px;
}

.daterangepicker .prev,
.daterangepicker .next {
    color: #444 !important;
}

/* ----- Jours de la semaine ----- */
.daterangepicker .calendar-table th {
    color: #888 !important;
    font-size: 14px !important;
    padding-bottom: 10px !important;
}

/* ----- Jours du calendrier ----- */
.daterangepicker .table-condensed {
    border-collapse: separate !important;
    border-spacing: 5px !important;
    /* Espace réel entre les cellules */
}

.daterangepicker .calendar-table td {
    border-radius: 4px !important;

    width: 30px !important;
    height: 30px !important;
    font-size: 14px !important;
    transition: 0.2s;
    color: #222 !important;
}

/* Survol (gris très léger) */
.daterangepicker td:hover:not(.disabled) {
    background: #f2f2f2 !important;
}

/* Plage sélectionnée (accent léger) */
.daterangepicker td.in-range {
    background: rgba(0, 136, 204, 0.15) !important;
    /* bleu clair */
    color: #111 !important;
}

/* Début / Fin de plage (accent bleu) */
.daterangepicker td.start-date,
.daterangepicker td.end-date {
    background: #0088CC !important;
    color: #fff !important;
    font-weight: 600 !important;
}

/* Jour actif (click simple) */
.daterangepicker td.active,
.daterangepicker td.active:hover {
    background: #0088CC !important;
    color: #fff !important;
}

/* ----- Inputs du haut ----- */
.daterangepicker_input input {
    border-radius: 8px !important;
    border: 1px solid #dcdcdc !important;
    padding: 10px 14px !important;
    font-size: 15px !important;
    color: #222 !important;
}

.daterangepicker_input input:focus {
    border-color: #0088CC !important;
    box-shadow: 0 0 0 2px rgba(0, 136, 204, 0.2) !important;
}

/* ----- Boutons ----- */
.daterangepicker .drp-buttons {
    padding-top: 16px !important;
    margin-top: 10px !important;
    border-top: 1px solid #e5e5e5;
}

/* Apply */
.daterangepicker .applyBtn {
    background: #0088CC !important;
    border-color: #0088CC !important;
    color: #fff !important;
    border-radius: 8px !important;
    padding: 10px 24px !important;
    font-size: 15px !important;
    font-weight: 600;
}

/* Cancel */
.daterangepicker .cancelBtn {
    background: transparent !important;
    padding: 10px 20px !important;
    color: #222 !important;
    font-size: 15px !important;
    border-radius: 8px !important;
}

.daterangepicker .cancelBtn:hover {
    background: rgba(0, 136, 204, 0.1) !important;
    /* léger accent au hover */
}



/* Contenu personnalisé pour l'icône et le texte */
.suggestion-content {
    display: flex;
    align-items: center;
}

.icon-hotel,
.icon-vol {
    font-size: 1.5em;
    color: var(--color-site-1);
    /* Orange de l'icône */
    margin-right: 15px;
}

.hotel-info strong {
    display: block;
    font-weight: bold;
}

.hotel-info span {
    display: block;
    font-size: 0.9em;
    color: #666;
}

.typeahead__list>li {

    border-top: solid 1px transparent !important;
}

input[type=checkbox],
input[type=radio] {
    margin: 4px;

    line-height: normal;
}



.fa-yellow{
    color:#F5C51A !important
}

.bg-pale {
    background: #0088CC21 !important;

}
.typeahead__list, .typeahead__dropdown {

    top: auto !important;
}



/* 1. Le conteneur qui fait l'effet "Squelette" */
.card-item-image {
    /* Couleur de base grise */
    background-color: #e0e0e0;

    /* Le dégradé "brillant" qui passe par-dessus */
    background-image: linear-gradient(
            90deg,
            transparent 0%,
            rgba(255, 255, 255, 0.4) 50%,
            transparent 100%
    );
    background-repeat: no-repeat;
    background-size: 200% 100%; /* Le dégradé est plus large que le conteneur */
    animation: skeleton-shimmer 1.5s infinite linear; /* L'animation qui tourne en boucle */
    position: relative;
    overflow: hidden;

    /* --- TRÈS IMPORTANT --- */
    /* Il faut donner une hauteur au bloc avant que l'image n'arrive. */
    /* Option A : Hauteur fixe minimale */
    min-height: 200px;
    /* Option B (Mieux) : Si toutes vos images ont le même ratio (ex: 16/9 ou 4/3) */
    /* aspect-ratio: 16 / 9; */
}

/* L'animation du dégradé qui se déplace de gauche à droite */
@keyframes skeleton-shimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}


/* 2. Gestion de l'image par-dessus le squelette */

/* État initial : l'image n'est pas chargée (classes lazyload ou lazyloading) */
/* On la rend transparente pour voir le squelette derrière */
.card-img.lazyload,
.card-img.lazyloading {
    opacity: 0;
    /* Petit hack pour s'assurer que le alt text ne s'affiche pas pendant le chargement */
    color: transparent;
}

/* État final : l'image est chargée (classe lazyloaded ajoutée par le script) */
/* On la fait apparaître doucement */
.card-img.lazyloaded {
    opacity: 1;
    transition: opacity 0.6s ease-in-out;
    /* Une fois chargée, l'image a un fond blanc pour couvrir définitivement le squelette qui tourne derrière */
    background-color: #fff;
}

.jdropdown {
    width: 100%;
}






/* Header du menu */
.offcanvas-header {
    padding: 20px;
    border-bottom: 1px solid #eee;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.offcanvas-body {
    padding: 20px;
    overflow-y: auto;
}

.btn-close-offcanvas {
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
}

.modal-dialog.modal-dialog-centered.modal-dialog-scrollable .modal-footer .row{
    width: 100%;
}
/* 1. Cache TOUS les backdrops si la modale n'est pas active */
/* On cible le body quand il n'a pas de modale visible à l'intérieur */
body:not(:has(.modal.show, .modal.in)) .modal-backdrop {
    display: none !important;
    opacity: 0 !important;


}

/* 2. Empêche l'accumulation visuelle : n'affiche que le dernier backdrop si plusieurs existent */
.modal-backdrop + .modal-backdrop {
    display: none !important;
}

/* 3. Débloque le scroll de force si aucune modale n'est détectée */
body:not(:has(.modal.show, .modal.in)) {
    overflow: auto !important;
    padding-right: 0 !important;
}


.paginate-vols .modal-footer .row {

    width: 100%;

}

.h-180{
    height: 200px !important;
    object-fit: cover;
    width: 100%;
}




.filtre-contentv3 .mr-2{
    margin-right: 6px !important;
}

.btn.btn-secondary{
  background-color: var(--color-site-2);
  color:#fff;
}