/* GraphX – eigene Animationen (Nachbau der Wix-Entrance-Effekte) */

/* Wix-Werbebanner + Cookie-Consent ausblenden (kein Wix-Tracking mehr) */
#WIX_ADS,
.consent-banner-root,
[data-hook="consent-banner-root"] {
  display: none !important;
}

/* Der entfernte Wix-Werbebanner reservierte oben 50px -> schließen,
   damit Navigation/Hero bündig am oberen Rand sitzen. */
:root { --wix-ads-height: 0px !important; }
#SITE_HEADER { top: 0 !important; }

/* Schutz gegen minimalen Horizontal-Overflow (z. B. 100vw + Scrollbar) */
html, body { overflow-x: hidden; max-width: 100%; }

/* ---- Hero-3D-Shapes: sanftes Schweben (Nachbau der Wix-Float-Animation) ----
   Nur die INNEREN <img> animieren (transform:none), damit die per matrix()
   gedrehten Wrapper ihre Rotation behalten. */
@media (prefers-reduced-motion: no-preference) {
  #comp-lz8ujalv img,
  #comp-lz8ujam72 img,
  #comp-lz8ujamc1 img,
  #comp-lz8ujama1 img,
  #comp-lz8ujamo img,
  #comp-lz8ujamp img,
  #comp-lz8ujamr img {
    animation: gxFloat 7s ease-in-out infinite;
    will-change: transform;
  }
  #comp-lz8ujalv  img { animation-duration: 6.4s; animation-delay: -0.3s; }
  #comp-lz8ujam72 img { animation-duration: 8.6s; animation-delay: -1.2s; }
  #comp-lz8ujamc1 img { animation-duration: 6.2s; animation-delay: -0.6s; }
  #comp-lz8ujama1 img { animation-duration: 9.0s; animation-delay: -2.0s; }
  #comp-lz8ujamo  img { animation: gxDrift 13s ease-in-out infinite; }
  #comp-lz8ujamp  img { animation-duration: 7.8s; animation-delay: -0.9s; }
  #comp-lz8ujamr  img { animation-duration: 8.2s; animation-delay: -1.6s; }
}
@keyframes gxFloat {
  0%, 100% { transform: translateY(0)     rotate(0deg); }
  50%      { transform: translateY(-14px) rotate(2deg); }
}
@keyframes gxDrift {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-12px); }
}

/* Einblenden beim Reinscrollen – nur aktiv wenn JS die Klasse setzt,
   damit ohne JS nichts unsichtbar bleibt. */
.gx-anim {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .8s cubic-bezier(.2,.6,.2,1),
              transform .8s cubic-bezier(.2,.6,.2,1);
  will-change: opacity, transform;
}
.gx-anim.gx-in {
  opacity: 1;
  transform: none;
}

/* leicht versetzte Reveals für Bilder/Galerie */
.gx-anim.gx-img {
  transform: translateY(28px) scale(.985);
}
.gx-anim.gx-img.gx-in {
  transform: none;
}

/* Hover-Zoom auf Portfolio-/Galeriebildern (CSS-only, robust) */
[data-testid="container-bg"] ~ * img,
.wixui-rich-text a { transition: opacity .25s ease, transform .25s ease; }

/* Respektiere reduzierte Bewegung */
@media (prefers-reduced-motion: reduce) {
  .gx-anim, .gx-anim.gx-img { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* kleine Bestätigung nach Formular-Versand */
.gx-form-msg {
  margin-top: 12px;
  font-size: 15px;
  color: #0dc143;
  display: none;
}
.gx-form-msg.gx-show { display: block; }
