I learned that because synthetic detergent doesn't make strong dative bond with Ca^2+ or Mg^2+ , you could use it in hard water. But I couldn't understand why soap makes strong dative bond and synthetic detergent doesn't. For example why -SO3^- doesn't make strong enough dative bond to make scum with Ca^2+?