Не стоит для иконок использовать тег img, можно дать левый отступ тексту, иконку - background-image, и отцентровать ее background-position: left center; либо использовать псевдоэлемент ::before, но лучше первый вариант, кода меньше - результат тот же
Специфика фона, на скрине не видно, но по горизонтали продолжается картинка, из-за неё переход все равно виден. Видимо, обертка - единственное нормальное решение