/*
 * Clone-only reproduction of the source's effective computed styles.
 *
 * The source's /availability route loads a reduced stylesheet set that does
 * NOT include the big customerFacing bundle (which carries the global
 * `a{color:var(--mainColour)}` rule), so on that route the footer links
 * INHERIT the footer's white text colour. Our clone loads the full bundle on
 * every portal route, which would paint the footer links green. These rules
 * restore the source's computed result (white footer links, white text)
 * without touching the vendor bundles.
 */
.footer .footer_list__link,
.footer .footer_list__text {
  color: var(--footerTextColour);
}
.footer .footer_list__link:hover {
  color: var(--footerTextColour);
  text-decoration: underline;
}
/* Footer bottom spacing: the source leaves breathing room under the
   dtlink block (96px strip under the dark footer). */

/* Partner logos: the source's tiny-slider spreads the three 80px logos with
   53px gaps (left edges 547/680/813 at 1440). The carousel JS is not ported,
   so reproduce the spread statically. */
.partnerlogos .slider{display:flex;justify-content:center;gap:53px}
.partnerlogos .slider img{width:80px}

/* The source leaves a cream strip below the dark footer bottom; the dark
   dtlink block ends at the footer edge. */


/* Cream strip below the dark footer (ref: dark ends ~y2480, cream to page end). */
.dtlink__container.no-print{margin-bottom:80px}

/* Session modal: scrollable on mobile, center on desktop */
.session-modal__modal-content .modal-body {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  max-height: 70vh;
}
.session-modal__modal-content .event-list {
  padding: 0 1rem;
}
@media screen and (max-width: 991px) {
  .session-modal__modal-content {
    margin: 1rem;
    width: calc(100% - 2rem);
  }
  .session-modal__modal-content .modal-header .modal-title {
    font-size: 1.4rem;
    padding-right: 3rem;
  }
  .session-modal__modal-content .modal-body {
    max-height: 60vh;
    padding: 0.5rem 0;
  }
}

/* Persistent bar: fixed to viewport bottom on ALL screens (source behaviour) */
.persistent-bar__section {
  position: fixed !important;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 16;
  background: #fff;
  box-shadow: 0 -4px 8px rgba(0,0,0,.1);
  padding: 0.5rem 0;
}
/* Prevent content from being hidden behind the fixed bar */
#detail-page {
  padding-bottom: 8rem;
}

/* Pay Now button: solid, no transparency */
#rxp-primary-btn {
  opacity: 1 !important;
  background-color: #0071ba !important;
  color: #fff !important;
  border: none !important;
  font-weight: 700 !important;
  height: 48px !important;
  font-size: 18px !important;
}
#rxp-primary-btn:hover {
  background-color: #015a94 !important;
}
#rxp-primary-btn:disabled,
#rxp-primary-btn[disabled] {
  opacity: 0.6 !important;
  cursor: not-allowed;
}
#rxp-primary-btn .hpp-pay {
  opacity: 1 !important;
}
