With almost 700 posts to your name, you KNOW that we need to see HTML and CSS together to know how they work together, otherwise you are asking us to GUESS… SPECULATE… and that gets old.
Please give us some HTML that includes all of the classes and IDs that you are showing in the CSS and any other CSS that affects that HTML. An example that we can work with.
When you say “the smaller sizes”, what page width do you mean? Right now, the only breakpoint for div#cta seems to be around 975px (which does seem to make the images rather large), but I’m not sure what would work better. You might try breaking them into two rows of two at 975px and then 4 rows of one at a narrower width such as 600px or so. Is that what you are thinking about?
Back to your original question:
Unless there are specificity issues,
My code examples were fairly short so I thought I’d add a couple more using the examples in your original post.
(In these examples, the outer layer is number 1 and there could be more classnames in each level.)
#cta .col-sm-12 .col-xs-12 img {}
This selector would address all <img> tags at or more than 4 levels deep.
The spaces between the ID and the classnames indicate separate levels or layers. Like this: