/* 
@author Raylin Aquino <info@raylinaquino.com>
@url https://raylinaquino.com
**/
:root {
    --white: #fff;
    --white1: #f0f0f0;
    --primary: #0079c6;
    --primary-light: #E8F5FF;
    --green-light: #e8ffe9;
    --marine: #004669;
    --gray: #35546a;
    --grayl: #dde4e9;
    --gray-light: #cacaca;
    --black: #272727;
    --police: #35546a;
    --indigo: #182F59;
    --secondary: #F48323;
    --secondary-b: #b85c0e;
    --secondary-m: #FFC797;
    --secondary-hover: #ff9943;
    --brown: #6f441f;
    --cream: #FFDEBB;
    --secondary-light: #FCEBDD;
    --third: #fcdc59;
    --yellow: #E2AC04;
    --green: #0FA254;
    --danger: #c63636;
    --danger-light: #f8e2e2;
    --violet: #ad2251;
    --pink: #fc2a5f;
    font-size: 10px;
    padding: 0;
}

body {
    padding: 0;
    margin: 0;
    font-weight: 500;
}

[v-cloak] {
    display: none;
}

/* UM Account */
.um-account-meta .um-account-profile-link .um-link {
    display: none;
}

.jet-mega-menu.jet-mega-menu--layout-horizontal .jet-mega-menu-sub-menu .jet-mega-menu-item>.jet-mega-menu-item__inner a {
    display: block;
    width: 100%;
}

body .um-account-main {
    color: var(--gray);
    font-size: 1.4rem;
}

body p.um-notice.success {
    background: var(--green-light);
    color: var(--green);
    font-weight: 500;
}

body .um-register .um-postmessage,
body .um-login .um-postmessage {
    background: var(--green-light);
    color: var(--green);
    font-weight: 500;
    padding: 2rem;
    border-radius: 5px;
    font-size: 1.4rem;
}

body .um-account-main .um-account-nav:has(a.current) {
    padding: 0px 10px;
    background: var(--primary-light) !important;
    border-radius: 5px;
}



body .um-account-side li {
    background: var(--primary-light);
    border-radius: 5px;
}

body .um-social-btn.um-social-btn-google {
    background: #f3f3f3 !important;
}

body .um-account-main div.um-account-heading {
    border-bottom: 2px solid var(--gray);
    padding-bottom: 1rem;
    color: var(--gray);
}

body .um-account-side li a span.um-account-arrow {
    font-size: 1.7rem;
    color: var(--gray);
    opacity: 1;
    top: 9px;
}

body .um-account-side li a:hover span.um-account-arrow,
body .um-account-side li a.current span.um-account-arrow {

    color: var(--white);
}

body .um-account-side li a span.um-account-icon {
    border-right: 0 !important;
}

body .um-account-side li a span.um-account-title {
    padding-left: 0;
    color: var(--gray);
}

body .um-account-side li a:hover span.um-account-title,
body .um-account-side li a.current span.um-account-title {
    color: var(--white);
}

body .um-account-side .um-account-link {
    font-weight: 500;
}

body .um-account-side .um-account-link:hover,
body .um-account-side .um-account-link.current {
    background: var(--primary);

}

body .um-account-side li a span.um-account-icon i {
    color: var(--gray);
}

body .um-account-side li a:hover span.um-account-icon i,
body .um-account-side li a.current span.um-account-icon i {
    color: var(--white);
}

.spa-packages .elementor-widget-image a {
    display: block;
    transition: all .3s ease;
    position: relative;
    top: 0;
    color: var(--gray);
}

.spa-packages .elementor-widget-image a:hover {
    opacity: .8;
}

.spa-packages.group .elementor-widget-image a:hover {
    top: -1rem;
}

/* Hotel Banners */
.usa-canada {
    display: none !important;
}



html[data-country="us"] .usa-canada,
html[data-country="ca"] .usa-canada {
    display: block !important;
}

html .usa-canada.elementor-hidden-desktop,
html .usa-canada.elementor-hidden-tablet,
html .usa-canada.elementor-hidden-mobile {
    display: none !important;
}

html .elementor-editor-active .usa-canada {
    display: block !important;
}

/* Viva Banner */
.viva-banner {
    position: relative;
    overflow: hidden;
    transition: all .3s ease;
    font-family: Montserrat, sans-serif;
    line-height: 1;
}

.viva-banner.style3:before {
    width: calc(100% - 22rem);
    height: 78%;
    content: '';
    display: block;
    background: var(--yellow);
    position: absolute;
    z-index: 1;
    right: 0;
    top: 0;
}

.viva-banner.style3.horizontal:before {
    width: 12rem;
    height: 100%;
    display: none;
}

.viva-banner.style3.horizontal:after {
    display: none;
}

.viva-banner.style3.orange-blue:before {
    background: var(--secondary);
}

.viva-banner.style3:after {
    width: 10rem;
    height: 2rem;
    content: '';
    display: block;
    background: var(--primary);
    position: absolute;
    z-index: 1;
    left: 0;
    bottom: 0;
}

.viva-banner.style3.orange-blue:after {
    background: var(--indigo);
}

.viva-banner a {
    position: relative;
    display: block;
    height: 40rem;
}

.viva-banner a:after {
    content: '';
    border: 5px solid var(--marine);
    position: absolute;
    left: 2rem;
    top: 2rem;
    width: calc(100% - 4rem);
    height: calc(100% - 4rem);
    transition: all .5s ease;
    pointer-events: none;
}

.viva-banner.style2 a:after {
    border-color: var(--secondary);
}

.viva-banner a:before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    opacity: .5;
    background: #1E345D;
    background: linear-gradient(180deg, rgba(30, 52, 93, 0.77) 0%, rgba(30, 52, 93, 0.09) 80%);
}

.viva-banner a:hover:after {
    transform: scale(.98)
}

.viva-banner .img {
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    z-index: -1;
}

.viva-banner a:hover .img {
    transform: scale(1.1);
}

.viva-banner .info {
    color: var(--white);
    font-size: 2rem;
    font-weight: 600;
    text-align: center;
    position: relative;
    top: 20%;
    text-shadow: 1px 2px 1px rgba(0, 0, 0, .8);
    z-index: 2;
}

.viva-banner .info .title {
    font-size: 170%;
    font-weight: bold;
}

.viva-banner.style2 .info .title {
    color: var(--secondary);
}

.viva-banner.style2 .info .title small {
    display: block;
    font-size: 70%;
}

.viva-banner.pink-black.style2 .info .title {
    color: var(--pink);
}

.viva-banner.pink-black.style2 a:after {
    border-color: var(--pink);
}

.viva-banner.pink-black.style2 .cta {
    background-color: var(--pink);
}

.viva-banner._1_2x .info .title {
    font-size: 4rem;
}

.viva-banner .cta {
    text-transform: uppercase;
    color: var(--white);
    background: var(--marine);
    position: absolute;
    right: 4rem;
    bottom: 4rem;
    font-size: 1.4rem;
    font-weight: bold;
    padding: 1.5rem 2rem;
    border-radius: 4rem;
}

.viva-banner .mini-title {
    background: var(--primary);
    color: var(--white);
    text-transform: uppercase;
    font-size: 11px;
    line-height: 1.3;
    padding: 2px 5px;
    width: calc(100% - 4rem);
    margin: 0 auto;
    letter-spacing: .7px;
    position: relative;
}

.viva-banner.style2 .cta {
    background: var(--secondary);
}

.viva-banner a:hover .cta {
    background: var(--secondary);
}

.viva-banner.style2 a:hover .cta {
    background: var(--marine);
}

.viva-banner .hotel {
    text-transform: uppercase;
    color: var(--white);
    position: absolute;
    left: 4rem;
    bottom: 5rem;
    font-size: 1.4rem;
    font-weight: 600;
    width: 14rem;
    text-shadow: 1px 2px 1px rgba(0, 0, 0, .8)
}

.viva-banner.style3 {
    background-color: var(--indigo);
}

.viva-banner.style3.orange-blue {
    background: var(--cream);
}

.viva-banner.style3 a:before {
    display: none;
}

.viva-banner.style3 .img {
    width: 100%;
    height: calc(100% - 4rem);
    max-width: 26rem;
    z-index: 1;
    top: 2rem;
}

.viva-banner.style3:hover .img {
    transform: scale(1);
    filter: brightness(1.1)
}

.viva-banner.style3 .info {
    position: absolute;
    right: 0;
    padding: 2rem;
    top: 0;
    height: 100%;
    width: 100%;
    max-width: 28rem;
    text-align: left;
    text-shadow: initial;
}

.viva-banner.style3 .info .after-title {
    font-size: 1.6rem;
    font-weight: bold;
    line-height: 1.2
}

.viva-banner.style3 .info .mini-title {
    width: 100%;
    left: -1rem;
    margin: 1rem 0 0 1rem;
}

.viva-banner.style3._1_2x .info .title {
    font-size: 3.5rem;
}

.viva-banner.style3._1_4x .info .title {
    font-size: 4rem;
}

.viva-banner.style3._1_5x .info .title {
    font-size: 5rem;
}


.viva-banner.style3 .info .before-title {
    text-transform: uppercase;
    margin-bottom: 3rem;
    font-weight: bold;
}

.viva-banner.style3 .info .title {
    color: var(--marine);
    text-shadow: none;
    line-height: 1.2;
    margin: 1rem 0;
    font-weight: 900;
    font-family: "Bebas Neue", sans-serif;
}

.viva-banner.style3.horizontal .info {
    background-color: var(--yellow);
    max-width: 40rem;
    left: 0;
    right: inherit;
}

.viva-banner.style3.horizontal.orange-blue .info {
    background-color: var(--secondary);
}

.viva-banner.style3 .info .title small {
    display: block;
    font-size: 70%;
    font-weight: 700
}

.viva-banner.style3 .hotel {
    right: 0rem;
    left: 0;
    z-index: 2;
    bottom: 2rem;
    display: none;
}

.viva-banner.style3 .info .hotel {
    display: block;
    text-shadow: initial;
    left: 2rem;
    font-weight: bold;
    line-height: 1.2;
    font-size: 1.3rem;
    font-family: 'Poppins', sans-serif;
    width: calc(100% - 2rem);
}

.viva-banner.style3.horizontal .info .hotel {
    color: var(--indigo);
}

.viva-banner.style3.orange-blue .info .hotel {
    color: var(--indigo);
}

.viva-banner.style3 a:after {
    display: none;
}



.viva-banner.style3.pink-black .info {
    background: var(--pink);
}

.viva-banner.style3 .cta {
    display: none;
}

.viva-banner.style3 .info .cta {
    display: block;
    background: var(--white);
    color: var(--marine);
    border-radius: 5px;
    box-shadow: 0px 2px 2px var(--marine);
    text-shadow: initial;
    left: 2rem;
    right: inherit;
    bottom: 7rem;
    font-size: 1.6rem;
}

