/* Public landing — responsive navbar: single row when it fits; overlay menu + fixed toggler otherwise */

#sticky {
    z-index: 999;
}

#sticky .landing-navbar-container {
    column-gap: clamp(0.5rem, 1.5vw, 1.5rem);
    width: 100%;
    position: relative;
    z-index: 2;
    flex-wrap: nowrap !important;
    align-items: center;
}

#sticky .logo {
    order: 0;
    flex-shrink: 0;
    position: relative;
    z-index: 3;
}

#sticky .navbar-toggler {
    margin-left: auto;
    flex-shrink: 0;
    order: 2;
    position: relative;
    z-index: 3;
    border: 1px solid transparent;
    transition: color 0.25s ease, border-color 0.25s ease;
}

/* Match logo: light icon on hero, dark icon on sticky white navbar */
#sticky:not(.nav-sticky) .navbar-toggler {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.35);
}

#sticky:not(.nav-sticky) .navbar-toggler .mdi {
    color: inherit;
}

#sticky:not(.nav-sticky) .navbar-toggler:hover,
#sticky:not(.nav-sticky) .navbar-toggler:focus {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.65);
    box-shadow: none;
}

#sticky.nav-sticky .navbar-toggler {
    color: rgba(40, 40, 46, 0.9);
    border-color: rgba(40, 40, 46, 0.2);
}

#sticky.nav-sticky .navbar-toggler .mdi {
    color: inherit;
}

#sticky.nav-sticky .navbar-toggler:hover,
#sticky.nav-sticky .navbar-toggler:focus {
    color: #673ab7;
    border-color: rgba(103, 58, 183, 0.35);
    box-shadow: none;
}

/* Theme forces white navbar ≤768px (logo-dark) — same dark toggle as nav-sticky */
@media (max-width: 768px) {
    #sticky .navbar-toggler,
    #sticky .navbar-toggler .mdi {
        color: rgba(40, 40, 46, 0.9) !important;
        border-color: rgba(40, 40, 46, 0.2) !important;
    }

    #sticky .navbar-toggler:hover,
    #sticky .navbar-toggler:focus {
        color: #673ab7 !important;
        border-color: rgba(103, 58, 183, 0.35) !important;
        box-shadow: none;
    }
}

#sticky #navbarCollapse.landing-navbar-collapse {
    order: 3;
}

/* Temporary measure pass: keep collapse visible for overflow detection */
@media (min-width: 1200px) {
    #sticky #navbarCollapse.landing-nav-measure {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        column-gap: var(--landing-nav-actions-gap, 15px);
        visibility: hidden;
        pointer-events: none;
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
    }
}

/* ---- Expanded horizontal bar (desktop / laptop, menu fits) ---- */
@media (min-width: 1200px) {
    html[lang="en"],
    html[lang="fr"] {
        --landing-nav-actions-gap: 35px;
    }

    #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-container {
        column-gap: 0;
        padding-left: clamp(0.5rem, 1.5vw, 1.25rem);
        padding-right: clamp(0.5rem, 1.5vw, 1.25rem);
    }

    #sticky:not(.landing-nav--collapsed-mode) #navbarCollapse.landing-navbar-collapse {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        position: static;
        flex-wrap: nowrap !important;
        min-width: 0;
        flex: 1 1 auto;
        margin-left: clamp(1rem, 2.5vw, 2.5rem);
        column-gap: var(--landing-nav-actions-gap, 15px);
        width: auto;
        height: auto;
        background: transparent;
        box-shadow: none;
        overflow: visible;
    }

    #sticky:not(.landing-nav--collapsed-mode) #mySidenav.landing-navbar-main {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap !important;
        align-items: center;
        justify-content: flex-start;
        flex: unset;
        min-width: 0;
        max-width: 100%;
        width: auto;
        margin-right: 0;
        overflow: hidden;
        gap: 0.125rem;
    }

    #sticky:not(.landing-nav--collapsed-mode) #mySidenav .nav-link {
        padding: 6px 10px;
        margin: 0;
        white-space: nowrap;
        font-size: 0.9375rem;
        font-weight: 600;
        line-height: 26px;
    }

    #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-actions {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center;
        gap: clamp(0.25rem, 0.6vw, 0.5rem);
        margin-top: 0 !important;
        margin-left: 0;
        flex-shrink: 0;
        width: auto;
        grid-column: 2;
    }

    #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-actions .navbar-btn {
        font-size: 0.875rem;
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-auth-lang {
        display: flex;
        flex-direction: row;
        align-items: center;
        flex-shrink: 0;
        width: auto;
    }

    #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-auth-lang .nav-link {
        padding: 6px 8px;
        margin: 0 4px;
        font-size: 0.9375rem;
        font-weight: 600;
        line-height: 26px;
        white-space: nowrap;
    }

    #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-auth-lang .language-selector {
        flex-shrink: 0;
    }

    #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-auth-lang .language-selector-toggle {
        padding: 6px 8px;
        margin: 0 4px;
        font-size: 0.9375rem;
    }

    #sticky.landing-nav--collapsed-mode.navbar-expand-xl .navbar-collapse:not(.show) {
        display: none !important;
    }

    #sticky.landing-nav--collapsed-mode .navbar-toggler {
        display: block !important;
    }

    html[lang="fr"] #sticky:not(.landing-nav--collapsed-mode) #navbarCollapse.landing-navbar-collapse {
        margin-left: clamp(1rem, 2.5vw, 2rem);
    }

    html[lang="fr"] #sticky:not(.landing-nav--collapsed-mode) #mySidenav .nav-link {
        padding: 6px 10px;
        margin: 0;
    }

    /* Keep Sign-in / language spacing independent of the main nav cluster. */
    html[lang="fr"] #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-auth-lang .nav-link,
    html[lang="fr"] #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-auth-lang .language-selector-toggle {
        padding: 6px 8px;
        margin: 0 4px;
    }
}

