/*
Theme Name: Hello Elementor Child
Theme URI: https://elementor.com/hello-theme/
Description: Child theme for Villa Nyx
Author: Antigravity
Author URI: https://elementor.com/
Template: hello-elementor
Version: 1.0.3
*/

:root {
    --e-global-color-primary: #F9F6F1;
    --e-global-color-secondary: #EBE7DF;
    --e-global-color-text: #795E58;
    --e-global-color-accent: #9C6347;
    --e-global-color-e1274f7: #58362F;
}

@font-face {
    font-family: 'PP Editorial New';
    src: url('/wp-content/uploads/custom-fonts/recovered-inline/font-02-4ca6099f.otf') format('opentype');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Editorial New';
    src: url('/wp-content/uploads/custom-fonts/recovered-inline/font-01-3db27ab4.otf') format('opentype');
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Slussen Variable';
    src: url('/wp-content/uploads/custom-fonts/slussen-variable-wdth-wght-slnt.woff2') format('woff2-variations');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'golden Hope';
    src: url('/wp-content/uploads/custom-fonts/GoldenHopes.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Iconochive-Regular';
    src: url('/wp-content/uploads/custom-fonts/Iconochive-Regular.eot');
    src: url('/wp-content/uploads/custom-fonts/Iconochive-Regular.eot?#iefix') format('embedded-opentype'),
         url('/wp-content/uploads/custom-fonts/Iconochive-Regular.woff') format('woff'),
         url('/wp-content/uploads/custom-fonts/Iconochive-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* ==========================================================================
   Header & Sticky Header Restoration
   ========================================================================== */
.elementor-location-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 99999 !important;
    background: transparent;
    transition: background-color .3s ease, box-shadow .3s ease, border-color .3s ease !important;
}

.elementor-location-header > .elementor-element-a7d4e87 {
    width: 100% !important;
    box-sizing: border-box;
}

/* Base header button & logo styling */
.elementor-location-header .elementor-element-21c6a2e .elementor-button {
    background: transparent !important;
    padding: 0 !important;
    line-height: 1 !important;
    border: none !important;
    cursor: pointer !important;
}

.elementor-location-header .elementor-element-21c6a2e .elementor-button-text {
    display: none !important;
}

.elementor-location-header .elementor-element-21c6a2e .elementor-button svg {
    width: 48px !important;
    height: 48px !important;
    display: block !important;
}

.elementor-location-header .elementor-element-21c6a2e .elementor-button svg path,
.elementor-location-header .elementor-element-21c6a2e .elementor-button svg line {
    stroke: #EBE7DF !important;
    transition: stroke .3s ease;
}

.elementor-location-header .elementor-element-c47652f img {
    content: url("/wp-content/uploads/villa-assets/Logo-7.svg") !important;
    width: 92px !important;
    height: 74px !important;
    object-fit: contain !important;
    display: block !important;
    transition: filter .3s ease;
}

.elementor-location-header .elementor-nav-menu--main .elementor-item {
    font-family: "Slussen Variable", Arial, sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: 1.2px !important;
    text-transform: uppercase !important;
    color: #EBE7DF !important;
    transition: color .25s ease !important;
}

.elementor-location-header .elementor-nav-menu--main .elementor-item:hover {
    color: #F9F6F1 !important;
}

/* Header Creative Button */
.elementor-location-header .elementor-element-f3d4922 .eael-creative-button {
    width: 270px !important;
    min-height: 54px !important;
    padding: 14px 24px !important;
    color: #EBE7DF !important;
    background-color: transparent !important;
    border: 1px solid #EBE7DF !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    transition: background-color .3s ease, color .3s ease, border-color .3s ease !important;
}

.elementor-location-header .elementor-element-f3d4922 .eael-creative-button .cretive-button-text {
    font-family: "Slussen Variable", Arial, sans-serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    letter-spacing: 1.36px !important;
    color: inherit !important;
}

.elementor-location-header .elementor-element-f3d4922 .eael-creative-button .cretive-button-text::after {
    content: none !important;
    display: none !important;
}

.elementor-location-header .elementor-element-f3d4922 .eael-creative-button .eael-creative-button-icon-right {
    display: inline-flex !important;
    align-items: center !important;
    margin-left: 8px !important;
    vertical-align: middle !important;
}

.elementor-location-header .elementor-element-f3d4922 .eael-creative-button .eael-creative-button-icon-right svg {
    width: 20px !important;
    height: 20px !important;
    transition: transform .25s ease !important;
}

.elementor-location-header .elementor-element-f3d4922 .eael-creative-button .eael-creative-button-icon-right svg path {
    fill: #EBE7DF !important;
    transition: fill .3s ease !important;
}

.elementor-location-header .elementor-element-f3d4922 .eael-creative-button:hover {
    background-color: #EBE7DF !important;
    color: #795E58 !important;
    border-color: #EBE7DF !important;
}

.elementor-location-header .elementor-element-f3d4922 .eael-creative-button:hover .eael-creative-button-icon-right svg path {
    fill: #795E58 !important;
}

.elementor-location-header .elementor-element-f3d4922 .eael-creative-button:hover .eael-creative-button-icon-right svg {
    transform: translateX(4px) !important;
}

.elementor-location-header.vnx-scrolled .elementor-element-f3d4922 .eael-creative-button .eael-creative-button-icon-right svg path {
    fill: #795E58 !important;
}

.elementor-location-header.vnx-scrolled .elementor-element-f3d4922 .eael-creative-button:hover .eael-creative-button-icon-right svg path {
    fill: #EBE7DF !important;
}

/* Sticky visual state */
.elementor-location-header.vnx-scrolled {
    background: #EBE7DF !important;
    border-bottom: 1px solid #C6B19E !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04) !important;
}

.elementor-location-header.vnx-scrolled > .elementor-element-a7d4e87 {
    padding: 16px 64px !important;
}

.elementor-location-header.vnx-scrolled .elementor-element-2b21ee4,
.elementor-location-header.vnx-scrolled .elementor-element-c47652f,
.elementor-location-header.vnx-scrolled .elementor-element-f3d4922 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.elementor-location-header.vnx-scrolled .elementor-nav-menu--main .elementor-item {
    color: #9C6347 !important;
}

.elementor-location-header.vnx-scrolled .elementor-nav-menu--main .elementor-item:hover {
    color: #795E58 !important;
}

.elementor-location-header.vnx-scrolled .eael-creative-button {
    color: #9C6347 !important;
    border-color: #9C6347 !important;
}

.elementor-location-header.vnx-scrolled .eael-creative-button:hover {
    color: #EBE7DF !important;
    background-color: #9C6347 !important;
}

.elementor-location-header.vnx-scrolled .elementor-element-21c6a2e .elementor-button svg path,
.elementor-location-header.vnx-scrolled .elementor-element-21c6a2e .elementor-button svg line {
    stroke: #9C6347 !important;
}

.elementor-location-header.vnx-scrolled .elementor-element-c47652f img {
    content: url("/wp-content/uploads/villa-assets/Logo-9.svg") !important;
}

@media (max-width: 1200px) {
    .elementor-location-header.vnx-scrolled > .elementor-element-a7d4e87 {
        padding: 12px 45px !important;
    }
}

@media (max-width: 767px) {
    .elementor-location-header.vnx-scrolled > .elementor-element-a7d4e87 {
        padding: 12px 20px !important;
    }
}

@media (max-width: 1024px) {
    .elementor-location-header .elementor-element-f3d4922 {
        display: none !important;
    }
}

@media (max-width: 767px) {
    .elementor-location-header .elementor-element-f3d4922 {
        display: none !important;
    }
    .elementor-location-header > .elementor-element-a7d4e87 {
        padding: 20px 24px !important;
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
    }
    .elementor-location-header .elementor-element-c47652f img {
        width: 74px !important;
        height: 60px !important;
    }
}


.elementor-element-7f06297.sticky-cust {
    display: none !important;
}

/* ==========================================================================
   Hero Section Restoration
   ========================================================================== */
.elementor-element.elementor-element-fe21a3d {
    background: url(/wp-content/uploads/villa-assets/recovered-inline/inline-05-cd3c7ec8.webp) 50% 50% / cover no-repeat !important;
    height: 100vh !important;
    min-height: 658px !important;
    position: relative !important;
    margin-top: -100px !important;
    overflow: hidden !important;
    z-index: 0 !important;
}

.elementor-element.elementor-element-fe21a3d::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: rgba(35, 38, 41, 0.25) !important;
    mix-blend-mode: multiply !important;
    pointer-events: none !important;
    z-index: 1 !important;
}

.elementor-element.elementor-element-607f7de {
    display: none !important;
}

.elementor-element.elementor-element-afa9282 {
    position: absolute !important;
    bottom: 0 !important;
    left: 96px !important;
    right: 0 !important;
    height: 100% !important;
    min-height: unset !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    z-index: 2 !important;
    pointer-events: none !important;
    box-sizing: border-box !important;
}

.elementor-element.elementor-element-46d298a {
    padding-bottom: 32px !important;
    margin: 0 !important;
}

.elementor-element.elementor-element-46d298a .elementor-heading-title {
    font-family: "PP Editorial New", Georgia, serif !important;
    font-size: 112px !important;
    font-weight: 200 !important;
    font-style: normal !important;
    line-height: 1.05 !important;
    color: #F9F6F1 !important;
    margin: 0 !important;
    text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35) !important;
}

