This is an automated email from the ASF dual-hosted git repository.

schofielaj pushed a commit to branch markdown
in repository https://gitbox.apache.org/repos/asf/kafka-site.git


The following commit(s) were added to refs/heads/markdown by this push:
     new 89242e88e Home page refresh (#743)
89242e88e is described below

commit 89242e88e590655836376460730eda85b813bfb7
Author: Harish Vishwanath <[email protected]>
AuthorDate: Thu Nov 13 00:49:00 2025 -0800

    Home page refresh (#743)
    
    * Add prev/next navigation buttons sorted by page weights
    
    * Rehaul of streams introduction. Supporting css, shortcodes etc.,
    
    * Home page refresh. Site config refactor
---
 README.md                                    |  66 ++-
 assets/json/offline-search-index.json        |   2 +
 assets/scss/_variables_project.scss          | 725 +++++++++++++++++++++++++--
 assets/scss/_variables_project_after_bs.scss |   7 +-
 content/en/_index.md                         |  12 +-
 content/en/community/apache/_index.md        |   6 -
 content/en/community/apache/apacheorg.md     |   8 -
 content/en/community/apache/donate.md        |   8 -
 content/en/community/apache/license.md       |   8 -
 content/en/community/apache/privacy.md       |   8 -
 content/en/community/apache/security.md      |   8 -
 content/en/community/apache/sponsors.md      |   8 -
 hugo.yaml                                    |  55 +-
 layouts/partials/footer.html                 |  57 +++
 layouts/partials/hooks/body-end.html         |   5 +
 layouts/partials/hooks/head-end.html         |   8 +
 layouts/partials/navbar.html                 |  80 +++
 static/js/navbar-enhancements.js             | 164 ++++++
 18 files changed, 1124 insertions(+), 111 deletions(-)

diff --git a/README.md b/README.md
index f5d2c19f7..bd704ef6c 100644
--- a/README.md
+++ b/README.md
@@ -52,23 +52,55 @@ Each version directory contains the complete documentation 
for that specific Kaf
 
 ### Adding a New Version
 
-1. Create a new directory in `content/en/` for the new version (e.g., `41/` 
for version 4.1)
-2. Update `hugo.yaml` to add the new version:
-   ```yaml
-   versions:
-     - version: "4.1"         # Add new version at the top
-       url: /41/
-     - version: "4.0"         # Update previous latest
-       url: /40/
-       archived_version: true  # Mark as archived
-     # ... other versions ...
-   ```
-3. Update the latest version pointer:
-   ```yaml
-   params:
-     version: 4.1             # Update version number
-     url_latest_version: /41/ # Update latest version URL
-   ```
+When releasing a new documentation version (e.g., version 4.2 / "42"), follow 
these steps:
+
+#### 1. Create Content Directory
+Create a new directory in `content/en/` for the new version (e.g., `42/` for 
version 4.2)
+
+#### 2. Update Version Parameters in `hugo.yaml`
+
+**Update the centralized version parameters (Lines 142-144):**
+```yaml
+params:
+  # Latest documentation version - UPDATE THIS WHEN RELEASING NEW VERSION
+  latest_version: "42"           # Change from "41" to "42"
+  latest_version_number: "4.2"   # Change from "4.1" to "4.2"
+```
+
+**Update the version parameter (Line ~180):**
+```yaml
+  version: 4.2  # Change from 4.1 to 4.2
+```
+
+**Update the latest version URL (Line ~283):**
+```yaml
+  url_latest_version: /42/  # Change from /41/ to /42/
+```
+
+**Add new version to versions list and mark previous as archived (Line ~184):**
+```yaml
+  versions:
+    - version: "4.2"
+      url: /42/
+    - version: "4.1"
+      url: /41/
+      archived_version: true  # Mark previous version as archived
+    # ... other versions ...
+```
+
+#### What Updates Automatically
+
+Once you update the parameters above, the following are **automatically** 
updated:
+
+**Menu Items:**
+- DOCS → `/42/`
+- Getting Started → `/42/getting-started/`
+- APIs, Configuration, Design, Implementation, Operations, Security, Kafka 
Connect, Kafka Streams → all automatically updated
+
+**Search Index:**
+- The search index automatically includes the latest version directory (no 
manual update needed)
+- Configured via offline search template 
`assets/json/offline-search-index.json`
+
 
 ### Managing Testimonials and Committers
 
diff --git a/assets/json/offline-search-index.json 
b/assets/json/offline-search-index.json
index 9226e8b77..98995072e 100644
--- a/assets/json/offline-search-index.json
+++ b/assets/json/offline-search-index.json
@@ -1,5 +1,7 @@
 {{- $pages := slice -}}
 {{- $sections := .Site.Params.search.indexing_directories | default slice -}}
+{{- $latestVersion := .Site.Params.latest_version -}}
+{{- $sections = $sections | append $latestVersion -}}
 
 
 {{- range $sections -}}
diff --git a/assets/scss/_variables_project.scss 
b/assets/scss/_variables_project.scss
index 367100f26..a5e07b174 100644
--- a/assets/scss/_variables_project.scss
+++ b/assets/scss/_variables_project.scss
@@ -90,11 +90,23 @@ $primary: #ffffff;
 html {
   -webkit-text-size-adjust: 100%;
   -ms-text-size-adjust: 100%;
+  overflow-x: hidden;
 }
 
-// Navbar responsive fixes
+// Navbar responsive fixes and styling
 .td-navbar {
-  @media (max-width: 768px) {
+  background-color: #ffffff;
+  border-bottom: 1px solid #e9ecef;
+  padding: 0.75rem 1rem;
+  
+  .container-fluid {
+    display: flex;
+    flex-wrap: wrap;
+    align-items: center;
+    justify-content: space-between;
+  }
+  
+  @media (max-width: 991px) {
     .navbar-brand {
       max-width: 150px;
       
@@ -106,58 +118,253 @@ html {
   }
 }
 
-// Logo responsive fixes
-.td-navbar .navbar-brand {
-  svg, img {
-    max-height: 40px;
-    width: auto;
-    
-    @media (max-width: 576px) {
-      max-height: 30px;
-    }
+// Mobile navbar toggler (hamburger menu) - FORCE VISIBLE
+.td-navbar .navbar-toggler,
+button.navbar-toggler {
+  display: inline-block !important;  // Nuclear option - force visible
+  visibility: visible !important;
+  opacity: 1 !important;
+  padding: 0.5rem 0.75rem !important;
+  font-size: 1.25rem;
+  line-height: 1;
+  background-color: #fff !important;
+  border: 2px solid #000 !important;  // Make it very obvious
+  border-radius: 0.25rem;
+  transition: box-shadow 0.15s ease-in-out;
+  cursor: pointer;
+  position: relative;
+  z-index: 1050;
+  min-width: 44px;
+  min-height: 44px;
+  
+  &:focus {
+    box-shadow: 0 0 0 0.2rem rgba(0, 0, 0, 0.25) !important;
+    outline: none !important;
+  }
+  
+  &:hover {
+    background-color: #f8f9fa !important;
+  }
+  
+  .navbar-toggler-icon {
+    display: inline-block !important;
+    width: 1.5em !important;
+    height: 1.5em !important;
+    vertical-align: middle;
+    background-image: url("data:image/svg+xml,%3csvg 
xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath 
stroke='%23000' stroke-linecap='round' stroke-miterlimit='10' stroke-width='3' 
d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
+    background-repeat: no-repeat;
+    background-position: center;
+    background-size: 100%;
+  }
+  
+  // Hide on desktop only
+  @media (min-width: 992px) {
+    display: none !important;
   }
 }
 
-// Ensure navbar items are properly responsive
-.td-navbar .navbar-nav {
+// Mobile menu collapse - CRITICAL: Hide by default on mobile
+.navbar-collapse {
   @media (max-width: 991px) {
+    // HIDE by default - this is critical!
+    display: none !important;
+    position: absolute;
+    top: 100%;
+    left: 0 !important;
+    right: 0 !important;
+    width: 100% !important;
+    background-color: #ffffff;
+    border-top: 1px solid #e9ecef;
+    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+    z-index: 1000;
+    max-height: calc(100vh - 60px);
+    overflow-y: auto;
+    
+    // SHOW when expanded
+    &.show {
+      display: block !important;
+    }
+    
+    &.collapsing {
+      display: block !important;
+      height: 0;
+      overflow: hidden;
+      transition: height 0.35s ease;
+    }
+    
+    .navbar-nav {
+      flex-direction: column;
+      padding: 1rem 0;
     width: 100%;
     
     .nav-item {
       width: 100%;
+        border-bottom: 1px solid #f8f9fa;
+        
+        &:last-child {
+          border-bottom: none;
+        }
+      }
+      
+      .nav-link {
+        padding: 0.75rem 1.5rem;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        width: 100%;
+        text-align: left;
+        
+        &:hover {
+          background-color: #f8f9fa;
+        }
+        
+        // Show arrow for dropdown items
+        &.dropdown-toggle::after {
+          margin-left: auto;
+        }
+      }
+      
+      .dropdown-menu {
+        position: static !important;
+        float: none;
+        border: none;
+        box-shadow: none;
+        padding: 0;
+        margin: 0;
+        background-color: #f8f9fa;
+        width: 100%;
+        transform: none !important;
+        
+        .dropdown-item {
+          padding: 0.75rem 2rem;
+          white-space: normal;
+          
+          &:hover {
+            background-color: #e9ecef;
+          }
+        }
+      }
+      
+      .dropdown {
+        .dropdown-menu {
+          display: none !important;
+        }
+        
+        &.show .dropdown-menu {
+          display: block !important;
+        }
+      }
     }
   }
+  
+  // Desktop - normal behavior
+  @media (min-width: 992px) {
+    display: flex !important;
+    flex-basis: auto;
+  }
 }
 
-// Fix navbar toggle button visibility
-.navbar-toggler {
-  padding: 0.25rem 0.75rem;
-  font-size: 1.25rem;
-  line-height: 1;
-  border: 1px solid rgba(0, 0, 0, 0.1);
-  border-radius: 0.25rem;
+// Force hide navbar items on mobile UNLESS the menu is expanded
+@media (max-width: 991px) {
+  .navbar-collapse:not(.show) {
+    .navbar-nav {
+      display: none !important;
+    }
+  }
   
-  &:focus {
-    box-shadow: 0 0 0 0.25rem rgba(0, 0, 0, 0.1);
+  // CRITICAL: Prevent horizontal display of nav items on mobile
+  .td-navbar .navbar-nav {
+    display: none !important;
+  }
+  
+  .td-navbar .navbar-collapse.show .navbar-nav {
+    display: flex !important;
+    flex-direction: column;
   }
 }
 
-// Responsive menu improvements
-.td-navbar .navbar-collapse {
+// Navbar itself needs to be positioned relative for absolute children
+.td-navbar {
+  position: relative;
+  
   @media (max-width: 991px) {
-    background-color: #fff;
-    padding: 1rem;
-    margin-top: 0.5rem;
-    border-radius: 0.25rem;
-    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+    overflow: visible !important;
   }
 }
 
-// Version dropdown responsive fix
-.td-navbar .dropdown-menu {
+// Navbar container fixes for mobile
+.td-navbar .container-fluid {
+  display: flex;
+  flex-wrap: wrap;
+  align-items: center;
+  justify-content: space-between;
+  position: relative;
+  
   @media (max-width: 991px) {
-    width: 100%;
-    max-height: 300px;
+    justify-content: flex-start;
+    
+    // Ensure hamburger is visible and positioned correctly
+    > .navbar-toggler {
+      display: inline-block !important;
+      visibility: visible !important;
+      opacity: 1 !important;
+      order: 0;
+      flex-shrink: 0;
+      margin-right: auto;
+    }
+  }
+}
+
+// Logo responsive fixes
+.td-navbar .navbar-brand {
+  display: flex;
+  align-items: center;
+  gap: 10px;
+  padding: 0.5rem 0;
+  
+  svg, img {
+    max-height: 40px;
+    width: auto;
+    
+    @media (max-width: 991px) {
+      max-height: 32px;
+    }
+  }
+  
+  .navbar-brand__name {
+    font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+    font-size: 1.25rem;
+    font-weight: 700;
+    
+    @media (max-width: 991px) {
+      font-size: 1.125rem;
+    }
+  }
+}
+
+// Navbar layout and spacing
+.td-navbar {
+  // Proper spacing between logo and menu items
+  .navbar-brand {
+    @media (min-width: 992px) {
+      margin-right: 3rem;
+    }
+  }
+  
+  // Menu items aligned to the right with auto margin
+  .navbar-nav.ms-auto {
+    @media (min-width: 992px) {
+      margin-left: auto !important;
+      flex-grow: 0;
+    }
+  }
+  
+  // Gap between menu and search bar
+  .navbar-search {
+    @media (min-width: 992px) {
+      margin-left: 3rem !important;
+      flex-shrink: 0;
+    }
   }
 }
 
@@ -166,6 +373,10 @@ html {
   @media (max-width: 576px) {
     max-width: 100%;
   }
+  
+  @media (min-width: 992px) {
+    min-width: 200px;
+  }
 }
 
 // Ensure main content is properly responsive
@@ -181,6 +392,82 @@ html {
   }
 }
 
+
+// Dropdown on hover for desktop
+.td-navbar .nav-item.dropdown {
+  @media (min-width: 992px) {
+    &:hover > .dropdown-menu {
+      display: block;
+      margin-top: 0;
+    }
+    
+    // Ensure dropdown trigger stays visible
+    &:hover > .nav-link {
+      color: #007bff;
+    }
+  }
+}
+
+// Nav link styling for better visibility
+.td-navbar .nav-link {
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+  color: #212529;
+  font-weight: 600;
+  font-size: 0.95rem;
+  padding: 0.5rem 1rem;
+  transition: color 0.2s ease;
+  letter-spacing: 0.3px;
+  
+  &:hover,
+  &:focus {
+    color: #007bff;
+  }
+  
+  &.dropdown-toggle {
+    &:hover {
+      color: #007bff;
+    }
+  }
+}
+
+// Style dropdown menus
+.td-navbar .dropdown-menu {
+  border-radius: 0.25rem;
+  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+  border: 1px solid rgba(0, 0, 0, 0.15);
+  background-color: #ffffff;
+  padding: 0.5rem 0;
+  
+  @media (max-width: 991px) {
+    border: none;
+    box-shadow: none;
+    padding-left: 1rem;
+    background-color: transparent;
+  }
+  
+  .dropdown-item {
+    font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+    padding: 0.75rem 1.5rem;
+    color: #212529;
+    font-size: 0.9375rem;
+    font-weight: 400;
+    transition: all 0.2s ease;
+    
+    &:hover,
+    &:focus {
+      background-color: #e9ecef;
+      color: #000;
+      text-decoration: none;
+    }
+    
+    &.active {
+      background-color: #007bff;
+      color: #fff;
+      font-weight: 600;
+    }
+  }
+}
+
 // Responsive logo for homepage cover block
 .td-cover-block {
   figure {
@@ -242,7 +529,377 @@ html {
   }
 }
 
-// Prev/Next navigation links styling
+// Homepage use case cards - reduce size and spacing
+.td-box.td-box--primary {
+  .col-lg-4 {
+    padding-left: 1rem;
+    padding-right: 1rem;
+    margin-bottom: 2rem;
+    
+    @media (min-width: 992px) {
+      padding-left: 0.75rem;
+      padding-right: 0.75rem;
+      margin-bottom: 1.5rem;
+    }
+    
+    h4 {
+      font-size: 1.25rem;
+      margin-bottom: 0.75rem;
+    }
+    
+    .mb-4 {
+      margin-bottom: 0.75rem !important;
+    }
+    
+    .h1 {
+      font-size: 2rem;
+    }
+  }
+}
+
+// Remove gaps and standardize spacing for homepage sections
+.td-box {
+  padding-top: 3rem;
+  padding-bottom: 3rem;
+  
+  @media (max-width: 768px) {
+    padding-top: 2rem;
+    padding-bottom: 2rem;
+  }
+}
+
+// Consistent typography matching kafka.apache.org
+// Using Open Sans font family as per original Kafka site
+body {
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+  font-size: 16px;
+  line-height: 1.6;
+  overflow-x: hidden;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+// Heading styles to match kafka.apache.org
+h1, h2, h3, h4, h5, h6 {
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+  font-weight: 700;
+  line-height: 1.2;
+  margin-bottom: 1rem;
+  color: #212529;
+}
+
+h1 {
+  font-size: 2.5rem;
+  font-weight: 700;
+  
+  @media (max-width: 768px) {
+    font-size: 2rem;
+  }
+}
+
+h2 {
+  font-size: 2rem;
+  font-weight: 700;
+  
+  @media (max-width: 768px) {
+    font-size: 1.75rem;
+  }
+}
+
+h3, .h3 {
+  font-size: 1.5rem;
+  font-weight: 600;
+  
+  @media (max-width: 768px) {
+    font-size: 1.25rem;
+  }
+}
+
+h4, .h4 {
+  font-size: 1.25rem;
+  font-weight: 600;
+}
+
+h5, .h5 {
+  font-size: 1.125rem;
+  font-weight: 600;
+}
+
+h6, .h6 {
+  font-size: 1rem;
+  font-weight: 600;
+}
+
+// Lead text styling matching original site
+.lead {
+  font-size: 1.25rem;
+  font-weight: 300;
+  line-height: 1.7;
+  
+  @media (max-width: 768px) {
+    font-size: 1.125rem;
+  }
+}
+
+// Paragraph text
+p {
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+  font-size: 1rem;
+  line-height: 1.6;
+  font-weight: 400;
+  margin-bottom: 1rem;
+}
+
+// Intro section text styling
+.td-box--1 .lead,
+.td-box--3 .lead,
+.td-box--5 .lead {
+  font-size: 1.125rem;
+  font-weight: 400;
+  color: #333;
+  max-width: 800px;
+  margin: 0 auto;
+}
+
+// Feature cards spacing and alignment
+.td-box--dark {
+  .col {
+    max-width: 100%;
+    
+    .row {
+      margin-left: -0.75rem;
+      margin-right: -0.75rem;
+      
+      @media (min-width: 992px) {
+        padding-left: 3rem;
+        padding-right: 3rem;
+      }
+    }
+  }
+  
+  .col-lg-4 {
+    padding-left: 0.75rem;
+    padding-right: 0.75rem;
+  }
+}
+
+// Download button highlighting
+.btn-lg {
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+  font-size: 1.125rem;
+  font-weight: 600;
+  padding: 0.75rem 1.5rem;
+  border-radius: 0.375rem;
+  transition: all 0.3s ease;
+  letter-spacing: 0.3px;
+  
+  &.btn-primary {
+    background-color: #007bff;
+    border-color: #007bff;
+    
+    &:hover {
+      background-color: #0056b3;
+      border-color: #0056b3;
+      transform: translateY(-2px);
+      box-shadow: 0 4px 12px rgba(0, 123, 255, 0.4);
+    }
+  }
+  
+  &.btn-secondary {
+    background-color: #6c757d;
+    border-color: #6c757d;
+    
+    &:hover {
+      background-color: #5a6268;
+      border-color: #5a6268;
+      transform: translateY(-2px);
+      box-shadow: 0 4px 12px rgba(108, 117, 125, 0.4);
+    }
+  }
+}
+
+// All buttons
+.btn {
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+  font-weight: 600;
+  letter-spacing: 0.3px;
+}
+
+// Feature descriptions consistent styling
+.td-box--dark .mb-0 p {
+  font-size: 1rem;
+  line-height: 1.6;
+  color: #f8f9fa;
+}
+
+// Footer styling - Compact single row layout with full-width background
+.td-footer {
+  background-color: #ffffff;
+  border-top: 1px solid #dee2e6;
+  padding: 1rem 0;
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+  margin: 0;
+  
+  // Break out of parent container to achieve full-width background
+  width: 100vw;
+  position: relative;
+  left: 50%;
+  right: 50%;
+  margin-left: -50vw;
+  margin-right: -50vw;
+  
+  .container-fluid {
+    max-width: 100%;
+    padding-left: 1rem;
+    padding-right: 1rem;
+    margin-left: auto;
+    margin-right: auto;
+  }
+  
+  .td-footer__social-icons {
+    display: flex;
+    gap: 1rem;
+    justify-content: center;
+    
+    @media (min-width: 768px) {
+      justify-content: flex-start;
+    }
+  }
+  
+  .td-footer__social-link {
+    color: #6c757d;
+    font-size: 1.5rem;
+    transition: color 0.3s ease, transform 0.3s ease;
+    display: inline-block;
+    
+    &:hover {
+      color: #212529;
+      transform: scale(1.15);
+    }
+  }
+  
+  .td-footer__copyright {
+    font-size: 0.75rem;
+    line-height: 1.5;
+    color: #6c757d;
+    display: block;
+    margin-bottom: 0.5rem;
+    
+    a {
+      color: #007bff;
+      text-decoration: none;
+      
+      &:hover {
+        color: #0056b3;
+        text-decoration: underline;
+      }
+    }
+  }
+  
+  .td-footer__links {
+    font-size: 0.75rem;
+    
+    a {
+      color: #007bff;
+      text-decoration: none;
+      white-space: nowrap;
+      
+      &:hover {
+        color: #0056b3;
+        text-decoration: underline;
+      }
+    }
+  }
+  
+  // Responsive: stack on mobile
+  @media (max-width: 767px) {
+    .row > div {
+      margin-bottom: 1rem;
+      
+      &:last-child {
+        margin-bottom: 0;
+      }
+    }
+  }
+}
+
+// Keyframe animation for continuous spin
+@keyframes spin-continuous {
+  from {
+    transform: rotate(0deg);
+  }
+  to {
+    transform: rotate(360deg);
+  }
+}
+
+// ASF Feather Logo styling - Smaller with very rapid continuous spin effect
+.asf-feather-logo {
+  max-width: 50px;
+  width: 50px;
+  height: auto;
+  opacity: 0.7;
+  transition: opacity 0.3s ease;
+  
+  &:hover {
+    opacity: 1;
+    animation: spin-continuous 0.2s linear infinite;
+  }
+}
+
+.asf-logo-link {
+  display: inline-block;
+  line-height: 0;
+}
+
+// Prev/Next navigation links styling (td-page-meta is the actual class used)
+.td-page-meta {
+  padding: 2rem 0;
+  border-top: 1px solid rgba(0, 0, 0, 0.1);
+  margin-top: 2rem;
+  
+  nav {
+    display: flex;
+    justify-content: space-between;
+    gap: 1rem;
+    
+    @media (max-width: 768px) {
+      flex-direction: column;
+    }
+  }
+  
+  .pager-btn {
+    font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+    border: 2px solid #dee2e6 !important;
+    color: #343a40 !important;
+    background-color: #ffffff !important;
+    box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.05) !important;
+    transition: all 0.3s ease;
+    text-decoration: none;
+    display: inline-flex;
+    align-items: center;
+    
+    &:hover {
+      background-color: #f8f9fa !important;
+      border-color: #ced4da !important;
+      text-decoration: none !important;
+      transform: translateY(-2px);
+      box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
+    }
+    
+    &:focus {
+      outline: 0 !important;
+      box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5) !important;
+    }
+    
+    @media (max-width: 768px) {
+      width: 100%;
+      justify-content: center;
+    }
+  }
+}
+
+// Legacy support for .td-page-nav if used anywhere
 .td-page-nav {
   // Ensure prev/next links are responsive
   @media (max-width: 768px) {
diff --git a/assets/scss/_variables_project_after_bs.scss 
b/assets/scss/_variables_project_after_bs.scss
index d4b53cdc7..c40f18274 100644
--- a/assets/scss/_variables_project_after_bs.scss
+++ b/assets/scss/_variables_project_after_bs.scss
@@ -28,15 +28,20 @@ ul.dropdown-menu {
 
 /* Pager button explicit neutral styling to avoid theme primary/orange 
overrides */
 .pager-btn {
-  border: 3px solid #dee2e6 !important; /* gray-300 */
+  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif 
!important;
+  border: 2px solid #dee2e6 !important; /* gray-300 */
   color: #343a40 !important;            /* text-dark */
   background-color: #ffffff !important; /* white background */
   box-shadow: 0 .25rem .5rem rgba(0,0,0,.05) !important; /* subtle */
+  transition: all 0.3s ease !important;
+  font-weight: 600 !important;
 }
 .pager-btn:hover {
   background-color: #f8f9fa !important; /* gray-100 */
   border-color: #ced4da !important;      /* gray-400 */
   text-decoration: none !important;
+  transform: translateY(-2px);
+  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
 }
 .pager-btn:focus {
   outline: 0 !important;
diff --git a/content/en/_index.md b/content/en/_index.md
index 5674e62fd..c8ce4703b 100644
--- a/content/en/_index.md
+++ b/content/en/_index.md
@@ -40,7 +40,7 @@ Apache Kafka is an open-source distributed event streaming 
platform used by thou
 {{% blocks/feature icon="fa-solid fa-tower-cell" title="Telecom" %}}
 **8 OUT OF 10**
 {{% /blocks/feature %}}
-{{% blocks/feature icon="fa-solid fa-plane-circle-check" 
title="Transportation" %}}
+{{% blocks/feature icon="fa-solid fa-plane" title="Transportation" %}}
 **8 OUT OF 10**
 {{% /blocks/feature %}}
 {{% blocks/feature icon="fa-solid fa-lightbulb" title="Energy and Utilities" 
%}}
@@ -48,6 +48,16 @@ Apache Kafka is an open-source distributed event streaming 
platform used by thou
 {{% /blocks/feature %}}
 {{< /blocks/section >}}
 
+{{% blocks/lead %}}
+
+Above is a snapshot of the number of top-ten largest companies using Kafka, 
per-industry.
+
+<p class="text-center mt-4">
+  <a href="/testimonials/" class="btn btn-lg btn-primary">See full list <i 
class="fas fa-arrow-alt-circle-right ms-2"></i></a>
+</p>
+
+{{% /blocks/lead %}}
+
 
 {{% blocks/lead %}}
 
diff --git a/content/en/community/apache/_index.md 
b/content/en/community/apache/_index.md
deleted file mode 100644
index 42654dfc7..000000000
--- a/content/en/community/apache/_index.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-title: Apache
-type: docs
-linkTitle: Apache
-# Add blocks of content here to add more sections to the community page
----
\ No newline at end of file
diff --git a/content/en/community/apache/apacheorg.md 
b/content/en/community/apache/apacheorg.md
deleted file mode 100644
index a1d102ec2..000000000
--- a/content/en/community/apache/apacheorg.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: APACHE.ORG
-type: docs
-weight: 6
-manualLink: https://www.apache.org/
-manualLinkTarget: _blank   
-# Add blocks of content here to add more sections to the community page
----
\ No newline at end of file
diff --git a/content/en/community/apache/donate.md 
b/content/en/community/apache/donate.md
deleted file mode 100644
index 9cb2537be..000000000
--- a/content/en/community/apache/donate.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Donate
-type: docs
-weight: 2
-manualLink: https://www.apache.org/foundation/sponsorship.html
-manualLinkTarget: _blank   
-# Add blocks of content here to add more sections to the community page
----
\ No newline at end of file
diff --git a/content/en/community/apache/license.md 
b/content/en/community/apache/license.md
deleted file mode 100644
index 1b5bbdd26..000000000
--- a/content/en/community/apache/license.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: License
-type: docs
-weight: 1
-manualLink: https://www.apache.org/licenses/ 
-manualLinkTarget: _blank   
-# Add blocks of content here to add more sections to the community page
----
\ No newline at end of file
diff --git a/content/en/community/apache/privacy.md 
b/content/en/community/apache/privacy.md
deleted file mode 100644
index 730a632f7..000000000
--- a/content/en/community/apache/privacy.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Privacy
-type: docs
-weight: 5
-manualLink: https://privacy.apache.org/policies/privacy-policy-public.html
-manualLinkTarget: _blank   
-# Add blocks of content here to add more sections to the community page
----
\ No newline at end of file
diff --git a/content/en/community/apache/security.md 
b/content/en/community/apache/security.md
deleted file mode 100644
index 99ad03f3b..000000000
--- a/content/en/community/apache/security.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Security
-type: docs
-weight: 4
-manualLink: https://www.apache.org/security/
-manualLinkTarget: _blank   
-# Add blocks of content here to add more sections to the community page
----
\ No newline at end of file
diff --git a/content/en/community/apache/sponsors.md 
b/content/en/community/apache/sponsors.md
deleted file mode 100644
index a525700af..000000000
--- a/content/en/community/apache/sponsors.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Sponsors
-type: docs
-weight: 3
-manualLink: https://www.apache.org/foundation/sponsors
-manualLinkTarget: _blank   
-# Add blocks of content here to add more sections to the community page
----
\ No newline at end of file
diff --git a/hugo.yaml b/hugo.yaml
index c83e5b6e4..06f9428ae 100644
--- a/hugo.yaml
+++ b/hugo.yaml
@@ -93,16 +93,57 @@ outputs:
 menu:
   main:
     # Point this to the latest documentation version.
-    - name: "Documentation"
-      url: "/41/"
+    # URLs are dynamically constructed in navbar.html using 
params.latest_version
+    - name: "DOCS"
+      url: "{{VERSION}}"
       weight: 20
+    - name: "Getting Started"
+      parent: "DOCS"
+      url: "{{VERSION}}/getting-started/"
+      weight: 21
+    - name: "APIs"
+      parent: "DOCS"
+      url: "{{VERSION}}/apis/"
+      weight: 22
+    - name: "Configuration"
+      parent: "DOCS"
+      url: "{{VERSION}}/configuration/"
+      weight: 23
+    - name: "Design"
+      parent: "DOCS"
+      url: "{{VERSION}}/design/"
+      weight: 24
+    - name: "Implementation"
+      parent: "DOCS"
+      url: "{{VERSION}}/implementation/"
+      weight: 25
+    - name: "Operations"
+      parent: "DOCS"
+      url: "{{VERSION}}/operations/"
+      weight: 26
+    - name: "Security"
+      parent: "DOCS"
+      url: "{{VERSION}}/security/"
+      weight: 27
+    - name: "Kafka Connect"
+      parent: "DOCS"
+      url: "{{VERSION}}/kafka-connect/"
+      weight: 28
+    - name: "Kafka Streams"
+      parent: "DOCS"
+      url: "{{VERSION}}/streams/"
+      weight: 29
     # Add a top level menu pointing to downloads page
-    - name: "Download Kafka"
+    - name: "Download"
       url: "/community/downloads/"
       weight: 50
       # Submenu items
 
 params:
+  # Latest documentation version - UPDATE THIS WHEN RELEASING NEW VERSION
+  latest_version: "41"
+  latest_version_number: "4.1"
+  
   # Favicon configuration
   favicon: /images/apache.png
   
@@ -135,8 +176,11 @@ params:
   # The version number for the version of the docs represented in this doc set.
   # Used in the "version-banner" partial to display a version number for the
   # current doc set.
+  # NOTE: This is automatically set from latest_version_number parameter above
   version: 4.1
   versions:
+    # NOTE: When adding version 42, update params.latest_version to "42" 
+    # and params.latest_version_number to "4.2" at the top
     - version: "4.1"
       url: /41/
     - version: "4.0"
@@ -235,6 +279,7 @@ params:
 
   # A link to latest version of the docs. Used in the "version-banner" partial 
to
   # point people to the main doc site.
+  # NOTE: When updating to version 42, change this to /42/
   url_latest_version: /41/
 
   # Repository configuration (URLs for in-page links to opening issues and 
suggesting changes)
@@ -327,14 +372,16 @@ params:
         desc: Developer mailing list
 
   search:
+    # Indexing directories - latest version is automatically included
+    # by reading params.latest_version in the search index template
     indexing_directories:
-      - "41"
       - "blog"
       - "community"
       - "testimonials"
     exclude_sections:
       - "internal"
     min_word_length: 3
+    # Latest version docs are indexed automatically (see _default/index.json)
 
 module:
   # Uncomment the next line to build and serve using local docsy clone 
declared in the named Hugo workspace:
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html
new file mode 100644
index 000000000..3c845d357
--- /dev/null
+++ b/layouts/partials/footer.html
@@ -0,0 +1,57 @@
+{{ $links := .Site.Params.links }}
+<footer class="td-footer d-print-none">
+  <div class="container-fluid">
+    <div class="row align-items-center py-3">
+      <!-- Social Icons on the Left -->
+      <div class="col-12 col-md-3 text-center text-md-start mb-3 mb-md-0">
+        <div class="td-footer__social-icons">
+          {{ with $links }}
+          {{ with .user }}
+          {{ range . }}
+          <a href="{{ .url }}" target="_blank" rel="noopener" aria-label="{{ 
.name }}" class="td-footer__social-link">
+            <i class="{{ .icon }}"></i>
+          </a>
+          {{ end }}
+          {{ end }}
+          {{ end }}
+          {{ with $links }}
+          {{ with .developer }}
+          {{ range . }}
+          <a href="{{ .url }}" target="_blank" rel="noopener" aria-label="{{ 
.name }}" class="td-footer__social-link">
+            <i class="{{ .icon }}"></i>
+          </a>
+          {{ end }}
+          {{ end }}
+          {{ end }}
+        </div>
+      </div>
+      
+      <!-- Copyright and Links in Center -->
+      <div class="col-12 col-md-6 text-center mb-3 mb-md-0">
+        <div class="td-footer__copyright">
+          The contents of this website are &copy;&nbsp;{{ now.Year 
}}&nbsp;Apache Software Foundation
+          under the terms of the <a 
href="https://www.apache.org/licenses/LICENSE-2.0"; target="_blank" 
rel="noopener">Apache License v2</a>. 
+          Apache Kafka, Kafka, and the Kafka logo are either registered 
trademarks or trademarks of The Apache Software Foundation 
+          in the United States and other countries.
+        </div>
+        
+        <div class="td-footer__links mt-2">
+          <a href="https://www.apache.org/security/"; target="_blank" 
rel="noopener">Security</a> | 
+          <a href="https://www.apache.org/foundation/contributing.html"; 
target="_blank" rel="noopener">Donate</a> | 
+          <a href="https://www.apache.org/foundation/thanks.html"; 
target="_blank" rel="noopener">Thanks</a> | 
+          <a href="https://www.apache.org/events/current-event.html"; 
target="_blank" rel="noopener">Events</a> | 
+          <a href="https://www.apache.org/licenses/"; target="_blank" 
rel="noopener">License</a> | 
+          <a href="{{ .Site.Params.privacy_policy }}" target="_blank" 
rel="noopener">Privacy</a>
+        </div>
+      </div>
+      
+      <!-- ASF Feather Logo on the Right -->
+      <div class="col-12 col-md-3 text-center text-md-end">
+        <a href="https://www.apache.org/"; target="_blank" rel="noopener" 
class="asf-logo-link">
+          <img src="/images/apache.png" alt="Apache Software Foundation" 
class="asf-feather-logo" />
+        </a>
+      </div>
+    </div>
+  </div>
+</footer>
+
diff --git a/layouts/partials/hooks/body-end.html 
b/layouts/partials/hooks/body-end.html
new file mode 100644
index 000000000..818c4f50b
--- /dev/null
+++ b/layouts/partials/hooks/body-end.html
@@ -0,0 +1,5 @@
+<!-- Bootstrap Bundle JS (includes Popper) - Required for collapse 
functionality -->
+<script 
src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js";
 
+        
integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz"
 
+        crossorigin="anonymous"></script>
+
diff --git a/layouts/partials/hooks/head-end.html 
b/layouts/partials/hooks/head-end.html
index 1ab0eb0e1..832907e55 100644
--- a/layouts/partials/hooks/head-end.html
+++ b/layouts/partials/hooks/head-end.html
@@ -1,5 +1,13 @@
+<!-- Google Fonts - Open Sans (matching kafka.apache.org) -->
+<link rel="preconnect" href="https://fonts.googleapis.com";>
+<link rel="preconnect" href="https://fonts.gstatic.com"; crossorigin>
+<link 
href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap";
 rel="stylesheet">
+
 <!-- Additional mobile web app meta tags -->
 <meta name="mobile-web-app-capable" content="yes">
 <meta name="apple-mobile-web-app-capable" content="yes">
 <meta name="apple-mobile-web-app-status-bar-style" content="black">
 
+<!-- Navbar enhancements -->
+<script src="/js/navbar-enhancements.js" defer></script>
+
diff --git a/layouts/partials/navbar.html b/layouts/partials/navbar.html
new file mode 100644
index 000000000..61ca94cf2
--- /dev/null
+++ b/layouts/partials/navbar.html
@@ -0,0 +1,80 @@
+{{ $cover := .HasShortcode "blocks/cover" }}
+<nav class="navbar td-navbar js-navbar-scroll {{ if $cover }} is-dark {{ end 
}}" data-bs-theme="light">
+<div class="container-fluid">
+  <!-- Mobile toggle button (left side on mobile) -->
+  <button class="navbar-toggler order-0 d-lg-none" type="button" 
data-bs-toggle="collapse" data-bs-target="#main_navbar" 
aria-controls="main_navbar" aria-expanded="false" aria-label="Toggle 
navigation">
+    <span class="navbar-toggler-icon"></span>
+  </button>
+  
+  <!-- Brand/Logo (center on mobile, left on desktop) -->
+  <a class="navbar-brand order-1 order-lg-0 mx-auto mx-lg-0" href="{{ 
.Site.Home.RelPermalink }}">
+    <span class="navbar-brand__logo navbar-logo">
+      {{- if .Site.Params.ui.navbar_logo -}}
+        {{ with resources.Get "icons/logo.svg" -}}
+          {{ ( . | minify).Content | safeHTML }}
+        {{- end }}
+      {{- end -}}
+    </span>
+    <span class="navbar-brand__name d-none d-lg-inline">Apache Kafka</span>
+    <span class="navbar-brand__name d-lg-none">kafka</span>
+  </a>
+  
+  <!-- Spacer for mobile to balance layout -->
+  <div class="order-2 d-lg-none" style="width: 48px;"></div>
+  
+  <!-- Collapsible menu -->
+  <div class="collapse navbar-collapse order-3 order-lg-1" id="main_navbar">
+    <ul class="navbar-nav ms-auto">
+      {{ $p := . }}
+      {{ $latestVersion := .Site.Params.latest_version }}
+      {{ range .Site.Menus.main }}
+      {{ $url := replace .URL "{{VERSION}}" (printf "/%s" $latestVersion) }}
+      <li class="nav-item{{ if .HasChildren }} dropdown{{ end }}{{ if 
$p.IsMenuCurrent "main" . }} active{{ end }}">
+        {{ if .HasChildren }}
+          <a class="nav-link dropdown-toggle" href="#" role="button" 
data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ .Name 
}}</a>
+          <ul class="dropdown-menu">
+            {{ range .Children }}
+              {{ $childUrl := replace .URL "{{VERSION}}" (printf "/%s" 
$latestVersion) }}
+              <li><a class="dropdown-item" href="{{ $childUrl }}">{{ .Name 
}}</a></li>
+            {{ end }}
+          </ul>
+        {{ else }}
+          <a class="nav-link" href="{{ $url }}"><span>{{ .Name }}</span></a>
+        {{ end }}
+      </li>
+      {{ end }}
+      
+      {{ if .Site.Params.versions }}
+      <li class="nav-item dropdown">
+        <a class="nav-link dropdown-toggle" href="#" role="button" 
data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ 
.Site.Params.version_menu | default "Releases" }}</a>
+        <ul class="dropdown-menu">
+          {{ $p := . }}
+          {{ range .Site.Params.versions }}
+            <li><a class="dropdown-item{{ if eq .version 
$p.Site.Params.version }} active{{ end }}" href="{{ .url }}">{{ .version 
}}</a></li>
+          {{ end }}
+        </ul>
+      </li>
+      {{ end }}
+
+      <!-- Apache menu item -->
+      <li class="nav-item dropdown">
+        <a class="nav-link dropdown-toggle" href="#" role="button" 
data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Apache</a>
+        <ul class="dropdown-menu">
+          <li><a class="dropdown-item" href="https://www.apache.org/"; 
target="_blank">Apache Software Foundation</a></li>
+          <li><a class="dropdown-item" href="https://www.apache.org/licenses/"; 
target="_blank">License</a></li>
+          <li><a class="dropdown-item" 
href="https://www.apache.org/foundation/sponsorship"; 
target="_blank">Sponsorship</a></li>
+          <li><a class="dropdown-item" 
href="https://www.apache.org/foundation/thanks.html"; 
target="_blank">Thanks</a></li>
+          <li><a class="dropdown-item" href="https://www.apache.org/security/"; 
target="_blank">Security</a></li>
+          <li><a class="dropdown-item" 
href="https://www.apache.org/events/current-event.html"; 
target="_blank">Events</a></li>
+        </ul>
+      </li>
+    </ul>
+  </div>
+  
+  <!-- Search (desktop only) - Far right with gap -->
+  <div class="d-none d-lg-flex order-2 navbar-search">
+    {{ partial "search-input.html" . }}
+  </div>
+</div>
+</nav>
+
diff --git a/static/js/navbar-enhancements.js b/static/js/navbar-enhancements.js
new file mode 100644
index 000000000..755df4839
--- /dev/null
+++ b/static/js/navbar-enhancements.js
@@ -0,0 +1,164 @@
+// Navbar enhancements for Apache Kafka site
+(function() {
+  'use strict';
+  
+  // Wait for DOM to be ready
+  document.addEventListener('DOMContentLoaded', function() {
+    
+    // Add hover support for dropdowns on desktop only
+    function setupDesktopHover() {
+      if (window.innerWidth >= 992) {
+        const dropdowns = document.querySelectorAll('.td-navbar .dropdown');
+        
+        dropdowns.forEach(function(dropdown) {
+          dropdown.addEventListener('mouseenter', function() {
+            const dropdownMenu = this.querySelector('.dropdown-menu');
+            if (dropdownMenu) {
+              dropdownMenu.classList.add('show');
+              this.classList.add('show');
+            }
+          });
+          
+          dropdown.addEventListener('mouseleave', function() {
+            const dropdownMenu = this.querySelector('.dropdown-menu');
+            if (dropdownMenu) {
+              dropdownMenu.classList.remove('show');
+              this.classList.remove('show');
+            }
+          });
+        });
+      }
+    }
+    
+    // Setup mobile dropdown click handling
+    function setupMobileDropdowns() {
+      if (window.innerWidth < 992) {
+        const dropdownToggles = document.querySelectorAll('.td-navbar 
.dropdown-toggle');
+        
+        dropdownToggles.forEach(function(toggle) {
+          toggle.addEventListener('click', function(e) {
+            e.preventDefault();
+            e.stopPropagation();
+            
+            const parent = this.closest('.dropdown');
+            const dropdownMenu = parent.querySelector('.dropdown-menu');
+            
+            // Close other dropdowns
+            document.querySelectorAll('.td-navbar 
.dropdown').forEach(function(otherDropdown) {
+              if (otherDropdown !== parent) {
+                otherDropdown.classList.remove('show');
+                const otherMenu = 
otherDropdown.querySelector('.dropdown-menu');
+                if (otherMenu) {
+                  otherMenu.classList.remove('show');
+                }
+              }
+            });
+            
+            // Toggle current dropdown
+            parent.classList.toggle('show');
+            if (dropdownMenu) {
+              dropdownMenu.classList.toggle('show');
+            }
+          });
+        });
+      }
+    }
+    
+    // Close menu when clicking outside
+    document.addEventListener('click', function(event) {
+      const navbar = document.querySelector('.td-navbar');
+      const navbarToggler = document.querySelector('.navbar-toggler');
+      const navbarCollapse = document.querySelector('#main_navbar');
+      
+      if (navbar && navbarToggler && navbarCollapse) {
+        const isClickInside = navbar.contains(event.target);
+        const isTogglerClick = navbarToggler.contains(event.target);
+        
+        // Close menu if clicking outside (but not on the toggler itself)
+        // The toggler has its own handler that will manage open/close
+        if (!isClickInside && !isTogglerClick && 
navbarCollapse.classList.contains('show')) {
+          navbarCollapse.classList.remove('show');
+          navbarToggler.setAttribute('aria-expanded', 'false');
+          
+          // Close all dropdowns
+          
navbarCollapse.querySelectorAll('.dropdown.show').forEach(function(dropdown) {
+            dropdown.classList.remove('show');
+            const menu = dropdown.querySelector('.dropdown-menu');
+            if (menu) {
+              menu.classList.remove('show');
+            }
+          });
+        }
+      }
+    });
+    
+    // Ensure hamburger toggles the menu properly
+    const navbarToggler = document.querySelector('.navbar-toggler');
+    const navbarCollapse = document.querySelector('#main_navbar');
+    
+    if (navbarToggler && navbarCollapse) {
+      // Remove any existing Bootstrap data-bs-toggle behavior and handle 
manually
+      navbarToggler.removeAttribute('data-bs-toggle');
+      navbarToggler.removeAttribute('data-bs-target');
+      
+      navbarToggler.addEventListener('click', function(e) {
+        e.preventDefault();
+        e.stopPropagation();
+        
+        // Simple toggle without Bootstrap's Collapse API
+        const isExpanded = navbarCollapse.classList.contains('show');
+        
+        if (isExpanded) {
+          // Close menu
+          navbarCollapse.classList.remove('show');
+          this.setAttribute('aria-expanded', 'false');
+          
+          // Close all dropdowns inside
+          
navbarCollapse.querySelectorAll('.dropdown.show').forEach(function(dropdown) {
+            dropdown.classList.remove('show');
+            const menu = dropdown.querySelector('.dropdown-menu');
+            if (menu) {
+              menu.classList.remove('show');
+            }
+          });
+        } else {
+          // Open menu
+          navbarCollapse.classList.add('show');
+          this.setAttribute('aria-expanded', 'true');
+        }
+      });
+    }
+    
+    // Handle window resize
+    let resizeTimer;
+    window.addEventListener('resize', function() {
+      clearTimeout(resizeTimer);
+      resizeTimer = setTimeout(function() {
+        // Close mobile menu on resize to desktop
+        if (window.innerWidth >= 992) {
+          const navbarCollapse = document.querySelector('#main_navbar');
+          if (navbarCollapse && navbarCollapse.classList.contains('show')) {
+            navbarCollapse.classList.remove('show');
+          }
+          // Reset all dropdowns
+          
document.querySelectorAll('.dropdown.show').forEach(function(dropdown) {
+            dropdown.classList.remove('show');
+            const menu = dropdown.querySelector('.dropdown-menu');
+            if (menu) {
+              menu.classList.remove('show');
+            }
+          });
+        }
+        
+        // Reinitialize hover/click handlers based on new screen size
+        setupDesktopHover();
+        setupMobileDropdowns();
+      }, 250);
+    });
+    
+    // Initial setup
+    setupDesktopHover();
+    setupMobileDropdowns();
+  });
+})();
+


Reply via email to