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