.viva-banner.style3:hover .cta {
    background: var(--marine);
    color: var(--white);
}

/* Viva Banner Horizontal */
.viva-banner.horizontal a {
    height: 33rem;
}


.viva-banner.style3.horizontal .img {
    right: 12rem;
    width: 100%;
    max-width: 63rem;
    top: 0;
    height: 100%;
    left: inherit;
}



/*Translate Popup */
body #trp_ald_modal_popup {
    top: 29vh !important;
    background: var(--white);
    border-radius: 1rem;
    font-size: 1.3rem;
    font-weight: 500;
    box-shadow: none;
    border: 0;
}

body #trp_ald_modal_popup .trp_ald_ls_container .trp-ls-shortcode-current-language img.trp-flag-image {
    width: 2.2rem;
    height: 1.5rem;
    background-size: inherit;
    padding: 0;
}

body #trp_ald_modal_popup .trp_ald_ls_container .trp-ls-shortcode-language img.trp-flag-image {
    padding-top: 0;
}

body #trp_ald_modal_popup .trp_ald_ls_container .trp-ls-shortcode-current-language {
    font-size: 1.4rem;
    border-radius: 3rem !important;
    border-color: var(--gray);
    padding: 1rem;
    font-weight: bold;
    position: relative;
    background: none;
}

body #trp_ald_modal_popup .trp_ald_ls_container .trp-ls-shortcode-current-language:after {
    content: '\2B81';
    position: absolute;
    right: 2rem;
}

body #trp_ald_modal_popup #trp_ald_popup_select_container .trp-ls-shortcode-language {
    padding: 0;
}

body #trp_ald_modal_popup #trp_ald_popup_text,
body #trp_ald_modal_popup .trp_ald_ls_container .trp-ald-popup-select {

    font-size: 1.4rem;
    transition: all .3s ease;
}

body #trp_ald_modal_popup #trp_ald_popup_change_language {
    font-size: 1.4rem;
    font-weight: bold;
    border-radius: 3rem;
    transition: background .3s ease;

}

body #trp_ald_modal_popup #trp_ald_x_button_textarea {
    margin-left: 1rem;
    color: var(--gray) !important;
    font-weight: 500;
    text-decoration: none;
}

body #trp_ald_modal_popup #trp_ald_x_button_and_textarea {
    width: 100%;
    text-decoration: none;
}

body #trp_ald_modal_popup #trp_ald_x_button_and_textarea:hover #trp_ald_x_button_textarea {
    text-decoration: underline;
    text-decoration-thickness: 2px;

}

#breadcrumbs {
    font-weight: bold;
}

#breadcrumbs a:hover {
    text-decoration: underline;
    text-decoration-thickness: 2px
}

#breadcrumbs .breadcrumb_last {
    display: none;
}

.elementor-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    color: var(--gray);
    width: 3rem;
    height: 3rem;
    border-radius: 2rem;
    background: var(--grayl);
    transition: all .3s ease;
}

.elementor-pagination .page-numbers.current,
.elementor-pagination .page-numbers:hover {
    background: var(--gray);
    color: var(--white);
}

.elementor-pagination .page-numbers.prev,
.elementor-pagination .page-numbers.next {
    border-radius: 2rem;
    width: inherit;
    padding: 0 1rem;
}

/* In the news */
.in-the-news .cats {
    display: flex;
    justify-content: space-around;
    border-radius: 5rem;
    overflow: hidden;
}

.in-the-news .cats a {
    background: var(--primary);
    display: block;
    width: 100%;
    text-align: center;
    padding: 1rem;
    font-size: 1.6rem;
    font-weight: bold;
    color: var(--white);
}

.in-the-news .cats a:hover,
.in-the-news .cats a.active {
    background: var(--primary-light);
    color: var(--primary);
}

.in-the-news .posts-group {
    display: none;
    grid-template-columns: repeat(auto-fill, minmax(28rem, 1fr));
    margin-top: 3rem;
    gap: 3rem;
}

.in-the-news .posts-group.active {
    display: grid;
}

.in-the-news .posts-group .card-post .img {
    height: 22rem;
    border-radius: 2rem;
    display: block;
    background-size: cover;
    background-position: center;
    transition: all .3s ease;
}

.in-the-news .posts-group .card-post .img:hover {
    opacity: .8
}

.in-the-news .posts-group .card-post .info {
    margin: 1.5rem 0 1rem;
    min-height: 12rem;
}

.in-the-news .posts-group .card-post .info time {
    display: inline-block;
    font-size: 1.3rem;
    margin: 1rem 0;
}

.in-the-news .posts-group .card-post .info h4 {

    font-weight: 600;
    font-size: 1.6rem;
    line-height: 1.4;
}

.in-the-news .posts-group .card-post .info h4 a {
    color: var(--gray);
}

.in-the-news .posts-group .card-post .info h4 a:hover {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-decoration-skip-ink: auto;
}

/* Search Results Page */
.heading-search h1 {
    color: var(--gray) !important;
    font-size: 3rem;
}

.heading-search h1 span {
    color: var(--primary);
}

.search-results .results-found {
    text-align: center;
    font-size: 1.6rem;
}

.search-results .results-found strong {
    color: var(--primary);
}

.wedding-price {
    display: inline-block;
    background: #f3e4e4;
    padding: 1rem 2rem;
    border-radius: 2rem;
    font-weight: 500;
}

.wedding-price .price {
    font-weight: bold;
    font-size: 2rem;
}

.text-center {
    text-align: center;
}

.btn-download .elementor-button {
    box-shadow: 0 5px 1rem rgb(33 103 148 / 4%);
    width: 100%;
    display: block;
}

.btn-download .elementor-button .elementor-button-content-wrapper {
    text-align: left;
    gap: 1rem !important;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.btn-download .elementor-button .elementor-button-icon {
    font-size: 3rem;
}

.btn-badget a {
    display: inline-block;
    transition: all .3s ease;
}

.btn-badget a:hover {
    opacity: .8;
    transform: scale(.9);
}

.trans-3 {
    transition: all .3s ease;
}

.awards-boxes img {
    width: 12rem;
}

.cs-offer-list .elementor-icon-list-items {

    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(28rem, 1fr));
    grid-auto-rows: max-content;
    gap: 3rem;
}

.cs-offer-list .elementor-icon-list-items .elementor-icon-list-item,
.cs-offer-list .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text {
    align-items: flex-start !important;
    padding: 0;
    padding-inline-start: 0;
    align-self: baseline;
    gap: 1rem;
}

.list-features .elementor-icon-list-items {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.list-features .elementor-icon-list-items li:last-child {
    grid-column: 2 span;
    margin-top: 1rem;
}

.hotel-region {
    font-weight: bold;
    font-size: 2.5rem;
    color: var(--police);
}

.overlay-menu {
    position: fixed;
    background: #002e689c;
    top: 0;
    left: 0;
    height: 100vh;
    width: 100%;
    z-index: 9991;
    display: block;
    transition: all .7s ease;
    opacity: 0;
    visibility: hidden
}

.resorts-dropdown {
    color: var(--white);
}

.resorts-dropdown .destination {
    margin: 1rem 0;
}

.resorts-dropdown .dest-group .name {
    padding: .7rem 1.4rem;
    font-weight: bold;
    background: #1a5978;
    border-radius: 1rem;
    font-size: 1.5rem;
    cursor: pointer;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.resorts-dropdown .dest-group .name .icon {
    font-size: 60%;
    position: relative;
    top: 5px;
}

.resorts-dropdown .destination.active .dest-group .name .icon i {
    transform: rotate(180deg);
}

.resorts-dropdown .dest-group .name:hover,
.resorts-dropdown .active .dest-group .name {
    background: var(--secondary);
}

.resorts-dropdown a {
    color: var(--white);
}

.resorts-dropdown .hotels {
    margin: 1rem 0;
    display: none;
}

.resorts-dropdown .hotels a {
    display: block;
    color: var(--white);
    padding: .5rem 2rem;
    font-size: 1.3rem;
    opacity: .7;
    font-weight: 500;
    border-bottom: 1px solid transparent;
}

.resorts-dropdown .hotels a:hover {
    opacity: 1;
    border-bottom-color: var(--white);
}

.mobile-menu-open {
    overflow-y: hidden
}

.mobile-menu-open .overlay-menu {
    opacity: 1;
    visibility: visible
}

.mobile-menu-open .overlay-menu .btn {
    position: absolute;
    right: 1rem;
    top: 1rem;
    color: var(--white);
    border: 2px solid var(--white);
    font-size: 1.4rem;
}

.custom-mobile-menu {
    position: fixed;
    background: var(--white);
    top: 0;
    left: -100%;
    visibility: hidden;
    height: 100%;
    width: 30rem;
    z-index: 9999;
    padding: 3rem;
    flex-direction: column;
    display: flex;
    transition: all .7s ease
}

.custom-mobile-menu .top-account-mobile {
    margin: 3rem 0;
}

.custom-mobile-menu .top-account-mobile .top-account .trp-language-switcher {
    width: 100%;
    z-index: 5;
}

.custom-mobile-menu .top-account-mobile .top-account {
    display: block;
}

.custom-mobile-menu .top-account-mobile .cs-btn-woo-account {
    width: 100%;
    display: block;
    margin-top: 1rem;
}

.custom-mobile-menu .top-account-mobile .cs-btn-woo-account .btn-myaccount {
    padding: 1.2rem 2rem;
}

.custom-mobile-menu .top-account-mobile .cs-btn-woo-account .btn-myaccount .wrap-info {

    font-size: 1.5rem;
}

.custom-mobile-menu .top-account-mobile .cs-btn-woo-account .dropdown-content {
    width: 100% !important;
    max-width: inherit;
}

.custom-mobile-menu .top-account-mobile .cs-btn-woo-account .dropdown-content a {

    font-size: 1.4rem;
}

.mobile-menu-open .custom-mobile-menu {
    visibility: visible;
    left: 0
}

.woocommerce table.shop_table td small.tax_label,
.woocommerce table.shop_table .includes_tax {
    display: block
}

.custom-mobile-menu .wrapper {
    overflow: auto;
    margin-bottom: 2rem
}

.custom-mobile-menu .wrapper .menu {
    margin: 0;
    padding: 0;
    list-style: none
}

.custom-mobile-menu .wrapper .menu>.menu-item>.dropdown-menu {
    list-style: none;
    padding: 0 0 0 1rem;
    display: none;
    position: relative;
    border: 0;
}

.custom-mobile-menu .wrapper .menu .menu-item {
    margin: 5px 0
}

.custom-mobile-menu .wrapper .menu>.menu-item>a,
.custom-mobile-menu .wrapper .menu>.menu-item>.dropdown-menu a {
    font-weight: 700;
    font-size: 1.7rem;
    color: var(--gray);
    text-decoration: none;
    transition: all .3s ease;
    border-bottom: 2px solid transparent;
    display: flex;
    justify-content: space-between;
    padding: 4px 0
}

.custom-mobile-menu .wrapper .menu>.menu-item.opened>a>i {
    transform: rotate(-180deg)
}

.custom-mobile-menu .wrapper .menu>.menu-item.opened .dropdown-menu {
    display: block
}

.custom-mobile-menu .wrapper .menu>.menu-item>.dropdown-menu a {
    font-size: 1.4rem;
    font-weight: 600
}

.custom-mobile-menu .wrapper .menu>.menu-item a:hover,
.custom-mobile-menu .wrapper .menu>.menu-item.opened>a {
    font-weight: 700;
    color: var(--primary);
    text-decoration: none;
    border-bottom-color: var(--primary)
}

.viva-resorts-menu {
    display: grid;
    grid-template-columns: 20rem 1fr;
    gap: 1rem;
    padding: 2rem 0;
    max-width: 80rem;
    margin: 0 auto;
    width: 100%;
    color: var(--gray);
}

.viva-resorts-menu .wrap-dest h3 {
    margin: 0 0 4rem;
    color: var(--primary);
    font-weight: bold;
}

.viva-resorts-menu .wrap-dest ul {
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--gray);
}

.viva-resorts-menu .wrap-dest ul li {
    margin: 1rem 0;
}

.viva-resorts-menu .wrap-dest ul li a {
    display: block;
    text-decoration: none;
    font-weight: 600;
    font-size: 1.5rem;
    color: var(--gray);
}

.viva-resorts-menu .wrap-dest ul li a:after {
    content: '';
    height: 2px;
    display: block;
    background: var(--secondary);
    width: 0;
    transition: width .3s ease;
}

.viva-resorts-menu .wrap-dest ul li a:hover,
.viva-resorts-menu .wrap-dest ul li a.active {
    color: var(--secondary);
}

.viva-resorts-menu .wrap-dest ul li a:hover:after,
.viva-resorts-menu .wrap-dest ul li a.active:after {
    width: 100%;
}

.viva-resorts-menu .card-destination {
    padding: 2rem;
    background: var(--primary-light);
    border-radius: 1rem;
    font-size: 1.3rem;
    display: flex;
    gap: 0;
    align-items: center;
    margin-bottom: 2rem
}

.viva-resorts-menu .card-destination .wrap-img {
    flex: 0 0 18rem;
}

.viva-resorts-menu .card-destination .wrap-img .img {
    height: 14rem;
    -webkit-mask-image: url(../img/egg-path.svg);
    mask-image: url(../img/egg-path.svg);
    mask-repeat: no-repeat;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    width: 100%;
    mask-position: 5px;
    mask-size: 84%;
}

.viva-resorts-menu .card-destination .info h3 {
    margin: 0 0 1rem;
    font-weight: bold;
}

.viva-resorts-menu .card-destination .info .cta a {
    margin-top: 1rem;
    font-weight: bold;
    padding: 6px 15px !important;

}

.viva-resorts-menu .card-destination .info .cta a i {
    font-size: 80%;

}

.viva-resorts-menu .resorts-menu-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.viva-resorts-menu .resorts-menu-list a {
    display: grid;
    grid-template-columns: 5rem 1fr;
    align-items: center;
    color: var(--gray);
    font-weight: 600;
    text-decoration: none;
    padding: 1rem;
    border-radius: 1rem;
    gap: 1rem;
    font-size: 1.3rem;
}

.viva-resorts-menu .resorts-menu-list a:hover {
    background: var(--primary-light);
}

.viva-resorts-menu .resorts-menu-list a .title {
    font-weight: bold
}

.viva-resorts-menu .resorts-menu-list a .region {
    font-size: 90%;
    font-weight: 500;
    opacity: .7;
    margin-top: 5px;
}

.viva-resorts-menu .resorts-menu-list a .img {
    height: 5rem;
    background-color: #eeeeee;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
}

.viva-resorts-menu .wrap-resorts-list h4 {
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--secondary);
    margin: 1rem 0;
}

