
/* =========================================================
   360 AMADEUS — BOOKING / CALENDARIO
   CSS optimizado y consolidado
   ========================================================= */
/* 360 AMADEUS - BOOKING STICKY */

.am360-booking-sticky {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 9999 !important;
    width: 100% !important;
}

/* Evita que contenedores del template bloqueen sticky */
.am360-booking-sticky,
.am360-booking-sticky > * {
    box-sizing: border-box;
}
.am360-booking-sticky {
    position: sticky !important;
    top: 100px !important;
    z-index: 9999 !important;
}
/* =========================================================
   BOOKING BAR
   ========================================================= */

.am360-booking-bar {
    display: flex;
    align-items: flex-end;
    gap: 18px;
    flex-wrap: nowrap;
    width: 100%;
    padding: 10px;
}

.am360-item {
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}

.am360-item label {
font-size: 11px;
color: #666;
    padding-left: 10px;
}

/* Hotel */

.am360-item select {
    width: 170px;
    height: 52px;
    padding: 0 16px;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #fff;
    color: #222;
    font-family: inherit;
    font-size: 16px;
    font-weight: 400;
    box-sizing: border-box;
}

.am360-item select option {
    font-family: inherit;
    font-size: 16px;
    font-weight: 400;
    color: #222;
}

/* Fechas */

.am360-date {
    width: 130px;
    height: 52px;
    display: flex;
    align-items: center;
    padding: 0 18px;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #fff;
    box-sizing: border-box;
    cursor: pointer;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.am360-date:hover {
    border-color: #d99b16;
}

/* Contadores */

.am360-counter {
    width: 130px;
    height: 52px;
    display: grid;
    grid-template-columns: 42px 1fr 42px;
    align-items: center;
    overflow: hidden;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #fff;
    box-sizing: border-box;
}

.am360-counter button {
    width: 42px !important;
    height: 52px !important;
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #555 !important;
    font-size: 22px !important;
    line-height: 52px !important;
    text-align: center;
    cursor: pointer;
    visibility: visible !important;
    opacity: 1 !important;
}

.am360-counter button:hover {
    background: #f5f5f5 !important;
}

.am360-counter span {
    display: block;
    width: 100%;
    color: #333;
    font-size: 16px;
    text-align: center;
}

/* Botón reservar */

.am360-button-item {
    justify-content: flex-end;
}

.am360-submit {
    height: 52px;
    min-width: 150px;
    padding: 0 28px;
    border: 0;
    border-radius: 10px;
    background: #22313b;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .5px;
    cursor: pointer;
    transition: background .2s ease, transform .15s ease;
}

.am360-submit:hover {
    background: #18252d;
}

.am360-submit:active {
    transform: scale(.98);
}

/* =========================================================
   CALENDARIO — MODAL
   ========================================================= */

.am360-calendar-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .45);
}

.am360-calendar-window {
    width: 380px;
    max-width: calc(100vw - 20px);
    padding: 0;
    overflow: hidden;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .30);
    box-sizing: border-box;
}

/* Cabecera */

.am360-calendar-header {
    height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 14px 0 24px;
    background: #000;
    color: #fff;
    box-sizing: border-box;
}

.am360-calendar-header h3 {
    margin: 0 !important;
    color: #fff !important;
    font-size: 20px !important;
    font-weight: 500 !important;
    line-height: 1;
}

/* X */

#am360-calendar-close {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    min-height: 46px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0;
    margin: 0 !important;
    padding: 0 !important;
    border: 2px solid #fff !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: #fff !important;
    font-size: 28px !important;
    font-weight: 300 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    transition: background .2s ease, transform .2s ease;
}

#am360-calendar-close:hover {
    background: rgba(255,255,255,.12) !important;
    transform: rotate(90deg);
}

/* Navegación */

.am360-calendar-nav {
    display: grid !important;
    grid-template-columns: 54px 1fr 54px !important;
    align-items: center !important;
    gap: 16px !important;
    padding: 20px 24px 14px !important;
}

.am360-calendar-nav button {
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    min-height: 54px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #000 !important;
    color: #fff !important;
    font-size: 20px !important;
    line-height: 1 !important;
    cursor: pointer !important;
    box-shadow: 0 4px 10px rgba(0,0,0,.18);
    transition: background .2s ease, transform .2s ease;
}

.am360-calendar-nav button:hover {
    background: #222 !important;
    transform: scale(1.06);
}

