You do so by overriding undesirable CSS. There are a couple ways. One is to use the exact same selectors, but ensure your CSS is parsed after the original. In the case of equal selectors, the last parsed takes precedence. This generally means causing your CSS file to be loaded last. This is done by enqueuing stylesheets with wp_enqueue_style(). Specifying other stylesheets as dependencies for the one being enqueued causes them to be loaded first. The recommended way of enqueuing stylesheets (third example) for child themes is an example of this.
There are a couple situations that take even greater precedence than parse order. Style blocks on the page take precedence over external stylesheets. Element style attributes take precedence over all other styles.
The other way is to use a selector that is more specific than the one you want to override. When working with existing HTML, this is not always possible.