/* Language switcher — BEM.
   Specificity chain (.navbar + .language-switcher + native Bulma class/tag)
   reaches 0,5,x to outrank other navbar rules (0,4,1 !important). */


/* ---- Layout ---- */

.navbar .language-switcher .navbar-link.language-switcher__trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 500;
    letter-spacing: 0.03em;
}

.language-switcher .language-switcher__globe {
    font-size: 1rem;
}

.navbar .language-switcher .language-switcher__menu {
    min-width: 10rem;
    padding: 0.25rem 0;
    max-height: 200px;
    overflow-y: auto;
    scrollbar-color: #b4ddd9 transparent;
    scrollbar-width: thin;
}

/* ---- Visibility (closed by default, opened on hover or .is-active) ---- */

.language-switcher .language-switcher__menu {
    display: none;
}

.navbar .language-switcher.is-active > .language-switcher__menu {
    display: block !important;
}


/* ---- Desktop theme (dark navbar) ---- */

.navbar .language-switcher .navbar-link.language-switcher__trigger,
.navbar .language-switcher .navbar-link.language-switcher__trigger:hover,
.navbar .language-switcher .navbar-link.language-switcher__trigger:focus,
.navbar .language-switcher:hover .navbar-link.language-switcher__trigger,
.navbar .language-switcher.is-active .navbar-link.language-switcher__trigger {
    color: #ffffff !important;
    background-color: transparent;
}

.navbar .language-switcher .navbar-link.language-switcher__trigger:hover,
.navbar .language-switcher .navbar-link.language-switcher__trigger:focus,
.navbar .language-switcher:hover .navbar-link.language-switcher__trigger {
    background-color: rgba(255, 255, 255, 0.12) !important;
}

.navbar .language-switcher .language-switcher__menu {
    background-color: #0d5364;
    border-top-color: rgba(255, 255, 255, 0.2);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
}

.navbar .language-switcher .language-switcher__menu a.language-switcher__option {
    color: #ffffff;
    background-color: transparent;
    padding: 0.5rem 1rem;
}

.navbar .language-switcher .language-switcher__menu a.language-switcher__option:hover,
.navbar .language-switcher .language-switcher__menu a.language-switcher__option:focus,
.navbar .language-switcher .language-switcher__menu a.language-switcher__option--active,
.navbar .language-switcher .language-switcher__menu a.language-switcher__option--active:hover,
.navbar .language-switcher .language-switcher__menu a.language-switcher__option--active:focus {
    background-color: #b4ddd9 !important;
    color: #ffffff !important;
}


/* ---- Loader (affiché au changement de langue, avant le reload) ---- */

.language-switcher__loader {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(13, 83, 100, 0.25);
    backdrop-filter: blur(1px);
}

.language-switcher__loader-spinner {
    width: 2.5rem;
    height: 2.5rem;
    border: 3px solid rgba(255, 255, 255, 0.5);
    border-top-color: #0d5364;
    border-radius: 50%;
    animation: language-switcher__spin 0.7s linear infinite;
}

@keyframes language-switcher__spin {
    to { transform: rotate(360deg); }
}


/* ---- Mobile overrides (light navbar, switcher next to the burger) ---- */

@media (max-width: 1023px) {

    .mobile-navbar .navbar-brand > .language-switcher {
        margin-left: auto;
        padding: 0;
    }

    .mobile-navbar .navbar-brand > .language-switcher .navbar-link.language-switcher__trigger {
        padding: 0 0.75rem;
        height: 100%;
    }

    /* Parent :hover and .is-active included so pointing at an option doesn't repaint the trigger. */
    .mobile-navbar .language-switcher .navbar-link.language-switcher__trigger,
    .mobile-navbar .language-switcher .navbar-link.language-switcher__trigger:hover,
    .mobile-navbar .language-switcher .navbar-link.language-switcher__trigger:focus,
    .mobile-navbar .language-switcher:hover .navbar-link.language-switcher__trigger,
    .mobile-navbar .language-switcher.is-active .navbar-link.language-switcher__trigger {
        color: inherit !important;
        background-color: transparent !important;
    }

    .mobile-navbar .language-switcher .language-switcher__menu {
        position: absolute;
        right: 0;
        top: 100%;
        z-index: 25;
        background-color: #ffffff;
        border: 1px solid rgba(0, 0, 0, 0.08);
    }

    .mobile-navbar .language-switcher .language-switcher__menu a.language-switcher__option {
        color: #0d5364;
    }

    .mobile-navbar .language-switcher .language-switcher__menu a.language-switcher__option:hover,
    .mobile-navbar .language-switcher .language-switcher__menu a.language-switcher__option:focus,
    .mobile-navbar .language-switcher .language-switcher__menu a.language-switcher__option--active,
    .mobile-navbar .language-switcher .language-switcher__menu a.language-switcher__option--active:hover,
    .mobile-navbar .language-switcher .language-switcher__menu a.language-switcher__option--active:focus {
        background-color: #0d5364 !important;
        color: #ffffff !important;
    }
}
