This paper investigates how human societies sustain positive levels of cooperation through transmitting and enforcing norms. It introduces an evolutionary model that distinguishes between three distinct dynamic dimensions: behavior, norms, and approval preferences. These dimensions differ concerning their speed and nature of evolution. Whereas behavior evolves at the individual level through utility enhancement, norms evolve at the cultural level through peer interactions and socialization. Preferences are (at least partly) biologically inherited and transmitted from parents to their offspring. The model suggests that if cultural and biological reproductive fitnesses derive from material and social factors, then an interplay of social disapproval mechanisms can explain the persistence of norm-driven cooperation and heterogeneity regarding cooperative behavior and attitudes across situations and individuals