diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml
index 6d05402e..10c97246 100644
--- a/.gitea/workflows/deploy.yml
+++ b/.gitea/workflows/deploy.yml
@@ -560,6 +560,15 @@ jobs:
GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD || 'klz2026' }}
UMAMI_API_ENDPOINT: ${{ secrets.UMAMI_API_ENDPOINT || vars.UMAMI_API_ENDPOINT || 'https://analytics.infra.mintel.me' }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN || vars.SENTRY_DSN }}
+ - name: 📊 Excel Datasheet Accessibility Check
+ if: always() && steps.deps.outcome == 'success'
+ env:
+ TEST_URL: ${{ needs.prepare.outputs.next_public_url }}
+ run: |
+ echo "Checking if datasheets directory is reachable..."
+ # This checks if the /datasheets/ directory returns a valid response (200, 403, or 404 is technically reachable, but we'd prefer 200/403)
+ # Since the files are in public/datasheets/products/, we check that path.
+ curl -I -s -o /dev/null -w "%{http_code}" "$TEST_URL/datasheets/products/" | grep -E "200|403|404"
- name: 📝 E2E Form Submission Test
if: always() && steps.deps.outcome == 'success'
diff --git a/Dockerfile b/Dockerfile
index c5406d8b..0468fdd9 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -48,6 +48,7 @@ ENV RAYON_NUM_THREADS=3
ENV UV_THREADPOOL_SIZE=3
RUN pnpm build
+RUN pnpm run excel:datasheets
# Stage 2: Runner
FROM git.infra.mintel.me/mmintel/runtime:latest AS runner
diff --git a/components/ContactForm.tsx b/components/ContactForm.tsx
index 87c44bdf..bdab4f65 100644
--- a/components/ContactForm.tsx
+++ b/components/ContactForm.tsx
@@ -138,7 +138,11 @@ export default function ContactForm() {