/* ==========================================================================
   DEVOSO 4.3 — custom dropdown (assets/js/select43.js). Button + listbox drawn
   over the real <select>, which stays in the form but is visually hidden.
   Author: Maks Odintsov
   ========================================================================== */

.s43 { position: relative; display: block; width: 100%; min-width: 0; font: inherit; color: #121718; text-align: left; }
.s43--inline { display: inline-block; width: auto; vertical-align: middle; }
.s43 .s43__native { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; margin: 0 !important; padding: 0 !important; opacity: 0 !important; pointer-events: none !important; border: 0 !important; z-index: -1; }

.s43__btn {
    position: relative; display: flex; align-items: center; gap: .75rem; width: 100%; min-height: 3rem;
    margin: 0; padding: .625rem 2.875rem .625rem 1rem; border: 1px solid #dfe5e4; border-radius: .75rem;
    background: #fff; color: #121718; font: inherit; font-size: .9375rem; line-height: 1.35; text-align: left;
    cursor: pointer; box-shadow: none; appearance: none; -webkit-appearance: none;
    transition: border-color .18s, box-shadow .18s, background .18s;
}
.s43__btn:hover { border-color: #b5cfcf; }
.s43__btn:focus { outline: 0; }
.s43__btn:focus-visible, .s43.is-open .s43__btn { border-color: #121718; box-shadow: 0 0 0 .1875rem rgba(78,108,110,.16); }
.s43__val { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.s43__val.is-placeholder { color: #7a8789; }
.s43__chev { position: absolute; right: .5rem; top: 50%; width: 2rem; height: 2rem; margin-top: -1rem; display: grid; place-items: center; border-radius: .5rem; color: #4e6c6e; transition: transform .22s cubic-bezier(.2,.8,.2,1), background .18s; }
.s43__chev svg { width: 1.125rem; height: 1.125rem; }
.s43.is-open .s43__chev { transform: rotate(180deg); background: #f4f6f5; }
.s43__btn:disabled { cursor: not-allowed; opacity: .55; background: #f4f6f5; }
.s43--invalid .s43__btn { border-color: #b3261e; box-shadow: 0 0 0 .1875rem rgba(179,38,30,.1); }

.s43__list {
    position: absolute; left: 0; right: 0; top: calc(100% + .375rem); z-index: 1200;
    margin: 0; padding: .375rem; list-style: none; max-height: 16rem; overflow-y: auto; overscroll-behavior: contain;
    background: #fff; border: 1px solid #dfe5e4; border-radius: .875rem;
    box-shadow: 0 .875rem 2.25rem rgba(18,23,24,.12);
    animation: s43In .16s cubic-bezier(.2,.8,.2,1);
    scrollbar-width: thin; scrollbar-color: #b5cfcf transparent;
}
.s43--inline .s43__list { min-width: 100%; right: auto; width: max-content; max-width: min(24rem, 90vw); }
.s43--up .s43__list { top: auto; bottom: calc(100% + .375rem); animation-name: s43Up; }
.s43__list[hidden] { display: none !important; }
@keyframes s43In { from { opacity: 0; transform: translateY(-.25rem); } to { opacity: 1; transform: none; } }
@keyframes s43Up { from { opacity: 0; transform: translateY(.25rem); } to { opacity: 1; transform: none; } }

.s43__opt { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin: 0; padding: .625rem .75rem; border-radius: .5625rem; font-size: .9375rem; line-height: 1.35; color: #1d2729; cursor: pointer; user-select: none; }
.s43__opt span { min-width: 0; overflow-wrap: anywhere; }
.s43__opt i { flex: none; width: 1.125rem; height: 1.125rem; display: grid; place-items: center; color: #6b1d3d; opacity: 0; font-style: normal; }
.s43__opt i svg { width: 1.125rem; height: 1.125rem; }
.s43__opt--in { padding-left: 1.25rem; }
.s43__opt.is-active { background: #f4f6f5; color: #121718; }
.s43__opt[aria-selected="true"] { font-weight: 600; color: #121718; }
.s43__opt[aria-selected="true"] i { opacity: 1; }
.s43__opt[aria-disabled="true"] { opacity: .45; cursor: default; }
.s43__group { padding: .625rem .75rem .25rem; font-size: .6875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #7a8789; }

/* Dark surroundings (select on a dark background) */
.s43--dark .s43__btn { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.18); color: #fff; }
.s43--dark .s43__btn:hover { border-color: rgba(255,255,255,.4); }
.s43--dark .s43__chev { color: #b5cfcf; }
.s43--dark.is-open .s43__chev { background: rgba(255,255,255,.08); }
.s43--dark .s43__val.is-placeholder { color: rgba(255,255,255,.55); }
.s43--dark .s43__btn:focus-visible, .s43--dark.is-open .s43__btn { border-color: #b5cfcf; box-shadow: 0 0 0 .1875rem rgba(181,207,207,.18); }

@media (max-width: 575.98px) {
    .s43__btn, .s43__opt { font-size: 1rem; }
    .s43__list { max-height: 14rem; }
}
@media (prefers-reduced-motion: reduce) { .s43__list, .s43__chev { animation: none; transition: none; } }
