This PCV refresh is a good place to start if you haven’t already done it. It is probably the most common cause for the lean code at idle that I’ve seen on these forums. It’ll need to be done at some point anyway, so even if that’s not your problem, it’s not a waste of time.
You can probably narrow it down to a vacuum leak if you have a gap tool (or other tool) that can look at fuel trims - lean fuel trims trending down to normal with increasing RPMs.
Couple of other common vacuum leaks I’ve read about have been breather hoses popping loose - especially the drivers side where it connects to the air intake plenum - that happened to me; bad purge valve; valve cover leak (you‘d be seeing an oil leak too I suspect); and other evap components (though I’d expect EVAP leak codes as well). The V8 had issues with the vacuum pump, but I haven’t heard of those on the V6 so much.