diff --git a/components/hackathon/hackathon-challenge-partners.tsx b/components/hackathon/hackathon-challenge-partners.tsx
index 75e2e53..80bec6b 100644
--- a/components/hackathon/hackathon-challenge-partners.tsx
+++ b/components/hackathon/hackathon-challenge-partners.tsx
@@ -1,5 +1,107 @@
+"use client";
+
+import { useState } from "react";
import Image from "next/image";
-import { challengePartners } from "@/lib/hackathon-2026-data";
+import { ChevronDown, ChevronUp } from "lucide-react";
+import { challengePartners, type ChallengePartner } from "@/lib/hackathon-2026-data";
+
+function ChallengePartnerCard({ partner }: { partner: ChallengePartner }) {
+ const [isOpen, setIsOpen] = useState(false);
+ const hasDetails = Boolean(partner.details || partner.contact);
+
+ const summary = (
+ <>
+
+
+
+
+
+
+ {partner.name}
+
+
{partner.description}
+
+ {hasDetails && (
+
+ {isOpen ? (
+
+ ) : (
+
+ )}
+
+ )}
+
+ >
+ );
+
+ return (
+
+ {hasDetails ? (
+
+ ) : (
+
{summary}
+ )}
+
+ {isOpen && hasDetails && (
+
+ {partner.details && (
+
+ )}
+ {partner.contact && (
+
+
+
+
+ {partner.contact.intro.map((paragraph) => (
+
+ {paragraph}
+
+ ))}
+
+ )}
+
+ )}
+
+ );
+}
export function HackathonChallengePartners() {
return (
@@ -9,28 +111,9 @@ export function HackathonChallengePartners() {
Meet the challenge partners
-
+
{challengePartners.map((partner) => (
-
-
-
-
-
- {partner.name}
-
-
- {partner.description}
-
-
+
))}
diff --git a/components/header.tsx b/components/header.tsx
index 05d3c7e..45558e4 100644
--- a/components/header.tsx
+++ b/components/header.tsx
@@ -4,6 +4,7 @@
import Link from "next/link";
import Image from "next/image";
import { Button } from "@/components/ui/button";
+import { MEMBERSHIP_FORM_URL } from "@/lib/site-links";
import { Menu, X } from "lucide-react";
import { useState } from "react";
@@ -53,7 +54,9 @@ export function Header() {
{/* Mobile Menu Button */}
@@ -81,7 +84,9 @@ export function Header() {
{link.label}
))}
-
+
)}
diff --git a/components/hero-section.tsx b/components/hero-section.tsx
index d6b65aa..60dc1b5 100644
--- a/components/hero-section.tsx
+++ b/components/hero-section.tsx
@@ -1,5 +1,6 @@
import { Linkedin, Instagram } from "lucide-react";
import Image from "next/image";
+import { MEMBERSHIP_FORM_URL } from "@/lib/site-links";
export function HeroSection() {
return (
@@ -21,9 +22,14 @@ export function HeroSection() {
{/* CTA BUTTONS */}
-
+