/** Botánica Criolla - Selector de Idiomas */
.bc-language-selector {
    --bc-language-bg: #fff8e8;
    --bc-language-text: #253129;
    --bc-language-accent: #35613f;
    --bc-language-icon: #fff;
    --bc-language-border-width: 2px;
    --bc-language-float-offset: 20px;
    --bc-language-float-max-width: 180px;
    align-items: center;
    color: var(--bc-language-text);
    display: flex;
    flex-wrap: wrap;
    gap: .45rem .6rem;
    max-width: 100%;
}

.bc-language-selector__label {
    align-items: center;
    color: var(--bc-language-accent);
    display: inline-flex;
    font: inherit;
    font-weight: 650;
    gap: .32rem;
    margin: 0;
}

.bc-language-selector__globe {
    align-items: center;
    background: var(--bc-language-accent);
    border-radius: 999px;
    box-sizing: border-box;
    color: var(--bc-language-icon);
    display: inline-flex;
    flex: 0 0 auto;
    height: 2rem;
    justify-content: center;
    line-height: 1;
    width: 2rem;
}

.bc-language-selector__globe svg {
    fill: none;
    height: 1.2rem;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    width: 1.2rem;
}

.bc-language-selector__control {
    display: inline-block;
    max-width: 100%;
    position: relative;
}

.bc-language-selector__select {
    appearance: auto;
    background: var(--bc-language-bg);
    border: var(--bc-language-border-width) solid var(--bc-language-accent);
    border-radius: .5rem;
    box-sizing: border-box;
    color: var(--bc-language-text);
    cursor: pointer;
    font: inherit;
    line-height: 1.35;
    max-width: 100%;
    min-height: 2.35rem;
    padding: .38rem .55rem;
}

.bc-language-selector__select:focus-visible {
    outline: 2px solid var(--bc-language-accent);
    outline-offset: 2px;
}

/* Progressive enhancement for FLOAT. Until JS initializes, the native select
   remains visible and fully usable. */
.bc-language-selector__display {
    display: none;
}

.bc-language-selector__display-text {
    min-width: 0;
}

.bc-language-selector__display-primary,
.bc-language-selector__display-secondary {
    display: block;
    overflow-wrap: anywhere;
}

.bc-language-selector__display-primary {
    font-weight: 650;
}

.bc-language-selector__display-secondary {
    font-size: .82em;
    line-height: 1.12;
    margin-top: .08rem;
    opacity: .8;
}

.bc-language-selector__display-secondary[hidden] {
    display: none;
}

.bc-language-selector__caret {
    align-self: center;
    flex: 0 0 auto;
    font-size: .82em;
    line-height: 1;
    margin-left: .4rem;
}

.bc-language-selector__status {
    color: #8a2e24;
    flex-basis: 100%;
    font-size: .85em;
    line-height: 1.35;
}

/* FLOAT mirrors the useful placement model of the original GTranslate module,
   while keeping the UI text-based and template-neutral. */
.bc-language-selector--float {
    background: var(--bc-language-bg);
    border: var(--bc-language-border-width) solid var(--bc-language-accent);
    border-radius: .75rem;
    box-shadow: 0 5px 18px rgba(0, 0, 0, .18);
    box-sizing: border-box;
    flex-wrap: nowrap;
    max-width: calc(100vw - var(--bc-language-float-offset) - var(--bc-language-float-offset));
    padding: .42rem .5rem;
    position: fixed;
    width: max-content;
    z-index: 999999;
}

.bc-language-selector--bottom-left {
    bottom: calc(var(--bc-language-float-offset) + env(safe-area-inset-bottom, 0px));
    left: calc(var(--bc-language-float-offset) + env(safe-area-inset-left, 0px));
}

.bc-language-selector--bottom-right {
    bottom: calc(var(--bc-language-float-offset) + env(safe-area-inset-bottom, 0px));
    right: calc(var(--bc-language-float-offset) + env(safe-area-inset-right, 0px));
}

.bc-language-selector--top-left {
    left: calc(var(--bc-language-float-offset) + env(safe-area-inset-left, 0px));
    top: calc(var(--bc-language-float-offset) + env(safe-area-inset-top, 0px));
}

.bc-language-selector--top-right {
    right: calc(var(--bc-language-float-offset) + env(safe-area-inset-right, 0px));
    top: calc(var(--bc-language-float-offset) + env(safe-area-inset-top, 0px));
}

.bc-language-selector--float .bc-language-selector__control {
    max-width: min(var(--bc-language-float-max-width), 68vw);
}

.bc-language-selector--float .bc-language-selector__select {
    max-width: min(var(--bc-language-float-max-width), 68vw);
}

/* In enhanced FLOAT mode the native select remains the interactive/focusable
   control, invisibly layered over a compact two-line visual representation. */
.bc-language-selector--float.bc-language-selector--enhanced .bc-language-selector__control {
    width: min(var(--bc-language-float-max-width), 68vw);
}

.bc-language-selector--float.bc-language-selector--enhanced .bc-language-selector__display {
    align-items: center;
    background: var(--bc-language-bg);
    border: var(--bc-language-border-width) solid var(--bc-language-accent);
    border-radius: .5rem;
    box-sizing: border-box;
    color: var(--bc-language-text);
    display: flex;
    justify-content: space-between;
    line-height: 1.18;
    min-height: 2.45rem;
    padding: .35rem .5rem;
    width: 100%;
}

.bc-language-selector--float.bc-language-selector--enhanced .bc-language-selector__select {
    cursor: pointer;
    height: 100%;
    inset: 0;
    margin: 0;
    max-width: none;
    opacity: 0;
    position: absolute;
    width: 100%;
    z-index: 2;
}

.bc-language-selector--float.bc-language-selector--enhanced .bc-language-selector__control:focus-within .bc-language-selector__display {
    outline: 2px solid var(--bc-language-accent);
    outline-offset: 2px;
}

.bc-language-selector__engine,
#bc-google-translate-element,
.goog-te-banner-frame.skiptranslate,
body > .skiptranslate {
    display: none !important;
}

/* Google may add an inline top offset when its hidden Website Element initializes. */
html body {
    top: 0 !important;
}

@media (max-width: 480px) {
    .bc-language-selector--inline {
        align-items: stretch;
        flex-direction: column;
    }

    .bc-language-selector--inline .bc-language-selector__select {
        width: 100%;
    }

    .bc-language-selector--float {
        gap: .35rem;
        max-width: calc(100vw - 24px);
        padding: .35rem .42rem;
    }

    .bc-language-selector--float .bc-language-selector__control {
        max-width: min(var(--bc-language-float-max-width), 62vw);
    }

    .bc-language-selector--float.bc-language-selector--enhanced .bc-language-selector__control {
        width: min(var(--bc-language-float-max-width), 62vw);
    }

    .bc-language-selector--float .bc-language-selector__select {
        max-width: min(var(--bc-language-float-max-width), 62vw);
    }

    .bc-language-selector__globe {
        height: 1.9rem;
        width: 1.9rem;
    }
}
