A word that is often used to refer to racists, sexists, etc. But really just means anyone shallow, selfish, spiteful, unforgiving, and who generally has their head up their ass. Racists and
homophobes are not
necessarily "hateful". The word you're
looking for is "bigot".