/* Menus d'autocomplétion ancrés au champ et contenus dans le viewport. */
.autocomplete-menu.is-viewport-positioned {
  position: fixed;
  right: auto;
  bottom: auto;
  margin: 0;
  overscroll-behavior: contain;
  z-index: 1600;
}

.autocomplete-menu.is-viewport-positioned.opens-upward {
  transform-origin: bottom center;
}

.departure-filter-disclosure {
  display: inline-flex;
  min-height: 32px;
  padding: 6px 9px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #31596a;
  font-size: .67rem;
  font-weight: 800;
  border: 1px solid #d5e2dd;
  border-radius: 9px;
  background: #fff;
}

.departure-filter-panel.is-compact-filter {
  top: 8px;
  padding: 10px;
  overflow: hidden;
}

.departure-filter-panel.is-compact-filter .departure-filter-heading {
  display: grid;
  margin-bottom: 0;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 7px;
  align-items: center;
  cursor: pointer;
}

.departure-filter-panel.is-compact-filter.is-expanded .departure-filter-heading {
  margin-bottom: 9px;
}

.departure-filter-panel.is-compact-filter:not(.is-expanded) .departure-filter-list,
.departure-filter-panel.is-compact-filter:not(.is-expanded) .departure-filter-count,
.departure-filter-panel.is-compact-filter:not(.is-expanded) .departure-filter-toggle {
  display: none;
}

.departure-filter-panel.is-compact-filter .departure-filter-list {
  max-height: min(42dvh, 310px);
  padding-right: 4px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}

@media (max-width: 860px), (max-height: 820px) {
  .departure-filter-panel.is-compact-filter {
    top: 8px;
    max-height: min(56dvh, 390px);
    padding: 10px;
    overflow: hidden;
  }

  .departure-filter-panel.is-compact-filter .departure-filter-heading {
    display: grid;
    margin-bottom: 0;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 7px;
    align-items: center;
  }

  .departure-filter-panel.is-compact-filter.is-expanded .departure-filter-heading {
    margin-bottom: 9px;
  }

  .departure-filter-panel.is-compact-filter .departure-filter-disclosure {
    display: inline-flex;
  }

  .departure-filter-panel.is-compact-filter:not(.is-expanded) .departure-filter-list,
  .departure-filter-panel.is-compact-filter:not(.is-expanded) .departure-filter-count {
    display: none;
  }

  .departure-filter-panel.is-compact-filter:not(.is-expanded) .departure-filter-toggle {
    display: none;
  }

  .departure-filter-panel.is-compact-filter .departure-filter-list {
    max-height: min(34dvh, 235px);
    padding-right: 4px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }
}

@media (max-width: 520px) {
  .departure-filter-panel.is-compact-filter .departure-filter-heading {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .departure-filter-panel.is-compact-filter .departure-filter-toggle {
    grid-column: 1 / -1;
    width: 100%;
    justify-content: center;
  }

  .autocomplete-menu.is-viewport-positioned {
    border-radius: 14px;
  }
}
