Index: src/views/partials/footer.ejs
===================================================================
--- src/views/partials/footer.ejs	(revision 66cfbaaea019cc496240b846411f4f3f92aced8a)
+++ src/views/partials/footer.ejs	(revision 2149f5a6796ace710442d607e3a6971c55856966)
@@ -116,4 +116,6 @@
 /* Open dropdown-opties leesbaar (anders wit-op-wit op dark mode). */
 .footer-lang option { background: var(--paper); color: var(--ink); }
+/* Op desktop staat de taalkeuze in de header-nav → footer-versie verbergen. */
+@media (min-width: 768px) { .footer-lang { display: none; } }
 .footer-version { color: inherit; text-decoration: none; }
 .footer-version:hover { color: var(--accent); text-decoration: underline; }
Index: src/views/partials/topnav.ejs
===================================================================
--- src/views/partials/topnav.ejs	(revision 66cfbaaea019cc496240b846411f4f3f92aced8a)
+++ src/views/partials/topnav.ejs	(revision 2149f5a6796ace710442d607e3a6971c55856966)
@@ -81,4 +81,11 @@
         <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"/></svg>
       </button>
+
+      <% if (typeof langs !== 'undefined' && langs && langs.length > 1) { %>
+        <select class="nav-lang" aria-label="<%= t('nav.language') %>" title="<%= t('nav.language') %>"
+                onchange="location.href='/lang/'+this.value+'?r='+encodeURIComponent(location.pathname+location.search)">
+          <% langs.forEach(function(l){ %><option value="<%= l.code %>"<%= l.active ? ' selected' : '' %>><%= l.code.toUpperCase() %></option><% }); %>
+        </select>
+      <% } %>
 
       <% if (_hasPrutter) { %>
