/* Premium Taxi Booking v2.1.3 | Mobile-native motion enhancement.
 * Presentation only. Intentionally restricted to phone widths; no desktop CSS.
 * Respects OS Reduce Motion and preserves the natural accordion layout. */
@media screen and (max-width: 650px) and (prefers-reduced-motion: no-preference) {
  .at24-booking.ptb-motion-ready {
    -webkit-tap-highlight-color: transparent;
  }
  /* App-like step indicator, underneath the 4 existing step labels. */
  .at24-booking.ptb-motion-ready .at24-steps {
    position: relative;
    isolation: isolate;
  }
  .at24-booking.ptb-motion-ready .at24-steps::after {
    content: '';
    position: absolute;
    height: 3px;
    bottom: 0;
    left: 0;
    width: var(--ptb-progress, 25%);
    background: linear-gradient(90deg, #a17a40 0%, #e8d09a 100%);
    border-radius: 0 4px 4px 0;
    box-shadow: 0 -1px 12px rgba(218,180,111,.4);
    pointer-events: none;
    transition: width .42s cubic-bezier(.22,1,.36,1);
  }
  .at24-booking.ptb-motion-ready .at24-step span {
    transition: transform .26s cubic-bezier(.2,1.4,.4,1),
                background-color .25s ease, color .25s ease,
                box-shadow .3s ease;
  }
  .at24-booking.ptb-motion-ready .at24-step.is-active span {
    transform: scale(1.06);
    box-shadow: 0 0 0 4px rgba(208,175,117,.2)!important;
  }
  /* Sliding screen entrance whenever the existing booking script changes steps. */
  .at24-booking.ptb-motion-ready .at24-panel:not([hidden]) {
    animation: ptb-panel-in .34s cubic-bezier(.2,.78,.28,1) both;
  }
  .at24-booking.ptb-motion-ready[data-ptb-direction="back"] .at24-panel:not([hidden]) {
    animation-name: ptb-panel-back;
  }
  @keyframes ptb-panel-in {
    from { opacity: 0; transform: translate3d(18px, 6px, 0); }
    to { opacity: 1; transform: translate3d(0,0,0); }
  }
  @keyframes ptb-panel-back {
    from { opacity: 0; transform: translate3d(-16px, 5px, 0); }
    to { opacity: 1; transform: translate3d(0,0,0); }
  }
  /* Native-feel touch response, visible only while pressing. */
  .at24-booking.ptb-motion-ready .at24-btn,
  .at24-booking.ptb-motion-ready .at24-search-submit,
  .at24-booking.ptb-motion-ready .at24-vehicle {
    touch-action: manipulation;
    position: relative;
    -webkit-tap-highlight-color: transparent;
    transition: transform .18s ease, box-shadow .2s ease,
      border-color .2s ease, background-color .2s ease;
  }
  .at24-booking.ptb-motion-ready :is(.at24-btn,.at24-search-submit,.at24-vehicle):not(:disabled):active {
    transform: scale(.982)!important;
  }
  /* Tap ripple does not affect flex/grid sizing (position: absolute). */
  .at24-booking.ptb-motion-ready .ptb-touch-ripple {
    position: absolute!important;
    z-index: 4;
    width: 18px;
    height: 18px;
    display: block;
    margin: -9px 0 0 -9px;
    border-radius: 50%;
    background: rgba(205,166,97,.36);
    transform: scale(0);
    opacity: .7;
    pointer-events: none;
    animation: ptb-ripple .57s cubic-bezier(.18,.72,.3,1) forwards;
  }
  .at24-booking.ptb-motion-ready .at24-vehicle .ptb-touch-ripple {
    background: rgba(176,143,89,.25);
  }
  @keyframes ptb-ripple {
    to { transform: scale(var(--ptb-ripple-scale, 19)); opacity: 0; }
  }
  /* A clear "working" state when route or review APIs are loading. */
  .at24-booking.ptb-motion-ready .at24-btn.is-loading,
  .at24-booking.ptb-motion-ready .at24-search-submit.is-loading {
    cursor: progress;
    padding-right: 41px!important;
    opacity: .88!important;
  }
  .at24-booking.ptb-motion-ready .at24-btn.is-loading::after,
  .at24-booking.ptb-motion-ready .at24-search-submit.is-loading::after {
    content: '';
    position: absolute;
    right: 15px;
    top: calc(50% - 8px);
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,.35);
    border-top-color: #e2c18a;
    animation: ptb-spinner .72s linear infinite;
    pointer-events: none;
  }
  @keyframes ptb-spinner { to { transform: rotate(360deg); } }
  /* Small staged reveal for vehicle choices, rather than oversized transitions. */
  .at24-booking.ptb-motion-ready .at24-panel:not([hidden]) .at24-vehicle {
    animation: ptb-item-in .35s cubic-bezier(.22,.82,.28,1) backwards;
  }
  .at24-booking.ptb-motion-ready .at24-panel:not([hidden]) .at24-vehicle:nth-child(2) { animation-delay: .045s; }
  .at24-booking.ptb-motion-ready .at24-panel:not([hidden]) .at24-vehicle:nth-child(3) { animation-delay: .085s; }
  .at24-booking.ptb-motion-ready .at24-panel:not([hidden]) .at24-vehicle:nth-child(4) { animation-delay: .12s; }
  @keyframes ptb-item-in {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
  }
  .at24-booking.ptb-motion-ready .at24-vehicle.is-selected {
    border-color: #c4a46a!important;
    box-shadow: 0 0 0 2px rgba(196,164,106,.2),0 5px 16px rgba(15,35,57,.07)!important;
  }
  /* Expand only the content that exists. No height or min-height animations. */
  .at24-booking.ptb-motion-ready details[open] > .at24-more-body,
  .at24-booking.ptb-motion-ready details[open] > .at24-additional-body,
  .at24-booking.ptb-motion-ready details[open] > .at24-fees-body {
    animation: ptb-expand .25s ease-out both;
  }
  @keyframes ptb-expand {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
  }
  .at24-booking.ptb-motion-ready .at24-confirm-icon {
    animation: ptb-success .55s cubic-bezier(.18,1.45,.38,1) both;
  }
  @keyframes ptb-success {
    from { opacity: 0; transform: scale(.68); }
    to { opacity: 1; transform: scale(1); }
  }
}
/* Respect accessibility settings; no animated step/field transitions if requested. */
@media (prefers-reduced-motion: reduce) {
  .at24-booking.ptb-motion-ready .at24-steps::after { transition: none!important; }
  .at24-booking.ptb-motion-ready .ptb-touch-ripple { display: none!important; }
}
