300 million people in America—there’s not going to be a single reason that applies to all of them.
I think a lot of it has to do with character. People like Obama, and not many people like Romney. Romney lied a lot; Obama is trustworthy. Not trying to be partisan here—Bush won partly for the same reason.
A lot of it is changing demographics. The GOP has demonized minorities and now that white people are themselves a minority, this has come back to bite them.
Then there’s the simple matter of policy. Romney constantly flip-flopped on his policy, but it’s clear that he favored supply-side, trickle-down economics. Obama favored a social safety net and progressive taxation. People just don’t like the GOP’s economic policy. After Bush, most Americans realize it’s bullshit.
To say nothing of foreign policy; only wingnuts believe that Obama “apologizes for America” and that Benghazi bullshit. The travesty of Bush’s foreign policy is still fresh in many peoplle’s memory; Obama’s foreign policy has been sober and successful, and the GOP has clearly lost this former edge.