.viva-resorts-menu .wrap-resorts-list h4 strong {
    color: var(--primary);
    font-weight: bold;
}

.lg-outer .lg-thumb-item,
.lg-outer .lg-thumb-item {
    border-color: var(--black);
    opacity: .7
}

.lg-outer .lg-thumb-item.active,
.lg-outer .lg-thumb-item:hover {
    border-color: var(--white);
    opacity: 1;
}

.loader {
    width: 14px;
    height: 14px;
    border: 2px solid var(--gray);
    border-bottom-color: transparent;
    border-radius: 50%;
    display: inline-block;
    box-sizing: border-box;
    animation: rotation 1s linear infinite;
}

.hand-mobile {
    position: fixed;
    z-index: 9999;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 150px;
    height: 150px;
    font-size: 10px;
    text-align: center;
    background: #0000008c;
    color: var(--white);
    border-radius: 50%;
    box-shadow: 0 0 2rem rgba(0, 0, 0, .1);
    display: none;
}

.hand-mobile .txt {
    padding: 0 10px;
}

.hand-zoom {
    width: 80px;
    height: 80px;
    margin: 0 auto 1.4rem;
}

.hand-zoom .arrows {
    position: relative;
    top: 0;
    left: 0;
    transition: all .4s ease;
    transform-origin: 0 0;
    z-index: 2;
    width: 20px;
    transform: rotate(-44deg) translate(-21px, 25px);
}

.hand-zoom .arrows:hover {
    width: 25px;
}

.hand-zoom .arrows .arrow {
    width: 20px;
    height: 15px;
    background: url('../img/icon-arrow.svg?a=1') 0 0 no-repeat;
    background-size: contain;
    position: relative;
    transition: all .4s ease;
}

.hand-zoom .arrows .arrow.left {
    left: 0;
    top: 10px;
}

.hand-zoom .arrows .arrow.right {
    left: 1px;
    top: -8.6px;
    transform: rotate(180deg);
}

.hand-zoom .hand {
    width: 50px;
    height: 55px;
    background: url('../img/icon-hand.svg?a=1') 0 0 no-repeat;
    background-size: contain;
    left: 17px;
    top: 0;
    position: relative;
    transition: all .4s ease;
}

.hand-zoom .hand {

    animation: hand .5s infinite alternate;
}

.hand-zoom .arrows .arrow.right {
    animation: arrowright .5s infinite alternate;
}

.hand-zoom .arrows .arrow.left {
    animation: arrowleft .5s infinite alternate;
}

@keyframes hand {
    0% {
        transform: scale(.8);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes arrowright {
    0% {
        left: 5px;
    }

    100% {
        left: 1px;
    }
}

@keyframes arrowleft {
    0% {
        left: -5px;
    }

    100% {
        left: 0px;
    }
}

@keyframes rotation {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

.link-full-w a {
    display: block !important;
}

.lg-backdrop.in {
    opacity: .8;
}

/* Viva Card Image Content List */
.viva-image-content-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(28rem, 1fr));
    grid-auto-rows: max-content;
    gap: 2rem;
}

.viva-image-content-list .card-content {
    display: flex;
    gap: 2rem;
    color: var(--gray);
    font-weight: 500;
    font-size: 1.3rem;
    padding: 1.5rem 2rem;
    border-radius: 2rem;
    transition: all .3s ease;
    align-items: center;
}

.viva-image-content-list .card-content:hover {
    background-color: var(--white);
}

.viva-image-content-list .card-content .wrap-img .img {
    width: 6rem;
    height: 6rem;
    background-size: contain;
    background-position: center;
}

.viva-image-content-list .card-content .title {
    font-weight: bold;
    font-size: 1.7rem;
    margin: 0 0 1rem;
}

/** Popup Gallery **/
.popup-gallery {
    position: fixed;
    z-index: 999;
    height: 100vh;
    width: 100vw;
    top: 0;
    left: 0;
    pointer-events: none;
}

.popup-gallery--active {
    overflow: hidden;
}

.popup-gallery--active .popup-gallery {
    pointer-events: all;
}

.overlay {
    position: fixed;
    height: 100vh;
    width: 100vw;
    background-color: #00000057;
}

.popup-gallery .gal-wrap-content {
    position: fixed;
    height: calc(100vh - 4rem);
    width: calc(100vw - 4rem);
    z-index: 2;
    background-color: #fff;
    display: flex;
    padding: 5rem 2rem 5rem;
    gap: 2rem;
    left: 2rem;
    top: 2rem;
    border-radius: 2rem;
}

.popup-gallery .loading {
    display: flex !important;
    align-items: center;
    justify-content: center;
}

.popup-gallery .lateral-menu {
    flex: 0 0 17rem;
    font-size: 1.4rem;
}

.popup-gallery .lateral-menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.popup-gallery .lateral-menu ul li a {
    display: block;
    color: var(--gray);
    padding: 0.6rem 2rem;
    font-weight: 600;
    text-decoration: none;
    font-size: 1.4rem;
    transition: all .3s ease;
    border-radius: 1rem;
}

.popup-gallery .lateral-menu ul li a:hover,
.popup-gallery .lateral-menu ul li a.active {
    background: var(--primary-light);
}

.popup-gallery .lateral-menu ul li a.active {
    background: var(--primary);
    color: var(--white);
}

.popup-gallery .content {
    padding-right: 1rem;
    flex: 1;
}

.popup-gallery .content .gal-head {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 2rem;
}

.popup-gallery .content .gal-head .popup-close-btn {
    position: absolute;
    right: 2rem;
    top: 2rem;
    background: none;
    border-radius: 2rem;
    border: 2px solid var(--secondary);
    color: var(--secondary);
}

.popup-gallery .content .gal-head .popup-close-btn:hover {
    background: var(--secondary);
    color: var(--white);
}

.popup-gallery .content .gal-head h2 {
    margin: 0 0 1rem;
    font-weight: bold;
}

.popup-gallery .content .gal-head .hotel-name {
    font-weight: bold;
    font-size: 1.8rem;

}

.popup-gallery .gal-wrapper {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(26rem, 1fr));
    grid-auto-rows: max-content;
    gap: 2px;
    overflow: auto;
    height: calc(100vh - 18rem);
}

.popup-gallery .gal-wrapper a {
    display: block;
    font-size: 1.2rem;
    color: var(--black);
    text-decoration: none;
}

.popup-gallery .gal-wrapper a .gal-img {
    display: block;
    background-color: #f4f8fa;
    height: 19rem;
    background-size: cover;
    background-position: center;
    transition: all 0.3s ease;

    position: relative;
}

.popup-gallery .gal-wrapper a .gal-img:before {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background: #000000;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.39) 0%, rgba(0, 0, 0, 0) 56%);
    z-index: 1;
    transition: all .3s ease;
    opacity: 0;
}

.popup-gallery .gal-wrapper a:hover .gal-img:before {
    opacity: 1;
}