.elementor-element.elementor-element-46d298a .elementor-heading-title .italick,
.italick {
    font-style: italic !important;
    font-family: "PP Editorial New", Georgia, serif !important;
    font-weight: 200 !important;
}

@media (max-width: 1200px) {
    .elementor-element.elementor-element-afa9282 {
        left: 45px !important;
    }
    .elementor-element.elementor-element-46d298a .elementor-heading-title {
        font-size: 88px !important;
    }
}

@media (max-width: 767px) {
    .elementor-element.elementor-element-fe21a3d {
        margin-top: -80px !important;
    }
    .elementor-element.elementor-element-afa9282 {
        left: 20px !important;
        width: 92% !important;
    }
    .elementor-element.elementor-element-46d298a .elementor-heading-title {
        font-size: 64px !important;
    }
}

/* ==========================================================================
   Header Nav Menu Hover Animation
   ========================================================================== */
.elementor-nav-menu--main .elementor-item {
    position: relative !important;
    transition: color 0.35s cubic-bezier(0.25, 1, 0.5, 1) !important;
    text-decoration: none !important;
}

.elementor-nav-menu--main .elementor-item::after {
    content: "" !important;
    position: absolute !important;
    bottom: 6px !important;
    left: 20px !important;
    right: 20px !important;
    height: 1.5px !important;
    background-color: #DCDDC6 !important;
    transform: scaleX(0) !important;
    transform-origin: center !important;
    transition: transform 0.35s cubic-bezier(0.25, 1, 0.5, 1), background-color 0.35s ease !important;
    pointer-events: none !important;
}

