/* Nova Reception front-end fixes: missing @keyframes restored.
   These animation names are referenced 140x in the Elementor page CSS
   but were never defined in the original export. */

/* Entrance animation (uses the composable `translate` property so it
   never wipes an element's own transform, e.g. the 3D card children) */
@keyframes fade-up {
  from { opacity: 0; translate: 0 24px; }
  to   { opacity: 1; translate: 0 0; }
}

/* Voice waveform bars (equalizer) */
@keyframes wave {
  0%, 100% { scale: 1 1; }
  50%      { scale: 1 2.6; }
}

/* Gentle floating bob for the hero overlay cards */
@keyframes float-y {
  0%, 100% { translate: 0 0; }
  50%      { translate: 0 -9px; }
}

/* Expanding ring behind the live-call indicator */
@keyframes pulse-ring {
  0%       { scale: 1; opacity: 0.55; }
  70%, 100% { scale: 1.9; opacity: 0; }
}

/* Flowing dashed connector arrows (stroke-dasharray: 4 4 => period 8) */
@keyframes flow-dash {
  from { stroke-dashoffset: 0; }
  to   { stroke-dashoffset: -8; }
}

/* Smooth FAQ open/close (JS toggles grid-template-rows inline) */
.nova-faq-answer-anim {
  transition: grid-template-rows 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.nova-faq-icon-anim {
  transition: rotate 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
  .nova-faq-answer-anim, .nova-faq-icon-anim { transition: none; }
}

/* Talk to Nova web-call widget */
.nova-webcall { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.nova-webcall .nova-webcall-btn { cursor: pointer; }
.nova-webcall .nova-webcall-btn:disabled { opacity: 0.7; cursor: wait; }
.nova-webcall[data-state="live"] .nova-webcall-btn { background-color: #b32d2e !important; }
.nova-webcall-status { font-size: 14px; color: #555; display: inline-flex; align-items: center; gap: 8px; min-height: 1.4em; }
.nova-live-dot { width: 9px; height: 9px; border-radius: 50%; background: #1a7f37; display: inline-block; animation: nova-live-pulse 1.4s ease-in-out infinite; }
@keyframes nova-live-pulse { 0%, 100% { opacity: 1; scale: 1; } 50% { opacity: 0.45; scale: 0.8; } }
