/* ── diveshack hero motion ── entrance animations ── */

@keyframes ds-rise {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Staggered entrance — breadcrumb / badge / eyebrow first */
.hero .breadcrumb        { animation: ds-rise 0.65s 0.05s ease-out both; }
.hero .hero-eyebrow      { animation: ds-rise 0.65s 0.05s ease-out both; }
.hero .hero-tag          { animation: ds-rise 0.65s 0.10s ease-out both; }
.hero .course-badge      { animation: ds-rise 0.65s 0.10s ease-out both; }

/* Headline */
.hero h1                 { animation: ds-rise 0.70s 0.22s ease-out both; }

/* Body copy */
.hero .hero-sub          { animation: ds-rise 0.65s 0.36s ease-out both; }
.hero .hero-coords       { animation: ds-rise 0.65s 0.42s ease-out both; }

/* CTAs and stat panels */
.hero .btn-row           { animation: ds-rise 0.65s 0.46s ease-out both; }
.hero .hero-actions      { animation: ds-rise 0.65s 0.46s ease-out both; }
.hero .dcp               { animation: ds-rise 0.65s 0.52s ease-out both; }
.hero .dive-comp         { animation: ds-rise 0.65s 0.42s ease-out both; }
.hero .hero-price-card   { animation: ds-rise 0.65s 0.42s ease-out both; }

/* Scroll / descend indicator — last */
.hero-scroll             { animation: ds-rise 0.65s 0.72s ease-out both; }

/* Respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .hero .breadcrumb,
  .hero .hero-eyebrow,
  .hero .hero-tag,
  .hero .course-badge,
  .hero h1,
  .hero .hero-sub,
  .hero .hero-coords,
  .hero .btn-row,
  .hero .hero-actions,
  .hero .dcp,
  .hero .dive-comp,
  .hero .hero-price-card,
  .hero-scroll {
    animation: none;
  }
}
