.elementor-4283 .elementor-element.elementor-element-f035491{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:space-between;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--overflow:hidden;}.elementor-4283 .elementor-element.elementor-element-2cb33f8{--display:flex;--min-height:90px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--overflow:hidden;--padding-top:36px;--padding-bottom:36px;--padding-left:36px;--padding-right:36px;}.elementor-4283 .elementor-element.elementor-element-a100dd0{width:100%;max-width:100%;}.elementor-4283 .elementor-element.elementor-element-ae2875b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:36px;--padding-bottom:36px;--padding-left:36px;--padding-right:36px;}.elementor-4283 .elementor-element.elementor-element-e07594b{--display:flex;--min-height:80px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--overflow:hidden;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}#elementor-popup-modal-4283{background-color:rgba(0,0,0,.8);justify-content:center;align-items:center;pointer-events:all;}#elementor-popup-modal-4283 .dialog-message{width:760px;height:auto;}#elementor-popup-modal-4283 .dialog-close-button{display:flex;}#elementor-popup-modal-4283 .dialog-widget-content{border-radius:15px 15px 15px 15px;box-shadow:2px 8px 23px 3px rgba(0,0,0,0.2);}@media(max-width:1366px){#elementor-popup-modal-4283 .dialog-message{width:660px;}}@media(max-width:1024px){#elementor-popup-modal-4283 .dialog-message{width:92%;}}@media(max-width:767px){#elementor-popup-modal-4283 .dialog-message{width:100%;}}/* Start custom CSS *//* ==========================================================================
   VARIABLES GENERALES
   ========================================================================== */

#elementor-popup-modal-4283 {
    --altura-cabecera: 110px;
    --altura-pie: 110px;
}


/* ==========================================================================
   ESTRUCTURA GENERAL DEL POPUP
   ========================================================================== */

#elementor-popup-modal-4283 .dialog-widget-content {
    width: min(760px, calc(100vw - 24px)) !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100dvh - 24px) !important;

    margin: 0 !important;

    overflow: hidden !important;
    box-sizing: border-box !important;
}


/*
 * Anula cualquier altura fija como 80vh, 600px o 100%.
 */
#elementor-popup-modal-4283 .dialog-message {
    display: block !important;

    width: 100% !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    padding: 0 !important;
    margin: 0 !important;

    overflow: hidden !important;
    box-sizing: border-box !important;
}


/* ==========================================================================
   CONTENEDOR PRINCIPAL
   ========================================================================== */

#elementor-popup-modal-4283 .gesmovil-reserva-shell {
    display: flex !important;
    flex-direction: column !important;

    width: 100% !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100dvh - 24px) !important;

    padding: 0 !important;
    margin: 0 !important;

    overflow: hidden !important;
    box-sizing: border-box !important;

    background: #ffffff;
}


/* Si Elementor genera un contenedor interior */
#elementor-popup-modal-4283
.gesmovil-reserva-shell > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;

    width: 100% !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100dvh - 24px) !important;

    padding: 0 !important;
    margin: 0 !important;

    overflow: hidden !important;
}


/* ==========================================================================
   CABECERA FIJA
   ========================================================================== */

#elementor-popup-modal-4283 .gesmovil-reserva-header {
    --flex-grow: 0 !important;
    --flex-shrink: 0 !important;

    flex: 0 0 var(--altura-cabecera) !important;

    display: flex !important;
    align-items: stretch !important;

    width: 100% !important;

    height: var(--altura-cabecera) !important;
    min-height: var(--altura-cabecera) !important;
    max-height: var(--altura-cabecera) !important;

    padding: 30px 36px !important;
    margin: 0 !important;

    overflow: hidden !important;
    box-sizing: border-box !important;

    background: #ffffff;
    border-bottom: 1px solid #e7e7e7;
}


/* El widget HTML ocupa todo el ancho */
#elementor-popup-modal-4283
.gesmovil-reserva-header > .e-con-inner,

#elementor-popup-modal-4283
.gesmovil-reserva-header .elementor-widget-html,

