:root {
  --vf-blue: #0b8df2;
  --vf-blue-dark: #0876cf;
  --vf-yellow: #f7bd24;
  --vf-ink: #111317;
  --vf-muted: #6f7782;
  --vf-light-text: #9aa1ab;
  --vf-line: #e4e8ef;
  --vf-soft: #f6f8fb;
  --vf-white: #ffffff;
  --vf-shadow: 0 18px 50px rgba(18, 25, 38, 0.08);
  --vf-card-shadow: 0 8px 20px rgba(18, 25, 38, 0.07);
}

.vf-explore {
  width: 100%;
  max-width: 1170px;
  margin: 10px auto 0;
  padding: 0;
  color: var(--vf-ink);
  font-family: inherit;
}

.vf-explore__shell {
  display: grid;
  grid-template-columns: 340px minmax(0, 1fr);
  gap: 10px;
  width: 100%;
  max-width: 1170px;
  margin: 0 auto;
  align-items: start;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
}

.vf-explore__panel {
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: calc(100dvh - 125px);
  min-height: 0;
  padding: 20px 10px;
  background: var(--vf-white);
  border: 1px solid var(--vf-line);
  border-radius: 18px;
  overflow: hidden;
}

.vf-search,
.vf-results-header {
  flex-shrink: 0;
}

.vf-search__route {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.vf-search__location {
  position: relative;
  min-width: 0;
  height: 60px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 6px 11px;
  border: 1px solid #d7dce4;
  border-radius: 12px;
  background: #fff;
  color: var(--vf-ink);
  text-align: left;
  cursor: text;
}

.vf-search__location:hover {
  border-color: #b8c0ca;
}

.vf-search__location:focus-within {
  border-color: var(--vf-blue);
  box-shadow: 0 0 0 3px rgba(11, 141, 242, 0.1);
}

.vf-search__location-label {
  margin-bottom: 2px;
  color: #8a929d;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.vf-search__location-input {
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--vf-ink);
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vf-search__location-input:focus {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

.vf-search__location-input::placeholder {
  color: var(--vf-ink);
  opacity: 1;
}

.vf-search__location-name {
  display: block;
  width: 100%;
  margin-top: 2px;
  color: #8a929d;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.2;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vf-search__swap {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 4;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transform: translate(-50%, -50%);
  border: 1px solid #d7dce4;
  border-radius: 50%;
  background: #fff;
  color: #59616d;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(18, 25, 38, 0.08);
}

.vf-search__swap:hover {
  border-color: var(--vf-blue);
  color: var(--vf-blue);
}

.vf-location-popover {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  z-index: 900;
  padding: 12px;
  border: 1px solid #e1e5ea;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(18, 25, 38, 0.16);
}

.vf-location-popover[hidden] {
  display: none !important;
}

.vf-location-results {
  max-height: 300px;
  overflow-y: auto;
}

.vf-location-result {
  width: 100%;
  min-height: 64px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--vf-ink);
  text-align: left;
  cursor: pointer;
}

.vf-location-result:hover,
.vf-location-result.is-active {
  background: #f1f7fc;
}

.vf-location-result__icon {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #eaf4fb;
  color: var(--vf-blue);
  font-size: 17px;
}

.vf-location-result__content {
  min-width: 0;
}

.vf-location-result__title,
.vf-location-result__secondary {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vf-location-result__title {
  color: var(--vf-ink);
  font-size: 14px;
  font-weight: 700;
}

.vf-location-result__secondary {
  margin-top: 3px;
  color: #8992a0;
  font-size: 12px;
}

.vf-location-result--child {
  grid-template-columns: 24px 36px minmax(0, 1fr);
  padding-left: 20px;
}

.vf-location-result__branch {
  color: #b6bdc7;
  font-size: 18px;
}

.vf-location-empty,
.vf-location-loading {
  padding: 16px;
  color: #8992a0;
  font-size: 13px;
  text-align: center;
}

.vf-search__trip-type {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3px;
  margin-bottom: 4px;
  padding: 3px;
  border: 1px solid #e1e5ea;
  border-radius: 12px;
  background: #f4f6f8;
}

.vf-trip-option {
  min-width: 0;
  height: 34px;
  padding: 0 10px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #67707d;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

.vf-trip-option.is-active {
  background: #fff;
  color: var(--vf-ink);
  box-shadow: 0 1px 4px rgba(18, 25, 38, 0.1);
}

.vf-search__dates {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.vf-search__date {
  min-width: 0;
  height: 52px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 6px 11px;
  border: 1px solid #d7dce4;
  border-radius: 12px;
  background: #fff;
  color: var(--vf-ink);
  text-align: left;
  cursor: pointer;
}

.vf-search__date:hover {
  border-color: #b8c0ca;
}

.vf-search__date.is-active {
  border-color: var(--vf-blue);
  box-shadow: 0 0 0 3px rgba(11, 141, 242, 0.1);
}

/*
 * The browser's default button focus ring was rendering as a black
 * rectangle around the Depart/Return control. The date module already
 * exposes the active state with the blue border above, so keep that
 * intentional state and remove only the browser-supplied black box.
 */

.vf-search__date:focus,
.vf-search__date:focus-visible {
  outline: 0 !important;
}

.vf-search__date:disabled {
  background: #f5f6f8;
  color: #a2a9b3;
  cursor: default;
}

.vf-search__date span {
  color: #8a929d;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.1;
}

.vf-search__date strong {
  width: 100%;
  margin-top: 2px;
  color: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.15;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vf-search__travelers {
  width: 100%;
  min-width: 0;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 4px;
  padding: 0 12px;
  border: 1px solid #d7dce4;
  border-radius: 12px;
  background: #fff;
  color: var(--vf-ink);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.vf-search__travelers:hover {
  border-color: #b8c0ca;
}

.vf-search__travelers.is-active {
  border-color: var(--vf-blue);
  box-shadow: 0 0 0 3px rgba(11, 141, 242, 0.1);
}

.vf-date-popover {
  position: absolute;
  z-index: 1000;
  width: 292px;
  border: 1px solid #e1e5ea;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(18, 25, 38, 0.18);
}

.vf-date-popover[hidden] {
  display: none !important;
}

.vf-date-picker {
  padding: 14px;
}

.vf-date-picker__header {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 36px;
  align-items: center;
  gap: 6px;
  margin-bottom: 10px;
}

.vf-date-picker__nav {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid #dfe4ea;
  border-radius: 10px;
  background: #fff;
  color: #5f6874;
  font-size: 0;
  cursor: pointer;
}

.vf-date-picker__nav::before {
  display: block;
  font-family: Arial, sans-serif;
  font-size: 22px;
  font-weight: 400;
  line-height: 1;
}

.vf-date-picker__nav--previous::before {
  content: "‹";
}

.vf-date-picker__nav--next::before {
  content: "›";
}

.vf-date-picker__nav:hover {
  border-color: var(--vf-blue);
  color: var(--vf-blue);
}

.vf-date-picker__month {
  text-align: center;
  color: var(--vf-ink);
  font-size: 13px;
  font-weight: 800;
}

.vf-date-picker__weekdays,
.vf-date-picker__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}

.vf-date-picker__weekdays {
  margin-bottom: 4px;
}

.vf-date-picker__weekday {
  padding: 4px 0;
  color: #929aa5;
  font-size: 9px;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
}

.vf-date-picker__day {
  aspect-ratio: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #333a43;
  font: inherit;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
}

.vf-date-picker__day:hover {
  background: #eaf4fb;
  color: var(--vf-blue);
}

.vf-date-picker__day.is-selected {
  background: var(--vf-blue);
  color: #fff;
}

.vf-date-picker__day.is-outside,
.vf-date-picker__day:disabled {
  color: #d0d5dc;
  cursor: default;
}

.vf-date-picker__day.is-outside:hover,
.vf-date-picker__day:disabled:hover {
  background: transparent;
  color: #d0d5dc;
}

.vf-date-picker__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #e7eaf0;
}

.vf-date-picker__footer-label {
  color: #8d95a1;
  font-size: 10px;
  font-weight: 600;
}

.vf-date-picker__anytime {
  height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(11, 141, 242, 0.32);
  border-radius: 9px;
  background: #eef7ff;
  color: var(--vf-blue);
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}

.vf-date-picker__anytime:hover {
  background: #e2f1ff;
}

.vf-explore__shell.is-fullscreen .vf-search__date {
  position: relative;
}

@media (max-width: 560px) {
  .vf-date-popover {
    width: min(292px, calc(100vw - 24px));
  }

  .vf-date-picker {
    padding: 12px;
  }

  .vf-date-picker__day {
    font-size: 12px;
  }
}

.vf-travelers-popover {
  position: absolute;
  z-index: 1000;
  width: 360px;
  border: 1px solid #e1e5ea;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(18, 25, 38, 0.18);
}

.vf-travelers-popover[hidden] {
  display: none !important;
}

.vf-travelers-picker {
  padding: 16px;
}

.vf-travelers-picker__title {
  margin: 0 0 12px;
  color: var(--vf-ink);
  font-size: 16px;
  font-weight: 800;
}

.vf-travelers-picker__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid #edf0f4;
}

.vf-travelers-picker__row:last-of-type {
  border-bottom: 0;
}

.vf-travelers-picker__label strong,
.vf-travelers-picker__label span {
  display: block;
}

.vf-travelers-picker__label strong {
  color: #353b44;
  font-size: 13px;
  font-weight: 800;
}

.vf-travelers-picker__label span {
  margin-top: 2px;
  color: #929ba7;
  font-size: 10px;
}

.vf-travelers-picker__counter {
  display: grid;
  grid-template-columns: 32px 24px 32px;
  align-items: center;
  gap: 6px;
}

.vf-travelers-picker__counter button {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid #dfe4ea;
  border-radius: 50%;
  background: #fff;
  color: var(--vf-blue);
  font: inherit;
  font-size: 18px;
  font-weight: 700;
  cursor: pointer;
}

.vf-travelers-picker__counter button:disabled {
  background: #f2f4f7;
  color: #c5cbd3;
  cursor: default;
}

.vf-travelers-picker__count {
  color: #353b44;
  font-size: 13px;
  font-weight: 800;
  text-align: center;
}

.vf-travelers-picker__section {
  margin-top: 14px;
}

.vf-travelers-picker__section-title {
  margin-bottom: 9px;
  color: #353b44;
  font-size: 12px;
  font-weight: 800;
}

.vf-travelers-picker__cabins {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.vf-travelers-picker__cabin {
  height: 42px;
  padding: 0 10px;
  border: 1px solid #dfe4ea;
  border-radius: 10px;
  background: #fff;
  color: #5f6874;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

.vf-travelers-picker__cabin.is-active {
  border-color: var(--vf-blue);
  background: #eef7ff;
  color: var(--vf-blue);
}

.vf-travelers-picker__note {
  margin: 14px 0 0;
  color: #929ba7;
  font-size: 10px;
  line-height: 1.5;
}

.vf-travelers-picker__apply {
  min-width: 108px;
  height: 40px;
  display: block;
  margin: 14px 0 0 auto;
  padding: 0 18px;
  border: 0;
  border-radius: 10px;
  background: var(--vf-blue);
  color: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.vf-travelers-picker__apply:hover {
  background: var(--vf-blue-dark);
}

.vf-results-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 14px;
  padding: 12px 0 10px;
  border-top: 1px solid var(--vf-line);
}

.vf-results-header__origin {
  min-width: 0;
}

.vf-results-header__eyebrow {
  display: block;
  color: #9aa3af;
  font-size: 9px;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.09em;
}

.vf-results-header__title {
  display: block;
  margin-top: 5px;
  color: var(--vf-ink);
  font-size: 18px;
  font-weight: 800;
  line-height: 1.15;
}

.vf-explore__status {
  flex-shrink: 0;
  color: #6f7885;
  font-size: 11px;
  line-height: 1.3;
  text-align: right;
}

.vf-results-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 4px;
  overscroll-behavior: contain;
}

.vf-results-scroll::-webkit-scrollbar {
  width: 6px;
}

.vf-results-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.vf-results-scroll::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: #cbd1d9;
}

.vf-explore__shell.is-fullscreen .vf-results-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 6px;
  overscroll-behavior: contain;
}

.vf-destination-list {
  display: grid;
  gap: 8px;
}

.vf-destination-card {
  width: 100%;
  min-height: 100px;
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
  padding: 9px;
  border: 1px solid #e1e5eb;
  border-radius: 14px;
  background: #fff;
  color: var(--vf-ink);
  text-align: left;
  cursor: pointer;
  box-shadow: none;
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.18s ease;
}

.vf-destination-card:hover {
  border-color: #b8dafa;
  box-shadow: var(--vf-card-shadow);
  transform: translateY(-1px);
}

.vf-destination-card.is-active {
  border-color: var(--vf-blue);
  box-shadow: 0 0 0 2px rgba(11, 141, 242, 0.08);
}

.vf-destination-card__image {
  width: 88px;
  min-width: 88px;
  height: 82px;
  overflow: hidden;
  border-radius: 10px;
  background: #f1f4f8;
}

.vf-destination-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.vf-destination-card__image--fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #eaf4fb;
  color: var(--vf-blue);
  font-size: 24px;
}

.vf-destination-card__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 2px 1px;
}

.vf-destination-card__top {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 8px;
}

