Add free space in Disk Utility
Solution 1:
Honestly... that's messed up to the point where you should just start from scratch.
Apple is part way through a several year process to transition from HFS+ to APFS (and other related technologies like Core Storage), which has added a whole bunch of complexity to the low level filesystem layer of the operating system. Some things have been removed from the GUI and can only be done by command line for now, and if I'm honest, you just can't trust either the GUI or the command line to do anything without data loss.
I assume you already have a backup? Make a separate backup from your main backup, erase the hard drive, and start over. Use APFS and if you don't need boot camp, get rid of it (I prefer virtual machines personally). It's time to format the entire disk, remove all partitions, and do a clean install - restoring from your backup.
Get rid of the "data" partition for your home directory. It's not the best practice anymore especially on APFS. Some new features that work better if you give it the whole disk. And the last thing you want during a multi-year filesystem transition is to do anything "out of the ordinary".
If you can, I would hold off on this until the current beta release of macOS is available as a stable build (in a few months maybe?). That includes yet another new approach to splitting the disk into "containers" (which are similar to partitions). I haven't verified this personally, but I've heard it's something like one for recovery, one for the core operating system, another for user data (including stuff outside the home folder). Of course, how it works on the beta might not be how it works on the stable release.
If you really don't want to use a virtual machine for windows, I strongly encourage buying a Mac with two physical SSD drives and run Windows on the second. Or if you're on a laptop, get a good external SSD for bootcamp (this is a bit tricky to setup, but it can be done).