/* GOOGLE FONTS */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&display=swap');

/* BILDER-OPTIMIERUNG */
img {
  max-width: 100%;
  height: auto;
  /* EXTREM VORSICHTIGE PERFORMANCE-VERBESSERUNG */
  image-rendering: -webkit-optimize-contrast; /* Bessere Darstellung in WebKit */
  image-rendering: crisp-edges; /* Scharfe Kanten */
  backface-visibility: hidden; /* Hardware-Beschleunigung */
  -webkit-backface-visibility: hidden;
}

/* TABLET-HINTERGRUNDBILD OPTIMIERUNG */
@media (min-width: 768px) and (max-width: 1023px) {
  .background {
    background-size: cover; /* Vollständige Abdeckung ohne Verzerrung */
    background-position: center center;
    background-attachment: scroll; /* Bessere Performance auf Tablet */
  }
  
  /* SPEZIFISCHE TABLET-OPTIMIERUNG FÜR DATENSCHUTZ-SEITE */
}

/* EINHEITLICHE BOX-ABSTÄNDE - VORSICHTIG */
.reisekosten-box,
.termin-dates-box,
.booking-section {
  margin-bottom: 1.5rem; /* Einheitlicher Abstand zwischen allen Boxen */
}



/* EXTREM VORSICHTIGE TOUCH-TARGET VERBESSERUNG */
@media (max-width: 767px) {
  .mobile-nav a {
    min-height: 44px; /* Apple's empfohlene Mindestgröße */
    min-width: 44px; /* Für bessere Touch-Bedienung */
  }
  
  .top-nav nav a {
    min-height: 44px; /* Konsistente Touch-Targets */
    min-width: 44px;
  }
}

/* TABLET-OPTIMIERUNG (768px - 1023px) */
@media (min-width: 768px) and (max-width: 1023px) {
  .mobile-nav a {
    min-height: 44px; /* Konsistente Touch-Targets für Tablet */
    min-width: 44px;
  }
  
  .top-nav nav a {
    min-height: 44px; /* Konsistente Touch-Targets für Tablet */
    min-width: 44px;
    /* Verhindert Textumbruch auf Tablets */
    white-space: nowrap !important;
    font-size: 1rem !important; /* Etwas kleinere Schrift für bessere Passung */
  }
}

/* EXTREM VORSICHTIGE HOVER-EFFEKTE FÜR ÜBERSCHRIFTEN */
h1:hover, h2:hover, h3:hover {
  text-shadow: 0 0 4px rgba(255, 255, 255, 0.3); /* Subtiler Glow-Effekt */
  transition: text-shadow var(--transition-normal); /* Sanfte Animation */
}

/* EXTREM VORSICHTIGE PERFORMANCE-OPTIMIERUNG */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* EXTREM VORSICHTIGE FOCUS-STATE VERBESSERUNG */
a:focus {
  outline: 2px solid var(--primary-blue); /* Subtiler blauer Focus-Ring */
  outline-offset: 2px; /* Abstand vom Element */
  border-radius: var(--radius-sm); /* Abgerundete Ecken */
}

/* KI-Credit für Desktop/Tablet */
.ki-credit-desktop {
  display: none; /* Standardmäßig versteckt */
}

/* Zeige KI-Credit nur auf Desktop und Tablet */
@media (min-width: 768px) {
  .ki-credit-desktop {
    display: block !important;
  }
}

/* CSS VARIABLES */
:root {
  --primary-blue: #00d4ff;
  --primary-orange: #ff8c42;
  --dark-bg: #0a0a0f;
  --card-bg: rgba(15, 15, 25, 0.95);
  --text-primary: #f0f8ff;
  --text-secondary: #e8f0ff; /* Aufgehellt mit subtilem Blauton */
  --text-muted: #aaaaaa; /* Aufgehellt von #888888 zu #aaaaaa */
  --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'JetBrains Mono', 'Courier New', monospace;
  --font-tech: 'Orbitron', monospace;
  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 3rem;
  --space-3xl: 4rem;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.1);
  --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.15);
  --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.2);
  --shadow-glow: 0 0 20px rgba(0, 212, 255, 0.3);
  --transition-fast: 0.15s ease;
  --transition-normal: 0.3s ease;
  --transition-slow: 0.5s ease;
  
  /* Mobile-First Design Variablen */
  --touch-target-min: 44px;
  --mobile-padding: 1rem;
  --mobile-margin: 0.75rem;
  --mobile-font-size-base: 16px;
  --mobile-font-size-small: 14px;
  --mobile-font-size-large: 18px;
  --mobile-border-radius: 12px;
  --mobile-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
}



/* ===== GLOBALE GLOW-EFFEKTE ENTFERNUNG ===== */

/* Alle Glow-Effekte für alle Bildschirmgrößen entfernen */
* {
  box-shadow: none !important;
  text-shadow: none !important;
}

/* Filter nur für spezifische Elemente entfernen, nicht für alle */
.termin-dates-box,
.reisekosten-box,
.anmeldung-box,
.preis-option,
.mission-cta,
.top-nav,
.mobile-nav,
.hamburger-menu,
.scroll-to-top,
button,
.termin-button,
.booking-button,
.cta-button,
section,
.background::after {
  filter: none !important;
}

/* Spezifische Glow-Effekte für alle Seiten entfernen */
.termin-dates-box,
.reisekosten-box,
.anmeldung-box,
.preis-option,
.mission-cta,
.presenter-image,
.top-nav,
.mobile-nav,
.hamburger-menu,
.scroll-to-top,
button,
.termin-button,
.booking-button,
.cta-button,
section,
.background::after {
  box-shadow: none !important;
  text-shadow: none !important;
}

/* ===== MOBILE-FIRST DESIGN OPTIMIERUNGEN ===== */

/* Touch-Targets für mobile Geräte (min. 44px) */
@media (max-width: 767px) {
  /* Alle klickbaren Elemente */
  button, 
  .termin-button, 
  .booking-button,
  .cta-button,
  input[type="submit"],
  input[type="button"],
  select,
  .hamburger-menu,
  .mobile-nav a,
  .top-nav a,
  .footer-link,
  .scroll-to-top {
    min-height: var(--touch-target-min) !important;
    min-width: var(--touch-target-min) !important;
    padding: var(--mobile-padding) !important;
    font-size: var(--mobile-font-size-base) !important;
    border-radius: var(--mobile-border-radius) !important;
    box-shadow: var(--mobile-shadow) !important;
    transition: all var(--transition-normal) !important;
    -webkit-tap-highlight-color: rgba(0, 212, 255, 0.3) !important;
    touch-action: manipulation !important;
  }
  
  /* Spezielle Touch-Optimierungen für Buttons */
  .termin-button,
  .booking-button,
  .cta-button {
    display: inline-block !important;
    text-align: center !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  
  /* Mobile Navigation Touch-Optimierung */
  .mobile-nav a,
  .top-nav a {
    padding: var(--mobile-padding) var(--mobile-margin) !important;
    margin: var(--mobile-margin) 0 !important;
    border-radius: var(--mobile-border-radius) !important;
    background: rgba(0, 212, 255, 0.1) !important;
    border: 1px solid rgba(0, 212, 255, 0.2) !important;
    transition: all var(--transition-normal) !important;
  }
  
  .top-nav a:hover {
    background: rgba(0, 212, 255, 0.2) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 16px rgba(0, 212, 255, 0.3) !important;
  }
  
  /* Hamburger Menu Touch-Optimierung */
  .hamburger-menu {
    padding: var(--mobile-padding) !important;
    border-radius: var(--mobile-border-radius) !important;
    background: rgba(0, 212, 255, 0.1) !important;
    border: 1px solid rgba(0, 212, 255, 0.2) !important;
    cursor: pointer !important;
    user-select: none !important;
  }
  
  .hamburger-menu:hover {
    background: rgba(0, 212, 255, 0.2) !important;
    transform: scale(1.05) !important;
  }
  
  /* Scroll-to-Top Button Touch-Optimierung */
  .scroll-to-top {
    width: var(--touch-target-min) !important;
    height: var(--touch-target-min) !important;
    border-radius: 50% !important;
    background: rgba(0, 212, 255, 0.9) !important;
    border: 2px solid rgba(0, 212, 255, 0.3) !important;
    box-shadow: var(--mobile-shadow) !important;
    font-size: 20px !important;
    font-weight: bold !important;
    /* Verbesserte Touch-Unterstützung */
    -webkit-tap-highlight-color: rgba(0, 212, 255, 0.3) !important;
    touch-action: manipulation !important;
    user-select: none !important;
    /* Höherer Z-Index für mobile Geräte */
    z-index: 1002 !important;
    /* Bessere Positionierung auf mobilen Geräten */
    position: fixed !important;
    bottom: 100px !important;
    right: 20px !important;
  }
  
  .scroll-to-top:hover,
  .scroll-to-top:focus {
    background: rgba(0, 212, 255, 1) !important;
    transform: scale(1.1) !important;
    box-shadow: 0 4px 20px rgba(0, 212, 255, 0.5) !important;
  }
  
  .scroll-to-top:active {
    transform: scale(0.95) !important;
    background: rgba(0, 212, 255, 0.8) !important;
  }
  
  /* Content-Bereiche Mobile-Optimierung */
  .main-content,
  .mission-cta {
    padding: var(--mobile-padding) !important;
    margin: var(--mobile-margin) 0 !important;
    border-radius: var(--mobile-border-radius) !important;
    background: rgba(15, 15, 25, 0.95) !important;
    box-shadow: var(--mobile-shadow) !important;
  }
  
  /* Mobile Bild-Performance */
  .janeway-photo {
    max-width: 85% !important;
    height: auto !important;
    object-fit: cover !important;
    contain: layout style paint !important;
  }
  
  /* Mobile CSS Containment */
  .mobile-optimized {
    contain: layout style paint !important;
    will-change: auto !important;
  }
  
  /* Typografie Mobile-Optimierung */
  h1, h2, h3, h4, h5, h6 {
    font-size: clamp(1.5rem, 4vw, 2.5rem) !important;
    line-height: 1.3 !important;
    margin: var(--mobile-margin) 0 !important;
    padding: var(--mobile-margin) 0 !important;
  }
  
  p, li, div {
    font-size: var(--mobile-font-size-base) !important;
    line-height: 1.6 !important;
    margin: var(--mobile-margin) 0 !important;
  }
  
  /* Bild-Optimierung für Mobile */
  img {
    max-width: 100% !important;
    height: auto !important;
    border-radius: var(--mobile-border-radius) !important;
    box-shadow: var(--mobile-shadow) !important;
  }
  
  /* Form-Elemente Mobile-Optimierung */
  input, select, textarea {
    font-size: var(--mobile-font-size-base) !important;
    padding: var(--mobile-padding) !important;
    border-radius: var(--mobile-border-radius) !important;
    border: 2px solid rgba(0, 212, 255, 0.3) !important;
    background: rgba(15, 15, 25, 0.9) !important;
    color: #b8c5d1 !important;
    min-height: var(--touch-target-min) !important;
  }
  
  input:focus, select:focus, textarea:focus {
  outline: none !important;
}
  
  /* Modal Mobile-Optimierung */
  .modal-content {
    margin: 5% auto !important;
    padding: var(--mobile-padding) !important;
    width: 95% !important;
    max-width: 500px !important;
    border-radius: var(--mobile-border-radius) !important;
    background: rgba(15, 15, 25, 0.98) !important;
    box-shadow: var(--mobile-shadow) !important;
  }
  
  /* Footer Mobile-Optimierung */
  .footer {
    padding: var(--mobile-padding) !important;
    margin-top: var(--mobile-margin) !important;
    border-radius: var(--mobile-border-radius) 0 0 0 !important;
  }
  
  .footer-links {
    flex-direction: column !important;
    gap: var(--mobile-margin) !important;
  }
}

/* ===== TABLET OPTIMIERUNGEN ===== */
@media (min-width: 768px) and (max-width: 1023px) {
  /* Tablet-spezifische Anpassungen */
  :root {
    --mobile-padding: 1.25rem;
    --mobile-margin: 1rem;
    --mobile-font-size-base: 17px;
    --mobile-font-size-small: 15px;
    --mobile-font-size-large: 19px;
  }
  
  /* Tablet Navigation */
  .top-nav nav a {
    padding: 0.75rem 1rem !important;
    margin: 0 0.5rem !important;
    font-size: var(--mobile-font-size-base) !important;
  }
  
  /* Tablet Content */
  .main-content {
    padding: 1.5rem !important;
    margin: 1rem auto !important;
    max-width: 90% !important;
  }
  

  
  /* Tablet Termin-Grid - Standard-Layout beibehalten */
  /* .termin-grid bleibt unverändert - verwendet Standard 2-Spalten-Layout */
  
  .termin-date-box,
  .termin-time-box {
    padding: var(--space-lg) !important;
    font-size: var(--mobile-font-size-large) !important;
  }
  
  /* Tablet Typografie - Feste Größen für bessere Lesbarkeit */
  h1 { 
    font-size: 2.8rem !important; /* Größere Hauptüberschriften */
  }
  h2 { 
    font-size: 2.2rem !important; /* Angemessene Unterüberschriften */
  }
  h3 { 
    font-size: 1.6rem !important; /* Lesbare Zwischenüberschriften */
  }
  h4, h5, h6 { 
    font-size: 1.4rem !important; /* Konsistente kleine Überschriften */
  }
  
  /* Tablet: Spezifische Überschriften-Größen für Datenschutz und Impressum */
  body.datenschutz h2:not(.main-title),
  body.impressum h2:not(.main-title) {
    font-size: 1.8rem !important; /* Konsistent mit Desktop-Version */
  }
  
  body.datenschutz h3,
  body.impressum h3 {
    font-size: 1.3rem !important; /* Konsistent mit Desktop-Version */
  }
  
  /* Tablet: Entferne Weltraum-Sternenhintergrund auf Impressum und Datenschutz */
  body.impressum .background,
  body.datenschutz .background {
    background: none !important;
    background-image: none !important;
    background-size: auto !important;
    opacity: 1 !important;
  }
  
  /* Tablet: Entferne alle schwarzen Linien und Striche */
  body.impressum *,
  body.datenschutz * {
    border-color: transparent !important;
    box-shadow: none !important;
  }
  
  /* Tablet: Spezifische Entfernung von schwarzen Linien */
  body.impressum .top-nav,
  body.datenschutz .top-nav,
  body.impressum .mobile-nav,
  body.datenschutz .mobile-nav,
  body.impressum .hamburger-menu,
  body.datenschutz .hamburger-menu {
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    border-left: none !important;
    border-right: none !important;
    box-shadow: none !important;
  }
  
  /* Tablet Buttons */
  .termin-button,
  .booking-button,
  .cta-button {
    padding: 1rem 1.5rem !important;
    font-size: var(--mobile-font-size-large) !important;
  }
  
  /* Tablet: Presenter Image Anpassung für Hochkant-Format */
  .presenter-info {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: var(--space-lg) !important;
    margin: var(--space-lg) 0 !important;
  }
  
  .presenter-image {
    max-width: 100% !important; /* Volle Breite für Tablet */
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 !important;
    object-fit: cover !important;
    object-position: 70% center !important;
    border-radius: var(--radius-lg) !important;
    border: 2px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: var(--shadow-md) !important;
    opacity: 0.7 !important;
    margin: 0 auto var(--space-md) auto !important;
    display: block !important;
  }
  
  .presenter-text {
    text-align: center !important;
    max-width: 100% !important;
    margin-top: 0 !important;
  }
  
  .presenter-text h3 {
    text-align: center !important;
    margin-bottom: var(--space-md) !important;
  }
  
  .presenter-text p {
    text-align: center !important;
    margin-bottom: var(--space-md) !important;
  }
  
  /* Tablet: Andreadis-Seite - Alle Texte linksbündig (überschreibt Tablet-Regeln) */
  body.andreadis .presenter-info,
  body.andreadis .presenter-text,
  body.andreadis .presenter-text h3,
  body.andreadis .presenter-text p,
  body.andreadis .presenter-info *,
  body.andreadis .presenter-text *,
  body.andreadis .presenter-info h3,
  body.andreadis .presenter-info p,
  body.andreadis .presenter-text h3,
  body.andreadis .presenter-text p {
    text-align: left !important;
  }
  
  /* Tablet: Datenschutz-Seite - Überschriften-Größen werden durch Inline-Styles gesteuert */
  
  /* Tablet: Entferne alle Pseudo-Elemente der Hintergrund-Klasse auf Impressum und Datenschutz */
  body.impressum .background::before,
  body.impressum .background::after,
  body.datenschutz .background::before,
  body.datenschutz .background::after {
    display: none !important;
  }
  
  /* Tablet: Verhindere Ruckeln des Hintergrundbilds im Querformat */
  .background {
    background-attachment: scroll !important; /* Verhindert Parallax-Effekt */
    will-change: auto !important; /* Reduziert GPU-Belastung */
  }
}

/* ===== IPAD SPEZIFISCHE OPTIMIERUNGEN ENTFERNT ===== */
/* Das ursprüngliche Layout funktionierte korrekt - keine Änderungen nötig */

/* ===== KLEINE MOBILE GERÄTE (320px - 480px) ===== */
@media (max-width: 480px) {
  :root {
    --mobile-padding: 0.75rem;
    --mobile-margin: 0.5rem;
    --mobile-font-size-base: 15px;
    --mobile-font-size-small: 13px;
    --mobile-font-size-large: 17px;
  }
  
  /* Kleine Mobile Navigation */
  .mobile-nav {
    padding: 1rem 0.5rem !important;
  }
  
  .mobile-nav a {
    padding: 0.75rem !important;
    margin: 0.25rem 0 !important;
    font-size: var(--mobile-font-size-base) !important;
  }
  
  /* Kleine Mobile Content */
  .main-content {
    padding: 0.75rem !important;
    margin: 0.5rem 0 !important;
  }
  
  /* Kleine Mobile Typografie */
  h1, h2, h3, h4, h5, h6 {
    font-size: clamp(1.3rem, 5vw, 2rem) !important;
  }
  
  /* Kleine Mobile Buttons */
  .termin-button,
  .booking-button,
  .cta-button {
    padding: 0.75rem !important;
    font-size: var(--mobile-font-size-base) !important;
    min-height: 40px !important;
    min-width: 40px !important;
  }
}

/* ===== LANDSCAPE MOBILE OPTIMIERUNGEN ===== */
@media (max-width: 767px) and (orientation: landscape) {
  /* Landscape Mobile Navigation */
  .mobile-nav {
    flex-direction: row !important;
    justify-content: center !important;
    gap: 1rem !important;
    padding: 0.5rem 1rem !important;
  }
  
  .mobile-nav a {
    padding: 0.5rem 1rem !important;
    margin: 0 !important;
    font-size: var(--mobile-font-size-small) !important;
  }
  
  /* Landscape Mobile Content */
  .main-content {
    padding: 0.75rem 1rem !important;
  }
  
  /* Landscape Mobile Typografie */
  h1, h2, h3, h4, h5, h6 {
    font-size: clamp(1.2rem, 3vw, 1.8rem) !important;
    margin: 0.5rem 0 !important;
  }
}














* { 
  box-sizing: border-box; 
  margin: 0;
  padding: 0;
}

html { 
  scroll-behavior: smooth; 
  font-size: 16px;
}

/* Fallback für Browser ohne scroll-behavior Support */
@supports not (scroll-behavior: smooth) {
  html {
    scroll-behavior: auto;
  }
}

body {
  font-family: var(--font-primary);
  background: var(--dark-bg);
  color: #b8c5d1 !important;
  line-height: 1.7;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
}


  .background {
  position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 1;
  background: url('../weltraum-sternenfeld-optimized.jpg') no-repeat center center fixed;
  background-size: cover; opacity: 0.55;
  transition: var(--transition-slow);
}

.background::after {
  content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, 
    rgba(0, 212, 255, 0.1) 0%, 
    rgba(255, 107, 53, 0.05) 50%, 
    rgba(255, 215, 0, 0.1) 100%);
  opacity: 0.8; pointer-events: none; z-index: 1;
}

