/* Shared customer-facing booking progress fill, animation and sticky contract. */
.pxab-booking-progress{
  --pxab-booking-progress-track:#e2e8f0;
  --pxab-booking-progress-solid:#e11d48;
  --pxab-booking-progress-gradient-1:#e11d48;
  --pxab-booking-progress-gradient-2:#f97316;
  --pxab-booking-progress-gradient-3:#2563eb;
  --pxab-booking-progress-height:8px;
  --pxab-booking-progress-radius:99px;
  --pxab-booking-progress-duration:1200ms;
  --pxab-booking-progress-sticky-top:0px;
}
.pxab-booking-progress [data-pxab-booking-progress-track]{
  position:relative;
  height:var(--pxab-booking-progress-height)!important;
  overflow:hidden;
  border-radius:var(--pxab-booking-progress-radius)!important;
  background:var(--pxab-booking-progress-track)!important;
  isolation:isolate;
}
.pxab-booking-progress [data-pxab-booking-progress-bar]{
  position:relative;
  display:block;
  width:0;
  height:100%;
  overflow:hidden;
  border-radius:inherit;
  transform:translateZ(0);
  will-change:width,background-position,filter,transform;
  transition:width var(--pxab-booking-progress-duration) cubic-bezier(.22,1,.36,1);
}
.pxab-booking-progress--color-solid [data-pxab-booking-progress-bar]{background:var(--pxab-booking-progress-solid)!important}
.pxab-booking-progress--color-gradient [data-pxab-booking-progress-bar]{
  background:linear-gradient(100deg,var(--pxab-booking-progress-gradient-1),var(--pxab-booking-progress-gradient-2),var(--pxab-booking-progress-gradient-3),var(--pxab-booking-progress-gradient-1))!important;
  background-size:300% 100%!important;
}
.pxab-booking-progress--simple-flow [data-pxab-booking-progress-bar]{animation:pxab-booking-progress-flow var(--pxab-booking-progress-duration) linear infinite}
.pxab-booking-progress--simple-pulse [data-pxab-booking-progress-bar]{animation:pxab-booking-progress-pulse var(--pxab-booking-progress-duration) ease-in-out infinite alternate}
.pxab-booking-progress--simple-shimmer [data-pxab-booking-progress-bar]::after{
  content:'';
  position:absolute;
  inset:-100% -40%;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.68) 50%,transparent 65%);
  transform:translateX(-70%);
  animation:pxab-booking-progress-shimmer var(--pxab-booking-progress-duration) ease-in-out infinite;
}
.pxab-booking-progress--simple-glow [data-pxab-booking-progress-bar]{animation:pxab-booking-progress-glow var(--pxab-booking-progress-duration) ease-in-out infinite alternate}
.pxab-booking-progress[data-pxab-booking-progress-gsap]:not([data-pxab-booking-progress-gsap="none"]) [data-pxab-booking-progress-bar]{animation:none}
.pxab-booking-progress--sticky{z-index:8}
@keyframes pxab-booking-progress-flow{to{background-position:300% 50%}}
@keyframes pxab-booking-progress-pulse{from{filter:saturate(.88);opacity:.78}to{filter:saturate(1.18);opacity:1}}
@keyframes pxab-booking-progress-shimmer{0%,20%{transform:translateX(-70%)}80%,100%{transform:translateX(70%)}}
@keyframes pxab-booking-progress-glow{from{filter:drop-shadow(0 0 0 rgba(225,29,72,0))}to{filter:drop-shadow(0 0 6px var(--pxab-booking-progress-gradient-1))}}
@media(prefers-reduced-motion:reduce){
  .pxab-booking-progress [data-pxab-booking-progress-bar]{transition:none!important;animation:none!important}
  .pxab-booking-progress [data-pxab-booking-progress-bar]::after{animation:none!important;display:none!important}
}
