/* ========================================
   COMPONENTS.CSS - KOMPONENTEN STYLING
   Header, Footer, Buttons, Cards, etc.
   ======================================== */

/* ========================================
   HEADER KOMPONENTE
   ======================================== */
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  transition: all 0.3s ease;
  /* Standardmäßig transparent, wenn über Hero */
  background: transparent;
  backdrop-filter: none;
  box-shadow: none;
}

/* Header wird sichtbar beim Scrollen */
.header.scrolled {
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

/* Navigation über Hero - weiße Schrift */
.header .nav-link,
.header .brand a {
  color: var(--white);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

.header .nav-link:hover {
  background-color: rgba(255, 255, 255, 0.2);
  color: var(--white);
}

.header .mobile-menu-btn .hamburger span {
  background: var(--white);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

/* Navigation nach dem Scrollen - dunkle Schrift */
.header.scrolled .nav-link,
.header.scrolled .brand a {
  color: var(--text-primary);
  text-shadow: none;
}

.header.scrolled .nav-link:hover {
  background-color: var(--highlight-color);
  color: var(--primary-color);
}

.header.scrolled .mobile-menu-btn .hamburger span {
  background: var(--text-primary);
  box-shadow: none;
}

/* Brand/Logo */
.brand a {
  text-decoration: none;
  transition: color 0.2s ease;
}

.brand a:hover {
  text-decoration: none;
  opacity: 0.8;
}

/* Navigation Links */
.nav-link {
  font-weight: 500;
  text-decoration: none;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius);
  transition: all 0.2s ease;
  position: relative;
}

.nav-link:hover {
  background-color: rgba(255, 255, 255, 0.2);
  text-decoration: none;
}

.nav-link.active {
  color: var(--primary-color);
  font-weight: 600;
}

.nav-link.active::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 50%;
  transform: translateX(-50%);
  width: 20px;
  height: 2px;
  background: var(--primary-color);
  border-radius: 1px;
}

/* Mobile Menu Button */
.mobile-menu-btn {
  background: none;
  border: none;
  padding: var(--space-2);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius);
  transition: background-color 0.2s ease;
}

.mobile-menu-btn:hover {
  background-color: var(--highlight-color);
}

.mobile-menu-btn:focus {
  outline: 2px solid var(--primary-color);
  outline-offset: 2px;
}

/* Hamburger Icon */
.hamburger {
  display: flex;
  flex-direction: column;
  width: 20px;
  height: 14px;
  justify-content: space-between;
}

.hamburger span {
  display: block;
  height: 2px;
  width: 100%;
  border-radius: 1px;
  transition: all 0.3s ease;
}

.mobile-menu-btn[aria-expanded="true"] .hamburger span:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}

.mobile-menu-btn[aria-expanded="true"] .hamburger span:nth-child(2) {
  opacity: 0;
}

.mobile-menu-btn[aria-expanded="true"] .hamburger span:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

/* Mobile Navigation */
.mobile-nav {
  background: var(--white);
  border-top: 1px solid var(--border-color);
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.mobile-nav.active {
  max-height: 400px;
}

.nav-link-mobile {
  font-weight: 500;
  color: var(--text-primary);
  text-decoration: none;
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius);
  transition: all 0.2s ease;
  display: block;
}

.nav-link-mobile:hover {
  color: var(--primary-color);
  background-color: var(--highlight-color);
  text-decoration: none;
}

.nav-link-mobile.active {
  color: var(--primary-color);
  font-weight: 600;
  background-color: var(--highlight-color);
}

/* ========================================
   BUTTON SYSTEM
   ======================================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-3) var(--space-6);
  border: none;
  border-radius: var(--radius);
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
  line-height: 1.5;
  white-space: nowrap;
}

.btn:focus {
  outline: 2px solid var(--primary-color);
  outline-offset: 2px;
}

.btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none !important;
}

/* Primary Button */
.btn-primary {
  background: var(--gradient-primary);
  color: var(--white);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.btn-primary:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
  text-decoration: none;
  color: var(--white);
}

.btn-primary:active {
  transform: translateY(0);
}

/* Secondary Button */
.btn-secondary {
  background: var(--highlight-color);
  color: var(--primary-color);
  border: 1px solid var(--primary-color);
}

.btn-secondary:hover:not(:disabled) {
  background: var(--primary-color);
  color: var(--white);
  text-decoration: none;
}

