That's a helpful summary, and IMO your vehicle should be getting much closer to 30 MPG with a driving pattern such as what you described above. However, my opinion about that (or anyone else's for that matter) will be worth zero, in any conversation with your stealershp. They will say 'normal' and send you on your way.
If you are willing to do a bit of prep work, there is a very DIY-friendly tool available to anyone who has a reasonable degree of patience (which is required to get the thing up and running on your phone). This tool can often provide helpful diagnostic information for problem resolution, via the OBD live data stream. In your case, the data of interest is most likely just the 2 fuel trims, which is very easy to deal with. And if by chance, one or both of those fuel trim values from your vehicle are showing up as excessively 'rich', then that would be definitive, factual evidence of a problem, and would be something that Mazda cannot dismiss as 'normal'.
With the fuel economy information that you posted, I recommend giving this tool a shot, because at this point you have virtually nothing else to sell your argument to Mazda. The live data OBD reader tool for cell phones is something that you can easily find out about online, but you can post back specific questions, if you need help figuring something out.