/* Scroll-Reveal Animationen (marti.energy) */
.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 700ms ease, transform 700ms ease;
  will-change: opacity, transform;
}

.reveal.from-left { transform: translateX(-22px); }
.reveal.from-right { transform: translateX(22px); }
.reveal.from-bottom { transform: translateY(22px); }

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

.reveal.delay-100 { transition-delay: 100ms; }
.reveal.delay-200 { transition-delay: 200ms; }
.reveal.delay-300 { transition-delay: 300ms; }
.reveal.delay-400 { transition-delay: 400ms; }

@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal.is-visible {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}


/* --- Headline line-by-line animation (EnerPlan-like) --- */
.reveal.reveal-lines {
  /* outer element should not fade/slide as a whole */
  opacity: 1;
  transform: none;
  transition: none;
}

.reveal-lines .reveal-line {
  display: block;
  overflow: hidden;
  line-height: 1.05;
}

.reveal-lines .reveal-line-inner {
  display: inline-block;
  opacity: 0;
  transform: translateY(110%);
  transition: transform 650ms cubic-bezier(.22,.61,.36,1), opacity 650ms ease;
  transition-delay: calc(var(--i, 0) * 90ms);
  will-change: transform, opacity;
}

.reveal-lines.is-visible .reveal-line-inner {
  opacity: 1;
  transform: none;
}

/* --- Hero headline: plays on page load --- */
.hero-kicker {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 650ms ease, transform 650ms cubic-bezier(.22,.61,.36,1);
}

.hero-title.hero-lines {
  opacity: 1;
  transform: none;
}

.hero-title.hero-lines .reveal-line-inner {
  transition-delay: calc(120ms + (var(--i, 0) * 110ms));
}

body.hero-in .hero-kicker {
  opacity: 1;
  transform: none;
  transition-delay: 60ms;
}

body.hero-in .hero-title.hero-lines .reveal-line-inner {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .reveal-lines .reveal-line-inner,
  .hero-kicker,
  body.hero-in .hero-title.hero-lines .reveal-line-inner {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}


/* --- Headline line-by-line animation (EnerPlan-like) --- */
.reveal.reveal-lines {
  /* outer element should not fade/slide as a whole */
  opacity: 1;
  transform: none;
  transition: none;
}

.reveal-lines .reveal-line {
  display: block;
  overflow: hidden;
  line-height: 1.05;
}

.reveal-lines .reveal-line-inner {
  display: inline-block;
  opacity: 0;
  transform: translateY(110%);
  transition: transform 650ms cubic-bezier(.22,.61,.36,1), opacity 650ms ease;
  transition-delay: calc(var(--i, 0) * 90ms);
  will-change: transform, opacity;
}

.reveal-lines.is-visible .reveal-line-inner {
  opacity: 1;
  transform: translateY(0);
}

/* Hero: animate immediately on load */
.hero-kicker {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 600ms ease, transform 600ms cubic-bezier(.22,.61,.36,1);
  will-change: opacity, transform;
}

body.hero-in .hero-kicker {
  opacity: 1;
  transform: none;
  transition-delay: 80ms;
}

.hero-lines {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

.hero-lines .reveal-line-inner {
  transition-delay: calc(160ms + (var(--i, 0) * 110ms));
}

body.hero-in .hero-lines .reveal-line-inner {
  opacity: 1;
  transform: translateY(0);
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  .reveal-lines .reveal-line-inner,
  .hero-kicker,
  body.hero-in .hero-kicker,
  .hero-lines .reveal-line-inner,
  body.hero-in .hero-lines .reveal-line-inner {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}