.main-content {
  padding-top: 100px; padding-left: var(--space-xl); padding-right: var(--space-xl);
  padding-bottom: 120px; /* Abstand für den festen Footer */
  max-width: 1400px; margin: 0 auto; position: relative; z-index: 10;
  min-height: 100vh;
}





.top-nav {
  width: 100%; position: fixed; top: 0; left: 0; z-index: 100;
  background: rgba(15, 15, 25, 0.4); backdrop-filter: blur(20px);
  display: flex; justify-content: center; align-items: center;
  padding: var(--space-md) 0; margin: 0; border: none;
  box-shadow: var(--shadow-lg); height: 80px;
  border-bottom: none;
  transition: all var(--transition-normal) cubic-bezier(0.4, 0, 0.2, 1);
  /* EXTREM VORSICHTIGE STICKY-NAVIGATION */
  transform: translateY(0); /* Standardposition */
}

/* STICKY-NAVIGATION BEI SCROLL */
.top-nav.scrolled {
  background: rgba(15, 15, 25, 0.8) !important; /* Dunklerer Hintergrund */
  backdrop-filter: blur(25px) !important; /* Stärkerer Blur-Effekt */
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3) !important; /* Stärkerer Schatten */
  height: 70px !important; /* Etwas kompakter */
}



.top-nav nav {
  display: flex; gap: var(--space-xl); align-items: center; justify-content: center;
  max-width: 1200px; width: 100%; padding: 0 var(--space-xl);
}

.top-nav nav a {
  color: rgba(155, 168, 184, 0.8); font-size: 1.1rem; font-weight: 500; text-decoration: none;
  font-family: var(--font-mono); text-transform: uppercase; letter-spacing: 0.1em;
  background: none; border: none; border-radius: var(--radius-md);
  padding: var(--space-sm) var(--space-lg); transition: var(--transition-normal);
  cursor: pointer; min-height: 48px; min-width: 48px;
  display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
}

.top-nav nav a::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, var(--primary-blue), var(--primary-orange));
  opacity: 0; transition: var(--transition-normal); z-index: -1;
  border-radius: var(--radius-md);
}

.top-nav nav a:hover::before, .top-nav nav a:focus::before { opacity: 0.1; }
.top-nav nav a:hover, .top-nav nav a:focus { 
  color: var(--primary-blue); transform: translateY(-2px);
  box-shadow: var(--shadow-glow);
  background: rgba(0, 212, 255, 0.1);
}

.top-nav nav a:active {
  color: var(--primary-orange);
  transform: translateY(0);
  background: rgba(255, 107, 53, 0.1);
  box-shadow: none;
  border: none;
}
.top-nav nav a.active { 
  color: var(--primary-blue); font-weight: 600;
  background: rgba(0, 212, 255, 0.2); border: none;
}

header { 
  background: none; text-align: left; 
  margin-top: var(--space-3xl); margin-bottom: var(--space-xl); 
}

main { 
  flex: 1; max-width: 900px; margin: 0 auto; background: none; 
  padding: var(--space-2xl) var(--space-xl) var(--space-xl) var(--space-xl); 
  text-align: left; 
}

section {
  margin-bottom: var(--space-2xl); 
  background: rgba(17, 20, 32, 0.75); border-radius: var(--radius-lg); 
  box-shadow: var(--shadow-md); padding: var(--space-xl);
  backdrop-filter: blur(3px);
  transition: var(--transition-normal);
}

section:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg), var(--shadow-glow);
  border-color: rgba(0, 212, 255, 0.3);
}

h1, h2 { 
  font-family: var(--font-primary); 
  letter-spacing: -0.02em; line-height: 1.2;
  margin-bottom: var(--space-lg);
  text-shadow: 0 0 2px rgba(255, 255, 255, 0.2);
}

h1 { 
  color: var(--primary-orange); font-size: 5.5rem; font-weight: 800;
}

h2 { 
  color: var(--primary-blue); font-size: 2.8rem; font-weight: 700;
  margin-bottom: var(--space-md);
}

h3 { 
  color: rgba(255, 140, 66, 0.9); 
  font-size: 1.2rem; 
  font-weight: 600;
  margin-top: var(--space-sm); 
  margin-bottom: 0;
  text-shadow: 0 0 1px rgba(255, 140, 66, 0.3);
}

p { 
  color: #b8c5d1; font-size: 1.1rem; line-height: 1.8;
  margin-bottom: var(--space-md);
  text-shadow: 0 0 1px rgba(255, 255, 255, 0.1);
}

a { 
  color: var(--primary-blue); text-decoration: none;
  transition: var(--transition-fast);
  border-bottom: 1px solid transparent;
}

a:hover { 
  color: var(--primary-orange); border-bottom-color: var(--primary-orange);
}


form { 
  display: flex; flex-direction: column; gap: var(--space-sm); 
  margin-top: var(--space-xl); 
}

form label { 
  margin-bottom: 0 !important; display: block;
  color: var(--primary-blue); font-weight: 500; font-size: 1rem;
  text-shadow: 0 0 1px rgba(0, 212, 255, 0.3);
}

form input, form textarea { 
  margin-bottom: var(--space-xs); 
}

input, textarea {
  background: rgba(15, 15, 25, 0.65); color: #b8c5d1; 
  border: 2px solid rgba(0, 212, 255, 0.2); border-radius: var(--radius-md);
  padding: var(--space-md); font-size: 1rem; 
  transition: var(--transition-normal);
  backdrop-filter: blur(3px);
}

input:focus, textarea:focus {
  outline: none;
  background: rgba(15, 15, 25, 0.9);
}

form button[type="submit"] {
  margin-top: var(--space-xl);
}

.privacy-notice {
  margin-top: var(--space-2xl);
}

.privacy-notice p {
  color: var(--primary-blue);
}

button {
  background: linear-gradient(135deg, var(--primary-blue), var(--primary-orange));
  color: var(--dark-bg); border: none; border-radius: var(--radius-md);
  padding: var(--space-md) var(--space-xl); font-weight: 600; font-size: 1.1rem;
  cursor: pointer; transition: var(--transition-normal);
  min-height: 48px; display: inline-flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
  outline: none;
}

button::before {
  content: ""; position: absolute; top: 0; left: -100%; width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: var(--transition-normal);
}

button:hover::before { left: 100%; }
button:hover, button:focus {
  transform: translateY(-2px); box-shadow: var(--shadow-lg), var(--shadow-glow);
  outline: none;
}

button:active {
  background: var(--primary-orange);
  transform: translateY(0);
  box-shadow: none;
  border: none;
}






/* Globale Regel für alle angeklickten Elemente */
*:active {
  box-shadow: none;
  border: none;
  outline: none;
}
button.clicked {
  background: var(--primary-orange);
  color: var(--dark-bg);
  transform: translateY(0);
  box-shadow: none;
  border: none;
  outline: none;
  transition: all 0.3s ease;
}

button.clicked::before {
  opacity: 0 !important;
}





.scroll-to-top.clicked {
  background: var(--primary-orange);
  color: var(--dark-bg);
  transform: translateY(0) scale(1);
  box-shadow: none;
  border: none;
  outline: none;
  transition: all 0.3s ease;
}



.booking-link.clicked {
  color: var(--primary-orange);
  background: rgba(255, 107, 53, 0.3);
  transform: translateY(0);
  box-shadow: none;
  border: none;
  transition: all 0.3s ease;
}


.booking-link { 
  color: var(--primary-blue); text-decoration: none; font-weight: 600;
  transition: var(--transition-normal); padding: var(--space-sm) var(--space-md);
  border-radius: var(--radius-sm); background: rgba(0, 212, 255, 0.1);
}

.booking-link:hover, .booking-link:focus { 
  color: var(--primary-orange); background: rgba(255, 107, 53, 0.1);
  transform: translateY(-1px);
}

.booking-link:active {
  color: var(--primary-orange);
  background: rgba(255, 107, 53, 0.2);
  transform: translateY(0);
  box-shadow: none;
  border: none;
}

.warp-yellow {
  color: var(--primary-orange);
}

@keyframes fadeInUp {
  from { 
    opacity: 0; transform: translateY(20px); 
  }
  to { 
    opacity: 1; transform: translateY(0); 
  }
}

@keyframes slideInFromTop {
  from { 
    opacity: 0; transform: translateY(-30px); 
  }
  to { 
    opacity: 1; transform: translateY(0); 
  }
}

@keyframes slideInFromBottom {
  from { 
    opacity: 0; transform: translateY(30px); 
  }
  to { 
    opacity: 1; transform: translateY(0); 
  }
}

.loading {
  opacity: 1; 
  animation: fadeInUp 0.8s ease-out forwards;
}

.booking-cta {
  margin-top: var(--space-2xl);
  margin-bottom: var(--space-lg);
  position: relative;
  /* Initialer Zustand - unsichtbar */
  opacity: 0;
  transform: translateY(20px);
  /* Sanfte Hover-Effekte */
  transition: all 0.4s ease;
}

.booking-cta:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 35px rgba(0, 212, 255, 0.15);
}

/* Animation wird nur durch CSS-Klasse ausgelöst */
.booking-cta.animate {
  animation: fadeInUp 0.8s ease-out 0.2s both;
}

/* Wurmloch-Link Styling */
a[href="#wurmloch"]:hover {
  color: var(--primary-orange) !important;
  text-decoration-color: var(--primary-orange) !important;
  text-shadow: 0 0 8px rgba(255, 140, 66, 0.5);
}

/* Strich über dem Kasten entfernt */

/* Neue Linie unter der Preiszeile */
.price-line {
  position: relative;
  margin-bottom: 30px;
}

/* Linie entfernt */

.blue-text {
  color: var(--primary-blue);
}

.pricing-info p {
  margin: var(--space-md) 0 0 0;
  color: #b8c5d1;
  font-size: 1.1rem;
  text-align: left;
  text-shadow: 0 0 1px rgba(255, 255, 255, 0.1);
}



.presenter {
  margin-bottom: var(--space-xs);
  color: var(--primary-blue);
  font-weight: 400;
  font-size: 1.1rem;
  text-shadow: 0 0 1px rgba(255, 255, 255, 0.1);
}

.main-title { 
  margin-bottom: var(--space-sm); 
  font-family: var(--font-primary); /* Bessere Umlaut-Darstellung */
  font-weight: 700; 
  letter-spacing: 0.1em; 
  text-transform: uppercase;
  color: var(--primary-blue); 
  font-size: 2.5rem;
}

/* Spezielle Regel nur für "Das Prinzip Janeway" auf der Hauptseite */



.presenter-info {
  display: flex; align-items: flex-start; gap: var(--space-2xl); 
  margin: var(--space-2xl) 0; text-align: left; flex-direction: column;
  max-width: 100%;
}

.presenter-image {
  width: 100%; max-width: 100%; height: auto; aspect-ratio: 1; min-height: 200px;
  object-fit: cover; object-position: 70% center; border-radius: var(--radius-lg);
  border: 2px solid rgba(255, 255, 255, 0.1); box-shadow: var(--shadow-md);
  flex-shrink: 0; align-self: center; z-index: 1;
  opacity: 0.7; /* Transparenz hinzugefügt - Bild ist jetzt dunkler */
}



.presenter-text { 
  flex: 1; text-align: left; min-width: auto; max-width: 100%; 
  margin-top: var(--space-md); 
}





.mission-cta {
  margin-top: var(--space-2xl); text-align: center; padding: var(--space-lg);
  background: rgba(15, 15, 25, 0.8); border-radius: var(--radius-lg);
  border: none; box-shadow: var(--shadow-md);
  backdrop-filter: blur(3px);
  position: relative;
  overflow: hidden;
  /* Animationen hinzugefügt */
  animation: slideInUp 0.8s ease-out 0.3s both;
  transition: all var(--transition-normal);
}

.mission-cta:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-lg), var(--shadow-glow);
}

.mission-cta h3 {
  color: var(--primary-blue); margin-bottom: var(--space-md); 
  font-size: 1.8rem; 
  /* Animation für Überschrift */
  animation: fadeInUp 0.6s ease-out 0.5s both;
}

.mission-cta p {
  margin-bottom: var(--space-xl); color: #b8c5d1;
  font-size: 1.2rem;
  text-shadow: 0 0 1px rgba(255, 255, 255, 0.1);
  /* Animation für blauen Text */
  animation: fadeInUp 0.6s ease-out 0.7s both;
}

