"use client";

import { useState, useEffect } from 'react'
import Link from 'next/link'
import Image from 'next/image'
import { Syne } from 'next/font/google'
import { ArrowRight, ArrowUpRight, Sun, Moon, Menu, X } from 'lucide-react'

const syne = Syne({ subsets: ['latin'], weight: ['400', '500', '600', '700', '800'] })

const FEATURES = [
  {
    num: '01',
    title: 'Mitgliederverwaltung',
    desc: 'Digitales CRM für alle Mitgliedsdaten. Kontakte, Statushistorie und Dokumentenablage — sicher in der Cloud, immer aktuell.',
    tags: ['Cloud CRM', 'Aktenführung', 'Einladungsmanagement'],
  },
  {
    num: '02',
    title: 'Push-News & Kommunikation',
    desc: 'Statt ungeöffneter E-Mails: direkte Push-Benachrichtigungen mit hoher Erreichbarkeit. Sofort, zuverlässig und datenschutzorientiert konfigurierbar.',
    tags: ['Push-Notifications', 'News-Feed', 'Direktkommunikation'],
  },
  {
    num: '03',
    title: 'Event- und Terminmanagement',
    desc: 'Veranstaltungen anlegen, kommunizieren und RSVPs digital einsammeln. Keine manuellen Listen, kein Nachfragen — alles läuft automatisch.',
    tags: ['Terminübersicht', '1-Klick RSVP', 'Kalender-Export'],
  },
  {
    num: '04',
    title: 'Lehrlingsbörse & Stellenmarkt',
    desc: 'Nachwuchs finden, bevor andere ihn sehen. Integrierter Marktplatz für Ausbildungsstellen und Fachkräfte direkt in der App.',
    tags: ['Lehrlingsbörse', 'Stellenmarkt', 'Lokale Reichweite'],
  },
]

const STATS = [
  { num: 'Bis zu 10 Std.', label: 'Zeitersparnis je nach Prozess' },
  { num: 'Echtzeit', label: 'Kommunikation' },
  { num: 'Cloud', label: 'Sicher konzipiert & ueberall nutzbar' },
  { num: 'AVV', label: 'Art.-28-Vertrag vor Go-Live' },
]

const CONTACT_EMAIL = 'johannestils@aol.com'
const CONTACT_SUBJECT = 'Anfrage InnungsApp PRO'
const CONTACT_WEBMAIL_HREF = `https://mail.google.com/mail/?view=cm&fs=1&to=${encodeURIComponent(CONTACT_EMAIL)}&su=${encodeURIComponent(CONTACT_SUBJECT)}`
const COOKIE_CONSENT_KEY = 'innungsapp_cookie_consent'
const COOKIE_CONSENT_EVENT = 'innungsapp:cookie-consent-granted'
const COOKIE_CONSENT_TIMESTAMP_KEY = 'innungsapp_cookie_consent_timestamp'
const COOKIE_CONSENT_SOURCE_KEY = 'innungsapp_cookie_consent_source'
type CookieConsentState = 'loading' | 'pending' | 'accepted' | 'declined'

