/* Egypt page skin for the unmodified Tourvisor module.
   Vendor controls, state classes, prices and mobile navigation stay native.
   The mobile module replaces the outer body class with TVMobileContainer;
   this stylesheet is loaded only by the Egypt page and its native screens. */
body:is(.eg-native-search, .TVMobileContainer) {
  --eg-tv-navy: #10345b;
  --eg-tv-teal: #168b95;
  --eg-tv-orange: #f15b26;
  --eg-tv-muted: #55718c;
  --eg-tv-line: #d1e5e9;
  --eg-tv-pale: #eef8f9;
  --eg-tv-glass-bg: rgba(222, 250, 255, .72);
  --eg-tv-glass-border: rgba(255, 255, 255, .85);
  --eg-tv-glass-shadow: 0 12px 40px rgba(14, 72, 92, .12);
}

body:is(.eg-native-search, .TVMobileContainer) :is(.tv-search-form, .TVSearchResults, .tv_drop_panel) {
  color: var(--eg-tv-navy);
  font-family: Arial, "Helvetica Neue", sans-serif;
  line-height: 1.4;
}
body:is(.eg-native-search, .TVMobileContainer) .tv-search-form { width: 100%; min-width: 0; }
body:is(.eg-native-search, .TVMobileContainer) .eg-native-catalog {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 300px;
  --eg-tv-form-height: 162px;
  --eg-tv-status-height: 138px;
  --eg-tv-status-space: 0px;
}
body:is(.eg-native-search, .TVMobileContainer) .eg-native-catalog > .eg-tabs {
  position: static;
  order: 2;
  margin-top: 12px;
}
body:is(.eg-native-search, .TVMobileContainer) #eg-tourvisor { width: 100%; min-width: 0; order: 3; }
body:is(.eg-native-search, .TVMobileContainer) .eg-native-status {
  order: 1;
  box-sizing: border-box;
  min-height: 138px;
  padding: 24px;
  border: 1px solid rgba(255, 255, 255, .9);
  border-radius: 22px;
  background: rgba(227, 250, 251, .92);
  box-shadow: 0 8px 26px rgba(16, 55, 85, .07);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  color: var(--eg-tv-navy);
}
body:is(.eg-native-search, .TVMobileContainer) .eg-native-status [data-native-message] {
  margin: 0;
  max-width: 75ch;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.45;
}
body:is(.eg-native-search, .TVMobileContainer) .eg-native-status [data-native-recovery] {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}
body:is(.eg-native-search, .TVMobileContainer) .eg-native-status .eg-button {
  width: auto;
  min-height: 36px;
  padding: 7px 14px;
  font-size: 14px;
  line-height: 1.3;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVWideFilterForm, .TVSearchingForm, .TVMainForm,
  .TVMainFilter, .TVMainSelect, .TVFilterResults, .TVSearchResults,
  .TVResultListViewItem, .TVHotelResultItem) { box-sizing: border-box; }
body:is(.eg-native-search, .TVMobileContainer) :is(.TVSearchingForm, .TVInterfaceWrapper, .TVMainForm, .TVFilterForm, .TVMobileForm, .TVFormBody) {
  color: var(--eg-tv-navy) !important;
  text-shadow: none !important;
}
/* Undo legacy site rules without changing the supplier's icon font or states. */
body:is(.eg-native-search, .TVMobileContainer) :is(.tv-search-form, .TVSearchResults, .tv_drop_panel) svg,
body:is(.eg-native-search, .TVMobileContainer) :is(.tv-search-form, .TVSearchResults, .tv_drop_panel) svg * {
  fill: currentColor !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.tv-search-form, .TVSearchResults, .tv_drop_panel) svg[fill="none"],