.am360-calendar-nav button:active {
    transform: scale(.96);
}

#am360-month-title {
    margin: 0;
    color: #555 !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    line-height: 1.2;
    text-align: center !important;
    white-space: nowrap;
}

/* Días de la semana */

.am360-weekdays {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    padding: 0 24px !important;
    margin: 0 0 6px !important;
    text-align: center;
}

.am360-weekdays span {
    color: #777 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-align: center !important;
}

/* Grid de días */

#am360-calendar-days {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    gap: 3px !important;
    padding: 0 24px 22px !important;
}

/* Día */

.am360-calendar-day {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    justify-self: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: #555 !important;
    font-size: 14px !important;
    line-height: 42px !important;
    text-align: center !important;
    cursor: pointer;
    box-sizing: border-box;
    transition: background .15s ease, transform .15s ease;
}

.am360-calendar-day:hover:not(:disabled) {
    background: #f2f2f2 !important;
    transform: scale(1.04);
}

/* Días deshabilitados */

.am360-calendar-day.am360-disabled,
.am360-calendar-day.am360-other-month {
    background: transparent !important;
    color: #ddd !important;
    opacity: 1;
    cursor: default;
    transform: none !important;
}

/* Hoy */

.am360-calendar-day.am360-today-day {
    color: #555 !important;
    font-weight: 700 !important;
}

/* Selección */

.am360-calendar-day.am360-selected {
    width: 42px !important;
    height: 42px !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #f0a000 !important;
    color: #fff !important;
    font-weight: 600 !important;
    line-height: 42px !important;
    box-shadow: 0 3px 8px rgba(240,160,0,.28);
}

/* Rango */

.am360-calendar-day.am360-in-range {
    background: #fff0cf !important;
    color: #555 !important;
    border-radius: 0 !important;
}

/* Footer antiguo: oculto */

.am360-calendar-footer {
    display: none !important;
}

#am360-today,
#am360-cancel,
#am360-apply {
    display: none !important;
}

/* =========================================================
   TABLET / MÓVIL
   ========================================================= */

@media (max-width: 991px) {

    .am360-booking-bar {
        flex-wrap: wrap;
    }
}


/* =========================================================
   MÓVIL
   Hotel + fechas + reservar visibles.
   Habitaciones + adultos + niños ocultos.
   ========================================================= */

@media (max-width: 600px) {

    .am360-booking-bar {
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: center;
        gap: 10px;
        width: 100%;
        box-sizing: border-box;
        padding: 14px;
        margin: 0 auto;
    }

    /* Oculta:
       Habitaciones
       Adultos
       Niños */
    .am360-item:has(.am360-counter) {
        display: none !important;
    }

    /* CENTRADO TOTAL DE LOS CAMPOS */
    .am360-item,
    .am360-item select,
    .am360-date,
    .am360-submit {
        width: 100% !important;
        max-width: 360px !important;
        box-sizing: border-box;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .am360-item select,
    .am360-date {
        height: 48px;
    }

    .am360-submit {
        min-width: 0;
        height: 48px;
    }


    /* =====================================================
       CALENDARIO MÓVIL
       ===================================================== */

    .am360-calendar-window {
        width: 380px !important;
        max-width: calc(100vw - 20px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
        border-radius: 20px !important;
    }

    .am360-calendar-header {
        height: 72px;
        padding-left: 22px;
        padding-right: 12px;
    }

    #am360-calendar-close {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
        font-size: 27px !important;
    }

    .am360-calendar-nav {
        grid-template-columns: 50px 1fr 50px !important;
        gap: 12px !important;
        padding: 18px 20px 12px !important;
    }

    .am360-calendar-nav button {
        width: 50px !important;
        height: 50px !important;
        min-width: 50px !important;
        min-height: 50px !important;
    }

    #am360-calendar-days {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}


/* =========================================================
   AJUSTE FINAL — SELECTOR + BOTONES DEL CALENDARIO
   ========================================================= */

/* SELECTOR HOTEL
   El <select> nativo estaba heredando estilos del tema.
   Forzamos la misma tipografía del booking y eliminamos
   la apariencia nativa para que el campo cerrado sea uniforme.
*/

.am360-booking-bar .am360-item select#am360_hotel {
    width: 180px !important;
    height: 52px !important;
    margin: 0 !important;
    padding: 0 42px 0 16px !important;

    font-family: inherit !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 52px !important;
    color: #333 !important;

    background-color: #fff !important;
    border: 1px solid #ddd !important;
    border-radius: 10px !important;

    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;

    cursor: pointer !important;
}

/* Flecha del selector */
.am360-booking-bar .am360-item select#am360_hotel {
    background-image:
        linear-gradient(45deg, transparent 50%, #555 50%),
        linear-gradient(135deg, #555 50%, transparent 50%) !important;
    background-position:
        calc(100% - 20px) 22px,
        calc(100% - 14px) 22px !important;
    background-size: 6px 6px, 6px 6px !important;
    background-repeat: no-repeat !important;
}

/* Opciones */
.am360-booking-bar .am360-item select#am360_hotel option {
    font-family: inherit !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    color: #333 !important;
    background: #fff !important;
}


/* =========================================================
   X DEL CALENDARIO
   ========================================================= */

.am360-calendar-window #am360-calendar-close {
    position: relative !important;

    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;

    margin-left: auto !important;
    padding: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    border: 2px solid #fff !important;
    border-radius: 50% !important;

    background: transparent !important;
    color: #fff !important;

    font-family: Arial, sans-serif !important;
    font-size: 25px !important;
    font-weight: 300 !important;
    line-height: 1 !important;

    appearance: none !important;
    -webkit-appearance: none !important;

    box-shadow: none !important;
    outline: none !important;

    cursor: pointer !important;
}

