/* ==========================================================================
   12.0 CozyStay Elementor Elements Style
   ========================================================================== */

.elementor-section.elementor-section-boxed.cs-section-content-fullwidth > .elementor-container,
.elementor-section.elementor-section-full_width.cs-section-content-fullwidth > .elementor-container {
    max-width: calc(var(--site-width) + var(--side-padding)*2);
    padding: 0 var(--side-padding);
}

.elementor-editor-active .elementor-edit-area-active .elementor-widget-container {
    --primary-color: var(--theme-primary-color);
    --secondary-color: var(--theme-secondary-color);
}

.cs-template-wide .site-content .elementor-section-full_width,
.custom_blocks-template-default .elementor-section-full_width,
.site-footer-main .elementor-section-full_width,
.cs-section-content-fullwidth {
    position: relative;
    width: 100vw;
    max-width: 100vw;
    left: calc(50% - 50vw);
}

.cs-template-wide .site-content .elementor-section .elementor-section-full_width,
.elementor-section .elementor-section-full_width {
    width: 100%;
    left: auto;
}

// Fix For Elementor Flexbox Container
.cs-template-wide .site-content .elementor-section-wrap > .e-con-full,
.cs-template-wide .site-content [data-elementor-id] > .e-con-full,
.cs-template-wide .site-content .elementor > .e-con-full,
.cs-template-wide .elementor-section-wrap > .cs-section-content-fullwidth,
.cs-template-wide .elementor > .cs-section-content-fullwidth {
    position: relative;
    width: 100vw !important;
    max-width: 100vw !important;
    left: calc(50% - 50vw);
}

:is(.elementor-section-wrap,[data-elementor-id]) > .e-con.cs-section-content-fullwidth {
    width: 100vw !important;
    max-width: 100vw !important;
}

.e-con.cs-section-content-fullwidth {
    width: 100vw;
    max-width: 100vw !important;
}

.e-con.cs-section-content-fullwidth > .e-con-inner {
    max-width: calc(var(--content-width) + var(--side-padding)*2);
    padding-right: var(--side-padding);
    padding-left: var(--side-padding);
}

.e-con-full.cs-section-content-fullwidth {
    width: 100vw;
    max-width: 100vw !important;
    padding-right: var(--side-padding);
    padding-left: var(--side-padding);
}

.cs-template-wide.elementor-page .primary {
    padding-bottom: 0;
}

.single-custom_site_headers {
    .container {
        padding: 0;
        max-width: 100vw;
    }
    
    .entry-content a:not(.button) {
        color: inherit;
    }
}

.elementor-align-center {
    margin-right: auto;
    margin-left: auto;
}

.elementor-text-editor > *:last-child,
.elementor-widget-text-editor .elementor-widget-container > *:last-child,
.elementor-text-editor p:last-child,
.elementor-widget-text-editor > *:last-child,
.elementor-widget-cs_text-editor .elementor-widget-container > *:last-child,
.elementor-widget-cs_text-editor p:last-child {
    margin-bottom: 0;
}

.elementor-widget-cs_image {
    text-align: center;

    img {
        display: inline-block;
        vertical-align: middle;
    }

    a {
        display: inline-block;
    }

    img[src$=".svg"] {
        width: 48px;
    }
}

.color-primary {
    &,
    .entry-content &,
    .elementor-section & {
        color: var(--primary-color);
    }
}

.color-secondary {
    &,
    .entry-content &,
    .elementor-section & {
        color: var(--secondary-color);
    }
}

.color-black {
    &,
    .entry-content &,
    .elementor-section & {
        color: #000;
    }
}

.color-white {
    &,
    .entry-content &,
    .elementor-section & {
        color: #fff;
    }
}

.cs-elementor-simulator-scheme-switcher {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 99;
}

.cs-elementor-simulator-scheme-dark,
.cs-elementor-simulator-scheme-light {
    background: #999;
    color: #000;
    padding: 2px 6px;
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 600;
    border-radius: 4px;
    cursor: pointer;
    
    &.active {
        background: #fff;
    }
}

.cs-elementor-simulator-scheme-dark {
    margin-bottom: 2px;
}

.loftocean-library-modal-btn {
    margin-left: 5px;
	background: #000;
    vertical-align: top;
    font-size: 0 !important;
    
    &:before {
        content: "";
        width: 16px;
        height: 16px;
        background-image: url(../../images/loftocean-white.svg);
        background-position: center;
        background-size: contain;
        background-repeat: no-repeat;
    }
}

.elementor-widget-heading .elementor-heading-title {
    margin-bottom: 0;
}

.elementor-element a:not([class*="button"]) {
    &:not(:hover) {
        color: inherit;
    }
}

.elementor-editor-active .site-header.overlap-header {
    pointer-events: none;
}

.elementor-editor-active .site-header:not(.overlap-header):not(.sticky):not(.is-sticky) {
    z-index: 1;
}

body > div.elementor {
    overflow: hidden;
}

// CozyStay Logo
.elementor-widget-cs_logo {
    font-size: 0;
    
    .cs-notice {
        @include fontsize(16);
        color: #161616;
    }
    
    a {
        display: inline-block;
    }
    
    img {
        display: block;
    }
}

// CozyStay Button
.elementor-widget-cs_button {
    &.elementor-align-justify {
        .button {
            width: 100%;
            padding: 0;
        }
    }
    
    .cs-btn-circle {
        display: flex;
    }
    
    &.elementor-align-left {
        .cs-btn-circle {
            margin-right: auto;
            margin-left: 0;
        }
    }
    
    &.elementor-align-center {
        .cs-btn-circle {
            margin-right: auto;
            margin-left: auto;
        }
    }
    
    &.elementor-align-right {
        .cs-btn-circle {
            margin-right: 0;
            margin-left: auto;
        }
    }
}

// CozyStay Social Menu
ul.social-nav {
    &.text-left,
    .text-left & {
        -webkit-justify-content: flex-start;
        justify-content: flex-start;
    }

    &.text-center,
    .text-center & {
        -webkit-justify-content: center;
        justify-content: center;
    }

    &.text-right,
    .text-right & {
        -webkit-justify-content: flex-end;
        justify-content: flex-end;
    }
}

// CozyStay Menu
.cs-menu {
    --item-padding: 15px;
    
    > ul > li > a {
        font-family: var(--nav-font);
    }
    
    &.text-left {
        .menu {
            -webkit-justify-content: flex-start;
            justify-content: flex-start;
        }
    }
    
    &.text-center {
        .menu {
            -webkit-justify-content: center;
            justify-content: center;
        }
    }
    
    &.text-right {
        .menu {
            -webkit-justify-content: flex-end;
            justify-content: flex-end;
        }
    }
    
    .primary-menu {
        > li > a {
            padding: 0 var(--item-padding);
            
            &:before {
                left: var(--item-padding);
                width: calc(100% - var(--item-padding)*2);
            }
        }
        
        > li.menu-item-has-children > a:before {
            width: calc(100% - var(--item-padding)*2 - 20px);
        }
        
        > li > .sub-menu {
            left: calc(var(--item-padding) - 30px);
        }
    }
    
    &.footer-menu {
        .menu {
            @include flex;
            @include flexWrap;
        }
        
        li {
            a {
                display: block;
                padding: 5px var(--item-padding);
                font-family: var(--nav-font);
                font-size: var(--fbnav-font-size);
                font-weight: var(--fbnav-font-weight);
                letter-spacing: var(--fbnav-font-letter-spacing);
                text-transform: var(--fbnav-font-transform);
            }
        }
    }
    
    &.cs-menu-inline {
        .menu {
            @include flex;
            @include flexWrap;
            
            li {
                padding: 5px var(--item-padding);
            }
            
            a {
                white-space: nowrap;
            }
        }
        
        &.text-left .menu {
            li:first-child {
                padding-left: 0;
            }
        }
        
        &.text-right .menu {
            li:last-child {
                padding-right: 0;
            }
        }
        
        .sub-menu {
            position: absolute;
            @include flex;
            @include fontsize(16);
            line-height: 30px;
            transition: 0.3s;
            opacity: 0;
            pointer-events: none;
            visibility: hidden;
            
            &:before {
                @include fontElegant;
                display: inline-block;
                @include fontsize(14);
                content: "\35";
                padding: 5px 0;
                line-height: 30px;
            }
        }
        
        .no-touch & li:hover > ul.sub-menu {
            z-index: 99;
            opacity: 1;
            pointer-events: auto;
            visibility: visible;
        }
    }
}

// CozyStay Section Title
.elementor-widget-cs_title {
    .cs-subtitle-wrap {
        position: relative;
        overflow: hidden;
        
        + .cs-title {
            margin-top: 20px;
        }
    }
    
    .cs-title-separator {
        display: flex;
        justify-content: center;
        margin-top: 20px;
        
        span {
            display: block;
            width: 1px;
            height: 45px;
            background: currentColor;
        }
    }
    
    .cs-title-text {
        margin-top: 20px;
        
        &:first-child {
            margin-top: 0;
        }
        
        p {
            margin-bottom: 20px;
        }
        
        > *:last-child {
            margin-bottom: 0;
        }
        
        + .cs-title-btn {
            margin-top: 30px;
        }
    }
    
    .cs-title-btn {
        margin-top: 20px;
        
        .button.cs-btn-underline {
            margin-bottom: 2px;
        }
    }
}

.cs-title,
.entry-content .cs-title {
    margin-top: 0;
    margin-bottom: 0;
    line-height: 1.35;
    
    small {
        font-weight: 300;
        font-size: 100%;
    }
}

.cs-subtitle-wrap {
    line-height: 1.2;
}

.cs-title-wrap.text-left {
    margin-right: auto;
}

.cs-title-wrap.text-center {
    margin-right: auto;
    margin-left: auto;
}

.cs-title-wrap.text-right {
    margin-left: auto;
}

h1.cs-title {
    @include fontsize(48);
}

h2.cs-title {
    @include fontsize(38);
}

h3.cs-title {
    @include fontsize(32);
}

h4.cs-title {
    @include fontsize(28);
}

h5.cs-title {
    @include fontsize(24);
}

h6.cs-title {
    @include fontsize(21);
}

// CozyStay Slider
.cs-slider {
    .slick-dots {
        position: absolute;
        bottom: 50px;
        left: 0;
        width: 100%;
    }
    
    .cs-slider-wrap > .cs-slider-item {
        opacity: 0;
    }
    
    .slick-initialized .cs-slider-item {
        .elementor-section:before {
            display: block;
            @include fullblock;
            background: inherit;
            content: "";
            transition: 0s;
        }
        
        &.current-item {
            .elementor-section:before {
                @include scale(1.15);
                transition: transform 10s linear 0s;
            }
        }
        
        &.slick-current {
            .elementor-widget > * > * {
                -webkit-animation: slideFade 0.7s ease-out;
                animation: slideFade 0.7s ease-out;
            }
        }
    }
}

.elementor-widget-cs_slider .cs-slider-item {
    overflow: hidden;
}

// CozyStay Divider (Horizontal)
.cs-divider {
    position: relative;
    color: #dfdbdc;
    
    .cs-d-line {
        position: relative;
        margin: 0 auto;
        width: 100%;
        height: 6px;
        
        &:before,
        &:after {
            @include centered;
            display: block;
            background: currentColor;
            content: "";
        }
        
        &:before {
            width: 100%;
            height: 1px;
        }
        
        &:after {
            width: 6px;
            height: 6px;
            border-radius: 50%;
        }
    }
    
    .cs-d-icon {
        @include centered-vertical;
        z-index: 3;
        width: 33px;
        color: #c8c4c5;
        
        &.icon-start {
            left: 0;
        }
        
        &.icon-end {
            right: 0;
        }
        
        svg {
            display: block;
            
            > * {
                fill: currentColor;
            }
        }
    }
    
    &.divider-star {
        .cs-d-icon {
            width: 22px;
        }
        
        .cs-d-line {
            width: calc(100% - 50px);
        }
    }
    
    &.divider-grass {
        .cs-d-line {
            width: calc(100% - 20px);
        }
        
        .cs-d-icon.icon-start {
            @include transform(translateY(-50%) rotate(-90deg));
        }
        
        .cs-d-icon.icon-end {
            @include transform(translateY(-50%) rotate(90deg));
        }
    }
}

