/* ========================================
   ANIMATION SYSTEM - subpages only
   Homepage keeps its own self-contained hero
   animations and does not load this file.
   ======================================== */

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

/* Cards are only hidden when JS is running to reveal them.
   Without .js-anim on <html> everything renders normally. */
.js-anim .signal-card,
.js-anim .broker-card-featured,
.js-anim .info-card,
.js-anim .why-card {
  opacity: 0;
}

.js-anim .signal-card.in-view,
.js-anim .broker-card-featured.in-view,
.js-anim .info-card.in-view,
.js-anim .why-card.in-view {
  animation: cardSlideIn 0.5s ease-out forwards;
}

/* Hover lift */
.signal-card,
.broker-card-featured,
.info-card,
.why-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.signal-card:hover,
.broker-card-featured:hover,
.info-card:hover,
.why-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.18);
}

/* Buttons */
.btn {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(212, 161, 69, 0.25);
}

/* Live signal badge */
@keyframes badgePulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.6; }
}

.signal-badge {
  animation: badgePulse 2.5s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
