Специфичность селектора определяется трех- (четырех-) значным числом, которое можно получить, посчитав сумму составляющих частей селектора.
При расчете следует брать следующие цифры:
Каждый селектор идентификатора = 100
Каждый селектор класса, атрибута и
псевдокласса = 10
Каждый селектор типа(тега) и псевдоэлемента = 1
Некоторые псевдоклассы не участвуют в расчете (:not), но участвует их внутренний селектор или самый специфичный селектор из внутренних, если он составной.
Складывая эти цифры, получаем специфичность селектора. Если специфичность получается одинаковой, то применение правила определяется css-каскадом.
Отдельно считается специфичность стилей style. Считай, что они добавляют сразу 1000 к результату. Ну и !important вносит свои нюансы.
Обо всех этих занимательных вещицах написано здесь:
https://www.w3.org/TR/selectors/#specificity