Почему не срабатывает соседний селектор?
Потому что перед ним два тега используй ~
Ответ уже дан, просто объясню, селектор + действует только на следующий элемент после данного, самый ближайший, а тильда ~ выбирает любой следующий элемент, но не предыдущий.