/* --- Alinhamento do texto com o label (form-floating) + seta BS5 --- */
:root{
    /* controle global do tamanho da seta (menor que o padrão) */
    --bs-form-select-bg-size: 12px 9px;
}

/* garante largura total do Select2 dentro do form-floating */
.form-floating .select2-container{
    width: 100% !important;
}

/* caixa do Select2 com a mesma “lógica” do .form-select do Bootstrap 5 */
.form-floating .select2-container .select2-selection--single{
    display: flex;
    align-items: center;                               /* texto centralizado verticalmente */
    height: calc(var(--bs-form-select-height, 3.5rem) + 2px);
    padding-left: var(--bs-form-select-padding-x, .20rem);
    padding-right: calc(var(--bs-form-select-padding-x, .75rem) + 1.25rem); /* espaço p/ seta */
    padding-top: calc(var(--bs-form-select-padding-y, .375rem) + 1.25rem);  /* espaço p/ label flutuar */
    padding-bottom: var(--bs-form-select-padding-y, .375rem);

    /* seta igual do Bootstrap 5 */
    background-repeat: no-repeat;
    background-position: right var(--bs-form-select-padding-x, .75rem) center;
    background-size: var(--bs-form-select-bg-size); /* usa var com 12x9 */
    --_bs-s2-chevron: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3e%3cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 2l6 6 6-6'/%3e%3c/svg%3e");
    background-image: var(--bs-form-select-bg-img, var(--_bs-s2-chevron));
}

/* esconde a arrow nativa do Select2 */
.form-floating .select2-container .select2-selection__arrow{
    display: none;
}

/* texto interno sem padding duplicado e com line-height do BS */
.form-floating .select2-selection__rendered{
    margin: 0;
    padding: 0;
    line-height: var(--bs-body-line-height, 1.5);
}

/* label flutua quando tem valor ou quando o dropdown abre */
.form-floating select.is-filled ~ label,
.form-floating .select2-container--open + label{
    opacity: .65;
    transform: scale(.85) translateY(-.5rem) translateX(.15rem);
    transform-origin: 0 0;
    transition: opacity .1s ease-in-out, transform .1s ease-in-out;
}

/* RTL: seta do outro lado e compensação do padding */
[dir="rtl"] .form-floating .select2-container .select2-selection--single{
    background-position: left var(--bs-form-select-padding-x, .75rem) center;
    padding-left: calc(var(--bs-form-select-padding-x, .75rem) + 1.25rem);
    padding-right: var(--bs-form-select-padding-x, .75rem);
}
.s2-row { display:flex; align-items:center; gap:.25rem; }
.s2-id  { font-weight:600; font-variant-numeric: tabular-nums; opacity:.85; }
.s2-sep { opacity:.4; }
