/* The homepage palette, limited to Tourvisor on the country landings. */
:is(#tourvisor-search, .TVMobileContainer, .TVMobileViewContent) {
  --tv-main-color: #ff8c00 !important;
  --tv-main-text-color: #fff !important;
  --tv-search-button-color: #007bff !important;
  --tv-search-button-text-color: #fff !important;
}

#tourvisor-search :is(.TVInterfaceWrapper, .TVMainForm, .TVFilterForm),
:is(#tourvisor-search, .TVMobileContainer, .TVMobileViewContent) .TVMobileForm > .TVFormBody {
  background: #ff8c00 !important;
}

#tourvisor-search .TVInterfaceWrapper {
  border-radius: 10px !important;
}

#tourvisor-search .TVMainForm {
  border-radius: 10px 10px 0 0 !important;
}

#tourvisor-search .TVFilterForm {
  border-radius: 0 0 10px 10px !important;
}

#tourvisor-search .TVMainForm .TVMainFilter {
  border-radius: 4px !important;
}

:is(#tourvisor-search, .TVMobileContainer, .TVMobileViewContent) .TVMobileForm > .TVFormBody {
  border-radius: 10px;
}

:is(#tourvisor-search, .TVMobileContainer, .TVMobileViewContent) .TVMobileForm .TVToggleSwitchItem.TVActive {
  color: #ff8c00 !important;
}

:is(#tourvisor-search, .TVMobileContainer, .TVMobileViewContent) .TVMobileForm :is(.TVTopFormBlock, .TVSelect, .TVToggleSwitchItem:not(.TVActive)),
#tourvisor-search .TVMainForm :is(.TVTopFormBlock, .TVSearchModeControl .TVInputRadioContent, .TVDepartureSelect .TVSelect) {
  color: #fff !important;
}

#tourvisor-search .TVMainForm .TVSearchModeControl .TVInputRadioLabel {
  border-color: #fff !important;
}

#tourvisor-search .TVMainForm .TVSearchModeControl .TVInputRadioLabelCheck {
  background-color: #ff8c00 !important;
}

:is(#tourvisor-search, .TVMobileContainer, .TVMobileViewContent) :is(.TVSearchButton, .TVMSearchButton) {
  background: #007bff !important;
  border-color: #007bff !important;
  border-radius: 4px !important;
  color: #fff !important;
  font-weight: 700;
  text-transform: uppercase;
}

:is(#tourvisor-search, .TVMobileContainer, .TVMobileViewContent) :is(.TVSearchButton, .TVMSearchButton):hover {
  background: #0069d9 !important;
  border-color: #0069d9 !important;
}

:is(#tourvisor-search, .TVMobileContainer, .TVMobileViewContent) :is(.TVSearchButton, .TVMSearchButton) span {
  color: inherit !important;
}

/* The result helper can be reparented to Tourvisor's mobile view or tour modal. */
.ot-mobile-search-assist {
  background: #fff7ed !important;
  border-color: #eadfd2 !important;
}

.ot-mobile-search-assist .ot-msa-title {
  color: #241a12 !important;
}

.ot-mobile-search-assist .ot-msa-action {
  border-color: #e8ddd1 !important;
}

:is(#tourvisor-search, .TVMobileContainer, .TVMobileViewContent, .TVTourCardWindow) :is(.TVResultListViewList, .TVResultItemBeforeDescriptionWrapper, .TVMResultItemBeforeDescriptionWrapper)::before,
:is(#tourvisor-search, .TVMobileContainer, .TVMobileViewContent, .TVTourCardWindow) .TVTourCardPriceControl::after {
  content: "Такси в аэропорт в подарок при покупке тура от 200 000 ₽. Скидки до 50% на отдельные предложения. Менеджер проверит цену и доплаты.";
  display: block;
  margin: 8px 0;
  color: #241a12;
  font-size: 13px;
  line-height: 1.4;
  white-space: normal;
}

:is(#tourvisor-search, .TVMobileContainer, .TVMobileViewContent) .TVResultListViewList::before {
  margin: 10px 10px 14px;
  padding: 12px 14px;
  border: 1px solid #eadfd2;
  border-radius: 12px;
  background: #fff7ed;
  font-size: 14px;
  font-weight: 700;
}

:is(#tourvisor-search, .TVMobileContainer, .TVMobileViewContent, .TVTourCardWindow) .TVOfficeChoiceControlTitle::after {
  content: "Тур можно купить онлайн через любой офис.";
  display: block;
  margin: 8px 0 0;
  color: #241a12;
  font-size: 13px;
  line-height: 1.4;
  white-space: normal;
}

@media (prefers-reduced-motion: no-preference) {
  :is(#tourvisor-search, .TVMobileContainer, .TVMobileViewContent) :is(.TVHelpRequestControlRequest, .TVResultMobileRequestHelpButton) {
    animation: ot-country-tv-help 2s ease-out 3;
  }
}

@keyframes ot-country-tv-help {
  from { box-shadow: 0 0 0 0 rgb(255 140 0 / 50%); }
  to { box-shadow: 0 0 0 12px rgb(255 140 0 / 0%); }
}

#ot-country-search-assist {
  position: fixed;
  z-index: 999900;
  left: 50%;
  bottom: 94px;
  width: min(820px, calc(100vw - 36px));
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 12px);
  transition: opacity .24s ease, transform .28s ease;
}

#ot-country-search-assist.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

#ot-country-search-assist .search-assist__inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px 16px;
  padding: 13px 44px 13px 17px;
  border: 1px solid rgb(245 130 32 / 34%);
  border-radius: 18px;
  background: rgb(255 250 245 / 97%);
  box-shadow: 0 18px 54px rgb(42 25 12 / 22%);
  backdrop-filter: blur(12px);
}

#ot-country-search-assist .search-assist__copy {
  margin: 0;
  color: #2a1d14;
  font-size: 15px;
  font-weight: 750;
  line-height: 1.35;
}

#ot-country-search-assist .search-assist__send {
  min-height: 44px;
  padding: 10px 15px;
  border: 0;
  border-radius: 13px;
  color: #fff;
  background: #f58220;
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}

#ot-country-search-assist .search-assist__channels {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

#ot-country-search-assist .search-assist__channels[hidden] {
  display: none;
}

#ot-country-search-assist .search-assist__channel {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid rgb(20 16 11 / 12%);
  border-radius: 11px;
  color: #241a12;
  background: #fff;
  font-size: 13px;
  font-weight: 750;
  text-decoration: none;
}

#ot-country-search-assist .search-assist__close {
  position: absolute;
  top: 7px;
  right: 8px;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #715f51;
  background: transparent;
  font-size: 23px;
  line-height: 1;
  cursor: pointer;
}

@media (max-width: 620px) {
  #ot-country-search-assist .search-assist__inner {
    grid-template-columns: 1fr;
    gap: 9px;
  }
}

@media (max-width: 360px) {
  #search-shell:has(#tourvisor-search .tv-loaded) { padding-inline: 4px; }
}

@media (prefers-reduced-motion: reduce) {
  #ot-country-search-assist { transition: none; }
}