.vf-destination-card__name,
.vf-destination-card__country {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vf-destination-card__name {
  color: var(--vf-ink);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
}

.vf-destination-card__country {
  margin-top: 5px;
  color: #7e8794;
  font-size: 11px;
  font-weight: 500;
}

.vf-destination-card__price {
  flex-shrink: 0;
  text-align: right;
}

.vf-destination-card__price span,
.vf-destination-card__price strong {
  display: block;
}

.vf-destination-card__price span {
  color: #89929e;
  font-size: 9px;
}

.vf-destination-card__price strong {
  margin-top: 3px;
  color: var(--vf-ink);
  font-size: 17px;
  font-weight: 800;
  line-height: 1;
}

.vf-destination-card__meta {
  color: #9098a4;
  font-size: 9px;
  line-height: 1.35;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vf-show-more {
  width: 100%;
  min-height: 44px;
  margin-top: 10px;
  padding: 10px 14px;
  border: 0;
  border-radius: 12px;
  background: #128add;
  color: #fff;
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

.vf-show-more:hover {
  background: #34a2ee;
}

.vf-show-more[hidden] {
  display: none !important;
}

.vf-fare-disclaimer {
  flex-shrink: 0;
  margin-top: 12px;
  padding-top: 11px;
  border-top: 1px solid var(--vf-line);
  color: #78818d;
  font-size: 9px;
  line-height: 1.45;
}

.vf-fare-disclaimer p {
  margin: 0;
}

.vf-fare-disclaimer__updated {
  display: block;
  margin-top: 6px;
  color: #99a1ac;
  font-size: 8px;
}

.vf-explore__map-wrap {
  position: sticky;
  top: 65px;
  min-width: 0;
  height: calc(100dvh - 125px);
  min-height: 0;
  overflow: hidden;
  background: #eaf4fb;
  border-radius: 18px;
}

.vf-explore__map {
  width: 100%;
  height: 100%;
  min-height: 0;
  background: #dcec47;
}

.vf-explore__map-wrap .leaflet-top.leaflet-left {
  top: auto !important;
  left: auto !important;
  right: 16px !important;
  bottom: 16px !important;
}

.vf-explore__map-wrap .leaflet-top.leaflet-left .leaflet-control {
  margin: 0 !important;
}

.vf-explore__map-toolbar {
  position: absolute;
  top: 16px;
  left: 16px;
  right: 72px;
  z-index: 650;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  pointer-events: none;
}

.vf-explore__map-toolbar > * {
  pointer-events: auto;
}

.vf-map-expand {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 700;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 12px;
  background: #fff;
  color: var(--vf-ink);
  font: inherit;
  font-size: 19px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(18, 25, 38, 0.14);
}

.vf-map-expand:hover {
  background: #f7f9fb;
}

.vf-map-expand:focus,
.vf-map-expand:focus-visible {
  border: 0;
  outline: 0;
}

.vf-demo-badge {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(17, 19, 23, 0.82);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  box-shadow: 0 6px 18px rgba(18, 25, 38, 0.16);
}

.vf-demo-badge[hidden] {
  display: none !important;
}

.vf-explore__shell.is-fullscreen {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: grid;
  grid-template-columns: 390px minmax(0, 1fr);
  gap: 10px;
  width: 100vw;
  max-width: none;
  height: 100dvh;
  margin: 0;
  padding: 10px;
  background: #eaf4fb;
  overflow: hidden;
}

.vf-explore__shell.is-fullscreen .vf-explore__panel {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: calc(100dvh - 20px);
  min-height: 0;
  max-height: none;
  padding: 16px;
  overflow: hidden;
  background: var(--vf-white);
  border: 0;
  border-radius: 20px;
  box-shadow: 0 8px 30px rgba(18, 25, 38, 0.14);
}

.vf-explore__shell.is-fullscreen .vf-search,
.vf-explore__shell.is-fullscreen .vf-results-header {
  flex-shrink: 0;
}

.vf-explore__map-wrap.is-fullscreen {
  position: relative;
  top: auto;
  inset: auto;
  width: 100%;
  height: calc(100dvh - 20px);
  min-height: 0;
  max-height: none;
  overflow: hidden;
  border-radius: 20px;
}

.vf-explore__map-wrap.is-fullscreen .vf-explore__map {
  width: 100%;
  height: 100%;
  min-height: 0;
}

body.vf-map-open {
  overflow: hidden;
}

.vf-price-marker {
  background: none !important;
  border: 0 !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  overflow: visible !important;
}

.vf-price-marker:hover,
.vf-price-marker:focus-within {
  z-index: 10000 !important;
}

.vf-price-marker.is-near-left-edge {
  justify-content: flex-start;
}

.vf-price-marker.is-near-right-edge {
  justify-content: flex-end;
}

.vf-price-pill {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: max-content;
  min-width: 0;
  max-width: none;
  padding: 7px 9px;
  white-space: nowrap;
  border: 1px solid rgba(17, 19, 23, 0.08);
  border-radius: 10px;
  background: var(--vf-white);
  box-shadow: 0 6px 18px rgba(18, 25, 38, 0.14);
  color: var(--vf-ink);
  font-size: 11px;
  font-weight: 900;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
  cursor: pointer;
  overflow: visible;
  transition:
    background 0.15s ease,
    color 0.15s ease,
    box-shadow 0.18s ease,
    transform 0.18s ease;
}

.vf-price-pill__price {
  flex: 0 0 auto;
}

.vf-price-pill__destination {
  display: none;
  flex: 0 0 auto;
  max-width: none;
  margin-left: 6px;
  overflow: visible;
  opacity: 1;
  font-weight: 750;
  text-overflow: clip;
}

.vf-price-pill:hover,
.vf-price-pill:focus,
.vf-price-pill:focus-visible,
.vf-price-pill.is-active {
  background: var(--vf-blue);
  color: var(--vf-white);
  box-shadow: 0 8px 22px rgba(11, 141, 242, 0.25);
  outline: none;
  transform: translateY(-1px);
}

.vf-price-pill:hover .vf-price-pill__destination,
.vf-price-pill:focus .vf-price-pill__destination,
.vf-price-pill:focus-visible .vf-price-pill__destination {
  display: inline-block;
}

/*
 * Adaptive map markers:
 * lower-priority or collision-prone fares remain visible as compact dots.
 * Hover, keyboard focus or activation restores the complete existing tag.
 */
.vf-price-marker.is-dot-marker .vf-price-pill {
  width: 12px;
  min-width: 12px;
  height: 12px;
  min-height: 12px;
  padding: 0;
  gap: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #344455;
  box-shadow: 0 2px 7px rgba(18, 25, 38, 0.28);
  color: #fff;
  transform: none;
}

.vf-price-marker.is-dot-marker .vf-price-pill__price,
.vf-price-marker.is-dot-marker .vf-price-pill__destination {
  display: none;
}

.vf-price-marker.is-dot-marker .vf-price-pill:hover,
.vf-price-marker.is-dot-marker .vf-price-pill:focus,
.vf-price-marker.is-dot-marker .vf-price-pill:focus-visible,
.vf-price-marker.is-dot-marker .vf-price-pill.is-active {
  width: max-content;
  min-width: 0;
  height: auto;
  min-height: 0;
  padding: 7px 9px;
  gap: 0;
  border: 1px solid rgba(17, 19, 23, 0.08);
  border-radius: 10px;
  background: var(--vf-blue);
  box-shadow: 0 8px 22px rgba(11, 141, 242, 0.25);
  transform: translateY(-1px);
}

.vf-price-marker.is-dot-marker .vf-price-pill:hover .vf-price-pill__price,
.vf-price-marker.is-dot-marker .vf-price-pill:focus .vf-price-pill__price,
.vf-price-marker.is-dot-marker .vf-price-pill:focus-visible .vf-price-pill__price,
.vf-price-marker.is-dot-marker .vf-price-pill.is-active .vf-price-pill__price,
.vf-price-marker.is-dot-marker .vf-price-pill:hover .vf-price-pill__destination,
.vf-price-marker.is-dot-marker .vf-price-pill:focus .vf-price-pill__destination,
.vf-price-marker.is-dot-marker .vf-price-pill:focus-visible .vf-price-pill__destination,
.vf-price-marker.is-dot-marker .vf-price-pill.is-active .vf-price-pill__destination {
  display: inline-block;
}

/*
 * Keep the selected flight corridor clear. Markers intersecting the route
 * remain dots even when hovered, focused or selected; the persistent route
 * endpoint tabs carry the origin and destination information instead.
 */
.vf-price-marker.is-route-suppressed .vf-price-pill,
.vf-price-marker.is-route-suppressed .vf-price-pill:hover,
.vf-price-marker.is-route-suppressed .vf-price-pill:focus,
.vf-price-marker.is-route-suppressed .vf-price-pill:focus-visible,
.vf-price-marker.is-route-suppressed .vf-price-pill.is-active {
  width: 12px;
  min-width: 12px;
  height: 12px;
  min-height: 12px;
  padding: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #344455;
  box-shadow: 0 2px 7px rgba(18, 25, 38, 0.28);
  color: #fff;
  transform: none;
}

/* The selected-route endpoint tab already supplies its own anchor dot. */
.vf-price-marker.is-route-endpoint-overlap {
  display: none !important;
}


.vf-price-marker.is-route-suppressed .vf-price-pill__price,
.vf-price-marker.is-route-suppressed .vf-price-pill__destination,
.vf-price-marker.is-route-suppressed .vf-price-pill:hover .vf-price-pill__price,
.vf-price-marker.is-route-suppressed .vf-price-pill:focus .vf-price-pill__price,
.vf-price-marker.is-route-suppressed .vf-price-pill:focus-visible .vf-price-pill__price,
.vf-price-marker.is-route-suppressed .vf-price-pill.is-active .vf-price-pill__price,
.vf-price-marker.is-route-suppressed .vf-price-pill:hover .vf-price-pill__destination,
.vf-price-marker.is-route-suppressed .vf-price-pill:focus .vf-price-pill__destination,
.vf-price-marker.is-route-suppressed .vf-price-pill:focus-visible .vf-price-pill__destination,
.vf-price-marker.is-route-suppressed .vf-price-pill.is-active .vf-price-pill__destination {
  display: none;
}

.leaflet-popup-content-wrapper {
  border-radius: 16px;
}

.vf-popup h3 {
  margin: 0 0 3px;
  font-size: 17px;
}

.vf-popup p {
  margin: 0 0 10px;
  color: #727986;
  font-size: 12px;
}

.vf-popup__price {
  margin-bottom: 10px;
  font-size: 21px;
  font-weight: 900;
}

.vf-popup a {
  display: inline-block;
  padding: 9px 12px;
  border-radius: 10px;
  background: var(--vf-blue);
  color: var(--vf-white) !important;
  text-decoration: none;
  font-size: 12px;
  font-weight: 800;
}

.vf-popup a:hover {
  background: var(--vf-blue-dark);
}

.vf-explore .leaflet-control-zoom {
  overflow: hidden;
  border: 0 !important;
  border-radius: 10px;
  box-shadow: 0 6px 18px rgba(18, 25, 38, 0.12);
}

.vf-explore .leaflet-control-zoom a {
  width: 34px;
  height: 34px;
  line-height: 34px;
  border: 0 !important;
  background: var(--vf-white);
  color: var(--vf-ink);
}

.vf-explore__panel::-webkit-scrollbar {
  width: 7px;
}

.vf-explore__panel::-webkit-scrollbar-track {
  background: transparent;
}

.vf-explore__panel::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: #d6dbe3;
}

@media (max-width: 900px) {
  .vf-explore {
    padding: 12px 10px;
  }

  .vf-explore__shell {
    grid-template-columns: 1fr;
    border-radius: 16px;
  }

  .vf-explore__panel {
    max-height: none;
  }

  .vf-explore__map {
    width: 100%;
    height: 100%;
    min-height: 0;
    z-index: 1;
  }
}

@media (max-width: 560px) {
  .vf-explore {
    padding: 8px;
  }

  .vf-explore__panel {
    padding: 16px;
  }

  .vf-search__route {
    grid-template-columns: 1fr;
  }

  .vf-search__filters {
    grid-template-columns: 1fr;
  }

  .vf-search__filter:last-child {
    grid-column: auto;
  }

  .vf-results-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .vf-explore__status {
    text-align: left;
  }

  .vf-explore__map {
    height: 500px;
    min-height: 500px;
  }

  .vf-explore__map-toolbar {
    top: 12px;
    left: 12px;
    right: 64px;
  }

  .vf-map-expand {
    top: 12px;
    right: 12px;
  }
}

.material-symbols-outlined {
  font-family: "Material Symbols Outlined";
  font-weight: normal;
  font-style: normal;
  font-size: 20px;
  line-height: 1;
  display: inline-block;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "liga";
}

.vf-explore__panel {
  overflow: visible;
}

.vf-search {
  position: relative;
  z-index: 1100;
}

.vf-search__route {
  position: relative;
  z-index: 1200;
}

.vf-location-popover {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: auto;
  z-index: 5000;
  width: min(520px, calc(100vw - 40px));
  padding: 6px;
  overflow: hidden;
  border: 1px solid #e1e5ea;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(18, 25, 38, 0.14);
}

.vf-location-popover[hidden] {
  display: none !important;
}

.vf-location-popover.is-searching::after {
  content: "";
  position: absolute;
  top: 7px;
  right: 9px;
  width: 12px;
  height: 12px;
  border: 2px solid #d9dee5;
  border-top-color: #68717c;
  border-radius: 50%;
  animation: vf-location-spin 0.7s linear infinite;
}

@keyframes vf-location-spin {
  to {
    transform: rotate(360deg);
  }
}

.vf-location-results {
  width: 100%;
  max-height: min(520px, calc(100dvh - 180px));
  margin: 0;
  padding: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #c6ccd4 transparent;
}

.vf-location-results::-webkit-scrollbar {
  width: 5px;
}

.vf-location-results::-webkit-scrollbar-track {
  background: transparent;
}

.vf-location-results::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: #c6ccd4;
}

.vf-location-result {
  position: relative;
  width: 100%;
  min-height: 58px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  margin: 0;
  padding: 8px 10px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--vf-ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.1s ease;
}

.vf-location-result:hover,
.vf-location-result:focus-visible {
  background: #f2f4f6;
  outline: none;
}

.vf-location-result__icon {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 8px;
  background: #f1f3f5;
  color: #59626d;
  font-size: 19px;
  pointer-events: none;
}

.vf-location-result--city .vf-location-result__icon {
  background: #eef1f4;
  color: #4e5863;
}

.vf-location-result--airport .vf-location-result__icon {
  background: #f3f5f7;
  color: #59626d;
}

.vf-location-result__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.vf-location-result__topline {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 10px;
}

.vf-location-result__title {
  min-width: 0;
  overflow: hidden;
  color: #191c20;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vf-location-result__code {
  min-width: 30px;
  flex-shrink: 0;
  color: #6f7782;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.2;
  text-align: right;
  letter-spacing: 0;
}

.vf-location-result__secondary {
  display: block;
  min-width: 0;
  margin-top: 2px;
  overflow: hidden;
  color: #707986;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.25;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vf-location-result--city {
  min-height: 62px;
  margin-top: 2px;
}

.vf-location-result--city .vf-location-result__title {
  font-weight: 750;
}

.vf-location-result--child {
  grid-template-columns: 20px 34px minmax(0, 1fr);
  min-height: 58px;
  padding-left: 16px;
}

.vf-location-result__branch {
  width: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  color: #7c858f;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  pointer-events: none;
}

.vf-location-result--child .vf-location-result__icon {
  width: 32px;
  height: 32px;
  background: #f4f5f7;
  font-size: 18px;
}

.vf-location-result--city + .vf-location-result--child,
.vf-location-result--child + .vf-location-result--child {
  margin-top: 0;
}

.vf-location-result--anywhere {
  min-height: 58px;
  margin: 0 0 3px;
  background: transparent;
}

.vf-location-result--anywhere:hover {
  background: #f2f4f6;
}

.vf-location-results__empty {
  min-height: 58px;
  display: flex;
  align-items: center;
  padding: 14px 12px;
  color: #707986;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
}

.vf-explore__shell.is-fullscreen .vf-location-popover {
  width: min(540px, calc(100vw - 40px));
  max-width: none;
}

.vf-explore__map-wrap {
  z-index: 1;
}

.vf-explore__panel {
  position: relative;
  z-index: 10;
}

@media (max-width: 900px) {
  .vf-location-popover {
    width: min(520px, calc(100vw - 32px));
  }
}

@media (max-width: 560px) {
  .vf-explore__panel {
    overflow: visible;
  }

  .vf-location-popover {
    position: fixed;
    top: auto;
    left: 12px;
    right: 12px;
    bottom: 12px;
    width: auto;
    max-height: min(70dvh, 580px);
    padding: 6px;
    border-radius: 16px;
    box-shadow: 0 14px 40px rgba(18, 25, 38, 0.22);
  }

  .vf-location-results {
    max-height: calc(min(70dvh, 580px) - 12px);
  }

  .vf-location-result {
    min-height: 60px;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 10px;
    padding: 9px 10px;
  }

  .vf-location-result--child {
    grid-template-columns: 18px 34px minmax(0, 1fr);
    padding-left: 12px;
  }

  .vf-location-result__title {
    font-size: 13px;
  }

  .vf-location-result__secondary {
    font-size: 11px;
  }
}

.vf-search__location {
  position: relative;
  min-width: 0;
  height: 60px;
  display: block;
  padding: 0 11px;
  overflow: hidden;
  border: 1px solid #d7dce4;
  border-radius: 12px;
  background: #fff;
  color: var(--vf-ink);
  cursor: text;
  transition:
    border-color 0.14s ease,
    box-shadow 0.14s ease;
}

.vf-search__location:hover {
  border-color: #b8c0ca;
}

.vf-search__location:focus-within {
  border-color: var(--vf-blue);
  box-shadow: 0 0 0 3px rgba(11, 141, 242, 0.1);
}

.vf-search__location-label {
  position: absolute;
  top: 50%;
  left: 11px;
  z-index: 2;
  margin: 0;
  transform: translateY(-50%);
  color: #5f6772;
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  text-transform: none;
  letter-spacing: 0;
  pointer-events: none;
  transition:
    top 0.14s ease,
    transform 0.14s ease,
    font-size 0.14s ease,
    color 0.14s ease;
}

.vf-search__location--origin:focus-within .vf-search__location-label,
.vf-search__location--origin:has(
    .vf-search__location-input:not(:placeholder-shown)
  )
  .vf-search__location-label {
  top: 9px;
  transform: none;
  color: #7d8590;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.vf-search__location--destination .vf-search__location-label {
  top: 9px;
  transform: none;
  color: #7d8590;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.vf-search__location-input {
  position: absolute;
  left: 11px;
  right: 11px;
  top: 22px;
  width: calc(100% - 22px);
  height: 30px;
  margin: 0;
  padding: 0;
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--vf-ink);
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  line-height: 30px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vf-search__location-input:focus {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

.vf-search__location--origin .vf-search__location-input:placeholder-shown {
  top: 15px;
  opacity: 0;
}

.vf-search__location--origin:focus-within
  .vf-search__location-input:placeholder-shown {
  top: 22px;
  opacity: 1;
}

.vf-search__location--destination .vf-search__location-input::placeholder {
  color: var(--vf-ink);
  opacity: 1;
  font-weight: 700;
}

.vf-search__location--origin .vf-search__location-input::placeholder {
  color: transparent;
  opacity: 0;
}

.vf-search__location:focus-within .vf-search__location-label {
  color: var(--vf-blue);
}

.vf-search__location-name {
  display: none !important;
}

.vf-location-popover.is-searching::after {
  display: none !important;
}

.vf-search__travelers {
  width: 100%;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 12px;
  border: 1px solid #d7dce4;
  border-radius: 11px;
  background: #fff;
  color: #4d5560;
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.vf-search__travelers:hover,
.vf-search__travelers.is-open {
  border-color: var(--vf-blue);
  color: var(--vf-ink);
}

.vf-search__travelers:focus-visible {
  outline: 3px solid rgba(11, 141, 242, 0.18);
  outline-offset: 2px;
  border-color: var(--vf-blue);
}

.vf-travelers-popover {
  position: absolute;
  z-index: 6000;
  max-height: min(620px, calc(100dvh - 24px));
  overflow-x: hidden;
  overflow-y: auto;
  border: 1px solid var(--vf-line);
  border-radius: 16px;
  background: var(--vf-white);
  box-shadow: 0 18px 50px rgba(18, 25, 38, 0.18);
}

.vf-travelers-popover[hidden] {
  display: none !important;
}

.vf-travelers-picker {
  padding: 16px;
}

.vf-travelers-picker__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 4px;
}

.vf-travelers-picker__header strong {
  color: var(--vf-ink);
  font-size: 16px;
  line-height: 1.3;
}

.vf-travelers-picker__close {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--vf-soft);
  color: #5f6874;
  font: inherit;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.vf-travelers-picker__close:hover {
  background: #e9eef5;
  color: var(--vf-ink);
}

.vf-traveler-row {
  min-height: 70px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid var(--vf-line);
}

.vf-traveler-row__label {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.vf-traveler-row__label strong {
  color: #343941;
  font-size: 13px;
  line-height: 1.25;
}

.vf-traveler-row__label span {
  color: var(--vf-light-text);
  font-size: 11px;
  line-height: 1.3;
}

.vf-traveler-counter {
  display: grid;
  grid-template-columns: 32px 24px 32px;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
}

.vf-traveler-counter button {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid #cfd6df;
  border-radius: 50%;
  background: var(--vf-white);
  color: var(--vf-blue);
  font: inherit;
  font-size: 19px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.vf-traveler-counter button:hover:not(:disabled) {
  border-color: var(--vf-blue);
  background: #f1f8ff;
}

.vf-traveler-counter button:focus-visible,
.vf-travelers-picker__close:focus-visible,
.vf-travelers-picker__apply:focus-visible {
  outline: 3px solid rgba(11, 141, 242, 0.2);
  outline-offset: 2px;
}

.vf-traveler-counter button:disabled {
  border-color: #e2e6ec;
  background: #f2f4f7;
  color: #b9c0ca;
  cursor: not-allowed;
}

.vf-traveler-counter span {
  color: #343941;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}

.vf-travelers-picker__cabin {
  padding-top: 16px;
}

.vf-travelers-picker__cabin > strong {
  display: block;
  margin-bottom: 10px;
  color: #343941;
  font-size: 13px;
}

.vf-cabin-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.vf-cabin-option {
  position: relative;
  min-height: 42px;
  display: flex;
  align-items: center;
  cursor: pointer;
}

.vf-cabin-option input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.vf-cabin-option span {
  width: 100%;
  min-height: 42px;
  display: flex;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid #d7dce4;
  border-radius: 10px;
  color: #4d5560;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.25;
}

.vf-cabin-option input:checked + span {
  border-color: var(--vf-blue);
  background: #eef7ff;
  color: var(--vf-blue-dark);
}

.vf-cabin-option input:focus-visible + span {
  outline: 3px solid rgba(11, 141, 242, 0.18);
  outline-offset: 2px;
}

.vf-travelers-picker__note {
  margin: 12px 0 0;
  color: var(--vf-light-text);
  font-size: 10px;
  line-height: 1.45;
}

.vf-travelers-picker__footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--vf-line);
}

.vf-travelers-picker__apply {
  min-width: 108px;
  height: 40px;
  padding: 0 18px;
  border: 0;
  border-radius: 10px;
  background: var(--vf-blue);
  color: var(--vf-white);
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}

.vf-travelers-picker__apply:hover {
  background: var(--vf-blue-dark);
}

@media (max-width: 560px) {
  .vf-travelers-popover {
    position: fixed !important;
    top: auto !important;
    left: 12px !important;
    right: 12px;
    bottom: 12px;
    width: auto !important;
    max-height: calc(100dvh - 24px);
    border-radius: 18px;
  }

  .vf-travelers-picker {
    padding: 16px;
  }

  .vf-travelers-picker__apply {
    width: 100%;
  }
}

@media (min-width: 901px) {
  .vf-explore {
    margin-top: 10px;
    margin-bottom: 10px;
  }

  .vf-explore__panel,
  .vf-explore__map-wrap {
    height: calc(100dvh - 84px);
  }

  .vf-explore__map-wrap {
    top: 74px;
  }
}

.vf-results-scroll {
  display: flex;
  flex-direction: column;
  overscroll-behavior-y: auto;
}

.vf-results-scroll.has-more-results {
  overscroll-behavior-y: contain;
}

.vf-destination-list,
.vf-show-more,
.vf-fare-disclaimer {
  flex-shrink: 0;
}

.vf-fare-disclaimer {
  margin-top: auto;
  padding: 12px 2px 2px;
  border-top: 0;
}

.vf-fare-disclaimer::before {
  content: "";
  display: block;
  margin-bottom: 10px;
  border-top: 1px solid var(--vf-line);
}

.vf-search__trip-type,
.vf-search__trip-type:focus-within {
  border-color: #e1e5ea !important;
  outline: 0 !important;
  box-shadow: none !important;
}

.vf-trip-option:focus,
.vf-trip-option:focus-visible {
  border-color: transparent !important;
  outline: 0 !important;
  box-shadow: none !important;
}

.vf-trip-option.is-active:focus,
.vf-trip-option.is-active:focus-visible {
  box-shadow: 0 1px 4px rgba(18, 25, 38, 0.1) !important;
}

.vf-explore__shell.is-fullscreen .vf-explore__panel {
  overflow: visible;
}

.vf-date-popover,
.vf-travelers-popover {
  position: fixed !important;
  z-index: 1000001 !important;
}

body.vf-map-fullscreen-open {
  overflow: hidden;
}

body:has(.vf-explore) .inner-page-text {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

body:has(.vf-explore) .entry-content {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.vf-explore {
  width: 100%;
  height: var(--vf-explore-height, calc(100dvh - 84px));
  margin: 10px auto;
  padding: 0;
}

.vf-explore__shell {
  height: 100%;
  min-height: 0;
  align-items: stretch;
}

.vf-explore__panel,
.vf-explore__map-wrap {
  height: 100%;
  min-height: 0;
  max-height: 100%;
}

.vf-explore__map-wrap {
  top: calc(var(--vf-page-header-bottom, 64px) + 10px);
}

.vf-search {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.vf-search__trip-type,
.vf-search__route,
.vf-search__dates,
.vf-search__travelers {
  flex-shrink: 0;
}

.vf-search__trip-type,
.vf-search__trip-type:focus-within {
  border-color: #e1e5ea !important;
  outline: 0 !important;
  box-shadow: none !important;
}

.vf-trip-option:focus,
.vf-trip-option:focus-visible {
  border-color: transparent !important;
  outline: 0 !important;
  box-shadow: none !important;
}

.vf-trip-option.is-active:focus,
.vf-trip-option.is-active:focus-visible {
  box-shadow: 0 1px 4px rgba(18, 25, 38, 0.1) !important;
}

.vf-results-header--status-only {
  position: relative;
  z-index: 12;
  display: block;
  min-height: 40px;
  margin-top: 13px;
  padding: 13px 0 10px;
  border-top: 1px solid var(--vf-line);
  border-bottom: 1px solid transparent;
  background: var(--vf-white);
  transition:
    border-color 0.14s ease,
    box-shadow 0.14s ease;
}

.vf-results-header--status-only.is-results-scrolled {
  border-bottom-color: #dfe4ea;
  box-shadow: 0 4px 8px rgba(18, 25, 38, 0.025);
}

.vf-results-header--status-only .vf-explore__status {
  display: block;
  width: 100%;
  text-align: left;
}

.vf-results-scroll {
  padding-top: 0;
}

.vf-destination-list {
  margin-top: 10px;
}

.vf-map-expand,
.vf-map-expand:hover,
.vf-map-expand:focus,
.vf-map-expand:focus-visible {
  border: 0 !important;
  outline: 0 !important;
}

.vf-map-expand:focus-visible {
  box-shadow:
    0 0 0 3px rgba(17, 19, 23, 0.12),
    0 8px 22px rgba(18, 25, 38, 0.14);
}

.vf-explore__map-toolbar {
  right: 72px;
  justify-content: flex-start;
  gap: 10px;
}

.vf-map-filter-launcher {
  pointer-events: auto;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 15px;
  border: 0;
  border-radius: 12px;
  background: var(--vf-white);
  box-shadow: 0 8px 22px rgba(18, 25, 38, 0.14);
  color: var(--vf-ink);
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  transition:
    background 0.15s ease,
    transform 0.15s ease;
}

.vf-map-filter-launcher .material-symbols-outlined {
  font-size: 19px;
}

.vf-map-filter-launcher:hover {
  background: var(--vf-soft);
  transform: translateY(-1px);
}

.vf-map-filter-launcher:focus-visible {
  outline: 3px solid rgba(17, 19, 23, 0.12);
  outline-offset: 2px;
}

.vf-map-filter-bar {
  position: absolute;
  top: 16px;
  left: 128px;
  right: 72px;
  z-index: 650;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 6px;
  border: 1px solid rgba(17, 19, 23, 0.07);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 10px 30px rgba(18, 25, 38, 0.14);
  backdrop-filter: blur(10px);
}

.vf-map-filter-bar[hidden] {
  display: none !important;
}

.vf-map-filter-option {
  min-width: max-content;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 12px;
  border: 1px solid #e1e5ea;
  border-radius: 9px;
  background: #fff;
  color: #4d5560;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
  transition:
    border-color 0.14s ease,
    background 0.14s ease,
    color 0.14s ease;
}

.vf-map-filter-option .material-symbols-outlined {
  font-size: 17px;
}

.vf-map-filter-option:hover,
.vf-map-filter-option.is-open {
  border-color: #b8c0ca;
  background: #f7f9fb;
  color: var(--vf-ink);
}

.vf-map-filter-option.is-active {
  border-color: rgba(11, 141, 242, 0.38);
  background: #edf7ff;
  color: var(--vf-blue-dark);
}

.vf-map-filter-option:focus-visible {
  outline: 3px solid rgba(11, 141, 242, 0.18);
  outline-offset: 1px;
}

.vf-map-filter-option__arrow {
  margin-left: 3px;
  color: #707986;
  font-size: 10px;
}

.vf-map-filter-menu {
  position: relative;
  min-width: 0;
}

.vf-map-filter-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 720;
  width: 190px;
  max-height: 250px;
  padding: 6px;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  border: 1px solid #e1e5ea;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(18, 25, 38, 0.18);
  scrollbar-width: thin;
  scrollbar-color: #bcc3cc transparent;
}

.vf-map-filter-dropdown[hidden] {
  display: none !important;
}

.vf-map-filter-dropdown::-webkit-scrollbar {
  width: 5px;
}

.vf-map-filter-dropdown::-webkit-scrollbar-track {
  background: transparent;
}

.vf-map-filter-dropdown::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: #bcc3cc;
}

.vf-map-filter-choice {
  width: 100%;
  min-height: 36px;
  display: flex;
  align-items: center;
  padding: 7px 9px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #4d5560;
  font: inherit;
  font-size: 11px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.vf-map-filter-choice:hover,
.vf-map-filter-choice:focus-visible {
  background: #f3f6f9;
  color: var(--vf-ink);
  outline: 0;
}

.vf-map-filter-choice.is-selected {
  background: #edf7ff;
  color: var(--vf-blue-dark);
  font-weight: 800;
}

.vf-results-scroll {
  display: flex;
  flex-direction: column;
  overscroll-behavior-y: auto;
}

.vf-results-scroll.has-more-results {
  overscroll-behavior-y: contain;
}

.vf-destination-list,
.vf-show-more,
.vf-fare-disclaimer {
  flex-shrink: 0;
}

.vf-fare-disclaimer {
  margin-top: auto;
  padding: 12px 2px 2px;
  border-top: 0;
}

.vf-fare-disclaimer::before {
  content: "";
  display: block;
  margin-bottom: 10px;
  border-top: 1px solid var(--vf-line);
}

.vf-explore__shell.is-fullscreen {
  height: 100dvh;
}

.vf-explore__shell.is-fullscreen .vf-explore__panel,
.vf-explore__map-wrap.is-fullscreen {
  height: calc(100dvh - 20px);
  max-height: calc(100dvh - 20px);
}

.vf-explore__shell.is-fullscreen .vf-explore__panel {
  overflow: visible;
}

body.vf-map-fullscreen-open {
  overflow: hidden;
}

@media (max-width: 900px) {
  body:has(.vf-explore) .inner-page-text {
    padding-top: 0 !important;
  }

  .vf-explore {
    height: auto;
    min-height: 0;
    margin: 10px auto;
    padding: 0 10px;
  }

  .vf-explore__shell {
    height: auto;
  }

  .vf-explore__panel {
    height: auto;
    max-height: none;
  }

  .vf-explore__map-wrap {
    position: relative;
    top: auto;
    height: 600px;
    max-height: none;
  }

  .vf-map-filter-bar {
    top: 64px;
    left: 12px;
    right: 12px;
    flex-wrap: wrap;
  }
}

@media (max-width: 560px) {
  .vf-explore {
    padding: 0 8px;
  }

  .vf-map-filter-launcher {
    height: 40px;
    padding: 0 12px;
  }

  .vf-map-filter-bar {
    top: 62px;
    gap: 6px;
    padding: 6px;
  }

  .vf-map-filter-option {
    height: 34px;
    padding: 0 9px;
    font-size: 10px;
  }

  .vf-map-filter-dropdown {
    position: fixed;
    top: auto;
    left: 12px;
    right: 12px;
    bottom: 12px;
    width: auto;
    max-height: 45dvh;
  }
}

.vf-map-filter-option.is-unavailable,
.vf-map-filter-option:disabled {
  border-color: #e4e8ed;
  background: #f5f6f8;
  color: #9ba3ad;
  cursor: not-allowed;
  opacity: 0.78;
}

body:has(.vf-explore) .inner-page-text {
  padding-top: 10px !important;
  padding-bottom: 0 !important;
}

body:has(.vf-explore) .entry-content {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.vf-explore {
  height: var(--vf-explore-height, calc(100dvh - 93px));
  margin: 0 auto 10px;
}

.vf-explore__shell {
  height: 100%;
}

.vf-explore__panel,
.vf-explore__map-wrap {
  height: 100%;
  max-height: 100%;
}

.vf-explore__map-wrap {
  position: relative;
  top: auto;
}

.vf-status-route__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  margin: 0 2px;
  vertical-align: middle;
  line-height: 1;
  transform: translateY(-0.5px);
}

body:has(.vf-explore) .inner-page-text {
  padding-top: 10px !important;
  padding-bottom: 0 !important;
}

body:has(.vf-explore) .entry-content {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.vf-explore {
  height: var(--vf-explore-height, calc(100dvh - 93px));
  margin: var(--vf-explore-top-offset, 10px) auto 10px;
  padding: 0;
}

.vf-explore__shell {
  height: 100%;
  min-height: 0;
  align-items: stretch;
}

.vf-explore__panel,
.vf-explore__map-wrap {
  height: 100%;
  min-height: 0;
  max-height: 100%;
}

.vf-explore__map-wrap {
  position: relative;
  top: auto;
}

.vf-explore__shell.is-fullscreen .vf-explore__map-wrap {
  position: relative;
  top: auto;
  width: 100%;
  height: calc(100dvh - 20px);
  max-height: calc(100dvh - 20px);
}

.vf-map-filter-bar,
.vf-map-filter-dropdown {
  display: none !important;
}

.vf-explore__map-toolbar {
  position: absolute;
  top: 16px;
  left: 16px;
  right: 72px;
  z-index: 650;
  width: auto;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 10px;
  pointer-events: none;
}

.vf-map-filter-control {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  width: max-content;
  max-width: 100%;
  box-sizing: border-box;
  height: 42px;
  min-height: 42px;
  padding: 0;
  overflow: visible;
  border: 1px solid rgba(17, 19, 23, 0.07);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 10px 28px rgba(18, 25, 38, 0.15);
  backdrop-filter: blur(10px);
}

.vf-map-filter-launcher {
  box-sizing: border-box;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 13px;
  background: transparent;
  box-shadow: none;
  color: var(--vf-ink);
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  transition:
    width 0.2s ease,
    flex-basis 0.2s ease,
    background 0.15s ease;
}

.vf-map-filter-launcher:hover {
  background: var(--vf-soft);
  transform: none;
}

.vf-map-filter-launcher:focus-visible {
  outline: 3px solid rgba(11, 141, 242, 0.2);
  outline-offset: -3px;
}

.vf-map-filter-launcher .material-symbols-outlined {
  flex: 0 0 auto;
  font-size: 21px;
}

.vf-map-filter-launcher__label {
  max-width: 0;
  margin-left: 0;
  overflow: hidden;
  opacity: 0;
  white-space: nowrap;
  transition:
    max-width 0.2s ease,
    margin-left 0.2s ease,
    opacity 0.15s ease;
}

.vf-map-filter-control.is-expanded .vf-map-filter-launcher {
  flex-basis: 86px;
  width: 86px;
  height: 34px;
  border: 1px solid #d7dce4;
  border-radius: 9px;
}

.vf-map-filter-control.is-expanded .vf-map-filter-launcher:focus,
.vf-map-filter-control.is-expanded .vf-map-filter-launcher:focus-visible {
  border-color: #d7dce4 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

.vf-map-filter-control.is-expanded .vf-map-filter-launcher__label {
  max-width: 48px;
  margin-left: 7px;
  opacity: 1;
}

.vf-map-filter-options {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  width: max-content;
  max-width: 0;
  height: 34px;
  gap: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  white-space: nowrap;
  transition:
    max-width 0.26s ease,
    gap 0.2s ease,
    padding-left 0.2s ease,
    opacity 0.15s ease;
}

.vf-map-filter-control.is-expanded .vf-map-filter-options {
  width: max-content;
  max-width: 620px;
  gap: 6px;
  padding: 0 0 0 6px;
  overflow: visible;
  visibility: visible;
  opacity: 1;
}

.vf-map-filter-control.is-expanded {
  width: max-content;
  height: 42px;
  padding: 3px;
  border-color: rgba(17, 19, 23, 0.1);
  outline: 0;
}

.vf-map-filter-option {
  flex: 0 0 auto;
  min-width: max-content;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 12px;
  border: 1px solid #e1e5ea;
  border-radius: 9px;
  background: #fff;
  color: #4d5560;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition:
    border-color 0.14s ease,
    background 0.14s ease,
    color 0.14s ease;
}

.vf-map-filter-option .material-symbols-outlined {
  font-size: 17px;
}

.vf-map-filter-option:hover,
.vf-map-filter-option.is-open {
  border-color: #b8c0ca;
  background: #f7f9fb;
  color: var(--vf-ink);
}

.vf-map-filter-option.is-active {
  border-color: rgba(11, 141, 242, 0.38);
  background: #edf7ff;
  color: var(--vf-blue-dark);
}

.vf-map-filter-option:focus-visible {
  outline: 3px solid rgba(11, 141, 242, 0.18);
  outline-offset: 1px;
}

.vf-map-filter-option__arrow {
  margin-left: 2px;
  color: #707986;
  font-size: 10px;
  line-height: 1;
}

.vf-filter-slider-menu {
  position: relative;
  flex: 0 0 auto;
}

.vf-filter-slider-panel {
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  z-index: 760;
  width: 280px;
  padding: 15px;
  border: 1px solid #e1e5ea;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(18, 25, 38, 0.2);
}

.vf-filter-slider-menu:last-child .vf-filter-slider-panel {
  right: 0;
  left: auto;
}

.vf-filter-slider-panel[hidden] {
  display: none !important;
}

.vf-filter-slider-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 17px;
}

.vf-filter-slider-panel__header > span {
  color: #5d6570;
  font-size: 11px;
  font-weight: 650;
}

.vf-filter-slider-panel__header output {
  color: var(--vf-ink);
  font-size: 12px;
  font-weight: 850;
  text-align: right;
}

.vf-filter-range {
  width: 100%;
  height: 22px;
  margin: 0;
  padding: 0;
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  outline: 0;
  background: transparent;
  cursor: pointer;
}

.vf-filter-range::-webkit-slider-runnable-track {
  width: 100%;
  height: 5px;
  border-radius: 999px;
  background: #dce1e7;
}

.vf-filter-range::-webkit-slider-thumb {
  width: 18px;
  height: 18px;
  margin-top: -6.5px;
  appearance: none;
  -webkit-appearance: none;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--vf-blue);
  box-shadow: 0 1px 6px rgba(18, 25, 38, 0.3);
}

.vf-filter-range::-moz-range-track {
  width: 100%;
  height: 5px;
  border: 0;
  border-radius: 999px;
  background: #dce1e7;
}

.vf-filter-range::-moz-range-progress {
  height: 5px;
  border-radius: 999px;
  background: var(--vf-blue);
}

.vf-filter-range::-moz-range-thumb {
  width: 13px;
  height: 13px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--vf-blue);
  box-shadow: 0 1px 6px rgba(18, 25, 38, 0.3);
}

.vf-filter-range:focus-visible::-webkit-slider-thumb {
  box-shadow:
    0 0 0 4px rgba(11, 141, 242, 0.2),
    0 1px 6px rgba(18, 25, 38, 0.3);
}

.vf-filter-slider-panel__scale {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 2px;
  color: #929aa5;
  font-size: 9px;
  font-weight: 600;
}

.vf-filter-slider-reset {
  width: 100%;
  height: 34px;
  margin-top: 13px;
  padding: 0 10px;
  border: 1px solid #e1e5ea;
  border-radius: 8px;
  background: #f7f9fb;
  color: #5d6570;
  font: inherit;
  font-size: 10px;
  font-weight: 750;
  cursor: pointer;
}

.vf-filter-slider-reset:hover {
  border-color: #cbd2da;
  background: #eef2f6;
  color: var(--vf-ink);
}

.vf-results-header--status-only .vf-explore__status {
  display: flex;
  align-items: center;
  min-height: 18px;
  line-height: 1.35;
  text-align: left;
}

.vf-status-message {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  line-height: 1.35;
}

.vf-status-message__prefix,
.vf-status-message__suffix,
.vf-status-route__location {
  display: inline-flex;
  align-items: center;
  line-height: 1.35;
}

.vf-status-route {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  line-height: 1;
}

.vf-status-route__arrow.material-symbols-outlined {
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 16px;
  margin: 0 1px;
  font-size: 15px;
  line-height: 16px;
  vertical-align: middle;
  transform: none;
}

.vf-map-expand,
.vf-map-expand:hover,
.vf-map-expand:focus,
.vf-map-expand:focus-visible {
  border: 0 !important;
  outline: 0 !important;
}

.vf-map-expand:focus-visible {
  box-shadow:
    0 0 0 3px rgba(17, 19, 23, 0.12),
    0 8px 22px rgba(18, 25, 38, 0.14);
}

@media (max-width: 900px) {
  .vf-explore {
    height: auto;
    min-height: 0;
    margin: 0 auto 10px;
    padding: 0 10px;
  }

  .vf-explore__shell,
  .vf-explore__panel {
    height: auto;
    max-height: none;
  }

  .vf-explore__map-wrap {
    height: 600px;
    max-height: none;
  }

  .vf-map-filter-control.is-expanded {
    width: max-content;
    max-width: calc(100vw - 116px);
  }

  .vf-map-filter-control.is-expanded .vf-map-filter-options {
    width: max-content;
    max-width: calc(100vw - 202px);
    overflow-x: auto;
    overflow-y: visible;
    scrollbar-width: none;
  }

  .vf-map-filter-control.is-expanded .vf-map-filter-options::-webkit-scrollbar {
    display: none;
  }
}

@media (max-width: 560px) {
  .vf-explore {
    padding: 0 8px;
  }

  .vf-explore__map-toolbar {
    top: 12px;
    left: 12px;
    right: 64px;
  }

  .vf-map-filter-control {
    min-height: 46px;
  }

  .vf-map-filter-launcher {
    flex-basis: 46px;
    width: 46px;
    height: 44px;
  }

  .vf-map-filter-control.is-expanded .vf-map-filter-launcher {
    flex-basis: 46px;
    width: 46px;
  }

  .vf-map-filter-control.is-expanded .vf-map-filter-launcher__label {
    max-width: 0;
    margin-left: 0;
    opacity: 0;
  }

  .vf-map-filter-options {
    height: 44px;
  }

  .vf-map-filter-control.is-expanded {
    width: max-content;
    max-width: calc(100vw - 88px);
  }

  .vf-map-filter-control.is-expanded .vf-map-filter-options {
    width: max-content;
    max-width: calc(100vw - 134px);
    gap: 5px;
    padding: 0 0 0 5px;
  }

  .vf-map-filter-option {
    height: 34px;
    padding: 0 9px;
    font-size: 10px;
  }

  .vf-filter-slider-panel,
  .vf-filter-slider-menu:last-child .vf-filter-slider-panel {
    position: fixed;
    top: auto;
    right: 12px;
    bottom: 12px;
    left: 12px;
    width: auto;
  }
}

/* =========================================================
   AUTOMATIC FULLSCREEN FOR NARROW DESKTOP WINDOWS
   ========================================================= */

@media (min-width: 760px) and (max-width: 1199px) {
  .vf-explore__shell.is-fullscreen {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: grid;
    grid-template-columns:
      clamp(320px, 40vw, 390px)
      minmax(0, 1fr);
    gap: 10px;
    width: 100vw;
    max-width: none;
    height: 100dvh;
    margin: 0;
    padding: 10px;
    overflow: hidden;
    background: #eaf4fb;
  }

  .vf-explore__shell.is-fullscreen .vf-explore__panel,
  .vf-explore__shell.is-fullscreen .vf-explore__map-wrap {
    width: 100%;
    height: calc(100dvh - 20px);
    min-height: 0;
    max-height: calc(100dvh - 20px);
  }

  .vf-explore__shell.is-fullscreen .vf-explore__panel {
    display: flex;
    flex-direction: column;
    overflow: visible;
  }

  .vf-explore__shell.is-fullscreen .vf-explore__map-wrap {
    position: relative;
    inset: auto;
    top: auto;
    overflow: hidden;
  }

  .vf-explore__shell.is-fullscreen .vf-explore__map {
    width: 100%;
    height: 100%;
    min-height: 0;
  }
}

/* =========================================================
   MOBILE MAP / LIST CONTROL
   ========================================================= */

.vf-mobile-view-toggle {
  display: none;
}

/* =========================================================
   PHONE MAP-FIRST LAYOUT
   ========================================================= */

@media (max-width: 759px) {
  html:has(body.vf-explore-mobile-open),
  body.vf-explore-mobile-open {
    width: 100%;
    height: 100%;
    overflow: hidden !important;
    overscroll-behavior: none;
  }

  /*
   * The website footer never appears while the mobile
   * Explore interface is active.
   */

  body.vf-explore-mobile-open footer,
  body.vf-explore-mobile-open .site-footer,
  body.vf-explore-mobile-open #colophon {
    display: none !important;
  }

  body.vf-explore-mobile-open .inner-page-text,
  body.vf-explore-mobile-open .entry-content {
    margin: 0 !important;
    padding: 0 !important;
  }

  /*
   * Fill the complete visible area beneath the mobile
   * website header.
   */

  .vf-explore {
    position: fixed;
    top: var(--vf-mobile-header-bottom, 65px);
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 9000;
    width: 100%;
    max-width: none;
    height: auto;
    min-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background: #eaf4fb;
  }

  .vf-explore__shell.is-mobile-layout {
    position: relative;
    inset: auto;
    display: block;
    width: 100%;
    max-width: none;
    height: 100%;
    min-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: #eaf4fb;
    box-shadow: none;
  }

  /*
   * The Leaflet map remains mounted and fills the
   * underlying mobile viewport in both view states.
   */

  .vf-explore__shell.is-mobile-layout .vf-explore__map-wrap {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: none;
    overflow: hidden;
    border-radius: 0;
  }

  .vf-explore__shell.is-mobile-layout .vf-explore__map {
    width: 100%;
    height: 100%;
    min-height: 0;
  }

  /*
   * Phones use View list / View map instead of the
   * desktop fullscreen control.
   */

  .vf-explore__shell.is-mobile-layout .vf-map-expand {
    display: none;
  }

  /* -----------------------------------------------------
     Floating mobile search card
     ----------------------------------------------------- */

  .vf-explore__shell.is-mobile-layout .vf-explore__panel {
    position: absolute;
    top: 12px;
    right: 12px;
    left: 12px;
    z-index: 700;
    display: flex;
    flex-direction: column;
    width: auto;
    height: auto;
    min-height: 0;
    max-height: calc(100% - 92px);
    padding: 12px;
    overflow: visible;
    border: 1px solid rgba(17, 19, 23, 0.07);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 12px 34px rgba(18, 25, 38, 0.18);
    backdrop-filter: blur(10px);
  }

  .vf-explore__shell.is-mobile-layout .vf-search {
    display: block;
    flex: 0 0 auto;
  }

  /*
   * Map mode shows only the search card. Results remain
   * mounted but hidden until View list is selected.
   */

  .vf-explore__shell.is-mobile-layout:not(.is-mobile-list-open)
    .vf-results-header,
  .vf-explore__shell.is-mobile-layout:not(.is-mobile-list-open)
    .vf-results-scroll {
    display: none !important;
  }

  /*
   * Preserve compact side-by-side From and To fields,
   * overriding the old stacked phone rule.
   */

  .vf-explore__shell.is-mobile-layout .vf-search__route {
    grid-template-columns:
      minmax(0, 1fr)
      minmax(0, 1fr);
  }

  /* -----------------------------------------------------
     Filters below the floating search card
     ----------------------------------------------------- */

  .vf-explore__shell.is-mobile-layout .vf-explore__map-toolbar {
    top: var(--vf-mobile-toolbar-top, 286px);
    right: 12px;
    left: 12px;
    z-index: 680;
    width: auto;
    max-width: calc(100% - 24px);
  }

  .vf-explore__shell.is-mobile-layout .vf-map-filter-control.is-expanded {
    max-width: 100%;
  }

  .vf-explore__shell.is-mobile-layout
    .vf-map-filter-control.is-expanded
    .vf-map-filter-options {
    max-width: calc(100vw - 82px);
    overflow-x: auto;
    overflow-y: visible;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }

  .vf-explore__shell.is-mobile-layout
    .vf-map-filter-control.is-expanded
    .vf-map-filter-options::-webkit-scrollbar {
    display: none;
  }

  /* -----------------------------------------------------
     Fixed mobile map/list switch
     ----------------------------------------------------- */

  .vf-explore__shell.is-mobile-layout .vf-mobile-view-toggle {
    position: absolute;
    right: 50%;
    bottom: max(14px, env(safe-area-inset-bottom));
    z-index: 900;
    min-width: 104px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 15px;
    transform: translateX(50%);
    border: 0;
    border-radius: 12px;
    background: #28313a;
    box-shadow: 0 8px 24px rgba(18, 25, 38, 0.28);
    color: #fff;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
  }

  .vf-explore__shell.is-mobile-layout
    .vf-mobile-view-toggle
    .material-symbols-outlined {
    font-size: 18px;
  }

  .vf-explore__shell.is-mobile-layout .vf-mobile-view-toggle:focus-visible {
    outline: 3px solid rgba(255, 255, 255, 0.75);
    outline-offset: 2px;
  }

  /*
   * Keep Leaflet zoom controls above the mobile switch.
   */

  .vf-explore__shell.is-mobile-layout .leaflet-top.leaflet-left {
    right: 12px !important;
    bottom: calc(72px + env(safe-area-inset-bottom)) !important;
  }

  /* -----------------------------------------------------
     Mobile destination-list sheet
     ----------------------------------------------------- */

  .vf-explore__shell.is-mobile-layout.is-mobile-list-open
    .vf-explore__panel {
    top: 12px;
    right: 12px;
    bottom: calc(72px + env(safe-area-inset-bottom));
    left: 12px;
    width: auto;
    height: auto;
    max-height: none;
    padding: 12px;
    overflow: hidden;
    border-radius: 18px;
    background: #fff;
  }

  /*
   * The Kayak-style list view replaces the floating
   * search card rather than stacking beneath it.
   */

  .vf-explore__shell.is-mobile-layout.is-mobile-list-open .vf-search {
    display: none !important;
  }

  .vf-explore__shell.is-mobile-layout.is-mobile-list-open
    .vf-results-header {
    display: flex !important;
    flex: 0 0 auto;
    align-items: center;
    margin: 0;
    padding: 4px 2px 12px;
    border-top: 0;
    border-bottom: 1px solid transparent;
  }

  .vf-explore__shell.is-mobile-layout.is-mobile-list-open
    .vf-results-header.is-results-scrolled {
    border-bottom-color: var(--vf-line);
  }

  .vf-explore__shell.is-mobile-layout.is-mobile-list-open
    .vf-results-scroll {
    flex: 1 1 auto;
    display: flex !important;
    min-height: 0;
    padding-right: 3px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .vf-explore__shell.is-mobile-layout.is-mobile-list-open
    .vf-destination-list {
    margin-top: 10px;
  }

  /*
   * Filter controls are part of map mode and should not
   * cover the results sheet.
   */

  .vf-explore__shell.is-mobile-layout.is-mobile-list-open
    .vf-explore__map-toolbar {
    display: none;
  }

  .vf-explore__shell.is-mobile-layout.is-mobile-list-open
    .leaflet-control-container {
    visibility: hidden;
  }

  /* -----------------------------------------------------
     Mobile popovers and filter panels
     ----------------------------------------------------- */

  .vf-location-popover,
  .vf-date-popover,
  .vf-travelers-popover {
    z-index: 10001 !important;
  }

  /*
   * The search card uses z-index 700.
   * Raise the toolbar while its expanded controls
   * are open so the slider panels cannot appear
   * behind the search card.
   */

  .vf-explore__shell.is-mobile-layout
    .vf-explore__map-toolbar:has(.vf-map-filter-control.is-expanded) {
    z-index: 820;
  }

  .vf-explore__shell.is-mobile-layout .vf-filter-slider-panel {
    z-index: 830 !important;
  }

  /* -----------------------------------------------------
     Remove persistent mobile tap borders
     ----------------------------------------------------- */

  .vf-explore__shell.is-mobile-layout button {
    -webkit-tap-highlight-color: transparent;
  }

  .vf-explore__shell.is-mobile-layout button:focus,
  .vf-explore__shell.is-mobile-layout button:focus-visible {
    outline: 0 !important;
  }

  /*
   * Travelers selector.
   */

  .vf-explore__shell.is-mobile-layout .vf-search__travelers:focus,
  .vf-explore__shell.is-mobile-layout .vf-search__travelers:focus-visible {
    border: 1px solid #d7dce4 !important;
    outline: 0 !important;
    box-shadow: none !important;
  }

  .vf-explore__shell.is-mobile-layout .vf-search__travelers.is-open:focus,
  .vf-explore__shell.is-mobile-layout
    .vf-search__travelers.is-open:focus-visible {
    border-color: var(--vf-blue) !important;
  }

  /*
   * Date and route buttons.
   */

  .vf-explore__shell.is-mobile-layout .vf-search__date:focus,
  .vf-explore__shell.is-mobile-layout .vf-search__date:focus-visible,
  .vf-explore__shell.is-mobile-layout .vf-search__swap:focus,
  .vf-explore__shell.is-mobile-layout .vf-search__swap:focus-visible {
    border: 1px solid #d7dce4 !important;
    outline: 0 !important;
    box-shadow: none !important;
  }

  /*
   * Trip-type buttons.
   */

  .vf-explore__shell.is-mobile-layout .vf-trip-option:focus,
  .vf-explore__shell.is-mobile-layout .vf-trip-option:focus-visible {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
  }

  .vf-explore__shell.is-mobile-layout .vf-trip-option.is-active:focus,
  .vf-explore__shell.is-mobile-layout
    .vf-trip-option.is-active:focus-visible {
    box-shadow: 0 1px 4px rgba(18, 25, 38, 0.1) !important;
  }

  /*
   * Main filter launcher.
   */

  .vf-explore__shell.is-mobile-layout
    .vf-map-filter-control:not(.is-expanded)
    .vf-map-filter-launcher:focus,
  .vf-explore__shell.is-mobile-layout
    .vf-map-filter-control:not(.is-expanded)
    .vf-map-filter-launcher:focus-visible {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
  }

  .vf-explore__shell.is-mobile-layout
    .vf-map-filter-control.is-expanded
    .vf-map-filter-launcher:focus,
  .vf-explore__shell.is-mobile-layout
    .vf-map-filter-control.is-expanded
    .vf-map-filter-launcher:focus-visible {
    border: 1px solid #d7dce4 !important;
    outline: 0 !important;
    box-shadow: none !important;
  }

  /*
   * Individual filter buttons.
   */

  .vf-explore__shell.is-mobile-layout .vf-map-filter-option:focus,
  .vf-explore__shell.is-mobile-layout .vf-map-filter-option:focus-visible {
    border: 1px solid #e1e5ea !important;
    outline: 0 !important;
    box-shadow: none !important;
  }

  .vf-explore__shell.is-mobile-layout .vf-map-filter-option.is-active:focus,
  .vf-explore__shell.is-mobile-layout
    .vf-map-filter-option.is-active:focus-visible {
    border-color: rgba(11, 141, 242, 0.38) !important;
  }

  /*
   * “Any price” and “Any duration” reset buttons.
   */

  .vf-explore__shell.is-mobile-layout .vf-filter-slider-reset:focus,
  .vf-explore__shell.is-mobile-layout .vf-filter-slider-reset:focus-visible {
    border: 1px solid #e1e5ea !important;
    outline: 0 !important;
    box-shadow: none !important;
  }

  /*
   * Map/list and Show More buttons.
   */

  .vf-explore__shell.is-mobile-layout .vf-mobile-view-toggle:focus,
  .vf-explore__shell.is-mobile-layout .vf-mobile-view-toggle:focus-visible,
  .vf-explore__shell.is-mobile-layout .vf-show-more:focus,
  .vf-explore__shell.is-mobile-layout .vf-show-more:focus-visible {
    border: 0 !important;
    outline: 0 !important;
  }

  /* -----------------------------------------------------
     Chrome/Android Leaflet tile-seam correction
     ----------------------------------------------------- */

  /*
   * Restore Leaflet’s native 256px tile dimensions.
   *
   * The previous 256.5px dimensions caused neighboring
   * tiles to overlap, producing the stationary white grid.
   * Leaflet’s plus-lighter treatment handles Chromium’s
   * fractional rendering gaps without enlarging the tiles.
   */

  .vf-explore__shell.is-mobile-layout .leaflet-container img.leaflet-tile {
    width: 256px !important;
    height: 256px !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    mix-blend-mode: plus-lighter;
  }
}

/* =========================================================
   FINAL MOBILE FILTER AND MAP-TILE CORRECTIONS
   ========================================================= */

@media (max-width: 759px) {
  .vf-explore__shell.is-mobile-layout .vf-search {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    gap: 8px;
  }

  .vf-explore__shell.is-mobile-layout .vf-mobile-view-toggle {
    right: 50%;
    width: auto;
    min-width: 112px;
    max-width: calc(100vw - 32px);
    height: 44px;
    padding: 0 16px;
    overflow: hidden;
    transform: translateX(50%);
    white-space: nowrap;
    text-transform: none !important;
    letter-spacing: 0;
  }

  .vf-explore__shell.is-mobile-layout .vf-mobile-view-toggle__icon {
    position: relative;
    width: 18px;
    height: 16px;
    display: inline-block;
    flex: 0 0 18px;
  }

  .vf-explore__shell.is-mobile-layout
    .vf-mobile-view-toggle__icon::before {
    content: "";
    position: absolute;
    top: 1px;
    left: 0;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: currentColor;
    box-shadow:
      0 6px 0 currentColor,
      0 12px 0 currentColor;
  }

  .vf-explore__shell.is-mobile-layout
    .vf-mobile-view-toggle__icon::after {
    content: "";
    position: absolute;
    top: 1.5px;
    right: 0;
    width: 11px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    box-shadow:
      0 6px 0 currentColor,
      0 12px 0 currentColor;
  }

  .vf-explore__shell.is-mobile-layout
    .vf-mobile-view-toggle__icon.is-map-icon {
    height: 15px;
    border: 2px solid currentColor;
    border-radius: 2px;
    transform: skewY(-7deg);
  }

  .vf-explore__shell.is-mobile-layout
    .vf-mobile-view-toggle__icon.is-map-icon::before {
    top: 0;
    left: 4px;
    width: 2px;
    height: 11px;
    border-radius: 0;
    background: currentColor;
    box-shadow: 6px 0 0 currentColor;
  }

  .vf-explore__shell.is-mobile-layout
    .vf-mobile-view-toggle__icon.is-map-icon::after {
    display: none;
  }

  /* -----------------------------------------------------
     Remove the map wrapper stacking barrier
     ----------------------------------------------------- */

  /*
   * The map wrapper's z-index created a separate stacking
   * context. That prevented the filter slider panels from
   * ever appearing above the search card, regardless of
   * the panels' own z-index values.
   */

  .vf-explore__shell.is-mobile-layout .vf-explore__map-wrap {
    z-index: auto !important;
  }

  /*
   * Map tiles remain below the floating search card.
   */

  .vf-explore__shell.is-mobile-layout .leaflet-map-pane {
    z-index: 200;
  }

  /*
   * The search card remains above the map.
   */

  .vf-explore__shell.is-mobile-layout .vf-explore__panel {
    z-index: 700;
  }

  /*
   * The filter toolbar and its dropdowns appear above
   * the search card whenever they overlap it.
   */

  .vf-explore__shell.is-mobile-layout .vf-explore__map-toolbar {
    z-index: 820 !important;
  }

  /* -----------------------------------------------------
     Mobile filter slider positioning
     ----------------------------------------------------- */

  /*
   * Override the older fixed/bottom positioning.
   *
   * Each slider now opens downward from its corresponding
   * Price or Trip duration button.
   */

  .vf-explore__shell.is-mobile-layout .vf-filter-slider-panel,
  .vf-explore__shell.is-mobile-layout
    .vf-filter-slider-menu:last-child
    .vf-filter-slider-panel {
    position: absolute !important;
    top: calc(100% + 10px) !important;
    bottom: auto !important;
    z-index: 950 !important;
    width: min(280px, calc(100vw - 24px)) !important;
    max-height: calc(100dvh - var(--vf-mobile-toolbar-top, 286px) - 90px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  /*
   * Price panel aligns from the left edge of its button.
   */

  .vf-explore__shell.is-mobile-layout
    .vf-filter-slider-menu--price
    .vf-filter-slider-panel {
    right: auto !important;
    left: 0 !important;
  }

  /*
   * Duration panel aligns from the right edge so it
   * cannot extend beyond the mobile viewport.
   */

  .vf-explore__shell.is-mobile-layout
    .vf-filter-slider-menu--duration
    .vf-filter-slider-panel {
    right: 0 !important;
    left: auto !important;
  }

  /*
   * Vertical slider panels must not be clipped by the
   * horizontally expanding filter-options container.
   */

  .vf-explore__shell.is-mobile-layout
    .vf-map-filter-control.is-expanded
    .vf-map-filter-options {
    overflow: visible !important;
  }

  /* -----------------------------------------------------
     Remove persistent black button borders
     ----------------------------------------------------- */

  .vf-explore__shell.is-mobile-layout button {
    -webkit-tap-highlight-color: transparent;
  }

  .vf-explore__shell.is-mobile-layout button:focus,
  .vf-explore__shell.is-mobile-layout button:focus-visible {
    outline: 0 !important;
  }

  .vf-explore__shell.is-mobile-layout .vf-search__travelers:focus,
  .vf-explore__shell.is-mobile-layout .vf-search__travelers:focus-visible {
    border: 1px solid #d7dce4 !important;
    outline: 0 !important;
    box-shadow: none !important;
  }

  .vf-explore__shell.is-mobile-layout .vf-search__travelers.is-open:focus,
  .vf-explore__shell.is-mobile-layout
    .vf-search__travelers.is-open:focus-visible {
    border-color: var(--vf-blue) !important;
  }

  .vf-explore__shell.is-mobile-layout .vf-filter-slider-reset:focus,
  .vf-explore__shell.is-mobile-layout .vf-filter-slider-reset:focus-visible {
    border: 1px solid #e1e5ea !important;
    outline: 0 !important;
    box-shadow: none !important;
  }

  .vf-explore__shell.is-mobile-layout .vf-map-filter-option:focus,
  .vf-explore__shell.is-mobile-layout .vf-map-filter-option:focus-visible {
    border: 1px solid #e1e5ea !important;
    outline: 0 !important;
    box-shadow: none !important;
  }

  .vf-explore__shell.is-mobile-layout .vf-map-filter-option.is-active:focus,
  .vf-explore__shell.is-mobile-layout
    .vf-map-filter-option.is-active:focus-visible {
    border-color: rgba(11, 141, 242, 0.38) !important;
  }

  .vf-explore__shell.is-mobile-layout .vf-mobile-view-toggle:focus,
  .vf-explore__shell.is-mobile-layout .vf-mobile-view-toggle:focus-visible,
  .vf-explore__shell.is-mobile-layout .vf-show-more:focus,
  .vf-explore__shell.is-mobile-layout .vf-show-more:focus-visible {
    border: 0 !important;
    outline: 0 !important;
  }

  /* -----------------------------------------------------
     Chrome/Android moving tile-seam correction
     ----------------------------------------------------- */

  /*
   * Chromium can expose sub-pixel gaps between tiles while
   * Leaflet translates the map during movement.
   *
   * The tiles overlap by one pixel to cover those temporary
   * gaps. Normal blend mode prevents the overlap from
   * becoming a permanent bright or yellow grid.
   */

  .vf-explore__shell.is-mobile-layout .leaflet-container img.leaflet-tile {
    width: 257px !important;
    height: 257px !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    mix-blend-mode: normal !important;
  }
}

/* =========================================================
   FINAL FILTER FOCUS STATES
   ========================================================= */

/*
 * The WordPress theme applies its own black focus border to
 * buttons. Keep keyboard focus available through the control's
 * existing visual state without allowing that theme border to
 * remain after Filter or Direct is clicked.
 */

.vf-map-filter-control:not(.is-expanded) .vf-map-filter-launcher:focus,
.vf-map-filter-control:not(.is-expanded)
  .vf-map-filter-launcher:focus-visible {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

.vf-map-filter-control.is-expanded .vf-map-filter-launcher:focus,
.vf-map-filter-control.is-expanded .vf-map-filter-launcher:focus-visible {
  border: 1px solid #d7dce4 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

.vf-map-filter-option:focus,
.vf-map-filter-option:focus-visible {
  border: 1px solid #e1e5ea !important;
  outline: 0 !important;
  box-shadow: none !important;
}

.vf-map-filter-option.is-active:focus,
.vf-map-filter-option.is-active:focus-visible,
#vf-filter-direct.is-active:focus,
#vf-filter-direct.is-active:focus-visible {
  border: 1px solid rgba(11, 141, 242, 0.38) !important;
  outline: 0 !important;
  box-shadow: none !important;
}

/* =========================================================
   FINAL TABLET DEFAULT-VIEW LAYOUT
   ========================================================= */

/*
 * The 760–1199px range opens in automatic fullscreen. When
 * fullscreen is manually closed, keep the same functional
 * panel/map relationship beneath the website header. Earlier
 * max-width: 900px rules stacked the full result list above
 * the map, which made the map appear to disappear on tablets.
 */

@media (min-width: 760px) and (max-width: 1199px) {
  body.vf-explore-tablet-default-open:has(.vf-explore) .inner-page-text {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  body.vf-explore-tablet-default-open:has(.vf-explore) .entry-content {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  body.vf-explore-tablet-default-open .vf-explore {
    width: calc(100% - 20px);
    max-width: 1170px;
    height: var(--vf-explore-height, calc(100dvh - 93px));
    min-height: 520px;
    margin: var(--vf-explore-top-offset, 10px) auto 10px;
    padding: 0;
  }

  .vf-explore__shell.is-tablet-default:not(.is-fullscreen) {
    display: grid;
    grid-template-columns:
      clamp(290px, 40vw, 390px)
      minmax(0, 1fr);
    align-items: stretch;
    gap: 10px;
    width: 100%;
    max-width: 1170px;
    height: 100%;
    min-height: 0;
    margin: 0 auto;
    padding: 0;
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .vf-explore__shell.is-tablet-default:not(.is-fullscreen)
    .vf-explore__panel,
  .vf-explore__shell.is-tablet-default:not(.is-fullscreen)
    .vf-explore__map-wrap {
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: 100%;
  }

  .vf-explore__shell.is-tablet-default:not(.is-fullscreen)
    .vf-explore__panel {
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: visible;
  }

  .vf-explore__shell.is-tablet-default:not(.is-fullscreen)
    .vf-results-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
  }

  .vf-explore__shell.is-tablet-default:not(.is-fullscreen)
    .vf-explore__map-wrap {
    position: relative;
    inset: auto;
    top: auto;
    overflow: hidden;
    border-radius: 18px;
  }

  .vf-explore__shell.is-tablet-default:not(.is-fullscreen)
    .vf-explore__map {
    width: 100%;
    height: 100%;
    min-height: 0;
  }
}

/* =========================================================
   TABLET DEFAULT-VIEW RECOVERY
   ========================================================= */

/*
 * JavaScript adds is-tablet-default only after automatic
 * fullscreen has been closed. Ordinary desktop layouts
 * therefore remain unaffected.
 */

@media (min-width: 760px) {
  body.vf-explore-tablet-default-open {
    overflow: hidden !important;
  }

  body.vf-explore-tablet-default-open:has(.vf-explore)
    .inner-page-text,
  body.vf-explore-tablet-default-open:has(.vf-explore)
    .entry-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.vf-explore-tablet-default-open .vf-explore {
    width: calc(100vw - 20px) !important;
    max-width: none !important;
    height: var(
      --vf-explore-height,
      calc(100dvh - 93px)
    ) !important;
    min-height: 0 !important;
    margin:
      var(--vf-explore-top-offset, 10px)
      10px
      10px !important;
    padding: 0 !important;
  }

  .vf-explore__shell.is-tablet-default:not(.is-fullscreen) {
    grid-template-columns:
      clamp(300px, 36vw, 390px)
      minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
  }

  .vf-explore__shell.is-tablet-default:not(.is-fullscreen)
    .vf-explore__panel,
  .vf-explore__shell.is-tablet-default:not(.is-fullscreen)
    .vf-explore__map-wrap {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
  }

  .vf-explore__shell.is-tablet-default:not(.is-fullscreen)
    .vf-explore__panel {
    display: flex !important;
    flex-direction: column !important;
  }

  .vf-explore__shell.is-tablet-default:not(.is-fullscreen)
    .vf-results-scroll {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .vf-explore__shell.is-tablet-default:not(.is-fullscreen)
    .vf-explore__map-wrap {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    overflow: hidden !important;
  }

  .vf-explore__shell.is-tablet-default:not(.is-fullscreen)
    .vf-explore__map {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
  }
}

/* =========================================================
   FARE DISCLAIMER TYPOGRAPHY RECOVERY
   ========================================================= */

.vf-explore .vf-fare-disclaimer,
.vf-explore .vf-fare-disclaimer p,
.vf-explore .vf-fare-disclaimer span {
  color: #6f7782 !important;
  font-family: inherit !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

.vf-explore .vf-fare-disclaimer p {
  margin: 0 !important;
  padding: 0 !important;
}

.vf-explore
  .vf-fare-disclaimer
  .vf-fare-disclaimer__updated,
.vf-explore
  .vf-fare-disclaimer
  .vf-fare-disclaimer__updated
  span {
  margin-top: 7px !important;
  color: #8b94a0 !important;
  font-size: 9px !important;
  line-height: 1.35 !important;
}

/* =========================================================
   LOCKED TABLET EXPLORE WORKSPACE
   ========================================================= */

html:has(body.vf-explore-tablet-open),
body.vf-explore-tablet-open {
  width: 100%;
  height: 100%;
  overflow: hidden !important;
  overscroll-behavior: none;
}

body.vf-explore-tablet-open footer,
body.vf-explore-tablet-open .site-footer,
body.vf-explore-tablet-open #colophon {
  display: none !important;
}

body.vf-explore-tablet-open .inner-page-text,
body.vf-explore-tablet-open .entry-content {
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.vf-explore-tablet-open .vf-explore {
  position: fixed !important;
  top: var(--vf-tablet-header-bottom, 65px) !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  z-index: 9000;
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 10px !important;
  overflow: hidden !important;
  background: #eaf4fb;
}

.vf-explore__shell.is-tablet-layout {
  display: grid !important;
  grid-template-columns:
    clamp(300px, 38vw, 390px)
    minmax(0, 1fr) !important;
  align-items: stretch !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.vf-explore__shell.is-tablet-layout .vf-explore__panel,
.vf-explore__shell.is-tablet-layout .vf-explore__map-wrap {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
}

.vf-explore__shell.is-tablet-layout .vf-explore__panel {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: visible !important;
}

.vf-explore__shell.is-tablet-layout .vf-search,
.vf-explore__shell.is-tablet-layout .vf-results-header {
  flex: 0 0 auto;
}

.vf-explore__shell.is-tablet-layout .vf-results-scroll {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
}

.vf-explore__shell.is-tablet-layout .vf-explore__map-wrap {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  overflow: hidden !important;
  border-radius: 18px !important;
}

.vf-explore__shell.is-tablet-layout .vf-explore__map {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
}

.vf-explore__shell.is-tablet-layout .vf-map-expand {
  display: none !important;
}

/* =========================================================
   GALAXY TAB TABLET VIEWPORT CONTAINMENT
   ========================================================= */

/*
 * Include the workspace padding, panel padding, and borders
 * inside the dimensions assigned to the tablet layout.
 */

body.vf-explore-tablet-open .vf-explore,
.vf-explore__shell.is-tablet-layout,
.vf-explore__shell.is-tablet-layout .vf-explore__panel,
.vf-explore__shell.is-tablet-layout .vf-explore__map-wrap,
.vf-explore__shell.is-tablet-layout .vf-explore__map {
  box-sizing: border-box !important;
}

body.vf-explore-tablet-open .vf-explore {
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  max-height: none !important;
}

.vf-explore__shell.is-tablet-layout {
  grid-template-columns:
    minmax(300px, clamp(300px, 38vw, 390px))
    minmax(0, 1fr) !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  max-height: 100% !important;
  overflow: hidden !important;
}

.vf-explore__shell.is-tablet-layout .vf-explore__panel,
.vf-explore__shell.is-tablet-layout .vf-explore__map-wrap {
  min-width: 0 !important;
  max-width: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
}

.vf-explore__shell.is-tablet-layout .vf-explore__panel {
  overflow: visible !important;
}

.vf-explore__shell.is-tablet-layout .vf-results-scroll {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

.vf-explore__shell.is-tablet-layout .vf-explore__map-wrap,
.vf-explore__shell.is-tablet-layout .vf-explore__map {
  overflow: hidden !important;
}

/* =========================================================
   TABLET MAP-FIRST FLOATING PANEL
   ========================================================= */

/*
 * Tablets use a layered layout: the map fills the Explore
 * workspace and the complete search/results panel floats
 * over its left side.
 */

body.vf-explore-tablet-open .vf-explore {
  padding: 10px !important;
}

.vf-explore__shell.is-tablet-layout {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
  overflow: hidden !important;
  background: #eaf4fb !important;
}

.vf-explore__shell.is-tablet-layout .vf-explore__map-wrap {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  max-height: none !important;
  overflow: hidden !important;
  border-radius: 18px !important;
}

.vf-explore__shell.is-tablet-layout .vf-explore__map {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
}

.vf-explore__shell.is-tablet-layout .vf-explore__panel {
  position: absolute !important;
  top: 12px !important;
  bottom: 12px !important;
  left: 12px !important;
  z-index: 700 !important;
  width: clamp(340px, 42vw, 410px) !important;
  min-width: 0 !important;
  max-width: calc(100% - 24px) !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 16px !important;
  overflow: visible !important;
  border: 1px solid rgba(17, 19, 23, 0.08) !important;
  border-radius: 18px !important;
  background: rgba(255, 255, 255, 0.98) !important;
  box-shadow: 0 14px 38px rgba(18, 25, 38, 0.2) !important;
  backdrop-filter: blur(10px);
}

.vf-explore__shell.is-tablet-layout .vf-search,
.vf-explore__shell.is-tablet-layout .vf-results-header {
  flex: 0 0 auto !important;
}

.vf-explore__shell.is-tablet-layout .vf-results-scroll {
  flex: 1 1 auto !important;
  width: 100% !important;
  min-height: 0 !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
}

/*
 * Position the filters beside the floating panel so they
 * do not cover the route and date fields.
 */

.vf-explore__shell.is-tablet-layout .vf-explore__map-toolbar {
  top: 16px !important;
  right: 16px !important;
  left: calc(clamp(340px, 42vw, 410px) + 40px) !important;
  z-index: 680 !important;
  width: auto !important;
  max-width: none !important;
}

.vf-explore__shell.is-tablet-layout .vf-map-expand,
.vf-explore__shell.is-tablet-layout .vf-mobile-view-toggle {
  display: none !important;
}


/* =========================================================
   TRAVELER CABIN SECTION FLOW FIX
   ========================================================= */

/*
 * This class is the cabin section wrapper. An older rule
 * assigned it a fixed 42px height, causing the Economy and
 * Business buttons to overlap the explanatory text.
 */

.vf-travelers-picker__cabin {
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  display: block !important;
  margin: 0 !important;
  padding: 16px 0 0 !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: inherit !important;
  cursor: default !important;
}

.vf-travelers-picker__cabin > strong {
  display: block !important;
  margin: 0 0 10px !important;
}

.vf-cabin-options {
  position: relative;
  width: 100%;
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    minmax(0, 1fr);
  gap: 8px;
}

.vf-travelers-picker__note {
  position: relative;
  display: block;
  clear: both;
  margin: 12px 0 0 !important;
}


/* =========================================================
   TABLET COLLAPSED SEARCH / EXPANDED LIST STATES
   ========================================================= */

.vf-explore__shell.is-tablet-layout:not(.is-mobile-list-open)
  .vf-explore__panel {
  top: 12px !important;
  bottom: auto !important;
  left: 12px !important;
  width: clamp(340px, 42vw, 410px) !important;
  height: auto !important;
  max-height: calc(100% - 24px) !important;
  padding: 16px !important;
  overflow: visible !important;
}

.vf-explore__shell.is-tablet-layout:not(.is-mobile-list-open)
  .vf-results-header,
.vf-explore__shell.is-tablet-layout:not(.is-mobile-list-open)
  .vf-results-scroll {
  display: none !important;
}

/* Filters sit below the panel and follow its left edge. */

.vf-explore__shell.is-tablet-layout:not(.is-mobile-list-open)
  .vf-explore__map-toolbar {
  top: var(--vf-tablet-toolbar-top, 310px) !important;
  right: auto !important;
  left: 12px !important;
  z-index: 720 !important;
  width: auto !important;
  max-width: calc(100% - 24px) !important;
}

/* View list is centered beneath the floating panel. */

.vf-explore__shell.is-tablet-layout .vf-mobile-view-toggle {
  position: absolute !important;
  right: auto !important;
  bottom: auto !important;
  left: calc(12px + clamp(340px, 42vw, 410px) / 2) !important;
  top: var(--vf-tablet-panel-bottom, 310px) !important;
  z-index: 730 !important;
  width: auto !important;
  min-width: 112px !important;
  max-width: calc(clamp(340px, 42vw, 410px) - 24px) !important;
  height: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  padding: 0 16px !important;
  transform: translateX(-50%) !important;
  border: 0 !important;
  border-radius: 12px !important;
  outline: 0 !important;
  background: #28313a !important;
  box-shadow: 0 8px 24px rgba(18, 25, 38, 0.28) !important;
  color: #fff !important;
  font: inherit;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  white-space: nowrap;
  -webkit-tap-highlight-color: transparent;
}

/* Expanded results panel while the map remains behind it. */

.vf-explore__shell.is-tablet-layout.is-mobile-list-open
  .vf-explore__panel {
  top: 12px !important;
  bottom: 72px !important;
  left: 12px !important;
  width: clamp(340px, 42vw, 410px) !important;
  height: auto !important;
  max-height: none !important;
  padding: 16px !important;
  overflow: hidden !important;
}

.vf-explore__shell.is-tablet-layout.is-mobile-list-open
  .vf-search {
  display: none !important;
}

.vf-explore__shell.is-tablet-layout.is-mobile-list-open
  .vf-results-header {
  display: flex !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 4px 2px 12px !important;
  border-top: 0 !important;
}

.vf-explore__shell.is-tablet-layout.is-mobile-list-open
  .vf-results-scroll {
  flex: 1 1 auto !important;
  display: flex !important;
  min-height: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

.vf-explore__shell.is-tablet-layout.is-mobile-list-open
  .vf-explore__map-toolbar {
  display: none !important;
}

.vf-explore__shell.is-tablet-layout.is-mobile-list-open
  .vf-mobile-view-toggle {
  top: auto !important;
  bottom: 14px !important;
  transform: translateX(-50%) !important;
}


/* =========================================================
   TABLET VIEW ICONS
   ========================================================= */

.vf-explore__shell.is-tablet-layout .vf-mobile-view-toggle__icon {
  position: relative;
  width: 18px;
  height: 16px;
  display: inline-block;
  flex: 0 0 18px;
}

.vf-explore__shell.is-tablet-layout
  .vf-mobile-view-toggle__icon::before {
  content: "";
  position: absolute;
  top: 1px;
  left: 0;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: currentColor;
  box-shadow:
    0 6px 0 currentColor,
    0 12px 0 currentColor;
}

.vf-explore__shell.is-tablet-layout
  .vf-mobile-view-toggle__icon::after {
  content: "";
  position: absolute;
  top: 1.5px;
  right: 0;
  width: 11px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  box-shadow:
    0 6px 0 currentColor,
    0 12px 0 currentColor;
}

.vf-explore__shell.is-tablet-layout
  .vf-mobile-view-toggle__icon.is-map-icon {
  height: 15px;
  border: 2px solid currentColor;
  border-radius: 2px;
  transform: skewY(-7deg);
}

.vf-explore__shell.is-tablet-layout
  .vf-mobile-view-toggle__icon.is-map-icon::before {
  top: 0;
  left: 4px;
  width: 2px;
  height: 11px;
  border-radius: 0;
  background: currentColor;
  box-shadow: 6px 0 0 currentColor;
}

.vf-explore__shell.is-tablet-layout
  .vf-mobile-view-toggle__icon.is-map-icon::after {
  display: none;
}


/* =========================================================
   TAP-FOCUS AND BLACK-BORDER PROTECTION
   ========================================================= */

.vf-explore__shell.is-tablet-layout button,
.vf-explore__shell.is-tablet-layout a {
  -webkit-tap-highlight-color: transparent;
}

.vf-explore__shell.is-tablet-layout button:focus,
.vf-explore__shell.is-tablet-layout button:focus-visible,
.vf-explore__shell.is-tablet-layout a:focus,
.vf-explore__shell.is-tablet-layout a:focus-visible {
  outline: 0 !important;
}

.vf-explore__shell.is-tablet-layout .vf-mobile-view-toggle:focus,
.vf-explore__shell.is-tablet-layout .vf-mobile-view-toggle:focus-visible {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: 0 8px 24px rgba(18, 25, 38, 0.28) !important;
}

.vf-explore__shell.is-tablet-layout .vf-map-filter-launcher:focus,
.vf-explore__shell.is-tablet-layout
  .vf-map-filter-launcher:focus-visible {
  outline: 0 !important;
  box-shadow: none !important;
}

.vf-explore__shell.is-tablet-layout
  .vf-map-filter-control:not(.is-expanded)
  .vf-map-filter-launcher:focus,
.vf-explore__shell.is-tablet-layout
  .vf-map-filter-control:not(.is-expanded)
  .vf-map-filter-launcher:focus-visible {
  border: 0 !important;
}

/*
 * The traveler dialog is mounted under body rather than
 * inside the Explore shell, so this protection is global.
 */

.vf-traveler-counter button,
.vf-traveler-counter button:focus,
.vf-traveler-counter button:focus-visible,
.vf-traveler-counter button:active {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  border: 1px solid #cfd6df !important;
  outline: 0 !important;
  box-shadow: none !important;
  line-height: 1 !important;
  -webkit-tap-highlight-color: transparent;
}

.vf-traveler-counter button:disabled,
.vf-traveler-counter button:disabled:focus,
.vf-traveler-counter button:disabled:active {
  border-color: #e2e6ec !important;
  outline: 0 !important;
  box-shadow: none !important;
}


/* =========================================================
   TABLET LEAFLET ZOOM ALIGNMENT
   ========================================================= */

.vf-explore__shell.is-tablet-layout .leaflet-control-zoom {
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 12px !important;
  outline: 0 !important;
  box-shadow: 0 6px 20px rgba(18, 25, 38, 0.16) !important;
}

.vf-explore__shell.is-tablet-layout .leaflet-control-zoom-in,
.vf-explore__shell.is-tablet-layout .leaflet-control-zoom-out,
.vf-explore__shell.is-tablet-layout .leaflet-control-zoom-in:hover,
.vf-explore__shell.is-tablet-layout .leaflet-control-zoom-out:hover,
.vf-explore__shell.is-tablet-layout .leaflet-control-zoom-in:focus,
.vf-explore__shell.is-tablet-layout .leaflet-control-zoom-out:focus,
.vf-explore__shell.is-tablet-layout .leaflet-control-zoom-in:focus-visible,
.vf-explore__shell.is-tablet-layout .leaflet-control-zoom-out:focus-visible {
  box-sizing: border-box !important;
  width: 42px !important;
  height: 42px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 0 2px !important;
  border: 0 !important;
  outline: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
  color: #111317 !important;
  font-family: Arial, sans-serif !important;
  font-size: 25px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-align: center !important;
  text-decoration: none !important;
}

.vf-explore__shell.is-tablet-layout .leaflet-control-zoom-in {
  border-bottom: 1px solid #e4e8ef !important;
  border-radius: 0 !important;
}

.vf-explore__shell.is-tablet-layout .leaflet-control-zoom-out {
  border-radius: 0 !important;
}

/* =========================================================
   FINAL TABLET MAP-FIRST CONTROL PLACEMENT
   ========================================================= */

/*
 * Hide the uninitialized desktop arrangement on touch-first
 * tablets. The header remains visible while JavaScript applies
 * the tablet state, preventing the broken-layout flash.
 */

body.vf-explore-tablet-open .vf-explore {
  top: var(--vf-tablet-header-bottom, 65px) !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

.vf-explore__shell.is-tablet-layout,
.vf-explore__shell.is-tablet-layout .vf-explore__map-wrap,
.vf-explore__shell.is-tablet-layout .vf-explore__map {
  border: 0 !important;
  border-radius: 0 !important;
  background-clip: border-box !important;
}

.vf-explore__shell.is-tablet-layout .vf-explore__map-wrap {
  inset: 0 !important;
}

/*
 * View list / View map stays centered on the floating panel
 * horizontally and anchored to the bottom of the screen.
 */

.vf-explore__shell.is-tablet-layout .vf-mobile-view-toggle,
.vf-explore__shell.is-tablet-layout.is-mobile-list-open
  .vf-mobile-view-toggle {
  top: auto !important;
  right: auto !important;
  bottom: 14px !important;
  left: calc(
    12px +
    var(--vf-tablet-panel-width, clamp(340px, 42vw, 410px)) / 2
  ) !important;
  z-index: 990 !important;
  transform: translateX(-50%) !important;
}

/*
 * Leave a dedicated lower control lane so an expanded results
 * panel can never cover the View map button.
 */

.vf-explore__shell.is-tablet-layout.is-mobile-list-open
  .vf-explore__panel {
  bottom: 72px !important;
}

/*
 * Filters occupy the opposite lower corner. Row-reverse keeps
 * the launcher at the right edge while the options expand left.
 */

.vf-explore__shell.is-tablet-layout .vf-explore__map-toolbar,
.vf-explore__shell.is-tablet-layout:not(.is-mobile-list-open)
  .vf-explore__map-toolbar {
  position: absolute !important;
  top: auto !important;
  right: 14px !important;
  bottom: 14px !important;
  left: auto !important;
  z-index: 980 !important;
  width: auto !important;
  max-width: calc(100% - 28px) !important;
  align-items: flex-end !important;
  justify-content: flex-end !important;
}

.vf-explore__shell.is-tablet-layout.is-mobile-list-open
  .vf-explore__map-toolbar {
  display: flex !important;
}

.vf-explore__shell.is-tablet-layout .vf-map-filter-control {
  flex-direction: row-reverse !important;
  overflow: visible !important;
}

.vf-explore__shell.is-tablet-layout
  .vf-map-filter-control.is-expanded {
  width: max-content !important;
  max-width: calc(100vw - 28px) !important;
}

.vf-explore__shell.is-tablet-layout
  .vf-map-filter-control.is-expanded
  .vf-map-filter-options {
  width: max-content !important;
  max-width: calc(100vw - 82px) !important;
  padding: 0 6px 0 0 !important;
  overflow: visible !important;
}

/*
 * Never expose the Material Symbols ligature text while its
 * webfont is loading. This CSS-drawn filter glyph is immediate.
 */

.vf-explore__shell.is-tablet-layout
  .vf-map-filter-launcher
  .material-symbols-outlined {
  position: relative;
  width: 22px;
  height: 18px;
  display: block;
  overflow: hidden;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
}

.vf-explore__shell.is-tablet-layout
  .vf-map-filter-launcher
  .material-symbols-outlined::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(#111317, #111317) 2px 2px / 18px 2px no-repeat,
    linear-gradient(#111317, #111317) 5px 8px / 12px 2px no-repeat,
    linear-gradient(#111317, #111317) 8px 14px / 6px 2px no-repeat;
  border-radius: 2px;
}

.vf-explore__shell.is-tablet-layout
  .vf-map-filter-launcher__label {
  display: none !important;
}

.vf-explore__shell.is-tablet-layout
  .vf-map-filter-control.is-expanded
  .vf-map-filter-launcher {
  flex-basis: 40px !important;
  width: 40px !important;
  min-width: 40px !important;
}

/*
 * Price and duration panels open upward and outside the filter
 * bar instead of being laid out inside it.
 */

.vf-explore__shell.is-tablet-layout .vf-filter-slider-menu {
  position: relative !important;
  overflow: visible !important;
}

.vf-explore__shell.is-tablet-layout .vf-filter-slider-panel,
.vf-explore__shell.is-tablet-layout
  .vf-filter-slider-menu:last-child
  .vf-filter-slider-panel {
  position: absolute !important;
  top: auto !important;
  right: 0 !important;
  bottom: calc(100% + 10px) !important;
  left: auto !important;
  z-index: 1200 !important;
  width: 280px !important;
  max-height: min(360px, calc(100dvh - 100px));
  overflow-y: auto !important;
}

.vf-explore__shell.is-tablet-layout .vf-map-filter-options,
.vf-explore__shell.is-tablet-layout .vf-map-filter-control,
.vf-explore__shell.is-tablet-layout .vf-explore__map-toolbar {
  overflow: visible !important;
}

/*
 * Cover Chromium/Leaflet sub-pixel seams without blending tile
 * colors. The one-pixel overlap remains invisible after panning.
 */

.vf-explore__shell.is-tablet-layout
  .leaflet-container
  img.leaflet-tile {
  width: 258px !important;
  height: 258px !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  mix-blend-mode: normal !important;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* =========================================================
   TABLET FIRST-PAINT AND CONTROL VISIBILITY CORRECTION
   ========================================================= */

/*
 * Apply the map-first tablet geometry during the first CSS
 * paint. JavaScript subsequently adds is-tablet-layout, but
 * the visitor never sees the desktop grid or a blank Explore
 * workspace while that initialization is taking place.
 */

@media (min-width: 760px) and (hover: none) and (pointer: coarse) {
  :root {
    --vf-tablet-edge-gap: 16px;
    --vf-tablet-initial-header-height: 65px;
  }

  html,
  body {
    width: 100%;
    height: 100%;
    overflow: hidden !important;
    overscroll-behavior: none;
  }

  /*
   * The theme may translate its sticky header out of view
   * during refresh. Keep it mounted above the Explore layer.
   */

  body header.site-header,
  body .site-header,
  body #masthead {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    left: 0 !important;
    z-index: 10050 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    translate: none !important;
  }

  body footer,
  body .site-footer,
  body #colophon {
    display: none !important;
  }

  body .inner-page-text,
  body .entry-content {
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .vf-explore,
  body.vf-explore-tablet-open .vf-explore {
    position: fixed !important;
    top: var(
      --vf-tablet-header-bottom,
      var(--vf-tablet-initial-header-height)
    ) !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    z-index: 9000 !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #eaf4fb !important;
    visibility: visible !important;
  }

  .vf-explore__shell,
  .vf-explore__shell.is-tablet-layout {
    --vf-tablet-panel-width: clamp(340px, 42vw, 410px);
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #eaf4fb !important;
    box-shadow: none !important;
  }

  .vf-explore__shell .vf-explore__map-wrap,
  .vf-explore__shell.is-tablet-layout .vf-explore__map-wrap {
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
  }

  .vf-explore__shell .vf-explore__map,
  .vf-explore__shell.is-tablet-layout .vf-explore__map {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
  }

  /*
   * The same edge-gap variable controls the top and left
   * offsets, eliminating the uneven panel spacing.
   */

  .vf-explore__shell .vf-explore__panel,
  .vf-explore__shell.is-tablet-layout .vf-explore__panel,
  .vf-explore__shell.is-tablet-layout:not(.is-mobile-list-open)
    .vf-explore__panel {
    position: absolute !important;
    top: var(--vf-tablet-edge-gap) !important;
    right: auto !important;
    bottom: auto !important;
    left: var(--vf-tablet-edge-gap) !important;
    z-index: 700 !important;
    box-sizing: border-box !important;
    width: var(--vf-tablet-panel-width) !important;
    min-width: 0 !important;
    max-width: calc(100% - 32px) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100% - 32px) !important;
    display: flex !important;
    flex-direction: column !important;
    margin: 0 !important;
    padding: 16px !important;
    overflow: visible !important;
    border: 1px solid rgba(17, 19, 23, 0.08) !important;
    border-radius: 18px !important;
    background: rgba(255, 255, 255, 0.98) !important;
    box-shadow: 0 14px 38px rgba(18, 25, 38, 0.2) !important;
  }

  .vf-explore__shell:not(.is-mobile-list-open) .vf-results-header,
  .vf-explore__shell:not(.is-mobile-list-open) .vf-results-scroll {
    display: none !important;
  }

  .vf-explore__shell.is-mobile-list-open .vf-explore__panel,
  .vf-explore__shell.is-tablet-layout.is-mobile-list-open
    .vf-explore__panel {
    top: var(--vf-tablet-edge-gap) !important;
    right: auto !important;
    bottom: 74px !important;
    left: var(--vf-tablet-edge-gap) !important;
    width: var(--vf-tablet-panel-width) !important;
    height: auto !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  /*
   * Override the older tablet declarations that permanently
   * hid both controls with display:none!important.
   */

  .vf-explore__shell .vf-mobile-view-toggle,
  .vf-explore__shell.is-tablet-layout .vf-mobile-view-toggle,
  .vf-explore__shell.is-tablet-layout.is-mobile-list-open
    .vf-mobile-view-toggle {
    position: absolute !important;
    top: auto !important;
    right: auto !important;
    bottom: var(--vf-tablet-edge-gap) !important;
    left: calc(
      var(--vf-tablet-edge-gap) +
      (var(--vf-tablet-panel-width) / 2)
    ) !important;
    z-index: 990 !important;
    width: auto !important;
    min-width: 112px !important;
    max-width: calc(var(--vf-tablet-panel-width) - 24px) !important;
    height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    padding: 0 16px !important;
    transform: translateX(-50%) !important;
    border: 0 !important;
    border-radius: 12px !important;
    outline: 0 !important;
    background: #28313a !important;
    box-shadow: 0 8px 24px rgba(18, 25, 38, 0.28) !important;
    color: #fff !important;
  }

  .vf-explore__shell .vf-explore__map-toolbar,
  .vf-explore__shell.is-tablet-layout .vf-explore__map-toolbar,
  .vf-explore__shell.is-tablet-layout:not(.is-mobile-list-open)
    .vf-explore__map-toolbar,
  .vf-explore__shell.is-tablet-layout.is-mobile-list-open
    .vf-explore__map-toolbar {
    position: absolute !important;
    top: auto !important;
    right: var(--vf-tablet-edge-gap) !important;
    bottom: var(--vf-tablet-edge-gap) !important;
    left: auto !important;
    z-index: 980 !important;
    width: auto !important;
    max-width: calc(100% - 32px) !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    overflow: visible !important;
    pointer-events: none !important;
  }

  .vf-explore__shell .vf-explore__map-toolbar > *,
  .vf-explore__shell.is-tablet-layout
    .vf-explore__map-toolbar > * {
    pointer-events: auto !important;
  }

  /* Draw the filter glyph during first paint as well. */

  .vf-explore__shell
    .vf-map-filter-launcher
    .material-symbols-outlined {
    position: relative !important;
    width: 22px !important;
    height: 18px !important;
    display: block !important;
    overflow: hidden !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
  }

  .vf-explore__shell
    .vf-map-filter-launcher
    .material-symbols-outlined::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background:
      linear-gradient(#111317, #111317) 2px 2px / 18px 2px no-repeat,
      linear-gradient(#111317, #111317) 5px 8px / 12px 2px no-repeat,
      linear-gradient(#111317, #111317) 8px 14px / 6px 2px no-repeat !important;
    border-radius: 2px !important;
  }

  .vf-explore__shell .vf-map-expand,
  .vf-explore__shell.is-tablet-layout .vf-map-expand {
    display: none !important;
  }
}

/* =========================================================
   TABLET BOOT / RUNTIME STABILITY LAYER
   ========================================================= */

/*
 * boot.js places vf-explore-tablet-boot on <html> from the
 * document head. These rules therefore apply before the
 * footer application bundle runs, eliminating the refresh
 * flash and keeping Chrome's visual viewport from panning a
 * wider document sideways.
 */

html.vf-explore-tablet-boot,
html.vf-explore-tablet-boot body {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  overflow: hidden !important;
  overflow-x: clip !important;
  overscroll-behavior: none !important;
}

html.vf-explore-tablet-boot body header.site-header,
html.vf-explore-tablet-boot body .site-header,
html.vf-explore-tablet-boot body #masthead {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  left: 0 !important;
  z-index: 10050 !important;
  width: 100% !important;
  max-width: 100% !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  translate: none !important;
}

html.vf-explore-tablet-boot body footer,
html.vf-explore-tablet-boot body .site-footer,
html.vf-explore-tablet-boot body #colophon {
  display: none !important;
}

html.vf-explore-tablet-boot body .inner-page-text,
html.vf-explore-tablet-boot body .entry-content {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

html.vf-explore-tablet-boot .vf-explore {
  position: fixed !important;
  top: var(--vf-tablet-header-bottom, 65px) !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  z-index: 9000 !important;
  box-sizing: border-box !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #eaf4fb !important;
  visibility: visible !important;
}

html.vf-explore-tablet-boot .vf-explore__shell {
  --vf-tablet-edge-gap: 16px;
  --vf-tablet-panel-width: min(410px, calc(100% - 32px));
  position: relative !important;
  inset: auto !important;
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #eaf4fb !important;
  box-shadow: none !important;
  contain: layout paint size;
}

html.vf-explore-tablet-boot .vf-explore__map-wrap,
html.vf-explore-tablet-boot .vf-explore__map {
  position: absolute !important;
  inset: 0 !important;
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #eaf4fb !important;
}

html.vf-explore-tablet-boot .vf-explore__map-wrap {
  z-index: 1 !important;
  touch-action: none;
}

html.vf-explore-tablet-boot .vf-explore__panel,
html.vf-explore-tablet-boot
  .vf-explore__shell:not(.is-mobile-list-open)
  .vf-explore__panel {
  position: absolute !important;
  top: var(--vf-tablet-edge-gap) !important;
  right: auto !important;
  bottom: auto !important;
  left: var(--vf-tablet-edge-gap) !important;
  z-index: 700 !important;
  box-sizing: border-box !important;
  width: var(--vf-tablet-panel-width) !important;
  min-width: 0 !important;
  max-width: calc(100% - 32px) !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: calc(100% - 32px) !important;
  display: flex !important;
  flex-direction: column !important;
  margin: 0 !important;
  padding: 16px !important;
  overflow: visible !important;
  border: 1px solid rgba(17, 19, 23, 0.08) !important;
  border-radius: 18px !important;
  background: rgba(255, 255, 255, 0.98) !important;
  box-shadow: 0 14px 38px rgba(18, 25, 38, 0.2) !important;
  touch-action: pan-y;
}

html.vf-explore-tablet-boot
  .vf-explore__shell:not(.is-mobile-list-open)
  .vf-results-header,
html.vf-explore-tablet-boot
  .vf-explore__shell:not(.is-mobile-list-open)
  .vf-results-scroll {
  display: none !important;
}

html.vf-explore-tablet-boot
  .vf-explore__shell.is-mobile-list-open
  .vf-explore__panel {
  top: var(--vf-tablet-edge-gap) !important;
  right: auto !important;
  bottom: 74px !important;
  left: var(--vf-tablet-edge-gap) !important;
  width: var(--vf-tablet-panel-width) !important;
  height: auto !important;
  max-height: none !important;
  overflow: hidden !important;
}

html.vf-explore-tablet-boot
  .vf-explore__shell.is-mobile-list-open
  .vf-search {
  display: none !important;
}

html.vf-explore-tablet-boot
  .vf-explore__shell.is-mobile-list-open
  .vf-results-header {
  display: flex !important;
  flex: 0 0 auto !important;
}

html.vf-explore-tablet-boot
  .vf-explore__shell.is-mobile-list-open
  .vf-results-scroll {
  display: flex !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  touch-action: pan-y;
}

html.vf-explore-tablet-boot .vf-mobile-view-toggle {
  position: absolute !important;
  top: auto !important;
  right: auto !important;
  bottom: var(--vf-tablet-edge-gap) !important;
  left: calc(
    var(--vf-tablet-edge-gap) +
    (var(--vf-tablet-panel-width) / 2)
  ) !important;
  z-index: 990 !important;
  box-sizing: border-box !important;
  width: auto !important;
  min-width: 112px !important;
  max-width: calc(var(--vf-tablet-panel-width) - 24px) !important;
  height: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  margin: 0 !important;
  padding: 0 16px !important;
  transform: translateX(-50%) !important;
  border: 0 !important;
  border-radius: 12px !important;
  outline: 0 !important;
  background: #28313a !important;
  box-shadow: 0 8px 24px rgba(18, 25, 38, 0.28) !important;
  color: #fff !important;
  -webkit-tap-highlight-color: transparent;
}

html.vf-explore-tablet-boot .vf-explore__map-toolbar {
  position: absolute !important;
  top: auto !important;
  right: var(--vf-tablet-edge-gap) !important;
  bottom: var(--vf-tablet-edge-gap) !important;
  left: auto !important;
  z-index: 980 !important;
  box-sizing: border-box !important;
  width: auto !important;
  max-width: calc(100% - 32px) !important;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  overflow: visible !important;
  pointer-events: none !important;
}

html.vf-explore-tablet-boot .vf-explore__map-toolbar > * {
  pointer-events: auto !important;
}

html.vf-explore-tablet-boot .vf-map-filter-control {
  flex-direction: row-reverse !important;
  overflow: visible !important;
}

html.vf-explore-tablet-boot
  .vf-map-filter-control.is-expanded {
  width: max-content !important;
  max-width: calc(100vw - 32px) !important;
}

html.vf-explore-tablet-boot
  .vf-map-filter-control.is-expanded
  .vf-map-filter-options {
  width: max-content !important;
  max-width: calc(100vw - 86px) !important;
  padding: 0 6px 0 0 !important;
  overflow: visible !important;
}

html.vf-explore-tablet-boot .vf-filter-slider-menu {
  position: relative !important;
  overflow: visible !important;
}

html.vf-explore-tablet-boot .vf-filter-slider-panel {
  position: absolute !important;
  top: auto !important;
  right: 0 !important;
  bottom: calc(100% + 10px) !important;
  left: auto !important;
  z-index: 1200 !important;
  width: 280px !important;
  max-height: min(360px, calc(100dvh - 100px));
  overflow-y: auto !important;
}

html.vf-explore-tablet-boot
  .vf-map-filter-launcher
  .material-symbols-outlined {
  position: relative !important;
  width: 22px !important;
  height: 18px !important;
  display: block !important;
  overflow: hidden !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
}

html.vf-explore-tablet-boot
  .vf-map-filter-launcher
  .material-symbols-outlined::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background:
    linear-gradient(#111317, #111317) 2px 2px / 18px 2px no-repeat,
    linear-gradient(#111317, #111317) 5px 8px / 12px 2px no-repeat,
    linear-gradient(#111317, #111317) 8px 14px / 6px 2px no-repeat !important;
}

html.vf-explore-tablet-boot .vf-map-filter-launcher__label {
  display: none !important;
}

html.vf-explore-tablet-boot .vf-map-expand {
  display: none !important;
}

html.vf-explore-tablet-boot button,
html.vf-explore-tablet-boot a,
html.vf-explore-tablet-boot button:focus,
html.vf-explore-tablet-boot button:focus-visible,
html.vf-explore-tablet-boot button:active,
html.vf-explore-tablet-boot a:focus,
html.vf-explore-tablet-boot a:focus-visible,
html.vf-explore-tablet-boot a:active {
  outline: 0 !important;
  -webkit-tap-highlight-color: transparent !important;
}

html.vf-explore-tablet-boot .vf-map-filter-launcher,
html.vf-explore-tablet-boot .vf-map-filter-launcher:focus,
html.vf-explore-tablet-boot .vf-map-filter-launcher:focus-visible,
html.vf-explore-tablet-boot .vf-map-filter-launcher:active {
  outline: 0 !important;
  box-shadow: none !important;
}

html.vf-explore-tablet-boot .leaflet-map-pane,
html.vf-explore-tablet-boot .leaflet-tile-pane,
html.vf-explore-tablet-boot .leaflet-tile-container {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}

html.vf-explore-tablet-boot
  .leaflet-container
  img.leaflet-tile {
  width: 258px !important;
  height: 258px !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* =========================================================
   CURRENT DATE-PICKER MARKUP COMPATIBILITY
   ========================================================= */

/*
 * dates.js renders __days, __hint and __clear.
 * These selectors support both the current and older names.
 */

.vf-date-picker__weekdays,
.vf-date-picker__days,
.vf-date-picker__grid {
  display: grid !important;
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  width: 100% !important;
}

.vf-date-picker__weekdays {
  gap: 2px;
  margin-bottom: 4px;
}

.vf-date-picker__weekdays > span,
.vf-date-picker__weekday {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: 4px 0;
  color: #929aa5;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
}

.vf-date-picker__days,
.vf-date-picker__grid {
  gap: 2px;
}

.vf-date-picker__spacer {
  display: block;
  width: 100%;
  height: 30px;
}

.vf-date-picker__day {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 30px !important;
  min-height: 30px !important;
  aspect-ratio: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: transparent;
  color: #333a43;
  font: inherit;
  font-size: 11px !important;
  font-weight: 600;
  line-height: 1 !important;
}

.vf-date-picker__day:hover {
  background: #eaf4fb;
  color: #128add;
}

.vf-date-picker__day:disabled {
  background: transparent;
  color: #d0d5dc;
  cursor: default;
}

.vf-date-picker__day.is-in-range {
  border-radius: 8px !important;
  background: #eef7ff;
  color: #0876cf;
}

.vf-date-picker__day.is-depart,
.vf-date-picker__day.is-return,
.vf-date-picker__day.is-selected {
  border-radius: 50% !important;
  background: #128add !important;
  color: #fff !important;
}

.vf-date-picker__nav[data-date-nav="prev"]::before,
.vf-date-picker__nav--previous::before {
  content: "\2039" !important;
}

.vf-date-picker__nav[data-date-nav="next"]::before,
.vf-date-picker__nav--next::before {
  content: "\203A" !important;
}

.vf-date-picker__nav::before {
  display: block !important;
  color: currentColor !important;
  font-family: Arial, sans-serif !important;
  font-size: 22px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
}

.vf-date-picker__hint,
.vf-date-picker__footer-label {
  color: #8d95a1;
  font-size: 10px;
  font-weight: 600;
}

.vf-date-picker__clear,
.vf-date-picker__anytime {
  height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(18, 138, 221, 0.32) !important;
  border-radius: 9px;
  outline: 0 !important;
  background: #eef7ff;
  box-shadow: none !important;
  color: #128add;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}

.vf-date-picker__clear:hover,
.vf-date-picker__anytime:hover {
  background: #e2f1ff;
}


/* =========================================================
   INLINE FILTER ICON
   ========================================================= */

.vf-map-filter-launcher__icon {
  box-sizing: border-box;
  display: block;
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  overflow: visible;
  fill: currentColor;
  pointer-events: none;
}


/* =========================================================
   ANIMATED ROUTE AIRPLANE
   ========================================================= */

.vf-route-plane-icon,
.vf-route-plane-icon:focus,
.vf-route-plane-icon:focus-visible,
.vf-route-plane-icon:active {
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  pointer-events: none !important;
  -webkit-tap-highlight-color: transparent !important;
}

.vf-route-plane__body {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  transform-origin: 50% 50%;
  will-change: transform;
  pointer-events: none;
}

.vf-route-plane__svg {
  display: block;
  width: 26px;
  height: 26px;
  overflow: visible;
  fill: #128add !important;
  filter:
    drop-shadow(0 0 1.5px #fff)
    drop-shadow(0 2px 2px rgba(17, 25, 39, 0.2));
  pointer-events: none;
}

.vf-route-plane__svg path {
  fill: #128add !important;
}

@media (prefers-reduced-motion: reduce) {
  .vf-route-plane__body {
    will-change: auto;
  }
}

/* =========================================================
   FINAL RESPONSIVE CONTROL AND STATUS CORRECTIONS
   ========================================================= */

/*
 * The fare-route arrow is now inline SVG and no longer
 * depends on the Material Symbols font.
 */

svg.vf-status-route__arrow {
  box-sizing: border-box !important;
  width: 16px !important;
  min-width: 16px !important;
  height: 16px !important;
  display: block !important;
  flex: 0 0 16px !important;
  margin: 0 1px !important;
  overflow: visible !important;
  color: #7b8490 !important;
  fill: currentColor !important;
  transform: none !important;
}

svg.vf-status-route__arrow path {
  fill: currentColor !important;
}

.vf-results-header--status-only .vf-explore__status,
.vf-status-message,
.vf-status-route,
.vf-status-message__prefix,
.vf-status-message__suffix,
.vf-status-route__location {
  align-items: center !important;
}

.vf-status-message {
  column-gap: 4px !important;
}

.vf-status-route {
  column-gap: 4px !important;
  white-space: nowrap !important;
}

/*
 * Keep View list/View map available in both responsive
 * layouts.
 */

.vf-explore__shell.is-mobile-layout .vf-mobile-view-toggle,
.vf-explore__shell.is-tablet-layout .vf-mobile-view-toggle,
html.vf-explore-tablet-boot .vf-mobile-view-toggle {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/*
 * Leaflet mounts the current zoom control in the bottom-right
 * container. Move that container above the tablet filter.
 */

.vf-explore__shell.is-tablet-layout
  .vf-explore__map-wrap
  .leaflet-bottom.leaflet-right,
html.vf-explore-tablet-boot
  .vf-explore__map-wrap
  .leaflet-bottom.leaflet-right {
  right: var(--vf-tablet-edge-gap, 16px) !important;
  bottom: 76px !important;
  left: auto !important;
  z-index: 800 !important;
}

.vf-explore__shell.is-tablet-layout
  .vf-explore__map-wrap
  .leaflet-bottom.leaflet-right
  .leaflet-control,
html.vf-explore-tablet-boot
  .vf-explore__map-wrap
  .leaflet-bottom.leaflet-right
  .leaflet-control {
  margin: 0 !important;
}

/*
 * ---------------------------------------------------------
 * Tablet Leaflet zoom-control position
 * ---------------------------------------------------------
 *
 * Leaflet creates this map's zoom buttons inside its
 * top-left control container. Place that container in the
 * upper-right corner on tablet layouts so it cannot overlap
 * the filter control in the lower-right corner.
 */

.vf-explore__shell.is-tablet-layout
  .vf-explore__map-wrap
  .leaflet-top.leaflet-left,
html.vf-explore-tablet-boot
  .vf-explore__map-wrap
  .leaflet-top.leaflet-left {
  top: var(--vf-tablet-edge-gap, 16px) !important;
  right: var(--vf-tablet-edge-gap, 16px) !important;
  bottom: auto !important;
  left: auto !important;
  z-index: 800 !important;
}

.vf-explore__shell.is-tablet-layout
  .vf-explore__map-wrap
  .leaflet-top.leaflet-left
  .leaflet-control,
html.vf-explore-tablet-boot
  .vf-explore__map-wrap
  .leaflet-top.leaflet-left
  .leaflet-control {
  margin: 0 !important;
}

/* =========================================================
   STABLE ROUTE ENDPOINTS AND ATOMIC FILTER CONTROL
   ========================================================= */

.vf-route-endpoint-icon,
.vf-route-endpoint-icon:focus,
.vf-route-endpoint-icon:focus-visible,
.vf-route-endpoint-icon:active {
  box-sizing: border-box !important;
  width: 16px !important;
  height: 16px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  pointer-events: none !important;
  transform-origin: 50% 50% !important;
  transition: none !important;
}

.vf-route-endpoint-dot {
  box-sizing: border-box;
  display: block;
  width: 12px;
  height: 12px;
  margin: 2px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #128add;
  box-shadow: 0 1px 4px rgba(17, 25, 39, 0.28);
  pointer-events: none;
  transform: none;
  transition: none;
}

.vf-route-endpoint-tab {
  box-sizing: border-box;
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  display: inline-flex;
  align-items: center;
  width: max-content;
  max-width: 240px;
  min-height: 38px;
  padding: 7px 10px;
  border: 1px solid #128add;
  border-radius: 11px;
  background: #128add;
  box-shadow: 0 7px 20px rgba(18, 138, 221, 0.28);
  color: #fff;
  white-space: nowrap;
  transform: translateX(-50%);
  pointer-events: none;
}

.vf-route-endpoint-tab::after {
  position: absolute;
  top: 100%;
  left: 50%;
  width: 9px;
  height: 9px;
  border-right: 1px solid #128add;
  border-bottom: 1px solid #128add;
  background: #128add;
  content: "";
  transform: translate(-50%, -5px) rotate(45deg);
}

.vf-route-endpoint-tab__icon {
  display: block;
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  margin-right: 7px;
  overflow: visible;
  filter: brightness(0) invert(1);
  object-fit: contain;
}

.vf-route-endpoint-tab__price {
  flex: 0 0 auto;
  margin-right: 7px;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  font-variant-numeric: tabular-nums lining-nums;
}

.vf-route-endpoint-tab__location {
  display: block;
  min-width: 0;
  overflow: hidden;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  text-overflow: ellipsis;
}

.vf-route-endpoint-tab__location small {
  color: rgba(255, 255, 255, 0.82);
  font-size: 10px;
  font-weight: 750;
}

@media (max-width: 767px) {
  .vf-route-endpoint-tab {
    max-width: 190px;
    min-height: 34px;
    padding: 6px 8px;
  }

  .vf-route-endpoint-tab__icon {
    flex-basis: 19px;
    width: 19px;
    height: 19px;
    margin-right: 5px;
  }

  .vf-route-endpoint-tab__price {
    margin-right: 5px;
    font-size: 12px;
  }

  .vf-route-endpoint-tab__location {
    font-size: 11px;
  }
}

/*
 * Render the filter background and buttons together.
 * Width, padding and child opacity are no longer animated.
 */

.vf-map-filter-control,
.vf-map-filter-control.is-expanded {
  background: #fff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  transition: none !important;
  animation: none !important;
  transform: translateZ(0) !important;
  backface-visibility: hidden !important;
  -webkit-backface-visibility: hidden !important;
}

.vf-map-filter-launcher,
.vf-map-filter-launcher:hover,
.vf-map-filter-launcher:focus,
.vf-map-filter-launcher:focus-visible,
.vf-map-filter-launcher:active {
  transform: none !important;
  animation: none !important;
  transition: background-color 80ms linear !important;
}

.vf-map-filter-launcher .material-symbols-outlined,
.vf-map-filter-launcher__icon,
.vf-map-filter-launcher .material-symbols-outlined::before,
.vf-map-filter-launcher .material-symbols-outlined::after {
  transform: none !important;
  transform-origin: 50% 50% !important;
  transition: none !important;
  animation: none !important;
  backface-visibility: hidden !important;
  -webkit-backface-visibility: hidden !important;
}

.vf-map-filter-launcher__label {
  transition: none !important;
  animation: none !important;
}

.vf-map-filter-options {
  display: none !important;
  width: max-content !important;
  max-width: none !important;
  visibility: visible !important;
  opacity: 1 !important;
  transition: none !important;
  animation: none !important;
}

.vf-map-filter-control.is-expanded .vf-map-filter-options {
  display: inline-flex !important;
  width: max-content !important;
  max-width: min(620px, calc(100vw - 86px)) !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/*
 * Keep the desktop icon centered at the same coordinate
 * while revealing the Filters label.
 */

.vf-map-filter-control.is-expanded .vf-map-filter-launcher {
  box-sizing: border-box !important;
  flex-basis: 86px !important;
  width: 86px !important;
  min-width: 86px !important;
  justify-content: flex-start !important;
  padding: 0 8px !important;
  transition: background-color 80ms linear !important;
}

/*
 * Mobile and tablet launchers remain fixed at 40px.
 */

.vf-explore__shell.is-mobile-layout
  .vf-map-filter-control.is-expanded
  .vf-map-filter-launcher,
.vf-explore__shell.is-tablet-layout
  .vf-map-filter-control.is-expanded
  .vf-map-filter-launcher,
html.vf-explore-tablet-boot
  .vf-map-filter-control.is-expanded
  .vf-map-filter-launcher {
  flex-basis: 40px !important;
  width: 40px !important;
  min-width: 40px !important;
  justify-content: center !important;
  padding: 0 !important;
}

.vf-explore__shell.is-mobile-layout
  .vf-map-filter-control.is-expanded
  .vf-map-filter-options,
.vf-explore__shell.is-tablet-layout
  .vf-map-filter-control.is-expanded
  .vf-map-filter-options,
html.vf-explore-tablet-boot
  .vf-map-filter-control.is-expanded
  .vf-map-filter-options {
  max-width: calc(100vw - 86px) !important;
}

.vf-map-filter-option,
.vf-filter-slider-menu,
.vf-filter-slider-panel {
  animation: none !important;
}

/*
 * Basemap loading background.
 *
 * This color appears behind raster tiles during zooming and
 * outside the Web Mercator world at extremely low zoom levels.
 */

.vf-explore__map-wrap,
#vf-explore-map,
#vf-explore-map.leaflet-container {
    background:
        #85caf9 !important;
}


#vf-explore-map .leaflet-map-pane,
#vf-explore-map .leaflet-tile-pane,
#vf-explore-map .leaflet-pane,
#vf-explore-map .leaflet-tile {
    background-color:
        transparent !important;
}

/* =========================================================
   DESTINATION RESULT CARDS + FULL-PANEL DETAIL
   ========================================================= */

.vf-explore .vf-destination-list {
  gap: 10px;
}

.vf-explore .vf-destination-card {
  min-height: 108px;
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
  padding: 9px;
  border: 1px solid var(--vf-line);
  border-radius: 14px;
  background: var(--vf-white);
  color: var(--vf-ink);
  text-align: left;
  box-shadow: none;
  outline: 0;
  transition:
    border-color 120ms ease,
    box-shadow 120ms ease,
    transform 120ms ease;
}

.vf-explore .vf-destination-card:hover {
  border-color: #b9dfff;
  box-shadow: 0 7px 18px rgba(18, 25, 38, 0.07);
  transform: translateY(-1px);
}

.vf-explore .vf-destination-card:focus,
.vf-explore .vf-destination-card:active {
  outline: 0 !important;
}

.vf-explore .vf-destination-card:focus-visible {
  border-color: var(--vf-blue);
  box-shadow: 0 0 0 3px rgba(11, 141, 242, 0.14);
}

.vf-explore .vf-destination-card__image {
  width: 88px;
  height: 88px;
  align-self: center;
  overflow: hidden;
  border-radius: 11px;
  background: #eaf6ff;
}

.vf-explore .vf-destination-card__image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.vf-explore .vf-destination-card__image--fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--vf-blue);
}

.vf-explore .vf-destination-card__image--fallback .material-symbols-outlined {
  font-size: 27px;
  font-variation-settings:
    "FILL" 1,
    "wght" 500,
    "GRAD" 0,
    "opsz" 24;
}

.vf-explore .vf-destination-card__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 3px 1px 3px 0;
}

.vf-explore .vf-destination-card__top {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 8px;
}

.vf-explore .vf-destination-card__identity {
  min-width: 0;
}

.vf-explore .vf-destination-card__name {
  display: block;
  overflow: hidden;
  color: var(--vf-ink);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.25;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vf-explore .vf-destination-card__name small {
  color: #4f5865;
  font-size: 11px;
  font-weight: 700;
}

.vf-explore .vf-destination-card__country {
  display: block;
  margin-top: 6px;
  overflow: hidden;
  color: var(--vf-muted);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.25;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vf-explore .vf-destination-card__price {
  align-self: end;
  color: var(--vf-ink);
  text-align: right;
}

.vf-explore .vf-destination-card__price strong {
  display: block;
  color: var(--vf-ink);
  font-size: 18px;
  font-weight: 800;
  line-height: 1;
}

.vf-explore .vf-destination-card__meta {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  color: var(--vf-muted);
  font-size: 10px;
  line-height: 1;
}

.vf-explore .vf-destination-card__stops {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 0 8px;
  border-radius: 10px;
  background: #e7f4ff;
  color: #087fd4;
  font-weight: 800;
  white-space: nowrap;
}

.vf-explore .vf-destination-card__duration {
  color: #77808c;
  font-weight: 600;
  white-space: nowrap;
}


/* Full-panel state */

.vf-explore__panel.is-destination-detail {
  padding: 10px;
}

.vf-explore__panel.is-destination-detail > .vf-search,
.vf-explore__panel.is-destination-detail > .vf-results-header,
.vf-explore__panel.is-destination-detail .vf-show-more,
.vf-explore__panel.is-destination-detail .vf-fare-disclaimer {
  display: none !important;
}

.vf-explore__panel.is-destination-detail .vf-results-scroll {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
  overflow-x: hidden;
  overflow-y: auto;
}

.vf-explore__panel.is-destination-detail .vf-destination-list {
  display: block;
  min-height: 100%;
}

.vf-destination-detail {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  gap: 12px;
  color: var(--vf-ink);
}

.vf-destination-detail__hero {
  position: relative;
  flex: 0 0 auto;
  height: 188px;
  overflow: hidden;
  border-radius: 14px;
  background: #eaf6ff;
}

.vf-destination-detail__hero > img,
.vf-destination-detail__hero-fallback {
  width: 100%;
  height: 100%;
  display: block;
}

.vf-destination-detail__hero > img {
  object-fit: cover;
}

.vf-destination-detail__hero-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--vf-blue);
  background: linear-gradient(145deg, #edf8ff, #dcefff);
}

.vf-destination-detail__hero-fallback .material-symbols-outlined {
  font-size: 46px;
  font-variation-settings:
    "FILL" 1,
    "wght" 500,
    "GRAD" 0,
    "opsz" 48;
}

.vf-destination-detail__back {
  position: absolute;
  top: 10px;
  left: 10px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.96);
  color: #222831;
  box-shadow: 0 4px 14px rgba(18, 25, 38, 0.15);
  outline: 0;
  cursor: pointer;
}

.vf-destination-detail__back:hover {
  background: #fff;
}

.vf-destination-detail__back:focus-visible {
  box-shadow:
    0 4px 14px rgba(18, 25, 38, 0.15),
    0 0 0 3px rgba(11, 141, 242, 0.18);
}

.vf-destination-detail__back .material-symbols-outlined {
  font-size: 21px;
}

.vf-destination-detail__heading {
  padding: 0 2px;
}

.vf-destination-detail__heading h2 {
  margin: 0;
  color: var(--vf-ink);
  font-size: 22px;
  font-weight: 800;
  line-height: 1.18;
}

.vf-destination-detail__heading h2 span {
  color: #56606d;
  font-size: 13px;
}

.vf-destination-detail__heading p {
  margin: 4px 0 0;
  color: var(--vf-muted);
  font-size: 12px;
  font-weight: 500;
}

.vf-cheapest-flight {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 9px;
  padding: 10px;
  border: 1px solid #dce3ec;
  border-radius: 13px;
  background: #fff;
}

.vf-cheapest-flight__icon,
.vf-flight-option__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 11px;
  background: #edf7ff;
  color: var(--vf-blue);
}

.vf-cheapest-flight__icon {
  width: 42px;
  height: 42px;
}

.vf-cheapest-flight__icon .material-symbols-outlined {
  font-size: 22px;
}

.vf-cheapest-flight__route {
  min-width: 0;
}

.vf-cheapest-flight__route > span,
.vf-cheapest-flight__route > strong,
.vf-cheapest-flight__route > small {
  display: block;
}

.vf-cheapest-flight__route > span {
  color: #6f7782;
  font-size: 9px;
  font-weight: 700;
}

.vf-cheapest-flight__route > strong {
  margin-top: 2px;
  color: #323943;
  font-size: 11px;
  font-weight: 800;
}

.vf-cheapest-flight__route > small {
  margin-top: 3px;
  overflow: hidden;
  color: #7a8491;
  font-size: 9px;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vf-cheapest-flight__duration {
  color: #4d5663;
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}

.vf-cheapest-flight__price {
  min-width: 56px;
  padding-left: 9px;
  border-left: 1px solid #e3e7ed;
  text-align: right;
}

.vf-cheapest-flight__price strong,
.vf-cheapest-flight__price span {
  display: block;
}

.vf-cheapest-flight__price strong {
  color: var(--vf-blue);
  font-size: 16px;
  font-weight: 800;
}

.vf-cheapest-flight__price span {
  margin-top: 3px;
  color: #9299a3;
  font-size: 9px;
  font-weight: 600;
}

.vf-destination-detail__options h3 {
  margin: 0 0 7px;
  color: #4f5966;
  font-size: 12px;
  font-weight: 800;
}

.vf-flight-options {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.vf-flight-option {
  width: 100%;
  min-height: 58px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto 20px;
  align-items: center;
  gap: 9px;
  padding: 8px 9px;
  border: 1px solid #dfe4eb;
  border-radius: 11px;
  background: #fff;
  color: var(--vf-ink);
  text-align: left;
  outline: 0;
  cursor: pointer;
  transition:
    border-color 100ms ease,
    background-color 100ms ease;
}

.vf-flight-option:hover {
  border-color: #aad7fa;
}
.vf-flight-option.is-selected {
  border-color: var(--vf-blue);
  background: #fbfdff;
}

.vf-flight-option:focus-visible {
  box-shadow: 0 0 0 3px rgba(11, 141, 242, 0.14);
}

.vf-flight-option__logo {
  width: 38px;
  height: 38px;
}

.vf-flight-option__logo .material-symbols-outlined {
  font-size: 20px;
}

.vf-flight-option__airline-code {
  color: #087fd4;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.02em;
}

.vf-flight-option__schedule {
  min-width: 0;
}

.vf-flight-option__schedule strong,
.vf-flight-option__schedule span,
.vf-flight-option__fare strong,
.vf-flight-option__fare span {
  display: block;
}

.vf-flight-option__schedule strong {
  overflow: hidden;
  color: #343b45;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vf-flight-option__schedule span {
  margin-top: 3px;
  overflow: hidden;
  color: #7b8490;
  font-size: 9px;
  font-weight: 500;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vf-flight-option__fare {
  text-align: right;
}

.vf-flight-option__fare strong {
  color: #222832;
  font-size: 14px;
  font-weight: 800;
}

.vf-flight-option__fare span {
  margin-top: 3px;
  color: #9299a3;
  font-size: 9px;
  font-weight: 600;
}

.vf-flight-option__choice {
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #d5dbe3;
  border-radius: 50%;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
}

.vf-flight-option.is-selected .vf-flight-option__choice {
  border-color: var(--vf-blue);
  background: var(--vf-blue);
}

.vf-destination-detail__options-status {
  min-height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin-top: 7px;
  color: #6e7783;
  font-size: 10px;
  font-weight: 600;
}

.vf-detail-spinner {
  width: 13px;
  height: 13px;
  border: 2px solid #d4eafd;
  border-top-color: var(--vf-blue);
  border-radius: 50%;
  animation: vf-detail-spin 700ms linear infinite;
}

@keyframes vf-detail-spin {
  to {
    transform: rotate(360deg);
  }
}

.vf-destination-detail__options-error {
  margin: 8px 0 0;
  color: #9a5d25;
  font-size: 10px;
  line-height: 1.35;
  text-align: center;
}

.vf-destination-detail__selected {
  margin: auto 0 0;
  color: #59626e;
  font-size: 10px;
  line-height: 1.45;
  text-align: center;
}

.vf-destination-detail__selected strong {
  color: var(--vf-blue);
  font-weight: 800;
}

.vf-destination-detail__book {
  width: 100%;
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  padding: 0 16px;
  border: 0;
  border-radius: 11px;
  background: var(--vf-blue);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
  box-shadow: none;
  outline: 0;
}

.vf-destination-detail__book:hover {
  background: var(--vf-blue-dark);
  color: #fff;
  text-decoration: none;
}

.vf-destination-detail__book:focus-visible {
  box-shadow: 0 0 0 3px rgba(11, 141, 242, 0.2);
}

.vf-destination-detail__book:disabled {
  background: #b8c1cc;
  cursor: not-allowed;
}


@media (max-width: 767px) {
  .vf-explore .vf-destination-card {
    grid-template-columns: 94px minmax(0, 1fr);
    min-height: 114px;
    padding: 10px;
  }

  .vf-explore .vf-destination-card__image {
    width: 94px;
    height: 94px;
  }

  .vf-destination-detail__hero {
    height: clamp(180px, 32vh, 240px);
  }

  .vf-destination-detail__heading h2 {
    font-size: 24px;
  }
}


/* =========================================================
   DESTINATION DATES AND CLEAN COUNTRY HERO
   ========================================================= */

.vf-explore .vf-destination-card__dates {
  display: block;
  margin-top: 6px;
  overflow: hidden;
  color: var(--vf-muted);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.25;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vf-country-detail__summary h3 {
  display: flex;
  align-items: center;
  gap: 7px;
}

.vf-country-detail__summary h3 > span:first-child {
  flex: 0 0 auto;
  line-height: 1;
}

.vf-country-detail__summary h3 > span:last-child {
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}


@media (prefers-reduced-motion: reduce) {
  .vf-explore .vf-destination-card,
  .vf-flight-option {
    transition: none;
  }

  .vf-detail-spinner {
    animation-duration: 1400ms;
  }
}

/* =========================================================
   COUNTRY / CITY RESULTS + FIXED DETAIL LAYOUT
   ========================================================= */

.vf-explore__status--screen-reader {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.vf-results-header--view-toggle {
  position: relative;
  display: block;
  padding: 10px 0;
  border-bottom: 1px solid var(--vf-line);
}

.vf-results-view-toggle {
  width: 100%;
  min-height: 38px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3px;
  padding: 3px;
  border: 1px solid #dce2e9;
  border-radius: 11px;
  background: #f2f4f7;
}

.vf-results-view-option {
  min-width: 0;
  min-height: 30px;
  padding: 0 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #66707d;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  box-shadow: none;
  outline: 0;
}

.vf-results-view-option.is-active {
  background: #fff;
  color: var(--vf-ink);
  box-shadow: 0 1px 4px rgba(18, 25, 38, 0.09);
}

.vf-results-view-option:focus,
.vf-results-view-option:active {
  outline: 0 !important;
}

.vf-results-view-option:focus-visible {
  box-shadow: 0 0 0 3px rgba(11, 141, 242, 0.15);
}

.vf-destination-card__image svg,
.vf-destination-detail__hero-fallback svg,
.vf-country-detail__hero-fallback svg {
  width: 28px;
  height: 28px;
  display: block;
}

.vf-destination-detail__back svg,
.vf-country-detail__back svg {
  width: 21px;
  height: 21px;
  display: block;
}

.vf-flight-option__logo img,
.vf-cheapest-flight__icon img {
  width: 30px;
  height: 30px;
  display: block;
  object-fit: contain;
}

.vf-flight-option__logo svg,
.vf-cheapest-flight__icon svg {
  width: 21px;
  height: 21px;
  display: block;
}


/* Country summary tiles */

.vf-country-card {
  width: 100%;
  min-height: 76px;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto 14px;
  align-items: center;
  gap: 10px;
  padding: 11px;
  border: 1px solid var(--vf-line);
  border-radius: 14px;
  background: #fff;
  color: var(--vf-ink);
  text-align: left;
  box-shadow: none;
  outline: 0;
}

.vf-country-card:hover {
  border-color: #b9dfff;
  background: #fbfdff;
}

.vf-country-card:focus,
.vf-country-card:active {
  outline: 0 !important;
}

.vf-country-card:focus-visible {
  box-shadow: 0 0 0 3px rgba(11, 141, 242, 0.14);
}

.vf-country-card__flag {
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: #eef7ff;
  font-size: 25px;
}

.vf-country-flag-image {
  display: inline-block;
  width: 30px;
  height: 20px;
  object-fit: cover;
  border: 1px solid rgba(25, 35, 45, 0.1);
  border-radius: 2px;
  vertical-align: middle;
}

.vf-country-card__flag .vf-country-flag-image {
  width: 30px;
  height: 20px;
}

.vf-country-detail__summary h3 .vf-country-flag-image,
.vf-destination-detail__heading p .vf-country-flag-image {
  margin-right: 5px;
}

.vf-country-card__content {
  min-width: 0;
}

.vf-country-card__content strong,
.vf-country-card__content span {
  display: block;
}

.vf-country-card__content strong {
  overflow: hidden;
  color: var(--vf-ink);
  font-size: 14px;
  font-weight: 800;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vf-country-card__content span {
  margin-top: 5px;
  color: var(--vf-muted);
  font-size: 10px;
  font-weight: 600;
}

.vf-country-card__price {
  color: #7b8490;
  font-size: 9px;
  text-align: right;
  white-space: nowrap;
}

.vf-country-card__price strong {
  display: block;
  margin-top: 3px;
  color: var(--vf-ink);
  font-size: 14px;
  font-weight: 800;
}

.vf-country-card__arrow {
  color: #77808c;
  font-size: 22px;
  line-height: 1;
}

/* Keep only the flight-option list scrollable. */

.vf-explore__panel.is-destination-detail {
  padding: 10px;
  overflow: hidden;
}

.vf-explore__panel.is-destination-detail .vf-results-scroll {
  height: 100%;
  min-height: 0;
  padding: 0;
  overflow: hidden !important;
  scrollbar-width: none;
}

.vf-explore__panel.is-destination-detail .vf-results-scroll::-webkit-scrollbar {
  display: none;
}

.vf-explore__panel.is-destination-detail .vf-destination-list {
  height: 100%;
  min-height: 0;
}

.vf-destination-detail {
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.vf-destination-detail__hero,
.vf-destination-detail__heading,
.vf-cheapest-flight,
.vf-destination-detail__selected,
.vf-destination-detail__book {
  flex: 0 0 auto;
}

.vf-destination-detail__options {
  min-height: 0;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  overflow: hidden;
}

.vf-destination-detail__options h3 {
  flex: 0 0 auto;
}

.vf-destination-detail .vf-flight-options {
  min-height: 0;
  flex: 1 1 auto;
  padding-right: 4px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: #b5bdc8 transparent;
}

.vf-destination-detail .vf-flight-options::-webkit-scrollbar {
  width: 5px;
}

.vf-destination-detail .vf-flight-options::-webkit-scrollbar-thumb {
  border-radius: 99px;
  background: #b5bdc8;
}

.vf-destination-detail__selected {
  margin: 0;
}

.vf-destination-detail__book,
.vf-destination-detail__book:hover,
.vf-destination-detail__book:focus,
.vf-destination-detail__book:active,
.vf-destination-detail__book:visited {
  position: relative;
  z-index: 2;
  background: var(--vf-blue);
  color: #fff !important;
  text-decoration: none !important;
}

.vf-destination-detail__book:hover {
  background: var(--vf-blue-dark);
}

.vf-destination-detail__book:disabled {
  background: var(--vf-blue);
  color: #fff !important;
  opacity: 0.65;
}


/* Country drill-down: fixed picture/header, scrolling cities. */

.vf-explore__panel.is-country-detail {
  padding: 10px;
  overflow: hidden;
}

.vf-explore__panel.is-country-detail > .vf-search,
.vf-explore__panel.is-country-detail > .vf-results-header,
.vf-explore__panel.is-country-detail .vf-show-more,
.vf-explore__panel.is-country-detail .vf-fare-disclaimer {
  display: none !important;
}

.vf-explore__panel.is-country-detail .vf-results-scroll {
  height: 100%;
  min-height: 0;
  padding: 0;
  overflow: hidden !important;
  scrollbar-width: none;
}

.vf-explore__panel.is-country-detail .vf-destination-list {
  height: 100%;
  min-height: 0;
}

.vf-country-detail {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow: hidden;
}

.vf-country-detail__hero {
  position: relative;
  width: 100%;
  height: 188px;
  flex: 0 0 188px;
  overflow: hidden;
  border-radius: 14px;
  background: #eaf6ff;
}

.vf-country-detail__hero > img,
.vf-country-detail__hero-fallback {
  width: 100%;
  height: 100%;
  display: block;
}

.vf-country-detail__hero > img {
  object-fit: cover;
}

.vf-country-detail__hero-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--vf-blue);
  background: linear-gradient(145deg, #edf8ff, #dcefff);
}

.vf-country-detail__back {
  position: absolute;
  top: 10px;
  left: 10px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
	  padding: 0;
  border: 0;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.96);
  color: #222831;
  box-shadow: 0 4px 14px rgba(18, 25, 38, 0.15);
  outline: 0;
}

.vf-country-detail__heading {
  flex: 0 0 auto;
  padding: 0 2px;
}

.vf-country-detail__heading h2 {
  margin: 0;
  color: var(--vf-ink);
  font-size: 22px;
  font-weight: 800;
  line-height: 1.2;
}

.vf-country-detail__heading p {
  margin: 4px 0 0;
  color: var(--vf-muted);
  font-size: 11px;
  font-weight: 600;
}

.vf-country-detail__results {
  min-height: 0;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 10px;
  padding-right: 4px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: #b5bdc8 transparent;
}

.vf-country-detail__results::-webkit-scrollbar {
  width: 5px;
}

.vf-country-detail__results::-webkit-scrollbar-thumb {
  border-radius: 99px;
  background: #b5bdc8;
}

@media (max-width: 767px) {
  .vf-destination-detail__hero,
  .vf-country-detail__hero {
    height: clamp(150px, 25vh, 210px);
    flex-basis: clamp(150px, 25vh, 210px);
  }

  .vf-cheapest-flight {
    grid-template-columns: 42px minmax(0, 1fr) auto;
  }

  .vf-cheapest-flight__duration {
    display: none;
  }
}


/* Final detail-layout guard: keep the outer panel fixed. */

.vf-explore__panel.is-destination-detail {
  padding: 10px;
  overflow: hidden;
}

.vf-explore__panel.is-destination-detail .vf-results-scroll {
  height: 100%;
  min-height: 0;
  padding: 0;
  overflow: hidden !important;
  scrollbar-width: none;
}

.vf-explore__panel.is-destination-detail .vf-results-scroll::-webkit-scrollbar {
  display: none;
}

.vf-explore__panel.is-destination-detail .vf-destination-list {
  height: 100%;
  min-height: 0;
}

.vf-explore__panel.is-destination-detail .vf-destination-detail {
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.vf-explore__panel.is-destination-detail .vf-destination-detail__options {
  min-height: 0;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  overflow: hidden;
}

.vf-explore__panel.is-destination-detail .vf-flight-options {
  min-height: 0;
  flex: 1 1 auto;
  padding-right: 4px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: #b5bdc8 transparent;
}

.vf-explore__panel.is-destination-detail .vf-destination-detail__selected {
  flex: 0 0 auto;
  margin: 0;
}

.vf-explore__panel.is-destination-detail .vf-destination-detail__book,
.vf-explore__panel.is-destination-detail .vf-destination-detail__book:hover,
.vf-explore__panel.is-destination-detail .vf-destination-detail__book:focus,
.vf-explore__panel.is-destination-detail .vf-destination-detail__book:active,
.vf-explore__panel.is-destination-detail .vf-destination-detail__book:visited,
.vf-explore__panel.is-destination-detail .vf-destination-detail__book:disabled {
  position: relative;
  z-index: 2;
  flex: 0 0 auto;
  background: var(--vf-blue);
  color: #fff !important;
  text-decoration: none !important;
}

@media (max-width: 767px) {
  .vf-explore__panel.is-destination-detail .vf-destination-detail__hero,
  .vf-explore__panel.is-country-detail .vf-country-detail__hero {
    height: clamp(150px, 25vh, 210px);
    flex-basis: clamp(150px, 25vh, 210px);
  }
}
/* =========================================================
   BALANCED COUNTRY AND DESTINATION INTERFACE
   Consolidated final component rules.
   ========================================================= */

.vf-explore .vf-destination-list,
.vf-country-detail__results {
  gap: 10px;
}


/* Country summary cards */

.vf-explore .vf-country-card {
  min-height: 72px;
  grid-template-columns: 48px minmax(0, 1fr) auto 14px;
  gap: 12px;
  padding: 10px;
  border: 1px solid var(--vf-line);
  border-radius: 14px;
  background: var(--vf-white);
  box-shadow: none;
  transition:
    border-color 120ms ease,
    box-shadow 120ms ease,
    transform 120ms ease;
}

.vf-explore .vf-country-card:hover {
  border-color: #b9dfff;
  background: var(--vf-white);
  box-shadow: 0 7px 18px rgba(18, 25, 38, 0.07);
  transform: translateY(-1px);
}

.vf-explore .vf-country-card:focus,
.vf-explore .vf-country-card:active {
  outline: 0 !important;
}

.vf-explore .vf-country-card:focus-visible {
  border-color: var(--vf-blue);
  box-shadow: 0 0 0 3px rgba(11, 141, 242, 0.14);
}

.vf-explore .vf-country-card__flag {
  width: 48px;
  height: 48px;
  border-radius: 10px;
  background: #eef7ff;
  font-size: 25px;
}

.vf-explore .vf-country-card__content strong {
  color: var(--vf-ink);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.25;
}

.vf-explore .vf-country-card__content span {
  margin-top: 5px;
  color: var(--vf-muted);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.25;
}

.vf-explore .vf-country-card__price {
  color: var(--vf-muted);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.2;
}

.vf-explore .vf-country-card__price strong {
  margin-top: 3px;
  color: var(--vf-ink);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.1;
}

.vf-explore .vf-country-card__arrow {
  color: #77808c;
  font-size: 20px;
}


/* Destination cards */

.vf-explore .vf-destination-card {
  min-height: 108px;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
  padding: 10px;
  border: 1px solid var(--vf-line);
  border-radius: 14px;
  background: var(--vf-white);
  box-shadow: none;
}

.vf-explore .vf-destination-card__image {
  width: 88px;
  height: 88px;
  border-radius: 10px;
}

.vf-explore .vf-destination-card__image--placeholder {
  overflow: hidden;
  background: #eaf6ff;
}

.vf-explore .vf-destination-card__image--placeholder img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

.vf-explore .vf-destination-card__content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: minmax(0, 1fr) auto;
  column-gap: 10px;
  row-gap: 6px;
  align-items: end;
  min-width: 0;
  padding: 3px 1px 3px 0;
}

.vf-explore .vf-destination-card__top {
  display: contents;
}

.vf-explore .vf-destination-card__identity {
  grid-column: 1;
  grid-row: 1;
  align-self: start;
  min-width: 0;
}

.vf-explore .vf-destination-card__name {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.25;
}

.vf-explore .vf-destination-card__name small {
  color: #4f5865;
  font-size: 11px;
  font-weight: 600;
}

.vf-explore .vf-destination-card__country {
  margin-top: 5px;
  font-size: 11px;
  font-weight: 500;
}

.vf-explore .vf-destination-card__meta {
  grid-column: 1;
  grid-row: 2;
  align-self: end;
  gap: 7px;
  margin: 0;
  font-size: 10px;
}

.vf-explore .vf-destination-card__stops {
  min-height: 20px;
  padding: 0 8px;
  border-radius: 10px;
  font-weight: 700;
}

.vf-explore .vf-destination-card__price {
  grid-column: 2;
  grid-row: 2;
  align-self: end;
  margin: 0;
  text-align: right;
}

.vf-explore .vf-destination-card__price::before {
  content: "From";
  display: block;
  margin-bottom: 2px;
  color: var(--vf-muted);
  font-size: 9px;
  font-weight: 500;
  line-height: 1;
  text-transform: none;
}

.vf-explore .vf-destination-card__price strong {
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
}


/* Country detail workspace */

.vf-explore
.vf-explore__shell
.vf-explore__panel.is-country-detail {
  padding: 0 !important;
  overflow: hidden !important;
}

.vf-explore__panel.is-country-detail > .vf-search,
.vf-explore__panel.is-country-detail > .vf-results-header,
.vf-explore__panel.is-country-detail .vf-show-more,
.vf-explore__panel.is-country-detail .vf-fare-disclaimer {
  display: none !important;
}

.vf-explore
.vf-explore__shell
.vf-explore__panel.is-country-detail
.vf-results-scroll,
.vf-explore
.vf-explore__shell
.vf-explore__panel.is-country-detail
.vf-destination-list,
.vf-explore
.vf-explore__shell
.vf-explore__panel.is-country-detail
.vf-country-detail {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  height: 100%;
  min-height: 0;
  margin: 0 !important;
  padding: 0 !important;
}

.vf-explore__panel.is-country-detail .vf-results-scroll {
  overflow: hidden !important;
  scrollbar-width: none;
}

.vf-country-detail {
  display: flex;
  flex-direction: column;
  gap: 0;
  overflow: hidden;
}


/* Country hero */

.vf-explore
.vf-explore__shell
.vf-explore__panel.is-country-detail
.vf-country-detail__hero {
  position: relative;
  isolation: isolate;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  height: 184px;
  flex: 0 0 184px;
  margin: 0 !important;
  overflow: hidden;
  border-radius: 17px 17px 0 0 !important;
  background: #eaf6ff;
}

.vf-country-detail__hero > img,
.vf-country-detail__hero-fallback,
.vf-country-detail__placeholder-image {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: 17px 17px 0 0 !important;
}

.vf-country-detail__hero > img,
.vf-country-detail__placeholder-image {
  object-fit: cover;
  object-position: center;
}

.vf-country-detail__hero-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--vf-blue);
  background: linear-gradient(145deg, #edf8ff, #dcefff);
}

.vf-country-detail__hero-shade {
  position: absolute;
  z-index: 1;
  inset: 0;
  border-radius: 17px 17px 0 0 !important;
  background:
    linear-gradient(
      to top,
      rgba(10, 15, 22, 0.78) 0%,
      rgba(10, 15, 22, 0.18) 52%,
      rgba(10, 15, 22, 0) 75%
    );
  pointer-events: none;
}

.vf-country-detail__back {
  position: absolute;
  z-index: 3;
  top: 10px;
  left: 10px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.96);
  color: #222831;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(18, 25, 38, 0.15);
}

.vf-country-detail__back:hover {
  background: #fff;
}

.vf-country-detail__back:focus-visible {
  outline: 3px solid rgba(11, 141, 242, 0.28);
  outline-offset: 2px;
}

.vf-country-detail__hero .vf-country-detail__heading {
  position: absolute;
  z-index: 2;
  right: 16px;
  bottom: 14px;
  left: 16px;
  margin: 0;
  padding: 0;
  color: #fff;
  pointer-events: none;
}

.vf-country-detail__hero .vf-country-detail__heading h2 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.28);
}

.vf-country-detail__hero .vf-country-detail__heading h2 > span:first-child {
  flex: 0 0 auto;
}

.vf-country-detail__hero .vf-country-detail__heading p {
  margin: 5px 0 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.3;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.28);
}


/* Country summary and destination list */

.vf-country-detail__summary {
  box-sizing: border-box;
  width: 100%;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 14px 12px !important;
}

.vf-country-detail__summary-copy {
  min-width: 0;
}

.vf-country-detail__summary h3 {
  margin: 0;
  color: var(--vf-ink);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
}

.vf-country-detail__summary p {
  margin: 4px 0 0;
  color: var(--vf-muted);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.3;
}

.vf-country-detail__fare {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  padding: 6px 9px;
  border-radius: 10px;
  background: #e7f4ff;
  color: #087fd4;
  white-space: nowrap;
}

.vf-country-detail__fare small {
  font-size: 11px;
  font-weight: 600;
}

.vf-country-detail__fare strong {
  font-size: 15px;
  font-weight: 700;
}

.vf-explore
.vf-explore__shell
.vf-explore__panel.is-country-detail
.vf-country-detail__results {
  box-sizing: border-box;
  width: 100%;
  min-height: 0;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 10px;
  padding: 0 14px 14px !important;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: auto;
  scrollbar-width: thin;
  scrollbar-color: #b5bdc8 transparent;
}

.vf-country-detail__results::-webkit-scrollbar {
  width: 5px;
}

.vf-country-detail__results::-webkit-scrollbar-thumb {
  border-radius: 10px;
  background: #b5bdc8;
}

.vf-country-detail__results .vf-destination-card {
  flex: 0 0 auto;
}


/* Responsive balanced cards */

@media (max-width: 767px) {
  .vf-explore
  .vf-explore__shell
  .vf-explore__panel.is-country-detail
  .vf-country-detail__hero {
    height: clamp(150px, 25vh, 184px);
    flex-basis: clamp(150px, 25vh, 184px);
  }

  .vf-country-detail__hero .vf-country-detail__heading {
    right: 14px;
    bottom: 12px;
    left: 14px;
  }

  .vf-explore .vf-destination-card {
    min-height: 96px;
    grid-template-columns: 76px minmax(0, 1fr);
  }

  .vf-explore .vf-destination-card__image {
    width: 76px;
    height: 76px;
  }
}

/* ---------------------------------------------------------
   Explore results refinements
   --------------------------------------------------------- */

/* City-card prices stand on their own; the country summary keeps its label. */
.vf-explore .vf-destination-card__price::before {
  content: none !important;
  display: none !important;
}

/* Keep every results pane scrollable without drawing a scrollbar. */
.vf-explore .vf-results-scroll,
.vf-explore .vf-country-detail__results {
  scrollbar-width: none !important;
  -ms-overflow-style: none;
}

.vf-explore .vf-results-scroll::-webkit-scrollbar,
.vf-explore .vf-country-detail__results::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}

/*
 * On a landscape tablet the filter bar sits at the bottom-right of the map.
 * Anchor the price/duration cards above their buttons and keep their internal
 * sizing independent from the responsive search-panel width rules.
 */
@media (min-width: 768px) and (max-width: 1366px) and (orientation: landscape) {
  html.vf-explore-tablet-boot .vf-filter-slider-menu,
  .vf-explore__shell.is-tablet-layout .vf-filter-slider-menu {
    position: relative !important;
    overflow: visible !important;
  }

  html.vf-explore-tablet-boot .vf-filter-slider-panel,
  html.vf-explore-tablet-boot
    .vf-filter-slider-menu:last-child
    .vf-filter-slider-panel,
  .vf-explore__shell.is-tablet-layout .vf-filter-slider-panel,
  .vf-explore__shell.is-tablet-layout
    .vf-filter-slider-menu:last-child
    .vf-filter-slider-panel {
    position: absolute !important;
    inset: auto 0 calc(100% + 10px) auto !important;
    box-sizing: border-box !important;
    width: 260px !important;
    min-width: 260px !important;
    max-width: min(260px, calc(100vw - 32px)) !important;
    height: auto !important;
    max-height: min(260px, calc(100dvh - 96px)) !important;
    margin: 0 !important;
    padding: 15px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  html.vf-explore-tablet-boot .vf-filter-slider-panel__header,
  .vf-explore__shell.is-tablet-layout .vf-filter-slider-panel__header {
    margin-bottom: 14px !important;
  }

  html.vf-explore-tablet-boot .vf-filter-slider-reset,
  .vf-explore__shell.is-tablet-layout .vf-filter-slider-reset {
    width: 100% !important;
    margin: 12px 0 0 !important;
  }
}

/*
 * Some 10-inch Android tablets expose a desktop-class CSS viewport wider
 * than 1366px. Use the runtime tablet marker so Price and Trip duration
 * always share the same compact popup geometry on those devices.
 */
html.vf-explore-tablet-boot
  body.page-id-1948
  .vf-filter-slider-menu
  .vf-filter-slider-panel,
body.page-id-1948
  .vf-explore__shell.is-tablet-layout
  .vf-filter-slider-menu
  .vf-filter-slider-panel {
  position: absolute !important;
  inset: auto 0 calc(100% + 10px) auto !important;
  box-sizing: border-box !important;
  width: 280px !important;
  min-width: 280px !important;
  max-width: min(280px, calc(100vw - 32px)) !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: min(280px, calc(100dvh - 96px)) !important;
  margin: 0 !important;
  padding: 15px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

/* ---------------------------------------------------------
   Results-panel card alignment and country-detail divider
   --------------------------------------------------------- */

/* The visible scrollbar was removed, so do not reserve its former gutter. */
.vf-explore__panel:not(.is-country-detail):not(.is-destination-detail)
  .vf-results-scroll {
  padding-right: 0 !important;
}

/* Align the divider and country-detail cards to the same inner edges. */
.vf-explore
  .vf-explore__shell
  .vf-explore__panel.is-country-detail
  .vf-country-detail__results {
  width: calc(100% - 28px) !important;
  margin: 0 14px !important;
  padding: 10px 0 14px !important;
  border-top: 1px solid var(--vf-line);
}

/* Keep the first card fully visible when it is hovered. */
.vf-explore
  .vf-explore__shell
  .vf-explore__panel.is-country-detail
  .vf-country-detail__results
  .vf-destination-card:hover {
  transform: none;
}
