I implemented this with a simple jQuery show/hide function I wrote.
In my use case, I wanted the state/province fields to be required and in order to do that I added a paid validation plugin: https://dnesscarkey.com/jquery-validation/ That allows the various state level fields to be added to a group validation that only requires one to be used. Not perfect, but would take require a user to intentionally break it to do things wrong.
We have a pretty complicated CF7 setup and integrate ours with Eloqua marketing database, so I am happy to share any tips I can.
Hope this helped and let me know if I can help anymore.