/* ===================================================================
   Nova Immobilier - Header & Footer styles
   Brand: Magenta #E91E80 (hover #C9196E) | Dark text #1B1B1B
   =================================================================== */

/* ---------- Wrapper (absolute on hero, sticky on scroll) ---------- */
.nova-site-header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 99999;
    background-color: transparent;
    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
    transition: background-color 0.3s ease, box-shadow 0.3s ease,
                border-color 0.3s ease, padding 0.3s ease;
}

.nova-site-header.is-sticky {
    position: fixed;
    background-color: #FFFFFF;
    border-bottom-color: rgba(20, 20, 40, 0.06);
    box-shadow: 0 8px 28px rgba(20, 20, 40, 0.06);
}

/* ---------- Inner alignment (1280 max width centered) ---------- */
.nova-site-header__inner {
    margin-left: auto !important;
    margin-right: auto !important;
}

/* ---------- Logo swap (light vs dark) ---------- */
.nova-logo {
    display: inline-block;
    line-height: 0;
}
.nova-logo img {
    display: block;
    height: auto;
    max-width: 100%;
    width: auto;
    object-fit: contain;
}
.nova-logo--light { display: inline-block; }
.nova-logo--dark  { display: none; }

.nova-site-header.is-sticky .nova-logo--light { display: none; }
.nova-site-header.is-sticky .nova-logo--dark  { display: inline-block; }

/* ---------- Navigation color states ---------- */
.nova-site-header .nova-site-header__nav-widget .uael-nav-menu,
.nova-site-header .nova-site-header__nav-widget .menu-item > a,
.nova-site-header .nova-site-header__nav-widget .uael-menu-item,
.nova-site-header .nova-site-header__nav-widget .uael-menu-item > a {
    color: #FFFFFF !important;
    transition: color 0.3s ease;
}
.nova-site-header .nova-site-header__nav-widget .uael-menu-item > a:hover,
.nova-site-header .nova-site-header__nav-widget .menu-item > a:hover,
.nova-site-header .nova-site-header__nav-widget .uael-menu-item:hover > a {
    color: #E91E80 !important;
}
.nova-site-header .nova-site-header__nav-widget .uael-menu-item.uael-active-menu-item > a,
.nova-site-header .nova-site-header__nav-widget .menu-item.current-menu-item > a {
    color: #E91E80 !important;
}

.nova-site-header.is-sticky .nova-site-header__nav-widget .uael-menu-item,
.nova-site-header.is-sticky .nova-site-header__nav-widget .menu-item > a,
.nova-site-header.is-sticky .nova-site-header__nav-widget .uael-menu-item > a {
    color: #1B1B1B !important;
}
.nova-site-header.is-sticky .nova-site-header__nav-widget .uael-menu-item > a:hover,
.nova-site-header.is-sticky .nova-site-header__nav-widget .menu-item > a:hover {
    color: #E91E80 !important;
}
.nova-site-header.is-sticky .nova-site-header__nav-widget .uael-menu-item.uael-active-menu-item > a,
.nova-site-header.is-sticky .nova-site-header__nav-widget .menu-item.current-menu-item > a {
    color: #E91E80 !important;
}

/* CTA color in sticky mode - keep magenta, deepen on hover */
.nova-site-header.is-sticky .nova-site-header__cta-button .elementor-button {
    background-color: #E91E80 !important;
    color: #FFFFFF !important;
}
.nova-site-header.is-sticky .nova-site-header__cta-button .elementor-button:hover {
    background-color: #C9196E !important;
    color: #FFFFFF !important;
}

/* ---------- Submenu / Dropdown (Agence) ---------- */
.nova-site-header .sub-menu,
.nova-site-header .uael-submenu,
.nova-site-header .nova-site-header__nav-widget .sub-menu,
.nova-site-header .nova-site-header__nav-widget .uael-submenu {
    background-color: #FFFFFF !important;
    border: 1px solid rgba(20, 20, 40, 0.05) !important;
    border-radius: 12px !important;
    box-shadow: 0 15px 40px rgba(20, 20, 40, 0.10) !important;
    padding: 20px !important;
    min-width: 220px;
    list-style: none !important;
    margin: 0 !important;
}
.nova-site-header .sub-menu li,
.nova-site-header .uael-submenu li {
    margin: 0 !important;
    padding: 0 !important;
}
.nova-site-header .sub-menu a,
.nova-site-header .uael-submenu a {
    display: block !important;
    color: #1B1B1B !important;
    background-color: transparent !important;
    padding: 12px 16px !important;
    border-radius: 8px !important;
    font-weight: 500 !important;
    font-size: 15px !important;
    transition: background-color 0.25s ease, color 0.25s ease;
}
.nova-site-header .sub-menu a:hover,
.nova-site-header .uael-submenu a:hover,
.nova-site-header .sub-menu li:hover > a,
.nova-site-header .uael-submenu li:hover > a {
    background-color: #F6F6F8 !important;
    color: #E91E80 !important;
}

