/* General Styles */
.menu-container {
    position: relative; z-index:99;
}

html.menu__opened {
    overflow-y:hidden;
}
.menu-toggle {		
    display: block;		
    background: #000;
    color: #fff;
    border: none;    
    cursor: pointer;		
    z-index: 10000;
    position:relative;		
    padding: 10px 5px;		
}
.menu-toggle::after {
    content: "Menu";
    font-family: var(--e-global-typography-9eff86f-font-family), Sans-serif;
    font-size: 20px;
    color: #FFF;
    position: absolute;
    left: 45px;
}
html.menu__opened .menu-toggle::after {
    color: #000;
}
.hamburger-lines {
    height: 40px;
    width: 36px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.hamburger-lines .line {
    display: block;
    height: 2px;
    width: 100%;
    border-radius: 5px;
    background: #FFF;
    position: relative;
}

.hamburger-lines .line::before {
    content: "";
    position: absolute;
    height: 4px;
    width: 1px;
    background-color: #FFF;
    display: block;
    left: 0;
    top: -1px;
}

.hamburger-lines .line::after {
    content: "";
    position: absolute;
    height: 4px;
    width: 1px;
    background-color: #FFF;
    display: block;
    right: 0;
    top: -1px;
}


.hamburger-lines .line1 {
    transform-origin: 0% 0%;
    transition: transform 0.4s ease-in-out;    
}
.hamburger-lines .line2 {
    transition: transform 0.2s ease-in-out;
}
.hamburger-lines .line3 {
    transform-origin: 0% 100%;
    transition: transform 0.4s ease-in-out;
}

/*********************************
 Hamburguesa abierto 
***********************************/
.menu__opened .hamburger-lines .line1 {
    transform: rotate(45deg);
}
.menu__opened .hamburger-lines .line2 {
    transform: scaleY(0);
}
.menu__opened .hamburger-lines .line3 {
    transform: rotate(-45deg);
}

.menu__opened .hamburger-lines .line::after,
.menu__opened .hamburger-lines .line::before {
    background-color: #000;
}

html.menu__opened .desktop-menu {
    display: flex; padding-top: 90px;   padding-bottom: 20px;
}    
html.menu__opened #header .hamburger-lines .line {
    background-color: #000;
}
html.menu__opened #header a.elementor-button {
    color: #FFF; background-color: var(--e-global-color-text);
}
html.menu__opened #header a.elementor-button:hover {
    /* background-color: #FFF; color: var(--e-global-color-text); */
    color: #FFF;    background-color: var(--e-global-color-primary);
}
html.menu__opened #header .elementor-widget-theme-site-logo img {
    filter: brightness(0);
}
#header__idioma p { margin-bottom: 0; }
html.menu__opened #header__idioma p { color: var(--e-global-color-text); }




.custom-menu-wrapper {
    display: flex;     
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background: #fff;
    z-index: 9999;        
    padding: 20px;
    flex-direction: column;
    transition: transform 0.3s ease-in-out;
    justify-content: space-between;
    height: 100vh;
    /* justify-content: space-around;        */
    
}    

.custom-menu-wrapper[data-animation="top"] {
    transform: translateX(0) translateY(-100%);
}

.custom-menu-wrapper[data-animation="left"] {
    transform: translateX(-100%) translateY(0);
}

.custom-menu-wrapper[data-animation="right"] {
    transform: translateX(100%) translateY(0);
}

.custom-menu-wrapper {
    background-repeat: no-repeat; background-size: cover; background-image: url(../img/menu_bg.webp); background-position: center;
}
.custom-menu-wrapper.open {        
    transition: transform 0.3s ease-in-out;
    transform: translateX(0) translateY(0);   
    overflow-y: auto;     
}

.desktop-menu ul {
    list-style: none; margin: 0; padding: 0; text-align: center;
}
.desktop-menu ul li a{ display: block; }
.custom-menu-text {
    display: block;
}