/* Laptop widths */
@media (min-width: 1200px) and (max-width: 1699.98px) {
    #sticky:not(.landing-nav--collapsed-mode) #navbarCollapse.landing-navbar-collapse {
        margin-left: clamp(0.75rem, 2vw, 2rem);
        column-gap: var(--landing-nav-actions-gap, 15px);
    }

    #sticky:not(.landing-nav--collapsed-mode) #mySidenav .nav-link {
        padding: 6px 9px;
        margin: 0;
        font-size: 0.9rem;
    }

    #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-auth-lang .nav-link,
    #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-auth-lang .language-selector-toggle {
        padding: 6px 8px;
        margin: 0 4px;
        font-size: 0.9rem;
    }

    #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-actions .navbar-btn {
        font-size: 0.875rem;
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
}

/* French: same left-aligned cluster; slightly smaller type on mid widths */
@media (min-width: 1200px) and (max-width: 1799.98px) {
    html[lang="fr"] #sticky:not(.landing-nav--collapsed-mode) #navbarCollapse.landing-navbar-collapse {
        margin-left: clamp(0.75rem, 2vw, 1.75rem);
    }

    html[lang="fr"] #sticky:not(.landing-nav--collapsed-mode) #mySidenav .nav-link {
        padding: 6px 8px;
        margin: 0;
        font-size: 0.875rem;
    }

    html[lang="fr"] #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-auth-lang .nav-link,
    html[lang="fr"] #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-auth-lang .language-selector-toggle {
        padding: 6px 8px;
        margin: 0 4px;
        font-size: 0.875rem;
    }

    html[lang="fr"] #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-actions .navbar-btn {
        font-size: 0.8125rem;
        padding-left: 0.65rem;
        padding-right: 0.65rem;
    }
}

/* JS-driven compact pass when nav links still overflow their column */
@media (min-width: 1200px) {
    #sticky.landing-nav--compact:not(.landing-nav--collapsed-mode) #navbarCollapse.landing-navbar-collapse {
        margin-left: 0.75rem;
        column-gap: var(--landing-nav-actions-gap, 35px);
    }

    html[lang="en"] #sticky.landing-nav--compact:not(.landing-nav--collapsed-mode) #mySidenav.landing-navbar-main {
        justify-content: flex-start;
        width: auto;
    }

    #sticky.landing-nav--compact:not(.landing-nav--collapsed-mode) #mySidenav .nav-link {
        padding: 5px 5px;
        margin: 0 2px;
        font-size: 0.8125rem;
    }

    #sticky.landing-nav--compact:not(.landing-nav--collapsed-mode) .landing-navbar-auth-lang .nav-link,
    #sticky.landing-nav--compact:not(.landing-nav--collapsed-mode) .landing-navbar-auth-lang .language-selector-toggle {
        padding: 5px 3px;
        margin: 0;
        font-size: 0.8125rem;
    }

    #sticky.landing-nav--compact:not(.landing-nav--collapsed-mode) .landing-navbar-actions {
        gap: 0.25rem;
    }

    #sticky.landing-nav--compact:not(.landing-nav--collapsed-mode) .landing-navbar-actions .navbar-btn {
        font-size: 0.75rem;
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }
}

