/* Shared pulse and accessible green colour shift for every booking action. */
.booking-mobile-only { display: none !important; }
@media (max-width: 700px) {
  .booking-desktop-only { display: none !important; }
  .booking-mobile-only { display: inline-flex !important; }
  .mobile-actions .booking-mobile-only { display: flex !important; }
  .header-cta.booking-mobile-only { display: none !important; }
}
.booking-dynamic > .sr-only { position: absolute; }
.booking-dynamic {
  --booking-lift: -3px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  animation: booking-pulse 2s ease-in-out infinite;
  box-shadow: 0 5px 18px #203e3033, 0 0 0 1px #b59b6066;
  transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease, border-color .22s ease;
}
.booking-dynamic::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(110deg, transparent 25%, #ffffff40 50%, transparent 75%);
  transform: translateX(-130%) skewX(-12deg);
  pointer-events: none;
}
.booking-dynamic > span, .booking-dynamic > svg {
  position: relative;
  z-index: 1;
}
.booking-dynamic > svg { transition: transform .22s ease; }
.booking-dynamic:focus-visible {
  outline: 3px solid #b59b60;
  outline-offset: 4px;
  transform: translateY(var(--booking-lift));
  box-shadow: 0 10px 22px #203e3026;
}
.booking-dynamic:focus-visible::before { animation: booking-shine .8s ease-out; }
.booking-dynamic:focus-visible > svg { transform: rotate(-6deg); }
.booking-dynamic:focus-visible .about-intro-arrow { transform: translate(2px, -2px); }
@media (hover: hover) and (pointer: fine) {
  .booking-dynamic:hover {
    transform: translateY(var(--booking-lift));
    box-shadow: 0 10px 22px #203e3026;
  }
  .booking-dynamic:hover::before { animation: booking-shine .8s ease-out; }
  .booking-dynamic:hover > svg { transform: rotate(-6deg); }
  .booking-dynamic:hover .about-intro-arrow { transform: translate(2px, -2px); }
}
.booking-dynamic:active { transform: translateY(0) scale(.98); }
.booking-dynamic:active::before { animation: booking-shine .8s ease-out; }
.mobile-actions .booking-dynamic { --booking-lift: 0px; }
@keyframes booking-pulse {
  0%, 100% { scale: 1; background: #293f33; color: #fff; border-color: #82986b; box-shadow: 0 5px 18px #203e3040, 0 0 0 1px #b59b6080, 0 0 0 0 #b59b6073; }
  50% { scale: 1.055; background: #57764b; color: #fff; border-color: #d3c08d; box-shadow: 0 12px 34px #203e3066, 0 0 0 3px #c1ab71cc, 0 0 0 15px #b59b6000; }
}
/* Touch layouts pulse inward so full-width actions stay inside the viewport. */
@media (max-width: 700px), (hover: none) and (pointer: coarse) {
  .booking-dynamic { animation-name: booking-pulse-mobile; animation-duration: 1.9s; }
}
@keyframes booking-pulse-mobile {
  0%, 100% { scale: .965; background: #293f33; color: #fff; border-color: #82986b; box-shadow: inset 0 0 0 1px #b59b6066, 0 3px 12px #203e3040; }
  50% { scale: 1; background: #57764b; color: #fff; border-color: #d3c08d; box-shadow: inset 0 0 0 2px #d3c08dcc, 0 7px 24px #203e3066; }
}
.booking-dynamic .about-intro-label>span { color: inherit; }
@media (hover: hover) and (pointer: fine) {
  .booking-dynamic:hover { animation-play-state: paused; }
}
.booking-dynamic:focus-visible, .booking-dynamic:active { animation-play-state: paused; }
@keyframes booking-shine {
  from { transform: translateX(-130%) skewX(-12deg); }
  to { transform: translateX(130%) skewX(-12deg); }
}
@media (prefers-reduced-motion: reduce) {
  .booking-dynamic, .booking-dynamic > svg { transition: none; }
  .booking-dynamic { animation: none; scale: 1; box-shadow: 0 5px 18px #203e3033, 0 0 0 2px #b59b6080; }
  .booking-dynamic:hover, .booking-dynamic:focus-visible, .booking-dynamic:active,
  .booking-dynamic:hover > svg, .booking-dynamic:focus-visible > svg,
  .booking-dynamic:hover .about-intro-arrow, .booking-dynamic:focus-visible .about-intro-arrow { transform: none; }
  .booking-dynamic::before { display: none; animation: none !important; }
}
.booking-dynamic{justify-content:center;align-items:center;text-align:center;min-width:0;max-width:100%;transform-origin:center}.booking-dynamic>span{min-width:0;text-align:center;overflow-wrap:anywhere}.booking-dynamic>svg{flex-shrink:0}.about-intro-button.booking-dynamic{justify-content:center}.about-intro-button.booking-dynamic .about-intro-label{text-align:center}.praxis-app .pa-primary.booking-dynamic>svg:last-child{margin-left:0}
