/* Mobile layout (< 1024px): hide header, sticky cart mini-summary */

@media (max-width: 1023.98px) {
  /* Hide all site chrome headers */
  header.menu-header__static,
  header.menu-header__floating,
  .menu-header__static,
  .menu-header__floating,
  app-menu-header,
  app-menu-header section,
  #checkout-main-menu-header-static,
  #checkout-main-menu-header-floating,
  section.header-floating,
  .venue-container > header,
  .venue-container > header * {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
  }

  .venue-container {
    margin-bottom: 0 !important;
  }

  /* Stack checkout pages; hide desktop side cart */
  #guest-details-view .page__container,
  #addon-selection-view .page__container,
  #product-detail-view .page__container {
    flex-direction: column !important;
  }

  #guest-details-view #guest-details-page,
  #guest-details-view .guest-details-page.page__content,
  #addon-selection-view #addon-selection-page,
  #addon-selection-view .addon-page.page__content {
    max-width: 100% !important;
    width: 100% !important;
  }

  #guest-details-view app-checkout-summary-container,
  #addon-selection-view app-checkout-summary-container,
  #product-detail-view app-checkout-summary-container,
  #guest-details-view .checkout-summary-container,
  #addon-selection-view .checkout-summary-container,
  #product-detail-view .checkout-summary-container {
    display: none !important;
  }

  /* Room for sticky summary bar + Continue */
  body.has-mobile-cart-bar #product-detail-view,
  body.has-mobile-cart-bar #addon-selection-view,
  body.has-mobile-cart-bar #guest-details-view,
  body.has-mobile-cart-bar #product-container {
    padding-bottom: calc(9.5rem + env(safe-area-inset-bottom, 0px));
  }

  /* Hide in-page Continue / cart CTAs — use sticky bar button instead */
  #guest-details-view #guest-details-submit-form,
  #guest-details-view .guest-details__submit-button,
  #product-detail-view #product-ordering-footer,
  #product-detail-view #ticket-selection-continue-button,
  #product-detail-view #checkout-summary-proceed-checkout,
  #addon-selection-view #checkout-summary-proceed-checkout {
    display: none !important;
  }
}

/* Mini summary — only used/shown on mobile via JS */
.checkout-mini-summary-root {
  display: none;
}

@media (max-width: 1023.98px) {
  .checkout-mini-summary-root.is-visible {
    display: block;
  }
}

.checkout-mini-summary-root .checkout-mini-summary__overlay-backdrop {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  top: auto;
  height: 1000vh;
  background: rgba(0, 0, 0, 0.32);
  z-index: 1000;
}

.checkout-mini-summary-root.is-open .checkout-mini-summary__overlay-backdrop {
  display: block;
}