.mission-cta .cta-buttons {
  /* Animation für Buttons */
  animation: fadeInUp 0.6s ease-out 0.9s both;
}

/* Spezielle Animationen für den Kasten auf der Indexseite */



/* Neue Keyframe-Animationen */
@keyframes slideInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes gentlePulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.9;
    transform: scale(1.02);
  }
}

.mission-cta::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: none;
  opacity: 0.12;
  z-index: -1;
  pointer-events: none;
}

.mission-cta .cta-buttons {
  display: flex;
  gap: var(--space-lg);
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  margin-top: var(--space-lg);
}

.mission-cta .cta-buttons .termin-button {
  background: linear-gradient(135deg, var(--primary-blue) 0%, #00d4ff 100%);
  color: #b8c5d1;
  border: 2px solid var(--primary-blue);
  font-weight: 600;
  min-width: 150px;
  transition: all var(--transition-normal);
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0, 212, 255, 0.3);
}

.mission-cta .cta-buttons .termin-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: left 0.6s ease;
}

.mission-cta .cta-buttons .termin-button:hover::before {
  left: 100%;
}

.mission-cta .cta-buttons .termin-button:hover {
  background: linear-gradient(135deg, #00d4ff 0%, var(--primary-blue) 100%);
  transform: translateY(-3px);
  box-shadow: 0 8px 25px rgba(0, 212, 255, 0.5);
}

.mission-cta .cta-buttons .termin-button:active {
  transform: translateY(-1px);
}






.scroll-to-top {
  position: fixed; bottom: 120px; right: 30px; 
  background: linear-gradient(135deg, var(--primary-blue), var(--primary-orange));
  color: var(--dark-bg); border: none; border-radius: 50%; 
  width: 60px; height: 60px; font-size: 1.5rem; cursor: pointer;
  z-index: 1002; opacity: 0; visibility: hidden; 
  transition: all var(--transition-normal) cubic-bezier(0.4, 0, 0.2, 1); display: flex;
  align-items: center; justify-content: center;
  box-shadow: var(--shadow-md);
  will-change: transform, opacity;
  /* Verbesserte Touch-Unterstützung */
  -webkit-tap-highlight-color: rgba(0, 212, 255, 0.3);
  touch-action: manipulation;
  user-select: none;
}

.scroll-to-top.visible { opacity: 1; visibility: visible; }
.scroll-to-top:hover { 
  transform: translateY(-3px) scale(1.1); 
  box-shadow: var(--shadow-lg), var(--shadow-glow);
}

.scroll-to-top:active {
  background: var(--primary-orange);
  transform: translateY(0) scale(1);
  box-shadow: none;
  border: none;
}


body.andreadis .background {
  background: url('../weltraum-sternenfeld-optimized.jpg') no-repeat center center fixed; 
  background-size: cover; opacity: 0.6;
}

body.anfrage .background, body.impressum .background, body.termin .background {
  background: url('../weltraum-sternenfeld-optimized.jpg') no-repeat center center fixed;
  background-size: cover; opacity: 0.55;
}

/* Tablet-Hintergrund für alle Seiten anpassen */
@media (min-width: 768px) and (max-width: 1024px) {
  /* ALLE Seiten - Hintergrundbild komplett entfernen, nur CSS-Galaxie anzeigen */
  .background {
    background: none !important;
  }
  
  /* Galaxie-Hintergrund für alle Tablet-Seiten */
  body .background::before {
    content: "" !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 999 !important;
    background: 
      /* Zentrale Galaxie (Hauptnebel) */
      radial-gradient(120px 80px at 400px 200px, rgba(138, 43, 226, 0.15), transparent),
      radial-gradient(100px 60px at 350px 180px, rgba(75, 0, 130, 0.12), transparent),
      
      /* Spiralarme der Galaxie */
      radial-gradient(80px 40px at 300px 150px, rgba(0, 191, 255, 0.1), transparent),
      radial-gradient(60px 30px at 500px 220px, rgba(0, 191, 255, 0.08), transparent),
      radial-gradient(70px 35px at 200px 250px, rgba(0, 191, 255, 0.09), transparent),
      radial-gradient(90px 45px at 600px 180px, rgba(0, 191, 255, 0.07), transparent),
      
      /* Sternhaufen und Nebel */
      radial-gradient(50px 25px at 150px 100px, rgba(255, 215, 0, 0.06), transparent),
      radial-gradient(40px 20px at 650px 120px, rgba(255, 140, 0, 0.05), transparent),
      radial-gradient(60px 30px at 100px 300px, rgba(255, 20, 147, 0.08), transparent),
      radial-gradient(45px 22px at 700px 280px, rgba(255, 20, 147, 0.06), transparent),
      
      /* Einzelne Sterne (verschiedene Größen) */
      radial-gradient(3px 3px at 120px 80px, #fff, transparent),
      radial-gradient(2px 2px at 280px 120px, rgba(255, 255, 255, 0.9), transparent),
      radial-gradient(3px 3px at 450px 90px, #fff, transparent),
      radial-gradient(2px 2px at 580px 160px, rgba(255, 255, 255, 0.8), transparent),
      radial-gradient(3px 3px at 180px 200px, #fff, transparent),
      radial-gradient(2px 2px at 320px 280px, rgba(255, 255, 255, 0.9), transparent),
      radial-gradient(3px 3px at 520px 240px, #fff, transparent),
      radial-gradient(2px 2px at 680px 200px, rgba(255, 255, 255, 0.8), transparent),
      radial-gradient(1px 1px at 90px 150px, #fff, transparent),
      radial-gradient(1px 1px at 220px 90px, rgba(255, 255, 255, 0.7), transparent),
      radial-gradient(1px 1px at 380px 120px, #fff, transparent),
      radial-gradient(1px 1px at 540px 180px, rgba(255, 255, 255, 0.8), transparent),
      radial-gradient(1px 1px at 160px 280px, #fff, transparent),
      radial-gradient(1px 1px at 420px 300px, rgba(255, 255, 255, 0.7), transparent),
      radial-gradient(1px 1px at 600px 100px, #fff, transparent),
      radial-gradient(1px 1px at 250px 60px, rgba(255, 255, 255, 0.8), transparent);
    
    background-repeat: no-repeat;
    background-size: 800px 400px;
    opacity: 0.7;
    animation: galaxyFloat 20s ease-in-out infinite;
  }
  
  @keyframes galaxyFloat {
    0%, 100% { 
      transform: translateY(0px) scale(1);
      opacity: 0.7;
    }
    25% { 
      transform: translateY(-8px) scale(1.01);
      opacity: 0.8;
    }
    50% { 
      transform: translateY(4px) scale(0.99);
      opacity: 0.6;
    }
    75% { 
      transform: translateY(-4px) scale(1.005);
      opacity: 0.9;
    }
  }
}

/* ZUSÄTZLICHER TEST: Für alle Bildschirmgrößen - um zu sehen ob CSS überhaupt funktioniert */
body .background::after {
  content: "" !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 99999 !important; /* Höchster z-index überhaupt */
  background: rgba(0, 255, 0, 0.3) !important; /* GRÜNER Test-Hintergrund für alle */
  pointer-events: none !important;
}

/* ZUSÄTZLICHER TEST: Für alle Bildschirmgrößen - um zu sehen ob CSS überhaupt funktioniert */
body .background::after {
  content: "" !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 99999 !important; /* Höchster z-index überhaupt */
  background: rgba(0, 255, 0, 0.3) !important; /* GRÜNER Test-Hintergrund für alle */
  pointer-events: none !important;
}
  
  @keyframes spaceFloat {
    0%, 100% { 
      transform: translateY(0px) scale(1);
      opacity: 0.6;
    }
    25% { 
      transform: translateY(-10px) scale(1.02);
      opacity: 0.7;
    }
    50% { 
      transform: translateY(5px) scale(0.98);
      opacity: 0.5;
    }
    75% { 
      transform: translateY(-5px) scale(1.01);
      opacity: 0.8;
    }
  }
  
  /* Zusätzliche Animation für einzelne Sterne */
  body .background::after {
    content: "" !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 1000 !important; /* Noch höherer z-index */
    background: 
      radial-gradient(1px 1px at 120px 60px, #fff, transparent),
      radial-gradient(1px 1px at 320px 90px, rgba(255, 255, 255, 0.8), transparent),
      radial-gradient(1px 1px at 520px 130px, #fff, transparent),
      radial-gradient(1px 1px at 720px 70px, rgba(255, 255, 255, 0.9), transparent),
      radial-gradient(1px 1px at 920px 110px, #fff, transparent) !important;
    background-repeat: no-repeat !important;
    background-size: 1000px 500px !important;
    opacity: 0.7 !important; /* Höhere Transparenz */
    animation: starTwinkle 3s ease-in-out infinite alternate !important;
  }
  
  @keyframes starTwinkle {
    0% { opacity: 0.2; }
    100% { opacity: 0.6; }
  }
}

body.anfrage section {
    position: relative;
  }

  /* janeway-background Klasse entfernt */

  body.andreadis header { margin-top: 0; }

  /* Textfilter-Hintergrund für Indexseite entfernt */


  .janeway-image-box {
    position: relative; background: none; border-radius: var(--radius-lg); 
    padding: 0; margin: var(--space-sm) 0 var(--space-lg) 0;
    box-shadow: var(--shadow-md); text-align: center; width: 100%; 
    overflow: hidden; transition: var(--transition-normal);
  }

  /* Neues Hauptbild zwischen Überschrift und Text */
  .janeway-main-image {
    text-align: left;
    margin: var(--space-xl) 0 var(--space-xl) 0;
    width: 100%;
    /* Mobile-Optimierung */
    position: relative;
    overflow: visible;
  }

  .janeway-main-image .janeway-photo {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    transition: var(--transition-normal);
    opacity: 0.25; /* Transparenz erhöht - Foto ist jetzt dunkler */
    position: relative; /* Wichtig für Pseudo-Elemente */
  }

  .janeway-main-image .janeway-photo:hover {
    transform: translateY(-4px) scale(1.02);
    box-shadow: var(--shadow-lg), var(--shadow-glow);
    opacity: 0.9; /* Transparenz beim Hover reduzieren */
    border: 2px solid var(--primary-blue);
    filter: brightness(1.1) contrast(1.1);
  }

  /* Zusätzliche Hover-Effekte für das Foto */
  .janeway-main-image .janeway-photo::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, 
      rgba(0, 212, 255, 0.2) 0%, 
      rgba(0, 212, 255, 0.1) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
    border-radius: var(--radius-lg);
    pointer-events: none;
  }

  .janeway-main-image .janeway-photo:hover::before {
    opacity: 1;
  }

  /* Hover-Animation für den Bildrahmen */
  .janeway-main-image .janeway-photo::after {
    content: "";
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    background: linear-gradient(45deg, 
      var(--primary-blue), 
      var(--primary-orange), 
      var(--primary-blue));
    border-radius: var(--radius-lg);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: -1;
    background-size: 200% 200%;
    animation: borderGlow 2s ease-in-out infinite;
  }

  .janeway-main-image .janeway-photo:hover::after {
    opacity: 1;
  }

  /* KI-Credit für das Bild */
  .ki-credit {
    position: absolute;
    bottom: 10px;
    left: 10px;
    background: rgba(0, 0, 0, 0.7);
    color: #b8c5d1;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 300;
    backdrop-filter: blur(2px);
    z-index: 2;
    opacity: 0.8;
    transition: opacity 0.3s ease;
  }

  .janeway-main-image:hover .ki-credit {
    opacity: 1;
  }

  /* Glow-Animation für den Rahmen */
  @keyframes borderGlow {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
  }



  /* Alte Pseudo-Elemente für janeway-image-box entfernt, da nicht mehr benötigt */


body.impressum main, body.impressum section, body.impressum .main-content, body.impressum p { 
  font-weight: 400; 
  color: #b8c5d1;
  line-height: 1.4;
  text-shadow: 0 0 1px rgba(255, 255, 255, 0.1);
}

/* Hauptüberschrift auf Impressum-Seite mit verringertem Abstand */
body.impressum .main-title {
  margin-bottom: var(--space-lg); /* Verringert von var(--space-3xl) zu var(--space-lg) */
  color: var(--primary-blue);
}

body.impressum h2:not(.main-title) { 
  font-size: 1.8rem; 
  color: var(--primary-blue);
  margin-bottom: var(--space-md);
  margin-top: var(--space-lg);
} 
body.impressum h3 { 
  font-size: 1.3rem; 
  color: var(--primary-blue);
  margin-top: var(--space-md);
  margin-bottom: var(--space-sm);
  text-shadow: 0 0 1px rgba(0, 212, 255, 0.3);
}
body.impressum p { 
  font-weight: 400; 
  margin-bottom: var(--space-md);
  color: #b8c5d1;
  text-shadow: 0 0 1px rgba(255, 255, 255, 0.1);
}

body.impressum .company-info {
  background: rgba(0, 212, 255, 0.02);
  padding: var(--space-lg);
  border-radius: var(--radius-md);
  border-left: 4px solid var(--primary-blue);
  margin-bottom: var(--space-xl);
}

body.impressum .company-info p {
  margin-bottom: var(--space-sm);
  color: #b8c5d1;
}

body.impressum .company-info p:last-child {
  margin-bottom: 0;
}

/* Globale Textfarben für alle Seiten - nur Paragraphen aufhellen, Überschriften bleiben wie sie sind */
/* Ausnahmen für blaue Texte hinzugefügt */

/* Datenschutzerklärung-Text auf blau ändern - vereinfacht */
.privacy-notice p {
  color: var(--primary-blue) !important; /* Blau für den Datenschutz-Text */
}

/* Blaue Texte - vereinfacht */
.blue-text {
  color: var(--primary-blue) !important; /* Blau für die hervorgehobenen Texte */
}

/* Buchungs-CTA auf der Impressum-Seite blau machen - vereinfacht */
.booking-cta {
  color: var(--primary-blue) !important; /* Blau für den Buchungstext */
}

/* Dezente Animationen für die Elemente des Kastens */
.booking-cta h3 {
  opacity: 0;
  transform: translateY(15px);
  transition: all 0.6s ease;
}

.booking-cta p {
  opacity: 0;
  transform: translateY(15px);
  transition: all 0.6s ease;
}

.booking-cta .termin-button {
  opacity: 0;
  transform: translateY(15px);
  transition: all 0.6s ease;
}

/* Animation wird nur durch CSS-Klassen ausgelöst */
.booking-cta.animate h3 {
  animation: fadeInUp 0.6s ease-out 0.4s both;
}

.booking-cta.animate p {
  animation: fadeInUp 0.6s ease-out 0.6s both;
}

.booking-cta.animate .termin-button {
  animation: fadeInUp 0.6s ease-out 0.8s both;
}

.booking-cta .termin-button:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 8px 25px rgba(0, 212, 255, 0.3);
}

/* Redundante Regeln entfernt - .blue-text Klasse funktioniert bereits */

/* Janeway-Links Styling */
.janeway-link {
  color: var(--primary-blue);
  text-decoration: none;
  transition: var(--transition-normal);
  border-bottom: 1px solid transparent;
}

.janeway-link:hover {
  color: var(--primary-blue);
  border-bottom-color: var(--primary-blue);
  text-shadow: 0 0 8px rgba(0, 212, 255, 0.5);
}

/* Tablet: Unterstreichung für Janeway-Links */
@media (max-width: 1023px) and (min-width: 768px) {
  .janeway-link {
    border-bottom: 1px solid var(--primary-blue);
    text-decoration: underline;
    text-decoration-color: var(--primary-blue);
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
  }
  
  .janeway-link:hover {
    border-bottom-color: var(--primary-orange);
    text-decoration-color: var(--primary-orange);
    transform: translateY(-1px);
  }
}

/* Mobile: Dünnere Unterstreichung für Janeway-Links */
@media (max-width: 767px) {
  .janeway-link {
    border-bottom: 1px solid var(--primary-blue);
    text-decoration: underline;
    text-decoration-color: var(--primary-blue);
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
  }
  
  .janeway-link:hover {
    border-bottom-color: var(--primary-orange);
    text-decoration-color: var(--primary-orange);
    transform: translateY(-1px);
  }
}

/* Reduzierte Abstände für Janeway-Modal Aufzählungen */
#janewayModal ul {
  margin: var(--space-sm) 0;
  padding-left: var(--space-lg);
}

#janewayModal li {
  margin-bottom: var(--space-xs);
  line-height: 1.3;
}

/* Reduzierte Abstände zwischen Überschriften und Text im Janeway-Modal */
#janewayModal h3 {
  margin-bottom: var(--space-sm);
  margin-top: var(--space-lg);
}

#janewayModal h3:first-of-type {
  margin-top: 0;
}

/* Hauptüberschrift orange machen */
#janewayModal h2 {
  color: var(--primary-orange) !important;
}

/* Touch-Optimierung für Janeway-Modal */
#janewayModal {
  touch-action: manipulation;
}

#janewayModal .modal-content {
  /* Spezielle Touch-Optimierung für Janeway-Modal */
  touch-action: manipulation;
  /* Größere Touch-Bereiche für mobile Geräte */
  padding: var(--space-xl);
}

/* Zusätzliche Sicherheit für den Inhalt */
#janewayModal .modal-content > * {
  position: relative;
  z-index: 1;
}

#janewayModal .close {
  /* Touch-optimierter Close-Button für Janeway-Modal */
  min-width: 50px; min-height: 50px;
  touch-action: manipulation;
}

