/* Lightweight motion layer for public pages. */
@keyframes publicHeaderEnter {
  from {
    opacity: 0;
    transform: translateY(-14px) scale(.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes publicNavItemEnter {
  from {
    opacity: 0;
    transform: translateY(-7px) scale(.92);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

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

@keyframes activeNavIconPop {
  0% { transform: scale(.78); }
  58% { transform: scale(1.12); }
  100% { transform: scale(1); }
}

#smart-page-root > .public-header {
  animation: publicHeaderEnter .55s cubic-bezier(.2, .8, .2, 1) both;
}

#smart-page-root > .public-header .nav-link {
  animation: publicNavItemEnter .42s cubic-bezier(.2, .8, .2, 1) both;
  transition: color .22s ease, background-color .22s ease, box-shadow .22s ease, transform .22s ease !important;
}

#smart-page-root > .public-header .nav-link:nth-child(1) { animation-delay: .08s; }
#smart-page-root > .public-header .nav-link:nth-child(2) { animation-delay: .13s; }
#smart-page-root > .public-header .nav-link:nth-child(3) { animation-delay: .18s; }
#smart-page-root > .public-header .nav-link:nth-child(4) { animation-delay: .23s; }
#smart-page-root > .public-header .nav-link:nth-child(5) { animation-delay: .28s; }

#smart-page-root > .public-header .nav-link:hover {
  transform: translateY(-2px);
}

#smart-page-root > .public-header .nav-link:active {
  transform: translateY(0) scale(.94);
  transition-duration: .08s !important;
}

#smart-page-root > .public-header .nav-link.active .mobile-icon {
  animation: activeNavIconPop .5s cubic-bezier(.2, .8, .2, 1) .28s both;
}

#smart-page-root > .public-header .logo-icon,
#smart-page-root > .public-header .switch {
  transition: transform .22s ease, filter .22s ease, box-shadow .22s ease;
}

#smart-page-root > .public-header .logo:hover .logo-icon,
#smart-page-root > .public-header .switch:hover {
  transform: translateY(-2px) scale(1.04);
  filter: saturate(1.12);
}

.booking-shell > .booking-breadcrumb,
.booking-shell > .booking-hero,
.booking-shell > .booking-helper-strip,
.booking-shell > .booking-success,
.booking-shell > .booking-errors,
.booking-shell > .booking-form {
  animation: publicContentEnter .58s cubic-bezier(.2, .8, .2, 1) both;
}

.booking-shell > .booking-breadcrumb { animation-delay: .08s; }
.booking-shell > .booking-hero { animation-delay: .14s; }
.booking-shell > .booking-helper-strip { animation-delay: .2s; }
.booking-shell > .booking-success,
.booking-shell > .booking-errors { animation-delay: .24s; }
.booking-shell > .booking-form { animation-delay: .28s; }

.booking-helper-strip > div,
.choice-card,
.type-card,
.day-choice,
.time-slot {
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease, background-color .22s ease !important;
}

.booking-helper-strip > div:hover,
.choice-card:hover,
.type-card:hover,
.day-choice:hover:not(:disabled),
.time-slot:hover:not(.unavailable) {
  transform: translateY(-3px);
}

.choice-card:active,
.type-card:active,
.day-choice:active:not(:disabled),
.time-slot:active:not(.unavailable) {
  transform: translateY(0) scale(.98);
  transition-duration: .08s !important;
}

@media (max-width: 820px) {
  #smart-page-root > .public-header .nav-link:hover {
    transform: none;
  }

  #smart-page-root > .public-header .nav-link:active {
    transform: scale(.92);
  }

  .booking-helper-strip > div:hover {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-delay: 0ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