.popup-gallery .gal-wrapper a .gal-img .gal-title {
    position: absolute;
    color: var(--white);
    font-size: 1.2rem;
    padding: 1rem;
    bottom: 0;
    opacity: 0;
    z-index: 2;
    transition: all .3s ease;
}

.popup-gallery .gal-wrapper a:hover .gal-img .gal-title {
    opacity: 1
}

.search-box input {
    height: 4rem;
    border-radius: 6rem;
    border: 2px solid var(--primary-light);
    padding: 0 2rem;
    width: 100%;
}

.search-box .form-group {
    position: relative;
}

.search-box .form-group button {
    top: 9px;
    right: 10px;
    position: absolute;
    color: var(--gray);
    cursor: pointer;
    opacity: .5;
    border: 0;
    background: none;
}

.search-box .form-group button:hover {
    opacity: 1;
    color: var(--primary);
}

.search-box .form-group input:focus {
    border-color: var(--primary);
    outline: none;
}

.features-checks {
    margin: 0;
    padding: 0;
    list-style: none;
}

.features-checks li {
    margin: .8rem 0;
}

.features-checks li i {
    font-weight: 800;
    font-size: 1rem;
    width: 2rem;
    height: 2rem;
    background: var(--secondary-m);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 1rem;
    border-radius: 50%;
    color: var(--primary);
}

.swiper-button-next,
.swiper-button-prev {
    background: var(--primary);
    border-radius: 50%;
    width: 3.5rem !important;
    height: 3.5rem !important;
    *:
        all .2s ease;
}

.swiper-button-next:after,
.swiper-button-prev:after {
    font-size: 1.5rem !important;
    font-weight: bold;
    color: var(--white);
}

.swiper-button-next:hover,
.swiper-button-prev:hover {
    background: var(--primary);
    transform: scale(1.2);
}

.swiper-button-next:hover:after,
.swiper-button-prev:hover:after {
    color: var(--white);
}

.swiper-wrapper,
.swiper {
    width: 100%;
    max-width: 100%;
    max-height: 100vh;
    min-height: 0;
    min-width: 0;
}

/* Form */
body .gform-theme--framework .gform_validation_errors:focus {
    outline: none;
}

body .gform-theme--foundation .ginput_address_city,
body .gform-theme--foundation .ginput_address_country,
body .gform-theme--foundation .ginput_address_state,
body .gform-theme--foundation .ginput_address_zip {
    inline-size: -webkit-fill-available;
}

.gform_wrapper form .gform_footer input.gform_button {
    border-radius: 3rem !important;
    background: var(--primary) !important;
    font-weight: bold !important;
    padding: 1rem 3rem !important;
    transition: all .3s ease !important;
}

.gform_wrapper form .gform_footer input.gform_button:hover {

    background: var(--secondary) !important;
}

.gform-theme--foundation .gfield .ginput_password.medium,
.gform-theme--foundation .gfield input.medium,
.gform-theme--foundation .gfield select.medium,
.gform-theme--foundation .gfield textarea,
.gform-theme--foundation .ginput_container--name input,
.gform-theme--foundation .gfield .ginput_password.large,
.gform-theme--foundation .gfield input.large,
.gform-theme--foundation .gfield select.large,
.gform-theme--framework .gfield--input-type-datepicker .ginput_container_date input,
.gform-theme--foundation .gfield .ginput_password,
.gform-theme--foundation .gfield select {
    outline: none !important;
    border: 2px solid var(--gray-light) !important;
    height: 4.5rem !important;
    border-radius: 10px !important;
    width: 100%;
    display: block;
    inline-size: 100% !important;
}

.gform-theme--foundation .ginput_container .gfield_choice_all_toggle {
    background: none !important;
    color: var(--gray) !important;
    border: 2px solid var(--gray) !important;
    border-radius: 2rem !important;
    outline: none !important;
    padding: 5px 20px !important;
}

.gform-theme--foundation .ginput_container .gfield_choice_all_toggle:hover {
    background: var(--gray) !important;
    color: var(--white) !important;
}

.gform-theme--foundation .gfield textarea {
    height: 15rem !important;
}

.gform-theme--foundation .gfield_description a {
    font-weight: 600;
    font-size: 1.4rem;
}

.gform-theme--foundation .gsection_title {
    font-weight: bold;
    font-size: 2rem;
}

.gform-theme--foundation .gform_required_legend {
    display: none;
}

.gform-theme--foundation .form-phone a {
    display: inline-block;
    background: var(--primary);
    color: var(--white);
    border-radius: 2rem;
    padding: 1rem 2.5rem;
    font-weight: bold;
    transition: all .3s ease;
}

.gform-theme--foundation .form-phone a:hover {
    background: var(--violet);
}

.gform-theme--foundation .gfield_description a:hover {
    text-decoration-thickness: 2px;
    text-decoration-line: underline;
}

.gform-theme--foundation .gfield .ginput_password.medium:focus,
.gform-theme--foundation .gfield input.medium:focus,
.gform-theme--foundation .gfield select.medium:focus,
.gform-theme--foundation .gfield textarea:focus,
.gform-theme--foundation .ginput_container--name input:focus,
.gform-theme--foundation .gfield .ginput_password.large:focus,
.gform-theme--foundation .gfield input.large:focus,
.gform-theme--foundation .gfield select.large:focus,
.gform-theme--framework .gfield--input-type-datepicker .ginput_container_date input:focus {
    border-color: var(--primary) !important;
}

/*Post Editor */
.post-editor a {
    font-weight: bold;
    color: var(--primary);
}

.post-editor a:hover {
    text-decoration: underline;
}

.post-editor h2 {
    font-weight: bold;
    margin: 2rem 0;
    line-height: 1.4;
    color: var(--gray) !important;
    border-bottom: 2px solid;
    padding-bottom: 1rem;
}

.post-editor h3 {
    font-weight: bold;
    margin: 2rem 0;
    line-height: 1.4;
    color: var(--gray) !important;
}

/* Viva card Over */
.viva-card-info.style-card_over {
    overflow: hidden;
    border-radius: 2rem;
    background-color: #bebebe;
    position: relative;
    cursor: pointer;
}

.viva-card-info.style-card_over .wrap-img {
    display: block;
    height: 32rem;
    background-size: cover;
    background-position: center;
}

.viva-card-info.style-card_over .front {
    position: absolute;
    bottom: 1.3rem;
    padding: 0 2rem;
    transition: all .5s ease;
    visibility: visible;
    z-index: 2;
}

.viva-card-info.style-card_over:hover .front {
    bottom: 0;
    opacity: 0;
    visibility: hidden;
}

.viva-card-info.style-card_over:after {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background: #000000;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.39) 0%, rgba(0, 0, 0, 0) 56%);
    z-index: 0;
    transition: all .3s ease;
}

.viva-card-info.style-card_over .front .title {
    color: var(--white);
    font-weight: bold;
}

.viva-card-info.style-card_over .back .title {
    color: var(--white);
    font-weight: bold;
    margin: 0 0 1rem;
}

.viva-card-info.style-card_over .back {
    position: absolute;
    left: 0;
    top: 100%;
    padding: 2rem;
    background: #19394eb5;
    width: 100%;
    height: 100%;
    font-size: 1.2rem;
    color: #ffffff;
    transition: all .6s ease;
    opacity: 0;
}

.viva-card-info.style-card_over:hover .back {
    opacity: 1;
    top: 0;
}

/* Viva Card Info */
.viva-card-info.style-card {
    color: var(--white);
    text-align: center;
    display: flex;
    flex-direction: column;
    min-height: 52rem;
}

.viva-card-info.style-card .wrap-img {
    display: block;
    position: relative;
    height: 35rem;
    border-radius: 2rem;
    overflow: hidden;
}

.viva-card-info.style-card .wrap-img .img {
    position: absolute;
    width: 100%;
    height: 100%;
    display: block;
    background-size: cover;
    background-position: center;
    transition: transform 2s ease;
}

.viva-card-info.style-card .wrap-img:hover .img {
    transform: scale(1.2);
}

.viva-card-info.style-card .wrap-img:after {
    content: '';
    display: block;
    position: absolute;
    width: calc(100% - 2rem);
    height: calc(100% - 2rem);
    border-radius: 2rem;
    border: 1px solid var(--white);
    z-index: 2;
    left: 1rem;
    top: 1rem;
    transition: all .5s ease;
}

.viva-card-info.style-card .wrap-img:hover:after {
    width: calc(100% - 4rem);
    height: calc(100% - 4rem);
    left: 2rem;
    top: 2rem;
}

.viva-card-info.style-card .title {
    color: var(--white);
    font-weight: 700;
    margin: 2rem 0 1rem;
    font-size: 2rem;
}

.viva-card-info.style-card .subtitle {
    font-weight: 300;
    line-height: 1.4;
    font-size: 1.4rem;
    margin-bottom: 2rem;
}

.viva-card-info.style-card .btn-one {
    font-weight: 600;
    line-height: 1;
    font-size: 1.4rem;
    background: none;
    border-radius: 3rem;
    border: 2px solid var(--secondary);
}

.viva-card-info.style-card .btn-one:hover {
    background: var(--secondary);
}

.viva-card-info.style-card .cta {
    margin-top: auto;
}

/* Destinations */
.destinations-card {
    display: flex;
    justify-content: center;
    gap: 4rem;
    position: relative;
    padding: 0 2rem
}

.destinations-card:before {
    content: '';
    display: block;
    width: 100%;
    height: 10rem;
    position: absolute;
    background: url('../img/ribbon.svg') 0 0 no-repeat;
    background-size: contain;
    top: 50%;
}

.card-dest {
    display: block;
    border-radius: 10rem;
    border-top-left-radius: 33rem;
    background: #ddd1d1;
    height: 40rem;
    width: 30%;
    position: relative;
    overflow: hidden;
    color: var(--white);
}

.card-dest:before {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background: #000000;
    background: linear-gradient(0deg, rgb(0 0 0) 0%, rgb(0 0 0 / 22%) 56%);
    z-index: 1;
    transition: all .3s ease;
    opacity: .3;
}

.card-dest:hover:before {
    opacity: .8;
}

.card-dest .wrap-img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center top;

}

.card-dest:hover .wrap-img {
    transform: Scale(1.1);
}

.card-dest .wrap-info {
    position: absolute;
    bottom: 4rem;
    left: 1tem;
    width: 100%;
    padding: 0 5rem;
    color: var(--white);
    z-index: 2;
    top: 80%;
    transition: all .5s ease;
}

.card-dest:hover .wrap-info {
    top: 30%;
}

.card-dest .wrap-info .title {
    font-weight: 700;
    font-size: 2.6rem;
    line-height: 1.1;
    margin-bottom: 1rem;
    height: 7rem;
    display: inline-flex;
    justify-content: center;
    align-items: center;

}