.elementor-nav-menu--main .elementor-item:hover,
.elementor-nav-menu--main .elementor-item:focus,
.elementor-nav-menu--main .elementor-item.elementor-item-active {
    color: #DCDDC6 !important;
    text-decoration: none !important;
}

.elementor-nav-menu--main .elementor-item:hover::after,
.elementor-nav-menu--main .elementor-item:focus::after,
.elementor-nav-menu--main .elementor-item.elementor-item-active::after {
    transform: scaleX(1) !important;
}

.elementor-location-header.vnx-scrolled .elementor-nav-menu--main .elementor-item {
    color: #9C6347 !important;
}

.elementor-location-header.vnx-scrolled .elementor-nav-menu--main .elementor-item:hover,
.elementor-location-header.vnx-scrolled .elementor-nav-menu--main .elementor-item:focus,
.elementor-location-header.vnx-scrolled .elementor-nav-menu--main .elementor-item.elementor-item-active {
    color: #795E58 !important;
}

.elementor-location-header.vnx-scrolled .elementor-nav-menu--main .elementor-item::after {
    background-color: #795E58 !important;
}

/* ==========================================================================
   Villa Nyx Fullscreen Overlay Menu
   ========================================================================== */
.elementor-element-21c6a2e,
.elementor-element-21c6a2e a,
[data-vnx-menu-trigger] {
    pointer-events: auto !important;
    cursor: pointer !important;
}

#vnx-menu-overlay {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    background: #8f9076;
    color: #f9f6f1;
    display: flex;
    flex-direction: column;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .35s ease, visibility .35s ease;
    overflow: auto;
}

#vnx-menu-overlay.vnx-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

html.vnx-menu-open,
body.vnx-menu-open {
    overflow: hidden !important;
}

.vnx-menu-head {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    padding: 22px 64px;
    border-bottom: 1px solid rgba(249, 246, 241, .35);
}

.vnx-menu-x,
.vnx-menu-x:hover,
.vnx-menu-x:focus,
.vnx-menu-x:active {
    width: 48px;
    height: 48px;
    border: 0 !important;
    background: transparent !important;
    outline: none !important;
    box-shadow: none !important;
    position: relative;
    cursor: pointer;
    padding: 0;
}

.vnx-menu-x:before,
.vnx-menu-x:after {
    content: "";
    position: absolute;
    left: 2px;
    top: 23px;
    width: 44px;
    height: 1.5px;
    background: #f9f6f1;
}

.vnx-menu-x:before { transform: rotate(45deg); }
.vnx-menu-x:after { transform: rotate(-45deg); }

.vnx-menu-logo {
    justify-self: center;
}

.vnx-menu-logo img {
    display: block;
    width: 92px;
    height: auto;
}

.vnx-menu-book {
    justify-self: end;
    width: 270px;
    min-height: 54px;
    border: 1px solid #f9f6f1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: #f9f6f1;
    text-decoration: none;
    font-family: "Slussen Variable", Arial, sans-serif;
    font-size: 17px;
    font-weight: 500;
    letter-spacing: 1.36px;
    text-transform: uppercase;
    transition: .25s;
}

.vnx-menu-book:hover {
    background: #f9f6f1;
    color: #795e58;
}

.vnx-menu-body {
    flex: 1;
    display: grid;
    grid-template-columns: minmax(360px, .9fr) minmax(420px, 1.1fr);
    gap: 60px;
    padding: 52px 64px;
    align-items: center;
}

.vnx-menu-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 48px;
}

.vnx-menu-links ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.vnx-menu-links li {
    margin: 0 0 24px;
}

.vnx-menu-links a {
    font-family: "PP Editorial New", Georgia, serif;
    font-size: 44px;
    line-height: 1.08;
    font-weight: 400;
    color: #795e58;
    text-decoration: none;
    transition: color .25s;
}

.vnx-menu-links a:hover,
.vnx-menu-links a.vnx-active {
    color: #f9f6f1;
}

.vnx-preview {
    position: relative;
    height: min(58vh, 620px);
    min-height: 420px;
    overflow: hidden;
}

.vnx-preview img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transform: scale(1.03);
    transition: opacity .35s ease, transform .6s ease;
}

.vnx-preview img.vnx-show {
    opacity: 1;
    transform: scale(1);
}

.vnx-menu-foot {
    display: flex;
    justify-content: space-between;
    padding: 18px 64px 24px;
    border-top: 1px solid rgba(249, 246, 241, .35);
    font-family: "Slussen Variable", Arial, sans-serif;
    font-size: 14px;
    color: #795e58;
}

.vnx-menu-foot a {
    color: inherit;
    text-decoration: none;
}

.vnx-menu-foot a:hover {
    color: #f9f6f1;
}

@media (max-width: 900px) {
    .vnx-menu-head {
        padding: 16px 24px;
    }
    .vnx-menu-book {
        display: none;
    }
    .vnx-menu-head {
        grid-template-columns: 48px 1fr 48px;
    }
    .vnx-menu-logo img {
        width: 76px;
    }
    .vnx-menu-body {
        display: block;
        padding: 34px 24px;
    }
    .vnx-menu-links {
        display: block;
    }
    .vnx-menu-links a {
        font-size: 38px;
    }
    .vnx-preview {
        display: none;
    }
    .vnx-menu-foot {
        padding: 18px 24px;
        flex-direction: column;
        gap: 8px;
    }
}

/* ==========================================================================
   Footer Restoration & Typography Refinement
   ========================================================================== */
.elementor-location-footer .elementor-element-147bcd2 .elementor-icon-list-icon,
.elementor-location-footer .elementor-element-1277e05 .elementor-icon-list-icon,
.elementor-location-footer .elementor-element-93d6ec4 .elementor-icon-list-icon {
    display: none !important;
}

.elementor-location-footer .elementor-element-fa40da3 .elementor-icon-list-icon,
.big-text-list-2 .elementor-icon-list-icon {
    display: flex !important;
}

.elementor-location-footer .elementor-element-fa40da3 .elementor-icon-list-item,
.elementor-location-footer .elementor-element-fa40da3 .elementor-icon-list-text,
.elementor-location-footer .elementor-element-fa40da3 a {
    font-family: "PP Editorial New", Georgia, serif !important;
    font-size: 44px !important;
    font-weight: 200 !important;
    color: #EBE7DF !important;
    line-height: 1.3 !important;
    transition: color .25s ease !important;
}

.elementor-location-footer .elementor-element-fa40da3 a:hover,
.elementor-location-footer .elementor-element-fa40da3 .elementor-icon-list-item:hover a,
.elementor-location-footer .elementor-element-fa40da3 .elementor-icon-list-item:hover .elementor-icon-list-text {
    color: #DCDDC6 !important;
}

.elementor-location-footer .elementor-element-147bcd2 .elementor-icon-list-item,
.elementor-location-footer .elementor-element-147bcd2 .elementor-icon-list-text,
.elementor-location-footer .elementor-element-147bcd2 a {
    font-family: "Slussen Variable", Arial, sans-serif !important;
    font-size: 17px !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    letter-spacing: 1.2px !important;
    color: #EBE7DF !important;
    line-height: 2 !important;
    transition: color .25s ease !important;
}

.elementor-location-footer .elementor-element-147bcd2 a:hover,
.elementor-location-footer .elementor-element-147bcd2 .elementor-icon-list-item:hover a,
.elementor-location-footer .elementor-element-147bcd2 .elementor-icon-list-item:hover .elementor-icon-list-text {
    color: #DCDDC6 !important;
}

.elementor-location-footer .elementor-element-1277e05 .elementor-icon-list-item,
.elementor-location-footer .elementor-element-1277e05 .elementor-icon-list-text,
.elementor-location-footer .elementor-element-1277e05 a {
    font-family: "Slussen Variable", Arial, sans-serif !important;
    font-size: 20px !important;
    font-weight: 200 !important;
    color: #EBE7DF !important;
    line-height: 1.8 !important;
    transition: color .25s ease !important;
}

.elementor-location-footer .elementor-element-1277e05 a:hover,
.elementor-location-footer .elementor-element-1277e05 .elementor-icon-list-item:hover a,
.elementor-location-footer .elementor-element-1277e05 .elementor-icon-list-item:hover .elementor-icon-list-text {
    color: #DCDDC6 !important;
}

.elementor-location-footer .elementor-element-93d6ec4 .elementor-icon-list-item,
.elementor-location-footer .elementor-element-93d6ec4 .elementor-icon-list-text,
.elementor-location-footer .elementor-element-93d6ec4 a,
.elementor-location-footer .elementor-element-93d6ec4 span {
    font-family: "Slussen Variable", Arial, sans-serif !important;
    font-size: 17px !important;
    font-weight: 200 !important;
    color: #EBE7DF !important;
    line-height: 1.6 !important;
}

