Check your tag and the order of the stylesheets. The child theme styles are added first and then other styles from the parent theme.
It causes the parent theme styles to override your child theme styles. You can set the priority of your my_theme_enqueue_styles function to make it run after the parent theme by using the third parameter of add_action. This will make your child theme styles enqueue at last and allow the CSS to work as expected.