Como CSS funciona por cascada los estilos se sobre escriben aplicando los que estan mas abajo en la hoja de estilo, si aplicas un estilo a algun elemento en las primeras lineas del codigo y despues unas lineas mas abajo sobre escribes una parte de ese estilo, se va a aplicar lo ultimo que escribiste.
Eso genera un codigo disperso y confuso, despues intentas cambiar algo y el estilo no se aplica o se aplica mal, es mejor empezar aplicando el diseño mas general al main que es la etiqueta raiz y poco a poco ir a cada componente anidado. Yo lo que hago es definir secciones por orden y definir los estilos de los componentes unicamente en cada seccion especifica, el codigo en CSS se puede romper muy facil y nunca te va a decir que esta mal, el navegador renderiza lo que tu escribas.
/* Inicio Estilos Header */
...
...
/* Inicio Estilos Nav */
...
...
/* Final Estilos Nav */
/* Final Estilos Header */
/* Inicio Estilos Main */
...
...
/* Inicio Estilos Section */
....
/* Final Estilos Section */
/* Inicio Estilos Aside */
...
/* Final Estilos Aside */
/* Final Estilos Main */
/* Inicio Estilos Footer */
...
/* Final Estilos Footer */
Espero que esto te ayude con tu duda.