/* ==========================
   Language Switcher
========================== */

.flag-language-switcher {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-right: 4px;
}

.flag-language-option {
    position: relative;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    overflow: hidden;

    padding: 3px;

    border-radius: 50%;

    background: linear-gradient(
        145deg,
        rgba(255,255,255,.12),
        rgba(255,255,255,.025)
    );

    border: 1px solid rgba(255,255,255,.14);

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.12),
        0 8px 22px rgba(0,0,0,.28);

    transition:
        transform .25s ease,
        border-color .25s ease,
        box-shadow .25s ease,
        filter .25s ease;
}

.flag-language-option::before {
    content: "";
    position: absolute;
    inset: -1px;

    border-radius: 50%;

    background: linear-gradient(
        135deg,
        #00ffd0,
        #00a8ff 55%,
        #7b61ff
    );

    opacity: 0;

    transition: opacity .25s ease;

    z-index: 0;
}

.flag-language-option::after {
    content: "";
    position: absolute;
    inset: 2px;

    border-radius: 50%;

    background: #06101a;

    z-index: 1;
}

.flag-language-option svg,
.flag-language-option img {
    position: relative;
    z-index: 2;

    width: 100%;
    height: 100%;

    display: block;

    border-radius: 50%;

    object-fit: cover;

    box-shadow: 0 0 0 1px rgba(255,255,255,.18);

    filter: saturate(1.08) contrast(1.03);
}

.flag-language-option:hover {
    transform: translateY(-2px) scale(1.08);

    border-color: rgba(0,255,208,.55);

    box-shadow:
        0 12px 28px rgba(0,0,0,.36),
        0 0 24px rgba(0,255,208,.22);
}

.flag-language-option:hover::before,
.flag-language-option.active::before {
    opacity: 1;
}

.flag-language-option.active {
    transform: translateY(-1px);

    box-shadow:
        0 0 0 3px rgba(0,255,208,.12),
        0 0 26px rgba(0,255,208,.30),
        0 10px 26px rgba(0,0,0,.32);
}

.flag-language-option.active::after {
    inset: 3px;
}

/* Mobile */

.mobile-flag-language-switcher {
    margin-top: 12px;
    gap: 14px;
}

.mobile-flag-language-switcher .flag-language-option {
    width: 46px;
    height: 46px;
}

/* Responsive */

@media (max-width: 1100px) {
    .nav-actions > .flag-language-switcher {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .flag-language-option {
        transition: none;
    }
}