@media (min-width: 1700px) {
    #sticky:not(.landing-nav--collapsed-mode) #navbarCollapse.landing-navbar-collapse {
        margin-left: clamp(2rem, 4vw, 5rem);
        column-gap: var(--landing-nav-actions-gap, 15px);
    }

    #sticky:not(.landing-nav--collapsed-mode) #mySidenav .nav-link {
        padding: 6px 10px;
        margin: 0;
        font-size: inherit;
    }

    #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-actions .navbar-btn {
        font-size: inherit;
    }

    #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-auth-lang .nav-link {
        padding: 6px 10px;
        margin: 0 7px;
        font-size: inherit;
    }

    html[lang="fr"] #sticky:not(.landing-nav--collapsed-mode) #mySidenav .nav-link {
        padding: 6px 10px;
        margin: 0;
    }

    html[lang="fr"] #sticky:not(.landing-nav--collapsed-mode) .landing-navbar-auth-lang .nav-link {
        padding: 6px 10px;
        margin: 0 7px;
    }
}

/* ---- Overlay menu (toggle mode): fixed header row + full-page panel ---- */
@media (max-width: 1199.98px) {
    #sticky .navbar-toggler {
        display: block;
    }

    #sticky #navbarCollapse.landing-navbar-collapse:not(.show) {
        display: none !important;
    }
}

#sticky.landing-nav--collapsed-mode #navbarCollapse.landing-navbar-collapse:not(.show) {
    display: none !important;
}

#sticky.landing-nav--collapsed-mode #navbarCollapse.landing-navbar-collapse.show,
#sticky.landing-nav-menu-open #navbarCollapse.landing-navbar-collapse.show {
    display: flex !important;
    position: fixed;
    top: var(--landing-nav-menu-top, var(--landing-nav-bar-height, 5.5rem));
    left: 0;
    right: 0;
    bottom: auto;
    z-index: 1;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    max-height: calc(100dvh - var(--landing-nav-menu-top, var(--landing-nav-bar-height, 5.5rem)));
    height: auto;
    margin: 0 !important;
    padding: 1.25rem clamp(1rem, 4vw, 2rem) 2rem;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    background-color: #ffffff;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

@media (max-width: 1199.98px) {
    #sticky #navbarCollapse.landing-navbar-collapse.show {
        display: flex !important;
        position: fixed;
        top: var(--landing-nav-menu-top, var(--landing-nav-bar-height, 5.5rem));
        left: 0;
        right: 0;
        bottom: auto;
        z-index: 1;
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        max-width: 100%;
        max-height: calc(100dvh - var(--landing-nav-menu-top, var(--landing-nav-bar-height, 5.5rem)));
        height: auto;
        margin: 0 !important;
        padding: 1.25rem clamp(1rem, 4vw, 2rem) 2rem;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        background-color: #ffffff;
        box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
        border-top: 1px solid rgba(0, 0, 0, 0.08);
    }
}

body.landing-nav-overlay-open {
    overflow: hidden;
}

#sticky.landing-nav--collapsed-mode #mySidenav.landing-navbar-main,
#sticky.landing-nav-menu-open #mySidenav.landing-navbar-main {
    flex-direction: column !important;
    align-items: stretch !important;
    flex-wrap: nowrap !important;
    width: 100%;
    margin-top: 0;
    overflow: visible;
    max-width: none;
}

@media (max-width: 1199.98px) {
    #sticky #mySidenav.landing-navbar-main {
        flex-direction: column !important;
        align-items: stretch !important;
        flex-wrap: nowrap !important;
        width: 100%;
        margin-top: 0;
        overflow: visible;
        max-width: none;
    }
}

#sticky.landing-nav--collapsed-mode #mySidenav .nav-item,
#sticky.landing-nav-menu-open #mySidenav .nav-item {
    width: 100%;
}