.viva-card-dest .card-dest .wrap-info .title {
    font-size: 2.2rem;
}

.card-dest .wrap-info .desc {
    font-size: 1.3rem;
    line-height: 1.2;
}

/* Elementor Post List*/
.elementor-post .elementor-post__thumbnail__link {
    transition: all .3s ease;
}

.elementor-post .elementor-post__thumbnail__link:hover {
    opacity: .8
}

.elementor-post .elementor-post__title:hover {
    text-decoration-line: underline;
    text-decoration-thickness: 3px;
}

.elementor-post .elementor-post__read-more {
    transition: all .3s ease;
}

.elementor-post .elementor-post__read-more i {
    display: inline-block;
    position: relative;
    margin-left: .5rem;
    left: 0;
    transition: all .3s ease;
    font-size: 80%;
}

.elementor-post .elementor-post__read-more:hover {
    color: var(--primary) !important;
}

.elementor-post .elementor-post__read-more:hover i {
    left: .5rem;
}

/* Viva Tab Country */
.viva-tabs-country {
    font-size: 1.3rem;
}

.viva-tabs-country .tabs-head {
    display: flex;
    border-radius: 20px;
    overflow: hidden;
}

.viva-tabs-country .tabs-head a {
    flex: 1;
    display: flex;
    gap: 20px;
    align-items: center;
    padding: 20px;
    background: var(--secondary-light);
    border-bottom: 4px solid var(--secondary-light);
    color: var(--gray);
}

.viva-tabs-country .tabs-head a:hover,
.viva-tabs-country .tabs-head a.active {
    background: var(--white);
    border-bottom: 4px solid var(--secondary-light);
}

.viva-tabs-country .tabs-head a .icon {
    width: 25px;
}

.viva-tabs-country .tabs-head a .title {
    font-weight: 700;
    font-size: 1.6rem;
    margin-bottom: 4px;
    color: var(--primary);
}

/* Ultimate Member */
body .um {
    font-size: 1.4rem;
}

body .um .um-button-social {
    font-size: 1.4rem;
}

body .um .um-toggle-gdpr {
    font-weight: 600;
    color: var(--gray);
    margin-top: 2rem;
    display: inline-block;
}

body .um .um-toggle-gdpr:hover {
    text-decoration: underline;
}

body .um .um-gdpr-content {
    max-height: 20rem;
    font-size: 1.2rem;
    color: var(--gray);
    overflow: auto;
    border: 2px solid var(--grayl);
    padding: 2rem;
    background: #f0f4f7
}

body .um .um-gdpr-content h2 {
    font-weight: bold;
    color: var(--gray);
    margin: 2rem 0;
    font-size: 1.5rem;

}

body .um .um-gdpr-content h3 {
    font-weight: 600;
    color: var(--gray);
    font-size: 1.4rem;

}

body .um .um-gdpr-content a {
    color: var(--primary);
}

body .um .um-gdpr-content a:hover {
    text-decoration: underline;
}

body .um.um-login {
    max-width: 500px
}

body .um-field-password .um-field-area {
    position: relative;
}

body .um-field-password .um-field-area i:after {
    content: "\f06e";
    font-family: "Font Awesome 5 Free";
    font-style: normal;
    width: 10px;
    height: 10px;
    position: absolute;
    right: 18px;
    top: 10px;
    cursor: pointer;
    opacity: .7;
    transition: all .3s ease;
    display: inline-block;
}

body .um-field-password .um-field-area.active i:after {
    content: "\f070";
}

body .um-field-password .um-field-area input {
    padding-right: 3rem !important;
}

body .um-field-password .um-field-area i:hover:after {
    content: "\f06e";
    color: var(--primary);
    opacity: 1
}

body .um.um-register {
    margin: 0;
    max-width: inherit;
}

body .um .um-field-label label {
    color: var(--gray);
    font-size: 1.4rem;
}

body .um a.um-button,
body .um a.um-button.um-disabled:active,
body .um a.um-button.um-disabled:focus,
body .um a.um-button.um-disabled:hover,
body .um input[type=submit].um-button,
body .um input[type=submit].um-button:focus {
    background: var(--primary);
    font-weight: bold !important;
}

body .um .um-form input[type=password],
body .um .um-form input[type=search],
body .um .um-form input[type=tel],
body .um .um-form input[type=text],
body .um .um-form textarea {
    border: 2px solid var(--grayl) !important;
    color: var(--gray);
}

body .um .um-form input[type=password]:focus,
body .um .um-form input[type=search]:focus,
body .um .um-form input[type=tel]:focus,
body .um .um-form input[type=text]:focus,
body .um .um-form textarea:focus {
    border: 2px solid var(--gray) !important;
}

/* Contact Hotels */
.hotels-contact {
    display: grid;
    gap: 3rem;
    grid-template-columns: repeat(auto-fit, minmax(34rem, 1fr));
}

.card-hotel-one {
    color: var(--gray);
    font-weight: 500;
}

.card-hotel-one .wrap-img {
    margin-bottom: 2rem;
    display: block;
    border-radius: 1rem;
    overflow: hidden;
}

.card-hotel-one .img {
    height: 19rem;
    background-size: cover;
    background-position: center;
    transition: all .3s ease;
}

.card-hotel-one .wrap-img:hover .img {
    transform: scale(1.1);
}

.card-hotel-one .title {
    margin: 0 0 .2rem 0;
}

.card-hotel-one .title a {
    font-weight: bold;
    font-size: 2rem;
}

.card-hotel-one .title a.underlined:after {
    background: var(--primary);
}

.card-hotel-one .region {
    font-weight: 600;
    font-size: 1.6rem;
    color: var(--secondary);
}

.card-hotel-one .phone {
    margin-top: 2rem;
}

.card-hotel-one ul {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 1.3rem;
}

.card-hotel-one ul li a {
    color: var(--gray);
}

.card-hotel-one ul li a.underlined:after {
    background: var(--gray);
}

.card-hotel-one ul li i {
    margin-right: .5rem;
}

/* Galleries Actions */
.galleries-actions {
    display: flex;
    gap: 2rem;
    justify-content: center;
}

.galleries-actions a {
    display: flex;
    gap: 1rem;
    background: var(--white);
    border-radius: 3rem;
    font-weight: 800;
    color: var(--gray) !important;
    padding: 8px 15px;
}

.galleries-actions a i {
    font-size: 2rem;
}

.galleries-actions a i.loader {
    position: relative;
    top: 2px;
    display: none;
}

.popup-gallery--active .galleries-actions a i {
    display: none;
}

.popup-gallery--active .galleries-actions a i.loader {
    display: inline-block;
}

.galleries-actions a:hover {
    background: var(--primary);
    color: var(--white) !important;
}

.galleries-actions a:hover i.loader {
    border-color: var(--white);
}

/* Offers */
.offers-list .card-offer {
    margin: 6rem 0;
}

.viva-tabs-content .offers-list .card-offer {
    margin: 2rem 0;
}

.card-offer {
    display: flex;
}

.card-offer .gal {
    flex: 0 0 33rem;
    position: relative;
}

.card-offer .gal .swiper {
    max-width: 100%;
}

.card-offer .gal .swiper-slide {
    max-width: 100% !important;
    width: 100% !important;
}

.card-offer .gal .swiper-slide a {
    display: block;
    background-size: cover;
    background-position: center;
    height: 24rem;
    border-radius: 1.5rem;
    transition: all .3s ease;
}

.card-offer .gal .swiper-slide a:hover {
    opacity: .8
}

.card-offer .offer-badge {
    display: inline-block;
    background: var(--gray);
    transform: skewX(-10deg);
    color: var(--white);
    padding: 5px 10px;
    font-weight: bold;
    text-transform: uppercase;
    font-size: 1.2rem;
}

.card-offer .offer-badge.green {
    background: var(--green);
}

.card-offer .offer-badge.orange {
    background: var(--secondary-light);
    color: var(--brown);
}

.card-offer .offer-badge span {
    display: inline-block;
    transform: skewX(10deg);
}

.card-offer .info {
    padding-left: 3rem;
    flex: 1;
}

.card-offer.vertical .info {
    padding: 2rem 0 0;
}

.card-offer .info .title-wrap {
    display: flex;
    gap: 2rem;
}

.card-offer .info .title-wrap .title {
    font-weight: bold;
    margin: 0 0 .2rem;
}

.card-offer .info .title-wrap .subtitle {
    font-weight: 600;
    font-size: 1.6rem;
    color: var(--secondary);
}

.card-offer .info .desc {
    margin: 1rem 0;
    font-size: 1.3rem;
}

.card-offer .prices-wrap del {
    color: var(--secondary);
    font-weight: 500;
    font-size: 1.6rem;
    margin: 0 .5rem;
}

.card-offer .prices-wrap ins {
    color: var(--primary);
    font-weight: bold;
    font-size: 2rem;
    text-decoration: none;
}

.card-offer .prices-wrap .txt-price {
    font-weight: bold;
    font-size: 100%;
    color: var(--primary);
}

.card-offer.vertical {
    display: block;
}

.card-offer .btn-one {
    text-transform: uppercase;
    font-size: 1.5rem;
}

/* viva album Widget */
.viva-album .gal {
    position: relative;
}

.viva-album .gal .swiper {
    max-width: 100%;
}



.viva-album .gal .swiper-slide a {
    display: block;
    background-size: cover;
    background-position: center;
    height: 35rem;
    border-radius: 1.5rem;
    transition: all .3s ease;
}

.viva-album .gal .swiper-slide a:hover {
    opacity: .8
}

/* Title Wrap */
.title-wrap .elementor-heading-title {
    display: inline-flex;
    margin: 0 5rem;
    align-items: center;
}

.title-wrap .elementor-heading-title:before,
.title-wrap .elementor-heading-title:after {
    display: inline-block;
    content: '';
    width: 2rem;
    height: 1.4rem;
    border-radius: 7px;
    background: var(--secondary);
    margin: 0 3rem;
}

.div-label .elementor-heading-title {
    font-weight: bold;
    font-size: 1.6rem;
    background: var(--secondary);
    display: inline-block;
    border-radius: 2rem;
    padding: .7rem 3rem;
    color: var(--white);
}

.trans-3 {
    transition: all .3s ease;
}

/*  Read More Wrap */
.read-more-wrap .elementor-widget-container .cta-more a {
    font-weight: bold;
    display: inline-block;
    text-decoration: none;
}

.read-more-wrap .elementor-widget-container p:nth-child(n+3),
.read-more-wrap.expanded .elementor-widget-container .cta-more {
    display: none;
}

.read-more-wrap.expanded .elementor-widget-container p,
.read-more-wrap.aexpanded .elementor-widget-container p:nth-child(n+3) {
    display: block;
}

.daterangepicker .calendar-table th {
    color: var(--primary);
}

.daterangepicker .calendar-table th,
.daterangepicker .calendar-table td {
    font-family: 'Poppins', sans-serif;

}