#elementor-popup-modal-4283
.gesmovil-reserva-header .elementor-widget-container {
    width: 100% !important;
    max-width: none !important;

    height: 100% !important;
    min-height: 0 !important;

    margin: 0 !important;
}


/* ==========================================================================
   CONTENIDO CENTRAL
   ========================================================================== */

/*
 * La altura se adapta al contenido.
 * Solo aparece scroll cuando el contenido no cabe en la pantalla.
 */
#elementor-popup-modal-4283 .gesmovil-reserva-content {
    --flex-grow: 0 !important;
    --flex-shrink: 1 !important;

    flex: 0 1 auto !important;

    display: block !important;

    width: 100% !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: calc(
        100dvh
        - var(--altura-cabecera)
        - var(--altura-pie)
        - 24px
    ) !important;

    
    margin: 0 !important;

    overflow-x: hidden !important;
    overflow-y: auto !important;

    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;

    box-sizing: border-box !important;
    background: #ffffff;
}


/* Evitar que Elementor estire el contenido */
#elementor-popup-modal-4283
.gesmovil-reserva-content > .e-con-inner,

#elementor-popup-modal-4283
.gesmovil-reserva-content .elementor-widget-shortcode,

#elementor-popup-modal-4283
.gesmovil-reserva-content .elementor-widget-container,

#elementor-popup-modal-4283
.gesmovil-reserva-content .elementor-shortcode,

#elementor-popup-modal-4283
.gesmovil-reserva-content .ea-bootstrap {
    width: 100% !important;
    max-width: 100% !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    margin: 0 !important;
}


/* ==========================================================================
   PIE INFERIOR FIJO
   ========================================================================== */

#elementor-popup-modal-4283 .gesmovil-reserva-footer {
    --flex-grow: 0 !important;
    --flex-shrink: 0 !important;

    flex: 0 0 var(--altura-pie) !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;

    height: var(--altura-pie) !important;
    min-height: var(--altura-pie) !important;
    max-height: var(--altura-pie) !important;

    padding: 16px 36px !important;
    margin: 0 !important;

    overflow: hidden !important;
    box-sizing: border-box !important;

    background: #ffffff;
    border-top: 1px solid #e7e7e7;
}


#elementor-popup-modal-4283
.gesmovil-reserva-footer > .e-con-inner,

#elementor-popup-modal-4283
.gesmovil-reserva-footer .elementor-widget-html,

#elementor-popup-modal-4283
.gesmovil-reserva-footer .elementor-widget-container {
    width: 100% !important;
    max-width: none !important;

    height: auto !important;
    min-height: 0 !important;

    margin: 0 !important;
}


/* ==========================================================================
   CABECERA DE LA RESERVA
   ========================================================================== */

#elementor-popup-modal-4283 .gesmovil-booking-head {
    display: flex;
    flex-direction: column;
    justify-content: space-between;

    width: 100%;
    height: 100%;
}


#elementor-popup-modal-4283 .gesmovil-booking-head__top {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;
}


#elementor-popup-modal-4283 .gesmovil-booking-head__title {
    display: flex;
    flex-wrap: wrap;

    gap: 10px;
    min-width: 0;

    font-family: inherit;
    font-size: 17px;
    font-weight: 500;
    line-height: 1.3;

    color: #078c3b;
}


#elementor-popup-modal-4283
.gesmovil-booking-head__title strong {
    font-weight: 700;
}


#elementor-popup-modal-4283 .gesmovil-booking-head__price {
    flex: 0 0 auto;

    padding: 7px 13px;

    border: 1px solid #bce8cd;
    border-radius: 999px;

    background: #e9f8ef;
    color: #078c3b;

    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
}


#elementor-popup-modal-4283 .gesmovil-booking-progress {
    display: grid;
    grid-template-columns: repeat(4, 1fr);

    gap: 10px;
    width: 100%;
}


#elementor-popup-modal-4283
.gesmovil-booking-progress span {
    height: 6px;

    border-radius: 999px;
    background: #d7eee0;

    transition: background-color 0.25s ease;
}