.elementor-location-footer a {
    transition: color .25s ease !important;
}
.elementor-location-footer a:hover {
    color: #DCDDC6 !important;
}

/* ==========================================================================
   Homepage Refinements & Interaction CSS (Custom Styles from Reference)
   ========================================================================== */

/* Section 14: Text / SEO scrollable container */
.elementor-element-cc05778 {
    padding: 0 64px 124px !important;
}
@media (min-width: 1025px) {
    .elementor-element-cc05778 {
        display: flex !important;
        flex-direction: row !important;
        align-items: flex-start !important;
        justify-content: center !important;
        gap: 36px !important;
        max-width: 1440px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
    .elementor-element-ac2f331 {
        flex: 1 1 50% !important;
        max-width: 640px !important;
        height: 720px !important;
    }
    .elementor-element-ac2f331 img {
        height: 720px !important;
        width: 100% !important;
        object-fit: cover !important;
    }
    .elementor-element-e36e490 {
        flex: 1 1 50% !important;
        max-width: 640px !important;
        height: 720px !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: flex-start !important;
    }
}

.elementor-element-63c08eb,
.scroll {
    flex: 1 1 auto !important;
    height: 580px !important;
    max-height: 580px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    padding-right: 28px !important;
    scrollbar-width: thin;
    scrollbar-color: #DDCDBF transparent;
}
.elementor-element-63c08eb::-webkit-scrollbar,
.scroll::-webkit-scrollbar {
    width: 4px !important;
}
.elementor-element-63c08eb::-webkit-scrollbar-track,
.scroll::-webkit-scrollbar-track {
    background: rgba(0,0,0,0.05) !important;
}
.elementor-element-63c08eb::-webkit-scrollbar-thumb,
.scroll::-webkit-scrollbar-thumb {
    background: #DDCDBF !important;
    border-radius: 4px;
}

/* Banner Section Heights */
.elementor-element-2301ac4 {
    min-height: 740px !important;
}
.elementor-element-23dc3b4 {
    min-height: 720px !important;
}
.elementor-element-38acbc6 {
    min-height: 740px !important;
}

/* Section 5: Two Cards Padding & Hover Overlays */
.elementor-element-d7571aa,
.elementor-element-bdfe73c {
    padding: 48px 40px !important;
    position: relative !important;
}

.elementor-element-bdfe73c::before,
.elementor-element-d7571aa::before,
.elementor-element-bdfe73c.hovered::before,
.elementor-element-d7571aa.hovered::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(35,38,41,0.65);
    opacity: 0;
    transition: opacity 0.6s cubic-bezier(0.4,0,0.2,1) !important;
    z-index: 1;
    pointer-events: none;
}
.elementor-element-bdfe73c:hover::before,
.elementor-element-d7571aa:hover::before,
.elementor-element-bdfe73c.hovered:hover::before,
.elementor-element-d7571aa.hovered:hover::before {
    opacity: 0.7 !important;
    mix-blend-mode: multiply !important;
}
@media (min-width: 1024px) {
    .elementor-element-bdfe73c:hover .hovered-part,
    .elementor-element-d7571aa:hover .hovered-part,
    .hovered:hover .hovered-part {
        opacity: 1 !important;
    }
    .hovered-part {
        opacity: 0;
        transition: opacity 800ms ease !important;
    }
}

/* Blog Grid Section 15 */
.elementor-element-e9407ba {
    padding: 48px 64px 0px !important;
}
@media (max-width: 1840px) {
    .elementor-element-15cf9c0 .eael-grid-post-holder:nth-child(5) {
        display: none !important;
    }
}

.elementor-widget-text-editor a:hover {
    color: #336 !important;
}
.elementor-widget-text-editor a {
    color: #9C6347 !important;
}

/* Section 10: Experience St. Barths Stacking Cards Slider */
.elementor-element-adc6b56,
.elementor-element-2cf2141 {
    overflow: visible !important;
}
.sticky-wrap,
.elementor-element-596d4a27 {
    position: relative !important;
    overflow: visible !important;
}
.elementor-element-596d4a27 > .e-con,
.sticky-card {
    position: sticky !important;
    top: 113px !important;
    z-index: 2 !important;
}

.hero {
    height: 100vh !important;
    z-index: -1 !important;
}

/* Blog Post Grid Hover Zoom & Transitions */
.eael-grid-post-holder:hover .eael-grid-post-link {
    color: #9C6347 !important;
}
.eael-grid-post-holder .eael-entry-thumbnail img {
    transition: transform 0.7s ease !important;
}
.eael-grid-post-holder:hover .eael-entry-thumbnail img {
    transform: scale(1.1) !important;
}
.eael-entry-title a:hover {
    color: #9C6347 !important;
}
.eael-grid-post .eael-entry-wrapper {
    padding: 15px 0 0 0 !important;
}
.eael-entry-wrapper {
    display: flex !important;
    flex-direction: column-reverse !important;
    gap: 12px !important;
}

