21 to 12% means your looking for about 21 pounds of fat burnt in 12 weeks. Hard work, but very very doable.
For your diet you need to start calorie counting, based on your stats and your 4x a week training, to lose 2 pounds of fat per week you need to consume 2500 calories a day.
Aim for a basic 50 carb/30 protein/20 fat split, unless your sensitive to carbs so you may go up to 35 on the protein. I would keep the protein shakes to the morning and post workout meals only. Avoid the apple postworkout, go for something like dates or pineapple, much more effective. I would avoid carbs completely for your final meal, go for a casein shake, or cottage cheese.
Your lifting and cardio looks spot on, although I would chuck in some HIIT to avoid plateaus in the final weeks.
Good luck and keep us updated on your progress bro.