You need wp_reset_postdata()
after running a loop on a secondary query.
Calling $loop->the_post();
populates the global $post
with the current post data in that loop. When you later call get_field
without explicitly supplying a post ID, it gets the ID from $post
, which is now the last post from your custom query instead of the home page.