/********* Dropdown **************/
.desktop-menu {  justify-content: center; }
.desktop-menu ul.sub-menu {
    position: relative; background: none !important; text-align: center;
}
.desktop-menu > ul.menu > li.menu-item-has-children:hover > ul.sub-menu:before { display: none; }

.desktop-menu ul.menu ul.sub-menu { position: initial !important; box-shadow: none !important; }
li.menu__servicios ul.sub-menu { width: auto; flex-direction: column !important; }    
li.menu__servicios ul.sub-menu > li { width: auto; }
.desktop-menu ul.menu  li.menu-item-has-children  ul.sub-menu { 
    text-align: center; padding: 0; margin: 0; 
    overflow: hidden; max-height: 0; transition: all .5s ease-in;
}
.desktop-menu ul.menu  li.menu-item-has-children.activo  ul.sub-menu { 
    max-height: 300px; transition: all .3s ease-in;
}   



ul.sub-menu ul.sub-menu {  width: auto; position: initial; }
ul.sub-menu li.menu-item-has-children { flex-direction: column; align-items: flex-start; }

ul.sub-menu li.menu-item-has-children > span.submenu__arrow { display: inline-block; width: 12px; height: 12px; background-repeat: no-repeat; background-position: center; background-image: url(../img/icon-down.svg); background-size: 100%; margin-left: 10px; }


.desktop-menu ul > li.menu-item-has-children > a { display: inline-block; }
ul.menu > li.menu-item-has-children > span.submenu__arrow { width: 12px; height: 6px; margin-left: 0; display: inline-block; background-repeat: no-repeat; background-size: 100% auto; background-image: url(../img/icon-abajo.svg); vertical-align: middle; margin-bottom: 5px; }
.desktop-menu ul.menu > li.menu__destinos > ul.sub-menu > li { border: none; display: block;  }


.custom__menu__bottom {
    display: flex; flex-wrap: nowrap; color: #FFF; justify-content: space-between;
}
.desktop-menu2 ul#menu-footer-menu {
    list-style: none; display: flex; margin: 0; padding: 0; gap: 10px;
}
.desktop-menu2 ul#menu-footer-menu a {
    color: #FFF;
}
.desktop-menu2 ul#menu-footer-menu a:hover {
    color: var(--e-global-color-primary);
}


/************************************
  Social y Reservar
************************************/
.custom__menu__top  {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.custom__menu__top .menu__btn {
    font-family: var(--e-global-typography-secondary-font-family), Sans-serif;
    font-size: var(--e-global-typography-secondary-font-size);
    font-weight: var(--e-global-typography-secondary-font-weight);
    border-radius: 4px 4px 4px 4px;
    padding: 10px 30px 10px 30px;
    color: #FFF;
    background-color: var(--e-global-color-text);    
    line-height: 1em;
}
.custom__menu__top .menu__btn:hover {
    color: #FFF;
    background-color: var(--e-global-color-primary);
}
.custom__menu__top .menu__social {
    display: flex;
    gap: 7px;
    padding-top: 20px;
    padding-bottom: 25px;
}
.custom__menu__top .menu__social a:hover img { opacity: .5; }



/************************************
  Tablet
************************************/
@media screen and (max-width: 1020px)  {
    .custom-menu-wrapper {
        background-image: url(../img/menu_tablet_bg.webp);
        background-position: center bottom;
    }
    .custom-menu-text p { font-size: 12px; text-align: center; }
    .desktop-menu2 ul#menu-footer-menu a { font-size: 12px; }
    .custom-menu-footer { text-align: center; margin: auto; }
    .menu-toggle::after { font-size: 16px; }
    .custom__menu__bottom { flex-direction: column; }
    .custom__menu__bottom .custom-menu-text { order: 2; margin-top: 10px; }
    .custom__menu__bottom .custom-menu-footer { order: 1; }
}


/************************************
  Celular
************************************/
@media screen and (max-width: 760px)  {
    .custom-menu-wrapper {
        background-image: url(../img/menu_mobile_bg.webp);
        background-position: center bottom;
    }
}