/* Andreadis Mission CTA mit blauen Borders und erweiterten Hover-Effekten */
body.andreadis .mission-cta {
  border-left: 4px solid var(--primary-blue);
  border-right: 4px solid var(--primary-blue);
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

body.andreadis .mission-cta::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, 
    rgba(0, 212, 255, 0.1) 0%, 
    rgba(0, 212, 255, 0.05) 100%);
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: -1;
}

body.andreadis .mission-cta::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(90deg, 
    rgba(0, 212, 255, 0.15) 0%, 
    transparent 50%, 
    rgba(0, 212, 255, 0.15) 100%);
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: -1;
}

body.andreadis .mission-cta:hover {
  transform: translateY(-2px);
  border-left-color: var(--primary-blue);
  border-right-color: var(--primary-blue);
  box-shadow: var(--shadow-lg), var(--shadow-glow);
  background: rgba(0, 212, 255, 0.05);
}

body.andreadis .mission-cta:hover::before {
  opacity: 1;
}

body.andreadis .mission-cta:hover::after {
  opacity: 1;
}












/* DESKTOP (1200px+) */
@media (min-width: 1200px) {
  .main-content { 
    max-width: 1600px; 
    contain: layout style;
  }
  
  /* Typography Scale */
  h1 { font-size: clamp(3.2rem, 4vw, 4rem); }
  h2 { font-size: clamp(2.6rem, 3.2vw, 3.2rem); }
  h3 { font-size: clamp(1.6rem, 1.8vw, 1.8rem); }
  
  /* Desktop: Datenschutz-Seite - Überschriften-Größen werden durch Inline-Styles gesteuert */
  
  /* Desktop Navigation */
  .top-nav { display: flex; }
  .hamburger-menu, .mobile-nav { 
    display: none; 
    visibility: hidden; 
    opacity: 0; 
    position: absolute; 
    z-index: -1; 
  }
}

/* TABLET (768px - 1199px) */
@media (max-width: 1199px) and (min-width: 768px) {
  .background { background-position: center 40%; }
  main, section, .main-content { font-size: 1rem; line-height: 1.6; }
  h1 { font-size: 2.8rem; }
  h2 { font-size: 2.2rem; }
  h3 { font-size: 1.4rem; }
  
  .top-nav { 
    height: 70px; 
    display: flex !important;
  }
  .top-nav nav { gap: var(--space-lg); }
  .top-nav nav a { font-size: 1rem; padding: var(--space-sm) var(--space-md); }
  
  .main-content { padding-left: var(--space-lg); padding-right: var(--space-lg); }
  main { padding: var(--space-xl) var(--space-lg); }
  section { padding: var(--space-lg); }
  
  /* Hide mobile navigation on desktop */
  .hamburger-menu {
    display: none !important;
  }
  .mobile-nav {
    display: none !important;
  }
  
  /* Ensure mobile navigation is completely hidden */
  .mobile-nav {
    visibility: hidden !important;
    opacity: 0 !important;
    position: absolute !important;
    z-index: -1 !important;
  }
  
  /* Tablet: Entferne Weltraum-Sternenhintergrund auf Impressum und Datenschutz */
  body.impressum .background,
  body.datenschutz .background {
    background: none !important;
  }

}

/* TABLET (768px - 1023px) */
@media (max-width: 1023px) and (min-width: 768px) {
  /* Typography Scale */
  h1 { font-size: clamp(2.4rem, 3vw, 3rem); }
  h2 { font-size: clamp(1.8rem, 2.4vw, 2.4rem); }
  h3 { font-size: clamp(1.2rem, 1.5vw, 1.5rem); }
  
  /* Layout */
  .main-content { 
    padding-left: var(--space-lg); 
    padding-right: var(--space-lg); 
  }
  main { padding: var(--space-xl) var(--space-lg); }
  section { padding: var(--space-lg); }
  
  /* iPad Portrait: Janeway-Bild im Haupttext */
  .close { 
    top: var(--space-lg); 
    right: var(--space-xl); 
    font-size: 2.2rem;
    min-width: 48px; 
    min-height: 48px; 
    display: flex; 
    align-items: center; 
    justify-content: center;
    touch-action: manipulation;
  }
  
  /* Tablet: Entferne Weltraum-Sternenhintergrund auf Impressum und Datenschutz */
  body.impressum .background,
  body.datenschutz .background {
    background: none !important;
    background-image: none !important;
    background-size: auto !important;
    opacity: 1 !important;
  }
  
  /* Tablet Querformat: Zusätzliche Sicherheit für Hintergrund-Entfernung */
  @media (orientation: landscape) {
    body.impressum .background,
    body.datenschutz .background {
      background: none !important;
      background-image: none !important;
      background-size: auto !important;
      opacity: 1 !important;
    }
  }
}