/* Outline Button */
.btn-outline {
  background: transparent;
  color: var(--primary-color);
  border: 2px solid var(--primary-color);
}

.btn-outline:hover:not(:disabled) {
  background: var(--primary-color);
  color: var(--white);
  text-decoration: none;
}

/* Ghost Button */
.btn-ghost {
  background: transparent;
  color: var(--primary-color);
  border: none;
  padding: var(--space-2) var(--space-4);
}

.btn-ghost:hover:not(:disabled) {
  background: var(--highlight-color);
  text-decoration: none;
}

/* Button Sizes */
.btn-sm {
  padding: var(--space-2) var(--space-4);
  font-size: var(--text-sm);
}

.btn-lg {
  padding: var(--space-4) var(--space-8);
  font-size: var(--text-lg);
  font-weight: 600;
}

.btn-xl {
  padding: var(--space-5) var(--space-10);
  font-size: var(--text-xl);
  font-weight: 600;
}

/* Full Width Button */
.btn-full {
  width: 100%;
}

/* Button Group */
.btn-group {
  display: flex;
  gap: var(--space-3);
}

.btn-group .btn {
  flex: 1;
}

@media (max-width: 768px) {
  .btn-group {
    flex-direction: column;
  }
}

/* ========================================
   CARD SYSTEM
   ======================================== */
.card {
  background: var(--white);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
  overflow: hidden;
  transition: all 0.3s ease;
}

.card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-xl);
}

.card-header {
  padding: var(--space-6);
  background: var(--highlight-color);
  border-bottom: 1px solid var(--border-color);
}

.card-body {
  padding: var(--space-6);
}

.card-footer {
  padding: var(--space-4) var(--space-6);
  background: var(--background-soft);
  border-top: 1px solid var(--border-color);
}

/* Card Varianten */
.card-primary {
  border: 2px solid var(--primary-color);
}

.card-primary .card-header {
  background: var(--primary-color);
  color: var(--white);
}

.card-feature {
  text-align: center;
  padding: var(--space-8);
}

.card-feature .card-icon {
  width: 60px;
  height: 60px;
  margin: 0 auto var(--space-4);
  background: var(--highlight-color);
  border-radius: var(--radius-xl);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-2xl);
}

/* ========================================
   FOOTER KOMPONENTE
   ======================================== */
.footer {
  margin-top: auto;
}

.footer-column h4 {
  color: var(--white);
  margin-bottom: var(--space-4);
}

.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-link {
  color: rgba(255, 255, 255, 0.75);
  text-decoration: none;
  font-size: var(--text-sm);
  transition: all 0.2s ease;
  display: inline-block;
}

.footer-link:hover {
  color: var(--white);
  text-decoration: none;
  transform: translateX(2px);
}

.social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: var(--radius);
  text-decoration: none;
  font-size: var(--text-lg);
  transition: all 0.2s ease;
}

.social-link:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: translateY(-2px);
  text-decoration: none;
}

.contact-info strong {
  color: var(--white);
}

/* ========================================
   HERO KOMPONENTE - FULLSCREEN
   ======================================== */
.hero-fullscreen {
  position: relative;
  height: 100vh;
  min-height: 600px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 120%;
  background: var(--gradient-primary);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform 0.1s ease-out;
  z-index: 1;
}

/* Placeholder für Hintergrundbild */
.hero-background::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, 
    rgba(160, 46, 149, 0.8) 0%, 
    rgba(184, 68, 167, 0.6) 50%,
    rgba(160, 46, 149, 0.9) 100%);
  z-index: 2;
}

/* Für echtes Hintergrundbild (später einkommentieren): */
/*
.hero-background {
  background-image: url('../images/hero-background.jpg');
}
*/

.hero-content-fullscreen {
  position: relative;
  z-index: 10;
  text-align: center;
  color: var(--white);
  max-width: 800px;
  padding: 0 var(--space-4);
}

.hero-fullscreen h1 {
  font-size: clamp(var(--text-4xl), 6vw, 5rem);
  line-height: 1.1;
  margin-bottom: var(--space-6);
  color: var(--white);
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
  font-weight: 200;
}

.hero-fullscreen p {
  font-size: clamp(var(--text-lg), 2.5vw, var(--text-xl));
  margin-bottom: var(--space-8);
  opacity: 0.95;
  text-shadow: 0 1px 5px rgba(0, 0, 0, 0.3);
  line-height: var(--leading-relaxed);
}

