The main mistake: You have "divitis" in the whole document.
Why this?
<header>
<div id="logo"></div>
<div id="language"></div>
</header>
Instead of:
<header role="banner">
<!-- Not the best -->
<h1 id="logo"></h1> <!-- or <figure> and <figcaption>, or <h1> and <p>... -->
<h2 id="language"></h2>
<!-- Better, if the IDs have not semantic sense -->
<h1></h1>
<h2></h2>
</header>
To stylize this header, use CSS hierarchy: body > section > header > h1, body > section > header > h2
More, ...line 63: why header wraps h2?? If you do not include any more element inside header, just use a single h2.
Keep in mind, your structure is not to stylize document, but construct a document self-explained.
Apply this to the rest of document; Good luck ;)