/* MOBILE (≤767px) - PORTRAIT */
@media (max-width: 767px) and (orientation: portrait) {
  .scroll-to-top { 
    bottom: 100px; 
    right: 20px; 
    width: 50px; 
    height: 50px; 
    font-size: 1.3rem; 
    /* Zusätzliche mobile Optimierungen */
    z-index: 1002 !important;
    -webkit-tap-highlight-color: rgba(0, 212, 255, 0.3) !important;
    touch-action: manipulation !important;
    user-select: none !important;
  }
  
  .background { background-position: center center; }
  
  
  .main-content { padding-bottom: 120px; padding-top: var(--space-lg); }
  
  main, section, .main-content { font-size: 1rem; line-height: 1.6; }
  h1 { font-size: 2.2rem; }
  h2 { font-size: 1.8rem; }
  h3 { font-size: 1.3rem; }
  
  .main-content { padding-left: var(--space-md); padding-right: var(--space-md); }
  main { padding: var(--space-lg) var(--space-md); }
  section { padding: var(--space-md); }
  
  /* Mobile: Entferne Filterhintergrund für bestimmte Seiten */
  body.anfrage section, body.impressum section, body.andreadis section {
    position: relative; background: none; border-radius: 0; padding: var(--space-md);
    margin: 0; border: none; box-shadow: none;
  }
  
  /* Mobile: Entferne das Hintergrundbild der Indexseite */
  
  /* Mobile: Janeway-Bildkasten */
  

  
  /* Mobile: Presenter Image */
  .presenter-info { 
    flex-direction: column; align-items: center; text-align: left; 
    gap: var(--space-md) !important; 
    margin: var(--space-md) 0 !important; 
  }
  
  /* Mobile: Andreadis-Seite - Alle Texte linksbündig */
  body.andreadis .presenter-info,
  body.andreadis .presenter-text,
  body.andreadis .presenter-text h3,
  body.andreadis .presenter-text p,
  body.andreadis main,
  body.andreadis .main-content,
  body.andreadis p,
  body.andreadis .presenter-info *,
  body.andreadis .presenter-text *,
  body.andreadis .presenter-info h3,
  body.andreadis .presenter-info p,
  body.andreadis .presenter-text h3,
  body.andreadis .presenter-text p {
    text-align: left !important;
  }
  
  .presenter-image {
    max-width: 100% !important; /* Volle Breite für Mobile */
    margin-bottom: var(--space-md) !important; /* Reduziert von lg */
    opacity: 0.7 !important; /* Transparenz für mobile - Bild ist jetzt dunkler */
  }
  
  .presenter-text h3 {
    font-size: 1.2rem !important; /* Angepasst für mobile Lesbarkeit */
    margin-bottom: 0.5rem !important;
  }
  
  .presenter-text p {
    font-size: 0.95rem !important; /* Etwas kleiner für bessere Zeilenlänge */
    line-height: 1.5 !important; /* Optimierte Zeilenhöhe */
  }

  
  /* Mobile: CSS-Sterne statt Hintergrundbild */
  .background {
    background: none !important;
    filter: none !important;
  }
  
  /* Mobile: Verbesserte Mission-CTA */
  .mission-cta {
    min-height: 250px !important; /* Reduziert von 300px */
    padding: var(--space-md) !important; /* Kompaktere Abstände */
    /* Kasten um das Feld "Lassen Sie sich..." für Telefonvariante */
    border: 2px solid rgba(0, 212, 255, 0.3) !important;
    border-radius: 12px !important;
    background: rgba(0, 212, 255, 0.05) !important;
    box-shadow: 0 4px 12px rgba(0, 212, 255, 0.1) !important;
    margin: var(--space-lg) 0 !important;
  }
  
  .mission-cta h3 {
    font-size: 1.3rem !important; /* Angepasst für mobile */
    margin-bottom: var(--space-sm) !important;
    color: #ff8c42 !important; /* Orange Farbe für den Text */
  }
  
  .mission-cta .termin-button {
    font-size: 0.95rem !important; /* Etwas kleiner */
    padding: 0.5rem 1rem !important; /* Kompaktere Buttons */
    margin: 0 0.3rem !important; /* Kleinere Abstände zwischen Buttons */
  }
  
  /* Mobile: Explizit alle Hintergrundfilter entfernen */
  body.anfrage .background,
  body.impressum .background,
  body.termin .background {
    filter: none !important;
  }
  
  /* Mobile: Nur Section-Hintergründe für Termine-Seite entfernen */
  body.termin section {
    background: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  
  /* Mobile: Alle Glow-Effekte überall entfernen */
  .main-content,
  .janeway-photo,
  .mission-cta,
  .termin-dates-box,
  .reisekosten-box,
  .anmeldung-box,
  .preis-option,
  .top-nav,
  .mobile-nav,
  .hamburger-menu,
  .scroll-to-top,
  button,
  .termin-button,
  .booking-button,
  .cta-button {
    box-shadow: none !important;
    text-shadow: none !important;
  }
  
  /* Mobile: Spezifische Glow-Effekte für alle Seiten entfernen */
  .termin-dates-box,
  .reisekosten-box,
  .anmeldung-box,
  .preis-option,
  .mission-cta,
  .janeway-image-box,
  .top-nav,
  .mobile-nav,
  .hamburger-menu,
  .scroll-to-top,
  button,
  .termin-button,
  .booking-button,
  .cta-button {
    box-shadow: none !important;
    text-shadow: none !important;
  }
  
  /* Mobile: Andreadis-Seite - Box-Shadows für spezielle Elemente beibehalten */
  body.andreadis .mission-cta,
  body.andreadis .presenter-image {
    box-shadow: var(--shadow-md) !important;
  }
  
  /* Mobile: Datenschutz-Seite - Überschriften-Größen wie Impressum-Seite */
  /* Überschriften-Größen werden durch Inline-Styles gesteuert */
  
  /* Mobile: Datenschutz-Seite - Zusätzliche Styling-Regeln wie Impressum */
  body.datenschutz main,
  body.datenschutz section,
  body.datenschutz .main-content,
  body.datenschutz p {
    font-weight: 400 !important;
    color: #b8c5d1 !important;
    line-height: 1.4 !important;
    text-shadow: 0 0 1px rgba(255, 255, 255, 0.1) !important;
  }
  
  body.datenschutz .main-title {
    margin-bottom: var(--space-lg) !important;
    color: var(--primary-blue) !important;
  }
  
  body.datenschutz h2:not(.main-title) {
    font-size: 1.1rem !important;
    color: var(--primary-blue) !important;
    margin-bottom: var(--space-md) !important;
    margin-top: var(--space-lg) !important;
  }
  
  /* Spezifische h3-Regel für mobile Datenschutz-Seite - überschreibt alle anderen Regeln */
  body.datenschutz h3 {
    font-size: 1rem !important;
    color: var(--primary-blue) !important;
    margin-top: var(--space-md) !important;
    margin-bottom: var(--space-sm) !important;
    text-shadow: 0 0 1px rgba(0, 212, 255, 0.3) !important;
  }
  
  body.datenschutz p {
    font-weight: 400 !important;
    margin-bottom: var(--space-md) !important;
    color: #b8c5d1 !important;
    text-shadow: 0 0 1px rgba(255, 255, 255, 0.1) !important;
  }
  
  /* Mobile: Verbesserte Lesbarkeit */
  .main-title {
    font-size: 2.2rem !important; /* Größer für bessere Lesbarkeit auf Mobile */
    margin-bottom: var(--space-sm) !important;
  }
  
  .tech-text {
    font-size: 1.1rem !important; /* Optimiert für kleine Bildschirme */
  }
  
  /* Mobile: CSS-Sterne direkt im Body mit verbessertem Funkeln */
  body::before {
    content: "" !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: 
      radial-gradient(2px 2px at 20px 30px, #ffffff, transparent),
      radial-gradient(2px 2px at 40px 70px, #ffffff, transparent),
      radial-gradient(1px 1px at 90px 40px, #ffffff, transparent),
      radial-gradient(1px 1px at 130px 80px, #ffffff, transparent),
      radial-gradient(2px 2px at 160px 30px, #ffffff, transparent),
      radial-gradient(1px 1px at 200px 60px, #ffffff, transparent),
      radial-gradient(1px 1px at 250px 20px, #ffffff, transparent),
      radial-gradient(2px 2px at 280px 80px, #ffffff, transparent),
      radial-gradient(1px 1px at 320px 50px, #ffffff, transparent),
      radial-gradient(1px 1px at 350px 90px, #ffffff, transparent),
      radial-gradient(1.5px 1.5px at 60px 120px, #ffffff, transparent),
      radial-gradient(1px 1px at 180px 150px, #ffffff, transparent),
      radial-gradient(2px 2px at 300px 100px, #ffffff, transparent),
      radial-gradient(1px 1px at 80px 200px, #ffffff, transparent),
      radial-gradient(1.5px 1.5px at 220px 180px, #ffffff, transparent) !important;
    background-repeat: repeat !important;
    background-size: 400px 120px !important;
    animation: twinkle 8s ease-in-out infinite !important;
    opacity: 0.4 !important;
    pointer-events: none !important;
    z-index: 999 !important;
  }
  
  @keyframes twinkle {
    0%, 100% { 
      opacity: 0.4; 
      transform: translateY(0px) scale(1);
      filter: brightness(1);
    }
    15% { 
      opacity: 0.8; 
      transform: translateY(-2px) scale(1.1);
      filter: brightness(1.3);
    }
    30% { 
      opacity: 1; 
      transform: translateY(0px) scale(1.2);
      filter: brightness(1.5);
    }
    45% { 
      opacity: 0.9; 
      transform: translateY(1px) scale(1.1);
      filter: brightness(1.2);
    }
    60% { 
      opacity: 0.6; 
      transform: translateY(0px) scale(1);
      filter: brightness(1);
    }
    75% { 
      opacity: 0.7; 
      transform: translateY(-1px) scale(1.05);
      filter: brightness(1.1);
    }
    90% { 
      opacity: 0.5; 
      transform: translateY(0px) scale(1);
      filter: brightness(1);
    }
  }
  
  /* Mobile: Vereinfachtes Layout für den Call-to-Action */
  .booking-cta h3 {
    font-size: 1.2rem !important;
    margin-bottom: 0.3rem !important;
  }
  
  .booking-cta p {
    font-size: 1rem !important;
    margin-bottom: 1rem !important;
  }
  
  .booking-cta .termin-button {
    font-size: 1rem !important;
    padding: 0.6rem 1.2rem !important;
  }
}

/* ALLGEMEINE MOBILE NAVIGATION (≤767px) */
@media (max-width: 767px) {
  /* Ensure hamburger menu is visible */
  .hamburger-menu {
    display: flex;
    top: 0.8rem !important; /* Etwas näher am oberen Rand */
    right: 1rem !important;
  }
  
  /* Hide desktop navigation on mobile */
  .top-nav {
    display: none;
    padding: 0.5rem 1rem !important; /* Kompaktere Navigation */
  }
  
  /* Mobile navigation is hidden by default */
  .mobile-nav {
    display: none;
    padding-top: 3rem !important; /* Mehr Platz für den Hamburger */
  }
  
  /* Only show mobile navigation when active */
  .mobile-nav.active {
    display: flex;
  }
  

  
  /* Hamburger Menu Styles for all mobile devices */
  .hamburger-menu {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 1003;
    width: 50px;
    height: 50px;
    background: rgba(15, 15, 25, 0.4);
    border: 2px solid var(--primary-orange);
    border-radius: 50%;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transition: all 0.3s ease;
    backdrop-filter: blur(20px);
    box-shadow: var(--shadow-lg);
    /* Touch-friendly improvements */
    touch-action: manipulation;
    user-select: none;
  }
  
  .hamburger-menu:hover {
    background: rgba(15, 15, 25, 0.6);
    transform: scale(1.05);
    box-shadow: var(--shadow-lg), var(--shadow-glow);
  }
  
  .hamburger-menu.active {
    background: var(--primary-orange);
  }
  
  .hamburger-line {
    width: 24px;
    height: 3px;
    background: var(--primary-orange);
    margin: 2px 0;
    transition: all 0.3s ease;
    border-radius: 2px;
  }
  
  .hamburger-menu.active .hamburger-line {
    background: var(--dark-bg);
  }
  
  .hamburger-menu.active .hamburger-line:nth-child(1) {
    transform: rotate(45deg) translate(6px, 6px);
  }
  
  .hamburger-menu.active .hamburger-line:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
  }
  
  .hamburger-menu.active .hamburger-line:nth-child(3) {
    transform: rotate(-45deg) translate(6px, -6px);
  }
  
  /* Mobile Navigation Menu for all mobile devices */
  .mobile-nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(15, 15, 25, 0.95);
    backdrop-filter: blur(20px);
    z-index: 1002;
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    box-shadow: var(--shadow-lg);
    padding: var(--space-xl);
    will-change: transform, opacity;
  }
  
  /* Mobile Navigation aktivieren - NUR DAS NÖTIGSTE */
  .mobile-nav.active {
    display: flex;
    opacity: 1;
    visibility: visible;
  }
  
  .mobile-nav.active {
    opacity: 1;
    visibility: visible;
  }
  
  .mobile-nav a {
    color: rgba(155, 168, 184, 0.8);
    text-decoration: none;
    font-size: 1.5rem;
    font-weight: 600;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: var(--space-lg) var(--space-xl);
    margin: var(--space-md) 0;
    border: 2px solid transparent;
    border-radius: var(--radius-lg);
    transition: all 0.3s ease;
    text-align: center;
    min-width: 200px;
    width: 100%;
    max-width: 300px;
    /* Touch-friendly improvements */
    touch-action: manipulation;
    user-select: none;
    min-height: 44px; /* Apple's recommended minimum touch target size */
  }
  
  .mobile-nav a:hover,
  .mobile-nav a:focus {
    color: var(--primary-blue);
    border-color: var(--primary-blue);
    background: rgba(0, 212, 255, 0.1);
    transform: translateY(-2px);
  }
  
  .mobile-nav a.active {
    color: var(--primary-blue);
    border-color: var(--primary-blue);
    background: rgba(0, 212, 255, 0.2);
  }
  
  .main-content { padding-bottom: 120px; }
}

/* KLEINE MOBILE (≤375px) */
@media (max-width: 375px) {
  main, section, .main-content { font-size: 0.9rem; line-height: 1.5; }
  h1 { font-size: 1.8rem; }
  h2 { font-size: 1.5rem; }
  h3 { font-size: 1.1rem; }
  .main-content { padding-left: var(--space-sm); padding-right: var(--space-sm); }
  
  /* Kleinere Sterne für sehr kleine Bildschirme mit verbessertem Funkeln */
  body::before {
    background-size: 300px 80px !important;
    background-image: 
      radial-gradient(1px 1px at 15px 25px, #ffffff, transparent),
      radial-gradient(1px 1px at 35px 60px, #ffffff, transparent),
      radial-gradient(1px 1px at 70px 35px, #ffffff, transparent),
      radial-gradient(1px 1px at 100px 70px, #ffffff, transparent),
      radial-gradient(1px 1px at 130px 25px, #ffffff, transparent),
      radial-gradient(1px 1px at 160px 55px, #ffffff, transparent),
      radial-gradient(1px 1px at 190px 15px, #ffffff, transparent),
      radial-gradient(1px 1px at 220px 65px, #ffffff, transparent),
      radial-gradient(1.5px 1.5px at 50px 45px, #ffffff, transparent),
      radial-gradient(1px 1px at 120px 85px, #ffffff, transparent) !important;
    opacity: 0.3 !important;
    z-index: 999 !important;
    animation: twinkle 6s ease-in-out infinite !important;
  }
}

/* SEHR KLEINE MOBILE (≤320px) */
@media (max-width: 320px) {
  main, section, .main-content { font-size: 0.8rem; line-height: 1.4; }
  h1 { font-size: 1.6rem; }
  h2 { font-size: 1.3rem; }
  h3 { font-size: 1rem; }
  .main-content { padding-left: var(--space-xs); padding-right: var(--space-xs); }
  .scroll-to-top { 
    bottom: 80px; 
    right: 15px; 
    width: 45px; 
    height: 45px; 
    font-size: 1.1rem; 
    /* Zusätzliche mobile Optimierungen */
    z-index: 1002 !important;
    -webkit-tap-highlight-color: rgba(0, 212, 255, 0.3) !important;
    touch-action: manipulation !important;
    user-select: none !important;
  }
}

/* GROSSE MOBILE (428px - 767px) */
@media (min-width: 428px) and (max-width: 767px) {
  main, section, .main-content { font-size: 1.1rem; line-height: 1.7; }
  h1 { font-size: 2.4rem; }
  h2 { font-size: 2rem; }
  h3 { font-size: 1.4rem; }
}

/* HÖHEN-BASIERTE OPTIMIERUNGEN */
@media (max-height: 600px) and (max-width: 767px) {
  .main-content { padding-top: var(--space-sm); }
}

@media (max-height: 500px) and (max-width: 767px) {
  .main-content { padding-top: var(--space-xs); }
  .janeway-image-box { height: 150px; }
  .mobile-impressum-link { margin-top: var(--space-lg); }
}

/* MOBILE LANDSCAPE - BROWSER-SPEZIFISCHE FIXES */
@media (max-width: 767px) and (orientation: landscape) {

  
  /* Show hamburger menu on landscape mobile */
  .hamburger-menu {
    display: flex !important;
  }
  
  .main-content { padding-bottom: 120px; padding-top: var(--space-lg); }
  main, section, .main-content { font-size: 1rem; line-height: 1.6; }
  
  /* Landscape: Janeway-Bildkasten */
  
  /* Landscape: Entferne das Hintergrundbild der Indexseite */
  
  /* Landscape: Andreadis Linksbündige Darstellung */
  body.andreadis main, 
  body.andreadis .main-content, 
  body.andreadis p,
  body.andreadis .presenter-info,
  body.andreadis .presenter-text,
  body.andreadis .presenter-text h3,
  body.andreadis .presenter-text p,
  body.andreadis .presenter-info *,
  body.andreadis .presenter-text *,
  body.andreadis .presenter-info h3,
  body.andreadis .presenter-info p,
  body.andreadis .presenter-text h3,
  body.andreadis .presenter-text p { 
    text-align: left !important; 
  }
}



/* COPYRIGHT NOTICE STYLES */
.legal-notice {
  background: rgba(15, 15, 25, 0.9);
  border: 2px solid var(--primary-blue);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  margin: var(--space-xl) 0;
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow-md);
}

.legal-notice h4 {
  color: var(--primary-orange);
  font-size: 1.3rem;
  margin-bottom: var(--space-md);
  text-align: center;
}

.legal-notice h5 {
  color: var(--primary-blue);
  font-size: 1.1rem;
  margin: var(--space-lg) 0 var(--space-sm) 0;
}

.legal-notice p {
  color: #b8c5d1;
  line-height: 1.6;
  margin-bottom: var(--space-md);
  text-shadow: 0 0 1px rgba(255, 255, 255, 0.1);
}

/* Feedback-Elemente für das Formular */
.form-feedback {
  margin: 20px 0;
  padding: 15px;
  border-radius: 8px;
  font-weight: 500;
  text-align: center;
  transition: all 0.3s ease;
  opacity: 0;
  transform: translateY(-10px);
  animation: slideIn 0.3s ease forwards;
}

.form-feedback.success {
  background-color: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
}

.form-feedback.error {
  background-color: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}

@keyframes slideIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Loading-State für den Submit-Button */
button:disabled {
  opacity: 0.7;
  cursor: not-allowed;
  background-color: #6c757d;
}

/* Verbesserte Focus-Styles für Barrierefreiheit */
button:focus {
  outline: 2px solid #007bff;
  outline-offset: 2px;
}

/* Keyboard Navigation Verbesserungen */
.skip-link {
  position: absolute;
  top: -40px;
  left: 6px;
  background: #000;
  color: #b8c5d1;
  padding: 8px;
  text-decoration: none;
  border-radius: 4px;
  z-index: 1000;
}

.skip-link:focus {
  top: 6px;
}

/* Dark Mode Unterstützung */
@media (prefers-color-scheme: dark) {
  .form-feedback.success {
    background-color: #1e4d2b;
    color: #d4edda;
    border-color: #2d5a3d;
  }
  
  .form-feedback.error {
    background-color: #4d1e1e;
    color: #f8d7da;
    border-color: #5a2d2d;
  }
}

/* Responsive Design Verbesserungen */
@media (max-width: 768px) {
  .form-feedback {
    margin: 15px 0;
    padding: 12px;
    font-size: 14px;
  }
}



/* Terminseite Styles */
body.termin .loading {
  opacity: 1 !important;
}

.termin .booking-section {
  padding: var(--space-2xl) 0;
}

/* Animationen für alle Seiten */
.loading {
  opacity: 1;
  animation: fadeInUp 1s ease-out forwards;
}

.main-title {
  animation: slideInFromTop 1.2s ease-out 0.2s both;
}

.subtitle {
  animation: slideInFromTop 1.2s ease-out 0.4s both;
}

/* Spezielle Animationen für verschiedene Bereiche */
.booking-container,
.janeway-main-image,
.presenter-info,
.mission-cta {
  animation: slideInFromBottom 1.2s ease-out 0.6s both;
}



.termin .subtitle {
  text-align: center;
  color: #b8c5d1;
  font-size: 1.2rem;
  margin-bottom: var(--space-2xl);
}

.termin-info {
  text-align: center;
  padding: var(--space-xl);
  background: rgba(15, 15, 25, 0.6);
  border-radius: var(--radius-lg);
  border: 1px solid rgba(0, 212, 255, 0.2);
}

.termin-dates-box {
  text-align: left;
  padding: var(--space-xl);
  background: rgba(15, 15, 25, 0.6);
  border-radius: var(--radius-lg);
  border: 2px solid rgba(0, 212, 255, 0.3);
  box-shadow: var(--shadow-md);
  backdrop-filter: blur(3px);
  margin-top: 0;
}

.termin-dates-box h3 {
  color: var(--primary-blue);
  margin-bottom: var(--space-md);
  font-size: 1.3rem;
  text-align: left;
}

/* Neue Termin-Kästen Grid-Layout */
.termin-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-md);
  margin-top: var(--space-md);
}

/* Mobile Optimierung für Termin-Grid */
@media (max-width: 767px) {
  .termin-grid {
    grid-template-columns: 1fr;
    gap: var(--space-sm);
    margin-top: var(--space-sm);
  }
  
  .termin-date-box,
  .termin-time-box {
    padding: var(--space-sm);
    font-size: 0.9rem;
  }
  
  .termin-date-box strong,
  .termin-time-box strong {
    font-size: 0.8rem;
    margin-bottom: var(--space-xs);
  }
}

.termin-time-box {
  grid-column: 1 / -1;
  width: 100%;
}

.termin-date-box,
.termin-time-box {
  background: rgba(0, 212, 255, 0.05);
  border: none;
  border-radius: var(--radius-md);
  padding: var(--space-md);
  text-align: center;
  transition: var(--transition-normal);
}

.termin-date-box:hover,
.termin-time-box:hover {
  background: rgba(0, 212, 255, 0.1);
  border-color: var(--primary-blue);
  transform: translateY(-2px);
}

.anmeldung-box:hover,
.reisekosten-box:hover,
.preis-option:hover {
  transform: translateY(-2px);
}

.termin-date-box strong,
.termin-time-box strong {
  color: var(--primary-blue);
  display: block;
  margin-bottom: var(--space-xs);
  font-weight: 600;
}

.anmeldung-box {
  text-align: left;
  padding: var(--space-xl);
  background: rgba(15, 15, 25, 0.6);
  border-radius: var(--radius-lg);
  border: 2px solid rgba(0, 212, 255, 0.3);
  box-shadow: var(--shadow-md);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  margin-top: var(--space-xl);
  transition: var(--transition-normal);
}

/* Mobile Optimierung für Anmeldung-Box */
@media (max-width: 767px) {
  .anmeldung-box {
    padding: var(--space-lg);
    margin-top: var(--space-lg);
    /* Browser-Kompatibilität verbessern */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
  
  .anmeldung-box h3 {
    font-size: 1.2rem;
    margin-bottom: var(--space-md);
  }
  
  .anmeldung-box .form-group {
    margin-bottom: var(--space-md);
  }
  
  .anmeldung-box label {
    font-size: 0.9rem;
    margin-bottom: var(--space-sm);
  }
}

.anmeldung-box h3 {
  color: var(--primary-blue);
  margin-bottom: var(--space-lg);
  font-size: 1.3rem;
  text-align: left;
}

.anmeldung-box .form-group {
  margin-bottom: var(--space-lg);
  text-align: left;
}

.anmeldung-box label {
  display: block;
  margin-bottom: var(--space-md);
  color: var(--primary-blue) !important;
  font-weight: 500;
}

/* Mobile Formular-Optimierungen */
@media (max-width: 767px) {
  .anmeldung-box input[type="text"],
  .anmeldung-box input[type="email"],
  .anmeldung-box select {
    font-size: 16px; /* Verhindert Zoom auf iOS */
    padding: var(--space-sm);
    border-radius: var(--radius-sm);
    border: 1px solid rgba(0, 212, 255, 0.3);
    background: rgba(15, 15, 25, 0.8);
    color: #b8c5d1;
    width: 100%;
    box-sizing: border-box;
    /* Touch-Optimierung */
    -moz-appearance: none;
    appearance: none;
    /* Browser-Kompatibilität */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
  }
  
  .anmeldung-box select {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300d4ff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6,9 12,15 18,9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 16px;
    padding-right: 40px;
  }
  
  .anmeldung-box button[type="submit"] {
    width: 100%;
    padding: var(--space-md);
    font-size: 1rem;
    /* Touch-Optimierung */
    min-height: 44px;
    touch-action: manipulation;
  }
}

.anmeldung-box p {
  margin-bottom: var(--space-xs);
}

.anmeldung-box .booking-link {
  margin-left: var(--space-md);
}

/* Banküberweisung Styles */
.bankueberweisung-section {
  background: rgba(0, 212, 255, 0.05);
  border: 1px solid rgba(0, 212, 255, 0.2);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  margin-top: var(--space-lg);
}

.bankueberweisung-section h4 {
  color: var(--primary-blue);
  margin-bottom: var(--space-md);
}

.bank-details {
  background: rgba(15, 15, 25, 0.6);
  border: 1px solid rgba(0, 212, 255, 0.2);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  margin: var(--space-md) 0;
}

.bank-detail-row {
  margin-bottom: var(--space-sm);
  padding: var(--space-xs) 0;
}

.bank-detail-row:last-child {
  margin-bottom: 0;
}

.bank-detail-row strong {
  color: var(--primary-blue);
  display: inline-block;
  min-width: 140px;
}

.bank-notice {
  background: rgba(255, 140, 66, 0.1);
  border: 1px solid rgba(255, 140, 66, 0.3);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  margin-top: var(--space-md);
}

.bank-notice p {
  margin: 0;
  color: #b8c5d1;
}

.bank-notice strong {
  color: var(--primary-orange);
}

.anmeldung-box input,
.anmeldung-box select {
  width: 100%;
  padding: var(--space-sm);
  border: 1px solid rgba(0, 212, 255, 0.3);
  border-radius: var(--radius-md);
  background: rgba(15, 15, 25, 0.6);
  color: #b8c5d1;
  font-size: 1rem;
}

.anmeldung-box input:focus,
.anmeldung-box select:focus {
  outline: none;
}

.anmeldung-box button {
  background: linear-gradient(135deg, var(--primary-blue), var(--primary-orange));
  color: var(--dark-bg);
  border: none;
  border-radius: var(--radius-md);
  padding: var(--space-md) var(--space-xl);
  font-size: 1.1rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition-normal);
  margin-top: 0;  /* Kein Abstand zum E-Mail-Feld */
  text-align: center;
}

.anmeldung-box button:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg), var(--shadow-glow);
}

.anmeldung-box .privacy-notice {
  margin-top: 24px !important;  /* Größerer Abstand zum Button - überschreibt globale Regel */
  font-size: 0.9rem;
  color: #b8c5d1;
}

/* PayPal Sektion Styling */
.paypal-section {
  margin-top: var(--space-xl);
  padding: var(--space-lg);
  background: rgba(0, 123, 255, 0.1);
  border: 1px solid rgba(0, 123, 255, 0.3);
  border-radius: var(--radius-md);
  text-align: left;
}

.paypal-section h4 {
  color: var(--primary-blue);
  margin-bottom: var(--space-sm);
  font-size: 1.2rem;
  text-align: left;
}

.paypal-section p {
  margin-bottom: var(--space-md);
  color: #b8c5d1;
}

.paypal-note {
  font-size: 0.9rem;
  color: #b8c5d1;
  font-style: italic;
  margin-top: var(--space-md);
}

#paypal-button-container {
  margin: var(--space-md) 0;
}

.termin-info p {
  margin-bottom: var(--space-md);
  color: #b8c5d1;
  font-size: 1.1rem;
}

.termin-info p:last-child {
  margin-bottom: 0;
}

.termin-info .booking-link {
  color: var(--primary-blue);
  text-decoration: none;
  font-weight: 600;
  transition: var(--transition-normal);
}

.termin-info .booking-link:hover {
  color: var(--primary-orange);
  text-shadow: 0 0 8px rgba(255, 165, 0, 0.5);
}

.booking-container {
  display: block;
  max-width: 800px;
  margin: 0 auto;
}

.booking-form-card {
  background: rgba(15, 15, 25, 0.8);
  border: 2px solid rgba(0, 212, 255, 0.2);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  backdrop-filter: blur(3px);
  padding: var(--space-2xl);
}

.form-header {
  text-align: center;
  margin-bottom: var(--space-xl);
}

.form-header h2 {
  color: var(--primary-blue);
  margin-bottom: var(--space-sm);
  font-size: 1.5rem;
}

.form-group {
  margin-bottom: var(--space-lg);
}

.form-group label {
  display: block;
  margin-bottom: var(--space-md);  /* Vergrößert von var(--space-xs) */
  color: #b8c5d1;
  font-weight: 500;
}

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: var(--space-sm);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: var(--radius-md);
  background: rgba(15, 15, 25, 0.6);
  color: #b8c5d1;
  font-size: 1rem;
  transition: var(--transition-normal);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
}

/* Entfernt - keine Verfärbungen mehr */

.field-warning {
  color: #ff6b6b;
  font-size: 0.9rem;
  margin-top: 0.25rem;
}



/* Responsive Design für Terminseite */
@media (max-width: 1023px) {
  .booking-container {
    max-width: 90%;
  }
}

@media (max-width: 767px) {
  .termin .booking-section {
    padding: var(--space-xl) 0;
  }
  
  .booking-form-card {
    padding: var(--space-lg);
  }
  
  .info-content {
    padding: var(--space-lg);
  }
  
  .form-group input,
  .form-group select,
  .form-group textarea {
    font-size: 16px; /* Verhindert Zoom auf iOS */
  }
}

/* Loading Spinner */
.loading-spinner {
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 2px solid #ffffff;
  border-radius: 50%;
  border-top-color: transparent;
  animation: spin 1s ease-in-out infinite;
  margin-right: 8px;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

/* Spezifische Regel für Termin-Seite Labels */
body.termin .anmeldung-box label {
  margin-bottom: var(--space-md) !important;  /* Gleicher Abstand wie Anfrage-Seite */
}

/* Termin-Button Styling - wie booking-link */
.termin-button {
  color: var(--primary-blue);
  text-decoration: none;
  font-weight: 600;
  transition: var(--transition-normal);
  padding: var(--space-sm) var(--space-md);
  border-radius: var(--radius-sm);
  background: rgba(0, 212, 255, 0.1);
  display: inline-block;
  margin-left: 12px;
}

.termin-button:hover, .termin-button:focus {
  color: var(--primary-orange);
  background: rgba(255, 107, 53, 0.1);
  transform: translateY(-1px);
}

.termin-button:active {
  color: var(--primary-orange);
  background: rgba(255, 107, 53, 0.2);
  transform: translateY(0);
  box-shadow: none;
  border: none;
}

/* Responsive Anpassung für den Termin-Button */
@media (max-width: 767px) {
  .termin-button {
    display: block;
    margin: 8px 0 0 0;
    text-align: center;
    width: fit-content;
  }
}

/* ===== DATENSCHUTZ-SEITE STYLES ===== */
/* Desktop-Regeln für Datenschutz-Seite - Überschriften-Größen wie Impressum-Seite */
/* Diese Regeln haben höhere Spezifität und überschreiben die allgemeinen Regeln */
body.datenschutz main,
body.datenschutz section,
body.datenschutz .main-content,
body.datenschutz p {
  font-weight: 400;
  color: #b8c5d1;
  line-height: 1.4;
  text-shadow: 0 0 1px rgba(255, 255, 255, 0.1);
}

body.datenschutz .main-title {
  margin-bottom: var(--space-lg);
  color: var(--primary-blue);
}

body.datenschutz h2:not(.main-title) {
  font-size: 1.8rem;
  color: var(--primary-blue);
  margin-bottom: var(--space-md);
  margin-top: var(--space-lg);
}

/* Spezifische h3-Regel für Datenschutz-Seite - überschreibt die allgemeine h3-Regel */
body.datenschutz h3 {
  font-size: 1.3rem;
  color: var(--primary-blue);
  margin-top: var(--space-md);
  margin-bottom: var(--space-sm);
  text-shadow: 0 0 1px rgba(0, 212, 255, 0.3);
}

body.datenschutz p {
  font-weight: 400;
  margin-bottom: var(--space-md);
  color: #b8c5d1;
  text-shadow: 0 0 1px rgba(255, 255, 255, 0.1);
}

/* ===== FOOTER STYLES ===== */
.footer {
  background: rgba(10, 10, 15, 0.5);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-top: 1px solid rgba(0, 212, 255, 0.1);
  padding: var(--space-lg) 0;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 10;
  display: block;
  visibility: visible;
  opacity: 1;
  /* Safari-spezifische Fixes */
  -webkit-transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  -webkit-perspective: 1000;
  transform: translateZ(0);
  backface-visibility: hidden;
  perspective: 1000;
  /* Zusätzliche Safari-spezifische Fixes */
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  /* Force hardware acceleration */
  will-change: transform;
  -webkit-will-change: transform;
}

/* Footer auf Index-Seite explizit sichtbar machen */

/* Zusätzliche Sicherheit für Footer-Sichtbarkeit */

.footer-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-lg);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
  /* Safari-spezifische Fixes */
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  /* Force hardware acceleration */
  will-change: transform;
  -webkit-will-change: transform;
}

.footer-links {
  display: flex;
  gap: var(--space-xl);
  align-items: center;
}

.footer-link {
  color: #b8c5d1;
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 400;
  transition: var(--transition-normal);
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--radius-sm);
  opacity: 0.7;
  /* Safari-spezifische Fixes */
  -webkit-transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  transform: translateZ(0);
  backface-visibility: hidden;
}

.footer-link:hover,
.footer-link:focus {
  color: var(--primary-blue);
  opacity: 1;
  background: rgba(0, 212, 255, 0.05);
}

.footer-link:active {
  transform: translateY(1px);
}

.footer-copyright {
  text-align: center;
}

.footer-copyright p {
  color: #b8c5d1;
  font-size: 0.75rem;
  opacity: 0.6;
  margin: 0;
}

/* Responsive Footer */
@media (max-width: 767px) {
  .footer {
    background: rgba(10, 10, 15, 0.7);
    padding: var(--space-md) 0;
    /* Safari-spezifische Fixes für mobile Geräte */
    -webkit-transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    -webkit-perspective: 1000;
    transform: translateZ(0);
    backface-visibility: hidden;
    perspective: 1000;
    /* Zusätzliche Sicherheit für Safari */
    display: block;
    visibility: visible;
    opacity: 1;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 10;
  }
  
  .footer-container {
    padding: 0 var(--space-md);
    gap: var(--space-sm);
    /* Safari-spezifische Fixes */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
  }
  
  .footer-links {
    display: flex !important;
    flex-direction: row !important;
    gap: var(--space-lg);
    /* Safari-spezifische Fixes */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
  }
  
  .footer-link {
    font-size: 0.8rem;
    /* Safari-spezifische Fixes */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    /* Zusätzliche Sicherheit für Safari */
    display: inline-block;
    visibility: visible;
    opacity: 1;
  }
}







/* ===== MODAL STYLES ===== */
.modal { 
  display: none; position: fixed; z-index: 9999; left: 0; top: 0; 
  width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0); 
  overflow-y: auto; backdrop-filter: blur(0px);
  /* Touch-Optimierung für alle Geräte */
  touch-action: manipulation;
  /* Sanfte Animation */
  transition: background-color 0.3s ease, backdrop-filter 0.3s ease;
  /* Browser-Kompatibilität verbessern */
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* Modal Animation beim Öffnen */
.modal.show {
  background-color: rgba(0, 0, 0, 0.8);
  backdrop-filter: blur(10px);
}

.modal-content { 
  background: rgba(15, 15, 25, 0.8); margin: 5% auto; padding: var(--space-2xl); 
  border-radius: var(--radius-lg); width: 90%; max-width: 800px; 
  max-height: 80vh; overflow-y: auto; position: relative; color: #b8c5d1;
      box-shadow: var(--shadow-lg); z-index: 1001; border: 1px solid rgba(0, 212, 255, 0.2);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  /* Sanfte Animation */
  opacity: 0;
  transform: translateY(20px) scale(0.95);
  transition: opacity 0.4s ease 0.1s, transform 0.4s ease 0.1s;
}

/* Modal Content Animation beim Öffnen */
.modal.show .modal-content {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* Mobile Modal Optimierungen */
@media (max-width: 767px) {
  .modal-content {
    margin: 10% auto;
    width: 95%;
    max-width: none;
    max-height: 85vh;
    padding: var(--space-lg);
    /* Browser-Kompatibilität verbessern */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
  

  
  .modal-content h2 {
    font-size: 1.6rem;
    margin-bottom: var(--space-lg);
  }
  
  .modal-content h3 {
    font-size: 1.1rem;
    margin-top: var(--space-lg);
  }
  
  .modal-content p {
    font-size: 1rem;
    line-height: 1.6;
  }
  
  .close {
    top: var(--space-md);
    right: var(--space-md);
    font-size: 1.8rem;
    min-width: 44px;
    min-height: 44px;
  }
}

.close { 
  color: var(--primary-orange); 
  float: right; 
  font-size: 2rem; 
  font-weight: bold; 
  cursor: pointer; 
  position: absolute;
  top: var(--space-lg); 
  right: var(--space-xl); 
  transition: var(--transition-fast); 
  z-index: 1002; 
  /* Touch-Optimierung */
  min-width: 44px; 
  min-height: 44px; 
  display: flex; 
  align-items: center; 
  justify-content: center;
  touch-action: manipulation;
  /* Mobile Touch-Optimierung */
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  -webkit-user-select: none;
  /* Zusätzliche Touch-Optimierung */
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /* Force Hardware Acceleration */
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* Close Button Animation beim Öffnen */
.modal.show .close {
  opacity: 1;
  transform: scale(1);
}

/* Zusätzliche Touch-Optimierung für alle Close-Buttons */
.close {
  /* Touch-Target-Größe für mobile Geräte */
  min-width: 44px;
  min-height: 44px;
  /* Sichtbarkeit verbessern */
  background: rgba(0, 0, 0, 0.3);
  border-radius: 50%;
  padding: 8px;
  /* Touch-Events sicherstellen */
  pointer-events: auto;
  cursor: pointer;
  /* Z-Index erhöhen */
  z-index: 1002;
  /* Touch-spezifische Eigenschaften */
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.close:hover, .close:focus { color: var(--primary-orange); }

.modal-content h2 { 
  color: var(--primary-blue); 
  margin-bottom: var(--space-xl); 
  font-size: 2rem; 
  font-family: var(--font-primary); /* Bessere Umlaut-Darstellung */
  font-weight: 700; 
  letter-spacing: 0.1em; 
  text-transform: uppercase;
}

.modal-content h3 { 
  color: var(--primary-blue); 
  margin-top: var(--space-xl); 
  margin-bottom: var(--space-md); 
  font-size: 1.2rem; 
  font-family: var(--font-primary); /* Konsistente Schriftart */
  font-weight: 600;
}

.modal-content p { 
  margin-bottom: var(--space-lg); 
  line-height: 1.8; 
  color: #b8c5d1;
  font-size: 1.1rem;
  text-shadow: 0 0 1px rgba(255, 255, 255, 0.1);
}

.modal-content ul { 
  margin-left: var(--space-xl); 
  margin-bottom: var(--space-lg); 
}

.modal-content li { 
  margin-bottom: var(--space-md); 
  color: #b8c5d1;
  line-height: 1.8;
  text-shadow: 0 0 1px rgba(255, 255, 255, 0.1);
}

/* ===== BOOKING BUTTON STYLES ===== */
.booking-button {
  display: inline-block;
  background: linear-gradient(135deg, var(--primary-blue), var(--primary-orange));
  color: var(--dark-bg);
  text-decoration: none;
  padding: var(--space-md) var(--space-xl);
  border-radius: var(--radius-lg);
  font-weight: 600;
  font-size: 1.1rem;
  text-align: center;
  transition: var(--transition-normal);
  border: none;
  cursor: pointer;
  box-shadow: var(--shadow-md);
  position: relative;
  overflow: hidden;
}

/* ===== BOOKING LINK STYLES ===== */
.booking-link {
  display: inline-block;
  background: linear-gradient(135deg, var(--primary-blue), var(--primary-orange));
  color: var(--dark-bg);
  text-decoration: none;
  padding: var(--space-md) var(--space-xl);
  border-radius: var(--radius-lg);
  font-weight: 600;
  font-size: 1.1rem;
  text-align: center;
  transition: var(--transition-normal);
  border: none;
  cursor: pointer;
  box-shadow: var(--shadow-md);
  position: relative;
  overflow: hidden;
  margin-right: var(--space-md);
}

.booking-link:last-child {
  margin-right: 0;
}

.booking-link:hover,
.booking-link:focus {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg), var(--shadow-glow);
  background: linear-gradient(135deg, var(--primary-orange), var(--primary-blue));
}

.booking-link:active {
  transform: translateY(0);
}

.booking-link::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: left 0.5s;
}

.booking-link:hover::before {
  left: 100%;
}

.booking-button:hover,
.booking-button:focus {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg), var(--shadow-glow);
  background: linear-gradient(135deg, var(--primary-orange), var(--primary-blue));
}

.booking-button:active {
  transform: translateY(0);
}

.booking-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: left 0.5s;
}

.booking-button:hover::before {
  left: 100%;
}

/* CTA Buttons Container */
.cta-buttons {
  display: flex;
  gap: var(--space-lg);
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  margin-top: var(--space-lg);
}



/* Responsive Button Layout */
@media (max-width: 767px) {
  .cta-buttons {
    flex-direction: column;
    gap: var(--space-md);
  }
  
  .booking-button {
    width: 100%;
    max-width: 300px;
  }
}

/* Stellen Sie sicher, dass der Footer am Ende der Seite bleibt */
.app {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.main-content {
  flex: 1;
}

/* Hauptüberschrift auf Datenschutz-Seite mit verringertem Abstand */




/* Reisekosten-Box Styling */
.reisekosten-box {
  background: rgba(15, 15, 25, 0.6);
  border: 2px solid rgba(0, 212, 255, 0.2);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  margin: 0;
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  box-shadow: var(--shadow-md);
  container-type: inline-size;
  /* Safari-spezifische Fixes */
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  /* Force hardware acceleration */
  will-change: transform;
  -webkit-will-change: transform;
  transition: var(--transition-normal);
}

/* Fallback für Browser ohne container-type Support */
@supports not (container-type: inline-size) {
  .reisekosten-box {
    /* Alternative Layout ohne Container Queries */
    max-width: 100%;
  }
}

.reisekosten-box h3 {
  color: var(--primary-blue);
  font-size: 1.3rem;
  font-weight: 700;
  margin-bottom: var(--space-lg);
  text-align: center;
  text-shadow: 0 0 1px rgba(0, 212, 255, 0.3);
  background: rgba(0, 212, 255, 0.05);
  padding: var(--space-md);
  border-radius: var(--radius-md);
}

.preise-container {
  display: flex;
  gap: var(--space-lg);
  justify-content: center;
  flex-wrap: wrap;
}

.preis-option {
  background: rgba(0, 212, 255, 0.05);
  border: none;
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  text-align: center;
  width: 100%;
  transition: var(--transition-normal);
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  box-shadow: var(--shadow-md);
  /* Safari-spezifische Fixes */
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  /* Force hardware acceleration */
  will-change: transform;
  -webkit-will-change: transform;
}

.preis-header {
  color: #b8c5d1;
  font-weight: 600;
  font-size: 1.1rem;
  margin-bottom: var(--space-md);
  text-shadow: 0 0 1px rgba(255, 255, 255, 0.3);
}

.preis-betrag {
  color: var(--primary-orange);
  font-size: 2.5rem;
  font-weight: 800;
  margin-bottom: var(--space-sm);
  text-shadow: 0 0 2px rgba(255, 140, 66, 0.3);
}

.preis-details {
  color: #b8c5d1;
  font-size: 0.9rem;
  font-weight: 500;
}

/* Responsive Anpassungen */
@media (max-width: 768px) {
  .preise-container {
    flex-direction: column;
    align-items: center;
  }
  
  .preis-option {
    width: 100%;
    max-width: none;
  }
  
  .reisekosten-box {
    padding: var(--space-lg);
    margin: var(--space-xl) 0;
  }
}

/* Mobile Optimierungen für Reisekosten-Box und Mission-CTA */
@media (max-width: 767px) {
  /* Modal Close Button Mobile-Optimierung */
  .close {
    min-width: 48px !important;
    min-height: 48px !important;
    font-size: 2.5rem !important;
    top: var(--space-sm) !important;
    right: var(--space-sm) !important;
    background: rgba(0, 0, 0, 0.8) !important;
    border-radius: 50% !important;
    padding: var(--space-sm) !important;
    /* Erweiterte Touch-Optimierung */
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: transparent !important;
    -webkit-touch-callout: none !important;
    -webkit-user-select: none !important;
    -khtml-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
    /* Force Hardware Acceleration */
    -webkit-transform: translateZ(0) !important;
    transform: translateZ(0) !important;
    -webkit-backface-visibility: hidden !important;
    backface-visibility: hidden !important;
    /* Zusätzliche Touch-Sicherheit */
    pointer-events: auto !important;
    cursor: pointer !important;
    z-index: 1003 !important;
  }
  
  .reisekosten-box {
    padding: var(--space-md);
    margin: var(--space-lg) 0;
    /* Browser-Kompatibilität verbessern */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
  
  /* Safari Mobile Footer Fix */
  .footer {
    /* Force Footer Display auf Safari Mobile */
    background: rgba(10, 10, 15, 0.7) !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 10 !important;
    /* Safari Mobile spezifische Fixes */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-overflow-scrolling: touch;
    /* Zusätzliche Sicherheit */
    min-height: 60px;
    height: auto;
    overflow: visible;
    /* Force Hardware Acceleration */
    will-change: transform;
    -webkit-will-change: transform;
  }
  
  /* Safari Mobile Preis-Box Fix */
  .reisekosten-box {
    /* Force Preis-Box Display auf Safari Mobile */
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 5 !important;
    /* Safari Mobile spezifische Fixes */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-overflow-scrolling: touch;
    /* Zusätzliche Sicherheit */
    min-height: 100px;
    height: auto;
    overflow: visible;
    /* Force Hardware Acceleration */
    will-change: transform;
    -webkit-will-change: transform;
    /* Force Background und Border */
    background: rgba(15, 15, 25, 0.6) !important;
    border: 2px solid rgba(0, 212, 255, 0.2) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-md) !important;
  }
  
  /* Mission-CTA Mobile-Optimierung */
  .mission-cta {
    /* Force Background Image Display auf Mobile */
    background-image: url('CKJ%20mit%20Voyager%20-%20KI.png') !important;
    background-size: 120% 100% !important;
    background-position: -50px center !important;
    background-repeat: no-repeat !important;
    background-attachment: scroll !important;
    /* Mobile-spezifische Anpassungen */
    min-height: 250px !important;
    background-color: rgba(15, 15, 25, 0.9) !important;
    /* Force Hardware Acceleration */
    -webkit-transform: translateZ(0) !important;
    transform: translateZ(0) !important;
    -webkit-backface-visibility: hidden !important;
    backface-visibility: hidden !important;
    /* Zusätzliche Sicherheit */
    overflow: hidden !important;
    position: relative !important;
    z-index: 1 !important;
    /* Edge Browser Kompatibilität */
    -ms-transform: translateZ(0) !important;
    -ms-backface-visibility: hidden !important;
    /* Force Background Display */
    background-clip: border-box !important;
    background-origin: border-box !important;
    /* Erhöhte Transparenz für bessere Lesbarkeit */
    opacity: 0.7 !important;
  }
  
  /* Sehr kleine Bildschirme (iPhone SE, etc.) */
  @media (max-width: 375px) {
    .mission-cta {
      background-size: 140% 100% !important;
      background-position: -30px center !important;
      min-height: 200px !important;
      /* Zusätzliche Transparenz für sehr kleine Bildschirme */
      opacity: 0.6 !important;
    }
  }
  
  /* Edge Browser spezifische Fixes */
  @supports (-ms-ime-align: auto) {
    .mission-cta {
      background-image: url('CKJ%20mit%20Voyager%20-%20KI.png') !important;
      background-size: 120% 100% !important;
      background-position: -50px center !important;
      background-repeat: no-repeat !important;
      /* Erhöhte Transparenz für bessere Lesbarkeit */
      opacity: 0.7 !important;
      background-color: rgba(15, 15, 25, 0.9) !important;
    }
    
    .mobile-fallback-image {
      display: none !important;
    }
  }
  
  /* Fallback-Bild für mobile Geräte anzeigen */
  .mobile-fallback-image {
    display: block !important;
    width: 120% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: -50px center !important;
    z-index: 0 !important;
    /* Edge Browser Kompatibilität */
    -ms-object-fit: cover !important;
    -ms-object-position: -50px center !important;
    /* Force Display */
    visibility: visible !important;
    opacity: 0.7 !important;
    /* Erhöhte Transparenz für bessere Lesbarkeit */
    filter: brightness(0.8) contrast(1.2) !important;
  }
  
  /* Background-Image auf mobilen Geräten ausblenden */
  .mission-cta {
    background-image: none !important;
  }
  
  /* Textfilter-Overlay für mobile Geräte - DEAKTIVIERT */
  .mission-cta > div[style*="position: absolute"] {
    background: transparent !important;
    /* Text bleibt sichtbar, nur der dunkle Filter wird entfernt */
  }
  
  .preis-option {
    /* Force Preis-Option Display auf Safari Mobile */
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    /* Safari Mobile spezifische Fixes */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    
    /* Preis Mobile-Optimierung */
    .preis-betrag {
      font-size: 3rem !important;
      margin-bottom: var(--space-md) !important;
    }
    backface-visibility: hidden;
    /* Force Background und Border */
    background: rgba(0, 212, 255, 0.05) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: var(--shadow-md) !important;
    /* Zusätzliche Sicherheit */
    min-height: 80px;
    height: auto;
    overflow: visible;
  }
  
  .footer-container {
    /* Force Container Display auf Safari Mobile */
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    /* Safari Mobile Container Fixes */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
  
  .footer-link {
    /* Force Link Display auf Safari Mobile */
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    /* Safari Mobile Link Fixes */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
  
  .reisekosten-box h3 {
    font-size: 1.1rem;
    padding: var(--space-sm);
    margin-bottom: var(--space-md);
  }
  
  .preis-option {
    padding: var(--space-md);
    margin-bottom: var(--space-sm);
  }
  
  .preis-header {
    font-size: 1rem;
    margin-bottom: var(--space-sm);
  }
  
  .preis-betrag {
    font-size: 2rem;
    margin-bottom: var(--space-xs);
  }
  
  .preis-details {
    font-size: 0.8rem;
  }
}

/* Touch-Optimierungen für alle mobilen Elemente */
@media (max-width: 767px) {
  /* Verhindert ungewollte Zoom-Effekte */
  input, select, textarea {
    font-size: 16px;
  }
  
  /* Verbesserte Touch-Bereiche */
  button, .booking-button, .termin-button {
    min-height: 44px;
    min-width: 44px;
    touch-action: manipulation;
  }
  
  /* Touch-Geräte Optimierung - Hover-Effekte werden über CSS-Spezifität gehandhabt */
}

@container (max-width: 600px) {
  .preise-container {
    grid-template-columns: 1fr;
  }
}

/* ===== BREADCRUMB NAVIGATION ===== */
.breadcrumb {
  background: rgba(15, 15, 25, 0.8);
  padding: var(--space-sm) var(--space-md);
  border-bottom: 1px solid rgba(0, 212, 255, 0.3);
  backdrop-filter: blur(10px);
  position: sticky;
  top: 0;
  z-index: 100;
}

.breadcrumb ol {
  list-style: none;
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin: 0;
  padding: 0;
  font-size: 0.9rem;
}

.breadcrumb li {
  display: flex;
  align-items: center;
}

.breadcrumb li:not(:last-child)::after {
  content: "›";
  margin-left: var(--space-sm);
  color: var(--primary-blue);
  font-weight: bold;
}

.breadcrumb a {
  color: #b8c5d1;
  text-decoration: none;
  transition: color var(--transition-fast);
}

.breadcrumb a:hover {
  color: var(--primary-blue);
}

.breadcrumb span {
  color: #b8c5d1;
  font-weight: 500;
}

/* Responsive Breadcrumb */
@media (max-width: 767px) {
  .breadcrumb {
    padding: var(--space-xs) var(--space-sm);
  }
  
  .breadcrumb ol {
    font-size: 0.8rem;
    gap: var(--space-xs);
  }
  
  .breadcrumb li:not(:last-child)::after {
    margin-left: var(--space-xs);
  }
}

/* ===== CTA HIGHLIGHT BOX STYLES ===== */
.cta-highlight-box {
  background: linear-gradient(135deg, rgba(0, 212, 255, 0.1) 0%, rgba(0, 100, 200, 0.15) 100%);
  border: 2px solid rgba(0, 212, 255, 0.3);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  margin: var(--space-xl) 0;
  box-shadow: 0 8px 32px rgba(0, 212, 255, 0.1);
  backdrop-filter: blur(10px);
  position: relative;
  overflow: hidden;
}

.cta-highlight-box::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--primary-blue), #00d4ff, var(--primary-blue));
  animation: energy-flow 3s ease-in-out infinite;
}

@keyframes energy-flow {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 1; }
}

.inspiration-text {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-lg);
  font-size: 1.2rem;
  color: #b8c5d1;
  text-align: center;
  justify-content: center;
}

.star-icon {
  font-size: 1.5rem;
  animation: star-twinkle 2s ease-in-out infinite;
  filter: drop-shadow(0 0 8px rgba(255, 215, 0, 0.6));
}

@keyframes star-twinkle {
  0%, 100% { transform: scale(1) rotate(0deg); opacity: 1; }
  50% { transform: scale(1.1) rotate(180deg); opacity: 0.8; }
}

.action-section {
  text-align: center;
}

.journey-text {
  color: #b8c5d1;
  font-size: 1rem;
  margin-bottom: var(--space-md);
  font-style: italic;
}

.button-group {
  display: flex;
  gap: var(--space-md);
  justify-content: center;
  flex-wrap: wrap;
}

.button-group .termin-button {
  min-width: 140px;
  transition: all var(--transition-normal);
  position: relative;
  overflow: hidden;
}

.button-group .termin-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: left 0.5s ease;
}

.button-group .termin-button:hover::before {
  left: 100%;
}

.button-group .termin-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(0, 212, 255, 0.3);
}

/* Responsive Anpassungen */
@media (max-width: 768px) {
  .cta-highlight-box {
    padding: var(--space-lg);
    margin: var(--space-lg) 0;
  }
  
  .inspiration-text {
    font-size: 1.1rem;
    flex-direction: column;
    gap: var(--space-xs);
  }
  
  .button-group {
    flex-direction: column;
    align-items: center;
  }
  
  .button-group .termin-button {
    min-width: 200px;
  }
}

@media (max-width: 480px) {
  .cta-highlight-box {
    padding: var(--space-md);
  }
  
  .inspiration-text {
    font-size: 1rem;
  }
  
  .star-icon {
    font-size: 1.3rem;
  }
}

/* ===== CTA BANNER STYLES ===== */
.cta-banner {
  background: linear-gradient(90deg, var(--primary-blue) 0%, #00d4ff 50%, var(--primary-blue) 100%);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  margin: var(--space-xl) 0;
  box-shadow: 0 10px 40px rgba(0, 212, 255, 0.3);
  position: relative;
  overflow: hidden;
}

.cta-banner::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="rgba(255,255,255,0.1)" stroke-width="0.5"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');
  opacity: 0.3;
}

.banner-content {
  position: relative;
  z-index: 2;
  text-align: center;
}

.inspiration-heading {
  color: #b8c5d1;
  font-size: 1.4rem;
  font-weight: 600;
  margin-bottom: var(--space-lg);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  letter-spacing: 0.5px;
}

.banner-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

.journey-label {
  color: #b8c5d1;
  font-size: 1rem;
  font-style: italic;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.banner-actions .termin-button {
  background: rgba(255, 255, 255, 0.95);
  color: var(--primary-blue);
  border: 2px solid rgba(255, 255, 255, 0.8);
  font-weight: 600;
  min-width: 160px;
  transition: all var(--transition-normal);
  position: relative;
  overflow: hidden;
}

.banner-actions .termin-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0, 212, 255, 0.1), transparent);
  transition: left 0.6s ease;
}

.banner-actions .termin-button:hover::before {
  left: 100%;
}

.banner-actions .termin-button:hover {
  background: white;
  color: var(--primary-blue);
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.2);
  border-color: #b8c5d1;
}

.banner-actions .termin-button:active {
  transform: translateY(-1px);
}

/* Responsive Anpassungen für Banner */
@media (max-width: 768px) {
  .cta-banner {
    padding: var(--space-lg);
    margin: var(--space-lg) 0;
  }
  
  .inspiration-heading {
    font-size: 1.2rem;
  }
  
  .banner-actions {
    gap: var(--space-sm);
  }
  
  .banner-actions .termin-button {
    min-width: 180px;
  }
}

@media (max-width: 480px) {
  .cta-banner {
    padding: var(--space-md);
  }
  
  .inspiration-heading {
    font-size: 1.1rem;
  }
  
  .journey-label {
    font-size: 0.9rem;
  }
}

/* ===== FLOATING ACTION PANEL STYLES ===== */
.floating-action-panel {
  background: rgba(0, 0, 0, 0.85);
  border: 2px solid var(--primary-blue);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  margin: var(--space-xl) 0;
  box-shadow: 
    0 20px 60px rgba(0, 212, 255, 0.2),
    0 0 0 1px rgba(0, 212, 255, 0.1) inset,
    0 0 20px rgba(0, 212, 255, 0.1) inset;
  backdrop-filter: blur(15px);
  position: relative;
  overflow: hidden;
  transform: perspective(1000px) rotateX(2deg);
  transition: all var(--transition-normal);
}

.floating-action-panel::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg, var(--primary-blue), #00d4ff, var(--primary-blue), #0066cc);
  background-size: 400% 400%;
  border-radius: var(--radius-lg);
  z-index: -1;
  animation: border-glow 4s ease-in-out infinite;
}

@keyframes border-glow {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

.floating-action-panel:hover {
  transform: perspective(1000px) rotateX(0deg) translateY(-5px);
  box-shadow: 
    0 30px 80px rgba(0, 212, 255, 0.3),
    0 0 0 1px rgba(0, 212, 255, 0.2) inset,
    0 0 30px rgba(0, 212, 255, 0.2) inset;
}

.panel-header {
  text-align: center;
  margin-bottom: var(--space-lg);
  position: relative;
}

.energy-pulse {
  width: 60px;
  height: 60px;
  margin: 0 auto var(--space-md);
  background: radial-gradient(circle, var(--primary-blue) 0%, transparent 70%);
  border-radius: 50%;
  position: relative;
  animation: energy-pulse 2s ease-in-out infinite;
}

.energy-pulse::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle, rgba(0, 212, 255, 0.6) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: energy-pulse-outer 2s ease-in-out infinite 0.5s;
}

@keyframes energy-pulse {
  0%, 100% { 
    transform: scale(1);
    opacity: 0.8;
  }
  50% { 
    transform: scale(1.2);
    opacity: 1;
  }
}

@keyframes energy-pulse-outer {
  0%, 100% { 
    transform: translate(-50%, -50%) scale(1);
    opacity: 0.4;
  }
  50% { 
    transform: translate(-50%, -50%) scale(1.5);
    opacity: 0;
  }
}

.panel-header h4 {
  color: var(--primary-blue);
  font-size: 1.3rem;
  font-weight: 600;
  margin: 0;
  text-shadow: 0 0 10px rgba(0, 212, 255, 0.5);
  letter-spacing: 1px;
  text-transform: uppercase;
}

.panel-content {
  text-align: center;
}

.inspiration-text {
  color: #b8c5d1;
  font-size: 1.1rem;
  font-weight: 500;
  margin-bottom: var(--space-lg);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
}

.action-buttons {
  display: flex;
  gap: var(--space-md);
  justify-content: center;
  flex-wrap: wrap;
}

.action-buttons .termin-button {
  background: linear-gradient(135deg, var(--primary-blue) 0%, #00d4ff 100%);
  color: #b8c5d1;
  border: 2px solid var(--primary-blue);
  font-weight: 600;
  min-width: 150px;
  transition: all var(--transition-normal);
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0, 212, 255, 0.3);
}

.action-buttons .termin-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: left 0.6s ease;
}

.action-buttons .termin-button:hover::before {
  left: 100%;
}

.action-buttons .termin-button:hover {
  background: linear-gradient(135deg, #00d4ff 0%, var(--primary-blue) 100%);
  transform: translateY(-3px);
  box-shadow: 0 8px 25px rgba(0, 212, 255, 0.5);
}

.action-buttons .termin-button:active {
  transform: translateY(-1px);
}

/* Responsive Anpassungen für Panel */
@media (max-width: 768px) {
  .floating-action-panel {
    padding: var(--space-lg);
    margin: var(--space-lg) 0;
    transform: perspective(800px) rotateX(1deg);
  }
  
  .energy-pulse {
    width: 50px;
    height: 50px;
  }
  
  .panel-header h4 {
    font-size: 1.2rem;
  }
  
  .inspiration-text {
    font-size: 1rem;
  }
  
  .action-buttons {
    flex-direction: column;
    align-items: center;
  }
  
  .action-buttons .termin-button {
    min-width: 180px;
  }
}

@media (max-width: 480px) {
  .floating-action-panel {
    padding: var(--space-md);
    transform: none;
  }
  
  .energy-pulse {
    width: 40px;
    height: 40px;
  }
  
  .panel-header h4 {
    font-size: 1.1rem;
  }
  
  .inspiration-text {
    font-size: 0.95rem;
  }
}

/* ===== CTA COMPACT CARD STYLES ===== */
.cta-compact-card {
  background: white;
  border: 3px solid var(--primary-blue);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  margin: var(--space-xl) 0;
  box-shadow: 
    0 8px 25px rgba(0, 212, 255, 0.15),
    0 0 0 1px rgba(0, 212, 255, 0.05) inset;
  position: relative;
  overflow: hidden;
  transition: all var(--transition-normal);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.cta-compact-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, var(--primary-blue), #00d4ff, #0066cc, var(--primary-blue));
  background-size: 200% 100%;
  animation: top-border-flow 3s ease-in-out infinite;
}

@keyframes top-border-flow {
  0%, 100% { background-position: 0% 0%; }
  50% { background-position: 100% 0%; }
}

.cta-compact-card:hover {
  transform: translateY(-3px);
  box-shadow: 
    0 15px 40px rgba(0, 212, 255, 0.25),
    0 0 0 1px rgba(0, 212, 255, 0.1) inset;
}

.card-icon {
  font-size: 2.5rem;
  text-align: center;
  margin-bottom: var(--space-md);
  animation: rocket-bounce 2s ease-in-out infinite;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
}

@keyframes rocket-bounce {
  0%, 100% { 
    transform: translateY(0) rotate(0deg);
  }
  25% { 
    transform: translateY(-5px) rotate(-2deg);
  }
  75% { 
    transform: translateY(-3px) rotate(2deg);
  }
}

.card-content {
  text-align: center;
}

.inspiration-text {
  color: #b8c5d1;
  font-size: 1.2rem;
  font-weight: 600;
  margin-bottom: var(--space-lg);
  line-height: 1.4;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.card-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

.journey-text {
  color: #b8c5d1;
  font-size: 0.95rem;
  font-style: italic;
  margin-bottom: var(--space-sm);
  position: relative;
}

.journey-text::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--primary-blue), transparent);
}

.button-row {
  display: flex;
  gap: var(--space-md);
  justify-content: center;
  flex-wrap: wrap;
}

.button-row .termin-button {
  background: var(--primary-blue);
  color: #b8c5d1;
  border: 2px solid var(--primary-blue);
  font-weight: 600;
  min-width: 140px;
  transition: all var(--transition-normal);
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0, 212, 255, 0.3);
}

.button-row .termin-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: left 0.5s ease;
}

.button-row .termin-button:hover::before {
  left: 100%;
}

.button-row .termin-button:hover {
  background: #00d4ff;
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(0, 212, 255, 0.4);
}

.button-row .termin-button:active {
  transform: translateY(0);
}

/* Responsive Anpassungen für Compact Card */
@media (max-width: 768px) {
  .cta-compact-card {
    padding: var(--space-md);
    margin: var(--space-lg) var(--space-md);
  }
  
  .card-icon {
    font-size: 2rem;
  }
  
  .inspiration-text {
    font-size: 1.1rem;
  }
  
  .button-row {
    flex-direction: column;
    align-items: center;
  }
  
  .button-row .termin-button {
    min-width: 180px;
  }
}

@media (max-width: 480px) {
  .cta-compact-card {
    padding: var(--space-sm);
    margin: var(--space-md) var(--space-sm);
  }
  
  .card-icon {
    font-size: 1.8rem;
  }
  
  .inspiration-text {
    font-size: 1rem;
  }
  
  .journey-text {
    font-size: 0.9rem;
  }
}

.footer-text {
  color: #b8c5d1;
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 400;
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--radius-sm);
  opacity: 0.7;
}

.footer-copyright {
  text-align: center;
}

/* ===== KONTAKT-SEITE STYLES ===== */
.contact-section {
  background: rgba(15, 15, 25, 0.8);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  margin: 0 auto var(--space-xl) auto;
  max-width: 800px;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(0, 212, 255, 0.2);
}

.contact-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  max-width: 600px;
  margin: 0 auto;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.form-group:has(.checkbox-label) {
  margin-top: var(--space-md);
}

.form-group label {
  color: var(--primary-blue);
  font-weight: 600;
  font-size: 1rem;
}

.form-group input,
.form-group select,
.form-group textarea {
  padding: var(--space-md);
  border: 2px solid rgba(0, 212, 255, 0.2);
  border-radius: var(--radius-md);
  background: rgba(15, 15, 25, 0.6);
  color: #b8c5d1;
  font-size: 1rem;
  transition: all var(--transition-normal);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--primary-blue);
  box-shadow: 0 0 0 3px rgba(0, 212, 255, 0.1);
}

.checkbox-label {
  display: flex;
  align-items: center;
  gap: var(--space-lg);
  cursor: pointer;
  color: #b8c5d1;
  margin-top: var(--space-sm);
}

.checkbox-label input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 0;
}

.submit-button {
  background: linear-gradient(135deg, var(--primary-blue), var(--primary-orange));
  color: white;
  border: none;
  padding: var(--space-md) var(--space-xl);
  border-radius: var(--radius-md);
  font-size: 1.1rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--transition-normal);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.submit-button:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg), var(--shadow-glow);
}