export default function RootPage() {
  const [theme, setTheme] = useState('theme-light');
  const [mounted, setMounted] = useState(false);
  const [openFaq, setOpenFaq] = useState<number | null>(null);
  const [cookieConsent, setCookieConsent] = useState<CookieConsentState>('loading')
  const [showMailFallback, setShowMailFallback] = useState(false)
  const [mobileMenuOpen, setMobileMenuOpen] = useState(false)

  useEffect(() => {
    setMounted(true);
    const savedTheme = localStorage.getItem('theme');
    if (savedTheme) {
      setTheme(savedTheme);
    }
    const savedConsent = window.localStorage.getItem(COOKIE_CONSENT_KEY)
    if (savedConsent === 'accepted' || savedConsent === 'declined') {
      setCookieConsent(savedConsent)
    } else {
      setCookieConsent('pending')
    }
  }, []);

  useEffect(() => {
    if (cookieConsent === 'accepted') {
      window.posthog?.opt_in_capturing?.()
      const sendPageView = () => {
        window.posthog?.capture?.('landing_page_viewed', {
          path: window.location.pathname,
        })
      }
      if (window.posthog?.capture) {
        sendPageView()
      } else {
        window.dispatchEvent(new Event(COOKIE_CONSENT_EVENT))
        window.setTimeout(sendPageView, 150)
      }
    }
    if (cookieConsent === 'declined') {
      window.posthog?.opt_out_capturing?.()
    }
  }, [cookieConsent])

  const setCookieChoice = (choice: Exclude<CookieConsentState, 'pending' | 'loading'>) => {
    window.localStorage.setItem(COOKIE_CONSENT_KEY, choice)
    window.localStorage.setItem(COOKIE_CONSENT_TIMESTAMP_KEY, new Date().toISOString())
    window.localStorage.setItem(COOKIE_CONSENT_SOURCE_KEY, 'landing_banner')
    setCookieConsent(choice)
    if (choice === 'accepted') {
      window.dispatchEvent(new Event(COOKIE_CONSENT_EVENT))
    }
  }

  const openCookieSettings = () => {
    window.localStorage.removeItem(COOKIE_CONSENT_KEY)
    setCookieConsent('pending')
  }

  const trackLandingCta = (placement: string) => {
    if (cookieConsent !== 'accepted') return
    const sendCta = () => {
      window.posthog?.capture?.('landing_cta_clicked', {
        placement,
        target: 'contact_email',
      })
    }
    if (window.posthog?.capture) {
      sendCta()
    } else {
      window.dispatchEvent(new Event(COOKIE_CONSENT_EVENT))
      window.setTimeout(sendCta, 150)
    }
  }

  const handleContactCtaClick = (placement: string) => {
    trackLandingCta(placement)
    setShowMailFallback(true)
  }

  const toggleTheme = () => {
    const newTheme = theme === 'theme-dark' ? 'theme-light' : 'theme-dark';
    setTheme(newTheme);
    localStorage.setItem('theme', newTheme);
  };

  const toggleFaq = (index: number) => {
    setOpenFaq(openFaq === index ? null : index);
  }

  const schemaOrg = {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "SoftwareApplication",
        "name": "InnungsApp PRO",
        "applicationCategory": "BusinessApplication",
        "operatingSystem": "Web, iOS, Android",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "EUR"
        },
        "description": "Cloudbasierte Verwaltungssoftware für Handwerksinnungen mit Mitgliederverwaltung, Kommunikation und Terminmanagement."
      },
      {
        "@type": "FAQPage",
        "mainEntity": [
          {
            "@type": "Question",
            "name": "Wie lange dauert der Wechsel zur InnungsApp PRO?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Unser Onboarding-Team unterstützt Sie beim gesamten Prozess und richtet Ihre Umgebung schnellstmöglich ein. Sie können zeitnah starten."
            }
          },
          {
            "@type": "Question",
            "name": "Ist die Plattform DSGVO-konform?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Wir arbeiten mit DSGVO-orientierten Prozessen. Vor Go-Live wird ein AV-Vertrag geschlossen; bei Datenverarbeitung in den USA nutzen wir SCC, dokumentieren TIA und setzen zusaetzliche Schutzmassnahmen ein. Die konkrete Compliance haengt von Konfiguration und Vertraegen ab."
            }
          },
          {
            "@type": "Question",
            "name": "Brauchen meine Mitglieder eine Schulung?",
            "acceptedAnswer": {
              "@type": "Answer",
              "text": "Nein, die App ist so intuitiv wie WhatsApp – Ihre Mitglieder können sie ohne Einarbeitung direkt nutzen."
            }
          }
        ]
      }
    ]
  };

  return (
    <>
      <script
        type="application/ld+json"
        dangerouslySetInnerHTML={{ __html: JSON.stringify(schemaOrg) }}
      />
      <style>{`
        .theme-light {
          --bg: #FAFAFA;
          --nav-bg: rgba(250, 250, 250, 0.85);
          --ink: #111111;
          --ink-muted: rgba(17, 17, 17, 0.6);
          --ink-faint: rgba(17, 17, 17, 0.1);
          --gold: #C9973A;
          --gold-light: #B8862D;
          --gold-faint: rgba(201, 151, 58, 0.08); /* Subtle gold background for badges/blobs */
          --card-bg: rgba(255, 255, 255, 0.6);
          --glass-border: rgba(17, 17, 17, 0.05);
        }

        .theme-dark {
          --bg: #0C0B09;
          --nav-bg: rgba(12, 11, 9, 0.85);
          --ink: #EAE6DA;
          --ink-muted: rgba(234,230,218,0.45);
          --ink-faint: rgba(234,230,218,0.12);
          --gold: #C9973A;
          --gold-light: #DFB25C;
          --gold-faint: rgba(201, 151, 58, 0.15);
          --card-bg: rgba(20, 19, 17, 0.4);
          --glass-border: rgba(234,230,218,0.05);
        }

        body { background: var(--bg); }

        .page {
          background: var(--bg); color: var(--ink); min-height: 100vh;
          background-image:
            radial-gradient(circle at 15% 50%, var(--gold-faint), transparent 25%),
            radial-gradient(circle at 85% 30%, var(--gold-faint), transparent 25%);
          transition: background 0.3s, color 0.3s;
          overflow-x: hidden;
        }

        /* Nav */
        .nav {
          position: fixed; top: 0; left: 0; right: 0; z-index: 50;
          background: var(--nav-bg);
          backdrop-filter: blur(16px);
          -webkit-backdrop-filter: blur(16px);
          border-bottom: 1px solid var(--ink-faint);
          height: 64px;
          display: flex; align-items: center;
        }
        .nav-inner {
          max-width: 1280px; margin: 0 auto; padding: 0 32px;
          display: flex; align-items: center; justify-content: space-between;
          width: 100%;
        }
        .logo { font-weight: 800; font-size: 1.125rem; letter-spacing: -0.02em; display: flex; align-items: center; }
        .logo-accent { color: var(--gold); }
        .logo-pro {
          font-size: 0.65rem;
          background: var(--gold-faint);
          color: var(--gold);
          padding: 3px 6px;
          border-radius: 4px;
          margin-left: 8px;
          letter-spacing: 0.05em;
          text-transform: uppercase;
        }
        .nav-links { display: flex; align-items: center; gap: 32px; }
        .nav-link {
          font-size: 0.875rem; color: var(--ink-muted);
          text-decoration: none; transition: color 0.15s;
          font-weight: 400;
        }
        .nav-link:hover { color: var(--ink); }
        .btn-primary {
          background: var(--gold); color: var(--bg);
          font-weight: 600; font-size: 0.875rem;
          padding: 10px 22px;
          display: inline-flex; align-items: center; gap: 6px;
          text-decoration: none;
          transition: background 0.15s, transform 0.1s;
          letter-spacing: -0.01em;
        }
        .btn-primary:hover { background: var(--gold-light); }

        /* Hero */
        .hero {
          max-width: 1280px; margin: 0 auto; padding: 160px 32px 96px;
        }
        .eyebrow {
          font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase;
          color: var(--gold); margin-bottom: 32px; font-weight: 500;
        }
        .hero-h1 {
          font-weight: 800; font-size: clamp(1.5rem, 8vw, 7.5rem);
          line-height: 0.92; letter-spacing: -0.04em;
          margin: 0 0 48px; color: var(--ink);
        }
        @media (max-width: 767px) {
          .hero-h1 { word-wrap: break-word; overflow-wrap: break-word; hyphens: auto; }
        }
        .hero-h1 em { color: var(--gold); font-style: normal; }

        .hero-body {
          display: flex; flex-direction: column; gap: 40px;
        }
        @media (min-width: 640px) {
          .hero-body { flex-direction: row; align-items: flex-start; gap: 64px; }
        }
        .hero-desc {
          max-width: 440px; color: var(--ink-muted);
          font-size: 1.0625rem; line-height: 1.7;
          font-family: 'Georgia', serif;
        }
        .hero-image-wrapper {
          flex: 1;
          position: relative;
          display: flex;
          justify-content: center;
          align-items: center;
          border-radius: 24px;
          overflow: hidden;
          box-shadow: 0 24px 80px rgba(0,0,0,0.15);
          border: 1px solid var(--glass-border);
          aspect-ratio: 16/10;
          background: var(--card-bg);
          backdrop-filter: blur(12px);
          -webkit-backdrop-filter: blur(12px);
        }
        .hero-image-wrapper img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          display: block;
        }
        .hero-cta { display: flex; flex-direction: column; gap: 12px; padding-top: 4px; flex-shrink: 0; }
        .btn-ghost {
          border: 1px solid var(--ink-faint); color: var(--ink);
          padding: 10px 22px; font-size: 0.875rem; font-weight: 500;
          display: inline-flex; align-items: center; gap: 6px;
          text-decoration: none; transition: border-color 0.15s, background 0.15s;
          letter-spacing: -0.01em;
        }
        .btn-ghost:hover {
          border-color: var(--ink-muted);
          background: var(--ink-faint);
        }

        /* Stats */
        .stats {
          margin-top: 80px;
          border-top: 1px solid var(--ink-faint);
          display: grid; grid-template-columns: repeat(2, 1fr);
          justify-items: center;
        }
        @media (min-width: 480px) { .stats { grid-template-columns: repeat(2, 1fr); } }
        @media (min-width: 768px) { .stats { grid-template-columns: repeat(4, 1fr); } }
        .stat {
          padding: 28px 24px;
          border-right: 1px solid var(--ink-faint);
          text-align: center;
          width: 100%;
        }
        .stat:last-child { border-right: none; }
        .stat-num {
          font-weight: 800; font-size: clamp(1.5rem, 4vw, 2.25rem);
          color: var(--gold); letter-spacing: -0.03em; line-height: 1;
          margin-bottom: 6px;
        }
        .stat-label { font-size: 0.75rem; color: var(--ink-muted); font-family: 'Georgia', serif; }

        /* Features */
        .features { border-top: 1px solid var(--ink-faint); padding: 96px 0; }
        .features-inner {
          max-width: 1280px; margin: 0 auto; padding: 0 32px;
          display: grid; grid-template-columns: 1fr;
          gap: 64px;
        }
        @media (min-width: 1024px) {
          .features-inner { grid-template-columns: 5fr 7fr; gap: 96px; }
        }
        .features-sticky { }
        @media (min-width: 1024px) {
          .features-sticky { position: sticky; top: 88px; }
        }
        .features-h2 {
          font-weight: 800; font-size: clamp(1.5rem, 7vw, 4rem);
          letter-spacing: -0.04em; line-height: 1.0;
          margin: 24px 0 28px; color: var(--ink);
        }
        @media (max-width: 767px) {
          .features-h2 { word-wrap: break-word; overflow-wrap: break-word; hyphens: auto; }
        }
        .features-sub { color: var(--ink-muted); font-family: 'Georgia', serif; line-height: 1.65; font-size: 0.9375rem; }

        .feature-list { display: flex; flex-direction: column; }
        .feature-item {
          padding: 36px 32px;
          border: 1px solid var(--glass-border);
          background: var(--card-bg);
          backdrop-filter: blur(12px);
          -webkit-backdrop-filter: blur(12px);
          border-radius: 24px;
          display: flex; gap: 28px; align-items: flex-start;
          cursor: default;
          margin-bottom: 24px;
          transition: transform 0.3s, border-color 0.3s, box-shadow 0.3s;
        }
        .feature-item:hover {
          transform: translateY(-4px);
          border-color: var(--ink-faint);
          box-shadow: 0 12px 40px rgba(0,0,0,0.05);
        }
        .feature-num {
          font-weight: 800; font-size: 3.5rem; line-height: 1;
          color: var(--ink-faint); letter-spacing: -0.04em;
          flex-shrink: 0; padding-top: 2px;
          transition: color 0.2s, transform 0.2s;
          user-select: none;
          min-width: 72px;
        }
        .feature-item:hover .feature-num { color: var(--gold); transform: translateX(-4px); }
        .feature-title {
          font-weight: 700; font-size: 1.25rem;
          letter-spacing: -0.02em; margin-bottom: 10px; color: var(--ink);
        }
        .feature-desc { color: var(--ink-muted); font-family: 'Georgia', serif; line-height: 1.65; font-size: 0.9375rem; margin-bottom: 16px; }
        .feature-tags { display: flex; flex-wrap: wrap; gap: 8px; }
        .feature-tag {
          font-size: 0.6875rem; letter-spacing: 0.06em; text-transform: uppercase;
          border: 1px solid var(--ink-faint);
          color: var(--ink-muted);
          padding: 4px 10px;
          font-weight: 500;
        }

        /* Challenges */
        .challenges-section { padding: 96px 0; border-top: 1px solid var(--ink-faint); }
        .challenges-inner { max-width: 1280px; margin: 0 auto; padding: 0 32px; }
        .challenges-grid { display: grid; grid-template-columns: 1fr; gap: 32px; margin-top: 48px; }
        @media (min-width: 768px) { .challenges-grid { grid-template-columns: repeat(3, 1fr); } }
        .challenge-card {
           padding: 32px;
           background: var(--card-bg);
           border: 1px solid rgba(255, 100, 100, 0.15); /* Subtly negative */
           border-radius: 24px;
        }
        .challenge-title { font-weight: 700; font-size: 1.125rem; margin-bottom: 12px; color: var(--ink); }
        .challenge-desc { color: var(--ink-muted); font-size: 0.9375rem; line-height: 1.6; }

        /* Trust & Social Proof */
        .trust-banner {
          padding: 64px 32px;
          text-align: center;
          background: var(--ink-faint);
        }
        .trust-text { font-size: 1.125rem; color: var(--ink); font-style: italic; max-width: 600px; margin: 0 auto 24px; font-family: 'Georgia', serif;}
        .trust-author { font-size: 0.875rem; color: var(--ink-muted); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; }

        /* Comparison */
        .comparison-section { padding: 96px 0; border-top: 1px solid var(--ink-faint); }
        .comparison-inner { max-width: 1280px; margin: 0 auto; padding: 0 32px; }
        .comparison-grid { display: grid; grid-template-columns: 1fr; gap: 32px; margin-top: 48px; }
        @media (min-width: 768px) { .comparison-grid { grid-template-columns: 1fr 1fr; } }
        .comp-card { padding: 40px; border-radius: 24px; }
        .comp-old { background: rgba(220, 50, 50, 0.03); border: 1px solid rgba(220, 50, 50, 0.1); }
        .comp-new { background: var(--gold-faint); border: 1px solid var(--gold); }
        .comp-title { font-weight: 800; font-size: 1.5rem; margin-bottom: 24px; }
        .comp-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 16px; }
        .comp-item { display: flex; gap: 12px; font-size: 0.9375rem; color: var(--ink); }
        .comp-icon-red { color: #dc3232; font-weight: bold; }
        .comp-icon-green { color: var(--gold); font-weight: bold; }

        /* AEO / SEO Block */
        .aeo-section { padding: 96px 0; border-top: 1px solid var(--ink-faint); }
        .aeo-inner { max-width: 800px; margin: 0 auto; padding: 0 32px; }
        .aeo-text {
          color: var(--ink-muted); font-size: 1rem; line-height: 1.8; font-family: 'Georgia', serif;
        }
        @media (max-width: 767px) {
          .aeo-text { word-wrap: break-word; overflow-wrap: break-word; hyphens: auto; }
        }
        .aeo-text p { margin-bottom: 24px; }
        .aeo-text strong { color: var(--ink); font-weight: 600; }

        /* FAQ */
        .faq-section { padding: 96px 0; border-top: 1px solid var(--ink-faint); }
        .faq-inner { max-width: 800px; margin: 0 auto; padding: 0 32px; }
        .faq-item { border-bottom: 1px solid var(--ink-faint); }
        .faq-question {
          width: 100%; text-align: left; padding: 24px 0;
          background: none; border: none; color: var(--ink);
          font-weight: 700; font-size: 1.125rem;
          display: flex; justify-content: space-between; align-items: center;
          cursor: pointer; font-family: inherit;
        }
        .faq-icon {
          flex-shrink: 0; width: 24px; height: 24px;
          border: 1px solid var(--ink-faint); border-radius: 50%;
          display: flex; align-items: center; justify-content: center;
          font-size: 1rem; font-weight: 400; color: var(--gold);
          transition: background 0.15s;
        }
        .faq-answer {
          padding-bottom: 24px; color: var(--ink-muted);
          font-size: 0.9375rem; line-height: 1.6;
          overflow: hidden;
          transition: max-height 0.3s ease;
        }


        /* CTA */
        .cta-section { border-top: 1px solid var(--ink-faint); padding: 96px 0 120px; }
        .cta-inner {
          max-width: 1280px; margin: 0 auto; padding: 0 32px;
          display: flex; flex-direction: column; gap: 48px;
          align-items: flex-start;
        }
        @media (min-width: 768px) {
          .cta-inner { flex-direction: row; align-items: flex-end; justify-content: space-between; }
        }
        .cta-h2 {
          font-weight: 800; font-size: clamp(1.25rem, 6.5vw, 4.5rem);
          letter-spacing: -0.04em; line-height: 1.0; color: var(--ink);
        }
        @media (max-width: 767px) {
          .cta-h2 { word-wrap: break-word; overflow-wrap: break-word; hyphens: auto; }
        }
        .cta-h2 em { color: var(--gold); font-style: normal; }
        .cta-right { display: flex; flex-direction: column; gap: 10px; flex-shrink: 0; }
        .cta-note { font-size: 0.75rem; color: var(--ink-muted); text-align: center; font-family: 'Georgia', serif; }

        .btn-primary-lg {
          background: var(--gold); color: var(--bg);
          font-weight: 700; font-size: 1rem;
          padding: 14px 28px;
          display: inline-flex; align-items: center; gap: 8px;
          text-decoration: none;
          transition: background 0.15s;
          letter-spacing: -0.02em;
          white-space: nowrap;
        }
        .btn-primary-lg:hover { background: var(--gold-light); }

        /* Footer */
        .footer {
          border-top: 1px solid var(--ink-faint);
          padding: 36px 0;
        }
        .footer-inner {
          max-width: 1280px; margin: 0 auto; padding: 0 32px;
          display: flex; flex-direction: column; align-items: center; gap: 20px;
        }
        @media (min-width: 768px) {
          .footer-inner { flex-direction: row; justify-content: space-between; }
        }
        .footer-logo { font-weight: 800; font-size: 1.0625rem; letter-spacing: -0.02em; }
        .footer-copy { font-size: 0.75rem; color: var(--ink-muted); font-family: 'Georgia', serif; }
        .footer-links { display: flex; gap: 24px; }
        .footer-link {
          font-size: 0.8125rem; color: var(--ink-muted);
          text-decoration: none; transition: color 0.15s;
          background: none;
          border: none;
          padding: 0;
          cursor: pointer;
          font-family: inherit;
        }
        .footer-link:hover { color: var(--ink); }

        .mail-fallback {
          font-size: 0.75rem;
          color: var(--ink-muted);
          text-align: center;
          font-family: 'Georgia', serif;
        }
        .mail-fallback-link {
          color: var(--gold);
          text-decoration: none;
          border-bottom: 1px solid var(--gold);
        }
        .mail-fallback-row {
          display: inline-flex;
          gap: 10px;
          flex-wrap: wrap;
          align-items: center;
          justify-content: center;
          margin-top: 8px;
        }

        .cookie-banner {
          position: fixed;
          left: 16px;
          right: 16px;
          bottom: 16px;
          z-index: 60;
          border: 1px solid var(--ink-faint);
          background: var(--nav-bg);
          backdrop-filter: blur(16px);
          -webkit-backdrop-filter: blur(16px);
          border-radius: 18px;
          padding: 16px;
          box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18);
        }
        .cookie-banner-inner {
          max-width: 1100px;
          margin: 0 auto;
          display: flex;
          gap: 16px;
          align-items: center;
          justify-content: space-between;
          flex-wrap: wrap;
        }
        .cookie-banner-text {
          color: var(--ink-muted);
          font-size: 0.875rem;
          line-height: 1.55;
          max-width: 760px;
          font-family: 'Georgia', serif;
        }
        .cookie-banner-link {
          color: var(--gold);
          text-decoration: none;
          border-bottom: 1px solid var(--gold);
        }
        .cookie-banner-actions {
          display: flex;
          gap: 10px;
          flex-wrap: wrap;
        }
        .cookie-btn {
          border-radius: 10px;
          padding: 10px 14px;
          font-size: 0.8125rem;
          cursor: pointer;
          border: 1px solid var(--ink-faint);
          background: transparent;
          color: var(--ink);
        }
        .cookie-btn-primary {
          background: var(--gold);
          color: var(--bg);
          border-color: var(--gold);
          font-weight: 700;
        }

        /* Horizontal rule decoration */
        .section-marker {
          font-size: 0.6875rem; letter-spacing: 0.14em; text-transform: uppercase;
          color: var(--gold); font-weight: 500; margin-bottom: 20px;
        }

        /* Mobile Navigation */
        .nav-mobile-toggle { display: none; }
        @media (max-width: 767px) {
          .nav-mobile-toggle { display: flex; align-items: center; cursor: pointer; }
          .nav-menu-btn {
            background: none;
            border: none;
            cursor: pointer;
            color: var(--ink);
            padding: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
          }
          .nav-links {
            display: none;
            position: fixed;
            top: 64px;
            left: 0;
            right: 0;
            background: var(--bg);
            border-bottom: 1px solid var(--ink-faint);
            padding: 24px 32px;
            flex-direction: column;
            gap: 12px;
            z-index: 40;
          }
          .nav-links-mobile-open { display: flex !important; }
          .nav-link { display: block; }
        }

        /* Improved Mobile Responsiveness */
        @media (max-width: 480px) {
          .nav-inner { padding: 0 12px; }
          .hero { padding: 100px 12px 40px; }
          .hero-body { gap: 20px; }
          .hero-image-wrapper { max-height: 400px; aspect-ratio: 1; }
          .stat { padding: 16px 12px; }
          .stat-label { font-size: 0.7rem; }
          .challenges-section { padding: 40px 0; }
          .challenges-inner { padding: 0 12px; }
          .challenges-grid { gap: 16px; }
          .challenge-card { padding: 16px; }
          .challenge-title { font-size: 1rem; }
          .features { padding: 40px 0; }
          .features-inner { padding: 0 12px; gap: 24px; }
          .feature-item { padding: 16px 12px; gap: 12px; }
          .feature-num { font-size: 1.5rem; }
          .feature-title { font-size: 1rem; }
          .feature-desc { font-size: 0.875rem; }
          .comparison-section { padding: 40px 0; }
          .comparison-inner { padding: 0 12px; }
          .comp-card { padding: 16px; }
          .comp-title { font-size: 1.125rem; }
          .cta-section { padding: 40px 0 60px; }
          .cta-inner { padding: 0 12px; }
          .aeo-section { padding: 40px 0; }
          .aeo-inner { padding: 0 12px; }
          .aeo-text { font-size: 0.9375rem; }
          .faq-section { padding: 40px 0; }
          .faq-inner { padding: 0 12px; }
          .faq-question { font-size: 1rem; padding: 16px 0; }
          .footer { padding: 20px 0; }
          .footer-inner { padding: 0 12px; }
        }

        @media (max-width: 639px) {
          .nav-inner { padding: 0 16px; }
          .hero { padding: 120px 16px 60px; }
          .hero-body { gap: 24px; }
          .hero-image-wrapper { aspect-ratio: 1; }
          .stats { grid-template-columns: repeat(2, 1fr); margin-top: 60px; }
          .stat { padding: 20px 16px; border-right: none; border-bottom: 1px solid var(--ink-faint); }
          .stat:nth-child(2n) { border-right: 1px solid var(--ink-faint); }
          .stat:nth-last-child(-n+2) { border-bottom: none; }
          .challenges-section { padding: 60px 0; }
          .challenges-inner { padding: 0 16px; }
          .challenges-grid { gap: 20px; }
          .challenge-card { padding: 20px; }
          .features { padding: 60px 0; }
          .features-inner { padding: 0 16px; gap: 40px; }
          .feature-item { padding: 20px 16px; gap: 16px; flex-direction: column; }
          .feature-num { font-size: 2rem; min-width: auto; }
          .comparison-section { padding: 60px 0; }
          .comparison-inner { padding: 0 16px; }
          .comp-card { padding: 20px; }
          .cta-section { padding: 60px 0 80px; }
          .cta-inner { padding: 0 16px; }
          .aeo-section { padding: 60px 0; }
          .aeo-inner { padding: 0 16px; }
          .faq-section { padding: 60px 0; }
          .faq-inner { padding: 0 16px; }
          .footer { padding: 24px 0; }
          .footer-inner { padding: 0 16px; }
        }
      `}</style>

      <div className={`page ${syne.className} ${theme}`}>
        {/* Nav */}
        <nav className="nav">
          <div className="nav-inner">
            <div className="logo">
              Innungs<span className="logo-accent">App</span> <span className="logo-pro">PRO</span>
            </div>
            <div className="nav-mobile-toggle">
              <button
                className="nav-menu-btn"
                onClick={() => setMobileMenuOpen(!mobileMenuOpen)}
                aria-label="Navigation toggle"
              >
                {mobileMenuOpen ? <X size={24} /> : <Menu size={24} />}
              </button>
            </div>
            <div className={`nav-links ${mobileMenuOpen ? 'nav-links-mobile-open' : ''}`}>
              <a href="#leistungen" className="nav-link" onClick={() => setMobileMenuOpen(false)}>Leistungen</a>

              <button
                onClick={toggleTheme}
                style={{ background: 'none', border: 'none', cursor: 'pointer', padding: '4px', display: 'flex', alignItems: 'center', color: 'var(--ink-muted)' }}
                aria-label="Toggle theme"
                title={theme === 'theme-dark' ? 'Light Mode' : 'Dark Mode'}
              >
                {theme === 'theme-dark' ? <Sun size={18} /> : <Moon size={18} />}
              </button>

              <Link href="/login" className="nav-link" onClick={() => setMobileMenuOpen(false)}>Login</Link>
              <a
                href={CONTACT_WEBMAIL_HREF}
                className="btn-primary"
                onClick={() => {
                  handleContactCtaClick('nav')
                  setMobileMenuOpen(false)
                }}
                target="_blank"
                rel="noreferrer"
              >
                Team kontaktieren <ArrowRight size={13} />
              </a>
            </div>
          </div>
        </nav>

        <main>
          {/* Hero */}
          <section className="hero">
            <div className="eyebrow">Für Handwerksinnungen in Deutschland</div>
            <h1 className="hero-h1">
              Weniger Verwaltung.<br />
              <em>Mehr Leben.</em><br />
              <span style={{ fontSize: 'clamp(1.5rem, 3vw, 2.5rem)', fontWeight: 600, color: 'var(--ink-muted)', letterSpacing: '-0.02em', display: 'block', marginTop: '16px' }}>Die All-in-One Software für die moderne Handwerksinnung.</span>
            </h1>

            <div className="hero-body">
              <div style={{ flex: 1 }}>
                <p className="hero-desc" style={{ fontWeight: 600, color: 'var(--ink)', marginBottom: '16px' }}>
                  Schluss mit Zettelwirtschaft, Excel-Chaos und ungelesenen E-Mails.
                </p>
                <p className="hero-desc">
                  Ihre Mitgliederverwaltung, Push-News und Lehrstellenbörse — gebündelt in einer sicheren Cloud-Plattform, die Ihre Prozesse automatisiert und den Innungsalltag vereinfacht.
                </p>
                <div className="hero-cta" style={{ marginTop: '32px', maxWidth: '300px' }}>
                  <a
                    href={CONTACT_WEBMAIL_HREF}
                    className="btn-primary-lg"
                    style={{ justifyContent: 'center' }}
                    onClick={() => handleContactCtaClick('hero')}
                    target="_blank"
                    rel="noreferrer"
                  >
                    Team kontaktieren <ArrowRight size={16} />
                  </a>
                  <div style={{ fontSize: '0.75rem', color: 'var(--ink-muted)', textAlign: 'center', marginTop: '8px' }}>
                    Individuelle Beratung. Keine Vertragsbindung.
                  </div>
                  {showMailFallback && (
                    <div className="mail-fallback">
                      Kein Mailprogramm? Schreiben Sie direkt an{' '}
                      <a className="mail-fallback-link" href={`mailto:${CONTACT_EMAIL}`}>
                        {CONTACT_EMAIL}
                      </a>
                      .
                      <div className="mail-fallback-row">
                        <a
                          className="mail-fallback-link"
                          href={CONTACT_WEBMAIL_HREF}
                          target="_blank"
                          rel="noreferrer"
                        >
                          In Webmail öffnen
                        </a>
                      </div>
                    </div>
                  )}
                </div>
              </div>

              <div className="hero-image-wrapper">
                <Image
                  src="/mobile-mockup.png"
                  alt="InnungsApp PRO Mobile Interface"
                  width={400}
                  height={800}
                  priority
                  style={{
                    width: '100%',
                    height: 'auto',
                    objectFit: 'contain'
                  }}
                />
              </div>
            </div>

            {/* Stats */}
            <div className="stats">
              {STATS.map((s) => (
                <div key={s.label} className="stat">
                  <div className="stat-num">{s.num}</div>
                  <div className="stat-label">{s.label}</div>
                </div>
              ))}
            </div>
            <p className="hero-desc" style={{ marginTop: '16px', fontSize: '0.85rem' }}>
              * Angaben zur Zeitersparnis sind Erfahrungswerte und hängen von Ausgangsprozess, Datengrundlage und Nutzungsumfang ab.
            </p>
          </section>



          {/* Challenges / Pain Points */}
          <section className="challenges-section">
            <div className="challenges-inner">
              <div className="section-marker">Herausforderungen</div>
              <h2 className="cta-h2">Kennen Sie diese Probleme<br />im <em>Innungsalltag?</em></h2>
              <div className="challenges-grid">
                <div className="challenge-card">
                  <h3 className="challenge-title">Geringe Erreichbarkeit</h3>
                  <p className="challenge-desc">Wichtige E-Mails landen im Spam-Ordner oder werden überlesen. Informationen kommen bei den Mitgliedern nicht rechtzeitig an.</p>
                </div>
                <div className="challenge-card">
                  <h3 className="challenge-title">Zettelwirtschaft</h3>
                  <p className="challenge-desc">Mitgliedsdaten sind über verschiedene Excel-Listen, Ordner und lokale Festplatten verstreut. Die Datenpflege kostet massiv Zeit.</p>
                </div>
                <div className="challenge-card">
                  <h3 className="challenge-title">Nachwuchsmangel</h3>
                  <p className="challenge-desc">Es wird immer schwieriger, junge Talente für das Handwerk zu begeistern und freie Ausbildungsplätze erfolgreich zu besetzen.</p>
                </div>
              </div>
            </div>
          </section>

          {/* Features */}
          <section id="leistungen" className="features">
            <div className="features-inner">
              <div className="features-sticky">
                <div className="section-marker">Leistungen</div>
                <h2 className="features-h2">
                  Alles,<br />was Ihre<br />Innung<br />braucht.
                </h2>
                <p className="features-sub">
                  Kein Sammelsurium aus Insellösungen. Eine durchdachte Plattform für die moderne Handwerksinnung — von der Verwaltung bis zur Nachwuchsgewinnung.
                </p>
              </div>

              <div className="feature-list">
                {FEATURES.map((f) => (
                  <div key={f.num} className="feature-item">
                    <div className="feature-num">{f.num}</div>
                    <div>
                      <h3 className="feature-title">{f.title}</h3>
                      <p className="feature-desc">{f.desc}</p>
                      <div className="feature-tags">
                        {f.tags.map((t) => (
                          <span key={t} className="feature-tag">{t}</span>
                        ))}
                      </div>
                    </div>
                  </div>
                ))}
              </div>
            </div>
          </section>

          {/* Gegenüberstellung / Comparison */}
          <section className="comparison-section">
            <div className="comparison-inner">
              <div className="section-marker" style={{ textAlign: 'center' }}>Der Vergleich</div>
              <h2 className="cta-h2" style={{ textAlign: 'center' }}>Warum <em>InnungsApp PRO?</em></h2>
              <div className="comparison-grid">
                <div className="comp-card comp-old">
                  <h3 className="comp-title" style={{ color: '#dc3232' }}>Der alte Weg</h3>
                  <ul className="comp-list">
                    <li className="comp-item"><span className="comp-icon-red">✕</span> Verteilte Excel-Listen und Aktenordner</li>
                    <li className="comp-item"><span className="comp-icon-red">✕</span> Wichtige E-Mails verstauben ungelesen</li>
                    <li className="comp-item"><span className="comp-icon-red">✕</span> Manueller Abgleich von Zu- und Absagen</li>
                    <li className="comp-item"><span className="comp-icon-red">✕</span> Keine Sichtbarkeit für junge Talente</li>
                    <li className="comp-item"><span className="comp-icon-red">✕</span> Hoher Frust bei der Verwaltung</li>
                  </ul>
                </div>
                <div className="comp-card comp-new">
                  <h3 className="comp-title" style={{ color: 'var(--gold)' }}>Der InnungsApp Weg</h3>
                  <ul className="comp-list">
                    <li className="comp-item"><span className="comp-icon-green">✓</span> Digitales Cloud-CRM, überall abrufbar</li>
                    <li className="comp-item"><span className="comp-icon-green">✓</span> Push-Nachrichten in Echtzeit</li>
                    <li className="comp-item"><span className="comp-icon-green">✓</span> Automatisierte 1-Klick Event-Zusagen</li>
                    <li className="comp-item"><span className="comp-icon-green">✓</span> Integrierte, lokale Lehrlingsbörse</li>
                    <li className="comp-item"><span className="comp-icon-green">✓</span> Bis zu 10 Stunden Zeitersparnis je nach Prozess</li>
                  </ul>
                </div>
              </div>
            </div>
          </section>

          {/* AEO / GEO Content Block */}
          <section className="aeo-section">
            <div className="aeo-inner" style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', textAlign: 'center' }}>
              <div className="section-marker" style={{ justifyContent: 'center' }}>Über unsere Plattform</div>
              <h2 className="cta-h2" style={{ marginBottom: '32px', fontSize: 'clamp(1.25rem, 4vw, 2.5rem)', lineHeight: 1.2 }}>
                <span style={{ display: 'block' }}>Die smarte Lösung</span>
                <span style={{ display: 'block' }}>für moderne</span>
                <span style={{ display: 'block' }}>Handwerksorganisationen</span>
              </h2>
              <div className="aeo-text">
                <p>
                  <strong>InnungsApp PRO</strong> ist eine cloudbasierte Verwaltungssoftware, die speziell auf die Bedürfnisse von <strong>Handwerksinnungen in Deutschland</strong> zugeschnitten ist. Die Plattform bündelt Mitgliederverwaltung, Kommunikation und Eventmanagement in einer zentralen Oberfläche.
                </p>
                <p>
                  Je nach bestehender Prozesslandschaft ist eine Reduktion des administrativen Aufwands um <strong>bis zu 10 Stunden pro Woche</strong> möglich. Statt ineffizienter E-Mail-Verteiler nutzt die Plattform Push-Technologie für schnelle Zustellung und eine bessere Erreichbarkeit in der Praxis.
                </p>
                <p>
                  Teile der Infrastruktur laufen auf Servern in Texas (USA). Für Drittlandtransfers werden EU-Standardvertragsklauseln (SCC), dokumentierte Transfer Impact Assessments (TIA) und zusätzliche Schutzmaßnahmen eingesetzt. Vor Produktivbetrieb wird mit jeder Innung ein AV-Vertrag nach Art. 28 DSGVO geschlossen.
                </p>
              </div>
            </div>
          </section>

          {/* FAQ Section */}
          <section className="faq-section">
            <div className="faq-inner">
              <div className="section-marker">FAQ</div>
              <h2 className="cta-h2" style={{ marginBottom: '48px' }}>Häufige <em>Fragen</em></h2>

              {[
                {
                  q: 'Wie schnell sind wir startklar?',
                  a: 'In der Regel innerhalb von 1–3 Werktagen. Unser Onboarding-Team importiert Ihre bestehenden Mitgliederdaten (aus Excel oder CSV), richtet Ihre Innung ein und begleitet Sie beim ersten Login. Sie müssen nichts technisch einrichten.',
                },
                {
                  q: 'Ist die Plattform DSGVO-konform?',
                  a: 'Wir arbeiten mit DSGVO-orientierten Prozessen. Vor Go-Live wird ein AV-Vertrag (Art. 28 DSGVO) geschlossen, TOMs sind dokumentiert, und bei Datenverarbeitung in den USA nutzen wir SCC plus Transfer-Folgenabschaetzung (TIA) und zusaetzliche Schutzmassnahmen. Die konkrete Compliance haengt von der gewaehlten Konfiguration und den vertraglichen Einstellungen der Innung ab.',
                },
                {
                  q: 'Können meine Mitglieder die App sofort benutzen?',
                  a: 'Ja — ohne App-Store-Konto und ohne Schulung. Mitglieder erhalten eine E-Mail-Einladung, klicken den Link und sind direkt drin. Die Oberfläche ist so einfach wie WhatsApp. Wer will, kann zusätzlich die native iOS/Android App installieren.',
                },
                {
                  q: 'Was kostet InnungsApp PRO und gibt es Vertragsbindung?',
                  a: 'Die Kosten richten sich nach der Größe Ihrer Innung (Anzahl Mitglieder). Es gibt keine langfristige Vertragsbindung — Sie können monatlich kündigen. Kontaktieren Sie uns für ein individuelles Angebot. Pilotinnungen profitieren von besonders günstigen Konditionen.',
                },
                {
                  q: 'Können mehrere Innungen oder ein Verband die Plattform nutzen?',
                  a: 'Ja. Die Plattform ist mandantenfähig — jede Innung hat ihren eigenen, vollständig getrennten Bereich. Verbände können mehrere angeschlossene Innungen zentral verwalten. Daten und Kommunikation bleiben dabei immer sauber getrennt.',
                },
                {
                  q: 'Wie funktionieren Push-Benachrichtigungen?',
                  a: 'Wenn Sie als Admin eine News veröffentlichen, erhalten aktive Mitglieder sofort eine Push-Nachricht auf ihr Smartphone — auch wenn die App im Hintergrund läuft. In vielen Innungen liegt die Interaktion mit Push-Nachrichten spürbar über klassischen E-Mail-Newslettern.',
                },
              ].map((faq, i) => (
                <div key={i} className="faq-item" style={i === 5 ? { borderBottom: 'none' } : {}}>
                  <button className="faq-question" onClick={() => toggleFaq(i)}>
                    <span>{faq.q}</span>
                    <span className="faq-icon">{openFaq === i ? '−' : '+'}</span>
                  </button>
                  <div
                    className="faq-answer"
                    style={{ display: openFaq === i ? 'block' : 'none' }}
                  >
                    {faq.a}
                  </div>
                </div>
              ))}
            </div>
          </section>

          {/* CTA */}
          <section className="cta-section">
            <div className="cta-inner">
              <div>
                <div className="section-marker" style={{ marginBottom: '28px' }}>Bereit loszulegen?</div>
                <h2 className="cta-h2">
                  Ihre Innung.<br />
                  Ihre App.<br />
                  <em>Ihre Zukunft.</em>
                </h2>
              </div>
              <div className="cta-right">
                <a
                  href={CONTACT_WEBMAIL_HREF}
                  className="btn-primary-lg"
                  onClick={() => handleContactCtaClick('bottom')}
                  target="_blank"
                  rel="noreferrer"
                >
                  Jetzt Team kontaktieren <ArrowUpRight size={18} />
                </a>
                <p className="cta-note">Persönliche Beratung. Keine Vertragsbindung.</p>
                {showMailFallback && (
                  <div className="mail-fallback">
                    Kein Mailprogramm? Schreiben Sie direkt an{' '}
                    <a className="mail-fallback-link" href={`mailto:${CONTACT_EMAIL}`}>
                      {CONTACT_EMAIL}
                    </a>
                    .
                    <div className="mail-fallback-row">
                      <a
                        className="mail-fallback-link"
                        href={CONTACT_WEBMAIL_HREF}
                        target="_blank"
                        rel="noreferrer"
                      >
                        In Webmail öffnen
                      </a>
                    </div>
                  </div>
                )}
              </div>
            </div>
          </section>
        </main>

        {/* Footer */}
        <footer className="footer">
          <div className="footer-inner">
            <div className="footer-logo" style={{ display: 'flex', alignItems: 'center' }}>
              Innungs<span className="logo-accent">App</span> <span className="logo-pro" style={{ fontSize: '0.6rem', padding: '1px 4px', marginLeft: '6px' }}>PRO</span>
            </div>
            <p className="footer-copy">
              © {new Date().getFullYear()} InnungsApp SaaS. Alle Rechte vorbehalten.
            </p>
            <div className="footer-links">
              <Link href="/impressum" className="footer-link">Impressum</Link>
              <Link href="/datenschutz" className="footer-link">Datenschutz</Link>
              <button type="button" onClick={openCookieSettings} className="footer-link">
                Cookie-Einstellungen
              </button>
            </div>
          </div>
        </footer>

        {cookieConsent === 'pending' && (
          <div className="cookie-banner" role="dialog" aria-live="polite" aria-label="Cookie Hinweis">
            <div className="cookie-banner-inner">
              <p className="cookie-banner-text">
                Wir nutzen optionale Analyse-Cookies (PostHog), um die Landingpage zu verbessern.
                PostHog startet erst nach Ihrer Zustimmung. Mehr Infos in der{' '}
                <Link href="/datenschutz" className="cookie-banner-link">
                  Datenschutzerklärung
                </Link>
                .
              </p>
              <div className="cookie-banner-actions">
                <button className="cookie-btn" onClick={() => setCookieChoice('declined')}>
                  Nur notwendige
                </button>
                <button
                  className="cookie-btn cookie-btn-primary"
                  onClick={() => setCookieChoice('accepted')}
                >
                  Cookies akzeptieren
                </button>
              </div>
            </div>
          </div>
        )}
      </div>
    </>
  )
}
