Why are Americans so homophobic?

My theory, because we are a protestant Christian nation, and according to protestant Christian morality, to be gay is evil and base.