body:is(.eg-native-search, .TVMobileContainer) :is(.tv-search-form, .TVSearchResults, .tv_drop_panel) svg [fill="none"] {
  fill: none !important;
}
body:is(.eg-native-search, .TVMobileContainer) .tv-search-form img {
  display: inline-block;
  width: auto;
  height: auto;
  max-width: 100%;
}
body:is(.eg-native-search, .TVMobileContainer) .TVAddSelect { flex-direction: row !important; }
body:is(.eg-native-search, .TVMobileContainer) .TVSearchModeControl .TVInputRadioContent {
  color: var(--eg-tv-navy) !important;
  font-size: 13px !important;
  line-height: 1.4;
}
body:is(.eg-native-search, .TVMobileContainer) .TVSearchModeControl .TVInputRadioLabel {
  border-color: var(--eg-tv-teal) !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVSearchModeControl .TVInputRadioLabelCheck {
  background: var(--eg-tv-teal) !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVAddSelectArrow, .TVAddSelectReset) {
  align-items: center !important;
  color: var(--eg-tv-muted) !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVButtonColor, .TVButtonHover, .TVSideNavContent,
  .TVResultListViewMore, .TVMobileResultBtn, .TVMobilePanelHeader,
  .TVMResultItemAddToCartWrapper, .TVMSResultItemAddToCartWrapper,
  .TVMTourResultItemCart, .TVUserFormCommentButton, .TVUserFormPromocodeButton,
  .TVHotelCardShowMoreBtn, .TVMobileTourFlightsListControl) {
  background: var(--eg-tv-teal) !important;
  color: #fff !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVButtonColor, .TVButtonHover) {
  font-size: 13px !important;
  font-weight: 600 !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVSearchButton, .TVSearchApplyButton,
  .TVResultItemPriceValueArrow, .TVMResultItemPriceValueArrow,
  .TVMSResultItemPriceValueArrow, .TVSTourResultItemArrow, .TVMTourResultItemArrow,
  .TVTourResultItemPrice .TVResultPriceButton,
  .TVRequestForm .TVRequestFormSendButton, .TVTourCardActionButtonControl.TVColorBlue315) {
  background: var(--eg-tv-orange) !important;
  color: #fff !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVSearchButton {
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  font: 700 16px/1.2 Arial, "Helvetica Neue", sans-serif !important;
  border-radius: 12px !important;
  text-shadow: none !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVSearchButton:not(.TVHide):not([hidden]) { display: flex !important; }
body:is(.eg-native-search, .TVMobileContainer) :is(.TVSearchButton, .TVSearchApplyButton):hover {
  background: #ec4c15 !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVResultItemPriceValueArrow {
  border: 0;
  border-radius: 10px;
}
body:is(.eg-native-search, .TVMobileContainer) .TVResultItemPriceValueArrow .TVResultItemButton {
  box-sizing: border-box;
  width: 32px;
  min-width: 32px;
  height: 32px;
  border: 0 !important;
  border-radius: 10px;
  background: transparent !important;
  color: #fff !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVResultItemPriceValueArrow .TVResultItemButtonIcon { color: #fff !important; }
body:is(.eg-native-search, .TVMobileContainer) .TVResultItemPriceValueArrow:hover { background: #ec4c15 !important; }
body:is(.eg-native-search, .TVMobileContainer) :is(.TVMainSelect, .TVAddSelect, .TVSearchButton, .TVSearchApplyButton, .TVResultNavButton):focus-visible {
  outline: 3px solid var(--eg-tv-teal);
  outline-offset: 3px;
}

/* Neutralise the old global glass/95%-width rules on the results. */
body:is(.eg-native-search, .TVMobileContainer) :is(.TVSearchResults, .TVResultListViewItem, .TVHotelResultItem) {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  overflow: visible;
  box-shadow: none !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVSearchResults {
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--eg-tv-navy);
}
body:is(.eg-native-search, .TVMobileContainer) .TVResultListViewItem {
  margin: 0 0 18px !important;
  background: #fff !important;
  border: 1px solid var(--eg-tv-line) !important;
  border-radius: 12px !important;
  box-shadow: 0 5px 18px rgba(16, 55, 85, .04) !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVHotelResultItem {
  margin: 0 !important;
  border: 0 !important;
  border-radius: inherit !important;
  background: #fff !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVHotelInfoTitleLink, .TVHotelInfo .TVResultItemTitle a,
  .TVHotelInfo .TVSResultItemTitle a) {
  color: var(--eg-tv-navy) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.3;
  text-decoration: none !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVHotelInfoTitleLink:hover { text-decoration: underline !important; }
body:is(.eg-native-search, .TVMobileContainer) .TVResultItemPriceValue {
  color: var(--eg-tv-navy) !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.2;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVResultItemPriceKilo, .TVResultItemPriceSuffix) {
  color: var(--eg-tv-muted) !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVResultNavButton {
  padding: 8px 11px !important;
  border: 1px solid #c8e1e8 !important;
  border-radius: 8px !important;
  background: var(--eg-tv-pale) !important;
  color: #08798a !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVResultNavButton:hover,
body:is(.eg-native-search, .TVMobileContainer) .TVResultNavButton.TVActive {
  background: #def1f4 !important;
  color: #065e6b !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVResultNavButton svg,
body:is(.eg-native-search, .TVMobileContainer) .TVAddCartButton svg,
body:is(.eg-native-search, .TVMobileContainer) .TVResultToolbarShareLinkIcon svg {
  fill: currentColor !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVResultToolbar, .TVResultToolbarFloat) {
  background: #f6fafb !important;
  color: var(--eg-tv-navy);
}
body:is(.eg-native-search, .TVMobileContainer) .TVResultToolbar :is(.TVButtonHover, .TVComboBox,
  .TVResultToolbarSort, .TVResultToolbarShowTours, .TVResultToolbarShareLink,
  .TVResultToolbarOperators, .TVResultToolbarUp) {
  background: #fff !important;
  color: var(--eg-tv-navy) !important;
  font-size: 12px !important;
  border-radius: 8px;
}
body:is(.eg-native-search, .TVMobileContainer) .TVResultToolbarSort .TVComboBox .TVTextBox {
  color: var(--eg-tv-navy) !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVResultToolbarProgress .TVProgressLine { background: var(--eg-tv-teal) !important; }
body:is(.eg-native-search, .TVMobileContainer) :is(.TVTourResultByRoomItemContent, .TVTourCardWindowInfoBlock) {
  background: var(--eg-tv-pale) !important;
  color: var(--eg-tv-navy) !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVTourResultByRoomItemName, .TVTourResultByRoomItemPrice) {
  color: var(--eg-tv-navy) !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVTourResultByRoomItemParams { color: var(--eg-tv-muted) !important; }
body:is(.eg-native-search, .TVMobileContainer) .TVTourResultByRoomItemArrow { color: var(--eg-tv-teal) !important; }
body:is(.eg-native-search, .TVMobileContainer) .TVTourResultItemPrice .TVResultPriceButton,
body:is(.eg-native-search, .TVMobileContainer) .TVTourResultItemPrice .TVResultPriceButton * {
  color: #fff !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVTourResultItemPrice .TVResultPriceButton :is(
  .TVResultPriceButtonValue, .TVResultPriceButtonKilo, .TVResultPriceButtonCurrency,
  .TVTourResultItemPriceValue, .TVTourResultItemPriceCurrency, .TVPriceCurrency) {
  opacity: 1 !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVTourResultItemPrice .TVResultPriceButtonValue { font-weight: 700 !important; }
body:is(.eg-native-search, .TVMobileContainer) :is(.TVResultItemPriceValueArrow, .TVTourResultItemPrice .TVResultPriceButton) svg,
body:is(.eg-native-search, .TVMobileContainer) :is(.TVResultItemPriceValueArrow, .TVTourResultItemPrice .TVResultPriceButton) svg * {
  color: #fff !important;
  fill: currentColor !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVResultItemPriceValueArrow, .TVTourResultItemPrice .TVResultPriceButton) svg[fill="none"],
body:is(.eg-native-search, .TVMobileContainer) :is(.TVResultItemPriceValueArrow, .TVTourResultItemPrice .TVResultPriceButton) svg [fill="none"] {
  fill: none !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVResultItemPriceValueArrow, .TVTourResultItemPrice .TVResultPriceButton) svg[stroke]:not([stroke="none"]),
body:is(.eg-native-search, .TVMobileContainer) :is(.TVResultItemPriceValueArrow, .TVTourResultItemPrice .TVResultPriceButton) svg [stroke]:not([stroke="none"]) {
  stroke: currentColor !important;
}
/* This old filter heading came from the site CSS, not the native control. */
body:is(.eg-native-search, .TVMobileContainer) .TVModuleFiltersTitle::after { content: none; }

body:is(.eg-native-search, .TVMobileContainer) .TVTourCardPriceControl {
  height: auto !important;
  min-height: 32px;
  max-height: none;
  overflow: visible;
}
body:is(.eg-native-search, .TVMobileContainer) .TVTourCardPriceControl .TVTourCardPriceValueWrapper {
  height: auto !important;
  min-height: 32px;
}

@media (min-width: 1024px) {
  body:is(.eg-native-search, .TVMobileContainer) .egypt-design .eg-native-wrap {
    position: relative;
    z-index: 1;
    margin-top: -90px;
    padding-bottom: 28px;
  }
  body:is(.eg-native-search, .TVMobileContainer) .eg-native-catalog[data-native-form="true"] { display: block; }
  body:is(.eg-native-search, .TVMobileContainer) .eg-native-catalog[data-native-form="true"] > .eg-tabs {
    position: absolute;
    top: calc(var(--eg-tv-form-height) + var(--eg-tv-status-space) + 10px);
    inset-inline: 0;
    margin: 0;
    padding-top: 0;
  }
  body:is(.eg-native-search, .TVMobileContainer) .eg-native-catalog[data-native-form="true"]:has(> .eg-native-status:not([hidden])) {
    --eg-tv-status-space: calc(var(--eg-tv-status-height) + 12px);
  }
  body:is(.eg-native-search, .TVMobileContainer) .eg-native-catalog[data-native-form="true"] > .eg-native-status:not([hidden]) {
    position: absolute;
    top: calc(var(--eg-tv-form-height) + 12px);
    inset-inline: 0;
    margin: 0;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    overflow: visible;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVSearchingForm {
    width: 100%;
    min-width: 0;
    gap: 0;
    overflow: visible;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVMainForm {
    position: relative;
    isolation: isolate;
    margin: 0 !important;
    min-height: 162px;
    padding: 18px 22px 12px !important;
    border: 1px solid var(--eg-tv-glass-border);
    border-radius: 30px;
    background: var(--eg-tv-glass-bg) !important;
    box-shadow: var(--eg-tv-glass-shadow) !important;
    overflow: visible;
    gap: 0 !important;
  }
  /* Blur only the decorative layer so fixed native popups keep their viewport. */
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVMainForm::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    border-radius: inherit;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVMainFilter {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 1.03fr) minmax(0, 1.23fr) minmax(0, .94fr) minmax(0, 1.1fr) 164px;
    gap: 0;
    width: 100%;
    min-width: 0;
    height: auto !important;
    min-height: 0 !important;
    margin: 12px 0 0 !important;
    padding: 4px;
    border-radius: 16px;
    background: rgba(255, 255, 255, .76);
    align-items: center;
    overflow: visible;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm.TVHotelsMode .TVMainFilter {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1.6fr) minmax(0, 1fr) 164px;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVMainFilter > * {
    min-width: 0 !important;
    max-width: none;
    width: auto !important;
    margin: 0 !important;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVMainFilter > :not(.TVSearchButton) {
    border-right: 1px solid #c8e1e8;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVMainSelect {
    position: relative;
    height: 60px !important;
    min-height: 0 !important;
    padding: 9px 30px 9px 14px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    justify-content: center !important;
    gap: 0;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVMainSelectPlaceholder {
    color: var(--eg-tv-muted) !important;
    margin: 0 0 4px !important;
    font: 400 12px/1.3 Roboto, Arial, sans-serif !important;
    text-transform: none !important;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVMainFilter .TVMainSelect::after {
    content: "";
    position: absolute;
    right: 14px;
    top: calc(50% - 4px);
    width: 6px;
    height: 6px;
    border-right: 1.5px solid #17466d;
    border-bottom: 1.5px solid #17466d;
    transform: rotate(45deg);
    pointer-events: none;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVMainSelectContent {
    color: var(--eg-tv-navy) !important;
    font: 600 16px/1.3 Roboto, Arial, sans-serif !important;
    height: auto !important;
    min-height: 20px;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVSearchButton {
    height: 52px !important;
    min-height: 52px !important;
    padding: 0 18px !important;
    margin: 0 !important;
    max-width: none;
    width: auto !important;
    border: 0 !important;
    border-radius: 13px !important;
    background: #ff5a1f !important;
    font: 600 17px/1.2 Roboto, Arial, sans-serif !important;
    gap: 12px;
    white-space: nowrap;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVSearchFormMode { padding: 0 !important; margin: 0 !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVSearchModeControl .TVRadioGroup { gap: 0 !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVSearchModeControl .TVInputRadio { padding: 0 !important; margin: 0 !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVSearchModeControl .TVInputRadioWrapper {
    padding: 8px 20px !important;
    border-radius: 24px;
    background: rgba(255, 255, 255, .65);
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVSearchModeControl .TVInputRadio:has(input:checked) .TVInputRadioWrapper { background: #168b95; }
  body:is(.eg-native-search, .TVMobileContainer) .TVSearchModeControl .TVInputRadioLabel { display: none !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVSearchModeControl .TVInputRadioContent {
    display: flex;
    align-items: center;
    gap: 10px;
    font: 500 13px/1.4 Roboto, Arial, sans-serif !important;
    color: #17466d !important;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVSearchModeControl .TVInputRadio:has(input:checked) .TVInputRadioContent { color: #fff !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVSearchModeControl .TVInputRadio:has(input:focus-visible) .TVInputRadioWrapper {
    outline: 3px solid var(--eg-tv-teal);
    outline-offset: 3px;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVMainFilterIcon { display: none !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVHotelsSearch {
    box-sizing: border-box;
    width: 100% !important;
    height: 60px !important;
    min-height: 0 !important;
    padding: 9px 14px !important;
    justify-content: center !important;
    gap: 3px;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVHotelsSearchPlaceholder {
    font: 400 12px/1.3 Roboto, Arial, sans-serif !important;
    text-transform: none !important;
    color: var(--eg-tv-muted) !important;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVHotelsSearchContent,
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVHotelsSearch .TVNewSearchInput {
    box-sizing: border-box;
    width: 100% !important;
    min-width: 0 !important;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVHotelsSearch .TVNewSearchInput input {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 21px !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    color: var(--eg-tv-navy) !important;
    font: 500 15px/21px Roboto, Arial, sans-serif !important;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVHotelTourSearchContent { min-width: 0; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVHotelTourSearchMainContent { min-width: 0; font-size: 16px !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVToggleSwitch { background: rgba(255, 255, 255, .58) !important; border-radius: 30px !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVToggleSwitchItem { padding: 7px 20px !important; color: #17466d !important; font: 500 13px/1.4 Roboto, Arial, sans-serif !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVToggleSwitchSelection { background: var(--eg-tv-teal) !important; border-radius: 30px !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVToggleSwitchItem.TVActive { color: #fff !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVFilterResults {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    align-items: start;
    gap: 27px;
    padding-top: calc(88px + var(--eg-tv-status-space));
    width: 100%;
    min-width: 0;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVFilterResults > * {
    min-width: 0 !important;
    width: 100% !important;
    max-width: none !important;
    flex: none !important;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVFilterForm {
    position: relative;
    isolation: isolate;
    box-sizing: border-box;
    padding: 20px 18px !important;
    border: 1px solid rgba(207, 230, 234, .95);
    border-radius: 18px;
    background: transparent !important;
    box-shadow: 0 8px 26px rgba(16, 55, 85, .05) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: visible;
    gap: 18px;
    max-height: none;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVFilterForm::before {
    content: "Фильтры";
    color: var(--eg-tv-navy);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVFilterForm::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    border-radius: inherit;
    background: rgba(227, 250, 251, .82);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVFilterForm :is(.TVAddSelect, .TVStarsSelect, .TVCheckboxControl) {
    box-sizing: border-box;
    width: 100%;
    height: 44px !important;
    min-height: 44px;
    border: 1px solid var(--eg-tv-line);
    border-radius: 10px;
    box-shadow: none !important;
    background: rgba(255, 255, 255, .92) !important;
    color: var(--eg-tv-navy);
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVFilterForm :is(.TVAddSelect, .TVCheckboxControl) { padding-left: 11px; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVFilterForm :is(.TVAddSelectPlaceholder, .TVStarsSelectTitle) { color: var(--eg-tv-muted) !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVFilterForm .TVAddSelectContent { color: var(--eg-tv-navy) !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVFilterForm :is(.TVAddSelect, .TVStarsSelect, .TVCheckboxControl).TVInvalid { border-color: #e31e22 !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVFilterForm .TVCheckboxControl.TVChecked::before {
    background: var(--eg-tv-teal);
    border-color: var(--eg-tv-teal);
    color: #fff;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVFilterForm :is(.TVAddSelectArrow, .TVAddSelectReset) {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    margin: 0 5px;
    line-height: 20px;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVSearchApplyButton {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 16px !important;
    border-radius: 9px !important;
    font-size: 14px !important;
    line-height: 1.2;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVSearchResults {
    position: relative;
    isolation: isolate;
    padding: 12px;
    border: 1px solid var(--eg-tv-glass-border) !important;
    border-radius: 30px !important;
    background: transparent !important;
    box-shadow: var(--eg-tv-glass-shadow) !important;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVSearchResults::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    background: var(--eg-tv-glass-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    pointer-events: none;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVResultListViewItem {
    padding: 13px !important;
    border: 1px solid rgba(255, 255, 255, .88) !important;
    border-radius: 18px !important;
    background: linear-gradient(130deg, rgba(255, 255, 255, .64), rgba(255, 255, 255, .30)) !important;
    box-shadow: 0 5px 18px rgba(16, 52, 91, .06), inset 0 1px 0 rgba(255, 255, 255, .72) !important;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVHotelResultItem,
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVResultToursContent > div { background: transparent !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVResultToolbar { background: rgba(255, 255, 255, .35) !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVResultToolbarFloat { background: rgba(232, 248, 250, .95) !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVHotelInfoTitleLink { font-size: 21px !important; line-height: 1.35; }
  body:is(.eg-native-search, .TVMobileContainer) .TVResultItemPriceValue { font-size: 21px !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVHotelResultItem .TVResultItem { align-items: stretch; gap: 20px; }
  body:is(.eg-native-search, .TVMobileContainer) .TVHotelResultItem .TVResultItemImageWrapper {
    flex: 0 0 35%;
    width: 35%;
    min-width: 0 !important;
    max-width: 35% !important;
    height: auto !important;
    min-height: 230px;
    margin-right: 0;
    border-radius: 8px;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVHotelResultItem .TVResultItemBodyWrapper {
    flex: 1 1 0;
    min-width: 0;
    padding: 5px 3px !important;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVHotelResultItem .TVResultItemFooter { flex-wrap: wrap; align-items: center; gap: 14px; }
  body:is(.eg-native-search, .TVMobileContainer) .TVResultNavButtons { display: flex; flex-wrap: wrap; gap: 7px; }
  body:is(.eg-native-search, .TVMobileContainer) .TVResultNavButtons .TVResultNavButton { margin-right: 0; }
}

@media (min-width: 1024px) and (max-width: 1199px) {
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVMainForm { padding: 18px 16px 12px !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVMainFilter {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 1.03fr) minmax(0, 1.38fr) minmax(0, .8fr) minmax(0, 1.1fr) 140px;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm.TVHotelsMode .TVMainFilter { grid-template-columns: minmax(0, 2fr) minmax(0, 1.6fr) minmax(0, 1fr) 140px; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVMainSelect { padding: 9px 24px 9px 12px !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVMainSelectPlaceholder { font-size: 10px !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVMainSelectContent { font-size: 14px !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVSearchButton { padding: 0 14px !important; font-size: 16px !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVWideFilterForm .TVFilterResults { gap: 20px; }
  body:is(.eg-native-search, .TVMobileContainer) .TVHotelResultItem .TVResultItem { gap: 13px; }
  body:is(.eg-native-search, .TVMobileContainer) .TVHotelInfoTitleLink { font-size: 18px !important; }
}

/* Only colours and legacy-rule fixes apply on mobile; native layout remains intact. */
@media (max-width: 1023px) {
  body:is(.eg-native-search, .TVMobileContainer) .egypt-design .eg-native-wrap { padding-top: 14px; padding-bottom: 24px; }
  body:is(.eg-native-search, .TVMobileContainer) .eg-native-status { padding: 20px; border-radius: 18px; }
  body:is(.eg-native-search, .TVMobileContainer) .eg-native-status [data-native-message] { font-size: 15px; }
  body:is(.eg-native-search, .TVMobileContainer) .eg-native-catalog[data-native-form="true"]:is([data-native-state="loading"], [data-native-state="unavailable"]) #eg-tourvisor { order: 1; }
  body:is(.eg-native-search, .TVMobileContainer) .eg-native-catalog[data-native-form="true"]:is([data-native-state="loading"], [data-native-state="unavailable"]) > .eg-native-status { order: 2; margin-top: 14px; }
  body:is(.eg-native-search, .TVMobileContainer) .eg-native-catalog[data-native-form="true"]:is([data-native-state="loading"], [data-native-state="unavailable"]) > .eg-tabs { order: 3; }
  body:is(.eg-native-search, .TVMobileContainer) .TVMobileForm { width: 100% !important; max-width: 100%; min-width: 0; }
  body:is(.eg-native-search, .TVMobileContainer) .TVMobileForm .TVFormBody {
    padding: 10px !important;
    border: 1px solid rgba(255, 255, 255, .9);
    border-radius: 18px;
    background: rgba(227, 250, 251, .94) !important;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVMobileForm .TVFormBody .TVFilterForm {
    color: var(--eg-tv-navy) !important;
    background: rgba(255, 255, 255, .78) !important;
    border-color: var(--eg-tv-line) !important;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVMobileForm .TVMainSelectContent {
    height: auto !important;
    color: var(--eg-tv-navy) !important;
    font-size: 15px !important;
    line-height: 1.3;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVMobileForm .TVSearchButton { padding: 0 16px !important; font-size: 16px !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVResultListViewItem { margin-bottom: 13px !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVResultItemBodyWrapper { padding: 10px !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVHotelInfoTitleLink { font-size: 18px !important; }
}

/* Native full-screen mobile results preserve their own list/carousel geometry. */
body.TVMobileContainer { background: #f6fafb; color: var(--eg-tv-navy); }
body:is(.eg-native-search, .TVMobileContainer) .TVMobileHeaderWrapper,
body:is(.eg-native-search, .TVMobileContainer) .TVMobilePanelHeader.TVMainColor {
  background: var(--eg-tv-teal) !important;
  color: #fff !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVMobilePanelHeader .TVProgressBar { background: rgba(255, 255, 255, .35); }
body:is(.eg-native-search, .TVMobileContainer) .TVMobilePanelHeader .TVProgressLine {
  background: #fff !important;
  border-color: #fff !important;
  box-shadow: none !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVMResultItemTitle, .TVMSResultItemTitle, .TVHotelTitleName) {
  color: var(--eg-tv-navy) !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVMResultItemSubTitle, .TVMSResultItemSubTitle,
  .TVMResultItemDescription, .TVMSResultItemDescription, .TVHotelTitleResort) {
  color: var(--eg-tv-muted) !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVMResultItemPriceValue, .TVMSResultItemPriceValue) {
  color: var(--eg-tv-navy) !important;
  font-weight: 700;
}
body:is(.eg-native-search, .TVMobileContainer) .TVMResultItemPriceValue { font-size: 20px !important; }
body:is(.eg-native-search, .TVMobileContainer) :is(.TVMResultItemPriceKilo, .TVMSResultItemPriceKilo,
  .TVMResultItemPriceSuffix, .TVMSResultItemPriceSuffix, .TVMResultItemPriceType, .TVMSResultItemPriceType,
  .TVMTourResultItemPriceCurrency) { color: var(--eg-tv-muted) !important; }
body:is(.eg-native-search, .TVMobileContainer) :is(.TVMTourResultItemPriceValue, .TVMTourResultItemPriceKilo) { color: var(--eg-tv-navy) !important; }
body:is(.eg-native-search, .TVMobileContainer) .TVMTourResultItem { background: var(--eg-tv-pale) !important; }
body:is(.eg-native-search, .TVMobileContainer) :is(.TVMResultItemPriceValueArrow, .TVMSResultItemPriceValueArrow, .TVMTourResultItemArrow)
  :is(.TVResultItemButton, .tv-button) {
  background: var(--eg-tv-orange) !important;
  border-radius: 50% !important;
  border: 0 !important;
  color: #fff !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVMResultItemPriceValueArrow, .TVMSResultItemPriceValueArrow, .TVMTourResultItemArrow)
  :is(.TVResultItemButton, .tv-button):hover { background: #ec4c15 !important; }
body:is(.eg-native-search, .TVMobileContainer) :is(.TVMResultItemPriceValueArrow, .TVMSResultItemPriceValueArrow,
  .TVMResultItemAddToCartWrapper, .TVMSResultItemAddToCartWrapper, .TVMTourResultItemCart, .TVMTourResultItemArrow) {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVMResultItemAddToCartWrapper, .TVMSResultItemAddToCartWrapper, .TVMTourResultItemCart)
  :is(.TVResultItemButton, .tv-button) {
  border-radius: 50% !important;
  border: 0 !important;
}
body:is(.eg-native-search, .TVMobileContainer) .TVAddCartButtonUi .tv-button:is(.tone-secondary, .tv-button--tone-secondary) {
  background: #edf3f5 !important;
  color: var(--eg-tv-navy) !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVMResultItemPriceValueArrow, .TVMSResultItemPriceValueArrow,
  .TVMTourResultItemArrow, .TVMTourResultItemCart, .TVAddCartButtonUi) svg,
body:is(.eg-native-search, .TVMobileContainer) :is(.TVMResultItemPriceValueArrow, .TVMSResultItemPriceValueArrow,
  .TVMTourResultItemArrow, .TVMTourResultItemCart, .TVAddCartButtonUi) svg * {
  fill: currentColor !important;
}
body:is(.eg-native-search, .TVMobileContainer) :is(.TVMResultItemPriceValueArrow, .TVMSResultItemPriceValueArrow,
  .TVMTourResultItemArrow, .TVMTourResultItemCart, .TVAddCartButtonUi) svg[fill="none"],
body:is(.eg-native-search, .TVMobileContainer) :is(.TVMResultItemPriceValueArrow, .TVMSResultItemPriceValueArrow,
  .TVMTourResultItemArrow, .TVMTourResultItemCart, .TVAddCartButtonUi) svg [fill="none"] {
  fill: none !important;
}

@media (max-width: 1023px) {
  body:is(.eg-native-search, .TVMobileContainer) .TVGalleryPage :is(.TVMobileHeaderWrapper, .TVMobilePanelHeader.TVMainColor) {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVGalleryPage .TVMobilePanelClose {
    border: 0 !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, .14) !important;
    color: #fff !important;
    box-shadow: none !important;
  }
  body:is(.eg-native-search, .TVMobileContainer) .TVGalleryPage .TVMobilePanelClose::before { color: #fff !important; }
  body:is(.eg-native-search, .TVMobileContainer) .TVGalleryPage .TVMobilePanelClose:hover { background: rgba(0, 0, 0, .38) !important; }
}