/* Pointer (caret) colour */
.nova-site-header .nova-site-header__nav-widget .uael-pointer {
    color: #E91E80 !important;
}

/* ---------- CTA button (pill) ---------- */
.nova-site-header .nova-site-header__cta-button .elementor-button {
    border-radius: 999px !important;
    background-color: #E91E80 !important;
    color: #FFFFFF !important;
    box-shadow: 0 6px 18px rgba(233, 30, 128, 0.20);
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                background-color 0.3s ease, color 0.3s ease;
}
.nova-site-header .nova-site-header__cta-button .elementor-button:hover {
    transform: translateY(-2px);
    background-color: #C9196E !important;
    color: #FFFFFF !important;
    box-shadow: 0 12px 28px rgba(233, 30, 128, 0.30) !important;
}

/* Hamburger trigger colour in both states */
.nova-site-header .nova-hamburger-trigger .elementor-button,
.nova-site-header .nova-hamburger-trigger .elementor-button .elementor-button-icon {
    color: #FFFFFF !important;
    background-color: transparent !important;
}
.nova-site-header.is-sticky .nova-hamburger-trigger .elementor-button,
.nova-site-header.is-sticky .nova-hamburger-trigger .elementor-button .elementor-button-icon {
    color: #1B1B1B !important;
    background-color: transparent !important;
}

/* ---------- Mobile menu (slide-down) ---------- */
.nova-mobile-menu {
    background-color: #FFFFFF;
    border-top: 1px solid rgba(20, 20, 40, 0.06);
    max-height: 0;
    overflow: hidden;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    transition: max-height 0.4s ease, padding 0.4s ease;
}
.nova-mobile-menu.is-open {
    max-height: 90vh;
    padding-top: 24px !important;
    padding-bottom: 32px !important;
    overflow-y: auto;
}

.nova-mobile-menu .nova-mobile-menu__list,
.nova-mobile-menu .nova-mobile-menu__list .uael-nav-menu {
    width: 100% !important;
}
.nova-mobile-menu .nova-mobile-menu__list .uael-menu-item,
.nova-mobile-menu .nova-mobile-menu__list .menu-item {
    width: 100% !important;
    display: block !important;
}
.nova-mobile-menu .nova-mobile-menu__list .uael-menu-item > a,
.nova-mobile-menu .nova-mobile-menu__list .menu-item > a {
    display: flex !important;
    align-items: center;
    min-height: 48px;
    color: #1B1B1B !important;
    font-size: 18px !important;
    font-weight: 500 !important;
    padding: 12px 0 !important;
    border-bottom: 1px solid rgba(20, 20, 40, 0.06) !important;
    width: 100% !important;
}
.nova-mobile-menu .nova-mobile-menu__list .uael-menu-item > a:hover,
.nova-mobile-menu .nova-mobile-menu__list .menu-item > a:hover {
    color: #E91E80 !important;
}
.nova-mobile-menu .nova-mobile-menu__list .sub-menu,
.nova-mobile-menu .nova-mobile-menu__list .uael-submenu {
    background-color: #FAFAFB !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0 0 0 16px !important;
    max-height: none !important;
    margin: 0 !important;
    overflow: visible !important;
}
.nova-mobile-menu .nova-mobile-menu__list .sub-menu a,
.nova-mobile-menu .nova-mobile-menu__list .uael-submenu a {
    min-height: 48px;
    font-size: 16px !important;
}

.nova-mobile-menu .nova-mobile-menu__cta {
    margin-top: 20px;
    width: 100%;
}
.nova-mobile-menu .nova-mobile-menu__cta .elementor-button {
    width: 100%;
    border-radius: 999px !important;
    background-color: #E91E80 !important;
    color: #FFFFFF !important;
    font-weight: 600 !important;
    padding: 16px 24px !important;
}

/* ---------- Body scroll lock when mobile menu open ---------- */
body.nova-mobile-menu-open {
    overflow: hidden;
}

/* ===================================================================
   Responsive
   =================================================================== */

/* Tablet (<= 1024px) - collapse to logo + hamburger */
@media (max-width: 1024px) {
    .nova-site-header .nova-site-header__inner {
        padding-top: 14px !important;
        padding-bottom: 14px !important;
    }
    .nova-site-header__nav,
    .nova-site-header__cta {
        display: none !important;
    }
    .nova-site-header__hamburger {
        display: flex !important;
    }
}

/* Mobile (<= 767px) */
@media (max-width: 767px) {
    .nova-site-header .nova-site-header__inner {
        padding-top: 12px !important;
        padding-bottom: 12px !important;
    }
    .nova-mobile-menu.is-open {
        max-height: calc(100vh - 70px);
    }
}

/* Make sure Elementor hides work as expected */
@media (min-width: 1025px) {
    .nova-site-header__hamburger { display: none !important; }
    .nova-mobile-menu { display: none !important; }
}