/* Custom styles can be added below */

@keyframes sched-phone-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

@keyframes sched-reveal-up {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes sched-hero-demo-in {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes sched-hero-demo-phone-in {
  from { opacity: 0; transform: translateX(28px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes sched-hero-demo-message-in {
  from { opacity: 0; transform: translateY(8px) scale(0.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes sched-hero-demo-confirm-tap {
  0%, 100% { transform: scale(1); filter: brightness(1); }
  40% { transform: scale(0.92); filter: brightness(1.15); }
  70% { transform: scale(1.04); filter: brightness(1.05); }
}

@keyframes sched-hero-demo-status-out {
  to { opacity: 0; transform: scale(0.92); }
}

@keyframes sched-hero-demo-status-in {
  from { opacity: 0; transform: scale(0.92); }
  to { opacity: 1; transform: scale(1); }
}

/* No-JS / progressive enhancement final state for status chips */
html:not(.js) [data-hero-demo="status-pending"] {
  opacity: 0;
}

html:not(.js) [data-hero-demo="status-confirmed"] {
  opacity: 1;
}

@media (prefers-reduced-motion: no-preference) {
  .sched-phone-float {
    animation: sched-phone-float 4.5s ease-in-out infinite;
  }

  html.js [data-reveal] {
    opacity: 0;
    transform: translateY(16px);
  }

  html.js [data-reveal].is-visible {
    animation: sched-reveal-up 0.7s ease forwards;
  }

  html.js [data-reveal] [data-hero-demo="phone"] .sched-phone-float {
    animation: none;
  }

  html.js [data-reveal]:not(.is-visible) [data-hero-demo="dashboard"],
  html.js [data-reveal]:not(.is-visible) [data-hero-demo="phone"],
  html.js [data-reveal]:not(.is-visible) [data-hero-demo="message"] {
    opacity: 0;
  }

  html.js [data-reveal]:not(.is-visible) [data-hero-demo="status-confirmed"] {
    opacity: 0;
  }

  html.js [data-reveal].is-visible [data-hero-demo="dashboard"] {
    animation: sched-hero-demo-in 0.55s ease forwards;
  }

  html.js [data-reveal].is-visible [data-hero-demo="phone"] {
    opacity: 0;
    animation: sched-hero-demo-phone-in 0.55s ease 0.55s forwards;
  }

  html.js [data-reveal].is-visible [data-hero-demo="message"] {
    opacity: 0;
    animation: sched-hero-demo-message-in 0.4s ease 1.1s forwards;
  }

  html.js [data-reveal].is-visible [data-hero-demo="confirm"] {
    animation: sched-hero-demo-confirm-tap 0.45s ease 1.7s forwards;
  }

  html.js [data-reveal].is-visible [data-hero-demo="status-pending"] {
    animation: sched-hero-demo-status-out 0.35s ease 2.2s forwards;
  }

  html.js [data-reveal].is-visible [data-hero-demo="status-confirmed"] {
    opacity: 0;
    animation: sched-hero-demo-status-in 0.35s ease 2.2s forwards;
  }

  html.js [data-reveal].is-visible [data-hero-demo="phone"] .sched-phone-float {
    animation: sched-phone-float 4.5s ease-in-out 3s infinite;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sched-phone-float {
    animation: none;
  }

  html.js [data-reveal],
  html.js [data-reveal].is-visible {
    opacity: 1;
    transform: none;
    animation: none;
  }

  [data-hero-demo="status-pending"] {
    opacity: 0;
  }

  [data-hero-demo="status-confirmed"] {
    opacity: 1;
  }
}
