/* ==========================================================================
   GALERIE REDESIGN (POP-OUT CARDS)
   ========================================================================== */
   .gallery-section { padding: 100px 5%; background-color: #fafafa; }

   .gallery-filters { display: flex; justify-content: center; flex-wrap: wrap; gap: 0.8rem; margin-bottom: 4rem; }
   
   .filter-btn { 
       background: none; border: 1px solid #ddd; border-radius: 50px; padding: 0.6rem 1.5rem; font-family: var(--font-family); font-weight: 600; cursor: pointer; transition: all 0.3s ease; font-size: 0.9rem; color: #666;
   }
   .filter-btn:hover, .filter-btn.active {
       background-color: var(--dark-color); color: #fff; border-color: var(--dark-color);
   }
   
   .gallery-grid { 
       display: grid; 
       grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); 
       gap: 60px; /* Standard Abstand */
       max-width: 1400px; 
       margin: 0 auto; 
       padding-top: 40px; /* Mehr Platz oben für schwebende Köpfe */
       padding-bottom: 40px; /* Sicherheitspadding unten */
   }
   
   .gallery-item.hide { display: none; }
   
   /* Die Karte selbst */
   .pop-card {
       display: flex;
       flex-direction: column;
       align-items: center;
       position: relative;
       overflow: visible; 
       cursor: pointer;
       /* Sanftere Transition für die Karte selbst */
       transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
       z-index: 1;
   }
   
   .pop-card:hover { z-index: 10; } /* Beim Hovern nach vorne */
   .pop-card:active { transform: scale(0.98); }
   
   /* Titel oben */
   .pop-title {
       font-size: 1.1rem;
       font-weight: 700;
       text-transform: uppercase;
       letter-spacing: 1px;
       color: #999;
       margin-bottom: 15px; /* Etwas mehr Platz */
       text-align: center;
       transition: color 0.3s;
   }
   .pop-card:hover .pop-title { color: var(--primary-color); }
   
   /* Bild Wrapper und Animation */
   .pop-image-wrapper {
       position: relative;
       width: 100%;
       display: flex;
       justify-content: center;
       z-index: 10;
       margin-bottom: -50px;
       pointer-events: none;
       /* FIX: Animation liegt jetzt auf dem Wrapper, damit Hover das Bild nicht resettet */
       animation: floatImage 5s ease-in-out infinite;
       will-change: transform;
   }
   
   /* Das Bild selbst */
   .pop-img {
       width: auto;
       max-width: 85%;
       height: 200px;
       object-fit: contain;
       filter: drop-shadow(0 15px 25px rgba(0,0,0,0.25));
       /* FIX: Neue Bezier-Kurve für organischen "Pop" Effekt ohne Ruckeln */
       transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1), filter 0.3s ease;
       transform-origin: center bottom;
   }
   
   @keyframes floatImage { 
       0% { transform: translateY(0); } 
       50% { transform: translateY(-12px); } 
       100% { transform: translateY(0); } 
   }
   
   /* Hover Effekt: Wrapper schwebt weiter, Bild zoomt sanft */
   .pop-card:hover .pop-img {
       /* Kein "animation: none" mehr nötig -> Kein Ruckeln! */
       transform: scale(1.15) translateY(-10px) rotate(2deg);
       filter: drop-shadow(0 30px 45px rgba(0,0,0,0.35));
   }
   
   /* Karte unten (Body) */
   .pop-card-body {
       background: #fff;
       width: 100%;
       padding: 70px 20px 30px 20px;
       border-radius: 20px;
       box-shadow: 0 10px 30px rgba(0,0,0,0.05);
       text-align: center;
       position: relative;
       z-index: 1;
       transition: all 0.4s ease;
       border: 1px solid rgba(0,0,0,0.03);
   }
   
   .pop-card:hover .pop-card-body {
       transform: translateY(8px);
       box-shadow: 0 20px 50px rgba(0,0,0,0.12);
       border-color: var(--primary-color);
   }
   
   .pop-badge {
       display: inline-block;
       background-color: var(--light-color);
       color: var(--dark-color);
       padding: 4px 12px;
       border-radius: 50px;
       font-size: 0.75rem;
       font-weight: 700;
       text-transform: uppercase;
       margin-bottom: 1rem;
   }
   
   .pop-facts {
       display: flex;
       justify-content: center;
       gap: 8px;
       color: #777;
       font-size: 0.9rem;
       font-weight: 500;
   }
   
   /* NEU: Showcase Footer für den Button */
   .showcase-footer {
       text-align: center;
       margin-top: 4rem;
   }
   
   .outline-btn {
       background: transparent;
       border: 2px solid var(--dark-color);
       color: var(--dark-color);
       box-shadow: none;
   }
   
   .outline-btn:hover {
       background: var(--dark-color);
       color: #fff;
       transform: translateY(-2px);
   }
   
   
   /* ==========================================================================
      PRODUCT MODAL STYLES (REDESIGNED & SCROLLABLE)
      ========================================================================== */
   .product-modal {
       position: fixed;
       top: 0; left: 0; width: 100%; height: 100%;
       z-index: 9999;
       display: flex;
       /* Wichtig für Scrolling: Flex-Start statt Center */
       align-items: flex-start; 
       justify-content: center;
       pointer-events: none;
       opacity: 0;
       transition: opacity 0.3s ease;
       
       /* Scrollbar aktivieren */
       overflow-y: auto;
       overflow-x: hidden;
       padding: 20px 0; /* Abstand oben/unten beim Scrollen */
   }
   
   .product-modal.active {
       pointer-events: all;
       opacity: 1;
   }
   
   /* Backdrop */
   .modal-backdrop {
       position: fixed; /* Fixed, damit es beim Scrollen bleibt */
       top: 0; left: 0; width: 100%; height: 100%;
       background: rgba(255, 255, 255, 0.85);
       backdrop-filter: blur(20px);
       -webkit-backdrop-filter: blur(20px);
       z-index: -1; /* Hinter dem Content */
   }
   
   /* Wrapper für das Grid */
   .modal-content-wrapper {
       position: relative;
       width: 100%;
       max-width: 1200px;
       padding: 20px;
       z-index: 10;
       background: transparent;
       box-shadow: none;
       border-radius: 0;
       overflow: visible; 
       
       /* Zentrierung im scrollbaren Container */
       margin: auto; 
   }
   
   .modal-close-btn {
       position: absolute;
       top: 0px; right: 20px;
       width: 50px; height: 50px;
       border-radius: 50%;
       background: #fff;
       border: 1px solid #eee;
       font-size: 2rem;
       display: flex; align-items: center; justify-content: center;
       cursor: pointer;
       z-index: 100;
       transition: all 0.3s;
       box-shadow: 0 5px 20px rgba(0,0,0,0.1);
   }
   .modal-close-btn:hover {
       background: var(--dark-color);
       color: #fff;
       transform: rotate(90deg);
   }
   
   /* Modal Layout - Freistehendes Bild + Info Card */
   .modal-grid {
       display: flex;
       align-items: center;
       justify-content: center;
       min-height: 60vh;
   }
   
   /* Linke Spalte: Freistehendes Bild */
   .modal-left-col {
       flex: 1.2;
       display: flex;
       justify-content: center;
       align-items: center;
       position: relative;
       z-index: 10; 
   }
   
   .modal-img-container {
       width: 100%;
       display: flex;
       justify-content: center;
   }
   
   .modal-main-img {
       max-width: 100%;
       max-height: 70vh;
       width: auto;
       object-fit: contain;
       filter: drop-shadow(0 40px 80px rgba(0,0,0,0.6));
       transform-origin: center center;
       will-change: transform; 
   }
   
   /* Rechte Spalte: Die Info Karte (dockt an) */
   .modal-right-col {
       flex: 0.8;
       background: rgba(255, 255, 255, 0.9);
       backdrop-filter: blur(10px);
       padding: 50px;
       border-radius: 30px;
       box-shadow: 0 20px 60px rgba(0,0,0,0.08);
       border: 1px solid rgba(255,255,255,0.5);
       margin-left: -80px; 
       z-index: 5;
       transform: translateX(100px);
       opacity: 0;
       transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
   }
   
   .product-modal.active .modal-right-col {
       transform: translateX(0);
       opacity: 1;
       transition-delay: 0.2s;
   }
   
   .modal-badge {
       display: inline-block;
       color: var(--primary-color);
       font-weight: 800;
       text-transform: uppercase;
       letter-spacing: 2px;
       font-size: 0.9rem;
       margin-bottom: 0.5rem;
   }
   
   .modal-title {
       font-size: 3rem;
       line-height: 1;
       font-weight: 800;
       margin-bottom: 1.5rem;
       color: var(--dark-color);
   }
   
   .modal-desc {
       color: #555;
       font-size: 1.1rem;
       line-height: 1.6;
       margin-bottom: 2.5rem;
   }
   
   .modal-stats-grid {
       display: grid;
       grid-template-columns: 1fr 1fr;
       gap: 20px;
       margin-bottom: 3rem;
       padding-top: 2rem;
       border-top: 1px solid #eee;
   }
   
   .modal-stat-item strong {
       display: block;
       font-size: 0.75rem;
       text-transform: uppercase;
       letter-spacing: 1px;
       color: #999;
       margin-bottom: 5px;
   }
   .modal-stat-item span {
       font-size: 1.2rem;
       font-weight: 700;
       color: var(--dark-color);
   }
   
   .modal-cta {
       width: 100%;
       text-align: center;
   }
   
   /* ==========================================================================
      MOBILE RESPONSIVENESS (UPDATED)
      ========================================================================== */
   @media (max-width: 900px) {
       /* Modal Anpassungen */
       .modal-grid { 
           flex-direction: column; 
           padding-top: 20px; /* Weniger Padding oben, Close Button Platz lassen */
       }
       
       .modal-left-col { 
           width: 100%; 
           margin-bottom: -30px; 
           z-index: 20;
       }
       
       .modal-main-img { 
           max-height: 30vh; /* Kleineres Bild auf Mobile damit Platz für Text bleibt */
           filter: drop-shadow(0 20px 40px rgba(0,0,0,0.4));
       }
       
       .modal-right-col { 
           width: 100%; 
           margin-left: 0; 
           padding: 50px 25px 30px 25px; 
           text-align: center;
           border-radius: 20px;
           transform: translateY(30px);
           margin-bottom: 40px; /* Platz zum Scrollen unten */
       }
       
       .product-modal.active .modal-right-col {
           transform: translateY(0);
       }
   
       .modal-title { font-size: 1.8rem; margin-bottom: 1rem; }
       .modal-close-btn { 
           top: 10px; right: 10px; 
           width: 40px; height: 40px; 
           font-size: 1.5rem; 
           position: fixed; /* Fixed button damit er immer sichtbar ist */
           background: rgba(255,255,255,0.9);
           backdrop-filter: blur(5px);
           z-index: 999;
       }
   
       /* FIX: Gallery Grid Mobile Overflow */
       .gallery-grid {
           /* Kompakterer Abstand auf Mobile */
           gap: 60px; 
           padding-top: 20px;
       }
       
       .pop-card {
           margin-bottom: 20px;
       }
       
       .pop-img {
           /* Bildgröße auf Mobile leicht anpassen */
           height: 160px;
       }
   }