Как создать :hover для не дочерних элементов?
Если элемент дальше в DOM-модели, то можно использовать CSS-операторы "+" (следующий элемент на том же уровне) и "~" (следует далее на том же уровне). Если нужно двигаться назад или уровнем выше - тут только JS.
JavaScript
CSS умеет обращаться к дочерним (и вложенным) или соседним