Vladimir L, посмотри песочницу, что я прислал, я не вспомнил, как правильно сделать хак с pointer-events: none, поэтому прислал старый свой хак, который пару использовал. Хотя лучше, конечно, такие штуки делать на JS.
На сенсорных по нажатию сначала появится всплывающее окно, а затем, если нажать ещё раз, то сработает ссылка.
Ragtime_Kitty, т. е. вы хотите менять z-index, если у вас прозрачность меньше единицы? У вас на картинке :after то под блоком, то над ним.
Вам не к CSS тогда, если хотите автоматики, ибо в нём нет условной логики как таковой.
Так что только вручную ставить нужный z-index псевдоэлементу. Или писать скрипт, который будет искать в нужных элементах свойство opacity, проверять, меньше ли оно единицы, а если меньше, выставить класс, который будет менять z-index псевдоэлементу.