.contact-info {
  background: rgba(15, 15, 25, 0.8);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(0, 212, 255, 0.2);
}

.contact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--space-lg);
  margin-top: var(--space-lg);
}

.contact-item {
  text-align: center;
  padding: var(--space-lg);
  background: rgba(0, 212, 255, 0.05);
  border-radius: var(--radius-md);
  border: 1px solid rgba(0, 212, 255, 0.1);
}

.contact-item h3 {
  color: var(--primary-orange);
  margin-bottom: var(--space-md);
}

.contact-item p {
  color: #b8c5d1;
  margin-bottom: var(--space-sm);
}

.contact-item a {
  color: var(--primary-blue);
  text-decoration: none;
  font-weight: 600;
  transition: color var(--transition-normal);
}

.contact-item a:hover {
  color: var(--primary-orange);
}

/* Mobile Anpassungen für Kontakt-Seite */
@media (max-width: 767px) {
  .contact-form {
    padding: 0 var(--space-md);
  }
  
  .contact-grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }
  
  .contact-item {
    padding: var(--space-md);
  }
}

/* ===== PERFORMANCE OPTIMIERUNGEN ===== */

/* Critical CSS - Nur das Nötigste für den ersten Paint */
.critical-content {
  content-visibility: auto !important;
  contain-intrinsic-size: 0 500px !important;
}

