Nie dam głowy, czy przez "element A znajduje się w DOM poniżej elementu B" rozumiesz, że:
a) występuje po prostu później w kodzie (chyba o to ci właśnie chodzi),
b) występuje niżej w hierarchii drzewa DOM (jak bym ja to rozumiała).
Jeśli "a" to nie da się tego zrobić w CSS. Ale możesz wyświetlić je w kodzie w kolejności: AB, a później zamienić kolejność wyświetlania elementów na stronie za pomocą order:
https://www.w3schools.com/cssref/css3_pr_order.asp
albo nawet bardziej prostacko, zmieniając ich position. Order ma tą przewagę, że nie musisz już pilnować ile pikseli, w którą stronę trzeba co przesunąć, więc będzie działać poprawnie także na elementach o zmiennym rozmiarze.