Почему z-index не выводит блок со значением больше, поверх другого объекта?
Z-index в принципе работает не так, как хотелось бы большинству (мне впрочем тоже), потому что существует такая штука как контекст наложения. 
https://habr.com/ru/post/166435/
css.yoksel.ru/kontekst-nalozheniya

Чтобы псевдо был под ссылкой, ему нужно задать z-index: -1, а у самой ссылки убрать вовсе.
Так у вас не z-index вроде как играет роль. Ну или назначать ему 9999