/* ===================================================================
   GLOBAL ANIMATIONS & PAGEBUILDER ANIMATIONS
   =================================================================== */

/* ---------------------------------------------------------------
   PAGEBUILDER BLOCK RENDERING (fade-in, slide-up, zoom)
   --------------------------------------------------------------- */

.pb-block-render[data-anim] {
  opacity: 0;
  transform: translateY(0);
  animation-fill-mode: forwards;
}

/* Fade-In */
.pb-block-render[data-anim="fade-in"] {
  animation: pbFadeIn 1s ease-out forwards;
  animation-delay: .1s;
}

/* Slide-Up */
.pb-block-render[data-anim="slide-up"] {
  transform: translateY(30px);
  animation: pbSlideUp .8s ease-out forwards;
  animation-delay: .15s;
}

/* Zoom-In */
.pb-block-render[data-anim="zoom"] {
  transform: scale(.95);
  animation: pbZoomIn .8s ease-out forwards;
  animation-delay: .1s;
}

/* Keyframes */
@keyframes pbFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

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

@keyframes pbZoomIn {
  from { transform: scale(.95); opacity: 0; }
  to   { transform: scale(1); opacity: 1; }
}


/* ===================================================================
   GLOBAL UTILITY ANIMATIONS
   – Hier können spätere Effekte ergänzt werden.
   =================================================================== */

/* universeller Fade-In Utility */
.fade-in {
  animation: fadeIn .4s ease forwards;
}

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

/* universeller Soft-Slide-Up */
.soft-slide-up {
  animation: softSlideUp .6s ease-out forwards;
}

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

/* universelle Zoom-In Utility */
.zoom-in {
  animation: zoomIn .5s ease-out forwards;
}

@keyframes zoomIn {
  from { transform: scale(.92); opacity: 0; }
  to   { transform: scale(1); opacity: 1; }
}


/* ===================================================================
   STAGGER-IN ANIMATION (mobile-menu links)
   Wird hier global gespeichert, aber NICHT doppelt angewendet
   =================================================================== */

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