.daterangepicker .calendar-table td {
    font-weight: 600;
}

.daterangepicker .calendar-table td.off {
    opacity: .3
}

body .text-primary {
    color: var(--primary) !important;
}

.text-primary.underlined:after {
    background: var(--primary);
}

.text-orange {
    color: var(--secondary);
}

.text-base {
    color: var(--gray) !important;
    font-weight: 500;
}

.text-base.underlined:after {
    background: var(--gray) !important;
}

body .dropdown-menu {
    background: var(--white);
    list-style: none;
    margin: 0;
    padding: 1.5rem;
    font-size: 1.2rem;
    font-weight: 500;
    font-family: 'Poppins', sans-serif;
    border-radius: .5rem;
    color: var(--gray);
    font-weight: 500;
    min-width: 24rem;
}

body .dropdown-toggle {
    padding: 0;
    border: 0;
    transition: all .3s ease;
}

body .dropdown-toggle:hover {
    opacity: .8;
}

body .dropdown-toggle:active {
    color: var(--white) !important;
}

body .dropdown-toggle::after {
    font-size: 120%;
    transition: all .3s ease;
    vertical-align: middle;
}

body .dropdown-menu .form {
    gap: 0;
}

body .dropdown-menu .form .form-control,
body .dropdown-menu .form .form-select {
    height: 3.5rem;
    font-size: 1.2rem;
    font-weight: 500;
    box-shadow: none;
    border: 2px solid var(--grayl);
}

body .dropdown-menu .form .form-control:focus,
body .dropdown-menu .form .form-select:focus {
    border: 2px solid var(--gray);
}

body .dropdown-menu .form .form-control::placeholder {
    color: #b1b1b1;
}

body .dropdown-toggle.show::after {
    transform: rotate(-180deg);
}

/* Initial state */

.dropdown-zoom {
    transform: scale(0.95);
    opacity: 0;
    transition: all 0.2s ease-in-out;
}

.show.dropdown-zoom {
    transform: scale(1);
    opacity: 1;
}

.btn-one {
    background: var(--primary);
    display: inline-block !important;
    border-radius: 4rem !important;
    color: var(--white) !important;
    padding: 1rem 2rem !important;
    line-height: 1.3;
    text-decoration: none !important;
    transition: all .3s ease;
    border: 0;
    cursor: pointer;
}

.btn-one:hover {
    background: var(--gray);
}

.btn-one.orange {
    background: var(--secondary);
}

.btn-one:hover {
    background: var(--gray);
}

.footer-more-menu .elementor-nav-menu {
    column-count: 2;
    column-gap: 1rem;
}

/* Call Now */
.call-now-list {
    margin: 0;
    list-style: none;
    padding: 0;
    font-weight: 500;
}

.call-now-list li {
    margin: 2px 0;
}

.call-now-list a {
    font-weight: bold;
}

.call-now-list a:hover {
    text-decoration: underline;
}

.call-now-top a.btn {
    color: var(--white);
    font-weight: bold;
    font-size: 1.3rem;
    padding: 0;
    border: 0;
    text-transform: uppercase;
}

.call-now-top a.btn:active {
    color: var(--white);
    border: 0;
}

.call-now-top .dropdown-menu li.main {
    border-bottom: 0;
}

.call-now-top .dropdown-menu li.main a {
    font-size: 1.4rem;
}

.call-now-top .dropdown-menu li {
    padding: .4rem 0;
    border-bottom: 1px solid #e0e0e0;
}

.call-now-top .dropdown-menu li a {
    font-weight: bold;
    display: inline-block;
}

.call-now-top .dropdown-menu li a:hover {
    text-decoration: underline;
}

/* TOP MENU */
.top-menu .menu-item>a {
    color: var(--white);
    font-size: 1.3rem;
    font-weight: 600;
}

.underlined {
    display: inline-block;
    position: relative;
}

.underlined:after {
    content: '';
    display: block;
    height: 2px;
    background: var(--white);
    width: 0%;
    transition: all .3s ease;
}

.btn-single.underlined:after {
    background: var(--primary);
}

.underlined:hover:after {
    width: 100%;
}

.tabs-head-list {
    justify-content: center;
    text-align: center;
    margin: 3rem 0 5rem 0;
}

.tabs-head-list .wrap {
    display: inline-flex;
    justify-content: center;
    background: var(--primary-light);
    border-radius: 3rem;
    flex-wrap: wrap;
}

.tabs-head-list.white .wrap {
    background: none;
}

.tabs-head-list.white .wrap a {

    box-shadow: 0px 2px 1px var(--primary) !important;
}

.tabs-head-list.white a.active,
.tabs-head-list.white a:hover {
    background: var(--primary);
}

/* tab head violet */
.tabs-head-list.violet .wrap {
    background: var(--secondary-light);
}

.tabs-head-list.violet a.active,
.tabs-head-list.violet a:hover {
    background: var(--violet);
}

.tabs-head-list a {
    display: inline-flex;
    border-radius: 3rem;
    font-weight: 600;
    color: var(--gray) !important;
    padding: .7rem 2.5rem;
    font-size: 1.5rem;
    gap: 1rem;
}

.tabs-head-list a:hover,
.tabs-head-list a.active {
    background: var(--secondary);
    color: var(--white) !important;
}

/* Viva Tabs */
.wp-singular .viva-tabs-content {
    display: none !important;
}

.elementor-editor-active .viva-tabs-content,
.wp-singular .viva-tabs-content.active {
    display: inherit !important;
}

.viva-tabs .gal {
    position: relative;
}

.viva-tabs .gal .swiper {
    max-width: 100%;
}

.viva-tabs .gal .swiper-slide {
    max-width: 100% !important;
    width: 100% !important;
}

.viva-tabs .gal .swiper-slide a {
    display: block;
    background-size: cover;
    background-position: center;
    height: 49rem;
    border-radius: 1.5rem;
    transition: transform .3s ease;
    -webkit-mask-image: url('../img/egg-graph.svg');
    mask-image: url('../img/egg-graph.svg');
    mask-repeat: no-repeat;
}

/*
.viva-tabs .gal .swiper-slide a:hover {
    transform:scale(.95)
}*/

.viva-tabs .tab-content {
    display: none;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
}

.viva-tabs .tab-content.active {
    display: grid;
}

.viva-tabs .tab-content .tab-info .description {
    color: var(--gray);
    font-weight: 500;
    margin-bottom: 2rem;
    border-bottom: 1px solid var(--gray-light);
    padding-bottom: 1rem;
}

.viva-tabs .tab-content .tab-info .wrap-btn {
    margin-top: 3rem;
}

.viva-tabs .tab-content .tab-info .wrap-btn .btn-one {
    font-size: 1.8rem;
    background: var(--secondary);
}

.viva-tabs .tab-content .tab-info .wrap-btn .btn-one:hover {

    background: var(--primary);
}

.viva-tabs .tab-content .tab-info .features-checks {
    margin: 0;
    padding: 0;
    list-style: none;
    font-weight: 500;
    column-count: 2;
    column-gap: 3rem;
    list-style-position: inside;
}

.viva-tabs .tab-content .tab-info .features-checks li {
    margin-bottom: 1rem;
    cursor: pointer;
}

.viva-tabs .tab-content .tab-info .features-checks li i {
    flex: 0 0 2rem;
    transition: all .2s ease
}

.viva-tabs .tab-content .tab-info .features-checks li:hover i {
    background: var(--primary);
    color: var(--white);
}

.viva-tabs .tab-content .tab-info .features-checks li:hover {
    color: var(--primary);
}

/* Viva Card Excursions */
.card-excursion {
    display: flex;
    gap: 5rem;
    align-items: center;
}

.card-excursion .wrap-img {
    flex: 0 0 60rem;
}

.card-excursion .info .title {
    font-weight: bold;
    font-size: 2.3rem;
    margin: 0;
}

.card-excursion .info .desc {
    margin: 2rem 0;
}


/* Viva Icon List*/
.viva-icon-list {
    display: grid;
    gap: 3rem;
    grid-template-columns: repeat(auto-fit, minmax(34rem, 1fr));
}

.viva-icon-list aside {
    display: flex;
    gap: 2rem;
    align-items: center;
}

.viva-icon-list aside .wrap-img {
    flex: 0 0 7rem;
}

.viva-icon-list aside .wrap-img img {
    width: 100%;
    transition: all .3s ease;
}

.viva-icon-list aside .title {
    font-weight: 600;
    font-size: 1.6rem;
}

.viva-icon-list aside:hover .wrap-img img {
    transform: scale(1.15)
}


/* Viva Mini Cards */
.viva-mini-cards {
    display: grid;
    gap: 4rem;
    grid-template-columns: repeat(auto-fit, minmax(40rem, 1fr));
}

.viva-mini-cards aside {
    display: flex;
    gap: 3rem;
}

.viva-mini-cards aside .img {
    display: block;
    height: 16rem;
    background-color: #e1e1e1;
    background-size: cover;
    background-position: center;
    transition: all .5s ease;
}

.viva-mini-cards aside .img-wrap {
    display: block;
    text-decoration: none;
    overflow: hidden;
    flex: 0 0 23rem;
    border-radius: 2rem;
}

.viva-mini-cards aside .img-wrap:hover .img {
    transform: scale(1.2)
}

.viva-mini-cards aside .info {
    display: flex;
    flex-direction: column;
    padding: 2rem 0;
}

.viva-mini-cards aside .title {
    font-weight: bold;
    font-size: 2rem;
    line-height: 1.3;
}

.viva-mini-cards aside .cta {
    margin-top: auto;
}

/* Top account lang */

.cs-btn-woo-account {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    position: relative;
    font-size: 12px;
    align-items: center;
    z-index: 3;
    gap: 10px;
}

.cs-btn-woo-account .btn-login {
    background: var(--primary);
    color: var(--white);
    text-decoration: none !important;
    border-radius: 4rem;
    padding: 3px 3rem !important;
    font-size: 1.1rem;
}

.cs-btn-woo-account .btn-login strong {
    display: block;
    font-size: 110%;
    text-transform: uppercase;
}

.cs-btn-woo-account .btn-login:hover,
.cs-btn-woo-account .btn-login:active {
    background: var(--secondary) !important;
}

.cs-btn-woo-account p,
.cs-btn-woo-account br {
    display: none;
}

.cs-btn-woo-account a {
    transition: all 0.3s ease;
}

.cs-btn-woo-account .dropdown-content {
    position: absolute;
    background: #fff;
    top: 98%;
    width: 100%;
    box-shadow: 0 5px 1rem rgba(0, 0, 0, 0.2);
    border-radius: 5px;
    display: none;
    z-index: 1;
    padding-bottom: 1rem;
    max-width: 193px;
    right: 0;
}

