Hi,
The fact that the message is not displayed at the top is normal.
The goal is to make it easier to match the message with the part that needs to be corrected.
Now, normally, when the checkout has to display an error message like that, it will automatically scroll down to the error message.
That way, the user can't miss it.
From what you're saying, it seems that this is not the case. I'm not sure why that would not be the case. Unfortunately, you didn't provide the URL of the website so I can't check the situation to see why the scroll down system is not working.
Also, from your screenshot, I can see that the message is not really visible. Normally, it will display with a red background so that the customer can't miss it.
a. Moving the message to the top is possible.
You would have to, first, edit the file checkout / show_block_terms via the menu Display>Views and remove the line:
$this->checkoutHelper->displayMessages('terms_' . $this->step . '_' . $this->module_position);
And then, edit the file checkout / show, and add code like this at the top:
<?php $this->checkoutHelper->displayMessages('terms_XXX_YYY'); ?>
where XXX is to be replaced by the step number and YYY by the position of the terms and conditions view in the step.
Not knowing how your checkout workflow is configured at the moment, I can't give you the exact values to use.
b. This is a normal text of HikaShop. You can use a translation override to change it:
www.hikashop.com/download/languages.html#modify
The translation key is PLEASE_ACCEPT_TERMS_BEFORE_FINISHING_ORDER