/* Holds all the session cards */
.sessions-container {
  display: flex;
  flex-direction: column;
  width: 100%;
  padding-top: var(--screen-padding);
  padding-bottom: var(--screen-padding);
  padding-left: var(--screen-padding);
  padding-right: var(--screen-padding);
  margin-top: var(--header-height);
  gap: var(--gap-xl);
  overflow: visible;
  position: relative;
  box-sizing: border-box;
}

/* Displayed if no sessions are visible because of filters or time of day */
.no-sessions-message {
  display: block;
  left: 50%;
  opacity: 0;
  width: auto;
  min-width: calc(100% - 4 * var(--padding-xxl));
  min-height: auto;
  color: var(--text-header-neutral);
  font-size: var(--font-size-lg);
  text-align: center;
  line-height: 1.6;
  animation: fadeInSoft 0.4s ease-out forwards;
  box-sizing: border-box;
  pointer-events: none;
  white-space: normal;
  word-wrap: break-word;
}

/* Default position when the filters modal is closed. */
.no-sessions-message {
  position: relative;
  top: 50%;
  transform: translate(-50%, -50%);
  margin-top: calc(3*(var(--base-header-height)));
  bottom: 0;
}

/* Bottom page position when the filters modal is open. This rule overrides the default. */
.no-sessions-message.filters-modal-open {
  position: fixed;
  top: auto;
  bottom: var(--padding-xxxxl);
  transform: translate(-50%, 0);
  margin-top: 0;
}

.sessions-container-checkout-cta-wrapper {
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	padding: var(--padding-xl);
	background: var(--modal-background);
	box-shadow: var(--soft-shadow-footer);
	display: flex;
	justify-content: center;
	align-items: center;
	transform: translateY(0);
	transition: transform 0.5s ease-out;
	z-index: 100;
	box-sizing: border-box;
}
    
.sessions-container-checkout-cta-wrapper.hidden {
	transform: translateY(100%);
}