@media (max-width: 1199.98px) {
    #sticky #mySidenav .nav-item {
        width: 100%;
    }
}

#sticky.landing-nav--collapsed-mode #mySidenav .nav-link,
#sticky.landing-nav-menu-open #mySidenav .nav-link {
    display: block;
    width: 100%;
    padding: 0.65rem 0;
    font-size: 1.0625rem;
    margin: 0;
    color: rgba(40, 40, 46, 0.9) !important;
}

#sticky.landing-nav--collapsed-mode #mySidenav .nav-link:hover,
#sticky.landing-nav--collapsed-mode #mySidenav .nav-link:focus,
#sticky.landing-nav--collapsed-mode #mySidenav .nav-link.active,
#sticky.landing-nav-menu-open #mySidenav .nav-link:hover,
#sticky.landing-nav-menu-open #mySidenav .nav-link:focus,
#sticky.landing-nav-menu-open #mySidenav .nav-link.active {
    color: #673ab7 !important;
}

@media (max-width: 1199.98px) {
    #sticky #mySidenav .nav-link {
        display: block;
        width: 100%;
        padding: 0.65rem 0;
        font-size: 1.0625rem;
        margin: 0;
        color: rgba(40, 40, 46, 0.9) !important;
    }

    #sticky #mySidenav .nav-link:hover,
    #sticky #mySidenav .nav-link:focus,
    #sticky #mySidenav .nav-link.active {
        color: #673ab7 !important;
    }
}

#sticky.landing-nav--collapsed-mode .landing-navbar-actions,
#sticky.landing-nav-menu-open .landing-navbar-actions {
    flex-direction: column;
    align-items: stretch !important;
    width: 100%;
    margin-top: 1rem;
    gap: 0.75rem;
}

@media (max-width: 1199.98px) {
    #sticky .landing-navbar-actions {
        flex-direction: column;
        align-items: stretch !important;
        width: 100%;
        margin-top: 1rem;
        gap: 0.75rem;
    }
}

#sticky.landing-nav--collapsed-mode .landing-navbar-actions .navbar-btn,
#sticky.landing-nav-menu-open .landing-navbar-actions .navbar-btn {
    width: 100%;
}

@media (max-width: 1199.98px) {
    #sticky .landing-navbar-actions .navbar-btn {
        width: 100%;
    }
}

#sticky.landing-nav--collapsed-mode .landing-navbar-auth-lang,
#sticky.landing-nav-menu-open .landing-navbar-auth-lang {
    flex-direction: column;
    align-items: stretch !important;
    width: 100%;
}

#sticky.landing-nav--collapsed-mode .landing-navbar-auth-lang .nav-link,
#sticky.landing-nav-menu-open .landing-navbar-auth-lang .nav-link {
    color: rgba(40, 40, 46, 0.9) !important;
}

@media (max-width: 1199.98px) {
    #sticky .landing-navbar-auth-lang {
        flex-direction: column;
        align-items: stretch !important;
        width: 100%;
    }

    #sticky .landing-navbar-auth-lang .nav-link {
        color: rgba(40, 40, 46, 0.9) !important;
    }

    #sticky .landing-navbar-auth-lang .language-selector .dropdown-menu {
        position: absolute;
        right: 0;
        left: auto;
    }
}

/* White overlay menu: dark text on hero header (overrides transparent-navbar language/sign-in styles) */
#sticky.landing-nav-menu-open .landing-navbar-auth-lang .language-selector-toggle,
#sticky.landing-nav-menu-open .landing-navbar-auth-lang .language-selector-toggle .language-selector-toggle__label,
#sticky.landing-nav-menu-open .landing-navbar-auth-lang .language-selector-toggle .mdi {
    color: rgba(40, 40, 46, 0.85) !important;
}

#sticky.landing-nav-menu-open .landing-navbar-auth-lang .language-selector-toggle:hover,
#sticky.landing-nav-menu-open .landing-navbar-auth-lang .language-selector-toggle:focus-visible,
#sticky.landing-nav-menu-open .landing-navbar-auth-lang .language-selector-toggle:hover .mdi,
#sticky.landing-nav-menu-open .landing-navbar-auth-lang .language-selector-toggle:focus-visible .mdi {
    color: #7e57c2 !important;
}