.hero-fullscreen .btn {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.hero-fullscreen .btn-primary {
  background: rgba(255, 255, 255, 0.9);
  color: var(--primary-color);
  border: 2px solid rgba(255, 255, 255, 0.3);
}

.hero-fullscreen .btn-primary:hover {
  background: var(--white);
  transform: translateY(-3px);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
}

.hero-fullscreen .btn-outline {
  background: rgba(255, 255, 255, 0.1);
  color: var(--white);
  border: 2px solid rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.hero-fullscreen .btn-outline:hover {
  background: rgba(255, 255, 255, 0.2);
  color: var(--white);
  border-color: var(--white);
  transform: translateY(-3px);
}

/* Scroll Indicator */
.scroll-indicator {
  position: absolute;
  bottom: var(--space-8);
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  color: var(--white);
  text-align: center;
  opacity: 0.8;
  animation: bounce 2s infinite;
}

.scroll-indicator::before {
  content: '↓';
  display: block;
  font-size: var(--text-2xl);
  margin-bottom: var(--space-2);
}

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateX(-50%) translateY(0);
  }
  40% {
    transform: translateX(-50%) translateY(-10px);
  }
  60% {
    transform: translateX(-50%) translateY(-5px);
  }
}

/* Content nach Hero Section */
.content-after-hero {
  position: relative;
  z-index: 20;
  background: var(--white);
}

/* Mobile Anpassungen */
@media (max-width: 768px) {
  .hero-fullscreen {
    min-height: 500px;
    height: 100vh;
  }
  
  .hero-fullscreen h1 {
    font-size: var(--text-3xl);
  }
  
  .hero-fullscreen p {
    font-size: var(--text-base);
  }
  
  .scroll-indicator {
    bottom: var(--space-4);
  }
}

/* Landscape Mobile */
@media (max-width: 768px) and (max-height: 500px) {
  .hero-fullscreen {
    height: 100vh;
    min-height: 400px;
  }
  
  .hero-content-fullscreen {
    padding: var(--space-8) var(--space-4);
  }
}

/* ========================================
   HERO MIT TRANSPARENTEM HEADER
   ======================================== */
.hero.hero-with-background {
  background-image: url('../images/hero_background.jpg') !important;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  margin-top: 0; /* Kein negativer Margin nötig */
  padding-top: 100px; /* Platz für transparenten Header */
  min-height: 70vh; /* Mindesthöhe */
}

/* Overlay für bessere Lesbarkeit (optional) */
.hero.hero-with-background::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.2); /* Sehr subtiles Overlay */
  z-index: 1;
}

.hero.hero-with-background .container {
  position: relative;
  z-index: 2;
}

/* ========================================
   HERO KOMPONENTE - STANDARD (für andere Seiten)
   ======================================== */
.hero {
  background: var(--gradient-soft);
  position: relative;
  overflow: hidden;
}

.hero-content {
  position: relative;
  z-index: 10;
}

.hero h1 {
  font-size: clamp(var(--text-3xl), 5vw, var(--text-5xl));
  line-height: 1.1;
  margin-bottom: var(--space-6);
}

.hero p {
  font-size: var(--text-lg);
  opacity: 0.8;
  max-width: 600px;
}
.breadcrumb {
  padding: var(--space-4) 0;
  background: var(--background-soft);
  border-bottom: 1px solid var(--border-color);
}

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

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

.breadcrumb-item:not(:last-child)::after {
  content: '/';
  margin-left: var(--space-2);
  color: var(--text-muted);
}

.breadcrumb-link {
  color: var(--text-secondary);
  text-decoration: none;
  transition: color 0.2s ease;
}

.breadcrumb-link:hover {
  color: var(--primary-color);
  text-decoration: none;
}

.breadcrumb-current {
  color: var(--text-primary);
  font-weight: 500;
}

/* ========================================
   FORM KOMPONENTEN
   ======================================== */
.form-group {
  margin-bottom: var(--space-5);
}

.form-label {
  display: block;
  font-weight: 500;
  color: var(--text-primary);
  margin-bottom: var(--space-2);
  font-size: var(--text-sm);
}

.form-input,
.form-select,
.form-textarea {
  width: 100%;
  padding: var(--space-3);
  border: 2px solid var(--border-color);
  border-radius: var(--radius);
  font-size: var(--text-base);
  font-family: var(--font-body);
  transition: all 0.2s ease;
  background: var(--white);
}

