You can use a PFET for reverse polarity - drain to your battery, source to your load, gate to GND, easiest thing ever, almost no leakage, no voltage drop:
(https://i.imgur.com/qMtjCIF.png)
I would also read this excellent resource from Maxim on reverse protection: https://www.maximintegrated.com/en/app-notes/index.mvp/id/636
You can use a MOV for transient input protection, typically in higher voltage applications.
If you want close to 0 leakage, you can use a set of generic BJTs (ex 2N3904), as explained here (https://www.eevblog.com/forum/beginners/multimeter-input-protection-what-are-these-bjts-doing/).
For overcurrent, use a fuse, PTC etc.
I will also add this video with some extras and demo: