Index: src/assets/css/style.css
===================================================================
--- src/assets/css/style.css	(revision cf0de0c272075e434466ea921e29842fd4b84c48)
+++ src/assets/css/style.css	(revision d8c6a8322c8735929657d5f4454ab4cdee60d84e)
@@ -612,4 +612,15 @@
 .post-image--right { text-align: right; }
 .post-image--right img { margin-left: auto; margin-right: 0; }
+
+/* Afbeeldingen in de post-tekst vullen ALTIJD de containerbreedte en houden hun
+   natuurlijke (niet-bijgesneden) hoogte — geen vaste hoogte / geen crop. */
+.post-content img {
+    display: block;
+    width: 100%;
+    max-width: 100%;
+    height: auto;
+    border-radius: 6px;
+    margin: 1.4em auto;
+}
 
 /* Mini-player + bottom-tab clearance: applied to .pcms-main so the footer
Index: src/routes/download.js
===================================================================
--- src/routes/download.js	(revision cf0de0c272075e434466ea921e29842fd4b84c48)
+++ src/routes/download.js	(revision d8c6a8322c8735929657d5f4454ab4cdee60d84e)
@@ -20,6 +20,20 @@
 import { premiumUnlocked } from '../services/PatreonService.js';
 import { addSubscriber } from '../services/SubscriberService.js';
+import { postNeighbors } from './posts.js';
 
 const router = express.Router();
+
+// Als er een echte (gepinde) post met slug 'downloads' bestaat, hangt de
+// downloads-lijst feitelijk aan die post. Dan tonen we óók de Newer/Older-postnav,
+// zodat de bezoeker net als bij een post verder kan bladeren.
+function downloadsPostNav(req, res) {
+  const site = res.locals.site;
+  if (!site) return {};
+  const post = db.prepare(
+    "SELECT id, slug, pinned FROM posts WHERE site_id = ? AND slug = 'downloads' AND status = 'published'"
+  ).get(site.id);
+  if (!post) return {};
+  try { return postNeighbors(site, post, res.locals.tenancy === 'hub'); } catch (e) { return {}; }
+}
 const __dirname = path.dirname(fileURLToPath(import.meta.url));
 const AUDIO_DIR = path.resolve(process.env.AUDIO_PATH || path.join(__dirname, '..', '..', 'storage', 'audio'));
@@ -50,8 +64,11 @@
       WHERE site_id = ? AND downloadable = 1 ORDER BY position ASC, created_at ASC`
   ).all(site.id);
+  const nav = downloadsPostNav(req, res);
   renderPage(req, res, 'pages/downloads', {
     pageTitle: 'Downloads — ' + (site.title || ''),
     bodyClass: 'on-downloads',
     dlTracks: tracks,
+    newerPost: nav.newerPost || null,
+    olderPost: nav.olderPost || null,
   });
 });
Index: src/routes/posts.js
===================================================================
--- src/routes/posts.js	(revision cf0de0c272075e434466ea921e29842fd4b84c48)
+++ src/routes/posts.js	(revision d8c6a8322c8735929657d5f4454ab4cdee60d84e)
@@ -718,2 +718,3 @@
 
 export default router;
+export { postNeighbors };
Index: src/views/pages/downloads.ejs
===================================================================
--- src/views/pages/downloads.ejs	(revision cf0de0c272075e434466ea921e29842fd4b84c48)
+++ src/views/pages/downloads.ejs	(revision d8c6a8322c8735929657d5f4454ab4cdee60d84e)
@@ -3,4 +3,5 @@
 %>
 <section class="dls">
+  <%- include('../partials/post-nav', { newerPost: (typeof newerPost !== 'undefined' ? newerPost : null), olderPost: (typeof olderPost !== 'undefined' ? olderPost : null) }) %>
   <h1 class="dls-h1">Downloads</h1>
   <p class="dls-sub">Gratis te downloaden — laat je e-mailadres achter en je krijgt het bestand.</p>
Index: src/views/shell.ejs
===================================================================
--- src/views/shell.ejs	(revision cf0de0c272075e434466ea921e29842fd4b84c48)
+++ src/views/shell.ejs	(revision d8c6a8322c8735929657d5f4454ab4cdee60d84e)
@@ -163,5 +163,5 @@
 
 <!-- v9 stylesheet (full palette system) -->
-<link rel="stylesheet" href="/assets/css/style.css?v=19">
+<link rel="stylesheet" href="/assets/css/style.css?v=20">
 
 <!-- Audio player styles: loaded on every page so the mini-player works