.checkout-mini-summary-root #checkout-mini-summary {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1001;
  display: flex;
  flex-direction: column;
  background: var(--roller-neutral-99, #fafafa);
  border: 1px solid var(--roller-neutral-90, #ededed);
  border-bottom: none;
  border-radius: 1rem 1rem 0 0;
  padding: 1rem 0 calc(1rem + env(safe-area-inset-bottom, 0px));
  max-height: min(85vh, 640px);
  box-sizing: border-box;
  font-family: Roboto, Helvetica, Arial, sans-serif;
  color: var(--roller-neutral-10, #252527);
}

.checkout-mini-summary-root .summary {
  padding: 0 max(env(safe-area-inset-right, 0px), 1.25rem) 0
    max(env(safe-area-inset-left, 0px), 1.25rem);
}

.checkout-mini-summary-root .summary__header {
  display: flex;
  align-items: center;
  width: 100%;
  gap: 0.25rem;
  padding: 0.5rem 0;
  border: none;
  background: none;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.5rem;
  color: inherit;
  text-align: left;
}

.checkout-mini-summary-root .summary__icon {
  font-size: 1.125rem;
  height: 1.125rem;
  width: 1.125rem;
  margin-right: 0.25rem;
  color: var(--roller-blue-60, #006df2);
}

.checkout-mini-summary-root .summary__info {
  display: flex;
  align-items: baseline;
  flex: 1;
  min-width: 0;
}

.checkout-mini-summary-root .summary__count {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 400;
  color: var(--roller-neutral-30, #434347);
  margin-left: 0.25rem;
}

.checkout-mini-summary-root .summary__price {
  margin-right: 0.25rem;
  font-weight: 700;
  white-space: nowrap;
}

.checkout-mini-summary-root .summary__toggle-icon {
  font-size: 1.375rem;
  height: 1.375rem;
  width: 1.375rem;
  color: var(--roller-neutral-30, #434347);
  transition: transform 0.2s ease;
}

.checkout-mini-summary-root.is-open .summary__toggle-icon {
  transform: rotate(180deg);
}

.checkout-mini-summary-root .checkout-mini-summary__container {
  overflow: hidden;
  height: 0;
  opacity: 0;
  transition: height 0.2s ease-in-out, opacity 0.14s ease-out;
  padding: 0 max(env(safe-area-inset-right, 0px), 1.25rem) 0
    max(env(safe-area-inset-left, 0px), 1.25rem);
}

.checkout-mini-summary-root.is-open .checkout-mini-summary__container {
  opacity: 1;
}

.checkout-mini-summary-root #checkout-mini-summary-body {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  max-height: 55vh;
  overflow-y: auto;
}

.checkout-mini-summary-root #checkout-mini-summary-body .checkout-group {
  margin: 0;
}

.checkout-mini-summary-root #checkout-mini-summary-body .item {
  display: flex;
  gap: 0.75rem;
  padding-bottom: 1rem;
  margin-bottom: 0.75rem;
  border-bottom: 1px solid var(--roller-neutral-95, #eee);
}

.checkout-mini-summary-root #checkout-mini-summary-body .item-img img {
  width: 3rem;
  height: 3rem;
  object-fit: cover;
  border-radius: 0.25rem;
}

.checkout-mini-summary-root #checkout-mini-summary-body .produce-basket-financial-description,
.checkout-mini-summary-root #checkout-mini-summary-body .product-basket-currency {
  display: block;
}

.checkout-mini-summary-root .checkout-mini-summary__actions {
  padding: 0.75rem max(env(safe-area-inset-right, 0px), 1.25rem) 0
    max(env(safe-area-inset-left, 0px), 1.25rem);
  flex-shrink: 0;
}

.checkout-mini-summary-root .checkout-mini-summary__continue {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  border: 1px solid transparent;
  border-radius: 0.25rem;
  padding: 0.65rem 1rem;
  cursor: pointer;
  font-family: Roboto, Helvetica Neue, sans-serif;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.5rem;
  background-color: var(--primary-control-color, #d2b37b);
  color: var(--primary-control-color-text, #3f4444);
  -webkit-appearance: none;
  appearance: none;
}

.checkout-mini-summary-root .checkout-mini-summary__continue:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

/* When sheet is open, keep Continue pinned under the scrollable list */
.checkout-mini-summary-root.is-open #checkout-mini-summary {
  padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
}

.checkout-mini-summary-root.is-open .checkout-mini-summary__container {
  order: 0;
}

.checkout-mini-summary-root #checkout-mini-summary {
  /* summary header, expandable body, then always-visible Continue */
}

.checkout-mini-summary-root .summary {
  order: 0;
}

.checkout-mini-summary-root .checkout-mini-summary__container {
  order: 1;
}

.checkout-mini-summary-root .checkout-mini-summary__actions {
  order: 2;
}

@media (min-width: 1024px) {
  .checkout-mini-summary-root {
    display: none !important;
  }
}

/* Narrow phones (< 600px): one fewer date in strip; session times 3-across */
@media (max-width: 599.98px) {
  /* Hide 6th day slot when static HTML still has 6 (before/without JS rebuild).
     Structure: N date options + final "more calendar" option. */
  mat-action-list.attending-list > .when-attending__option:nth-child(6):not(:last-child) {
    display: none !important;
  }

  /* Session time buttons: 3 per row instead of 5 */
  .attending-table__wrapper .attending-table,
  table.attending-table {
    display: block;
    width: 100%;
  }

  .attending-table__wrapper .attending-table thead,
  table.attending-table thead {
    display: none;
  }

  .attending-table__wrapper .attending-table tbody,
  table.attending-table tbody {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.25rem;
  }

  .attending-table__wrapper .attending-table tbody tr,
  table.attending-table tbody tr {
    display: contents;
  }

  .attending-table__wrapper .attending-table tbody td,
  table.attending-table tbody td {
    display: block;
    width: auto !important;
    height: auto !important;
    border: none !important;
    background-clip: border-box;
  }

  .attending-table__wrapper .attending-table tbody td:empty,
  table.attending-table tbody td:empty {
    display: none;
  }

  .attending-table__wrapper .attending-table .select-session,
  table.attending-table .select-session {
    min-height: 100%;
  }
}