/* Creative Buttons */
.eael-creative-button {
    border-radius: 0px !important;
}
.btn-56 .eael-creative-button-wrapper {
    height: 56px !important;
}
.btn-brown .eael-creative-button {
    border-width: 1.5px !important;
}
.btn-brown:hover a.eael-creative-button .creative-button-inner .eael-creative-button-icon-right svg path {
    fill: #795E58 !important;
}
.svg-arrows .eael-creative-button:hover path {
    fill: #EBE7DF !important;
}
.sticky-arrow .eael-creative-button:hover svg path {
    fill: #EBE7DF !important;
}

/* Section 3 Carousel Layout & Responsive Arrow Positioning */
.wrapper-relative {
    position: relative !important;
}
@media (min-width: 1201px) and (max-width: 1700px) {
    .joke-conteiner {
        min-width: 1752px !important;
        position: relative !important;
    }
    .father-joke .elementor-widget-n-carousel.elementor-element :is(.swiper,.swiper-container)~.elementor-swiper-button-next {
        right: calc(var(--e-n-carousel-arrow-next-right-align) - calc(100vw - 192px)) !important;
        z-index: 4 !important;
    }
    .father-joke .elementor-widget-n-carousel.elementor-element :is(.swiper,.swiper-container)~.elementor-swiper-button-prev {
        left: calc(100vw - 282px) !important;
        z-index: 4 !important;
    }
}
@media (min-width: 1700px) {
    .father-joke .elementor-widget-n-carousel.elementor-element :is(.swiper,.swiper-container)~.elementor-swiper-button-next {
        right: calc(var(--e-n-carousel-arrow-next-right-align) - calc(100vw - 245px)) !important;
        z-index: 4 !important;
    }
    .father-joke .elementor-widget-n-carousel.elementor-element :is(.swiper,.swiper-container)~.elementor-swiper-button-prev {
        left: calc(100vw - 335px) !important;
        z-index: 4 !important;
    }
}
@media (max-width: 1200px) {
    .father-joke .elementor-widget-n-carousel.elementor-element :is(.swiper,.swiper-container)~.elementor-swiper-button-next {
        right: calc(var(--e-n-carousel-arrow-next-right-align) - calc(100vw - 155px)) !important;
    }
    .father-joke .elementor-widget-n-carousel.elementor-element :is(.swiper,.swiper-container)~.elementor-swiper-button-prev {
        left: calc(100vw - 230px) !important;
    }
    .eael-grid-post .eael-entry-thumbnail>img {
        height: 348px !important;
    }
    .btn-56 .eael-creative-button-wrapper {
        height: 48px !important;
    }
    .scroll-watcher {
        min-height: 500px !important;
    }
}
@media (max-width: 849px) {
    .joke-conteiner {
        min-width: 100% !important;
        position: relative !important;
    }
    .father-joke .elementor-widget-n-carousel.elementor-element :is(.swiper,.swiper-container)~.elementor-swiper-button-prev {
        left: calc(100vw - 215px) !important;
    }
    .father-joke .elementor-widget-n-carousel.elementor-element :is(.swiper,.swiper-container)~.elementor-swiper-button-next {
        right: calc(var(--e-n-carousel-arrow-next-right-align) - calc(100vw - 150px)) !important;
    }
}
@media (max-width: 767px) {
    .father-joke .elementor-widget-n-carousel.elementor-element :is(.swiper,.swiper-container)~.elementor-swiper-button-prev {
        left: calc(100vw - 150px) !important;
    }
    .father-joke .elementor-widget-n-carousel.elementor-element :is(.swiper,.swiper-container)~.elementor-swiper-button-next {
        right: calc(var(--e-n-carousel-arrow-next-right-align) - calc(100vw - 95px)) !important;
    }
}

/* Section 4: Villa Carousel Slider Drag & Interaction Fix */
.elementor-element-3c8ae09 .swiper-slide img {
    -webkit-user-drag: none !important;
    user-select: none !important;
    pointer-events: none !important;
}
.elementor-element-3c8ae09 .swiper {
    cursor: grab !important;
}
.elementor-element-3c8ae09 .swiper:active {
    cursor: grabbing !important;
}
.elementor-element-3c8ae09 .elementor-swiper-button {
    cursor: pointer !important;
    z-index: 20 !important;
    pointer-events: auto !important;
}

/* Services Horizontal Scroll & Slide Snapping */
.service-mobile,
.elementor-element-a5b2d6d {
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    cursor: grab;
}
.service-mobile:active,
.elementor-element-a5b2d6d:active {
    cursor: grabbing;
}
.service-mobile::-webkit-scrollbar,
.elementor-element-a5b2d6d::-webkit-scrollbar {
    display: none !important;
}
@media (max-width: 1024px) {
    .scroll-watcher {
        min-height: 400px !important;
    }
    .service-mobile {
        display: flex !important;
        gap: 20px !important;
        padding-bottom: 10px !important;
        overflow-y: hidden !important;
    }
    .service-mobile > * {
        flex: 0 0 auto !important;
        scroll-snap-align: start !important;
        min-width: 240px !important;
    }
    .eael-grid-post-holder {
        max-width: 240px !important;
    }
}

