/* Modular request-to-book step cards and right-aligned active action. */
.pxab-ui .pxab-request-steps {
  display: grid !important;
  gap: 18px !important;
  margin: 0 0 28px !important;
}

.pxab-ui .pxab-request-step {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 18px !important;
  width: 100% !important;
  min-height: 72px !important;
  padding: 0 !important;
  border: 1px solid var(--pxab-request-step-border, #e5e7eb) !important;
  border-radius: var(--pxab-request-step-radius, 16px) !important;
  background: var(--pxab-request-step-bg, #fff) !important;
  color: var(--pxab-request-step-text, #111827) !important;
  box-shadow: none !important;
  overflow: hidden;
}

.pxab-ui .pxab-request-step.is-active {
  border-color: var(--pxab-request-step-active-border, #111827) !important;
  background: var(--pxab-request-step-active-bg, #fff) !important;
  color: var(--pxab-request-step-active-text, #111827) !important;
  box-shadow: 0 14px 36px var(--pxab-request-step-shadow-color, rgba(15,23,42,.10)) !important;
}

.pxab-ui .pxab-request-step__link {
  appearance: none !important;
  display: flex !important;
  align-items: center !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  min-height: 72px !important;
  padding: 22px 26px !important;
  border: 0 !important;
  background: transparent !important;
  color: inherit !important;
  text-align: left !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

.pxab-ui .pxab-request-step__link:disabled {
  opacity: var(--pxab-request-step-disabled-opacity, .56) !important;
  cursor: not-allowed !important;
}

.pxab-ui .pxab-request-step__label {
  min-width: 0;
  font-size: 1.05rem;
  line-height: 1.25;
}

.pxab-ui .pxab-request-step__action {
  appearance: none !important;
  display: none !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 48px !important;
  margin-right: 24px !important;
  padding: var(--pxab-request-step-action-py, 12px) var(--pxab-request-step-action-px, 24px) !important;
  border: 1px solid var(--pxab-request-step-action-border, #e11d48) !important;
  border-radius: var(--pxab-request-step-action-radius, 14px) !important;
  background: var(--pxab-request-step-action-bg, #e11d48) !important;
  color: var(--pxab-request-step-action-text, #fff) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

.pxab-ui .pxab-request-step.is-active .pxab-request-step__action {
  display: inline-flex !important;
}

.pxab-ui .pxab-request-step__link:disabled + .pxab-request-step__action {
  display: none !important;
}

.pxab-ui .pxab-request-step__link:focus-visible,
.pxab-ui .pxab-request-step__action:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--pxab-request-step-action-bg, #e11d48) 32%, transparent) !important;
  outline-offset: -3px !important;
}

@media (max-width: 640px) {
  .pxab-ui .pxab-request-step {
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 0 !important;
  }
  .pxab-ui .pxab-request-step__link {
    min-height: auto !important;
    padding: 18px !important;
  }
  .pxab-ui .pxab-request-step.is-active .pxab-request-step__action {
    width: calc(100% - 36px) !important;
    margin: 0 18px 18px !important;
  }
}

/* Prevent transient browser focus outlines on the request shell during draft restore. */
html[data-pxab-request-draft-restoring],
body[data-pxab-request-draft-restoring],
html[data-pxab-request-draft-restoring]:focus,
body[data-pxab-request-draft-restoring]:focus,
.pxab-ui[data-pxab-request-draft-restoring],
.pxab-ui[data-pxab-request-draft-refreshing],
.pxab-ui[data-pxab-request-draft-restoring]:focus,
.pxab-ui[data-pxab-request-draft-refreshing]:focus,
.pxab-request-booking[data-pxab-request-draft-restoring],
.pxab-request-booking[data-pxab-request-draft-refreshing],
.pxab-request-booking[data-pxab-request-draft-restoring]:focus,
.pxab-request-booking[data-pxab-request-draft-refreshing]:focus {
  outline: 0 !important;
}
