Иерархические селекторы, как это запомнить?
В иерархии всё не так сложно
Такая запись: 
elem elem2
Будет означать, что ты будешь искать все elem2 в elem
Такая запись 
elem > elem2
Будет означать то, что ты будешь искать все elem2 только на одном уровне, т.е. когда у тебя elem2 находится сразу после elem, а не вложен в другие дочерние элементы elem
Можно использовать классы, насколько я знаю, это практикует БЭМ, но можно это комбинировать, использовать классы и иерархические селекторы
Пара примеров из моих проектов:
footer .contacts
Мы ищем все элементы .contacts в элементе footer
footer .contacts .row
Мы ищем все элементы .contacts в footer и все элементы .row в .contacts
Использовать классы для стилизации отдельных элементов хорошо и правильно.
Вашу проблему решит практика. Просто держите под рукой справочник, держать все в голове не обазательно.