/* Lazy Loading für Bilder - Deaktiviert für bessere Kompatibilität */
img[loading="lazy"] {
  opacity: 1 !important;
  transition: opacity 0.3s ease !important;
}

img[loading="lazy"].loaded {
  opacity: 1 !important;
}

/* Performance-optimierte Animationen */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Hardware-Beschleunigung für kritische Elemente */
.performance-critical {
  will-change: transform !important;
  transform: translateZ(0) !important;
  backface-visibility: hidden !important;
  perspective: 1000px !important;
}

/* CSS Containment für bessere Performance */
.contained-element {
  contain: layout style paint !important;
}

/* Optimierte Transitions */
.optimized-transition {
  transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Font Display Swap für bessere Performance */
@font-face {
  font-family: 'Inter';
  font-display: swap !important;
}

@font-face {
  font-family: 'Orbitron';
  font-display: swap !important;
}

/* Resource Hints für bessere Performance */
.preload-critical {
  font-display: swap !important;
}

/* Optimierte Box-Shadows */
.optimized-shadow {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.1)) !important;
}

/* Performance-Monitoring CSS */
.performance-marker {
  content-visibility: auto !important;
  contain-intrinsic-size: 0 100px !important;
}

/* Bild-Performance-Monitoring */
.image-performance {
  contain: layout style paint !important;
  will-change: auto !important;
}