.cs-btn-woo-account .dropdown-content ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.cs-btn-woo-account .dropdown-content ul li a {
    padding: 5px 10px;
    display: block;
    font-size: 12px;
    font-weight: 500;
    transition: all 0.3s ease;
    text-decoration: none !important;
    color: var(--black) !important;
}

.cs-btn-woo-account .dropdown-content ul li.logout a {
    color: var(--danger) !important;
    text-decoration: none !important;
}

.cs-btn-woo-account .dropdown-content ul li a:hover {
    background: var(--grayl);
    opacity: 1;
}

.cs-btn-woo-account .btn-myaccount {
    display: flex;
    align-items: center;
    transition: all 0.3s ease;
    background: #eaf3f8;
    padding: 6px 13px;
    border-radius: 5px;
    color: var(--gray);
    line-height: 1;
    text-decoration: none !important;
}

.cs-btn-woo-account .btn-myaccount:hover {
    background: var(--primary);
    opacity: 1;
    color: var(--white);
}

.cs-btn-woo-account .wrap-cta:hover .dropdown-content {
    display: block;
    padding: 0;
}

.cs-btn-woo-account .btn-myaccount .wrap-icon {
    font-size: 20px;
    margin-right: 10px;
}

.cs-btn-woo-account .btn-myaccount .wrap-info {
    font-size: 13px;
}

.cs-btn-woo-account .btn-myaccount .wrap-info small {
    display: block;
}

.top-account {
    display: flex;
    gap: 3rem;
    justify-content: flex-end;
}

.top-account .trp-language-switcher {
    border-radius: 1rem !important;
    width: 13rem;
}

.top-account .trp-language-switcher .trp-ls-shortcode-current-language,
.top-account .trp-language-switcher .trp-ls-shortcode-current-language,
.top-account .trp-language-switcher .trp-ls-shortcode-language {
    width: 100% !important;
    padding: 0;
}

.top-account .trp-language-switcher .trp-ls-shortcode-language,
.top-account .trp-language-switcher .trp-ls-shortcode-current-language {
    border-radius: 1rem;
    border: 2px solid #eaf3f8;
    padding: 0 !important;
}

.top-account .trp-language-switcher>div>a {

    font-size: 1.3rem;
    font-weight: 600;
}

.top-account .trp-language-switcher>div>a:hover {
    background-color: var(--primary-light);
}

.top-account .wrap-lang .i-flag {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background-color: #dedede;
    display: inline-block;
    background-size: cover;
    background-position: center;
}

.top-account .wrap-lang .dropdown-toggle {
    display: inline-block;
}

.top-account .wrap-lang .dropdown-toggle:after {
    vertical-align: text-top;
}

.top-account .wrap-lang .dropdown-menu .i-flag {
    width: 2rem;
    height: 2rem;
}

.top-account .wrap-lang .dropdown-menu li a {
    display: flex;
    color: var(--gray);
    gap: 1rem;
    align-items: center;
    transition: all .3s ease;
    font-weight: 600;
    font-size: 1.3rem;
    padding: 5px 8px;
    border-radius: 5px;
}

.top-account .wrap-lang .dropdown-menu li a:hover,
.top-account .wrap-lang .dropdown-menu li.active a {
    font-weight: 800;
    background: var(--primary-light)
}


/* Viva Form */



.viva-form-wrapper.float {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    width: 100%;
    height: 100%;
    backdrop-filter: blur(11px);
    display: none;
    background: #0000008f;
}

.viva-form-wrapper.active {
    display: block;
}

.viva-form-search.internal {
    margin-top: -23rem;
}

.viva-form-search {
    font-size: 1.3rem;
    font-weight: 500;
    padding: 0;
    top: 0;
    position: relative !important;
    z-index: 9;
    display: block;
    border-radius: 1rem;
}

.viva-form-wrapper.float .viva-form-search {
    top: 30vh;
}

.viva-form-search .icon-close {
    width: 2.7rem;
    height: 2.7rem;
    border-radius: 50%;
    background: var(--gray);
    position: absolute;
    right: 0;
    top: -2rem;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    color: var(--white);
    cursor: pointer;
}

.viva-form-search.normal .icon-close {
    display: none;
}

#viva-form-app-float .viva-form-search .icon-close {
    display: inline-flex;
}

.viva-form-search .icon-close:hover {
    background: var(--secondary);
}

.viva-form-wrapper.float .viva-form-search {

    margin: 0 auto;
    max-width: 100rem;
}

.viva-form-wrapper .viva-form-search.mexico,
.viva-form-wrapper.mx .viva-form-search.normal {
    display: none;
}

.viva-form-wrapper.mx .viva-form-search.mexico {
    display: block;
}

.viva-form-search.no-padding {
    padding: 0;
}

.viva-form-search * {
    box-sizing: border-box;
}

.viva-form-search .wrap-tab-content {
    background: var(--primary);
    border-bottom-right-radius: 2rem;
    border-bottom-left-radius: 2rem;
}

.viva-form-search .DayPicker_weekHeaders ul {
    margin-left: 0;
    margin-bottom: 1rem !important;
}

.viva-form-search .CalendarDay__default:hover {
    background: var(--primary);
    color: var(--white);
}

.viva-form-search .CalendarMonth_table {
    padding-top: 50px !important;
    background: #ebf5fb;
    margin-top: 0.5rem;
}

.viva-form-search .tab-content {
    padding: 15px;
    color: var(--white);
}

.viva-form-search .tab-content form {
    display: flex;
    gap: 10px 15px;
    flex-wrap: wrap;
}

.viva-form-search .tab-content .wrap-input {
    flex: 1 0 18%;
    position: relative;
    text-align: left;
}

.viva-form-search .tab-content .wrap-input.input-date-wrap i,
.viva-form-search .tab-content .wrap-input.select-wrap i {
    position: absolute;
    color: var(--gray);
    top: 11px;
    right: 10px;
    font-size: 16px;
    pointer-events: none;
}

.viva-form-search .tab-content .wrap-input.input-date-wrap input {
    padding-right: 35px;
    margin: 0;
}

.viva-form-search .tab-content .icon-gear button {
    height: 40px;
    width: 100px;
    font-size: 14px;
    font-weight: 700;
    background: 0 0;
    border: 0;
    cursor: pointer;
    color: var(--white);
    text-align: center !important;
}

.viva-form-search .tab-content .icon-gear button i {
    margin-right: 5px;
}

.viva-form-search i:before {
    font-family: "font awesome 5 free" !important;
}

.viva-form-search .tab-content .icon-gear button:hover {
    color: var(--third);
}

.viva-form-search .tab-content .wrap-bottom {
    flex: 0 0 100%;
    display: flex;
    justify-content: center;
    gap: 15px;
}

.viva-form-search .tab-content .wrap-bottom .wrap-input {
    flex: 0 20%;
}

.viva-form-search .tab-content .wrap-input.active i {
    transform: rotate(180deg);
}

.viva-form-search .tab-content .wrap-input label {
    display: block;
    margin-bottom: 5px !important;
    line-height: 1 !important;
}

.viva-form-search .tab-content .wrap-input input,
.viva-form-search .tab-content .wrap-input select {
    display: block;
    width: 100%;
    background: var(--white);
    height: 40px;
    font-weight: 500;
    padding: 0 10px;
    border-radius: 5px !important;
    border: 0;
    outline: none !important;
    color: var(--gray);
}

.viva-form-search .tab-content .wrap-input select {
    padding-right: 30px;
}

.viva-form-search .tab-content .wrap-input input::placeholder,
.viva-form-search .tab-content .wrap-input input::placeholder {
    color: var(--gray);
    opacity: 1;
}

.viva-form-search .tab-content .wrap-input input:focus,
.viva-form-search .tab-content .wrap-input select:focus {
    background: var(--primary-light);
    border-color: var(--primary) !important;
}

.viva-form-search .tab-content .wrap-calc-habs {
    display: flex;
    justify-content: space-between;
    height: 40px;
    align-items: center;
    border-radius: 5px !important;
    cursor: pointer;
    padding: 0 10px;
    background: var(--white);
    border: 0;
    color: var(--gray) !important;
    font-weight: 500 !important;
}

.viva-form-search .tab-content .wrap-calc-habs strong {
    font-weight: 500;
}

.viva-form-search .tab-content .wrap-calc-habs:hover,
.viva-form-search .tab-content .wrap-input.active .wrap-calc-habs {
    background: var(--primary-light);
    border-color: var(--primary) !important;
    color: var(--gray);
}

.viva-form-search .tab-content .drop {
    background: var(--white);
    position: absolute;
    width: 253px;
    padding: 15px;
    border-radius: 10px;
    box-shadow: 0 5px 15px rgb(0 0 0/20%);
    display: none;
    z-index: 2;
}

.viva-form-search .tab-content .drop ul {
    margin: 0;
    padding: 0;
    list-style: none;
    max-height: 200px;
    overflow: auto;
}

.viva-form-search .tab-content .drop ul li {
    padding: 5px 10px !important;
    border-bottom: 1px solid var(--gray1) !important;
    cursor: pointer;
    color: var(--gray);
}

.viva-form-search .tab-content .drop ul li:hover {
    background: var(--primary-light);
}

.viva-form-search .tab-content .drop.active {
    display: block;
}

.viva-form-search .tab-content .wrap-calc-habs+.drop .line {
    display: flex;
    justify-content: space-between;
    margin-bottom: 15px;
}

.viva-form-search .tab-content .wrap-calc-habs+.drop .line .label {
    color: var(--gray) !important;
}

.viva-form-search .tab-content .wrap-calc-habs+.drop .options {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--gray);
    flex: 0 0 6rem;
    justify-content: space-between;
}

.viva-form-search .tab-content .wrap-calc-habs+.drop .options i {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    border: 1px solid var(--gray);
    color: var(--gray);
    font-size: 9px;
    font-weight: 700;
    cursor: pointer;
}

.viva-form-search .tab-content .wrap-calc-habs+.drop .options i:hover {
    background: var(--gray);
    color: var(--white);
}

.viva-form-search .tab-content .wrap-calc-habs+.drop .options i:active {
    background: var(--primary);
    border-color: var(--primary);
}

