.elementor-57 .elementor-element.elementor-element-376c77b > .elementor-container > .elementor-column > .elementor-widget-wrap {
    align-content: center;
    align-items: center;
}

.elementor-57 .elementor-element.elementor-element-376c77b > .elementor-background-overlay {
    opacity: 0.5;
    transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
}

.elementor-57 .elementor-element.elementor-element-376c77b {
    border-style: solid;
    border-width: 0px 0px 1px 0px;
    border-color: #FFFFFF40;
    transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;
    padding: 0px 15px 0px 15px;
    z-index: 10;
}

.elementor-57 .elementor-element.elementor-element-7b216dfd > .elementor-element-populated {
    border-style: solid;
    border-width: 0px 0px 0px 0px;
    border-color: #FFFFFF40;
    transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;
    padding: 5px 15px 5px 5px;
}

.elementor-57 .elementor-element.elementor-element-7b216dfd > .elementor-element-populated > .elementor-background-overlay {
    transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
}

.elementor-57 .elementor-element.elementor-element-1743c74 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child) {
    padding-bottom: calc(25px/2);
}

.elementor-57 .elementor-element.elementor-element-1743c74 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child) {
    margin-top: calc(25px/2);
}

.elementor-57 .elementor-element.elementor-element-1743c74 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item {
    margin-right: calc(25px/2);
    margin-left: calc(25px/2);
}

.elementor-57 .elementor-element.elementor-element-1743c74 .elementor-icon-list-items.elementor-inline-items {
    margin-right: calc(-25px/2);
    margin-left: calc(-25px/2);
}

body.rtl .elementor-57 .elementor-element.elementor-element-1743c74 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after {
    left: calc(-25px/2);
}

body:not(.rtl) .elementor-57 .elementor-element.elementor-element-1743c74 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after {
    right: calc(-25px/2);
}

.elementor-57 .elementor-element.elementor-element-1743c74 .elementor-icon-list-icon i {
    color: var( --e-global-color-21bfb04 );
    transition: color 0.3s;
}

.elementor-57 .elementor-element.elementor-element-1743c74 .elementor-icon-list-icon svg {
    fill: var( --e-global-color-21bfb04 );
    transition: fill 0.3s;
}

.elementor-57 .elementor-element.elementor-element-1743c74 {
    --e-icon-list-icon-size: 14px;
    --icon-vertical-offset: 0px;
}

.elementor-57 .elementor-element.elementor-element-1743c74 .elementor-icon-list-icon {
    padding-right: 5px;
}

.elementor-57 .elementor-element.elementor-element-1743c74 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-57 .elementor-element.elementor-element-1743c74 .elementor-icon-list-item > a {
    font-family: var( --e-global-typography-61eed76-font-family ), Sans-serif;
    font-size: var( --e-global-typography-61eed76-font-size );
    font-weight: var( --e-global-typography-61eed76-font-weight );
    line-height: var( --e-global-typography-61eed76-line-height );
    letter-spacing: var( --e-global-typography-61eed76-letter-spacing );
    word-spacing: var( --e-global-typography-61eed76-word-spacing );
}

.elementor-57 .elementor-element.elementor-element-1743c74 .elementor-icon-list-text {
    color: var( --e-global-color-21bfb04 );
    transition: color 0.3s;
}

.elementor-57 .elementor-element.elementor-element-195d303c > .elementor-element-populated {
    padding: 5px 18px 5px 15px;
}

.elementor-57 .elementor-element.elementor-element-775abb5b {
    --grid-template-columns: repeat(0, auto);
    --icon-size: 20px;
    --grid-column-gap: 5px;
    --grid-row-gap: 0px;
}

.elementor-57 .elementor-element.elementor-element-775abb5b .elementor-widget-container {
    text-align: right;
}

.elementor-57 .elementor-element.elementor-element-775abb5b .elementor-social-icon {
    background-color: transparent;
}