/* Optimierte Bild-Ladezeiten */
.image-loading {
  opacity: 1 !important;
  transition: none !important;
}

/* ===== BILD-OPTIMIERUNGEN ===== */

/* Responsive Images - Performance optimiert ohne Darstellung zu ändern */
.janeway-photo {
  max-width: 100% !important;
  height: auto !important;
  object-fit: cover !important;
  object-position: center !important;
  /* Performance-Optimierungen */
  image-rendering: -webkit-optimize-contrast !important;
  image-rendering: crisp-edges !important;
  backface-visibility: hidden !important;
  transform: translateZ(0) !important;
  /* HOVER-EFFEKTE WIEDERHERSTELLEN */
  transition: all var(--transition-normal) !important; /* Wichtig für Hover-Animationen */
}

/* Bild-Lazy-Loading mit Intersection Observer Fallback */
.image-lazy {
  opacity: 0 !important;
  transition: opacity 0.5s ease-in-out !important;
}

.image-lazy.loaded {
  opacity: 1 !important;
}

/* Optimierte Bild-Container */
.image-container {
  contain: layout style paint !important;
  will-change: transform !important;
}

/* Bild-Performance für mobile Geräte */
@media (max-width: 768px) {
  .janeway-photo {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    /* Mobile-spezifische Optimierungen */
    height: auto !important;
    object-fit: cover !important;
    object-position: center !important;
    /* Explizite Breitenanpassung für Telefonversion */
    min-width: 100% !important;
    display: block !important;
  }
  
  .janeway-main-image {
    text-align: left !important;
    margin: var(--space-lg) 0 !important;
    padding: 0 !important;
    /* Mobile-spezifische Anpassungen */
    width: 100% !important;
    overflow: visible !important;
    /* Container auf volle Breite setzen */
    max-width: 100% !important;
    min-width: 100% !important;
  }
}

/* Kleinerer Abstand nach Zeilenumbrüchen */
p br {
  line-height: 0.3 !important;
  margin-bottom: 0 !important;
}

/* JANEWAY-BILD HOVER-EFFEKTE WIEDERHERSTELLEN */
.janeway-main-image .janeway-photo {
  opacity: 0.4 !important; /* Dunkel im Normalzustand */
  transition: all var(--transition-normal) !important;
}

.janeway-main-image .janeway-photo:hover {
  opacity: 0.9 !important; /* Hell beim Hover */
  transform: translateY(-4px) scale(1.02) !important;
  box-shadow: var(--shadow-lg), var(--shadow-glow) !important;
  border: 2px solid var(--primary-blue) !important;
  filter: brightness(1.1) contrast(1.1) !important;
}

  /* Sehr kleine Bildschirme (iPhone SE, etc.) */
  @media (max-width: 375px) {
    .janeway-photo {
      max-width: 100% !important;
      width: 100% !important;
      margin: 0 !important;
      /* Zusätzliche mobile Optimierungen */
      height: auto !important;
      object-fit: cover !important;
      object-position: center !important;
      /* Explizite Breitenanpassung für sehr kleine Bildschirme */
      min-width: 100% !important;
      display: block !important;
    }
    
    .janeway-main-image {
      width: 100% !important;
      margin: var(--space-lg) 0 !important;
      padding: 0 !important;
      overflow: visible !important;
      text-align: left !important;
      /* Zusätzliche Anpassungen für sehr kleine Bildschirme */
      margin-left: 0 !important;
      margin-right: 0 !important;
      /* Container auf volle Breite setzen */
      max-width: 100% !important;
      min-width: 100% !important;
    }
  }

/* Entfernt - keine Verfärbungen mehr */

/* PERFORMANCE-OPTIMIERTE CSS-REGELN */

/* GLOBALE MOBILE HAUPTÜBERSCHRIFTEN-REGEL */
/* Diese Regel überschreibt alle anderen mobilen .main-title Regeln */
@media (max-width: 767px) {
  .main-title {
    font-size: 2.2rem !important; /* Größer für bessere Lesbarkeit auf Mobile */
    margin-bottom: var(--space-sm) !important;
  }
}