// CozyStay Vertical Divider
.cs-vertical-divider {
    color: #dfdbdc;
    height: 200px;
    
    > * {
        margin: 0 auto;
    }
    
    .cs-vd-line {
        @include centered;
        width: 6px;
        height: 100%;
        
        &:before,
        &:after {
            @include centered;
            display: block;
            background: currentColor;
            content: "";
        }
        
        &:before {
            width: 1px;
            height: 100%;
        }
        
        &:after {
            width: 6px;
            height: 6px;
            border-radius: 50%;
        }
    }
    
    .cs-vd-icon {
        @include centered-horizontal;
        z-index: 3;
        width: 33px;
        color: #c8c4c5;
        
        &.icon-start {
            top: 0;
        }
        
        &.icon-end {
            bottom: 0;
        }
        
        svg {
            display: block;
            
            > * {
                fill: currentColor;
            }
        }
    }
    
    &.divider-star {
        .cs-vd-icon {
            width: 22px;
        }
        
        .cs-vd-line {
            height: calc(100% - 50px);
        }
        
        .cs-vd-icon.icon-end {
            @include transform(translateX(-50%) rotate(180deg));
        }
    }
    
    &.divider-grass {
        .cs-vd-line {
            height: calc(100% - 20px);
        }
        
        .cs-vd-icon.icon-end {
            @include transform(translateX(-50%) rotate(180deg));
        }
    }
}

.elementor-widget-cs_vertical_divider.full-height {
    &,
    .elementor-widget-container,
    .cs-vertical-divider {
        height: 100%;
    }
}

// CozyStay Tabs
.cs-tabs {
    .elementor-tabs-wrapper {
        text-align: center;
    }
    
    .elementor-tab-desktop-title {
        display: inline-flex;
        font-family: var(--secondary-font);
        @include fontsize(15);
        font-weight: 500;
        text-transform: uppercase;
        margin-bottom: var(--spacing);
        
        a {
            position: relative;
            margin: 0 15px;
            color: var(--text-color);

            .elementor-element & {
                color: var(--text-color);
            }
            
            &:before {
                position: absolute;
                bottom: -2px;
                left: 0;
                display: block;
                width: 100%;
                height: 2px;
                background: var(--primary-color);
                content: "";
                transition: transform 0.2s ease;
                transform-origin: 100% 0;
                @include scaleX(0);
            }
        }
        
        &.elementor-active a:before {
            @include scaleX(1);
        }
    }

    .elementor-tab-content {
        opacity: 0;
        @include translateY(20px);
    }

    .elementor-tab-content.elementor-active {
        @include animation(showTab 0.7s ease-out 0.2s);
        animation-fill-mode: forwards;
    }
}

