Элементы li ограничивает родитель ul
Поэтому .catalog-dropdown__list задать flex-grow: 1; либо width: 100%;
Но эти цифры справа реально мешают, и как советовали выше их нужно засунуть в li
<li><a href="#">Средства для ванной</a><span>(33)</span></li>
li {display: block;}
a {display: flex; justify-content: space-between}
Можно конечно сделать так:
.count {
position: absolute;
right: 0;
height: 100%;
}
Но это какая-то жесть
По поводу z-index тоже подкину
статейку ( только что нагуглил )) )
Я сам ещё все тонкости не прознал, но фишка в том, что z-index не так прост (типа у кого больше тот и выше). Всякие там position: absolute, relative и прочие transform с opacity создают новые слои.
К примеру есть два блока абсолютно позиционированных, у первого z-index: 1; а у второго z-index: 2; И есть дочерний элемент у первого блога с z-index: 1000; но это ему не поможет, потому-что у родителя z-index: 1; дочерний блок находится в слое родителя
Вывод: либо поднимать слои тому кто должен быть выше: прописывая элементу, родителю, предку position: relative и z-index высокий,
либо опускать того, кто должен быть ниже: position: relative и z-index: -1;