#elementor-popup-modal-4283
.gesmovil-booking-progress span.is-active {
    background: #20c565;
}


/* ==========================================================================
   BOTONES INFERIORES
   ========================================================================== */

#elementor-popup-modal-4283 .gesmovil-booking-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;
    width: 100%;
}


#elementor-popup-modal-4283 .gesmovil-booking-back,
#elementor-popup-modal-4283 .gesmovil-booking-next {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 12px;

    min-height: 48px;
    padding: 12px 30px;

    border: 0;
    border-radius: 12px;

    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;

    cursor: pointer;

    transition:
        opacity 0.25s ease,
        background-color 0.25s ease,
        color 0.25s ease,
        transform 0.25s ease;
}


#elementor-popup-modal-4283 .gesmovil-booking-back {
    padding-left: 0;

    background: transparent;
    color: #111111;
}


#elementor-popup-modal-4283
.gesmovil-booking-back:not(:disabled):hover {
    transform: translateX(-3px);
}


#elementor-popup-modal-4283
.gesmovil-booking-back:disabled {
    opacity: 0;
    pointer-events: none;
}


#elementor-popup-modal-4283 .gesmovil-booking-next {
    min-width: 150px;

    background: #20c565;
    color: #ffffff;

    box-shadow: 0 7px 18px rgba(32, 197, 101, 0.22);
}


#elementor-popup-modal-4283
.gesmovil-booking-next:hover {
    background: #16ad56;
    transform: translateY(-2px);
}


#elementor-popup-modal-4283
.gesmovil-booking-next:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    transform: none;
}


/* ==========================================================================
   BARRA DE SCROLL
   ========================================================================== */

#elementor-popup-modal-4283
.gesmovil-reserva-content::-webkit-scrollbar {
    width: 7px;
}


#elementor-popup-modal-4283
.gesmovil-reserva-content::-webkit-scrollbar-track {
    background: transparent;
}


#elementor-popup-modal-4283
.gesmovil-reserva-content::-webkit-scrollbar-thumb {
    background: #a9a9a9;
    border-radius: 20px;
}


/* ==========================================================================
   MÓVIL
   ========================================================================== */

@media (max-width: 767px) {

    #elementor-popup-modal-4283 {
        --altura-cabecera: 82px;
        --altura-pie: 76px;
    }


    #elementor-popup-modal-4283 .dialog-widget-content {
        width: calc(100vw - 12px) !important;

        height: auto !important;
        min-height: 0 !important;
        max-height: calc(100dvh - 12px) !important;

        border-radius: 14px !important;
    }


    #elementor-popup-modal-4283 .dialog-message {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
    }


    #elementor-popup-modal-4283 .gesmovil-reserva-shell,
    #elementor-popup-modal-4283
    .gesmovil-reserva-shell > .e-con-inner {
        height: auto !important;
        min-height: 0 !important;
        max-height: calc(100dvh - 12px) !important;
    }


    #elementor-popup-modal-4283 .gesmovil-reserva-header {
        padding: 16px 20px 12px !important;
    }


    #elementor-popup-modal-4283 .gesmovil-reserva-content {
        max-height: calc(
            100dvh
            - var(--altura-cabecera)
            - var(--altura-pie)
            - 12px
        ) !important;
    }


    #elementor-popup-modal-4283 .gesmovil-reserva-footer {
        padding: 12px 18px !important;
    }


    #elementor-popup-modal-4283
    .gesmovil-booking-head__title {
        gap: 5px;
        font-size: 14px;
    }


    #elementor-popup-modal-4283
    .gesmovil-booking-head__price {
        padding: 6px 10px;
        font-size: 13px;
    }


    #elementor-popup-modal-4283
    .gesmovil-booking-actions {
        gap: 12px;
    }


    #elementor-popup-modal-4283
    .gesmovil-booking-back,

    #elementor-popup-modal-4283
    .gesmovil-booking-next {
        min-height: 46px;
        padding: 11px 18px;

        font-size: 14px;
    }


    #elementor-popup-modal-4283
    .gesmovil-booking-next {
        min-width: 135px;
    }

}/* End custom CSS */