And a business has no right refusing service to someone because of their race or religion.
What race or religion is being refused service? If the baker refused to sell an item already baked and for sale in the store, then the complainants would have a point.
But when you request that a business make you something special for them, they have the right to refuse to do so.
If a business cannot turn down a customer for any reason, then many businesses would be forced to accommodate people/groups they despise.
If you owned a business that rented out buildings/rooms for parties and the Nazi Party called and said it wanted to rent out one of your rooms, would you accommodate them? I wouldn't.
Because something is legal and many people approve of a certain behavior, it doesn't mean everybody has to agree and go along. I believe homosexuality is a mental disorder, and I'm certainly not going to do something to promote or encourage it.
Baking a cake for a homosexual wedding would be encouraging it.
It would have to be a business that provided basics for survival. Therefore, if I owned a grocery store, I'm not going to deny food to anybody even if they're people I despise. (BTW I don't hate homosexuals or liberals. I do know more than a few of both.) Hospitals should not turn down anybody even nasty people for treatment. They do have the right to exist.
But weddings, parties, gatherings and other non-essential for survival events are different. Despite what you feel, people and businesses do have the right to discriminate in certain matters.