What’s the default order used by WordPress to load CSS files?

WordPress does not dictate the order in which stylesheets are loaded. When themes and plugins enqueue styles they can tell WordPress when to load their styles in two ways:

The first way is by declaring a dependency on another stylesheet. This is done by passing the handles for those dependencies as the 3rd argument to wp_enqueue_style(). In this example, the child-style stylesheet will always be loaded after parent-theme:

wp_enqueue_stylesheet( 'child-style', get_stylesheet_uri(), [ 'parent-style' ] );

The other way is setting the priority of the callback function in which the assets are enqueued when hooking it into wp_enqueue_scripts with add_action(). In this example, the stylesheets enqueued by parent_enqueue_assets() will be enqueued before the stylesheets enqueued by child_enqueue_assets():

add_action( 'wp_enqueue_scripts', 'parent_enqueue_assets', 10 );
add_action( 'wp_enqueue_scripts', 'child_enqueue_assets', 15 );

Note that a lower number is a higher priority, and 10 is the default priority if one is not declared explicitly.

The issue you are experiencing is likely caused by the parent theme and child theme both enqueueing their stylesheets without declaring dependencies or explicitly setting a priority. When this happens stylesheets are all enqueued at priority 10 in the order that the code runs, and the code for child themes runs before the code for parent themes.

The most straightforward solution to your issue is likely to just increase the priority (by which I mean lower the priority number) of the function that enqueues your child theme’s assets.