/* Scroll-Watcher Keyframe Animation */
@media screen and (prefers-reduced-motion: no-preference) {
    .scroll-watcher {
        animation-name: scroll-watcher;
        animation-duration: 1.5s;
        animation-timing-function: ease-in-out;
        animation-fill-mode: both;
        animation-timeline: view();
        animation-range-start: 400px;
        animation-range-end: contain;
    }
    @keyframes scroll-watcher {
        from { transform: scale(1); }
        to { transform: scale(1.1199); }
    }
}
@media (max-width: 1024px) {
    @keyframes scroll-watcher {
        from { transform: scale(1); }
        to { transform: scale(1.08); }
    }
}




@media (max-width: 1024px) {
    .elementor-element-49d8fc9 {
        display: none !important;
    }
}



/* Father-Joke Carousel & Navigation Styling */
.elementor-element-5b45846,
.father-joke {
    background-color: #EBE7DF !important;
}

.elementor-element-3c8ae09 .swiper-pagination {
    display: none !important;
}

.father-joke .elementor-swiper-button-prev,
.father-joke .elementor-swiper-button-next {
    width: 48px !important;
    height: 48px !important;
    cursor: pointer !important;
    z-index: 20 !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    transition: opacity 0.3s ease !important;
}

.father-joke .elementor-swiper-button-prev:hover,
.father-joke .elementor-swiper-button-next:hover {
    opacity: 0.65 !important;
}

.father-joke .elementor-swiper-button-prev svg,
.father-joke .elementor-swiper-button-next svg {
    display: none !important;
}

.father-joke .elementor-swiper-button-prev {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64' fill='none'%3E%3Cg id='guidance:left-arrow'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M22.2389 19.7081C22.9338 18.564 23.5552 17.2376 23.5552 16H20.8886C20.8886 16.4584 20.6141 17.2463 19.9597 18.3239C19.3372 19.3488 18.4864 20.4524 17.6021 21.4888L17.6005 21.4906C15.3596 24.1264 12.6902 26.4161 9.6411 28.159C7.2512 29.5249 4.61883 30.6667 2.66634 30.6667V33.3333C4.61889 33.3333 7.2539 34.4752 9.64047 35.8406C12.6901 37.5861 15.36 39.8762 17.6012 42.5079L17.6016 42.5083C18.4858 43.5457 19.3368 44.6511 19.9594 45.6772C20.6144 46.7564 20.8886 47.5441 20.8886 48H23.5552C23.5552 46.7645 22.9336 45.4379 22.2391 44.2937C21.5125 43.0963 20.5607 41.8692 19.6311 40.7785C17.2084 37.9339 14.3051 35.4378 10.9651 33.5262L10.9649 33.5261C10.8529 33.462 10.7393 33.3977 10.624 33.3333H61.333V30.6667H10.6237C10.7389 30.6024 10.8525 30.5381 10.9644 30.4742L10.9645 30.4741C14.3048 28.5647 17.2085 26.0684 19.6314 23.2188C20.5606 22.1297 21.5123 20.9046 22.2389 19.7081Z' fill='%239C6347'/%3E%3C/g%3E%3C/svg%3E") !important;
}

.father-joke .elementor-swiper-button-next {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64' fill='none'%3E%3Cg id='guidance:left-arrow'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M41.7611 19.9506C41.0662 18.8064 40.4448 17.48 40.4448 16.2424H43.1114C43.1114 16.7008 43.3859 17.4887 44.0403 18.5663C44.6628 19.5912 45.5136 20.6949 46.3979 21.7313L46.3995 21.7331C48.6404 24.3688 51.3098 26.6585 54.3589 28.4014C56.7488 29.7673 59.3812 30.9091 61.3337 30.9091V33.5758C59.3811 33.5758 56.7461 34.7177 54.3595 36.0831C51.3099 37.8285 48.64 40.1186 46.3988 42.7503L46.3984 42.7508C45.5142 43.7881 44.6632 44.8936 44.0406 45.9196C43.3856 46.9988 43.1114 47.7865 43.1114 48.2424H40.4448C40.4448 47.0069 41.0664 45.6804 41.7609 44.5361C42.4875 43.3387 43.4393 42.1116 44.3689 41.021C46.7916 38.1763 49.6949 35.6803 53.0349 33.7687L53.0351 33.7685C53.1471 33.7045 53.2607 33.6402 53.376 33.5758H2.66699V30.9091H53.3763C53.2611 30.8448 53.1475 30.7806 53.0356 30.7166L53.0355 30.7166C49.6952 28.8071 46.7915 26.3109 44.3686 23.4612C43.4394 22.3722 42.4877 21.147 41.7611 19.9506Z' fill='%239C6347'/%3E%3C/g%3E%3C/svg%3E") !important;
}

