Во первых менять padding при :hover и :active не стоит вообще. Тогда сама анимация становится дёрганной и ест больше ресурсов(по причине перерасчёта размера элемента).
Лучше при hover сделать transform: scale(); , который ничего никуда не сдвигает и более плавный.
Можно калькулятором высчитать сколько нужно там поставить что бы были необходимые пиксельные значения.
Если хочется разное увеличение то можно использовать scaleX и scaleY