Hey there,
I've got an iPhone 12 with 256 GB (bought in December 2020) and the same issue started a few weeks ago. Battery health is at 100%.
I think it all began with iOS 14.5, before that the battery was extremly good. I averaged 8-10 hours screen on time, 2 full days usage without charging and a nightly drain of about 3-7%.
As with your issue on my side it's also occasionally. One day it will drain through the whole day with just 1-2 hours of screen on time, and the next day without even restarting the phone everything is okay and I get my 10 hours screen on time back.
Here are some screenshots.
This one was taken yesterday with iOS 14.6. The drop to 90% is plausible, I used the phone for one hour. But the drop afterwards to 75% is absolutely unexplainable and I don't get such drops by not using the phone on other days. The phone was next to my work desk the whole time with the wifi router five feet away.
Here is another from a few weeks ago when it all began. The battery drained from 12 a.m. to 3 a.m. regardless of usage. I've even marked the one hour section after midnight which shows zero minutes of even touching the phone but it dropped from around 40 to 30% in this time. I charged the phone through the night and the next day the drain stopped, coming back some days later.
It's quite weird and I can't explain why this happens on some days but not on others. My phone doesn't get hot at all - actually I've never experienced even the slightest heat from my phone in the past six months, but I also don't game. It only gets lukewarm when updating for a few minutes, that's all.
The next thing to do is to use the Xcodes analysing features throughout days and check if it shows a suspect app or background task. But this takes time to set up as I'm not developing for iOS right now.
Also I could do a restore, for which I also don't have that much time because of banking authentications needing a reset and backing up and restoring 150 GB of files from the phone through USB 2.0.
iOS 14.6 didn't fix this all quite for me. The drain is not that extreme anymore but still happens. A restart doesn't fix it for me anyway. I just need to wait some hours or a day to settle the drain until next time.