.am360-calendar-window #am360-calendar-close:hover {
    background: rgba(255,255,255,.14) !important;
    border-color: #fff !important;
    transform: none !important;
}


/* =========================================================
   BOTONES MES ANTERIOR / SIGUIENTE
   ========================================================= */

.am360-calendar-window .am360-calendar-nav #am360-prev-month,
.am360-calendar-window .am360-calendar-nav #am360-next-month {
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    min-height: 50px !important;

    margin: 0 !important;
    padding: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    border: 0 !important;
    border-radius: 50% !important;

    background: #000 !important;
    color: #fff !important;

    font-family: Arial, sans-serif !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    line-height: 1 !important;

    appearance: none !important;
    -webkit-appearance: none !important;

    box-shadow: none !important;
    outline: none !important;

    cursor: pointer !important;
}

.am360-calendar-window .am360-calendar-nav #am360-prev-month:hover,
.am360-calendar-window .am360-calendar-nav #am360-next-month:hover {
    background: #222 !important;
    transform: scale(1.04) !important;
}

.am360-calendar-window .am360-calendar-nav #am360-prev-month:active,
.am360-calendar-window .am360-calendar-nav #am360-next-month:active {
    transform: scale(.96) !important;
}


/* =========================================================
   MÓVIL — SELECTOR
   ========================================================= */

@media (max-width: 600px) {

    .am360-booking-bar .am360-item select#am360_hotel {
        width: 100% !important;
        height: 48px !important;
        line-height: 48px !important;
    }

    .am360-calendar-window .am360-calendar-nav #am360-prev-month,
    .am360-calendar-window .am360-calendar-nav #am360-next-month {
        width: 50px !important;
        height: 50px !important;
        min-width: 50px !important;
        min-height: 50px !important;
    }

    .am360-calendar-window #am360-calendar-close {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
    }
}


/* =========================================================
   360 AMADEUS — CALENDARIO FINAL AISLADO
   Sección aislada para evitar estilos de Elementor/tema.
   ========================================================= */

#am360-calendar-modal.am360-calendar-modal .am360-calendar-window {
    width: 380px !important;
    max-width: calc(100vw - 20px) !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    background: #fff !important;
    border: 0 !important;
    border-radius: 20px !important;
    box-shadow: 0 20px 60px rgba(0,0,0,.30) !important;
    box-sizing: border-box !important;
}

#am360-calendar-modal.am360-calendar-modal .am360-calendar-header {
    height: 76px !important;
    min-height: 76px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0 12px 0 24px !important;
    margin: 0 !important;
    background: #000 !important;
    border: 0 !important;
    color: #fff !important;
    box-sizing: border-box !important;
}

#am360-calendar-modal.am360-calendar-modal .am360-calendar-header h3,
#am360-calendar-modal.am360-calendar-modal #am360-calendar-title {
    margin: 0 !important;
    padding: 0 !important;
    color: #fff !important;
    background: transparent !important;
    border: 0 !important;
    font-family: inherit !important;
    font-size: 20px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
}

#am360-calendar-modal.am360-calendar-modal #am360-calendar-close {
    all: unset !important;

    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    flex: 0 0 44px !important;

    margin: 0 0 0 auto !important;
    padding: 0 !important;

    box-sizing: border-box !important;

    border: 2px solid #fff !important;
    border-radius: 50% !important;

    background: transparent !important;
    color: #fff !important;

    font-family: Arial, sans-serif !important;
    font-size: 25px !important;
    font-weight: 300 !important;
    line-height: 1 !important;

    cursor: pointer !important;
}

#am360-calendar-modal.am360-calendar-modal #am360-calendar-close:hover {
    background: rgba(255,255,255,.12) !important;
}

#am360-calendar-modal.am360-calendar-modal .am360-calendar-nav {
    display: grid !important;
    grid-template-columns: 50px 1fr 50px !important;
    align-items: center !important;
    justify-items: center !important;
    gap: 16px !important;

    width: 100% !important;
    height: auto !important;

    padding: 20px 24px 14px !important;
    margin: 0 !important;

    background: #fff !important;
    border: 0 !important;
    box-sizing: border-box !important;
}

#am360-calendar-modal.am360-calendar-modal .am360-calendar-nav #am360-prev-month,
#am360-calendar-modal.am360-calendar-modal .am360-calendar-nav #am360-next-month {
    all: unset !important;

    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    min-height: 50px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box !important;

    border: 0 !important;
    border-radius: 50% !important;

    background: #000 !important;
    color: #fff !important;

    font-family: Arial, sans-serif !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    text-align: center !important;

    cursor: pointer !important;
}

#am360-calendar-modal.am360-calendar-modal .am360-calendar-nav #am360-prev-month:hover,
#am360-calendar-modal.am360-calendar-modal .am360-calendar-nav #am360-next-month:hover {
    background: #222 !important;
}

#am360-calendar-modal.am360-calendar-modal #am360-month-title {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;

    color: #555 !important;
    background: transparent !important;

    font-family: inherit !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    text-align: center !important;
}

#am360-calendar-modal.am360-calendar-modal .am360-weekdays {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;

    width: 100% !important;
    padding: 0 24px !important;
    margin: 0 0 6px !important;

    background: #fff !important;
    box-sizing: border-box !important;
}

#am360-calendar-modal.am360-calendar-modal .am360-weekdays span {
    display: block !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;

    color: #777 !important;
    background: transparent !important;

    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 24px !important;
    text-align: center !important;
}

#am360-calendar-modal.am360-calendar-modal #am360-calendar-days {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    gap: 3px !important;

    width: 100% !important;
    padding: 0 24px 22px !important;
    margin: 0 !important;

    background: #fff !important;
    box-sizing: border-box !important;
}

#am360-calendar-modal.am360-calendar-modal .am360-calendar-day {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;

    justify-self: center !important;

    display: block !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 50% !important;

    background: transparent !important;
    color: #555 !important;

    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 42px !important;
    text-align: center !important;

    cursor: pointer !important;
    box-sizing: border-box !important;
}

#am360-calendar-modal.am360-calendar-modal .am360-calendar-day.am360-selected {
    background: #f0a000 !important;
    color: #fff !important;
    font-weight: 600 !important;
    border: 0 !important;
}

#am360-calendar-modal.am360-calendar-modal .am360-calendar-day.am360-in-range {
    background: #fff0cf !important;
    color: #555 !important;
    border-radius: 0 !important;
}

#am360-calendar-modal.am360-calendar-modal .am360-calendar-day.am360-disabled,
#am360-calendar-modal.am360-calendar-modal .am360-calendar-day.am360-other-month {
    color: #ddd !important;
    background: transparent !important;
    cursor: default !important;
}

@media (max-width: 600px) {
    #am360-calendar-modal.am360-calendar-modal .am360-calendar-window {
        width: 380px !important;
        max-width: calc(100vw - 20px) !important;
    }

    #am360-calendar-modal.am360-calendar-modal .am360-calendar-header {
        height: 72px !important;
        min-height: 72px !important;
        padding-left: 22px !important;
        padding-right: 12px !important;
    }

    #am360-calendar-modal.am360-calendar-modal .am360-calendar-nav {
        grid-template-columns: 50px 1fr 50px !important;
        gap: 12px !important;
        padding: 18px 20px 12px !important;
    }

    #am360-calendar-modal.am360-calendar-modal #am360-calendar-days {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}