.form-input:focus,
.form-select:focus,
.form-textarea:focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: 0 0 0 3px rgba(160, 46, 149, 0.1);
}

.form-textarea {
  resize: vertical;
  min-height: 120px;
}

.form-error {
  color: #dc2626;
  font-size: var(--text-sm);
  margin-top: var(--space-1);
}

.form-help {
  color: var(--text-muted);
  font-size: var(--text-sm);
  margin-top: var(--space-1);
}

/* ========================================
   UTILITY KOMPONENTEN
   ======================================== */

/* Loading Spinner */
.spinner {
  width: 20px;
  height: 20px;
  border: 2px solid var(--border-color);
  border-top: 2px solid var(--primary-color);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Alert/Notification */
.alert {
  padding: var(--space-4);
  border-radius: var(--radius);
  margin-bottom: var(--space-4);
  border: 1px solid transparent;
}

.alert-info {
  background: #dbeafe;
  border-color: #93c5fd;
  color: #1e40af;
}

.alert-success {
  background: #dcfce7;
  border-color: #86efac;
  color: #166534;
}

.alert-warning {
  background: #fef3c7;
  border-color: #fcd34d;
  color: #92400e;
}

.alert-error {
  background: #fee2e2;
  border-color: #fca5a5;
  color: #991b1b;
}

/* Badge */
.badge {
  display: inline-flex;
  align-items: center;
  padding: var(--space-1) var(--space-3);
  background: var(--primary-color);
  color: var(--white);
  font-size: var(--text-xs);
  font-weight: 600;
  border-radius: var(--radius-xl);
}

.badge-secondary {
  background: var(--text-muted);
}

.badge-outline {
  background: transparent;
  border: 1px solid var(--primary-color);
  color: var(--primary-color);
}

/* ========================================
   BREADCRUMB KOMPONENTE
   ======================================== */
.text-secondary-color { 
  color: var(--secondary-color, var(--primary-color)); 
}

/* Background für secondary color */
.bg-secondary { 
  background-color: var(--secondary-color, var(--primary-color)); 
}

/* ========================================
   RESPONSIVE ANPASSUNGEN
   ======================================== */
@media (max-width: 768px) {
  .card-body,
  .card-header {
    padding: var(--space-4);
  }
  
  .hero h1 {
    font-size: var(--text-3xl);
  }
  
  .btn-group {
    flex-direction: column;
  }
  
  .footer-content .grid-4 {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }
}


/*  ======================================
    Startseiten-Element
    ======================================*/

    /* Features Grid Layout */
        .features-grid-container {
            display: grid;
            grid-template-columns: 1fr auto 1fr;
            grid-template-rows: 1fr 1fr;
            gap: var(--space-8);
            align-items: center;
            max-width: 1200px;
            margin: 0 auto;
            padding: var(--space-12) var(--space-4);
        }

        /* Central image positioning */
        .features-central-image {
            grid-column: 2;
            grid-row: 1 / 3;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0 var(--space-8);
        }

        .features-central-image img {
            max-width: 350px;
            height: auto;
            object-fit: contain;
        }

        /* Feature items positioning */
        .feature-item {
            text-align: center;
            padding: var(--space-6);
            max-width: 280px;
        }

        .feature-item-top-left {
            grid-column: 1;
            grid-row: 1;
            justify-self: end;
            align-self: end;
        }

        .feature-item-bottom-left {
            grid-column: 1;
            grid-row: 2;
            justify-self: end;
            align-self: start;
        }

        .feature-item-top-right {
            grid-column: 3;
            grid-row: 1;
            justify-self: start;
            align-self: end;
        }

        .feature-item-bottom-right {
            grid-column: 3;
            grid-row: 2;
            justify-self: start;
            align-self: start;
        }

        /* Feature styling */
        .feature-icon {
            width: 80px;
            height: 80px;
            margin: 0 auto var(--space-4);
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--primary-color);
        }

        .feature-icon svg {
            width: 50px;
            height: 50px;
            fill: currentColor;
        }

        .feature-title {
            font-family: var(--font-heading);
            font-size: var(--text-xl);
            font-weight: 600;
            color: var(--text-primary);
            margin-bottom: var(--space-3);
            line-height: var(--leading-tight);
        }

        .feature-description {
            font-size: var(--text-base);
            color: var(--text-secondary);
            line-height: var(--leading-relaxed);
            margin: 0;
        }

        /* Responsive Design */
        @media (max-width: 1024px) {
            .features-grid-container {
                grid-template-columns: 1fr;
                grid-template-rows: auto;
                gap: var(--space-6);
                text-align: center;
            }

            .features-central-image {
                grid-column: 1;
                grid-row: 3;
                order: 3;
                padding: var(--space-6) 0;
            }

            .features-central-image img {
                max-width: 250px;
            }

            .feature-item {
                grid-column: 1;
                justify-self: center;
                align-self: center;
                max-width: 400px;
            }

            .feature-item-top-left { grid-row: 1; order: 1; }
            .feature-item-bottom-left { grid-row: 2; order: 2; }
            .feature-item-top-right { grid-row: 4; order: 4; }
            .feature-item-bottom-right { grid-row: 5; order: 5; }
        }

        @media (max-width: 768px) {
            .features-grid-container {
                padding: var(--space-8) var(--space-3);
                gap: var(--space-5);
            }

            .features-central-image img {
                max-width: 200px;
            }

            .feature-icon {
                width: 60px;
                height: 60px;
            }

            .feature-icon svg {
                width: 35px;
                height: 35px;
            }

            .feature-title {
                font-size: var(--text-lg);
            }

            .feature-description {
                font-size: var(--text-sm);
            }
        }

