The Cameron/Osborne wing of the Tory Party thinks being socially liberal compensates for being economically uncompromising.
Many working class people are inherenrly socially conservative and have no natural political home. Few politicians have the guts to swim against the tide. David Davis might, I think.... Tim Farron was hounded out of his job for not trashing his beliefs on gay sex.