Anki ticks all boxes.
I've used all versions, except for the Android version. The iOS version (Ankimobile) is $25, and totally worth it. The Android version (Ankidroid) is free, but it is maintained by an independent not affiliated to Anki's creator. Windows, MacOS and web versions are free.
Anki syncs through the web, so you can even use it on the web from any device, including iOS.