/*  ======================================
    Highlight Text links Bild rechts
    ======================================*/

/* Vision Section Styles */
        .vision-section {
            padding: var(--space-24) 0;
            background: var(--background-light);
            position: relative;
            overflow: hidden;
        }

        .vision-container {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: var(--space-12);
            align-items: center;
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 var(--space-4);
        }

        /* Vision Content */
        .vision-content {
            padding: var(--space-6);
        }

        .vision-subtitle {
            font-family: var(--font-body);
            font-size: var(--text-lg);
            color: var(--primary-color);
            font-weight: 400;
            font-style: italic;
            margin-bottom: var(--space-4);
            display: block;
        }

        .vision-title {
            font-family: var(--font-heading);
            font-size: clamp(var(--text-3xl), 4vw, var(--text-4xl));
            line-height: var(--leading-tight);
            color: var(--text-primary);
            margin: 0;
        }

        .vision-title .highlight {
            color: var(--primary-color);
            font-style: italic;
            font-family: 'Playfair Display', serif;
            font-weight: 400;
        }

        /* Vision Image */
        .vision-image-container {
            position: relative;
            padding: var(--space-6);
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .vision-image {
            width: 100%;
            max-width: 450px;
            height: auto;
            border-radius: var(--radius-xl);
            box-shadow: var(--shadow-xl);
            transition: transform 0.3s ease;
        }

        .vision-image:hover {
            transform: scale(1.02);
        }

        /* Scroll Animations */
        .animate-slide-in-left,
        .animate-slide-in-right {
            opacity: 0;
            transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
        }

        .animate-slide-in-left {
            transform: translateX(-50px);
        }

        .animate-slide-in-right {
            transform: translateX(50px);
        }

        .animate-slide-in-left.in-view,
        .animate-slide-in-right.in-view {
            opacity: 1;
            transform: translateX(0);
        }

        /* Staggered animation for text elements */
        .vision-subtitle.animate-slide-in-left {
            transition-delay: 0.1s;
        }

        .vision-title.animate-slide-in-left {
            transition-delay: 0.3s;
        }

        /* Responsive Design */
        @media (max-width: 1024px) {
            .vision-container {
                gap: var(--space-8);
            }
        }

        @media (max-width: 768px) {
            .vision-section {
                padding: var(--space-16) 0;
            }

            .vision-container {
                grid-template-columns: 1fr;
                gap: var(--space-8);
                text-align: center;
            }

            .vision-content {
                padding: var(--space-4);
            }

            .vision-title {
                font-size: var(--text-2xl);
            }

            .vision-image-container {
                order: -1;
                padding: var(--space-4);
            }

            .vision-image {
                max-width: 350px;
            }

            /* Mobile animations - less dramatic movement */
            .animate-slide-in-left {
                transform: translateX(-30px);
            }

            .animate-slide-in-right {
                transform: translateX(30px);
            }
        }

        @media (max-width: 480px) {
            .vision-image {
                max-width: 280px;
            }

            .vision-title {
                font-size: var(--text-xl);
            }

            .vision-subtitle {
                font-size: var(--text-base);
            }
        }