<!DOCTYPE html>
<html lang="de">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>CityKIS — Mehr Stadtleben, als du denkst.</title>
  <meta name="description" content="CityKIS ist die KI-gestützte Plattform für Events, Kultur, Konzerte, Festivals und Veranstaltungen im Alpen-Adria-Raum.">
  <meta name="robots" content="index, follow">
  
  <meta property="og:title" content="CityKIS — Events & Kultur im Alpen-Adria-Raum">
  <meta property="og:description" content="Entdecke Veranstaltungen, Konzerte, Festivals und Kultur in Kärnten, Villach, Graz, Slowenien und Friaul.">
  <meta property="og:type" content="website">
  <meta property="og:url" content="https://citykis.net/">

  <link rel="icon" type="image/x-icon" href="/favicon.ico">
  <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=Cormorant+Garamond:wght@400;500;600;700&family=Syne:wght@400;500;600;700&display=swap" rel="stylesheet">
  <link rel="stylesheet" href="/css/style.css">
</head>
<body class="">

<header class="site-header">
  <a href="/" class="logo-link" aria-label="CityKIS Startseite">
    <img src="/images/CITYKIS-Logo-Pin_icon_yeri_ready.png" alt="" class="site-logo">
    <div class="logo-text">
      <span class="logo-main">CITYKIS.NET</span>
      <span class="logo-sub">MEHR STADTLEBEN.</span>
    </div>
  </a>

  <div class="header-right">
    <span class="data-badge">LIVE-DATEN</span>
    <button class="lang-btn" type="button">EN</button>
    <button class="profile-btn" type="button" aria-label="Mein Profil">
      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
        <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path>
        <circle cx="12" cy="7" r="4"></circle>
      </svg>
      <span>Mein Profil</span>
    </button>
  </div>
</header>

<section class="hero">
  <p class="hero-eyebrow">✦ KÄRNTEN · SLOWENIEN · FRIAUL · STEIERMARK</p>

  <h1 class="hero-title">
    Mehr erleben.<br>
    Näher als du denkst.
  </h1>

  <p class="hero-copy">
    CityKIS macht sichtbar, was los ist —
    und schafft kulturelle Dichte in deiner Nähe.
  </p>
</section>

<section class="discovery-section" aria-label="Standortsuche">
  <button class="discover-btn" type="button" data-nearby-button title="Zeigt Events rund um deinen aktuellen Standort (15 km).">
    <img src="/images/CITYKIS-Logo-Pin_icon_yeri_ready.png" alt="">
    <span>In meiner Nähe entdecken</span>
  </button>

  <div class="location-search">
    <input
      id="location"
      name="location"
      type="text"
      class="location-input"
      placeholder="Ort oder PLZ eingeben"
    >

    <div class="radius-select">
      <input id="radius" type="number" value="25" aria-label="Umkreis in Kilometern">
      <span>km</span>
    </div>

    <button class="find-btn" type="button">Finden</button>
  </div>

  <p class="location-status" data-location-status>Zeigt Events rund um deinen aktuellen Standort (15 km).</p>
  <p class="radius-hint" data-radius-hint hidden>Weniger als 3 Treffer — Umkreis auf 30 km erweitern?</p>
</section>

<section class="filter-wrap">
  <label class="filter-title">ZEIT</label>
  <div class="chip-row chip-row--date">
    <button class="chip active" type="button">Heute</button>
    <button class="chip" type="button">Morgen</button>
    <button class="chip" type="button">Wochenende</button>
    <button class="chip" type="button">Nächste Woche</button>
  </div>

  <label class="filter-title">KATEGORIEN</label>
  <div class="chip-row chip-row--cats">
    <button class="chip active" type="button">Alle</button>
    <button class="chip" type="button">Musik</button>
    <button class="chip" type="button">Theater & Kabarett</button>
    <button class="chip" type="button">Kino & Film</button>
    <button class="chip" type="button">Lesungen & Vorträge</button>
    <button class="chip" type="button">Ausstellungen</button>
    <button class="chip" type="button">Feste & Party</button>
    <button class="chip" type="button">Essen & Brauchtum</button>
    <button class="chip" type="button">Märkte & Flohmärkte</button>
    <button class="chip" type="button">Sport & Outdoor</button>
  </div>

  <section class="ai-search-section" aria-label="KI-Suche">
    <label class="search-label" for="q">ETWAS BESTIMMTES GESUCHT?</label>

    <div class="search-row">
      <input
        id="q"
        name="q"
        type="text"
        class="search-input"
        placeholder="Livemusik am See · Familienausflug · Märkte · Jazz ..."
      >

      <button class="search-btn" type="button">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" aria-hidden="true">
          <circle cx="11" cy="11" r="8"></circle>
          <path d="M21 21l-4.35-4.35"></path>
        </svg>
        KI fragen
      </button>

      <button class="clear-btn" type="button" aria-label="Suche leeren">×</button>
    </div>
  </section>
</section>

<main class="main">
  <div class="results-head">
    <h2>Was ist gerade los?</h2>
    <span class="results-count">2 passende Veranstaltungen</span>
  </div>

  <div class="grid">
    <article class="card">
      <div class="card-media"><span class="card-emoji">🎵</span></div>
      <div class="card-body">
        <div class="card-cat">MUSIK</div>
        <h3 class="card-name">Wörthersee Festival</h3>
        <div class="card-meta">
          <div class="meta-item">📍 Klagenfurt</div>
          <div class="meta-item">🗓 12. Juli 2026</div>
        </div>
        <p class="card-desc">Spektakuläres Open-Air-Musikfestival.</p>
      </div>
      <div class="card-foot">♡</div>
    </article>

    <article class="card">
      <div class="card-media"><span class="card-emoji">⛰️</span></div>
      <div class="card-body">
        <div class="card-cat">KULTUR</div>
        <h3 class="card-name">Klagenfurter Sommernächte</h3>
        <div class="card-meta">
          <div class="meta-item">📍 Klagenfurt</div>
          <div class="meta-item">🗓 20. Juli 2026</div>
        </div>
        <p class="card-desc">Abendliche Theater- und Musikaufführungen.</p>
      </div>
      <div class="card-foot">♡</div>
    </article>
  </div>
</main>

<footer class="site-footer">
  <div class="footer-inner">
    <div class="footer-quote">
      <em>
        Rom wurde nicht an einem Tag erbaut.<br>
        CityKIS entsteht in einem Gedankenblitz — und wächst mit dir.
      </em>
    </div>

    <div class="footer-bottom">
      <p class="footer-attrib">Eventdaten: api.austria.info · KI via Anthropic Claude</p>
      <div class="footer-links">
        <a href="/ueber-citykis.php">Über CityKIS</a>
        <a href="/impressum-rechtliches.php">Impressum/Rechtliches</a>
      </div>
    </div>
  </div>
</footer>

<script>
(function(){
  const nearbyButtons = document.querySelectorAll('[data-nearby-button]');
  const status = document.querySelector('[data-location-status]');
  const radiusHint = document.querySelector('[data-radius-hint]');
  const locationInput = document.querySelector('#location');

  function setStatus(message, mode){
    if(!status) return;
    status.textContent = message;
    status.dataset.mode = mode || 'info';
  }

  function formatPlaceName(address){
    if(!address) return '';

    const city =
      address.city ||
      address.town ||
      address.village ||
      address.municipality ||
      address.county;

    const country = address.country_code ? address.country_code.toUpperCase() : '';

    if(city && country) return city + ' · ' + country;
    if(city) return city;
    if(address.state && country) return address.state + ' · ' + country;
    if(address.state) return address.state;

    return '';
  }

  async function reverseGeocode(latitude, longitude){
    const url =
      'https://nominatim.openstreetmap.org/reverse?format=jsonv2&zoom=10&addressdetails=1&accept-language=de&lat=' +
      encodeURIComponent(latitude) +
      '&lon=' +
      encodeURIComponent(longitude);

    const response = await fetch(url, {
      headers: { 'Accept': 'application/json' }
    });

    if(!response.ok) throw new Error('Reverse geocoding failed');

    const data = await response.json();
    return formatPlaceName(data.address);
  }

  nearbyButtons.forEach((button) => {
    button.addEventListener('click', () => {
      if(!('geolocation' in navigator)){
        setStatus('Standort nicht verfügbar — PLZ eingeben.', 'error');
        return;
      }

      button.classList.add('is-loading');
      setStatus('Standort wird abgefragt …', 'info');

      navigator.geolocation.getCurrentPosition(
        async (position) => {
          const latitude = position.coords.latitude;
          const longitude = position.coords.longitude;

          button.classList.remove('is-loading');
          setStatus('Standort erkannt — Ort wird geprüft …', 'info');

          let placeName = '';

          try{
            placeName = await reverseGeocode(latitude, longitude);
          }catch(error){
            placeName = '';
          }

          if(placeName){
            setStatus('Standort erkannt: ' + placeName + ' — Events im 15-km-Umkreis werden geladen.', 'success');
            if(locationInput && !locationInput.value.trim()){
              locationInput.value = placeName;
            }
          }else{
            setStatus('Standort erkannt — Ort konnte nicht sicher ermittelt werden. PLZ oder Ort bei Bedarf korrigieren.', 'success');
          }

          if(radiusHint) radiusHint.hidden = false;

          window.dispatchEvent(new CustomEvent('citykis:location-found', {
            detail: {
              latitude: latitude,
              longitude: longitude,
              place: placeName,
              radius: 15
            }
          }));
        },
        () => {
          button.classList.remove('is-loading');
          setStatus('Standort nicht verfügbar — PLZ eingeben.', 'error');
        },
        { enableHighAccuracy: false, timeout: 9000, maximumAge: 300000 }
      );
    });
  });
})();
</script>
</body>
</html>
