Index: src/views/partials/footer.ejs
===================================================================
--- src/views/partials/footer.ejs	(revision 2165b6d3d57ceaa8b5d1f70491868482149470cf)
+++ src/views/partials/footer.ejs	(revision 7bc636b391c66ac399c33e54f7173a022c6a3cbd)
@@ -1,30 +1,9 @@
 <footer class="site-footer">
-  <% if (typeof footerNewsletter !== 'undefined' && footerNewsletter && (typeof premiumUnlocked === 'undefined' || premiumUnlocked) && typeof site !== 'undefined' && site) { %>
-    <div class="container footer-nl">
-      <span class="footer-nl-label">📬 <%= t('footer.subscribe_cta') %></span>
-      <form method="post" action="<%= (typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '' %>/nieuwsbrief" class="footer-nl-form">
-        <input type="email" name="email" required placeholder="<%= t('common.email_placeholder') %>" autocomplete="email" aria-label="E-mailadres">
-        <button type="submit"><%= t('footer.subscribe') %></button>
-      </form>
-    </div>
-  <% } %>
   <div class="container site-footer-inner">
     <div>
-      <span>© <%= new Date().getFullYear() %> <%= (site && site.title) || 'Klonkt' %></span>
+      <span>© <%= new Date().getFullYear() %> <%= (site && site.title) || 'PrutFolio' %></span>
     </div>
-    <%# Install-app button — placed in the footer row (centre), saves a whole extra row.
-        JS detects the platform & opens a modal with PWA install steps. %>
-    <button type="button" class="install-app-btn install-app-btn--footer" data-pcms-install-app>
-      <svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true"><path d="M5 20h14v-2H5v2zm7-18L5.33 9h3.84v6h5.66V9h3.84L12 2z" fill="currentColor"/></svg>
-      <span><%= t('footer.install') %></span>
-    </button>
     <div class="footer-meta">
-      <% if (typeof langs !== 'undefined' && langs && langs.length > 1) { %>
-        <select class="footer-lang" aria-label="<%= t('nav.language') %>"
-                data-lang-switch>
-          <% langs.forEach(function(l){ %><option value="<%= l.code %>"<%= l.active ? ' selected' : '' %>><%= l.name %></option><% }); %>
-        </select>
-      <% } %>
-      <a class="footer-version" href="<%= (typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '' %>/changelog" title="Bekijk wat er per release veranderd is">Klonkt<%= (typeof appVersion !== 'undefined' && appVersion) ? ' v' + appVersion : '' %></a>
+      <span>PrutFolio v1</span>
       <%# Mobile-only theme toggle. On desktop the topnav has its own toggle
           so we hide this one to avoid two visible toggles at once. The same
@@ -41,4 +20,13 @@
   </div>
 
+  <%# P64 — Install-app button. JS detects platform & opens modal with steps.
+      data-apk-url is the direct download for Android users who want the
+      native APK route instead of the PWA. %>
+  <div class="site-footer-install container">
+    <button type="button" class="install-app-btn" data-pcms-install-app data-apk-url="/assets/apk/soundfabrics.apk">
+      <svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true"><path d="M5 20h14v-2H5v2zm7-18L5.33 9h3.84v6h5.66V9h3.84L12 2z" fill="currentColor"/></svg>
+      <span>Installeer app</span>
+    </button>
+  </div>
 </footer>
 
@@ -77,20 +65,4 @@
   }
 }
-.footer-nl {
-  max-width: 800px; margin: 0 auto 1.5rem; padding: 0 1rem;
-  display: flex; align-items: center; justify-content: center; gap: .8rem; flex-wrap: wrap;
-}
-.footer-nl-label { font-weight: 600; color: var(--ink); }
-.footer-nl-form { display: flex; gap: .5rem; flex-wrap: wrap; }
-.footer-nl-form input {
-  padding: .5rem .7rem; border-radius: 8px; border: 1px solid var(--rule);
-  background: var(--paper); color: var(--ink); font-size: .9rem; min-width: 200px;
-}
-.footer-nl-form button {
-  padding: .5rem 1rem; border-radius: 8px; border: none; cursor: pointer;
-  background: var(--accent); color: #fff; font-weight: 600; font-size: .9rem;
-}
-@media (max-width: 600px) { .footer-nl { flex-direction: column; } .footer-nl-form input { min-width: 0; flex: 1; } }
-
 .site-footer-inner {
   max-width: 800px;
@@ -107,17 +79,4 @@
   display: inline-flex; align-items: center; gap: 0.75rem;
 }
-.footer-lang {
-  background: transparent; color: var(--ink); opacity: 1;
-  border: 1px solid var(--rule); border-radius: 999px;
-  padding: 0.3rem 0.5rem; font-size: 0.78rem; cursor: pointer;
-  font-family: inherit;
-}
-.footer-lang:hover { border-color: var(--accent); }
-/* Make open dropdown options readable (otherwise white-on-white in dark mode). */
-.footer-lang option { background: var(--paper); color: var(--ink); }
-/* On desktop the language picker lives in the header nav → hide the footer version. */
-@media (min-width: 768px) { .footer-lang { display: none; } }
-.footer-version { color: inherit; text-decoration: none; }
-.footer-version:hover { color: var(--accent); text-decoration: underline; }
 .pcms-main { min-height: 50vh; }
 
@@ -144,17 +103,9 @@
 }
 
-/* Compact install button inside the footer row (centre) instead of a large standalone
-   CTA on its own line — saves vertical space. */
-.install-app-btn--footer {
-  flex: 0 0 auto;
-  width: auto !important;          /* override the mobile .install-app-btn width:100% */
-  padding: 0.42rem 0.95rem;
-  font-size: 0.82rem;
-  gap: 0.4rem;
-}
-.install-app-btn--footer svg { width: 15px; height: 15px; }
-/* On narrow screens: let the three items centre neatly when they wrap. */
-@media (max-width: 600px) {
-  .site-footer-inner { justify-content: center; text-align: center; }
+/* Install-app button container — sits centered under the footer-inner row */
+.site-footer-install {
+  display: flex;
+  justify-content: center;
+  margin-top: 1.25rem;
 }
 </style>
