.language-switcher {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    white-space: nowrap;
}

.language-toggle {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-height: 2.25rem;
    padding: .42rem .68rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: rgba(255,255,255,.72);
    color: var(--muted-strong);
    font: inherit;
    font-size: .84rem;
    font-weight: 750;
    letter-spacing: .02em;
    cursor: pointer;
}

.language-toggle:hover,
.language-switcher.is-open .language-toggle {
    background: var(--surface);
    color: var(--text);
}

.language-toggle .icon {
    color: var(--accent-strong);
}

.language-toggle-code {
    color: var(--text);
}

.language-toggle-label {
    display: none;
}

.language-menu {
    position: absolute;
    top: calc(100% + .55rem);
    right: 0;
    display: none;
    min-width: 190px;
    padding: .4rem;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 18px 45px rgba(15,23,42,.1);
    z-index: 30;
}

.language-switcher.is-open .language-menu {
    display: grid;
    gap: .12rem;
}

.language-menu .lang-link {
    display: flex;
    align-items: center;
    gap: .6rem;
    width: 100%;
    padding: .58rem .65rem;
    border-radius: 10px;
    text-decoration: none;
    color: var(--muted-strong);
    font-size: .9rem;
}

.language-menu .lang-link:hover,
.language-menu .lang-link.active {
    background: var(--surface-alt);
    color: var(--text);
}

.language-menu .lang-link.active {
    font-weight: 750;
}

.lang-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    min-width: 2.1rem;
    min-height: 1.6rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: rgba(255,255,255,.8);
    color: var(--accent-strong);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
}

.lang-name {
    color: inherit;
}

.language-suggestion {
    position: fixed;
    left: 50%;
    bottom: 1rem;
    z-index: 60;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .8rem;
    width: min(680px, calc(100vw - 2rem));
    padding: .85rem;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 20px 55px rgba(15,23,42,.16);
    transform: translateX(-50%);
}

.language-suggestion[hidden] {
    display: none;
}

.language-suggestion-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.3rem;
    height: 2.3rem;
    border-radius: 50%;
    background: var(--surface-alt);
    color: var(--accent-strong);
}

.language-suggestion-copy {
    display: grid;
    gap: .08rem;
}

.language-suggestion-copy p {
    margin: 0;
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.35;
}

.language-suggestion-copy .language-suggestion-title {
    color: var(--text);
    font-weight: 750;
}

.language-suggestion-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .45rem;
}

.btn-sm {
    min-height: 2.1rem;
    padding: .48rem .72rem;
    font-size: .86rem;
}

@media (max-width: 760px) {
    .language-switcher {
        order: 2;
        margin-left: auto;
    }

    .language-toggle {
        min-width: 4.2rem;
        justify-content: center;
    }

    .language-menu {
        right: 0;
    }

    .language-suggestion {
        grid-template-columns: auto 1fr;
        align-items: start;
    }

    .language-suggestion-actions {
        grid-column: 1 / -1;
        justify-content: stretch;
    }

    .language-suggestion-actions .btn {
        flex: 1 1 12rem;
    }
}

@media (max-width: 430px) {
    .language-switcher {
        width: auto;
        justify-content: flex-end;
    }

    .language-menu {
        position: fixed;
        top: 4.3rem;
        left: 5vw;
        right: 5vw;
        width: auto;
    }

    .language-toggle {
        min-width: auto;
        padding: .42rem .6rem;
    }

    .language-toggle-label {
        display: none;
    }

    .language-suggestion {
        bottom: .7rem;
        width: calc(100vw - 1.2rem);
        padding: .75rem;
        border-radius: 16px;
    }
}