/* ==========================================================================
   Card Buttons: Villa Nyx (31673b8) & The Suites (d55321d)
   ========================================================================== */

/* Buttons appear ONLY on hover on desktop (min-width: 1024px) */
@media (min-width: 1024px) {
    .elementor-element-ce63f58,
    .elementor-element-00b7dad {
        opacity: 0 !important;
        visibility: visible !important;
        transition: opacity 800ms cubic-bezier(0.4, 0, 0.2, 1) !important;
        pointer-events: none !important;
    }

    .elementor-element-d7571aa:hover .elementor-element-ce63f58,
    .elementor-element-bdfe73c:hover .elementor-element-00b7dad,
    .hovered:hover .hovered-part {
        opacity: 1 !important;
        pointer-events: auto !important;
    }
}

/* Tablet & Mobile: buttons are visible */
@media (max-width: 1023px) {
    .elementor-element-ce63f58,
    .elementor-element-00b7dad {
        opacity: 1 !important;
        visibility: visible !important;
    }
}

.elementor-element-31673b8,
.elementor-element-d55321d {
    width: auto !important;
    align-self: center !important;
    position: relative !important;
}

/* Button styling: Transparent / NO background */
.elementor-element-31673b8 .eael-creative-button,
.elementor-element-d55321d .eael-creative-button {
    height: 56px !important;
    padding: 0 24px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    background-color: transparent !important;
    border: 1px solid #EBE7DF !important;
    border-radius: 0px !important;
    color: #EBE7DF !important;
    font-family: "Slussen Variable", sans-serif !important;
    font-size: 17px !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    letter-spacing: 1.2px !important;
    box-sizing: border-box !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: border-color 0.3s ease, opacity 0.3s ease !important;
}

.elementor-element-31673b8 .eael-creative-button {
    width: 310px !important;
}

.elementor-element-d55321d .eael-creative-button {
    width: 270px !important;
}

.elementor-element-31673b8 .creative-button-inner,
.elementor-element-d55321d .creative-button-inner {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    background: transparent !important;
    background-color: transparent !important;
}

.elementor-element-31673b8 .cretive-button-text,
.elementor-element-d55321d .cretive-button-text {
    font-family: "Slussen Variable", sans-serif !important;
    font-size: 17px !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    letter-spacing: 1.2px !important;
    color: #EBE7DF !important;
    white-space: nowrap !important;
}

.elementor-element-31673b8 .eael-creative-button-icon-right,
.elementor-element-d55321d .eael-creative-button-icon-right {
    margin-left: 12px !important;
    display: inline-flex !important;
    align-items: center !important;
    line-height: 1 !important;
}

.elementor-element-31673b8 .eael-creative-button-icon-right svg,
.elementor-element-d55321d .eael-creative-button-icon-right svg {
    width: 24px !important;
    height: 24px !important;
    fill: #EBE7DF !important;
}

.elementor-element-31673b8 .eael-creative-button-icon-right svg path,
.elementor-element-d55321d .eael-creative-button-icon-right svg path {
    fill: #EBE7DF !important;
}

/* NO background in any state (hover, active, focus) */
.elementor-element-31673b8 .eael-creative-button:hover,
.elementor-element-d55321d .eael-creative-button:hover,
.elementor-element-31673b8 .eael-creative-button:focus,
.elementor-element-d55321d .eael-creative-button:focus,
.elementor-element-31673b8 .eael-creative-button:active,
.elementor-element-d55321d .eael-creative-button:active {
    background: transparent !important;
    background-color: transparent !important;
    color: #EBE7DF !important;
    border-color: #EBE7DF !important;
    box-shadow: none !important;
}

.elementor-element-31673b8 .eael-creative-button:hover .cretive-button-text,
.elementor-element-d55321d .eael-creative-button:hover .cretive-button-text {
    color: #EBE7DF !important;
}

.elementor-element-31673b8 .eael-creative-button:hover .eael-creative-button-icon-right svg,
.elementor-element-d55321d .eael-creative-button:hover .eael-creative-button-icon-right svg,
.elementor-element-31673b8 .eael-creative-button:hover .eael-creative-button-icon-right svg path,
.elementor-element-d55321d .eael-creative-button:hover .eael-creative-button-icon-right svg path {
    fill: #EBE7DF !important;
}

/* Responsive adjustments for Tablet & Mobile */
@media (max-width: 1024px) {
    .elementor-element-31673b8 .eael-creative-button,
    .elementor-element-d55321d .eael-creative-button {
        width: 100% !important;
        max-width: 270px !important;
        height: 50px !important;
        padding: 0 16px !important;
    }
    .elementor-element-31673b8 .cretive-button-text,
    .elementor-element-d55321d .cretive-button-text {
        font-size: 15px !important;
    }
}