// CozyStay Food Menu
.cs-food-menu {
    --food-img-width: 85px;

    .cs-food-menu {
        position: relative;
    }
    
    .cs-food-menu-item {
        display: table;
        width: 100%;
    }
    
    .cs-food-menu-img {
        position: relative;
        width: var(--food-img-width);
        max-width: var(--food-img-width);
        margin-right: 20px;
        overflow: hidden;
    }
    
    .cs-food-menu-main {
        display: table-cell;
        width: inherit;
        min-width: 100%;
        vertical-align: middle;
    }
    
    .cs-food-menu-header > * {
        display: table-cell;
    }
    
    .cs-food-menu-title {
        padding-right: 15px;
        margin-bottom: 0;
        width: 1%;
        white-space: nowrap;
        @include fontsize(21);
        
        a {
            color: inherit;
            white-space: inherit;
        }
        
        .title-wrap {
            white-space: inherit;
        }
        
        .title-wrap.pen:not([data-elementor-inline-editing-toolbar="advanced"]) {
            white-space: nowrap !important;
        }
        
        .menu-label {
            @include translateY(-4px);
            display: inline-block;
            padding: 4px 5px;
            border-radius: 3px;
            background: var(--primary-color);
            color: #fff;
            font-family: var(--secondary-font);
            @include fontsize(10);
            text-transform: uppercase;
        }
    }
    
    .cs-food-menu-lines {
        position: relative;
        width: 98%;
    }
    
    .cs-food-menu-group {
        position: absolute;
        top: 0;
        right: 0;
        @include fontsize(12);
        transform: translateY(-150%);
        
        span {
            margin-right: 20px;
            border: 2px solid;
            padding: 0 3px;
            
            &:last-child {
                margin: 0;
            }
        }
    }
    
    .cs-food-menu-price {
        padding-left: 15px;
        width: 1%;
        @include fontsize(20);
        white-space: nowrap;
        
        del {
            @include fontsize(18);
            opacity: 0.35;
        }
        
        &.multi-price {
            .cs-price {
                margin-right: 20px;
                
                &:last-child {
                    margin: 0;
                }
            }
        }
    }
    
    .cs-food-menu-details {
        margin-top: 5px;
        margin-bottom: 0;
        @include fontsize(16);
        line-height: 1.6;
        opacity: 0.6;
        color: var(--content-color);
    }
    
    &.food-menu-style-1 {
        .cs-food-menu-item {
            padding: 0 0 20px;
            margin-bottom: $spacing-base/2;
            border-bottom: 1px solid rgba(#000, 0.1);
            
            .dark-color & {
                border-bottom-color: rgba(#fff, 0.15);
            }
        }
    }
    
    &.food-menu-style-2 {
        .cs-food-menu-item {
            margin: 0 0 $spacing-base;
        }
        
        .cs-food-menu-lines {
            top: 21px;
            background-position: top;
            background-image: linear-gradient(to right, #000 25%, rgba(#fff, 0) 0%);
            background-size: 8px 2px;
            background-repeat: repeat-x;
            
            .dark-color & {
                background-image: linear-gradient(to right, #fff 25%, rgba(#fff, 0) 0%);
            }
        }
    }
    
    &.food-menu-style-3 {
        .cs-food-menu-item {
            margin: 0 0 $spacing-base;
        }
        
        .cs-food-menu-lines {
            top: 17px;
            border-top: 1px solid;
            color: var(--border-color);
        }
    }
    
    &.food-menu-style-4 {
        .cs-food-menu-item {
            margin: 0 0 $spacing-base;
        }
        
        .cs-food-menu-lines {
            position: relative;
            top: 14px;
            border-top: 1px solid;
            color: var(--border-color);
            
            &:before {
                position: absolute;
                top: 4px;
                display: block;
                width: 100%;
                height: 1px;
                border-top: 1px solid;
                content: "";
            }
        }
    }
    
    &.food-menu-style-5 {
        margin: calc(0px - var(--gap));
        
        &.gap-10 {
            --gap: 10px;
        }
        
        &.gap-20 {
            --gap: 20px;
        }
        
        &.gap-32 {
            --gap: 32px;
        }
        
        .cs-food-menu-header {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            width: 100%;
            
            > * {
                display: block;
                white-space: normal;
                width: auto;
            }
            
            .cs-food-menu-lines {
                display: none;
            }
        }
        
        .cs-food-menu-item {
            display: block;
            padding: var(--gap);
        }

        .cs-food-menu-main {
            display: block;
        }
        
        .cs-food-menu-title {
            line-height: 1.35;
        }
        
        .cs-food-menu-details {
            margin-top: 10px;
            line-height: 1.35;
        }
        
        .cs-food-menu-img {
            width: 100%;
            max-width: 100%;
            margin: 0 0 20px;
            
            img {
                display: block;
            }
        }
    }
    
    &.food-menu-style-6 {
        .cs-food-menu-item {
            margin: 0 0 $spacing-base;
        }
        
        .cs-food-menu-lines {
            opacity: 0;
        }
    }
    
    .cs-food-menu-item:last-child {
        margin-bottom: 0;
    }
}

// CozyStay Food Card
.cs-food-card {
    @include flex;
    @include flexCenter;
    margin-right: auto;
    margin-left: auto;
    
    .cs-fc-img,
    .cs-fc-img + .cs-fc-info {
        width: 50%;
    }
    
    &:not(.column-reverse) .cs-fc-img {
        display: flex;
        justify-content: flex-end;
    }
    
    .cs-fc-img + .cs-fc-info {
        padding: 0 60px;
    }
    
    .cs-fc-info-title {
        margin: 0;
        line-height: 1.2;
        font-size: 40px;
    }
    
    .cs-fc-info-title + .cs-fc-info-text {
        margin-top: 20px;
    }
    
    .cs-fc-info-text {
        line-height: 1.25;
        font-size: 21px;
        
        > *:last-child {
            margin-bottom: 0;
        }
        
        &:not(:last-child) {
            margin-bottom: $spacing-base;
        }
    }
    
    .cs-fc-info-extra {
        display: flex;
        margin-top: 20px;
        
        .info-label {
            display: inline-block;
            margin-right: 45px;
            @include fontsize(14);
            text-transform: uppercase;
            border: 2px solid;
            padding: 3px 15px;
            line-height: 24px;
            text-align: center;
            min-width: 130px;
        }
        
        .info-content {
            display: inline-block;
            @include fontsize(36);
            font-weight: 600;
            line-height: 1;
        }
    }
    
    &.column-reverse {
        flex-direction: row-reverse;
        
        .cs-fc-info {
            display: flex;
            justify-content: flex-end;
        }
    }
}

// CozyStay Testimonials
.cs-testimonials {
    .cs-testimonial-content {
        color: var(--text-color);
        font-family: var(--heading-font);
        @include fontsize(20);
        line-height: 1.5;
        
        + .cs-testimonial-rating {
            margin-top: 10px;
        }
    }
    
    .cs-testimonial-meta {
        margin-top: 25px;
    }
    
    .cs-testimonial-rating + .cs-testimonial-meta {
        margin-top: 0;
    }
    
    .elementor-testimonial-image {
        font-size: 0;
        
        img {
            display: inline;
            width: 70px;
            border-radius: 50%;
        }
    }
    
    .cs-testimonial-rating:first-child {
        margin-bottom: 20px;
    }
    
    .cs-testimonial-stars {
        display: block;
        
        &:before {
            @include fontAwesome;
            content: "\f005\f005\f005\f005\f005";
            color: #ffc107;
            font-size: 11px;
            letter-spacing: 2px;
        }
    }
    
    &:not(.elementor-testimonial-image-position-aside) {
        .cs-testimonial-meta .elementor-testimonial-image {
            margin-bottom: 12px;
        }
    }
    
    &.elementor-testimonial-image-position-aside {
        .cs-testimonial-meta {
            .elementor-testimonial-meta-inner {
                width: fit-content;
                text-align: left;
            }
            
            .elementor-testimonial-image,
            .elementor-testimonial-details {
                display: inline-block;
                vertical-align: middle;
            }
            
            .elementor-testimonial-image {
                margin-right: 12px;
            }
        }
        
        &.text-center {
            .elementor-testimonial-meta-inner {
                margin: 0 auto;
            }
        }
    }
    
    .elementor-testimonial-name {
        font-family: var(--heading-font);
        @include fontsize(16);
    }
    
    .elementor-testimonial-job {
        @include fontsize(12);
        text-transform: uppercase;
    }
    
    &.testimonial-style-1 {
        .cs-testimonial {
            margin: 0 auto;
        }
        
        .cs-testimonial,
        .slick-dots {
            max-width: 820px;
        }
    }
    
    &.testimonials-grid {
        @include flex;
        @include flexWrap;
        margin: -30px;
        
        .cs-testimonial {
            padding: 30px;
        }
        
        .cs-testimonial-content {
            @include fontsize(21);
        }
    }
    
    &.testimonials-slider > .cs-ts-wrap > .cs-ts-item {
        display: none;
        
        &:first-child {
            display: block;
        }
    }
    
    &.testimonials-slider {
        .slick-arrow.slick-prev {
            left: -30px;
        }
        
        .slick-arrow.slick-next {
            right: -30px;
        }
        
        &[data-column="1"] {
            .cs-ts-item {
                padding: 0;
            }
        }
        
        &[data-column="2"],
        &[data-column="3"] {
            .cs-testimonial-content {
                @include fontsize(18);
            }
        }
        
        .cs-ts-item {
            padding: 0 30px;
        }
    }
}

// CozyStay Image Gallery
.cs-gallery {
    img {
        display: block;
        margin: 0 auto;
        max-width: 100%;
        transition: transform 0.3s;
    }
    
    &.gap-0 {
        --gallery-gap: 0px;
    }
    
    &.gap-2 {
        --gallery-gap: 2px;
    }
    
    &.gap-5 {
        --gallery-gap: 5px;
    }
    
    &.gap-10 {
        --gallery-gap: 10px;
    }
    
    &.gap-16 {
        --gallery-gap: 16px;
    }
    
    &.gap-20 {
        --gallery-gap: 20px;
    }
    
    &.gap-32 {
        --gallery-gap: 32px;
    }
    
    .cs-gallery-item {
        position: relative;
    }
    
    &.gallery-grid {
        .cs-gallery-wrap {
            @include flex;
            @include flexWrap;
            margin: calc(0px - var(--gallery-gap));
        }
        
        .cs-gallery-item {
            padding: var(--gallery-gap);
        }
        
        &.grid-col-2 .cs-gallery-item {
            width: 50%;
        }
        
        &.grid-col-3 .cs-gallery-item {
            width: 33.33%;
        }
        
        &.grid-col-4 .cs-gallery-item {
            width: 25%;
        }
        
        &.grid-col-5 .cs-gallery-item {
            width: 20%;
        }
        
        &.grid-col-6 .cs-gallery-item {
            width: 16.6666%;
        }
        
        &.align-middle-v {
            .cs-gallery-item {
                @include flex;
                @include flexCenter;
            }
        }
        
        &.align-bottom-v {
            .cs-gallery-item {
                @include flex;
                @include flexVEnd;
            }
        }
    }

    &.gallery-mosaic {
        .cs-gallery-wrap {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 2px;

            .cs-gallery-item:first-child {
                grid-column: 1/span 2;
                grid-row: 1/span 2;
            }

            img {
                object-fit: cover;
                width: 100%;
                height: 100%;
            }
        }
    }
    
    &.gallery-carousel {
        .slick-list {
            margin: 0 calc(0px - var(--gallery-gap));
        }

        .slick-slide {
            will-change: transform;
        }
        
        .cs-gallery-item {
            padding: 0 var(--gallery-gap);
        }
        
        &.align-middle-v {
            .slick-track {
                @include flex;
                @include flexCenter;
            }
        }
        
        &.align-bottom-v {
            .slick-track {
                @include flex;
                @include flexVEnd;
            }
        }
        
        &.slider-height-full {
            .cs-gallery-item {
                height: 100vh;
                
                img {
                    @include centered;
                    z-index: 9;
                    display: block;
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                }
            }
        }
    }
    
    &.gallery-carousel > .cs-gallery-wrap > .cs-gallery-item {
        display: none;
        opacity: 0;
        
        &:first-child {
            display: block;
        }
    }
    
    &.slider-dots-overlap {
        .slick-dots {
            position: absolute;
            bottom: 30px;
            left: 0;
            width: 100%;
            color: #fff;
        }
    }
    
    &.variable-width {
        .cs-gallery-item {
            height: 600px;

            img {
                height: 100%;
                width: auto;
            }
        }
    }
    
    &.style-overflow {
        .slick-list {
            overflow: visible;
        }
        
        .slick-arrow.slick-prev {
            left: -30px;
        }
        
        .slick-arrow.slick-next {
            right: -30px;
        }
    }
}

// CozyStay Instagram
.cs-instagram {
    --ig-gap: 8px;
    
    .cs-instagram-title {
        @include centered;
        z-index: 99;
        @include flex;
        @include flexCenter;
        @include flexColumn;
        width: 256px;
        height: 256px;
        padding: 0 30px;
        border-radius: 50%;
        background: #fff;
        color: #000;
        @include fontsize(26);
        line-height: 1.3;
        font-weight: 500;
        text-align: center;
        overflow: hidden;
    }
    
    ul {
        margin: 0;
        list-style: none;
        display: grid;
        grid-template-columns: repeat(3,1fr);
        gap: var(--ig-gap);
    }
    
    li {
        position: relative;
        overflow: hidden;
    }
    
    &.column-4 ul {
        grid-template-columns: repeat(4,1fr);
    }
    
    &.column-5 ul {
        grid-template-columns: repeat(5,1fr);
    }
    
    .feed-bg {
        position: relative;
        z-index: 1;
        width: 100%;
        height: 0;
        padding-top: 100%;
        @include bgImgCover;
        transition: all 0.4s ease-out;
        @include transform(scale(1.02));
    }
    
    .feed-video {
        margin-bottom: 0;
    }
    
    li a {
        position: relative;
        display: block;
        overflow: hidden;
        background: #000;
        
        &:after {
            position: absolute;
            top: 20px;
            left: 20px;
            z-index: 99;
            color: #fff;
            @include fontAwesome;
            @include fontAwesomeBrand;
            content: "\f16d";
            font-size: 24px;
            line-height: 1;
            opacity: 0;
            transition: opacity 0.4s ease-out;
        }
        
        .no-touch &:hover {
            .feed-bg {
                @include transform(scale(1.06));
                opacity: 0.9;
            }
            
            &:after {
                opacity: 1;
            }
        }
    }
}

// CozyStay Fancy Card
.cs-fancy-card {
    --content-bg: #000;
    --content-color: #fff;
    --content-bg-hover: var(--content-bg);
    --content-color-hover: var(--content-color);
    
    .cs-fc-wrap {
        position: relative;
        overflow: hidden;
    }
    
    .cs-fc-link {
        @include fullblock;
        z-index: 1;
        
        ~ * {
            pointer-events: none;
            
            .elementor-editor-active &,
            a {
                pointer-events: auto;
            }
        }
    }
    
    .cs-fc-img {
        position: relative;
        overflow: hidden;
        
        img {
            display: block;
            width: 100%;
            transition: 0.35s ease-in-out;
        }
    }
    
    .no-touch &.cs-hover-img-zoom:hover .cs-fc-img img {
        @include scale(1.07);
    }
    
    &.cs-hover-img-zoom-out {
        .cs-fc-img img {
            @include scale(1.07);
        }
        
        .no-touch &:hover {
            .cs-fc-img img {
                @include scale(1);
            }
        }
    }
    
    .cs-fc-content {
        z-index: 9;
        width: 100%;
        padding: 30px;
    }
    
    .cs-fc-title:not([class*="color-"]),
    .cs-subtitle:not([class*="color-"]) {
        color: inherit;
    }
    
    .cs-fc-text {
        p {
            margin-bottom: 0;
        }
    }

    &.style-1 {
        .cs-fc-wrap {
            display: flex;
            flex-direction: column;
            background: var(--content-bg);
            color: var(--content-color);
            transition: background 0.3s, color 0.3s;
        }

        .no-touch &:hover .cs-fc-wrap {
            background: var(--content-bg-hover);
            color: var(--content-color-hover);
        }

        &.order-reverse:not(.layout-row) {
            .cs-fc-img {
                order: 9;
            }
        }

        .cs-fc-content {
            display: flex;
            flex-direction: column;
            justify-content: center;
        }
    }
    
    &.style-2 {
        .cs-fc-wrap {
            overflow: visible;
        }
        
        .cs-fc-content {
            position: absolute;
            bottom: 30px;
            left: -20px;
            padding: 15px 50px;
            background: var(--content-bg);
            color: var(--content-color);
            width: fit-content;
            max-width: calc(100% - 20px);
            transition: background 0.3s, color 0.3s;
        }
        
        &.content-position-right {
            .cs-fc-content {
                right: -20px;
                left: auto;
            }
        }
        
        &.content-position-center {
            .cs-fc-content {
                right: auto;
                left: 50%;
                @include translateX(-50%);
                width: 70%;
                max-width: 100%;
            }
        }
        
        .no-touch &:hover .cs-fc-content {
            background: var(--content-bg-hover);
            color: var(--content-color-hover);
        }
    }
}

// CozyStay Call To Action
.cs-cta {
    --cta-border-color: var(--primary-color);
    
    .cs-cta-wrap {
        position: relative;
        overflow: hidden;
    }
    
    .cs-cta-link {
        @include fullblock;
        z-index: 8;
    }
    
    .cs-cta-img {
        position: relative;
        overflow: hidden;
        
        img {
            display: block;
            width: 100%;
            transition: 0.35s ease-in-out;
        }
    }
    
    .cs-cta-overlay {
        @include fullblock;
        z-index: 2;
        transition: 0.35s;
    }
    
    .cs-cta-label {
        z-index: 9;
        position: absolute;
        background: #fff;
        color: #000;
        padding: 8px 12px;
        @include fontsize(12);
        text-transform: uppercase;
        pointer-events: none;
        
        .elementor-editor-active & {
            pointer-events: auto;
        }
        
        &.label-top-left {
            top: 20px;
            left: 20px;
        }
        
        &.label-top-right {
            top: 20px;
            right: 20px;
        }
        
        &.label-bottom-left {
            bottom: 20px;
            left: 20px;
        }
        
        &.label-bottom-right {
            right: 20px;
            bottom: 20px;
        }
        
        &.label-centered {
            top: 50%;
            left: 50%;
            @include translate(-50%, -50%);
        }
    }
    
    .cs-cta-content {
        z-index: 9;
        width: 100%;
        pointer-events: none;
        
        .elementor-editor-active & {
            pointer-events: auto;
        }
        
        > * {
            margin-bottom: 10px;
        }
        
        .cs-subtitle-wrap:last-child {
            margin-bottom: 0;
        }
        
        a {
            pointer-events: auto;
            
            .elementor-editor-active & {
                pointer-events: none;
                
                & .cs-btn-text {
                    pointer-events: auto;
                }
            }
        }
    }
    
    .cs-cta-text {
        @include fontsize(16);
        line-height: 1.5;

        p {
            margin-bottom: 10px;
        }
        
        p:last-child {
            margin-bottom: 0;
        }
    }
    
    .hover-slide-up {
        overflow: hidden;
        max-height: 0;
        opacity: 0;
        transition: 0.35s ease-in-out;
    }
    
    .no-touch &:hover .hover-slide-up {
        max-height: 200px;
        opacity: 1;
    }
    
    &.cta-layout-text-normal {
        .cs-cta-content {
            padding-top: 30px;
            
            > * {
                margin-bottom: 15px;
            }
        }
    }
    
    &.cta-layout-text-overlap {
        .cs-cta-content {
            @include fullblock;
            display: flex;
            @include flexColumn;
            padding: 30px;
        }
    }
    
    &.cta-hover-img-zoom {
        .no-touch &:hover {
            .cs-cta-img img {
                @include scale(1.07);
            }
        }
    }
    
    &.cta-hover-img-zoom-out {
        .cs-cta-img img {
            @include scale(1.07);
        }
        
        .no-touch &:hover {
            .cs-cta-img img {
                @include scale(1);
            }
        }
    }
    
    &.content-top {
        .cs-cta-content {
            justify-content: flex-start;
        }
    }
    
    &.content-middle {
        .cs-cta-content {
            justify-content: center;
        }
    }
    
    &.content-bottom {
        .cs-cta-content {
            justify-content: flex-end;
        }
    }
    
    &.text-hover-to-show {
        .cs-cta-content {
            opacity: 0;
            transition: opacity 0.4s;
        }
        
        .no-touch &:hover .cs-cta-content {
            opacity: 1;
        }
    }
    
    &.text-hover-to-hide {
        .cs-cta-content {
            transition: opacity 0.4s;
        }
        
        .no-touch &:hover .cs-cta-content {
            opacity: 0;
        }
    }
    
    &.with-inner-border {
        --border-position: 10px;
        
        .cs-cta-content:before,
        .cs-cta-content:after {
            position: absolute;
            top: var(--border-position);
            right: var(--border-position);
            bottom: var(--border-position);
            left: var(--border-position);
            color: var(--cta-border-color);
            content: "";
            transition: opacity 0.35s, transform 0.35s;
        }
        
        .cs-cta-content:before {
            border-top: 1px solid;
            border-bottom: 1px solid;
        }
        
        .cs-cta-content:after {
            border-right: 1px solid;
            border-left: 1px solid;
        }
        
        &.text-hover-to-show {
            .cs-cta-content:before,
            .cs-cta-content:after {
                opacity: 0;
            }
            
            .cs-cta-content:before {
                transform: scale(0, 1);
            }
            
            .cs-cta-content:after {
                transform: scale(1, 0);
            }
        
            .no-touch &:hover {
                .cs-cta-content:before,
                .cs-cta-content:after {
                    opacity: 1;
                    transform: scale(1);
                }
            }
        }
        
        &.text-hover-to-hide {
            .no-touch &:hover {
                .cs-cta-content:before,
                .cs-cta-content:after {
                    opacity: 0;
                }
                
                .cs-cta-content:before {
                    transform: scale(0, 1);
                }
                
                .cs-cta-content:after {
                    transform: scale(1, 0);
                }
            }
        }
    }
    
    &.img-offset-border {
        --offset: -10px;
        --offset-revert: calc(0px - var(--offset));
        
        .cs-cta-wrap {
            overflow: visible;
        }
        
        .cs-cta-img-wrap {
            position: relative;
        }
        
        .cs-offset-border {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            border: 1px solid var(--cta-border-color);
            transform: translate(var(--offset), calc(var(--offset)));
            transition: all 0.3s;
            will-change: transform, width, height;
        }
        
        .no-touch &:hover {
            .cs-offset-border {
                @include transform(translate(var(--offset-revert), var(--offset-revert)));
                width: calc(100% + var(--offset)*2);
                height: calc(100% + var(--offset)*2);
            }
        }
    }
}

// CozyStay Block Links
.cs-block-links {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-wrap: wrap;
    
    .cs-bl-item {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-wrap: wrap;
        min-height: 400px;
        flex-grow: 2;
        transition: width .8s cubic-bezier(.36,.33,0,1);
    }
    
    .no-touch & .cs-bl-item:hover {
        .cs-bl-item-bg {
            opacity: 1;
        }
    }
    
    .cs-bl-item-bg {
        @include fullblock;
        z-index: 1;
        opacity: 0;
        transition: opacity .4s ease-out;
        
        .cs-bl-item-bg-container {
            @include fullblock;
            @include bgImgCover;
        }
    }
    
    .cs-bl-item-inner {
        position: relative;
        z-index: 3;
        padding: 80px 30px;
        text-align: center;
    }
    
    .cs-text,
    .button {
        margin-top: 20px;
    }
    
    .cs-text p {
        margin-bottom: 20px;
        
        &:last-child {
            margin-bottom: 0;
        }
    }
    
    .cs-bl-link {
        @include fullblock;
        z-index: 9;
    }
    
    &.hover-text-white {
        .no-touch & .cs-bl-item:hover {
            color: #fff !important;
            
            .cs-subtitle,
            .cs-title,
            .cs-text {
                color: inherit !important;
            }
            
            .button.cs-btn-outline {
                --btn-bg: #fff;
            }
        }
    }
    
    .elementor-editor-active & .cs-bl-link {
        pointer-events: none;
    }
}

// CozyStay Count Down
.cs-countdown {
    .countdown-item {
        position: relative;
        display: inline-flex;
        flex: 0 1;
        flex-direction: column;
        margin: 0 2%;
        padding: 10px 0;
        min-width: 100px;
        text-align: center;
        font-size: 0;
    }
    
    .countdown-amount {
        @include fontsize(32);
        line-height: 1.2;
    }
    
    .countdown-period {
        @include fontsize(18);
    }
    
    &.amount-color-primary .countdown-amount,
    &.period-color-primary .countdown-period {
        color: var(--primary-color);
    }
    
    &.amount-color-secondary .countdown-amount,
    &.period-color-secondary .countdown-period {
        color: var(--secondary-color);
    }
    
    &.amount-color-black .countdown-amount,
    &.period-color-black .countdown-period {
        color: #000;
    }
    
    &.amount-color-white .countdown-amount,
    &.period-color-white .countdown-period {
        color: #fff;
    }
}

// CozyStay Video Button
.cs-video-btn {
    font-size: 0;
    
    .video-play-btn {
        position: relative;
        display: inline-block;
        width: 150px;
        height: 150px;
        border-radius: 50%;
        border: 1px solid;
        cursor: pointer;
        
        svg {
            @include centered;
            margin-top: 1px;
            margin-left: 4px;
            max-width: 32px;
        }
    }
}

// CozyStay Social
.elementor-widget-cs_social {
    a,
    .entry-content & a {
        color: inherit;
    }
}

// CozyStay Info Box Grid
.cs-info-box {
    position: relative;
    display: flex;
    --box-gap: 20px;
    --icon-space: 25px;
    
    .cs-info-box-wrap {
        @include flex;
        @include flexWrap;
        margin: calc(0px - var(--box-gap)/2);
        width: calc(100% + var(--box-gap));
    }
        
    .cs-info-box-item,
    .cs-item-container {
        position: relative;
        display: flex;
        align-items: stretch;
        width: 100%;
    }
    
    .cs-info-box-item {
        padding: calc(var(--box-gap)/2);
    }
    
    &.valign-middle {
        .cs-item-container {
            align-items: center;
        }
    }
    
    &.img-left {
        .cs-info-box-item {
            flex-direction: row;
        }
        
        .cs-info-box-img {
            margin-right: var(--icon-space);
        }
    }
    
    &.img-right {
        .cs-info-box-item .cs-item-container {
            flex-direction: row-reverse;
        }
        
        .cs-info-box-img {
            margin-right: 0;
            margin-left: var(--icon-space);
        }
    }
    
    &.img-top {
        --icon-space: 15px;
        
        .cs-info-box-item .cs-item-container {
            flex-direction: column;
        }
        
        .cs-info-box-img {
            margin-bottom: var(--icon-space);
        }
    }
    
    .cs-info-box-img {
        flex: 0 0 auto;
        line-height: 0;

        i {
            font-size: 42px;
        }

        svg {
            width: 42px;
            max-height: 42px;
        }
    }
    
    .cs-info-box-content {
        position: relative;
        flex: 1 1 auto;
    }

    .cs-info-box-link {
        @include fullblock;
        z-index: 8;
    }
    
    img {
        display: block;
    }
    
    &.text-center img {
        margin: 0 auto;
    }
    
    &.text-right img {
        margin-left: auto;
    }
    
    &.column-1 {
        .cs-info-box-item {
            width: 100%;
        }
    }
    
    .cs-info-box-title {
        @include fontsize(21);
    }
    
    .cs-info-box-title + .cs-info-box-text,
    .cs-info-box-btn {
        margin-top: 10px;
    }
    
    .cs-info-box-text {
        @include fontsize(16);
        line-height: 1.35;
        
        p {
            margin-bottom: $spacing-base/2;
            
            &:last-child {
                margin-bottom: 0;
            }
        }
    }
}

// CozyStay Team Member
.cs-team {
    position: relative;
    overflow: hidden;
    
    .cs-team-photo {
        margin-bottom: $spacing-base/2;
        
        img {
            display: block;
        }
    }
    
    &.text-left {
        .cs-team-photo img {
            margin-right: auto;
        }
    }
    
    &.text-center {
        .cs-team-photo img {
            margin: 0 auto;
        }
    }
    
    &.text-right {
        .cs-team-photo img {
            margin-left: auto;
        }
    }
    
    .cs-team-position {
        display: block;
        margin-bottom: $spacing-base/4;
    }
    
    .cs-title.cs-team-name {
        @include fontsize(30);
        margin-bottom: $spacing-base/2;
    }
    
    .cs-team-text {
        margin-bottom: $spacing-base/2;
        @include fontsize(16);
        
        p {
            margin-bottom: $spacing-base/2;
            
            &:last-child {
                margin-bottom: 0;
            }
        }
    }
    
    .cs-team-social {
        a {
            color: inherit;
        }
    }
    
    > *:last-child {
        margin-bottom: 0;
    }
    
    &.style-overlay {
        .cs-team-photo {
            margin-bottom: 0;
        }
        
        .cs-team-info {
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            padding: 50px 30px 30px;
            background: linear-gradient(to top, rgba(#000, 0.7), rgba(#000,0));
            color: #fff;
        }
        
        .cs-team-name {
            color: inherit;
        }
    }
}

// CozyStay List
.cs-list {
    --icon-v-offset: 0px;
    --list-space: 2px;
    --icon-space: 20px;
    list-style: none;
    margin: 0;
    
    li {
        position: relative;
        @include flex;
        align-items: center;
        padding: var(--list-space) 0;
        line-height: 1.4;
    }
    
    .list-icon {
        position: relative;
        top: var(--icon-v-offset);
        display: flex;
        margin-right: var(--icon-space);

        svg {
            width: 1em;
            max-height: 1em;
            fill: currentColor;
        }
    }
    
    .list-link {
        @include fullblock;
    }
    
    &.with-border {
        --list-space: 12px;
        border-top: 1px solid var(--border-color);
        
        li {
            border-bottom: 1px solid var(--border-color);
        }
    }
    
    &.cs-list-type-none {
        .list-icon {
            display: none;
            margin: 0;
        }
    }
    
    &.cs-list-type-ordered {
        counter-reset: item;
        
        .list-icon:before {
            counter-increment: item;
        }
    }
    
    &.type-decimal {
        .list-icon:before {
            content: counter(item,decimal) ".";
        }
    }
    
    &.type-decimal-leading-zero {
        .list-icon:before {
            content: counter(item,decimal-leading-zero) ".";
        }
    }
    
    &.type-upper-roman {
        .list-icon:before {
            content: counter(item,upper-roman) ".";
        }
    }
    
    &.type-lower-roman {
        .list-icon:before {
            content: counter(item,lower-roman) ".";
        }
    }
    
    .elementor-editor-active & a {
        pointer-events: none;
    }

    .elementor-align-center & li {
        justify-content: center;
    }

    .elementor-align-right & li {
        justify-content: flex-end;
        text-align: right;
    }
}

// Open Table Reservation Form
.cs-open-table {
    .field-wrap > * {
        width: 100%;
    }
    
    &.wide {
        .cs-otf-wrap {
            display: flex;
            flex-wrap: wrap;
            margin: 0 -16px;
            
            .cs-otf-field {
                width: 100%;
                padding: 0 16px;
                margin-bottom: 30px;
                
                &:last-child {
                    margin-bottom: 0;
                }
            }
        }
    }
    
    &.standard {
        .cs-otf-wrap {
            .cs-otf-field {
                width: 100%;
                margin-bottom: 30px;
                
                &:last-child {
                    margin-bottom: 0;
                }
            }
        }
    }
    
    .field-wrap {
        position: relative;
    }
    
    .cs-otf-field {
        position: relative;
        
        &.otf-restaurant,
        &.otf-size,
        &.otf-date,
        &.otf-time {
            .field-wrap:after {
                @include fontElegant;
                content: "\33";
                font-size: 16px;
                position: absolute;
                right: 5px;
                top: 0;
                line-height: 52px;
            }
        }
    }
    
    select {
        -webkit-appearance: none !important;
    }
}

// Date Picker Restyle
.theme-cozystay .ui-widget.ui-widget-content.ui-datepicker {
    --dropdown-bg: #f8f5f1;
    --dropdown-color: #000;
    --dropdown-border: var(--primary-color);
    background: var(--dropdown-bg);
    color: var(--dropdown-color);
    border: 1px solid var(--dropdown-border);
    border-radius: 0;
    padding: 16px;

    .ui-datepicker-header {
        padding: 0;
        border: none;
        background: none;
    }
    
    .ui-datepicker-title {
        line-height: 32px;
    }
    
    .ui-datepicker-prev,
    .ui-datepicker-next {
        position: absolute;
        top: 0;
        width: 32px;
        height: 32px;
        
        span {
            position: absolute;
            top: 0;
            left: 0;
            margin: 0;
            width: 32px;
            height: 32px;
            cursor: pointer;
            border-radius: 50%;
            box-sizing: border-box;
            border: 0.0625rem solid #d8d9db;
            background-image: url(data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%205.24%208.07%22%3E%3Cg%3E%3Cpath%20style%3D%22fill%3A%2523333%22%20d%3D%22M5.09%203.68L4.39%203%201.56.15a.5.5%200%200%200-.71%200l-.7.7a.5.5%200%200%200%200%20.71L2.62%204%20.15%206.51a.5.5%200%200%200%200%20.71l.71.71a.5.5%200%200%200%20.71%200L4.39%205.1l.71-.71a.5.5%200%200%200-.01-.71z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E);
            background-position: 50%;
            background-repeat: no-repeat;
            background-size: 0.375rem 0.5rem;
        }
        
        &.ui-state-hover {
            background: none;
            border: none;
            
            span {
                border: 2px solid var(--primary-color);
            }
        }
    }
    
    .ui-datepicker-prev {
        left: 0;
        
        span {
            transform: scaleX(-1);
        }
    }
    
    .ui-datepicker-next {
        right: 0;
    }
    
    table {
        border: none;
        
        th {
            padding: 8px 0;
            font-weight: 500;
            font-size: 12px;
        }
        
        td {
            padding: 0;
        }
        
        td span,
        td a {
            text-align: center;
        }
        
        td {
            border: none;
            line-height: 2rem;
            border: 0.0625rem solid #d8d9db;
        }
        
        .ui-state-default,
        .ui-widget-content .ui-state-default {
            background: #fff;
            color: #000;
            border: none;
            padding: 0;
        }
        
        td.ui-state-disabled {
            color: #d8d9db;
            opacity: 1;
            
            .ui-state-default {
                color: inherit;
            }
        }
        
        td a.ui-state-active,
        td a:hover {
            position: relative;
            
            &:before {
                border: 2px solid var(--primary-color);
                box-sizing: border-box;
                content: "";
                height: calc(100% + 2px);
                left: 0;
                margin: -0.0625rem;
                position: absolute;
                width: calc(100% + 2px);
            }
        }
    }
}

// Date Range Picker Restyle
.theme-cozystay .daterangepicker {
    --dropdown-bg: #f8f5f1;
    --dropdown-color: #000;
    --dropdown-border: var(--primary-color);
    --available-bg: #fff;
    --active-bg: var(--primary-color);
    --active-color: #fff;
    --inrange-bg: #ede6dc;
    --inrange-color: var(--dropdown-color);
    --disabled-color: #d8d9db;
    --padding: 8px;
    --td-border: #d8d9db;
    --tooltip-bg: #000;
    --tooltip-color: #fff;
    --no-check-inout: rgba(0, 0, 0, 0.7);
    --hover-highlight: var(--primary-color);
    background: var(--dropdown-bg);
    color: var(--dropdown-color);
    border: 1px solid var(--dropdown-border);
    border-radius: 0;
    padding: var(--padding);
    margin-top: 12px;

    &:before {
        border-bottom-color: var(--dropdown-border);
    }

    &:after {
        border-bottom-color: var(--dropdown-bg);
        @include translateY(0.4px);
    }

    &.opensright:before {
        left: 25px;
    }

    &.opensright:after {
        left: 26px;
    }

    &.opensleft:before {
        right: 32px;
    }

    &.opensleft:after {
        right: 33px;
    }

    .calendar-table {
        background: none;
        border: none;

        table {
            border: none;
        }

        th,
        td {
            position: relative;
            padding: 0;
            max-width: 100%;
            height: 36px;
            border: none;
            border-radius: 0;
        }

        thead th.month {
            @include fontsize(16);
        }

        tbody td {
            border: 0.0625rem solid var(--td-border);
        }
    }

    td:hover {
        z-index: 99;
    }

    td.disabled,
    option.disabled {
        color: var(--disabled-color) !important;
        background: none !important;

        &:before,
        &:not(.maximal-stay-unavailable) .day-tooltip {
            display: none !important;
        }
    }

    td.available {
        background: var(--available-bg);
    }

    td.available:hover {
        background: var(--available-bg);
    }

    td.no-checkin:not(.off):not(.active):not(.in-range),
    td.no-checkout:not(.off):not(.active):not(.in-range) {
        color: var(--no-check-inout);
    }

    td.in-range {
        background: var(--inrange-bg);
        color: var(--inrange-color);
    }

    td.active {
        background: var(--active-bg);
        color: var(--active-color);
    }

    td.active:hover {
        background: var(--available-bg);
        color: var(--dropdown-color);
    }

    td.active,
    td.in-range,
    td.available:hover {
        position: relative;

        &:before {
            position: absolute;
            top: 0;
            left: 0;
            margin: -0.0625rem;
            width: calc(100% + 2px);
            height: calc(100% + 2px);
            border: 2px solid;
            box-sizing: border-box;
            content: "";
        }
    }

    td.in-range {
        &:before {
            border-color: var(--inrange-bg);
        }

        &.off:before {
            border-color: transparent;
        }
    }

    td.active {
        &:before {
            border-color: var(--active-bg);
        }
    }

    td.available:hover {
        &:before {
            border-color: var(--hover-highlight);
        }
    }

    td.active.off:not(:hover):before {
        border-color: transparent;
    }

    th.available:hover {
        background: none;
    }

    th.prev,
    th.next {
        position: relative;

        span {
            border-color: var(--dropdown-color);
        }

        &:before,
        &:after {
            @include centered;
            margin: 1px 0 0;
            width: 32px;
            height: 32px;
            border-radius: 50%;
            box-sizing: border-box;
            content: "";
        }

        &:before {
            border: 0.0625rem solid var(--td-border);
        }

        &:after {
            border: 2px solid var(--hover-highlight);
            opacity: 0;
        }

        &:hover:before {
            opacity: 0;
        }

        &:hover:after {
            opacity: 1;
        }

        span {
            padding: 2px;
        }
    }

    th.prev {
        &:before,
        &:after {
            margin-left: -1px;
        }
    }

    .day-tooltip {
        position: absolute;
        top: 1px;
        left: 50%;
        z-index: 999;
        @include translate(-50%, -100%);
        display: block;
        width: fit-content;
        height: auto;
        padding: 2px 6px;
        background: var(--tooltip-bg);
        color: var(--tooltip-color);
        @include fontsize(10);
        border-radius: 2px;
        pointer-events: none;

        &:after {
            position: absolute;
            display: block;
            width: 10px;
            height: 10px;
            background: var(--tooltip-bg);
            content: "";
            bottom: -2px;
            left: 50%;
            @include transform(translateX(-50%) rotate(45deg));
        }
    }
}

.elementor-widget-cs_reservation .elementor-widget-container {
    position: relative;
}

// CozyStay Reservation Form
.cs-reservation-form {
    --field-height: 48px;
    --field-space: 30px;
    --dropdown-bg: #f8f5f1;
    --dropdown-color: #000;
    --dropdown-border: var(--primary-color);
    --icon-color: var(--primary-color);
    --divider-color: var(--primary-color);
    
    .cs-form-field {
        .field-wrap,
        .field-input-wrap {
            position: relative;
        }
        
        &:not(.cs-submit) .field-input-wrap:after {
            @include fontElegant;
            content: "\33";
            font-size: 20px;
            line-height: 1;
            @include centered-vertical;
            right: 10px;
            opacity: 0.35;
        }
    }

    .cs-form-label {
        display: block;

        .csf-item-description {
            display: block;
            margin-top: -2px;
            font-family: var(--body-font);
            @include fontsize(13);
            line-height: 1;
            opacity: 0.5;
        }
    }

    .field-wrap > .cs-form-label {
        color: var(--text-color);
    }
    
    input[type="text"],
    input[type="email"],
    input[type="url"],
    input[type="file"],
    input[type="password"],
    input[type="number"],
    input[type="date"],
    input[type="search"],
    input[type="tel"],
    textarea,
    select {
        height: var(--field-height);
        @include fontsize(14);
    }
    
    select {
        -webkit-appearance: none !important;
        width: 100%;
    }
    
    button[type="submit"] {
        padding: 0 15px;
        width: 100%;
        height: var(--field-height);
        line-height: 1.2;
        text-align: center;
    }
    
    &.style-block {
        .cs-form-wrap {
            font-size: 0;
        }
        
        .cs-form-field:not(:first-child) {
            padding-top: var(--field-space);
        }
        
        .form-field-col-1-2 {
            display: inline-block;
            width: 50%;
            
            &.cs-adults  {
                padding-right: calc(var(--field-space)/2);
            }
            
            &.cs-children {
                padding-left: calc(var(--field-space)/2);
            }
            
            .csf-dropdown {
                padding: 15px;

                .csf-dropdown-item {
                    flex-wrap: wrap;
                }
                
                .cs-form-label {
                    display: none;
                }
                
                .csf-dropdown-item {
                    justify-content: center;
                }
            }
        }
        
        .csf-dropdown {
            min-width: 100px;
            width: 100%;
        }

        &:not(.inline-label) .csf-item-description {
            margin-bottom: 5px;
        }

        .cs-form-field.cs-has-age-text {
            .csf-item-description {
                position: absolute;
                @include fontsize(12);
                white-space: nowrap;
                opacity: 0;
                transition: opacity 0.3s;
            }

            .cs-form-label {
                transition: top 0.3s;
            }

            &.loftocean-highlighted {
                .csf-item-description {
                    opacity: 0.5;
                }

                .cs-form-label {
                    top: calc(50% - 6px);
                }
            }
        }
    }
    
    &.style-banner {
        .cs-form-wrap {
            position: relative;
            @include flex;
            margin: 0 calc(0px - var(--field-space)/2);
            -webkit-box-align: end;
            -ms-flex-align: end;
            align-items: flex-end;
            
            .cs-form-field {
                position: relative;
                display: inline-block;
                width: 100%;
                vertical-align: top;
                padding: 0 calc(var(--field-space)/2);
            }
        }
        
        button[type="submit"] {
            padding: 0 15px;
            text-align: center;
            width: 100%;
        }
        
        &.style-banner-4 {
            --field-space: 15px;

            .cs-form-wrap {
                flex-wrap: wrap;
            }
            
            .cs-form-field {
                display: block;
                width: 50%;
                margin-top: var(--field-space);
                
                &:nth-child(-n+2) {
                    margin-top: 0;
                }
                
                &.cs-submit:nth-child(5) {
                    width: 100%;
                }
            }
        }
    }
    
    &.style-banner-2 {
        --field-space: 40px;

        .cs-form-wrap {
            margin: 0;
            align-items: center;
            
            .cs-form-field:not(.cs-submit) {
                @include flex;
                align-items: center;
            }
            
            .field-wrap {
                flex: 1 1 auto;
            }

            .cs-form-field {
                padding-left: 0;
                padding-right: 0;

                &.cs-check-out,
                &.cs-guests {
                    padding-left: var(--field-space);
                }
            }
        }
        
        .cs-form-icon {
            width: 20px;
            height: 25px;
            margin-right: 25px;
            
            svg {
                width: 20px;
                height: auto;
                
                path {
                    fill: var(--icon-color);
                }
            }
        }
        
        .cs-form-field.cs-guests {
            .cs-form-icon,
            .cs-form-icon svg {
                width: 25px;
            }
        }
        
        .cs-form-field:not(.cs-submit) {
            .field-input-wrap:after {
                display: none;
            }
            
            &:after {
                @include centered-vertical;
                right: 0;
                display: block;
                width: 1px;
                height: 56px;
                background: var(--divider-color);
                content: "";
            }
        }
        
        .cs-form-field.cs-guests:after {
            display: none;
        }
        
        .field-wrap > .cs-form-label {
            @include fontsize(18);
            line-height: 1.2;
        }
        
        input[type="text"],
        input[type="email"],
        input[type="url"],
        input[type="file"],
        input[type="password"],
        input[type="number"],
        input[type="date"],
        input[type="search"],
        input[type="tel"],
        textarea,
        select {
            padding: 0;
            height: auto;
            border: none;
            line-height: 1.2;
        }
        
        button[type="submit"] {
            min-height: 56px;
            @include fontsize(18);
        }

        .date-range-picker {
            bottom: 0;
        }
        
        &.inline-label {
            --field-space: 60px;
            
            .cs-form-icon {
                margin-right: 15px;
            }
            
            .cs-form-label {
                left: 0;
            }
            
            .cs-form-field:not(.cs-submit):after {
                right: 0;
            }
            
            .cs-form-field.cs-check-in,
            .cs-form-field.cs-check-out {
                width: 23%;
            }
            
            .cs-form-field.cs-guests {
                width: 30%;
            }
            
            .cs-form-field.cs-submit {
                width: 24%;
            }
        }
    }
    
    &.style-banner-3 {
        --field-height: 60px;
        --field-space: 0px;
        --btn-radius: 0px;
        
        .cs-form-wrap {
            margin: 0 5px;
            
            &:before {
                position: absolute;
                top: 5px;
                left: -5px;
                display: block;
                width: calc(100% + 10px);
                height: calc(100% - 10px);
                border: 1px solid var(--form-bd);
                content: "";
                pointer-events: none;
            }
            
            .cs-form-field {
                padding: 0;
            }
            
            .button {
                background: none;
                color: inherit;
                border: 1px solid var(--form-bd);
            }
        }

        .cs-form-field.cs-check-out input:focus {
            border-color: var(--form-bd);
        }
    }
    
    &.inline-label {
        .field-wrap > .cs-form-label {
            @include centered-vertical;
            left: 15px;
        }
        
        .field-input-wrap > * {
            text-align: right;
            padding-right: 35px;
        }

        &.cs-form-underline {
            .field-wrap > .cs-form-label {
                left: 0;
            }

            .field-input-wrap > * {
                padding-right: 25px;
            }

            .cs-form-field:not(.cs-submit) .field-input-wrap:after {
                right: 0;
            }
        }
    }

    &.hide-label {
        .field-wrap > .cs-form-label {
            display: none;
        }
    }
    
    .csf-dropdown {
        position: absolute;
        bottom: -12px;
        left: 0;
        @include translateY(100%);
        z-index: -1;
        display: block;
        min-width: 320px;
        background: var(--dropdown-bg);
        color: var(--dropdown-color);
        border: 1px solid var(--dropdown-border);
        padding: 30px;
        transition: 0.3s;
        opacity: 0;
        pointer-events: none;
        visibility: hidden;
        
        &.is-open {
            z-index: 999;
            opacity: 1;
            pointer-events: auto;
            visibility: visible;
        }
        
        .csf-dropdown-item,
        .cs-quantity {
            @include flex;
            align-items: center;
            justify-content: space-between;
        }
        
        .csf-dropdown-item:not(:last-child) {
            margin-bottom: 15px;
        }
        
        .cs-quantity {
            .input-text {
                padding: 0;
                margin: 0;
                width: 40px;
                height: auto;
                background: none;
                border: none;
                text-align: center;
                color: inherit;
                font-size: 16px;
                line-height: 1.2;
            }
            
            .minus,
            .plus {
                position: relative;
                background: none;
                border: none;
                box-shadow: none;
                outline: none;
                width: 30px;
                height: 30px;
                padding: 0;
                color: inherit;
                text-align: center;
                line-height: 30px;
                cursor: pointer;
                
                &:before,
                &:after {
                    @include centered;
                    display: block;
                    content: "";
                    background: currentColor;
                }
                
                &:before {
                    width: 12px;
                    height: 1px;
                }

                &.disabled {
                    cursor: not-allowed;

                    &:before,
                    &:after {
                        opacity: 0.3;
                    }

                    &:hover span {
                        opacity: 1;
                        visibility: visible;
                    }
                }

                &.cs-hint {
                    &:hover span {
                        opacity: 1;
                        visibility: visible;
                    }
                }

                .cs-btn-tooltip {
                    display: block;
                    pointer-events: none;
                    visibility: hidden;
                    opacity: 0;
                    transition: opacity 0.1s;

                    &:before {
                        position: absolute;
                        top: 40px;
                        right: 50%;
                        @include translateX(50%);
                        z-index: 999;
                        display: block;
                        padding: 5px 8px;
                        background-color: var(--text-color);
                        border-radius: 4px;
                        color: var(--bg-color);
                        content: attr(data-title);
                        font-family: sans-serif;
                        font-size: 12px;
                        line-height: 1.3;
                        white-space: nowrap;
                    }

                    &:after {
                        position: absolute;
                        top: 36px;
                        right: 50%;
                        @include translateX(50%);
                        border-right: 4px solid transparent;
                        border-left: 4px solid transparent;
                        border-bottom: 4px solid var(--text-color);
                        content: "";
                    }
                }
            }
            
            .plus:after {
                width: 1px;
                height: 12px;
            }
        }

        &:before,
        &:after {
            position: absolute;
            content: "";
        }

        &:before {
            top: -7px;
            left: 25px;
            border-right: 7px solid transparent;
            border-left: 7px solid transparent;
            border-bottom: 7px solid var(--dropdown-border);
        }

        &:after {
            top: -6px;
            left: 26px;
            border-right: 6px solid transparent;
            border-bottom: 6px solid var(--dropdown-bg);
            border-left: 6px solid transparent;
            @include translateY(0.4px);
        }
    }

    .date-range-picker {
        position: absolute;
        pointer-events: none;
        visibility: hidden;
        opacity: 0;
    }

    .cs-form-field-group {
        position: relative;

        .cs-form-field-group-inner {
            position: relative;
            display: flex;
            align-items: center;
            height: var(--field-height);
            padding: 0 var(--form-side-padding);
            background: none;
            border-color: var(--form-bd);
            border-style: solid;
            border-width: var(--form-bd-width);
            border-radius: var(--form-radius);
            color: var(--text-color);
            @include fontsize(14);
            line-height: 2;
            font-weight: 400;
            transition: 0.3s;
            -webkit-appearance: none;

            &:after {
                @include fontElegant;
                content: "\33";
                font-size: 20px;
                line-height: 1;
                @include centered-vertical;
                right: 10px;
                opacity: 0.35;
            }

            .cs-form-field,
            span {
                padding: 0;
            }

            .field-input-wrap:after {
                display: none;
            }

            input[type="text"] {
                padding: 0;
                width: 70px;
                border: none;
            }

            .date-separator {
                position: relative;
                margin: 0 5px;
                width: 8px;
                height: 1px;
                background: var(--text-color);
                opacity: 0.5;
            }
        }
    }

    &.inline-label .cs-form-field-group {
        > .cs-form-label {
            @include centered-vertical;
            left: 15px;
        }

        .cs-form-field-group-inner {
            justify-content: flex-end;
            padding-right: 35px;
            text-align: right;
        }
    }

    .loftocean-highlighted input,
    .cs-form-field-group.loftocean-highlighted .cs-form-field-group-inner {
        border-color: var(--form-bd-focus);
    }
}

// CozyStay Signup Form
.elementor-widget-cs_signup {
    &.elementor-align-left {
        form {
            margin-right: auto;
            margin-left: 0;
        }
    }
    
    &.elementor-align-center {
        form {
            margin-right: auto;
            margin-left: auto;
        }
    }
    
    &.elementor-align-right {
        form {
            margin-right: 0;
            margin-left: auto;
        }
    }
}

// Parallax
.parallax-img-container {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    overflow: hidden;
    
    img {
        position: absolute;
        top: 0;
        left: 0;
        object-fit: cover;
        object-position: 50% 50%;
        width: 100%;
        height: 100%;
        transform-style: preserve-3d;
        backface-visibility: hidden;
        will-change: transform, opacity;
    }
}

.cs-parallax-on-scroll {
    &.e-con {
        &:before {
            z-index: 1;
        }

        .parallax-img-container ~ *,
        .e-con-inner,
        > .e-con {
            z-index: 9;
        }
    }
}

.fadeInUp.cs-animation-small-offset {
    animation-name: fadeInUpSmall;
}

.fadeInUp.cs-animation-medium-offset {
    animation-name: fadeInUpMedium;
}

.fadeInUp.cs-animation-large-offset {
    animation-name: fadeInUpLarge;
}

@keyframes fadeInUpSmall {
    from {
        opacity: 0;
        transform: translate3d(0, 50px, 0);
    }
    
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInUpMedium {
    from {
        opacity: 0;
        transform: translate3d(0, 100px, 0);
    }
    
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInUpLarge {
    from {
        opacity: 0;
        transform: translate3d(0, 150px, 0);
    }
    
    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInDown.cs-animation-small-offset {
    animation-name: fadeInDownSmall;
}

.fadeInDown.cs-animation-medium-offset {
    animation-name: fadeInDownMedium;
}

.fadeInDown.cs-animation-large-offset {
    animation-name: fadeInDownLarge;
}

@keyframes fadeInDownSmall {
    from {
        opacity: 0;
        transform: translate3d(0, -50px, 0);
    }
    
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInDownMedium {
    from {
        opacity: 0;
        transform: translate3d(0, -100px, 0);
    }
    
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInDownLarge {
    from {
        opacity: 0;
        transform: translate3d(0, -150px, 0);
    }
    
    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInLeft.cs-animation-small-offset {
    animation-name: fadeInLeftSmall;
}

.fadeInLeft.cs-animation-medium-offset {
    animation-name: fadeInLeftMedium;
}

.fadeInLeft.cs-animation-large-offset {
    animation-name: fadeInLeftLarge;
}

@keyframes fadeInLeftSmall {
    from {
        opacity: 0;
        transform: translate3d(-50px, 0, 0);
    }
    
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInLeftMedium {
    from {
        opacity: 0;
        transform: translate3d(-100px, 0, 0);
    }
    
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInLeftLarge {
    from {
        opacity: 0;
        transform: translate3d(-150px, 0, 0);
    }
    
    to {
        opacity: 1;
        transform: none;
    }
}

.fadeInRight.cs-animation-small-offset {
    animation-name: fadeInRightSmall;
}

.fadeInRight.cs-animation-medium-offset {
    animation-name: fadeInRightMedium;
}

.fadeInRight.cs-animation-large-offset {
    animation-name: fadeInRightLarge;
}

@keyframes fadeInRightSmall {
    from {
        opacity: 0;
        transform: translate3d(50px, 0, 0);
    }
    
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInRightMedium {
    from {
        opacity: 0;
        transform: translate3d(100px, 0, 0);
    }
    
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInRightLarge {
    from {
        opacity: 0;
        transform: translate3d(150px, 0, 0);
    }
    
    to {
        opacity: 1;
        transform: none;
    }
}

// Tweak CSS for some Elementor default widgets
.elementor-tab-title {
    .elementor-toggle-icon,
    .elementor-accordion-icon {
        .fa:before, 
        .fas:before {
            font-size: 12px;
            vertical-align: middle;
        }
    }
}

.theme-cozystay .elementor-toggle .elementor-tab-title .elementor-toggle-icon svg,
.theme-cozystay .elementor-accordion .elementor-tab-title .elementor-accordion-icon svg {
    width: 11px;
    fill: currentColor;
}

.theme-cozystay .elementor-toggle .elementor-tab-title .elementor-toggle-icon svg.elementor-toggle-icon-opened {
    margin-inline-start: auto;
    margin-inline-end: 0;
}

.elementor-widget.elementor-widget-icon-list .elementor-icon-list-icon svg {
    fill: currentColor;
}

.elementor-widget-icon-box.elementor-position-left, 
.elementor-widget-icon-box.elementor-position-right {
    &.elementor-vertical-align-middle {
        .elementor-icon-box-wrapper {
            align-items: center;
        }

        .elementor-icon-box-icon {
            display: inline-flex;
        }
    }
}

// Fix extra magin bottom for inline widgets in Columns
.elementor-column .elementor-widget:not(:last-child) {
    &.elementor-widget__width-auto,
    &.elementor-widget__width-initial {
        --kit-widget-spacing: 0px;
    }
}

@include screen(handheld-s) {
    .cs-gallery.gallery-carousel > .cs-gallery-wrap > .cs-gallery-item {
        width: 50%;
    }

    .cs-gallery.gallery-carousel[data-column="1"] > .cs-gallery-wrap > .cs-gallery-item {
        width: 100%;
    }
}

@include screen(handheld-m) {
    .cs-open-table.wide .cs-otf-wrap .cs-otf-field {
        width: 50%;
        
        &:nth-child(3) {
            margin-bottom: 0;
        }
    }

    .cs-info-box {
        &.column-2,
        &.column-3,
        &.column-4,
        &.column-5,
        &.column-6 {
            .cs-info-box-item {
                width: 50%;
            }
        }
    }
}

@include screen(handheld-l) {
    h1.cs-title {
        @include fontsize(72);
    }
    
    h2.cs-title {
        @include fontsize(42);
    }
    
    h3.cs-title {
        @include fontsize(36);
    }
    
    h4.cs-title {
        @include fontsize(32);
    }
    
    h5.cs-title {
        @include fontsize(28);
    }
    
    h6.cs-title {
        @include fontsize(24);
    }
    
    .cs-food-menu.food-menu-style-5 {
        display: flex;
        flex-wrap: wrap;
        
        &.column-2,
        &.column-4 {
            .cs-food-menu-item {
                width: 50%;
            }
        }
        
        &.column-3 {
            .cs-food-menu-item {
                width: 33.3333%;
            }
        }
    }
    
    .cs-instagram {
        &.column-6 ul {
            grid-template-columns: repeat(6,1fr);
        }
        
        &.column-7 ul {
            grid-template-columns: repeat(7,1fr);
        }
        
        &.column-8 ul {
            grid-template-columns: repeat(8,1fr);
        }
        
        &.column-mosaic {
            ul {
                grid-template-columns: repeat(6,1fr);
                grid-template-rows: repeat(2,1fr);
                
                li:first-child {
                    grid-column: 1/span 2;
                    grid-row: 1/span 2;
                }
                
                li:nth-child(4) {
                    grid-column: 5/span 2;
                    grid-row: 1/span 2;
                }
                
                li:nth-child(9) {
                    grid-column: 3/span 2;
                    grid-row: 3/span 2;
                }
            }
        }
        
        &.column-mosaic.mosaic-2 {
            ul li:first-child {
                grid-row: 1 / 2;
            }
            
            ul li:nth-child(2) {
                grid-column: 3/span 2;
                grid-row: 1/span 2;
            }
            
            ul li:nth-child(4) {
                grid-column: 5/span 1;
                grid-row: 1/span 1;
            }
            
            ul li:nth-child(7) {
                grid-column: 5/span 2;
                grid-row: 2 / 3;
            }
            
            ul li:first-child,
            ul li:nth-child(7),
            ul li:nth-child(12) {
                .feed-bg {
                    padding-top: 50%;
                }
            }
            
            ul li:nth-child(8) {
                grid-column: 1/span 2;
                grid-row: 3/span 2;
            }
            
            ul li:nth-child(9) {
                grid-column: revert;
                grid-row: revert;
            }
            
            ul li:nth-child(11) {
                grid-column: 5/span 2;
                grid-row: 3/span 2;
            }
            
            ul li:nth-child(12) {
                grid-column: 3/span 2;
                grid-row: 4 / 5;
            }
            
            &.small-gap {
                ul li:first-child,
                ul li:nth-child(7),
                ul li:nth-child(12) {
                    .feed-bg {
                        padding-top: calc(50% - 2px);
                    }
                }
            }
        }
    }
    
    .cs-block-links {
        flex-wrap: nowrap;
        
        .cs-bl-item {
            width: 50%;
        }
        
        .no-touch & .cs-bl-item:hover {
            width: 60%;
        }
        
        .cs-bl-item-inner {
            padding: 100px 40px;
        }
        
        &.height-full {
            .cs-bl-item {
                height: 100vh;
            }
        }
    }
    
    .cs-countdown {
        .countdown-amount {
            @include fontsize(60);
        }
        
        .countdown-period {
            @include fontsize(20);
        }
    }
    
    .cs-gallery.gallery-carousel[data-column="3"] > .cs-gallery-wrap > .cs-gallery-item,
    .cs-gallery.gallery-carousel[data-column="4"] > .cs-gallery-wrap > .cs-gallery-item,
    .cs-gallery.gallery-carousel[data-column="5"] > .cs-gallery-wrap > .cs-gallery-item,
    .cs-gallery.gallery-carousel[data-column="6"] > .cs-gallery-wrap > .cs-gallery-item {
        width: 33.3333%;
    }
    
    .info-box-carousel:not([data-column="1"]) > .cs-info-box-wrap > .cs-info-box-item {
        width: 50%;
    }
    
    .cs-testimonials {
        &.testimonials-grid {
            &.grid-col-2 {
                .cs-testimonial {
                    width: 50%;
                }
                
                .cs-testimonial-content {
                    @include fontsize(24);
                }
            }
            
            &.grid-col-3 {
                .cs-testimonial {
                    width: 33.33%;
                }
            }
        }
        
        &.testimonials-slider {
            &[data-column="2"] {
                .cs-ts-item {
                    width: 50%;
                }

                .cs-testimonial-content {
                    @include fontsize(24);
                }

                > .cs-ts-wrap > .cs-ts-item:nth-child(-n+2) {
                    display: block;
                }
            }

            &[data-column="3"] {
                .cs-ts-item {
                    width: 33.33%;
                }

                > .cs-ts-wrap > .cs-ts-item:nth-child(-n+3) {
                    display: block;
                }
            }

            &[data-column="2"],
            &[data-column="3"] {
                .cs-ts-wrap:not(.slick-initialized) {
                    display: flex;
                }
            }
        }
    }
}

@include screen(handheld-xl) {
    .cs-open-table.wide .cs-otf-wrap .cs-otf-field {
        width: 25%;
        margin-bottom: 0;
    }
    
    .cs-open-table.wide.multi-restaurants .cs-otf-wrap .cs-otf-field {
        width: 20%;
    }
    
    .cs-food-menu.food-menu-style-5 {
        &.column-4 {
            .cs-food-menu-item {
                width: 25%;
            }
        }
    }
    
    .cs-countdown {
        .countdown-amount {
            @include fontsize(80);
        }
        
        .countdown-period {
            @include fontsize(24);
        }
    }
    
    .cs-gallery.gallery-carousel[data-column="4"] > .cs-gallery-wrap > .cs-gallery-item,
    .info-box-carousel[data-column="4"] > .cs-info-box-wrap > .cs-info-box-item {
        width: 25%;
    }
    
    .cs-gallery.gallery-carousel[data-column="5"] > .cs-gallery-wrap > .cs-gallery-item,
    .info-box-carousel[data-column="5"] > .cs-info-box-wrap > .cs-info-box-item {
        width: 20%;
    }
    
    .cs-gallery.gallery-carousel[data-column="6"] > .cs-gallery-wrap > .cs-gallery-item,
    .info-box-carousel[data-column="6"] > .cs-info-box-wrap > .cs-info-box-item {
        width: 16.6666%;
    }
    
    .info-box-carousel[data-column="3"] > .cs-info-box-wrap > .cs-info-box-item {
        width: 33.3333%;
    }

    .cs-info-box {
        &.column-3 {
            .cs-info-box-item {
                width: 33.3333%;
            }
        }
        
        &.column-4 {
            .cs-info-box-item {
                width: 25%;
            }
        }
        
        &.column-5 {
            .cs-info-box-item {
                width: 20%;
            }
        }

        &.column-6 {
            .cs-info-box-item {
                width: 16.6666%;
            }
        }
    }

    .cs-fancy-card.style-1.layout-row {
        .cs-fc-wrap {
            flex-direction: row;
            flex-wrap: wrap;
            
            .cs-fc-img,
            .cs-fc-content {
                width: 50%;
            }

            .cs-fc-img {
                display: flex;
                align-items: center;

                img {
                    z-index: 9;
                    display: block;
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                }
            }
        }

        &.order-reverse {
            .cs-fc-img {
                order: 9;
            }
        }
    }
}

@media screen and (min-width: 1025px) {
    .cs-reservation-form {
        &.style-banner-3 .cs-form-wrap {
            .cs-form-field:not(:last-child) input {
                border-right-width: 0px;
            }

            .cs-form-field.loftocean-highlighted:after {
                position: absolute;
                top: 0;
                right: -1px;
                z-index: 99;
                width: 1px;
                height: 100%;
                background: var(--form-bd-focus);
                content: "";
                pointer-events: none;
            }
        }
    }
}

@include screen(desktop) {
    h1.cs-title {
        @include fontsize(80);
    }
    
    h2.cs-title {
        @include fontsize(60);
    }
    
    h3.cs-title {
        @include fontsize(48);
    }
    
    h4.cs-title {
        @include fontsize(42);
    }
    
    h5.cs-title {
        @include fontsize(36);
    }
    
    h6.cs-title {
        @include fontsize(32);
    }

    .cs-block-links {
        .cs-bl-item-inner {
            padding: 180px 80px;
        }
    }
    
    .site-content[class*="with-sidebar-"] .cs-section-content-fullwidth {
        width: 100%;
        left: auto;
    }

    .elementor-section-full_width .cs-gallery {
        .slick-arrow.slick-prev {
            left: 65px;
        }
        
        .slick-arrow.slick-next {
            right: 65px;
        }
    }
}

@media screen and (max-width: 1024px) {
    .cs-title-wrap.text-left-tablet,
    .elementor-widget-cs_signup.elementor-tablet-align-left form {
        margin-right: auto;
        margin-left: 0;
    }
    
    .cs-title-wrap.text-center-tablet,
    .elementor-widget-cs_signup.elementor-tablet-align-center form {
        margin-right: auto;
        margin-left: auto;
    }
    
    .cs-title-wrap.text-right-tablet,
    .elementor-widget-cs_signup.elementor-tablet-align-right form {
        margin-right: 0;
        margin-left: auto;
    }
    
    .cs-instagram .cs-instagram-title {
        width: 150px;
        height: 150px;
        @include fontsize(18);
    }

    ul.social-nav {
        &.text-left-tablet,
        .text-left-tablet & {
            -webkit-justify-content: flex-start;
            justify-content: flex-start;
        }

        &.text-center-tablet,
        .text-center-tablet & {
            -webkit-justify-content: center;
            justify-content: center;
        }

        &.text-right-tablet,
        .text-right-tablet & {
            -webkit-justify-content: flex-end;
            justify-content: flex-end;
        }
    }
    
    .cs-menu {
        &.text-left-tablet {
            .menu {
                -webkit-justify-content: flex-start;
                justify-content: flex-start;
            }
        }
        
        &.text-center-tablet {
            .menu {
                -webkit-justify-content: center;
                justify-content: center;
            }
        }
        
        &.text-right-tablet {
            .menu {
                -webkit-justify-content: flex-end;
                justify-content: flex-end;
            }
        }
    }
    
    .cs-reservation-form {
        &.style-banner .cs-form-wrap {
            @include flexWrap;
            
            .cs-form-field {
                display: block;
                width: 50%;
                
                & {
                    margin-top: var(--field-space);
                    
                    &:nth-child(-n+2) {
                        margin-top: 0;
                    }
                }
            }
            
            .cs-form-field.cs-submit:nth-child(5) {
                width: 100%;
            }
            
            .csf-dropdown {
                min-width: 100%;
            }
        }
        
        &.style-banner.style-banner-2 {
            --field-space: 20px;

            .cs-form-wrap .cs-form-field {
                width: 100%;
                
                &.cs-check-in,
                &.cs-check-out {
                    padding-bottom: var(--field-space);

                    &:after {
                        top: auto;
                        right: 0;
                        bottom: 0;
                        @include transform(none);
                        width: 100%;
                        height: 1px;
                    }
                }

                &:nth-child(-n+2) {
                    margin-top: var(--field-space);
                }

                &.cs-check-out,
                &.cs-guests {
                    padding-left: 0;
                }
            }
        }
        
        &.style-banner-3 {
            .cs-form-wrap {
                .cs-form-field:nth-child(2n+1) input {
                    border-right-width: 0px;
                }
                
                .cs-form-field:nth-child(1),
                .cs-form-field:nth-child(2) {
                    input {
                        padding-top: 10px;
                    }
                    
                    .field-wrap > .cs-form-label,
                    .field-input-wrap:after {
                        margin-top: 2px;
                    }
                }
                
                input {
                    border-bottom-width: 0px;
                }
                
                .button {
                    padding-bottom: 2px;
                }

                .cs-form-field.loftocean-highlighted:after {
                    position: absolute;
                    top: 0;
                    left: 0;
                    z-index: 99;
                    width: calc(100% + 1px);
                    height: calc(100% + 1px);
                    border-width: 0;
                    border-style: solid;
                    border-color: var(--form-bd-focus);
                    content: "";
                    pointer-events: none;
                }

                .cs-form-field:nth-child(1).loftocean-highlighted:after {
                    border-width: 0 1px 1px 0;
                }

                .cs-form-field:nth-child(2).loftocean-highlighted:after,
                .cs-form-field:nth-child(4).loftocean-highlighted:after {
                    width: 100%;
                    border-width: 0 0 1px 0;
                }

                .cs-form-field:nth-child(3).loftocean-highlighted:after {
                    height: 100%;
                    border-width: 0 1px 0 0;
                }
            }
        }
    }

    .cs-info-box {
        &.tablet-column-1 .cs-info-box-item {
            width: 100%;
        }

        &.tablet-column-2 .cs-info-box-item {
            width: 50%;
        }

        &.tablet-column-3 .cs-info-box-item {
            width: 33.3333%;
        }

        &.tablet-column-4 .cs-info-box-item {
            width: 25%;
        }

        &.tablet-column-5 .cs-info-box-item {
            width: 20%;
        }

        &.tablet-column-6 .cs-info-box-item {
            width: 16.6666%;
        }
    }

    .cs-list {
        .elementor-tablet-align-right & li {
            justify-content: flex-start;
            text-align: left;
        }

        .elementor-tablet-align-center & li {
            justify-content: center;
        }

        .elementor-tablet-align-right & li {
            justify-content: flex-end;
            text-align: right;
        }
    }

    .elementor-widget-cs_button {
        &.elementor-tablet-align-justify {
            .button {
                width: 100%;
                padding: 0;
            }
        }
    }
}

@media screen and (max-width: 1023px) {
    .cs-open-table.wide .cs-otf-wrap .cs-otf-field.otf-submit:nth-child(5) {
        width: 100%;
    }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
    .cs-reservation-form.style-banner-3 {
        .cs-form-wrap .cs-form-field:nth-child(3):nth-last-child(3) input {
            border-bottom-width: 1px;
        }

        .cs-form-wrap .cs-form-field.cs-rooms.loftocean-highlighted:after {
            height: calc(100% + 1px);
            border-width: 0 1px 1px 0;
        }
    }
}

@media screen and (max-width: 767px) {
    .cs-title-wrap.text-left-mobile,
    .elementor-widget-cs_signup.elementor-mobile-align-left form {
        margin-right: auto;
        margin-left: 0;
    }
    
    .cs-title-wrap.text-center-mobile,
    .elementor-widget-cs_signup.elementor-mobile-align-center form {
        margin-right: auto;
        margin-left: auto;
    }
    
    .cs-title-wrap.text-right-mobile,
    .elementor-widget-cs_signup.elementor-mobile-align-right form {
        margin-right: 0;
        margin-left: auto;
    }

    ul.social-nav {
        &.text-left-mobile,
        .text-left-mobile & {
            -webkit-justify-content: flex-start;
            justify-content: flex-start;
        }

        &.text-center-mobile,
        .text-center-mobile & {
            -webkit-justify-content: center;
            justify-content: center;
        }

        &.text-right-mobile,
        .text-right-mobile & {
            -webkit-justify-content: flex-end;
            justify-content: flex-end;
        }
    }
    
    .cs-menu {
        &.text-left-mobile {
            .menu {
                -webkit-justify-content: flex-start;
                justify-content: flex-start;
            }
        }
        
        &.text-center-mobile {
            .menu {
                -webkit-justify-content: center;
                justify-content: center;
            }
        }
        
        &.text-right-mobile {
            .menu {
                -webkit-justify-content: flex-end;
                justify-content: flex-end;
            }
        }
    }
    
    .cs-food-card {
        &,
        &.column-reverse {
            flex-direction: column;
        }
        
        .cs-fc-img {
            width: 100%;
        }
        
        .cs-fc-img + .cs-fc-info {
            width: 100%;
            padding: 30px 0;
        }
        
        .cs-fc-info {
            text-align: center;
        }
        
        .cs-fc-info-extra {
            justify-content: center;
        }
    }
    
    .cs-instagram.column-mosaic.mosaic-2 {
        ul li:first-child {
            grid-column: 1/span 2;
            grid-row: 1 / 2;
        }
        
        ul li:nth-child(7) {
            grid-column: 2/span 2;
            grid-row: 3 / 4;
        }
        
        ul li:nth-child(12) {
            grid-column: 2/span 2;
            grid-row: 5 / 6;
        }
        
        ul li:first-child,
        ul li:nth-child(7),
        ul li:nth-child(12) {
            .feed-bg {
                padding-top: 50%;
            }
        }
        
        &.small-gap {
            ul li:first-child,
            ul li:nth-child(7),
            ul li:nth-child(12) {
                .feed-bg {
                    padding-top: calc(50% - 2px);
                }
            }
        }
    }
    
    .cs-reservation-form {
        &.style-banner .cs-form-wrap {
            @include flexWrap;
            
            .cs-form-field {
                display: block;
                width: 100%;
                
                &:not(:first-child) {
                    margin-top: var(--field-space);
                }
            }
        }
        
        &.style-banner-3 {
            .cs-form-wrap {
                .cs-form-field:nth-child(2n+1) input {
                    border-right-width: 1px;
                }
                
                .cs-form-field {
                    input {
                        padding-top: 10px;
                    }

                    .csf-dropdown input {
                        padding-top: 0;
                    }
                    
                    .field-wrap > .cs-form-label,
                    .field-input-wrap:after {
                        margin-top: 2px;
                    }

                    &:nth-child(1).loftocean-highlighted:after {
                        width: 100%;
                        border-right-width: 0;
                    }

                    &:nth-child(3).loftocean-highlighted:after {
                        width: 100%;
                        height: calc(100% + 1px);
                        border-width: 0 0 1px 0;
                    }
                }
            }
        }
    }

    .cs-info-box {
        &.mobile-column-1 .cs-info-box-item {
            width: 100%;
        }

        &.mobile-column-2 .cs-info-box-item {
            width: 50%;
        }

        &.mobile-column-3 .cs-info-box-item {
            width: 33.3333%;
        }

        &.mobile-column-4 .cs-info-box-item {
            width: 25%;
        }

        &.mobile-column-5 .cs-info-box-item {
            width: 20%;
        }

        &.mobile-column-6 .cs-info-box-item {
            width: 16.6666%;
        }
    }

    .cs-list {
        .elementor-mobile-align-right & li {
            justify-content: flex-start;
            text-align: left;
        }

        .elementor-mobile-align-center & li {
            justify-content: center;
        }

        .elementor-mobile-align-right & li {
            justify-content: flex-end;
            text-align: right;
        }
    }

    .elementor-widget-cs_button {
        &.elementor-mobile-align-justify {
            .button {
                width: 100%;
                padding: 0;
            }
        }
    }

    .theme-cozystay .daterangepicker {
        .drp-calendar {
            min-width: 260px;

            &.left {
                padding-right: 8px;
            }
        }
    }
}

@media screen and (max-width: 599px) {
    .cs-food-menu {
        --food-img-width: 60px;
        
        .cs-food-menu-header > * {
            width: auto;
        }
        
        .cs-food-menu-header {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            width: 100%;
        }
        
        .cs-food-menu-title {
            margin-bottom: 0;
            white-space: normal;
        }
        
        .cs-food-menu-lines {
            display: none;
        }
        
        .cs-food-menu-price {
            @include fontsize(18);
        }
        
        .cs-food-menu-lines + .cs-food-menu-price {
            margin-left: auto;
        }
        
        &.lines-on-mobile {
            &.food-menu-style-2 .cs-food-menu-lines {
                top: 18px;
                display: flex;
                flex: 1 1 10%;
                height: 2px;
            }
            
            &.food-menu-style-3 .cs-food-menu-lines {
                top: 15px;
                display: flex;
                flex: 1 1 10%;
            }
            
            &.food-menu-style-4 .cs-food-menu-lines {
                top: 12px;
                display: flex;
                flex: 1 1 10%;
            }
        }
    }
    
    .cs-gallery.gallery-grid .cs-gallery-item {
        width: 100% !important;
    }

    .cs-gallery.style-overflow {
        .slick-arrow.slick-prev {
            left: 15px;
        }

        .slick-arrow.slick-next {
            right: 15px;
        }
    }
    
    .cs-instagram.column-5 ul {
        grid-template-columns: repeat(2,1fr);
        
        li:nth-child(5):last-child {
            display: none;
        }
    }

    .cs-tabs {
        .elementor-tabs-wrapper {
            margin-bottom: 35px;
        }

        .elementor-tab-desktop-title {
            margin-bottom: 15px;
        }
    }
}