You are using width property for every element, that’s why you are getting the responsive issue. What I will suggest is use 100% width for main containers instead of fixed width.
Digging deeper, you’ve got a number of things which can cause you issues.
There are widths on everything.
You’re using position absolute on your major groups which almost guarantees it won’t be responsive.
You’ve got heights AND widths on most things, which is usually not needed, especially if you want it to be responsive.
The heights/widths are fixed px instead of viewport or percentages.
You’re using classes and ids interchangeably (frame-44, -45 and -46 for example). If something is common, please use a common class - it’ll save frustration later)
I took a quick pass-through to eliminate most of the widths (and a number of the heights), and tweaked some of the flex settings, and this is pretty responsive. Font size isn’t, but that’s another step in the process.
Dave has answered most of your problems and I will just make a few suggestions.
First of all why have you given different classes to multiple elements and repeated the samer styles over and over again.? Just use one class for the common styles and a new class if there is something special for that element only.
For example your have see-deals -1, 2 and 3 but they are all basically the same. Why not just call them see-deals and have one set of styles for them.Also avoid qualifying them with long chains of selectors as that just makes specificity awkward and is not needed most of the time.
That is no better than the font tags of old and ties your css to the markup in a way that would be hard to undo later on. Not to mention you have applied that rule to multiple spans when you could have applied it to all by default and then just style the differences.
Using class names that specify the font name and other specific styles goes against the methodology of css and you should have class names that reflect the elements purpose and not its appearance. In that way you can change the font name and the colours from the css without having a conflict between the class name and the style it applies.
Avoid fixed widths and fixed heights as others have already mentioned and use a max-width if you don;t want the page 100% wide. Also use a min-height instead of height when you have items like fluid text contained inside or indeed don;t use any height at all as the content will dictate that height and flexbox can equalize the heights automatically.
Dave has done a good re-write above but I would suggest making use of auto margins to align the see more buttons at the bottom and in a line with each other. The code to be added to Dave’s demo would be this.