.elementor-57 .elementor-element.elementor-element-4025038e > .elementor-element-populated {
    border-style: solid;
    border-width: 0px 1px 0px 1px;
    border-color: #FFFFFF40;
    transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;
    padding: 5px 0px 5px 0px;
}

.elementor-57 .elementor-element.elementor-element-4025038e > .elementor-element-populated > .elementor-background-overlay {
    transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
}

.elementor-57 .elementor-element.elementor-element-22ca1aec .elementor-search-form {
    text-align: right;
}

.elementor-57 .elementor-element.elementor-element-22ca1aec .elementor-search-form__toggle {
    --e-search-form-toggle-size: 32px;
    --e-search-form-toggle-color: var( --e-global-color-21bfb04 );
    --e-search-form-toggle-background-color: #A1141400;
    --e-search-form-toggle-icon-size: calc(45em / 100);
}

.elementor-57 .elementor-element.elementor-element-22ca1aec.elementor-search-form--skin-full_screen .elementor-search-form__container {
    background-color: #15151569;
}

.elementor-57 .elementor-element.elementor-element-22ca1aec input[type="search"].elementor-search-form__input {
    font-family: var( --e-global-typography-text-font-family ), Sans-serif;
    font-size: var( --e-global-typography-text-font-size );
    line-height: var( --e-global-typography-text-line-height );
}

.elementor-57 .elementor-element.elementor-element-22ca1aec .elementor-search-form__input, .elementor-57 .elementor-element.elementor-element-22ca1aec .elementor-search-form__icon, .elementor-57 .elementor-element.elementor-element-22ca1aec .elementor-lightbox .dialog-lightbox-close-button, .elementor-57 .elementor-element.elementor-element-22ca1aec .elementor-lightbox .dialog-lightbox-close-button:hover, .elementor-57 .elementor-element.elementor-element-22ca1aec.elementor-search-form--skin-full_screen input[type="search"].elementor-search-form__input {
    color: var( --e-global-color-text );
    fill: var( --e-global-color-text );
}

.elementor-57 .elementor-element.elementor-element-22ca1aec:not(.elementor-search-form--skin-full_screen) .elementor-search-form__container {
    border-radius: 0px;
}

.elementor-57 .elementor-element.elementor-element-22ca1aec.elementor-search-form--skin-full_screen input[type="search"].elementor-search-form__input {
    border-radius: 0px;
}

.elementor-57 .elementor-element.elementor-element-22ca1aec .elementor-search-form__toggle:hover {
    --e-search-form-toggle-color: var( --e-global-color-accent );
}

.elementor-57 .elementor-element.elementor-element-22ca1aec > .elementor-widget-container {
    padding: 0px 6px 0px 6px;
}

.elementor-57 .elementor-element.elementor-element-22ca1aec {
    z-index: 2;
}

.elementor-57 .elementor-element.elementor-element-274ea10d > .elementor-container > .elementor-column > .elementor-widget-wrap {
    align-content: center;
    align-items: center;
}

.elementor-57 .elementor-element.elementor-element-274ea10d > .elementor-background-overlay {
    opacity: 0.5;
    transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
}

.elementor-57 .elementor-element.elementor-element-274ea10d {
    transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;
    padding: 15px 15px 15px 15px;
    z-index: 10;
}

.elementor-57 .elementor-element.elementor-element-1e2e6405 > .elementor-element-populated {
    border-style: solid;
    border-width: 0px 0px 0px 0px;
    border-color: #FFFFFF40;
    transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;
    padding: 0px 15px 0px 0px;
}

.elementor-57 .elementor-element.elementor-element-1e2e6405 > .elementor-element-populated > .elementor-background-overlay {
    transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
}

.elementor-57 .elementor-element.elementor-element-1322dc41 {
    text-align: left;
}

.elementor-57 .elementor-element.elementor-element-76421c03 > .elementor-element-populated {
    padding: 0px 15px 0px 15px;
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-menu-toggle {
    margin-left: auto;
    background-color: #FFFFFF;
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu .elementor-item {
    font-family: var( --e-global-typography-accent-font-family ), Sans-serif;
    font-size: var( --e-global-typography-accent-font-size );
    font-weight: var( --e-global-typography-accent-font-weight );
    line-height: var( --e-global-typography-accent-line-height );
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--main .elementor-item {
    color: #FFFFFF;
    fill: #FFFFFF;
    padding-left: 0px;
    padding-right: 0px;
    padding-top: 0px;
    padding-bottom: 0px;
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--main .elementor-item:hover, .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--main .elementor-item.elementor-item-active, .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--main .elementor-item.highlighted, .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--main .elementor-item:focus {
    color: var( --e-global-color-accent );
    fill: var( --e-global-color-accent );
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--main .elementor-item.elementor-item-active {
    color: var( --e-global-color-accent );
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 {
    --e-nav-menu-horizontal-menu-item-margin: calc( 40px / 2 );
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--main:not(.elementor-nav-menu--layout-horizontal) .elementor-nav-menu > li:not(:last-child) {
    margin-bottom: 40px;
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown a, .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-menu-toggle {
    color: var( --e-global-color-text );
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown a:hover, .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown a.elementor-item-active, .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown a.highlighted, .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-menu-toggle:hover {
    color: #FFFFFF;
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown a:hover, .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown a.elementor-item-active, .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown a.highlighted {
    background-color: var( --e-global-color-fc28385 );
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown a.elementor-item-active {
    color: #FFFFFF;
    background-color: var( --e-global-color-fc28385 );
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown .elementor-item, .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown .elementor-sub-item {
    font-family: var( --e-global-typography-accent-font-family ), Sans-serif;
    font-size: var( --e-global-typography-accent-font-size );
    font-weight: var( --e-global-typography-accent-font-weight );
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown a {
    padding-left: 16px;
    padding-right: 16px;
    padding-top: 12px;
    padding-bottom: 12px;
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown li:not(:last-child) {
    border-style: solid;
    border-color: #87878726;
    border-bottom-width: 1px;
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-nav-menu--dropdown, .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu__container.elementor-nav-menu--dropdown {
    margin-top: 15px !important;
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 div.elementor-menu-toggle {
    color: #16163f;
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 div.elementor-menu-toggle svg {
    fill: #16163f;
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 div.elementor-menu-toggle:hover {
    color: #FFFFFF;
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 div.elementor-menu-toggle:hover svg {
    fill: #FFFFFF;
}

.elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-menu-toggle:hover {
    background-color: var( --e-global-color-fc28385 );
}

.elementor-57 .elementor-element.elementor-element-22a15cb6 > .elementor-element-populated {
    padding: 0px 0px 0px 15px;
}

.elementor-57 .elementor-element.elementor-element-44e25580 .elementor-button {
    fill: var( --e-global-color-21bfb04 );
    color: var( --e-global-color-21bfb04 );
    padding: 10px 24px 10px 24px;
    border-bottom: 3px solid transparent !important;
    transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease !important;
}

/* Hover "verde profundo" (Opción B): fondo #7ED957 -> #5FBF3A, texto #1A1A1A
   -> 7.46:1. Antes texto y borde tomaban --e-global-color-accent, el mismo
   verde del fondo: 1.00:1, el botón se vaciaba al pasar el mouse.
   OJO: duplicado en el <style> inline de 5_1_header.php, que gana por orden
   de fuente. Si cambias una, cambia la otra. */
.elementor-57 .elementor-element.elementor-element-44e25580 .elementor-button:hover,
.elementor-57 .elementor-element.elementor-element-44e25580 .elementor-button:focus {
    background-color: #5FBF3A !important;
    color: #1A1A1A !important;
    fill: #1A1A1A !important;
    border-bottom-color: #1A1A1A !important;
}

@media(min-width: 768px) {
    .elementor-57 .elementor-element.elementor-element-7b216dfd {
        width:75%;
    }

    .elementor-57 .elementor-element.elementor-element-195d303c {
        width: 20.664%;
    }

    .elementor-57 .elementor-element.elementor-element-4025038e {
        width: 4%;
    }

    .elementor-57 .elementor-element.elementor-element-1e2e6405 {
        width: 16.5%;
    }

    .elementor-57 .elementor-element.elementor-element-76421c03 {
        width: 68.5%;
    }

    .elementor-57 .elementor-element.elementor-element-22a15cb6 {
        width: 14.664%;
    }
}

@media(max-width: 1024px) and (min-width:768px) {
    .elementor-57 .elementor-element.elementor-element-7b216dfd {
        width:100%;
    }

    .elementor-57 .elementor-element.elementor-element-195d303c {
        width: 58%;
    }

    .elementor-57 .elementor-element.elementor-element-4025038e {
        width: 6.5%;
    }

    .elementor-57 .elementor-element.elementor-element-1e2e6405 {
        width: 25%;
    }

    .elementor-57 .elementor-element.elementor-element-76421c03 {
        width: 51%;
    }

    .elementor-57 .elementor-element.elementor-element-22a15cb6 {
        width: 23%;
    }
}

@media(max-width: 1024px) {
    .elementor-57 .elementor-element.elementor-element-7b216dfd > .elementor-element-populated {
        border-width:0px 0px 1px 0px;
        padding: 10px 0px 10px 0px;
    }

    .elementor-57 .elementor-element.elementor-element-1743c74 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-57 .elementor-element.elementor-element-1743c74 .elementor-icon-list-item > a {
        font-size: var( --e-global-typography-61eed76-font-size );
        line-height: var( --e-global-typography-61eed76-line-height );
        letter-spacing: var( --e-global-typography-61eed76-letter-spacing );
        word-spacing: var( --e-global-typography-61eed76-word-spacing );
    }

    .elementor-57 .elementor-element.elementor-element-22ca1aec input[type="search"].elementor-search-form__input {
        font-size: var( --e-global-typography-text-font-size );
        line-height: var( --e-global-typography-text-line-height );
    }

    .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu .elementor-item {
        font-size: var( --e-global-typography-accent-font-size );
        line-height: var( --e-global-typography-accent-line-height );
    }

    .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown .elementor-item, .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown .elementor-sub-item {
        font-size: var( --e-global-typography-accent-font-size );
    }

    .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-nav-menu--dropdown, .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu__container.elementor-nav-menu--dropdown {
        margin-top: 20px !important;
    }

    .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-menu-toggle {
        border-radius: 0px;
    }
}

@media(max-width: 767px) {
    .elementor-57 .elementor-element.elementor-element-1743c74 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-57 .elementor-element.elementor-element-1743c74 .elementor-icon-list-item > a {
        font-size:var( --e-global-typography-61eed76-font-size );
        line-height: var( --e-global-typography-61eed76-line-height );
        letter-spacing: var( --e-global-typography-61eed76-letter-spacing );
        word-spacing: var( --e-global-typography-61eed76-word-spacing );
    }

    .elementor-57 .elementor-element.elementor-element-195d303c {
        width: 85%;
    }

    .elementor-57 .elementor-element.elementor-element-195d303c > .elementor-element-populated {
        padding: 0px 15px 0px 0px;
    }

    .elementor-57 .elementor-element.elementor-element-775abb5b .elementor-widget-container {
        text-align: left;
    }

    .elementor-57 .elementor-element.elementor-element-4025038e {
        width: 15%;
    }

    .elementor-57 .elementor-element.elementor-element-22ca1aec input[type="search"].elementor-search-form__input {
        font-size: var( --e-global-typography-text-font-size );
        line-height: var( --e-global-typography-text-line-height );
    }

    .elementor-57 .elementor-element.elementor-element-1e2e6405 {
        width: 100%;
    }

    .elementor-57 .elementor-element.elementor-element-1e2e6405 > .elementor-element-populated {
        border-width: 0px 0px 1px 0px;
        margin: 0px 0px 15px 0px;
        --e-column-margin-right: 0px;
        --e-column-margin-left: 0px;
        padding: 0px 0px 10px 0px;
    }

    .elementor-57 .elementor-element.elementor-element-1322dc41 {
        text-align: center;
    }

    .elementor-57 .elementor-element.elementor-element-76421c03 {
        width: 12%;
    }

    .elementor-57 .elementor-element.elementor-element-76421c03 > .elementor-element-populated {
        padding: 0px 0px 0px 0px;
    }

    .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu .elementor-item {
        font-size: var( --e-global-typography-accent-font-size );
        line-height: var( --e-global-typography-accent-line-height );
    }

    .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown .elementor-item, .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown .elementor-sub-item {
        font-size: var( --e-global-typography-accent-font-size );
    }

    .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--dropdown a {
        padding-top: 15px;
        padding-bottom: 15px;
    }

    .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-nav-menu--dropdown, .elementor-57 .elementor-element.elementor-element-44e6b8b8 .elementor-nav-menu__container.elementor-nav-menu--dropdown {
        margin-top: 20px !important;
    }

    .elementor-57 .elementor-element.elementor-element-22a15cb6 {
        width: 88%;
    }
}





/* ==========================================================================
   Menú responsive de [gpf_nav_menu] — sólo header 5 (.elementor-57)
   --------------------------------------------------------------------------
   Bloque autosuficiente a propósito: no depende de la media query que
   nav-menu.php arma con PHP, ni de la variable --gpf-menu-top que necesita
   la versión nueva de nav-menu.js. Con este archivo basta.

   El panel se ancla a la sección del header (.elementor-element-274ea10d),
   que ya ocupa el ancho completo de la página, así que queda alineado al
   viewport sin importar en qué columna esté el botón hamburguesa.
   ========================================================================== */

@media (max-width: 768px) {

    /* Ancla horizontal del panel: la sección, que ocupa el ancho completo.
       Se conserva relative porque su .elementor-background-overlay depende
       de ella. */
    .elementor-57 .elementor-element.elementor-element-274ea10d {
        position: relative;
    }

    /* Elementor deja container, columna, widget-wrap y widget en
       position:relative; cualquiera de ellos capturaría el panel y lo
       encogería al ancho de la columna (12% en móvil). Ninguno tiene
       background-overlay propio, así que pasarlos a static es inocuo. */
    .elementor-57 .elementor-element.elementor-element-274ea10d > .elementor-container,
    .elementor-57 .elementor-element.elementor-element-76421c03,
    .elementor-57 .elementor-element.elementor-element-76421c03 > .elementor-widget-wrap,
    .elementor-57 .elementor-element.elementor-element-44e6b8b8 {
        position: static;
    }

    /* El wrapper deja de ser el contexto de posicionamiento del panel.
       justify-content: flex-start (y no flex-end, que es lo que trae
       nav-menu.php): en móvil Elementor deja esta columna en width:12%, o sea
       ~41px, y el botón mide 78px (icono de 30px + padding 24px por lado).
       Alineado a la derecha, el botón desbordaba hacia la IZQUIERDA y quedaba
       cortado 22px fuera de la pantalla. Alineado al inicio, arranca en el
       borde de la columna y desborda hacia la derecha, donde hay espacio
       libre: el botón RESERVAR empieza recién en x=226. */
    .elementor-57 .elementor-element-44e6b8b8 .gpf-responsive-menu {
        position: static;
        display: flex;
        justify-content: flex-start;
    }

    /* Botón hamburguesa visible (la regla base lo deja en display:none) */
    .elementor-57 .elementor-element-44e6b8b8 .gpf-menu-toggle {
        display: block;
    }

    /* Panel: ancho completo, justo debajo del header */
    .elementor-57 .elementor-element-44e6b8b8 .gpf-nav-container {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        width: auto;
        max-width: 100%;
        max-height: 80vh;
        overflow-y: auto;
        overscroll-behavior: contain;
        box-sizing: border-box;
        background-color: #FFFFFF;
        box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
        z-index: 999;
    }

    .elementor-57 .elementor-element-44e6b8b8 .gpf-nav-container.active {
        display: block;
    }

    .elementor-57 .elementor-element-44e6b8b8 .gpf-menu {
        flex-direction: column;
    }

    /* Ítems con los mismos tokens que el dropdown nativo del header 5 */
    .elementor-57 .elementor-element-44e6b8b8 .gpf-menu li:not(:last-child) {
        border-bottom: 1px solid #87878726;
    }

    .elementor-57 .elementor-element-44e6b8b8 .gpf-menu a {
        color: var(--e-global-color-text);
        padding: 15px 16px;
        font-family: var(--e-global-typography-accent-font-family), Sans-serif;
        font-size: var(--e-global-typography-accent-font-size);
        font-weight: var(--e-global-typography-accent-font-weight);
    }

    /* Cadena de fallback obligatoria: --e-global-color-fc28385 no existe en
       todos los kits de Elementor. Sin ella el fondo queda transparente y el
       texto blanco se vuelve invisible sobre el panel blanco. */
    .elementor-57 .elementor-element-44e6b8b8 .gpf-menu a:hover,
    .elementor-57 .elementor-element-44e6b8b8 .gpf-menu .current-menu-item > a {
        color: #FFFFFF;
        background-color: var(--e-global-color-fc28385, var(--e-global-color-accent, #7ED957));
    }

    /* Submenús en acordeón */
    .elementor-57 .elementor-element-44e6b8b8 .gpf-submenu {
        display: none;
        position: static;
        width: 100%;
        box-shadow: none;
        padding-left: 15px;
        background-color: #f9f9f9;
    }

    .elementor-57 .elementor-element-44e6b8b8 .submenu-toggle {
        display: block;
        color: var(--e-global-color-text);
    }

    .elementor-57 .elementor-element-44e6b8b8 .menu-item-has-children.submenu-open > .gpf-submenu {
        display: block;
    }
}

/* --------------------------------------------------------------------------
   Menú desktop de [gpf_nav_menu] — sólo header 5
   Replica los tokens que el header 5 ya define para .elementor-nav-menu--main:
   ítems en blanco sobre el header oscuro, accent en hover y en el activo.
   Se limita a los ítems de primer nivel (> li > a) para no pintar de blanco
   los enlaces del submenú, que caen sobre un panel blanco.
   -------------------------------------------------------------------------- */

@media (min-width: 769px) {

    .elementor-57 .elementor-element-44e6b8b8 .gpf-menu > li > a {
        color: #FFFFFF;
    }

    .elementor-57 .elementor-element-44e6b8b8 .gpf-menu > li > a:hover,
    .elementor-57 .elementor-element-44e6b8b8 .gpf-menu > li.current-menu-item > a {
        color: var(--e-global-color-accent, #7ED957);
        background-color: transparent;
    }
}

/* ==========================================================================
   Redes sociales hardcodeadas del header 5 (.gpf-hd-social)
   --------------------------------------------------------------------------
   5_1_header.php renderiza la fila dos veces (--desktop en la columna del
   CTA, --mobile bajo el logo) y aqui se decide cual se muestra.

   Tambien se reajustan los anchos de columna para hacerle sitio a los
   iconos junto al boton RESERVAR: el menu de esta pagina tiene 4 items
   (~377px de contenido), asi que cederle ancho a la columna del CTA no lo
   hace saltar de linea.
   ========================================================================== */

.elementor-57 .gpf-hd-social {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    line-height: 0;
}

/* La fila movil arranca oculta; se enciende en el bloque de <=767px. */
.elementor-57 .gpf-hd-social--mobile {
    display: none;
}

.elementor-57 .gpf-hd-social__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    box-sizing: border-box;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    /* El header es transparente y cae sobre la foto del hero: el circulo
       translucido + borde asegura que el glifo blanco se lea sobre
       cualquier zona clara de la imagen. */
    color: #FFFFFF;
    background-color: #FFFFFF26;
    border: 1px solid #FFFFFF59;
    transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

/* Blanco solido con el glifo oscuro (15.9:1). Un hover que solo suba la
   opacidad del blanco casi no se distingue sobre la foto. */
.elementor-57 .gpf-hd-social__link:hover,
.elementor-57 .gpf-hd-social__link:focus {
    background-color: #FFFFFF;
    border-color: #FFFFFF;
    color: #1A1A1A;
}

.elementor-57 .gpf-hd-social__link svg {
    display: block;
    width: 16px;
    height: 16px;
    fill: currentColor;
}

/* La columna del CTA pasa a fila: iconos a la izquierda del boton y todo
   pegado a la derecha. Elementor deja sus widgets en width:100%, de ahi el
   width:auto del segundo selector.
   flex-wrap: wrap es red de seguridad: si el ancho no alcanza (otra fuente,
   otro texto en el boton), los iconos bajan de linea en vez de desbordar
   sobre el menu. */
.elementor-57 .elementor-element.elementor-element-22a15cb6 > .elementor-element-populated {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    column-gap: 12px;
    row-gap: 10px;
}

.elementor-57 .elementor-element.elementor-element-22a15cb6 > .elementor-element-populated > .elementor-element {
    width: auto;
}

/* Desktop: min-width 1025px y no 768px, para no pisar el bloque de tablet
   (max-1024 and min-768) que viene antes en este archivo.

   El ancho se calcula para el peor caso de esta banda, un viewport de 1025px
   (contenedor = 1025 - 30 de padding = 995): la columna necesita 15px de
   padding + 118px de iconos (3 x 34 + 2 x 8) + 12px de gap + 135px de boton
   = 280px, o sea 28.1%. El menu queda con 55.4% (551px a 1025px de viewport)
   y sus items miden ~390px, asi que no salta de linea; ademas van alineados
   a la izquierda de su columna, asi que no se mueven ni un pixel respecto de
   antes: la columna solo cede el espacio vacio que le sobraba a la derecha.
   El logo (16.5%) no se toca. */
@media (min-width: 1025px) {

    .elementor-57 .elementor-element.elementor-element-76421c03 {
        width: 55.4%;
    }

    .elementor-57 .elementor-element.elementor-element-22a15cb6 {
        width: 28.1%;
    }
}

/* Tablet (769-1024px): aqui los anchos originales se dejan intactos porque el
   menu horizontal ya va justo (51% = 377px a 769px de viewport para ~390px de
   items); quitarle ancho lo hacia desbordar sobre los iconos.
   En vez de eso la columna del CTA se reparte en dos lineas: el boton arriba
   y los iconos abajo, ambos a la derecha. El order invierte el orden del
   markup, que esta pensado para la linea unica del desktop. */
@media (max-width: 1024px) and (min-width: 768px) {

    .elementor-57 .elementor-element.elementor-element-22a15cb6 > .elementor-element-populated > .elementor-element-44e25580 {
        order: 1;
    }

    .elementor-57 .elementor-element.elementor-element-22a15cb6 > .elementor-element-populated > .gpf-hd-social--desktop {
        order: 2;
    }
}

/* Movil: la columna del CTA queda en 88% con el boton hamburguesa desbordado
   encima, asi que los iconos se mueven a la columna del logo, que ocupa el
   100% y ya viene centrada con su borde inferior. */
@media (max-width: 767px) {

    .elementor-57 .gpf-hd-social--desktop {
        display: none;
    }

    /* width:100% para poder centrar: el widget-wrap de Elementor es flex-wrap
       con justify-content a la izquierda, un div de ancho contenido quedaria
       pegado al borde izquierdo bajo el logo centrado. */
    .elementor-57 .gpf-hd-social--mobile {
        display: flex;
        width: 100%;
        justify-content: center;
        margin: 12px 0 0 0;
    }

    /* 40px de area tactil (Elementor no aporta padding aqui). */
    .elementor-57 .gpf-hd-social__link {
        width: 40px;
        height: 40px;
    }

    .elementor-57 .gpf-hd-social__link svg {
        width: 18px;
        height: 18px;
    }
}
