/* Request-to-book compact price hierarchy plus detailed modal disclosure. */
.pxab-request-price-summary {
  --pxab-request-price-border: color-mix(in srgb, var(--pxab-single-border, #e5e7eb) 88%, transparent);
  --pxab-request-price-muted: var(--pxab-single-muted, #64748b);
  --pxab-request-price-positive: #15803d;
  --pxab-request-price-positive-bg: #f0fdf4;
  --pxab-request-price-deposit: #92400e;
  --pxab-request-price-deposit-bg: #fffbeb;
  max-width: none;
  border-color: var(--pxab-request-price-border);
  background: #fff;
}

.pxab-request-price-summary > h4,
.pxab-request-price-summary > h3 {
  margin: 0 0 12px;
  color: var(--pxab-single-text, #111827);
  font-size: 1rem;
  line-height: 1.3;
}

.pxab-request-price-summary__rows {
  display: grid !important;
  gap: 0 !important;
  margin: 0 !important;
}

.pxab-request-price-summary__rows > .pxab-request-price-summary__row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px 18px !important;
  align-items: start;
  margin: 0;
  padding: 10px 0 !important;
  border-bottom: 1px solid var(--pxab-request-price-border) !important;
}

.pxab-request-price-summary__row dt,
.pxab-request-price-summary__row dd {
  min-width: 0;
  margin: 0;
}

.pxab-request-price-summary__row dt {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 7px;
  color: var(--pxab-single-text, #111827);
  font-weight: 650;
  line-height: 1.35;
}

.pxab-request-price-summary__row dd {
  color: var(--pxab-single-text, #111827);
  font-weight: 750;
  line-height: 1.35;
  text-align: right;
  white-space: nowrap;
}

.pxab-request-price-summary__label {
  min-width: 0;
}

.pxab-request-price-summary__meta {
  flex-basis: 100%;
  color: var(--pxab-request-price-muted);
  font-size: .76rem;
  font-weight: 500;
  line-height: 1.4;
}

.pxab-request-price-summary__badge {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: .68rem;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.pxab-request-price-summary__row.is-extra-nights .pxab-request-price-summary__badge,
.pxab-request-price-summary__row.is-saving .pxab-request-price-summary__badge {
  background: #dcfce7;
  color: #166534;
}

.pxab-request-price-summary__row.is-saving dt,
.pxab-request-price-summary__row.is-saving dd {
  color: var(--pxab-request-price-positive);
}

.pxab-request-price-summary__row.is-subtotal {
  padding-top: 13px !important;
  font-weight: 750;
}

.pxab-request-price-summary__row.is-subtotal-final {
  border-top: 1px solid var(--pxab-request-price-border);
}

.pxab-request-price-summary__row.is-tax.is-included dd {
  color: var(--pxab-request-price-muted);
}

.pxab-request-price-summary__row.is-total {
  padding: 14px 0 !important;
  border-bottom: 0 !important;
  font-size: 1.08rem;
}

.pxab-request-price-summary__row.is-total dt,
.pxab-request-price-summary__row.is-total dd {
  font-weight: 900;
}

.pxab-request-price-summary__row.is-damage-deposit {
  margin-top: 7px;
  padding: 12px !important;
  border: 1px solid #fde68a !important;
  border-radius: 12px;
  background: var(--pxab-request-price-deposit-bg);
}

.pxab-request-price-summary__row.is-damage-deposit dt,
.pxab-request-price-summary__row.is-damage-deposit dd {
  color: var(--pxab-request-price-deposit);
}

.pxab-request-price-summary__row.is-damage-deposit .pxab-request-price-summary__badge {
  background: #fef3c7;
  color: #92400e;
}

.pxab-ui .pxab-request-price-summary__info-trigger {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 0 22px;
  width: 22px !important;
  min-width: 22px !important;
  height: 22px !important;
  min-height: 22px !important;
  margin: 0 0 0 2px !important;
  padding: 0 !important;
  border: 1px solid currentColor !important;
  border-radius: 999px !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--pxab-request-price-deposit) !important;
  line-height: 1 !important;
  cursor: pointer;
}

.pxab-ui .pxab-request-price-summary__info-trigger :where(svg, .pxab-icon) {
  width: 14px !important;
  height: 14px !important;
  margin: 0 !important;
  pointer-events: none;
}

.pxab-ui .pxab-request-price-summary__info-trigger:hover,
.pxab-ui .pxab-request-price-summary__info-trigger:focus-visible {
  background: #fef3c7 !important;
  color: #78350f !important;
}

.pxab-ui .pxab-request-price-summary__info-trigger:focus-visible {
  outline: 2px solid currentColor !important;
  outline-offset: 2px;
}

.pxab-request-price-summary__row.is-total-payable {
  margin-top: 2px;
  border-top: 1px solid #fde68a !important;
}

.pxab-request-price-summary__addons {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--pxab-request-price-border);
}

.pxab-request-price-summary__addons > h5 {
  margin: 0 0 8px;
  font-size: .83rem;
}

.pxab-request-price-summary__deposit-note {
  margin: 12px 0 0;
  padding: 10px 12px;
  border-left: 3px solid #f59e0b;
  border-radius: 0 9px 9px 0;
  background: #fffbeb;
  color: #78350f;
  font-size: .78rem;
  line-height: 1.5;
}

.pxab-request-price-summary__nightly-detail {
  margin-top: 16px;
  border: 1px solid var(--pxab-request-price-border);
  border-radius: 12px;
  background: #f8fafc;
}

.pxab-request-price-summary__nightly-detail > summary {
  padding: 12px 14px;
  color: var(--pxab-single-text, #111827);
  font-weight: 800;
  cursor: pointer;
}

.pxab-request-price-summary__nightly-detail > dl {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0 14px 12px;
}

.pxab-request-price-summary__nightly-detail dl > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  padding: 8px 0;
  border-top: 1px solid var(--pxab-request-price-border);
}

.pxab-request-price-summary__nightly-detail dt,
.pxab-request-price-summary__nightly-detail dd {
  margin: 0;
}

.pxab-request-price-summary__nightly-detail dt span {
  display: inline-flex;
  margin-left: 5px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #dcfce7;
  color: #166534;
  font-size: .68rem;
  font-weight: 800;
}

.pxab-request-price-summary--modal {
  width: min(100%, 620px);
}

.pxab-request-price-summary--modal .pxab-request-price-summary__rows > .pxab-request-price-summary__row {
  padding: 12px 0 !important;
}

/* A fixed booking summary must never become a sibling overlay above request dialogs. */
.pxab-request-booking.is-request-modal-open .pxab-request-booking__summary-stack,
.pxab-request-booking.is-price-modal-open .pxab-request-booking__summary-stack,
.pxab-request-booking.is-currency-modal-open .pxab-request-booking__summary-stack {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  width: 100% !important;
  z-index: 0 !important;
  pointer-events: none;
}

.pxab-request-booking.is-request-modal-open .pxab-request-booking__summary-shell,
.pxab-request-booking.is-price-modal-open .pxab-request-booking__summary-shell,
.pxab-request-booking.is-currency-modal-open .pxab-request-booking__summary-shell {
  min-height: 0 !important;
}

.pxab-request-booking .pxab-request-modal.is-open,
.pxab-request-booking .pxab-price-modal.is-open,
.pxab-request-booking .pxab-currency-modal.is-open {
  z-index: var(--pxab-z-modal, 100500) !important;
}

@media (max-width: 520px) {
  .pxab-request-price-summary__rows > .pxab-request-price-summary__row {
    gap: 6px 10px !important;
  }

  .pxab-request-price-summary__row dt {
    font-size: .88rem;
  }

  .pxab-request-price-summary__row dd {
    font-size: .9rem;
  }
}
/* v1.0.477: damage deposit is a separate disclosure card, with room around its label/badge. */
.pxab-request-price-summary__row.is-damage-deposit{padding:14px 16px!important}
@media(max-width:600px){.pxab-request-price-summary__row.is-damage-deposit{padding:12px 14px!important}}

/* v1.0.619: deliberate compact/modal spacing for the Request-to-book price disclosure. */
.pxab-request-price-summary:not(.pxab-request-price-summary--modal) .pxab-request-price-summary__row.is-damage-deposit {
  column-gap: 12px !important;
  row-gap: 6px !important;
  align-items: start;
}

.pxab-request-price-summary:not(.pxab-request-price-summary--modal) .pxab-request-price-summary__row.is-damage-deposit dt {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "label info"
    "badge badge";
  column-gap: 8px;
  row-gap: 6px;
  align-items: center;
}

.pxab-request-price-summary:not(.pxab-request-price-summary--modal) .pxab-request-price-summary__row.is-damage-deposit .pxab-request-price-summary__label {
  grid-area: label;
}

.pxab-request-price-summary:not(.pxab-request-price-summary--modal) .pxab-request-price-summary__row.is-damage-deposit .pxab-request-price-summary__badge {
  grid-area: badge;
  justify-self: start;
  max-width: 100%;
  white-space: normal;
  line-height: 1.2;
}

.pxab-request-price-summary:not(.pxab-request-price-summary--modal) .pxab-request-price-summary__row.is-damage-deposit .pxab-request-price-summary__info-trigger {
  grid-area: info;
  justify-self: end;
  align-self: center;
  margin: 0 !important;
}

.pxab-request-price-summary:not(.pxab-request-price-summary--modal) .pxab-request-price-summary__row.is-damage-deposit dd {
  padding-top: 1px;
}

.pxab-ui .pxab-request-price-summary__info-trigger {
  flex-basis: 24px;
  width: 24px !important;
  min-width: 24px !important;
  height: 24px !important;
  min-height: 24px !important;
  touch-action: manipulation;
}

.pxab-request-price-summary:not(.pxab-request-price-summary--modal) > .pxab-price-breakdown__modal-trigger {
  display: inline-flex !important;
  align-items: center;
  min-height: 24px;
  margin: 10px 0 0 !important;
  line-height: 1.35;
}

/* Keep the modal frame and close control stationary; only its content scrolls. */
.pxab-request-booking > .pxab-price-modal .pxab-price-modal__dialog {
  overflow: hidden;
}

.pxab-request-booking > .pxab-price-modal .pxab-price-modal__body {
  max-height: calc(100dvh - 5rem);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  padding-top: .25rem;
}

.pxab-request-price-summary--modal > h3 {
  margin-bottom: 14px;
  padding-right: 44px;
}

.pxab-request-price-summary--modal .pxab-request-price-summary__row.is-damage-deposit {
  margin-top: 10px;
}

.pxab-request-price-summary--modal .pxab-request-price-summary__row.is-damage-deposit dt {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  row-gap: 6px;
  align-items: start;
}

.pxab-request-price-summary--modal .pxab-request-price-summary__row.is-damage-deposit .pxab-request-price-summary__badge {
  justify-self: start;
  max-width: 100%;
  white-space: normal;
  line-height: 1.2;
}

.pxab-request-price-summary--modal .pxab-request-price-summary__nightly-detail {
  margin-top: 14px;
}

.pxab-request-price-summary--modal > .pxab-request-price-summary__deposit-note {
  margin-top: 14px;
  padding: 11px 13px;
}

.pxab-request-price-summary--modal > .pxab-price-breakdown__notice {
  margin-top: 12px;
}

@media (max-width: 520px) {
  .pxab-request-booking > .pxab-price-modal .pxab-price-modal__dialog {
    padding: 1.25rem;
  }

  .pxab-request-booking > .pxab-price-modal .pxab-price-modal__body {
    max-height: calc(100dvh - 4.5rem);
  }

  .pxab-request-price-summary--modal > h3 {
    padding-right: 40px;
  }
}
