get_the_post_thumbnail_url(‘full’) returns empty from custom post type

The first argument for that function is not size. See the documentation (if a function’s not working, checking the documentation should always be your first step):

get_the_post_thumbnail_url( int|WP_Post $post = null, string|array $size="post-thumbnail" )

The first argument is which post the get the URL for, while the size is the second argument.

To avoid redundancy, when you’re in the loop, set the first argument to null to get the current post:

<?php echo get_the_post_thumbnail_url( null, 'full' ); ?>

But honestly, you shouldn’t be using this function this way. If you want to output the post thumbnail, use the the_post_thumbnail() function. That way you automatically get the image’s alt text, width and height attributes, as well as srcset and sizes:

<a href="<?php the_permalink(); ?>" class="height300 bg-graylight flex-center c-dark position-relative">
    <?php the_post_thumbnail( 'full' ); ?>
</a>