Псевдоэлементы рассматриваются как потомки их ассоциированного элемента. Чтобы поместить псевдоэлемент ниже своего родителя, вы должны создать новый контекст стекирования, чтобы изменить порядок укладки по умолчанию.
Позиционирование псевдоэлемента (абсолютное) и присвоение значения z-index, отличного от "auto", создает новый контекст стекирования.