.viva-form-search .tab-content .children-selectors {
    border-top: 1px solid #e1e1e1;
    padding-top: 10px;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.viva-form-search .tab-content .children-selectors .form-group {
    flex: 0 0 30%;
}

.viva-form-search .tab-content .children-selectors select {
    width: 100%;
    border: 1px solid #c5c5c5;
    -webkit-appearance: menulist !important;
}

.viva-form-search .wrap-search {
    text-align: center;
    display: flex;
}

.viva-form-search .wrap-search .btn-search {
    text-align: center;
    border: 20px;
    height: 39px;
    font-weight: 700;
    font-size: 16px;
    display: block;
    padding: 0 27px;
    border-radius: 5px;
    color: var(--white);
    background: var(--secondary);
    cursor: pointer;
    width: 100%;
}

.viva-form-search .wrap-search .btn-search:hover {
    opacity: 0.9;
    background: var(--third) !important;
    color: var(--gray);
}

.viva-form-search .wrap-search .btn-search .mobile {
    display: none;
}

.viva-form-search .wrap-search .btn-search:disabled {
    background: var(--gray) !important;
    cursor: not-allowed;
    pointer-events: none;
}

.viva-form-search .wrap-search .btn-search:hover {
    background: var(--primary);
}

.viva-form-search .wrap-top-tabs {
    border-radius: 0;
    display: flex;
    justify-content: space-between;
    margin: 0 auto;
    overflow: hidden;
}

.viva-form-search .wrap-top-tabs a {
    display: block;
    text-decoration: none;
    text-align: center !important;
    padding: 10px 20px !important;
    flex: 1;
    color: var(--primary);
    background: #eaf2f7;
}

.viva-form-search .wrap-top-tabs a:first-child {
    border-top-left-radius: 2rem;
}

.viva-form-search .wrap-top-tabs a:last-child {
    border-top-right-radius: 2rem;
}

.viva-form-search .wrap-top-tabs a:hover,
.viva-form-search .wrap-top-tabs a.active {
    color: var(--white);
    background: var(--primary);
    font-weight: 700;
}

.viva-form-search .wrap-top-tabs a .wrap-icon {
    height: 34px;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    filter: invert(35%) sepia(85%) saturate(1044%) hue-rotate(174deg) brightness(80%) contrast(109%);
}

.viva-form-search .wrap-top-tabs a:hover .wrap-icon,
.viva-form-search .wrap-top-tabs a.active .wrap-icon {
    filter: brightness(0) saturate(100%) invert(95%) sepia(0%) saturate(2107%) hue-rotate(37deg) brightness(111%) contrast(100%);
}

.viva-form-search .wrap-top-tabs a .txt {
    text-align: center !important;
    font-weight: 500;
}

.viva-form-search .wrap-top-tabs a .wrap-icon.resort_only {
    background-image: url(../img/hotel_only.svg);
}

.viva-form-search .wrap-top-tabs a .wrap-icon.resort_flight {
    background-image: url(../img/flight_resort.svg);
}

.viva-form-search .wrap-top-tabs a .wrap-icon.resort_ferry {
    height: 34px;
    background-image: url(../img/hotel_ferry.svg);
}


/* Media Queries */
@media (max-width: 1020px) {
    .viva-banner.style3 {
        width: 37rem;
    }

    .viva-banner.style3._1_5x .info .title {
        font-size: 3.8rem;
    }

    .viva-banner.style3.horizontal .img {
        max-width: 40rem;
        right: 6rem;
    }

    .viva-banner.style3.horizontal {
        width: 100%;
    }

    .viva-banner.style3:before {
        width: 30rem;
    }

    .viva-banner.style3 .info .before-title {
        font-size: 1.5rem;
        margin-bottom: 1rem
    }

    .viva-banner.style3 .img {
        width: 17rem;
    }

    .viva-banner.style3 .info .hotel {
        font-size: 1.1rem;
    }

    .viva-banner.style3 .info .after-title {
        font-size: 1.3rem;
    }

    .viva-banner.style3 .info {
        max-width: 23rem;
    }

    .viva-resorts-menu {
        display: block;
        padding: 3rem 1rem;
    }

    .menu-menu-mobile-container .viva-resorts-menu {
        display: none;
    }

    .menu-menu-mobile-container .opened .viva-resorts-menu {
        display: block;
    }

    .viva-resorts-menu .wrap-dest h3 {
        margin-bottom: 2rem;
        font-size: 1.5rem;
    }

    .viva-resorts-menu .wrap-dest {
        margin-bottom: 1rem;
    }

    .viva-resorts-menu .wrap-dest ul {
        display: flex;
        gap: 2rem;
    }

    .viva-resorts-menu .resorts-menu-list a {
        padding: 1.5rem 0;
        border-bottom: 1px solid #b3ced8;
    }

    .viva-resorts-menu .wrap-resorts-list h4 {
        display: none;
    }

    .viva-resorts-menu .card-destination .wrap-img .img {
        mask-size: 100%;
        height: 18rem;
        mask-position: 0;
    }

    .viva-resorts-menu .wrap-resort-info {
        display: flex;
        flex-direction: column;
    }

    .viva-resorts-menu .card-destination {
        display: block;
        order: 2;
        margin-top: 2rem;
    }

    .viva-resorts-menu .wrap-resorts-list {
        order: 1;
    }

    .viva-resorts-menu .wrap-dest ul {
        display: block;
    }

    .viva-resorts-menu .card-destination .info {
        margin-top: 2rem;
    }

    .viva-resorts-menu .resorts-menu-list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 960px) {
    .card-excursion .wrap-img {
        flex: 0 0 50%;
    }

    .hotel-region {
        text-align: center;
    }

}

@media (max-width: 800px) {
    .viva-tabs .tab-content {
        grid-template-columns: 1fr;
    }

}

@media (max-width: 700px) {
    .destinations-card {
        flex-wrap: wrap;
    }

    .destinations-card .card-dest {
        width: 50%;
    }

    .card-offer .gal {
        flex: 0 0 28rem;
    }

    .card-excursion {
        flex-wrap: wrap;
        padding: 0 1rem;
    }

    .card-excursion .info .desc {
        text-align: justify;
    }

    .card-excursion .wrap-img {
        flex: 0 0 100%;
    }
}

@media (max-width: 600px) {
    body #trp_ald_modal_popup {
        padding: 2rem;
    }

    body .um-account-main {
        margin-top: 2rem;
    }

    .viva-banner.style3.horizontal .cta {
        font-size: 1.2rem;
    }

    .viva-banner.style3._1_5x .info .title {
        font-size: 3rem;
    }

    .viva-banner.style3.horizontal .img {
        max-width: 25rem;
        right: 2rem;
    }

    .viva-banner .info {
        margin: 0 2rem;
        padding: 0 1rem;
    }

    .viva-banner a:before {
        opacity: .8;
    }

    .viva-banner._1_2x .info .title {
        font-size: 2.6rem;
        line-height: 1.2
    }

    .viva-banner.style3 .info {
        width: 45%;
        font-size: 16px
    }

    .advise-box .elementor-widget-heading {
        flex: 0 0 80%;
    }

    .viva-banner .info .title {
        font-size: 120%;
    }

    .in-the-news .posts-group .card-post .info h4 {
        font-size: 1.8rem;
    }

    .in-the-news .cats {
        flex-wrap: wrap;
        border-radius: 1rem;
    }

    .in-the-news .cats a {
        flex: 0 0 50%;
        align-items: center;
        display: inline-flex;
        justify-content: center;
    }

    .card-dest:before {
        opacity: .8;
    }

    .card-dest .wrap-info {
        top: 30%;
    }


    .destinations-card .card-dest {
        width: 70%;
    }

    .hotel-region {
        font-size: 2.3rem;
        text-align: center;
    }

    .popup-gallery .content .gal-head h2 {
        font-size: 2rem;
        margin-top: 1rem;
    }

    .popup-gallery .content .gal-head .hotel-name {
        display: none;
    }

    .viva-tabs .gal .swiper-slide a {
        height: 35rem;
    }


    .card-excursion .info .title {
        text-align: center;
    }

    .tabs-head-list.white .wrap {
        background: none;
    }

    .tabs-head-list.white a {
        background: var(--white);
    }

    .tabs-head-list .wrap {
        background: none;
        gap: 1rem;
    }

    .tabs-head-list a {
        background: var(--primary-light);
    }

    .tabs-head-list.violet .wrap {
        background: none;
    }

    .tabs-head-list.violet a {
        background: var(--secondary-light);
    }

    .tabs-head-list.violet a.active,
    .tabs-head-list.violet a:hover {
        background: var(--violet);
    }

    .title-wrap .elementor-heading-title {
        margin: 0;
    }

    .title-wrap .elementor-heading-title:before,
    .title-wrap .elementor-heading-title:after {
        margin: 0 2rem;
    }

    .top-menu .menu-item>a {
        font-size: 1.2rem;
    }

    .call-now-top a.btn {
        font-size: 1.2rem;
        vertical-align: text-top;
    }

    .top-menu .menu-item.viva-pro {
        display: none;
    }

    .card-offer {
        flex-wrap: wrap;
    }

    .card-offer .gal {
        flex: 0 0 100%;
    }

    .card-offer .info .title-wrap .title {
        font-size: 1.8rem;
    }

    .card-offer .info {
        padding: 2rem 0;
    }

    .viva-mini-cards aside .img-wrap {
        flex: 0 0 20rem;
    }

    .viva-mini-cards aside .img-wrap .img {
        height: 15rem;
    }

    .viva-mini-cards aside .title {
        font-size: 1.8rem;
    }

    .viva-form-search.internal {
        margin: -39px 0 30px !important;
        padding: 0;
    }

    .viva-form-search .wrap-top-tabs a .wrap-icon {
        height: 25px !important;
    }

    .viva-form-search .tab-content .wrap-bottom .wrap-input {
        flex: 0 0 48%;
    }

    .viva-form-search .tab-content .drop ul li {
        padding: 10px 5px;
    }

    .viva-form-search .wrap-search {
        margin: 18px 0;
    }

    .viva-form-search .wrap-search .btn-search {
        width: 100%;
    }

    .viva-form-search .wrap-top-tabs a {
        padding: 10px !important;
    }

    .viva-form-search .wrap-top-tabs a .txt {
        font-size: 13px;
    }

    .viva-form-search .tab-content .wrap-input {
        flex: 0 0 100%;
    }

    .viva-form-search .tab-content .wrap-search {
        order: 2;
        margin: 0;
    }

    .viva-form-search .tab-content .drop {
        width: 100%;
    }
}

@media (max-width: 540px) {
    .viva-tabs .tab-content .tab-info .wrap-btn {
        text-align: center;
    }

    .destinations-card .card-dest {
        width: 80%;
    }

    .popup-gallery .content {
        padding: 2rem 0 1rem;
    }

    .popup-gallery .lateral-menu {
        margin-top: 2rem;
    }

    .popup-gallery .lateral-menu ul {
        display: flex;
        gap: 1rem;
        flex-wrap: wrap;
    }

    .popup-gallery .lateral-menu ul li a {
        background: var(--primary-light);
        font-size: 1.2rem;
        padding: .4rem 1.5rem;
        border-radius: 5rem;
    }

    .popup-gallery .gal-wrapper {
        grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
        height: calc(100vh - 34rem);
    }

    .popup-gallery .gal-wrapper a .gal-img {
        height: 10rem;
    }

    .popup-gallery .gal-wrap-content {
        display: block;
    }
}


@media (max-width:440px) {
    .destinations-card .card-dest {
        width: 100%;
    }

}