@charset "UTF-8";html {
    --tv-font-theme1: "Tourvisor","Trebuchet MS",arial,sans-serif;
    --tv-font-theme2: "Open Sans","Trebuchet MS",arial,sans-serif
}

.tv-mt-15 {
    margin-top: 15px
}

.tv-mb-15 {
    margin-bottom: 15px
}

.tv-mb-30 {
    margin-bottom: 30px
}

.tv-mx-1 {
    margin-left: 1px;
    margin-right: 1px
}

.tv-mx-3 {
    margin-left: 3px;
    margin-right: 3px
}

t-p {
    display: block;
    margin-block-start:1em;margin-block-end:1em;margin-inline-start:0;margin-inline-end:0;unicode-bidi: isolate
}

t-b {
    font-weight: bolder
}

t-ul {
    display: block;
    list-style-type: disc;
    margin-block-start:1em;margin-block-end:1em;padding-inline-start:40px}

t-li,t-ul {
    unicode-bidi: isolate
}

t-li {
    display: list-item
}

t-span,t-sup {
    display: inline
}

t-sup {
    vertical-align: super;
    font-size: smaller;
    line-height: 0
}

t-table {
    display: table;
    border-collapse: separate;
    box-sizing: border-box;
    text-indent: 0;
    border-spacing: 2px
}

t-thead {
    display: table-header-group
}

t-tbody,t-thead {
    vertical-align: middle;
    border-color: inherit
}

t-tbody {
    display: table-row-group
}

t-tr {
    display: table-row;
    border-color: inherit
}

t-td,t-th,t-tr {
    vertical-align: inherit
}

t-td,t-th {
    display: table-cell
}

.TVMobileContainer * {
    box-sizing: content-box
}

html * {
    max-height: 999999px
}

.TVTable .tv_content {
    float: left
}

.tv_dtp_calendar {
    float: left;
    font-family: var(--tv-font-theme1)
}

.tv_dtp_table {
    display: inline-block;
    vertical-align: top
}

.tv_drop_panel .tv_dtp_calendar .tv_dtp_table t-td {
    border: 1px solid #fff
}

.tv_dtp_calendar t-table {
    background-color: #fff;
    border-collapse: separate
}

.tv_dtp_calendar t-tbody {
    font-size: 12px
}

.tv_dtp_calendar t-thead {
    font-size: 11px;
    text-transform: lowercase
}

.tv_dtp_calendar t-thead t-td {
    height: 24px;
    width: 32px
}

.tv_dtp_calendar t-td {
    padding: 0;
    height: 38px;
    width: 42px;
    text-align: center;
    vertical-align: top;
    font-family: var(--tv-font-theme2);
    font-weight: 700;
    line-height: 26px;
    font-size: 13px
}

.tv_dtp_calendar .TVLabel {
    float: none;
    margin-top: 6px;
    margin-bottom: 11px;
    text-align: center;
    color: #5e5c5c;
    font-size: 17px;
    font-weight: 300
}

.tv_dtp_right_cell,.tv_dtp_standart_cell {
    border-top: 1px solid #e8e6e7;
    border-left: 1px solid #e8e6e7
}

.tv_dtp_right_cell {
    border-right: 1px solid #e8e6e7
}

.tv_dtp_bottom_cell {
    border-left: 1px solid #e8e6e7;
    border-bottom: 1px solid #e8e6e7
}

.tv_dtp_bottom_cell,.tv_dtp_empty_cell {
    border-top: 1px solid #e8e6e7
}

.tv_dtp_last_cell {
    border: 1px solid #e8e6e7
}

.tv_dtp_header {
    height: 34px;
    border-radius: 3px 3px 0 0
}

.tv_calendar_header {
    text-align: center;
    font-size: 11pt;
    line-height: 31px;
    color: #fff;
    letter-spacing: 1px;
    position: relative;
    height: 34px;
    display: inline-block;
    vertical-align: top
}

.tv_dtp_footer {
    font-size: 10px;
    margin-top: 8px;
    color: #757373;
    line-height: 1.39
}

.tv_unavailable_days {
    color: #c7c7c7
}

.tv_available_days {
    background-color: #fff;
    cursor: pointer!important;
    color: #000
}

.tv_fly_available {
    background-color: #ddd;
    color: #000
}

.tv_today {
    color: #c7c7c7
}

.tv_drop_panel {
    margin-top: 10px;
    font-family: var(--tv-font-theme1);
    position: absolute;
    z-index: 100000;
    background-color: #fff;
    box-shadow: 0 5px 15px 0 #777;
    line-height: 24px
}

.tv_drop_panel .tv_content {
    margin: 20px
}

.tv_dtp_table.tv_dtp_margin_left {
    float: right
}

.tv_selected_date,.tv_selected_date:hover {
    background-color: #e1ffc4;
    color: #000
}

.tv_selected_date {
    z-index: 1
}

.tv_available_days:hover {
    background-color: #cef7a7;
    color: #000
}

.tv_selected_date.tv_last_day,.tv_selected_date.tv_start_day,.tv_selected_date:hover.tv_last_day,.tv_selected_date:hover.tv_start_day {
    background-color: #5cb85c;
    color: #fff;
    position: relative;
    overflow: hidden
}

.tv_selected_date.tv_last_day:after,.tv_selected_date.tv_start_day:after {
    content: "ночей";
    position: absolute;
    left: 5px;
    top: 17px;
    font-weight: 400;
    font-size: 9px;
    text-transform: uppercase
}

.tv_selected_date:hover.tv_start_date.tv_last_date:before {
    border-left: 0;
    border-right: 0
}

.tv_start_date:after {
    content: " ";
    position: absolute;
    left: 26px;
    top: 0;
    z-index: -1;
    top: 17px
}

.tv_last_date:before {
    content: " ";
    position: absolute;
    left: -14px;
    top: 0;
    z-index: -1
}

.tv_last_date.tv_start_date:after,.tv_last_date.tv_start_date:before {
    border: none
}

.tv_dtp_moz_fix {
    color: #fff
}

.TVForm {
    width: 100%;
    float: left
}

.TVListBoxItem {
    padding: 2px 10px;
    cursor: pointer;
    text-transform: capitalize
}

.TVItemContent {
    margin-left: 26px;
    line-height: 1;
    padding-right: 10px
}

.TVListBox t-span {
    font-weight: 400
}

.TVListBoxItem:hover {
    background-color: #efefef;
    border-radius: 3px
}

.TVMobilePanel .TVListBoxItem:hover {
    background: none
}

.TVListBoxItem.TVDisabled {
    color: #ccc
}

.TVListBoxItem.TVDisabled:hover {
    background-color: transparent
}

.TVListBox {
    background-color: #fff;
    font-family: var(--tv-font-theme2);
    font-size: 14px;
    cursor: default;
    color: #333;
    font-weight: 400;
    padding-top: 4px;
    text-align: left
}

.TVItemSelected,.TVItemSelected:hover {
    background-color: #cef7a7;
    border-radius: 3px
}

.TVListBox .TVCheckBox {
    padding-right: 10px;
    overflow: hidden;
    white-space: nowrap
}

.TVListBox .TVCheckBox:hover,.TVTabbedList .TreeListItem .TVCheckBox:hover,.TVTreeListCheck .TreeListItem .TVCheckBox:hover {
    color: #55addc
}

.TVMobilePanel .TVListBox .TVCheckBox:hover,.TVMobilePanel .TVTabbedList .TreeListItem .TVCheckBox:hover,.TVMobilePanel .TVTreeListCheck .TreeListItem .TVCheckBox:hover {
    color: #333
}

.TVBoxContent {
    overflow: hidden;
    -ms-text-overflow: ellipsis;
    -o-text-overflow: ellipsis;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--tv-font-theme1)
}

.TVListBoxItem .TVCountryFlag {
    width: 18px;
    height: 14px;
    float: left;
    margin-right: 5px;
    background-repeat: no-repeat;
    position: relative;
    top: 3px;
    background: url(//static.tourvisor.ru/pics/flags/flags-calendar.png)
}

.TVChooseCountry {
    float: left;
    min-width: 300px
}

.TVChooseCountry .TVListBox {
    float: left;
    margin-right: 3%;
    min-width: 31%
}

.TVChooseCountry .TVListBox.TVEnd {
    margin-right: 0
}

.TVChooseCountry .TVListBoxItem:hover {
    background-color: transparent;
    cursor: pointer
}

.TVSimpleCountry {
    position: relative
}

.TVOnlyDirect {
    position: absolute;
    top: 9px;
    right: 17px
}

.TVShowAllCountries {
    padding: 3px 16px;
    margin: 25px auto 0;
    font-size: 12px;
    color: #000;
    background: #eee;
    font-weight: 300;
    cursor: pointer;
    line-height: 1.5;
    font-family: var(--tv-font-theme1);
    width: 133px;
    text-align: center;
    border-radius: 3px
}

.TVShowAllCountries:after {
    content: "Показать все страны"
}

.TVComboBox .TVTextBoxContent {
    margin-right: 16px;
    line-height: 1.39
}

.TVComboBox .TVTextBox {
    background-image: url(//tourvisor.ru/module/newform/images/trans_grey_grad.png);
    background-position: left -30px;
    font-size: 14px;
    font-weight: 400;
    color: #303030;
    background-repeat: repeat-x;
    padding: 4px 8px
}

.TVComboBox.TVDisabled {
    opacity: .5
}

.TVTurn {
    -moz-transform: rotate(180deg);
    -o-transform: rotate(180deg);
    -webkit-transform: rotate(180deg);
    -ms-transform: rotate(180deg);
    transform: rotate(180deg)
}

.TVButton {
    background-color: #fcfcfc;
    background-image: url(//tourvisor.ru/module/newform/images/trans_grey_grad.png);
    background-position: left -40px;
    background-repeat: repeat-x;
    border-radius: 2px;
    box-shadow: 1px 1px 2px #444;
    color: #303030;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    margin-top: 20px;
    padding: 6px;
    position: relative;
    text-align: center;
    -webkit-text-shadow: 1px 1px 0 #fff;
    text-shadow: 1px 1px 0 #fff;
    font-family: var(--tv-font-theme1)
}

.TVButton:hover {
    background-color: #fff;
    box-shadow: 1px 1px 3px #222
}

.TVActive .TVButton,.TVButton.TVActive {
    box-shadow: inset 1px 1px 3px #777070
}

.TVButton.TVWide {
    float: none
}

.TVLabel {
    font-size: 14px;
    text-align: left;
    font-family: var(--tv-font-theme1);
    line-height: 20px;
    font-weight: 400
}

.TVSlider {
    float: left
}

.TVSliderRange {
    height: 8px;
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAICAYAAAA4GpVBAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAiSURBVBhXYxAXF49giI+Pj2ZwcXExYeDl5RVmAAJmEIEEAGdgA1NjbjEkAAAAAElFTkSuQmCC");
    background-color: #41be41;
    position: absolute;
    z-index: 1
}

.TVSliderHand {
    position: absolute;
    height: 5px;
    width: 5px;
    background-color: #ccc;
    box-shadow: 0 1px 2px #777,inset 0 1px 2px #777;
    border: 6px solid #fff;
    border-radius: 20px;
    top: -5px;
    z-index: 2
}

.TVSliderHand:hover {
    cursor: grab
}

.TVSlideNode {
    height: 8px;
    background-color: #e9e9e9;
    box-shadow: inset 0 1px 3px #777;
    border-radius: 3px;
    position: relative
}

.TVRightDHand {
    margin-left: -17px
}

.TVLeftDHand {
    margin-left: -1px
}

input,textarea {
    font-family: var(--tv-font-theme2)
}

input:focus {
    outline: none
}

input::-ms-clear {
    display: none
}

.TVWaiter {
    position: absolute;
    z-index: 9999;
    background-color: #fff;
    width: 100%;
    height: 100%;
    background-image: url(//tourvisor.ru/module/newform/images/waiter.gif);
    background-repeat: no-repeat;
    background-position: 50%;
    left: 0;
    top: 0
}

.TVHide {
    display: none!important
}

.TVTextDecorationNone {
    text-decoration: none!important
}

.TVLitera {
    color: #ebae2a;
    font-weight: 700;
    font-size: 14px;
    padding: 0 0 0 4px
}

.TVTableBoxItem .TVListBoxItem {
    padding: 0 0 0 4px;
    height: 20px;
    line-height: 20px;
    font-weight: 400
}

.TVTableBoxItem {
    float: left;
    margin-bottom: 5px;
    margin-right: 15px;
    width: 110px
}

.TVCol,.TVSibling {
    width: 120px;
    float: left;
    font-weight: 400
}

.TVTableBoxItem .TVListBox {
    font-size: 9pt
}

.TVOverFlow {
    position: fixed;
    top: 0;
    left: 0;
    background-color: #000;
    z-index: 9998;
    opacity: .6;
    filter: alpha(opacity=60);
    -moz-transition: opacity .5s;
    -o-transition: opacity .5s;
    -webkit-transition: opacity .5s;
    transition: opacity .5s
}

.tv_drop_panel.TVCountryPanel {
    margin-left: 5px
}

.TVMultyFilter {
    margin: 0 auto;
    position: relative
}

.TVMFilterBlock {
    display: inline-block;
    vertical-align: top;
    margin-right: 30px
}

.TVMFilterBlock .TVComboBox .TVTextBox,.TVNewCombo .TVTextBox {
    background-image: none;
    font-size: 14px;
    font-weight: 400;
    color: #555;
    padding: 4px 8px;
    border-radius: 0;
    box-shadow: none;
    border: 1px solid #ddd
}

.TVMFilterBlock .TVTextBoxSelector,.TVNewCombo .TVTextBoxSelector {
    background-image: none;
    line-height: 1.39;
    right: 8px;
    top: -1px
}

.TVMFilterBlock .TVTextBoxSelector:after,.TVNewCombo .TVTextBoxSelector:after {
    content: "\e95e";
    color: #999;
    font-size: 16px;
    font-family: TVicons
}

.TVMFilterBlock .TVLabel {
    float: none;
    color: #fff;
    font-size: 10px;
    font-weight: 400;
    text-transform: uppercase
}

.TVMFilterBlock .TVHotelStar {
    background-image: none;
    display: inline-block
}

.TVMFilterBlock .TVHotelStar:before {
    font-family: TVicons;
    content: "\e90c";
    color: #ddd;
    position: absolute;
    font-size: 18px
}

.TVMFilterBlock .TVHotelStar.TVImageActive:before {
    color: #fc0
}

.TVComboBox.TVDepFilter {
    width: 140px
}

.TVMFilterBlock .TVCountryBox {
    width: 132px
}

.TVMFilterBlock.TVMFilterBlockSlider {
    margin-left: 11px
}

.TVMFilterBlock .TVSlider {
    width: 130px
}

.TVMultyFilter .TVSliderHand {
    margin-left: -11px
}

.TVMultyFilter .TVTextBox {
    text-transform: capitalize
}

.TVComboBox.TVMFDates {
    width: 140px
}

.TVMFDates .TVTextBox {
    text-transform: none
}

.TVMFilterBlock .TVSlider {
    padding-top: 12px
}

.TVMFDPDates .TVListBlock2,.TVMFDPDates .TVListBlock3 {
    display: inline-block
}

.TVMFDPDates .TVListBlock3 {
    margin-left: 10px;
    padding-bottom: 5px
}

.TVMFDPDates .TVListBlock1 {
    border-bottom: 1px solid #ddd;
    padding-bottom: 5px
}

.TVMFDPDates .TVListBlock4 {
    border-top: 1px solid #ddd
}

.TVSSwitchItem {
    display: inline-block;
    margin: 0;
    background-color: #f4f4f4;
    vertical-align: top;
    cursor: pointer
}

.TVSSwitchItem:hover {
    background-color: #f5f5f5;
    box-shadow: 0 0 1px #e9e9e9
}

.TVSeasonFilter .TVSSwitchItem div {
    width: 24px;
    height: 22px;
    background-image: url(//tourvisor.ru/module/newform/modules/images/minprice-sprite.png);
    margin: 4px 14px
}

.TVSItem1 {
    background-position: -2px 220px
}

.TVSItem2 {
    background-position: -28px 221px
}

.TVSItem3 {
    background-position: -55px 221px
}

.TVSSwitchMargin {
    display: inline-block;
    height: 30px;
    width: 0;
    background-color: #fefcfc;
    background-color: #d9d9d9
}

.TVSSwitchItem.TVSActive {
    background-color: #fff;
    box-shadow: inset 1px 1px 3px #545454
}

.TVSSwitchItem.TVSFirst.TVSActive {
    background-color: #fff;
    box-shadow: inset -1px 1px 4px #b7b7b7;
    border-left: 0
}

.TVSSwitchWrap {
    border-radius: 2px;
    background-color: #fff;
    box-shadow: 0 1px 4px #acacac;
    padding: 0;
    margin: 0;
    overflow: hidden
}

.TVMultyFilter .TVSliderRange {
    background: transparent
}

.TVMFilterLocker {
    width: 100%;
    height: 76px;
    position: absolute;
    top: 1px;
    background: #fff;
    opacity: .3;
    z-index: 5
}

.TVModLoading {
    background: transparent;
    margin: 50px auto;
    font-size: 19px;
    text-align: center;
    text-transform: lowercase;
    position: absolute;
    top: 60px;
    left: 45%;
    right: 45%
}

.TVModEmptyMess {
    margin: 20px auto;
    text-align: center;
    font-size: 18px;
    font-weight: 500;
    color: #525252;
    text-shadow: 1px 1px 0 #fff;
    font-family: var(--tv-font-theme1)
}

.TVMinPRadius {
    border-radius: 3px
}

.TVMFilterBlock .TVImageBox {
    margin: 3px 1px
}

.TVOverLay {
    z-index: 100000;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #000;
    background-image: none;
    opacity: 0;
    overflow: hidden;
    -webkit-overflow-scrolling: touch;
    outline: 0;
    filter: alpha(opacity=0)
}

.TVOverLay.TVFadeIn {
    filter: alpha(opacity=50)
}

.TVFade {
    opacity: 0;
    -webkit-transition: opacity .15s linear;
    -o-transition: opacity .15s linear;
    transition: opacity .15s linear
}

.TVFadeIn {
    opacity: .5
}

.TVModalContainer * {
    -moz-box-sizing: content-box;
    -webkit-box-sizing: content-box;
    box-sizing: content-box
}

.TVModalContainer {
    font-family: var(--tv-font-theme1);
    font-weight: 400;
    color: #000;
    font-size: medium;
    line-height: 1.39;
    z-index: 100000;
    position: absolute;
    top: 50px;
    left: 1%;
    right: 1%;
    margin: 0 auto 20px;
    text-align: left
}

.TVModalContainer.TVFadeIn {
    opacity: 1
}

.TVOFAddComent {
    margin-top: 15px;
    font-size: 14px;
    color: #858585;
    padding-left: 8px;
    text-decoration: underline;
    cursor: pointer;
    display: inline-block
}

.TVCoreSliderRoot {
    left: 0;
    -moz-transition: left .5s;
    -o-transition: left .5s;
    -webkit-transition: left .5s;
    transition: left .5s;
    position: relative
}

.TVTreeContainer {
    padding: 0;
    margin: 0 0 0 4px
}

.TVTreeContainer .TreeListItem {
    padding-left: 15px
}

.TVTreeContainer .TreeListItem:after {
    content: "...";
    position: absolute;
    left: 6px;
    top: -2px;
    border-left: 1px dotted #ccc;
    font-size: 9px;
    color: #ccc;
    padding-bottom: 2px
}

.TVTreeContainer .TVTreeIsLast:after {
    overflow: hidden;
    height: 12px
}

.TVTreeNode {
    overflow: hidden;
    white-space: nowrap
}

.TVHalfChecked {
    background-position: -104px -16px
}

.TVTreeListCheck {
    overflow-x: hidden;
    height: 140px
}

.TVTreeListCheck .TVTreeListNav {
    display: inline-block;
    width: 17px;
    height: 15px;
    cursor: pointer;
    position: absolute;
    top: 0;
    right: -3px;
    background-color: transparent;
    padding: 1px 0
}

.TVTreeListCheck .TVTreeListNav.TVTreeClose {
    height: 12px;
    top: 3px;
    padding: 1px;
    right: -5px
}

.TreeListItem {
    overflow: hidden;
    white-space: nowrap;
    position: relative;
    line-height: 20px;
    margin-right: 3px;
    color: #5b5b5b
}

.TVSSRunner {
    width: 8px;
    height: 14px;
    display: inline-block;
    background-color: #f7f7f7;
    border: 1px solid #aaa;
    border-radius: 3px;
    z-index: 1;
    position: absolute;
    cursor: pointer;
    right: 17px;
    top: -1px;
    transition: right .05s linear
}

.TVSSRunner.TVSSActive {
    right: -1px
}

.TVDialogWindow {
    z-index: 9999999;
    position: absolute;
    color: #3a3a3a;
    font-family: var(--tv-font-theme1);
    background-color: #efefef;
    line-height: normal;
    font-size: 16px;
    box-shadow: 0 0 2px 0 #909090;
    min-width: 300px
}

.TVDialogWindow .tv_content {
    padding: 25px
}

.TVDWTitle {
    font-size: 18px;
    margin-bottom: 16px;
    color: #333;
    font-weight: 300
}

.TVInputBefore {
    display: inline-block;
    vertical-align: top;
    margin-right: 5px
}

.TVComboBox.TVInvalidInput .TVTextBox,.TVInput.TVInvalidInput input {
    border-color: red
}

.TVVRFItem {
    padding: 10px 10px 10px 70px;
    margin-bottom: 2px;
    border-radius: 2px;
    cursor: pointer;
    position: relative;
    line-height: 1.39;
    color: #575757;
    border: 1px solid #fff
}

.TVVRFItem:hover {
    color: #333;
    background-color: #f9f9f9
}

.TVVRFItem.TVVRFActiveItem {
    background: #efefef;
    border: 1px solid #ddd
}

.TVComboBox.TVSeasonFilter {
    width: 140px
}

.TVOkeyButton {
    background-color: #fcfcfc;
    background-image: url(//tourvisor.ru/module/newform/images/trans_grey_grad.png);
    background-repeat: repeat-x;
    background-position: left -40px;
    border-radius: 2px;
    color: #303030;
    cursor: pointer;
    font-size: 16px;
    font-weight: 300;
    margin: 20px 0 10px;
    text-align: center;
    -webkit-text-shadow: 1px 1px 0 #fff;
    text-shadow: 1px 1px 0 #fff;
    box-shadow: none;
    padding: 4px;
    border: 1px solid rgba(0,0,0,.1)
}

.TVOkeyButton:hover {
    background-color: #fff
}

.TVOkeyButton:active {
    box-shadow: inset 1px 1px 1px #777
}

.TVOkeyButton:before {
    content: "Выбрать"
}

.TVSeasonFilter {
    overflow: hidden
}

.TVVRFIcon {
    font-family: TVicons;
    font-size: 40px;
    position: absolute;
    left: 12px;
    top: 1px;
    color: #555
}

.TVRestTypeSeaBeach .TVVRFIcon:before {
    content: "\e930"
}

.TVRestTypeChildren .TVVRFIcon:before {
    content: "\e931"
}

.TVRestTypeShopping .TVVRFIcon:before {
    content: "\e932"
}

.TVRestTypeParty .TVVRFIcon:before {
    content: "\e933"
}

.TVRestTypeExcursion .TVVRFIcon:before {
    content: "\e934"
}

.TVRestTypeSky .TVVRFIcon:before {
    content: "\e935"
}

.TVRestTypeHealth .TVVRFIcon:before {
    content: "\e936"
}

.TVVRFTitle {
    font-size: 14px;
    font-weight: 700;
    line-height: 18px
}

.TVVRFAbout {
    font-size: 12px;
    font-weight: 400
}

.TVRestTypeSeaBeach .TVVRFTitle:after {
    content: "Море и пляж"
}

.TVRestTypeChildren .TVVRFTitle:after {
    content: "С детьми"
}

.TVRestTypeShopping .TVVRFTitle:after {
    content: "Прогулки"
}

.TVRestTypeParty .TVVRFTitle:after {
    content: "Вечеринки"
}

.TVRestTypeExcursion .TVVRFTitle:after {
    content: "Экскурсии"
}

.TVRestTypeSky .TVVRFTitle:after {
    content: "Горные лыжи"
}

.TVRestTypeHealth .TVVRFTitle:after {
    content: "Лечение"
}

.TVRestTypeSeaBeach .TVVRFAbout:after {
    content: "Пляжный отдых в отеле"
}

.TVRestTypeChildren .TVVRFAbout:after {
    content: "Условия для отдыха с детьми"
}

.TVRestTypeShopping .TVVRFAbout:after {
    content: "Вечерние прогулки и шопинг"
}

.TVRestTypeParty .TVVRFAbout:after {
    content: "Клубы, бары, дискотеки"
}

.TVRestTypeExcursion .TVVRFAbout:after {
    content: "Города и интересные места"
}

.TVRestTypeSky .TVVRFAbout:after {
    content: "Катание на лыжах и сноубордах"
}

.TVRestTypeHealth .TVVRFAbout:after {
    content: "Оздоровление и лечение"
}

.TVRatingBad {
    color: #e07a55
}

.TVRatingNormal {
    color: #e6b661
}

.TVRatingGood {
    color: #5cb85c
}

.TVRatingExcellent {
    color: #4bdc4b
}

.TVCountryFlagSmall {
    width: 18px;
    height: 14px;
    background-repeat: no-repeat;
    background: url(//static.tourvisor.ru/pics/flags/flags-calendar.png)
}

.TVCountryFlagMedium {
    width: 40px;
    height: 26px;
    background-repeat: no-repeat;
    background: url(//static.tourvisor.ru/pics/flags/flags-medium.png)
}

.TVCountryFlagBig {
    width: 60px;
    height: 40px;
    background-repeat: no-repeat;
    background: url(//static.tourvisor.ru/pics/flags/flags-big.png)
}

.TVBlocker {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: #fff;
    opacity: .5
}

.TVLPCountriesTable {
    font-family: var(--tv-font-theme2)
}

.TVLPCntrTableRoot {
    width: 33%;
    display: inline-block;
    vertical-align: top
}

.TVLPCntrTableItem {
    margin: 15px 0;
    padding-left: 5%
}

.TVLPCntrTableItem .TVCountryFlagMedium {
    box-shadow: 0 0 1px 0 #444;
    border: 1px solid #fff;
    display: inline-block;
    vertical-align: top;
    cursor: pointer
}

.TVLPCountriesTable .TVLPCountryName {
    display: inline-block;
    vertical-align: top;
    margin-left: 13px;
    font-size: 14px;
    color: #575757;
    font-weight: 400;
    cursor: pointer;
    line-height: 1.33;
    margin-top: 4px
}

.TVSNavLeft,.TVSNavRight {
    position: absolute;
    padding: 10px 5px;
    background-color: #444;
    background-color: rgba(18,17,17,.75);
    opacity: 0;
    zoom:1;z-index: 10;
    cursor: pointer;
    filter: alpha(opacity=0);
    -moz-transition: opacity .5s ease-in-out;
    -o-transition: opacity .5s ease-in-out;
    -webkit-transition: opacity .5s ease-in-out;
    transition: opacity .5s ease-in-out;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none
}

.TVUpdListBox .TVSimpleWaiter {
    position: absolute;
    top: 8px;
    right: 23px
}

.TVDWSendButton.TVDisabled,.TVDWSendButton.TVDisabled:hover {
    background: #c3c3c3;
    border: 1px solid #c3c1bd
}

.TVLoginDialog {
    width: 350px;
    margin: 100px auto;
    background: #fff;
    padding: 50px 40px 60px;
    font-family: var(--tv-font-theme1)
}

.TVLDTitle {
    margin-bottom: 10px;
    text-align: center;
    font-size: 18px;
    color: #666;
    font-weight: 300
}

.TVLDError {
    height: 20px;
    font-size: 15px;
    text-align: center;
    margin-bottom: 15px;
    color: #d40101
}

.TVLDTitle:after {
    content: "Вход для менеджеров"
}

.TVLoginDialog input.TVLoginInput {
    display: block;
    padding: 5px 10px;
    width: 200px;
    margin: 0 auto 30px;
    border: 1px solid #888;
    border-radius: 2px;
    box-shadow: 0 0 3px 0 #b2b0b0;
    font-size: 18px;
    font-weight: 300;
    font-family: var(--tv-font-theme1)
}

.TVLoginSubmit:after {
    content: "Войти"
}

.TVLoginSubmit {
    background-color: #7fb762;
    width: 224px;
    color: #fff;
    border-radius: 5px;
    padding: 5px 0;
    text-align: center;
    margin: 0 auto;
    cursor: pointer;
    font-size: 18px;
    font-weight: 300
}

.TVPayDialog {
    width: 700px;
    background: #fff
}

.TVPayDRoot {
    padding: 50px;
    color: #000
}

.TVPayDHeader {
    font-size: 21px;
    text-align: center;
    margin-bottom: 25px
}

.TVPayDText {
    font-size: 15px;
    font-weight: 300;
    text-align: center
}

.TVPayDPhone {
    text-overflow: ellipsis;
    white-space: nowrap
}

.TVPayDPhone,.TVPayDRoot .TVCurrency {
    font-weight: 700
}

.TVPayDError {
    color: red
}

.TVPayDText .TVCurrency:after {
    font-size: 14px;
    font-weight: 300
}

.TVImgClose:after {
    content: "\e916";
    font-family: TVIcons;
    font-size: 14px;
    color: #555
}

.TVImgClose {
    position: absolute;
    top: 5px;
    right: 5px;
    cursor: pointer
}

.TVWarning .TVRequired {
    border: 1px solid red!important
}

.TVGoBack {
    text-decoration: underline;
    color: #777;
    cursor: pointer
}

.TVGoBack:after {
    content: "назад"
}

@supports not selector(::-webkit-scrollbar) {
    .TVStyleScroll {
        scrollbar-width: thin
    }
}

.TVStyleScroll::-webkit-scrollbar {
    width: 5px;
    height: 5px;
    background-color: #f1f1f1
}

.TVStyleScroll::-webkit-scrollbar-thumb {
    background-color: #c1c1c1
}

.TVStyleScroll::-webkit-scrollbar-track {
    -webkit-box-shadow: none;
    background-color: #f1f1f1
}

.TVSubmitButton {
    background-color: #fff;
    font-size: 13px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    border-radius: 20px;
    width: 200px;
    height: 40px;
    color: #777;
    margin: 20px auto;
    border: 1px solid #ddd;
    background-image: none;
    box-shadow: none;
    text-align: center;
    text-shadow: none;
    float: none;
    cursor: pointer;
    transition: color .1s linear,background-color .1s linear,border-color .1s linear
}

.TVSubmitButton.TVButtonActive {
    color: #fff;
    background-color: #185584;
    border-color: #185584
}

.TVNotSelected:before {
    content: "Не выбрано"
}

.TVBodyScrollDisabled {
    overflow: hidden!important;
    position: static!important
}

.TVCountryFlags {
    min-width: 22px;
    width: 22px;
    height: 16px;
    margin-right: 7px;
    display: inline-block;
    background-size: cover;
    background-repeat: no-repeat
}

.TVCountryFlame {
    margin-left: 7px
}

.TVCountryFlame:before {
    font-family: TVicons;
    content: "\e919";
    color: #f15045;
    font-size: 20px
}

.TVFlyIcon:before {
    font-family: TVicons;
    content: "\e92e"
}

.TVAgreementLink,.TVAgreementText {
    font-size: 13px;
    color: #777;
    display: inline
}

.TVAgreementText:after {
    content: "Отправляя запрос, Вы подтверждаете "
}

.TVAgreementLink:after {
    content: "согласие на обработку персональных данных.";
    color: #4b90d5;
    text-decoration: underline;
    cursor: pointer
}

.TVAgreementWindow {
    background: #fff;
    padding: 23px 40px 30px
}

.TVPublicAgreement {
    font-size: medium;
    color: #444;
    text-align: justify
}

.TVPublicAgreement h3 {
    text-align: center
}

.TVActionSheet {
    font-family: var(--tv-font-theme2);
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2147483647
}

.TVActionSheetDragArea {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end
}

.TVActionSheetBody {
    background-color: #fff;
    border-radius: 30px 30px 0 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transform: translate3d(0,100%,0);
    transition: transform .2s ease-in-out;
    will-change: transform
}

.TVActionSheetBody.TVStopAnimation {
    transition: none
}

.TVActionSheetDragSign {
    padding: 15px 0;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVActionSheetDragSign:before {
    display: block;
    content: "";
    background: #5c6672;
    border-radius: 5px;
    width: 80px;
    height: 6px
}

.TVActionSheetContent {
    height: 100%;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column
}

.TVActionSheetOverlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #000;
    opacity: .5;
    transition: opacity .2s ease-in-out;
    will-change: opacity;
    touch-action: none
}

.TVActionSheetOverlay.TVStopAnimation {
    transition: none
}

.TVDragPanel {
    position: fixed;
    overflow: hidden
}

.TVDragPanel .TVDraggableBlock {
    cursor: move
}

.TVSheet {
    font-family: var(--tv-font-theme2);
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2147483647;
    justify-content: flex-end;
    pointer-events: none
}

.TVSheet,.TVSheetBody {
    height: 100%;
    display: flex;
    flex-direction: column
}

.TVSheetBody {
    background-color: #fff;
    overflow: hidden;
    pointer-events: auto;
    box-shadow: 0 3px 20px rgba(0,0,0,.2);
    transition: transform .2s ease-in-out;
    will-change: transform
}

.TVSheetBody.TVStopAnimation {
    transition: none
}

.TVSheetDragSign {
    padding: 15px 0;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVSheetDragSign:before {
    display: block;
    content: "";
    background: #5c6672;
    border-radius: 5px;
    width: 80px;
    height: 6px
}

.TVSheetContent {
    height: 100%;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column
}

.TVModalContainer.TVError:before {
    display: block;
    text-align: center;
    content: "У нас не получилось загрузить данную страницу"
}

.TVClosePopUp {
    min-width: 18px;
    min-height: 18px;
    font-family: var(--tv-font-theme2);
    color: #777;
    position: absolute;
    top: 13px;
    right: 17px;
    cursor: pointer
}

.TVClosePopUp:after {
    font-family: TVicons;
    content: "\e916";
    font-size: 10px;
    border: 2px solid;
    border-radius: 20px;
    padding: 4px
}

.TVClosePopUp.TVOldClosePopUp {
    color: #fff;
    top: 0;
    right: -30px;
    border-radius: 100%
}

.TVClosePopUp.TVOldClosePopUp:after {
    color: #fff;
    border: 3px solid #fff
}

.TVDialog,.TVFixedPopUp {
    overflow: hidden
}

.TVDialog {
    margin: auto;
    width: 320px;
    top: 10%;
    box-shadow: 0 0 20px #000
}

.TVDialog .TVDialogHeader {
    height: 50px;
    text-shadow: none;
    font-family: var(--tv-font-theme2)
}

.TVDialog .TVDialogHeader:after {
    content: "";
    line-height: 50px;
    font-size: 14px;
    padding-left: 20px
}

.TVDialog .TVDialogBody {
    padding: 20px;
    background-color: #fff
}

.TVDialog .TVDialogMessage,.TVDialog .TVDialogWaiter {
    padding: 40px 20px;
    background-color: #fff;
    position: relative;
    text-align: center;
    font-size: 13px;
    color: #777
}

.TVDialog .TVDialogMessage a,.TVDialog .TVDialogWaiter a {
    color: #4b90d5
}

.TVModalWindow {
    background-color: #fff;
    box-shadow: 0 0 20px rgba(0,0,0,.3);
    border-radius: 20px;
    padding: 30px
}

.TVTabbedListControl {
    box-sizing: border-box;
    height: 100%
}

.TVTabbedListControl.TVTabbedSearchInput.TVSelectedItems .TVInput {
    width: auto;
    flex: 1
}

.TVTabbedListControl.TVTabbedSearchInput.TVSelectedItems .TVTabs {
    width: auto
}

.TVTabbedListControl.TVTabbedSearchInput.TVSelectedItems .TVTabName {
    display: block
}

.TVTabbedListControl.TVTabbedSearchInput .TVTabbedListHeader {
    display: flex;
    position: relative
}

.TVTabbedListControl.TVTabbedSearchInput .TVInput {
    height: 34px;
    padding-bottom: 0;
    display: flex;
    align-items: center
}

.TVTabbedListControl.TVTabbedSearchInput .TVInput:before {
    position: relative;
    margin-right: 10px;
    left: 0;
    top: 0;
    transform: none
}

.TVTabbedListControl.TVTabbedSearchInput .TVInput input {
    padding: 0;
    font-size: 10px;
    border: none;
    box-shadow: none;
    background-color: #fff;
    font-family: var(--tv-font-theme2);
    outline: none
}

.TVTabbedListControl.TVTabbedSearchInput .TVTabs {
    width: 0
}

.TVTabbedListControl.TVTabbedSearchInput .TVTabs:before {
    position: absolute;
    top: 36px;
    left: 0
}

.TVTabbedListControl.TVTabbedSearchInput .TVTabName {
    display: none
}

.TVTabbedListControl .TVInput {
    width: 100%;
    padding-bottom: 12px;
    position: relative
}

.TVTabbedListControl .TVInput:before {
    font-family: TVicons;
    content: "\e91d";
    position: absolute;
    font-size: 15px;
    left: 10px;
    top: 40%;
    transform: translateY(-50%);
    color: #5c6672
}

.TVTabbedListControl .TVInput input {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    display: block;
    padding: 12px 12px 12px 35px;
    border-radius: 2px;
    border: 1px solid #ddd;
    font-size: 13px
}

.TVTabbedListControl .TVInput input::placeholder {
    color: #5c6672
}

.TVTabbedListHeader {
    width: 100%;
    padding-bottom: 12px;
    background-color: #fff
}

.TVTabbedListHeader .TVTabName {
    cursor: pointer
}

.TVTabSelection {
    display: flex
}

.TVTabSelection:before {
    content: "выбрано"
}

.TVTabSelectionSpan {
    border-radius: 50%;
    background-color: #efefef;
    height: 14px;
    min-width: 14px;
    margin-left: 5px;
    display: flex;
    justify-content: center;
    align-items: center
}

.TVTabbedListBody {
    width: 100%
}

.TVTabbedListBody.TVTabbedListBodyWithTabs {
    height: calc(100% - 54px)
}

.TVTabbedListBody.TVTabbedListBodyWithSearch {
    height: calc(100% - 111px)
}

.TVTabbedList {
    height: 100%;
    overflow: auto
}

.TVTabbedList .TVCheckBox {
    width: 100%;
    display: block
}

.TVTabbedList .TVCheckBox:before {
    font-size: 10px;
    line-height: 10px
}

.TVMobilePanel .TVTabbedListBody.TVTabbedListBodyWithTabs {
    padding-right: 10px
}

.TVAccordion {
    width: 100%;
    box-sizing: border-box;
    border-style: solid;
    border-color: #ddd;
    border-radius: 5px
}

.TVAccordion.TVPreview {
    display: none
}

.TVAccordion.TVColorWhite {
    background-color: #fff
}

.TVAccordion.TVBorderSize-XXXS {
    border-width: 0
}

.TVAccordion.TVBorderSize-XXS {
    border-width: 1px
}

.TVAccordionTitle {
    padding: 16px;
    color: #333;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    overflow: hidden
}

.TVAccordionTitle:after {
    font-family: TVicons;
    content: "\e900";
    color: #5c6672;
    font-size: 15px;
    line-height: 7px;
    display: flex;
    align-items: center;
    transition: transform .3s ease-out
}

.TVAccordionTitle.TVFontSize-S {
    font-size: 13px
}

.TVAccordionTitle.TVLineHeightSize-M {
    line-height: 16px
}

.TVAccordionTitle.TVFontWeightSize-M {
    font-weight: 500
}

.TVAccordionContent {
    color: #5c6672;
    padding: 0 16px 24px 32px
}

.TVAccordionContent.TVFontSize-S {
    font-size: 13px
}

.TVAccordionContent.TVFontWeightSize-M {
    font-weight: 500
}

.TVAccordionContent.TVLineHeightSize-S {
    line-height: 20px
}

.TVAccordion.TVTitleOnly>.TVAccordionTitle {
    cursor: default
}

.TVAccordion.TVTitleOnly>.TVAccordionTitle:after {
    content: none
}

.TVAccordionContentBlock {
    overflow: hidden;
    height: 0;
    transition: height .3s ease-out
}

.TVAccordion.TVAccordionContentVisible>.TVAccordionTitle:after {
    transform: rotate(180deg)
}

.TVAccordion.TVAccordionContentVisible>.TVAccordionContentBlock {
    height: auto
}

.TVAccordion.TVColorInfo {
    background: #edf2f5;
    border: none
}

.TVAccordion.TVColorText {
    background: none;
    border: none
}

.TVAccordion.TVColorText>.TVAccordionTitle:after {
    color: #ddd
}

.TVBadge {
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 24px;
    border: 2px solid;
    min-width: calc(4px + var(--lineHeight));
    height: calc(4px + var(--lineHeight));
    line-height: var(--lineHeight)
}

.TVBadge.TVSize-M,.TVBadge.TVSize-S,.TVBadge.TVSize-XS {
    box-sizing: border-box
}

.TVBadge.TVSize-XS {
    --lineHeight: 9px;
    font-size: 9px;
    padding: 0 2px
}

.TVBadge.TVSize-S {
    --lineHeight: 11px;
    font-size: 10px;
    padding: 0 3px
}

.TVBadge.TVSize-M {
    --lineHeight: 16px;
    font-size: 14px;
    padding: 0 5px
}

.TVBadge.TVColorWhite {
    color: #fff
}

.TVBadge.TVColorMainBG {
    color: var(--tv-main-color)
}

.TVBadge.TVColorMainText {
    color: var(--tv-main-text-color)
}

.TVBadge.TVBackgroundColorRed {
    background-color: #fb5e51;
    border-color: #fb5e51
}

.TVBadge.TVBackgroundColorMainBG {
    background-color: var(--tv-main-color);
    border-color: var(--tv-main-color)
}

.TVBadge.TVBackgroundColorMainText {
    background-color: var(--tv-main-text-color);
    border-color: var(--tv-main-text-color)
}

.TVButtonControl {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #fff;
    font-size: 13px;
    padding: 0;
    background-image: none;
    box-shadow: none;
    text-align: center;
    text-shadow: none;
    float: none;
    cursor: pointer;
    transition: color .1s linear,background-color .1s linear,border-color .1s linear
}

.TVButtonControl.TVVariant-contained.TVColorBlue315 {
    background-color: #185584;
    border: 1px solid #185584;
    color: #fff
}

.TVButtonControl.TVVariant-contained.TVColorBlue400 {
    background-color: #5c6672;
    border: 1px solid #5c6672;
    color: #fff
}

.TVButtonControl.TVVariant-outlined.TVColorBlue315 {
    background-color: #fff;
    border: 1px solid #ddd;
    color: #777
}

.TVButtonControl.TVVariant-outlined.TVColorBlue400 {
    background-color: #fff;
    border: 1px solid #5c6672;
    color: #5c6672
}

.TVButtonWaiter {
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    border: 1px solid;
    white-space: nowrap;
    font-family: var(--tv-font-theme2);
    text-decoration: none
}

.TVButtonWaiter:active,.TVButtonWaiter:focus,.TVButtonWaiter:hover {
    color: #fff
}

.TVButtonWaiter.TVTextTransform-Uppercase {
    text-transform: uppercase
}

.TVButtonWaiter.TVTextTransform-Capitalize {
    text-transform: capitalize
}

.TVButtonWaiter.TVColorWhite {
    border-color: #fff;
    background-color: #fff;
    color: #5c6672
}

.TVButtonWaiter.TVColorGreen500 {
    border-color: #5cb85c;
    background-color: #5cb85c;
    color: #fff
}

.TVButtonWaiter.TVColorBlue400 {
    border-color: #5c6672;
    background-color: #5c6672;
    color: #fff
}

.TVButtonWaiter.TVColorBlue315 {
    border-color: #185584;
    background-color: #185584;
    color: #fff
}

.TVButtonWaiter.TVColorGray950 {
    background-color: #efefef;
    border-color: #ddd;
    color: #777
}

.TVButtonWaiter.TVFontSize-S {
    font-size: 13px;
    line-height: 18px
}

.TVButtonWaiter.TVFontSize-M {
    font-size: 16px;
    line-height: 22px
}

.TVButtonWaiter.TVSize-S {
    padding: 10px 0
}

.TVButtonWaiter.TVSize-M {
    padding: 14px 0
}

.TVButtonWaiter.TVSize-L {
    padding: 7px 16px
}

.TVButtonWaiter.TVGapSize-S {
    gap: 9px
}

.TVButtonWaiter.TVGapSize-M {
    gap: 15px
}

.TVButtonWaiter.TVDisabled {
    cursor: default
}

.TVCheckBox {
    display: inline-block;
    line-height: 18px;
    cursor: pointer;
    user-select: none
}

.TVCheckBox:before {
    font-family: TVicons;
    content: "\e90b";
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 3px;
    color: #fff;
    font-size: 10px;
    line-height: 10px;
    padding: 2px;
    box-sizing: content-box
}

.TVCheckBox.TVChecked:before {
    color: #fff;
    background-color: #777;
    border-color: #777
}

.TVCheckBox.TVHalfChecked:before {
    opacity: .5
}

.TVCheckBox.TVDisabled {
    opacity: .5;
    pointer-events: none
}

.TVCheckBox.TVInvalid:before {
    border-color: #e31e22
}

.TVCheckBox.TVGapSize-M:before {
    margin-right: 8px
}

.TVCheckBox.TVGapSize-L:before {
    margin-right: 12px
}

.TVMobilePanel .TVCheckBox {
    font-size: 14px
}

.TVComplexCheckBox {
    display: flex;
    align-items: center;
    padding-right: 5px
}

.TVComplexCheckBox .TVCheckBox {
    width: 100%;
    display: inline-flex;
    align-items: center
}

.TVComplexCheckBox .TVCheckBoxActionBtn {
    cursor: pointer;
    display: inline-block;
    vertical-align: middle;
    background-color: #efefef;
    border-radius: 20px;
    font-size: 10px;
    line-height: 14px;
    padding: 0 5px;
    color: #777;
    margin-left: 8px
}

.TVComplexCheckBoxContent {
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis
}

.TVCheckboxControl {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    user-select: none
}

.TVCheckboxControl:before {
    font-family: TVicons;
    content: "\e90b";
    width: 16px;
    min-width: 16px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    font-size: 11px;
    color: #fff;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 3px
}

.TVCheckboxControl.TVChecked:before {
    color: #fff;
    background-color: #5c6672;
    border: 1px solid #5c6672
}

.TVCheckboxControl.TVInvalid:before {
    border-color: #e31e22
}

.TVCheckboxControl.TVDisabled {
    opacity: .5;
    pointer-events: none
}

.TVCheckboxContent {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden
}

.TVCheckboxControl.TVPosition-Left {
    flex-direction: row-reverse
}

.TVCheckboxControl.TVJustify-SpaceBeetwen {
    justify-content: space-between
}

.TVCheckboxControl.TVJustify-Start {
    justify-content: flex-start
}

.TVCheckboxControl.TVStyleTheme1,.TVCheckboxControl.TVStyleTheme2 {
    height: 38px;
    padding: 0 10px;
    font-size: 13px;
    color: #5c6672;
    background-color: #fff;
    box-sizing: border-box
}

.TVCheckboxControl.TVStyleTheme1 {
    text-transform: uppercase;
    font-size: 10px;
    font-weight: 600
}

.TVCheckboxControl.TVStyleTheme3 {
    height: 50px;
    box-sizing: border-box;
    padding: 0 15px 0 20px;
    background-color: #fff;
    color: #5c6672;
    font-size: 13px;
    font-weight: 500
}

.TVCheckboxControl.TVStyleTheme3:before {
    width: 20px;
    min-width: 20px;
    height: 20px
}

.TVCheckboxControl.TVStyleTheme1:before,.TVCheckboxControl.TVStyleTheme2:before,.TVCheckboxControl.TVStyleTheme3:before {
    box-sizing: border-box
}

.TVInputRadio {
    position: relative
}

.TVInputRadio .TVInputRadioInput {
    box-sizing: border-box;
    position: absolute;
    top: 0;
    left: 0;
    margin: 0;
    min-height: 20px;
    height: 100%;
    width: 100%;
    opacity: 0;
    z-index: 1;
    cursor: pointer;
    border-radius: 0
}

.TVInputRadio .TVInputRadioInput:checked+.TVInputRadioWrapper .TVInputRadioLabel .TVInputRadioLabelCheck {
    visibility: visible
}

.TVInputRadio .TVInputRadioInput:not(:checked)+.TVInputRadioWrapper .TVInputRadioLabel .TVInputRadioLabelCheck {
    visibility: hidden
}

.TVInputRadio .TVInputRadioWrapper {
    display: flex;
    align-items: center
}

.TVInputRadio .TVInputRadioLabel {
    border-radius: 50%;
    background-color: #fff;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVInputRadio .TVInputRadioLabelCheck {
    border-radius: 50%
}

.TVInputRadio .TVInputRadioContent {
    position: relative
}

.TVInputRadio.TVDisabled {
    pointer-events: none;
    cursor: default;
    opacity: .5
}

.TVInputRadio.TVGapSize-M .TVInputRadioContent {
    margin-left: 10px
}

.TVInputRadio.TVGapSize-L .TVInputRadioContent {
    margin-left: 12px
}

.TVInputRadio.TVSize-S .TVInputRadioLabel {
    width: 16px;
    min-width: 16px;
    height: 16px
}

.TVInputRadio.TVSize-S .TVInputRadioLabelCheck {
    width: 8px;
    min-width: 8px;
    height: 8px
}

.TVInputRadio.TVSize-M .TVInputRadioLabel {
    width: 20px;
    min-width: 20px;
    height: 20px
}

.TVInputRadio.TVSize-M .TVInputRadioLabelCheck {
    width: 10px;
    min-width: 10px;
    height: 10px
}

.TVInputRadio.TVFontSize-M {
    font-size: 13px
}

.TVInputRadio.TVFontSize-L {
    font-size: 14px
}

.TVInputRadio.TVFontWeightSize-M .TVInputRadioContent {
    font-weight: 400
}

.TVInputRadio.TVFontWeightSize-L .TVInputRadioContent {
    font-weight: 600
}

.TVLikeButton {
    position: relative;
    display: inline-block;
    color: #777;
    cursor: pointer;
    line-height: 1
}

.TVLikeButton.TVSize-XS {
    font-size: 14px
}

.TVLikeButton.TVSize-S {
    font-size: 16px
}

.TVLikeButton.TVSize-M {
    font-size: 18px
}

.TVLikeButton.TVSize-L {
    font-size: 20px
}

.TVLikeButton.TVSize-XL {
    font-size: 22px
}

.TVLikeButton.TVSize-XXL {
    font-size: 24px
}

.TVLikeButton.TVSize-XXXL {
    font-size: 26px
}

.TVLikeButton:before {
    font-family: TVicons;
    content: "\e91b";
    position: relative;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0
}

.TVLikeButton.TVLiked:before {
    font-family: TVicons;
    content: "\e91a"
}

.TVLikeButton.TVLikeAnimation:before {
    animation: like .5s linear 1
}

.TVLikeButton.TVLikeAnimation .TVHeartAnimation:after,.TVLikeButton.TVLikeAnimation .TVHeartAnimation:before {
    font-family: TVicons;
    content: "\e91a";
    position: absolute;
    bottom: 0;
    font-size: 40%;
    animation: move-top .5s ease-out .3s;
    opacity: 0
}

.TVLikeButton.TVLikeAnimation .TVHeartAnimation:before {
    left: -10%;
    font-family: TVicons;
    content: "\e91b"
}

.TVLikeButton.TVLikeAnimation .TVHeartAnimation:after {
    right: -10%
}

.TVLikeButton.TVLikeAnimation .TVHeartAnimation:nth-child(2n):after,.TVLikeButton.TVLikeAnimation .TVHeartAnimation:nth-child(2n):before {
    animation-delay: .2s;
    font-family: TVicons;
    content: "\e91a"
}

.TVLikeButton.TVLikeAnimation .TVHeartAnimation:nth-child(2n):before {
    left: -25%
}

.TVLikeButton.TVLikeAnimation .TVHeartAnimation:nth-child(2n):after {
    font-family: TVicons;
    content: "\e91b";
    right: -20%
}

.TVLikeButton.TVLikeAnimation .TVHeartAnimation:last-child:after,.TVLikeButton.TVLikeAnimation .TVHeartAnimation:last-child:before {
    animation-delay: .1s;
    font-family: TVicons;
    content: "\e91a"
}

.TVLikeButton.TVLikeAnimation .TVHeartAnimation:last-child:before {
    left: -40%
}

.TVLikeButton.TVLikeAnimation .TVHeartAnimation:last-child:after {
    right: -40%
}

.TVLikeButton.TVDislikeAnimation:before {
    animation: dislike .5s linear 1,move .1s linear 5
}

@keyframes like {
    0% {
        font-family: TVicons;
        content: "\e91b";
        opacity: 1
    }

    50% {
        opacity: .5
    }

    to {
        font-family: TVicons;
        content: "\e91a";
        opacity: 1
    }
}

@keyframes dislike {
    0% {
        font-family: TVicons;
        content: "\e91a";
        opacity: 1
    }

    50% {
        opacity: .5
    }

    to {
        font-family: TVicons;
        content: "\e91b";
        opacity: 1
    }
}

@keyframes move {
    0% {
        left: 0
    }

    25% {
        left: -5%
    }

    75% {
        left: 5%
    }

    to {
        left: 0
    }
}

@keyframes move-top {
    0% {
        opacity: 1
    }

    to {
        bottom: 130%;
        opacity: 0
    }
}

.TVAddCartButton {
    width: var(--width);
    height: var(--height)
}

.TVAddCartButton,.TVAddCartButton.TVSize-M {
    --width: 15px;
    --height: 15px
}

.TVAddCartButton.TVSize-L {
    --width: 16px;
    --height: 16px
}

.TVAddCartButton.TVSize-XL {
    --width: 17px;
    --height: 17px
}

.TVAddCartButton.TVSize-XXL {
    --width: 18px;
    --height: 18px
}

.TVAddCartButton.TVSize-XXXL {
    --width: 19px;
    --height: 19px
}

.TVAddCartButton.TVSize-XXXXL {
    --width: 20px;
    --height: 20px
}

.TVAddCartButton .TVAddCartButtonActiveHeartIcon,.TVAddCartButton .TVAddCartButtonBasketIcon,.TVAddCartButton .TVAddCartButtonCheckIcon,.TVAddCartButton .TVAddCartButtonHeartIcon {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%
}

.TVAddCartButton .TVAddCartButtonBasketIcon,.TVAddCartButton .TVAddCartButtonHeartIcon {
    fill: #5c6672
}

.TVAddCartButton .TVAddCartButtonActiveHeartIcon {
    fill: #fb5e51
}

.TVAddCartButton .TVAddCartButtonCheckIcon {
    fill: #5cb85c
}

.TVAddCartButton .TVAddCartIcon,.TVAddCartButton .TVAddCartWaiter {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVTextBox {
    font-size: 16px;
    font-weight: 500;
    text-align: left;
    padding: 8px 10px;
    border: 1px solid #ddd;
    color: #555;
    cursor: pointer;
    position: relative;
    font-family: var(--tv-font-theme2);
    background-color: #fff
}

.TVTextBoxSelector {
    cursor: pointer;
    float: right;
    margin-top: 4px;
    position: absolute;
    right: 8px;
    top: 0;
    z-index: 1
}

.TVTextBoxSelector:after {
    content: "\e95e";
    color: #999;
    font-size: 16px;
    font-family: TVicons;
    line-height: 1.39
}

.TVBoxContent,.TVTextBoxContent {
    overflow: hidden;
    -ms-text-overflow: ellipsis;
    -o-text-overflow: ellipsis;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--tv-font-theme2)
}

.TVBlockSlider {
    height: 100%
}

.TVBlockSliderList {
    height: 100%;
    display: inline-flex;
    position: relative;
    vertical-align: top;
    left: 0;
    transition: left .5s
}

.TVBlockSliderWrapper {
    width: 100%;
    overflow: hidden;
    background: #fff;
    position: relative;
    height: 100%
}

.TVBlockSliderWrapper .TVSNavLeft,.TVBlockSliderWrapper .TVSNavRight {
    position: absolute;
    padding: 10px 5px;
    background-color: #444;
    background-color: rgba(18,17,17,.75);
    opacity: 0;
    zoom:1;z-index: 10;
    cursor: pointer;
    filter: alpha(opacity=0);
    transition: opacity .5s ease-in-out;
    user-select: none;
    top: 120px
}

.TVBlockSliderWrapper .TVSNavLeft {
    left: 0;
    border-bottom-right-radius: 4px;
    border-top-right-radius: 4px
}

.TVBlockSliderWrapper .TVSNavRight {
    right: 0;
    border-bottom-left-radius: 4px;
    border-top-left-radius: 4px
}

.TVBlockSliderWrapper .TVSLeftImg {
    background-position: -1px -99px
}

.TVBlockSliderWrapper .TVSLeftImg,.TVBlockSliderWrapper .TVSRightImg {
    background-image: url(//tourvisor.ru/module/newform/modules/images/minprice-sprite.png);
    width: 18px;
    height: 33px
}

.TVBlockSliderWrapper .TVSRightImg {
    background-position: -18px -99px
}

.TVBlockSliderWrapper:hover .TVSNavLeft,.TVBlockSliderWrapper:hover .TVSNavRight {
    opacity: 1;
    filter: alpha(opacity=100)
}

.TVBlockSliderWrapper .TVBlockSliderItem {
    height: 100%;
    display: inline-block;
    vertical-align: top;
    margin-right: 10px;
    background-position: 50%;
    background-size: cover
}

.TVBlockSliderWrapper .TVBlockSliderItem:last-child {
    margin-right: 0
}

.TVRadioGroup.TVStyleTheme1,.TVRadioGroup.TVStyleTheme2 {
    display: flex
}

.TVRadioGroup.TVStyleTheme2>* {
    padding: 15px 0;
    border-bottom: 1px solid #ddd
}

.TVRadioGroup:not(.TVAxisDirection-Row) {
    flex-direction: column
}

.TVRadioGroup:not(.TVAxisDirection-Row).TVGapSize-XS>:not(:first-child) {
    margin-top: 0
}

.TVRadioGroup:not(.TVAxisDirection-Row).TVGapSize-M>:not(:first-child) {
    margin-top: 10px
}

.TVRadioGroup:not(.TVAxisDirection-Row).TVGapSize-L>:not(:first-child) {
    margin-top: 15px
}

.TVRadioGroup.TVAxisDirection-Row {
    flex-direction: row
}

.TVRadioGroup.TVAxisDirection-Row.TVGapSize-XS>:not(:first-child) {
    margin-left: 0
}

.TVRadioGroup.TVAxisDirection-Row.TVGapSize-M>:not(:first-child) {
    margin-left: 10px
}

.TVRadioGroup.TVAxisDirection-Row.TVGapSize-L>:not(:first-child) {
    margin-left: 15px
}

.TVChevron {
    display: flex;
    justify-content: center
}

.TVChevron.TVDirection-Right {
    transform: rotate(0deg)
}

.TVChevron.TVDirection-Bottom {
    transform: rotate(90deg)
}

.TVChevron.TVDirection-Top {
    transform: rotate(-90deg)
}

.TVChevron.TVDirection-Left {
    transform: scaleX(-1)
}

.TVChevron.TVChevronAnimationEnabled .TVChevronItem:first-child {
    animation: move-to-right-chevron1 2.4s ease-out 0s infinite
}

.TVChevron.TVChevronAnimationEnabled .TVChevronItem:nth-child(2) {
    animation: move-to-right-chevron2 2.4s ease-out .8s infinite
}

.TVChevron.TVChevronAnimationEnabled .TVChevronItem:nth-child(3) {
    animation: move-to-right-chevron3 2.4s ease-out 1.6s infinite
}

.TVChevronItem {
    opacity: 0;
    transform: scale(.3);
    color: #1074a6;
    font-size: 23px
}

.TVChevronItem:before {
    font-family: TVicons;
    content: "\e906"
}

@keyframes move-to-right-chevron1 {
    0% {
        opacity: 0;
        transform: translateX(0)
    }

    25% {
        opacity: 1
    }

    65% {
        opacity: 1
    }

    to {
        opacity: 0;
        transform: translateX(200%)
    }
}

@keyframes move-to-right-chevron2 {
    0% {
        opacity: 0;
        transform: translateX(-100%)
    }

    25% {
        opacity: 1
    }

    65% {
        opacity: 1
    }

    to {
        opacity: 0;
        transform: translateX(100%)
    }
}

@keyframes move-to-right-chevron3 {
    0% {
        opacity: 0;
        transform: translateX(-200%)
    }

    25% {
        opacity: 1
    }

    65% {
        opacity: 1
    }

    to {
        opacity: 0;
        transform: translateX(0)
    }
}

@font-face {
    font-family: Open Sans;
    font-weight: 300;
    src: url(//static.tourvisor.ru/fonts/opensans/opensans-light-webfont.eot);
    src: url(//static.tourvisor.ru/fonts/opensans/opensans-light-webfont.eot#iefix) format("embedded-opentype"),url(//static.tourvisor.ru/fonts/opensans/opensans-light-webfont.woff2) format("woff2"),url(//static.tourvisor.ru/fonts/opensans/opensans-light-webfont.woff) format("woff"),url(//static.tourvisor.ru/fonts/opensans/opensans-light-webfont.ttf) format("truetype"),url(//static.tourvisor.ru/fonts/opensans/opensans-light-webfont.svg) format("svg");
    font-display: swap
}

@font-face {
    font-family: Open Sans;
    font-weight: 400;
    src: url(//static.tourvisor.ru/fonts/opensans/opensans-regular-webfont.eot);
    src: url(//static.tourvisor.ru/fonts/opensans/opensans-regular-webfont.eot#iefix) format("embedded-opentype"),url(//static.tourvisor.ru/fonts/opensans/opensans-regular-webfont.woff2) format("woff2"),url(//static.tourvisor.ru/fonts/opensans/opensans-regular-webfont.woff) format("woff"),url(//static.tourvisor.ru/fonts/opensans/opensans-regular-webfont.ttf) format("truetype"),url(//static.tourvisor.ru/fonts/opensans/opensans-regular-webfont.svg) format("svg");
    font-display: swap
}

@font-face {
    font-family: Open Sans;
    font-weight: 600;
    src: url(//static.tourvisor.ru/fonts/opensans/opensans-semibold-webfont.eot);
    src: url(//static.tourvisor.ru/fonts/opensans/opensans-semibold-webfont.eot#iefix) format("embedded-opentype"),url(//static.tourvisor.ru/fonts/opensans/opensans-semibold-webfont.woff2) format("woff2"),url(//static.tourvisor.ru/fonts/opensans/opensans-semibold-webfont.woff) format("woff"),url(//static.tourvisor.ru/fonts/opensans/opensans-semibold-webfont.ttf) format("truetype"),url(//static.tourvisor.ru/fonts/opensans/opensans-semibold-webfont.svg) format("svg");
    font-display: swap
}

@font-face {
    font-family: Open Sans;
    font-weight: 700;
    src: url(//static.tourvisor.ru/fonts/opensans/opensans-bold-webfont.eot);
    src: url(//static.tourvisor.ru/fonts/opensans/opensans-bold-webfont.eot#iefix) format("embedded-opentype"),url(//static.tourvisor.ru/fonts/opensans/opensans-bold-webfont.woff2) format("woff2"),url(//static.tourvisor.ru/fonts/opensans/opensans-bold-webfont.woff) format("woff"),url(//static.tourvisor.ru/fonts/opensans/opensans-bold-webfont.ttf) format("truetype"),url(//static.tourvisor.ru/fonts/opensans/opensans-bold-webfont.svg) format("svg");
    font-display: swap
}

@font-face {
    font-family: Open Sans;
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: local("Open Sans ExtraBold"),local("OpenSans-ExtraBold"),url(//static.tourvisor.ru/fonts/opensans/opensans-extrabold-webfont-cyrillic.woff2) format("woff2");
    unicode-range: u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116
}

@font-face {
    font-family: Open Sans;
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: local("Open Sans ExtraBold"),local("OpenSans-ExtraBold"),url(//static.tourvisor.ru/fonts/opensans/opensans-extrabold-webfont-latyn.woff2) format("woff2");
    unicode-range: u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd
}

@font-face {
    font-family: Tourvisor;
    font-style: normal;
    font-weight: 300;
    src: local("Tourvisor Light"),local("Tourvisor-Light"),url(//static.tourvisor.ru/fonts/Fl4y0QdOxyyTHEGMXX8kcT8E0i7KZn-EPnyo3HZu7kw.woff) format("woff");
    font-display: swap
}

@font-face {
    font-family: Tourvisor;
    font-style: normal;
    font-weight: 400;
    src: local("Tourvisor"),local("Tourvisor-Regular"),url(//static.tourvisor.ru/fonts/Y5yuUJGDLtmYv2_3fMB4fA.woff) format("woff");
    font-display: swap
}

@font-face {
    font-family: Tourvisor;
    font-style: normal;
    font-weight: 500;
    src: local("Tourvisor Medium"),local("Tourvisor-Medium"),url(//static.tourvisor.ru/fonts/oHi30kwQWvpCWqAhzHcCSD8E0i7KZn-EPnyo3HZu7kw.woff) format("woff");
    font-display: swap
}

@font-face {
    font-family: Tourvisor;
    font-style: normal;
    font-weight: 700;
    src: local("Tourvisor Bold"),local("Tourvisor-Bold"),url(//static.tourvisor.ru/fonts/isZ-wbCXNKAbnjo6_TwHTj8E0i7KZn-EPnyo3HZu7kw.woff) format("woff");
    font-display: swap
}

@font-face {
    font-family: Montserrat;
    font-style: normal;
    font-weight: 100;
    src: url(//static.tourvisor.ru/fonts/Montserrat/Montserrat-Thin.woff) format("woff")
}

@font-face {
    font-family: Montserrat;
    font-style: normal;
    font-weight: 200;
    src: url(//static.tourvisor.ru/fonts/Montserrat/Montserrat-ExtraLight.woff) format("woff")
}

@font-face {
    font-family: Montserrat;
    font-style: normal;
    font-weight: 300;
    src: url(//static.tourvisor.ru/fonts/Montserrat/Montserrat-Light.woff) format("woff")
}

@font-face {
    font-family: Montserrat;
    font-style: normal;
    font-weight: 400;
    src: url(//static.tourvisor.ru/fonts/Montserrat/Montserrat-Regular.woff) format("woff")
}

@font-face {
    font-family: Montserrat;
    font-style: normal;
    font-weight: 500;
    src: url(//static.tourvisor.ru/fonts/Montserrat/Montserrat-Medium.woff) format("woff")
}

@font-face {
    font-family: Montserrat;
    font-style: normal;
    font-weight: 600;
    src: url(//static.tourvisor.ru/fonts/Montserrat/Montserrat-SemiBold.woff) format("woff")
}

@font-face {
    font-family: Montserrat;
    font-style: normal;
    font-weight: 700;
    src: url(//static.tourvisor.ru/fonts/Montserrat/Montserrat-Bold.woff) format("woff")
}

@font-face {
    font-family: Montserrat;
    font-style: normal;
    font-weight: 800;
    src: url(//static.tourvisor.ru/fonts/Montserrat/Montserrat-ExtraBold.woff) format("woff")
}

@font-face {
    font-family: Montserrat;
    font-style: normal;
    font-weight: 900;
    src: url(//static.tourvisor.ru/fonts/Montserrat/Montserrat-Black.woff) format("woff")
}

@font-face {
    font-family: TVicons;
    src: url(//static.tourvisor.ru/fonts/TVicons.eot?155pn4=);
    src: url(//static.tourvisor.ru/fonts/TVicons.eot?156pn4=#iefix) format("embedded-opentype"),url(//static.tourvisor.ru/fonts/TVicons.ttf?156pn4=) format("truetype"),url(//static.tourvisor.ru/fonts/TVicons.woff?156pn4=) format("woff"),url(//static.tourvisor.ru/fonts/TVicons.svg?156pn4=#TVicons) format("svg");
    font-weight: 400;
    font-style: normal;
    font-display: swap
}

@font-face {
    font-family: PT Sans Narrow;
    font-style: normal;
    font-weight: 400;
    src: url(//tourvisor.ru/fonts/PTSansNarrow-Regular.ttf) format("truetype");
    font-display: swap
}

@font-face {
    font-family: PT Sans Narrow;
    font-style: normal;
    font-weight: 700;
    src: url(//tourvisor.ru/fonts/PTSansNarrow-Bold.ttf) format("truetype");
    font-display: swap
}

.TVHint {
    font-family: var(--tv-font-theme2);
    position: absolute;
    z-index: 100000;
    pointer-events: none;
    padding: 5px 12px;
    font-size: 12px;
    line-height: 15px;
    color: #fff;
    background-color: #333;
    box-shadow: 0 5px 15px 0 #777
}

.TVHint.TVHintIn {
    animation: tv-pop-in .3s ease-out alternate
}

.TVHint.TVHintOut {
    animation: tv-pop-out .3s ease-out alternate
}

@keyframes tv-pop-in {
    0% {
        opacity: 0;
        -webkit-transform: translateY(10px);
        transform: translateY(10px)
    }

    to {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0)
    }
}

@keyframes tv-pop-out {
    0% {
        opacity: 1;
        -webkit-transform: translateY(0);
        transform: translateY(0)
    }

    to {
        opacity: 0;
        -webkit-transform: translateY(10px);
        transform: translateY(10px)
    }
}

.TVStepLayerSwitch {
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    height: 100%
}

.TVStepLayerSwitch .TVStepButtonsBlock {
    display: flex;
    justify-content: space-between;
    height: 100%;
    margin-top: 20px
}

.TVStepLayerSwitch.TVFirstPanel .TVStepButtonsBlock {
    flex-direction: row-reverse
}

.TVStepLayerSwitch .TVStepButton {
    height: 40px;
    flex-basis: 200px;
    box-sizing: border-box;
    padding: 0 30px;
    border-radius: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--tv-font-theme2);
    font-size: 14px;
    cursor: pointer
}

.TVStepLayerSwitch .TVNext {
    background-color: #31708f;
    color: #fff;
    margin-left: auto
}

.TVStepLayerSwitch .TVNext:before {
    content: "Далее"
}

.TVStepLayerSwitch .TVPrevious {
    background-color: #fff;
    color: #31708f;
    margin-right: 10px
}

.TVStepLayerSwitch .TVPrevious:before {
    content: "Назад"
}

.TVTag {
    border-radius: 2px;
    padding: 1px 3px;
    text-transform: uppercase;
    cursor: default;
    font-size: var(--tag-font-size)
}

.TVTag,.TVTag.TVFontSize-M {
    --tag-font-size: 10px
}

.TVTag.TVFontSize-L {
    --tag-font-size: 11px
}

.TVTag.TVFontSize-XL {
    --tag-font-size: 12px
}

.TVTag.TVFontSize-XXL {
    --tag-font-size: 13px
}

.TVTag.TVFontSize-XXXL {
    --tag-font-size: 14px
}

.TVTag.TVFontSize-XXXXL {
    --tag-font-size: 15px
}

.TVTextControl.TVFontSize-S {
    font-size: 13px
}

.TVTextControl.TVFontSize-M {
    font-size: 14px
}

.TVTextControl.TVFontWeightSize-S {
    font-weight: 400
}

.TVTextControl.TVColorBlue400 {
    color: #5c6672
}

.TVLoaderImage {
    width: 100%;
    height: 100%;
    opacity: 0;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    border-radius: 100%;
    cursor: pointer
}

.TVLoaderImage::-webkit-file-upload-button {
    visibility: hidden
}

.TVSpinner {
    position: relative;
    display: block
}

.TVSpinnerDoubleOuter {
    animation: tv-spinner-rotate-inv .8s linear infinite
}

.TVSpinnerDoubleInner,.TVSpinnerDoubleOuter {
    content: "";
    display: block;
    margin: auto;
    border-radius: 100%;
    border: 1px solid
}

.TVSpinnerDoubleInner {
    position: absolute
}

.TVSpinnerDoubleInner,.TVSpinnerSingleOuter {
    animation: tv-spinner-rotate .8s linear infinite
}

.TVSpinnerSingleOuter {
    border-radius: 100%;
    border: 2px solid
}

.TVSpinner {
    overflow: hidden
}

.TVSpinner.TVSize-S {
    width: 14px;
    height: 14px
}

.TVSpinner.TVSize-S .TVSpinnerSingleOuter {
    width: 10px;
    height: 10px
}

.TVSpinner.TVSize-S .TVSpinnerDoubleOuter {
    width: 12px;
    height: 12px
}

.TVSpinner.TVSize-S .TVSpinnerDoubleInner {
    width: 6px;
    height: 6px;
    left: 3px;
    top: 3px
}

.TVSpinner.TVSize-M {
    width: 20px;
    height: 20px
}

.TVSpinner.TVSize-M .TVSpinnerDoubleOuter {
    width: 18px;
    height: 18px
}

.TVSpinner.TVSize-M .TVSpinnerDoubleInner {
    width: 10px;
    height: 10px;
    left: 4px;
    top: 4px
}

.TVSpinner.TVColorBlue440 .TVSpinnerSingleOuter {
    border-color: #008cc4 #008cc4 rgba(0,140,196,0) rgba(0,140,196,0)
}

.TVSpinner.TVColorBlue440 .TVSpinnerDoubleInner,.TVSpinner.TVColorBlue440 .TVSpinnerDoubleOuter {
    border-color: #008cc4 rgba(0,140,196,0)
}

.TVSpinner.TVColorBlue400 .TVSpinnerSingleOuter {
    border-color: #5c6672 #5c6672 rgba(0,140,196,0) rgba(0,140,196,0)
}

.TVSpinner.TVColorBlue400 .TVSpinnerDoubleInner,.TVSpinner.TVColorBlue400 .TVSpinnerDoubleOuter {
    border-color: #5c6672 rgba(0,140,196,0)
}

.TVSpinner.TVColorWhite .TVSpinnerSingleOuter {
    border-color: #fff #fff rgba(0,140,196,0) rgba(0,140,196,0)
}

.TVSpinner.TVColorWhite .TVSpinnerDoubleInner,.TVSpinner.TVColorWhite .TVSpinnerDoubleOuter {
    border-color: #fff rgba(0,140,196,0)
}

@keyframes tv-spinner-rotate {
    0% {
        transform: rotate(0deg)
    }

    to {
        transform: rotate(1turn)
    }
}

@keyframes tv-spinner-rotate-inv {
    0% {
        transform: rotate(1turn)
    }

    to {
        transform: rotate(0deg)
    }
}

.TVExpandableTextControl .TVExpandableTextButton {
    margin-top: 5px;
    text-decoration: underline;
    color: #4b90d5;
    cursor: pointer
}

.TVExpandableTextControl.TVPreview .TVExpandableTextButton,.TVExpandableTextControl.TVPreview .TVExpandableTextContent>* {
    visibility: hidden;
    position: relative
}

.TVExpandableTextControl.TVPreview .TVExpandableTextButton:before,.TVExpandableTextControl.TVPreview .TVExpandableTextContent>:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVDepartureTableNationControl {
    padding: 6px 13px 6px 11px;
    background-color: #fff;
    border: 1px solid transparent;
    border-radius: 30px;
    display: flex;
    align-items: center;
    font-family: var(--tv-font-theme2);
    font-weight: 400;
    font-size: 13px;
    line-height: 18px;
    white-space: nowrap;
    color: #333;
    cursor: pointer;
    margin-top: var(--itemTopMargin);
    margin-left: var(--itemLeftMargin)
}

.TVDepartureTableNationControl.TVSelected {
    background-color: #185584;
    color: #fff
}

.TVDepartureTableItemControl {
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    font-weight: 400;
    color: #333;
    cursor: pointer
}

.TVDepartureTableItemControl.TVItemBold {
    font-weight: 700
}

.TVDepartureTableItemControl.TVTransparent {
    background-color: transparent
}

.TVDepartureTableControl {
    min-width: 580px
}

.TVDepartureTableHeader {
    --itemTopMargin: 10px;
    --itemLeftMargin: 10px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    padding: calc(20px - var(--itemTopMargin)) 14px 20px calc(14px - var(--itemLeftMargin));
    background-color: #edf2f5;
    border-bottom: 1px solid #ddd
}

.TVDepartureTableHeader.TVWithoutFlightEnabled .TVDepartureTableNationWrapper {
    margin-left: 18px
}

.TVDepartureTableNoFlight {
    padding: 6px 13px 6px 11px;
    background-color: #fff;
    border: 1px solid transparent;
    border-radius: 30px;
    display: flex;
    align-items: center;
    font-family: var(--tv-font-theme2);
    font-weight: 400;
    font-size: 13px;
    line-height: 18px;
    white-space: nowrap;
    color: #333;
    cursor: pointer;
    margin-top: var(--itemTopMargin);
    margin-left: var(--itemLeftMargin)
}

.TVDepartureTableNoFlight.TVSelected {
    background-color: #185584;
    color: #fff
}

.TVDepartureTableNoFlight:before {
    content: "Без перелета"
}

.TVDepartureTableNationWrapper {
    display: flex;
    align-items: center;
    margin-right: 40px
}

.TVDepartureTableBody {
    position: relative;
    padding: 20px;
    border-bottom: 1px solid #ddd;
    display: flex;
    flex-direction: column
}

.TVDepartureTableContent {
    display: flex;
    flex-flow: column wrap
}

.TVDepartureTableItemWrapper {
    width: 180px;
    height: 24px;
    display: flex;
    align-items: center
}

.TVDepartureTableItemWrapper.TVItemMarginLeft {
    margin-left: 20px
}

.TVDepartureTableItemChar {
    width: 10px;
    margin-right: 10px;
    font-family: var(--tv-font-theme2);
    font-weight: 700;
    font-size: 13px;
    color: #55addc;
    text-transform: uppercase
}

.TVListCities .TVListBox {
    padding-top: 0
}

.TVListCities .TVListBoxItem {
    font-weight: 600
}

.TVCityListWithTabs .TVCityListTabs {
    box-sizing: border-box;
    height: 30px;
    margin-bottom: 20px
}

.TVCityListWithTabs .TVListCities,.TVCityListWithTabs .TVTextControl {
    height: 100%;
    overflow-y: auto
}

.TVCityListWithTabs .TVListBoxItem {
    padding: 15px 0;
    font-family: var(--tv-font-theme2);
    font-size: 14px;
    line-height: 20px;
    color: #333;
    border-bottom: 1px solid #ddd
}

.TVCityListWithTabs .TVListBoxItem:hover {
    background: initial
}

.TVCityPanel .TVListBoxItem {
    padding: 15px 0;
    font-family: var(--tv-font-theme2);
    font-size: 14px;
    line-height: 20px;
    color: #333;
    border-bottom: 1px solid #ddd
}

.TVCityPanel.TVMobilePanel {
    min-width: auto
}

.TVCityPanel.TVMobilePanel .TVMobilePanelHeader .TVMobilePanelCaption:after {
    content: "Выберите город вылета"
}

.TVCityPanel.TVMobilePanel .TVTabbedListControl {
    padding: 10px 20px 8px
}

.TVCityPanel {
    user-select: none;
    min-width: 760px
}

.tv_drop_panel.TVCityPanel .tv_content {
    margin: 0
}

.TVLoadImage {
    height: 70px;
    width: 70px;
    border: 1px solid #ddd;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 4px;
    box-sizing: border-box
}

.TVLoadImage:before {
    text-transform: uppercase;
    text-align: center;
    font-size: 10px
}

.TVLoadImage .TVLoadImageBlock {
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: cover;
    width: calc(100% - 3px);
    height: calc(100% - 3px);
    box-sizing: border-box;
    position: absolute
}

.TVLoadImage .TVDeleteImage {
    border-radius: 100%;
    width: 13px;
    height: 13px;
    box-sizing: border-box;
    position: absolute;
    right: 0;
    top: 0;
    cursor: pointer
}

.TVLoadImage .TVDeleteImage:before {
    font-family: TVicons;
    content: "\e912";
    color: #c00;
    font-size: 13px;
    width: 13px;
    height: 13px;
    display: flex;
    justify-content: center;
    align-items: center
}

.TVLoadImage.TVNoImage:before {
    content: "Загрузить картинку"
}

.TVGallery {
    position: relative;
    height: 250px
}

.TVGallery .TVGallContainer {
    overflow: hidden;
    transform-style: preserve-3d;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column
}

.TVGallery .TVGallContainer .TVGallList {
    height: 100%;
    transition: transform .5s ease;
    transform: translateZ(0);
    display: inline-flex
}

.TVGallery .TVGallContainer .TVGallList .TVPhotoGalleryImageWrapper {
    height: 100%;
    width: 100%;
    display: flex;
    justify-content: center;
    background-color: #edf2f5
}

.TVGallery .TVGallContainer .TVGallList .TVPhotoGalleryImageWrapper.TVPreview {
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite
}

.TVGallery .TVGallContainer .TVGallList .TVPhotoGalleryImage {
    height: 100%;
    width: 100%;
    overflow: hidden;
    text-align: center;
    background-color: #efefef;
    background-position: 50%;
    background-repeat: no-repeat
}

.TVGallery .TVGallContainer .TVGallList .TVPhotoGalleryImage.TVBackgroundSize-Initial {
    background-size: initial
}

.TVGallery .TVGallContainer .TVGallList .TVPhotoGalleryImage.TVBackgroundSize-Cover {
    background-size: cover
}

.TVGallery .TVGallContainer .TVGallList .TVPhotoGalleryImage.TVBackgroundSize-Contain {
    background-size: contain
}

.TVGallery .TVGallContainer .TVGallList img.TVPhotoGalleryImage {
    width: auto;
    max-width: 100%
}

.TVGallery .TVGallContainer .TVGallLeft,.TVGallery .TVGallContainer .TVGallRight {
    position: absolute;
    top: 0;
    width: var(--button-width);
    height: 100%;
    cursor: pointer;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    text-shadow: 0 3px 10px rgba(0,0,0,.8)
}

.TVGallery .TVGallContainer .TVGallLeft:before,.TVGallery .TVGallContainer .TVGallRight:before {
    width: var(--button-width);
    line-height: var(--button-width);
    font-size: calc(var(--button-width) - 6px);
    color: #fff;
    font-weight: 700
}

.TVGallery .TVGallContainer .TVGallLeft.TVDisabled,.TVGallery .TVGallContainer .TVGallRight.TVDisabled {
    display: none
}

.TVGallery .TVGallContainer .TVGallLeft.TVSize-M,.TVGallery .TVGallContainer .TVGallRight.TVSize-M {
    --button-width: 30px
}

.TVGallery .TVGallContainer .TVGallLeft.TVSize-L,.TVGallery .TVGallContainer .TVGallRight.TVSize-L {
    --button-width: 57px
}

.TVGallery .TVGallContainer .TVGallLeft {
    left: 0
}

.TVGallery .TVGallContainer .TVGallLeft:before {
    font-family: TVicons;
    content: "\e909"
}

.TVGallery .TVGallContainer .TVGallRight {
    right: 0
}

.TVGallery .TVGallContainer .TVGallRight:before {
    font-family: TVicons;
    content: "\e90a"
}

.TVGallery .TVGallContainer .TVGallCount {
    box-sizing: border-box;
    text-align: center;
    position: absolute;
    padding: 1px 6px;
    font-size: 13px
}

.TVGallery .TVGallContainer .TVGallCount.TVPhotoGalleryShape-Rectangle {
    bottom: 0;
    right: 0;
    color: #fff;
    background-color: rgba(34,34,34,.64)
}

.TVGallery .TVGallContainer .TVGallCount.TVPhotoGalleryShape-Square {
    left: 50%;
    transform: translateX(-50%);
    bottom: 10px;
    border-radius: 10px;
    color: #fff;
    background-color: #000
}

.TVGallery .TVGallContainer .TVGallCount.TVPhotoGalleryShape-Dots {
    left: 50%;
    transform: translateX(-50%);
    bottom: 10px;
    display: flex
}

.TVGallery .TVGallContainer .TVGallCount.TVPhotoGalleryShape-Dots>:not(:last-child) {
    margin-right: 10px
}

.TVGallery .TVGallContainer .TVPhotoGalleryCountDot {
    width: 10px;
    height: 10px;
    border-radius: 5px;
    opacity: .7;
    background-color: #fff
}

.TVGallery .TVGallContainer .TVPhotoGalleryCountDot.TVActive {
    opacity: 1
}

.TVGallery .TVGallContainer .TVGallLoupe {
    width: 32px;
    height: 32px;
    box-sizing: border-box;
    position: absolute;
    left: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #000;
    opacity: .6;
    border-radius: 0 5px 0 0;
    cursor: pointer
}

.TVGallery .TVGallContainer .TVGallLoupe:before {
    font-size: 14px;
    color: #fff;
    font-family: TVicons;
    content: "\e91d"
}

.TVGallery.TVStopAnimation .TVGallList {
    transition: none
}

.TVPhotoGallery {
    height: 100%;
    font-family: var(--tv-font-theme2);
    background-color: #000;
    box-sizing: border-box;
    color: #fff;
    display: flex;
    justify-content: center;
    flex-direction: column
}

.TVPhotoGallery .TVPhotoGalleryTitle {
    text-transform: capitalize;
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 2vh
}

.TVPhotoGallery .TVPhotoGalleryContent {
    height: 100%;
    position: relative
}

.TVPhotoGallery .TVPhotoGalleryItems {
    height: 100%;
    overflow: hidden;
    position: relative
}

.TVPhotoGallery .TVPhotoGalleryItems .TVPhotoGalleryImageWrapper {
    position: absolute;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center
}

.TVPhotoGallery .TVPhotoGalleryItems .TVPhotoGalleryImage:not(img),.TVPhotoGallery .TVPhotoGalleryItems img.TVPhotoGalleryImage {
    position: absolute;
    opacity: 0;
    transition: opacity .5s ease-out;
    background: 50% no-repeat
}

.TVPhotoGallery .TVPhotoGalleryItems .TVPhotoGalleryImage:not(img) {
    height: 100%;
    width: 100%;
    max-height: 100%
}

.TVPhotoGallery .TVPhotoGalleryItems .TVPhotoGalleryImage:not(img).TVBackgroundSize-Initial {
    background-size: initial
}

.TVPhotoGallery .TVPhotoGalleryItems .TVPhotoGalleryImage:not(img).TVBackgroundSize-Cover {
    background-size: cover
}

.TVPhotoGallery .TVPhotoGalleryItems .TVPhotoGalleryImage:not(img).TVBackgroundSize-Contain {
    background-size: contain
}

.TVPhotoGallery .TVPhotoGalleryItems img.TVPhotoGalleryImage {
    max-width: 100%;
    max-height: 100%;
    user-select: none
}

.TVPhotoGallery .TVPhotoGalleryItems.TVPhotoSwitchingTransform {
    transition: transform .5s ease
}

.TVPhotoGallery .TVPhotoGalleryItems.TVPhotoSwitchingTransform .TVPhotoGalleryImageWrapper {
    position: relative;
    width: 100vw;
    height: 100%;
    display: inline-flex;
    justify-content: center;
    align-items: center
}

.TVPhotoGallery .TVPhotoGalleryItems.TVPhotoSwitchingTransform img.TVPhotoGalleryImage {
    opacity: 1;
    max-width: 100%;
    max-height: 100%
}

.TVPhotoGallery .TVPhotoGalleryItems.TVPhotoSwitchingTransform .TVPhotoGalleryImage:not(img) {
    position: relative;
    display: inline-block;
    opacity: 1;
    width: 100vw
}

.TVPhotoGallery .TVPhotoGalleryLeft,.TVPhotoGallery .TVPhotoGalleryRight {
    position: absolute;
    top: 0;
    height: 100%;
    width: 40px;
    cursor: pointer;
    text-align: center;
    display: flex;
    align-items: center;
    text-shadow: 0 3px 10px rgba(0,0,0,.8)
}

.TVPhotoGallery .TVPhotoGalleryLeft:before,.TVPhotoGallery .TVPhotoGalleryRight:before {
    color: #fff;
    line-height: 40px;
    width: 40px;
    font-size: 40px
}

.TVPhotoGallery .TVPhotoGalleryLeft.TVDisabled,.TVPhotoGallery .TVPhotoGalleryRight.TVDisabled {
    display: none
}

.TVPhotoGallery .TVPhotoGalleryRight {
    right: 0
}

.TVPhotoGallery .TVPhotoGalleryRight:before {
    font-family: TVicons;
    content: "\e90a"
}

.TVPhotoGallery .TVPhotoGalleryLeft {
    left: 0
}

.TVPhotoGallery .TVPhotoGalleryLeft:before {
    font-family: TVicons;
    content: "\e909"
}

.TVPhotoGallery.TVStopAnimation .TVPhotoSwitchingTransform {
    transition: none
}

.TVPhotoGalleryFooter {
    display: flex;
    justify-content: center;
    margin-top: 2vh;
    background-color: #000;
    color: #fff;
    border-radius: 10px;
    padding: 3px 8px;
    font-size: 16px;
    font-weight: 500
}

.TVPhotoGalleryCount {
    white-space: nowrap;
    text-align: center
}

.TVPhotoGalleryDescription {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    max-width: 50vw
}

.TVPhotoGalleryDescription:before {
    content: "-";
    margin: 0 5px
}

.TVPhotoSlider {
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: #efefef;
    position: relative
}

.TVPhotoSlider .TVSNavLeft,.TVPhotoSlider .TVSNavRight {
    position: absolute;
    padding: 4px 0;
    background-color: rgba(18,17,17,.75);
    opacity: 0;
    zoom:1;z-index: 10;
    cursor: pointer;
    filter: alpha(opacity=0);
    transition: opacity .5s ease-in-out;
    user-select: none;
    top: 50%;
    color: #fff;
    border-bottom-right-radius: 4px;
    border-top-right-radius: 4px
}

.TVPhotoSlider .TVSNavLeft:before,.TVPhotoSlider .TVSNavRight:before {
    font-family: TVicons;
    content: "\e907";
    font-size: 33px
}

.TVPhotoSlider .TVSNavLeft {
    left: 0;
    transform: translateY(-50%)
}

.TVPhotoSlider .TVSNavRight {
    right: 0;
    border-bottom-left-radius: 0;
    border-top-left-radius: 0;
    transform: scaleX(-1) translateY(-50%)
}

.TVPhotoSlider:hover .TVSNavLeft,.TVPhotoSlider:hover .TVSNavRight {
    opacity: 1;
    filter: alpha(opacity=100)
}

.TVPhotoSliderList {
    width: 100%;
    height: 100%;
    position: relative;
    text-align: center;
    overflow: hidden
}

.TVPhotoSliderItem {
    width: 100%;
    height: 100%;
    display: inline-block;
    background-position: 50%;
    background-repeat: no-repeat;
    border: 0
}

.TVPhotoSliderItem.TVPreview {
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite
}

.TVPhotoSliderItem.TVBackgroundSize-Initial {
    background-size: initial
}

.TVPhotoSliderItem.TVBackgroundSize-Cover {
    background-size: cover
}

.TVPhotoSliderItem.TVBackgroundSize-Contain {
    background-size: contain
}

.TVPhotoSliderCounter {
    position: absolute;
    right: 0;
    bottom: 0;
    color: #fff;
    padding: 5px;
    background-color: rgba(0,0,0,.64);
    border-bottom-right-radius: 3px;
    font-size: 13px
}

.TVPreviewGalleryControl {
    display: flex;
    flex-wrap: wrap
}

.TVPreviewGalleryControl .TVPreviewGalleryItem {
    box-sizing: border-box;
    width: 92px;
    height: 60px;
    margin-top: 10px;
    margin-left: 10px;
    background-size: cover;
    background-position: 50%;
    background-repeat: no-repeat;
    border: 2px solid transparent;
    border-radius: 5px;
    cursor: pointer
}

.TVPreviewGalleryControl .TVPreviewGalleryItem:nth-child(12n+1),.TVPreviewGalleryControl .TVPreviewGalleryItem:nth-child(12n+2),.TVPreviewGalleryControl .TVPreviewGalleryItem:nth-child(12n+3) {
    margin-top: 0
}

.TVPreviewGalleryControl .TVPreviewGalleryItem:nth-child(3n+1) {
    margin-left: 0
}

.TVPreviewGalleryControl .TVPreviewGalleryItem.TVSelected {
    border-color: #00a3be
}

.TVPreviewGalleryControl .TVPreviewGalleryItem.TVPreview {
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite
}

.TVPhoto {
    display: inline-flex;
    border-radius: 5px;
    box-sizing: border-box;
    background-size: cover;
    background-position: 50%;
    background-repeat: no-repeat;
    overflow: hidden
}

.TVPhoto.TVPreview .TVPhotoPreview {
    width: 100%;
    height: 100%;
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite
}

.TVPhotoSliderGallery {
    height: 100%;
    width: 100%
}

.TVPhotoSliderGallery .TVPhoto {
    cursor: pointer
}

.TVPhotoSliderGallery.TVStyleTheme1 .TVPhoto.TVActive {
    filter: brightness(1);
    border: 2px solid #fff
}

.TVPhotoSliderGallery.TVStyleTheme1 .TVPhoto:not(.TVActive) {
    filter: brightness(.6)
}

.TVPhotoSliderGallery.TVStyleTheme1 .TVPhoto:not(.TVActive):hover {
    filter: brightness(1)
}

.TVMobilePanel.TVSortingPanel .TVMobilePanelCaption:after {
    content: "Сортировать по"
}

.TVRestControl {
    user-select: none
}

.TVRestControl .TVListRests {
    padding-bottom: 0
}

.tv_drop_panel.TVRestControl .tv_content {
    margin: 0
}

.tv_drop_panel.TVRestControl .tv_content .TVListRests {
    height: 400px;
    width: 300px
}

.tv_drop_panel.TVRestControl .tv_content .TVNotSelected:before {
    content: "Любой"
}

.TVListRests {
    box-sizing: border-box;
    height: 100%;
    padding: 20px 10px 24px 20px
}

.TVListRests .TVListRestsBody {
    width: 100%;
    height: 100%;
    overflow: hidden;
    overflow-y: auto;
    display: flex;
    flex-direction: column
}

.TVListRests .TVTreeListCheck {
    overflow-x: visible
}

.TVListRests .TreeListItem {
    margin-right: 0
}

.TVListRests .TVCheckBox {
    width: calc(100% - 22px);
    padding: 2px 0;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    min-height: 18px;
    color: #333;
    display: flex;
    align-items: center
}

.TVListRests .TVCheckBox:before {
    font-size: 10px;
    line-height: 10px;
    height: 10px
}

.TVMobilePanel.TVRestControl .TVMobilePanelCaption:after {
    content: "Выберите тип отдыха"
}

.TVMobilePanel.TVRestControl .TVCheckBox {
    width: 100%;
    padding: 15px 0;
    border-bottom: 1px solid #ddd;
    font-size: 14px
}

.TVMobilePanel.TVRestControl .TVTreeContainer .TreeListItem:after {
    display: none
}

.TVMobilePanel.TVRestControl .TVTreeListNav,.TVMobilePanel.TVRestControl .TVTreeListNav.TVTreeClose {
    width: 49px;
    height: 49px;
    top: 0;
    right: 0;
    font-size: 20px
}

.TVMobilePanel.TVRestControl .TVListRests {
    padding-right: 20px
}

.TVMobilePanel.TVRestControl .TVListRests .TVListRestsBody {
    padding-right: 10px
}

.TVMobileFilter .TVMobileFilterItem {
    padding: 15px;
    display: flex;
    align-items: center;
    border-top: 1px solid #ddd
}

.TVMobileFilter .TVMobileFilterItem:before {
    width: 75px;
    min-width: 75px;
    font-family: var(--tv-font-theme2);
    font-size: 10px;
    font-weight: 400;
    line-height: 11px;
    text-align: right;
    text-transform: uppercase;
    word-spacing: 60px;
    color: #777
}

.TVMobileFilter .TVMobileFilterItem .TVComboBox .TVTextBox {
    width: 100%;
    padding: 0;
    border: 0;
    background: #fff
}

.TVMobileFilter .TVMobileFilterItem .TVComboBox .TVTextBoxContent {
    margin-right: 20px;
    line-height: normal
}

.TVMobileFilter .TVMobileFilterItem .TVComboBox .TVTextBoxSelector {
    margin-top: 0;
    right: 0
}

.TVMobileFilter .TVMobileFilterItem .TVComboBox .TVTextBoxSelector:after {
    line-height: normal;
    font-weight: lighter
}

.TVMobileFilter .TVMobileFilterItem.TVMobileFilterDeparture:before {
    content: "Город вылета"
}

.TVMobileFilter .TVMobileFilterItem.TVMobileFilterCountry:before {
    content: "Страна"
}

.TVMobileFilter .TVMobileFilterItem.TVMobileFilterDate:before {
    content: "Даты тура"
}

.TVMobileFilter .TVMobileFilterItem.TVMobileFilterVisa:before {
    content: "Без виз"
}

.TVMobileFilter .TVMobileFilterItem.TVMobileFilterRest:before {
    content: "Тип отдыха"
}

.TVMobileFilter .TVMobileFilterItem.TVMobileFilterDirectOnly:before {
    content: "Скрыть регулярные рейсы"
}

.TVMobileFilter .TVMobileFilterItem.TVNotSelected .TVMobileFilterContent:before {
    content: "Любой"
}

.TVMobileFilter .TVMobileFilterContent,.TVMobileFilter .TVMobileFilterItem .TVComboBox .TVTextBox {
    box-sizing: border-box;
    font-family: var(--tv-font-theme2);
    font-size: 16px;
    font-weight: 700;
    line-height: normal;
    color: #333;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.TVMobileFilter .TVMobileFilterContent {
    width: calc(100% - 95px);
    padding-left: 20px
}

.TVMobileFilter .TVMobileFilterDate .TVMobileFilterContent {
    width: calc(100% - 75px)
}

.TVMobileFilter .TVMobileFilterDeparture .TVMobileFilterContent:before {
    margin-right: 5px;
    content: "из"
}

.TVMobileFilter .TVMobileFilterItem .TVComboBox .TVTextBoxSelector:after,.TVMobileFilter .TVMobileFilterItem:after {
    margin-left: auto;
    font-family: TVicons;
    content: "\e900";
    font-size: 20px;
    font-weight: lighter;
    color: #aaa
}

.TVMobileFilter .TVMobileFilterItem.TVMobileFilterCountry .TVCountryFlags,.TVMobileFilter .TVMobileFilterItem.TVMobileFilterDate:after,.TVMobileFilter .TVMobileFilterItem.TVMobileFilterDirectOnly:after,.TVMobileFilter .TVMobileFilterItem.TVMobileFilterVisa:after {
    display: none
}

.TVMobileFilter .TVCheckBox {
    line-height: normal
}

.TVMobileFilter .TVCheckBox:before {
    margin-right: 0;
    border-radius: 5px;
    font-size: 16px
}

.TVMobileFilter .TVMobMFItemCntr.TVMobMFStarsTitle {
    width: 75px;
    min-width: 75px;
    margin-right: 0
}

.TVMobileFilter .TVMobMFItemToggle {
    width: calc(100% - 75px)
}

.TVMobileFilter .TVMobMFStars {
    margin-left: 20px
}

.TVColorPicker_wrapper.TVColorPicker_no_alpha .TVColorPicker_alpha {
    display: none
}

.TVColorPicker_wrapper.TVColorPicker_no_editor .TVColorPicker_editor {
    position: absolute;
    z-index: -1;
    opacity: 0
}

.TVColorPicker_wrapper.TVColorPicker_no_cancel .TVColorPicker_cancel {
    display: none
}

.TVColorPickerLayout_default.TVColorPicker_wrapper {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
    align-items: stretch;
    font-size: 10px;
    width: 25em;
    padding: .5em
}

.TVColorPickerLayout_default.TVColorPicker_wrapper input {
    font-size: 1rem
}

.TVColorPickerLayout_default.TVColorPicker_wrapper>* {
    margin: .5em
}

.TVColorPickerLayout_default.TVColorPicker_wrapper:before {
    content: "";
    display: block;
    width: 100%;
    height: 0;
    order: 1
}

.TVColorPickerLayout_default .TVColorPicker_selector,.TVColorPickerLayout_default .TVColorPicker_slider {
    padding: 1em
}

.TVColorPickerLayout_default .TVColorPicker_hue {
    width: 100%
}

.TVColorPickerLayout_default .TVColorPicker_sl {
    flex: 1 1 auto
}

.TVColorPickerLayout_default .TVColorPicker_sl:before {
    content: "";
    display: block;
    padding-bottom: 100%
}

.TVColorPickerLayout_default .TVColorPicker_editor {
    order: 1;
    width: 6.5rem
}

.TVColorPickerLayout_default .TVColorPicker_editor input {
    width: 100%;
    height: 100%;
    color: #555
}

.TVColorPickerLayout_default .TVColorPicker_sample {
    order: 1;
    flex: 1 1 auto
}

.TVColorPickerLayout_default .TVColorPicker_cancel,.TVColorPickerLayout_default .TVColorPicker_done {
    order: 1
}

.TVColorPicker_wrapper {
    box-sizing: border-box;
    background: #f2f2f2;
    box-shadow: 0 0 0 1px silver;
    cursor: default;
    font-family: sans-serif;
    color: #444;
    pointer-events: auto
}

.TVColorPicker_wrapper:focus {
    outline: none
}

.TVColorPicker_wrapper input {
    box-sizing: border-box;
    border: none;
    box-shadow: 0 0 0 1px silver;
    outline: none
}

.TVColorPicker_wrapper input:active,.TVColorPicker_wrapper input:focus {
    box-shadow: 0 0 2px 1px #1e90ff
}

.TVColorPicker_selector {
    position: absolute;
    z-index: 1;
    display: block;
    transform: translate(-50%,-50%);
    border: 2px solid #fff;
    border-radius: 100%;
    box-shadow: 0 0 3px 1px #67b9ff;
    background: currentColor;
    cursor: pointer
}

.TVColorPicker_slider .TVColorPicker_selector {
    border-radius: 2px
}

.TVColorPicker_hue {
    background-image: linear-gradient(90deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red)
}

.TVColorPicker_hue,.TVColorPicker_sl {
    position: relative;
    box-shadow: 0 0 0 1px silver
}

.TVColorPicker_sl {
    background-image: linear-gradient(180deg,#fff,hsla(0,0%,100%,0) 50%),linear-gradient(0deg,#000,transparent 50%),linear-gradient(90deg,grey,hsla(0,0%,50.2%,0))
}

.TVColorPicker_alpha,.TVColorPicker_sample {
    position: relative;
    background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2'%3E%3Cpath d='M1 0H0v1h2v1H1' fill='%23d3d3d3'/%3E%3C/svg%3E") 0 0/contain #fff;
    box-shadow: 0 0 0 1px silver
}

.TVColorPicker_alpha .TVColorPicker_selector,.TVColorPicker_sample .TVColorPicker_selector {
    background: none
}

.TVColorPicker_editor input {
    font-family: monospace;
    padding: .2em .4em
}

.TVColorPicker_sample:before {
    content: "";
    position: absolute;
    display: block;
    width: 100%;
    height: 100%;
    background: currentColor
}

.TVColorPicker_arrow {
    position: absolute;
    z-index: -1
}

.TVColorPicker_cancel,.TVColorPicker_done {
    cursor: pointer;
    box-sizing: border-box;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 2px;
    color: #555;
    padding: 8px
}

.TVColorPicker_cancel:before,.TVColorPicker_done:before {
    text-transform: uppercase;
    font-size: 15px
}

.TVColorPicker_done:before {
    content: "Ок"
}

.TVColorPicker_cancel:before {
    content: "Отменить"
}

.TVColorPicker_wrapper.TVColorPickerPopup {
    position: absolute;
    z-index: 2;
    margin: 1.5em
}

.TVColorPicker_wrapper.TVColorPickerPopup,.TVColorPicker_wrapper.TVColorPickerPopup .TVColorPicker_arrow:after,.TVColorPicker_wrapper.TVColorPickerPopup .TVColorPicker_arrow:before {
    background: #fff;
    box-shadow: 0 5px 15px 0 #777
}

.TVColorPicker_wrapper.TVColorPickerPopup .TVColorPicker_arrow {
    width: 3em;
    height: 3em;
    margin: 0
}

.TVColorPicker_wrapper.TVColorPickerPopup .TVColorPicker_arrow:after,.TVColorPicker_wrapper.TVColorPickerPopup .TVColorPicker_arrow:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -99
}

.TVColorPicker_wrapper.TVColorPickerPopup .TVColorPicker_arrow:before {
    width: 100%;
    height: 100%;
    transform: skew(45deg);
    transform-origin: 0 100%
}

.TVColorPicker_wrapper.TVColorPickerPopup .TVColorPicker_arrow:after {
    width: 150%;
    height: 150%;
    box-shadow: none
}

.TVColorPickerPopup.TVColorPicker_popup_top {
    bottom: 100%;
    left: 0
}

.TVColorPickerPopup.TVColorPicker_popup_top .TVColorPicker_arrow {
    bottom: 0;
    left: 0;
    transform: rotate(-90deg)
}

.TVColorPickerPopup.TVColorPicker_popup_bottom {
    top: 100%;
    left: 0
}

.TVColorPickerPopup.TVColorPicker_popup_bottom .TVColorPicker_arrow {
    top: 0;
    left: 0;
    transform: rotate(90deg) scaleY(-1)
}

.TVColorPickerPopup.TVColorPicker_popup_left {
    top: 0;
    right: 100%
}

.TVColorPickerPopup.TVColorPicker_popup_left .TVColorPicker_arrow {
    top: 0;
    right: 0;
    transform: scaleX(-1)
}

.TVColorPickerPopup.TVColorPicker_popup_right {
    top: 0;
    left: 100%
}

.TVColorPickerPopup.TVColorPicker_popup_right .TVColorPicker_arrow {
    top: 0;
    left: 0
}

.TVTableView {
    transition: opacity .5s
}

.TVTableView,.TVTableView .TVVisibleArea {
    flex-wrap: wrap;
    display: flex;
    box-sizing: border-box
}

.TVTableView .TVVisibleArea {
    width: 100%
}

.TVTableView .TVInvisibleAreaBlock {
    height: 0;
    overflow: hidden;
    transition: height .5s;
    width: 100%
}

.TVTableView .TVInvisibleAreaBlock .TVInvisibleArea {
    flex-wrap: wrap;
    display: flex;
    box-sizing: border-box
}

.TVTableView .TVTableViewButtonBlock {
    width: 100%;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 30px;
    margin-top: 20px
}

.TVTableView .TVTableViewButtonBlock:after,.TVTableView .TVTableViewButtonBlock:before {
    display: block;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: calc(50% - 100px);
    height: 1px;
    content: "";
    margin: auto;
    background-color: #ddd
}

.TVTableView .TVTableViewButtonBlock .TVTableViewButton {
    width: 145px;
    height: 30px;
    background-color: #efefef;
    border: 1px solid #ddd;
    border-radius: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-transform: uppercase;
    box-sizing: border-box;
    cursor: pointer;
    font-family: var(--tv-font-theme2)
}

.TVTableView .TVTableViewButtonBlock .TVTableViewButton:before {
    content: "Показать все";
    text-transform: uppercase;
    font-size: 10px;
    color: #777
}

.TVTableView.TVShowAll .TVTableViewButton:before {
    content: "Скрыть"
}

.TVListViewWrapperMore {
    width: 100px;
    margin: 20px auto 0
}

.TVListViewWrapperMore:before {
    content: "Показать еще";
    line-height: 15px
}

.TVListViewWrapper {
    display: flex;
    flex-direction: column
}

.TVTableViewWrapperMore {
    width: 100px;
    margin: 20px auto 0
}

.TVTableViewWrapperMore:before {
    content: "Показать еще";
    line-height: 15px
}

.TVTableView {
    width: 100%
}

.TVSliderView {
    overflow: hidden;
    width: 100%;
    position: relative;
    transition: opacity .5s;
    -ms-overflow-style: none;
    scrollbar-width: none
}

.TVSliderView::-webkit-scrollbar {
    display: none
}

.TVSliderView.TVJustify-Start .TVSliderViewList {
    margin: 0
}

.TVSliderView.TVJustify-Center .TVSliderViewList {
    margin: 0 auto
}

.TVSliderView .TVSliderViewList {
    display: flex;
    box-sizing: border-box;
    padding: 0;
    overflow-y: hidden;
    position: relative;
    left: 0;
    transition: left .5s ease 0s
}

.TVSliderView .TVSliderViewLeft,.TVSliderView .TVSliderViewRight {
    width: 30px;
    height: 50px;
    box-sizing: border-box;
    opacity: .7;
    background-color: #000;
    position: absolute;
    margin: auto;
    top: 0;
    bottom: 0;
    cursor: pointer;
    transition: opacity .5s ease-in-out;
    z-index: 1
}

.TVSliderView .TVSliderViewLeft:before,.TVSliderView .TVSliderViewRight:before {
    font-size: 30px;
    line-height: 50px;
    color: #fff
}

.TVSliderView .TVSliderViewLeft {
    left: 0;
    border-bottom-right-radius: 4px;
    border-top-right-radius: 4px
}

.TVSliderView .TVSliderViewLeft:before {
    font-family: TVicons;
    content: "\e907"
}

.TVSliderView .TVSliderViewRight {
    right: 0;
    border-bottom-left-radius: 4px;
    border-top-left-radius: 4px
}

.TVSliderView .TVSliderViewRight:before {
    font-family: TVicons;
    content: "\e908"
}

.TVSliderView .TVSandartItem.TVMinPriceItem {
    display: inline-flex;
    margin: 10px 0
}

.TVSliderView.TVScrollEnabled {
    overflow-x: scroll
}

.TVSliderView .TVSliderViewLeft.TVSliderViewNavButtonTransparent,.TVSliderView .TVSliderViewRight.TVSliderViewNavButtonTransparent,.TVSliderViewNavButtonTransparent {
    opacity: 0;
    pointer-events: none
}

.TVListItemControl {
    cursor: pointer;
    font-size: 14px;
    font-weight: 400;
    color: #333
}

.TVListItemControl.TVNoTouch:hover,.TVListItemControl.TVSelected,.TVListItemControl.TVTouch:active {
    background-color: #efefef
}

.TVListItemControl.TVWithBorder:not(:last-child) {
    border-bottom: 1px solid #ddd
}

.TVListItemControl.TVPaddingSize-M {
    padding: 6px 20px
}

.TVListItemControl.TVPaddingSize-L {
    padding: 15px 10px
}

.TVListItemContentRow {
    display: flex;
    align-items: center
}

.TVListItemContentColumn {
    display: flex;
    flex-direction: column
}

.TVListItemPrefix {
    margin-right: 5px
}

.TVListItemSubContent {
    font-size: 11px;
    opacity: .6
}

.TVListSelectSearchInput {
    background-color: inherit;
    margin-bottom: 10px;
    padding: 0 10px
}

.TVListSearchDecoratorIcon {
    display: block;
    line-height: 17px
}

.TVListSearchDecoratorIcon:before {
    font-family: TVicons;
    content: "\e91d";
    font-size: 15px;
    color: #5c6672;
    margin-right: 10px
}

.TVCheckboxListControl.TVStyleTheme1,.TVListControl {
    display: flex;
    flex-direction: column
}

.TVCheckboxListControl.TVStyleTheme1 .TVCheckBox {
    color: #5c6672;
    padding: 2px 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 13px
}

.TVCheckboxListControl.TVStyleTheme1 .TVCheckBox.TVChecked:before {
    background-color: #5c6672;
    border-color: #5c6672
}

.TVCheckboxListControl.TVStyleTheme2 {
    display: flex;
    flex-direction: column
}

.TVCheckboxListControl.TVStyleTheme2 .TVCheckBox {
    display: flex;
    align-items: center;
    color: #333;
    padding: 15px 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
    border-bottom: 1px solid #ddd
}

.TVCheckboxListControl.TVStyleTheme2 .TVCheckBox.TVChecked:before {
    background-color: #5c6672;
    border-color: #5c6672
}

.TVCheckboxListControl.TVStyleTheme3 {
    display: flex;
    flex-direction: column
}

.TVCheckboxListControl.TVStyleTheme3 .TVCheckBox {
    padding: 13px 0;
    display: flex;
    border-bottom: 1px solid #ddd;
    font-size: 13px;
    font-weight: 400;
    color: #5c6672
}

.TVCheckboxListControl.TVStyleTheme3 .TVCheckBox.TVChecked:before {
    background-color: #5c6672;
    border-color: #5c6672
}

.TVCheckboxListControl.TVStyleTheme3 .TVCheckBox:before {
    height: 12px;
    line-height: 12px
}

.TVCheckboxTreeItemRootWrapper {
    display: flex;
    justify-content: space-between
}

.TVCheckboxTreeItemArrow {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    cursor: pointer
}

.TVCheckboxTreeItemArrow:before {
    color: #5c6672
}

.TVCheckboxTreeItemChildren {
    display: flex;
    flex-direction: column
}

.TVCheckboxTreeItem.TVStyleTheme1 .TVCheckboxTreeItemRootWrapper {
    height: 22px;
    padding-right: 5px;
    align-items: center
}

.TVCheckboxTreeItem.TVStyleTheme1 .TVCheckboxTreeItemRoot {
    flex: 1;
    min-width: 0
}

.TVCheckboxTreeItem.TVStyleTheme1 .TVCheckboxTreeItemRoot .TVCheckBox {
    width: 100%
}

.TVCheckboxTreeItem.TVStyleTheme1 .TVCheckboxTreeItemArrow {
    width: 16px;
    height: 16px;
    margin-left: 5px;
    background-color: #f1f1f1
}

.TVCheckboxTreeItem.TVStyleTheme1 .TVCheckboxTreeItemArrow:before {
    content: "+";
    font-size: 13px;
    line-height: 1
}

.TVCheckboxTreeItem.TVStyleTheme1 .TVCheckboxTreeItemArrow.TVActive:before {
    content: "–";
    transform: translateY(-1px)
}

.TVCheckboxTreeItem.TVStyleTheme1 .TVCheckBox {
    color: #5c6672;
    padding: 2px 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 13px;
    height: 18px;
    display: block;
    position: relative
}

.TVCheckboxTreeItem.TVStyleTheme1 .TVCheckBox.TVChecked:before {
    background-color: #5c6672;
    border-color: #5c6672
}

.TVCheckboxTreeItem.TVStyleTheme1 .TVCheckboxTreeItemChildren {
    padding-left: 5px
}

.TVCheckboxTreeItem.TVStyleTheme1 .TVCheckboxTreeItemChildren .TVCheckBox {
    padding-left: 15px
}

.TVCheckboxTreeItem.TVStyleTheme1 .TVCheckboxTreeItemChildren .TVCheckBox:after {
    content: ".....";
    padding-bottom: 8px;
    height: 17px;
    position: absolute;
    top: 0;
    left: 3px;
    border-left: 1px dotted #ccc;
    font-size: 9px;
    color: #ccc
}

.TVCheckboxTreeItem.TVStyleTheme1 .TVCheckboxTreeItemChildren .TVCheckBox:last-child:after {
    height: 4px
}

.TVCheckboxTreeItem.TVStyleTheme2 .TVCheckboxTreeItemRootWrapper {
    padding-right: 10px;
    align-items: center;
    border-bottom: 1px solid #ddd
}

.TVCheckboxTreeItem.TVStyleTheme2 .TVCheckboxTreeItemRoot {
    flex: 1;
    min-width: 0
}

.TVCheckboxTreeItem.TVStyleTheme2 .TVCheckboxTreeItemRoot .TVCheckBox {
    width: 100%
}

.TVCheckboxTreeItem.TVStyleTheme2 .TVCheckboxTreeItemArrow {
    width: 30px;
    height: 30px;
    margin-left: 10px;
    background-color: #edf2f5
}

.TVCheckboxTreeItem.TVStyleTheme2 .TVCheckboxTreeItemArrow:before {
    font-family: TVicons;
    content: "\e95e";
    font-size: 19px;
    line-height: 1;
    transform: translateY(1px)
}

.TVCheckboxTreeItem.TVStyleTheme2 .TVCheckboxTreeItemArrow.TVActive:before {
    transform: rotate(180deg)
}

.TVCheckboxTreeItem.TVStyleTheme2 .TVCheckBox {
    display: flex;
    align-items: center;
    color: #333;
    padding: 15px 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
    display: block
}

.TVCheckboxTreeItem.TVStyleTheme2 .TVCheckBox.TVChecked:before {
    background-color: #5c6672;
    border-color: #5c6672
}

.TVCheckboxTreeItem.TVStyleTheme2 .TVCheckboxTreeItemChildren {
    padding-left: 20px;
    border-bottom: 1px solid #ddd
}

.TVCheckboxTreeItem.TVStyleTheme2 .TVCheckboxTreeItemChildren .TVCheckBox:not(:last-child) {
    border-bottom: 1px solid #ddd
}

.TVCheckboxTreeControl {
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow-y: auto
}

.TVComplexListItem.TVFontWeightSize-L .TVComplexListItemChildren>*,.TVComplexListItem.TVFontWeightSize-L .TVComplexListItemContent {
    font-weight: 600
}

.TVComplexListItem.TVFontSize-S .TVComplexListItemChildren>*,.TVComplexListItem.TVFontSize-S .TVComplexListItemContent {
    font-size: 13px
}

.TVComplexListItem.TVFontSize-M .TVComplexListItemChildren>*,.TVComplexListItem.TVFontSize-M .TVComplexListItemContent {
    font-size: 14px
}

.TVComplexListItem.TVPaddingSize-S .TVComplexListItemChildren>*,.TVComplexListItem.TVPaddingSize-S .TVComplexListItemContent {
    padding-top: 13px;
    padding-bottom: 13px
}

.TVComplexListItem.TVPaddingSize-M .TVComplexListItemChildren>*,.TVComplexListItem.TVPaddingSize-M .TVComplexListItemContent {
    padding-top: 16px;
    padding-bottom: 16px
}

.TVComplexListItemContentWrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #ddd;
    cursor: pointer
}

.TVComplexListItemContent {
    flex: 1;
    min-width: 0;
    line-height: 18px;
    color: #333;
    display: flex;
    align-items: center
}

.TVComplexListItemButton {
    line-height: 13px;
    padding: 8px 13px;
    border-radius: 20px;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    background-color: #edf2f5;
    color: #5c6672;
    cursor: pointer
}

.TVComplexListItemButton.TVActive {
    background-color: #5c6672;
    color: #fff
}

.TVComplexListItemChildren {
    color: #333;
    display: flex;
    flex-direction: column
}

.TVComplexListItemChildren>* {
    line-height: 18px;
    padding-left: 30px;
    border-bottom: 1px solid #ddd;
    cursor: pointer
}

.TVAutocompleteListDelimiter {
    width: 100%;
    margin: 15px 0;
    border-bottom: 1px solid #bbb
}

.TVAutocompleteListWrapper {
    display: flex;
    justify-content: space-between
}

.TVAutocompleteListWrapper .TVListBoxItem {
    padding: 0;
    text-transform: none
}

.TVAutocompleteListWrapper .TVListBoxItem.TVItemSelected,.TVAutocompleteListWrapper .TVListBoxItem:hover {
    background-color: rgba(238,242,248,.4)
}

.TVAutocompleteListLabel {
    margin-left: 15px;
    font-size: 14px;
    text-align: right;
    font-weight: 400
}

.TVAutocompleteListItem {
    width: 100%;
    padding-top: 0
}

.TVCartPreviewControl {
    --icon-font-size: 20px;
    --icon-height: 20px;
    --icon-width: 20px;
    --icon-padding: 2px 2px 0 0;
    --count-font-size: 10px;
    --count-height: 20px;
    --count-width: 20px;
    --compact-count-font-size: 10px;
    --compact-count-top: -3px;
    --compact-count-right: -4px;
    --compact-count-height: 14px;
    --compact-count-width: 14px;
    --padding-size: 8px;
    display: flex;
    align-items: center;
    padding: var(--padding-size);
    position: relative;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent
}

.TVCartPreviewControl.TVSize-XS {
    --icon-font-size: 15px;
    --icon-height: 15px;
    --icon-width: 15px;
    --compact-count-font-size: 9px;
    --compact-count-height: 11px;
    --compact-count-width: 11px;
    --compact-count-right: -2px;
    --count-font-size: 10px;
    --count-height: 15px;
    --count-width: 15px
}

.TVCartPreviewControl.TVSize-S {
    --icon-font-size: 17px;
    --icon-height: 17px;
    --icon-width: 17px;
    --compact-count-font-size: 9px;
    --compact-count-height: 12px;
    --compact-count-width: 12px;
    --compact-count-right: -3px;
    --count-font-size: 10px;
    --count-height: 17px;
    --count-width: 17px
}

.TVCartPreviewControl.TVSize-M {
    --icon-font-size: 20px;
    --icon-height: 20px;
    --icon-width: 20px;
    --compact-count-font-size: 10px;
    --compact-count-height: 14px;
    --compact-count-width: 14px;
    --compact-count-right: -4px;
    --count-font-size: 10px;
    --count-height: 20px;
    --count-width: 20px
}

.TVCartPreviewControl.TVSize-L {
    --icon-font-size: 23px;
    --icon-height: 23px;
    --icon-width: 23px;
    --compact-count-font-size: 10px;
    --compact-count-height: 15px;
    --compact-count-width: 15px;
    --compact-count-right: -5px;
    --count-font-size: 10px;
    --count-height: 23px;
    --count-width: 23px
}

.TVCartPreviewControl.TVSize-XL {
    --icon-font-size: 26px;
    --icon-height: 26px;
    --icon-width: 26px;
    --compact-count-font-size: 11px;
    --compact-count-height: 17px;
    --compact-count-width: 17px;
    --compact-count-right: -6px;
    --count-font-size: 11px;
    --count-height: 26px;
    --count-width: 26px
}

.TVCartPreviewControl.TVSize-XXL {
    --icon-font-size: 29px;
    --icon-height: 29px;
    --icon-width: 29px;
    --compact-count-font-size: 11px;
    --compact-count-height: 18px;
    --compact-count-width: 18px;
    --compact-count-right: -7px;
    --count-font-size: 11px;
    --count-height: 29px;
    --count-width: 29px
}

.TVCartPreviewControl.TVSize-XXXL {
    --icon-font-size: 32px;
    --icon-height: 32px;
    --icon-width: 32px;
    --compact-count-font-size: 12px;
    --compact-count-height: 20px;
    --compact-count-width: 20px;
    --compact-count-right: -8px;
    --count-font-size: 12px;
    --count-height: 32px;
    --count-width: 32px
}

.TVCartPreviewControl.TVPaddingSize-XXS {
    --padding-size: 0
}

.TVCartPreviewControl.TVPaddingSize-XS {
    --padding-size: 2px
}

.TVCartPreviewControl.TVPaddingSize-S {
    --padding-size: 5px
}

.TVCartPreviewControl.TVPaddingSize-M {
    --padding-size: 8px
}

.TVCartPreviewControl.TVPaddingSize-L {
    --padding-size: 10px
}

.TVCartPreviewControl.TVPaddingSize-XL {
    --padding-size: 13px
}

.TVCartPreviewCompact {
    flex-direction: column;
    border-radius: var(--icon-width)
}

.TVCartPreviewCompact .TVCartPreviewCompactIcon {
    padding: var(--icon-padding);
    height: var(--icon-height);
    width: var(--icon-width);
    display: flex;
    align-items: center;
    position: relative;
    fill: currentColor
}

.TVCartPreviewCompact .TVCartPreviewCompactIconWrapper {
    position: relative
}

.TVCartPreviewCompact .TVCartPreviewCompactCount {
    position: absolute;
    top: var(--compact-count-top);
    right: var(--compact-count-right);
    font-size: var(--compact-count-font-size);
    min-width: var(--compact-count-width);
    height: var(--compact-count-height);
    line-height: var(--compact-count-height);
    border-radius: var(--compact-count-width);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background-color: #fb5e51;
    text-shadow: none;
    padding: 1px;
    box-sizing: border-box
}

.TVCartPreviewCompact .TVCartPreviewCompactTitle {
    font-size: 10px;
    color: #777;
    text-transform: uppercase;
    margin-top: 5px
}

.TVCartPreview {
    flex-direction: row
}

.TVCartPreview>:not(:first-child) {
    margin-left: 5px
}

.TVCartPreview .TVCartPreviewIcon {
    height: var(--icon-height);
    width: var(--icon-width);
    display: flex;
    align-items: center;
    position: relative;
    fill: currentColor
}

.TVCartPreview .TVCartPreviewCount {
    font-size: var(--count-font-size);
    min-width: var(--count-width);
    height: var(--count-height);
    line-height: var(--count-height);
    border-radius: var(--count-width);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background-color: #fb5e51;
    text-shadow: none;
    padding: 1px;
    box-sizing: border-box
}

.TVCartPreviewBasketIcon,.TVCartPreviewHeartIcon {
    height: 100%;
    width: auto
}

.TVTourCardPriceControl {
    color: #5c6672
}

.TVTourCardPriceControl.TVPreview .TVTourCardPreviewIncludePrice,.TVTourCardPriceControl.TVPreview .TVTourCardPriceValueWrapper {
    visibility: hidden;
    position: relative
}

.TVTourCardPriceControl.TVPreview .TVTourCardPreviewIncludePrice:before,.TVTourCardPriceControl.TVPreview .TVTourCardPriceValueWrapper:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVTourCardPriceControl.TVPreview .TVTourCardPriceValueWrapper {
    width: 100%;
    height: 34px
}

.TVTourCardPriceControl.TVPreview .TVTourCardPreviewIncludePrice {
    margin-top: 10px;
    width: 100%;
    height: 14px
}

.TVTourCardPriceControl.TVGapSize-M .TVTourCardInstantConfirmation {
    margin-top: 12px
}

.TVTourCardPriceControl.TVGapSize-M .TVTourCardIncludePrices {
    padding-top: 12px;
    margin-top: 14px
}

.TVTourCardPriceControl.TVGapSize-M .TVTourIncludePriceControl:not(:first-child) {
    margin-top: 10px
}

.TVTourCardPriceControl.TVGapSize-L .TVTourCardInstantConfirmation {
    margin-top: 12px
}

.TVTourCardPriceControl.TVGapSize-L .TVTourCardIncludePrices {
    padding-top: 22px;
    margin-top: 20px
}

.TVTourCardPriceControl.TVGapSize-L .TVTourIncludePriceControl:not(:first-child) {
    margin-top: 8px
}

.TVTourCardPriceControl.TVGapSize-XL .TVTourCardInstantConfirmation {
    margin-top: 14px
}

.TVTourCardPriceControl.TVGapSize-XL .TVTourCardIncludePrices {
    padding-top: 22px;
    margin-top: 20px
}

.TVTourCardPriceControl.TVGapSize-XL .TVTourIncludePriceControl:not(:first-child) {
    margin-top: 15px
}

.TVTourCardPriceValueWrapper {
    --price-min-height: 32px;
    display: flex;
    min-height: var(--price-min-height)
}

.TVTourCardPriceValueWrapper.TVAlignItems-center {
    align-items: center
}

.TVTourCardPriceValueWrapper.TVAlignItems-end {
    align-items: flex-end
}

.TVTourCardPriceValue {
    color: #333;
    line-height: 1
}

.TVTourCardPriceValue.TVFontSize-M {
    font-size: 25px
}

.TVTourCardPriceValue.TVFontSize-L {
    font-size: 30px
}

.TVTourCardPriceValue.TVFontSize-XL {
    font-size: 35px
}

.TVTourCardPriceValue.TVFontSize-XXL {
    font-size: 40px
}

.TVTourCardPriceValue.TVFontSize-XXXL {
    font-size: 49px
}

.TVTourCardPriceValue.TVFontWeightSize-S {
    font-weight: 700
}

.TVTourCardPriceValue.TVFontWeightSize-M {
    font-weight: 800
}

.TVTourCardPriceSuffix {
    color: #5c6672;
    margin-left: 10px;
    line-height: 1;
    text-transform: uppercase;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 1px
}

.TVTourCardPriceCurrency.TVFontSize-M,.TVTourCardPriceType.TVFontSize-M {
    font-size: 10px
}

.TVTourCardPriceCurrency.TVFontSize-L,.TVTourCardPriceType.TVFontSize-L {
    font-size: 14px
}

.TVTourCardPriceCurrency.TVFontSize-XL,.TVTourCardPriceType.TVFontSize-XL {
    font-size: 18px
}

.TVTourCardPriceCurrency.TVFontSize-XXL,.TVTourCardPriceType.TVFontSize-XXL {
    font-size: 23px
}

.TVTourCardPriceCurrency.TVFontWeightSize-M,.TVTourCardPriceType.TVFontWeightSize-M {
    font-weight: 400
}

.TVTourCardPriceCurrency.TVFontWeightSize-L,.TVTourCardPriceType.TVFontWeightSize-L {
    font-weight: 500
}

.TVTourCardPriceWaiter {
    margin-left: auto;
    display: flex;
    align-items: center
}

.TVTourCardIncludePrices {
    border-top: 1px dashed rgba(92,102,114,.5)
}

.TVTourCardPriceAddToCart {
    --add-to-cart-padding: 7px;
    margin-left: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: var(--add-to-cart-padding);
    border-radius: 30px;
    background-color: #fff;
    color: #5c6672;
    cursor: pointer
}

.TVTourCardPriceAddToCart.TVDisabled {
    cursor: default;
    pointer-events: none;
    opacity: .8
}

.TVHotelTitleControl {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    font-family: var(--tv-font-theme2)
}

.TVHotelTitleControl .TVHotelTitleName {
    --name-font-size: 16px;
    --name-line-height: 22px;
    --name-font-weight: 800;
    font-size: var(--name-font-size);
    font-weight: var(--name-font-weight);
    line-height: var(--name-line-height);
    text-decoration: none;
    color: inherit
}

.TVHotelTitleControl .TVHotelTitleName.TVFontSize-XXS {
    --name-font-size: 13px;
    --name-line-height: 16px
}

.TVHotelTitleControl .TVHotelTitleName.TVFontSize-XS {
    --name-font-size: 14px;
    --name-line-height: 18px
}

.TVHotelTitleControl .TVHotelTitleName.TVFontSize-S {
    --name-font-size: 15px;
    --name-line-height: 20px
}

.TVHotelTitleControl .TVHotelTitleName.TVFontSize-M {
    --name-font-size: 16px;
    --name-line-height: 22px
}

.TVHotelTitleControl .TVHotelTitleName.TVFontSize-XL {
    --name-font-size: 20px;
    --name-line-height: 24px
}

.TVHotelTitleControl .TVHotelTitleName.TVFontSize-XXL {
    --name-font-size: 26px;
    --name-line-height: 28px
}

.TVHotelTitleControl .TVHotelTitleName.TVFontSize-XXXL {
    --name-font-size: 33px;
    --name-line-height: 35px
}

.TVHotelTitleControl .TVHotelTitleName.TVFontWeightSize-M {
    --name-font-weight: 400
}

.TVHotelTitleControl .TVHotelTitleName.TVFontWeightSize-L {
    --name-font-weight: 500
}

.TVHotelTitleControl .TVHotelTitleName.TVFontWeightSize-XL {
    --name-font-weight: 600
}

.TVHotelTitleControl .TVHotelTitleName.TVFontWeightSize-XXL {
    --name-font-weight: 700
}

.TVHotelTitleControl .TVHotelTitleName.TVFontWeightSize-XXXL {
    --name-font-weight: 800
}

.TVHotelTitleControl .TVHotelTitleResort {
    --resort-font-size: 13px;
    --resort-line-height: 18px;
    font-size: var(--resort-font-size);
    line-height: var(--resort-line-height)
}

.TVHotelTitleControl .TVHotelTitleResort.TVFontSize-S {
    --resort-font-size: 12px;
    --resort-line-height: 15px
}

.TVHotelTitleControl .TVHotelTitleResort.TVFontSize-M {
    --resort-font-size: 13px;
    --resort-line-height: 18px
}

.TVHotelTitleControl .TVHotelTitleResort.TVFontSize-L {
    --resort-font-size: 14px;
    --resort-line-height: 18px
}

.TVHotelTitleControl .TVHotelTitleResort.TVFontSize-XL {
    --resort-font-size: 16px;
    --resort-line-height: 18px
}

.TVHotelTitleControl .TVHotelTitleResort.TVFontSize-XXL {
    --resort-font-size: 18px;
    --resort-line-height: 18px
}

.TVHotelTitleControl .TVHotelTitleResort.TVFontSize-XXXL {
    --resort-font-size: 20px;
    --resort-line-height: 20px
}

.TVHotelTitleControl .TVHotelTitleResort.TVFontSize-XXXXL {
    --resort-font-size: 23px;
    --resort-line-height: 23px
}

.TVHotelTitleControl .TVHotelTitleResort.TVColorGray405 {
    color: #5c6672
}

.TVHotelTitleControl .TVHotelTitleResort.TVColorBlue580 {
    color: #8d949c
}

.TVHotelTitleControl.TVGapSize-M .TVHotelTitleName,.TVHotelTitleControl.TVGapSize-M .TVHotelTitleResort {
    margin-top: 5px
}

.TVHotelTitleControl.TVGapSize-L .TVHotelTitleName,.TVHotelTitleControl.TVGapSize-L .TVHotelTitleResort {
    margin-top: 7px
}

.TVHotelTitleControl.TVGapSize-XL .TVHotelTitleName,.TVHotelTitleControl.TVGapSize-XL .TVHotelTitleResort {
    margin-top: 10px
}

.TVHotelTitleControl.TVPreview {
    width: 100%
}

.TVHotelTitleControl.TVPreview .TVHotelTitleName,.TVHotelTitleControl.TVPreview .TVHotelTitleResort,.TVHotelTitleControl.TVPreview .TVHotelTitleType {
    visibility: hidden;
    position: relative
}

.TVHotelTitleControl.TVPreview .TVHotelTitleName:before,.TVHotelTitleControl.TVPreview .TVHotelTitleResort:before,.TVHotelTitleControl.TVPreview .TVHotelTitleType:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVHotelTitleControl.TVPreview .TVHotelTitleName:before {
    width: 100%;
    max-width: 555px;
    height: var(--name-line-height)
}

.TVHotelTitleControl.TVPreview .TVHotelTitleResort,.TVHotelTitleControl.TVPreview .TVHotelTitleType {
    box-sizing: border-box;
    width: 100px
}

.TVHotelTitleControl.TVPreview .TVHotelTitleType {
    height: 18px
}

.TVHotelTitleControl.TVPreview .TVHotelTitleResort {
    height: var(--resort-line-height)
}

.TVHotelTitleControl.TVPreview .TVHotelTitleResort:before,.TVHotelTitleControl.TVPreview .TVHotelTitleType:before {
    width: 100px;
    height: 18px
}

.TVHotelTitleControl.TVPreview .TVTag {
    display: none
}

.TVHotelTitleControl.TVPreview .TVHotelTitleName {
    margin-top: 2px
}

.TVHotelTitleControl.TVPreview .TVHotelTitleResort {
    margin-top: 3px
}

.TVHotelTitleType {
    display: flex;
    flex-wrap: wrap;
    align-items: center
}

.TVHotelTitleType .TVTag {
    margin-bottom: 5px
}

.TVHotelTitleType>:not(:last-child) {
    margin-right: 8px
}

.TVMobilePanel:not(.TVCartPage,.TVAlternativeToursPage) .TVHotelTitleControl.TVPreview .TVHotelTitleName:before {
    max-width: calc(100% - 20px)
}

.TVMobilePanel:not(.TVCartPage,.TVAlternativeToursPage) .TVHotelTitleStar:before {
    font-size: 12px
}

.TVMobilePanel:not(.TVCartPage,.TVAlternativeToursPage) .TVHotelTitleName {
    margin-top: 2px;
    font-weight: 800;
    font-size: 18px
}

.TVMobilePanel:not(.TVCartPage,.TVAlternativeToursPage) .TVHotelTitleResort {
    margin-top: 3px
}

.TVTourCardOption.TVPreview .TVTourCardOptionContent {
    visibility: hidden;
    position: relative
}

.TVTourCardOption.TVPreview .TVTourCardOptionContent:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 100px
}

.TVTourCardOption {
    --option-font-size: 13px;
    --option-icon-size: 32px;
    --option-icon-font-size: 16px;
    --option-icon-line-height: 32px;
    display: flex;
    font-size: var(--option-font-size)
}

.TVTourCardOption:before {
    width: var(--option-icon-size);
    height: var(--option-icon-size);
    min-width: var(--option-icon-size);
    min-height: var(--option-icon-size);
    margin-top: 2px;
    border-radius: 30px;
    background-color: #edf2f5;
    text-align: center;
    font-size: var(--option-icon-font-size);
    line-height: var(--option-icon-line-height);
    color: #959ca6
}

.TVTourCardOption.TVMapMarkerIcon:before {
    font-family: TVicons;
    content: "\e953"
}

.TVTourCardOption.TVCalendarIcon:before {
    font-family: TVicons;
    content: "\e938"
}

.TVTourCardOption.TVMealIcon:before {
    font-family: TVicons;
    content: "\e939"
}

.TVTourCardOption.TVBedIcon:before {
    font-family: TVicons;
    content: "\e937"
}

.TVTourCardOption.TVGearIcon:before {
    font-family: TVicons;
    content: "\e921"
}

.TVTourCardOption.TVInfoIcon:before {
    font-family: TVicons;
    content: "\e923"
}

.TVTourCardOption.TVHomeIcon:before {
    font-family: TVicons;
    content: "\e967"
}

.TVTourCardOption.TVUsersIcon:before {
    font-family: TVicons;
    content: "\e93a"
}

.TVTourCardOption.TVSeatsIcon:before {
    content: "";
    background-image: url(https://tourvisor.ru/pics/svg/seat.svg);
    background-repeat: no-repeat;
    background-position: 50%
}

.TVTourCardOption.TVFontSize-M {
    --option-font-size: 13px;
    --option-icon-size: 32px;
    --option-icon-font-size: 16px;
    --option-icon-line-height: 32px
}

.TVTourCardOption.TVFontSize-L {
    --option-font-size: 14px;
    --option-icon-size: 34px;
    --option-icon-font-size: 17px;
    --option-icon-line-height: 34px
}

.TVTourCardOption.TVFontSize-XL {
    --option-font-size: 15px;
    --option-icon-size: 38px;
    --option-icon-font-size: 18px;
    --option-icon-line-height: 38px
}

.TVTourCardOption.TVFontSize-XXL {
    --option-font-size: 16px;
    --option-icon-size: 40px;
    --option-icon-font-size: 19px;
    --option-icon-line-height: 40px
}

.TVTourCardOption.TVFontSize-XXXL {
    --option-font-size: 23px;
    --option-icon-size: 67px;
    --option-icon-font-size: 33px;
    --option-icon-line-height: 65px
}

.TVTourCardOptionContent {
    margin-left: 10px;
    display: flex;
    flex-direction: column;
    justify-content: center
}

.TVTourCardOptionContent .TVTourCardOptionHeader {
    font-weight: 700;
    color: #333
}

.TVTourCardOptionContent .TVTourCardOptionFooter {
    color: #777
}

.TVTourCardOptionsControl {
    --tour-card-options-gap-size: 10px;
    display: flex
}

.TVTourCardOptionsControl .TVTourCardOption:not(:last-child) {
    margin-bottom: var(--tour-card-options-gap-size)
}

.TVTourCardOptionsControl.TVGapSize-M {
    --tour-card-options-gap-size: 10px
}

.TVTourCardOptionsControl.TVGapSize-L {
    --tour-card-options-gap-size: 25px
}

.TVTourCardOptionsControl.TVAxisDirection-Row .TVTourCardOptionsWrapper:first-child {
    width: 38%
}

.TVTourCardOptionsControl.TVAxisDirection-Row .TVTourCardOptionsWrapper:nth-child(2) {
    width: calc(62% - 10px);
    margin-left: 10px
}

.TVTourCardOptionOperator {
    display: flex;
    align-items: center
}

.TVTourCardOptionOperatorLogo {
    height: 32px;
    display: block
}

.TVTourCardOptionOperatorLink {
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNSIgaGVpZ2h0PSIxMi42MzMiPjxwYXRoIGRhdGEtbmFtZT0iUGF0aCAxMzUiIGQ9Ik04LjgzNyAxMS40MDhjLjc3Mi0uMDY1IDEuNzU0LS4wNjMgMi42MjQtLjA2M2gxLjEyNXYtLjA2M2guMTg3di0uMDYzaC4xMjV2LS4wNjJoLjEyNmwuMDYyLS4xMjZoLjEyNWwuMTg4LS4yNTJoLjA2MnYtLjEyNmwuMTI1LS4wNjNhNC4yNjQgNC4yNjQgMCAwMC4xODctMS44MjhWNC4xMDFhNC4yNzkgNC4yNzkgMCAwMC0uMzEyLTIuMjY5bC0uMjUtLjE4OVYxLjU4aC0uMTI1YTcuMzI2IDcuMzI2IDAgMDEtLjA2Mi0uMTI2aC0uMTI1di0uMDYyaC0uMTI1di0uMDYzaC0uMTg3di0uMDYzaC0uOTM4YTkuNTM2IDkuNTM2IDAgMDEtMi44MTItLjEyNiAzLjIyIDMuMjIgMCAwMS0uMDYyLS45NDVjLjA3MS0uMDcyLjAyNCAwIC4wNjItLjEyNi43MTEtLjA3MSAxLjYyOC0uMDYzIDIuNDM3LS4wNjNoMXYuMDYzbC44MTIuMDYzdi4wNjNoLjEyNXYuMDYzaC4xMjV2LjA2M2guMTI2di4wNjJoLjEyNXYuMDYzaC4xMjVsLjEyNS4xODloLjEyNWwuMzEzLjM3OC4xMjUuMDYyYy42MTMuODc0LjU2MiAxLjczNy41NjIgMy4yMTV2NC4xNTlhNy43NjYgNy43NjYgMCAwMS0uMDYyIDIuMDhoLS4wNjJ2LjE4OWgtLjA2MnYuMTg5aC0uMDYydi4xMjZoLS4wNjJ2LjEyNmwtLjEyNi4wNjJ2LjEyNmwtLjEyNS4wNjN2LjEyNmwtLjEyNS4wNjItLjMxMy4zNzhoLS4xMjVsLS4xMjUuMTg5aC0uMTI1di4wNjNsLS4zNzUuMTI2di4wNjNsLS4zNzUuMDYzdi4wNjNsLTIuMzc0LjA2M2MtLjQ3NCAwLTEuNTI2LjEzMy0xLjY4Ny0uMTg5di0uODgyYy4wNjktLjA3NC4wMjItLjAwMi4wNi0uMTI3ek01LjAyNSA4LjgyNGMtMS41NTEgMC0zLjIzNy4wMDktNC42ODctLjA2M2wtLjMxMy0uMzc4VjUuMzU4YzAtLjMtLjA5LS45NTkuMDYzLTEuMTM1YS40NS40NSAwIDAxLjUtLjM3OGMuMTgxLS4xNjEuODc5LS4wNjMgMS4xODctLjA2M2gzLjI0OVYxLjU3NmMwLS4yNDQtLjA1Ny0uNjgyLjA2Mi0uODJhLjQ1MS40NTEgMCAwMS41LS4zNzhWLjMxNmguMDYzdi4wNjJoLjI0OWw1LjYyNCA1LjczNnYuMzc3bC0xLjM3NSAxLjQ1LTIuODEyIDIuNzczLTEuMDYyIDEuMDcxYy0uMi4yLS4yMzQuNDE0LS42MjQuNDQxdi4wNjNoLS4wNjN2LS4wNjNoLS4yNDlsLS4zMTMtLjM3OHoiIGZpbGw9IiNhYWEiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==");
    background-repeat: no-repeat;
    background-position: 50%;
    cursor: pointer;
    display: inline-block;
    text-decoration: none;
    width: 15px;
    height: 25px;
    margin-left: 5px
}

.TVMobileTourFlightControl {
    font-family: var(--tv-font-theme2);
    padding: 20px;
    border-radius: 10px;
    background-color: #fff
}

.TVMobileTourFlightControl .TVFlexBlock {
    display: flex;
    justify-content: space-between
}

.TVMobileTourFlightControl .TVFlexBlock:not(:last-child) {
    margin-bottom: 10px
}

.TVMobileTourFlightControl .TVTourFlightArrival,.TVMobileTourFlightControl .TVTourFlightDeparture {
    flex-basis: 49%
}

.TVMobileTourFlightControl .TVTourFlightTimeBlock {
    flex-basis: 22%
}

.TVMobileTourFlightControl .TVTourFlightConnectionBlock {
    flex-basis: 50%
}

.TVMobileTourFlightControl .TVTourFlightPortId,.TVMobileTourFlightControl .TVTourFlightPortName {
    color: #185584;
    font-size: 14px
}

.TVMobileTourFlightControl .TVTourFlightPortName {
    font-weight: 700
}

.TVMobileTourFlightControl .TVTourFlightArrivalDate,.TVMobileTourFlightControl .TVTourFlightDepartureDate {
    font-size: 13px;
    color: #5c6672;
    line-height: 18px;
    height: 18px;
    opacity: .7
}

.TVMobileTourFlightControl .TVTourFlightTime {
    font-size: 20px;
    font-weight: 700;
    color: #333;
    line-height: 27px;
    white-space: nowrap
}

.TVMobileTourFlightControl .TVTourFlightInfo {
    font-size: 13px;
    color: #333;
    font-weight: 600;
    line-height: 27px
}

.TVMobileTourFlightControl .TVTourFlightInfo:before {
    content: "Пересадка ("
}

.TVMobileTourFlightControl .TVTourFlightInfo:after {
    content: ")"
}

.TVMobileTourFlightControl .TVTourFlightInfo.TVNonstop:before {
    content: "Прямой"
}

.TVMobileTourFlightControl .TVTourFlightInfo.TVNonstop:after {
    content: ""
}

.TVMobileTourFlightControl .TVRightBlock {
    text-align: right
}

.TVMobileTourFlightControl .TVLeftBlock {
    text-align: left
}

.TVMobileTourFlightControl .TVCenterBlock {
    text-align: center
}

.TVMobileTourFlightControl .TVTourFlightEnd,.TVMobileTourFlightControl .TVTourFlightStart {
    width: 20px;
    height: 20px;
    border-radius: 20px;
    flex-basis: 20px;
    box-sizing: border-box;
    background-color: #e8ecef;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVMobileTourFlightControl .TVTourFlightEnd:before,.TVMobileTourFlightControl .TVTourFlightStart:before {
    content: "";
    display: block;
    width: 12px;
    height: 12px;
    border-radius: 12px;
    border: 1px solid #abb5bc;
    box-sizing: border-box;
    background-color: #abb5bc
}

.TVMobileTourFlightControl .TVTourFlightEnd:before {
    background-color: #fff
}

.TVMobileTourFlightControl .TVTourFlightLine {
    align-items: center;
    width: calc(100% - 40px);
    display: flex
}

.TVMobileTourFlightControl .TVTourFlightLine:after,.TVMobileTourFlightControl .TVTourFlightLine:before {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 2px;
    content: "";
    margin: auto 0 auto 4px;
    border-top: 1px dashed #c4cfd7;
    box-sizing: border-box
}

.TVMobileTourFlightControl .TVTourFlightLine .TVFlightIcon {
    align-items: center;
    display: flex
}

.TVMobileTourFlightControl .TVTourFlightLine .TVFlightIcon:before {
    font-family: TVicons;
    content: "\e92e";
    color: #c4cfd7;
    font-size: 20px
}

.TVMobileTourFlightControl .TVTourAirlines {
    display: flex;
    align-items: center;
    max-width: 70%
}

.TVMobileTourFlightControl .TVTourAirline {
    width: 24px;
    height: 24px;
    background-size: cover;
    background-repeat: no-repeat;
    border-radius: 30px;
    min-width: 24px;
    margin-right: 5px;
    align-self: center
}

.TVMobileTourFlightControl .TVTourAirlineName {
    font-size: 13px;
    color: #5c6672;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden
}

.TVMobileTourFlightControl .TVTourFlightDetailsButton {
    align-self: center;
    font-size: 10px;
    text-transform: uppercase;
    padding: 8px 15px;
    border-radius: 20px;
    cursor: pointer;
    color: #5c6672;
    background-color: #edf2f5
}

.TVMobileTourFlightControl .TVTourFlightDetailsButton:before {
    content: "Детали"
}

.TVMobileTourFlightsListControl {
    padding: 20px
}

.TVMobileTourFlightsListControl:before {
    content: "Информация о рейсах";
    text-transform: uppercase;
    font-size: 10px;
    font-weight: 600;
    display: block
}

.TVMobileTourFlightsListControl .TVMobileTourFlightControl {
    margin-top: 20px
}

.TVMobileTourFlightsListControl .TVWaiterBG {
    position: relative;
    margin-top: 20px;
    color: #185584;
    padding: 20px;
    border-radius: 10px;
    background-color: #fff;
    display: flex;
    align-items: center
}

.TVMobileTourFlightsListControl .TVWaiterBG:after {
    content: "Актуализация данных тура";
    text-transform: lowercase;
    font-size: 13px;
    line-height: 22px;
    display: block;
    margin-left: 5px
}

.TVMobileTourFlightsListControl .TVWaiterBG .TVSimpleWaiterDuble {
    width: 24px;
    height: 10px;
    background: transparent;
    position: relative;
    margin: 0
}

.TVMobileTourFlightsListControl .TVWaiterBG .TVSimpleWaiterDuble:before {
    border-top-color: #185584;
    border-bottom-color: #185584
}

.TVMobileTourFlightsListControl .TVWaiterBG .TVSimpleWaiterDuble:after {
    border-top-color: #185584;
    border-right-color: #185584
}

.TVMobileTourFlightsListControl .TVTourFlightMessage {
    padding: 20px;
    border-radius: 10px;
    background-color: #fff;
    font-size: 13px;
    line-height: 18px;
    margin-top: 20px;
    display: block;
    color: #185584
}

.TVMobileTourFlightsListControl .TVTourFlightUnknown:before {
    content: "К сожалению, нам не удалось получить данные о рейсах у туроператора.";
    display: block;
    margin-bottom: 10px
}

.TVMobileTourFlightsListControl .TVTourFlightUnknown:after {
    content: "Подробную информацию Вы можете уточнить у менеджеров нашей компании."
}

.TVMobileTourFlightsListControl .TVTourFlightDummy:before {
    content: "По данному туру авиарейсы автоматически назначаются туроператором. Выбор конкретных рейсов доступен только за дополнительную плату."
}

.TVMobileTourFlightsListControl .TVTourFlightMoreButton {
    display: flex;
    justify-content: center;
    margin-top: 15px
}

.TVMobileTourFlightsListControl .TVTourFlightMoreButton:before {
    font-size: 10px;
    text-transform: uppercase;
    padding: 8px 15px;
    border-radius: 20px;
    cursor: pointer;
    color: #5c6672;
    background-color: #edf2f5;
    content: "Выбрать другой рейс"
}

.TVMobileTourFlightsListControl.TVPreview .TVMobileTourFlightPreview {
    visibility: hidden;
    position: relative;
    width: 100%;
    height: 34px;
    margin-top: 20px
}

.TVMobileTourFlightsListControl.TVPreview .TVMobileTourFlightPreview:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVTourFlightControl {
    --flight-font-size: 13px;
    --flight-line-height: 18px;
    --flight-icon-font-size: 15px;
    --flight-icon-size: 24px;
    --flight-sub-font-size: 10px;
    --flight-sub-line-height: 18px;
    --flight-sub-text-transform: none;
    --flight-gap-y-size: 10px;
    --flight-gap-x-size: 0;
    display: flex;
    justify-content: space-between;
    padding: var(--flight-gap-y-size) var(--flight-gap-x-size);
    font-size: var(--flight-font-size);
    color: #5c6672
}

.TVTourFlightControl .TVTourFlightIcon {
    flex-basis: 3%
}

.TVTourFlightControl .TVTourFlightTimeBlock {
    flex-basis: 20%
}

.TVTourFlightControl .TVTourFlightPortBlock {
    flex-basis: 40%
}

.TVTourFlightControl .TVTourFlightAirlineBlock {
    flex-basis: 25%
}

.TVTourFlightControl .TVTourFlightIcon {
    display: flex;
    justify-content: center;
    align-items: center
}

.TVTourFlightControl .TVTourFlightIcon:before {
    font-family: TVicons;
    content: "\e92e";
    font-size: var(--flight-icon-font-size);
    color: #5c6672;
    opacity: .6
}

.TVTourFlightControl.TVTourFlightReverse .TVTourFlightIcon {
    transform: rotate(180deg)
}

.TVTourFlightControl .TVTourFlightTime {
    display: flex;
    font-weight: 600;
    color: #333;
    white-space: nowrap
}

.TVTourFlightControl .TVTourFlightTime :not(:first-child):before {
    content: "-";
    margin: 0 3px
}

.TVTourFlightControl .TVTourFlightConnectionBlock {
    display: flex
}

.TVTourFlightControl .TVTourFlightConnectionBlock :first-child:after {
    content: ",";
    margin-right: 3px
}

.TVTourFlightControl .TVTourFlightConnectionBlock .TVTourFlightConnection:before {
    content: "Пересадка ("
}

.TVTourFlightControl .TVTourFlightConnectionBlock .TVTourFlightConnection:after {
    content: ")"
}

.TVTourFlightControl .TVTourFlightConnectionBlock.TVNonstop .TVTourFlightConnection:before {
    content: "Прямой"
}

.TVTourFlightControl .TVTourFlightConnectionBlock.TVNonstop .TVTourFlightConnection:after {
    content: ""
}

.TVTourFlightControl .TVTourFlightConnectionBlock:not(.TVNonstop) .TVTourFlightConnection {
    color: #b94a48
}

.TVTourFlightControl .TVTourFlightAirlineBlock {
    align-self: center;
    display: flex;
    align-items: center
}

.TVTourFlightControl .TVTourFlightAirlineName {
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
    display: -webkit-box;
    display: -moz-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    -moz-box-orient: vertical;
    box-orient: vertical
}

.TVTourFlightControl .TVTourFlightAirlineName:not(.TVOneAirline):after {
    content: "а/к";
    margin-left: 3px
}

.TVTourFlightControl .TVTourFlightAirline {
    width: 24px;
    height: 24px;
    background-size: cover;
    background-repeat: no-repeat;
    border-radius: 30px;
    width: var(--flight-icon-size);
    height: var(--flight-icon-size);
    margin-right: 7px;
    align-self: center;
    flex-shrink: 0
}

.TVTourFlightControl .TVTourFlightConnectionBlock,.TVTourFlightControl .TVTourFlightDepartureDate,.TVTourFlightControl .TVTourFlightType {
    color: #5c6672;
    text-transform: var(--flight-sub-text-transform);
    font-size: var(--flight-sub-font-size);
    line-height: var(--flight-sub-line-height)
}

.TVTourFlightControl .TVTourFlightInfo {
    color: #5c6672;
    font-size: 16px;
    align-self: center;
    opacity: .6;
    cursor: pointer;
    flex-basis: 2%
}

.TVTourFlightControl .TVTourFlightInfo:before {
    font-family: TVicons;
    content: "\e923"
}

.TVTourFlightControl.TVFontSize-M {
    --flight-font-size: 13px;
    --flight-icon-font-size: 15px;
    --flight-sub-font-size: 10px
}

.TVTourFlightControl.TVFontSize-L {
    --flight-font-size: 14px;
    --flight-icon-font-size: 17px;
    --flight-sub-font-size: 11px
}

.TVTourFlightControl.TVFontSize-XL {
    --flight-font-size: 15px;
    --flight-icon-font-size: 19px;
    --flight-sub-font-size: 12px
}

.TVTourFlightControl.TVFontSize-XXL {
    --flight-font-size: 16px;
    --flight-icon-font-size: 21px;
    --flight-sub-font-size: 13px
}

.TVTourFlightControl.TVFontSize-XXXL {
    --flight-font-size: 23px;
    --flight-icon-font-size: 33px;
    --flight-icon-size: 40px;
    --flight-sub-font-size: 23px;
    --flight-sub-line-height: 33px
}

.TVTourFlightControl.TVTextTransform-Uppercase {
    --flight-sub-text-transform: uppercase
}

.TVTourFlightControl.TVGapSize-M {
    --flight-gap-y-size: 10px;
    --flight-gap-x-size: 0
}

.TVTourFlightControl.TVGapSize-L {
    --flight-gap-y-size: 15px;
    --flight-gap-x-size: 20px
}

.TVTourFlightsListControl {
    display: flex;
    flex-direction: column
}

.TVTourFlightsListControl .TVTourFlightControl {
    border-top: 1px dashed #ddd
}

.TVTourFlightsListControl .TVTourFlightControl:not(:first-child) {
    border-bottom: 1px dashed #ddd
}

.TVTourFlightsListControl .TVTourFlightMessage {
    color: #5c6672;
    padding: 20px 0;
    border-bottom: 1px dashed #ddd;
    border-top: 1px dashed #ddd;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px
}

.TVTourFlightsListControl .TVTourFlightMessage:before {
    font-family: TVicons;
    content: "\e92e";
    font-size: 16px;
    opacity: .6
}

.TVTourFlightsListControl .TVTourFlightMessage:after {
    font-size: 13px
}

.TVTourFlightsListControl .TVTourFlightUnknown:after {
    content: "Информацию о рейсах Вы можете уточнить у менеджеров нашей компании"
}

.TVTourFlightsListControl .TVTourFlightDummy:after {
    content: "По данному туру авиарейсы автоматически назначаются туроператором. Выбор конкретных рейсов доступен только за дополнительную плату."
}

.TVTourFlightsListControl .TVTourFlightMoreButton {
    align-self: center;
    display: flex;
    color: #185584;
    line-height: 14px;
    margin-top: 15px;
    cursor: pointer
}

.TVTourFlightsListControl .TVTourFlightMoreButton:before {
    content: "Выбрать другие рейсы";
    text-transform: uppercase;
    font-size: 10px;
    font-weight: 600;
    border-bottom: 1px dashed #185584
}

.TVTourFlightsListControl .TVTourFlightMoreButton:after {
    font-family: TVicons;
    content: "\e900";
    font-size: 16px;
    transform: scaleY(.8);
    margin-left: 3px
}

.TVTourFlightsListControl.TVPreview .TVTourFlightPreview {
    visibility: hidden;
    position: relative;
    width: 100%;
    height: 34px
}

.TVTourFlightsListControl.TVPreview .TVTourFlightPreview:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVTourFlightsListControl.TVPreview .TVTourFlightPreview:not(:first-child) {
    margin-top: 10px
}

.TVTourIncludePriceControl {
    display: flex;
    align-items: flex-end;
    color: #5c6672
}

.TVTourIncludePriceName {
    flex: 1
}

.TVTourIncludePriceName.TVFontSize-M {
    font-size: 13px
}

.TVTourIncludePriceName.TVFontSize-L {
    font-size: 14px
}

.TVTourIncludePriceName.TVFontSize-XL {
    font-size: 18px
}

.TVTourIncludePriceName.TVFontSize-XXL {
    font-size: 23px
}

.TVTourIncludePriceName.TVFontWeightSize-M {
    font-weight: 400
}

.TVTourIncludePriceName.TVFontWeightSize-L {
    font-weight: 500
}

.TVTourIncludePriceValue {
    margin-left: 10px
}

.TVTourIncludePriceValue.TVFontSize-M {
    font-size: 13px
}

.TVTourIncludePriceValue.TVFontSize-L {
    font-size: 14px
}

.TVTourIncludePriceValue.TVFontSize-XL {
    font-size: 18px
}

.TVTourIncludePriceValue.TVFontSize-XXL {
    font-size: 23px
}

.TVTourIncludePriceValue.TVFontWeightSize-M {
    font-weight: 500
}

.TVTourIncludePriceValue.TVFontWeightSize-L {
    font-weight: 600
}

.TVTourIncludePriceCurrency {
    margin-left: 3px;
    text-transform: uppercase
}

.TVTourIncludePriceCurrency.TVFontSize-M {
    font-size: 10px
}

.TVTourIncludePriceCurrency.TVFontSize-L {
    font-size: 14px
}

.TVTourIncludePriceCurrency.TVFontSize-XL {
    font-size: 18px
}

.TVTourIncludePriceCurrency.TVFontSize-XXL {
    font-size: 23px
}

.TVTourIncludePriceCurrency.TVFontWeightSize-M {
    font-weight: 400
}

.TVTourIncludePriceCurrency.TVFontWeightSize-L {
    font-weight: 500
}

.TVLayoutControl.TVMobilePanel .TVMobilePanelHeader .TVMobilePanelCaption {
    font-family: var(--tv-font-theme2)
}

.TVLayoutControl.TVMobilePanel .TVMobilePanelHeader .TVMobilePanelCaption:before {
    font-size: 14px
}

.TVLayoutControl.TVMobilePanel .TVMobilePanelHeader .TVMobilePanelClose {
    order: -1;
    margin-right: 10px;
    margin-left: -10px
}

.TVLayoutControl.TVMobilePanel .TVMobilePanelHeader .TVMobilePanelClose:after {
    font-family: TVicons;
    content: "\e902";
    font-size: 30px
}

.TVLayoutControl.TVMobilePanel .TVMobilePanelHeader .TVMenuButton,.TVLayoutControl.TVMobilePanel .TVMobilePanelHeader .TVShareButton {
    font-weight: 500;
    font-size: 20px;
    padding: 8px;
    position: relative;
    background: rgba(0,0,0,.2);
    height: 22px;
    width: 22px;
    border-radius: 40px;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVLayoutControl.TVMobilePanel .TVMobilePanelHeader .TVMenuButtonIcon,.TVLayoutControl.TVMobilePanel .TVMobilePanelHeader .TVShareButtonIcon {
    fill: currentColor
}

.TVLayoutControl.TVMobilePanel .TVMobilePanelHeader .TVCartPreviewControl,.TVLayoutControl.TVMobilePanel .TVMobilePanelHeader .TVMenuButton,.TVLayoutControl.TVMobilePanel .TVMobilePanelHeader .TVShareButton {
    margin-left: 10px
}

.TVLayoutControl.TVMobilePanel .TVMobilePanelHeader .TVProgressBar {
    bottom: -2px;
    left: 0;
    position: absolute;
    background-color: #f9ffba
}

.TVLayoutControl.TVMobilePanel .TVMobilePanelHeader .TVProgressLine {
    border: 1px solid #0af800;
    box-shadow: 0 0 3px #0af800
}

.TVLayoutControl.TVError .TVMobilePanelBody {
    display: none
}

.TVLayoutControl.TVError .TVMobilePanelBlock:before {
    content: "У нас не получилось загрузить данную страницу"
}

.TVBaseDialogPage.TVLayoutControl .TVMobilePanelHeader .TVMobilePanelExtraHeader {
    order: 0
}

.TVBaseDialogPage.TVLayoutControl .TVMobilePanelHeader .TVMobilePanelCaption {
    order: 1
}

.TVBaseDialogPage.TVLayoutControl .TVMobilePanelHeader>.TVMobilePanelClose {
    order: 2;
    margin: 0 0 0 10px
}

.TVBaseDialogPage.TVLayoutControl .TVMobilePanelHeader>.TVMobilePanelClose:after {
    font-family: TVicons;
    content: "\e916";
    font-size: 12px
}

.TVMenu {
    font-family: var(--tv-font-theme2);
    font-size: 13px
}

.TVMenu .TVMenuItem {
    padding: 15px 0;
    border-bottom: 1px solid;
    cursor: pointer
}

.TVMenu .TVMenuItem:last-child {
    border-bottom: none
}

.TVMenu .TVMenuItem:before {
    padding-right: 12px;
    font-size: 16px
}

.TVMessageInformation {
    --border-radius: 3px;
    font-size: 13px;
    line-height: 18px;
    box-sizing: border-box;
    border-radius: var(--border-radius);
    padding: 10px
}

.TVMessageInformationTitle {
    font-weight: 600
}

.TVMessageInformationDescription {
    margin-top: 3px
}

.TVMessageInformationColor-Info {
    background: #e2f1fb;
    color: #347eaf;
    border: 1px solid #347eaf
}

.TVMessageInformationColor-Error {
    background: #fddede;
    border: 1px solid #e6bdbd;
    color: #af4e4e
}

.TVToggleSwitch {
    width: 100%
}

.TVToggleSwitch.TVAnimationDisabled .TVToggleSwitchItem,.TVToggleSwitch.TVAnimationDisabled .TVToggleSwitchSelection,.TVToggleSwitch.TVStopAnimation .TVToggleSwitchItem,.TVToggleSwitch.TVStopAnimation .TVToggleSwitchSelection {
    transition: none
}

.TVToggleSwitchWrapper {
    width: 100%;
    height: 100%;
    position: relative
}

.TVToggleSwitchSelection {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    transition: left .3s ease,width .3s ease
}

.TVToggleSwitchItems {
    width: 100%;
    height: 100%;
    display: flex;
    background-color: transparent;
    position: absolute;
    user-select: none
}

.TVToggleSwitchItem {
    box-sizing: border-box;
    height: 100%;
    flex-grow: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transition: color .3s ease
}

.TVToggleSwitchItem.TVDisabled {
    pointer-events: none;
    cursor: default;
    opacity: .7
}

.TVToggleSwitch.TVStyleTheme1 {
    box-sizing: border-box;
    height: 48px;
    border-radius: 8px;
    background-color: #edf2f5;
    padding: 2px
}

.TVToggleSwitch.TVStyleTheme1.TVColorWhite {
    background-color: #fff
}

.TVToggleSwitch.TVStyleTheme1 .TVToggleSwitchSelection {
    border-radius: 8px;
    background-color: #5c6672
}

.TVToggleSwitch.TVStyleTheme1 .TVToggleSwitchItem {
    color: #5c6672;
    font-size: 13px;
    font-weight: 500;
    line-height: 14px
}

.TVToggleSwitch.TVStyleTheme1 .TVToggleSwitchItem.TVActive {
    color: #fff
}

.TVToggleSwitch.TVStyleTheme2 {
    box-sizing: border-box;
    height: 40px;
    border-radius: 6px;
    background-color: rgba(0,0,0,.2);
    padding: 3px
}

.TVToggleSwitch.TVStyleTheme2 .TVToggleSwitchSelection {
    border-radius: 4px;
    background-color: #fff
}

.TVToggleSwitch.TVStyleTheme2 .TVToggleSwitchItem {
    flex: 1;
    line-height: 9px;
    font-size: 13px;
    font-weight: 500
}

.TVToggleSwitch.TVStyleTheme3 {
    box-sizing: border-box;
    height: 40px;
    border-radius: 20px;
    background-color: #edf2f5
}

.TVToggleSwitch.TVStyleTheme3 .TVToggleSwitchSelection {
    border-radius: 20px;
    background-color: #5c6672
}

.TVToggleSwitch.TVStyleTheme3 .TVToggleSwitchItem {
    color: #5c6672;
    text-transform: uppercase;
    font-size: 10px;
    font-weight: 600;
    line-height: 14px
}

.TVToggleSwitch.TVStyleTheme3 .TVToggleSwitchItem.TVActive {
    color: #fff
}

.TVTabListItem {
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
    transition: color .2s ease,background-color .2s ease
}

.TVTabListItem.TVDisabled {
    pointer-events: none;
    cursor: default;
    opacity: .7
}

.TVTabListControl {
    display: flex;
    flex-wrap: nowrap;
    overflow: hidden;
    overflow-x: auto;
    max-width: 100%
}

.TVTabListControl.TVStyleTheme1 .TVTabListItem {
    border-bottom: 2px solid transparent
}

.TVTabListControl.TVStyleTheme1 .TVTabListItem.TVActive {
    border-bottom: 2px solid #5c6672
}

.TVTabListControl.TVStyleTheme2 .TVTabListItem,.TVTabListControl.TVStyleTheme3 .TVTabListItem {
    border-radius: 20px;
    background-color: #edf2f5
}

.TVTabListControl.TVStyleTheme2 .TVTabListItem.TVActive,.TVTabListControl.TVStyleTheme3 .TVTabListItem.TVActive {
    color: #fff;
    background-color: #5c6672
}

.TVTabListControl.TVStyleTheme2 .TVTabListItem:not(:last-child),.TVTabListControl.TVStyleTheme3 .TVTabListItem:not(:last-child) {
    margin-right: 10px
}

.TVTabListControl.TVStyleTheme1 .TVTabListItem,.TVTabListControl.TVStyleTheme2 .TVTabListItem {
    color: #5c6672;
    font-weight: 600
}

.TVTabListControl.TVStyleTheme3 .TVTabListItem {
    color: #5c6672;
    min-width: 100px;
    box-sizing: border-box
}

.TVTabListControl.TVStyleTheme4 .TVTabListItem {
    border-radius: 6px;
    font-weight: 600;
    background-color: var(--tv-main-text-color);
    color: var(--tv-main-color)
}

.TVTabListControl.TVStyleTheme4 .TVTabListItem.TVActive {
    background-color: var(--tv-main-color);
    color: var(--tv-main-text-color)
}

.TVTabListControl.TVStyleTheme4 .TVTabListItem:not(:last-child) {
    margin-right: 10px
}

.TVTabListControl.TVPaddingSize-XXS .TVTabListItem {
    padding: 4px 8px 12px
}

.TVTabListControl.TVPaddingSize-XS .TVTabListItem {
    padding: 8px
}

.TVTabListControl.TVPaddingSize-S .TVTabListItem {
    padding: 8px 16px
}

.TVTabListControl.TVPaddingSize-M .TVTabListItem {
    padding: 11px 20px
}

.TVTabListControl.TVFontSize-S .TVTabListItem {
    font-size: 10px
}

.TVTabListControl.TVFontSize-M .TVTabListItem {
    font-size: 13px
}

.TVTabListControl.TVFontSize-L .TVTabListItem {
    font-size: 14px
}

.TVTabListControl.TVScrollHidden {
    -ms-overflow-style: none;
    scrollbar-width: none
}

.TVTabListControl.TVScrollHidden::-webkit-scrollbar {
    display: none
}

.TVTabListControl.TVTextTransform-Uppercase {
    text-transform: uppercase
}

.TVTabListControl.TVTextTransform-Capitalize {
    text-transform: capitalize
}

.TVTabListWithSearch {
    display: flex
}

.TVTabListWithSearchInput {
    flex: 1;
    display: flex;
    align-items: center
}

.TVTabListWithSearchInputInTabs {
    justify-content: space-between
}

.TVTabListWithSearchInputInTabs .TVTabListWithSearchInput:before {
    font-family: TVicons;
    content: "\e91d";
    font-size: 15px;
    color: #5c6672;
    margin-right: 10px
}

.TVTabListWithSearchInputInTabs .TVTabListWithSearchInput input {
    width: 100%;
    border: 0;
    border-radius: 0;
    padding: 0;
    margin: 0;
    box-shadow: none;
    color: #5c6672;
    text-transform: uppercase
}

.TVTabListWithSearchInputInTabs .TVTabListWithSearchInput input:focus {
    border-color: transparent;
    box-shadow: none
}

.TVTabListWithSearchInputInTabs .TVTabListWithSearchReset {
    margin-left: 10px
}

.TVTabListWithSearchInputBeforeTabs {
    flex-direction: column
}

.TVTabListWithSearchInputBeforeTabs .TVTabListWithSearchInput {
    background: #edf2f5;
    padding: 10px 15px;
    border-radius: 20px;
    margin-bottom: 20px
}

.TVTabListWithSearchInputBeforeTabs .TVTabListWithSearchInput:before {
    font-family: TVicons;
    content: "\e91d";
    font-size: 15px;
    color: #5c6672;
    margin-right: 10px
}

.TVTabListWithSearchInputBeforeTabs .TVTabListWithSearchInput input {
    width: 100%;
    border: 0;
    border-radius: 0;
    padding: 0;
    margin: 0;
    box-shadow: none;
    background: #edf2f5;
    color: #5c6672
}

.TVTabListWithSearchInputBeforeTabs .TVTabListWithSearchInput input:focus {
    border-color: transparent;
    box-shadow: none
}

.TVTabListWithSearchInputBeforeTabs .TVTabListWithSearchReset {
    margin-left: 10px
}

.TVTabListWithSearchInput.TVSize-S input {
    font-size: 10px
}

.TVTabListWithSearchInput.TVSize-S input::placeholder {
    font-size: 10px
}

.TVTabListWithSearchInput.TVSize-M input {
    font-size: 14px
}

.TVTabListWithSearchInput.TVSize-M input::placeholder {
    font-size: 14px
}

.TVTabListWithSearchInput.TVSize-L input {
    font-size: 16px
}

.TVTabListWithSearchInput.TVSize-L input::placeholder {
    font-size: 14px
}

.TVTabListItemFilter {
    font-size: 14px;
    line-height: 14px
}

.TVTabListItemFilter:before {
    font-family: TVicons;
    content: "\f0b0"
}

.TVTabListItemSelected {
    display: flex;
    align-items: center
}

.TVTabListItemSelected .TVTabListItemSelectedCount {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 15px;
    height: 15px;
    background: #5c6672;
    border-radius: 10px;
    margin-left: 5px;
    padding: 0 3px;
    font-size: 10px;
    color: #fff
}

.TVTabListControl.TVStyleTheme2>.TVActive>.TVTabListItemSelected .TVTabListItemSelectedCount {
    background: #fff;
    color: #5c6672
}

.TVHotelListWithTabsCartButton {
    display: flex;
    align-items: center
}

.TVHotelListWithTabsCartText {
    margin-left: 3px
}

.TVSelect {
    display: flex;
    align-items: center;
    cursor: pointer
}

.TVSelect.TVFontSize-S {
    font-size: 16px
}

.TVSelect.TVFontSize-M {
    font-size: 18px
}

.TVSelectContent {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.TVSelectArrow {
    display: flex;
    justify-content: center;
    align-items: center
}

.TVSelect.TVStyleTheme1:hover .TVSelectContent {
    border-bottom-color: inherit
}

.TVSelect.TVStyleTheme1 .TVSelectArrow {
    width: 20px;
    height: 7px;
    margin-left: 7px
}

.TVSelect.TVStyleTheme1 .TVSelectArrow:before {
    display: block;
    font-family: TVicons;
    content: "\e95e"
}

.TVSelect.TVStyleTheme1 .TVSelectArrow.TVDirection-Top {
    transform: rotate(180deg)
}

.TVSelect.TVStyleTheme1 .TVSelectArrow:before {
    font-size: 20px
}

.TVSelect.TVStyleTheme2 .TVSelectArrow {
    width: 14px;
    height: 5px
}

.TVSelect.TVStyleTheme2 .TVSelectArrow:before {
    display: block;
    font-family: TVicons;
    content: "\e95e"
}

.TVSelect.TVStyleTheme2 .TVSelectArrow.TVDirection-Top {
    transform: rotate(180deg)
}

.TVSelect.TVStyleTheme2 .TVSelectArrow:before {
    font-size: 14px;
    line-height: 14px
}

.TVAddSelect {
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer
}

.TVAddSelect.TVAnimationEnabled .TVAddSelectPlaceholder {
    transition: all .2s
}

.TVAddSelect.TVDisabled {
    opacity: .5;
    pointer-events: none
}

.TVAddSelectContentBlock {
    flex: 1;
    min-width: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative
}

.TVAddSelectPlaceholder {
    width: 100%;
    color: #5c6672;
    position: absolute
}

.TVAddSelectContent {
    font-size: 13px;
    font-weight: 600;
    color: #333
}

.TVAddSelectContent,.TVAddSelectPlaceholder {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.TVAddSelectArrow,.TVAddSelectReset {
    display: flex;
    justify-content: center;
    align-items: center;
    color: #5c6672
}

.TVAddSelect.TVStyleTheme1 .TVAddSelectPlaceholder {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase
}

.TVAddSelect.TVStyleTheme2 .TVAddSelectPlaceholder {
    font-size: 13px
}

.TVAddSelect.TVStyleTheme1,.TVAddSelect.TVStyleTheme2 {
    height: 38px;
    padding-left: 10px;
    background: #fff
}

.TVAddSelect.TVStyleTheme1.TVSelected .TVAddSelectPlaceholder,.TVAddSelect.TVStyleTheme2.TVSelected .TVAddSelectPlaceholder {
    font-size: 10px;
    transform: translateY(-8px)
}

.TVAddSelect.TVStyleTheme1 .TVAddSelectContent,.TVAddSelect.TVStyleTheme2 .TVAddSelectContent {
    margin-top: 13px
}

.TVAddSelect.TVStyleTheme1 .TVAddSelectArrow,.TVAddSelect.TVStyleTheme1 .TVAddSelectReset,.TVAddSelect.TVStyleTheme2 .TVAddSelectArrow,.TVAddSelect.TVStyleTheme2 .TVAddSelectReset {
    width: 20px;
    min-width: 20px;
    height: 20px;
    margin: auto 5px
}

.TVAddSelect.TVStyleTheme1 .TVAddSelectArrow:before,.TVAddSelect.TVStyleTheme2 .TVAddSelectArrow:before {
    display: block;
    font-family: TVicons;
    content: "\e95e"
}

.TVAddSelect.TVStyleTheme1 .TVAddSelectArrow.TVDirection-Top,.TVAddSelect.TVStyleTheme2 .TVAddSelectArrow.TVDirection-Top {
    transform: rotate(180deg)
}

.TVAddSelect.TVStyleTheme1 .TVAddSelectArrow:before,.TVAddSelect.TVStyleTheme2 .TVAddSelectArrow:before {
    font-size: 20px
}

.TVAddSelect.TVStyleTheme3,.TVAddSelect.TVStyleTheme4 {
    height: 50px;
    box-sizing: border-box;
    background: #fff
}

.TVAddSelect.TVStyleTheme3.TVSelected .TVAddSelectPlaceholder,.TVAddSelect.TVStyleTheme4.TVSelected .TVAddSelectPlaceholder {
    font-size: 12px;
    transform: translateY(-10px)
}

.TVAddSelect.TVStyleTheme3 .TVAddSelectPlaceholder,.TVAddSelect.TVStyleTheme4 .TVAddSelectPlaceholder {
    font-size: 13px;
    font-weight: 500
}

.TVAddSelect.TVStyleTheme3 .TVAddSelectContent,.TVAddSelect.TVStyleTheme4 .TVAddSelectContent {
    margin-top: 20px;
    font-size: 14px
}

.TVAddSelect.TVStyleTheme3 .TVAddSelectArrow,.TVAddSelect.TVStyleTheme3 .TVAddSelectReset,.TVAddSelect.TVStyleTheme4 .TVAddSelectArrow,.TVAddSelect.TVStyleTheme4 .TVAddSelectReset {
    width: 20px;
    min-width: 20px;
    height: 20px;
    margin: auto 10px
}

.TVAddSelect.TVStyleTheme3 {
    padding: 0 5px 0 20px
}

.TVAddSelect.TVStyleTheme3 .TVAddSelectContent {
    font-weight: 700
}

.TVAddSelect.TVStyleTheme3 .TVAddSelectArrow:before {
    display: block;
    font-family: TVicons;
    content: "\e95e";
    transform: rotate(-90deg);
    font-size: 20px
}

.TVAddSelect.TVStyleTheme4 {
    border-radius: 3px;
    padding: 0 5px 0 15px
}

.TVAddSelect.TVStyleTheme4 .TVAddSelectPlaceholder {
    color: #999;
    font-size: 14px
}

.TVAddSelect.TVStyleTheme4 .TVAddSelectContent {
    font-weight: 500
}

.TVAddSelect.TVStyleTheme4 .TVAddSelectArrow:before {
    display: block;
    font-family: TVicons;
    content: "\e95e"
}

.TVAddSelect.TVStyleTheme4 .TVAddSelectArrow.TVDirection-Top {
    transform: rotate(180deg)
}

.TVAddSelect.TVStyleTheme4 .TVAddSelectArrow:before {
    font-size: 20px
}

.TVAddSelect.TVStyleTheme4.TVInvalid {
    border: 1px solid #e31e22
}

.TVAddSelect.TVStyleTheme5 {
    height: 40px;
    width: 100%;
    justify-content: space-around;
    padding: 0 10px;
    box-sizing: border-box;
    border-radius: 6px
}

.TVAddSelect.TVStyleTheme5 .TVAddSelectContent,.TVAddSelect.TVStyleTheme5 .TVAddSelectPlaceholder {
    font-size: 13px;
    font-weight: 500;
    line-height: 18px
}

.TVAddSelect.TVStyleTheme5 .TVAddSelectArrow,.TVAddSelect.TVStyleTheme5 .TVAddSelectReset {
    margin-left: 5px
}

.TVAddSelect.TVStyleTheme5 .TVAddSelectArrow:before {
    display: block;
    font-family: TVicons;
    content: "\e95e"
}

.TVAddSelect.TVStyleTheme5 .TVAddSelectArrow.TVDirection-Top {
    transform: rotate(180deg)
}

.TVAddSelect.TVStyleTheme5 .TVAddSelectArrow:before {
    font-size: 16px
}

.TVAddSelect.TVStyleTheme5 .TVAddSelectArrow,.TVAddSelect.TVStyleTheme5 .TVAddSelectArrow:before,.TVAddSelect.TVStyleTheme5 .TVAddSelectContent,.TVAddSelect.TVStyleTheme5 .TVAddSelectContentBlock,.TVAddSelect.TVStyleTheme5 .TVAddSelectReset {
    color: currentColor
}

.TVAddSelect.TVStyleTheme5 .TVAddSelectResetIcon {
    stroke: currentColor
}

.TVAddSelect.TVStyleTheme5.TVSelected .TVAddSelectPlaceholder {
    display: none
}

.TVAddSelect.TVStyleTheme5.TVInvalid {
    border: 1px solid #e31e22
}

.TVMainSelect {
    display: flex;
    cursor: pointer
}

.TVMainSelect.TVAxisDirection-Column {
    flex-direction: column
}

.TVMainSelect.TVAxisDirection-Row {
    flex-direction: row
}

.TVMainSelectContent,.TVMainSelectPlaceholder {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.TVMainSelect.TVStyleTheme1 {
    height: 50px;
    box-sizing: border-box;
    padding: 6px 10px;
    justify-content: space-between;
    background: transparent linear-gradient(180deg,#fff,#f8f8f8) 0 0 no-repeat padding-box
}

.TVMainSelect.TVStyleTheme1:hover {
    background: #f5f5f5
}

.TVMainSelect.TVStyleTheme1.TVTextAlignLeft {
    text-align: left
}

.TVMainSelect.TVStyleTheme1.TVTextAlignCenter {
    text-align: center
}

.TVMainSelect.TVStyleTheme1.TVTextAlignRight {
    text-align: right
}

.TVMainSelect.TVStyleTheme1 .TVMainSelectPlaceholder {
    text-transform: uppercase;
    font-size: 10px;
    color: #5c6672
}

.TVMainSelect.TVStyleTheme1 .TVMainSelectContent {
    font-size: 15px;
    font-weight: 700;
    color: #333
}

.TVMainSelect.TVStyleTheme2 {
    height: 60px;
    box-sizing: border-box;
    padding: 10px 20px;
    justify-content: space-between;
    background: #fff
}

.TVMainSelect.TVStyleTheme2:hover {
    background: #f1f1f1
}

.TVMainSelect.TVStyleTheme2.TVTextAlign-Left {
    text-align: left
}

.TVMainSelect.TVStyleTheme2.TVTextAlign-Center {
    text-align: center
}

.TVMainSelect.TVStyleTheme2.TVTextAlign-Right {
    text-align: right
}

.TVMainSelect.TVStyleTheme2 .TVMainSelectPlaceholder {
    text-transform: uppercase;
    font-size: 10px;
    color: #5c6672
}

.TVMainSelect.TVStyleTheme2 .TVMainSelectContent {
    height: 20px;
    font-size: 15px;
    font-weight: 700;
    color: #040404
}

.TVMainSelect.TVStyleTheme3 {
    height: 60px;
    box-sizing: border-box;
    padding: 10px 10px 10px 15px;
    align-items: center
}

.TVMainSelect.TVStyleTheme3.TVTextAlign-Left .TVMainSelectContent,.TVMainSelect.TVStyleTheme3.TVTextAlign-Left .TVMainSelectPlaceholder {
    justify-content: flex-start
}

.TVMainSelect.TVStyleTheme3.TVTextAlign-Center .TVMainSelectContent,.TVMainSelect.TVStyleTheme3.TVTextAlign-Center .TVMainSelectPlaceholder {
    justify-content: center
}

.TVMainSelect.TVStyleTheme3.TVTextAlign-Right .TVMainSelectContent,.TVMainSelect.TVStyleTheme3.TVTextAlign-Right .TVMainSelectPlaceholder {
    justify-content: flex-end
}

.TVMainSelect.TVStyleTheme3 .TVMainSelectPlaceholder {
    display: flex;
    align-items: center;
    color: #0081cb
}

.TVMainSelect.TVStyleTheme3 .TVMainSelectContent {
    color: #333;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -.3px;
    flex: 1
}

.TVTooltip {
    font-family: var(--tv-font-theme2);
    background: #fff;
    box-shadow: 0 5px 15px 0 #777;
    position: absolute;
    z-index: 100000
}

.TVTophotelsWidgetWaiter {
    display: flex;
    justify-content: center
}

.TVTooltipPage.TVMobilePanel .TVMobilePanelCaption:before {
    content: ""
}

.TVTooltipPage.TVMobilePanel .TVMobilePanelBody {
    background-color: #fff;
    height: 100%
}

.TVTooltipPageContent {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column
}

.TVTooltipPageSearchInput {
    display: flex;
    align-items: center;
    width: 100%;
    background: rgba(0,0,0,.2);
    padding: 10px 15px;
    box-sizing: border-box;
    border-radius: 40px;
    color: inherit
}

.TVTooltipPageSearchInput:after {
    font-family: TVicons;
    content: "\e91d";
    font-size: 14px;
    line-height: 14px
}

.TVTooltipPageSearchInput input {
    box-sizing: border-box;
    width: 100%;
    border: 0;
    border-radius: 0;
    padding: 0;
    margin: 0;
    box-shadow: none;
    background-color: transparent;
    color: inherit;
    font-size: 14px;
    line-height: 1;
    text-overflow: ellipsis
}

.TVTooltipPageSearchInput input:focus {
    border-color: transparent;
    box-shadow: none
}

.TVTooltipPageSearchInput input::placeholder {
    color: inherit
}

.TVModalPage.TVMobilePanel .TVMobilePanelCaption:before {
    content: ""
}

.TVModalPage.TVMobilePanel .TVMobilePanelBody {
    height: 100%
}

.TVModalPageContent {
    width: 100%;
    height: 100%;
    background-color: #fff;
    display: flex;
    flex-direction: column
}

.TVMinPriceBlock {
    line-height: 15px;
    text-align: left;
    float: right;
    margin-top: 25px;
    cursor: pointer
}

.TVMinPriceValue {
    font-size: 24px;
    margin-right: 5px;
    margin-left: 13px;
    font-weight: 400
}

.TVMinPriceSuffix,.TVMinPriceValue {
    line-height: 1.39;
    display: inline-block
}

.TVMinPriceSuffix {
    width: 30px
}

.TVMinPriceHuman {
    font-size: 11px;
    font-weight: 300;
    color: #999
}

.TVMinPriceHuman:after {
    content: "чел";
    position: relative
}

.TVMinPriceArrow {
    display: inline-block;
    margin-bottom: -5px;
    background-image: url(//tourvisor.ru/module/newform/modules/images/minprice-sprite.png);
    width: 29px;
    height: 30px;
    background-position: -84px -135px;
    cursor: pointer
}

.TVLPRMOverlay {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: #000;
    opacity: .5;
    z-index: 1
}

.TVLPResortWindow {
    position: absolute;
    left: 1%;
    right: 1%;
    width: 500px;
    margin: 0 auto;
    top: 30px;
    background: #fff;
    padding: 25px;
    box-shadow: 0 0 30px 1px #000;
    z-index: 3
}

.TVLPResortWindow .TVLPSunTemprature,.TVLPResortWindow .TVLPWaterTemprature {
    display: inline-block;
    vertical-align: top;
    margin-right: 20px
}

.TVLPResortWindow .TVLPSimpleText {
    margin: 20px 0;
    text-align: justify;
    max-height: 168px;
    overflow: hidden;
    white-space: normal
}

.TVLPResortWindow .TVLPDetailButton {
    display: inline-block
}

.TVLPResortWindow .TVLPResMinPrice {
    position: absolute;
    right: 25px;
    bottom: 20px
}

.TVLPResortWindow .TVLPResMinPrice:hover {
    border-bottom: 1px dashed #666;
    bottom: 19px
}

.TVLPResortWindow .TVMinPriceBlock {
    margin-top: 0
}

.TVLPRWIcon {
    width: 100%;
    height: 180px;
    background-size: 102%;
    background-position: 50%;
    margin-top: 10px
}

@-webkit-keyframes tv-rotate {
    0% {
        transform: rotate(0deg)
    }

    to {
        transform: rotate(1turn)
    }
}

@-moz-keyframes tv-rotate {
    0% {
        transform: rotate(0deg)
    }

    to {
        transform: rotate(1turn)
    }
}

@-o-keyframes tv-rotate {
    0% {
        transform: rotate(0deg)
    }

    to {
        transform: rotate(1turn)
    }
}

@keyframes tv-rotate {
    0% {
        transform: rotate(0deg)
    }

    to {
        transform: rotate(1turn)
    }
}

@-webkit-keyframes tv-rotate-inv {
    0% {
        transform: rotate(1turn)
    }

    to {
        transform: rotate(0deg)
    }
}

@-moz-keyframes tv-rotate-inv {
    0% {
        transform: rotate(1turn)
    }

    to {
        transform: rotate(0deg)
    }
}

@-o-keyframes tv-rotate-inv {
    0% {
        transform: rotate(1turn)
    }

    to {
        transform: rotate(0deg)
    }
}

@keyframes tv-rotate-inv {
    0% {
        transform: rotate(1turn)
    }

    to {
        transform: rotate(0deg)
    }
}

.TVSimpleWaiter {
    border-color: #008cc4 #008cc4 rgba(0,140,196,0) rgba(0,140,196,0);
    -webkit-animation: tv-rotate .8s linear infinite;
    -moz-animation: tv-rotate .8s infinite linear;
    -o-animation: tv-rotate .8s infinite linear;
    animation: tv-rotate .8s linear infinite
}

.TVSimpleWaiter,.TVSimpleWaiterD {
    margin: auto;
    width: 10px;
    height: 10px;
    border-radius: 100%;
    border-style: solid;
    border-width: 2px
}

.TVSimpleWaiterD {
    border-color: rgba(0,140,196,0) rgba(0,140,196,0) #008cc4 #008cc4;
    -webkit-animation: tv-rotate-inv .8s linear infinite;
    -moz-animation: tv-rotate-inv .8s infinite linear;
    -o-animation: tv-rotate-inv .8s infinite linear;
    animation: tv-rotate-inv .8s linear infinite
}

.TVSimpleWaiterDuble {
    position: relative;
    display: block;
    width: 1px;
    height: 1px;
    margin: 0 auto
}

.TVSimpleWaiterDuble:before {
    width: 18px;
    height: 18px;
    border-color: #008cc4 rgba(0,140,196,0);
    -webkit-animation: tv-rotate-inv .8s linear infinite;
    -moz-animation: tv-rotate-inv .8s infinite linear;
    -o-animation: tv-rotate-inv .8s infinite linear;
    animation: tv-rotate-inv .8s linear infinite;
    top: -4px;
    left: -4px
}

.TVSimpleWaiterDuble:after,.TVSimpleWaiterDuble:before {
    content: "";
    display: block;
    margin: auto;
    border-radius: 100%;
    border-style: solid;
    border-width: 1px;
    position: absolute
}

.TVSimpleWaiterDuble:after {
    width: 10px;
    height: 10px;
    border-color: #008cc4 #008cc4 rgba(0,140,196,0) rgba(0,140,196,0);
    -webkit-animation: tv-rotate .8s linear infinite;
    -moz-animation: tv-rotate .8s infinite linear;
    -o-animation: tv-rotate .8s infinite linear;
    animation: tv-rotate .8s linear infinite;
    top: 0;
    left: 0
}

.TVWaiterBG {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: #fff;
    display: block
}

.TVWaiterBG.TVWaiterBGRelative {
    position: relative
}

.TVWaiterBG .TVSimpleWaiterDuble {
    position: absolute;
    top: 40%;
    left: 1%;
    right: 1%
}

.TVMenuControl.TVStyleTheme1 {
    font-size: 13px
}

.TVMenuControl.TVStyleTheme1 .TVMenuItem {
    color: #347eaf;
    cursor: pointer;
    text-decoration: none;
    display: flex;
    align-items: center;
    box-sizing: border-box;
    padding: 10px 12px
}

.TVMenuControl.TVStyleTheme1 .TVMenuItem:before {
    margin-right: 10px;
    width: 25px;
    text-align: center
}

.TVMenuControl.TVStyleTheme1 .TVMenuItem:hover {
    background-color: #f5f5f5
}

.TVMenuControl.TVStyleTheme1 .TVMenuItem.TVDisabled {
    opacity: .7;
    cursor: default
}

.TVMenuControl.TVStyleTheme1 .TVMenuItem.TVDisabled:hover {
    background-color: inherit
}

.TVMenuControl.TVStyleTheme1.TVColorInfo .TVMenuItem {
    color: #5c6672
}

.TVMenuControl.TVStyleTheme1 .TVMenuItemWithSvgIconWrapper {
    padding: 3px
}

.TVMenuControl.TVStyleTheme2 {
    font-size: 13px
}

.TVMenuControl.TVStyleTheme2 .TVMenuItem {
    color: inherit;
    cursor: pointer;
    text-decoration: none;
    padding: 15px 0;
    border-bottom: 1px solid;
    display: block;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden
}

.TVMenuControl.TVStyleTheme2 .TVMenuItem:before {
    margin-right: 10px;
    width: 25px;
    text-align: center
}

.TVMenuControl.TVStyleTheme2 .TVMenuItem.TVDisabled {
    opacity: .7;
    cursor: default
}

.TVMenuControl.TVStyleTheme3 {
    font-size: 14px
}

.TVMenuControl.TVStyleTheme3 .TVMenuItem {
    color: #333;
    padding: 15px 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    line-height: 20px;
    font-weight: 600;
    border-bottom: 1px solid #ddd
}

.TVMenuControl.TVStyleTheme3 .TVMenuItem:before {
    font-weight: 400;
    margin-right: 10px;
    width: 25px;
    text-align: center
}

.TVMenuControl.TVStyleTheme3 .TVMenuItem.TVDisabled {
    opacity: .7;
    cursor: default
}

.TVMenuControl.TVStyleTheme1 .TVMenuItemWithSvg,.TVMenuControl.TVStyleTheme2 .TVMenuItemWithSvg,.TVMenuControl.TVStyleTheme3 .TVMenuItemWithSvg {
    display: flex;
    align-items: center
}

.TVMenuControl.TVStyleTheme1 .TVMenuItemWithSvgIconWrapper,.TVMenuControl.TVStyleTheme2 .TVMenuItemWithSvgIconWrapper,.TVMenuControl.TVStyleTheme3 .TVMenuItemWithSvgIconWrapper {
    display: flex;
    margin-right: 10px
}

.TVMenuControl.TVStyleTheme1 .TVMenuItemWithSvgIconWrapper svg,.TVMenuControl.TVStyleTheme1 .TVMenuItemWithSvgIconWrapper svg path,.TVMenuControl.TVStyleTheme2 .TVMenuItemWithSvgIconWrapper svg,.TVMenuControl.TVStyleTheme2 .TVMenuItemWithSvgIconWrapper svg path,.TVMenuControl.TVStyleTheme3 .TVMenuItemWithSvgIconWrapper svg,.TVMenuControl.TVStyleTheme3 .TVMenuItemWithSvgIconWrapper svg path {
    fill: currentColor
}

.TVTabName {
    font-family: var(--tv-font-theme2)
}

.TVTabName .TVNameContent {
    padding: 10px;
    font-size: 10px;
    line-height: 14px;
    color: #777
}

.TVTabName .TVNameIndicator {
    height: 4px
}

.TVTabName.TVActive .TVNameIndicator {
    background-color: #777;
    border-radius: 2px
}

.TVTabContent {
    margin-top: 15px
}

.TVTabs {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    min-height: 38px
}

.TVTabs:before {
    content: "";
    width: 100%;
    height: 1px;
    background-color: #ddd;
    position: relative;
    top: 37px
}

.TVTabs .TVTabName {
    position: relative;
    text-transform: uppercase
}

.TVTabs .TVTabName.TVTabNameRight {
    margin-left: auto
}

.TVTabs .TVTabName.TVTabNameSearch .TVNameContent {
    position: relative;
    width: 15px;
    height: 15px
}

.TVTabs .TVTabName.TVTabNameSearch .TVNameContent:after {
    font-family: TVicons;
    content: "\e91d";
    font-size: 15px
}

.TVSubscribeControl {
    display: flex;
    background-color: #e2f1fb;
    color: #31708f;
    font-size: 14px;
    border-radius: 20px;
    align-items: center;
    flex-wrap: wrap;
    position: relative;
    transition: height .3s ease-out;
    box-sizing: border-box;
    overflow: hidden
}

.TVSubscribeControl.TVSubscribeFull {
    padding: 25px 30px
}

.TVSubscribeControl.TVSubscribeFull .TVSubscribeOpenButton,.TVSubscribeControl.TVSubscribeShort .TVSubscribeButtons,.TVSubscribeControl.TVSubscribeShort .TVSubscribeContent {
    display: none
}

.TVSubscribeControl .TVSubscribeOpenButton {
    padding: 10px;
    flex: 1;
    text-align: center;
    cursor: pointer
}

.TVSubscribeControl .TVSubscribeOpenButton:before {
    content: "Подписка на бота"
}

.TVSubscribeControl .TVSubscribeContent {
    flex: 1;
    flex-basis: 370px;
    margin-right: 30px
}

.TVSubscribeControl .TVSubscribeContent:before {
    content: "Подписка на бота";
    display: block;
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 10px
}

.TVSubscribeControl .TVSubscribeContent:after {
    content: "Подпишитесь на Telegram бота для получения уведомлений о появлении новых туров";
    display: block
}

.TVSubscribeControl .TVSubscribeButtons {
    display: flex;
    flex-basis: 300px
}

.TVSubscribeControl .TVSubscribeButton {
    margin-top: 20px;
    padding: 10px 0;
    background-color: #31708f;
    color: #fff;
    border-radius: 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-basis: 50%
}

.TVSubscribeControl .TVSubscribeButton:not(:last-child) {
    margin-right: 10px
}

.TVSubscribeControl .TVSubscribeMainButton:before {
    content: "Подписаться"
}

.TVSubscribeControl .TVSubscribeHideButton {
    background-color: #fff;
    color: #31708f
}

.TVSubscribeControl .TVSubscribeHideButton:before {
    content: "Скрыть"
}

.TVVideoControl {
    height: 100%;
    width: 100%;
    position: relative
}

.TVVideoFrame {
    position: absolute;
    height: 100%;
    width: 100%;
    overflow: hidden;
    background: #ddd;
    border: none;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0
}

body.TVMobileContainer {
    margin: 0;
    color: #333;
    position: relative;
    min-width: auto;
    line-height: normal;
    font-family: var(--tv-font-theme2)
}

body.TVMobileContainer input:not([type=checkbox]):not([type=radio]),body.TVMobileContainer textarea {
    appearance: none;
    outline: none
}

body.TVMobileContainer.TViOS {
    overflow: auto;
    height: 100%;
    -webkit-overflow-scrolling: touch
}

.TVMobilePanelHeader {
    color: #fff;
    border-color: #fff
}

.TVMobileHeaderWrapper {
    width: 100%;
    top: 0;
    position: sticky;
    z-index: 2;
    background: #fff
}

.TVMobilePanel {
    width: 100vw;
    height: 100%;
    background: #fff
}

.TVMobilePanel .TVMainColor {
    text-shadow: none
}

.TVMobilePanel .TVMobilePanelHeader {
    height: 60px;
    padding: 0 10px 0 20px;
    display: flex;
    align-items: center
}

.TVMobilePanel .TVMobilePanelHeader .TVMobilePanelCaption {
    flex: 1;
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden
}

.TVMobilePanel .TVMobilePanelHeader .TVMobilePanelClose {
    font-weight: 500;
    font-size: 20px;
    padding: 8px;
    position: relative;
    background: rgba(0,0,0,.2);
    height: 22px;
    width: 22px;
    border-radius: 40px;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVMobilePanel .TVMobilePanelHeader .TVMobilePanelClose:after {
    font-family: TVicons;
    content: "\e916";
    font-size: 12px;
    line-height: 1
}

.TVMobilePanel .TVMobileMessage {
    padding: 20px;
    background-color: #fff;
    font-size: 14px;
    color: #777;
    box-sizing: border-box
}

.TVMobilePanel .TVMobileMessage,.TVMobilePanel .TVMobilePanelBlock {
    width: 100%;
    height: calc(100% - 60px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch
}

.TVMobilePanel .TVMobilePanelBody {
    width: 100%;
    position: relative;
    z-index: 1
}

.TVMobilePanel .TVMobilePanelBody.TVMobilePanelBodyWithFooterFixed {
    position: fixed;
    height: calc(100% - 140px)
}

.TVMobilePanel .TVMobilePanelBody.TVMobilePanelBodyFixed {
    position: fixed;
    height: calc(100% - 60px)
}

.TVMobilePanel .TVHotelTitleName {
    color: #333
}

.TVMobilePanel .TVHotelTitleResort {
    color: #999
}

.TVMobilePanel .TVMobilePanelFooter {
    width: 100%;
    bottom: 0;
    right: 0;
    z-index: 2;
    position: relative
}

.TVMobilePanel .TVMobilePanelFooter.TVMobilePanelFooterFixed {
    position: fixed;
    top: auto
}

.TVMobilePanel .TVButton {
    font-family: var(--tv-font-theme2)
}

.TVMobilePanel.TVTransitionForward {
    animation: tv-mobile-transition .25s ease-out forwards
}

.TVMobilePanel.TVTransitionBack {
    animation: tv-mobile-transition .25s ease-out reverse forwards;
    position: fixed;
    z-index: 2
}

.TVMobilePanel.TVTransitionDarkeningForward {
    animation: tv-mobile-brightenss-transition .25s ease-out forwards;
    position: fixed
}

.TVMobilePanel.TVTransitionDarkeningBack {
    animation: tv-mobile-brightenss-transition .25s ease-out reverse forwards;
    position: fixed
}

.TVBodyAnimation .TVOverLay {
    animation: tv-body-brightenss-transition .25s ease-out
}

@keyframes tv-mobile-transition {
    0% {
        transform: translateX(100%)
    }

    to {
        transform: translateX(0)
    }
}

@keyframes tv-mobile-brightenss-transition {
    0% {
        filter: brightness(100%)
    }

    to {
        filter: brightness(40%)
    }
}

@keyframes tv-body-brightenss-transition {
    0% {
        opacity: .6
    }

    to {
        opacity: 0
    }
}

.TVMListBox {
    font-size: large;
    font-family: var(--tv-font-theme1);
    color: #555
}

.TVMListBox .TVCheckBox {
    padding: 14px 4px 14px 37px;
    display: block;
    border-bottom: 1px solid #8a8989;
    box-shadow: 0 1px 0 #fff
}

.TVMRHotelBox .TVMListBox {
    font-size: medium
}

.TVMListBoxItem {
    padding: 14px 4px 14px 37px;
    border-bottom: 1px solid #8a8989;
    box-shadow: 0 1px 0 #fff
}

.TVComboBoxPanel .tv_content,.TVComboBoxPanel .TVMobilePanelBody {
    margin: 0
}

.TVComboBoxPanel .tv_content .TVListBox,.TVComboBoxPanel .TVMobilePanelBody .TVListBox {
    padding: 20px 0
}

.TVComboBoxPanel .tv_content .TVListBox .TVListBoxItem,.TVComboBoxPanel .TVMobilePanelBody .TVListBox .TVListBoxItem {
    padding: 6px 20px
}

.TVComboBoxPanel .tv_content .TVListBox .TVListBoxItem t-span,.TVComboBoxPanel .TVMobilePanelBody .TVListBox .TVListBoxItem t-span {
    font-weight: 700
}

.TVComboBoxPanel .tv_content .TVListBox .TVListBoxItem.TVNoTextTransform,.TVComboBoxPanel .TVMobilePanelBody .TVListBox .TVListBoxItem.TVNoTextTransform {
    text-transform: none
}

.TVComboBoxPanel .tv_content .TVListBox .TVItemSelected,.TVComboBoxPanel .tv_content .TVListBox .TVItemSelected:hover,.TVComboBoxPanel .TVMobilePanelBody .TVListBox .TVItemSelected,.TVComboBoxPanel .TVMobilePanelBody .TVListBox .TVItemSelected:hover {
    background-color: #185584;
    color: #fff;
    border-radius: 0
}

.TVComboBoxPanel .TVMobilePanelBody {
    margin: 10px;
    width: auto
}

.TVComboBoxPanel .TVMobilePanelBody .TVListBox {
    padding: 0
}

.TVComboBoxPanel .TVMobilePanelBody .TVListBox .TVListBoxItem {
    text-transform: none;
    padding: 0 10px
}

.TVComboBoxPanel .TVMobilePanelBody .TVListBox .TVListBoxItem>div:first-child {
    border-bottom: 1px solid #ddd;
    padding: 15px 0
}

.TVComboBoxPanel .TVMobilePanelBody .TVListBox .TVListBoxItem t-span {
    font-weight: 700
}

.TVComboBoxPanel .TVMobilePanelBody .TVListBox .TVListBoxItem:hover {
    background: #fff
}

.TVComboBoxPanel .TVMobilePanelBody .TVListBox .TVItemSelected,.TVComboBoxPanel .TVMobilePanelBody .TVListBox .TVItemSelected:hover {
    background-color: #185584;
    color: #fff;
    border-radius: 0
}

.TVComboBoxPanel .TVMobilePanelBody .TVListBox .TVItemSelected:hover>div:first-child,.TVComboBoxPanel .TVMobilePanelBody .TVListBox .TVItemSelected>div:first-child {
    border-bottom: none
}

.TVComboBoxSearch {
    margin: 15px 10px 0
}

.TVComboBoxSearch input {
    overflow: hidden;
    line-height: 18px;
    color: #333;
    background-image: none;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 3px;
    padding: 10px 15px;
    width: 100%;
    box-sizing: border-box;
    font-family: var(--tv-font-theme2);
    font-size: 13px
}

.TVMobilePanelBody .TVComboBoxSearch {
    margin: 15px 0
}

.TVInstantConfirmationControl {
    display: flex;
    align-items: center;
    line-height: 1;
    --icon-size: 13px;
    --icon-color: $light-color
}

.TVInstantConfirmationControl:before {
    font-family: TVicons;
    content: "\e96a";
    font-size: var(--icon-size);
    color: var(--icon-color)
}

.TVInstantConfirmationControl.TVSize-M {
    --icon-size: 13px
}

.TVInstantConfirmationControl.TVSize-L {
    --icon-size: 15px
}

.TVInstantConfirmationControl.TVSize-XL {
    --icon-size: 18px
}

.TVInstantConfirmationControl.TVSize-XXL {
    --icon-size: 23px
}

.TVInstantConfirmationControl.TVSize-XXXL {
    --icon-size: 29px
}

.TVInstantConfirmationControl.TVColorOrange575 {
    --icon-color: #eaa627
}

.TVInstantConfirmationControl.TVColorRed560 {
    --icon-color: #fb5e51
}

.TVInstantConfirmationContent {
    --font-size: 12px;
    margin-left: 3px;
    font-size: var(--font-size)
}

.TVInstantConfirmationContent.TVFontSize-M {
    --font-size: 12px
}

.TVInstantConfirmationContent.TVFontSize-L {
    --font-size: 13px
}

.TVInstantConfirmationContent.TVFontSize-XL {
    --font-size: 18px
}

.TVInstantConfirmationContent.TVFontSize-XXL {
    --font-size: 23px
}

.TVInstantConfirmationContent.TVFontWeightSize-M {
    font-weight: 400
}

.TVInstantConfirmationContent.TVFontWeightSize-L {
    font-weight: 500
}

.TVClearFilter {
    position: absolute;
    width: 40px;
    height: 100%;
    right: 0;
    top: 0
}

.TVMFDPDates .tv_content,.TVRestComboPanel .tv_content {
    margin: 20px
}

.TVLoaderContainer {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-color: #fff
}

.TVLoaderContainer .TVLoaderDots {
    height: 15px;
    display: flex
}

.TVLoaderContainer .TVLoaderDot {
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background-color: #777;
    animation: TVLoaderFade 1s ease infinite
}

@keyframes TVLoaderFade {
    50% {
        opacity: .5;
        transform: scale(.6)
    }
}

.TVLoaderContainer .TVLoaderDot:nth-child(2) {
    animation-delay: .5s
}

.TVLoaderContainer .TVLoaderTitle {
    margin-top: 30px;
    font-family: var(--tv-font-theme2)
}

.TVLoaderContainer .TVLoaderTitle:before {
    content: "";
    font-size: 18px;
    font-weight: 700;
    line-height: 18px;
    color: #777;
    text-transform: uppercase
}

.TVResponsiveTextarea {
    flex: 1;
    display: block;
    resize: none;
    box-sizing: border-box;
    outline: none;
    width: 100%;
    color: #333;
    font-size: 14px;
    border: none;
    overflow: hidden;
    overflow-y: auto;
    -ms-overflow-style: none;
    scrollbar-width: none
}

.TVResponsiveTextarea::-webkit-scrollbar {
    display: none
}

.TVResponsiveTextarea::placeholder {
    color: #999
}

.TVInputPhoneCountryFlag {
    width: 19px;
    height: 14px;
    margin-right: 3px;
    border: 1px solid #d8dde2;
    border-radius: 4px;
    display: flex;
    background-size: cover;
    background-repeat: no-repeat
}

.TVInputPhoneAnyCountry {
    height: 14px;
    width: 5px
}

.TVInputPhoneControl input::placeholder {
    font-weight: 400;
    color: #999
}

.TVInputPro {
    overflow: hidden;
    padding: 6px 10px;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 3px;
    font-family: var(--tv-font-theme2);
    line-height: 18px;
    color: #333;
    position: relative
}

.TVInputPro:before {
    font-size: 10px;
    line-height: 18px;
    color: #999;
    text-transform: uppercase
}

.TVInputPro.TVInvalidInput {
    border: 1px solid red
}

.TVInputPro .TVInput input {
    width: 100%;
    border: 0;
    border-radius: 0;
    padding: 0;
    margin: 0;
    box-shadow: none;
    display: block;
    background-color: transparent;
    line-height: 18px;
    font-weight: 700;
    text-transform: uppercase;
    color: #333
}

.TVInputPro .TVInput input:focus {
    border-color: transparent;
    box-shadow: none
}

.TVInputPro.TVFontSize-S,.TVInputPro.TVFontSize-S.TVInputAnimateFixedLabel .TVInputLabel,.TVInputPro.TVFontSize-S .TVInput input {
    font-size: 13px
}

.TVInputPro.TVFontSize-S.TVInputAnimateFixedLabel .TVInputLabel {
    transform: translateY(9px)
}

.TVInputPro.TVFontSize-M,.TVInputPro.TVFontSize-M.TVInputAnimateFixedLabel .TVInputLabel,.TVInputPro.TVFontSize-M .TVInput input {
    font-size: 14px
}

.TVInputPro.TVInputAnimateFixedLabel {
    transition: padding .2s
}

.TVInputPro.TVInputAnimateFixedLabel .TVInputLabel {
    transform: translateY(7px);
    line-height: 0;
    color: #999;
    transition: font-size .2s,transform .2s;
    white-space: nowrap
}

.TVInputPro.TVInputAnimateFixedLabel.TVFocusAnimateLabel {
    padding: 24px 19px 8px
}

.TVInputPro.TVInputAnimateFixedLabel.TVFocusAnimateLabel .TVInputLabel {
    font-size: 11px;
    transform: translateY(-11px)
}

.TVInputPro .TVClearFilter {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer
}

.TVInputPro .TVClearFilter:after {
    right: 12px;
    top: 4px;
    font-family: var(--tv-font-theme2);
    font-size: 30px;
    content: "+";
    pointer-events: none;
    transform: rotate(45deg);
    font-weight: lighter
}

.TVInputNew {
    --font-size: 14px;
    --font-weight: 400;
    --padding-top: 8px;
    --padding-bottom: 8px;
    --padding-left: 15px;
    --padding-right: 15px;
    --padding-animation: 8px;
    --border-color: #ddd;
    --border-radius: 3px;
    overflow: hidden;
    background-color: #fff;
    border: 1px solid;
    border-color: var(--border-color);
    border-radius: var(--border-radius);
    font-family: var(--tv-font-theme2);
    color: #333;
    display: flex;
    align-items: center
}

.TVInputNew input:focus,.TVInputNew textarea:focus {
    outline: none;
    box-shadow: none
}

.TVInputNew.TVDisabled {
    opacity: .5;
    pointer-events: none
}

.TVInputNew.TVFontSize-S {
    --font-size: 13px
}

.TVInputNew.TVFontSize-M {
    --font-size: 14px
}

.TVInputNew.TVFontSize-L {
    --font-size: 15px
}

.TVInputNew.TVFontSize-XL {
    --font-size: 16px
}

.TVInputNew.TVFontSize-XXL {
    --font-size: 17px
}

.TVInputNew.TVFontSize-XXXL {
    --font-size: 18px
}

.TVInputNew.TVFontWeightSize-S {
    --font-weight: 400
}

.TVInputNew.TVFontWeightSize-M {
    --font-weight: 500
}

.TVInputNew.TVFontWeightSize-L {
    --font-weight: 600
}

.TVInputNew.TVFontWeightSize-XL {
    --font-weight: 700
}

.TVInputNew.TVPaddingSize-XXS {
    --padding-top: 5px;
    --padding-bottom: 5px;
    --padding-left: 9px;
    --padding-right: 9px
}

.TVInputNew.TVPaddingSize-XS {
    --padding-top: 6px;
    --padding-bottom: 6px;
    --padding-left: 11px;
    --padding-right: 11px
}

.TVInputNew.TVPaddingSize-S {
    --padding-top: 7px;
    --padding-bottom: 7px;
    --padding-left: 13px;
    --padding-right: 13px
}

.TVInputNew.TVPaddingSize-M {
    --padding-top: 8px;
    --padding-bottom: 8px;
    --padding-left: 15px;
    --padding-right: 15px
}

.TVInputNew.TVPaddingSize-L {
    --padding-top: 10px;
    --padding-bottom: 10px;
    --padding-left: 15px;
    --padding-right: 15px
}

.TVInputNew.TVPaddingSize-XXL {
    --padding-top: 16px;
    --padding-bottom: 16px;
    --padding-left: 19px;
    --padding-right: 19px
}

.TVInputNew.TVColorBlue950 {
    background-color: #edf2f5;
    border: 1px solid #edf2f5
}

.TVInputNewBody {
    flex: 1;
    min-width: 0;
    display: flex;
    padding: var(--padding-top) var(--padding-right) var(--padding-bottom) var(--padding-left);
    position: relative
}

.TVInputNewBody.TVInputNewWithLabel {
    padding: calc(var(--padding-top) + var(--padding-animation)*2) var(--padding-right) var(--padding-bottom) var(--padding-left)
}

.TVInputNewBody:not(.TVReadOnly) {
    cursor: text
}

.TVInputNewBody.TVReadOnly {
    cursor: default
}

.TVInputNewBody input,.TVInputNewBody textarea {
    flex: 1;
    min-width: 0;
    width: 100%;
    height: 18px;
    line-height: var(--font-size);
    display: block;
    background-color: transparent;
    color: #333;
    border: 0;
    border-radius: 0;
    padding: 0;
    margin: 0;
    box-shadow: none;
    font-size: var(--font-size);
    font-weight: var(--font-weight)
}

.TVInputNewBody input:-webkit-autofill,.TVInputNewBody input:-webkit-autofill:focus,.TVInputNewBody input:-webkit-autofill:hover,.TVInputNewBody input:autofill,.TVInputNewBody textarea:-webkit-autofill,.TVInputNewBody textarea:-webkit-autofill:focus,.TVInputNewBody textarea:-webkit-autofill:hover,.TVInputNewBody textarea:autofill {
    color: #333;
    -webkit-text-fill-color: #333;
    box-shadow: inset 0 0 0 100px #fff;
    -webkit-box-shadow: inset 0 0 0 100px #fff
}

.TVInputNewBody input:read-only,.TVInputNewBody textarea:read-only {
    cursor: default
}

.TVInputNewBody textarea {
    overflow-y: auto;
    resize: none
}

.TVInputNewBody.TVInputNewAnimateLabel {
    transition: padding .2s;
    padding: calc(var(--padding-top) + var(--padding-animation)) var(--padding-right) calc(var(--padding-bottom) + var(--padding-animation)) var(--padding-left)
}

.TVInputNewBody.TVInputNewAnimateLabel .TVInputNewLabel {
    font-size: var(--font-size);
    transition: font-size .2s,transform .2s;
    transform: translateY(0)
}

.TVInputNewBody.TVInputNewAnimateLabel.TVFocusAnimateLabel {
    padding: calc(var(--padding-top) + var(--padding-animation)*2) var(--padding-right) var(--padding-bottom) var(--padding-left)
}

.TVInputNewBody.TVInputNewAnimateLabel.TVFocusAnimateLabel .TVInputNewLabel,.TVInputNewLabel {
    font-size: 11px;
    transform: translateY(-20px)
}

.TVInputNewLabel {
    max-width: calc(100% - var(--padding-left) - var(--padding-right));
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: inherit;
    color: #999;
    white-space: nowrap;
    position: absolute
}

.TVInputNewReset {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    width: 40px;
    height: 100%
}

.TVInputNewReset:after {
    font-family: var(--tv-font-theme2);
    font-size: 30px;
    content: "+";
    transform: rotate(45deg);
    font-weight: 300
}

.TVInputNewPrefix {
    margin-right: 3px
}

.TVInputNewSuffix {
    margin-left: 3px
}

.TVStarsControl {
    --active-star-color: #eaa627;
    --star-color: #dde4ed;
    --font-size: 13px;
    display: flex;
    font-size: var(--font-size)
}

.TVStarsControlItem.TVActive:before,.TVStarsControlItem.TVHalfActive:before {
    color: var(--active-star-color)
}

.TVStarsControlItem.TVHalfActive {
    position: relative
}

.TVStarsControlItem.TVHalfActive:before {
    mask-image: linear-gradient(90deg,#000 50%,transparent 0)
}

.TVStarsControlItem.TVHalfActive:after {
    mask-image: linear-gradient(270deg,#000 50%,transparent 0);
    position: absolute;
    top: 0;
    left: 0
}

.TVStarsControlItem.TVHalfActive:after,.TVStarsControlItem:before {
    font-family: TVicons;
    content: "\e90c";
    display: block;
    color: var(--star-color)
}

.TVStarsControl.TVSize-XXS {
    --font-size: 10px
}

.TVStarsControl.TVSize-XS {
    --font-size: 11px
}

.TVStarsControl.TVSize-S {
    --font-size: 12px
}

.TVStarsControl.TVSize-M {
    --font-size: 13px
}

.TVStarsControl.TVSize-L {
    --font-size: 14px
}

.TVStarsControl.TVSize-XL {
    --font-size: 15px
}

.TVStarsControl.TVSize-XXL {
    --font-size: 16px
}

.TVStarsControl.TVSize-XXXL {
    --font-size: 17px
}

.TVStarsControl.TVSize-XXXXL {
    --font-size: 20px
}

.TVStarsControl.TVActiveColorInherit {
    --active-star-color: inherit
}

.TVStarsControl.TVActiveColorWhite {
    --active-star-color: #fff
}

.TVStarsControl.TVActiveColorYellow560 {
    --active-star-color: #fe8a27
}

.TVStarsControl.TVActiveColorYellow570 {
    --active-star-color: #eaa627
}

.TVStarsControl.TVActiveColorYellow600 {
    --active-star-color: #fc0
}

.TVStarsControl.TVActiveColorOrange560 {
    --active-star-color: #fb5e51
}

.TVStarsControl.TVActiveColorRed580 {
    --active-star-color: #ff6856
}

.TVStarsControl.TVActiveColorGray400 {
    --active-star-color: #5c6672
}

.TVStarsControl.TVColorInherit,.TVStarsControl.TVColorWhite {
    --star-color: #fff
}

.TVStarsControl.TVColorGray900 {
    --star-color: #dde4ed
}

.TVStarsControl.TVColorGray950 {
    --star-color: #e8eef0
}

.TVStarsControl.TVStyleTheme1>:not(:last-child) {
    margin-right: 2px
}

.TVStarsControl.TVStyleTheme2>:not(:last-child) {
    margin-right: 4px
}

.TVListSelect {
    height: 100%;
    overflow: auto
}

.TVListSelect.TVPreview {
    visibility: hidden;
    position: relative
}

.TVListSelect.TVPreview:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVListSelectTooltipContent {
    display: flex;
    flex-direction: column
}

.TVTooltipList {
    height: 100%;
    overflow: auto
}

.TVListSelectNotFound {
    font-size: 14px;
    font-weight: 400;
    color: #333;
    padding: 6px 20px
}

.TVListSelectTooltip .TVListSelectTooltipTitle {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    text-transform: uppercase;
    margin: 0 20px
}

.TVListSelectTooltip .TVListSelectTooltipContent {
    padding: 10px 0
}

.TVListSelectTooltip .TVTooltipList {
    min-height: 100px;
    overflow: auto
}

.TVListSelectTooltipPage .TVListSelectTooltipTitle,.TVListSelectTooltipSheet .TVListSelectTooltipTitle {
    font-size: 18px;
    font-weight: 700;
    color: #2b3f5a
}

.TVListSelectTooltipPage .TVListSelectTooltipContent,.TVListSelectTooltipSheet .TVListSelectTooltipContent {
    flex: 1;
    min-height: 0;
    padding: 20px 10px 20px 20px
}

.TVListSelectTooltipPage .TVStyleScroll,.TVListSelectTooltipSheet .TVStyleScroll {
    padding-right: 10px
}

.TVCheckboxListSelectTooltipContent {
    padding: 20px 20px 0;
    display: flex;
    flex-direction: column;
    gap: 20px 0
}

.TVTooltipCheckboxList {
    height: 100%;
    overflow: auto
}

.TVTooltipCheckboxList .TVCheckBox {
    min-height: 20px
}

.TVCheckboxListSelectTooltip .TVCheckboxListSelectTooltipTitle {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    text-transform: uppercase
}

.TVCheckboxListSelectTooltip .TVTooltipCheckboxList {
    min-height: 100px;
    overflow: auto
}

.TVCheckboxListSelectTooltip .TVCheckboxListSelectTooltipSubmit {
    display: flex;
    justify-content: center;
    margin: 20px auto
}

.TVCheckboxListSelectTooltipPage .TVCheckboxListSelectTooltipTitle,.TVCheckboxListSelectTooltipSheet .TVCheckboxListSelectTooltipTitle {
    font-size: 18px;
    font-weight: 700;
    color: #2b3f5a
}

.TVCheckboxListSelectTooltipPage .TVCheckboxListSelectTooltipContent,.TVCheckboxListSelectTooltipSheet .TVCheckboxListSelectTooltipContent {
    flex: 1;
    min-height: 0;
    padding: 20px 10px 0 20px
}

.TVCheckboxListSelectTooltipPage .TVCheckboxListSelectTooltipSubmit,.TVCheckboxListSelectTooltipSheet .TVCheckboxListSelectTooltipSubmit {
    margin: 20px auto
}

.TVCheckboxListSelectTooltipPage .TVStyleScroll,.TVCheckboxListSelectTooltipSheet .TVStyleScroll {
    padding-right: 10px
}

.TVMultyFilter .TVFilterStarsTitle:after {
    content: "класс отеля"
}

.TVMobileMultyFilter .TVMFilterBlock {
    display: block;
    color: #777;
    font-size: 18px;
    font-weight: lighter;
    line-height: normal;
    padding: 15px;
    border-top: 1px solid #ddd;
    margin: 0 6px
}

.TVMobileMultyFilter .TVMFilterBlock .TVLabel {
    color: #777;
    font-size: 10px;
    font-weight: 400;
    text-transform: uppercase;
    width: 22%;
    text-align: right;
    display: inline-block;
    vertical-align: top;
    margin-right: 3%;
    line-height: 11px;
    max-width: 75px
}

.TVMobileMultyFilter .TVMFilterBlock .TVCheckBox,.TVMobileMultyFilter .TVMFilterBlock .TVComboBox,.TVMobileMultyFilter .TVMFilterBlock .TVOptionStars {
    display: inline-block;
    vertical-align: top;
    width: 75%
}

.TVMobileMultyFilter .TVMFilterBlock .TVCheckBox .TVTextBox,.TVMobileMultyFilter .TVMFilterBlock .TVComboBox .TVTextBox,.TVMobileMultyFilter .TVMFilterBlock .TVOptionStars .TVTextBox {
    border: none;
    color: #333;
    font-size: 16px;
    font-weight: 700;
    padding: 0
}

.TVMobileMultyFilter .TVMFilterBlock .TVCheckBox .TVTextBox .TVTextBoxContent,.TVMobileMultyFilter .TVMFilterBlock .TVComboBox .TVTextBox .TVTextBoxContent,.TVMobileMultyFilter .TVMFilterBlock .TVOptionStars .TVTextBox .TVTextBoxContent {
    vertical-align: top;
    color: #333;
    font-size: 16px;
    font-weight: 700;
    padding-left: 10px;
    padding-top: 2px;
    padding-right: 20px;
    position: relative;
    line-height: normal;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.TVMobileMultyFilter .TVMFilterBlock .TVCheckBox .TVTextBox .TVTextBoxSelector,.TVMobileMultyFilter .TVMFilterBlock .TVComboBox .TVTextBox .TVTextBoxSelector,.TVMobileMultyFilter .TVMFilterBlock .TVOptionStars .TVTextBox .TVTextBoxSelector {
    float: none;
    right: 0
}

.TVMobileMultyFilter .TVMFilterBlock .TVCheckBox .TVTextBox .TVTextBoxSelector:after,.TVMobileMultyFilter .TVMFilterBlock .TVComboBox .TVTextBox .TVTextBoxSelector:after,.TVMobileMultyFilter .TVMFilterBlock .TVOptionStars .TVTextBox .TVTextBoxSelector:after {
    font-family: TVicons;
    content: "\e900";
    color: #aaa;
    font-weight: lighter;
    font-size: 20px
}

.TVMobileMultyFilter .TVMFilterBlock .TVFilterStarsTitle:after {
    content: "Категория отеля от"
}

.TVTourCardWindow *,.TVTourCardWindow :after,.TVTourCardWindow :before {
    -webkit-box-sizing: content-box;
    -moz-box-sizing: content-box;
    box-sizing: content-box
}

.TVOrderShareIcon {
    height: 29px;
    width: 28px;
    margin: 0 4px;
    background: url(//tourvisor.ru/module/newform/modules/images/module-sprite.png);
    cursor: pointer;
    border-radius: 28px
}

.TVInvalidInput input,.TVInvalidInput select {
    border-color: red
}

.TVOrderWarningMessage {
    background-color: #fcf7e3;
    border: 1px solid #eee5c4;
    color: #c09953;
    font-size: 14px;
    padding: 15px 25px;
    margin-top: 20px;
    border-radius: 4px;
    line-height: 24px
}

.TVERCommentLabel,.TVERContactsLAbel,.TVERNameLabel {
    text-transform: uppercase;
    font-weight: 300;
    font-size: 12px;
    margin: 12px 0 3px;
    color: #777
}

.TVERNameLabel:after {
    content: "ваше имя"
}

.TVERContactsLAbel:after {
    content: "телефон или e-mail"
}

.TVERCommentLabel:after {
    content: "Кратко опишите суть проблемы"
}

.TVDialogWindow .TVInput {
    overflow: hidden;
    border: 1px solid #ddd;
    padding: 10px;
    background: #fff
}

.TVDialogWindow .TVInput.TVInvalidInput {
    border-color: red
}

.TVDialogWindow input {
    display: block;
    font-weight: 300;
    font-size: 15px;
    color: #000
}

.TVDialogWindow input,.TVDialogWindow textarea {
    width: 100%;
    border: none;
    font-family: var(--tv-font-theme1)
}

.TVDialogWindow textarea {
    padding: 0;
    resize: none;
    height: 45px;
    outline: none
}

.TVDWSendButton {
    padding: 8px 42px;
    background: #ec9214;
    display: inline-block;
    margin: -6px 0 25px 26px;
    color: #fff;
    text-transform: uppercase;
    font-size: 13px;
    font-weight: 300;
    line-height: normal;
    border-radius: 2px;
    cursor: pointer;
    border: 1px solid #db8103
}

.TVDWSendButton:hover {
    background: #f5a02a
}

.TVErrorReport .TVDWSendButton:after {
    content: "отправить"
}

.TVERSuccess .tv_content,.TVERSuccess .TVDWSendButton {
    display: none
}

.TVERSuccess .TVERSuccessMessage {
    padding: 25px
}

.TVERSuccess .TVERSuccessMessage:after {
    content: "Сообщение отправлено."
}

.TVOFCurrencyBYN .TVOrderTourPrice,.TVOFCurrencyBYR .TVOrderTourPrice {
    font-size: 27px;
    height: 27px;
    margin-top: 4px
}

.TVOFCurrencyBYN .TVOrderTourPriceBlock,.TVOFCurrencyBYR .TVOrderTourPriceBlock {
    width: 184px
}

.TVOperTourLink {
    position: absolute;
    top: 30px;
    right: 40px
}

.TVOperTourLink:first-child a {
    padding-right: 10px
}

.TVOperTourLink:first-child a .TVWaiterBG {
    width: 15px;
    left: -30px;
    top: -5px
}

.TVOperTourLink .TVOrderErrorExportCrm {
    color: #e31e22
}

.TVOrderErrorExportCrm {
    color: #e31e22;
    margin-top: 30px
}

.TVOperTourLink a {
    color: #4b90d5;
    font-size: 14px
}

.TVOnlineOrderForm .TVAgreementText:after {
    content: "и выражаю "
}

.TVMobilePanel .TVAgreementWindow {
    padding: 20px
}

.TVButtonHover:hover {
    opacity: .9
}

.TVAreaContentControl {
    display: flex;
    flex-direction: column
}

.TVAreaContentControl .TVAreaContentRating {
    display: inline;
    margin-right: 10px;
    padding-left: 5px;
    padding-right: 5px;
    border-radius: 2px;
    font-weight: 700;
    color: #fff
}

.TVAreaContentControl .TVAreaContentRating.TVRatingBad {
    background-color: #e07a55
}

.TVAreaContentControl .TVAreaContentRating.TVRatingNormal {
    background-color: #e6b661
}

.TVAreaContentControl .TVAreaContentRating.TVRatingGood {
    background-color: #5cb85c
}

.TVAreaContentControl .TVAreaContentRating.TVRatingExcellent {
    background-color: #4bdc4b
}

.TVAreaContentControl .TVAreaContentText {
    margin: 0 20px;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    line-height: 18px;
    color: #777
}

.TVAreaContentControl .TVAreaContentText:after {
    display: inline
}

.TVAreaContentControl .TVAreaContentText.TVAreaContentEmpty:after {
    content: "Описание отеля временно отсутствует. Ведется добавление информации."
}

.TVAreaContentControl.TVPreview .TVAreaDescriptionContainer,.TVAreaContentControl.TVPreview .TVAreaGalleryContainer {
    visibility: hidden;
    position: relative
}

.TVAreaContentControl.TVPreview .TVAreaDescriptionContainer:before,.TVAreaContentControl.TVPreview .TVAreaGalleryContainer:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVAreaContentControl.TVPreview .TVAreaDescriptionContainer {
    padding: 0 20px
}

.TVAreaMinPriceControl {
    display: flex;
    justify-content: space-between;
    align-items: flex-start
}

.TVAreaMinPriceControl .TVAreaMinPriceTitle {
    display: flex;
    align-items: center;
    color: #777
}

.TVAreaMinPriceControl .TVAreaMinPriceTitle:before {
    font-family: TVicons;
    content: "\e968";
    font-size: 22px;
    line-height: 26px;
    margin-right: 5px
}

.TVAreaMinPriceControl .TVAreaMinPriceTitle:after {
    content: "Цены на туры";
    text-transform: uppercase;
    font-size: 10px
}

.TVAreaMinPriceControl .TVAreaMinPriceValueContainer {
    display: flex;
    flex-direction: column;
    align-items: flex-end
}

.TVAreaMinPriceControl .TVAreaMinPriceValueWrap {
    display: flex;
    align-items: baseline;
    font-size: 10px;
    text-transform: uppercase;
    color: #999
}

.TVAreaMinPriceControl .TVAreaMinPriceValueWrap:before {
    content: "От";
    margin-right: 5px;
    font-size: 10px
}

.TVAreaMinPriceControl .TVAreaMinPriceValue {
    color: #333;
    margin-right: 5px;
    font-size: 16px;
    font-weight: 700
}

.TVAreaMinPriceControl .TVAreaMinPriceSuffix {
    display: flex
}

.TVAreaMinPriceControl .TVPriceHuman:before {
    content: "/";
    margin-right: 3px
}

.TVAreaMinPriceControl .TVPriceHuman:after {
    content: "Чел"
}

.TVAreaMinPriceControl .TVAreaMinPriceSearchTime {
    font-size: 10px;
    color: #999;
    text-transform: lowercase
}

.TVAreaMinPriceControl .TVAreaMinPriceSearchTime:before {
    content: "Найдено";
    margin-right: 3px
}

.TVAreaMinPriceControl .TVAreaMinPriceSearchTime:after {
    content: "Назад";
    margin-left: 3px
}

.TVAreaMinPriceControl .TVAreaMinPriceWaiter {
    min-width: 30px
}

.TVAreaMinPriceControl .TVWaiterBG {
    min-height: 15px
}

.TVCreateHotelReview {
    margin: 20px;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    color: #777
}

.TVCreateHotelReview .TVReviewStarsTitle:before {
    content: "Оцените отель"
}

.TVCreateHotelReview .TVRestTimeTitle,.TVCreateHotelReview .TVReviewStarsTitle,.TVCreateHotelReview .TVReviewTitle {
    padding: 15px 0 5px
}

.TVCreateHotelReview .TVReviewStars {
    height: 50px;
    padding: 0 14px;
    display: flex;
    align-items: center;
    border: 1px solid #ddd;
    border-radius: 3px
}

.TVCreateHotelReview .TVReviewTitle:before {
    content: "Ваш отзыв об отеле"
}

.TVCreateHotelReview textarea {
    resize: none;
    outline: none;
    width: 100%;
    min-width: 280px;
    height: 110px;
    padding: 10px 20px 10px 10px;
    box-sizing: border-box;
    border: 1px solid #ddd;
    border-radius: 3px;
    line-height: 14px
}

.TVCreateHotelReview .TVRestTimeTitle:before {
    content: "Время отдыха"
}

.TVCreateHotelReview .TVRestTime {
    display: flex;
    justify-content: space-between
}

.TVCreateHotelReview .TVRestTime .TVRestTimeMonth {
    width: 57%
}

.TVCreateHotelReview .TVRestTime .TVRestTimeYear {
    width: 36%
}

.TVCreateHotelReview input {
    margin: 20px 0;
    border: 1px solid #ddd;
    border-radius: 3px;
    padding: 16px 19px;
    width: 100%;
    box-sizing: border-box;
    font-family: var(--tv-font-theme2);
    font-size: 13px
}

.TVCreateHotelReview input::placeholder {
    color: #999
}

.TVCreateHotelReview input:focus::placeholder {
    color: transparent
}

.TVCreateHotelReview .TVSendReviewButton {
    width: 100%;
    height: 50px;
    background-color: #5cb85c;
    border-radius: 4px;
    cursor: pointer;
    margin-bottom: 20px
}

.TVCreateHotelReview .TVSendReviewButton:after {
    text-transform: uppercase;
    content: "Добавить отзыв";
    color: #fff;
    font-size: 16px;
    text-align: center;
    line-height: 50px;
    box-sizing: border-box;
    width: 100%;
    display: block
}

.TVCreateHotelReview .TVComboBox .TVTextBox {
    background: none;
    height: 50px;
    box-sizing: border-box;
    padding: 0 0 0 8px
}

.TVCreateHotelReview .TVComboBox .TVTextBox .TVTextBoxContent {
    line-height: 50px;
    margin-right: 30px
}

.TVCreateHotelReview .TVComboBox .TVTextBox .TVTextBoxSelector {
    margin-top: 0
}

.TVCreateHotelReview .TVComboBox .TVTextBox .TVTextBoxSelector:after {
    line-height: 50px
}

.TVCreateHotelReview .TVResultSend:after {
    content: "Ваш отзыв успешно добавлен! Он будет опубликован после проверки."
}

.TVCustomerActionsForm,.TVCustomerContactsForm {
    display: grid;
    gap: 8px
}

.TVUserFormButtonsBlock {
    margin-top: 9px;
    display: flex
}

.TVUserFormButtonsBlock>:not(:first-child) {
    margin-left: 15px
}

.TVUserFormCommentButton,.TVUserFormPromocodeButton {
    flex: 1
}

.TVCustomerOrderControl .TVSendingBuyButton:before {
    content: "Перейти к оплате"
}

.TVCustomerOrderControl .TVSendingBuyInCreditButton:before {
    content: "Купить в кредит"
}

.TVEmptyReviewsMessage {
    padding: 20px 0;
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    font-size: 14px;
    line-height: 19px;
    color: #777
}

.TVEmptyReviewsMessage:before {
    content: "По данному отелю пока нет отзывов, Вы можете оставить свое мнение об отеле"
}

.TVEmptyReviewsMessage:after {
    content: "."
}

.TVEmptyReviewsMessage .TVReviewsService {
    margin-left: 5px;
    display: inline
}

.TVEmptyReviewsMessage .TVReviewsService:before {
    content: "или почитать отзывы"
}

.TVEmptyReviewsMessage .TVReviewsServices {
    margin-left: 5px;
    display: inline
}

.TVEmptyReviewsMessage .TVReviewsServices:before {
    content: "или почитать отзывы"
}

.TVEmptyReviewsMessage .TVReviewsServices .TVReviewsServicesSeparator:before {
    content: ","
}

.TVEmptyReviewsMessage .TVReviewsTophotels,.TVEmptyReviewsMessage .TVReviewsTripadvisor {
    color: #4b90d5;
    text-decoration: underline;
    cursor: pointer
}

.TVEmptyReviewsMessage .TVReviewsTophotels:before,.TVEmptyReviewsMessage .TVReviewsTripadvisor:before {
    margin-left: 5px
}

.TVEmptyReviewsMessage .TVReviewsTophotels:before {
    content: "TopHotels"
}

.TVEmptyReviewsMessage .TVReviewsTripadvisor:before {
    content: "TripAdvisor"
}

.TVExcursionTourControl {
    font-family: var(--tv-font-theme2);
    color: #777;
    font-size: 14px
}

.TVExcursionTourControl .TVExcursionTourText {
    line-height: 24px
}

.TVExcursionTourControl .TVExcursionTourSlider {
    margin-top: 24px
}

.TVExcursionTourControl .TVExcursionTourSlider .TVHotelGallerySlider {
    height: 392px
}

.TVExcursionTourControl .TVExcursionTourSlider .TVMorePhotoBtn {
    display: none
}

.TVExcursionTourControl .TVExcursionTourDescription {
    line-height: 24px;
    margin-top: 30px;
    max-height: 650px;
    overflow: hidden;
    overflow-y: auto;
    padding-right: 10px
}

.TVFlightDetailDropPanel {
    margin-top: 0;
    overflow: hidden;
    width: 344px
}

.TVFlightDetailDropPanel .tv_content {
    margin: 0
}

.TVFlightDetailDropPanel .TVClosePopUp {
    top: 8px;
    right: 8px
}

.TVFlightDetailDropPanel .TVFlightDetailListControl {
    padding: 24px 16px
}

.TVFlightDetailDurationTime {
    margin: 25px 0;
    padding: 11px;
    background-color: #edf2f5;
    border-radius: 2px;
    font-size: 13px;
    line-height: 18px;
    text-align: center;
    color: #5c6672
}

.TVFlightDetailDurationTime:before {
    margin-right: 5px;
    content: "Пересадка"
}

.TVFlightDetailRow {
    display: flex;
    align-items: center
}

.TVFlightDetailRow:nth-child(2) {
    margin-top: 10px
}

.TVFlightDetailRow:nth-child(3) {
    margin-top: 25px
}

.TVFlightDetailAirlineLogo {
    width: 24px;
    height: 24px;
    background-size: cover;
    background-repeat: no-repeat;
    margin-left: 35px;
    border-radius: 30px
}

.TVFlightDetailAirlineName {
    margin-left: 10px;
    font-size: 13px;
    color: #5c6672
}

.TVFlightDetailBaggage,.TVFlightDetailNumber {
    display: flex;
    align-items: center;
    line-height: 1;
    font-size: 13px;
    color: #5c6672
}

.TVFlightDetailBaggage:before,.TVFlightDetailNumber:before {
    width: 24px;
    height: 21px;
    margin-right: 5px;
    font-size: 20px;
    color: #c4cfd7
}

.TVFlightDetailNumber {
    width: 80px;
    height: 24px;
    overflow: hidden
}

.TVFlightDetailNumber:before {
    font-family: TVicons;
    content: "\e92e"
}

.TVFlightDetailType {
    box-sizing: border-box;
    width: 80px;
    height: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #edf2f5;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    text-align: center;
    color: #5c6672
}

.TVFlightDetailBaggage {
    height: 21px;
    margin-left: 35px
}

.TVFlightDetailBaggage:before {
    margin-right: 10px;
    content: "";
    background-image: url(https://tourvisor.ru/pics/fly/baggage.svg);
    background-repeat: no-repeat
}

.TVFlightDetailPathBlock {
    margin-top: 9px
}

.TVFlightDetailEnd,.TVFlightDetailStart {
    width: 20px;
    height: 20px;
    border-radius: 20px;
    flex-basis: 20px;
    box-sizing: border-box;
    background-color: #e8ecef;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVFlightDetailEnd:before,.TVFlightDetailStart:before {
    content: "";
    display: block;
    width: 12px;
    height: 12px;
    border-radius: 12px;
    border: 1px solid #abb5bc;
    box-sizing: border-box;
    background-color: #abb5bc
}

.TVFlightDetailEnd:before {
    background-color: #fff
}

.TVFlightDetailLine {
    height: calc(100% - 10px);
    margin-left: 9px;
    border-left: 2px dashed #c4cfd7
}

.TVFlightDetailTimeCityBlock {
    position: relative
}

.TVFlightDetailTimeCity {
    display: flex
}

.TVFlightDetailTimeCity:not(:last-child) .TVFlightDetailCityBlock {
    margin-bottom: 11px
}

.TVFlightDetailTimeBlock {
    width: 60px;
    min-width: 60px;
    text-align: end
}

.TVFlightDetailArrivalTime,.TVFlightDetailDepartureTime {
    font-size: 14px;
    font-weight: 700;
    line-height: 19px;
    color: #5c6672
}

.TVFlightDetailArrivalDate,.TVFlightDetailDepartureDate {
    font-size: 13px;
    line-height: 18px;
    color: #5c6672
}

.TVFlightDetailArrivalTime {
    margin-top: auto
}

.TVFlightDetailCityBlock {
    margin-left: 35px
}

.TVFlightDetailArrival,.TVFlightDetailDeparture {
    font-size: 14px;
    font-weight: 700;
    line-height: 19px;
    color: #333
}

.TVFlightDetailDuration,.TVFlightDetailPortId {
    font-size: 13px;
    line-height: 18px;
    color: #5c6672
}

.TVFlightDetailDuration {
    margin-top: 11px
}

.TVFlightDetailDuration:before {
    margin-right: 5px;
    content: "Перелет"
}

.TVFlightInfoControl .TVFlightInfoTime {
    font-size: 13px;
    font-weight: 600;
    color: #333
}

.TVFlightInfoControl .TVFlightInfoBlock {
    font-size: 10px;
    color: #5c6672;
    text-transform: uppercase
}

.TVFlightInfoControl .TVDirectFlight .TVFlightConnectionInfo:before {
    content: "Прямой"
}

.TVFlightInfoControl .TVOneConnection .TVFlightConnectionInfo {
    color: #b94a48
}

.TVFlightInfoControl .TVOneConnection .TVFlightConnectionInfo:before {
    content: "Пересадка ("
}

.TVFlightInfoControl .TVOneConnection .TVFlightConnectionInfo:after {
    content: ")"
}

.TVFlightInfoControl .TVConnections .TVFlightConnectionInfo {
    color: #b94a48
}

.TVFlightInfoControl .TVConnections .TVFlightConnectionInfo:before {
    content: "Пересадки: "
}

.TVFlightInfoControl .TVFlightInfoBlock {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap
}

.TVFlightInfoControl .TVFlightInfoBlock :first-child:after {
    content: ",";
    margin-right: 3px
}

.TVFlightSelectionControl {
    padding: 15px 0;
    display: flex;
    justify-content: space-between
}

.TVFlightSelectionControl .TVFlightSelectionBlock {
    flex-basis: 25%
}

.TVFlightSelectionControl .TVFlightSelectionBlock:last-child {
    flex-basis: 45%;
    display: inline-flex;
    align-self: center;
    justify-content: space-between
}

.TVFlightSelectionControl .TVFlightSelectionAirlines {
    display: flex;
    align-items: center;
    flex-basis: 53%
}

.TVFlightSelectionControl .TVFlightSelectionButtonBlock {
    flex-basis: 35%
}

.TVFlightSelectionControl .TVAirline {
    width: 24px;
    height: 24px;
    background-size: cover;
    background-repeat: no-repeat;
    border-radius: 30px;
    margin-right: 5px
}

.TVFlightSelectionControl .TVFlightSelectionButton {
    font-size: 10px;
    text-transform: uppercase;
    border-radius: 20px;
    cursor: pointer;
    color: #5c6672;
    background-color: #edf2f5;
    width: 88px;
    padding: 8px 0;
    box-sizing: border-box;
    text-align: center;
    float: right
}

.TVFlightSelectionControl .TVFlightSelectionButton:before {
    content: "Выбрать"
}

.TVFlightSelectionControl .TVFlightSelectionButton.TVPriceIncrease {
    color: #c49f5d;
    background-color: #fcf7e3
}

.TVFlightSelectionControl .TVFlightSelectionButton.TVPriceIncrease:before {
    content: "+";
    margin-right: 3px
}

.TVFlightSelectionControl .TVFlightSelectionButton.TVPriceReduction {
    color: #468847;
    background-color: #e0f0d8
}

.TVFlightSelectionControl .TVFlightSelectionButton.TVPriceReduction:before {
    content: "-";
    margin-right: 3px
}

.TVFlightSelectionControl .TVFlightSelectionButton.TVSelectionButton:after {
    content: ""
}

.TVFlightSelectionBlock.TVAnyFlight {
    display: flex;
    align-items: center;
    font-size: 13px;
    font-weight: 600;
    color: #333
}

.TVFlightSelectionListTitle {
    border-bottom: 1px dashed #ddd;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: -.3px;
    color: #5c6672;
    display: flex;
    justify-content: space-between
}

.TVFlightSelectionListTitle .TVFlightSelectionListTitleForward {
    flex-basis: 25%
}

.TVFlightSelectionListTitle .TVFlightSelectionListTitleForward:before {
    content: "Туда"
}

.TVFlightSelectionListTitle .TVFlightSelectionListTitleReversed {
    flex-basis: 25%
}

.TVFlightSelectionListTitle .TVFlightSelectionListTitleReversed:before {
    content: "Обратно"
}

.TVFlightSelectionListTitle .TVFlightSelectionListTitleAirline {
    flex-basis: 45%
}

.TVFlightSelectionListTitle .TVFlightSelectionListTitleAirline:before {
    content: "Авиакомпания"
}

.TVFlightSelectionList .TVFlightSelectionControl {
    border-bottom: 1px dashed #ddd
}

.TVFlightSelectionList .TVMobileFlightSelectionControl:not(:last-child) {
    margin-bottom: 10px
}

.TVFlightSelectionListWaiter {
    margin: 10px auto 5px
}

.TVFlightSelectionListMWaiter {
    margin: 5px auto 20px
}

.TVMobileFlightInfoControl {
    display: flex;
    flex-direction: column;
    color: #333;
    font-size: 13px
}

.TVMobileFlightInfoControl .TVMobileFlightInfoBlock {
    display: flex;
    justify-content: space-between
}

.TVMobileFlightInfoControl .TVMobileFlightInfoBlock :first-child {
    margin-right: 5px
}

.TVMobileFlightInfoControl .TVMobileFlightInfoTime {
    font-weight: 700;
    font-size: 14px
}

.TVMobileFlightInfoControl .TVMobileFlightDuration,.TVMobileFlightInfoControl .TVMobileFlightInfoText {
    color: #5c6672;
    opacity: .7
}

.TVMobileFlightInfoControl .TVMobileFlightDuration {
    white-space: nowrap
}

.TVMobileFlightInfoControl .TVDirectFlight:before {
    content: "Прямой"
}

.TVMobileFlightInfoControl .TVOneConnection {
    color: #b94a48
}

.TVMobileFlightInfoControl .TVOneConnection:before {
    content: "Пересадка ("
}

.TVMobileFlightInfoControl .TVOneConnection:after {
    content: ")"
}

.TVMobileFlightInfoControl .TVConnections {
    color: #b94a48
}

.TVMobileFlightInfoControl .TVConnections:before {
    content: "Пересадки: "
}

.TVMobileFlightSelectionControl {
    padding: 15px 20px;
    box-shadow: 0 0 20px rgba(0,0,0,.15);
    border-radius: 10px;
    background: #fff
}

.TVMobileFlightSelectionControl .TVMobileFlightSelectionBlock {
    margin-bottom: 10px
}

.TVMobileFlightSelectionControl .TVMobileFlightSelectionBlock:last-child {
    margin: 15px 0 0;
    display: flex;
    justify-content: space-between
}

.TVMobileFlightSelectionControl .TVMobileFlightSelectionAirlines {
    display: flex;
    align-items: center
}

.TVMobileFlightSelectionControl .TVAirline {
    width: 24px;
    height: 24px;
    background-size: cover;
    background-repeat: no-repeat;
    border-radius: 30px;
    margin-right: 5px
}

.TVMobileFlightSelectionControl .TVMobileFlightSelectionButton {
    font-size: 10px;
    text-transform: uppercase;
    padding: 8px 15px;
    border-radius: 20px;
    cursor: pointer;
    color: #5c6672;
    background-color: #edf2f5
}

.TVMobileFlightSelectionControl .TVMobileFlightSelectionButton:before {
    content: "Выбрать"
}

.TVMobileFlightSelectionControl .TVMobileFlightSelectionButton.TVPriceIncrease {
    color: #c49f5d;
    background-color: #fcf7e3
}

.TVMobileFlightSelectionControl .TVMobileFlightSelectionButton.TVPriceIncrease:before {
    content: "+";
    margin-right: 3px
}

.TVMobileFlightSelectionControl .TVMobileFlightSelectionButton.TVPriceReduction {
    color: #468847;
    background-color: #e0f0d8
}

.TVMobileFlightSelectionControl .TVMobileFlightSelectionButton.TVPriceReduction:before {
    content: "-";
    margin-right: 3px
}

.TVMobileFlightSelectionControl .TVMobileFlightSelectionButton.TVSelectionButton:after {
    content: ""
}

.TVMobileFlightSelectionBlock.TVAnyFlight {
    font-size: 14px;
    font-weight: 700;
    color: #333
}

.TVHotelMobileVideoButton {
    cursor: pointer;
    background: #edf2f5;
    padding: 10px 15px 10px 20px;
    box-sizing: border-box;
    font-weight: 600;
    font-size: 10px;
    color: #5c6672;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    justify-content: space-between
}

.TVHotelMobileVideoButton:after {
    font-family: TVicons;
    content: "\e90a";
    background: #fff;
    color: #5c6672;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    font-size: 14px;
    border-radius: 50%
}

.TVHotelMobileVideoButton.TVPreview {
    display: none
}

.TVHotelDescriptionView .TVDescriptionContainer {
    line-height: 24px;
    font-size: 14px;
    margin-top: 30px
}

.TVHotelDescriptionView .TVDescriptionItem {
    width: calc(100% - 200px);
    page-break-inside: avoid;
    border-top: 1px solid #ddd;
    padding: 15px 0 15px 200px;
    color: #5c6672
}

.TVHotelDescriptionView .TVDescriptionItem:before {
    margin: 0;
    padding: 0;
    position: absolute;
    left: 30px;
    width: auto;
    border-bottom: none
}

.TVHotelDescriptionView .TVUpButton {
    margin-top: 10px;
    text-transform: unset
}

.TVHotelDescriptionSlider {
    margin-top: 24px
}

.TVHotelDescriptionSlider .TVHotelGallerySlider {
    height: 392px
}

@-moz-document url-prefix() {
    .TVHotelDescriptionView .TVDescriptionItem {
        display: inline-block
    }
}

.TVHotelDescriptionText {
    font-family: var(--tv-font-theme2);
    font-size: 14px;
    line-height: 24px;
    color: #5c6672
}

.TVHotelDescriptionControl {
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    color: #777
}

.TVHotelDescriptionControl .TVDescriptionData:before {
    font-weight: 700;
    color: #333
}

.TVHotelDescriptionControl .TVDescriptionLinkData {
    color: #185584;
    border-bottom: 1px dashed;
    cursor: pointer;
    position: relative;
    text-transform: none;
    text-decoration: none
}

.TVHotelDescriptionControl ul {
    margin: 0;
    padding: 0 0 0 20px
}

.TVHotelDescriptionControl ul li {
    display: block;
    position: relative;
    line-height: 21px
}

.TVHotelDescriptionControl ul li:before {
    font-family: TVicons;
    content: "\e90b";
    position: absolute;
    left: -17px;
    font-size: 10px;
    color: #5cb85b
}

.TVHotelDescriptionControl .TVHotelGeneralInformation:before {
    content: "Общая информация"
}

.TVHotelDescriptionControl .TVHotelTerritory:before {
    content: "Территория отеля"
}

.TVHotelDescriptionControl .TVHotelInRoom:before {
    content: "В номере"
}

.TVHotelDescriptionControl .TVHotelRoomTypes:before {
    content: "Типы номеров"
}

.TVHotelDescriptionControl .TVHotelChild:before {
    content: "Для детей"
}

.TVHotelDescriptionControl .TVHotelServices:before {
    content: "Услуги"
}

.TVHotelDescriptionControl .TVHotelServiceFree:before {
    content: "Бесплатные услуги"
}

.TVHotelDescriptionControl .TVHotelServicePay:before {
    content: "Платные услуги"
}

.TVHotelDescriptionControl .TVHotelAnimation:before {
    content: "Развлечения в отеле"
}

.TVHotelDescriptionControl .TVHotelBeach:before {
    content: "Пляж"
}

.TVHotelDescriptionControl .TVHotelMeal:before {
    content: "Питание"
}

.TVHotelDescriptionControl .TVHotelMealTypes:before {
    content: "Концепция питания"
}

.TVHotelDescriptionControl .TVHotelBuild:before {
    content: "Основан: "
}

.TVHotelDescriptionControl .TVHotelRepair:before {
    content: "Последняя реновация: "
}

.TVHotelDescriptionControl .TVHotelPlacement:before {
    content: "Расположение: "
}

.TVHotelDescriptionControl .TVHotelPhone:before {
    content: "Телефон: "
}

.TVHotelDescriptionControl .TVHotelSite {
    word-break: break-all
}

.TVHotelDescriptionControl .TVHotelSite:before {
    content: "Сайт: "
}

.TVHotelDescriptionControl .TVHotelSquare:before {
    content: "Площадь: "
}

.TVHotelDescriptionControl .TVHotelNode:before {
    content: "Примечание: "
}

.TVHotelDescriptionControl .TVHotelAddress:before {
    content: "Адрес: "
}

.TVHotelDescriptionControl .TVHotelRegistry:before {
    content: "Реестровая запись: "
}

.TVDescriptionItem {
    color: #777;
    font-weight: 400;
    text-transform: none
}

.TVDescriptionItem:before {
    width: 100%;
    display: block;
    margin: 15px 0 5px;
    padding: 5px 0;
    border-bottom: 1px solid #ddd;
    font-weight: 700;
    text-align: left;
    color: #333
}

.TVHotelGalleryControl {
    width: 100%;
    height: 100%;
    display: flex
}

.TVHotelGallerySlider {
    width: 570px;
    margin-right: 24px
}

.TVHotelGallerySlider .TVPhotoSlider {
    background: #fff;
    border-radius: 5px
}

.TVHotelGallerySlider .TVPhotoSlider .TVSNavLeft,.TVHotelGallerySlider .TVPhotoSlider .TVSNavRight {
    border-bottom-right-radius: 5px;
    border-top-right-radius: 5px
}

.TVHotelGalleryRightBlock {
    width: 296px;
    display: flex;
    flex-direction: column
}

.TVHotelRatingBlock {
    display: flex;
    background-color: #edf2f5;
    border-radius: 5px;
    margin-bottom: 14px
}

.TVHotelRatingBlock.TVRatingBad .TVHotelScoreBox:before {
    content: "Рейтинг отеля"
}

.TVHotelRatingBlock.TVRatingNormal .TVHotelScoreBox:before {
    content: "Нормально"
}

.TVHotelRatingBlock.TVRatingGood .TVHotelScoreBox:before {
    content: "Хорошо"
}

.TVHotelRatingBlock.TVRatingExcellent .TVHotelScoreBox:before {
    content: "Отлично"
}

.TVHotelRatingBlock.TVReviewsDisabled .TVHotelScoreBox .TVHotelRatingText:before {
    content: "Оценка на основе отзывов"
}

.TVHotelRatingBlock.TVReviewsDisabled .TVHotelScoreBox .TVHotelRatingReviews {
    display: none
}

.TVHotelRatingBox {
    box-sizing: border-box;
    width: 70px;
    position: relative;
    background-color: #5c6672;
    border-radius: 5px 0 0 5px;
    color: #fff;
    padding: 12px 17px;
    font-size: 25px;
    font-weight: 700;
    line-height: 34px
}

.TVHotelRatingBox:after {
    content: " ";
    border: 10px solid transparent;
    border-left-color: #5c6672;
    position: absolute;
    right: -20px;
    top: 50%;
    transform: translateY(-50%)
}

.TVHotelScoreBox {
    box-sizing: border-box;
    width: calc(100% - 70px);
    padding: 9px 22px;
    border-radius: 0 5px 5px 0
}

.TVHotelScoreBox:before {
    font-size: 18px;
    font-weight: 700;
    line-height: 24px;
    color: #5c6672
}

.TVHotelRatingText {
    font-size: 10px;
    line-height: 14px;
    color: #5c6672;
    text-transform: uppercase
}

.TVHotelRatingText:before {
    content: "Оценка по "
}

.TVHotelRatingReviews {
    display: inline-block;
    text-decoration: underline;
    cursor: pointer;
    color: #4b90d5
}

.TVHotelRatingReviews:after {
    content: " Отзывам"
}

.TVHotelRatingReviews.TVSingle:after {
    content: " Отзыву"
}

.TVHotelRatingReviews:visited {
    color: #777
}

.TVHotelGalleryMorePhotoBtn {
    box-sizing: border-box;
    width: 100%;
    margin-top: 14px;
    padding: 11px;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    text-align: center;
    background-color: #edf2f5;
    color: #5c6672;
    border-radius: 50px;
    cursor: pointer
}

.TVHotelGalleryMorePhotoBtn:before {
    content: "Показать больше фото"
}

.TVHotelMapView {
    position: relative
}

.TVHotelMapView .TVSRGoogleLink {
    right: 233px
}

.TVHotelMapView .TVSRGoogleLink:before {
    vertical-align: middle;
    margin-top: 0;
    margin-right: 5px
}

.TVMapButton {
    padding: 10px 18px;
    background-color: #edf2f5;
    display: flex;
    align-items: center;
    border-radius: 50px;
    position: absolute;
    top: 17px;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    line-height: 18px;
    color: #5c6672;
    text-decoration: none
}

.TVYandexLink {
    right: 17px
}

.TVYandexLink:after {
    content: "открыть на Яндекс Картах"
}

.TVMapContainer {
    width: 100%;
    height: 650px;
    border-radius: 5px;
    overflow: hidden
}

.TVHotelMapControl .TVHotelMapHotelTitle {
    padding: 20px 20px 10px
}

.TVHotelMapControl .TVHotelMapRating {
    display: inline;
    margin-right: 10px;
    padding-left: 5px;
    padding-right: 5px;
    background-color: #5cb85c;
    border-radius: 2px;
    font-weight: 700;
    color: #fff
}

.TVHotelMapControl .TVHotelMapButtons {
    padding: 0 20px;
    display: flex;
    justify-content: space-between
}

.TVHotelMapControl .TVMobileResultBtn {
    width: 20%
}

.TVHotelMapControl .TVMobileResultBtn.TVHotelMapCountry:after,.TVHotelMapControl .TVMobileResultBtn.TVHotelMapHotel:after,.TVHotelMapControl .TVMobileResultBtn.TVHotelMapResort:after {
    display: block
}

.TVHotelMapControl .TVMobileResultBtn.TVHotelMapCountry:after {
    content: "Страна"
}

.TVHotelMapControl .TVMobileResultBtn.TVHotelMapResort:after {
    content: "Курорт"
}

.TVHotelMapControl .TVMobileResultBtn.TVHotelMapHotel:after {
    content: "Отель"
}

.TVHotelMapControl .TVHotelMapContainer {
    margin-top: 20px;
    width: 100%;
    min-height: 200px;
    position: relative;
    overflow: hidden
}

.TVHotelMapControl.TVHotelMapFullPage {
    height: 100vh
}

.TVMobilePanelBody .TVHotelMapControl {
    height: calc(100vh - 60px)
}

.TVHotelContentButtons {
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap
}

.TVHotelContentButtons .TVMobileResultBtn {
    width: 20%
}

.TVMobileResultBtn.TVHotelContentDescription:after,.TVMobileResultBtn.TVHotelContentExcoursion:after,.TVMobileResultBtn.TVHotelContentMap:after,.TVMobileResultBtn.TVHotelContentReviews:after {
    display: block;
    text-transform: uppercase
}

.TVMobileResultBtn.TVHotelContentExcoursion:after {
    content: "Программа"
}

.TVMobileResultBtn.TVHotelContentDescription:after {
    content: "Об отеле"
}

.TVMobileResultBtn.TVHotelContentReviews:after {
    content: "Отзывы"
}

.TVMobileResultBtn.TVHotelContentMap:after {
    content: "На карте"
}

.TVMobilePanel .TVMobileResultBtn {
    color: #5c6672;
    background-color: #edf2f5;
    border: none;
    font-weight: 600;
    padding: 10px 16px;
    line-height: 10px
}

.TVHotelReviewsAdd:before {
    font-family: TVicons;
    content: "\e913";
    margin-right: 9px;
    font-size: 18px
}

.TVHotelReviewsAdd:after {
    content: "Добавить отзыв"
}

.TVHotelReviewsMore:after {
    content: "Показать еще"
}

.TVHotelReviewsTophotels,.TVHotelReviewsTourvisor,.TVHotelReviewsTripadvisor {
    display: block;
    text-decoration: none
}

.TVHotelReviewsTophotels:after,.TVHotelReviewsTourvisor:after,.TVHotelReviewsTripadvisor:after {
    margin-left: 5px;
    font-weight: 700
}

.TVHotelReviewsTophotels:before,.TVHotelReviewsTourvisor:before,.TVHotelReviewsTripadvisor:before {
    content: "Отзывы"
}

.TVHotelReviewsTophotels.TVHotelReviewsLink:before,.TVHotelReviewsTourvisor.TVHotelReviewsLink:before,.TVHotelReviewsTripadvisor.TVHotelReviewsLink:before {
    content: "Читать на"
}

.TVHotelReviewsTourvisor:after {
    content: "Tourvisor"
}

.TVHotelReviewsTophotels:after {
    content: "TopHotels"
}

.TVHotelReviewsTripadvisor:after {
    content: "TripAdvisor"
}

.TVHotelReviewsAdd,.TVHotelReviewsMore,.TVHotelReviewsTophotels,.TVHotelReviewsTourvisor,.TVHotelReviewsTripadvisor {
    box-sizing: border-box;
    padding: 11px;
    font-size: 13px;
    line-height: 18px;
    text-align: center;
    white-space: nowrap;
    border-radius: 50px;
    background-color: #edf2f5;
    color: #5c6672;
    cursor: pointer
}

.TVHotelReviewsAdd {
    display: flex;
    justify-content: center;
    background-color: #5cb85c;
    color: #fff
}

.TVHotelReviewsTopButtons {
    margin-bottom: 20px
}

.TVHotelReviewsTopButtons.TVOverflow-scroll {
    -ms-overflow-style: none;
    scrollbar-width: none;
    overflow-x: auto
}

.TVHotelReviewsTopButtons.TVOverflow-scroll::-webkit-scrollbar {
    display: none
}

.TVAgencyOrderActionsControl {
    --actions-gap-size: 40px;
    --title-gap-size: 35px
}

.TVAgencyOrderActionsControl .TVAgencyOrderActionsHeader {
    margin-bottom: var(--title-gap-size)
}

.TVAgencyOrderActionsControl.TVAxisDirection-Row .TVAgencyOrderActionsContent {
    display: flex;
    flex-wrap: wrap
}

.TVAgencyOrderActionsControl.TVAxisDirection-Row .TVAgencyOrderAction {
    flex: 1 0 calc(50% - 10px)
}

.TVAgencyOrderActionsControl.TVAxisDirection-Row .TVAgencyOrderAction:not(:first-child) {
    margin-left: var(--actions-gap-size)
}

.TVAgencyOrderActionsControl.TVAxisDirection-Column .TVAgencyOrderAction:not(:last-child) {
    margin-bottom: var(--actions-gap-size)
}

.TVAgencyOrderActionsControl .TVAgencyOrderAction {
    display: flex;
    align-items: center
}

.TVAgencyOrderActionsControl .TVAgencyOrderActionDescription {
    line-height: 18px;
    font-size: 13px;
    margin-top: -4px;
    margin-left: 30px
}

.TVAgencyOrderControl {
    color: #5c6672;
    background-color: #edf2f5
}

.TVAgencyOrderControl.TVNoActionsView .TVAgencyOrderBackBtn:after {
    content: "Вернуться назад"
}

.TVManagerOrderAction {
    display: flex;
    align-items: center
}

.TVManagerOrderActionDescription {
    line-height: 18px;
    font-size: 13px;
    margin-top: -4px;
    margin-left: 30px
}

.TVManagerOrderActionsControl {
    --actions-gap-size: 40px;
    --title-gap-size: 35px
}

.TVManagerOrderActionsHeader {
    margin-bottom: var(--title-gap-size)
}

.TVManagerOrderActionsTourLink {
    color: #1482a2;
    text-decoration: underline;
    cursor: pointer;
    margin-left: 3px
}

.TVManagerOrderAction:not(:last-child) {
    margin-bottom: var(--actions-gap-size)
}

.TVManagerOrderControl {
    color: #5c6672;
    background-color: #edf2f5
}

.TVManagerOrderControl.TVNoActionsView .TVManagerOrderBackBtn:after {
    content: "Назад к списку функции"
}

.TVManagerOrderControl .TVManagerCrmButton {
    margin-top: 20px
}

.TVManagerOrderControl .TVTourManagerButtonsControl {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end
}

.TVMobileHotelDescriptionView {
    padding: 20px
}

.TVMobileHotelDescriptionView .TVMobileResultBtn {
    box-sizing: border-box;
    width: 100%;
    margin-top: 25px
}

.TVMobileHotelDescriptionView .TVMobileResultBtn:before {
    content: "Вернуться назад"
}

.TVOrderMenu .TVSearchLinkItem:before {
    font-family: TVicons;
    content: "\e91d";
    font-size: 16px
}

.TVOrderMenu .TVErrorItem:before {
    font-family: TVicons;
    content: "\e923";
    font-size: 16px
}

.TVOrderMenu .TVAddHotOfferItem:before {
    font-family: TVicons;
    content: "\e94d";
    font-size: 19px
}

.TVOrderMenuTitleWrapper {
    width: calc(100% - 40px)
}

.TVOrderMenuTitle {
    font-weight: 700
}

.TVOrderMenuSearchParams {
    opacity: .7
}

.TVOrderWidgetControl,.TVOrderWidgetMobileControl {
    margin: 0 auto;
    padding: 32px;
    border-radius: 15px;
    background-color: #edf2f5;
    color: #333;
    font-size: 13px;
    font-weight: 500;
    font-family: var(--tv-font-theme2)
}

.TVOrderWidgetControl .TVCustomerOrderTabs,.TVOrderWidgetMobileControl .TVCustomerOrderTabs {
    margin-bottom: 35px
}

.TVOrderWidgetControl.TVPreview .TVOrderWidgetTitle,.TVOrderWidgetMobileControl.TVPreview .TVOrderWidgetTitle {
    visibility: hidden;
    position: relative;
    max-width: 250px
}

.TVOrderWidgetControl.TVPreview .TVOrderWidgetTitle:before,.TVOrderWidgetMobileControl.TVPreview .TVOrderWidgetTitle:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVOrderWidgetControl.TVPreview .TVOrderWidgetFlightsTitle,.TVOrderWidgetControl.TVPreview .TVOrderWidgetHotelInfoTitle,.TVOrderWidgetControl.TVPreview .TVOrderWidgetRoomInfoTitle,.TVOrderWidgetMobileControl.TVPreview .TVOrderWidgetFlightsTitle,.TVOrderWidgetMobileControl.TVPreview .TVOrderWidgetHotelInfoTitle,.TVOrderWidgetMobileControl.TVPreview .TVOrderWidgetRoomInfoTitle {
    visibility: hidden;
    position: relative;
    max-width: 120px
}

.TVOrderWidgetControl.TVPreview .TVOrderWidgetFlightsTitle:before,.TVOrderWidgetControl.TVPreview .TVOrderWidgetHotelInfoTitle:before,.TVOrderWidgetControl.TVPreview .TVOrderWidgetRoomInfoTitle:before,.TVOrderWidgetMobileControl.TVPreview .TVOrderWidgetFlightsTitle:before,.TVOrderWidgetMobileControl.TVPreview .TVOrderWidgetHotelInfoTitle:before,.TVOrderWidgetMobileControl.TVPreview .TVOrderWidgetRoomInfoTitle:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVOrderWidgetTitle {
    font-size: 16px;
    font-weight: 600
}

.TVOrderWidgetInfo {
    margin-top: 24px
}

.TVOrderWidgetFlightsTitle,.TVOrderWidgetHotelInfoTitle,.TVOrderWidgetOptionsTitle,.TVOrderWidgetRoomInfoTitle {
    color: #5c6672;
    font-size: 13px;
    line-height: 13px;
    font-weight: 500
}

.TVOrderWidgetOptions {
    background-color: #fff;
    border-radius: 10px;
    padding: 16px;
    color: #5c6672;
    font-size: 13px;
    font-weight: 500;
    line-height: 20px
}

.TVOrderWidgetOptions ul {
    list-style-type: "·";
    padding-left: 10px;
    margin: 3px 0 0
}

.TVOrderWidgetOptions ul li {
    padding-left: 5px
}

.TVOrderWidgetOrder {
    margin-top: 40px;
    padding-top: 40px;
    border-top: 1px dashed rgba(92,102,114,.5)
}

.TVOrderWidgetInstruction {
    background-color: #fff;
    color: #5c6672;
    border-radius: 10px;
    margin-top: 24px;
    padding: 20px;
    font-size: 13px;
    font-weight: 500;
    line-height: 20px;
    text-align: center
}

.TVOrderWidgetErrorTour {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 20px;
    padding: 24px 35px;
    border-radius: 5px;
    font-size: 14px;
    line-height: 24px;
    background-color: #fff
}

.TVOrderWidgetErrorTourTitle {
    font-weight: 700;
    text-transform: uppercase;
    color: #333
}

.TVOrderWidgetErrorTourText {
    margin-top: 20px;
    color: #777;
    text-align: center
}

.TVOrderWidgetControl {
    min-width: 700px
}

.TVOrderWidgetControl .TVOrderWidgetFlightsTitle,.TVOrderWidgetControl .TVOrderWidgetHotelInfoTitle,.TVOrderWidgetControl .TVOrderWidgetOptionsTitle,.TVOrderWidgetControl .TVOrderWidgetRoomInfoTitle {
    margin: 32px 0 13px
}

.TVOrderWidgetMobileControl .TVOrderWidgetFlightsTitle,.TVOrderWidgetMobileControl .TVOrderWidgetHotelInfoTitle,.TVOrderWidgetMobileControl .TVOrderWidgetOptionsTitle,.TVOrderWidgetMobileControl .TVOrderWidgetRoomInfoTitle {
    margin: 24px 0 8px
}

.TVOrderWidgetMobileControl .TVOrderWidgetBuyOnlineButton,.TVOrderWidgetMobileControl .TVOrderWidgetPrice {
    margin-top: 24px
}

.TVOrderWidgetMobileControl .TVOrderWidgetRequestButton {
    margin-top: 16px
}

.TVOrderWidgetFlightItem {
    justify-content: space-between;
    width: 100%;
    color: #5c6672;
    font-size: 13px;
    font-weight: 500;
    line-height: 13px
}

.TVOrderWidgetFlightAirline,.TVOrderWidgetFlightItem {
    display: flex;
    align-items: center
}

.TVOrderWidgetFlightAirlineLogo {
    width: 24px;
    height: 24px;
    background-size: cover;
    background-repeat: no-repeat;
    border-radius: 30px;
    margin-right: 8px;
    align-self: center;
    flex-shrink: 0
}

.TVOrderWidgetFlightDuration {
    display: flex;
    align-items: center
}

.TVOrderWidgetFlightDuration>:not(:first-child) {
    margin-left: 12px
}

.TVOrderWidgetFlightArrivalTime,.TVOrderWidgetFlightDepartureTime {
    color: #333;
    font-size: 13px;
    font-weight: 600
}

.TVOrderWidgetFlightDirection {
    display: flex;
    align-items: center
}

.TVOrderWidgetFlightDirection:before {
    font-family: TVicons;
    content: "\e92e";
    font-size: 15px;
    color: #5c6672;
    opacity: .4
}

.TVOrderWidgetFlightDirection.TVOrderWidgetFlightDirectionReverse {
    transform: rotate(180deg)
}

.TVOrderWidgetFlightItem .TVOrderWidgetFlightAirline {
    flex-basis: 20%;
    margin-right: 5px
}

.TVOrderWidgetFlightItem .TVOrderWidgetFlightDuration {
    flex-basis: 50%
}

.TVOrderWidgetFlightItem .TVOrderWidgetFlightInfo {
    flex-basis: 25%;
    margin-left: 5px
}

.TVOrderWidgetFlightItem .TVOrderWidgetFlightDate {
    flex-basis: 10%;
    margin-left: 5px
}

.TVOrderWidgetFlightColumnItem>:not(:first-child) {
    margin-top: 8px;
    line-height: 13px
}

.TVOrderWidgetFlightColumnItem .TVOrderWidgetFlightBlock {
    display: flex;
    justify-content: space-between
}

.TVOrderWidgetFlightColumnItem .TVOrderWidgetFlightAirlineLogo {
    width: 16px;
    height: 16px
}

.TVOrderWidgetFlightColumnItem .TVOrderWidgetFlightInfoBlock {
    display: flex
}

.TVOrderWidgetFlightColumnItem .TVOrderWidgetFlightInfoBlock>:not(:first-child) {
    margin-left: 8px
}

.TVOrderWidgetFlightsList {
    padding: 16px;
    border-radius: 10px;
    background: #fff;
    display: flex;
    flex-direction: column;
    align-items: flex-start
}

.TVOrderWidgetFlightsList.TVPreview .TVOrderWidgetFlightsMessage {
    visibility: hidden;
    position: relative
}

.TVOrderWidgetFlightsList.TVPreview .TVOrderWidgetFlightsMessage:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVOrderWidgetFlightsListContent {
    display: flex;
    flex-direction: column;
    width: 100%
}

.TVOrderWidgetFlightsListContent>:not(:first-child),.TVOrderWidgetFlightsListWarningBlock {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px dashed #ddd;
    width: 100%
}

.TVOrderWidgetFlightsListWarningMessage {
    padding: 20px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 500;
    line-height: 20px;
    border: 1px solid #f4ecd0;
    background-color: #fbf6e0;
    color: #c09953
}

.TVOrderWidgetFlightsMessage {
    font-size: 13px;
    font-style: normal;
    font-weight: 500;
    line-height: 20px;
    color: #5c6672;
    display: flex;
    align-items: center
}

.TVOrderWidgetFlightsMessage:before {
    font-family: TVicons;
    content: "\e92e";
    font-size: 16px;
    opacity: .6;
    margin-right: 12px
}

.TVOrderWidgetCard {
    display: flex;
    background-color: #fff;
    padding: 16px;
    border-radius: 10px
}

.TVOrderWidgetCard.TVPreview .TVOrderWidgetCardImageBlock {
    visibility: hidden;
    position: relative
}

.TVOrderWidgetCard.TVPreview .TVOrderWidgetCardImageBlock:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVOrderWidgetCard.TVPreview .TVOrderWidgetCardTitle {
    visibility: hidden;
    position: relative;
    width: 100px;
    height: 20px;
    margin-bottom: 10px
}

.TVOrderWidgetCard.TVPreview .TVOrderWidgetCardTitle:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVOrderWidgetCard.TVPreview .TVOrderWidgetCardSubTitle {
    visibility: hidden;
    position: relative;
    width: 150px;
    height: 20px
}

.TVOrderWidgetCard.TVPreview .TVOrderWidgetCardSubTitle:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVOrderWidgetCardTitle {
    color: #333;
    font-size: 13px;
    font-weight: 600;
    line-height: 18px
}

.TVOrderWidgetCardPretitle {
    display: inline-flex;
    margin-bottom: 3px
}

.TVOrderWidgetCardSubTitle {
    color: #5c6672;
    font-size: 12px;
    font-weight: 500;
    line-height: 20px
}

.TVOrderWidgetCardImage {
    width: 100%;
    height: 100%;
    border-radius: 6px;
    background-size: cover;
    background-position: 50%;
    background-repeat: no-repeat;
    position: relative
}

.TVOrderWidgetCardImage.TVOrderWidgetCursorPointer {
    cursor: pointer
}

.TVOrderWidgetCardInfo {
    margin-left: 24px
}

.TVOrderWidgetCardDetails {
    color: #31708f;
    font-size: 12px;
    font-weight: 500;
    margin-top: 7px;
    border-bottom: 1px dashed;
    display: inline-block;
    cursor: pointer
}

.TVOrderWidgetCardImageBlock {
    border-radius: 6px;
    background-color: #ddd;
    position: relative
}

.TVOrderWidgetCardImageBlock:before {
    font-family: TVicons;
    content: "\e945";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    font-size: 70px;
    color: #fff
}

.TVOrderWidgetCardImageBlock.TVSize-M {
    width: 104px;
    min-width: 104px;
    height: 80px
}

.TVOrderWidgetCardImageBlock.TVSize-S {
    width: 64px;
    min-width: 64px;
    height: 64px
}

.TVOrderWidgetCardImageBlock.TVSize-S:before {
    font-size: 50px
}

.TVOrderWidgetLoupe {
    width: 32px;
    height: 32px;
    box-sizing: border-box;
    position: absolute;
    left: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #000;
    opacity: .6;
    border-radius: 0 5px 0 0;
    cursor: pointer;
    width: 24px;
    height: 24px;
    border-radius: 0 6px
}

.TVOrderWidgetLoupe:before {
    font-size: 14px;
    color: #fff;
    font-family: TVicons;
    content: "\e91d"
}

.TVOrderWidgetInfoControl {
    display: flex
}

.TVOrderWidgetInfoControl.TVPreview .TVOrderWidgetInfoTitle {
    visibility: hidden;
    position: relative;
    width: 80px;
    height: 20px
}

.TVOrderWidgetInfoControl.TVPreview .TVOrderWidgetInfoTitle:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVOrderWidgetInfoControl.TVPreview .TVOrderWidgetInfoContent {
    visibility: hidden;
    position: relative;
    width: 120px;
    height: 20px
}

.TVOrderWidgetInfoControl.TVPreview .TVOrderWidgetInfoContent:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVOrderWidgetInfoControl.TVPreview .TVOrderWidgetInfoPriceValueBlock {
    visibility: hidden;
    position: relative;
    width: 80px
}

.TVOrderWidgetInfoControl.TVPreview .TVOrderWidgetInfoPriceValueBlock:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVOrderWidgetInfoControl.TVPreview.TVAxisDirection-Column .TVOrderWidgetInfoContent {
    flex: 1
}

.TVOrderWidgetInfoPriceBlock,.TVOrderWidgetTourInfoItems {
    border-radius: 10px;
    padding: 16px;
    background-color: #fff
}

.TVOrderWidgetTourInfoItems {
    flex: 1;
    display: flex;
    justify-content: space-between
}

.TVOrderWidgetInfoBlock {
    display: flex;
    flex-direction: column;
    gap: 3px;
    color: #333;
    font-size: 13px;
    font-weight: 600;
    line-height: 20px
}

.TVOrderWidgetInfoTitle {
    color: #5c6672;
    font-size: 12px;
    font-weight: 500
}

.TVOrderWidgetInfoPriceValueBlock {
    display: flex;
    align-items: flex-end
}

.TVOrderWidgetInfoPrice {
    font-size: 16px;
    font-weight: 700;
    line-height: normal
}

.TVOrderWidgetInfoCurrency {
    font-size: 10px;
    line-height: 14px;
    text-transform: uppercase;
    font-weight: 500;
    margin-left: 5px
}

.TVOrderWidgetInfoControl.TVAxisDirection-Row .TVOrderWidgetInfoPriceBlock {
    margin-left: 8px
}

.TVOrderWidgetInfoControl.TVAxisDirection-Column,.TVOrderWidgetInfoControl.TVAxisDirection-Column .TVOrderWidgetTourInfoItems {
    flex-direction: column
}

.TVOrderWidgetInfoControl.TVAxisDirection-Column .TVOrderWidgetTourInfoItems>:not(:first-child) {
    margin-top: 12px
}

.TVOrderWidgetInfoControl.TVAxisDirection-Column .TVOrderWidgetInfoBlock {
    flex-direction: row;
    line-height: 13px
}

.TVOrderWidgetInfoControl.TVAxisDirection-Column .TVOrderWidgetInfoTitle {
    display: flex;
    align-items: center;
    flex-basis: 90px
}

.TVOrderWidgetInfoControl.TVAxisDirection-Column .TVOrderWidgetInfoPriceBlock {
    margin-top: 8px
}

.TVPrePaymentTypes>:not(:last-child) {
    margin-bottom: 12px
}

.TVPrePaymentValue {
    margin: 10px 0 0 28px
}

.TVPromocode .TVPromocodeBody {
    display: flex;
    background-color: #fff
}

.TVPromocode .TVPromocodeInput {
    flex: 1
}

.TVPromocode .TVPromocodeMessage {
    box-sizing: border-box;
    width: 100%;
    margin-top: 10px
}

.TVPromocode .TVPromocodeAccepted:before {
    font-family: TVicons;
    content: "\e90b";
    font-size: 20px
}

.TVResortTitleControl {
    font-family: var(--tv-font-theme2)
}

.TVResortTitleControl>:not(:last-child) {
    margin-bottom: 5px
}

.TVResortTitleControl .TVResortTitleName {
    font-size: 16px;
    line-height: 22px;
    text-transform: capitalize;
    font-weight: 700
}

.TVResortTitleControl .TVResortTitleInfo {
    font-size: 13px;
    color: #999
}

.TVResortTitleControl .TVResortTitleTempratureBlock {
    display: flex;
    font-size: 13px
}

.TVResortTitleControl .TVResortTitleTemprature {
    margin-right: 10px
}

.TVResortTitleControl .TVResortTitleTemprature:before {
    margin-right: 5px;
    font-size: 16px
}

.TVResortTitleControl .TVResortTitleTempratureAir {
    color: #eaa627
}

.TVResortTitleControl .TVResortTitleTempratureAir:before {
    font-family: TVicons;
    content: "\e958"
}

.TVResortTitleControl .TVResortTitleTempratureWater {
    color: #5495fc
}

.TVResortTitleControl .TVResortTitleTempratureWater:before {
    font-family: TVicons;
    content: "\e959"
}

.TVTourBookingItem {
    display: flex;
    align-items: center
}

.TVTourBookingDescription {
    margin-left: 30px;
    line-height: 18px;
    font-size: 13px;
    margin-top: -4px;
    display: flex;
    flex-direction: column;
    align-items: flex-start
}

.TVTourBookingDescription:before {
    display: block
}

.TVTourBookingControl {
    --actions-gap-size: 40px;
    --title-gap-size: 35px;
    display: flex;
    flex-direction: column
}

.TVBookingHeader {
    margin-bottom: var(--title-gap-size)
}

.TVBookingItems {
    display: flex;
    flex-direction: column
}

.TVTourBookingItem:not(:last-child) {
    margin-bottom: var(--actions-gap-size)
}

.TVTourCardBookingControl {
    color: #5c6672;
    background-color: #edf2f5
}

.TVTourBuySendingControl.TVGapSize-M .TVTourBuySendingAgreement,.TVTourBuySendingControl.TVGapSize-M .TVTourBuySendingContract {
    margin-bottom: 20px
}

.TVTourBuySendingControl.TVGapSize-L .TVTourBuySendingContract {
    margin-bottom: 24px
}

.TVTourBuySendingControl.TVGapSize-L .TVTourBuySendingAgreement {
    margin-bottom: 26px
}

.TVTourBuySendingAgreement {
    display: flex
}

.TVTourBuySendingAgreement>:not(:last-child) {
    margin-right: 12px
}

.TVTourBuyTouristItemControl:not(:last-child) {
    margin-bottom: 40px;
    padding-bottom: 40px;
    border-bottom: 1px dashed rgba(92,102,114,.5)
}

.TVTourBuyTouristItemControl.TVAxisDirection-Row .TVTourBuyTouristItemBody {
    display: grid;
    align-items: start;
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "gender passport-title" "profile passport";
    gap: 16px 56px
}

.TVTourBuyTouristItemControl.TVAxisDirection-Row .TVTouristPassportBlock,.TVTourBuyTouristItemControl.TVAxisDirection-Row .TVTouristProfileBlock {
    display: grid;
    gap: 8px
}

.TVTourBuyTouristItemControl.TVAxisDirection-Column .TVTourBuyTouristItemBody {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "gender" "profile" "passport-title" "passport";
    gap: 18px
}

.TVTourBuyTouristItemControl.TVAxisDirection-Column .TVTouristPassportBlock,.TVTourBuyTouristItemControl.TVAxisDirection-Column .TVTouristProfileBlock {
    display: grid;
    gap: 8px
}

.TVTourBuyTouristItemControl.TVAxisDirection-Column .TVTouristPassportTitleBlock {
    margin-top: 12px
}

.TVTourBuyTouristItemHeader {
    margin-bottom: 16px
}

.TVTouristGenderBlock {
    grid-area: gender;
    display: flex
}

.TVTouristGenderBlock>:not(:last-child) {
    margin-right: 20px
}

.TVTouristProfileBlock {
    grid-area: profile
}

.TVTouristPassportTitleBlock {
    grid-area: passport-title
}

.TVTouristPassportBlock {
    grid-area: passport
}

.TVTouristName input,.TVTouristSurname input {
    text-transform: uppercase
}

.TourBuyHeaderTitle {
    font-size: 16px;
    font-weight: 600;
    color: #333
}

.TourBuyHeaderSubTitle {
    margin-top: 5px;
    font-size: 13px;
    font-weight: 500;
    color: #5c6672
}

.TourBuyDocumentHeader {
    display: flex;
    justify-content: space-between;
    min-height: 18px
}

.TourBuyDocumentHeader .TVCheckBox {
    font-size: 13px;
    color: #5c6672
}

.TourBuyDocumentHeader .TVCheckBox:before {
    line-height: 16px
}

.TVTourBuyDocumentName {
    font-size: 13px;
    font-weight: 400;
    line-height: 18px;
    color: #5c6672
}

.TVTourBuyTotalHeader {
    margin-bottom: 10px
}

.TVTourBuyTotalControl.TVAxisDirection-Row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "price actions";
    gap: 8px 50px
}

.TVTourBuyTotalControl.TVAxisDirection-Column {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "price " "actions";
    gap: 33px
}

.TVTourBuyTotalPrice {
    grid-area: price
}

.TVTourBuyTotalActions {
    grid-area: actions
}

.TVTourBuyTotalHeader {
    margin-bottom: 9px
}

.TVTourCardActionButtonsTitle {
    --title-font-size: 18px;
    --title-font-color: #333;
    font-size: var(--title-font-size);
    color: var(--title-font-color)
}

.TVTourCardActionButtonsTitle.TVTextAlign-Left {
    text-align: left
}

.TVTourCardActionButtonsTitle.TVTextAlign-Center {
    text-align: center
}

.TVTourCardActionButtonsHeaderSubTitle {
    font-size: 13px;
    margin-top: 5px
}

.TVTourCardActionButtonControl {
    --action-button-height: 50px;
    --action-button-padding: 14px 24px;
    --action-button-flex: 0 0 320px;
    --action-button-border-radius: 6px;
    flex: var(--action-button-flex);
    padding: var(--action-button-padding);
    height: var(--action-button-height);
    border-radius: var(--action-button-border-radius);
    box-sizing: border-box;
    text-decoration: none;
    cursor: pointer;
    border: none;
    text-transform: none;
    white-space: nowrap;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative
}

.TVTourCardActionButtonControl:hover {
    opacity: .9;
    color: #5c6672
}

.TVTourCardActionButtonControl.TVColorWhite {
    background-color: #fff;
    color: #5c6672
}

.TVTourCardActionButtonControl.TVColorBlue315 {
    background-color: #185584;
    color: #fff
}

.TVTourCardActionButtonControl.TVColorBlue400 {
    background-color: #5c6672;
    color: #fff
}

.TVTourCardActionButtonControl.TVColorGreen500 {
    color: #fff;
    background-color: #5cb85c
}

.TVTourCardActionButtonControl.TVDisabled {
    color: #5c6672;
    background-color: #ddd;
    pointer-events: none
}

.TVTourCardActionButtonLogo {
    margin-left: 15px;
    width: 86px;
    height: 16px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: 50%
}

.TVTourCardActionButtonWaiter {
    margin-left: 15px
}

.TVTourCardActionButtonWaiter.TVFixed {
    position: absolute;
    right: 20px
}

.TVTourCardActionButtonArrow {
    margin-left: auto
}

.TVTourCardActionButtonArrow:before {
    font-family: TVicons;
    content: "\e906"
}

.TVTourCardActionButtonsControl>:not(:first-child) {
    margin-top: 10px
}

.TVTourCardActionButtonsControl .TVTourCardAgencyButtons,.TVTourCardActionButtonsControl .TVTourCardCustomerButtons {
    margin-top: 20px
}

.TVTourCardActionButtonsControl .TVTourCardManagerButtons {
    margin-top: 25px
}

.TVTourCardOtherButtons>:not(:first-child) {
    margin-top: 10px
}

.TVTourCardCustomerButtons {
    display: flex
}

.TVTourCardCustomerButtons>:not(:first-child) {
    margin-left: 10px
}

.TVTourCardActionPriceBlock {
    position: fixed;
    bottom: 0;
    box-sizing: border-box;
    width: 100%;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    background-color: #edf2f5;
    padding: 13px 20px;
    transform: translateY(0);
    transition: transform .3s ease-out,visibility .3s ease-out
}

.TVTourCardActionPriceBlock .TVTourAddToCart {
    width: 40px;
    height: 40px;
    border-radius: 20px;
    background-color: #fff;
    color: #777;
    font-size: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-right: 10px
}

.TVTourCardActionPriceBlock .TVTourAddToCart.TVDisabled {
    cursor: default;
    opacity: .8
}

.TVTourCardActionPriceValue {
    color: #333;
    line-height: 1;
    font-size: 22px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.TVTourCardActionPriceCurrency {
    color: #5c6672;
    margin: 10px auto 0 3px;
    font-size: 10px;
    line-height: 1;
    text-transform: uppercase
}

.TVTourCardActionALtTours,.TVTourCardActionContinue {
    box-sizing: border-box;
    width: 100%;
    padding: 11px;
    font-size: 13px;
    line-height: 18px;
    text-align: center;
    border-radius: 30px;
    background-color: #fff;
    color: #5c6672;
    cursor: pointer
}

.TVTourCardActionALtTours.TVDisabled,.TVTourCardActionContinue.TVDisabled {
    cursor: default;
    pointer-events: none;
    opacity: .8
}

.TVTourCardActionItems {
    margin-top: 20px
}

.TVTourCardActionItems>:not(:first-child) {
    margin-top: 16px
}

.TVTourCardActionContinue {
    display: block;
    text-decoration: none;
    transition: background-color .3s linear
}

.TVTourCardActionContinue:hover {
    text-decoration: none
}

.TVTourCardActionContinue:not(.TVDisabled) {
    background-color: #5cb85c;
    color: #fff
}

.TVTourCardActionContinue.TVColorBlue400:not(.TVDisabled) {
    background-color: #5c6672;
    color: #fff
}

.TVTourCardWindowHeader {
    display: flex;
    align-items: center;
    height: 100%
}

.TVTourCardWindowHeader .TVTourCardHeaderBtn {
    cursor: pointer;
    background-color: #edf2f5;
    color: #5c6672;
    border-radius: 30px;
    margin-right: 8px;
    width: 32px;
    height: 32px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVTourCardWindowHeader .TVTourCardHeaderBtn:hover {
    opacity: .9
}

.TVTourCardWindowHeader .TVTourCardHeaderBtn.TVActive {
    background-color: #5c6672;
    color: #fff
}

.TVTourCardWindowHeader .TVMenuIcon:before {
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMi4wNTUgMzIuMDU1IiBmaWxsPSIjNzc3Ij48cGF0aCBkPSJNMy45NjggMTIuMDYxQTMuOTY1IDMuOTY1IDAgMDAwIDE2LjAyN2EzLjk2NSAzLjk2NSAwIDAwMy45NjggMy45NjcgMy45NjYgMy45NjYgMCAxMDAtNy45MzN6bTEyLjI2NSAwYTMuOTY3IDMuOTY3IDAgMDAtMy45NjggMy45NjVjMCAyLjE5MiAxLjc3OCAzLjk2NyAzLjk2OCAzLjk2N3MzLjk3LTEuNzcyIDMuOTctMy45NjdhMy45NyAzLjk3IDAgMDAtMy45Ny0zLjk2NXptMTEuODU3IDBhMy45NjcgMy45NjcgMCAxMC0uMDA1IDcuOTMzIDMuOTY3IDMuOTY3IDAgMDAuMDA1LTcuOTMzeiIvPjwvc3ZnPg==");
    background-repeat: no-repeat;
    display: block;
    width: 16px;
    height: 16px
}

.TVTourCardWindowHeader .TVMenuIcon.TVActive:before {
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMi4wNTUgMzIuMDU1IiBmaWxsPSIjZmZmIj48cGF0aCBkPSJNMy45NjggMTIuMDYxQTMuOTY1IDMuOTY1IDAgMDAwIDE2LjAyN2EzLjk2NSAzLjk2NSAwIDAwMy45NjggMy45NjcgMy45NjYgMy45NjYgMCAxMDAtNy45MzN6bTEyLjI2NSAwYTMuOTY3IDMuOTY3IDAgMDAtMy45NjggMy45NjVjMCAyLjE5MiAxLjc3OCAzLjk2NyAzLjk2OCAzLjk2N3MzLjk3LTEuNzcyIDMuOTctMy45NjdhMy45NyAzLjk3IDAgMDAtMy45Ny0zLjk2NXptMTEuODU3IDBhMy45NjcgMy45NjcgMCAxMC0uMDA1IDcuOTMzIDMuOTY3IDMuOTY3IDAgMDAuMDA1LTcuOTMzeiIvPjwvc3ZnPg==");
    background-repeat: no-repeat
}

.TVTourCardWindowHeader .TVShareIcon {
    margin-right: auto
}

.TVTourCardWindowHeader .TVShareIconSvg {
    width: 16px;
    height: auto
}

.TVTourCardWindowHeader .TVOperatorIcon:before {
    font-family: TVicons;
    content: "\e906";
    font-size: 15px;
    line-height: 15px;
    margin-left: 3px
}

.TVTourCardWindowHeader .TVTourCardOperatorBlock,.TVTourCardWindowHeader .TVTourCardOperatorLinkBlock {
    display: flex;
    align-items: center;
    cursor: pointer;
    text-decoration: none
}

.TVTourCardWindowHeader .TVTourCardOperatorBlock.TVDisabled,.TVTourCardWindowHeader .TVTourCardOperatorLinkBlock.TVDisabled {
    pointer-events: none;
    cursor: default
}

.TVTourCardWindowHeader .TVTourCardOperatorLogo {
    height: 33px
}

.TVTourCardWindowHeader .TVTourCardOperatorName {
    color: #5c6672;
    font-size: 14px
}

.TVTourCardInfoContent {
    margin-top: 20px;
    background-color: #fff;
    position: relative;
    border-radius: 5px;
    box-shadow: 0 3px 6px rgba(0,0,0,.16);
    text-shadow: none;
    overflow: hidden
}

.TVTourCardInfoContent .TVTourCardInfoFlights {
    margin-top: 35px
}

.TVTourCardInfoContent .TVTourFlightSelectionListControl {
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    padding: 24px;
    background-color: #fff;
    position: absolute;
    top: 0;
    left: 0
}

.TVTourCardInfoContent .TVOrderWarningMessage {
    padding: 14px 20px;
    font-size: 13px;
    line-height: 18px
}

.TVTourCardInfoMessageBlock {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 24px 35px;
    font-size: 14px;
    line-height: 24px
}

.TVTourCardInfoMessageTitle {
    font-weight: 700;
    text-transform: uppercase;
    color: #333
}

.TVTourCardInfoMessageText {
    margin-top: 20px;
    color: #777;
    text-align: center
}

.TVTourCardInfoMessageRequest {
    margin-top: 40px;
    width: 180px;
    border-radius: 30px;
    background-color: #5cb85c;
    color: #fff;
    font-size: 13px;
    padding: 10px;
    text-align: center;
    cursor: pointer
}

.TVTourCardInfoMessageRequest:before {
    content: "Запрос на подбор тура"
}

.TVTourCardInfoBlock {
    display: flex
}

.TVTourCardInfoLeftBlock {
    padding: 24px;
    flex: 1;
    display: flex;
    flex-direction: column;
    position: relative
}

.TVTourCardInfoRightBlock {
    box-sizing: border-box;
    flex: 0 1 296px;
    padding: 16px 24px;
    background-color: #edf2f5
}

.TVTourCardMenuDropPanel {
    margin-top: 0;
    overflow: hidden;
    width: 300px
}

.TVTourCardMenuDropPanel .tv_content {
    margin: 0
}

.TVTourCardMenuDropPanel .TVMenuItem {
    height: 45px
}

.TVTourCardMenuDropPanel .TVMenuItem.TVSearchLinkItem:before {
    font-family: TVicons;
    content: "\e91d";
    font-size: 15px
}

.TVTourCardMenuDropPanel .TVMenuItem.TVOperatorItem:before,.TVTourCardMenuDropPanel .TVMenuItem.TVOperatorLinkItem:before {
    font-family: TVicons;
    content: "\e906";
    font-size: 15px
}

.TVTourCardMenuDropPanel .TVMenuItem.TVSendErrorItem:before {
    font-family: TVicons;
    content: "\e923";
    font-size: 17px
}

.TVTourCardMenuDropPanel .TVMenuItem.TVAddHotOfferItem:before {
    font-family: TVicons;
    content: "\e94d";
    font-size: 19px
}

.TVTourCardMenuDropPanel .TVMenuItem.TVBookingItem:before {
    font-family: TVicons;
    content: "\f0ac";
    font-size: 19px
}

.TVTourCardControl {
    font-family: var(--tv-font-theme2);
    color: #777
}

.TVTourCardControl.TVTourCardPriceHide .TVTourCardActionPriceBlock {
    visibility: hidden;
    transform: translateY(100%)
}

.TVTourCardControl .TVTourCardInfo {
    width: 100%;
    min-height: 100%;
    display: flex;
    flex-direction: column
}

.TVTourCardControl .TVTourCardBody {
    flex: auto
}

.TVTourCardControl .TVTourCardFooter {
    background-color: #edf2f5;
    position: relative;
    padding-bottom: 30px
}

.TVTourCardControl .TVTourCardContent .TVAreaDescriptionContainer {
    order: 1
}

.TVTourCardControl .TVExcursionData .TVAreaContentEmpty:after {
    content: "Описание тура временно отсутствует. Ведется добавление информации."
}

.TVTourCardControl .TVTourCardOptionsBlock {
    padding: 30px 20px
}

.TVTourCardControl .TVTourCardOptionsWrapper:not(:first-child) {
    margin-top: 10px
}

.TVTourCardControl .TVOrderWarningMessage {
    margin: 0 20px 20px
}

.TVTourCardControl .TVHotelTitleBlockWrapper {
    padding: 20px 20px 10px
}

.TVTourCardControl .TVTourCardActionButtonsControl,.TVTourCardControl .TVTourCardPriceWrapper {
    padding: 25px 20px 0
}

.TVTourCardControl .TVTourCardActionPriceBlock {
    margin-left: -20px
}

.TVTourCardControl .TVAreaContentControl .TVAreaDescriptionContainer,.TVTourCardControl .TVAreaContentControl .TVAreaGalleryContainer,.TVTourCardControl .TVAreaContentControl .TVHotelVideoContainer {
    transition: 1s ease-in-out;
    max-height: 0;
    overflow: hidden
}

.TVTourCardControl .TVAreaContentControl .TVAreaContentText {
    margin-top: 15px
}

.TVTourCardControl .TVAreaContentControl .TVHotelTitleBlock {
    padding-top: 0;
    display: flex;
    justify-content: space-between
}

.TVTourCardControl .TVAreaContentControl .TVHotelTitleBlock .TVHotelTitleBlockWrapper {
    padding-right: 0
}

.TVTourCardControl .TVAreaContentControl .TVHotelTitleBlock .TVHotelExpandButton {
    margin: auto 20px
}

.TVTourCardControl .TVAreaContentControl .TVHotelTitleBlock .TVHotelExpandButton:before {
    font-family: TVicons;
    content: "\e945";
    color: #ddd;
    font-size: 30px;
    line-height: normal
}

.TVTourCardControl .TVAreaContentControl.TVHotelExpand .TVAreaDescriptionContainer,.TVTourCardControl .TVAreaContentControl.TVHotelExpand .TVAreaGalleryContainer,.TVTourCardControl .TVAreaContentControl.TVHotelExpand .TVHotelVideoContainer {
    max-height: 100vw
}

.TVTourCardMessageInfo {
    padding: 20px;
    font-size: 13px;
    line-height: 24px
}

.TVTourCardMessageInfoTitle {
    font-weight: 700;
    text-transform: uppercase;
    color: #333
}

.TVTourCardMessageInfoText {
    margin-top: 20px;
    color: #777
}

.TVTourFlightSelectionListControl {
    display: flex;
    flex-direction: column
}

.TVTourFlightSelectionTitle {
    height: 18px;
    display: flex;
    align-items: center
}

.TVTourFlightSelectionArrival,.TVTourFlightSelectionDeparture {
    font-size: 13px;
    font-weight: 700;
    color: #333
}

.TVTourFlightSelectionArrival:before {
    margin: 0 5px;
    content: "-"
}

.TVTourFlightSelectionClose {
    margin-left: auto;
    cursor: pointer
}

.TVTourFlightSelectionClose:before {
    font-family: TVicons;
    content: "\e916";
    font-size: 10px;
    color: #5c6672;
    border: 2px solid;
    border-radius: 20px;
    padding: 4px
}

.TVTourFlightSelectionContent {
    margin-top: 16px;
    height: calc(100% - 34px);
    display: flex;
    flex-direction: column
}

.TVTourFlightSelectionContent.TVScrollEnabled .TVTourFlightSelectionList {
    padding-right: 14px
}

.TVTourFlightSelectionContent.TVScrollEnabled .TVFlightSelectionListTitle {
    margin-right: 19px
}

.TVTourFlightSelectionList {
    height: 100%;
    overflow-y: auto
}

.TVManagerExportCrmButton {
    margin-top: 20px
}

.TVExportCrmButtonControl {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    text-decoration: none;
    background-color: #fff;
    color: #5c6672;
    cursor: pointer;
    white-space: nowrap
}

.TVExportCrmButtonControl .TVExportCrmButtonIcon,.TVExportCrmButtonControl .TVExportCrmButtonWaiter {
    margin-left: 15px
}

.TVExportCrmButtonControl:hover {
    color: #5c6672
}

.TVExportCrmButtonControl.TVSize-XS {
    padding: 8px;
    font-size: 10px;
    font-weight: 600;
    line-height: normal;
    height: 40px
}

.TVExportCrmButtonControl.TVSize-S {
    padding: 10px 20px;
    font-size: 13px;
    line-height: 18px;
    height: 40px
}

.TVExportCrmButtonControl.TVSize-M {
    padding: 14px 24px;
    font-size: 14px;
    line-height: 22px;
    height: 50px
}

.TVExportCrmButtonControl.TVDisabled {
    pointer-events: none;
    background: #ddd
}

.TVExportCrmButtonIcon {
    width: 72px;
    height: 16px;
    display: block;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: 50%
}

.TVExportCrmButtonIcon.TVCrmUon {
    background-image: url(//static.tourvisor.ru/pro/u-on.svg)
}

.TVExportCrmButtonIcon.TVCrmMyDocuments {
    background-image: url(//static.tourvisor.ru/pro/moidokumenti.svg)
}

.TVTourPayInstructionControl {
    display: flex;
    flex-direction: column
}

.TVTourPayInstructionPrice,.TVTourPayInstructionTitle {
    font-weight: 700;
    color: #333
}

.TVTourPayInstructionContent,.TVTourPayInstructionPriceText {
    font-size: 13px;
    line-height: 21px;
    color: #5c6672;
    max-width: 500px;
    margin-top: 15px
}

.TVTourPayInstructionButton {
    height: 40px;
    border-radius: 30px;
    margin-top: 20px;
    font-size: 13px;
    background-color: #5cb85c;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    cursor: pointer
}

.TVTourPayInstructionButton:hover {
    color: #fff;
    text-decoration: none;
    opacity: .9
}

.TVTourPayInstructionControl:not(.TVMobile) {
    align-items: center;
    padding: 35px 0 15px
}

.TVTourPayInstructionControl:not(.TVMobile) .TVTourPayInstructionPrice,.TVTourPayInstructionControl:not(.TVMobile) .TVTourPayInstructionTitle {
    font-size: 18px
}

.TVTourPayInstructionControl:not(.TVMobile) .TVTourPayInstructionButton {
    width: 200px
}

.TVTourPayInstructionControl.TVMobile {
    align-items: flex-start;
    padding: 15px 0
}

.TVTourPayInstructionControl.TVMobile .TVTourPayInstructionContent,.TVTourPayInstructionControl.TVMobile .TVTourPayInstructionPriceText {
    font-weight: 500
}

.TVTourPayInstructionControl.TVMobile .TVTourPayInstructionPrice,.TVTourPayInstructionControl.TVMobile .TVTourPayInstructionTitle {
    font-size: 16px;
    letter-spacing: -.48px
}

.TVTourPayInstructionControl.TVMobile .TVTourPayInstructionButton {
    font-weight: 600;
    width: 100%
}

.TVAlternativeToursSection:not(:first-child) {
    margin-top: 40px
}

.TVAlternativeToursSection.TVAlternativeToursNearDates .TVAlternativeToursSectionList,.TVAlternativeToursSection.TVAlternativeToursOtherRegions .TVAlternativeToursSectionList {
    overflow-x: auto
}

.TVAlternativeToursSection .TVAlternativeToursSectionTitle {
    font-size: 16px;
    font-weight: 600;
    line-height: 18px;
    letter-spacing: 0;
    color: #333
}

.TVAlternativeToursSection .TVAlternativeToursSectionDescription {
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0;
    color: #5c6672;
    margin-top: 5px
}

.TVAlternativeToursSection .TVAlternativeToursSectionList {
    margin-top: 15px
}

.TVAlternativeToursMessage {
    background-color: #fff;
    border-radius: 6px;
    padding: 20px;
    text-align: center;
    font-size: 13px;
    font-weight: 500;
    line-height: 18px;
    color: #5c6672;
    margin-bottom: 40px
}

.TVAlternativeToursList {
    background-color: #fff;
    border-radius: 6px;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    min-height: 117px
}

.TVAlternativeToursList.TVAlternativeToursListFitContent {
    width: fit-content
}

.TVAlternativeToursList.TVAxisDirection-Row {
    padding: 12px 0 15px
}

.TVAlternativeToursList.TVAxisDirection-Column {
    padding: 0 10px
}

.TVAlternativeToursList.TVAxisDirection-Column .TVAlternativeToursListItems {
    flex-direction: column
}

.TVAlternativeToursList .TVAlternativeToursListItems {
    display: flex;
    width: 100%
}

.TVAlternativeToursList .TVAlternativeToursListNotFound {
    font-size: 13px;
    font-weight: 500;
    line-height: 18px;
    color: #5c6672
}

.TVAlternativeToursItem {
    --min-width: 0;
    --info-min-width: 0;
    padding: 0 15px;
    text-align: center;
    flex: 1;
    min-width: var(--min-width)
}

.TVAlternativeToursItem:not(:first-child) {
    border-left: 1px dashed #ddd
}

.TVAlternativeToursItem .TVAlternativeToursItemTitle {
    font-size: 13px;
    font-weight: 600;
    line-height: 18px;
    letter-spacing: 0;
    color: #333
}

.TVAlternativeToursItem .TVAlternativeToursItemDesc {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0;
    margin-top: 7px
}

.TVAlternativeToursItem .TVAlternativeToursItemDesc.TVColorBlue400 {
    color: #5c6672
}

.TVAlternativeToursItem .TVAlternativeToursItemDesc.TVColorRed430 {
    color: #b94a48
}

.TVAlternativeToursItem .TVAlternativeToursItemInfoWrapper {
    margin-top: 13px;
    min-width: var(--info-min-width)
}

.TVAlternativeToursItem.TVAxisDirection-Row {
    display: flex;
    align-items: center;
    max-width: 100%;
    text-align: left;
    padding: 15px 10px
}

.TVAlternativeToursItem.TVAxisDirection-Row:not(:first-child) {
    border-left: none;
    border-top: 1px dashed #ddd
}

.TVAlternativeToursItem.TVAxisDirection-Row .TVAlternativeToursItemTitle {
    width: 40%
}

.TVAlternativeToursItem.TVAxisDirection-Row .TVAlternativeToursItemDesc {
    width: 20%;
    margin-top: 0
}

.TVAlternativeToursItem.TVAxisDirection-Row .TVAlternativeToursItemInfoWrapper {
    margin-left: auto;
    text-align: center;
    margin-top: 0
}

.TVAlternativeToursItem.TVPreview .TVAlternativeToursItemDesc,.TVAlternativeToursItem.TVPreview .TVAlternativeToursItemInfoWrapper,.TVAlternativeToursItem.TVPreview .TVAlternativeToursItemTitle {
    visibility: hidden;
    position: relative
}

.TVAlternativeToursItem.TVPreview .TVAlternativeToursItemDesc:before,.TVAlternativeToursItem.TVPreview .TVAlternativeToursItemInfoWrapper:before,.TVAlternativeToursItem.TVPreview .TVAlternativeToursItemTitle:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVAlternativeToursItem.TVPreview .TVAlternativeToursItemInfoWrapper {
    border-radius: 20px;
    overflow: hidden
}

.TVAlternativeToursItem.TVPreview.TVAxisDirection-Column .TVAlternativeToursItemDesc,.TVAlternativeToursItem.TVPreview.TVAxisDirection-Column .TVAlternativeToursItemTitle {
    margin-left: auto;
    margin-right: auto
}

.TVAlternativeToursItem.TVPreview.TVAxisDirection-Column .TVAlternativeToursItemTitle {
    width: 80%
}

.TVAlternativeToursItem.TVPreview.TVAxisDirection-Column .TVAlternativeToursItemDesc {
    width: 50%
}

.TVAlternativeToursItem.TVPreview.TVAxisDirection-Row .TVAlternativeToursItemTitle {
    width: 20%
}

.TVAlternativeToursItem.TVPreview.TVAxisDirection-Row .TVAlternativeToursItemDesc {
    margin-left: 50px
}

.TVAlternativeToursHotelList {
    background-color: #fff;
    border-radius: 6px;
    padding: 0 15px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 117px;
    width: 100%
}

.TVAlternativeToursHotelListItems {
    width: 100%
}

.TVAlternativeToursHotelListNotFound {
    font-size: 13px;
    font-weight: 500;
    line-height: 18px;
    color: #5c6672
}

.TVAlternativeToursHotelItem {
    --info-min-width: 0;
    display: flex;
    padding: 15px 0
}

.TVAlternativeToursHotelItem:not(:first-child) {
    border-top: 1px dashed #ddd
}

.TVAlternativeToursHotelItem .TVAlternativeToursHotelItemImageWrapper {
    position: relative;
    min-width: 90px;
    height: 72px;
    margin-right: 30px
}

.TVAlternativeToursHotelItem .TVAlternativeToursHotelItemImage {
    height: 100%;
    border-radius: 4px;
    overflow: hidden;
    background-size: cover;
    background-position: 50%
}

.TVAlternativeToursHotelItem .TVAlternativeToursHotelItemRating {
    font-size: 13px;
    font-weight: 700;
    line-height: 18px;
    letter-spacing: 0;
    color: #fff;
    border: 2px solid #fff;
    border-radius: 5px;
    padding: 0 5px;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%) translateX(50%)
}

.TVAlternativeToursHotelItem .TVAlternativeToursHotelItemRating.TVRatingBad {
    background-color: #e07a55
}

.TVAlternativeToursHotelItem .TVAlternativeToursHotelItemRating.TVRatingNormal {
    background-color: #e6b661
}

.TVAlternativeToursHotelItem .TVAlternativeToursHotelItemRating.TVRatingGood {
    background-color: #5cb85c
}

.TVAlternativeToursHotelItem .TVAlternativeToursHotelItemRating.TVRatingExcellent {
    background-color: #4bdc4b
}

.TVAlternativeToursHotelItem .TVAlternativeToursHotelItemTitle {
    color: #333
}

.TVAlternativeToursHotelItem .TVAlternativeToursHotelItemInfoWrapper {
    margin-left: 30px;
    min-width: var(--info-min-width)
}

.TVAlternativeToursHotelItem .TVAlternativeToursHotelItemContent {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex: 1 1 auto
}

.TVAlternativeToursHotelItem.TVAxisDirection-Column .TVAlternativeToursHotelItemContent {
    flex-direction: column;
    align-items: flex-start
}

.TVAlternativeToursHotelItem.TVAxisDirection-Column .TVAlternativeToursHotelItemRating {
    top: 15px;
    transform: translateX(50%)
}

.TVAlternativeToursHotelItem.TVAxisDirection-Column .TVAlternativeToursHotelItemInfoWrapper {
    margin-top: 5px;
    margin-left: auto
}

.TVAlternativeToursHotelItem.TVAxisDirection-Column .TVAlternativeToursHotelItemImageWrapper {
    min-width: 90px;
    height: 90px
}

.TVAlternativeToursHotelItem.TVPreview .TVAlternativeToursHotelItemImage,.TVAlternativeToursHotelItem.TVPreview .TVAlternativeToursHotelItemInfoWrapper {
    visibility: hidden;
    position: relative
}

.TVAlternativeToursHotelItem.TVPreview .TVAlternativeToursHotelItemImage:before,.TVAlternativeToursHotelItem.TVPreview .TVAlternativeToursHotelItemInfoWrapper:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVAlternativeToursHotelItem.TVPreview .TVAlternativeToursHotelItemInfoWrapper {
    border-radius: 20px;
    overflow: hidden
}

.TVAlternativeToursHotelItem.TVPreview .TVAlternativeToursHotelItemRating {
    display: none
}

.TVAlternativeToursItemInfo {
    display: flex
}

.TVAlternativeToursItemInfoValue {
    display: flex;
    justify-content: center;
    font-size: 13px;
    font-weight: 600;
    line-height: 18px;
    letter-spacing: 0;
    padding-top: 8px;
    padding-bottom: 8px;
    color: #5c6672;
    white-space: nowrap;
    box-sizing: border-box;
    text-decoration: none;
    width: 100%
}

.TVAlternativeToursItemInfoValue.TVAlternativeToursItemInfoPriceDecreased,.TVAlternativeToursItemInfoValue.TVAlternativeToursItemInfoPriceEqual,.TVAlternativeToursItemInfoValue.TVAlternativeToursItemInfoPriceIncreased {
    border-radius: 20px;
    padding-left: 20px;
    padding-right: 20px
}

.TVAlternativeToursItemInfoValue.TVAlternativeToursItemInfoPriceIncreased {
    color: #b94a48;
    background-color: #f2dfdf
}

.TVAlternativeToursItemInfoValue.TVAlternativeToursItemInfoPriceDecreased {
    color: #5cb85c;
    background-color: #dcf0dc
}

.TVAlternativeToursItemInfoValue.TVAlternativeToursItemInfoPriceEqual {
    background-color: #edf2f5
}

.TVTourBuyFromAgencyItem {
    display: flex;
    align-items: center;
    background: #fff;
    border-radius: 5px
}

.TVTourBuyFromAgencyItem>:not(:last-child) {
    margin-right: 30px
}

.TVTourBuyFromAgencyItem:not(:last-child) {
    margin-bottom: 8px
}

.TVTourBuyFromAgencyItem.TVPaddingSize-S {
    padding: 16px
}

.TVTourBuyFromAgencyItem.TVPaddingSize-M {
    padding: 20px 16px 20px 24px
}

.TVTourBuyFromAgencyItemLogo {
    width: 120px;
    height: 32px;
    display: block;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: 0
}

.TVTourBuyFromAgencyItemDetail {
    flex: 1;
    font-size: 13px;
    line-height: 21px;
    color: #5c6672
}

.TVTourBuyFromAgencyItemButtonArrow:after {
    font-family: TVicons;
    content: "\e906";
    margin-left: 10px;
    line-height: 100%
}

.TVTourBuyFromAgencyGroup:not(:last-child) {
    margin-bottom: 40px
}

.TVTourBuyFromAgencyGroupHeader {
    margin-bottom: 20px
}

.TVTourBuyFromAgencyGroupTitle {
    font-size: 18px;
    color: #333;
    margin-bottom: 8px
}

.TVTourBuyFromAgencyGroupSubtitle {
    font-size: 13px;
    line-height: 18px;
    color: #5c6672
}

.TVTourBuyFromAgencyOfficeControl {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.TVTourBuyFromAgencyOfficeLink {
    display: flex;
    align-items: flex-end
}

.TVTourBuyFromAgencyOfficeLink .TVTourBuyFromAgencyOfficeButton {
    margin-left: 60px;
    text-transform: none;
    width: 360px
}

.TVTourBuyFromAgencyOfficeLink.TVMobile {
    flex-direction: column
}

.TVTourBuyFromAgencyOfficeLink.TVMobile .TVTourBuyFromAgencyOfficeButton {
    margin-left: 0;
    margin-top: 20px;
    width: 100%
}

.TVTourBuyFromAgencyOfficeInfo {
    display: flex;
    flex-direction: column;
    flex: 1
}

.TVTourBuyFromAgencyInfoTitle {
    margin-bottom: 10px;
    font-size: 18px;
    color: #333
}

.TVTourBuyFromAgencyInfoSubtitle {
    font-size: 13px;
    color: #5c6672
}

.TVTourBuyFromAgencyButton {
    border-radius: 30px;
    padding: 10px 0;
    text-transform: none;
    font-size: 13px
}

.TVTourBuyCustomerForm.TVAxisDirection-Row {
    display: grid;
    gap: 17px 50px;
    align-items: start
}

.TVTourBuyCustomerForm.TVAxisDirection-Column {
    display: grid;
    gap: 8px
}

.TVTourBuyCustomerForm.TVAxisDirection-Column .TVTourBuyCustomerFormTitle {
    margin-bottom: 9px
}

.TVTourBuyCustomerForm.TVAxisDirection-Column .TVTourBuyCustomerFormDocumentTitle {
    margin-top: 16px;
    margin-bottom: 9px
}

.TVTourBuyCustomerFormTitle {
    grid-area: title
}

.TVTourBuyCustomerFormDocument,.TVTourBuyCustomerFormProfile {
    display: grid;
    gap: 8px
}

.TVTourBuyCustomerFormProfile {
    grid-area: profile
}

.TVTourBuyCustomerFormDocumentTitle {
    grid-area: document-title
}

.TVTourBuyCustomerFormDocument {
    grid-area: document
}

.TVTourBuyCustomerFormPassport {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "passport-number birthday" "passport-authority-code passport-issue" "passport-authority passport-authority" "address address";
    gap: 8px
}

.TVUserFormInputPassportNumber {
    grid-area: passport-number
}

.TVUserFormInputBirthday {
    grid-area: birthday
}

.TVUserFormInputPassportAuthorityCode {
    grid-area: passport-authority-code
}

.TVUserFormInputPassportIssue {
    grid-area: passport-issue
}

.TVUserFormInputPassportAuthority {
    grid-area: passport-authority
}

.TVUserFormInputPassportAddress {
    grid-area: address
}

.TVTourBuyCustomerFormIIN {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "iin-number";
    gap: 8px
}

.TVUserFormInputDocumentIINNumber {
    grid-area: iin-number
}

.TVTourCustomerButtonsControl>:not(:last-child) {
    margin-bottom: 24px
}

.TVTourBuyControl .TVTourBuyCustomerContactsForm,.TVTourBuyControl .TVTourBuyFaqControl {
    margin-top: 36px;
    padding-top: 36px;
    border-top: 1px dashed rgba(92,102,114,.5)
}

.TVTourBuyControl .TVTourBuyTotal {
    margin-top: 43px
}

.TVHotelCardBody {
    margin-top: 32px
}

.TVHotelCardBody .TVUpButton {
    border-radius: 50px;
    background-color: #edf2f5;
    color: #5c6672
}

.TVHotelCardVideo {
    height: 650px;
    border-radius: 5px;
    overflow: hidden
}

.TVTourCardWindowDetailBlock>.TVPreview {
    visibility: hidden;
    position: relative;
    height: 30px
}

.TVTourCardWindowDetailBlock>.TVPreview:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 520px;
    height: 30px;
    margin-left: 25px
}

.TVTourBuyFaqList {
    margin-top: 12px
}

.TVLayoutControl.TVAlternativeToursPage .TVMobilePanelBody {
    background-color: #edf2f5;
    box-sizing: border-box;
    padding: 35px 20px;
    min-height: 100%
}

.TVExcursionPage .TVMobilePanelCaption:before {
    content: "Программа тура"
}

.TVExcursionDescription {
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    color: #777;
    line-height: 18px;
    margin: 20px
}

.TVLayoutControl.TVFlightDetailPage .TVFlightDetailListControl {
    padding: 20px
}

.TVLayoutControl.TVFlightDetailPage .TVMobilePanelCaption:before {
    content: "Информация о рейсе"
}

.TVLayoutControl.TVFlightSelectionListPage .TVMobilePanelBody {
    box-sizing: border-box;
    padding: 15px 10px
}

.TVLayoutControl.TVFlightSelectionListPage .TVMobilePanelCaption:before {
    content: "Выбор рейса"
}

.TVLayoutControl.TVHotelDescriptionPage .TVMobilePanelCaption:before {
    content: "Об отеле"
}

.TVLayoutControl.TVHotelMapPage .TVMobilePanelCaption:before {
    content: "Отель на карте"
}

.TVLayoutControl.TVHotelReviewsPage .TVMobilePanelCaption:before {
    content: "Отзывы об отеле"
}

.TVLayoutControl.TVHotelReviewPage .TVMobilePanelCaption:before {
    content: "Отзыв об отеле"
}

.TVLayoutControl.TVHotelReviewsPage .TVMobilePanelBody {
    padding: 20px;
    box-sizing: border-box
}

.TVLayoutControl.TVHotelVideoPage .TVMobilePanelCaption:before {
    content: "Видео об отеле"
}

.TVLayoutControl.TVHotelVideoPage .TVHotelVideoControl,.TVLayoutControl.TVHotelVideoPage .TVMobilePanelBody {
    height: 100%
}

.TVLayoutControl.TVOperatorBookingPage {
    background: #edf2f5
}

.TVLayoutControl.TVOperatorBookingPage .TVMobilePanelCaption:before {
    content: "Бронирование"
}

.TVLayoutControl.TVOperatorBookingPage .TVMobileMessage {
    color: #5c6672
}

.TVOrderFromAgencyPage.TVMobilePanel {
    background: #edf2f5
}

.TVOrderFromAgencyPage.TVMobilePanel .TVMobilePanelCaption:before {
    content: "Партнеры бронирования"
}

.TVOrderFromAgencyPage.TVMobilePanel .TVMobilePanelBody {
    box-sizing: border-box;
    padding: 20px
}

.TVOrderFromAgencyOfficePage.TVMobilePanel {
    background: #edf2f5
}

.TVOrderFromAgencyOfficePage.TVMobilePanel .TVMobilePanelBody {
    box-sizing: border-box
}

.TVLayoutControl.TVOrderCreatePage {
    background: #edf2f5
}

.TVLayoutControl.TVOrderCreatePage .TVMobilePanelBody {
    box-sizing: border-box;
    padding: 20px
}

.TVLayoutControl.TVOrderCreatePage .TVMobilePanelCaption:before {
    content: "Бронирование"
}

.TVLayoutControl.TVOrderCreatePage .TVMobileMessage {
    color: #5c6672
}

.TVLayoutControl.TVOrderCreatePage .TVSendingBuyButton:before {
    content: "Перейти к оплате"
}

.TVLayoutControl.TVTourPage .TVMobilePanelCaption:before {
    content: "Информация"
}

.TVLayoutControl.TVTourPage .TVMobilePanelBody {
    height: 100%
}

.TVLayoutControl.TVTourPage .TVTourCardControl {
    min-height: 100%;
    display: flex
}

.TVLayoutControl.TVTourPage .TVHotelTitleBlockWrapper {
    padding-bottom: 15px
}

.TVLayoutControl.TVTourPage.TVError .TVMobilePanelBlock:before {
    content: none
}

.TVLayoutControl.TVTourPage.TVError .TVMobilePanelBody {
    display: block
}

.TVTourCardWindow {
    width: 940px;
    box-shadow: 0 0 20px #000;
    border-radius: 5px;
    overflow: hidden;
    background-color: #fff;
    font-family: var(--tv-font-theme2)
}

.TVTourCardWindow.TVError:before {
    content: ""
}

.TVTourCardWindow .TVTourCardWindowHeaderBlock {
    padding: 0 54px 0 24px;
    height: 56px
}

.TVTourCardWindow .TVClosePopUp {
    top: 15px
}

.TVTourCardWindow .TVInstruction,.TVTourCardWindow .TVTourCardWindowInstruction {
    padding: 40px;
    text-align: center;
    color: #444;
    font-weight: 300;
    font-size: 21px
}

.TVTourCardWindow .TVTourCardWindowHotelBlock {
    padding: 30px 25px 45px
}

.TVTourCardWindowInfoBlock {
    background-color: #2fb6dd;
    color: #fff;
    padding: 24px
}

.TVTourCardWindowDetailBlock .TVAgencyOrderControl,.TVTourCardWindowDetailBlock .TVCustomerOrderControl,.TVTourCardWindowDetailBlock .TVManagerOrderControl,.TVTourCardWindowDetailBlock .TVTourCardBookingControl {
    padding: 30px 48px 48px;
    background-color: #edf2f5;
    color: #5c6672
}

.TVTourCardWindowDetailBlock .TVAgencyOrderBackBtn,.TVTourCardWindowDetailBlock .TVCustomerOrderBackBtn,.TVTourCardWindowDetailBlock .TVCustomerOrderTabs,.TVTourCardWindowDetailBlock .TVManagerOrderBackBtn,.TVTourCardWindowDetailBlock .TVTourCardBookingBackBtn,.TVTourCardWindowDetailBlock .TVTourCardWindowAltToursBackButton {
    margin-bottom: 35px
}

.TVTourCardWindowDetailBlock .TVAgencyOrderBackBtn,.TVTourCardWindowDetailBlock .TVCustomerOrderBackBtn,.TVTourCardWindowDetailBlock .TVManagerOrderBackBtn,.TVTourCardWindowDetailBlock .TVTourCardBookingBackBtn,.TVTourCardWindowDetailBlock .TVTourCardWindowAltToursBackButton {
    font-size: 13px;
    cursor: pointer;
    width: fit-content
}

.TVTourCardWindowDetailBlock .TVAgencyOrderBackBtn:before,.TVTourCardWindowDetailBlock .TVCustomerOrderBackBtn:before,.TVTourCardWindowDetailBlock .TVManagerOrderBackBtn:before,.TVTourCardWindowDetailBlock .TVTourCardBookingBackBtn:before,.TVTourCardWindowDetailBlock .TVTourCardWindowAltToursBackButton:before {
    font-family: TVicons;
    content: "\e909"
}

.TVTourCardWindowDetailBlock .TVAgencyOrderBackBtn:after,.TVTourCardWindowDetailBlock .TVCustomerOrderBackBtn:after,.TVTourCardWindowDetailBlock .TVManagerOrderBackBtn:after,.TVTourCardWindowDetailBlock .TVTourCardBookingBackBtn:after,.TVTourCardWindowDetailBlock .TVTourCardWindowAltToursBackButton:after {
    content: "Назад к описанию отеля"
}

.TVTourCardWindowAltToursWrapper {
    padding: 30px 50px;
    background-color: #edf2f5
}

.TVTourBuyAutocompleteTooltip {
    overflow-y: auto
}

.TVTourBuyAutocompleteItem {
    width: 100%
}

.TVCat {
    font-family: var(--tv-font-theme1);
    line-height: normal
}

.TVCatBreadcrumb {
    padding: 10px 10px 10px 25px;
    background-color: #efefef;
    color: #b0afaf;
    font-size: 14px
}

.TVCatBreadcrumb t-span {
    color: #2e2e2e
}

.TVCatHotelHeader {
    background-color: #4b90d5;
    padding: 25px;
    position: relative;
    box-shadow: inset 0 1px 1px #888;
    box-shadow: inset 0 1px 1px rgba(0,0,0,.2)
}

.TVCatHotelStarWrap {
    position: relative;
    margin-top: 10px;
    top: 5px
}

.TVCatHotelStarA {
    background: url(//tourvisor.ru/module/newform/modules/images/module-sprite.png);
    background-position: -146px 326px
}

.TVCatHotelStarA,.TVCatHotelStarP {
    display: inline-block;
    width: 19px;
    height: 18px;
    margin-right: 1px
}

.TVCatHotelStarP {
    background: url(//tourvisor.ru/module/newform/modules/images/module-sprite.png);
    background-position: -166px 326px
}

.TVCatHotelWrap {
    font-size: 30px
}

.TVCatHotelName {
    color: #fff;
    font-weight: 500;
    text-shadow: 1px 1px 1px #555;
    text-shadow: 1px 1px 1px rgba(0,0,0,.6);
    padding: 10px 0;
    display: inline-block;
    width: 70%
}

.TVCatHotelPrice {
    display: inline-block;
    position: absolute;
    right: 25px;
    background-color: #fff;
    padding: 9px 15px;
    font-size: 18px;
    box-shadow: 1px 1px 1px rgba(0,0,0,.4);
    box-shadow: 1px 1px 1px #777;
    height: 38px
}

.TVCatHotelPrice t-span {
    font-size: 30px;
    font-weight: 500
}

.TVCatHotelPrice:before {
    border: 28px solid transparent;
    border-right: 32px solid #fff;
    content: " ";
    position: absolute;
    left: -60px;
    top: 0
}

.TVCatHeaderMenu {
    margin-top: 10px;
    margin-bottom: 15px;
    font-size: 14px;
    font-weight: 400;
    color: #fff;
    text-shadow: 1px 1px 1px #555;
    text-shadow: 1px 1px 1px rgba(0,0,0,.6);
    position: relative
}

.TVCatHeaderRegion {
    display: inline-block;
    margin-right: 35px
}

.TVCatButton {
    color: #fff;
    font-weight: 400;
    font-size: 14px;
    display: inline-block;
    padding: 5px 15px;
    background-color: #4b90d5;
    text-shadow: -1px -1px 0 #999;
    text-shadow: -1px -1px 0 rgba(0,0,0,.2);
    box-shadow: 1px 1px 1px #777;
    box-shadow: 1px 1px 1px rgba(0,0,0,.7);
    border-radius: 2px;
    cursor: pointer
}

.TVCatButton:hover {
    box-shadow: 1px 1px 3px #333;
    box-shadow: 1px 1px 3px rgba(0,0,0,.9)
}

.TVCatButton:active {
    box-shadow: inset 1px 1px 5px #555;
    box-shadow: inset 1px 1px 5px rgba(0,0,0,.7)
}

.TVCatHeaderSearch {
    display: inline-block;
    position: absolute;
    right: 20px;
    cursor: pointer
}

.TVCatNav {
    border-top: 1px solid #dadadb;
    border-bottom: 1px solid #dadadb;
    background-image: url(//tourvisor.ru/module/newform/images/net.png);
    background-repeat: repeat;
    background-color: #efefef;
    padding: 15px 25px
}

.TVCatNavButton {
    display: inline-block;
    border: 1px solid #cbcbcb;
    padding: 7px 15px 7px 43px;
    background-color: #fefefe;
    color: #626262;
    font-size: 16px;
    font-weight: 300;
    margin-right: 10px;
    position: relative;
    cursor: pointer;
    line-height: 1.39
}

.TVCatNavButton.TVCatNavActive {
    border-bottom: none;
    background-color: #fff;
    cursor: default
}

.TVCatNavButton.TVCatNavActive:after {
    border-left: 1px solid #cbcbcb;
    border-right: 1px solid #cbcbcb;
    background-color: #fff;
    position: absolute;
    content: " ";
    height: 18px;
    width: 100%;
    left: -1px;
    top: 35px
}

.TVCatNavButton:before {
    position: absolute;
    background-image: url(//tourvisor.ru/module/newform/modules/images/module-sprite.png);
    content: ""
}

.TVCatNavDesc.TVCatNavButton:before {
    background-position: -3px 187px;
    height: 24px;
    width: 25px;
    left: 10px
}

.TVCatNavPhoto.TVCatNavButton:before {
    background-position: -31px 187px;
    height: 20px;
    width: 26px;
    left: 10px
}

.TVCatNavMap.TVCatNavButton:before {
    background-position: -60px 187px;
    height: 21px;
    width: 19px;
    left: 10px
}

.TVCatNavReview.TVCatNavButton:before {
    background-position: -84px 187px;
    height: 20px;
    width: 25px;
    left: 10px;
    top: 10px
}

.TVCatNavPrice.TVCatNavButton:before {
    background-position: -113px 187px;
    height: 20px;
    width: 20px;
    left: 13px
}

.TVCatNavCB.TVCatNavButton:before {
    background-position: -296px 187px;
    height: 20px;
    width: 20px;
    left: 13px
}

.TVCatNavHot.TVCatNavButton:before {
    background-position: -136px 187px;
    height: 20px;
    width: 20px;
    left: 12px
}

.TVCatNavHot.TVCatNavButton {
    color: #994848
}

.TVCatDetail {
    background-color: #fff
}

.TVCatAboutHotelBlock {
    vertical-align: top;
    padding-right: 25px;
    width: 586px;
    display: inline-block
}

.TVCatAboutHotelRightSidebar {
    vertical-align: top;
    width: 278px;
    display: inline-block
}

.TVCatAboutHotel,.TVCatDetail .TVHotelReviewsView,.TVCatHotelMap,.TVCatHotelPhoto {
    padding: 25px
}

.TVCatHotelBigPhoto {
    width: 100%;
    height: 395px;
    background-size: cover;
    background-position: 50%;
    background-repeat: no-repeat
}

.TVSimpleImageSlider {
    overflow: hidden;
    position: relative
}

.TVSimpleImageSlider:hover .TVSNavLeft,.TVSimpleImageSlider:hover .TVSNavRight {
    opacity: 1;
    filter: alpha(opacity=100)
}

.TVSimpleImageSliderRoot {
    position: relative
}

.TVSimpleImageSlider .TVSNavLeft,.TVSimpleImageSlider .TVSNavRight {
    top: 45%
}

.TVSimpleImageSlider .TVSNavRight {
    right: 0
}

.TVSimpleImageSlider.TVSNavLeft {
    left: 0
}

.TVSRightImg {
    background-position: -18px -99px
}

.TVSLeftImg,.TVSRightImg {
    background-image: url(//tourvisor.ru/module/newform/modules/images/minprice-sprite.png);
    width: 18px;
    height: 33px
}

.TVSLeftImg {
    background-position: -1px -99px
}

.TVCatAboutHotelBlock .TVSimpleSlidePic {
    width: 586px;
    height: 395px;
    display: inline-block;
    vertical-align: top;
    background-size: cover;
    background-position: 50%;
    background-repeat: no-repeat
}

.TVCatHotelRatingBox {
    position: absolute;
    background-color: #5ac0de;
    color: #fff;
    padding: 9px 15px;
    font-size: 30px;
    font-weight: 500;
    height: 40px;
    line-height: 1.39
}

.TVCatHotelRatingBox:after {
    border: 10px solid transparent;
    border-left-color: #5ac0de;
    content: " ";
    position: absolute;
    right: -19px;
    top: 20px
}

.TVCatHotelScore {
    padding: 10px 10px 10px 95px;
    color: #000;
    font-size: 18px;
    font-weight: 500;
    line-height: 1;
    height: 39px
}

.TVCatSmallText,.TVCatSmallText a,.TVCatSmallText a:visited {
    color: grey;
    font-size: 12px;
    font-weight: 300;
    padding-top: 5px
}

.TVCatHotelDescBlock {
    border-bottom: 1px solid #d5d5d5;
    padding: 20px 0
}

.TVCatHotelDescHeader {
    display: inline-block;
    width: 35%;
    vertical-align: top;
    color: #588cb1;
    font-size: 18px
}

.TVCatHotelDescText {
    width: 60%;
    display: inline-block;
    color: #3a3a3a;
    font-size: 14px;
    line-height: 1.7;
    font-weight: 300
}

.TVCatHotelDescTextRegistryLink {
    color: #185584;
    border-bottom: 1px dashed;
    cursor: pointer;
    position: relative;
    text-transform: none;
    text-decoration: none
}

.TVCatHotelDescTextSite {
    word-break: break-all
}

.TVCatHotelDescText ul {
    padding-left: 14px;
    margin: 0
}

.TVCatHotelPicturesBlock {
    margin-bottom: 17px
}

.TVCatHotelPicturesBlock ul {
    width: 285px;
    padding-left: 0;
    margin: 0
}

.TVCatHotelPicturesBlock li {
    width: 49px;
    height: 49px;
    vertical-align: top;
    margin: 0 8px 8px 0;
    background-size: cover;
    display: inline-block;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    cursor: pointer;
    border: 2px solid #fff
}

.TVCatHotelPicturesBlock li.active {
    border: 2px solid #4b90d5
}

.TVImageBreadCrumb {
    position: absolute;
    right: 0;
    bottom: 0;
    color: #fff;
    padding: 5px;
    background-color: #000;
    background-color: rgba(0,0,0,.64);
    font-size: 13px
}

.TVCatHotelPicturesBlock A {
    background-color: #efefef;
    width: 100%;
    color: grey;
    cursor: pointer;
    text-align: center;
    font-size: 14px;
    font-weight: 300;
    display: block;
    padding: 12px 0
}

.TVCatHotelTypeBlock {
    color: #588cb1;
    font-size: 16px;
    font-weight: 300;
    line-height: 45px;
    padding: 20px;
    border: 1px solid #ddd;
    background-color: #f4f7ff;
    margin-bottom: 25px
}

.TVCatHotelTypeItem {
    padding-left: 65px;
    position: relative
}

.TVCatHotelTypeItem:before {
    position: absolute;
    background-image: url(//tourvisor.ru/module/newform/modules/images/module-sprite.png);
    content: ""
}

.TVCatHotelTypeBeach.TVCatHotelTypeItem:before {
    width: 33px;
    height: 30px;
    background-position: -26px 154px;
    left: 10px;
    top: 13px
}

.TVCatHotelTypeActive.TVCatHotelTypeItem:before {
    width: 33px;
    height: 30px;
    background-position: -98px 159px;
    left: 13px;
    top: 10px
}

.TVCatHotelTypeCity.TVCatHotelTypeItem:before {
    width: 33px;
    height: 30px;
    background-position: -64px 159px;
    left: 13px;
    top: 12px
}

.TVCatHotelTypeDeluxe.TVCatHotelTypeItem:before {
    width: 33px;
    height: 30px;
    background-position: -207px 153px;
    left: 16px;
    top: 16px
}

.TVCatHotelTypeSpa.TVCatHotelTypeItem:before {
    width: 36px;
    height: 30px;
    background-position: -165px 154px;
    left: 14px;
    top: 15px
}

.TVCatHotelTypeRelax.TVCatHotelTypeItem:before {
    width: 33px;
    height: 30px;
    background-position: -131px 159px;
    left: 18px;
    top: 9px
}

.TVCatHotelTypeFamily.TVCatHotelTypeItem:before {
    width: 33px;
    height: 30px;
    background-position: 9px 157px;
    left: 10px;
    top: 12px
}

.TVCatHotelPhoto IMG {
    margin: 10px;
    vertical-align: top;
    min-width: 423px;
    max-width: 890px
}

.TVCatAddReview.TVCatButton {
    position: relative;
    padding: 13px 30px 13px 70px;
    background-color: #7fcd21
}

.TVCatAddReview.TVCatButton:before {
    position: absolute;
    background-image: url(//tourvisor.ru/module/newform/modules/images/module-sprite.png);
    content: "";
    background-position: -127px 300px;
    height: 30px;
    width: 30px;
    left: 30px;
    top: 7px
}

.TVCatRatingStars {
    display: inline-block;
    vertical-align: middle
}

.TVCatRatingStarsName {
    text-align: right;
    display: inline-block;
    padding-right: 10px;
    color: #aaa9a9;
    font-weight: 300;
    font-size: 14px;
    width: 90px
}

.TVCatRatingStarWrap {
    position: relative;
    margin-top: 5px;
    top: 1px;
    display: inline-block
}

.TVCatRatingStarA {
    background: url(//tourvisor.ru/module/newform/modules/images/module-sprite.png);
    background-position: -186px 322px
}

.TVCatRatingStarA,.TVCatRatingStarP {
    display: inline-block;
    width: 13px;
    height: 13px;
    margin-right: 1px
}

.TVCatRatingStarP {
    background: url(//tourvisor.ru/module/newform/modules/images/module-sprite.png);
    background-position: -201px 322px
}

.TVDescrHotelUpButton {
    cursor: pointer;
    background-color: #efefef;
    width: 300px;
    color: grey;
    text-align: center;
    font-size: 14px;
    font-weight: 300;
    display: block;
    padding: 12px 0;
    margin: 20px 0 0 300px;
    border-radius: 4px;
    text-transform: uppercase
}

.TVDescrHotelUpButton:after {
    content: "наверх"
}

.TVInterfaceWrapper .TVFilterForm,.TVInterfaceWrapper .TVMainFilter,.TVInterfaceWrapper .TVMainForm,.TVInterfaceWrapper .TVSearchButton,.TVMobileForm .TVSearchButton {
    text-shadow: none
}

.TVInterfaceWrapper .TVSearchButton:after,.TVMobileForm .TVSearchButton:after {
    display: none
}

.TVSearchingFormFlexBlock {
    display: flex;
    gap: 20px 20px
}

.TVSearchingFormFlexBlock>* {
    flex: 1
}

.TVSearchingFormColumnFlexBlock {
    display: flex;
    flex-direction: column;
    gap: 20px 20px
}

.tv-search-form,.tv_drop_panel,.TVSearchingForm,.TVSearchResults {
    font-family: var(--tv-font-theme2);
    line-height: 1.39;
    font-size: medium;
    text-align: left
}

.tv-search-form .TVTourBlock .TVPriceHuman,.tv_drop_panel .TVTourBlock .TVPriceHuman,.TVSearchingForm .TVTourBlock .TVPriceHuman,.TVSearchResults .TVTourBlock .TVPriceHuman {
    border-top: 1px solid #999
}

.tv-search-form *,.tv_drop_panel *,.TVSearchResults * {
    box-sizing: content-box;
    background-repeat: repeat
}

.TVInterfaceWrapper {
    border-radius: 5px 5px 5px 5px;
    overflow: hidden;
    text-align: left
}

.TVTopFormBlock {
    display: flex;
    justify-content: space-between
}

.TVSearchFormCartPreview {
    font-size: 13px;
    display: flex;
    justify-content: end
}

.TVHotelsMode .TVTopFormBlock:before {
    content: "";
    display: block;
    font-size: 18px;
    content: "Поиск отелей"
}

.TVResultPanel .TVSearchingForm {
    margin: 0 auto
}

.TVMainForm {
    background-color: #4a8fb2;
    color: #fff
}

.TVMainFilterIcon {
    display: inline-block;
    vertical-align: middle
}

.TVMainFilterIcon:before {
    margin-right: 5px;
    font-size: 14px
}

.TVDepartureFilterIcon:before {
    font-family: TVicons;
    content: "\e92d"
}

.TVCountryFilterIcon:before {
    font-family: TVicons;
    content: "\e954"
}

.TVFlyDatesFilterIcon:before {
    font-family: TVicons;
    content: "\e93b"
}

.TVNightsFilterIcon:before {
    font-family: TVicons;
    content: "\e942"
}

.TVTouristsFilterIcon:before {
    font-family: TVicons;
    content: "\e95b"
}

.TVAddFiltersIcon:before {
    font-family: TVicons;
    content: "\e922"
}

.TVFlexSpaceBetween {
    justify-content: space-between
}

.TVMainForm {
    padding: 20px
}

.TVResultPanel {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    width: 1040px;
    z-index: 9999;
    margin: 50px auto 0;
    border-radius: 3px;
    box-sizing: content-box
}

.TVResultContent {
    width: 1040px;
    margin: 0 auto;
    padding: 15px 15px 20px;
    background-color: #fff;
    border-radius: 5px;
    box-shadow: 0 0 10px #000;
    position: relative
}

.TVUndoButton {
    cursor: pointer;
    float: right;
    height: 15px;
    position: relative;
    top: 3px;
    width: 15px
}

.TVUndoButton:before {
    font-family: TVicons;
    content: "\e912";
    color: #c00;
    font-size: 18px
}

.TVResultContent .TVUndoButton {
    top: -7px;
    right: -12px;
    position: absolute;
    background: #fff;
    border-radius: 20px;
    padding: 2px;
    height: auto;
    width: auto;
    line-height: 1
}

.TVResultPanel .TVResultContent {
    box-sizing: border-box
}

.tv_drop_panel .TVResortHeader {
    padding: 7px
}

.TVAskMobile {
    width: 100%!important;
    position: relative;
    z-index: 999;
    background-color: #777!important;
    color: #fff!important;
    font-size: xx-large!important;
    font-size: 30px!important;
    font-weight: 700!important;
    text-align: center!important;
    line-height: 50px!important;
    font-family: Arial,Helvetica,sans-serif;
    text-transform: uppercase;
    padding-top: 20px
}

.TVAskMobileTitle:after {
    content: "Хотите перейти на мобильную версию поиска туров?"
}

.TVAskYes:after {
    content: "Да"
}

.TVAskNo:after {
    content: "Нет"
}

.TVAskMobile .TVButton {
    width: 180px;
    height: 51px;
    font-size: 30px!important;
    margin: 16px 30px!important;
    line-height: 47px!important;
    display: inline-block
}

.TVNoCFormBlock {
    display: inline-block;
    vertical-align: top;
    padding-top: 10px;
    padding-bottom: 11px;
    padding-left: 24px;
    background-color: #fff;
    border-right: 1px solid #ddd;
    height: 44px
}

.TVNoCFormBlock .TVLabel {
    display: block;
    float: none;
    margin-bottom: 0
}

.TVNoCFormBlock.TVLocationBlock .TVContent,.TVNoCFormBlock .TVTextBoxContent {
    color: #000;
    font-weight: 700;
    font-size: 18px;
    cursor: pointer;
    font-family: var(--tv-font-theme2)
}

.TVNoCFormBlock.TVLocationBlock>.TVLabel:after {
    content: "Город вылета:"
}

.TVTimeOutDialog {
    width: 492px;
    height: 268px;
    background: #fff;
    border-radius: 5px;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    margin: auto;
    max-width: 100%;
    max-height: 100%;
    font-family: var(--tv-font-theme2)
}

.TVTimeOutDialog .TVTimeOutDialogTitle:after {
    content: "Результаты поиска туров устарели"
}

.TVTimeOutDialog .TVTimeOutDialogTitle {
    margin-left: 70px;
    font-size: 20px;
    height: 40px;
    line-height: 40px;
    margin-top: 34px;
    color: #363636
}

.TVTimeOutDialog .TVTimeOutDialogMessage:after {
    content: "С момента поиска прошло более двух часов.\aНайденные предложения могут быть неактуальны.";
    white-space: pre
}

.TVTimeOutDialog .TVTimeOutDialogMessage {
    margin-left: 70px;
    color: #888;
    font-size: 14px;
    line-height: 1.7
}

.TVTimeOutDialog .TVTimeOutDialogUpdatePriceButton:after {
    content: "Обновить цены"
}

.TVTimeOutDialog .TVTimeOutDialogUpdatePriceButton {
    border: 1px solid #4cae4c;
    background-color: #5cb85c;
    width: 350px;
    height: 60px;
    margin: 38px 70px;
    display: inline-block;
    color: #fff;
    border-radius: 5px;
    position: relative;
    cursor: pointer;
    text-align: center;
    font-size: 20px;
    line-height: 60px
}

.TVSearchButton {
    min-height: 40px;
    max-width: 270px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    user-select: none;
    cursor: pointer
}

.TVRadioGroupItem.TVFontWeightSize-M .TVRadioGroupSelectItemPrefix {
    font-weight: 700
}

.TVRadioGroupItem.TVFontWeightSize-L .TVRadioGroupSelectItemPrefix {
    font-weight: 800
}

.TVStandartForm {
    margin: 0 auto
}

.TVStandartForm .TVTopFormBlock {
    height: 24px;
    align-items: center
}

.TVStandartForm.TVTheme1 {
    min-width: 640px
}

.TVStandartForm.TVTheme1 .TVMainForm {
    padding: 20px 30px 30px;
    display: flex;
    flex-direction: column;
    gap: 17px 0
}

.TVStandartForm.TVTheme1 .TVFilterForm {
    padding: 20px 30px
}

.TVStandartForm.TVTheme1 .TVSearchButton {
    flex: 190;
    min-width: 115px
}

.TVStandartForm.TVTheme1 .TVFlyDatesFilter {
    flex: 150;
    min-width: 0
}

.TVStandartForm.TVTheme1 .TVNightsFilter {
    flex: 90;
    min-width: 0
}

.TVStandartForm.TVTheme1 .TVTouristsFilter {
    flex: 150;
    min-width: 0
}

.TVStandartForm.TVTheme1 .TVStarsFilter {
    flex: 180;
    min-width: 160px
}

.TVStandartForm.TVTheme1 .TVMealFilter {
    flex: 140;
    min-width: 0
}

.TVStandartForm.TVTheme1 .TVHotelRatingFilter {
    flex: 90;
    min-width: 90px
}

.TVStandartForm.TVTheme1 .TVHotelServicesFilter {
    flex: 170;
    min-width: 0
}

.TVStandartForm.TVTheme1.TVHotelsMode .TVTripDurationFilter {
    flex: 230;
    min-width: 0
}

.TVStandartForm.TVTheme1.TVHotelsMode .TVTouristsFilter {
    flex: 150
}

.TVStandartForm.TVTheme2 {
    min-width: 625px
}

.TVStandartForm.TVTheme2 .TVMainForm {
    padding: 15px 20px 20px;
    display: flex;
    flex-direction: column;
    gap: 17px 0
}

.TVStandartForm.TVTheme2 .TVFilterForm {
    padding: 20px
}

.TVStandartForm.TVTheme2 .TVSearchButton {
    flex: 190;
    min-width: 0;
    font-size: 18px
}

.TVStandartForm.TVTheme2 .TVFlyDatesFilter {
    flex: 170;
    min-width: 0
}

.TVStandartForm.TVTheme2 .TVNightsFilter {
    flex: 120;
    min-width: 0
}

.TVStandartForm.TVTheme2 .TVTouristsFilter {
    flex: 180;
    min-width: 0;
    border-right: none
}

.TVStandartForm.TVTheme2 .TVStarsFilter {
    flex: 180;
    min-width: 160px
}

.TVStandartForm.TVTheme2 .TVMealFilter {
    flex: 150;
    min-width: 0
}

.TVStandartForm.TVTheme2 .TVHotelRatingFilter {
    flex: 110;
    min-width: 95px
}

.TVStandartForm.TVTheme2 .TVHotelServicesFilter {
    flex: 160;
    min-width: 0
}

.TVStandartForm.TVTheme2.TVHotelsMode .TVTripDurationFilter {
    flex: 240;
    min-width: 0
}

.TVStandartForm.TVTheme2.TVHotelsMode .TVTouristsFilter {
    flex: 230
}

.TVExtSearchForm .TVMainForm,.TVFullForm .TVMainForm {
    padding: 20px;
    display: flex;
    flex-direction: column
}

.TVExtSearchForm .TVSearchFormCartPreview,.TVExtSearchForm .TVSearchFormMode,.TVFullForm .TVSearchFormCartPreview,.TVFullForm .TVSearchFormMode {
    margin-bottom: 7px
}

.TVExtSearchForm .TVMainFilter,.TVFullForm .TVMainFilter {
    margin-top: 10px
}

.TVExtSearchForm.TVTheme1 {
    width: 900px;
    min-width: 680px;
    margin: 0 auto
}

.TVExtSearchForm.TVTheme1 .TVMainFilter>:first-child {
    flex: 390;
    min-width: 0
}

.TVExtSearchForm.TVTheme1 .TVMainFilter>:nth-child(2) {
    flex: 490;
    min-width: 0
}

.TVExtSearchForm.TVTheme1 .TVDepartureFilter {
    flex: 180;
    min-width: 0
}

.TVExtSearchForm.TVTheme1 .TVCountryFilter {
    flex: 190;
    min-width: 0
}

.TVExtSearchForm.TVTheme1 .TVFlyDatesFilter {
    flex: 150;
    min-width: 135px
}

.TVExtSearchForm.TVTheme1 .TVNightsFilter {
    flex: 90;
    min-width: 70px
}

.TVExtSearchForm.TVTheme1 .TVTouristsFilter {
    flex: 210;
    min-width: 0
}

.TVExtSearchForm.TVTheme1 .TVFilterForm {
    padding: 20px
}

.TVExtSearchForm.TVTheme1 .TVFilterForm>:first-child {
    flex: 180;
    min-width: 165px
}

.TVExtSearchForm.TVTheme1 .TVFilterForm>:nth-child(2) {
    flex: 700;
    min-width: 0
}

.TVExtSearchForm.TVTheme1 .TVFiltersBlock>:first-child {
    flex: 470;
    min-width: 0
}

.TVExtSearchForm.TVTheme1 .TVFiltersBlock>:nth-child(2) {
    flex: 210;
    min-width: 0
}

.TVExtSearchForm.TVTheme1 .TVAccommodationFilter {
    flex: 190;
    min-width: 0
}

.TVExtSearchForm.TVTheme1 .TVMealFilter {
    flex: 150;
    min-width: 90px
}

.TVExtSearchForm.TVTheme1 .TVHotelRatingFilter {
    flex: 90;
    min-width: 90px
}

.TVExtSearchForm.TVTheme1 .TVRegularFilter {
    flex: 190;
    min-width: 0
}

.TVExtSearchForm.TVTheme1 .TVInstantConfirmationFilter,.TVExtSearchForm.TVTheme1.TVHotelsMode .TVTripDurationFilter {
    flex: 260;
    min-width: 0
}

.TVExtSearchForm.TVTheme1.TVHotelsMode .TVAccommodationFilter,.TVExtSearchForm.TVTheme1.TVHotelsMode .TVMealFilter,.TVExtSearchForm.TVTheme1.TVHotelsMode .TVTouristsFilter {
    flex: 210
}

.TVExtSearchForm.TVTheme1.TVHotelsMode .TVHotelRatingFilter,.TVExtSearchForm.TVTheme1.TVHotelsMode .TVInstantConfirmationFilter {
    flex: 230;
    min-width: 0
}

.TVExtSearchForm.TVTheme1.TVHotelsMode .TVSearchButton {
    max-width: none
}

.TVFullForm.TVTheme2 {
    width: 900px;
    min-width: 670px
}

.TVFullForm.TVTheme2 .TVDepartureFilter {
    flex: 200;
    min-width: 140px
}

.TVFullForm.TVTheme2 .TVCountryFilter {
    flex: 180;
    min-width: 0
}

.TVFullForm.TVTheme2 .TVFlyDatesFilter {
    flex: 170;
    min-width: 155px
}

.TVFullForm.TVTheme2 .TVNightsFilter {
    flex: 100;
    min-width: 100px
}

.TVFullForm.TVTheme2 .TVTouristsFilter {
    flex: 180;
    min-width: 0
}

.TVFullForm.TVTheme2 .TVFilterForm {
    padding: 20px
}

.TVFullForm.TVTheme2 .TVFilterForm>:first-child {
    flex: 230;
    min-width: 165px
}

.TVFullForm.TVTheme2 .TVFilterForm>:nth-child(2) {
    flex: 660;
    min-width: 0
}

.TVFullForm.TVTheme2 .TVAccommodationFilter {
    flex: 130;
    min-width: 0
}

.TVFullForm.TVTheme2 .TVMealFilter {
    flex: 130;
    min-width: 90px
}

.TVFullForm.TVTheme2 .TVHotelRatingFilter {
    flex: 120;
    min-width: 90px
}

.TVFullForm.TVTheme2 .TVHotelServicesFilter {
    flex: 200;
    min-width: 0
}

.TVFullForm.TVTheme2 .TVRegularFilter {
    flex: 190;
    min-width: 0
}

.TVFullForm.TVTheme2 .TVInstantConfirmationFilter {
    flex: 210;
    min-width: 0
}

.TVFullForm.TVTheme2 .TVSearchButton {
    flex: 200;
    min-width: 120px;
    font-size: 16px;
    border-radius: 4px
}

.TVFullForm.TVTheme2.TVHotelsMode .TVTripDurationFilter {
    flex: 250;
    min-width: 0
}

.TVFullForm.TVTheme2.TVHotelsMode .TVTouristsFilter {
    flex: 250
}

.TVFullForm.TVTheme2.TVHotelsMode .TVHotelSearchFilter {
    flex: 460;
    min-width: 0
}

.TVFullForm.TVTheme2.TVHotelsMode .TVFilterForm>:nth-child(2) {
    flex: 710;
    min-width: 0
}

.TVFullForm.TVTheme2.TVHotelsMode .TVAccommodationFilter,.TVFullForm.TVTheme2.TVHotelsMode .TVMealFilter {
    flex: 210
}

.TVFullForm.TVTheme2.TVHotelsMode .TVHotelRatingFilter,.TVFullForm.TVTheme2.TVHotelsMode .TVHotelServicesFilter,.TVFullForm.TVTheme2.TVHotelsMode .TVInstantConfirmationFilter,.TVFullForm.TVTheme2.TVHotelsMode .TVSearchButton {
    flex: 230
}

.TVMiniForm .TVTopFormBlock {
    height: 24px;
    align-items: center
}

.TVMiniForm.TVTheme1 {
    width: 530px;
    min-width: 520px;
    margin: 0 auto
}

.TVMiniForm.TVTheme1 .TVMainForm {
    padding: 20px 30px 30px;
    display: flex;
    flex-direction: column;
    gap: 17px 0
}

.TVMiniForm.TVTheme1 .TVTopFormBlock {
    height: 24px;
    align-items: center
}

.TVMiniForm.TVTheme1 .TVFlyDatesFilter {
    flex: 160;
    min-width: 0
}

.TVMiniForm.TVTheme1 .TVNightsFilter {
    flex: 120;
    min-width: 0
}

.TVMiniForm.TVTheme1 .TVTouristsFilter {
    flex: 150;
    min-width: 0
}

.TVMiniForm.TVTheme1 .TVFilterForm {
    padding: 20px 30px
}

.TVMiniForm.TVTheme1 .TVStarsFilter {
    flex: 180;
    min-width: 0
}

.TVMiniForm.TVTheme1 .TVMealFilter {
    flex: 120;
    min-width: 0
}

.TVMiniForm.TVTheme1 .TVSearchButton {
    flex: 130;
    min-width: 115px
}

.TVMiniForm.TVTheme1.TVHotelsMode .TVTripDurationFilter {
    flex: 220;
    min-width: 0
}

.TVMiniForm.TVTheme1.TVHotelsMode .TVTouristsFilter {
    flex: 230
}

.TVMiniForm.TVTheme2 {
    width: 540px;
    min-width: 500px;
    margin: 0 auto
}

.TVMiniForm.TVTheme2 .TVMainForm {
    padding: 15px 20px 20px;
    display: flex;
    flex-direction: column;
    gap: 17px 0
}

.TVMiniForm.TVTheme2 .TVFlyDatesFilter {
    flex: 200;
    min-width: 0
}

.TVMiniForm.TVTheme2 .TVNightsFilter {
    flex: 140;
    min-width: 0
}

.TVMiniForm.TVTheme2 .TVTouristsFilter {
    flex: 160;
    min-width: 0
}

.TVMiniForm.TVTheme2 .TVFilterForm {
    padding: 20px
}

.TVMiniForm.TVTheme2 .TVStarsFilter {
    flex: 190;
    min-width: 0
}

.TVMiniForm.TVTheme2 .TVMealFilter {
    flex: 130;
    min-width: 0
}

.TVMiniForm.TVTheme2 .TVSearchButton {
    flex: 140;
    min-width: 120px;
    font-size: 16px;
    border-radius: 4px
}

.TVMiniForm.TVTheme2.TVHotelsMode .TVTripDurationFilter {
    flex: 260;
    min-width: 0
}

.TVMiniForm.TVTheme2.TVHotelsMode .TVTouristsFilter {
    flex: 240
}

.TVVerticalForm .TVSearchButton {
    max-width: none
}

.TVVerticalForm.TVTheme1 {
    width: 250px;
    min-width: 250px;
    margin: 0 auto
}

.TVVerticalForm.TVTheme1 .TVMainForm {
    padding: 15px 20px 20px
}

.TVVerticalForm.TVTheme1 .TVDepartureFilter {
    margin-bottom: 15px
}

.TVVerticalForm.TVTheme1 .TVMainFilter {
    display: flex;
    flex-direction: column;
    gap: 20px 0
}

.TVVerticalForm.TVTheme1 .TVFilterForm {
    padding: 20px
}

.TVVerticalForm.TVTheme1 .TVSearchButton {
    height: 50px
}

.TVVerticalForm.TVTheme2 {
    width: 290px;
    min-width: 250px
}

.TVVerticalForm.TVTheme2 .TVMainForm {
    display: flex;
    flex-direction: column;
    gap: 10px 0;
    padding: 20px
}

.TVVerticalForm.TVTheme2 .TVMainForm>* {
    border-radius: 4px;
    overflow: hidden
}

.TVVerticalForm.TVTheme2 .TVFilterForm {
    padding: 20px
}

.TVVerticalForm.TVTheme2 .TVSearchButton {
    height: 50px;
    font-size: 18px;
    border-radius: 4px
}

.TVWideForm .TVMainForm {
    padding: 20px;
    display: flex;
    flex-direction: column
}

.TVWideForm .TVSearchFormMode {
    margin-bottom: 7px
}

.TVWideForm .TVMainFilter {
    margin-top: 10px
}

.TVWideForm.TVTheme1 {
    width: 900px;
    min-width: 680px;
    margin: 0 auto
}

.TVWideForm.TVTheme1 .TVDepartureFilter {
    flex: 180;
    min-width: 0
}

.TVWideForm.TVTheme1 .TVCountryFilter {
    flex: 160;
    min-width: 0
}

.TVWideForm.TVTheme1 .TVFlyDatesFilter {
    flex: 140;
    min-width: 135px
}

.TVWideForm.TVTheme1 .TVTripDurationFilter {
    flex: 210;
    min-width: 0
}

.TVWideForm.TVTheme1 .TVNightsFilter {
    flex: 90;
    min-width: 70px
}

.TVWideForm.TVTheme1 .TVTouristsFilter {
    flex: 120;
    min-width: 0
}

.TVWideForm.TVTheme1 .TVSearchButton {
    flex: 50;
    min-width: 50px
}

.TVWideForm.TVTheme1 .TVSearchButton:before {
    font-family: TVicons;
    content: "\e91d";
    font-size: 20px;
    font-weight: 400
}

.TVWideForm.TVTheme1 .TVFilterForm {
    padding: 20px
}

.TVWideForm.TVTheme1 .TVStarsFilter {
    flex: 190;
    min-width: 155px
}

.TVWideForm.TVTheme1 .TVDetailsFilter {
    flex: 160;
    min-width: 0
}

.TVWideForm.TVTheme1 .TVMealFilter {
    flex: 140;
    min-width: 0
}

.TVWideForm.TVTheme1 .TVHotelRatingFilter {
    flex: 100;
    min-width: 90px
}

.TVWideForm.TVTheme1 .TVHotelServicesFilter {
    flex: 170;
    min-width: 0
}

.TVWideForm.TVTheme1.TVHotelsMode .TVHotelSearchFilter {
    flex: 370;
    min-width: 0
}

.TVWideForm.TVTheme1.TVHotelsMode .TVTripDurationFilter {
    flex: 210;
    min-width: 0
}

.TVWideForm.TVTheme1.TVHotelsMode .TVTouristsFilter {
    flex: 150
}

.TVWideForm.TVTheme2 {
    width: 900px;
    min-width: 670px
}

.TVWideForm.TVTheme2 .TVDepartureFilter {
    flex: 180;
    min-width: 135px
}

.TVWideForm.TVTheme2 .TVCountryFilter {
    flex: 170;
    min-width: 0
}

.TVWideForm.TVTheme2 .TVFlyDatesFilter {
    flex: 150;
    min-width: 140px
}

.TVWideForm.TVTheme2 .TVNightsFilter {
    flex: 100;
    min-width: 100px
}

.TVWideForm.TVTheme2 .TVTouristsFilter {
    flex: 170;
    min-width: 0
}

.TVWideForm.TVTheme2 .TVSearchButton {
    flex: 60;
    min-width: 60px;
    margin-left: auto
}

.TVWideForm.TVTheme2 .TVSearchButton:before {
    font-family: TVicons;
    content: "\e91d";
    font-size: 20px;
    font-weight: 400
}

.TVWideForm.TVTheme2 .TVFilterForm {
    padding: 20px
}

.TVWideForm.TVTheme2 .TVStarsFilter {
    flex: 220;
    min-width: 160px
}

.TVWideForm.TVTheme2 .TVDetailsFilter {
    flex: 140;
    min-width: 95px
}

.TVWideForm.TVTheme2 .TVHotelRatingFilter,.TVWideForm.TVTheme2 .TVMealFilter {
    flex: 120;
    min-width: 95px
}

.TVWideForm.TVTheme2 .TVHotelServicesFilter {
    flex: 150;
    min-width: 95px
}

.TVWideForm.TVTheme2.TVHotelsMode .TVHotelSearchFilter {
    flex: 400;
    min-width: 0
}

.TVWideForm.TVTheme2.TVHotelsMode .TVTripDurationFilter {
    flex: 210;
    min-width: 0
}

.TVWideForm.TVTheme2.TVHotelsMode .TVTouristsFilter {
    flex: 210
}

.TVWideForm.TVTheme2.TVHotelsMode .TVStarsFilter {
    flex: 170
}

.TVFilterFormWrapper {
    display: flex;
    flex-direction: column;
    gap: 15px 0
}

.TVWideFilterForm .TVSearchResults {
    padding-top: 0
}

.TVWideFilterForm .TVFilterResults {
    padding-top: 20px
}

.TVWideFilterForm .TVFilterForm {
    max-width: 250px
}

.TVWideFilterForm .TVSearchApplyButton {
    box-sizing: border-box;
    width: 100%;
    border-radius: 5px;
    cursor: pointer;
    text-align: center;
    padding: 10px;
    line-height: 18px;
    font-size: 14px;
    text-shadow: none
}

.TVWideFilterForm.TVTheme1 {
    width: 900px;
    min-width: 880px;
    margin: 0 auto
}

.TVWideFilterForm.TVTheme1 .TVSearchingForm {
    display: flex;
    flex-direction: column;
    gap: 0 0
}

.TVWideFilterForm.TVTheme1 .TVMainForm {
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 10px 0
}

.TVWideFilterForm.TVTheme1 .TVMainFilter {
    display: flex;
    gap: 10px 10px
}

.TVWideFilterForm.TVTheme1 .TVMainFilter>* {
    flex: 1
}

.TVWideFilterForm.TVTheme1 .TVFilterResults {
    align-items: flex-start;
    display: flex;
    gap: 0 20px
}

.TVWideFilterForm.TVTheme1 .TVFilterResults>* {
    flex: 1
}

.TVWideFilterForm.TVTheme1 .TVFilterResults>:first-child {
    flex: 230;
    min-width: 230px
}

.TVWideFilterForm.TVTheme1 .TVFilterResults>:nth-child(2) {
    flex: 640;
    min-width: 640px
}

.TVWideFilterForm.TVTheme1 .TVCountryFilter,.TVWideFilterForm.TVTheme1 .TVDepartureFilter {
    flex: 170;
    min-width: 160px
}

.TVWideFilterForm.TVTheme1 .TVFlyDatesFilter {
    flex: 140;
    min-width: 130px
}

.TVWideFilterForm.TVTheme1 .TVNightsFilter {
    flex: 70;
    min-width: 70px
}

.TVWideFilterForm.TVTheme1 .TVTouristsFilter {
    flex: 120;
    min-width: 105px
}

.TVWideFilterForm.TVTheme1 .TVSearchButton {
    flex: 140;
    min-width: 115px
}

.TVWideFilterForm.TVTheme1 .TVFilterForm {
    box-sizing: border-box;
    max-height: none;
    padding: 20px;
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    gap: 20px 0
}

.TVWideFilterForm.TVTheme1.TVHotelsMode .TVHotelSearchFilter {
    flex: 360;
    min-width: 0
}

.TVWideFilterForm.TVTheme1.TVHotelsMode .TVTripDurationFilter {
    flex: 190;
    min-width: 190px
}

.TVWideFilterForm.TVTheme1.TVHotelsMode .TVTouristsFilter {
    flex: 140
}

.TVWideFilterForm.TVTheme2 {
    width: 1010px;
    min-width: 1010px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 0 0
}

.TVWideFilterForm.TVTheme2 .TVMainForm {
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 10px 0
}

.TVWideFilterForm.TVTheme2 .TVFilterForm {
    box-sizing: border-box;
    max-height: none;
    padding: 20px;
    border-radius: 5px;
    display: flex;
    flex-direction: column;
    gap: 20px 0
}

.TVWideFilterForm.TVTheme2 .TVFilterResults {
    align-items: flex-start;
    display: flex;
    gap: 0 20px
}

.TVWideFilterForm.TVTheme2 .TVFilterResults>* {
    flex: 1
}

.TVWideFilterForm.TVTheme2 .TVFilterResults>:first-child {
    flex: 230;
    min-width: 240px
}

.TVWideFilterForm.TVTheme2 .TVFilterResults>:nth-child(2) {
    flex: 640;
    min-width: 640px
}

.TVWideFilterForm.TVTheme2 .TVDepartureFilter {
    flex: 180;
    min-width: 150px
}

.TVWideFilterForm.TVTheme2 .TVCountryFilter {
    flex: 170;
    min-width: 160px
}

.TVWideFilterForm.TVTheme2 .TVFlyDatesFilter {
    flex: 160;
    min-width: 150px
}

.TVWideFilterForm.TVTheme2 .TVNightsFilter {
    flex: 90;
    min-width: 100px
}

.TVWideFilterForm.TVTheme2 .TVTouristsFilter {
    flex: 150;
    min-width: 130px
}

.TVWideFilterForm.TVTheme2 .TVSearchButton {
    flex: 150;
    min-width: 120px;
    font-size: 16px;
    margin-left: auto
}

.TVWideFilterForm.TVTheme2.TVHotelsMode .TVHotelSearchFilter {
    flex: 330;
    min-width: 0
}

.TVWideFilterForm.TVTheme2.TVHotelsMode .TVTripDurationFilter {
    flex: 230;
    min-width: 200px
}

.TVWideFilterForm.TVTheme2.TVHotelsMode .TVTouristsFilter {
    flex: 190
}

.TVLineForm.TVTheme1 {
    width: 900px;
    min-width: 670px;
    margin: 0 auto
}

.TVLineForm.TVTheme1 .TVMainForm {
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 10px 0
}

.TVLineForm.TVTheme1 .TVMainFilter {
    display: flex;
    gap: 10px 10px
}

.TVLineForm.TVTheme1 .TVMainFilter>* {
    flex: 1
}

.TVLineForm.TVTheme1 .TVDepartureFilter {
    flex: 170;
    min-width: 100px
}

.TVLineForm.TVTheme1 .TVCountryFilter {
    flex: 170;
    min-width: 0
}

.TVLineForm.TVTheme1 .TVFlyDatesFilter {
    flex: 140;
    min-width: 135px
}

.TVLineForm.TVTheme1 .TVNightsFilter {
    flex: 70;
    min-width: 70px
}

.TVLineForm.TVTheme1 .TVTouristsFilter {
    flex: 120;
    min-width: 0
}

.TVLineForm.TVTheme1 .TVSearchButton {
    flex: 120;
    min-width: 115px
}

.TVLineForm.TVTheme1.TVHotelsMode .TVCountryFilter {
    flex: 360
}

.TVLineForm.TVTheme1.TVHotelsMode .TVTripDurationFilter {
    flex: 200;
    min-width: 0
}

.TVLineForm.TVTheme1.TVHotelsMode .TVTouristsFilter {
    flex: 150
}

.TVLineForm.TVTheme2 {
    width: 900px;
    min-width: 700px;
    margin: 0 auto
}

.TVLineForm.TVTheme2 .TVMainForm {
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 10px 0
}

.TVLineForm.TVTheme2 .TVDepartureFilter {
    flex: 180;
    min-width: 130px
}

.TVLineForm.TVTheme2 .TVCountryFilter {
    flex: 170;
    min-width: 100px
}

.TVLineForm.TVTheme2 .TVFlyDatesFilter {
    flex: 160;
    min-width: 140px
}

.TVLineForm.TVTheme2 .TVNightsFilter {
    flex: 90;
    min-width: 100px
}

.TVLineForm.TVTheme2 .TVTouristsFilter {
    flex: 150;
    min-width: 0
}

.TVLineForm.TVTheme2 .TVSearchButton {
    flex: 150;
    min-width: 120px;
    font-size: 16px;
    margin-left: auto
}

.TVLineForm.TVTheme2.TVHotelsMode .TVCountryFilter {
    flex: 280
}

.TVLineForm.TVTheme2.TVHotelsMode .TVTripDurationFilter {
    flex: 280;
    min-width: 0
}

.TVLineForm.TVTheme2.TVHotelsMode .TVTouristsFilter {
    flex: 190
}

.TVLineNCForm.TVTheme2 {
    width: 800px;
    min-width: 800px;
    margin: 0 auto
}

.TVLineNCForm.TVTheme2 .TVMainForm {
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 10px 0
}

.TVLineNCForm.TVTheme2 .TVDepartureFilter {
    flex: 180;
    min-width: 150px
}

.TVLineNCForm.TVTheme2 .TVFlyDatesFilter {
    flex: 160;
    min-width: 150px
}

.TVLineNCForm.TVTheme2 .TVNightsFilter {
    flex: 90;
    min-width: 100px
}

.TVLineNCForm.TVTheme2 .TVTouristsFilter {
    flex: 150;
    min-width: 130px
}

.TVLineNCForm.TVTheme2 .TVSearchButton {
    flex: 150;
    min-width: 120px;
    font-size: 16px
}

.TVMobileForm {
    font-family: var(--tv-font-theme2);
    line-height: 1.39
}

.TVMobileForm .TVMainColor {
    text-shadow: none
}

.TVMobileForm .TVSearchFormMode {
    flex-basis: 100%;
    margin: 5px
}

.TVMobileForm .TVTopFormBlock {
    height: 44px;
    flex-basis: 100%;
    align-items: center;
    margin: 5px;
    font-weight: 600;
    font-size: 16px
}

.TVMobileForm .TVCartPreviewControl {
    flex-basis: 20px
}

.TVMobileForm .TVSearchButton {
    font-weight: 600;
    font-size: 16px;
    height: 50px
}

.TVMobileForm .TVSearchButton.TVHidden {
    visibility: hidden
}

.TVMobileForm.TVWhiteBg .TVMobileFormMainFilter {
    border: 1px solid #ddd;
    background: #efefef
}

.TVMobileForm.TVWhiteBg .TVFilterForm {
    border: 1px solid #ddd
}

.TVMobileForm.TVTransparentBg .TVCartPreviewControl,.TVMobileForm.TVTransparentBg .TVDepartureFilter {
    color: #fff
}

.TVMobileForm.TVHotelsMode .TVTopFormBlock:before {
    font-size: 16px;
    margin-bottom: 0
}

.TVFormBody {
    padding: 5px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    position: relative
}

.TVFormBody .TVControlsWrap {
    display: flex;
    flex-wrap: wrap;
    flex-basis: 100%;
    max-width: 100%
}

.TVFormBody .TVControlsWrap .TVControlsWrap {
    flex-wrap: nowrap
}

.TVMobileForm .TVFormBody .TVFilterForm {
    background-color: #fff;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    flex-basis: 100%;
    margin: 5px;
    border-radius: 4px;
    padding: 5px;
    font-size: 13px;
    font-weight: 400
}

.TVMobileForm .TVFormBody .TVFilterForm .TVControlsWrap {
    display: flex;
    flex-wrap: wrap;
    flex-basis: 250px;
    flex-grow: 1;
    width: inherit;
    min-width: 45%
}

.TVMobileFormMainFilter {
    background: #fff
}

.TVMobileForm .TVAdaptiveHotelsSearchFilter,.TVMobileForm .TVAddFilters,.TVMobileForm .TVCountryFilter,.TVMobileForm .TVFlyDatesFilter,.TVMobileForm .TVNightsFilter,.TVMobileForm .TVSearchButton,.TVMobileForm .TVTouristsFilter,.TVMobileForm .TVTripDurationFilter {
    border-radius: 4px;
    overflow: hidden
}

.TVMobileForm .TVAddFiltersSvgIcon,.TVMobileForm .TVCountryFilterSvgIcon,.TVMobileForm .TVFlyDatesFilterSvgIcon,.TVMobileForm .TVNightsFilterSvgIcon,.TVMobileForm .TVTouristsFilterSvgIcon {
    fill: #027ad0;
    margin-right: 10px;
    overflow: visible
}

.TVMobileForm .TVCountryFilter .TVMainSelectContent {
    font-size: 16px
}

.TVMobileForm .TVDepartureFilter,.TVMobileForm .TVFormBody>.TVSearchButton,.TVMobileFormMainFilter {
    max-width: calc(100% - 10px);
    flex-basis: 100%;
    margin: 5px
}

.TVExtSearchOperatorsForm .TVMainForm,.TVFullOperatorsForm .TVMainForm {
    padding: 20px;
    display: flex;
    flex-direction: column
}

.TVExtSearchOperatorsForm .TVSearchFormCartPreview,.TVExtSearchOperatorsForm .TVSearchFormMode,.TVFullOperatorsForm .TVSearchFormCartPreview,.TVFullOperatorsForm .TVSearchFormMode {
    margin-bottom: 7px
}

.TVExtSearchOperatorsForm .TVMainFilter,.TVFullOperatorsForm .TVMainFilter {
    margin-top: 10px
}

.TVExtSearchOperatorsForm.TVTheme1 {
    width: 960px;
    min-width: 700px;
    margin: 0 auto
}

.TVExtSearchOperatorsForm.TVTheme1 .TVMainFilter>:first-child {
    flex: 400;
    min-width: 0
}

.TVExtSearchOperatorsForm.TVTheme1 .TVMainFilter>:nth-child(2) {
    flex: 480;
    min-width: 0
}

.TVExtSearchOperatorsForm.TVTheme1 .TVCountryFilter,.TVExtSearchOperatorsForm.TVTheme1 .TVDepartureFilter {
    flex: 190;
    min-width: 0
}

.TVExtSearchOperatorsForm.TVTheme1 .TVFlyDatesFilter {
    flex: 180;
    min-width: 0
}

.TVExtSearchOperatorsForm.TVTheme1 .TVNightsFilter {
    flex: 110;
    min-width: 0
}

.TVExtSearchOperatorsForm.TVTheme1 .TVTouristsFilter {
    flex: 150;
    min-width: 0
}

.TVExtSearchOperatorsForm.TVTheme1 .TVFilterForm {
    padding: 20px
}

.TVExtSearchOperatorsForm.TVTheme1 .TVFilterForm>:first-child {
    flex: 180;
    min-width: 165px
}

.TVExtSearchOperatorsForm.TVTheme1 .TVFilterForm>:nth-child(2) {
    flex: 630;
    min-width: 0
}

.TVExtSearchOperatorsForm.TVTheme1 .TVFiltersBlock>:first-child,.TVExtSearchOperatorsForm.TVTheme1 .TVHotelOperatorBlock>:first-child {
    flex: 470;
    min-width: 0
}

.TVExtSearchOperatorsForm.TVTheme1 .TVFiltersBlock>:nth-child(2),.TVExtSearchOperatorsForm.TVTheme1 .TVHotelOperatorBlock>:nth-child(2) {
    flex: 210;
    min-width: 150px
}

.TVExtSearchOperatorsForm.TVTheme1 .TVAccommodationFilter {
    flex: 190;
    min-width: 0
}

.TVExtSearchOperatorsForm.TVTheme1 .TVMealFilter {
    flex: 150;
    min-width: 90px
}

.TVExtSearchOperatorsForm.TVTheme1 .TVHotelRatingFilter {
    flex: 90;
    min-width: 90px
}

.TVExtSearchOperatorsForm.TVTheme1 .TVRegularFilter {
    flex: 190;
    min-width: 0
}

.TVExtSearchOperatorsForm.TVTheme1 .TVInstantConfirmationFilter,.TVExtSearchOperatorsForm.TVTheme1.TVHotelsMode .TVTripDurationFilter {
    flex: 260;
    min-width: 0
}

.TVExtSearchOperatorsForm.TVTheme1.TVHotelsMode .TVTouristsFilter {
    flex: 200
}

.TVExtSearchOperatorsForm.TVTheme1.TVHotelsMode .TVAccommodationFilter,.TVExtSearchOperatorsForm.TVTheme1.TVHotelsMode .TVMealFilter {
    flex: 210
}

.TVExtSearchOperatorsForm.TVTheme1.TVHotelsMode .TVHotelRatingFilter,.TVExtSearchOperatorsForm.TVTheme1.TVHotelsMode .TVInstantConfirmationFilter {
    flex: 230;
    min-width: 0
}

.TVExtSearchOperatorsForm.TVTheme1.TVHotelsMode .TVSearchButton {
    max-width: none
}

.TVFullOperatorsForm.TVTheme2 {
    width: 900px;
    min-width: 700px
}

.TVFullOperatorsForm.TVTheme2 .TVDepartureFilter {
    flex: 200;
    min-width: 0
}

.TVFullOperatorsForm.TVTheme2 .TVCountryFilter {
    flex: 190;
    min-width: 0
}

.TVFullOperatorsForm.TVTheme2 .TVFlyDatesFilter {
    flex: 190;
    min-width: 155px
}

.TVFullOperatorsForm.TVTheme2 .TVNightsFilter {
    flex: 120;
    min-width: 100px
}

.TVFullOperatorsForm.TVTheme2 .TVTouristsFilter {
    flex: 210;
    min-width: 0
}

.TVFullOperatorsForm.TVTheme2 .TVFilterForm {
    padding: 20px
}

.TVFullOperatorsForm.TVTheme2 .TVFilterForm>:first-child {
    flex: 230;
    min-width: 0
}

.TVFullOperatorsForm.TVTheme2 .TVFilterForm>:nth-child(2) {
    flex: 660;
    min-width: 0
}

.TVFullOperatorsForm.TVTheme2 .TVHotelOperatorBlock>*>:first-child {
    flex: 420;
    min-width: 310px
}

.TVFullOperatorsForm.TVTheme2 .TVHotelOperatorBlock>*>:nth-child(2) {
    flex: 220;
    min-width: 0
}

.TVFullOperatorsForm.TVTheme2 .TVSearchButton {
    font-size: 16px;
    border-radius: 4px
}

.TVFullOperatorsForm.TVTheme2 .TVAccommodationFilter {
    flex: 130;
    min-width: 0
}

.TVFullOperatorsForm.TVTheme2 .TVMealFilter {
    flex: 130;
    min-width: 95px
}

.TVFullOperatorsForm.TVTheme2 .TVHotelRatingFilter {
    flex: 120;
    min-width: 95px
}

.TVFullOperatorsForm.TVTheme2 .TVRegularFilter {
    flex: 190;
    min-width: 0
}

.TVFullOperatorsForm.TVTheme2 .TVInstantConfirmationFilter {
    flex: 210;
    min-width: 190px
}

.TVFullOperatorsForm.TVTheme2.TVHotelsMode .TVHotelSearchFilter {
    flex: 480
}

.TVFullOperatorsForm.TVTheme2.TVHotelsMode .TVTripDurationFilter {
    flex: 250;
    min-width: 0
}

.TVFullOperatorsForm.TVTheme2.TVHotelsMode .TVTouristsFilter {
    flex: 230
}

.TVFullOperatorsForm.TVTheme2.TVHotelsMode .TVAccommodationFilter,.TVFullOperatorsForm.TVTheme2.TVHotelsMode .TVMealFilter {
    flex: 210
}

.TVFullOperatorsForm.TVTheme2.TVHotelsMode .TVHotelRatingFilter,.TVFullOperatorsForm.TVTheme2.TVHotelsMode .TVInstantConfirmationFilter {
    flex: 230;
    min-width: 0
}

.TVFullOperatorsForm.TVTheme2.TVHotelsMode .TVSearchButton {
    max-width: none
}

.TVMapFilterForm.TVTheme1 .TVFilterForm,.TVMapFilterForm.TVTheme2 .TVFilterForm {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 15px 0
}

.TVMapFilterForm.TVTheme1 .TVApplyButton,.TVMapFilterForm.TVTheme2 .TVApplyButton {
    box-sizing: border-box;
    width: 100%;
    border-radius: 5px;
    cursor: pointer;
    text-align: center;
    padding: 10px;
    line-height: 18px;
    font-size: 14px;
    text-shadow: none
}

.TVMapFilterForm.TVMapHotelsFilterForm.TVTheme2 .TVFilterForm {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 15px 0
}

.TVMapFilterForm.TVMapHotelsFilterForm.TVTheme2 .TVFilterResetBtn {
    width: 100%;
    padding: 10px 0;
    border-radius: 5px;
    text-transform: uppercase;
    font-size: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    text-shadow: none
}

.TVMapFilterForm.TVMapHotelsFilterForm.TVTheme2 .TVFilterResetBtn:after {
    content: "Сбросить"
}

.TVMapFilterForm.TVMapResortsFilterForm.TVTheme2 .TVFilterForm {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 15px 0
}

.TVMapFilterForm.TVMapResortsFilterForm.TVTheme2 .TVFilterResetBtn {
    width: 100%;
    padding: 10px 0;
    border-radius: 5px;
    text-transform: uppercase;
    font-size: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    text-shadow: none
}

.TVMapFilterForm.TVMapResortsFilterForm.TVTheme2 .TVFilterResetBtn:after {
    content: "Сбросить"
}

.TVHotelsCollectionCreateForm:before {
    content: "Выберите отели для списка";
    color: #333;
    font-size: 14px;
    display: block;
    margin-bottom: 20px
}

.TVHotelsCollectionCreateForm .TVFilterForm {
    margin-top: 18px;
    padding: 20px;
    background-color: #efefef;
    color: #777;
    border-radius: 0
}

.TVHotelsCollectionCreateForm .TVFilterForm>:first-child {
    flex: 230;
    min-width: 180px
}

.TVHotelsCollectionCreateForm .TVFilterForm>:nth-child(2) {
    flex: 660;
    min-width: 380px
}

.TVHotelsCollectionCreateForm.TVTheme2 {
    margin: 0
}

.TVModuleFilterHeaderBlock {
    padding: 0 0 15px;
    background-color: #fff
}

.TVModuleFilter {
    width: 100%;
    background-color: #f5f5f5;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    position: relative;
    box-sizing: border-box;
    opacity: 1;
    transition: opacity .5s ease-in-out,height .5s;
    overflow: hidden
}

.TVModuleFilter.TVStopAnimation {
    transition: none
}

.TVModuleFilter.TVHideFilter {
    opacity: 0
}

.TVModuleFilter .TVModuleFiltersBlock {
    box-sizing: border-box;
    width: 100%;
    padding: 0 0 10px 10px;
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    color: #333
}

.TVModuleFilter .TVFormControl {
    box-sizing: border-box;
    margin: 10px 10px 0 0;
    border: 1px solid #ddd;
    border-radius: 3px;
    overflow: hidden
}

.TVModuleFilter .TVFormControl.TVCombo>div {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.TVModuleFilter .TVFormControl.TVCombo .TVClearFilter {
    display: flex;
    justify-content: center;
    align-items: center;
    width: auto;
    position: relative
}

.TVModuleFilter .TVFormControl.TVCombo .TVClearFilter:after {
    right: 12px;
    font-size: 30px;
    content: "+";
    pointer-events: none;
    transform: rotate(45deg);
    font-weight: lighter;
    transition: none
}

.TVModuleFilter .TVFormControl.TVCombo.TVNotSelected .TVClearFilter {
    display: flex;
    justify-content: center;
    align-items: center;
    pointer-events: none;
    transition: transform .3s ease-in-out
}

.TVModuleFilter .TVFormControl.TVCombo.TVNotSelected .TVClearFilter:after {
    right: 12px;
    font-family: TVicons;
    content: "\e900";
    font-size: 16px;
    transform: none
}

.TVModuleFilter .TVHotelNameFilter {
    border-width: 0
}

.TVModuleFilter .TVFiltersHideButton {
    height: 40px;
    padding: 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #fff;
    cursor: pointer
}

.TVModuleFilter .TVFiltersHideButton:before {
    content: "Скрыть фильтры"
}

.TVModuleFilter .TVFiltersHideButton.TVActive:before {
    content: "Показать фильтры"
}

.TVModuleFilter .TVFiltersHideButton:after {
    color: #777;
    font-size: 15px;
    font-family: TVicons;
    content: "\e922"
}

.TVModuleFilter .TVFiltersHideButton.TVMobile {
    height: 50px
}

.TVModuleFilter .TVFiltersHideButton.TVMobile:after {
    font-size: 18px
}

.TVModuleFilter.TVPreview .TVFormControl {
    visibility: hidden;
    position: relative
}

.TVModuleFilter.TVPreview .TVFormControl:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVModuleScrollableFilter {
    width: 100%;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    position: relative;
    box-sizing: border-box;
    opacity: 1;
    display: flex;
    align-items: center;
    transition: opacity .5s ease-in-out,height .5s;
    overflow: hidden
}

.TVModuleScrollableFilter.TVStopAnimation {
    transition: none
}

.TVModuleScrollableFilter.TVHideFilter {
    opacity: 0
}

.TVModuleScrollableFilter .TVModuleScrollableFiltersBlock {
    box-sizing: border-box;
    width: 100%;
    display: flex;
    justify-content: flex-start;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    color: #333
}

.TVModuleScrollableFilter .TVModuleScrollableFiltersBlock:not(.TVScrollable) {
    flex-wrap: wrap
}

.TVModuleScrollableFilter .TVModuleScrollableFiltersBlock .TVFormControl {
    box-sizing: border-box;
    margin: 0 10px 0 0;
    overflow: hidden
}

.TVModuleScrollableFilter .TVModuleScrollableFiltersBlock.TVScrollable {
    -ms-overflow-style: none;
    scrollbar-width: none;
    overflow: auto
}

.TVModuleScrollableFilter .TVModuleScrollableFiltersBlock.TVScrollable::-webkit-scrollbar {
    display: none
}

.TVModuleScrollableFilter .TVModuleScrollableFiltersBlock.TVScrollable .TVFormControl {
    flex-shrink: 0
}

.TVModuleScrollableFilter .TVHotelNameFilter {
    border-width: 0
}

.TVModuleScrollableFilter .TVFiltersHideButton {
    height: 40px;
    padding: 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #fff;
    cursor: pointer
}

.TVModuleScrollableFilter .TVFiltersHideButton:before {
    content: "Скрыть фильтры"
}

.TVModuleScrollableFilter .TVFiltersHideButton.TVActive:before {
    content: "Показать фильтры"
}

.TVModuleScrollableFilter .TVFiltersHideButton:after {
    color: #777;
    font-size: 15px;
    font-family: TVicons;
    content: "\e922"
}

.TVModuleScrollableFilter .TVFiltersHideButton.TVMobile {
    height: 50px
}

.TVModuleScrollableFilter .TVFiltersHideButton.TVMobile:after {
    font-size: 18px
}

.TVModuleScrollableFilter .TVModuleScrollableFilterButtons {
    margin-left: 10px
}

.TVModuleScrollableFilter.TVPreview .TVFormControl {
    visibility: hidden;
    position: relative
}

.TVModuleScrollableFilter.TVPreview .TVFormControl:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVMobileAddFiltersForm {
    font-family: var(--tv-font-theme2);
    line-height: 1.39
}

.TVMobileAddFiltersForm .TVMainColor {
    text-shadow: none
}

.TVMobileAddFiltersForm .TVMobileAddFiltersFormWrapper {
    border: 1px solid #dde4ed;
    background: #fff;
    border-radius: 6px;
    overflow: hidden
}

.TVMobileAddFiltersForm .TVMobileAddFiltersFormWrapper:not(:last-child) {
    margin-bottom: 20px
}

.TVMobileAddFiltersForm .TVMobileAddFiltersFormItem {
    text-align: left;
    box-sizing: border-box
}

.TVMobileAddFiltersForm .TVMobileAddFiltersFormItem:not(:first-child) {
    border-top: 1px solid #dde4ed
}

.leaflet-image-layer,.leaflet-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-pane>canvas,.leaflet-pane>svg,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box {
    position: absolute;
    left: 0;
    top: 0
}

.leaflet-container {
    overflow: hidden
}

.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile {
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    -webkit-user-drag: none
}

.leaflet-tile::selection {
    background: transparent
}

.leaflet-safari .leaflet-tile {
    image-rendering: -webkit-optimize-contrast
}

.leaflet-safari .leaflet-tile-container {
    width: 1600px;
    height: 1600px;
    -webkit-transform-origin: 0 0
}

.leaflet-marker-icon,.leaflet-marker-shadow {
    display: block
}

.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-overlay-pane svg,.leaflet-container .leaflet-rulerLine-pane svg,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer {
    max-width: none!important;
    max-height: none!important
}

.leaflet-container .leaflet-tile-pane img {
    padding: 0!important;
    background-color: initial!important;
    border: none!important;
    margin: 0!important
}

.leaflet-container.leaflet-touch-zoom {
    -ms-touch-action: pan-x pan-y;
    touch-action: pan-x pan-y
}

.leaflet-container.leaflet-touch-drag {
    -ms-touch-action: pinch-zoom;
    touch-action: none;
    touch-action: pinch-zoom
}

.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
    -ms-touch-action: none;
    touch-action: none
}

.leaflet-container {
    -webkit-tap-highlight-color: transparent
}

.leaflet-container a {
    -webkit-tap-highlight-color: rgba(51,181,229,.4)
}

.leaflet-tile {
    filter: inherit;
    visibility: hidden
}

.leaflet-tile-loaded {
    visibility: inherit
}

.leaflet-zoom-box {
    width: 0;
    height: 0;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    z-index: 800
}

.leaflet-overlay-pane svg {
    -moz-user-select: none
}

.leaflet-pane {
    z-index: 400
}

.leaflet-tile-pane {
    z-index: 200
}

.leaflet-overlay-pane {
    z-index: 400
}

.leaflet-shadow-pane {
    z-index: 500
}

.leaflet-marker-pane {
    z-index: 600
}

.leaflet-tooltip-pane {
    z-index: 650
}

.leaflet-popup-pane {
    z-index: 700
}

.leaflet-map-pane canvas {
    z-index: 100
}

.leaflet-map-pane svg {
    z-index: 200
}

.leaflet-vml-shape {
    width: 1px;
    height: 1px
}

.lvml {
    behavior: url(#default#VML);
    display: inline-block;
    position: absolute
}

.leaflet-control {
    position: relative;
    z-index: 800;
    pointer-events: visiblePainted;
    pointer-events: auto
}

.leaflet-bottom,.leaflet-top {
    position: absolute;
    z-index: 1000;
    pointer-events: none
}

.leaflet-top {
    top: 0
}

.leaflet-right {
    right: 0
}

.leaflet-bottom {
    bottom: 0
}

.leaflet-left {
    left: 0
}

.leaflet-control {
    float: left;
    clear: both
}

.leaflet-right .leaflet-control {
    float: right
}

.leaflet-top .leaflet-control {
    margin-top: 10px
}

.leaflet-bottom .leaflet-control {
    margin-bottom: 10px
}

.leaflet-left .leaflet-control {
    margin-left: 10px
}

.leaflet-right .leaflet-control {
    margin-right: 10px
}

.leaflet-fade-anim .leaflet-tile {
    will-change: opacity
}

.leaflet-fade-anim .leaflet-popup {
    opacity: 0;
    -webkit-transition: opacity .2s linear;
    -moz-transition: opacity .2s linear;
    transition: opacity .2s linear
}

.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
    opacity: 1
}

.leaflet-zoom-animated {
    -webkit-transform-origin: 0 0;
    -ms-transform-origin: 0 0;
    transform-origin: 0 0
}

.leaflet-zoom-anim .leaflet-zoom-animated {
    will-change: transform;
    -webkit-transition: -webkit-transform .25s cubic-bezier(0,0,.25,1);
    -moz-transition: -moz-transform .25s cubic-bezier(0,0,.25,1);
    transition: transform .25s cubic-bezier(0,0,.25,1)
}

.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile {
    -webkit-transition: none;
    -moz-transition: none;
    transition: none
}

.leaflet-zoom-anim .leaflet-zoom-hide {
    visibility: hidden
}

.leaflet-interactive {
    cursor: pointer
}

.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive {
    cursor: crosshair
}

.leaflet-control,.leaflet-popup-pane {
    cursor: auto
}

.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable {
    cursor: move;
    cursor: -webkit-grabbing;
    cursor: -moz-grabbing;
    cursor: grabbing
}

.leaflet-image-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane>svg path,.leaflet-tile-container {
    pointer-events: none
}

.leaflet-image-layer.leaflet-interactive,.leaflet-marker-icon.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path {
    pointer-events: visiblePainted;
    pointer-events: auto
}

.leaflet-container {
    background: #ddd;
    outline: 0
}

.leaflet-container a {
    color: #0078a8
}

.leaflet-container a.leaflet-active {
    outline: 2px solid orange
}

.leaflet-zoom-box {
    border: 2px dotted #38f;
    background: hsla(0,0%,100%,.5)
}

.leaflet-container {
    font: 12px/1.5 Helvetica Neue,Arial,Helvetica,sans-serif
}

.leaflet-bar {
    box-shadow: 0 1px 5px rgba(0,0,0,.65);
    border-radius: 4px
}

.leaflet-bar a,.leaflet-bar a:hover {
    background-color: #fff;
    border-bottom: 1px solid #ccc;
    width: 26px;
    height: 26px;
    line-height: 26px;
    display: block;
    text-align: center;
    text-decoration: none;
    color: #000
}

.leaflet-bar a,.leaflet-control-layers-toggle {
    background-position: 50% 50%;
    background-repeat: no-repeat;
    display: block
}

.leaflet-bar a:hover {
    background-color: #f4f4f4
}

.leaflet-bar a:first-child {
    border-top-left-radius: 4px;
    border-top-right-radius: 4px
}

.leaflet-bar a:last-child {
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    border-bottom: none
}

.leaflet-bar a.leaflet-disabled {
    cursor: default;
    background-color: #f4f4f4;
    color: #bbb
}

.leaflet-touch .leaflet-bar a {
    width: 30px;
    height: 30px;
    line-height: 30px
}

.leaflet-touch .leaflet-bar a:first-child {
    border-top-left-radius: 2px;
    border-top-right-radius: 2px
}

.leaflet-touch .leaflet-bar a:last-child {
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 2px
}

.leaflet-control-zoom-in,.leaflet-control-zoom-out {
    font: 700 18px Lucida Console,Monaco,monospace;
    text-indent: 1px
}

.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out {
    font-size: 22px
}

.leaflet-control-layers {
    box-shadow: 0 1px 5px rgba(0,0,0,.4);
    background: #fff;
    border-radius: 5px
}

.leaflet-control-layers-toggle {
    width: 36px;
    height: 36px
}

.leaflet-retina .leaflet-control-layers-toggle {
    background-size: 26px 26px
}

.leaflet-touch .leaflet-control-layers-toggle {
    width: 44px;
    height: 44px
}

.leaflet-control-layers-expanded .leaflet-control-layers-toggle,.leaflet-control-layers .leaflet-control-layers-list {
    display: none
}

.leaflet-control-layers-expanded .leaflet-control-layers-list {
    display: block;
    position: relative
}

.leaflet-control-layers-expanded {
    padding: 6px 10px 6px 6px;
    color: #333;
    background: #fff
}

.leaflet-control-layers-scrollbar {
    overflow-y: scroll;
    overflow-x: hidden;
    padding-right: 5px
}

.leaflet-control-layers-selector {
    margin-top: 2px;
    position: relative;
    top: 1px
}

.leaflet-control-layers label {
    display: block
}

.leaflet-control-layers-separator {
    height: 0;
    border-top: 1px solid #ddd;
    margin: 5px -10px 5px -6px
}

.leaflet-container .leaflet-control-attribution {
    background: #fff;
    background: hsla(0,0%,100%,.7);
    margin: 0
}

.leaflet-control-attribution,.leaflet-control-scale-line {
    padding: 0 5px;
    color: #333
}

.leaflet-control-attribution a {
    text-decoration: none;
    color: #0078a8!important
}

.leaflet-control-attribution a:hover {
    text-decoration: underline
}

.leaflet-container .leaflet-control-attribution,.leaflet-container .leaflet-control-scale {
    font-size: 11px
}

.leaflet-left .leaflet-control-scale {
    margin-left: 5px
}

.leaflet-bottom .leaflet-control-scale {
    margin-bottom: 5px
}

.leaflet-control-scale-line {
    border: 2px solid #777;
    border-top: none;
    line-height: 1.1;
    padding: 2px 5px 1px;
    font-size: 11px;
    white-space: nowrap;
    overflow: hidden;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    background: #fff;
    background: hsla(0,0%,100%,.5)
}

.leaflet-control-scale-line:not(:first-child) {
    border-top: 2px solid #777;
    border-bottom: none;
    margin-top: -2px
}

.leaflet-control-scale-line:not(:first-child):not(:last-child) {
    border-bottom: 2px solid #777
}

.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers {
    box-shadow: none
}

.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers {
    border: 2px solid rgba(0,0,0,.2);
    background-clip: padding-box
}

.leaflet-popup {
    position: absolute;
    text-align: center;
    margin-bottom: 20px
}

.leaflet-popup-content-wrapper {
    padding: 1px;
    text-align: left;
    border-radius: 12px
}

.leaflet-popup-content {
    margin: 13px 19px;
    line-height: 1.4
}

.leaflet-popup-content p {
    margin: 18px 0
}

.leaflet-popup-tip-container {
    width: 40px;
    height: 20px;
    position: absolute;
    left: 50%;
    margin-left: -20px;
    overflow: hidden;
    pointer-events: none
}

.leaflet-popup-tip {
    width: 17px;
    height: 17px;
    padding: 1px;
    margin: -10px auto 0;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg)
}

.leaflet-popup-content-wrapper,.leaflet-popup-tip {
    background: #fff;
    color: #333;
    box-shadow: 0 3px 14px rgba(0,0,0,.4)
}

.leaflet-container a.leaflet-popup-close-button {
    position: absolute;
    top: 0;
    right: 0;
    padding: 4px 4px 0 0;
    border: none;
    text-align: center;
    width: 18px;
    height: 14px;
    font: 16px/14px Tahoma,Verdana,sans-serif;
    color: #c3c3c3;
    text-decoration: none;
    font-weight: 700;
    background: transparent
}

.leaflet-container a.leaflet-popup-close-button:hover {
    color: #999
}

.leaflet-popup-scrolled {
    overflow: auto;
    border-bottom: 1px solid #ddd;
    border-top: 1px solid #ddd
}

.leaflet-oldie .leaflet-popup-content-wrapper {
    zoom:1}

.leaflet-oldie .leaflet-popup-tip {
    width: 24px;
    margin: 0 auto;
    -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
    filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678,M12=0.70710678,M21=-0.70710678,M22=0.70710678)
}

.leaflet-oldie .leaflet-popup-tip-container {
    margin-top: -1px
}

.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip {
    border: 1px solid #999
}

.leaflet-div-icon {
    background: #fff;
    border: 1px solid #666
}

.leaflet-tooltip {
    position: absolute;
    padding: 6px;
    background-color: #fff;
    border: 1px solid #fff;
    border-radius: 3px;
    color: #222;
    white-space: nowrap;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    pointer-events: none;
    box-shadow: 0 1px 3px rgba(0,0,0,.4)
}

.leaflet-tooltip.leaflet-clickable {
    cursor: pointer;
    pointer-events: auto
}

.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before,.leaflet-tooltip-top:before {
    position: absolute;
    pointer-events: none;
    border: 6px solid transparent;
    background: transparent;
    content: ""
}

.leaflet-tooltip-bottom {
    margin-top: 6px
}

.leaflet-tooltip-top {
    margin-top: -6px
}

.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before {
    left: 50%;
    margin-left: -6px
}

.leaflet-tooltip-top:before {
    bottom: 0;
    margin-bottom: -12px;
    border-top-color: #fff
}

.leaflet-tooltip-bottom:before {
    top: 0;
    margin-top: -12px;
    margin-left: -6px;
    border-bottom-color: #fff
}

.leaflet-tooltip-left {
    margin-left: -6px
}

.leaflet-tooltip-right {
    margin-left: 6px
}

.leaflet-tooltip-left:before,.leaflet-tooltip-right:before {
    top: 50%;
    margin-top: -6px
}

.leaflet-tooltip-left:before {
    right: 0;
    margin-right: -12px;
    border-left-color: #fff
}

.leaflet-tooltip-right:before {
    left: 0;
    margin-left: -12px;
    border-right-color: #fff
}

.marker-cluster-small {
    background-color: rgba(181,226,140,.6)
}

.marker-cluster-small div {
    background-color: rgba(110,204,57,.6)
}

.marker-cluster-medium {
    background-color: rgba(241,211,87,.6)
}

.marker-cluster-medium div {
    background-color: rgba(240,194,12,.6)
}

.marker-cluster-large {
    background-color: rgba(253,156,115,.6)
}

.marker-cluster-large div {
    background-color: rgba(241,128,23,.6)
}

.leaflet-oldie .marker-cluster-small {
    background-color: #b5e28c
}

.leaflet-oldie .marker-cluster-small div {
    background-color: #6ecc39
}

.leaflet-oldie .marker-cluster-medium {
    background-color: #f1d357
}

.leaflet-oldie .marker-cluster-medium div {
    background-color: #f0c20c
}

.leaflet-oldie .marker-cluster-large {
    background-color: #fd9c73
}

.leaflet-oldie .marker-cluster-large div {
    background-color: #f18017
}

.marker-cluster {
    background-clip: padding-box;
    border-radius: 20px
}

.marker-cluster div {
    width: 30px;
    height: 30px;
    margin-left: 5px;
    margin-top: 5px;
    text-align: center;
    border-radius: 15px;
    font: 12px Helvetica Neue,Arial,Helvetica,sans-serif
}

.marker-cluster t-span {
    line-height: 30px
}

.TVLeafletMarkerContainer {
    border-radius: 20px;
    background: #fff;
    border: 1px solid #999;
    box-sizing: border-box;
    display: flex;
    align-items: center
}

.TVLeafletMarkerContainer:hover {
    border: 1px solid transparent;
    box-shadow: 0 0 5px #999
}

.TVMarkerTooltip {
    box-sizing: border-box;
    max-width: 200px;
    padding: 7px 12px;
    border-radius: 20px;
    font-size: 13px;
    line-height: 16px;
    color: #fff;
    background: #999;
    text-transform: capitalize;
    box-shadow: none;
    border-width: 0
}

.TVMarkerTooltip:before {
    top: -2px;
    border-bottom: 9px solid #999
}

.TVMarkerTooltip.TVActive {
    background: #185584
}

.TVMarkerTooltip.TVActive:before {
    border-bottom: 9px solid #185584
}

.TVMarkerTooltip .TVMarkerTooltipContent {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden
}

.TVMarkerChildCount {
    min-width: 10px;
    height: 10px;
    border-radius: 10px;
    background: #999;
    margin: 4px
}

.TVMarkerContent {
    display: flex;
    flex-direction: column;
    max-height: 28px;
    white-space: nowrap
}

.TVMarkerTitle {
    color: #999;
    font-weight: 700;
    font-size: 10px;
    text-transform: uppercase
}

.TVMarkerPrice,.TVMarkerTitle {
    line-height: 12px;
    padding-right: 10px
}

.TVMarkerPrice {
    color: #185584;
    font-size: 11px
}

.TVMarkerPriceAvailable.TVLeafletMarkerContainer {
    border: 1px solid #185584
}

.TVMarkerPriceAvailable.TVLeafletMarkerContainer:hover {
    border: 1px solid transparent
}

.TVMarkerPriceAvailable .TVMarkerChildCount {
    background: #185584
}

.TVMarkerPriceAvailable .TVMarkerTitle {
    color: #185584
}

.TVMarkerChildsCountEnabled .TVMarkerChildCount,.TVMarkerTitleEnabled .TVMarkerChildCount {
    color: #fff;
    height: 20px;
    border-radius: 15px;
    padding: 0 5px;
    font-size: 11px;
    box-sizing: content-box;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVMarkerSelected .TVMarkerChildCount {
    background: #fff;
    color: #999
}

.TVMarkerSelected .TVLeafletMarkerContainer {
    background: #999
}

.TVMarkerSelected .TVMarkerPriceAvailable.TVLeafletMarkerContainer {
    background: #185584
}

.TVMarkerSelected .TVMarkerPriceAvailable .TVMarkerChildCount {
    color: #185584
}

.TVMarkerSelected .TVMarkerPrice,.TVMarkerSelected .TVMarkerTitle {
    color: #fff
}

.TVLeafletRulerMarker {
    border: 2px solid #195483;
    background: #fff;
    border-radius: 10px;
    transition: .2s;
    width: 9px!important;
    height: 9px!important;
    margin-left: -6px!important;
    margin-top: -6px!important
}

.TVLeafletRulerMarker.TVLeafletRulerMobileMarker,.TVLeafletRulerMarker:hover {
    width: 13px!important;
    height: 13px!important;
    margin-left: -8px!important;
    margin-top: -8px!important
}

.leaflet-dragging .TVRulerEnabled.leaflet-grab,.leaflet-dragging .TVRulerEnabled .TVMapMouseMarker {
    cursor: move;
    cursor: -webkit-grabbing;
    cursor: -moz-grabbing;
    cursor: grabbing
}

.TVRulerEnabled.leaflet-grab,.TVRulerEnabled .TVMapMouseMarker {
    cursor: crosshair
}

.TVLeafletAirportMarker .TVLeafletMarkerContainer {
    width: 20px;
    height: 20px;
    justify-content: center;
    border-color: #185584;
    color: #185584
}

.TVLeafletAirportMarker .TVLeafletMarkerContainer:hover {
    border-color: #185584;
    box-shadow: none
}

.TVLeafletAirportMarker .TVLeafletMarkerContainer:before {
    font-family: TVicons;
    content: "\e92c"
}

.TVLeafletAirportMarker .TVLeafletMarkerContainer .TVMarkerChildCount {
    display: none
}

.TVRulerTooltip {
    background-color: #fff;
    border: 0;
    padding: 0 7px;
    color: #333;
    font-weight: 700
}

.TVRulerTooltip.leaflet-tooltip-right {
    margin-left: 10px
}

.TVRulerTooltip.leaflet-tooltip-right:before {
    border: 0
}

.TVRulerMarkerPopup {
    border-radius: 4px;
    box-shadow: 0 3px 6px rgba(0,0,0,.16);
    position: absolute;
    background-color: #fff;
    top: 0;
    left: 0;
    animation: tv-appearance .2s ease-out
}

.TVRulerMarkerPopup .TVRulerMarkerPopupItem {
    padding: 6px 22px 6px 30px;
    font-size: 12px;
    cursor: pointer;
    margin: 4px 0
}

.TVRulerMarkerPopup .TVRulerMarkerPopupItem:hover {
    background-color: #efefef
}

.TVRulerMarkerPopup .TVRulerMarkerDeleteMarker:before {
    content: "Удалить точку"
}

.TVRulerMarkerPopup .TVRulerMarkerDeletePath:before {
    content: "Удалить весь путь"
}

.TVRulerMarkerPopup .TVRulerMarkerFinishedPath:before {
    content: "Закончить путь"
}

@keyframes tv-appearance {
    0% {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

.TVLeafletMapControl {
    width: 100%;
    height: 100%;
    font-family: var(--tv-font-theme2)
}

.TVMapLayersDecorator {
    background: #fff;
    border: 0;
    border-radius: 50px;
    box-shadow: 0 3px 6px rgba(0,0,0,.16);
    cursor: pointer
}

.TVMapLayersDecorator:before {
    font-family: TVicons;
    content: "\e969";
    color: #777;
    padding: 8px 12px;
    display: block;
    line-height: 24px;
    font-size: 16px
}

.TVMapLayersDecorator.TVActive:before {
    color: #185584
}

.TVMapLeayersPanel {
    border-radius: 4px;
    box-shadow: 0 3px 6px rgba(0,0,0,.16)
}

.TVMapLeayersPanel .tv_content {
    margin: 0
}

.TVMapToolsDecorator {
    background: #fff;
    border: 0;
    border-radius: 50px;
    box-shadow: 0 3px 6px rgba(0,0,0,.16);
    display: flex
}

.TVMapToolsDrawing:before {
    font-family: TVicons;
    content: "\e955"
}

.TVMapToolsPrice:before {
    font-family: TVicons;
    content: "\e968"
}

.TVMapToolsLink:before {
    font-family: TVicons;
    content: "\e926"
}

.TVMapToolsRuler:before {
    font-family: TVicons;
    content: "\e966"
}

.TVMapTool {
    display: flex;
    cursor: pointer
}

.TVMapTool:not(:last-child):after {
    content: "";
    margin: 10px 0;
    border-right: 1px solid #ddd
}

.TVMapTool:before {
    padding: 8px 12px;
    display: block;
    line-height: 24px;
    font-size: 16px;
    color: #777
}

.TVMapTool.TVActive:before {
    color: #185584
}

.TVMapToolsDrawing.TVClear:before {
    font-family: TVicons;
    content: "\f014"
}

.TVHintLink:before {
    content: "Поделиться ссылкой"
}

.TVHintLinkCopied {
    background-color: #5cb85c
}

.TVHintLinkCopied:before {
    content: "Ссылка скопирована"
}

.TVHintRuler:before {
    content: "Линейка"
}

.TVMapZoomDecorator {
    background: #fff;
    border: 0;
    border-radius: 50px;
    box-shadow: 0 3px 6px rgba(0,0,0,.16);
    display: block;
    font-size: 28px;
    text-align: center;
    overflow: hidden
}

.TVMapZoomDecorator .TVMapZoomMinus,.TVMapZoomDecorator .TVMapZoomPlus {
    overflow: hidden;
    color: #777;
    cursor: pointer
}

.TVMapZoomDecorator .TVMapZoomMinus:before,.TVMapZoomDecorator .TVMapZoomPlus:before {
    padding: 10px;
    display: block;
    line-height: 16px
}

.TVMapZoomDecorator .TVMapZoomPlus:before {
    content: "+"
}

.TVMapZoomDecorator .TVMapZoomPlus:after {
    content: " ";
    margin: 0 5px;
    border-bottom: 1px solid #ddd;
    display: block
}

.TVMapZoomDecorator .TVMapZoomMinus:before {
    content: "_";
    position: relative;
    bottom: 14px
}

.TVMapLayersSwitcher {
    min-width: 150px
}

.TVMapLayersSwitcher .TVMapSelectorLayers:not(:last-child) {
    border-bottom: 1px solid #ddd
}

.TVMapLayersSwitcher .TVMapLayer {
    padding: 10px 20px;
    cursor: pointer;
    position: relative;
    display: flex;
    align-items: center;
    color: #333
}

.TVMapLayersSwitcher .TVMapLayer:first-child {
    padding-top: 20px
}

.TVMapLayersSwitcher .TVMapLayer:last-child {
    padding-bottom: 20px
}

.TVMapLayersSwitcher .TVMapLayer:before {
    position: absolute;
    width: 20px;
    height: 20px;
    text-align: center;
    font-family: TVicons;
    content: "\e90b";
    color: transparent
}

.TVMapLayersSwitcher .TVMapLayer:after {
    margin-left: 30px;
    font-size: 14px
}

.TVMapLayersSwitcher .TVMapLayer.TVActive:before {
    color: #185584;
    background: transparent
}

.TVMapLayersSwitcher .TVMapLayer.TVDisabled {
    opacity: .7;
    color: #999;
    cursor: default
}

.TVMapPainterControl {
    position: absolute;
    cursor: crosshair;
    top: 0;
    left: 0;
    touch-action: none
}

.TVMapPainterControl,.TVMapPainterControl canvas {
    width: 100%;
    height: 100%
}

.TVHighlightHelpControl {
    --highlight-bg-color: #edf2f5;
    display: flex;
    align-items: center;
    font-size: 13px;
    font-weight: 400;
    color: #5c6672
}

.TVHighlightHelpControl:before {
    content: "";
    display: block;
    width: 30px;
    height: 30px;
    background: var(--highlight-bg-color);
    border: 1px solid var(--highlight-bg-color);
    border-radius: 5px;
    margin-right: 10px
}

.TVRangeTable {
    --range-highlight-bg-color: #edf2f5;
    --range-highlight-color: #333;
    --range-selected-bg-color: #def1ff;
    --range-selected-color: #333;
    --range-selected-edge-bg-color: #185584;
    --range-selected-edge-color: #fff;
    font-family: var(--tv-font-theme2);
    width: 100%;
    display: flex;
    flex-direction: column
}

.TVRangeTableWrapper {
    width: 100%;
    display: flex;
    justify-content: center
}

.TVRangeTableContainer {
    width: 100%;
    display: flex;
    flex-direction: column
}

.TVRangeTableRow {
    width: 100%;
    display: flex;
    justify-content: center
}

.TVRangeTableRow:not(:first-child) {
    margin-top: 4px
}

.TVRangeTableCell {
    width: 45px;
    height: 45px;
    color: #333;
    background: #fff;
    display: flex;
    flex-direction: column;
    cursor: pointer;
    box-sizing: border-box;
    border-radius: 5px
}

.TVRangeTableCell:not(:first-child) {
    margin-left: 4px
}

.TVRangeTableCell.TVRangeCellHightlighted {
    background: var(--range-highlight-bg-color);
    color: var(--range-highlight-color)
}

.TVRangeTableCell.TVRangeCellHightlighted .TVRangeCellLabel {
    font-weight: 700
}

.TVRangeTableCell.TVRangeCellSelected {
    background: var(--range-selected-bg-color);
    color: var(--range-selected-color)
}

.TVRangeTableCell.TVRangeCellLast,.TVRangeTableCell.TVRangeCellStart {
    background: var(--range-selected-edge-bg-color);
    color: var(--range-selected-edge-color)
}

.TVRangeTableCell.TVRangeCellLast .TVRangeCellInfo,.TVRangeTableCell.TVRangeCellStart .TVRangeCellInfo {
    display: flex
}

.TVRangeCellLabel {
    margin-top: 6px;
    line-height: 18px;
    font-size: 13px;
    text-align: center
}

.TVRangeCellInfo,.TVRangeCellLabel {
    font-family: var(--tv-font-theme2);
    pointer-events: none
}

.TVRangeCellInfo {
    margin-top: 3px;
    display: none;
    justify-content: center;
    line-height: 13px;
    font-size: 9px;
    text-align: left;
    text-transform: uppercase
}

.TVCalendarControlBody {
    display: flex;
    justify-content: space-between
}

.TVCalendarControlTable {
    --calendar-highlight-bg-color: #edf2f5;
    --calendar-highlight-color: #333;
    --calendar-hover-bg-color: #def1ff;
    --calendar-selected-bg-color: #e2f1fb;
    --calendar-selected-color: #333;
    --calendar-selected-edge-bg-color: #185584;
    --calendar-selected-edge-color: #fff;
    --calendar-selected-price-color: #5c6672;
    box-sizing: border-box;
    width: 100%;
    max-width: 347px
}

.TVCalendarTable {
    width: 100%;
    border-spacing: 4px
}

.TVCalendarTableHead {
    text-transform: uppercase;
    color: #185584
}

.TVCalendarTableHeadCell {
    font-weight: 600;
    font-size: 10px;
    line-height: 30px;
    text-align: center
}

.TVCalendarTableHeadCell:nth-child(6),.TVCalendarTableHeadCell:nth-child(7) {
    color: #b50000
}

.TVCalendarTableCell {
    height: 45px;
    width: 45px;
    box-sizing: border-box;
    border-radius: 5px;
    vertical-align: top;
    text-align: center;
    font-size: 13px;
    padding: 7px 0 0
}

.TVCalendarTableCell.TVCalendarAvailableDayCell:hover {
    background-color: var(--calendar-hover-bg-color);
    color: #333;
    cursor: pointer
}

.TVCalendarTableCell.TVCalendarTodayCell {
    color: #c7c7c7
}

.TVCalendarTableCell.TVCalendarDisabledCell {
    opacity: .4
}

.TVCalendarTableCell.TVCalendarFlyAvailableCell {
    background-color: var(--calendar-highlight-bg-color);
    color: var(--calendar-highlight-color);
    position: relative;
    font-weight: 700
}

.TVCalendarTableCell.TVCalendarFlyAvailableCell .TVCalendarFlyAvailablePrice {
    font-size: 9px;
    position: absolute;
    width: 100%;
    left: 0;
    color: var(--calendar-selected-price-color);
    font-weight: 400;
    bottom: 5px;
    pointer-events: none;
    white-space: nowrap
}

.TVCalendarTableCell.TVCalendarSelectedCell {
    color: var(--calendar-selected-color)
}

.TVCalendarTableCell.TVCalendarSelectedCell,.TVCalendarTableCell.TVCalendarSelectedCell:hover {
    background-color: var(--calendar-selected-bg-color)
}

.TVCalendarTableCell.TVCalendarEndDateCell,.TVCalendarTableCell.TVCalendarEndDateCell:hover,.TVCalendarTableCell.TVCalendarStartDateCell,.TVCalendarTableCell.TVCalendarStartDateCell:hover {
    background-color: var(--calendar-selected-edge-bg-color);
    color: var(--calendar-selected-edge-color)
}

.TVCalendarTableCell.TVCalendarEndDateCell .TVCalendarFlyAvailablePrice,.TVCalendarTableCell.TVCalendarEndDateCell:hover .TVCalendarFlyAvailablePrice,.TVCalendarTableCell.TVCalendarStartDateCell .TVCalendarFlyAvailablePrice,.TVCalendarTableCell.TVCalendarStartDateCell:hover .TVCalendarFlyAvailablePrice {
    color: var(--calendar-selected-edge-color)
}

.TVCalendarTitleControl {
    min-height: 26px;
    display: flex;
    flex-direction: column;
    justify-content: center
}

.TVCalendarTitleControl.TVTextAlign-Left {
    align-items: left
}

.TVCalendarTitleControl.TVTextAlign-Center {
    align-items: center
}

.TVCalendarTitleControl .TVCalendarTitleControlMonth {
    font-weight: 700
}

.TVCalendarTitleControl .TVCalendarTitleControlMonth.TVColorGray200 {
    color: #333
}

.TVCalendarTitleControl .TVCalendarTitleControlMonth.TVColorGray405 {
    color: #5c6672
}

.TVCalendarTitleControl .TVCalendarTitleControlMonth.TVFontSize-XS {
    font-size: 13px
}

.TVCalendarTitleControl .TVCalendarTitleControlMonth.TVFontSize-S {
    font-size: 14px
}

.TVCalendarTitleControl .TVCalendarTitleControlMonth.TVFontSize-XL {
    font-size: 20px
}

.TVCalendarTitleControl .TVCalendarTitleControlMonth.TVTextTransform-Uppercase {
    text-transform: uppercase
}

.TVCalendarTitleControl .TVCalendarTitleControlYear {
    font-size: 10px
}

.TVCalendarTitleControl .TVCalendarTitleControlYear.TVColorGray405 {
    color: #5c6672
}

.TVCalendarTitleControl .TVCalendarTitleControlYear.TVColorGray600 {
    color: #999
}

.TVCalendarTitleControl .TVCalendarTitleControlYear.TVFontWeightSize-S {
    font-weight: 400
}

.TVCalendarTitleControl .TVCalendarTitleControlYear.TVFontWeightSize-L {
    font-weight: 600
}

.TVCalendarSliderView {
    font-family: var(--tv-font-theme2);
    color: #333;
    width: 100%;
    position: relative;
    overflow: hidden
}

.TVCalendarSliderView .TVCalendarSliderViewLeftButton,.TVCalendarSliderView .TVCalendarSliderViewRightButton {
    width: 26px;
    height: 26px;
    background-color: #edf2f5;
    border-radius: 13px;
    color: #777;
    box-sizing: border-box;
    cursor: pointer;
    text-align: center;
    line-height: 1;
    position: absolute
}

.TVCalendarSliderView .TVCalendarSliderViewLeftButton:after,.TVCalendarSliderView .TVCalendarSliderViewRightButton:after {
    font-size: 11px;
    font-weight: 600;
    line-height: 26px
}

.TVCalendarSliderView .TVCalendarSliderViewLeftButton.TVDisabled,.TVCalendarSliderView .TVCalendarSliderViewRightButton.TVDisabled {
    color: #ddd;
    border-color: #ddd;
    pointer-events: none
}

.TVCalendarSliderView .TVCalendarSliderViewLeftButton {
    left: 10px
}

.TVCalendarSliderView .TVCalendarSliderViewLeftButton:after {
    font-family: TVicons;
    content: "\e909"
}

.TVCalendarSliderView .TVCalendarSliderViewRightButton {
    right: 10px
}

.TVCalendarSliderView .TVCalendarSliderViewRightButton:after {
    font-family: TVicons;
    content: "\e90a"
}

.TVCalendarSliderView .TVCalendarControlBody>:not(:first-child) {
    margin-left: 30px
}

.TVCalendarSliderView .TVCalendarSheetControlTitle {
    margin-bottom: 18px
}

.TVCalendarControlHighlightHelp {
    margin-top: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(51,51,51,.08)
}

.TVCalendarSheetControl {
    max-width: 347px
}

.TVCalendarListView {
    font-family: var(--tv-font-theme2);
    color: #333;
    height: 100%
}

.TVCalendarListView .TVCalendarSheetControl,.TVCalendarListView .TVHighlightHelpControl {
    margin: auto
}

.TVCalendarListView .TVCalendarSheetControlTitle {
    margin-bottom: 10px;
    padding: 0 4px
}

.TVCalendarListView .TVCalendarSheetControl {
    margin-bottom: 10px
}

.TVCalendarListView .TVHighlightHelpControl {
    margin-bottom: 18px;
    max-width: 347px
}

.TVCalendarListViewWeekdays {
    max-width: 347px;
    display: flex;
    justify-content: space-around;
    margin: 0 auto 10px;
    text-transform: uppercase;
    color: #185584;
    background-color: #fff
}

.TVCalendarListViewWeekdays>* {
    font-weight: 600;
    font-size: 10px;
    line-height: 30px;
    text-align: center
}

.TVCalendarListViewWeekdays>:nth-child(6),.TVCalendarListViewWeekdays>:nth-child(7) {
    color: #b50000
}

.TVCalendarListViewContent {
    height: calc(100% - 40px);
    overflow-y: auto
}

.TVCalendarControl {
    height: 100%;
    width: 100%
}

.TVCountryItemCheckbox {
    padding: 5px 0;
    display: flex;
    align-items: center;
    color: #333
}

.TVCountryItemCheckbox .TVCheckBox {
    padding-left: 0;
    display: flex;
    align-items: center
}

.TVCountryCheckboxContent {
    display: flex;
    align-items: center;
    cursor: pointer
}

.TVCountryCheckboxName {
    margin-left: 10px
}

.TVHotelServiceList {
    height: 100%;
    overflow-y: auto
}

.TVHotelServiceList .TVCheckboxListControl:not(:last-child) {
    margin-bottom: 10px
}

.TVHotelServiceList .TVHotelServiceSeparatorTheme1,.TVHotelServiceList .TVHotelServiceSeparatorTheme2 {
    color: #333;
    font-weight: 700;
    padding: 5px 0
}

.TVHotelServiceList .TVHotelServiceSeparatorTheme1 {
    font-size: 13px
}

.TVHotelServiceList .TVHotelServiceSeparatorTheme2 {
    font-size: 14px
}

.TVLongListHotels .TVLongListCheckBox {
    height: 100%;
    overflow: hidden;
    overflow-y: auto
}

.TVLongListHotels .TVCheckBox {
    display: block;
    padding: 2px 0;
    font-size: 13px;
    line-height: 18px;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    color: #333
}

.TVLongListHotels .TVCheckBox:hover {
    background-color: transparent
}

.TVLongListHotels .TVWaiterBG.TVFiltering {
    top: 9px;
    bottom: auto;
    left: auto;
    right: 27px
}

.TVExcursionsSeparator:before {
    content: "Программы"
}

.TVListHotelsCollections .TVCheckboxListControl:not(:last-child) {
    margin-bottom: 10px
}

.TVListHotelsCollections .TVCreateBtn {
    display: flex;
    align-items: center;
    padding: 2px 0;
    font-size: 13px;
    color: #333;
    cursor: pointer
}

.TVListHotelsCollections .TVCreateBtn:before {
    font-family: TVicons;
    content: "\e913";
    font-size: 16px;
    line-height: 16px;
    margin-right: 8px;
    color: #777
}

.TVListHotelsCollections .TVCreateBtn:after {
    content: "Создать новый список"
}

.TVListHotelsCollections .TVCreateBtn:hover {
    color: #55addc
}

.TVListHotelsCollections .TVHoteCollectionslSeparatorTheme1,.TVListHotelsCollections .TVHoteCollectionslSeparatorTheme2 {
    color: #868686;
    text-transform: uppercase;
    padding: 5px 0;
    border-bottom: 1px dashed #ddd;
    margin: 0 10px 5px 0
}

.TVListHotelsCollections .TVHoteCollectionslSeparatorTheme1 {
    font-size: 10px
}

.TVListHotelsCollections .TVHoteCollectionslSeparatorTheme2 {
    font-size: 12px
}

.TVListHotelsCollectionsEditBtn {
    display: inline-block;
    margin-left: 3px;
    font-size: 10px
}

.TVListHotelsCollectionsEditBtn:after {
    font-family: TVicons;
    content: "\e955"
}

.TVListCountries,.TVListCountries.TVSingleCountry .TVListCountriesItems {
    height: 100%
}

.TVListCountries.TVSingleCountry .TVMobileListCountries .TVListBox .TVCheckBox:before {
    display: none
}

.TVListCountries.TVSingleCountry .TVCountriesMultiBtn:before {
    content: "Выбрать несколько стран"
}

.TVListCountries.TVMultiSelectionEnabled .TVListCountriesItems {
    height: calc(100% - 80px)
}

.TVListCountries.TVEmptyList .TVMobileListCountries .TVListBox {
    padding: 15px 0
}

.TVListCountries.TVEmptyList .TVMobileListCountries .TVListBox:after {
    content: "Стран с прямым перелетом из выбранного города не найдено.\aПопробуйте включить регулярные рейсы или показать закрытые страны, сняв галочки выше.";
    font-size: 13px;
    line-height: 18px;
    color: #777;
    white-space: pre-wrap
}

.TVListCountries.TVEmptyList .TVCountriesMultiBtn,.TVListCountries.TVEmptyList .TVSubmitButton,.TVListCountries.TVSingle .TVCountriesMultiBtn {
    display: none
}

.TVListCountriesItems {
    height: 100%
}

.TVListCountriesItems .TVTabbedListControl {
    padding: 10px 20px 0
}

.TVListCountriesWarningMessage:before {
    content: "Вы можете выбрать не более 5 стран"
}

.TVMobileListCountries .TVCountryCheckboxFilter {
    width: 100%;
    display: flex;
    background: #efefef;
    border-radius: 2px
}

.TVMobileListCountries .TVCountryCheckboxFilter:not(:first-child) {
    margin-top: 10px
}

.TVMobileListCountries .TVCountryCheckboxFilter .TVCheckBox {
    box-sizing: border-box;
    width: 100%;
    padding: 12px;
    border: 0;
    font-size: 13px;
    line-height: 18px;
    color: #777
}

.TVMobileListCountries .TVCountryCheckboxFilter .TVCheckBox.TVCovid19 {
    display: flex;
    align-items: center
}

.TVMobileListCountries .TVCountryCheckboxFilter .TVCheckBox.TVCovid19:after {
    content: "COVID19";
    background-color: #b52419;
    color: #fff;
    margin-left: 10px;
    padding: 0 5px;
    border-radius: 3px;
    font-size: 10px;
    height: 16px;
    box-sizing: border-box;
    display: flex;
    align-items: center
}

.TVMobileListCountries .TVCountryFlags {
    width: 18px;
    min-width: 18px;
    height: 14px;
    border: 1px solid #ddd
}

.TVMobileListCountries .TVListBox {
    padding-top: 0;
    user-select: none
}

.TVMobileListCountries .TVListBox .TVCheckBox {
    padding: 15px 0;
    display: flex;
    align-items: center;
    font-family: var(--tv-font-theme2);
    font-size: 14px;
    line-height: 20px;
    color: #333;
    border-bottom: 1px solid #ddd
}

.TVMobilePanel .TVMobileListCountries .TVListBox .TVCheckBox:hover {
    background: #fff
}

.TVCountryPanel {
    user-select: none
}

.tv_drop_panel.TVCountryPanel .tv_content {
    margin: 0
}

.TVCountryPanel.TVMobilePanel .TVMobilePanelHeader .TVMobilePanelCaption:after {
    content: "Выберите страну"
}

.TVCountryPanel.TVMobilePanel .TVNameContent {
    padding: 10px 7px
}

.TVTableCountries {
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    line-height: 18px
}

.TVTableCountries.TVSingleCountry .TVCountriesBody .TVCheckBox:before {
    display: none
}

.TVTableCountries.TVSingleCountry .TVCountriesMultiBtn:before {
    content: "Выбрать несколько стран"
}

.TVTableCountries.TVEmptyList .TVCountriesBody {
    padding: 20px;
    column-count: auto;
    text-align: center
}

.TVTableCountries.TVEmptyList .TVCountriesBody:after {
    content: "Стран с прямым перелетом из выбранного города не найдено.\aПопробуйте включить регулярные рейсы или показать закрытые страны, сняв галочки выше.";
    font-size: 13px;
    line-height: 18px;
    color: #777;
    white-space: pre-wrap
}

.TVTableCountries.TVEmptyList .TVCountriesButtons {
    display: none
}

.TVTableCountries .TVCheckBox:before {
    font-size: 10px;
    line-height: 10px;
    height: 10px
}

.TVTableCountries .TVCountriesTable {
    width: 100%;
    display: flex;
    flex-flow: column wrap
}

.TVTableCountries .TVDropPanelBtn {
    width: calc(50% - 20px)
}

.TVTableCountries .TVDropPanelBtn:first-child {
    margin-left: 0
}

.TVTableCountries .TVDropPanelBtn:not(:first-child) {
    margin-left: 0;
    margin-right: 0
}

.TVTableCountries .TVDropPanelBtn.TVCountriesSelectBtn {
    margin-left: 20px
}

.TVTableCountries .TVDropPanelBtn.TVCountriesResetBtn,.TVTableCountries .TVDropPanelBtn.TVCountriesSelectBtn {
    width: calc(25% - 20px)
}

.TVTableCountries .TVOrderWarningMessage {
    margin: 20px 20px 0;
    font-size: 13px;
    line-height: 18px;
    text-align: center
}

.TVTableCountries .TVOrderWarningMessage:before {
    content: "Вы можете выбрать не более 5 стран для одновременного поиска туров"
}

.TVCountriesHeader {
    padding: 23px 20px;
    background: #f5f5f5;
    border-bottom: 1px solid #ddd
}

.TVCountriesFilter,.TVCountriesFilter .TVCheckBox,.TVCountriesHeader {
    display: flex;
    align-items: center
}

.TVCountriesFilter .TVCheckBox {
    padding-left: 0;
    font-size: 13px;
    line-height: 18px;
    color: #333
}

.TVCountriesFilter .TVCheckBox:not(:last-child) {
    margin-right: 20px
}

.TVCountriesFilter .TVCheckBox:hover {
    color: #333
}

.TVCountriesFilter .TVCovid19:after {
    content: "COVID19";
    background-color: #b52419;
    color: #fff;
    margin-left: 10px;
    padding: 0 5px;
    border-radius: 2px;
    font-size: 10px;
    line-height: 15px;
    box-sizing: border-box;
    display: flex;
    align-items: center
}

.TVScrolledCountriesBody {
    max-height: 308px;
    margin: 20px 10px;
    overflow-y: auto
}

.TVCountriesBody {
    padding: 0 20px;
    column-count: 3
}

.TVCountriesBody .TVCountryItemCheckbox {
    page-break-inside: avoid;
    overflow: hidden
}

.TVCountriesButtons {
    padding: 0 20px;
    display: flex;
    justify-content: center
}

.TVCountriesButtons.TVCountriesTypeEnabled .TVCountriesMultiBtn,.TVCountriesButtons.TVCountriesTypeEnabled .TVCountriesResetBtn {
    margin-left: 20px;
    margin-right: 0
}

.TVCountriesTypeBtn:before {
    content: "Показать все страны"
}

.TVCountriesTypeBtn.TVPopularCountries:before {
    content: "Только популярные страны"
}

.TVCountriesMultiBtn:before {
    content: "Выбрать одну страну"
}

.TVCountriesSelectBtn:before {
    content: "Выбрать"
}

.TVCountriesResetBtn:before {
    content: "Сброс"
}

.TVResultItem,.TVSResultItem {
    display: flex
}

.TVMResultItem.TVPreview .TVMResultItemPreTitle,.TVMResultItem.TVPreview .TVMSResultItemPreTitle,.TVMResultItem.TVPreview .TVResultItemPreTitle,.TVMResultItem.TVPreview .TVSResultItemPreTitle,.TVMSResultItem.TVPreview .TVMResultItemPreTitle,.TVMSResultItem.TVPreview .TVMSResultItemPreTitle,.TVMSResultItem.TVPreview .TVResultItemPreTitle,.TVMSResultItem.TVPreview .TVSResultItemPreTitle,.TVResultItem.TVPreview .TVMResultItemPreTitle,.TVResultItem.TVPreview .TVMSResultItemPreTitle,.TVResultItem.TVPreview .TVResultItemPreTitle,.TVResultItem.TVPreview .TVSResultItemPreTitle,.TVSResultItem.TVPreview .TVMResultItemPreTitle,.TVSResultItem.TVPreview .TVMSResultItemPreTitle,.TVSResultItem.TVPreview .TVResultItemPreTitle,.TVSResultItem.TVPreview .TVSResultItemPreTitle {
    visibility: hidden;
    position: relative;
    width: 80px;
    height: 20px;
    margin-bottom: 2px
}

.TVMResultItem.TVPreview .TVMResultItemPreTitle:before,.TVMResultItem.TVPreview .TVMSResultItemPreTitle:before,.TVMResultItem.TVPreview .TVResultItemPreTitle:before,.TVMResultItem.TVPreview .TVSResultItemPreTitle:before,.TVMSResultItem.TVPreview .TVMResultItemPreTitle:before,.TVMSResultItem.TVPreview .TVMSResultItemPreTitle:before,.TVMSResultItem.TVPreview .TVResultItemPreTitle:before,.TVMSResultItem.TVPreview .TVSResultItemPreTitle:before,.TVResultItem.TVPreview .TVMResultItemPreTitle:before,.TVResultItem.TVPreview .TVMSResultItemPreTitle:before,.TVResultItem.TVPreview .TVResultItemPreTitle:before,.TVResultItem.TVPreview .TVSResultItemPreTitle:before,.TVSResultItem.TVPreview .TVMResultItemPreTitle:before,.TVSResultItem.TVPreview .TVMSResultItemPreTitle:before,.TVSResultItem.TVPreview .TVResultItemPreTitle:before,.TVSResultItem.TVPreview .TVSResultItemPreTitle:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVMResultItem.TVPreview .TVMResultItemTitle,.TVMResultItem.TVPreview .TVMSResultItemTitle,.TVMResultItem.TVPreview .TVResultItemTitle,.TVMResultItem.TVPreview .TVSResultItemTitle,.TVMSResultItem.TVPreview .TVMResultItemTitle,.TVMSResultItem.TVPreview .TVMSResultItemTitle,.TVMSResultItem.TVPreview .TVResultItemTitle,.TVMSResultItem.TVPreview .TVSResultItemTitle,.TVResultItem.TVPreview .TVMResultItemTitle,.TVResultItem.TVPreview .TVMSResultItemTitle,.TVResultItem.TVPreview .TVResultItemTitle,.TVResultItem.TVPreview .TVSResultItemTitle,.TVSResultItem.TVPreview .TVMResultItemTitle,.TVSResultItem.TVPreview .TVMSResultItemTitle,.TVSResultItem.TVPreview .TVResultItemTitle,.TVSResultItem.TVPreview .TVSResultItemTitle {
    visibility: hidden;
    position: relative;
    width: 200px;
    height: 20px;
    margin-bottom: 2px
}

.TVMResultItem.TVPreview .TVMResultItemTitle:before,.TVMResultItem.TVPreview .TVMSResultItemTitle:before,.TVMResultItem.TVPreview .TVResultItemTitle:before,.TVMResultItem.TVPreview .TVSResultItemTitle:before,.TVMSResultItem.TVPreview .TVMResultItemTitle:before,.TVMSResultItem.TVPreview .TVMSResultItemTitle:before,.TVMSResultItem.TVPreview .TVResultItemTitle:before,.TVMSResultItem.TVPreview .TVSResultItemTitle:before,.TVResultItem.TVPreview .TVMResultItemTitle:before,.TVResultItem.TVPreview .TVMSResultItemTitle:before,.TVResultItem.TVPreview .TVResultItemTitle:before,.TVResultItem.TVPreview .TVSResultItemTitle:before,.TVSResultItem.TVPreview .TVMResultItemTitle:before,.TVSResultItem.TVPreview .TVMSResultItemTitle:before,.TVSResultItem.TVPreview .TVResultItemTitle:before,.TVSResultItem.TVPreview .TVSResultItemTitle:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVMResultItem.TVPreview .TVMResultItemSubTitle,.TVMResultItem.TVPreview .TVMSResultItemSubTitle,.TVMResultItem.TVPreview .TVResultItemSubTitle,.TVMResultItem.TVPreview .TVSResultItemSubTitle,.TVMSResultItem.TVPreview .TVMResultItemSubTitle,.TVMSResultItem.TVPreview .TVMSResultItemSubTitle,.TVMSResultItem.TVPreview .TVResultItemSubTitle,.TVMSResultItem.TVPreview .TVSResultItemSubTitle,.TVResultItem.TVPreview .TVMResultItemSubTitle,.TVResultItem.TVPreview .TVMSResultItemSubTitle,.TVResultItem.TVPreview .TVResultItemSubTitle,.TVResultItem.TVPreview .TVSResultItemSubTitle,.TVSResultItem.TVPreview .TVMResultItemSubTitle,.TVSResultItem.TVPreview .TVMSResultItemSubTitle,.TVSResultItem.TVPreview .TVResultItemSubTitle,.TVSResultItem.TVPreview .TVSResultItemSubTitle {
    visibility: hidden;
    position: relative;
    height: 20px;
    width: 150px
}

.TVMResultItem.TVPreview .TVMResultItemSubTitle:before,.TVMResultItem.TVPreview .TVMSResultItemSubTitle:before,.TVMResultItem.TVPreview .TVResultItemSubTitle:before,.TVMResultItem.TVPreview .TVSResultItemSubTitle:before,.TVMSResultItem.TVPreview .TVMResultItemSubTitle:before,.TVMSResultItem.TVPreview .TVMSResultItemSubTitle:before,.TVMSResultItem.TVPreview .TVResultItemSubTitle:before,.TVMSResultItem.TVPreview .TVSResultItemSubTitle:before,.TVResultItem.TVPreview .TVMResultItemSubTitle:before,.TVResultItem.TVPreview .TVMSResultItemSubTitle:before,.TVResultItem.TVPreview .TVResultItemSubTitle:before,.TVResultItem.TVPreview .TVSResultItemSubTitle:before,.TVSResultItem.TVPreview .TVMResultItemSubTitle:before,.TVSResultItem.TVPreview .TVMSResultItemSubTitle:before,.TVSResultItem.TVPreview .TVResultItemSubTitle:before,.TVSResultItem.TVPreview .TVSResultItemSubTitle:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVMResultItem.TVPreview .TVMResultItemDescription,.TVMResultItem.TVPreview .TVResultItemBeforeDescriptionWrapper,.TVMResultItem.TVPreview .TVSResultItemDescription,.TVMSResultItem.TVPreview .TVMResultItemDescription,.TVMSResultItem.TVPreview .TVResultItemBeforeDescriptionWrapper,.TVMSResultItem.TVPreview .TVSResultItemDescription,.TVResultItem.TVPreview .TVMResultItemDescription,.TVResultItem.TVPreview .TVResultItemBeforeDescriptionWrapper,.TVResultItem.TVPreview .TVSResultItemDescription,.TVSResultItem.TVPreview .TVMResultItemDescription,.TVSResultItem.TVPreview .TVResultItemBeforeDescriptionWrapper,.TVSResultItem.TVPreview .TVSResultItemDescription {
    visibility: hidden;
    position: relative;
    height: 70px
}

.TVMResultItem.TVPreview .TVMResultItemDescription:before,.TVMResultItem.TVPreview .TVResultItemBeforeDescriptionWrapper:before,.TVMResultItem.TVPreview .TVSResultItemDescription:before,.TVMSResultItem.TVPreview .TVMResultItemDescription:before,.TVMSResultItem.TVPreview .TVResultItemBeforeDescriptionWrapper:before,.TVMSResultItem.TVPreview .TVSResultItemDescription:before,.TVResultItem.TVPreview .TVMResultItemDescription:before,.TVResultItem.TVPreview .TVResultItemBeforeDescriptionWrapper:before,.TVResultItem.TVPreview .TVSResultItemDescription:before,.TVSResultItem.TVPreview .TVMResultItemDescription:before,.TVSResultItem.TVPreview .TVResultItemBeforeDescriptionWrapper:before,.TVSResultItem.TVPreview .TVSResultItemDescription:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVMResultItem.TVPreview .TVMResultItemImage,.TVMResultItem.TVPreview .TVMResultItemPrice,.TVMResultItem.TVPreview .TVMSResultItemImage,.TVMResultItem.TVPreview .TVMSResultItemPrice,.TVMResultItem.TVPreview .TVResultItemFooter,.TVMResultItem.TVPreview .TVResultItemImageWrapper,.TVMResultItem.TVPreview .TVSResultItemFooter,.TVMResultItem.TVPreview .TVSResultItemImageWrapper,.TVMSResultItem.TVPreview .TVMResultItemImage,.TVMSResultItem.TVPreview .TVMResultItemPrice,.TVMSResultItem.TVPreview .TVMSResultItemImage,.TVMSResultItem.TVPreview .TVMSResultItemPrice,.TVMSResultItem.TVPreview .TVResultItemFooter,.TVMSResultItem.TVPreview .TVResultItemImageWrapper,.TVMSResultItem.TVPreview .TVSResultItemFooter,.TVMSResultItem.TVPreview .TVSResultItemImageWrapper,.TVResultItem.TVPreview .TVMResultItemImage,.TVResultItem.TVPreview .TVMResultItemPrice,.TVResultItem.TVPreview .TVMSResultItemImage,.TVResultItem.TVPreview .TVMSResultItemPrice,.TVResultItem.TVPreview .TVResultItemFooter,.TVResultItem.TVPreview .TVResultItemImageWrapper,.TVResultItem.TVPreview .TVSResultItemFooter,.TVResultItem.TVPreview .TVSResultItemImageWrapper,.TVSResultItem.TVPreview .TVMResultItemImage,.TVSResultItem.TVPreview .TVMResultItemPrice,.TVSResultItem.TVPreview .TVMSResultItemImage,.TVSResultItem.TVPreview .TVMSResultItemPrice,.TVSResultItem.TVPreview .TVResultItemFooter,.TVSResultItem.TVPreview .TVResultItemImageWrapper,.TVSResultItem.TVPreview .TVSResultItemFooter,.TVSResultItem.TVPreview .TVSResultItemImageWrapper {
    visibility: hidden;
    position: relative
}

.TVMResultItem.TVPreview .TVMResultItemImage:before,.TVMResultItem.TVPreview .TVMResultItemPrice:before,.TVMResultItem.TVPreview .TVMSResultItemImage:before,.TVMResultItem.TVPreview .TVMSResultItemPrice:before,.TVMResultItem.TVPreview .TVResultItemFooter:before,.TVMResultItem.TVPreview .TVResultItemImageWrapper:before,.TVMResultItem.TVPreview .TVSResultItemFooter:before,.TVMResultItem.TVPreview .TVSResultItemImageWrapper:before,.TVMSResultItem.TVPreview .TVMResultItemImage:before,.TVMSResultItem.TVPreview .TVMResultItemPrice:before,.TVMSResultItem.TVPreview .TVMSResultItemImage:before,.TVMSResultItem.TVPreview .TVMSResultItemPrice:before,.TVMSResultItem.TVPreview .TVResultItemFooter:before,.TVMSResultItem.TVPreview .TVResultItemImageWrapper:before,.TVMSResultItem.TVPreview .TVSResultItemFooter:before,.TVMSResultItem.TVPreview .TVSResultItemImageWrapper:before,.TVResultItem.TVPreview .TVMResultItemImage:before,.TVResultItem.TVPreview .TVMResultItemPrice:before,.TVResultItem.TVPreview .TVMSResultItemImage:before,.TVResultItem.TVPreview .TVMSResultItemPrice:before,.TVResultItem.TVPreview .TVResultItemFooter:before,.TVResultItem.TVPreview .TVResultItemImageWrapper:before,.TVResultItem.TVPreview .TVSResultItemFooter:before,.TVResultItem.TVPreview .TVSResultItemImageWrapper:before,.TVSResultItem.TVPreview .TVMResultItemImage:before,.TVSResultItem.TVPreview .TVMResultItemPrice:before,.TVSResultItem.TVPreview .TVMSResultItemImage:before,.TVSResultItem.TVPreview .TVMSResultItemPrice:before,.TVSResultItem.TVPreview .TVResultItemFooter:before,.TVSResultItem.TVPreview .TVResultItemImageWrapper:before,.TVSResultItem.TVPreview .TVSResultItemFooter:before,.TVSResultItem.TVPreview .TVSResultItemImageWrapper:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVMResultItem.TVPreview .TVResultItemHeader,.TVMSResultItem.TVPreview .TVResultItemHeader,.TVResultItem.TVPreview .TVResultItemHeader,.TVSResultItem.TVPreview .TVResultItemHeader {
    margin-top: 0
}

.TVMResultItem.TVPreview .TVMResultItemAfterImage,.TVMResultItem.TVPreview .TVMSResultItemAfterImage,.TVMResultItem.TVPreview .TVSResultItemAfterHeader,.TVMResultItem.TVPreview .TVSResultItemPrice,.TVMSResultItem.TVPreview .TVMResultItemAfterImage,.TVMSResultItem.TVPreview .TVMSResultItemAfterImage,.TVMSResultItem.TVPreview .TVSResultItemAfterHeader,.TVMSResultItem.TVPreview .TVSResultItemPrice,.TVResultItem.TVPreview .TVMResultItemAfterImage,.TVResultItem.TVPreview .TVMSResultItemAfterImage,.TVResultItem.TVPreview .TVSResultItemAfterHeader,.TVResultItem.TVPreview .TVSResultItemPrice,.TVSResultItem.TVPreview .TVMResultItemAfterImage,.TVSResultItem.TVPreview .TVMSResultItemAfterImage,.TVSResultItem.TVPreview .TVSResultItemAfterHeader,.TVSResultItem.TVPreview .TVSResultItemPrice {
    display: none
}

.TVResultItem:hover .TVResultItemPriceValueArrow {
    background: #7fb762
}

.TVResultItem:hover .TVResultItemPriceValueArrow.TVResultHotArrow {
    background: #db2929
}

.TVSResultItemImageWrapper {
    position: relative;
    border-radius: 5px;
    overflow: hidden;
    min-width: 152px;
    max-height: 112px;
    border: 3px solid #fff;
    box-shadow: 0 0 15px rgba(0,0,0,.15);
    margin-right: 30px
}

.TVSResultItemBodyWrapper {
    flex: 1
}

.TVResultItemImageWrapper {
    position: relative;
    border-radius: 5px;
    overflow: hidden;
    margin-right: 30px;
    flex: 2
}

.TVResultItemImageWrapper.TVSize-S {
    min-width: 192px;
    max-width: 220px;
    height: 144px
}

.TVResultItemImageWrapper.TVSize-M {
    min-width: 192px;
    max-width: 220px;
    height: 192px
}

.TVResultItemBodyWrapper {
    flex: 5;
    display: flex;
    flex-direction: column
}

.TVResultItemBodyWrapper.TVResultItemBodyWrapperCentered {
    justify-content: center
}

.TVResultItemBodyWrapper.TVResultItemBodyWrapperStretched .TVResultItemFooter {
    flex: 1
}

.TVResultItemImage,.TVSResultItemImage {
    height: 100%;
    width: 100%;
    background-position: 50%;
    background-size: cover;
    background-color: #efefef
}

.TVSResultItemHeaderWrapper {
    display: flex;
    justify-content: space-between
}

.TVResultItemHeader,.TVSResultItemHeader {
    display: flex;
    flex-direction: column;
    align-items: flex-start
}

.TVResultItemHeader {
    margin-top: 10px
}

.TVMResultItemTitle,.TVResultItemTitle,.TVSResultItemTitle {
    font-weight: 700;
    font-size: 16px;
    color: #333;
    text-decoration: none;
    letter-spacing: -.48px
}

.TVMSResultItemTitle {
    font-weight: 600;
    font-size: 14px;
    color: #333;
    text-decoration: none;
    letter-spacing: -.48px
}

.TVSResultItemSubTitle {
    font-size: 11px;
    line-height: 15px;
    color: #999
}

.TVMResultItemSubTitle,.TVResultItemSubTitle {
    font-size: 13px;
    color: rgba(92,102,114,.7)
}

.TVMSResultItemSubTitle {
    font-size: 12px;
    color: rgba(92,102,114,.7)
}

.TVMResultItemDescription,.TVResultItemDescription,.TVSResultItemDescription {
    font-size: 13px;
    color: #5c6672
}

.TVMResultItemDescription.TVLineClampEnabled,.TVResultItemDescription.TVLineClampEnabled,.TVSResultItemDescription.TVLineClampEnabled {
    height: auto;
    cursor: pointer;
    transition: all .2s linear;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
    display: -webkit-box;
    display: -moz-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    -moz-box-orient: vertical;
    box-orient: vertical
}

.TVMResultItemDescription.TVLineClamp-M,.TVResultItemDescription.TVLineClamp-M,.TVSResultItemDescription.TVLineClamp-M {
    max-height: 54px;
    -webkit-line-clamp: 3
}

.TVMResultItemDescription.TVLineClamp-L,.TVResultItemDescription.TVLineClamp-L,.TVSResultItemDescription.TVLineClamp-L {
    max-height: 72px;
    -webkit-line-clamp: 4
}

.TVMResultItemDescription.TVDescriptionExpanded,.TVResultItemDescription.TVDescriptionExpanded,.TVSResultItemDescription.TVDescriptionExpanded {
    display: block;
    -webkit-line-clamp: none;
    box-orient: none;
    max-height: none
}

.TVSResultItemDescription {
    line-height: 18px
}

.TVMResultItemDescription,.TVSResultItemDescription {
    margin-top: 10px
}

.TVResultItemBeforeDescriptionWrapper {
    margin-top: 16px
}

.TVResultItemFooter,.TVSResultItemFooter {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-top: 15px
}

.TVResultItemGoToResult,.TVResultItemNavButtons,.TVSResultItemNavButtons {
    flex: 1
}

.TVMResultItemPriceValueWrapper.TVHidden,.TVMSResultItemPriceValueWrapper.TVHidden,.TVResultItemPrice.TVHidden,.TVSResultItemPrice.TVHidden {
    visibility: hidden
}

.TVMResultItemPrice,.TVMSResultItemPrice,.TVResultItemPrice {
    display: flex;
    align-items: center;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent
}

.TVMResultItemPriceSuffix,.TVMSResultItemPriceSuffix,.TVResultItemPriceSuffix {
    font-size: 10px;
    line-height: 12px;
    color: #5c6672;
    text-transform: uppercase;
    margin-right: 10px
}

.TVMResultItemNewPrice,.TVMSResultItemNewPrice,.TVResultItemNewPrice {
    display: flex;
    align-items: flex-end
}

.TVMResultItemOldPrice,.TVMSResultItemOldPrice,.TVResultItemOldPrice,.TVSResultItemOldPrice {
    font-size: 13px;
    color: #5c6672;
    letter-spacing: -.5px;
    text-decoration: line-through;
    line-height: 12px;
    opacity: .7
}

.TVSResultItemOldPrice {
    margin-top: 6px
}

.TVMResultItemPriceKilo,.TVMResultItemPriceValue,.TVResultItemPriceKilo,.TVResultItemPriceValue {
    font-size: 20px;
    line-height: 20px;
    letter-spacing: -.2px;
    white-space: nowrap
}

.TVMSResultItemPriceKilo,.TVMSResultItemPriceValue {
    font-size: 16px;
    line-height: 16px;
    letter-spacing: -.2px
}

.TVMResultItemPriceKilo,.TVMSResultItemPriceKilo,.TVResultItemPriceKilo {
    margin-right: 3px
}

.TVMResultItemPriceValue,.TVMSResultItemPriceValue {
    font-weight: 700;
    color: #000
}

.TVMResultItemPriceKilo,.TVMSResultItemPriceKilo {
    font-weight: 400;
    color: #000
}

.TVResultItemPriceValue {
    font-weight: 600;
    color: #333
}

.TVResultItemPriceKilo {
    font-weight: 400;
    color: #333
}

.TVMResultItemPriceValueArrow,.TVMSResultItemPriceValueArrow,.TVResultItemPriceValueArrow {
    background: #5c6672;
    color: #fff;
    position: relative;
    border-radius: 15px;
    line-height: 1;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 30px;
    height: 30px;
    user-select: none
}

.TVMResultItemPriceValueArrow:after,.TVMSResultItemPriceValueArrow:after,.TVResultItemPriceValueArrow:after {
    font-family: TVicons;
    content: "\e906";
    width: 12px;
    transform: rotate(0deg);
    transition: transform .15s linear
}

.TVMResultItemPriceValueArrow.TVActive:after,.TVMSResultItemPriceValueArrow.TVActive:after,.TVResultItemPriceValueArrow.TVActive:after {
    transform: rotate(90deg)
}

.TVMResultItemPriceValueArrow.TVResultHotArrow,.TVMSResultItemPriceValueArrow.TVResultHotArrow,.TVResultItemPriceValueArrow.TVResultHotArrow {
    background: #eb5757;
    padding: 0 8px
}

.TVMResultItemPriceValueArrow.TVResultHotArrow:after,.TVMSResultItemPriceValueArrow.TVResultHotArrow:after,.TVResultItemPriceValueArrow.TVResultHotArrow:after {
    margin-left: 4px
}

.TVSResultItemAfterHeader {
    display: flex
}

.TVSResultItemDiscount:before {
    content: "Скидка";
    color: #999;
    font-size: 10px;
    text-transform: uppercase;
    font-weight: 400;
    margin: 1px 0 3px;
    display: block;
    text-align: center
}

.TVSResultItemDiscountValue {
    position: relative;
    font-size: 13px;
    line-height: 17px;
    font-weight: 600;
    padding: 8px 7px;
    border-radius: 2px;
    background-color: #eb5757;
    color: #fff
}

.TVSResultItemDiscountValue:after {
    content: "%";
    font-size: 10px
}

.TVMSResultItemPriceValueArrow {
    font-size: 12px
}

.TVMSResultItemPriceValueArrow.TVResultHotArrow:after {
    content: "";
    width: 0
}

.TVSResultItemBody {
    display: flex
}

.TVSResultItemContent {
    flex: 1
}

.TVMResultItem {
    padding: 10px
}

.TVMResultItemImageWrapper {
    position: relative
}

.TVMResultItemImage {
    height: 180px;
    border-radius: 5px;
    overflow: hidden;
    background-color: #efefef
}

.TVMResultItemAfterImage {
    position: absolute;
    left: 10px;
    bottom: 10px
}

.TVMResultItemBodyWrapper {
    margin-top: 10px;
    padding: 0 10px 10px
}

.TVSResultItemPriceWrapper {
    margin-left: 15px
}

.TVSResultItemPrice:before,.TVSResultItemPriceType {
    font-size: 10px;
    color: #999;
    text-transform: uppercase
}

.TVSResultItemPrice {
    display: flex;
    flex-direction: column;
    align-items: center;
    transform: translateX(6px)
}

.TVSResultItemPrice:before {
    content: "Цена от";
    margin-bottom: 3px
}

.TVSResultItemPriceType {
    margin-top: 5px
}

.TVSResultItemPriceValueWrapper {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    cursor: pointer;
    min-width: 110px;
    background-color: #38a1e7;
    box-shadow: -1px 1px 2px #999;
    border-radius: 2px 0 0 2px;
    padding: 8px 4px;
    white-space: nowrap;
    color: #fff;
    text-align: center;
    font-weight: 600;
    text-shadow: 1px 1px 1px rgba(0,0,0,.45);
    position: relative
}

.TVSResultItemPriceValueWrapper:before {
    content: "";
    right: 0;
    bottom: -6px;
    position: absolute;
    border-left: 3px solid transparent;
    border-top: 3px solid transparent;
    border-color: #615e5e transparent transparent #615e5e;
    border-style: solid;
    border-width: 3px
}

.TVSResultItemPriceValueWrapper:hover {
    text-decoration: underline
}

.TVSResultItemPriceKilo,.TVSResultItemPriceValue {
    font-size: 18px;
    line-height: 18px
}

.TVSResultItemPriceKilo {
    font-weight: 400
}

.TVSResultItemPriceCurrency {
    font-size: 11px;
    line-height: 13px;
    padding-left: 3px
}

.TVMResultItemPriceSuffix,.TVMSResultItemPriceSuffix {
    display: flex;
    opacity: .7
}

.TVMResultItemPrice,.TVMSResultItemPrice {
    margin-top: 15px
}

.TVMResultItemPrice,.TVResultItemPrice {
    white-space: nowrap
}

.TVMResultItemActionsWrapper,.TVMSResultItemActionsWrapper {
    margin-left: auto;
    display: flex;
    align-items: center
}

.TVMResultItemAddToCartWrapper,.TVMSResultItemAddToCartWrapper {
    margin-right: 10px;
    width: 30px;
    height: 30px;
    border-radius: 30px;
    color: #5c6672;
    background-color: #edf2f5;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVMResultItemPriceType:before {
    content: "/";
    margin: 0 3px
}

.TVMSResultItem {
    display: flex;
    padding: 10px
}

.TVMSResultItem>:not(:last-child) {
    margin-right: 20px
}

.TVMSResultItemImageWrapper {
    position: relative;
    height: 100px;
    flex: 0 0 100px
}

.TVMSResultItemImage {
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 5px;
    overflow: hidden;
    background-color: #efefef
}

.TVMSResultItemAfterImage {
    position: absolute;
    right: -12px;
    top: 21px
}

.TVMSResultItemBodyWrapper {
    flex: 1;
    min-width: 0
}

.TVResultItemGallery.TVGallery {
    height: 100%
}

@media screen and (min-width: 500px) {
    .TVMResultItem {
        min-height:160px;
        position: relative;
        display: flex
    }

    .TVMResultItem .TVMResultItemBodyWrapper {
        overflow: hidden;
        flex: 1
    }

    .TVMResultItemImageWrapper {
        flex: 0 0 180px;
        height: 180px;
        margin-right: 10px
    }

    .TVMResultItemImage {
        height: 100%
    }
}

.TVCountryResultInfoNameWrapper {
    display: flex;
    align-items: center
}

.TVCountryResultInfoFlag {
    width: 22px;
    height: 16px;
    background-size: cover;
    display: inline-block;
    margin-right: 7px
}

.TVCountryResultInfoVisa {
    text-transform: uppercase;
    font-size: 10px;
    font-weight: 500;
    background: #bcbdbc;
    border-radius: 3px;
    color: #fff;
    margin-left: 5px;
    padding: 1px 4px
}

.TVHotelInfo .TVResultItemTitle a,.TVHotelInfo .TVResultItemTitle a:link,.TVHotelInfo .TVResultItemTitle a:visited,.TVHotelInfo .TVSResultItemTitle a,.TVHotelInfo .TVSResultItemTitle a:link,.TVHotelInfo .TVSResultItemTitle a:visited {
    color: #333;
    text-decoration: none
}

.TVHotelInfo .TVResultItemTitle:hover,.TVHotelInfo .TVSResultItemTitle:hover {
    color: #333;
    text-decoration: underline
}

.TVHotelInfoStar {
    display: inline-block
}

.TVHotelInfoStar:before {
    font-family: TVicons;
    content: "\e90c"
}

.TVHotelInfoStar:not(:last-child) {
    margin-right: 2px
}

.TVHotelInfoStar.TVColorYellow500 {
    color: #eaa627
}

.TVHotelInfoStar.TVColorRed {
    color: #fb5e51
}

.TVHotelInfoStar.TVSize-S {
    font-size: 10px
}

.TVHotelInfoStar.TVSize-M {
    font-size: 14px
}

.TVHotelInfoRating,.TVMHotelInfoRating,.TVMSHotelInfoRating {
    font-weight: 600;
    color: #fff
}

.TVHotelInfoRating.TVRatingBad,.TVMHotelInfoRating.TVRatingBad,.TVMSHotelInfoRating.TVRatingBad {
    background-color: #e07a55
}

.TVHotelInfoRating.TVRatingGood,.TVMHotelInfoRating.TVRatingGood,.TVMSHotelInfoRating.TVRatingGood {
    background-color: #5cb85c
}

.TVHotelInfoRating.TVRatingNormal,.TVMHotelInfoRating.TVRatingNormal,.TVMSHotelInfoRating.TVRatingNormal {
    background-color: #e6b661
}

.TVHotelInfoRating.TVRatingExcellent,.TVMHotelInfoRating.TVRatingExcellent,.TVMSHotelInfoRating.TVRatingExcellent {
    background-color: #4bdc4b
}

.TVHotelInfoRating {
    position: absolute;
    margin-right: 5px;
    border-radius: 2px;
    font-size: 14px;
    padding: 0 5px
}

.TVMHotelInfoRating,.TVMSHotelInfoRating {
    border: 2px solid #fff;
    border-radius: 5px;
    font-size: 13px;
    padding: 2px 5px
}

.TVSHotelInfoRating {
    position: relative;
    font-size: 18px;
    font-weight: 600;
    padding: 4px 10px;
    border: 1px solid #ddd;
    border-radius: 2px;
    background-color: #fff;
    margin-top: 18px;
    margin-left: 15px
}

.TVSHotelInfoRating:before {
    content: "Рейтинг";
    font-size: 10px;
    font-weight: 500;
    color: #999;
    text-transform: uppercase;
    position: absolute;
    top: -18px;
    left: 50%;
    transform: translateX(-50%)
}

.TVHotelInfoTags {
    display: flex;
    flex-wrap: wrap;
    margin: 2px -3px -3px
}

.TVHotelInfoTags .TVTag {
    margin: 3px
}

.TVHotelInfoAcType {
    font-size: 10px;
    display: inline-block;
    padding: 0 4px;
    color: #777;
    text-transform: uppercase;
    border: 1px solid #ddd;
    border-radius: 2px;
    line-height: 15px;
    margin-bottom: 5px
}

.TVHotelInfoAcType:not(:last-child) {
    margin-right: 5px
}

.TVHotelInfoChooseNavButton {
    margin-left: auto
}

.TVResultNavButton.TVHotelInfoChooseNavButton:hover {
    color: #fff;
    background: #7fb762;
    border: 1px solid #7fb762
}

.TVHotelInfoEditNavButton:before {
    font-family: TVicons;
    content: "\e921";
    font-size: 14px
}

.TVHotelInfoTextEllipsis {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.TVHelpRequestControl {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    padding: 7px 10px
}

.TVHelpRequestControl.TVStyleTheme1 {
    font-family: var(--tv-font-theme2);
    box-sizing: border-box;
    width: 100%;
    box-shadow: 0 1px 3px #7f7f7f;
    border-radius: 4px;
    overflow: hidden;
    z-index: 0;
    opacity: 1;
    transition: opacity .3s linear;
    position: relative;
    background-color: #fff;
    background: linear-gradient(180deg,#fff,#f6f6f6)
}

.TVHelpRequestControl.TVStyleTheme1:hover {
    box-shadow: 0 1px 4px #6a686a;
    background: linear-gradient(180deg,#fff,#f1f1f1)
}

.TVHelpRequestControl.TVStyleTheme2 {
    background: #edf2f5;
    border-radius: 5px
}

.TVHelpRequestControlTitle {
    font-weight: 800;
    color: #333
}

.TVHelpRequestControlRequest {
    margin-left: 35px;
    color: #fff;
    background: #5bb85c;
    border: 1px solid #4eb14e;
    border-radius: 4px;
    padding: 7px 30px;
    cursor: pointer
}

.TVGoToResultControl {
    box-sizing: border-box;
    padding: 11px 10px;
    border-radius: 20px;
    text-transform: uppercase;
    font-weight: 600;
    font-size: 10px;
    color: #c49f5d;
    background-color: #fcf7e3;
    border: 1px solid #eee5c4
}

.TVGoToResultControl.TVAxisDirection-Row {
    text-align: center
}

.TVGoToResultControl.TVAxisDirection-Row .TVGoToResultControlGoTo {
    margin-left: 3px
}

.TVGoToResultControl.TVAxisDirection-Column {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column
}

.TVGoToResultControlGoTo {
    text-decoration: underline;
    cursor: pointer
}

.TVHotelList {
    height: 100%;
    overflow-y: auto
}

.TVHotelList:not(.TVMultiSelectionEnabled) .TVCheckBox:before {
    display: none
}

.TVHotelList .TVHotelSeparatorTheme1,.TVHotelList .TVHotelSeparatorTheme2 {
    color: #868686;
    text-transform: uppercase;
    padding: 5px 0;
    border-bottom: 1px dashed #ddd;
    margin: 0 10px 5px 0
}

.TVHotelList .TVHotelSeparatorTheme1:not(:first-child),.TVHotelList .TVHotelSeparatorTheme2:not(:first-child) {
    margin-top: 10px
}

.TVHotelList .TVHotelSeparatorTheme1 {
    font-size: 10px
}

.TVHotelList .TVHotelSeparatorTheme2 {
    font-size: 12px
}

.TVHotelListWithTabs {
    height: 100%
}

.TVHotelListWithTabs .TVTabListControl.TVStyleTheme1 .TVHotelListFilterTab {
    color: #c1c1c1;
    padding-right: 0;
    border-bottom: none
}

.TVHotelResultItemZoomImgWrapper,.TVSHotelResultItemZoomImgWrapper {
    position: absolute;
    background-color: hsla(0,0%,100%,.95);
    right: 0;
    top: 0;
    width: 72%;
    height: 100%
}

.TVHotelResultItemZoomImgWrapper div,.TVSHotelResultItemZoomImgWrapper div {
    width: 100%;
    height: 100%;
    background-position: 50%;
    background-repeat: no-repeat
}

.TVSHotelResultItem {
    font-family: var(--tv-font-theme2);
    box-sizing: border-box;
    width: 100%;
    box-shadow: 0 1px 3px #7f7f7f;
    border-radius: 4px;
    overflow: hidden;
    z-index: 0;
    opacity: 1;
    transition: opacity .3s linear;
    position: relative
}

.TVSHotelResultItem:hover {
    box-shadow: 0 1px 4px #6a686a
}

.TVSHotelResultItemInfo {
    padding: 15px 0 15px 15px;
    background-color: #fff;
    background: linear-gradient(180deg,#fff,#f6f6f6)
}

.TVSHotelResultItemInfo:hover {
    background: linear-gradient(180deg,#fff,#f1f1f1)
}

.TVSHotelResultItemInfo .TVSResultItemFooter {
    margin-right: 15px
}

.TVSHotelResulItemDetail {
    width: 100%;
    background-color: #fff;
    color: #5f5e5e;
    font-size: 12px
}

.TVHotelResultItem {
    position: relative;
    background-color: #fff;
    font-size: 14px;
    z-index: 0;
    opacity: 1;
    transition: opacity .3s linear
}

.TVHotelResultItem .TVHotelResulItemInfo {
    padding: 0 8px
}

.TVHotelResulItemAbout,.TVHotelResulItemReviews {
    padding-top: 20px;
    border-top: 1px dashed #ddd
}

.TVHotelResulItemAbout,.TVHotelResulItemGroupedTours,.TVHotelResulItemMap,.TVHotelResulItemReviews,.TVHotelResulItemTours {
    margin-top: 20px
}

.TVHotelResulItemAbout {
    padding-left: 16px;
    padding-right: 16px
}

.TVHotelResulItemDetail {
    background: #fff
}

.TVHotelEditorFormControl .TVHotelEditorFormDescription {
    position: relative
}

.TVHotelEditorFormControl .TVHotelEditorFormDescription:before {
    content: "Отредактировать краткое описание";
    color: #777;
    text-transform: uppercase;
    font-size: 10px
}

.TVHotelEditorFormControl .TVHotelEditorFormDescription textarea {
    resize: none;
    outline: none;
    height: 103px;
    width: 100%;
    color: #555;
    font-size: 13px;
    line-height: 1.4;
    border: 1px solid #dedede;
    background: #fdfdfd;
    padding: 10px 15px;
    box-sizing: border-box
}

.TVHotelEditorFormControl .TVHotelEditorFormDescription textarea.TVInvalidInput {
    border-color: #e31e22
}

.TVHotelEditorFormControl .TVHotelEditorFormStandartDescriptionBtn {
    position: absolute;
    right: 0;
    top: 6px;
    cursor: pointer;
    text-transform: uppercase;
    color: #31708f;
    font-size: 10px
}

.TVHotelEditorFormControl .TVHotelEditorFormStandartDescriptionBtn:before {
    content: "Вернуть стандартное описание"
}

.TVHotelEditor {
    width: 620px;
    display: flex;
    flex-direction: column
}

.TVHotelEditor .TVHotelEditorHeader {
    order: -1;
    position: relative;
    display: flex;
    justify-content: space-between
}

.TVHotelEditor .TVHotelEditorHeader:before {
    content: "Редактирование описания отеля";
    font-size: 14px;
    padding: 14px 0 14px 20px
}

.TVHotelEditor .TVHotelEditorHeader .TVClosePopUp {
    top: 12px
}

.TVHotelEditor .TVHotelEditorSaveBtn {
    font-size: 13px;
    cursor: pointer;
    position: absolute;
    right: 60px;
    top: 0;
    line-height: 47px
}

.TVHotelEditor .TVHotelEditorSaveBtn:before {
    font-family: TVicons;
    content: "\e94e"
}

.TVHotelEditor .TVHotelEditorSaveBtn:after {
    content: "Сохранить";
    padding-left: 9px
}

.TVHotelEditor .TVHotelEditorSaveBtn.TVHotelEditorSaveDisable {
    opacity: .7;
    cursor: default;
    pointer-events: none
}

.TVHotelEditor .TVHotelsEditorCollectionsWrapper {
    margin-top: 20px;
    position: relative
}

.TVHotelEditor .TVHotelsEditorCollectionsWrapper:before {
    content: "Добавить отель в список";
    color: #777;
    text-transform: uppercase;
    font-size: 10px
}

.TVHotelEditor .TVHotelsEditorCollectionsWrapper .TVHotelsEditorCreateCollectionBtn {
    position: absolute;
    top: 6px;
    right: 0;
    cursor: pointer;
    text-transform: uppercase;
    color: #31708f;
    font-size: 10px
}

.TVHotelEditor .TVHotelsEditorCollectionsWrapper .TVHotelsEditorCreateCollectionBtn:before {
    content: "Создать новый список"
}

.TVHotelEditor .TVHotelsEditorCollectionsWrapper .TVHotelsCollections {
    border: 1px solid #dedede;
    background: #fdfdfd;
    padding: 8px 15px;
    height: 210px
}

.TVHotelEditor.TVHotelEditorSaveInProccess .tv_content {
    opacity: .8;
    pointer-events: none
}

.TVHotelEditorWaiter {
    top: 17px;
    right: 180px;
    bottom: auto;
    left: auto;
    background: transparent
}

.TVHotelEditorWaiter .TVSimpleWaiterDuble:before {
    border-top-color: #fff;
    border-bottom-color: #fff
}

.TVHotelEditorWaiter .TVSimpleWaiterDuble:after {
    border-top-color: #fff;
    border-right-color: #fff
}

.TVHotelEditorSavedSuccess {
    background-color: #5cb85c
}

.TVHotelEditorSavedSuccess:before {
    content: "Описание отеля успешно сохранено"
}

.TVHotelEditorSavedError {
    background-color: #e31e22
}

.TVHotelEditorSavedError:before {
    content: "Ошибка. Описание отеля не сохранено"
}

.TVHotelTourSearchInput {
    font-size: 15px;
    height: 20px;
    display: flex
}

.TVHotelTourSearchResult {
    font-family: var(--tv-font-theme2);
    color: #333;
    padding: 20px
}

.TVHotelTourSearchResult .TVListBoxItem {
    text-transform: none
}

.TVHotelTourSearchResult .TVListBoxItem:not(:first-child) {
    margin-top: 10px
}

.TVHotelTourSearchResultItem {
    width: 100%
}

.TVHotelTourSearchResultLast {
    padding-bottom: 10px;
    border-bottom: 1px solid #ddd
}

.TVHotelTourSearchResultCountries:not(:first-child),.TVHotelTourSearchResultHotels:not(:first-child),.TVHotelTourSearchResultHotelsCollecions:not(:first-child),.TVHotelTourSearchResultRegions:not(:first-child) {
    margin-top: 10px
}

.TVHotelTourSearchContent {
    display: flex;
    align-items: center;
    gap: 5px;
    height: 20px
}

.TVHotelTourSearchMainContent {
    font-size: 15px;
    font-weight: 700;
    color: #040404;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap
}

.TVHotelTourSearchDetailContent {
    font-size: 15px;
    white-space: nowrap;
    color: #5c6672
}

.TVHotelsSearch {
    display: flex;
    flex-direction: column;
    cursor: text
}

.TVHotelsSearch.TVStyleTheme1 {
    justify-content: space-between;
    background-color: #fff;
    height: 50px;
    box-sizing: border-box;
    padding: 6px 10px
}

.TVHotelsSearch.TVStyleTheme1 .TVHotelsSearchPlaceholder {
    text-transform: uppercase;
    font-size: 10px;
    color: #5c6672
}

.TVHotelsSearch.TVStyleTheme2 {
    padding: 10px 20px;
    height: 40px;
    justify-content: space-between;
    background-color: #fff
}

.TVHotelsSearch.TVStyleTheme2 .TVHotelsSearchPlaceholder {
    text-transform: uppercase;
    font-size: 10px;
    line-height: 20px;
    color: #5c6672
}

.TVHotelTourDetailSearch {
    display: flex;
    align-items: center;
    gap: 10px
}

.TVHotelTourDetailSearchInput {
    flex: 1
}

.TVHotelTourDetailSearchInput:before {
    font-family: TVicons;
    content: "\e954";
    margin-right: 5px;
    font-size: 26px;
    color: #777
}

.TVHotelTourDetailSearchInput {
    display: flex;
    align-items: center
}

.TVHotelTourDetailSearchContent {
    flex: 1;
    min-width: 0
}

.TVHotelTourDetailSearchContent .TVCountryFlags {
    margin-right: 10px;
    border: 1px solid #eee
}

.TVHotelTourDetailSearchContent .TVFlyIcon {
    margin-right: 5px;
    font-size: 16px;
    color: #c4cfd7
}

.TVHotelTourDetailSearchMainContent {
    display: flex;
    align-items: center
}

.TVHotelTourDetailSearchMainTextContent {
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap
}

.TVHotelTourDetailSearch.TVStyleTheme1 {
    height: 50px;
    background: transparent linear-gradient(180deg,#fff,#f8f8f8) 0 0 no-repeat padding-box;
    padding: 0 10px
}

.TVHotelTourDetailSearch.TVStyleTheme2 {
    height: 60px;
    background: #fff;
    padding: 0 14px
}

.TVHotelTourDetailSearchActions {
    margin-left: auto
}

.tv_drop_panel.TVTourRestTypePanel .TVAccomodationControl:before {
    content: "Вид отдыха"
}

.tv_drop_panel.TVTourRestTypePanel .TVAccomodationBody {
    height: 240px
}

.TVMobilePanel.TVTourRestTypePanel .TVMobilePanelCaption:after {
    content: "Выберите вид отдыха"
}

.TVSideNav {
    position: fixed;
    width: 90%;
    max-width: 270px;
    height: 100%;
    top: 0;
    bottom: 0;
    z-index: 999;
    overflow-y: auto;
    will-change: transform;
    backface-visibility: hidden;
    transition: transform .3s linear;
    background: #fff
}

.TVSideNav.TVSideNavPositionLeft {
    left: -270px
}

.TVSideNav.TVSideNavPositionRight {
    right: -270px
}

.TVSideNavContent {
    box-sizing: border-box;
    width: 100%;
    min-height: 100%;
    padding: 16px 20px;
    font-family: var(--tv-font-theme2);
    font-size: 13px
}

.TVSideNavContent .TVSideNavClose {
    display: inline-block;
    line-height: 20px;
    right: 0;
    position: absolute;
    margin: 0 20px;
    z-index: 1;
    cursor: pointer
}

.TVSideNavContent .TVSideNavClose:after {
    font-family: TVicons;
    content: "\e916";
    font-size: 10px;
    border: 2px solid;
    border-radius: 20px;
    padding: 4px
}

.TVMobileContainer .TVSideNavClose {
    line-height: normal;
    right: -10px;
    top: 10px
}

.TVMobileContainer .TVSideNavClose:after {
    border-radius: 40px;
    display: block;
    background: rgba(0,0,0,.2);
    border: none;
    padding: 15px
}

.TVSideNavOverlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    opacity: 0;
    height: 120vh;
    background-color: rgba(0,0,0,.6);
    z-index: 997
}

.TVTourBudget .TVMobilePanelCaption:after {
    content: "Выберите бюджет тура"
}

.TVTourBudget.tv_drop_panel .TVTourBudgetControl {
    margin: 0
}

.TVTourBudgetControl.TVSingle .TVTourBudgetMinPrice:before {
    content: "Бюджет ("
}

.TVTourBudgetControl.TVSingle .TVTourBudgetMaxPrice,.TVTourBudgetControl.TVSingle .TVTourBudgetMaxPriceInput {
    display: none
}

.TVTourBudgetControl .TVTourBudgetMinPrice:before {
    content: "Минимальный бюджет ("
}

.TVTourBudgetControl .TVTourBudgetMinPrice:after {
    content: ")"
}

.TVTourBudgetControl .TVTourBudgetMaxPrice:before {
    content: "Максимальный бюджет ("
}

.TVTourBudgetControl .TVTourBudgetMaxPrice:after {
    content: ")"
}

.TVTourBudgetControl .TVTourBudgetPriceCurrency {
    display: inline-block
}

.TVTourBudgetControl .TVTourBudgetMaxPrice,.TVTourBudgetControl .TVTourBudgetMinPrice {
    padding: 5px 0;
    font-family: var(--tv-font-theme2);
    color: #777;
    font-size: 13px
}

.TVTourBudgetControl .TVTourBudgetInput {
    padding: 10px 15px;
    font-family: var(--tv-font-theme2);
    color: #333;
    font-weight: 700;
    font-size: 14px;
    border: 1px solid #ddd;
    border-radius: 2px;
    min-width: 260px;
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 20px
}

.TVTourBudgetControl .TVTourBudgetCurrencyContainer {
    padding: 5px 0
}

.TVTourBudgetControl .TVTourBudgetCurrencyContainer .TVInputRadio:not(:first-child) {
    margin-top: 10px
}

.TVTourBudgetControl .TVTourBudgetCurrencyContainer:before {
    display: block;
    margin-top: 5px;
    margin-bottom: 10px;
    color: #777;
    font-size: 13px;
    content: "Валюта"
}

.TVTourBudgetControl .TVTourBudgetCurrency {
    display: flex
}

.TVTourBudgetControl .TVTourBudgetCurrencyPrefix {
    font-weight: 700
}

.TVTourBudgetControl .TVTourBudgetCurrencyPrefix:after {
    font-weight: 400;
    margin: 0 5px;
    content: "-"
}

.TVTourBudgetControl.TVStyleTheme2 {
    display: flex;
    flex-direction: column
}

.TVTourBudgetControl.TVStyleTheme2 .TVTourBudgetCurrencyContainer:before,.TVTourBudgetControl.TVStyleTheme2 .TVTourBudgetMaxPrice,.TVTourBudgetControl.TVStyleTheme2 .TVTourBudgetMinPrice {
    color: #5c6672;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase
}

.TVTourBudgetControl.TVStyleTheme2 .TVTourBudgetInput {
    font-size: 16px;
    padding: 8px 15px
}

.TVTourBudgetControl.TVStyleTheme2 .TVTourBudgetCurrencyPrefix {
    font-weight: 800
}

.TVTourBudgetControl.TVStyleTheme2 .TVInputRadio:not(:first-child) {
    margin-top: 20px
}

.TVMobileViewContent {
    font-family: var(--tv-font-theme2);
    margin: 0
}

.TVMobilePageHeader {
    display: flex
}

.TVMobilePageHeader .TVMobilePagePhone {
    width: 50%;
    padding: 20px;
    box-sizing: content-box
}

#TVSiteHead {
    width: 100%;
    overflow: hidden;
    background-color: #fff
}

#TVSiteHead t-table {
    width: 100%
}

#TVSiteHead t-table,#TVSiteHead t-td,#TVSiteHead t-tr {
    border-collapse: collapse;
    border-spacing: 0;
    padding: 0
}

#TVSiteHead.TVFullInfo #TVSiteLogo,#TVSiteHead.TVFullInfo #TVSitePhone {
    width: 50%
}

#TVSiteHead.TVFullInfo #TVSiteLogo img {
    margin: 3px auto;
    max-width: 130px;
    max-height: 130px
}

#TVSiteHead.TVHalfInfo #TVSiteLogo img,#TVSiteHead.TVHalfInfo #TVSitePhone div {
    margin: 6px auto
}

#TVSiteHead.TVHalfInfo #TVSiteLogo img {
    max-width: 280px;
    max-height: 280px
}

#TVSiteHead.TVHalfInfo #TVSitePhone div {
    text-align: center
}

#TVSiteLogo img {
    display: block
}

#TVSitePhone {
    color: #333
}

#TVSiteFooter {
    font-size: small;
    padding: 50px 10% 20px;
    text-align: center
}

.TVPublicOffer {
    text-align: center;
    margin: 40px 5px 10px;
    font-size: 13px
}

.TVPublicOffer:after {
    content: "Предложения на сайте не являются публичной офертой и носят исключительно информационный характер."
}

.TVBackButton {
    border: 1px solid;
    border-radius: 20px;
    font-size: 13px;
    text-align: center;
    width: 160px;
    padding: 10px;
    margin: 25px auto 10px
}

.TVBackButton:after {
    content: "Полная версия сайта"
}

#TVReturnButton div {
    width: 200px;
    margin: 20px auto 10px;
    text-align: center;
    color: #888;
    text-decoration: underline
}

#TVReturnButton div:after {
    content: "полная версия сайта"
}

.TVMobilePage.TVClientFooterText .TVPublicOffer {
    display: none
}

.TVMobilePage .TVInterfaceWrapper {
    border-radius: 0
}

.TVResultListViewAutoRenderWaiter,.TVResultListViewMore {
    display: flex;
    justify-content: center
}

.TVResultListViewMore {
    cursor: pointer;
    padding: 10px;
    background: #027ad0;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    align-items: center
}

.TVResultListViewMore.TVDisabled {
    opacity: .6;
    cursor: default
}

.TVResultListViewMoreWaiter {
    margin-left: 10px
}

.TVResultListView.TVStyleTheme1 .TVResultListViewBanner,.TVResultListView.TVStyleTheme1 .TVResultListViewHelpItem,.TVResultListView.TVStyleTheme1 .TVResultListViewItem:not(:first-child) {
    margin-top: 15px
}

.TVResultListView.TVStyleTheme1 .TVResultListViewAutoRenderWaiter {
    padding: 25px 0
}

.TVResultListView.TVStyleTheme1 .TVResultListViewMore {
    margin: 20px auto;
    min-width: 200px;
    width: fit-content
}

.TVResultListView.TVStyleTheme2 .TVResultListViewBanner,.TVResultListView.TVStyleTheme2 .TVResultListViewHelpItem,.TVResultListView.TVStyleTheme2 .TVResultListViewItem {
    box-sizing: border-box;
    border-top: 1px solid #ddd;
    margin-top: 15px;
    padding-top: 15px
}

.TVResultListView.TVStyleTheme2 .TVResultListViewBanner:last-child,.TVResultListView.TVStyleTheme2 .TVResultListViewHelpItem:last-child,.TVResultListView.TVStyleTheme2 .TVResultListViewItem:last-child {
    border-bottom: 1px solid #ddd;
    padding-bottom: 15px
}

.TVResultListView.TVStyleTheme2 .TVResultListViewAutoRenderWaiter {
    padding: 25px 0
}

.TVResultListView.TVStyleTheme2 .TVResultListViewMore {
    margin: 20px auto;
    min-width: 200px;
    width: fit-content
}

.TVResultListView.TVStyleTheme3 .TVResultListViewBanner,.TVResultListView.TVStyleTheme3 .TVResultListViewItem {
    margin: 10px;
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 0 20px rgba(0,0,0,.15);
    transition: height .5s linear,opacity .3s linear
}

.TVResultListView.TVStyleTheme3 .TVResultListViewAutoRenderWaiter {
    margin-top: 30px
}

.TVResultListView.TVStyleTheme3 .TVResultListViewMore {
    margin: 30px 20px 20px
}

.TVResultListPreview.TVStyleTheme1 .TVResultListPreviewItem {
    margin-top: 15px
}

.TVResultListPreview.TVStyleTheme2 .TVResultListPreviewItem {
    box-sizing: border-box;
    margin-top: 16px;
    border-top: 1px solid #ddd;
    padding-top: 16px
}

.TVResultListPreview.TVStyleTheme3 .TVResultListPreviewItem {
    margin: 10px;
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 0 20px rgba(0,0,0,.15)
}

.TVResultMobileNavigationPanel {
    display: flex;
    justify-content: space-between;
    padding: 15px 25px
}

.TVNavigationMobileItem {
    display: flex;
    align-items: center
}

.TVNavigationMobileItem:not(:last-child) {
    margin-right: 20px
}

.TVNavigationMobileItem.TVDisabled {
    opacity: .7;
    pointer-events: none
}

.TVNavigationMobileFilter {
    position: relative
}

.TVNavigationMobileFilterCount {
    position: absolute;
    top: 2px;
    left: 11px
}

.TVNavigationMobileList,.TVNavigationMobileMap {
    width: 70px
}

.TVNavigationMobileFilterContent,.TVNavigationMobileViewContent {
    display: flex;
    align-items: center
}

.TVNavigationMobileFilterTitle,.TVNavigationMobileListTitle,.TVNavigationMobileMapTitle,.TVNavigationMobileViewTitle {
    font-size: 13px;
    font-weight: 500;
    color: #5c6672
}

.TVNavigationMobileFilterIcon,.TVNavigationMobileListIcon,.TVNavigationMobileMapIcon,.TVNavigationMobileViewIcon {
    fill: #5c6672;
    margin-right: 6px
}

.TVNavigationMobileFilterIcon,.TVNavigationMobileViewIcon {
    width: 19px;
    height: 17px
}

.TVNavigationMobileListIcon,.TVNavigationMobileMapIcon {
    width: 20px;
    height: 18px
}

.TVResultCardControl {
    width: 100%
}

.TVResultCardControl.TVResultCardMapView {
    height: 100%
}

.TVResultCardControl.TVResultCardListView {
    min-height: 100%;
    display: flex;
    flex-direction: column
}

.TVResultCardNavigation {
    height: 60px;
    box-sizing: border-box;
    position: sticky;
    left: 0;
    top: 0;
    background-color: #fff;
    box-shadow: 0 0 5px rgba(0,0,0,.15);
    z-index: 1
}

.TVResultCardHotelCollections {
    margin: 10px
}

.TVResultCardListWrapper {
    flex: auto;
    display: flex;
    flex-direction: column
}

.TVResultCardList {
    flex: auto
}

.TVResultCardMapWrapper {
    height: calc(100% - 60px)
}

.TVResultCardMapWrapper .TVSearchMapControl .TVMapLayersDecorator {
    right: 183px
}

.TVResultCardMapWrapper .TVSearchMapControl .TVMapToolsDecorator {
    right: 10px
}

.TVResultCardMapWrapper .TVSearchMapControl .TVMapUpdateMoreBtn {
    right: 233px;
    transform: none
}

.TVResultCardMapWrapper .TVSearchMapControl .TVMapUpdateMoreBtn:after {
    content: "";
    padding: 0
}

.TVResultCardMapWrapper .TVSearchMapControl .TVMapZoomDecorator {
    top: auto;
    bottom: 20px;
    transform: translate(0)
}

.TVResultCardMapWrapper .TVMapFilterControl {
    position: absolute;
    top: 10px;
    left: 10px
}

.TVResultCardMapWrapper .leaflet-rulerLine-pane>svg,.TVResultCardMapWrapper .leaflet-rulerMarker-pane>div {
    transition: none!important
}

.TVResultCardMapWrapper .TVRulerTooltip.leaflet-tooltip-right {
    margin-left: 13px
}

.TVResultToursFoooterControl {
    display: flex;
    justify-content: center;
    align-items: center
}

.TVResultToursFoooterControl>:not(:first-child) {
    margin-left: 10px
}

.TVResultToursFoooterControl.TVStyleTheme1 {
    padding: 15px;
    background-color: #f6f6f6
}

.TVResultToursFoooterControl.TVStyleTheme1 .TVWaiterBG {
    height: 22px
}

.TVResultToursFoooterControl.TVStyleTheme1 .TVResultToursGroupButton,.TVResultToursFoooterControl.TVStyleTheme1 .TVResultToursMinimizeButton,.TVResultToursFoooterControl.TVStyleTheme1 .TVResultToursShareButton,.TVResultToursFoooterControl.TVStyleTheme1 .TVResultToursShowMoreButton {
    min-width: 184px;
    box-sizing: border-box
}

.TVResultToursFoooterControl.TVStyleTheme2 .TVWaiterBG {
    height: 30px
}

.TVResultToursFoooterControl.TVStyleTheme2 .TVResultToursGroupButton,.TVResultToursFoooterControl.TVStyleTheme2 .TVResultToursMinimizeButton,.TVResultToursFoooterControl.TVStyleTheme2 .TVResultToursShareButton,.TVResultToursFoooterControl.TVStyleTheme2 .TVResultToursShowMoreButton {
    min-width: 184px;
    box-sizing: border-box
}

.TVResultToursFoooterControl.TVStyleTheme3 {
    padding: 0 15px 15px
}

.TVResultToursFoooterControl.TVStyleTheme3 .TVWaiterBG {
    height: 30px
}

.TVResultToursFoooterControl.TVStyleTheme3 .TVResultToursGroupButton,.TVResultToursFoooterControl.TVStyleTheme3 .TVResultToursMinimizeButton,.TVResultToursFoooterControl.TVStyleTheme3 .TVResultToursShowMoreButton {
    flex: 1
}

.TVResultMobileHelpRequest {
    padding: 20px
}

.TVResultMobileRequestHelpTitle {
    margin-top: 10px;
    font-size: 18px;
    font-weight: 700;
    line-height: 22px
}

.TVResultMobileRequestHelpDescription {
    margin-top: 15px;
    font-size: 13px;
    line-height: 22px
}

.TVResultMobileRequestHelpButton {
    display: flex;
    justify-content: center;
    margin-top: 20px;
    padding: 14px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600
}

.TVResultHelpFormFlightSearchButton,.TVResultHelpFormRegularButton,.TVResultHelpFormRequestButton {
    align-self: center;
    text-align: center;
    cursor: pointer;
    border-radius: 4px;
    width: 300px
}

.TVResultHelpFormFlightSearchButton,.TVResultHelpFormRegularButton {
    background: #efefef;
    border: 1px solid #ddd;
    font-size: 14px;
    line-height: 40px;
    color: #777
}

.TVResultHelpFormAvailableTourDates {
    width: 100%
}

.TVResultHelpFormControl {
    display: flex;
    flex-direction: column;
    background-color: #fff
}

.TVResultHelpFormControl>:not(:first-child) {
    margin-top: 20px
}

.TVResultHelpFormControl .TVResultHelpFormAvailableTourDates {
    margin-top: 30px
}

.TVResultHelpFormControl.TVStyleTheme1,.TVResultHelpFormControl.TVStyleTheme2 {
    align-items: center;
    border-radius: 3px;
    padding: 34px 45px
}

.TVResultHelpFormControl.TVStyleTheme1 .TVResultHelpFormHeader,.TVResultHelpFormControl.TVStyleTheme2 .TVResultHelpFormHeader {
    font-size: 17px;
    text-align: center;
    font-weight: 300
}

.TVResultHelpFormControl.TVStyleTheme1 .TVResultHelpFormRequestHeader,.TVResultHelpFormControl.TVStyleTheme2 .TVResultHelpFormRequestHeader {
    font-size: 20px;
    font-weight: 300;
    text-align: center
}

.TVResultHelpFormControl.TVStyleTheme1 {
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMCUiIHkyPSIxMDAlIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjZmZmIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjZjJmMmYyIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI2EpIiBkPSJNMCAwaDF2MUgweiIvPjwvc3ZnPg==);
    box-shadow: 0 1px 3px #7f7f7f
}

.TVResultHelpFormControl.TVStyleTheme1 .TVResultHelpFormRequestButton {
    padding: 10px 0;
    box-shadow: 1px 1px 2px #444;
    font-size: 18px;
    font-weight: 300
}

.TVResultHelpFormControl.TVStyleTheme2 {
    border: 1px solid #ddd
}

.TVResultHelpFormControl.TVStyleTheme2 .TVResultHelpFormRequestButton {
    padding: 15px 0;
    font-size: 16px;
    font-weight: 500;
    text-transform: uppercase
}

.TVResultHelpFormControl.TVStyleTheme3 {
    padding: 20px
}

.TVResultHelpFormControl.TVStyleTheme3 .TVResultHelpFormPreheader {
    font-size: 13px;
    line-height: 18px;
    font-weight: 700;
    color: #333;
    text-transform: uppercase
}

.TVResultHelpFormControl.TVStyleTheme3 .TVResultHelpFormHeader,.TVResultHelpFormControl.TVStyleTheme3 .TVResultHelpFormRequestHeader {
    font-size: 13px;
    line-height: 18px;
    color: #777
}

.TVResultHelpFormControl.TVStyleTheme3 .TVResultHelpFormRequestButton {
    padding: 15px 0;
    font-size: 16px;
    font-weight: 500;
    text-transform: uppercase
}

.TVAvailableTourDates {
    padding: 15px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 3px;
    position: relative
}

.TVAvailableTourDates:before {
    content: "Туры на ближайшие доступные даты";
    padding: 0 10px;
    background-color: #fff;
    font-size: 10px;
    line-height: 14px;
    white-space: nowrap;
    text-transform: uppercase;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%,-50%)
}

.TVAvailableTourDates .TVAvailableTourDate {
    margin: 15px
}

.TVAvailableTourDate {
    display: flex;
    flex-wrap: wrap;
    font-size: 13px;
    line-height: 18px;
    color: #185584;
    text-decoration: none;
    border-bottom: 1px dashed #185584;
    cursor: pointer
}

.TVAvailableTourDateFly {
    margin-right: 5px;
    font-weight: 700
}

.TVResultPageCaption {
    box-sizing: border-box;
    position: relative;
    background: rgba(0,0,0,.2);
    height: 100%;
    width: 100%;
    padding: 4px 7px;
    border-radius: 30px
}

.TVResultPageCaptionDescription,.TVResultPageCaptionTitle {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: center
}

.TVResultPageCaptionTitle {
    font-size: 13px;
    line-height: 15px;
    font-weight: 600
}

.TVResultPageCaptionDescription {
    font-size: 12px;
    line-height: 15px;
    font-weight: 400
}

.TVResultNavigationControl {
    display: flex;
    background-color: #edf2f5;
    padding: 13px 12px;
    font-size: 14px;
    color: #5c6672
}

.TVResultNavigationListView {
    margin-right: auto
}

.TVResultNavigationMap {
    margin-left: auto
}

.TVResultNavigationListView,.TVResultNavigationMap {
    cursor: pointer
}

.TVResultNavigationListView.TVDisabled,.TVResultNavigationMap.TVDisabled {
    color: #999;
    cursor: default
}

.TVResultNavigationHotelsContent:before,.TVResultNavigationResortsContent:before {
    font-family: TVicons;
    content: "\e91f";
    margin-right: 5px
}

.TVResultNavigationToCountriesContent:before,.TVResultNavigationToResortsContent:before {
    font-family: TVicons;
    content: "\e905";
    margin-right: 5px
}

.TVResultNavigationMapContent:before {
    font-family: TVicons;
    content: "\e953";
    margin-right: 5px
}

.TVResultContentNavigationWrapper {
    margin-bottom: 15px
}

.TVResultContentList,.TVResultContentPreviewList {
    background-color: #fff
}

.TVResultMenu .TVChangeSearchItem:before {
    font-family: TVicons;
    content: "\e91d";
    font-size: 16px
}

.TVResultMenu .TVTrackPriceItem:before {
    font-family: TVicons;
    content: "\e94c";
    font-size: 16px
}

.TVResultMenu .TVErrorItem:before {
    font-family: TVicons;
    content: "\e923";
    font-size: 16px
}

.TVResultMenuTitleWrapper {
    width: calc(100% - 40px)
}

.TVResultMenuTitle {
    font-weight: 700
}

.TVResultMenuSearchParams {
    opacity: .7
}

.TVResultNavButton,a.TVResultNavButton,a.TVResultNavButton:link {
    cursor: pointer;
    border-radius: 20px;
    text-transform: uppercase;
    font-size: 10px;
    font-weight: 600;
    line-height: 1;
    color: #5c6672;
    text-decoration: none;
    white-space: nowrap;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVResultNavButton svg,a.TVResultNavButton:link svg,a.TVResultNavButton svg {
    fill: #5c6672
}

.TVResultNavButton.TVStyleTheme1,a.TVResultNavButton.TVStyleTheme1,a.TVResultNavButton:link.TVStyleTheme1 {
    border: 1px solid #ddd;
    background: #fff
}

.TVResultNavButton.TVStyleTheme1.TVPaddingSize-S,a.TVResultNavButton.TVStyleTheme1.TVPaddingSize-S,a.TVResultNavButton:link.TVStyleTheme1.TVPaddingSize-S {
    padding: 3px 5px
}

.TVResultNavButton.TVStyleTheme1.TVPaddingSize-M,a.TVResultNavButton.TVStyleTheme1.TVPaddingSize-M,a.TVResultNavButton:link.TVStyleTheme1.TVPaddingSize-M {
    padding: 6px 15px
}

.TVResultNavButton.TVStyleTheme2,a.TVResultNavButton.TVStyleTheme2,a.TVResultNavButton:link.TVStyleTheme2 {
    background: #edf2f5
}

.TVResultNavButton.TVStyleTheme2.TVPaddingSize-S,.TVResultNavButton.TVStyleTheme3.TVPaddingSize-S,a.TVResultNavButton.TVStyleTheme2.TVPaddingSize-S,a.TVResultNavButton.TVStyleTheme3.TVPaddingSize-S,a.TVResultNavButton:link.TVStyleTheme2.TVPaddingSize-S,a.TVResultNavButton:link.TVStyleTheme3.TVPaddingSize-S {
    padding: 5px 9px
}

.TVResultNavButton.TVStyleTheme2.TVPaddingSize-M,.TVResultNavButton.TVStyleTheme3.TVPaddingSize-M,a.TVResultNavButton.TVStyleTheme2.TVPaddingSize-M,a.TVResultNavButton.TVStyleTheme3.TVPaddingSize-M,a.TVResultNavButton:link.TVStyleTheme2.TVPaddingSize-M,a.TVResultNavButton:link.TVStyleTheme3.TVPaddingSize-M {
    padding: 11px 12px
}

.TVResultNavButton.TVStyleTheme2.TVPaddingSize-L,.TVResultNavButton.TVStyleTheme3.TVPaddingSize-L,a.TVResultNavButton.TVStyleTheme2.TVPaddingSize-L,a.TVResultNavButton.TVStyleTheme3.TVPaddingSize-L,a.TVResultNavButton:link.TVStyleTheme2.TVPaddingSize-L,a.TVResultNavButton:link.TVStyleTheme3.TVPaddingSize-L {
    padding: 15px 12px
}

.TVResultNavButton.TVActive,a.TVResultNavButton.TVActive,a.TVResultNavButton:link.TVActive {
    color: #fff;
    background: #5c6672;
    border-color: #5c6672
}

.TVResultNavButtons {
    display: flex
}

.TVResultNavButtons .TVResultNavButton:not(:last-child) {
    margin-right: 2%
}

.TVHotelCardToursControl>:not(:last-child) {
    margin-bottom: 20px
}

.TVHotelCardToursLoader {
    position: relative;
    padding: 20px 0;
    height: auto
}

.TVHotelCardToursLoader .TVLoaderTitle {
    margin-top: 15px;
    font-size: 16px
}

.TVHotelCardToursLoader .TVLoaderTitle:before {
    content: "Идет поиск"
}

.TVHotelCardGroupToursButton,.TVHotelCardShowMoreBtn {
    cursor: pointer;
    padding: 10px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
    text-align: center
}

.TVHotelCardShowMoreBtn {
    color: #fff;
    background: #027ad0
}

.TVHotelCardGroupToursButton {
    color: #5c6672;
    background: #fff;
    border: 1px solid #5c6672
}

.TVHotelCardGroupToursRoomContent {
    display: flex;
    align-items: center
}

.TVHotelCardGroupToursRoomContent>:not(:last-child) {
    margin-right: 10px
}

.TVHotelCardGroupToursRoomContentText {
    font-size: 13px;
    font-weight: 600
}

.TVHotelCardGroupToursRoomContentIcon {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #edf2f5;
    border-radius: 30px;
    width: 30px;
    min-width: 30px;
    height: 30px
}

.TVHotelCardGroupToursRoomContentIcon:before {
    font-family: TVicons;
    content: "\e937";
    color: #959ba5;
    font-size: 13px;
    line-height: 1
}

.TVHotelCardControl .TVProgressBar {
    height: 2px;
    background-color: #f9ffba;
    position: absolute
}

.TVHotelCardControl .TVProgressLine {
    border: 1px solid #0af800
}

.TVHotelCardControl .TVHotelCardTitle {
    box-sizing: border-box;
    padding: 20px 20px 10px;
    color: #777
}

.TVHotelCardControl .TVHotelCardTitle.TVHotelCardTitleWithBoxShadow {
    box-shadow: 0 3px 6px rgba(0,0,0,.16)
}

.TVHotelCardControl .TVHotelCardInfo {
    margin-bottom: 20px
}

.TVHotelCardControl .TVHotelCardTours {
    margin: 0 20px 20px
}

.TVHotelCardControl .TVAreaDescriptionContainer {
    order: 1
}

.TVHotelCardControl .TVAreaMinPriceControl {
    padding: 0 20px
}

.TVHotelCardControl .TVHotelContentButtons {
    margin-bottom: 15px
}

.TVHotelCardControl .TVHotelCardBtn {
    text-transform: uppercase;
    border-radius: 30px;
    margin: 0 20px 15px;
    font-size: 10px;
    padding: 10px 0;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer
}

.TVHotelCardControl .TVHotelCardBtn:before {
    font-family: TVicons;
    content: "\e91d";
    font-size: 12px;
    line-height: 12px;
    margin-right: 5px
}

.TVHotelCardControl .TVHotelCardBtn:after {
    margin-right: 5px
}

.TVHotelCardControl .TVHotelCardSearchLinkBtn:after {
    content: "Найти туры в отель"
}

.TVHotelCardControl .TVHotelCardAboutLinkBtn,.TVHotelCardControl .TVHotelCardSearchLinkBtn {
    color: #777;
    background-color: #efefef;
    text-decoration: none
}

.TVHotelCardControl .TVHotelCardRequestButton,.TVHotelCardControl .TVHotelCardRunSearchBtn {
    margin: 20px
}

.TVHotelCardControl .TVHotelCardAboutLinkBtn:before {
    content: ""
}

.TVHotelCardControl .TVHotelCardAboutLinkBtn:after {
    content: "Подробнее об отеле"
}

.TVResortCardControl .TVResortTitleControl {
    padding: 20px 20px 10px
}

.TVResortCardControl .TVAreaContentControl>:not(:first-child) {
    margin-top: 15px
}

.TVResortCardControl .TVAreaDescriptionContainer {
    order: 1
}

.TVResortCardControl .TVAreaMinPriceControl {
    padding: 0 20px
}

.TVResortCardControl .TVAreaMinPriceTitle {
    color: #333;
    font-weight: 700;
    font-size: 16px
}

.TVResortCardControl .TVAreaMinPriceTitle:before {
    font-family: TVicons;
    content: "\e93f";
    font-size: 28px;
    color: #777;
    font-weight: 400;
    line-height: 26px
}

.TVResortCardControl .TVAreaMinPriceTitle:after {
    margin-left: 3px;
    color: #777;
    font-weight: 400
}

.TVResortCardControl .TVAreaMinPriceTitle.TVDeclensionNominative:after {
    content: "отель"
}

.TVResortCardControl .TVAreaMinPriceTitle.TVDeclensionGenitiveSingle:after {
    content: "отеля"
}

.TVResortCardControl .TVAreaMinPriceTitle.TVDeclensionGenitivePlural:after {
    content: "отелей"
}

.TVResortCardControl .TVResortCardBtn {
    text-transform: uppercase;
    color: #777;
    background-color: #efefef;
    border: 1px solid #ddd;
    border-radius: 30px;
    margin: 0 20px;
    font-size: 10px;
    padding: 10px 0;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer
}

.TVResortCardControl .TVResortCardBtn:before {
    content: "Показать отели на карте"
}

.TVResortCardControl .TVResortCardBtnEmpty:before {
    font-family: TVicons;
    content: "\e91d";
    font-size: 12px;
    line-height: 12px;
    margin-right: 5px;
    order: -1
}

.TVResortCardControl .TVResortCardBtnEmpty:after {
    content: "Найти туры";
    margin-right: 5px;
    order: -1
}

.TVResortCardControl .TVResortCardAboutLinkBtn,.TVResortCardControl .TVResortCardSearchLinkBtn {
    text-decoration: none
}

.TVResortCardControl .TVResortCardAboutLinkBtn:before {
    content: "Подробнее о курорте"
}

.TVResortCardControl .TVResortCardSearchLinkBtn:before {
    content: "Найти туры"
}

.TVResortCardControl .TVGallLoupe {
    display: none
}

.TVResultAboutHotelControl {
    min-height: 50px
}

.TVResultAboutHotelControl.TVStyleTheme1 .TVResultAboutHotelContent {
    padding: 15px;
    border-top: 1px solid #e1e1e1
}

.TVResultAboutHotelControl.TVStyleTheme1 .TVResultAboutHotelFooter {
    padding: 15px;
    background-color: #fafafa;
    border-top: 1px solid #e1e1e1
}

.TVResultAboutHotelControl.TVStyleTheme2 .TVResultAboutHotelFooter {
    margin-top: 15px
}

.TVResultAboutHotelContent {
    display: flex
}

.TVResultAboutHotelPictures {
    margin-right: 40px
}

.TVResultAboutHotelPrewiews {
    display: flex;
    flex-wrap: wrap;
    width: 162px;
    margin: -3px
}

.TVResultAboutHotelPrewiewItem {
    box-sizing: border-box;
    width: 48px;
    height: 40px;
    margin: 3px;
    border-radius: 2px;
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: cover
}

.TVResultAboutHotelInfoItem {
    display: flex
}

.TVResultAboutHotelInfoItem:not(:last-child) {
    margin-bottom: 5px
}

.TVResultAboutHotelInfoItemTitle {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    color: #333;
    margin-right: 15px;
    margin-top: 3px;
    min-width: 80px;
    text-align: right
}

.TVResultAboutHotelInfoItemContent {
    color: #5c6672;
    font-size: 13px;
    text-align: left
}

.TVResultAboutHotelInfoItemContent li:not(:last-child):after {
    content: ", "
}

.TVResultAboutHotelInfoItemContent ul:after {
    content: "."
}

.TVResultAboutHotelInfoItemContent p {
    color: #5f5e5e;
    font-size: 12px;
    text-indent: 0
}

.TVResultAboutHotelInfoItemContent ul {
    padding: 0;
    margin: 0;
    display: inline
}

.TVResultAboutHotelInfoItemContent ul>li {
    display: inline;
    background-image: none;
    padding: 0
}

.TVResultAboutHotelInfo br,.TVSRReviewContent br {
    display: none
}

.TVResultAboutHotelFooter {
    display: flex;
    justify-content: center;
    align-items: center
}

.TVResultHotelReviewsControl {
    min-height: 50px
}

.TVResultHotelReviewsControl.TVStyleTheme1 {
    border-top: 1px solid #e1e1e1;
    padding: 15px
}

.TVResultHotelReviewsControl.TVStyleTheme1 .TVHotelReviewsAdd,.TVResultHotelReviewsControl.TVStyleTheme1 .TVHotelReviewsTophotels,.TVResultHotelReviewsControl.TVStyleTheme1 .TVHotelReviewsTourvisor,.TVResultHotelReviewsControl.TVStyleTheme1 .TVHotelReviewsTripadvisor {
    padding: 7px 11px
}

.TVResultHotelReviewsControl.TVStyleTheme1 .TVHotelReviewsMore {
    padding: 3px 11px;
    background-color: #fff;
    border: 1px solid #ddd;
    margin: 0 auto;
    width: 184px;
    box-sizing: border-box;
    font-weight: 600;
    font-size: 10px;
    text-transform: uppercase
}

.TVResultHotelReviewsControl.TVStyleTheme1 .TVHotelReviewsFooterButtons {
    margin: 15px -15px -15px;
    padding: 15px;
    background-color: #fafafa;
    border-top: 1px solid #e1e1e1
}

.TVResultHotelReviewsControl.TVStyleTheme1 .TVHotelReviewsView .TVReviewContent,.TVResultHotelReviewsControl.TVStyleTheme1 .TVHotelReviewsView .TVReviewName,.TVResultHotelReviewsControl.TVStyleTheme1 .TVHotelReviewsView .TVReviewShowAll {
    font-size: 13px;
    line-height: 20px
}

.TVResultHotelReviewsControl.TVStyleTheme2 .TVHotelReviewsMore {
    width: 184px;
    box-sizing: border-box;
    font-weight: 600;
    font-size: 10px;
    text-transform: uppercase;
    padding: 7px
}

.TVResultHotelMapControl.TVStyleTheme1 .TVResultHotelMapContent {
    box-sizing: border-box;
    padding: 10px;
    border-top: 1px solid #e1e1e1
}

.TVResultHotelMapControl.TVStyleTheme1 .TVResultHotelMapFooter {
    padding: 15px;
    background-color: #fafafa;
    border-top: 1px solid #e1e1e1
}

.TVResultHotelMapControl.TVStyleTheme2 .TVResultHotelMapFooter {
    margin-top: 15px
}

.TVResultHotelMapContent {
    height: 400px;
    width: 100%
}

.TVResultHotelMapContent .TVMapControl .TVMapLayersDecorator {
    right: 10px
}

.TVResultHotelMapFooter {
    display: flex;
    justify-content: center;
    align-items: center
}

.TVResultHotelMapGoogle:before {
    content: "";
    background-image: url(//tourvisor.ru/module/newform/images/mapslogo.svg);
    width: 14px;
    height: 14px;
    display: inline-block;
    background-size: 41px;
    background-position: -13px -23px;
    vertical-align: top;
    margin-right: 3px
}

.TVResultToursShareContent {
    display: flex;
    align-items: center
}

.TVResultToursShareContent .TVResultToursShareContentIconWrapper {
    position: relative;
    width: 12px;
    height: 10px
}

.TVResultToursShareContent .TVResultToursShareContentIconWrapper .TVResultToursShareContentIcon {
    width: 12px;
    height: auto;
    position: absolute;
    left: 0;
    bottom: 0
}

.TVResultToursShareContent .TVResultToursShareContentText {
    margin-left: 5px
}

.TVResultToursShareContent.TVResultToursShortShareContent {
    justify-content: center;
    width: 16px;
    height: 10px
}

.TVResultToursShareContent.TVResultToursShortShareContent .TVResultToursShareContentIcon {
    width: 14px
}

.TVResultToursControl.TVStyleTheme1 .TVResultToursContent {
    box-sizing: border-box;
    padding: 10px;
    border-top: 1px solid #e1e1e1
}

.TVResultToursControl.TVStyleTheme1 .TVResultToursFooter {
    border-top: 1px solid #e1e1e1
}

.TVResultToursControl.TVStyleTheme1 t-table {
    border-collapse: collapse;
    width: 100%
}

.TVResultToursControl.TVStyleTheme2 .TVResultToursFooter {
    margin-top: 15px
}

.TVResultToursControl.TVStyleTheme2 t-table {
    border-collapse: collapse;
    background-color: #fff;
    border: none;
    width: 100%;
    margin: 0
}

.TVResultToursControl.TVStyleTheme3 .TVResultToursContent {
    box-sizing: border-box;
    padding: 10px
}

.TVResultToursControl.TVStyleTheme3 t-table {
    border-collapse: collapse;
    background-color: #fff;
    border: none;
    width: 100%;
    margin: 0
}

.TVSearchMapControl {
    width: 100%;
    height: 100%;
    position: relative
}

.TVMapWindow,.TVSearchMapControl {
    font-family: var(--tv-font-theme2)
}

.TVMapWindow {
    background-color: #ddd;
    left: 20px;
    right: 20px;
    bottom: 20px;
    height: 96vh;
    height: calc(var(--tvMapWindowVH, 1vh)*96);
    box-shadow: 0 0 20px #000;
    border-radius: 5px;
    overflow: hidden
}

.TVMapWindow .TVClosePopUp {
    background: #fff;
    border: 0;
    border-radius: 50px;
    box-shadow: 0 3px 6px rgba(0,0,0,.16);
    padding: 10px 10px 10px 15px;
    top: 10px;
    right: 10px;
    height: auto;
    width: auto;
    display: flex;
    align-items: center
}

.TVMapWindow .TVClosePopUp:before {
    margin-right: 5px;
    content: "Закрыть";
    font-size: 14px;
    line-height: 20px;
    color: #333
}

.TVMapWindow .TVClosePopUp:after {
    content: "+";
    font-family: inherit;
    font-size: 28px;
    line-height: 15px;
    transform: rotate(45deg);
    border: none;
    border-radius: 0;
    padding: 0
}

.TVMapWindow .TVMapFilterControl {
    position: absolute;
    top: 10px;
    left: 10px
}

.TVMapWindow.TVMapWindowFix {
    position: fixed
}

.TVMapWindowBody {
    width: 100%;
    height: 100%
}

.TVMapVisible {
    overflow: hidden;
    position: static!important
}

.TVMapVisible.TVTourCardWindowVisible {
    overflow: visible
}

.TVMapVisible .TVCartPreview {
    z-index: 0
}

.TVMapProgressBar,.TVMapUpdateMoreBtn {
    background: #fff;
    border: 0;
    border-radius: 50px;
    box-shadow: 0 3px 6px rgba(0,0,0,.16);
    position: absolute;
    top: 10px;
    right: 50%;
    transform: translateX(50%)
}

.TVMapProgressBar {
    width: 200px;
    padding: 8px 12px
}

.TVMapProgressBar .TVProgressBar {
    border: 1px solid #ddd;
    border-radius: 50px;
    overflow: hidden
}

.TVMapProgressBar .TVProgressLine {
    background-color: #185584;
    width: 20%;
    min-width: 20%;
    text-align: center;
    color: #fff;
    font-size: 14px;
    line-height: 21px;
    font-weight: 600
}

.TVMapUpdateMoreBtn {
    cursor: pointer;
    display: flex
}

.TVMapUpdateMoreBtn.TVMapUpdateMoreBtnRegion:after {
    content: "Найти туры в регионе"
}

.TVMapUpdateMoreBtn:before {
    font-family: TVicons;
    content: "\e957";
    color: #777;
    padding: 8px 12px;
    display: block;
    line-height: 23px
}

.TVMapUpdateMoreBtn:after {
    content: "Обновить результаты поиска";
    padding: 8px 12px 8px 0;
    font-size: 14px;
    color: #333;
    line-height: 22px
}

@media screen and (max-width: 950px) {
    .TVMapUpdateMoreBtn {
        right:373px
    }

    .TVMapUpdateMoreBtn:after {
        content: "";
        padding: 0
    }

    .TVMapUpdateMoreBtn.TVMapUpdateMoreBtnRegion:after {
        content: ""
    }
}

.TVMapFilterControl {
    width: 230px;
    font-family: var(--tv-font-theme2);
    box-shadow: 0 3px 6px rgba(0,0,0,.16)
}

.TVMapFilterControl .TVMapFilterHeader {
    padding: 10px 14px 10px 20px;
    background-color: #fff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-radius: 4px;
    cursor: pointer
}

.TVMapFilterControl .TVMapFilterHeader.TVActive {
    border-radius: 4px 4px 0 0
}

.TVMapFilterControl .TVMapFilterHeader.TVActive .TVMapFilterIcon {
    transform: rotate(180deg)
}

.TVMapFilterControl .TVMapFilterIcon:before {
    font-family: TVicons;
    content: "\e901";
    color: #777;
    font-size: 18px
}

.TVMapFilterControl .TVMapFilterTitle:before {
    font-family: TVicons;
    content: "\f0b0";
    color: #999;
    font-size: 13px
}

.TVMapFilterControl .TVMapFilterTitle:after {
    content: "Фильтры по отелям";
    color: #333;
    font-size: 14px;
    margin-left: 5px
}

.TVMapFilterControl .TVMapFilterProgress {
    height: 0;
    position: relative
}

.TVMapFilterControl .TVProgressBar {
    height: 2px;
    background-color: #f9ffba
}

.TVMapFilterControl .TVProgressLine {
    border: 1px solid #0af800
}

.TVMapFilterControl .TVFilterForm {
    border-radius: 0 0 4px 4px
}

.TVMapFilterControl .TVSSRunner {
    z-index: 0
}

.TVHotelsCollections {
    height: 100%;
    overflow-y: auto
}

.TVHotelCollectionListWithTabs .TVTabListControl.TVStyleTheme1 .TVHotelsCollectionListFilterTab {
    color: #5c6672;
    padding-right: 0;
    border-bottom: none
}

.TVHotelCollectionListWithTabs {
    height: 100%
}

.TVHotelsControl.TVStyleTheme1,.TVHotelsControl.TVStyleTheme2,.TVHotelsControl.TVStyleTheme3 {
    position: relative;
    background: #fff;
    flex: 1;
    min-height: 0;
    height: 100%
}

.TVHotelsControl.TVStyleTheme1 .TVHotelCollectionListWithTabs,.TVHotelsControl.TVStyleTheme1 .TVHotelListWithTabs,.TVHotelsControl.TVStyleTheme2 .TVHotelCollectionListWithTabs,.TVHotelsControl.TVStyleTheme2 .TVHotelListWithTabs,.TVHotelsControl.TVStyleTheme3 .TVHotelCollectionListWithTabs,.TVHotelsControl.TVStyleTheme3 .TVHotelListWithTabs {
    height: 100%;
    display: flex;
    flex-direction: column
}

.TVHotelsControl.TVStyleTheme1 .TVTabListWithSearchInput,.TVHotelsControl.TVStyleTheme2 .TVTabListWithSearchInput {
    height: 22px
}

.TVHotelsControl.TVStyleTheme1 .TVTabListWithSearch,.TVHotelsControl.TVStyleTheme2 .TVTabListWithSearch {
    box-sizing: border-box;
    min-height: 30px;
    margin-bottom: 12px;
    border-bottom: 1px solid #ddd
}

.TVHotelsControl.TVStyleTheme3 .TVTabListControl {
    box-sizing: border-box;
    height: 30px;
    margin-bottom: 20px
}

.TVHotelListWrapper {
    height: 174px;
    padding: 10px;
    box-sizing: border-box;
    background: #fff
}

.TVHotelListWrapper.TVDisabled {
    opacity: .5;
    pointer-events: none
}

.TVHotelListSelectWaiter {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%
}

.TVHotelsSelectTooltipContent {
    box-sizing: border-box;
    flex: 1;
    min-height: 0;
    padding: 20px 20px 0;
    display: flex;
    flex-direction: column
}

.TVHotelsSelectTooltip {
    display: flex;
    flex-direction: column;
    width: 400px;
    height: 400px
}

.TVHotelsSelectTooltip .TVHotelsSelectTooltipTitle {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    text-transform: uppercase;
    margin-bottom: 5px
}

.TVHotelsSelectTooltip .TVHotelsSelectTooltipSubmit {
    margin: 20px auto
}

.TVHotelsSelectActionSheet .TVHotelsSelectTooltipContent,.TVHotelsSelectTooltipPage .TVHotelsSelectTooltipContent {
    padding: 20px 10px 0 20px
}

.TVHotelsSelectActionSheet .TVHotelsSelectTooltipSubmit,.TVHotelsSelectTooltipPage .TVHotelsSelectTooltipSubmit {
    margin: 20px auto
}

.TVHotelsSelectActionSheet .TVStyleScroll,.TVHotelsSelectTooltipPage .TVStyleScroll {
    padding-right: 10px
}

.TVOperatorsControl {
    box-sizing: border-box;
    height: 100%;
    overflow-y: auto
}

.TVOperatorsControl .TVCheckBox:before {
    font-size: 10px;
    line-height: 10px;
    height: 10px
}

.TVOperatorsControl .TVOperatorsDelimiter {
    width: 95%;
    position: relative;
    padding-bottom: 5px
}

.TVOperatorsControl .TVOperatorsDelimiter:before {
    content: "Туров нет";
    text-transform: uppercase;
    color: #868686
}

.TVOperatorsControl.TVStyleTheme1 .TVOperatorsDelimiter {
    margin: 12px 0 5px;
    border-bottom: 1px solid #ddd;
    font-size: 10px
}

.TVOperatorsControl.TVStyleTheme2 .TVOperatorsDelimiter {
    margin: 30px 0 10px;
    font-weight: 700;
    font-size: 14px
}

.TVOperatorsControl.TVStyleTheme2 .TVOperatorsDelimiter:before {
    text-transform: none;
    color: #333
}

.TVOperatorListWrapper {
    height: 174px;
    padding: 10px;
    box-sizing: border-box;
    background: #fff
}

.TVOperatorListWrapper.TVDisabled {
    opacity: .5;
    pointer-events: none
}

.TVOperatorsSelectTooltipContent {
    box-sizing: border-box;
    flex: 1;
    min-height: 0;
    padding: 20px 20px 0;
    display: flex;
    flex-direction: column
}

.TVOperatorsSelectTooltipPage .TVOperatorsSelectTooltipTitle,.TVOperatorsSelectTooltipSheet .TVOperatorsSelectTooltipTitle {
    font-size: 18px;
    font-weight: 700;
    color: #2b3f5a;
    margin-bottom: 30px
}

.TVOperatorsSelectTooltipPage .TVOperatorsSelectTooltipContent,.TVOperatorsSelectTooltipSheet .TVOperatorsSelectTooltipContent {
    flex: 1;
    min-height: 0;
    padding: 20px 10px 0 20px
}

.TVOperatorsSelectTooltipPage .TVOperatorsSelectTooltipSubmit,.TVOperatorsSelectTooltipSheet .TVOperatorsSelectTooltipSubmit {
    margin: 20px auto
}

.TVOperatorsSelectTooltipPage .TVStyleScroll,.TVOperatorsSelectTooltipSheet .TVStyleScroll {
    padding-right: 10px
}

.TVBaseSearchFilterPage.TVLayoutControl .TVMobileHeaderWrapper {
    background-color: #edf2f5
}

.TVBaseSearchFilterPage.TVLayoutControl .TVMobilePanelHeader {
    background-color: #edf2f5;
    color: #5c6672;
    font-weight: 600;
    padding: 0 20px
}

.TVBaseSearchFilterPage.TVLayoutControl .TVMobilePanelHeader .TVMobilePanelExtraHeader {
    order: 0
}

.TVBaseSearchFilterPage.TVLayoutControl .TVMobilePanelHeader .TVMobilePanelCaption {
    order: 1
}

.TVBaseSearchFilterPage.TVLayoutControl .TVMobilePanelHeader .TVMobilePanelCaption:before {
    content: ""
}

.TVBaseSearchFilterPage.TVLayoutControl .TVMobilePanelHeader>.TVMobilePanelClose {
    background-color: #fff;
    order: 2;
    margin: 0 0 0 10px
}

.TVBaseSearchFilterPage.TVLayoutControl .TVMobilePanelHeader>.TVMobilePanelClose:after {
    font-family: TVicons;
    content: "\e916";
    font-size: 12px
}

.TVBaseSearchFilterPage.TVLayoutControl .TVMobilePanelBody {
    background-color: #edf2f5;
    height: 100%
}

.TVResultAddFiltersTitle {
    display: flex;
    align-items: center
}

.TVResultAddFiltersTitleIcon {
    fill: #5c6672;
    margin-right: 10px;
    width: 19px;
    height: 17px
}

.TVResultMainFiltersPage.TVMobilePanel .TVFormBody.TVMainColor {
    background-color: transparent!important;
    color: #333!important
}

.TVResultMainFiltersTitle {
    display: flex;
    align-items: center
}

.TVResultMainFiltersTitle:before {
    font-family: TVicons;
    content: "\e91d";
    font-size: 17px;
    color: #5c6672;
    margin-right: 10px
}

.TVAddFiltersPageContent {
    width: 100%;
    height: 100%;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column
}

.TVLayoutControl.TVHotelPage .TVHotelCardControl {
    overflow: hidden;
    overflow-y: auto;
    height: 100%
}

.TVHotelsPage .TVMobilePanelBody {
    height: 100%
}

.TVSearchMapPage.TVLayoutControl .TVMobilePanelCaption:before {
    content: "Поиск на карте"
}

.TVSearchMapPage .TVMobilePanelBody {
    height: 100%
}

.TVSearchMapPage .TVSearchMapControl .TVMapLayersDecorator {
    right: 183px
}

.TVSearchMapPage .TVSearchMapControl .TVMapToolsDecorator {
    right: 10px
}

.TVSearchMapPage .TVSearchMapControl .TVMapUpdateMoreBtn {
    right: 233px;
    transform: none
}

.TVSearchMapPage .TVSearchMapControl .TVMapUpdateMoreBtn:after {
    content: "";
    padding: 0
}

.TVSearchMapPage .TVSearchMapControl .TVMapZoomDecorator {
    top: auto;
    bottom: 20px;
    transform: translate(0)
}

.TVSearchMapPage .TVMapFilterControl {
    position: absolute;
    top: 10px;
    left: 10px
}

.TVSearchMapPage .leaflet-rulerLine-pane>svg,.TVSearchMapPage .leaflet-rulerMarker-pane>div {
    transition: none!important
}

.TVSearchMapPage .TVRulerTooltip.leaflet-tooltip-right {
    margin-left: 13px
}

@media (max-width: 480px) {
    .TVSearchMapPage .TVSearchMapControl .TVMapToolsLink {
        display:none
    }

    .TVSearchMapPage .TVSearchMapControl .TVMapLayersDecorator {
        right: 142px
    }

    .TVSearchMapPage .TVSearchMapControl .TVMapUpdateMoreBtn {
        right: 192px
    }
}

.TVResultsPage .TVMobilePanelBody {
    height: 100%
}

.TVViewPanel {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 350px;
    height: 100%;
    overflow-y: auto;
    background: #fff;
    animation: tv-viewPanel-animation .2s ease-out
}

.TVViewPanelCloseBtn {
    position: absolute;
    height: 40px;
    width: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    top: 0;
    right: 0;
    cursor: pointer
}

.TVViewPanelCloseBtn:after {
    font-family: TVicons;
    content: "+";
    font-size: 30px;
    line-height: 18px;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg)
}

@keyframes tv-viewPanel-animation {
    0% {
        left: -350px
    }

    to {
        left: 0
    }
}

.TVCardController {
    height: 100%
}

.TVCardController .TVGallImage img {
    max-width: 100%
}

.TVCardController .TVHotelCardControl {
    height: 100%
}

.TVCardController .TVHotelCardControl,.TVCardController .TVResortCardControl {
    overflow-x: hidden
}

.TVCardController .TVHotelCardContent {
    overflow: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch
}

.TVCardController .TVAreaContentControl>:not(:first-child) {
    margin-top: 20px
}

.TVCardController.TVPreview .TVAreaContentText,.TVCardController.TVPreview .TVAreaGalleryContainer {
    visibility: hidden;
    position: relative
}

.TVCardController.TVPreview .TVAreaContentText:before,.TVCardController.TVPreview .TVAreaGalleryContainer:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVCardController.TVPreview .TVAreaContentText {
    height: 50px
}

.TVCardController.TVPreview .TVAreaContentText:before {
    margin: 0 20px;
    width: 250px;
    height: 50%
}

.TVCardController.TVPreview .TVAreaMinPriceControl,.TVCardController.TVPreview .TVHotelCardAboutLinkBtn,.TVCardController.TVPreview .TVHotelCardGroupToursButton,.TVCardController.TVPreview .TVHotelCardGroupToursRoomContent,.TVCardController.TVPreview .TVHotelCardRequestButton,.TVCardController.TVPreview .TVHotelCardRunSearchBtn,.TVCardController.TVPreview .TVHotelCardSearchLinkBtn,.TVCardController.TVPreview .TVHotelCardShowMoreBtn,.TVCardController.TVPreview .TVHotelCardTours,.TVCardController.TVPreview .TVLoaderContainer {
    display: none
}

.TVProgressBar {
    width: 100%;
    background-color: #fff;
    display: inline-block;
    vertical-align: top
}

.TVProgressLine {
    background-color: #0af800;
    box-sizing: border-box
}

.TVProgressLine.TVActive {
    transition: width .5s ease
}

.TVCityToToursControl .TVCityToToursItemControl:not(:last-child),.TVCityToToursHeader {
    border-bottom: 1px dashed #ddd
}

.TVCityToToursHeader {
    display: flex;
    font-size: 10px;
    color: #999;
    text-transform: uppercase;
    padding-bottom: 5px
}

.TVCityToToursBody {
    padding-top: 5px
}

.TVCityToToursAeroport,.TVCityToToursInfo {
    box-sizing: border-box;
    width: 270px;
    padding-left: 20px
}

.TVCityToToursAeroport:before {
    content: "Аэропорт прилета"
}

.TVCityToToursItemsWrap,.TVCityToToursParams {
    width: calc(100% - 270px)
}

.TVCityToToursParams {
    display: flex
}

.TVCityToTourDateWrap,.TVCityToToursDateWrap {
    width: 33%;
    display: flex
}

.TVCityToTourDate,.TVCityToToursDate {
    width: 100%;
    padding-left: 10px
}

.TVCityToToursDate:before {
    content: "Дата"
}

.TVCityToToursTime,.TVCityToTourTime {
    width: 50%
}

.TVCityToToursTime:before {
    content: "Время"
}

.TVCityToTourNights,.TVCityToToursNights {
    width: 33%
}

.TVCityToToursNights:before {
    content: "Ночей"
}

.TVCityToTourPrice,.TVCityToToursPriceType {
    width: 33%
}

.TVCityToToursPriceType:before {
    content: "Мин цена";
    margin-right: 3px
}

.TVCityToToursItemControl {
    display: flex
}

.TVCityToToursInfo {
    padding: 15px 0 15px 20px;
    font-size: 13px;
    line-height: 18px
}

.TVCityToToursName {
    font-size: 14px;
    font-weight: 700;
    line-height: 19px;
    color: #333
}

.TVCityToToursSubname {
    margin-top: 2px;
    color: #777
}

.TVCityToToursFly,.TVCityToToursTemperatureAir,.TVCityToToursTemperatureWater {
    margin-top: 13px;
    display: inline-block
}

.TVCityToToursTemperatureAir {
    margin-right: 10px;
    color: #e9a126
}

.TVCityToToursTemperatureAir:before {
    font-family: TVicons;
    content: "\e958"
}

.TVCityToToursTemperatureWater {
    margin-right: 10px;
    color: #5290de
}

.TVCityToToursTemperatureWater:before {
    font-family: TVicons;
    content: "\e959"
}

.TVCityToToursFly {
    color: #777
}

.TVCityToToursFly:before {
    margin-right: 5px;
    font-family: TVicons;
    content: "\e92d"
}

.TVCityToToursFly:after {
    margin-left: 2px;
    content: "ч"
}

.TVCityToToursItems .TVCityToTourItemControl {
    padding: 15px 0
}

.TVCityToToursItems .TVCityToTourItemControl:not(:first-child) {
    border-top: 1px dashed #dcdcdc
}

.TVCityToToursItems .TVCityToTourNights {
    box-sizing: border-box;
    padding-right: 20px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis
}

.TVCityToToursShowMoreBtn {
    font-size: 10px;
    color: #777;
    text-transform: uppercase;
    padding: 13px 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #efefef;
    border: 1px solid #ddd
}

.TVCityToToursShowMoreBtn:before {
    content: "Показать все туры"
}

.TVCityToToursShowMoreBtn:after {
    font-family: TVicons;
    content: "\e900";
    font-size: 15px;
    line-height: 1
}

.TVCityToToursShowMoreBtn.TVClose:before {
    content: "Скрыть туры"
}

.TVCityToToursShowMoreBtn.TVClose:after {
    transform: rotate(180deg)
}

.TVCityToTourItemControl {
    box-sizing: border-box;
    width: 100%;
    display: flex;
    font-size: 13px;
    line-height: 18px;
    color: #333;
    position: relative;
    cursor: pointer
}

.TVCityToTourItemControl:hover {
    background-color: #f5f5f5
}

.TVCityToTourItemControl:hover .TVCityToTourPriceArrow:before {
    color: #333
}

.TVCityToTourItemControl .TVCityToTourPrice {
    box-sizing: border-box;
    padding-right: 20px
}

.TVCityToTourItemControl.TVMinPriceTour .TVPriceValue {
    color: #e9a126
}

.TVCityToTourItemControl>a {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0
}

.TVCityToTourPrice {
    display: flex
}

.TVCityToTourPrice .TVPriceValue {
    font-size: 16px;
    font-weight: 700;
    line-height: 16px;
    white-space: nowrap
}

.TVCityToTourPrice .TVCityToTourPriceCurrency {
    margin-left: 5px;
    font-size: 10px
}

.TVCityToTourPrice .TVCityToTourPriceArrow {
    margin-left: auto
}

.TVCityToTourPrice .TVCityToTourPriceArrow:before {
    font-family: TVicons;
    content: "\e90a";
    font-size: 18px;
    color: #999
}

.TVMobileNotificationWindow {
    position: absolute;
    left: 0;
    top: 60px;
    height: 0;
    opacity: 0;
    overflow: hidden;
    z-index: 1;
    width: 100%;
    padding: 0 10px;
    box-sizing: border-box;
    transform: translateY(0);
    transition: transform .3s ease-out,opacity .3s ease-out,height 0s ease-out .3s
}

.TVMobileNotificationWindow .TVMobileNotificationContent {
    display: flex;
    align-items: center;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    padding: 10px 20px;
    background-color: #5c6672;
    color: #fff;
    font-size: 14px;
    border-radius: 5px
}

.TVMobileNotificationWindow.TVShowNotification {
    opacity: 1;
    transform: translateY(10px)
}

.TVSResortResultItem {
    font-family: var(--tv-font-theme2);
    box-sizing: border-box;
    width: 100%;
    box-shadow: 0 1px 3px #7f7f7f;
    border-radius: 4px;
    overflow: hidden;
    z-index: 0;
    opacity: 1;
    transition: opacity .3s linear;
    position: relative
}

.TVSResortResultItem:hover {
    box-shadow: 0 1px 4px #6a686a
}

.TVResortResultItem {
    padding: 0 8px
}

.TVResortResultItemNameWrapper {
    display: flex;
    align-items: center
}

.TVResortResultItemName {
    margin-right: 25px
}

.TVMResortResultItemName {
    margin-right: auto
}

.TVResortResultItemSun,.TVResortResultItemWater {
    font-size: 18px;
    font-size: 15px;
    font-weight: 500;
    display: flex;
    align-items: center
}

.TVResortResultItemSun:before,.TVResortResultItemWater:before {
    content: "";
    display: inline-block;
    margin-right: 5px
}

.TVResortResultItemSun {
    color: #fb5e51
}

.TVResortResultItemSun:before {
    font-family: TVicons;
    content: "\e958"
}

.TVResortResultItemWater {
    color: #5495fc;
    margin-left: 10px
}

.TVResortResultItemWater:before {
    font-family: TVicons;
    content: "\e959"
}

.TVSResortResultItemInfo {
    padding: 15px 0 15px 15px;
    background-color: #fff;
    background: linear-gradient(180deg,#fff,#f6f6f6)
}

.TVSResortResultItemInfo:hover {
    background: linear-gradient(180deg,#fff,#f1f1f1)
}

.TVSResortResultItemInfo .TVSResultItemFooter {
    margin-right: 15px
}

.TVMResortResultItem.TVPreview {
    min-height: 200px;
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite
}

.TVMResortResultItem.TVPreview>* {
    visibility: hidden
}

.TVCountryResultItem .TVCityToToursItemsWrap .TVCityToToursParams,.TVCountryResultItem .TVPriceHuman {
    display: none
}

.TVSCountryResultItem {
    font-family: var(--tv-font-theme2);
    box-sizing: border-box;
    width: 100%;
    box-shadow: 0 1px 3px #7f7f7f;
    border-radius: 4px;
    overflow: hidden;
    z-index: 0;
    opacity: 1;
    transition: opacity .3s linear;
    position: relative
}

.TVSCountryResultItem:hover {
    box-shadow: 0 1px 4px #6a686a
}

.TVMCountryResultItem {
    font-family: var(--tv-font-theme2);
    padding: 0;
    background-color: #fff;
    border-bottom: 1px solid #ddd;
    border-top: 1px solid #ddd
}

.TVMCountryResultItem .TVCityToToursInfo {
    width: 100%;
    padding: 0 0 15px
}

.TVMCountryResultItem .TVCityToToursHeader {
    display: none
}

.TVMCountryResultItem .TVCityToToursBody {
    padding-top: 0
}

.TVMCountryResultItem .TVCityToToursItemControl {
    display: flex;
    flex-direction: column
}

.TVMCountryResultItem .TVCityToToursItemControl:not(:last-child) {
    margin-bottom: 10px
}

.TVMCountryResultItem .TVCityToTourDateWrap {
    flex-direction: column;
    width: 33%
}

.TVMCountryResultItem .TVCityToTourDate,.TVMCountryResultItem .TVCityToToursDate {
    padding-left: 0
}

.TVMCountryResultItem .TVCityToToursItemsWrap {
    width: 100%
}

.TVMCountryResultItem .TVCityToToursItemsWrap .TVCityToToursParams {
    width: 100%;
    margin-bottom: 5px;
    display: flex;
    font-size: 10px;
    color: #999;
    text-transform: uppercase
}

.TVMCountryResultItem .TVCityToToursItemsWrap .TVCityToToursParams .TVCityToToursPriceType:before {
    content: "Цена"
}

.TVMCountryResultItem .TVCityToToursControl .TVCityToToursItemControl {
    border: none
}

.TVMCountryResultItem .TVCityToTourItemControl {
    border-top: 1px dashed #dcdcdc
}

.TVMCountryResultItem .TVCityToTourItemControl .TVCityToTourDate,.TVMCountryResultItem .TVCityToTourItemControl .TVCityToTourTime {
    width: 100%
}

.TVMCountryResultItem .TVCityToTourItemControl .TVCityToTourDate {
    font-weight: 600
}

.TVMCountryResultItem .TVCityToTourItemControl .TVCityToTourTime {
    color: #777
}

.TVMCountryResultItem .TVCityToTourItemControl .TVCityToTourNights {
    padding-right: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    color: #777
}

.TVMCountryResultItem .TVCityToTourItemControl .TVCityToTourPrice {
    padding-right: 0
}

.TVMCountryResultItem .TVCityToTourPrice .TVCityToTourPriceArrow {
    display: none
}

@media screen and (min-width: 500px) {
    .TVMCountryResultItem .TVCityToToursItemControl {
        flex-direction:row;
        flex-wrap: wrap
    }

    .TVMCountryResultItem .TVCityToToursInfo {
        width: 200px
    }

    .TVMCountryResultItem .TVCityToToursItemsWrap {
        width: calc(100% - 220px);
        margin-left: 20px
    }

    .TVMCountryResultItem .TVCityToToursShowMoreBtn {
        width: 100%
    }

    .TVMCountryResultItem .TVCityToTourDateWrap {
        flex-direction: row
    }
}

.TVSCountryResultItem .TVCityToToursItemsWrap .TVCityToToursParams {
    display: none
}

.TVCountryResultItem .TVCountryMapContainer,.TVSCountryResultItem .TVCountryMapContainer {
    position: relative;
    height: 430px
}

.TVSCountryResultItemInfo {
    padding: 15px 0 15px 15px;
    background-color: #fff;
    background: linear-gradient(180deg,#fff,#f6f6f6)
}

.TVSCountryResultItemInfo:hover {
    background: linear-gradient(180deg,#fff,#f1f1f1)
}

.TVSCountryResultItemInfo .TVSResultItemFooter {
    margin-right: 15px
}

.TVCountryResultItemDetail,.TVMCountryResultItemDetail,.TVSCountryResultItemDetail {
    background-color: #fff
}

.TVCountryMapWrap,.TVCountryPriceWrap {
    margin-top: 20px;
    padding-bottom: 15px
}

.TVMCountryPriceWrap {
    padding: 0 20px 20px
}

.TVTourResultItemInfoHint {
    color: #fff;
    padding: 20px 25px
}

.TVSTourResultItemRoomWrapper>:not(:first-child),.TVTourResultItemRoomWrapper>:not(:first-child) {
    display: inline-block;
    margin-left: 3px
}

.TVSTourResultItemRoomWrapper>:not(:first-child):before,.TVTourResultItemRoomWrapper>:not(:first-child):before {
    content: " / "
}

.TVMTourResultItemOperator,.TVSTourResultItemOperator,.TVTourResultItemOperator {
    display: flex;
    justify-content: center;
    align-items: center
}

.TVMTourResultItemOperator img,.TVSTourResultItemOperator img,.TVTourResultItemOperator img {
    width: 60px;
    display: block;
    border: 0
}

.TVMTourResultItemName,.TVSTourResultItemName,.TVTourResultItemName {
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
    display: -webkit-box;
    display: -moz-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    -moz-box-orient: vertical;
    box-orient: vertical
}

.TVMTourResultItemConfirmation,.TVSTourResultItemConfirmation,.TVTourResultItemConfirmation {
    margin-right: 5px
}

.TVSTourResultItemPriceInfo,.TVTourResultItemPriceInfo {
    font-size: 17px;
    color: #5c6672;
    margin-left: 8px
}

.TVSTourResultItemPriceInfo:before,.TVTourResultItemPriceInfo:before {
    font-family: TVicons;
    content: "\e923"
}

.TVMTourResultItemPrice,.TVSTourResultItemPrice,.TVTourResultItemPrice {
    display: flex;
    align-items: center;
    cursor: pointer
}

.TVMTourResultItemPriceKilo,.TVMTourResultItemPriceValue,.TVSTourResultItemPriceKilo,.TVSTourResultItemPriceValue,.TVTourResultItemPriceKilo,.TVTourResultItemPriceValue {
    display: flex;
    align-items: flex-end;
    white-space: nowrap;
    color: #000;
    line-height: 1
}

.TVMTourResultItemPriceValue,.TVSTourResultItemPriceValue,.TVTourResultItemPriceValue {
    font-weight: 700
}

.TVMTourResultItemPriceKilo,.TVSTourResultItemPriceKilo,.TVTourResultItemPriceKilo {
    font-weight: 400
}

.TVMTourResultItemPriceCurrency,.TVSTourResultItemPriceCurrency,.TVTourResultItemPriceCurrency {
    color: #5c6672;
    font-size: 10px;
    font-weight: 500
}

.TVTourResultItemTd {
    padding: 15px 5px
}

.TVTourResultItemTd:first-child {
    padding-left: 0
}

.TVTourResultItemTd:last-child {
    padding-right: 0
}

.TVTourResultItem {
    border-top: 1px dashed #ddd
}

.TVTourResultItem:last-child {
    border-bottom: 1px dashed #ddd
}

.TVTourResultItemDate,.TVTourResultItemRegular,.TVTourResultItemRoomWrapper {
    font-size: 13px;
    color: #333;
    font-weight: 600
}

.TVTourResultItemMeal,.TVTourResultItemName,.TVTourResultItemNights {
    font-size: 13px;
    color: #5c6672;
    opacity: .7
}

.TVSTourResultItemCart,.TVTourResultItemCart {
    cursor: pointer
}

.TVTourResultItemCart {
    width: 32px;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVTourResultItemCart,.TVTourResultItemPrice {
    border-radius: 40px;
    background: #edf2f5;
    height: 32px;
    margin-left: auto
}

.TVTourResultItemPrice {
    padding: 0 14px;
    justify-content: flex-end;
    width: fit-content
}

.TVTourResultItemPrice:hover {
    background: #e0f0d8
}

.TVMTourResultItemPriceKilo,.TVMTourResultItemPriceValue,.TVTourResultItemPriceKilo,.TVTourResultItemPriceValue {
    font-size: 16px
}

.TVMTourResultItemPriceKilo,.TVTourResultItemPriceKilo {
    margin-right: 4px
}

.TVMTourResultItemPriceCurrency,.TVTourResultItemPriceCurrency {
    margin-top: 5px
}

.TVSTourResultItem:nth-child(2n) {
    background-color: #edf2f5
}

.TVSTourResultItem:hover .TVSTourResultItemArrow {
    background: #7fb762
}

.TVSTourResultItemTd {
    text-align: center;
    padding: 5px;
    border: 2px solid #fff;
    vertical-align: middle
}

.TVSTourResultItemTdWhite {
    background-color: #fff
}

.TVSTourResultItemDate,.TVSTourResultItemRegular,.TVSTourResultItemRoomWrapper {
    font-size: 12px;
    color: #5c6672;
    font-weight: 600
}

.TVSTourResultItemMeal,.TVSTourResultItemName,.TVSTourResultItemNights {
    font-size: 12px;
    color: #5c6672
}

.TVSTourResultItemPrice {
    justify-content: flex-end;
    padding: 0 5px
}

.TVSTourResultItemPrice:hover .TVSTourResultItemPriceKilo,.TVSTourResultItemPrice:hover .TVSTourResultItemPriceValue {
    text-decoration: underline
}

.TVSTourResultItemPriceKilo,.TVSTourResultItemPriceValue {
    font-size: 14px
}

.TVSTourResultItemPriceKilo {
    margin-right: 3px
}

.TVSTourResultItemPriceCurrency {
    margin-top: 3px
}

.TVSTourResultItemArrow {
    background: #5c6672;
    color: #fff;
    position: relative;
    border-radius: 15px;
    line-height: 1;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    cursor: pointer;
    margin: auto
}

.TVSTourResultItemArrow:after {
    font-family: TVicons;
    content: "\e906";
    width: 12px
}

.TVMTourResultItem {
    display: flex;
    justify-content: space-between;
    background: #edf2f5;
    border-radius: 6px;
    padding: 10px;
    margin-bottom: 10px
}

.TVMTourResultItem>:not(:last-child) {
    margin-right: 20px
}

.TVMTourResultItemLeft,.TVMTourResultItemRight {
    display: flex;
    flex-direction: column
}

.TVMTourResultItemLeft {
    flex: 0 0 90px
}

.TVMTourResultItemRight {
    flex: 1
}

.TVMTourResultItemDate,.TVMTourResultItemMeal,.TVMTourResultItemName,.TVMTourResultItemNights,.TVMTourResultItemRegular,.TVMTourResultItemRoom {
    color: #5c6672;
    line-height: 18px;
    font-weight: 500
}

.TVMTourResultItemDate.TVFontSize-S,.TVMTourResultItemMeal.TVFontSize-S,.TVMTourResultItemName.TVFontSize-S,.TVMTourResultItemNights.TVFontSize-S,.TVMTourResultItemRegular.TVFontSize-S,.TVMTourResultItemRoom.TVFontSize-S {
    font-size: 12px
}

.TVMTourResultItemDate.TVFontSize-M,.TVMTourResultItemMeal.TVFontSize-M,.TVMTourResultItemName.TVFontSize-M,.TVMTourResultItemNights.TVFontSize-M,.TVMTourResultItemRegular.TVFontSize-M,.TVMTourResultItemRoom.TVFontSize-M {
    font-size: 13px
}

.TVMTourResultItemName,.TVMTourResultItemRegular {
    opacity: .6
}

.TVMTourResultItemTotal {
    display: flex;
    align-items: center;
    position: relative;
    height: 30px;
    margin-bottom: 5px
}

.TVMTourResultItemConfirmation {
    position: absolute;
    left: -20px;
    top: 50%;
    transform: translateY(-50%)
}

.TVMTourResultItemPrice {
    margin-right: auto
}

.TVMTourResultItemCart {
    margin-right: 15px;
    background-color: #fff
}

.TVMTourResultItemArrow,.TVMTourResultItemCart {
    border-radius: 15px;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent
}

.TVMTourResultItemArrow {
    background: #5c6672;
    color: #fff;
    position: relative;
    line-height: 1;
    font-size: 14px;
    background: #fff;
    color: #5c6672;
    user-select: none
}

.TVMTourResultItemArrow:after {
    font-family: TVicons;
    content: "\e906";
    width: 12px
}

.TVMTourResultItemArrow:hover {
    background: #7fb762;
    color: #fff
}

.TVMTourResultItemOperator {
    width: 60px;
    height: 30px;
    margin-bottom: 5px
}

.TVMTourResultItemOperator img {
    border-radius: 4px
}

.TVMTourResultByRoomItem:not(:last-child),.TVTourResultByRoomItem:not(:last-child) {
    margin-bottom: 10px
}

.TVMTourResultByRoomItemContent,.TVTourResultByRoomItemContent {
    display: flex;
    background: #edf2f5;
    border-radius: 6px
}

.TVMTourResultByRoomItemContent.TVClickable,.TVTourResultByRoomItemContent.TVClickable {
    cursor: pointer
}

.TVTourResultByRoomItemContent {
    align-items: center
}

.TVMTourResultByRoomItemContent {
    align-items: flex-start;
    padding: 10px
}

.TVTourResultByRoomItemInfoWrapper {
    padding: 8px;
    display: flex
}

.TVMTourResultByRoomItemImage,.TVTourResultByRoomItemImage {
    border-radius: 4px;
    background-size: cover;
    background-position: 50%;
    background-repeat: no-repeat
}

.TVMTourResultByRoomItemImage.TVClickable,.TVTourResultByRoomItemImage.TVClickable {
    cursor: pointer
}

.TVTourResultByRoomItemImage {
    margin-right: 25px;
    width: 64px;
    min-width: 64px;
    height: 48px
}

.TVMTourResultByRoomItemImage {
    margin-right: 20px;
    width: 90px;
    min-width: 90px;
    height: 90px
}

.TVTourResultByRoomItemNoImage {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #fff
}

.TVTourResultByRoomItemNoImage:before {
    font-family: TVicons;
    content: "\e937";
    color: #5c6672;
    opacity: .2;
    font-size: 28px;
    line-height: 1
}

.TVMTourResultByRoomItemInfo,.TVTourResultByRoomItemNameWrapper {
    display: flex;
    flex-direction: column;
    justify-content: center
}

.TVTourResultByRoomItemNameWrapper>:not(:last-child) {
    margin-bottom: 3px
}

.TVMTourResultByRoomItemInfo {
    flex: 1
}

.TVMTourResultByRoomItemName,.TVTourResultByRoomItemName {
    font-size: 13px;
    font-weight: 600;
    color: #333;
    width: fit-content
}

.TVMTourResultByRoomItemName {
    margin-bottom: 14px
}

.TVMTourResultByRoomItemParams,.TVTourResultByRoomItemParams {
    color: #5c6672;
    font-size: 13px;
    font-weight: 500
}

.TVMTourResultByRoomItemPriceWrapper {
    min-height: 30px;
    display: flex;
    align-items: center;
    white-space: nowrap;
    margin-bottom: 7px
}

.TVTourResultByRoomItemPriceWrapper {
    padding: 10px 16px 10px 10px;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    white-space: nowrap
}

.TVMTourResultByRoomItemPrice,.TVMTourResultByRoomItemPriceKilo,.TVTourResultByRoomItemPrice,.TVTourResultByRoomItemPriceKilo {
    font-size: 16px;
    letter-spacing: -.16px;
    color: #000
}

.TVMTourResultByRoomItemPrice,.TVTourResultByRoomItemPrice {
    font-weight: 700
}

.TVTourResultByRoomItemPriceKilo {
    font-weight: 400
}

.TVMTourResultByRoomItemPriceCurrency,.TVTourResultByRoomItemPriceCurrency {
    font-size: 10px;
    font-weight: 500;
    color: #5c6672;
    letter-spacing: -.1px;
    margin-left: 3px;
    margin-top: 4px
}

.TVMTourResultByRoomItemTours,.TVTourResultByRoomItemTours {
    padding-top: 10px;
    padding-bottom: 5px
}

.TVTourResultByRoomItem.TVStyleTheme1 .TVTourResultByRoomItemPriceWrapper {
    padding: 10px 16px 10px 10px
}

.TVTourResultByRoomItem.TVStyleTheme1 .TVTourResultByRoomItemArrow,.TVTourResultByRoomItem.TVStyleTheme1 .TVTourResultByRoomItemWaiter {
    margin-left: 20px
}

.TVTourResultByRoomItem.TVStyleTheme1 .TVTourResultByRoomItemArrow:before {
    font-family: TVicons;
    content: "\e90a";
    font-size: 20px;
    display: block;
    line-height: 1;
    color: #5c6672;
    transform: rotate(0deg);
    transition: transform .15s linear
}

.TVTourResultByRoomItem.TVStyleTheme1 .TVTourResultByRoomItemArrow.TVActive:before {
    transform: rotate(90deg)
}

.TVMTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive,.TVMTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive,.TVTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive,.TVTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive {
    background: #5c6672
}

.TVMTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive .TVMTourResultByRoomItemName,.TVMTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive .TVMTourResultByRoomItemParams,.TVMTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive .TVMTourResultByRoomItemPrice,.TVMTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive .TVMTourResultByRoomItemPriceCurrency,.TVMTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive .TVTourResultByRoomItemName,.TVMTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive .TVTourResultByRoomItemParams,.TVMTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive .TVTourResultByRoomItemPrice,.TVMTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive .TVTourResultByRoomItemPriceCurrency,.TVMTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive .TVMTourResultByRoomItemName,.TVMTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive .TVMTourResultByRoomItemParams,.TVMTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive .TVMTourResultByRoomItemPrice,.TVMTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive .TVMTourResultByRoomItemPriceCurrency,.TVMTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive .TVTourResultByRoomItemName,.TVMTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive .TVTourResultByRoomItemParams,.TVMTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive .TVTourResultByRoomItemPrice,.TVMTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive .TVTourResultByRoomItemPriceCurrency,.TVTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive .TVMTourResultByRoomItemName,.TVTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive .TVMTourResultByRoomItemParams,.TVTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive .TVMTourResultByRoomItemPrice,.TVTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive .TVMTourResultByRoomItemPriceCurrency,.TVTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive .TVTourResultByRoomItemName,.TVTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive .TVTourResultByRoomItemParams,.TVTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive .TVTourResultByRoomItemPrice,.TVTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemContent.TVActive .TVTourResultByRoomItemPriceCurrency,.TVTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive .TVMTourResultByRoomItemName,.TVTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive .TVMTourResultByRoomItemParams,.TVTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive .TVMTourResultByRoomItemPrice,.TVTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive .TVMTourResultByRoomItemPriceCurrency,.TVTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive .TVTourResultByRoomItemName,.TVTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive .TVTourResultByRoomItemParams,.TVTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive .TVTourResultByRoomItemPrice,.TVTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemContent.TVActive .TVTourResultByRoomItemPriceCurrency {
    color: #fff
}

.TVMTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemPriceWrapper,.TVTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemPriceWrapper {
    padding: 10px
}

.TVMTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemArrow,.TVMTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemWaiter,.TVTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemArrow,.TVTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemWaiter {
    margin-left: auto
}

.TVMTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemArrow,.TVMTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemWaiter,.TVTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemArrow,.TVTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemWaiter {
    margin-left: 10px
}

.TVMTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemArrow,.TVMTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemArrow,.TVTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemArrow,.TVTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemArrow {
    background: #5c6672;
    color: #fff;
    position: relative;
    border-radius: 15px;
    line-height: 1;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: #5c6672;
    width: 30px;
    height: 30px;
    user-select: none;
    transform: rotate(0deg);
    transition: transform .15s linear
}

.TVMTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemArrow:after,.TVMTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemArrow:after,.TVTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemArrow:after,.TVTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemArrow:after {
    font-family: TVicons;
    content: "\e906";
    width: 12px
}

.TVMTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemArrow.TVActive,.TVMTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemArrow.TVActive,.TVTourResultByRoomItem.TVStyleTheme2 .TVMTourResultByRoomItemArrow.TVActive,.TVTourResultByRoomItem.TVStyleTheme2 .TVTourResultByRoomItemArrow.TVActive {
    transform: rotate(90deg)
}

.TVTourResultInfo {
    min-width: 250px
}

.TVTourResultInfoItem {
    display: flex;
    justify-content: space-between;
    align-items: center
}

.TVTourResultInfoItem:not(:last-child) {
    margin-bottom: 10px
}

.TVTourResultInfoItemTitle {
    font-size: 10px;
    text-transform: uppercase
}

.TVTourResultInfoItemPriceWrapper {
    display: flex;
    align-items: flex-end;
    line-height: 1
}

.TVTourResultInfoItemPrice {
    font-size: 13px;
    font-weight: 600
}

.TVTourResultInfoItemCurrency {
    margin-left: 5px;
    font-size: 10px
}

.TVSTourResultsHeadTh,.TVTourResultsHeadTh {
    font-size: 10px;
    font-weight: 500;
    letter-spacing: -.1px;
    color: #5c6672;
    text-transform: uppercase;
    background: none
}

.TVSTourResultsHeadTh {
    text-align: center;
    padding-bottom: 3px
}

.TVTourResultsHeadTh {
    text-align: left;
    padding: 0 5px 5px
}

.TVTourResultsHeadOperator {
    width: 15%
}

.TVTourResultsHeadFlights {
    width: 30%
}

.TVTourResultsHeadDates {
    width: 15%
}

.TVTourResultsHeadRoom {
    width: 30%
}

.TVTourResultsHeadCart {
    width: 6%
}

.TVTourResultsHeadHotel .TVTourResultsHeadOperator,.TVTourResultsHeadPrice {
    width: 20%
}

.TVTourResultsHeadHotel .TVTourResultsHeadDates {
    width: 15%
}

.TVTourResultsHeadHotel .TVTourResultsHeadRoom {
    width: 50%
}

.TVTourResultsHeadHotel .TVTourResultsHeadCart {
    width: 5%
}

.TVTourResultsHeadHotel .TVTourResultsHeadPrice {
    width: 10%
}

.TVSTourResultsHeadOperator {
    width: 15%
}

.TVSTourResultsHeadFlights {
    width: 30%
}

.TVSTourResultsHeadDates {
    width: 10%
}

.TVSTourResultsHeadRoom {
    width: 30%
}

.TVSTourResultsHeadPrice {
    width: 20%
}

.TVSTourResultsHeadArrow,.TVSTourResultsHeadCart {
    width: 10%
}

.TVTourResultsHeadHotel .TVSTourResultsHeadOperator {
    width: 20%
}

.TVTourResultsHeadHotel .TVSTourResultsHeadDates {
    width: 15%
}

.TVTourResultsHeadHotel .TVSTourResultsHeadRoom {
    width: 40%
}

.TVTourResultsHeadHotel .TVSTourResultsHeadPrice {
    width: 15%
}

.TVTourResultsHeadHotel .TVSTourResultsHeadArrow,.TVTourResultsHeadHotel .TVSTourResultsHeadCart {
    width: 5%
}

.TVShareLinkAdaptiveControl {
    margin: 0;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    color: #777
}

.TVShareLinkAdaptiveControl .TVShareLinkAdaptiveTextarea {
    resize: none;
    outline: none;
    width: 100%;
    min-width: 280px;
    height: 110px;
    padding: 10px 20px 10px 10px;
    color: #185584;
    font-size: 10px;
    box-sizing: border-box;
    border: 1px solid #ddd;
    border-radius: 3px;
    line-height: 14px
}

.TVShareLinkAdaptiveHeader {
    padding-bottom: 5px
}

.TVShareLinkAdaptiveButton {
    background-color: #efefef;
    border: 1px solid #ddd;
    border-radius: 20px;
    padding: 10px 0;
    text-align: center;
    width: 100%;
    height: 20px;
    margin-top: 20px;
    color: #777;
    font-size: 13px;
    cursor: pointer
}

.TVShareLinkAdaptiveButton.TVErrorReportBtn {
    background-color: #898888;
    border: 1px solid #898888;
    color: #fff
}

.TVShareLinkAdaptiveButton.TVErrorReportBtn:before {
    content: "!";
    display: inline-block;
    background: #fff;
    color: #888;
    width: 16px;
    height: 16px;
    border-radius: 15px;
    line-height: 17px;
    font-size: 10px;
    margin-right: 5px
}

.TVOperatorFilterControl {
    background-color: #fff;
    border: 1px solid #ddd;
    padding: 5px 20px 20px;
    margin-bottom: 20px
}

.TVOperatorFilterColumns {
    min-height: 95px;
    max-height: 220px;
    display: flex;
    position: relative
}

.TVOperatorFilterColumn {
    width: 33%;
    display: flex;
    flex-direction: column
}

.TVOperatorFilterColumn:first-child {
    width: 40%
}

.TVOperatorFilterColumn:not(:first-child) {
    margin-left: 30px
}

.TVOperatorFilterColumnHeader {
    border-bottom: 1px solid #ddd;
    margin-top: 10px;
    margin-bottom: 10px;
    padding-bottom: 10px;
    color: #333;
    height: 20px;
    line-height: 21px;
    width: 100%
}

.TVOperatorFilterNoTours:before {
    font-family: TVicons;
    content: "\e912";
    color: #913131;
    display: inline;
    vertical-align: top
}

.TVOperatorFilterNoTours:after {
    content: "Туров нет";
    display: inline;
    vertical-align: top;
    padding-left: 4px
}

.TVOperatorFilterNoRespond:before {
    font-family: TVicons;
    content: "\e957";
    display: inline;
    vertical-align: top;
    color: #38a1e7
}

.TVOperatorFilterNoRespond:after {
    content: "Не отвечает";
    display: inline;
    vertical-align: top;
    padding-left: 8px
}

.TVOperatorFilterHideButton {
    border: 1px solid #ddd;
    width: 70px;
    height: 23px;
    padding-top: 3px;
    color: #777;
    font-size: 13px;
    text-align: center;
    position: absolute;
    bottom: -5px;
    right: 0;
    cursor: pointer
}

.TVOperatorFilterHideButton:hover {
    background-color: #efefef;
    color: #333;
    border-color: #ccc
}

.TVOperatorFilterHideButton:after {
    content: "скрыть"
}

.TVOperatorFilterColumnBody {
    flex: 1;
    min-height: 0;
    padding-right: 10px;
    overflow: auto
}

.TVOperatorFilterColumnBody>:not(:last-child) {
    margin-bottom: 5px
}

.TVOperatorFilterInactiveItem {
    color: #999;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.TVOperatorFilterItemControl {
    display: flex;
    align-items: center
}

.TVOperatorFilterItemLeft {
    margin-right: 10px;
    display: flex;
    align-items: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.TVOperatorFilterItemRight {
    white-space: nowrap;
    margin-left: auto;
    display: flex;
    align-items: center
}

.TVOperatorFilterItemRight>:not(:last-child) {
    margin-right: 10px
}

.TVOperatorFilterItemPrice {
    color: #4e93c0;
    text-decoration: underline;
    cursor: pointer
}

.TVOperatorFilterItemPriceValue {
    font-size: 13px
}

.TVOperatorFilterItemPriceCurrency {
    font-size: 10px;
    font-weight: 400
}

.TVResultToolbar {
    margin-bottom: 15px
}

.TVResultToolbarFloat.TVFixed {
    position: fixed;
    top: 0;
    z-index: 999;
    background: #fff;
    margin-left: -15px;
    padding: 15px 15px 0;
    box-shadow: 0 0 10px #333
}

.TVResultToolbarActions {
    margin-bottom: 15px;
    display: flex;
    justify-content: space-between
}

.TVResultToolbarActionLeft,.TVResultToolbarActionRight {
    display: flex;
    align-items: center;
    gap: 8px
}

.TVResultToolbarSort {
    background-color: #fff
}

.TVResultToolbarSort .TVComboBox .TVTextBox {
    cursor: pointer;
    padding: 8px 12px;
    height: 14px;
    display: flex;
    align-items: center;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-weight: 600;
    font-size: 10px;
    color: #5c6672;
    text-transform: uppercase;
    background-color: #fff;
    background-image: none
}

.TVResultToolbarSort .TVComboBox .TVTextBox:before {
    margin-right: 8px;
    font-family: TVicons;
    content: "\e95f";
    font-size: 12px;
    line-height: normal
}

.TVResultToolbarSort .TVComboBox .TVTextBoxContent {
    margin: 0;
    line-height: 1
}

.TVResultToolbarSortPanel .TVListBoxItem {
    text-transform: none
}

.TVResultToolbarButton {
    cursor: pointer;
    padding: 8px 12px;
    height: 14px;
    display: flex;
    align-items: center;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-weight: 600;
    font-size: 10px;
    color: #5c6672;
    text-transform: uppercase;
    background-color: #fff
}

.TVResultToolbarButton:before {
    line-height: normal
}

.TVResultToolbarButton:after {
    margin-left: 8px
}

.TVResultToolbarShareLinkIcon {
    width: 12px;
    height: auto
}

.TVResultToolbarShowTours {
    margin: 0
}

.TVResultToolbarShowTours:before {
    font-family: TVicons;
    content: "\e95f";
    font-size: 12px
}

.TVResultToolbarShowTours.TVDisabled {
    opacity: .5;
    pointer-events: none
}

.TVResultToolbarUp {
    padding: 7px 4px 9px;
    background: #ddd
}

.TVResultToolbarUp:before {
    font-family: TVicons;
    content: "\e904";
    font-size: 21px;
    color: #fff
}

.TVResultToolbarProgress .TVProgressBar {
    width: 204px;
    height: 24px;
    padding: 3px;
    border: 1px solid #ddd;
    border-radius: 4px
}

.TVResultToolbarProgress .TVProgressLine {
    background-color: #38a1e7;
    width: 20%;
    min-width: 20%;
    height: 24px;
    text-align: center;
    color: #fff;
    font-weight: 600;
    line-height: 25px
}

.TVResultToolbarTrack {
    border: 1px solid #4cae4c;
    background-color: #5cb85c;
    color: #fff
}

.TVResultToolbarTrack:before {
    font-family: TVicons;
    content: "\e94c";
    font-size: 25px
}

.TVResultToolbarTrack:after {
    content: "Следить за ценой"
}

.TVResultToolbarTrack.TVDisabled {
    opacity: .5;
    pointer-events: none
}

.TVResultToolbarOperators:before {
    font-family: TVicons;
    content: "\f0b0";
    color: #5c6672;
    font-size: 12px;
    margin-right: 5px
}

.TVResultToolbarCartPreviewWrapper {
    cursor: pointer;
    height: 30px;
    display: flex;
    align-items: center;
    color: #5c6672;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 4px
}

.TVNightsPanel.tv_drop_panel:before {
    content: "Ночей от:"
}

.TVNightsPanel.TVMobilePanel .TVMobilePanelHeader .TVMobilePanelCaption:after {
    content: "Выберите количество ночей"
}

.TVNightsPanel .TVRangeCellInfo.TVDeclensionNominative:after {
    content: " ночь"
}

.TVNightsPanel .TVRangeCellInfo.TVDeclensionGenitiveSingle:after {
    content: " ночи"
}

.TVNightsPanel .TVRangeCellInfo.TVDeclensionGenitivePlural:after {
    content: " ночей"
}

.TVDaysPanel.tv_drop_panel:before {
    content: "Дней от:"
}

.TVDaysPanel.TVMobilePanel .TVMobilePanelHeader .TVMobilePanelCaption:after {
    content: "Выберите количество дней"
}

.TVDaysPanel .TVRangeCellInfo.TVDeclensionNominative:after {
    content: " день"
}

.TVDaysPanel .TVRangeCellInfo.TVDeclensionGenitiveSingle:after {
    content: " дня"
}

.TVDaysPanel .TVRangeCellInfo.TVDeclensionGenitivePlural:after {
    content: " дней"
}

.TVNewSearchInput {
    width: 100%
}

.TVNewSearchInput input {
    width: 100%;
    padding: 0;
    border: 0;
    background-color: inherit;
    font-size: inherit;
    text-overflow: ellipsis;
    font-weight: 700;
    color: #040404
}

.TVNewSearchInput input::placeholder {
    font-weight: 400
}

.TVNewSearchInputEmpty {
    padding: 2px 10px;
    font-size: 14px;
    color: #777
}

.TVSearchInputAction {
    margin-left: auto;
    display: flex;
    align-items: center
}

.TVSearchInputActionArrow {
    transform: rotate(0deg)
}

.TVSearchInputActionArrow:before {
    font-family: TVicons;
    content: "\e95e";
    display: block;
    font-size: 26px;
    line-height: 1;
    color: #777;
    cursor: pointer
}

.TVSearchInputActionArrow.TVArrowUp {
    transform: rotate(180deg)
}

.TVSearchInputActionContent {
    font-size: 10px;
    white-space: nowrap;
    color: #185584;
    text-transform: uppercase;
    text-decoration: underline;
    cursor: pointer
}

.TVSearchInputActionReset {
    margin-left: 10px
}

.TVSearchInputActionReset:before {
    font-family: TVicons;
    content: "\e912";
    font-size: 18px;
    color: #c00;
    cursor: pointer
}

.TVSearchInputResultItem {
    height: 50px;
    width: 100%;
    box-sizing: border-box;
    display: flex;
    justify-content: space-between
}

.TVSearchInputResultItemIcon {
    width: 50px;
    min-width: 50px;
    height: 50px;
    border-radius: 5px;
    margin-right: 15px;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #eef2f8
}

.TVSearchInputResultItemInfo {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center
}

.TVSearchInputResultItemTitle {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: -.39px;
    color: #040404
}

.TVSearchInputResultItemDescription {
    font-size: 12px;
    color: #5c6672
}

.TVSearchInputResultCountryFlag {
    width: 20px;
    height: 20px;
    border-radius: 3px;
    box-sizing: border-box;
    display: block;
    background-size: cover
}

.TVSearchInputResultIcon {
    color: #5c6672;
    width: 20px;
    height: 20px
}

.TVSearchInputResultIcon:before {
    font-size: 20px;
    line-height: 20px
}

.TVSearchInputResultHotelIcon:before {
    font-family: TVicons;
    content: "\e937"
}

.TVSearchInputResultResortIcon:before {
    font-family: TVicons;
    content: "\e953"
}

.TVSearchInputResultHotelListIcon:before {
    font-family: TVicons;
    content: "\e91f"
}

.TVAdaptiveHotelsSearch .TVAdaptiveHotelsContent.TVNotSelected:before {
    display: none
}

.TVAdaptiveHotelsSearch.TVStyleTheme1 {
    box-sizing: border-box;
    height: 60px;
    padding: 10px 15px;
    display: flex;
    align-items: center
}

.TVAdaptiveHotelsSearch.TVStyleTheme1 .TVAdaptiveHotelsSearchIcon {
    margin-right: 10px;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVAdaptiveHotelsSearch.TVStyleTheme1 .TVAdaptiveHotelsSearchIcon svg {
    fill: #027ad0
}

.TVAdaptiveHotelsSearch.TVStyleTheme1 .TVAdaptiveHotelsContent {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #333;
    font-size: 16px;
    font-weight: 600
}

.TVAdaptiveHotelsSearch.TVStyleTheme1 .TVAdaptiveHotelsContent.TVNotSelected {
    font-size: 16px;
    font-weight: 400;
    color: #5c6672
}

.TVAdaptiveHotelsSearchPanel .TVListBoxItem {
    text-transform: none
}

.TVAdaptiveHotelsSearchPanel .TVListBoxItem:not(:first-child) {
    margin-top: 10px
}

.TVTooltipPage .TVAdaptiveHotelsSearchPanel {
    box-sizing: border-box;
    height: 100%;
    padding: 20px 10px 20px 20px;
    overflow-y: scroll
}

.TVTooltipPage .TVAdaptiveHotelsSearchPanel .TVStyleScroll {
    padding-right: 10px
}

.TVRadioGroupSelectTooltipContent {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 20px 0
}

.TVTooltipRadioGroup {
    height: 100%;
    overflow: auto
}

.TVRadioGroupSelectTooltip .TVRadioGroupSelectTooltipTitle {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    text-transform: uppercase
}

.TVRadioGroupSelectTooltip .TVTooltipRadioGroup {
    min-height: 100px;
    overflow: auto
}

.TVRadioGroupSelectTooltipPage .TVRadioGroupSelectTooltipTitle {
    font-size: 18px;
    font-weight: 700;
    color: #2b3f5a
}

.TVRadioGroupSelectTooltipPage .TVRadioGroupSelectTooltipContent {
    flex: 1;
    min-height: 0;
    padding: 20px 10px 20px 20px
}

.TVRadioGroupSelectTooltipPage .TVStyleScroll {
    padding-right: 10px
}

.TVHotelServicesControl.TVStyleTheme1,.TVHotelServicesControl.TVStyleTheme2 {
    flex: 1;
    min-height: 0;
    height: 100%
}

.TVHotelServicesControl.TVStyleTheme1 .TVHotelServiseListWithTabs,.TVHotelServicesControl.TVStyleTheme2 .TVHotelServiseListWithTabs {
    height: 100%;
    display: flex;
    flex-direction: column
}

.TVHotelServicesControl.TVStyleTheme1 .TVTabListControl {
    box-sizing: border-box;
    height: 32px;
    margin-bottom: 10px;
    border-bottom: 1px solid #ddd
}

.TVHotelServicesControl.TVStyleTheme2 .TVTabListControl {
    box-sizing: border-box;
    height: 30px;
    margin-bottom: 20px
}

.TVHotelServicesSelectTooltipContent {
    box-sizing: border-box;
    flex: 1;
    min-height: 0;
    padding: 20px 20px 0;
    display: flex;
    flex-direction: column
}

.TVHotelServicesSelectTooltip {
    display: flex;
    flex-direction: column;
    width: 320px;
    height: 500px
}

.TVHotelServicesSelectTooltip .TVHotelServicesSelectTooltipTitle {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    text-transform: uppercase;
    margin-bottom: 5px
}

.TVHotelServicesSelectTooltip .TVHotelServicesSelectTooltipSubmit {
    margin: 20px auto
}

.TVHotelServicesSelectActionSheet .TVHotelServicesSelectTooltipTitle,.TVHotelServicesSelectTooltipPage .TVHotelServicesSelectTooltipTitle {
    font-size: 18px;
    font-weight: 700;
    color: #2b3f5a;
    margin-bottom: 30px
}

.TVHotelServicesSelectActionSheet .TVHotelServicesSelectTooltipContent,.TVHotelServicesSelectTooltipPage .TVHotelServicesSelectTooltipContent {
    padding: 20px 10px 0 20px
}

.TVHotelServicesSelectActionSheet .TVHotelServicesSelectTooltipSubmit,.TVHotelServicesSelectTooltipPage .TVHotelServicesSelectTooltipSubmit {
    margin: 20px auto
}

.TVHotelServicesSelectActionSheet .TVStyleScroll,.TVHotelServicesSelectTooltipPage .TVStyleScroll {
    padding-right: 10px
}

.TVTooltipBudget {
    height: 100%;
    overflow: auto
}

.TVBudgetSelectTooltip .TVBudgetSelectTooltipTitle {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    text-transform: uppercase
}

.TVBudgetSelectTooltip .TVBudgetSelectTooltipContent {
    padding: 20px 20px 0
}

.TVBudgetSelectTooltip .TVBudgetSelectTooltipSubmit {
    display: flex;
    justify-content: center;
    margin: 20px auto
}

.TVBudgetSelectTooltipPage .TVBudgetSelectTooltipTitle,.TVBudgetSelectTooltipSheet .TVBudgetSelectTooltipTitle {
    font-size: 18px;
    font-weight: 700;
    color: #2b3f5a;
    margin-bottom: 30px
}

.TVBudgetSelectTooltipPage .TVBudgetSelectTooltipContent,.TVBudgetSelectTooltipSheet .TVBudgetSelectTooltipContent {
    box-sizing: border-box;
    padding: 20px 10px 0 20px;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column
}

.TVBudgetSelectTooltipPage .TVBudgetSelectTooltipSubmit,.TVBudgetSelectTooltipSheet .TVBudgetSelectTooltipSubmit {
    margin: 20px auto
}

.TVBudgetSelectTooltipPage .TVStyleScroll,.TVBudgetSelectTooltipSheet .TVStyleScroll {
    padding-right: 10px
}

.TVTreeResorts {
    box-sizing: border-box;
    height: 100%
}

.TVTreeResorts .TVTreeResortsBody {
    width: 100%;
    height: 100%;
    overflow: hidden;
    overflow-y: auto;
    display: flex;
    flex-direction: column
}

.TVTreeResorts .TVTreeResortsBody .TVCheckBox:hover {
    color: #55addc
}

.TVTreeResorts .TVTreeListCheck {
    overflow-x: visible
}

.TVTreeResorts .TreeListItem {
    margin-right: 0
}

.TVTreeResorts .TVTreeContainer .TreeListItem:after {
    content: ".....";
    top: 0;
    left: 3px;
    padding-bottom: 8px;
    height: 17px
}

.TVTreeResorts .TVTreeContainer .TVTreeIsLast:after {
    content: ".....";
    height: 6px
}

.TVTreeResorts .TVTreeContainer .TVCheckBox {
    width: calc(100% - 3px)
}

.TVTreeResorts .TVTLSelected .TVTreeContainer .TVCheckBox:before {
    color: #b7b7b7
}

.TVTreeResorts .TVCheckBox {
    width: calc(100% - 22px);
    padding: 2px 0;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    min-height: 18px;
    color: #333;
    display: flex;
    align-items: center;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis
}

.TVTreeResorts .TVCheckBox:before {
    font-size: 10px;
    line-height: 10px;
    height: 10px
}

.TVTreeResorts .TVTreeListNav {
    width: 16px;
    height: 16px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: none;
    top: 5px;
    padding: 0;
    right: 10px;
    color: #ddd;
    font-size: 16px
}

.TVTreeResorts .TVTreeListNav:before {
    font-family: TVicons;
    content: "\e913"
}

.TVTreeResorts .TVTreeListNav.TVTreeClose {
    width: 16px;
    height: 16px;
    top: 5px;
    padding: 0;
    right: 10px
}

.TVTreeResorts .TVTreeListNav.TVTreeClose:before {
    font-family: TVicons;
    content: "\e914"
}

.TVTreeResorts.TVStyleTheme2 .TVCheckBox {
    width: 100%;
    padding: 15px 0;
    border-bottom: 1px solid #ddd;
    font-size: 14px
}

.TVTreeResorts.TVStyleTheme2 .TVCheckBox:hover {
    color: #333
}

.TVTreeResorts.TVStyleTheme2 .TVTreeContainer .TreeListItem:after {
    display: none
}

.TVTreeResorts.TVStyleTheme2 .TVTreeListNav,.TVTreeResorts.TVStyleTheme2 .TVTreeListNav.TVTreeClose {
    width: 49px;
    height: 49px;
    top: 0;
    right: 0;
    font-size: 20px
}

.TVTreeResorts.TVStyleTheme2 .TVTreeResorts {
    padding: 20px 20px 0
}

.TVTreeResorts.TVStyleTheme2 .TVTreeResorts .TVTreeResortsBody {
    padding-right: 10px
}

.TVResortListWrapper {
    height: 174px;
    padding: 10px;
    box-sizing: border-box;
    background: #fff
}

.TVResortListWrapper.TVDisabled {
    opacity: .5;
    pointer-events: none
}

.TVResortListSelectWaiter {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%
}

.TVResortsSelectTooltipContent {
    box-sizing: border-box;
    flex: 1;
    min-height: 0;
    padding: 20px 20px 0;
    display: flex;
    flex-direction: column
}

.TVResortsSelectActionSheet .TVResortTreeWithTabs,.TVResortsSelectTooltip .TVResortTreeWithTabs,.TVResortsSelectTooltipPage .TVResortTreeWithTabs {
    display: flex;
    flex-direction: column;
    height: 100%
}

.TVResortsSelectActionSheet .TVTabListControl,.TVResortsSelectTooltip .TVTabListControl,.TVResortsSelectTooltipPage .TVTabListControl {
    box-sizing: border-box;
    height: 30px;
    margin-bottom: 20px
}

.TVResortsSelectActionSheet .TVResortTree,.TVResortsSelectTooltip .TVResortTree,.TVResortsSelectTooltipPage .TVResortTree {
    flex: 1;
    min-height: 0
}

.TVResortsSelectActionSheet .TVResortsSelectTooltipSubmit,.TVResortsSelectTooltip .TVResortsSelectTooltipSubmit,.TVResortsSelectTooltipPage .TVResortsSelectTooltipSubmit {
    margin: 20px auto
}

.TVResortsSelectActionSheet .TVResortsSelectTooltipContent,.TVResortsSelectTooltipPage .TVResortsSelectTooltipContent {
    padding: 20px 10px 0 20px
}

.TVResortsSelectActionSheet .TVStyleScroll,.TVResortsSelectTooltipPage .TVStyleScroll {
    padding-right: 10px
}

.TVSelectResortControl {
    user-select: none
}

.TVSelectResortControl.TVMobilePanel .TVMobilePanelHeader .TVMobilePanelCaption:after {
    content: "Выберите курорт"
}

.TVSelectResortControl .TVTreeResorts {
    padding: 20px 10px 0 20px
}

.tv_drop_panel.TVSelectResortControl .tv_content {
    margin: 0
}

.tv_drop_panel.TVSelectResortControl .tv_content .TVTreeResorts {
    height: 400px;
    width: 300px
}

.tv_drop_panel.TVSelectResortControl .tv_content .TVNotSelected:before {
    content: "Любой"
}

.TVDetailsPanel {
    display: flex
}

.TVDetailsTitle {
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    color: #333
}

.TVDetailsRegions {
    box-sizing: border-box;
    width: 35%;
    padding: 20px 10px 20px 20px;
    display: flex;
    flex-direction: column;
    border-right: 1px solid #ddd;
    background: #f5f5f5
}

.TVDetailsRegions .TVResortTree {
    flex: 1;
    min-height: 0;
    margin-top: 18px;
    margin-bottom: 5px
}

.TVDetailsRegions .TVResortTree .TVCheckboxTreeItemArrow {
    background-color: #fff
}

.TVDetailsRegions .TVWaiterBG {
    background: #f5f5f5
}

.TVDetailsRegions .TVStyleScroll::-webkit-scrollbar-track {
    background-color: #fff
}

.TVDetailsAccommodationHotel {
    width: 65%;
    display: flex;
    flex-direction: column
}

.TVDetailsAccommodationHotel .TVSubmitButton {
    font-weight: 300
}

.TVDetailsAccommodationHotel .TVSubmitButton:after {
    content: "Выбрать"
}

.TVDetailsAccommodationHotel .TVAccomodationButton {
    position: absolute;
    right: 0;
    top: 0;
    margin: 20px;
    line-height: 19px;
    color: #185584;
    font-size: 10px;
    text-transform: uppercase;
    cursor: pointer;
    display: flex
}

.TVDetailsAccommodationHotel .TVAccomodationButton:after {
    font-family: TVicons;
    content: "\e900";
    height: 19px;
    margin-left: 5px
}

.TVDetailsAccommodationHotel .TVAccomodationButton.TVArrowUp:after {
    transform: rotate(180deg)
}

.TVDetailsAccommodationBlock {
    box-sizing: border-box;
    max-height: 0;
    padding: 0 20px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: max-height .2s linear
}

.TVDetailsAccommodations {
    flex: 1;
    min-height: 0;
    margin-top: 18px
}

.TVDetailsAccommodationList {
    height: 100%;
    overflow: auto
}

.TVDetailsAccommodationList .TVCheckBox {
    min-height: 20px
}

.TVDetailsAccommodationTitle {
    margin-top: 20px
}

.TVDetailsHotelBlock {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding: 20px 20px 0
}

.TVDetailsHotels {
    flex: 1;
    min-height: 0;
    margin-top: 5px
}

.TVDetailsSelectTooltip .TVDetailsPanel {
    height: 100%
}

.TVStarsSelect {
    --title-color: "";
    display: flex;
    align-items: center;
    gap: 2px
}

.TVStarsSelect .TVStarsSelectTitle {
    color: var(--title-color)
}

.TVStarsSelect.TVDisabled {
    opacity: .5;
    pointer-events: none
}

.TVStarsSelect.TVActiveColorOrange550 {
    --active-star-color: #ffa300
}

.TVStarsSelect.TVActiveColorRed580 {
    --active-star-color: #ff6856
}

.TVStarsSelect.TVColorGray675 {
    --star-color: #acacac
}

.TVStarsSelect.TVColorGray900 {
    --star-color: #dde4ed
}

.TVStarsSelectItem {
    cursor: pointer
}

.TVStarsSelectItem:before {
    font-family: TVicons;
    content: "\e90c";
    color: var(--star-color)
}

.TVStarsSelectItem.TVSize-S {
    font-size: 18px
}

.TVStarsSelectItem.TVSize-M {
    font-size: 19px
}

.TVStarsSelectItem.TVSize-L {
    font-size: 20px
}

.TVStarsSelectItem.TVSize-XL {
    font-size: 21px
}

.TVStarsSelectItem.TVSize-XXL {
    font-size: 22px
}

.TVStarsSelectItem.TVSize-XXXL {
    font-size: 23px
}

.TVStarsSelectItem.TVActive:before {
    color: var(--active-star-color)
}

.TVStarsSelect.TVStyleTheme1,.TVStarsSelect.TVStyleTheme2 {
    height: 38px;
    padding: 0 10px;
    background: #fff
}

.TVStarsSelect.TVStyleTheme1 .TVStarsSelectItem,.TVStarsSelect.TVStyleTheme2 .TVStarsSelectItem {
    line-height: 1
}

.TVStarsSelect.TVStyleTheme1 .TVStarsSelectTitle {
    margin-right: auto;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase
}

.TVStarsSelect.TVStyleTheme2 .TVStarsSelectTitle {
    margin-right: auto;
    font-size: 13px
}

.TVStarsSelect.TVStyleTheme3 {
    height: 50px;
    box-sizing: border-box;
    padding: 0 15px 0 20px;
    gap: 5px;
    background: #fff
}

.TVStarsSelect.TVStyleTheme3 .TVStarsSelectTitle {
    margin-right: auto;
    font-size: 13px;
    font-weight: 500
}

.TVStarsSelect.TVStyleTheme4 {
    background: none
}

.TVDepartureSelectTooltipPage .TVDepartureSelectTooltipContent,.TVDepartureSelectTooltipSheet .TVDepartureSelectTooltipContent {
    box-sizing: border-box;
    flex: 1;
    min-height: 0;
    padding: 20px 10px 10px 20px;
    display: flex;
    flex-direction: column
}

.TVDepartureSelectTooltipPage .TVCityListWithTabs,.TVDepartureSelectTooltipSheet .TVCityListWithTabs {
    display: flex;
    flex-direction: column;
    height: 100%
}

.TVDepartureSelectTooltipPage .TVStyleScroll,.TVDepartureSelectTooltipSheet .TVStyleScroll {
    padding-right: 10px
}

.TVCountryAirportList {
    height: 100%
}

.TVCountryAirportList .TVCountryFlags {
    margin-right: 10px;
    border-radius: 2px
}

.TVCountryAirportList .TVFlyIcon {
    margin-right: 10px;
    font-size: 16px;
    color: #c4cfd7
}

.TVCountryAirportList .TVCountryAirportListSeparatorTheme1,.TVCountryAirportList .TVCountryAirportListSeparatorTheme2 {
    color: #333;
    font-weight: 700;
    padding: 5px 0
}

.TVCountryAirportList .TVCountryAirportListSeparatorTheme1 {
    font-size: 13px
}

.TVCountryAirportList .TVCountryAirportListSeparatorTheme2 {
    font-size: 14px
}

.TVCountryAirportListView:not(:last-child) {
    margin-bottom: 20px
}

.TVCountryAirportListItem .TVComplexListItemContentWrapper {
    padding-left: 15px
}

.TVCountryAirportListPortItem {
    display: flex;
    align-items: center
}

.TVCountryAirportListWithTabs {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column
}

.TVCountryAirportListWithTabs .TVTabListControl {
    box-sizing: border-box;
    height: 30px;
    min-height: 30px;
    margin-bottom: 20px
}

.TVCountryAirportListWithTabs .TVCountryAirportList {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: auto
}

.TVCountryCheckboxListWithFilters {
    height: 100%
}

.TVCountryCheckboxListWithFilters .TVCountryFlags {
    margin-right: 10px
}

.TVCountryCheckboxListWithFilters .TVCountryCheckboxListSeparatorTheme1,.TVCountryCheckboxListWithFilters .TVCountryCheckboxListSeparatorTheme2 {
    color: #333;
    font-weight: 700;
    padding: 5px 0
}

.TVCountryCheckboxListWithFilters .TVCountryCheckboxListSeparatorTheme1 {
    font-size: 13px
}

.TVCountryCheckboxListWithFilters .TVCountryCheckboxListSeparatorTheme2 {
    font-size: 14px
}

.TVCountryCheckboxList:not(:last-child) {
    margin-bottom: 20px
}

.TVCountryCheckboxListWithTabs {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column
}

.TVCountryCheckboxListWithTabs .TVTabListControl {
    box-sizing: border-box;
    height: 30px;
    min-height: 30px;
    margin-bottom: 20px
}

.TVCountryCheckboxListWithTabs .TVCountryCheckboxListWithFilters {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: auto
}

.TVCountryCheckboxListWithTabs .TVCountryFlags {
    align-self: center;
    vertical-align: middle;
    border-radius: 2px
}

.TVSelectCountryListControl {
    height: 100%;
    background-color: #fff
}

.TVCountrySelect .TVCountryFlags {
    margin-right: 10px
}

.TVCountrySelectContentCountry {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    color: #5c6672
}

.TVCountrySelectTooltipHeader {
    padding: 20px;
    display: flex;
    align-items: center;
    background-color: #edf2f5
}

.TVCountrySelectTooltipClose {
    margin-left: auto;
    color: #777;
    cursor: pointer
}

.TVCountrySelectTooltipClose:before {
    font-family: TVicons;
    content: "\e916";
    padding: 4px;
    display: block;
    line-height: 10px;
    border: 2px solid;
    border-radius: 20px;
    font-size: 10px
}

.TVCountrySelectTooltipContent {
    box-sizing: border-box
}

.TVCountrySelectTooltipContent,.TVCountrySelectTooltipContent .TVSelectCountryListControl {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column
}

.TVCountrySelectTooltipRegular {
    background: #edf2f5;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVCountrySelectTooltipRegular .TVCheckBox {
    padding-left: 0;
    color: #5c6672;
    font-size: 13px
}

.TVCountrySelectTooltipRegular.TVChecked:before {
    background-color: #5c6672;
    border-color: #5c6672
}

.TVCountrySelectTooltip {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    max-height: 512px;
    color: #5c6672
}

.TVCountrySelectTooltip .TVCountrySelectTooltipTitle {
    font-size: 13px;
    color: #5c6672
}

.TVCountrySelectTooltip .TVOrderWarningMessage {
    margin: 20px 20px 0;
    padding: 10px;
    font-size: 13px;
    text-align: center
}

.TVCountrySelectTooltip .TVCountrySelectTooltipContent {
    padding: 20px 10px 20px 20px
}

.TVCountrySelectTooltip .TVCountrySelectTooltipSubmit {
    margin: 0 auto 20px
}

.TVCountrySelectTooltip .TVStyleScroll {
    padding-right: 10px
}

.TVCountrySelectTooltipPage .TVOrderWarningMessage,.TVCountrySelectTooltipSheet .TVOrderWarningMessage {
    margin: 20px 20px 0;
    padding: 10px;
    text-align: center
}

.TVCountrySelectTooltipPage .TVCountrySelectTooltipContent,.TVCountrySelectTooltipSheet .TVCountrySelectTooltipContent {
    padding: 20px 10px 5px 20px
}

.TVCountrySelectTooltipPage .TVCountrySelectTooltipSubmit,.TVCountrySelectTooltipSheet .TVCountrySelectTooltipSubmit {
    margin: 0 auto 20px
}

.TVCountrySelectTooltipPage .TVCountrySelectTooltipRegular,.TVCountrySelectTooltipSheet .TVCountrySelectTooltipRegular {
    padding: 0 15px
}

.TVCountrySelectTooltipPage .TVCountrySelectTooltipRegular .TVCheckBox,.TVCountrySelectTooltipSheet .TVCountrySelectTooltipRegular .TVCheckBox {
    padding: 20px 0
}

.TVCountrySelectTooltipPage .TVStyleScroll,.TVCountrySelectTooltipSheet .TVStyleScroll {
    padding-right: 10px
}

.TVFlyDatesSelect.TVFlyDatesSelectFullHeight {
    height: 100%
}

.TVFlyDatesSelectTooltip .TVFlyDatesSelectTooltipContent {
    padding: 20px
}

.TVFlyDatesSelectTooltip .TVCheckBox {
    display: block;
    box-sizing: border-box;
    font-size: 13px;
    color: #5c6672
}

.TVFlyDatesSelectTooltip .TVFlyDatesSelectTooltipSubmit {
    margin: 20px auto
}

.TVFlyDatesSelectTooltip .TVFlyDatesSelectTooltipFooter {
    display: flex;
    justify-content: space-between;
    margin: 0 24px 24px
}

.TVFlyDatesSelectTooltip .TVFlyDatesSelectTooltipRegular {
    display: flex;
    align-items: flex-end
}

.TVFlyDatesSelectTooltipPage .TVFlyDatesSelectTooltipContent,.TVFlyDatesSelectTooltipSheet .TVFlyDatesSelectTooltipContent {
    flex: 1;
    min-height: 0;
    height: 100%
}

.TVFlyDatesSelectTooltipPage .TVFlyDatesSelectTooltipContent .TVCheckBox,.TVFlyDatesSelectTooltipSheet .TVFlyDatesSelectTooltipContent .TVCheckBox {
    margin-top: 30px;
    background-color: #efefef
}

.TVFlyDatesSelectTooltipPage .TVFlyDatesSelectTooltipRegular,.TVFlyDatesSelectTooltipSheet .TVFlyDatesSelectTooltipRegular {
    background: #edf2f5;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 15px
}

.TVFlyDatesSelectTooltipPage .TVFlyDatesSelectTooltipRegular .TVCheckBox,.TVFlyDatesSelectTooltipSheet .TVFlyDatesSelectTooltipRegular .TVCheckBox {
    padding-left: 0;
    color: #5c6672;
    font-size: 13px;
    padding: 20px 0
}

.TVFlyDatesSelectTooltipPage .TVFlyDatesSelectTooltipNextFlight,.TVFlyDatesSelectTooltipPage .TVFlyDatesSelectTooltipSubmit,.TVFlyDatesSelectTooltipSheet .TVFlyDatesSelectTooltipNextFlight,.TVFlyDatesSelectTooltipSheet .TVFlyDatesSelectTooltipSubmit {
    margin: 20px auto
}

.TVTripDurationSelectTooltip .TVTripDurationSelectTooltipContent {
    padding: 20px
}

.TVTripDurationSelectTooltip .TVTripDurationSelectTooltipSubmit {
    margin: 20px auto
}

.TVTripDurationSelectTooltipPage .TVTripDurationSelectTooltipContent,.TVTripDurationSelectTooltipSheet .TVTripDurationSelectTooltipContent {
    flex: 1;
    min-height: 0
}

.TVTripDurationSelectTooltipPage .TVTripDurationSelectTooltipSubmit,.TVTripDurationSelectTooltipSheet .TVTripDurationSelectTooltipSubmit {
    margin: 20px auto
}

.TVSelectChildAge {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    background: #fff;
    box-sizing: content-box
}

.TVSelectChildAgeHeader {
    width: 100%;
    display: flex;
    justify-content: center;
    color: #5c6672;
    font-size: 14px;
    line-height: 19px;
    font-weight: 400
}

.TVSelectChildAgeHeader:after {
    content: "Выберите возраст ребенка"
}

.TVSelectChildAgeTable {
    width: 100%;
    display: flex;
    background: #fff
}

.TVSelectChildAgeColumn {
    width: 33.3333333333%;
    display: flex;
    flex-direction: column;
    margin-top: 20px
}

.TVSelectChildAgeColumn:not(:first-child) {
    margin-left: 11px
}

.TVSelectChildAgeItem {
    cursor: pointer;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 30px;
    font-weight: 400;
    font-size: 14px;
    line-height: 19px;
    color: #333;
    background: #edf2f5
}

.TVSelectChildAgeItem:not(:first-child) {
    margin-top: 10px
}

.TVSelectChildAgeItem.TVSelectChildAgeSelected {
    background: #d8dde2
}

.TVSelectChildAgeValue {
    font-weight: 700
}

.TVSelectChildAgeUnit {
    margin-left: 3px
}

.TVTouristChild {
    flex: 1;
    margin-right: 60px;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 700;
    line-height: 19px;
    font-size: 14px;
    text-align: center;
    text-anchor: middle;
    cursor: pointer
}

.TVTouristChild:before {
    content: "Ребенок";
    font-weight: 400;
    margin-right: 3px
}

.TVTouristChildItem.TVTouristChildSelected {
    background: #d8dde2
}

.TVTouristsOptions {
    font-family: var(--tv-font-theme2);
    color: #333;
    width: 100%
}

.TVTouristDynamic,.TVTouristStatic {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center
}

.TVTouristsOptions>:not(:last-child) {
    margin-bottom: 20px
}

.TVTouristsOptions .TVSelectChildAge {
    margin-top: 30px
}

.TVTouristElement {
    max-width: 340px;
    width: 100%;
    box-sizing: border-box;
    height: 40px;
    display: flex;
    align-items: center;
    border-radius: 30px;
    color: #333;
    background: #edf2f5
}

.TVTouristElement:not(:last-child) {
    margin-bottom: 20px
}

.TVTouristElement.TVTouristButton {
    justify-content: center;
    cursor: pointer
}

.TVTouristElement.TVTouristButton:after {
    content: "Добавить ребенка";
    line-height: 19px;
    font-size: 14px;
    color: #5c6672
}

.TVTouristCount {
    flex: 1;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 700;
    line-height: 19px;
    font-size: 14px;
    text-align: center;
    text-anchor: middle
}

.TVTouristCount.TVTouristAll:after,.TVTouristCount.TVTouristOne:after {
    font-weight: 400
}

.TVTouristCount.TVTouristOne:after {
    content: "взрослый"
}

.TVTouristCount.TVTouristAll:after {
    content: "взрослых"
}

.TVTouristAction {
    width: 60px;
    height: 100%;
    display: flex;
    justify-content: center;
    background-color: #5c6672;
    color: #fff;
    cursor: pointer;
    border-radius: 30px
}

.TVTouristAction.TVTouristActionPlus {
    align-items: center
}

.TVTouristContentMinus:after {
    content: "_";
    line-height: 16px;
    font-size: 24px
}

.TVTouristContentPlus:after {
    content: "+";
    line-height: 24px;
    font-size: 24px
}

.TVTouristsSelectTooltip {
    width: 320px
}

.TVTouristsSelectTooltip .TVTouristsSelectTooltipTitle {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    text-transform: uppercase;
    margin-bottom: 15px
}

.TVTouristsSelectTooltip .TVTouristsSelectTooltipContent {
    margin: 20px
}

.TVTouristsSelectTooltip .TVTouristsSelectTooltipSubmit {
    display: flex;
    justify-content: center;
    margin: 20px auto
}

.TVTouristsSelectTooltip .TVTouristsSelectTooltipRemember {
    background: "";
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 20px;
    padding: 10px 15px
}

.TVTouristsSelectTooltip .TVTouristsSelectTooltipRemember .TVCheckBox {
    padding-left: 0;
    color: #5c6672;
    font-size: 13px
}

.TVTouristsSelectTooltipPage .TVTouristsSelectTooltipTitle,.TVTouristsSelectTooltipSheet .TVTouristsSelectTooltipTitle {
    font-size: 18px;
    font-weight: 700;
    color: #2b3f5a;
    margin-bottom: 30px
}

.TVTouristsSelectTooltipPage .TVTouristsSelectTooltipContent,.TVTouristsSelectTooltipSheet .TVTouristsSelectTooltipContent {
    box-sizing: border-box;
    padding: 20px;
    flex: 1;
    min-height: 0;
    height: 100%
}

.TVTouristsSelectTooltipPage .TVTouristsOptions,.TVTouristsSelectTooltipSheet .TVTouristsOptions {
    height: 100%;
    overflow-y: auto
}

.TVTouristsSelectTooltipPage .TVTouristsSelectTooltipSubmit,.TVTouristsSelectTooltipSheet .TVTouristsSelectTooltipSubmit {
    margin: 20px auto
}

.TVTouristsSelectTooltipPage .TVTouristsSelectTooltipRemember,.TVTouristsSelectTooltipSheet .TVTouristsSelectTooltipRemember {
    background: #edf2f5;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 15px
}

.TVTouristsSelectTooltipPage .TVTouristsSelectTooltipRemember .TVCheckBox,.TVTouristsSelectTooltipSheet .TVTouristsSelectTooltipRemember .TVCheckBox {
    padding-left: 0;
    color: #5c6672;
    font-size: 13px;
    padding: 20px 0
}

.TVMainFiltersControl {
    padding: 10px;
    box-sizing: border-box;
    height: 100%;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column
}

.TVMainFiltersControlForm {
    height: 100%;
    overflow-y: auto
}

.TVAddFiltersControl {
    padding: 0 10px 20px 20px;
    box-sizing: border-box;
    height: 100%;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column
}

.TVAddFiltersControlForm {
    height: 100%;
    overflow-y: auto;
    padding-right: 10px
}

.TVAddFiltersControlActions {
    margin-top: auto;
    padding-top: 20px;
    display: flex
}

.TVAddFiltersControlAction {
    flex: 1;
    display: block;
    overflow: hidden;
    font-size: 13px;
    font-weight: 600;
    line-height: 18px;
    padding: 14px 22px;
    border-radius: 6px;
    white-space: nowrap;
    text-align: center;
    text-overflow: ellipsis
}

.TVAddFiltersControlAction:not(:last-child) {
    margin-right: 10px
}

.TVAddFiltersResetAction {
    color: #5c6672;
    background: transparent;
    border: 1px solid #5c6672;
    opacity: 1;
    transition: opacity .5s ease-in-out
}

.TVAddFiltersResetAction.TVDisabled {
    pointer-events: none;
    opacity: .5
}

.TVAddFiltersSelectPageContent {
    width: 100%;
    height: 100%;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column
}

.TVAddFiltersSelectTitle {
    display: flex;
    align-items: center
}

.TVAddFiltersSelectTitleIcon {
    fill: #5c6672;
    margin-right: 10px;
    width: 19px;
    height: 17px
}

.TVAddFiltersSelectContent {
    display: flex;
    align-items: center;
    width: 100%
}

.TVAddFiltersSelectTextContent {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.TVAddFiltersSelectContentBadge {
    margin-left: auto;
    font-weight: 400
}

.TVRangeSelectTooltip .TVRangeSelectTooltipContent {
    padding: 20px
}

.TVRangeSelectTooltip .TVRangeSelectTooltipTitle {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    text-transform: uppercase;
    margin-bottom: 15px
}

.TVRangeSelectTooltip .TVRangeSelectTooltipSubmit {
    margin: 20px auto
}

.TVRangeSelectTooltipPage .TVRangeSelectTooltipTitle,.TVRangeSelectTooltipSheet .TVRangeSelectTooltipTitle {
    font-size: 18px;
    font-weight: 700;
    color: #2b3f5a;
    margin-bottom: 30px
}

.TVRangeSelectTooltipPage .TVRangeSelectTooltipContent,.TVRangeSelectTooltipSheet .TVRangeSelectTooltipContent {
    box-sizing: border-box;
    padding: 40px 20px 0;
    flex: 1
}

.TVRangeSelectTooltipPage .TVRangeSelectTooltipSubmit,.TVRangeSelectTooltipSheet .TVRangeSelectTooltipSubmit {
    margin: 20px auto
}

.TVRangeSelectHighlightHelp {
    margin-top: 30px
}

.TVResortTree {
    height: 100%
}

.TVResultBannerItem {
    padding: 0 8px
}

.TVSResultBannerItem {
    font-family: var(--tv-font-theme2);
    box-sizing: border-box;
    width: 100%;
    box-shadow: 0 1px 3px #7f7f7f;
    border-radius: 4px;
    overflow: hidden;
    z-index: 0;
    opacity: 1;
    transition: opacity .3s linear;
    position: relative
}

.TVSResultBannerItem:hover {
    box-shadow: 0 1px 4px #6a686a
}

.TVSResultBannerItemInfo {
    background-color: #fff;
    background: linear-gradient(180deg,#fff,#f6f6f6);
    padding: 15px
}

.TVSResultBannerItemInfo:hover {
    background: linear-gradient(180deg,#fff,#f1f1f1)
}

.TVResultBannerItemTitleLink,.TVResultBannerItemTitleLink:link,.TVResultBannerItemTitleLink:visited {
    color: #333;
    text-decoration: none
}

.TVResultBannerItemTitleLink:hover {
    color: #333;
    text-decoration: underline
}

.TVDropPanelClose {
    margin-left: auto;
    cursor: pointer
}

.TVDropPanelClose:after {
    font-family: TVicons;
    content: "\e916";
    font-size: 10px;
    line-height: 10px;
    border: 2px solid #777;
    border-radius: 15px;
    padding: 4px;
    color: #777
}

.TVDropPanelCountryFlag {
    width: 18px;
    height: 14px;
    background-image: url(//static.tourvisor.ru/pics/flags/flags-calendar.png);
    background-repeat: no-repeat
}

.TVDropPanelBtn {
    width: 278px;
    margin-top: 10px
}

.TVMobileResultBtn {
    box-sizing: content-box;
    padding: 8px 16px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #efefef;
    border: 1px solid #ddd;
    border-radius: 20px;
    font-size: 10px;
    line-height: 14px;
    color: #777
}

.TVMobileResultBtn,.TVUpButton {
    font-family: var(--tv-font-theme2);
    text-transform: uppercase;
    cursor: pointer
}

.TVUpButton {
    width: 300px;
    display: block;
    margin: 0 auto;
    padding: 11px;
    border-radius: 4px;
    background: #efefef;
    font-size: 14px;
    line-height: 18px;
    color: #999;
    text-align: center
}

.TVUpButton:after {
    content: "Наверх"
}

.TVYAPlacemark {
    background-color: #0088cf;
    border: 3px solid #fff;
    border-radius: 50%;
    box-shadow: 0 1px 5px rgba(0,0,0,.4);
    box-sizing: border-box;
    transform: translateX(-50%) translateY(-50%)
}

.TVYAPlacemark.TVActive {
    background-color: #5cb85c
}

.TVYAPlacemark.TVSize-S {
    width: 24px;
    height: 24px
}

.TVYAPlacemark.TVSize-M {
    width: 32px;
    height: 32px
}

.TVYAPlacemark.TVSize-L {
    width: 40px;
    height: 40px
}

.TVYAPlacemark.TVSize-L .TVYAPlacemarkContentCrownIcon {
    width: 20px;
    height: 16px
}

.TVYAPlacemarkIconContent {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%
}

.TVYACluster {
    background-color: #0088cf;
    border: 3px solid #fff;
    border-radius: 50%;
    box-shadow: 0 1px 5px rgba(0,0,0,.4);
    box-sizing: content-box;
    transform: translateX(-50%) translateY(-50%);
    width: 34px;
    height: 34px;
    text-align: center;
    line-height: 33px;
    color: #fff;
    font-size: 14px
}

html {
    --tv-main-color: #4a8fb2;
    --tv-main-text-color: #fff;
    --tv-search-button-color: #fca32d;
    --tv-search-button-text-color: #fff
}

.TVMainColor,a.TVMainColor:hover {
    background-color: var(--tv-main-color);
    color: var(--tv-main-text-color)
}

.TVButtonColor {
    background-color: var(--tv-search-button-color);
    color: var(--tv-search-button-text-color)
}

.TVPriceColor {
    background-color: var(--tv-price-color);
    color: var(--tv-price-text-color)
}

.TVMapControl {
    width: 100%;
    height: 100%;
    position: relative
}

.TVMapControl .TVMapLayersDecorator {
    position: absolute;
    top: 10px;
    right: 300px
}

.TVMapControl .TVMapToolsDecorator {
    position: absolute;
    top: 10px;
    right: 125px
}

.TVMapControl .TVMapZoomDecorator {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%)
}

.TVMapControl .TVLeafletMapControl {
    width: 100%;
    height: 100%;
    position: relative;
    z-index: 0
}

.TVMapControl .TVLeafletMapControl.TVMapPriceHide .TVMarkerPrice {
    display: none
}

.SearchMapLayersDropPanel .TVSchemeLayer:after {
    content: "Схема"
}

.SearchMapLayersDropPanel .TVSatelliteLayer:after {
    content: "Спутник"
}

.SearchMapLayersDropPanel .TVHotelsLayer.TVActive:before,.SearchMapLayersDropPanel .TVResortsLayer.TVActive:before {
    background: #185584;
    color: #fff
}

.SearchMapLayersDropPanel .TVHotelsLayer:before,.SearchMapLayersDropPanel .TVResortsLayer:before {
    font-size: 14px;
    color: #fff;
    background: #999;
    border-radius: 4px;
    line-height: 20px
}

.SearchMapLayersDropPanel .TVHotelsLayer:before {
    font-family: TVicons;
    content: "\e967"
}

.SearchMapLayersDropPanel .TVHotelsLayer:after {
    content: "Отели"
}

.SearchMapLayersDropPanel .TVResortsLayer:before {
    font-family: TVicons;
    content: "\e953"
}

.SearchMapLayersDropPanel .TVResortsLayer:after {
    content: "Курорты"
}

.TVLoginForm .TVDialogButton:before {
    content: "Войти"
}

.TVLoginForm .TVLoginFailMessage {
    color: #e31e22;
    text-align: center;
    margin-top: 20px
}

.TVLoginForm .TVMessage {
    font-size: 13px;
    font-family: var(--tv-font-theme2);
    margin-bottom: 10px;
    text-align: justify;
    padding: 20px;
    background-color: #e2f1fb;
    color: #31708f
}

.TVLoginForm .TVCartFormAction {
    text-decoration: none
}

.TVLoginForm .TVCartFormAction.TVForgot:before {
    content: "Забыли пароль?";
    margin-left: 41px
}

.TVLoginForm .TVCartFormAction.TVRegister:before {
    content: "Регистрация"
}

.TVLoginForm .TVLoginInputWrapper {
    margin-bottom: 10px
}

.TVLoginFormDialog .TVDialogHeader:after {
    content: "Вход для менеджеров"
}

.TVMobilePanelBody .TVLoginForm {
    margin: 20px;
    box-sizing: border-box
}

.TVResetPasswordForm .TVDialogButton:before {
    content: "Восстановить"
}

.TVResetPasswordForm .TVCartFormAction {
    text-decoration: none
}

.TVResetPasswordForm .TVCartFormAction.TVComeBack:before {
    content: "Вернуться назад"
}

.TVResetPasswordForm .TVLoginFailMessage {
    color: #e31e22;
    text-align: center;
    margin-top: 20px
}

.TVMobilePanelBody .TVResetPasswordForm {
    margin: 20px;
    box-sizing: border-box
}

.TVRegisterManagerForm .TVDialogButton:before {
    content: "Зарегистрироваться"
}

.TVRegisterManagerForm .TVCartFormAction {
    text-decoration: none
}

.TVRegisterManagerForm .TVCartFormAction.TVComeBack:before {
    content: "Вернуться назад"
}

.TVRegisterManagerForm .TVRegisterErrorMessage {
    color: #e31e22;
    text-align: center;
    margin-top: 20px
}

.TVRegisterManagerForm .TVContractBlock {
    background-color: #f5f5f5;
    border-radius: 3px;
    color: #999;
    display: flex;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    margin-top: 20px
}

.TVRegisterManagerForm .TVContractBlock:before {
    font-size: 20px;
    min-width: 40px;
    text-align: center;
    font-family: TVicons;
    content: "\e923";
    display: flex;
    justify-content: center;
    align-items: center
}

.TVRegisterManagerForm .TVContractBlock .TVAgreement {
    padding: 10px 10px 10px 0
}

.TVRegisterManagerForm .TVContractBlock .TVAgreement:before {
    content: "Отправляя запрос, Вы подтверждаете "
}

.TVRegisterManagerForm .TVContractBlock .TVAgreement .TVAgreementLink:after {
    content: "согласие";
    color: #4b90d5;
    text-decoration: underline;
    cursor: pointer
}

.TVRegisterManagerForm .TVContractBlock .TVAgreement:after {
    content: " на обработку персональных данных"
}

.TVRegisterManagerForm .TVContractBlock .TVAgreement .TVAgreementText:after {
    content: ""
}

.TVMobilePanelBody .TVRegisterManagerForm {
    margin: 20px;
    box-sizing: border-box
}

.TVCartForm {
    font-family: var(--tv-font-theme2)
}

.TVCartForm .TVTextArea,.TVCartForm:not(.TVDiscountForm) .TVInput {
    width: 100%;
    border: 1px solid #ddd;
    border-radius: 3px;
    padding: 16px 19px;
    box-sizing: border-box;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    margin-bottom: 10px;
    color: #000
}

.TVCartForm .TVTextArea::placeholder,.TVCartForm:not(.TVDiscountForm) .TVInput::placeholder {
    color: #999
}

.TVCartForm .TVTextArea:focus::placeholder,.TVCartForm:not(.TVDiscountForm) .TVInput:focus::placeholder {
    color: transparent
}

.TVCartForm .TVTextArea.TVWarning,.TVCartForm:not(.TVDiscountForm) .TVInput.TVWarning {
    border: 1px solid #e31e22
}

.TVCartForm .TVInputPro {
    padding: 16px 19px;
    font-weight: 400;
    font-size: 13px
}

.TVCartForm .TVInputPro input {
    font-size: 13px;
    font-weight: 400;
    text-transform: none
}

.TVCartForm .TVTextArea {
    resize: none;
    outline: none;
    height: 90px;
    display: block
}

.TVCartForm .TVDialogButton {
    width: 160px;
    height: 40px;
    line-height: 40px;
    box-sizing: border-box;
    margin: 20px auto 0;
    text-align: center;
    border-radius: 20px;
    font-size: 13px;
    cursor: pointer;
    text-shadow: none;
    display: block;
    text-decoration: none
}

.TVDialog .TVClosePopUp {
    text-shadow: none
}

.TVCartFormAction {
    display: inline-block;
    font-size: 13px;
    line-height: 18px;
    color: #31708f;
    cursor: pointer
}

.TVCartFormAction:before {
    border-bottom: 1px dashed #31708f
}

.TVCartInformation .TVCartManagerInfoBlock {
    padding: 20px 20px 0
}

.TVCartInformation .TVCartManagerInfoBlock .TVManagerInfoControl,.TVCartInformation .TVCartManagerInfoBlock .TVViewProfile {
    padding: 20px
}

.TVCartFavoritesInfoIcon:after {
    font-family: TVicons;
    content: "\e91b";
    font-size: 16px;
    line-height: 16px;
    margin-left: 5px
}

.TVEditCommentAdaptiveModal {
    font-family: var(--tv-font-theme2)
}

.TVEditCommentAdaptiveModalContent {
    margin: 20px 20px 30px
}

.TVEditCommentAdaptiveModalTitle {
    font-size: 18px;
    font-weight: 700;
    color: #2b3f5a;
    margin-bottom: 30px
}

.TVCartEditHotelModal {
    font-family: var(--tv-font-theme2)
}

.TVCartEditHotelModalTitle {
    font-size: 18px;
    font-weight: 700;
    color: #2b3f5a;
    margin-bottom: 30px
}

.TVCartEditHotelModalSheet .TVCartEditHotelModalContent,.TVCartEditHotelModalSheet .TVCartEditHotelModalTitle {
    margin: 0 20px 30px
}

.TVCartEditHotelModalWaiter {
    margin: auto
}

.TVSubscribeAdaptiveModal {
    font-family: var(--tv-font-theme2)
}

.TVSubscribeAdaptiveModalTitle {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -.48px;
    color: #333;
    margin-bottom: 20px
}

.TVSubscribeAdaptiveModalBody {
    font-size: 13px;
    line-height: 20px;
    color: #5c6672
}

.TVSubscribeAdaptiveModalSubmit {
    font-size: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    border-radius: 20px;
    margin-top: 30px
}

.TVAlternativeTourControl {
    background-color: #fcf6e0;
    color: #b88e4f;
    font-size: 13px;
    line-height: 20px;
    padding: 5px 10px;
    border-radius: 6px;
    margin-top: 10px;
    display: flex;
    align-items: center;
    white-space: pre-wrap
}

.TVAlternativeTourContent {
    font-size: 13px;
    margin-left: 5px
}

.TVAlternativeTourIcon {
    display: flex
}

.TVAlternativeTourInfoIcon {
    fill: #b88e4f
}

.TVAlternativeTourLink {
    color: #b88e4f;
    margin-left: 5px;
    text-decoration: underline
}

.TVAlternativeTourClose {
    display: flex;
    margin-left: auto;
    cursor: pointer
}

.TVAlternativeTourClose:before {
    font-family: TVicons;
    content: "\e916";
    font-size: 7px;
    line-height: 7px;
    border: 2px solid;
    transform: scale(-1);
    border-radius: 20px;
    padding: 4px
}

.TVBotCartSubscribe {
    font-size: 13px
}

.TVBotCartSubscribeDescription {
    font-weight: 500;
    margin-bottom: 20px
}

.TVBotCartSubscribeButtons {
    display: flex;
    font-weight: 600;
    justify-content: center
}

.TVBotCartSubscribeClose,.TVBotCartSubscribeLink {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    border-radius: 6px;
    box-sizing: border-box;
    flex: 1;
    cursor: pointer
}

.TVBotCartSubscribeLink {
    text-decoration: none;
    color: var(--tv-main-color);
    background-color: var(--tv-main-text-color);
    margin-right: 10px
}

.TVBotCartSubscribeClose {
    border: 1px solid;
    border-color: var(--tv-main-text-color)
}

.TVBotCartSubscribeTooltip {
    padding: 20px;
    border-radius: 6px;
    max-width: 350px;
    box-sizing: border-box;
    margin-right: 10px
}

.TVBotCartSubscribeTooltipTitle {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 10px
}

.TVBotCartSubscribeTooltipArrow {
    border: 15px solid transparent;
    border-bottom: 10px solid var(--tv-main-color);
    position: absolute;
    top: -25px;
    left: 0
}

.TVCartCollectionItem {
    padding: 6px 90px 10px 20px;
    font-family: var(--tv-font-theme2);
    background-color: #f5f5f5;
    border-radius: 4px;
    border: 1px solid #ddd;
    position: relative;
    cursor: pointer;
    color: #777;
    font-size: 13px;
    line-height: 19px;
    overflow: hidden;
    min-height: 38px
}

.TVCartCollectionItem.TVActive {
    background-color: #d9edf7;
    border-color: #bce8f1;
    color: #31708f
}

.TVCartCollectionItem .TVCartCollectionItemDelete {
    width: 27px;
    height: 27px;
    line-height: 27px;
    position: absolute;
    right: 0;
    top: 0;
    text-align: center
}

.TVCartCollectionItem .TVCartCollectionItemDelete:before {
    content: "+";
    position: absolute;
    left: 0;
    right: 0;
    font-size: 20px;
    cursor: pointer;
    transform: rotate(45deg)
}

.TVCartCollectionItem .TVCartCollectionItemDelete:hover {
    font-weight: 700
}

.TVCartCollectionItem:hover .TVCartCollectionItemDelete {
    display: block
}

.TVCartCollectionItem .TVCartCollectionItemTitle {
    font-weight: 700
}

.TVCartCollectionItem .TVCartCollectionItemTitle:before {
    content: "#"
}

.TVCartCollectionItem .TVCartCollectionItemTime {
    position: absolute;
    right: 10px;
    bottom: 4px
}

.TVCartCollectionItem .TVCartCollectionItemViewCount {
    position: absolute;
    right: 60px;
    bottom: 4px;
    display: flex;
    align-items: center
}

.TVCartCollectionItem .TVCartCollectionItemViewCount:before {
    font-family: TVicons;
    content: "\e94c";
    font-size: 16px;
    line-height: 16px;
    margin-right: 3px
}

.TVCartCollectionItem .TVSendInfo:after {
    content: " - Отправлено";
    text-transform: lowercase
}

.TVMobilePanel .TVCartCollectionItemDelete {
    display: block
}

.TVMobilePanel .TVCartCollectionItem {
    padding: 6px 25px 20px 20px
}

.TVCartCollectionsControl .TVCartCollectionItem {
    margin-top: 10px
}

.TVCartCollectionsControl.TVCartCollectionsEmpty {
    text-align: center;
    color: #777
}

.TVCartCollectionsControl.TVCartCollectionsEmpty:before {
    content: "Список подборок пуст."
}

.TVCartCollectionsDate {
    width: 120px;
    margin: 0 auto;
    padding: 1px 0;
    background-color: #8cb4c8;
    border-radius: 20px;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    line-height: 18px;
    text-align: center;
    color: #fff
}

.TVCartCollectionsDate:not(:first-child) {
    margin-top: 10px
}

.TVCartCollectionsDialog {
    width: 600px
}

.TVCartCollectionsDialog .TVDialogBody {
    padding-right: 15px
}

.TVCartCollectionsDialog .TVCartCollectionsControl {
    max-height: 400px;
    overflow-y: auto;
    padding-right: 5px
}

.TVCartCollectionsDialog .TVDialogHeader:after {
    content: "Мои подборки"
}

.TVCartContactsControl {
    --gap: 10px;
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap)
}

.TVCartContactsItem {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    height: 30px;
    background: #edf2f5;
    border-radius: 30px;
    font-size: 13px;
    font-weight: 500;
    color: #5c6672;
    padding: 0 8px;
    text-decoration: none;
    white-space: nowrap
}

.TVCartContactsItem:hover {
    color: #5c6672;
    opacity: .9
}

.TVCartContactsSocialMedia {
    display: flex;
    gap: var(--gap)
}

@media screen and (max-width: 500px) {
    .TVCartContactsControl.TVMobile {
        --gap:5px
    }

    .TVCartContactsControl.TVMobile .TVCartContactsPhoneItem:before {
        content: none
    }
}

.TVCartContactsPhoneItem:before {
    font-family: TVicons;
    content: "\e924";
    font-size: 15px
}

.TVCartContactsTelegramItem:before {
    font-family: TVicons;
    content: "\e963";
    color: #23ade0;
    font-size: 15px
}

.TVCartContactsViberItem:before {
    font-family: TVicons;
    content: "\e964";
    color: #7c0791;
    font-size: 14px
}

.TVCartContactsWhatsAppItem:before {
    font-family: TVicons;
    content: "\e965";
    color: #278b3e;
    font-size: 15px
}

.TVCartTabsControl {
    margin-bottom: 20px
}

.TVCartMobileTabItem {
    width: 100%
}

.TVCartControlTab {
    display: flex;
    align-items: center
}

.TVCartTabItem {
    width: 140px
}

.TVCartFavoriteRegionsWrapper>:not(:first-child) {
    margin-top: 20px
}

.TVCartControlTabCount {
    margin-left: 10px
}

.TVCartCustomerInfoControl {
    display: flex;
    flex-wrap: wrap;
    font-size: 13px;
    color: #5c6672;
    padding: 20px 20px 0
}

.TVCartCustomerInfoControl .TVCartCustomerInfoId {
    flex-basis: 70px;
    margin-right: 20px
}

.TVCartCustomerInfoControl .TVCartCustomerInfoId:before {
    content: "#"
}

.TVCartCustomerInfoControl .TVCartCustomerInfoContentContainer {
    flex: 1
}

.TVCartCustomerInfoControl .TVCartCustomerInfoContent {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    cursor: pointer
}

.TVCartCustomerInfoControl .TVCartCustomerInfoCreateBtn:before {
    content: "Добавить данные клиента"
}

.TVCartCustomerInfoControl .TVCartFormAction:not(:last-child) {
    margin-right: 20px
}

.TVCartCustomerInfoControl .TVCartCustomerInfoEditBtn:before {
    content: "Изменить"
}

.TVCartCustomerInfoControl .TVCartCustomerInfoLeadBtn {
    display: flex
}

.TVCartCustomerInfoControl .TVCartCustomerInfoLeadBtn:before {
    content: "Создать обращение"
}

.TVCartCustomerInfoControl .TVCartCustomerInfoLeadBtn.TVLeadCreated:before {
    content: "Обращение"
}

.TVCartCustomerInfoControl .TVCartCustomerInfoExportBtn:before {
    content: "Экспорт в CRM"
}

.TVCartCustomerInfoControl .TVCartCustomerInfoLeadWaiter {
    width: 20px;
    height: 18px
}

.TVCartCustomerInfoControl .TVCartCustomerInfoLeadWaiter .TVWaiterBG {
    background: none;
    top: -4px
}

.TVCartCustomerInfoControl .TVCartCustomerInfoLeadWaiter .TVWaiterBG .TVSimpleWaiterDuble:before {
    border-bottom-color: #31708f;
    border-top-color: #31708f
}

.TVCartCustomerInfoControl .TVCartCustomerInfoLeadWaiter .TVWaiterBG .TVSimpleWaiterDuble:after {
    border-right-color: #31708f;
    border-top-color: #31708f
}

.TVMobilePanel .TVCartCustomerInfoContentContainer,.TVMobilePanel .TVCartCustomerInfoId {
    flex-basis: 100%
}

.TVMobilePanel .TVCartCustomerInfoContent {
    white-space: normal
}

.TVMobilePanel .TVCartCustomerInfoEmptyContent .TVCartCustomerInfoExportBtn,.TVMobilePanel .TVCartCustomerInfoEmptyContent .TVCartCustomerInfoLeadBtn {
    display: none
}

.TVMobilePanel .TVCartCustomerInfoEditBtn,.TVMobilePanel .TVCartCustomerInfoExportBtn,.TVMobilePanel .TVCartCustomerInfoLeadBtn {
    margin-top: 5px
}

.TVCartEmptyFavoritesControl {
    --title-font-size: 18px;
    --title-line-height: 24px;
    background-color: #fff;
    padding: 80px 30px;
    display: flex;
    flex-direction: column;
    align-items: center
}

.TVCartEmptyFavoritesTitle {
    font-size: var(--title-font-size);
    line-height: var(--title-line-height);
    font-weight: 700;
    color: #333;
    max-width: 400px
}

.TVCartEmptyFavoritesTitle.TVFontSize-M {
    --title-font-size: 18px;
    --title-line-height: 24px
}

.TVCartEmptyFavoritesTitle.TVFontSize-L {
    --title-font-size: 20px;
    --title-line-height: 26px
}

.TVCartEmptyFavoritesTitle.TVFontSize-XL {
    --title-font-size: 23px;
    --title-line-height: 28px
}

.TVCartEmptyFavoritesTitle.TVFontSize-XXL {
    --title-font-size: 25px;
    --title-line-height: 30px
}

.TVCartEmptyFavoritesContentLike,.TVCartEmptyFavoritesContentShare,.TVCartEmptyFavoritesContentSubscribe {
    display: flex;
    justify-content: space-between
}

.TVCartEmptyFavoritesContent {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    max-width: 400px;
    margin-top: 30px
}

.TVCartEmptyFavoritesContent>:not(:first-child) {
    margin-top: 15px
}

.TVCartEmptyFavoritesContentText {
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    margin-left: 20px;
    color: #5c6672;
    flex: 1
}

.TVCartEmptyFavoritesLikeIcon {
    fill: #fb5e51;
    width: 22px;
    margin-top: 2px
}

.TVCartEmptyFavoritesSubscribeIcon {
    fill: #027ad0;
    fill-rule: evenodd;
    width: 20px;
    margin-top: 4px
}

.TVCartEmptyFavoritesShareIcon {
    fill: #027ad0;
    width: 23px;
    height: 21px;
    margin-top: 6px
}

.TVCartFavoriteHotelItem,.TVCartFavoriteHotelMobileItem {
    display: flex
}

.TVCartFavoriteHotelPhoto {
    width: 90px;
    height: 70px;
    border-radius: 4px;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: 50% 50%
}

.TVCartFavoriteHotelPhotoBlock {
    position: relative
}

.TVCartFavoriteHotelRating {
    position: absolute;
    top: 23px;
    right: -20px;
    color: #fff;
    width: 30px;
    height: 20px;
    font-size: 13px;
    font-weight: 700;
    box-shadow: 0 3px 6px rgba(0,0,0,.169);
    border: 2px solid #fff;
    border-radius: 5px;
    margin-right: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0
}

.TVCartFavoriteHotelRating.TVRatingNormal {
    background: #e6b661
}

.TVCartFavoriteHotelRating.TVRatingGood {
    background: #5cb85c
}

.TVCartFavoriteHotelRating.TVRatingExcellent {
    background: #4bdc4b
}

.TVCartFavoriteHotelRating.TVRatingBad {
    background: #e07a55
}

.TVCartFavoriteHotelTitle {
    width: 100%
}

.TVCartFavoriteHotelActions {
    display: flex;
    align-items: center
}

.TVCartFavoriteHotelActions>:not(:first-child) {
    margin-left: 10px
}

.TVCartFavoriteHotelRemove {
    width: 30px;
    height: 30px;
    border-radius: 30px;
    background-color: #edf2f5;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer
}

.TVCartFavoriteHotelRemove:before {
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMy4xMDIiIGhlaWdodD0iMTQuMTkyIj48cGF0aCBkPSJNOS44NSAxLjkyNWgyLjI2M2MuNCAwIC43NTctLjA0Ni45MDUuMi4wODEuMDc2LjA4NS4yLjA4My4zNjFoLS4wNDJ2LjEybC0uMTY1LjEyYy0uMTQ2LjE0NC0uNjY1LjA4NS0uOTQ3LjA4MS0uMDMyLjM2OC0uMDIxLjk2MS0uMDgyIDEuMzIycy4wNDcuODE5LS4wNDIgMS4xMjJ2MS4xNjNoLS4wNHYxLjE2MmgtLjA0MnYxLjE2M0gxMS43VjkuOWgtLjA0djEuMmgtLjA0MnYuODQybC0uMDgzIDEuMjgzaC0uMDR2LjEyaC0uMDQyYTQuNzE2IDQuNzE2IDAgMDEtLjA0Mi4xNmgtLjA0di4wOGwtLjEyMy4wODF2LjA4aC0uMDQybC0uMDgyLjEyYTMuMiAzLjIgMCAwMS0xLjk3Ni4zMjFoLTUuNmEyLjc4NCAyLjc4NCAwIDAxLTEuNC0uMiA4LjcwMyA4LjcwMyAwIDAwLS4wODMtLjEyMWgtLjA4MmMtLjA0Mi0uMDUyLS4wODItLjEwNi0uMTIzLS4xNTloLS4wNDJ2LS4wODFsLS4wODItLjA0di0uMDhIMS43bC0uMDQtLjE2aC0uMDQydi0uMTJoLS4wNDJ2LS4xNmgtLjA0MXYtLjhIMS41VjExLjFoLS4wNDFWOS45MzhoLS4wNDJWOC43NzVoLS4wNHYtMS4yaC0uMDQyVjYuNDEzaC0uMDQyVjUuMjVhNy4xNTIgNy4xNTIgMCAwMS0uMDQtMS4wODJjLS4wMzUtLjM4NS0uMDQ2LS45NzctLjA4My0xLjM2My0uNDI2LjAxLS45MTQuMDYxLTEuMDctLjJhLjUyLjUyIDAgMDEtLjA4Mi0uNEguMDZ2LS4wODFsLjEyMy0uMDguMDQtLjA4aC4xMjN2LS4wNGgyLjkyM0EyLjgyIDIuODIgMCAwMTMuNDc0LjQwMUwzLjU5Ny4zMiAzLjY3OS4yQTIuNzQ1IDIuNzQ1IDAgMDE1LjEyIDBIOGEyLjczIDIuNzMgMCAwMTEuNDQuMiA1LjEgNS4xIDAgMDAuMDgzLjEyYy4zNzIuMzY2LjMzNS44OC4zMjcgMS42MDV6bS01LjY3OCAwaDQuNzczVi45NjNhNC4yNTIgNC4yNTIgMCAwMC0xLjQ0LS4wODFINC4yNTRhMi40MyAyLjQzIDAgMDEtLjA0Mi4xMiAzLjA2OSAzLjA2OSAwIDAwLS4wNC45MjN6bS0yLjEuODgybC4wNDIuODQydi41MjFoLjA0MnYxLjE2M2guMDQydjEuMTYyaC4wNHYxLjE2M2guMDQxdjEuMTYzaC4wNDJ2MS4xNjJoLjA0djEuMmguMDQydi40NGMwIC4yNzQuMDIyLjU4OC4wNDIuOHYuNTYxaC4wNHYuMDhoLjA0MmMuMDE0LjA0LjAyNy4wODEuMDQyLjEybC4xMjMuMDR2LjA0aC4wODJ2LjA0SDEwLjN2LS4wNGguMTIzdi0uMDRsLjEyMy0uMDQuMDQyLS4xMmguMDR2LS4xMmguMDQydi0uNjQxaC4wNDJWMTEuMTRoLjA0VjkuOTc3aC4wNDJWOC44MmguMDQyVjcuNjU3aC4wNFY2LjQ5NGguMDQyVjUuMzMyaC4wNDJWNC4xN0gxMXYtLjUyMWwuMDQxLS44NDJ6bTEuOTc2IDEuMTYyYy4xMjggMCAuMy0uMDE5LjM3LjA0YS4yOS4yOSAwIDAxLjI0Ny4zMjFjLjA3OS4wODcuMDQyLjM2NS4wNDIuNTIxdjQuODFjMCAuNzEzLjAyMiAxLjUxNS0uMDQyIDIuMTY0LS4wNjguMDM5LS4xNzguMTg4LS4yMDUuMmgtLjQxMmMtLjA0Ny0uMDQ1IDAtLjAxNS0uMDgzLS4wMzlhMi42NjkgMi42NjkgMCAwMS0uMTY1LS4yNFY1LjkzM2E2LjQ4NSA2LjQ4NSAwIDAxLjA4My0xLjg0NC41NTQuNTU0IDAgMDAuMTY1LS4xMnptMi44MzkuMDgxbC4wNDIuMTJoLjA0MXYuMDhoLjA0MXY3LjVINi45N3YuMDhoLS4wNDFjLS4wMTQuMDQtLjAyNy4wODEtLjA0Mi4xMmgtLjA4MmwtLjA0Mi4wOGgtLjQxMmMtLjA4MS0uMTItLjExNi0uMDM3LS4xNjQtLjItLjExOC0uMS0uMDgzLS4zMDktLjA4My0uNTIxVjQuMjU0aC4wNDJ2LS4wOGguMDQybC4wNC0uMTJjLjA5Mi0uMDI0LjM1Ni0uMTU2LjUzNS0uMDgxbC4wNDIuMDgxem0xLjgxMS0uMDgxYTIuMjMgMi4yMyAwIDAxLjQ1Mi4wNC44OS44OSAwIDAwLjE2NS4yVjkuMThhMTUuMDg0IDE1LjA4NCAwIDAxLS4wODIgMi43MjYuODIyLjgyMiAwIDAxLS41MzUuMTE5bC0uMjQ3LS4ydi0uMTJoLS4wNDJWNC4yOWguMDQydi0uMTJ6IiBmaWxsPSIjNzc3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=");
    background-repeat: no-repeat;
    background-position: 50%;
    display: block;
    width: 20px;
    height: 20px
}

.TVCartFavoriteHotelItem .TVCartFavoriteHotelPhoto {
    width: 90px;
    height: 70px
}

.TVCartFavoriteHotelItem .TVCartFavoriteHotelSearch {
    width: 110px;
    height: 30px;
    border-radius: 30px;
    font-size: 10px;
    font-weight: 600;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer
}

.TVCartFavoriteHotelItem .TVCartFavoriteHotelSearch:hover {
    opacity: .9
}

.TVCartFavoriteHotelItem .TVCartFavoriteHotelPhotoBlock {
    margin-right: 30px
}

.TVCartFavoriteHotelItem .TVCartFavoriteHotelTitle {
    display: flex;
    align-items: center
}

.TVCartFavoriteHotelMobileItem .TVCartFavoriteHotelPhoto {
    width: 100px;
    height: 100px
}

.TVCartFavoriteHotelMobileItem .TVCartFavoriteHotelInfoBlock {
    width: 100%;
    display: flex;
    flex-direction: column
}

.TVCartFavoriteHotelMobileItem .TVCartFavoriteHotelInfoBlock>:not(:first-child) {
    margin-top: 7px
}

.TVCartFavoriteHotelMobileItem .TVCartFavoriteHotelTitle {
    height: 100%
}

.TVCartFavoriteHotelMobileItem .TVCartFavoriteHotelActions {
    justify-content: flex-end
}

.TVCartFavoriteHotelMobileItem .TVCartFavoriteHotelSearch {
    width: 30px;
    height: 30px;
    border-radius: 30px;
    font-size: 10px;
    font-weight: 600;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #5c6672;
    text-decoration: none
}

.TVCartFavoriteHotelMobileItem .TVCartFavoriteHotelSearch:before {
    font-family: TVicons;
    content: "\e906";
    color: #fff;
    font-size: 16px;
    width: 13px
}

.TVCartFavoriteHotelMobileItem .TVCartFavoriteHotelPhotoBlock {
    margin-right: 20px
}

.TVCartFavoriteHotelMobileItem .TVCartFavoriteHotelRating {
    top: 30px;
    right: -13px
}

.TVCartFavoriteHotelListRegion {
    font-size: 16px;
    font-weight: 500;
    color: #5c6672;
    padding: 15px 0 25px
}

.TVCartFavoriteHotelListSearchLink {
    text-wrap: nowrap;
    color: #31708f;
    font-size: 13px;
    border-bottom: 1px dashed;
    text-decoration: none;
    margin: auto 0 25px;
    cursor: pointer
}

.TVCartFavoriteHotelListSearchLink:hover {
    color: #31708f
}

.TVCartFavoriteHotelListTitle {
    display: flex;
    justify-content: space-between
}

.TVCartFavoriteHotelDesktopList .TVCartFavoriteHotelListItems {
    padding: 20px;
    background-color: #fff;
    border-radius: 10px
}

.TVCartFavoriteHotelDesktopList .TVCartFavoriteHotelListItems>:not(:last-child) {
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid #ddd
}

.TVCartFavoriteHotelMobileList .TVCartFavoriteHotelListItems .TVCartFavoriteHotelListItem {
    padding: 10px;
    border-radius: 10px;
    background-color: #fff
}

.TVCartFavoriteHotelMobileList .TVCartFavoriteHotelListItems>:not(:last-child) {
    margin-bottom: 10px
}

.TVCartFlightItemControl {
    display: contents;
    color: #5c6672;
    font-size: 13px;
    line-height: 20px
}

.TVCartFlightItemDate,.TVCartFlightItemTime {
    white-space: nowrap
}

.TVCartFlightItemCompany {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.TVCartFlightItemDirection {
    display: flex;
    align-items: center
}

.TVCartFlightItemDirection:before {
    font-family: TVicons;
    content: "\e92e";
    font-size: 15px;
    color: #5c6672;
    opacity: .4
}

.TVCartFlightItemDirection.TVCartFlightItemDirectionReverse {
    transform: rotate(180deg)
}

.TVCartFlightsList {
    display: grid;
    grid-template-columns: repeat(3,auto) 1fr;
    gap: 0 10px
}

.TVCartInfoControl {
    margin-top: 20px;
    padding: 9px 13px;
    background: #e2f1fb;
    color: #31708f
}

.TVCartInfoControl .TVCartInfoName {
    font-size: 13px;
    font-weight: 700
}

.TVCartInfoControl .TVCartInfoComment {
    font-size: 12px;
    line-height: 18px
}

.TVCartInfoControl.TVCursorPointerEnable {
    cursor: pointer
}

.TVCartMenu {
    height: 100%;
    display: flex;
    flex-direction: column
}

.TVCartMenu .TVCartMenuItems {
    overflow-y: auto
}

.TVMenu .TVTitleMenuItem {
    cursor: auto;
    min-height: 22px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-bottom: 15px;
    border-bottom: 1px solid
}

.TVMenu .TVTitleMenuItem .TVCartMenuTitle {
    font-weight: 700
}

.TVMenu .TVTitleMenuItem .TVManagerName {
    font-size: 13px
}

.TVMenu .TVTitleMenuItem .TVManagerLogin {
    line-height: 8px;
    font-size: 11px;
    opacity: .7
}

.TVMenu .TVMenuItem {
    display: flex;
    align-items: center;
    height: 20px
}

.TVMenu .TVMenuItem.TVDisabled {
    cursor: auto;
    pointer-events: none;
    opacity: .5
}

.TVMenu .TVCartMenuWaiter {
    margin-left: 5px
}

.TVMenu .TVSaveCartItem:before {
    font-family: TVicons;
    content: "\e94e"
}

.TVMenu .TVLoadCartItem:before {
    font-family: TVicons;
    content: "\e94f"
}

.TVMenu .TVNewCartItem:before {
    font-family: TVicons;
    content: "\e913"
}

.TVMenu .TVCartMenuSubscribeIcon,.TVMenu .TVCartMenuUnsubscribeIcon {
    width: 14px;
    height: 16px;
    fill: var(--tv-main-text-color);
    fill-rule: evenodd
}

.TVMenu .TVCartMenuSubscribeContent,.TVMenu .TVCartMenuUnsubscribeContent {
    margin-left: 13px
}

.TVMenu .TVBotUnsubscribeCartMenuItem,.TVMenu .TVUnsubscribeCartMenuItem {
    position: relative
}

.TVMenu .TVBotUnsubscribeCartMenuItem:after,.TVMenu .TVUnsubscribeCartMenuItem:after {
    font-family: TVicons;
    content: "\e90b";
    font-size: 6px;
    line-height: 12px;
    text-align: center;
    width: 12px;
    height: 12px;
    border-radius: 15px;
    background-color: #fb5e51;
    color: #fff;
    position: absolute;
    top: 12px;
    left: 12px
}

.TVMenu .TVCreateLMCartMenuItem:before,.TVMenu .TVOpenLMMenuItem:before {
    font-family: TVicons;
    content: "\e94f"
}

.TVMenu .TVExportCrmItem:before {
    font-family: TVicons;
    content: "\e906"
}

.TVMenu .TVMyCartCollectionsItem:before {
    font-family: TVicons;
    content: "\e91f"
}

.TVMenu .TVMailMenuItem:before {
    font-family: TVicons;
    content: "\e951"
}

.TVMenu .TVSmsMenuItem:before {
    font-family: TVicons;
    content: "\e950"
}

.TVMenu .TVShowcaseMenuItem:before {
    font-family: TVicons;
    content: "\e94b"
}

.TVMenu .TVDiscountMenuItem:before {
    content: "%";
    padding-right: 15px
}

.TVMenu .TVPrintMenuItem:before {
    font-family: TVicons;
    content: "\e956"
}

.TVMenu .TVUpdatePriceMenuItem:before {
    font-family: TVicons;
    content: "\e957"
}

.TVMenu .TVMapCartMenuItem:before {
    font-family: TVicons;
    content: "\e953"
}

.TVMenu .TVLoginCartMenuItem:before,.TVMenu .TVLogoutCartMenuItem:before {
    font-family: TVicons;
    content: "\e95a"
}

.TVMenu .TVClearMenuItem:before {
    font-family: TVicons;
    content: "\f014"
}

.TVMenu .TVCartMenuShareLinkIcon {
    width: 16px;
    height: 16px;
    fill: var(--tv-main-text-color)
}

.TVMenu .TVCartMenuShareLinkContent {
    margin-left: 12px
}

.TVCartMapControl {
    font-family: var(--tv-font-theme2);
    width: 100%;
    height: 100%;
    position: relative
}

.TVCartMapControl .TVMapLayersDecorator {
    right: 175px
}

.TVCartToursInfoControl {
    margin-top: 20px;
    background-color: #fcf7e3;
    border: 1px solid #eee5c4;
    border-radius: 4px;
    padding: 15px;
    text-align: center;
    font-size: 13px;
    color: #c09953
}

.TVCartPriceHistoryItemControl {
    display: flex;
    justify-content: space-between
}

.TVCartPriceHistoryItemPrice {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end
}

.TVCartPriceHistoryItemPriceValue {
    white-space: nowrap
}

.TVCartPriceHistoryItemCurrency {
    margin-left: 5px
}

.TVCartPriceHistoryItemControl:not(.TVMobile) {
    text-transform: uppercase;
    width: 180px;
    font-size: 10px;
    font-weight: 500;
    line-height: 18px;
    color: #fff
}

.TVCartPriceHistoryItemControl:not(.TVMobile) .TVCartPriceHistoryItemDate {
    width: 60px
}

.TVCartPriceHistoryItemControl:not(.TVMobile) .TVCartPriceHistoryTrandUp {
    display: flex;
    align-items: center;
    justify-content: center
}

.TVCartPriceHistoryItemControl:not(.TVMobile) .TVCartPriceHistoryTrandUp:before {
    content: "";
    display: block;
    border: 6px solid transparent;
    border-top: 0;
    border-bottom: 6px solid #fb5e51
}

.TVCartPriceHistoryItemControl:not(.TVMobile) .TVCartPriceHistoryTrandDown {
    display: flex;
    align-items: center;
    justify-content: center
}

.TVCartPriceHistoryItemControl:not(.TVMobile) .TVCartPriceHistoryTrandDown:before {
    content: "";
    display: block;
    border: 6px solid transparent;
    border-bottom: 0;
    border-top: 6px solid #5cb85c
}

.TVCartPriceHistoryItemControl:not(.TVMobile) .TVCartPriceHistoryItemPrice {
    width: 90px
}

.TVCartPriceHistoryItemControl:not(.TVMobile) .TVCartPriceHistoryItemPriceValue {
    font-size: 12px;
    font-weight: 600
}

.TVCartPriceHistoryItemControl.TVMobile {
    color: #333;
    font-size: 14px;
    font-weight: 600
}

.TVCartPriceHistoryItemControl.TVMobile .TVCartPriceHistoryItemDate {
    width: auto;
    flex: 2
}

.TVCartPriceHistoryItemControl.TVMobile .TVCartPriceHistoryItemPrice,.TVCartPriceHistoryItemControl.TVMobile .TVCartPriceHistoryItemPriceTrand {
    flex: 1
}

.TVCartPriceHistoryItemControl.TVMobile .TVCartPriceHistoryTrandUp {
    display: flex;
    align-items: center;
    justify-content: center
}

.TVCartPriceHistoryItemControl.TVMobile .TVCartPriceHistoryTrandUp:before {
    content: "";
    display: block;
    border: 10px solid transparent;
    border-top: 0;
    border-bottom: 10px solid #fb5e51
}

.TVCartPriceHistoryItemControl.TVMobile .TVCartPriceHistoryTrandDown {
    display: flex;
    align-items: center;
    justify-content: center
}

.TVCartPriceHistoryItemControl.TVMobile .TVCartPriceHistoryTrandDown:before {
    content: "";
    display: block;
    border: 10px solid transparent;
    border-bottom: 0;
    border-top: 10px solid #5cb85c
}

.TVCartPriceHistoryItemControl.TVMobile .TVCartPriceHistoryItemPriceValue {
    font-weight: 700
}

.TVCartPriceHistoryItemControl.TVMobile .TVCartPriceHistoryItemCurrency {
    font-size: 10px;
    text-transform: uppercase
}

.TVCartPriceHistoryListTitle {
    font-size: 18px;
    font-weight: 700
}

.TVCartPriceHistoryListControl.TVMobile {
    padding: 20px;
    overflow: auto
}

.TVCartPriceHistoryListControl.TVMobile .TVCartPriceHistoryList>* {
    padding: 15px 0;
    border-bottom: 1px solid #ddd
}

.TVCartPriceHistoryListControl.TVMobile .TVCartPriceHistoryListSpinner {
    display: flex;
    justify-content: center;
    padding: 20px
}

.TVCartPrintControl {
    width: 960px!important;
    margin: auto;
    padding: 40px
}

.TVCartPrintControl .TVCartPrintControlHeader {
    padding: 30px 20px
}

@media print {
    @page {
    .TVCartPrintControl {
        size: A4
    }
    }

    .TVCartPrintControl .TVCountryItemHeader {
        background: #edf2f5!important;
        -webkit-print-color-adjust: exact;
        color-adjust: exact!important
    }

    .TVCartPrintControl .TVCartHotelRating {
        -webkit-print-color-adjust: exact;
        color-adjust: exact!important;
        color: #fff!important
    }

    .TVCartPrintControl .TVCartHotelRating.TVRatingNormal {
        background: #e6b661!important
    }

    .TVCartPrintControl .TVCartHotelRating.TVRatingGood {
        background: #5cb85c!important
    }

    .TVCartPrintControl .TVCartHotelRating.TVRatingExcellent {
        background: #4bdc4b!important
    }

    .TVCartPrintControl .TVCartHotelRating.TVRatingBad {
        background: #e07a55!important
    }

    .TVCartPrintControl .TVCartHotelImg {
        -webkit-print-color-adjust: exact;
        color-adjust: exact!important
    }
}

.TVCartPrintControl .TVCartPriceButtons,.TVCartPrintControl .TVCartRangeButtonsBlock,.TVCartPrintControl .TVCartRangeSerachFilters,.TVCartPrintControl .TVCartTourRecommendIcon,.TVCartPrintControl .TVCountryItemAction {
    display: none!important
}

.TVCartPrintControl .TVCartRangeComment,.TVCartPrintControl .TVCartTourComment {
    -webkit-print-color-adjust: exact;
    color-adjust: exact!important
}

.TVCartPrintControl .TVCartTourContainer {
    page-break-inside: avoid!important
}

.TVCartPrintControl .TVManagerInfoControl .TVManagerInfoControlPrintLogo,.TVCartPrintControl .TVManagerInfoControl .TVManagerInfoControlPrintPhoto {
    display: block
}

.TVCartPrintControl .TVManagerInfoControl .TVManagerInfoControlLogo,.TVCartPrintControl .TVManagerInfoControl .TVManagerInfoControlPhoto {
    display: none
}

.TVCartPrintControl .TVRoomInfo {
    color: inherit;
    border-bottom: none
}

.TVCartPrintControl .TVCartTourHotelLoupe {
    display: none
}

.TVCartRangeData,.TVCartRangeMobileItemControl {
    display: flex;
    justify-content: space-between
}

.TVCartRangeData .TVCartRangeButtonsBlock,.TVCartRangeMobileItemControl .TVCartRangeButtonsBlock {
    display: inline-flex
}

.TVCartRangeData .TVCartRangeButtonsBlock>:not(:first-child),.TVCartRangeMobileItemControl .TVCartRangeButtonsBlock>:not(:first-child) {
    margin-left: 10px
}

.TVCartRangeData .TVCartRangeCommentButton,.TVCartRangeMobileItemControl .TVCartRangeCommentButton {
    width: 30px;
    box-sizing: border-box;
    background-color: #edf2f5;
    border-radius: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 400
}

.TVCartRangeData .TVCartRangeCommentButton:before,.TVCartRangeMobileItemControl .TVCartRangeCommentButton:before {
    color: #5c6672;
    font-size: 14px;
    line-height: 14px;
    font-family: TVicons;
    content: "\f0e5"
}

.TVCartRangeData .TVCartRangeSearchButton.TVCartRangeFullWidth,.TVCartRangeMobileItemControl .TVCartRangeSearchButton.TVCartRangeFullWidth {
    width: 100%
}

.TVCartRangeData .TVCartRangeSearchButton.TVCartRangeButtonSmall,.TVCartRangeMobileItemControl .TVCartRangeSearchButton.TVCartRangeButtonSmall {
    width: 30px;
    min-width: 30px;
    background-color: #5c6672;
    line-height: 14px
}

.TVCartRangeData .TVCartRangeSearchButton.TVCartRangeButtonSmall:before,.TVCartRangeMobileItemControl .TVCartRangeSearchButton.TVCartRangeButtonSmall:before {
    font-family: TVicons;
    content: "\e906";
    color: #fff;
    font-size: 16px;
    width: 13px
}

.TVCartRangeData .TVCartRangeLikeIcon,.TVCartRangeMobileItemControl .TVCartRangeLikeIcon {
    fill: #5c6672;
    height: 14px;
    width: 14px;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVCartRangeData .TVCartRangeLikeStatus,.TVCartRangeMobileItemControl .TVCartRangeLikeStatus {
    height: 30px;
    width: 30px;
    min-width: 30px;
    border-radius: 30px;
    background-color: #edf2f5;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVCartRangeData .TVCartRangeLikeStatus.TVActive .TVCartRangeLikeIcon,.TVCartRangeData .TVCartRangeLikeStatus.TVCartRangeLikeStatusHover:hover .TVCartRangeLikeIcon,.TVCartRangeMobileItemControl .TVCartRangeLikeStatus.TVActive .TVCartRangeLikeIcon,.TVCartRangeMobileItemControl .TVCartRangeLikeStatus.TVCartRangeLikeStatusHover:hover .TVCartRangeLikeIcon {
    fill: #fff
}

.TVCartRangeData .TVCartRangeLikeStatus.TVCartRangeLikeStatusHover,.TVCartRangeMobileItemControl .TVCartRangeLikeStatus.TVCartRangeLikeStatusHover {
    cursor: pointer
}

.TVCartRangeData .TVCartRangeLikeStatus.TVCartRangeLikeStatusHover:hover,.TVCartRangeMobileItemControl .TVCartRangeLikeStatus.TVCartRangeLikeStatusHover:hover {
    opacity: .5
}

.TVCartRangeData .TVCartRangeLikeStatus.TVCartRangeLikeStatusHover.TVActive:hover,.TVCartRangeMobileItemControl .TVCartRangeLikeStatus.TVCartRangeLikeStatusHover.TVActive:hover {
    opacity: .8
}

.TVCartRangeData .TVCartRangeDislike.TVActive,.TVCartRangeData .TVCartRangeDislike.TVCartRangeLikeStatusHover:hover,.TVCartRangeMobileItemControl .TVCartRangeDislike.TVActive,.TVCartRangeMobileItemControl .TVCartRangeDislike.TVCartRangeLikeStatusHover:hover {
    background-color: #fb5e51
}

.TVCartRangeData .TVCartRangeLike.TVActive,.TVCartRangeData .TVCartRangeLike.TVCartRangeLikeStatusHover:hover,.TVCartRangeMobileItemControl .TVCartRangeLike.TVActive,.TVCartRangeMobileItemControl .TVCartRangeLike.TVCartRangeLikeStatusHover:hover {
    background-color: #55af59
}

.TVCartRangeData .TVCartRangeDislike,.TVCartRangeMobileItemControl .TVCartRangeDislike {
    transform: scaleY(-1)
}

.TVCartRangeDetails {
    display: flex;
    flex-direction: column;
    position: relative;
    line-height: 20px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    word-break: break-word;
    text-align: left;
    font-size: 13px;
    font-weight: 400;
    color: #5c6672;
    max-width: 200px
}

.TVCartRangeDates {
    font-weight: 600;
    color: #333
}

.TVCartRangePrice {
    height: 30px;
    align-items: center
}

.TVCartRangePriceValue {
    font-size: 16px;
    font-weight: 700;
    color: #000;
    height: 18px;
    display: flex;
    align-items: center;
    white-space: nowrap
}

.TVCartRangeCurrency {
    font-size: 10px;
    text-transform: uppercase;
    color: #5c6672;
    margin-left: 5px;
    height: 18px;
    display: flex;
    align-items: flex-end
}

.TVCartRangePrice {
    display: flex
}

.TVCartRangeSearchButton {
    min-width: 80px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    border-radius: 30px;
    padding: 0;
    font-size: 10px;
    font-weight: 600;
    position: relative;
    text-transform: uppercase;
    text-align: center;
    text-decoration: none;
    cursor: pointer
}

.TVCartRangeSearchButton:hover {
    opacity: .9
}

.TVCartRangeFavorite {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 30px;
    background-color: #edf2f5;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent
}

.TVCartRangeFavorite:hover {
    opacity: .9
}

.TVCartRangePriceWaiterBlock {
    display: flex;
    width: 130px
}

.TVCartRangePriceWaiterContent {
    font-size: 11px;
    width: 130px;
    margin-left: 5px;
    color: #777
}

.TVCartRangeItemNoTours {
    opacity: .5
}

.TVCartRangeSerachFilters {
    font-size: 13px;
    color: #31708f;
    border-bottom: 1px dashed;
    cursor: pointer;
    position: relative;
    text-transform: none;
    text-decoration: none
}

.TVCartRangeButton {
    height: 30px;
    width: 30px;
    min-width: 30px;
    border-radius: 30px;
    box-sizing: border-box;
    background-color: #edf2f5;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 400;
    cursor: pointer
}

.TVCartRangeCommentButton:before {
    color: #5c6672;
    font-size: 14px;
    line-height: 14px;
    font-family: TVicons;
    content: "\f0e5"
}

.TVCartRangeDelete:before {
    display: block;
    width: 20px;
    height: 20px;
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMy4xMDIiIGhlaWdodD0iMTQuMTkyIj48cGF0aCBkPSJNOS44NSAxLjkyNWgyLjI2M2MuNCAwIC43NTctLjA0Ni45MDUuMi4wODEuMDc2LjA4NS4yLjA4My4zNjFoLS4wNDJ2LjEybC0uMTY1LjEyYy0uMTQ2LjE0NC0uNjY1LjA4NS0uOTQ3LjA4MS0uMDMyLjM2OC0uMDIxLjk2MS0uMDgyIDEuMzIycy4wNDcuODE5LS4wNDIgMS4xMjJ2MS4xNjNoLS4wNHYxLjE2MmgtLjA0MnYxLjE2M0gxMS43VjkuOWgtLjA0djEuMmgtLjA0MnYuODQybC0uMDgzIDEuMjgzaC0uMDR2LjEyaC0uMDQyYTQuNzE2IDQuNzE2IDAgMDEtLjA0Mi4xNmgtLjA0di4wOGwtLjEyMy4wODF2LjA4aC0uMDQybC0uMDgyLjEyYTMuMiAzLjIgMCAwMS0xLjk3Ni4zMjFoLTUuNmEyLjc4NCAyLjc4NCAwIDAxLTEuNC0uMiA4LjcwMyA4LjcwMyAwIDAwLS4wODMtLjEyMWgtLjA4MmMtLjA0Mi0uMDUyLS4wODItLjEwNi0uMTIzLS4xNTloLS4wNDJ2LS4wODFsLS4wODItLjA0di0uMDhIMS43bC0uMDQtLjE2aC0uMDQydi0uMTJoLS4wNDJ2LS4xNmgtLjA0MXYtLjhIMS41VjExLjFoLS4wNDFWOS45MzhoLS4wNDJWOC43NzVoLS4wNHYtMS4yaC0uMDQyVjYuNDEzaC0uMDQyVjUuMjVhNy4xNTIgNy4xNTIgMCAwMS0uMDQtMS4wODJjLS4wMzUtLjM4NS0uMDQ2LS45NzctLjA4My0xLjM2My0uNDI2LjAxLS45MTQuMDYxLTEuMDctLjJhLjUyLjUyIDAgMDEtLjA4Mi0uNEguMDZ2LS4wODFsLjEyMy0uMDguMDQtLjA4aC4xMjN2LS4wNGgyLjkyM0EyLjgyIDIuODIgMCAwMTMuNDc0LjQwMUwzLjU5Ny4zMiAzLjY3OS4yQTIuNzQ1IDIuNzQ1IDAgMDE1LjEyIDBIOGEyLjczIDIuNzMgMCAwMTEuNDQuMiA1LjEgNS4xIDAgMDAuMDgzLjEyYy4zNzIuMzY2LjMzNS44OC4zMjcgMS42MDV6bS01LjY3OCAwaDQuNzczVi45NjNhNC4yNTIgNC4yNTIgMCAwMC0xLjQ0LS4wODFINC4yNTRhMi40MyAyLjQzIDAgMDEtLjA0Mi4xMiAzLjA2OSAzLjA2OSAwIDAwLS4wNC45MjN6bS0yLjEuODgybC4wNDIuODQydi41MjFoLjA0MnYxLjE2M2guMDQydjEuMTYyaC4wNHYxLjE2M2guMDQxdjEuMTYzaC4wNDJ2MS4xNjJoLjA0djEuMmguMDQydi40NGMwIC4yNzQuMDIyLjU4OC4wNDIuOHYuNTYxaC4wNHYuMDhoLjA0MmMuMDE0LjA0LjAyNy4wODEuMDQyLjEybC4xMjMuMDR2LjA0aC4wODJ2LjA0SDEwLjN2LS4wNGguMTIzdi0uMDRsLjEyMy0uMDQuMDQyLS4xMmguMDR2LS4xMmguMDQydi0uNjQxaC4wNDJWMTEuMTRoLjA0VjkuOTc3aC4wNDJWOC44MmguMDQyVjcuNjU3aC4wNFY2LjQ5NGguMDQyVjUuMzMyaC4wNDJWNC4xN0gxMXYtLjUyMWwuMDQxLS44NDJ6bTEuOTc2IDEuMTYyYy4xMjggMCAuMy0uMDE5LjM3LjA0YS4yOS4yOSAwIDAxLjI0Ny4zMjFjLjA3OS4wODcuMDQyLjM2NS4wNDIuNTIxdjQuODFjMCAuNzEzLjAyMiAxLjUxNS0uMDQyIDIuMTY0LS4wNjguMDM5LS4xNzguMTg4LS4yMDUuMmgtLjQxMmMtLjA0Ny0uMDQ1IDAtLjAxNS0uMDgzLS4wMzlhMi42NjkgMi42NjkgMCAwMS0uMTY1LS4yNFY1LjkzM2E2LjQ4NSA2LjQ4NSAwIDAxLjA4My0xLjg0NC41NTQuNTU0IDAgMDAuMTY1LS4xMnptMi44MzkuMDgxbC4wNDIuMTJoLjA0MXYuMDhoLjA0MXY3LjVINi45N3YuMDhoLS4wNDFjLS4wMTQuMDQtLjAyNy4wODEtLjA0Mi4xMmgtLjA4MmwtLjA0Mi4wOGgtLjQxMmMtLjA4MS0uMTItLjExNi0uMDM3LS4xNjQtLjItLjExOC0uMS0uMDgzLS4zMDktLjA4My0uNTIxVjQuMjU0aC4wNDJ2LS4wOGguMDQybC4wNC0uMTJjLjA5Mi0uMDI0LjM1Ni0uMTU2LjUzNS0uMDgxbC4wNDIuMDgxem0xLjgxMS0uMDgxYTIuMjMgMi4yMyAwIDAxLjQ1Mi4wNC44OS44OSAwIDAwLjE2NS4yVjkuMThhMTUuMDg0IDE1LjA4NCAwIDAxLS4wODIgMi43MjYuODIyLjgyMiAwIDAxLS41MzUuMTE5bC0uMjQ3LS4ydi0uMTJoLS4wNDJWNC4yOWguMDQydi0uMTJ6IiBmaWxsPSIjNzc3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=");
    background-repeat: no-repeat;
    background-position: 50%
}

.TVCartRangeBlockPrice {
    display: flex;
    align-items: flex-end;
    justify-content: space-between
}

.TVCartRangeDeleteConfirm {
    height: 30px;
    width: 100%;
    box-sizing: border-box;
    color: #5c6672;
    background-color: #edf2f5;
    border-radius: 30px;
    padding: 0 30px 0 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    cursor: pointer;
    position: relative
}

.TVCartRangeDeleteConfirm:after {
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    box-sizing: border-box;
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMy4xMDIiIGhlaWdodD0iMTQuMTkyIj48cGF0aCBkPSJNOS44NSAxLjkyNWgyLjI2M2MuNCAwIC43NTctLjA0Ni45MDUuMi4wODEuMDc2LjA4NS4yLjA4My4zNjFoLS4wNDJ2LjEybC0uMTY1LjEyYy0uMTQ2LjE0NC0uNjY1LjA4NS0uOTQ3LjA4MS0uMDMyLjM2OC0uMDIxLjk2MS0uMDgyIDEuMzIycy4wNDcuODE5LS4wNDIgMS4xMjJ2MS4xNjNoLS4wNHYxLjE2MmgtLjA0MnYxLjE2M0gxMS43VjkuOWgtLjA0djEuMmgtLjA0MnYuODQybC0uMDgzIDEuMjgzaC0uMDR2LjEyaC0uMDQyYTQuNzE2IDQuNzE2IDAgMDEtLjA0Mi4xNmgtLjA0di4wOGwtLjEyMy4wODF2LjA4aC0uMDQybC0uMDgyLjEyYTMuMiAzLjIgMCAwMS0xLjk3Ni4zMjFoLTUuNmEyLjc4NCAyLjc4NCAwIDAxLTEuNC0uMiA4LjcwMyA4LjcwMyAwIDAwLS4wODMtLjEyMWgtLjA4MmMtLjA0Mi0uMDUyLS4wODItLjEwNi0uMTIzLS4xNTloLS4wNDJ2LS4wODFsLS4wODItLjA0di0uMDhIMS43bC0uMDQtLjE2aC0uMDQydi0uMTJoLS4wNDJ2LS4xNmgtLjA0MXYtLjhIMS41VjExLjFoLS4wNDFWOS45MzhoLS4wNDJWOC43NzVoLS4wNHYtMS4yaC0uMDQyVjYuNDEzaC0uMDQyVjUuMjVhNy4xNTIgNy4xNTIgMCAwMS0uMDQtMS4wODJjLS4wMzUtLjM4NS0uMDQ2LS45NzctLjA4My0xLjM2My0uNDI2LjAxLS45MTQuMDYxLTEuMDctLjJhLjUyLjUyIDAgMDEtLjA4Mi0uNEguMDZ2LS4wODFsLjEyMy0uMDguMDQtLjA4aC4xMjN2LS4wNGgyLjkyM0EyLjgyIDIuODIgMCAwMTMuNDc0LjQwMUwzLjU5Ny4zMiAzLjY3OS4yQTIuNzQ1IDIuNzQ1IDAgMDE1LjEyIDBIOGEyLjczIDIuNzMgMCAwMTEuNDQuMiA1LjEgNS4xIDAgMDAuMDgzLjEyYy4zNzIuMzY2LjMzNS44OC4zMjcgMS42MDV6bS01LjY3OCAwaDQuNzczVi45NjNhNC4yNTIgNC4yNTIgMCAwMC0xLjQ0LS4wODFINC4yNTRhMi40MyAyLjQzIDAgMDEtLjA0Mi4xMiAzLjA2OSAzLjA2OSAwIDAwLS4wNC45MjN6bS0yLjEuODgybC4wNDIuODQydi41MjFoLjA0MnYxLjE2M2guMDQydjEuMTYyaC4wNHYxLjE2M2guMDQxdjEuMTYzaC4wNDJ2MS4xNjJoLjA0djEuMmguMDQydi40NGMwIC4yNzQuMDIyLjU4OC4wNDIuOHYuNTYxaC4wNHYuMDhoLjA0MmMuMDE0LjA0LjAyNy4wODEuMDQyLjEybC4xMjMuMDR2LjA0aC4wODJ2LjA0SDEwLjN2LS4wNGguMTIzdi0uMDRsLjEyMy0uMDQuMDQyLS4xMmguMDR2LS4xMmguMDQydi0uNjQxaC4wNDJWMTEuMTRoLjA0VjkuOTc3aC4wNDJWOC44MmguMDQyVjcuNjU3aC4wNFY2LjQ5NGguMDQyVjUuMzMyaC4wNDJWNC4xN0gxMXYtLjUyMWwuMDQxLS44NDJ6bTEuOTc2IDEuMTYyYy4xMjggMCAuMy0uMDE5LjM3LjA0YS4yOS4yOSAwIDAxLjI0Ny4zMjFjLjA3OS4wODcuMDQyLjM2NS4wNDIuNTIxdjQuODFjMCAuNzEzLjAyMiAxLjUxNS0uMDQyIDIuMTY0LS4wNjguMDM5LS4xNzguMTg4LS4yMDUuMmgtLjQxMmMtLjA0Ny0uMDQ1IDAtLjAxNS0uMDgzLS4wMzlhMi42NjkgMi42NjkgMCAwMS0uMTY1LS4yNFY1LjkzM2E2LjQ4NSA2LjQ4NSAwIDAxLjA4My0xLjg0NC41NTQuNTU0IDAgMDAuMTY1LS4xMnptMi44MzkuMDgxbC4wNDIuMTJoLjA0MXYuMDhoLjA0MXY3LjVINi45N3YuMDhoLS4wNDFjLS4wMTQuMDQtLjAyNy4wODEtLjA0Mi4xMmgtLjA4MmwtLjA0Mi4wOGgtLjQxMmMtLjA4MS0uMTItLjExNi0uMDM3LS4xNjQtLjItLjExOC0uMS0uMDgzLS4zMDktLjA4My0uNTIxVjQuMjU0aC4wNDJ2LS4wOGguMDQybC4wNC0uMTJjLjA5Mi0uMDI0LjM1Ni0uMTU2LjUzNS0uMDgxbC4wNDIuMDgxem0xLjgxMS0uMDgxYTIuMjMgMi4yMyAwIDAxLjQ1Mi4wNC44OS44OSAwIDAwLjE2NS4yVjkuMThhMTUuMDg0IDE1LjA4NCAwIDAxLS4wODIgMi43MjYuODIyLjgyMiAwIDAxLS41MzUuMTE5bC0uMjQ3LS4ydi0uMTJoLS4wNDJWNC4yOWguMDQydi0uMTJ6IiBmaWxsPSIjNzc3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=");
    background-repeat: no-repeat;
    background-position: 50%
}

.TVCartRangeNoDiscount {
    color: #5c6672;
    font-size: 13px;
    line-height: 18px
}

.TVCartRangeViewCount {
    color: #5c6672;
    line-height: 30px;
    font-size: 13px;
    margin-left: 10px;
    display: flex;
    align-items: center;
    pointer-events: none
}

.TVCartRangeViewCount:before {
    font-family: TVicons;
    content: "\e94c";
    font-size: 19px;
    margin-right: 3px
}

.TVCartRangeComment {
    background-color: #e2f1fb;
    color: #31708f;
    font-size: 13px;
    line-height: 20px;
    padding: 5px 10px;
    border-radius: 6px;
    margin-top: 10px;
    display: flex;
    width: auto;
    height: auto;
    white-space: pre-wrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.TVCartRangeComment:before {
    font-size: 20px;
    line-height: 20px;
    margin-right: 10px;
    font-family: TVicons;
    content: "\f0e5"
}

.TVCartRangeItemControl:not(:last-child) {
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px dashed rgba(92,102,114,.4)
}

.TVCartRangeItemControl .TVCartRangeActions {
    display: flex;
    flex-direction: column;
    min-width: 130px
}

.TVCartRangeItemControl .TVCartRangeButtonsBlock {
    margin-top: 10px;
    justify-content: space-between
}

.TVCartRangeItemControl .TVCartRangeSearchButton {
    width: 110px
}

.TVCartRangeItemControl .TVCartRangeSearchButton.TVCartRangeItemNoTours {
    color: #fff;
    background-color: #777
}

.TVCartRangeItemControl .TVCartRangeComment {
    min-height: 16px;
    padding: 5px 10px
}

.TVCartRangeMobileItemControl {
    flex-direction: column
}

.TVCartRangeMobileItemControl:not(:first-child) {
    margin-top: 16px
}

.TVCartRangeMobileItemControl:not(:last-child) {
    padding-bottom: 16px;
    border-bottom: 1px dashed rgba(92,102,114,.4)
}

.TVCartRangeMobileItemControl .TVCartRangeActions {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: 10px
}

.TVCartRangeMobileItemControl .TVCartRangeSearchButton {
    width: 90px
}

.TVCartRangeMobileItemControl .TVCartRangeSearchButton.TVCartRangeItemNoTours {
    color: inherit;
    background-color: #edf2f5;
    padding: 0 10px;
    opacity: 1;
    width: auto
}

.TVCartRangeMobileItemControl .TVCartRangePriceValue {
    font-size: 18px
}

.TVCartRangeMobileItemControl .TVCartRangeLikeStatus {
    margin-left: 10px
}

.TVCartRangeMobileItemControl .TVCartRangeComment {
    margin-top: 19px;
    padding: 10px
}

.TVCartSaveFormControl .TVDialogButton:before {
    content: "Сохранить"
}

.TVCartSaveFormControl .TVCartForm .TVTextArea {
    height: 200px
}

.TVCartSaveFormControl .TVCartSaveFormCheck {
    margin: 10px 0;
    padding: 10px;
    background-color: #efefef;
    border-radius: 2px;
    color: #777;
    height: 40px;
    box-sizing: border-box
}

.TVCartSaveFormControl .TVCartSaveFormCheck .TVCheckBox {
    font-size: 13px;
    display: block
}

.TVCartSaveFormControl .TVCartSaveFormCheck .TVCheckBox:hover {
    color: #777
}

.TVCartSaveFormControl .TVCartSaveMessage {
    color: #777;
    font-size: 14px;
    display: flex;
    flex-direction: column
}

.TVSaveDialog {
    width: 540px
}

.TVSaveDialog .TVDialogHeader:after {
    content: "Сохранение подборки туров"
}

.TVMobilePanelBody .TVCartSaveFormControl {
    margin: 20px;
    box-sizing: border-box
}

.TVCartSearchFiltersControl {
    padding: 20px 20px 45px
}

.TVCartSearchFiltersTitle {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 15px;
    color: #333
}

.TVCartSearchFiltersContent {
    font-size: 13px;
    line-height: 18px;
    font-weight: 400;
    color: #5c6672
}

.TVCartStickyButton {
    font-family: var(--tv-font-theme2);
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    width: 100px;
    height: 70px;
    bottom: 20px;
    border: 1px solid #ddd;
    z-index: 200000;
    background-color: #efefef;
    color: #707070;
    box-sizing: border-box;
    opacity: 1;
    line-height: 1
}

.TVCartStickyButton.TVCartStickyButtonLeft {
    border-radius: 0 5px 5px 0;
    left: 0
}

.TVCartStickyButton.TVCartStickyButtonRight {
    border-radius: 5px 0 0 5px;
    right: 0
}

.TVCartStickyButtonPreview {
    border-radius: 0
}

.TVConfigureMailControl {
    background-color: #e2f1fb;
    padding: 20px 18px
}

.TVConfigureMailControl:before {
    content: "Для того чтобы отправлять подборки туристам c Вашего почтового ящика, необходимо настроить отправку почты.";
    margin-right: 5px;
    font-size: 13px;
    color: #31708f
}

.TVConfigureMailControl .TVDialogButton {
    width: 80%;
    max-width: 310px
}

.TVConfigureMailControl .TVDialogButton:before {
    content: "Настроить отправку почты"
}

.TVConfigureMailControl .TVCartFormAction {
    text-decoration: none
}

.TVConfigureMailControl .TVCartFormAction:before {
    content: "Узнать подробнее"
}

.TVCartCountryList.TVNoTour {
    text-align: center;
    font-family: var(--tv-font-theme2)
}

.TVCartCountryList.TVNoTour:after {
    content: "Подборка пуста";
    font-size: 30px;
    display: block;
    line-height: 270px
}

.TVCartCountryList .TVCountryItem:not(:first-child) {
    margin-top: 10px
}

.TVCountryItemFlag {
    width: 20px;
    height: 14px;
    border-radius: 4px;
    background-size: cover;
    background-position: 50%
}

.TVCountryItemLink,.TVCountryItemMapButton {
    text-wrap: nowrap;
    color: #31708f;
    font-size: 13px;
    border-bottom: 1px dashed;
    text-decoration: none;
    cursor: pointer
}

.TVCountryItemLink:hover,.TVCountryItemMapButton:hover {
    color: #31708f
}

.TVCountryItemMapButton {
    margin-right: 15px
}

.TVCountryItemButtons {
    display: flex
}

.TVCountryItem {
    font-family: var(--tv-font-theme2)
}

.TVCountryItem .TVCountryItemHeader {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: 6px;
    height: 50px;
    box-sizing: border-box
}

.TVCountryItem .TVCountryItemHeader .TVCountryItemRegion {
    display: flex;
    flex-basis: 59%
}

.TVCountryItem .TVCountryItemHeader .TVCountryItemRegion .TVCountryItemFlag {
    margin: auto 8px auto 0
}

.TVCountryItem .TVCountryItemHeader .TVCountryItemRegion .TVCountryItemName {
    color: #5c6672;
    font-size: 16px;
    font-weight: 500
}

.TVDiscountForm .TVDiscountFormText {
    font-size: 13px;
    color: #777;
    margin-top: 15px
}

.TVDiscountForm .TVDialogButton:before {
    content: "Сохранить"
}

.TVDiscountForm .TVDiscountFailMessage {
    color: #e31e22;
    text-align: center;
    margin-top: 20px
}

.TVDiscountForm .TVDiscountFailMessage:after {
    content: "Неправильный формат"
}

.TVDiscountForm .TVDialogHeader:after {
    content: "Изменить скидку/наценку"
}

.TVMobilePanelBody .TVDiscountForm {
    margin: 20px;
    box-sizing: border-box
}

.TVEditCommentDescription {
    font-size: 12px;
    font-weight: 500;
    color: #5c6672;
    margin-bottom: 7px
}

.TVEditCommentText {
    width: 100%;
    height: 150px;
    padding: 10px;
    font-size: 13px;
    font-weight: 500;
    line-height: 18px;
    border-radius: 6px;
    border: 1px solid #ddd;
    box-sizing: border-box;
    color: #5c6672;
    resize: none;
    outline: none
}

.TVEditCommentSubmit {
    width: 200px;
    height: 40px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #5c6672;
    color: #fff;
    margin: 40px auto 0
}

.TVEditCustomerControl .TVMobileResultBtn {
    margin-top: 20px
}

.TVEditCustomerControl .TVMobileResultBtn:before {
    content: "+ Комментарий";
    text-transform: uppercase
}

.TVEditCustomerControl .TVDialogButton {
    width: 100%
}

.TVEditCustomerControl .TVDialogButton:before {
    content: "Сохранить"
}

.TVAutoCompleteCustomersDropPanel {
    max-height: 300px;
    overflow: hidden;
    overflow-y: auto
}

.TVAutoCompleteCustomersDropPanel .tv_content {
    margin: 10px 5px
}

.TVAutoCompleteCustomersDropPanel .TVListBoxItem {
    padding: 5px 10px
}

.TVAutoCompleteCustomersDropPanel .TVListBoxItem div {
    display: flex;
    flex-direction: column;
    color: #a5a5a5;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px
}

.TVAutoCompleteCustomersDropPanel .TVListBoxItem div div:first-child {
    color: #333;
    font-weight: 700
}

.TVEditCustomerDialog .TVDialogHeader:after {
    content: "Данные клиента"
}

.TVMobilePanelBody .TVEditCustomerControl {
    margin: 20px;
    box-sizing: border-box
}

.TVEditHotelDescriptionLabel {
    font-size: 12px;
    font-weight: 500;
    color: #5c6672;
    margin-bottom: 7px
}

.TVEditHotelDescriptionText {
    width: 100%;
    height: 150px;
    padding: 10px;
    font-size: 13px;
    font-weight: 500;
    line-height: 18px;
    border-radius: 6px;
    border: 1px solid #ddd;
    box-sizing: border-box;
    color: #5c6672;
    resize: none;
    outline: none
}

.TVEditHotelDescriptionSubmit {
    width: 200px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
    background-color: #5c6672;
    color: #fff;
    margin: 40px auto 0
}

.TVEditHotelDescriptionClear,.TVEditHotelDescriptionSelect,.TVEditHotelDescriptionSubmit {
    height: 40px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer
}

.TVEditHotelDescriptionClear,.TVEditHotelDescriptionSelect {
    width: 100%;
    border-radius: 40px;
    margin-top: 20px;
    font-size: 14px;
    font-weight: 500;
    background-color: #edf2f5;
    color: #5c6672
}

.TVCartFavoritesInfoControl {
    border-radius: 6px;
    font-size: 13px;
    line-height: 18px;
    padding: 17px 20px;
    color: #31708f;
    background-color: #fff
}

.TVHotelDescriptionItemControl {
    font-size: 13px;
    line-height: 18px;
    padding: 10px;
    border-radius: 6px;
    background-color: #edf2f5;
    color: #5c6672;
    cursor: pointer
}

.TVHotelDescriptionContent {
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
    display: -webkit-box;
    display: -moz-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    -moz-box-orient: vertical;
    box-orient: vertical;
    max-height: 54px
}

.TVHotelDescriptionListLabel {
    color: #5c6672;
    font-size: 12px;
    font-weight: 500;
    margin-bottom: 7px
}

.TVHotelDescriptionListBackButton {
    width: 200px;
    height: 40px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #5c6672;
    color: #fff;
    margin: 20px auto 0;
    cursor: pointer
}

.TVHotelDescriptionListContent {
    max-height: 300px;
    overflow-y: auto;
    padding-right: 3px
}

.TVHotelDescriptionListContent>:not(:first-child) {
    margin-top: 10px
}

.TVCartTourContainer {
    font-family: var(--tv-font-theme2);
    position: relative;
    background: #fff
}

.TVCartTourContainer:last-child {
    border: none
}

.TVCartTourContainer .TVCartTourHotelBlock {
    background-color: transparent;
    position: relative
}

.TVCartTourContainer .TVCartTourHotelLoupe {
    width: 32px;
    height: 32px;
    box-sizing: border-box;
    position: absolute;
    left: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #000;
    opacity: .6;
    border-radius: 0 5px 0 0;
    cursor: pointer;
    border-radius: 0 5px
}

.TVCartTourContainer .TVCartTourHotelLoupe:before {
    font-size: 14px;
    color: #fff;
    font-family: TVicons;
    content: "\e91d"
}

.TVCartTourContainer .TVCartHotelRating {
    color: #fff;
    width: 30px;
    height: 20px;
    font-size: 13px;
    font-weight: 700;
    box-shadow: 0 3px 6px rgba(0,0,0,.169);
    border: 2px solid #fff;
    border-radius: 5px;
    margin-right: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0
}

.TVCartTourContainer .TVCartHotelRating.TVRatingNormal {
    background: #e6b661
}

.TVCartTourContainer .TVCartHotelRating.TVRatingGood {
    background: #5cb85c
}

.TVCartTourContainer .TVCartHotelRating.TVRatingExcellent {
    background: #4bdc4b
}

.TVCartTourContainer .TVCartHotelRating.TVRatingBad {
    background: #e07a55
}

.TVCartTourContainer .TVCartTourDescBlock {
    display: inline-block;
    padding: 0;
    color: #333;
    font-weight: 400;
    vertical-align: top
}

.TVCartTourContainer .TVCartTourDescBlock .TVCartHotelSubtitle {
    color: #999
}

.TVCartTourContainer .TVCartHotelDesc {
    position: relative;
    margin-top: 10px
}

.TVCartTourContainer .TVCartHotelDescVal {
    padding: 0;
    color: #5c6672;
    font-weight: 400;
    font-size: 13px;
    line-height: 18px
}

.TVCartTourContainer .TVCartHotelDescVal.TVLineClampEnabled {
    cursor: pointer;
    transition: all .2s linear;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
    display: -webkit-box;
    display: -moz-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    -moz-box-orient: vertical;
    box-orient: vertical;
    max-height: 54px
}

.TVCartTourContainer .TVCartHotelDescVal.TVLineClampEnabled.TVCartHotelDescriptionExpanded {
    display: block;
    -webkit-line-clamp: none;
    box-orient: none;
    max-height: none
}

.TVCartTourContainer .TVTourItemContainer {
    display: flex;
    flex-grow: 1;
    flex-basis: 300px
}

.TVCartTourContainer .TVCartTourBottomGradient {
    background: transparent linear-gradient(180deg,transparent,rgba(0,0,0,.745)) 0 0 no-repeat padding-box;
    position: absolute;
    height: 70%;
    width: 100%;
    bottom: 0;
    left: 0
}

.TVCartTourContainer .TVCartEditHotelDescription {
    display: inline-block;
    border-bottom: 1px dashed;
    color: #31708f;
    cursor: pointer;
    font-size: 13px;
    margin-top: 8px
}

.TVCartTourContainer.TVMobile {
    padding: 10px 10px 20px;
    margin-top: 10px;
    border-radius: 10px
}

.TVCartTourContainer.TVMobile .TVCartTourRatingStarsBlock {
    display: flex;
    align-items: center;
    margin-bottom: 5px
}

.TVCartTourContainer.TVMobile .TVCartHotelTitleName {
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    line-height: 19px;
    text-shadow: 0 3px 10px rgba(0,0,0,.43)
}

.TVCartTourContainer.TVMobile .TVCartHotelSubtitle {
    color: #fff;
    font-weight: 500;
    line-height: 15px;
    text-shadow: 0 3px 10px rgba(0,0,0,.43);
    opacity: .79
}

.TVCartTourContainer.TVMobile .TVTourItemContainer {
    margin: 0 10px
}

.TVCartTourContainer.TVMobile .TVCartTourHotelBlock {
    margin-bottom: 15px
}

.TVCartTourContainer.TVMobile .TVCartTourHotelBlock .TVHotelImg {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    width: 100%;
    height: 55vw;
    max-width: 400px;
    max-height: 250px;
    margin: auto;
    border-radius: 6px;
    overflow: hidden;
    position: relative
}

.TVCartTourContainer.TVMobile .TVCartTourTitleBlock {
    position: absolute;
    left: 0;
    bottom: 0;
    margin: 10px
}

.TVCartTourContainer.TVMobile .TVCartOperator {
    position: absolute;
    right: 0;
    top: 5px
}

.TVCartTourContainer.TVMobile .TVCartOperator img {
    height: 25px
}

.TVCartTourContainer.TVMobile .TVCartHotelDesc {
    margin: 0 10px 15px
}

.TVCartTourContainer.TVMobile .TVCartHotelDescVal {
    font-weight: 400
}

.TVCartTourContainer.TVMobile .TVCartEditHotelDescription {
    margin-top: 6px
}

.TVCartTourContainer.TVDesktop {
    padding: 20px;
    display: flex;
    border-radius: 10px;
    margin-top: 10px
}

.TVCartTourContainer.TVDesktop .TVCartTourHotelBlock {
    min-width: 150px;
    height: 120px
}

.TVCartTourContainer.TVDesktop .TVCartTourHotelBlock .TVHotelImg {
    overflow: hidden;
    border-radius: 6px;
    position: relative;
    height: 100%;
    width: 100%;
    background-size: cover;
    background-repeat: no-repeat
}

.TVCartTourContainer.TVDesktop .TVCartTourHotelBlock .TVHotelImg.TVCartHotelCursorPointer {
    cursor: pointer
}

.TVCartTourContainer.TVDesktop .TVCartTourHotelBlock .TVHotelImg img {
    width: 100%;
    height: 100%;
    position: absolute
}

.TVCartTourContainer.TVDesktop .TVCartHotelRating {
    position: absolute;
    top: 15px;
    right: -20px
}

.TVCartTourContainer.TVDesktop .TVCartTourInfo {
    display: flex;
    justify-content: space-around;
    width: 100%;
    flex-wrap: wrap
}

.TVCartTourContainer.TVDesktop .TVCartTourInfo .TVCartTourDescBlock {
    flex-grow: 1;
    width: 250px;
    padding: 0 30px;
    margin-bottom: 10px
}

.TVCartTourContainer.TVDesktop .TVCartTourInfo .TVCartTourDescBlock .TVCartHotelDescVal {
    text-align: left
}

.TVCartTourContainer .TVCartHotelTags,.TVCartTourContainer .TVCartTourHotelTags {
    display: flex;
    flex-wrap: wrap;
    margin-top: -3px;
    margin-left: -3px
}

.TVCartTourContainer .TVCartHotelTags .TVTag,.TVCartTourContainer .TVCartTourHotelTags .TVTag {
    margin-top: 3px;
    margin-left: 3px
}

.TVCartTourContainer .TVCartHotelTags {
    padding-top: 5px
}

.TVCartTourContainer .TVCartTourHotelTags {
    margin: 0 7px 5px
}

.TVMobilePanel .TVDesktop .TVTourItemContainer {
    padding: 0 30px
}

.TVCartHotelListControl>div:last-child {
    margin-bottom: 0
}

.TVMailFormControl .TVDialogButton:before {
    content: "Отправить"
}

.TVMailFormControl .TVMailFormCheck {
    margin: 10px 0;
    padding: 10px;
    background-color: #efefef;
    border-radius: 2px;
    color: #777;
    height: 40px;
    box-sizing: border-box
}

.TVMailFormControl .TVMailFormCheck .TVCheckBox {
    font-size: 13px;
    display: block
}

.TVMailFormControl .TVMailFormCheck .TVCheckBox:hover {
    color: #777
}

.TVMailFormControl .TVMailFormText {
    height: 200px
}

.TVMailDialog {
    width: 540px
}

.TVMailDialog .TVDialogHeader:after {
    content: "Отправить по E-mail"
}

.TVMobilePanelBody .TVMailFormControl {
    margin: 20px;
    box-sizing: border-box
}

.TVManagerAccessControl {
    padding: 20px;
    display: flex;
    justify-content: space-between;
    background-color: #e2f1fb;
    font-family: var(--tv-font-theme2)
}

.TVManagerAccessControl .TVInfoLink {
    margin-left: 5px;
    display: inline-block;
    text-decoration: none
}

.TVManagerAccessControl .TVInfoLink:before {
    content: "Узнать подробнее."
}

.TVManagerAccessControl .TVManagerAccessInfo {
    max-width: 504px
}

.TVManagerAccessControl .TVManagerAccessInfo:before {
    content: "Войдите или зарегистрируйтесь, как менеджер турагентства, чтобы бесплатно создавать и отправлять подборки туристам."
}

.TVManagerAccessControl .TVManagerAccessButtons {
    max-width: 230px;
    margin-left: 20px
}

.TVManagerAccessControl .TVDialogButton {
    box-sizing: content-box;
    margin: 0
}

.TVManagerAccessControl .TVDialogButton:not(:first-child) {
    margin-left: 20px
}

.TVManagerAccessControl .TVDialogButton.TVLoginButton {
    width: 90px;
    background-color: #185584;
    color: #fff
}

.TVManagerAccessControl .TVDialogButton.TVLoginButton:before {
    content: "Войти"
}

.TVManagerAccessControl .TVDialogButton.TVRegisterButton {
    width: 120px;
    border: 1px solid #185584;
    color: #185584
}

.TVManagerAccessControl .TVDialogButton.TVRegisterButton:before {
    content: "Регистрация"
}

.TVManagerAccessInfo {
    font-size: 13px;
    line-height: 21px;
    color: #31708f
}

.TVManagerAccessButtons {
    display: flex;
    justify-content: center
}

@media screen and (max-width: 750px) {
    .TVMobilePanel .TVManagerAccessControl {
        display:block
    }

    .TVMobilePanel .TVManagerAccessControl .TVInfoLink {
        display: none
    }

    .TVMobilePanel .TVManagerAccessControl .TVManagerAccessInfo {
        max-width: none;
        text-align: center
    }

    .TVMobilePanel .TVManagerAccessControl .TVManagerAccessInfo:before {
        content: "Войдите, как менеджер турагентства."
    }

    .TVMobilePanel .TVManagerAccessControl .TVManagerAccessButtons {
        max-width: none;
        margin-top: 20px;
        margin-left: 0
    }

    .TVMobilePanel .TVManagerAccessControl .TVDialogButton.TVLoginButton,.TVMobilePanel .TVManagerAccessControl .TVDialogButton.TVRegisterButton {
        width: 50%;
        max-width: 140px
    }
}

.TVManagerInfoControl {
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    color: #5b6c7d;
    background-color: #fff;
    border-radius: 10px
}

.TVManagerInfoControl,.TVManagerInfoControl .TVManagerInfo {
    display: flex;
    justify-content: space-between
}

.TVManagerInfoControl .TVManagerInfo .TVManagerInfoControlPhoto,.TVManagerInfoControl .TVManagerInfo .TVManagerInfoControlPrintPhoto {
    width: 70px;
    height: 70px;
    box-shadow: 0 0 20px rgba(0,0,0,.118);
    border-radius: 70px;
    margin-right: 20px;
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: cover
}

.TVManagerInfoControl .TVManagerInfo .TVManagerInfoBlock {
    margin: auto 0
}

.TVManagerInfoControl .TVManagerInfo .TVManagerInfoBlock .TVManagerInfoName {
    font-weight: 700;
    color: #333
}

.TVManagerInfoControl .TVManagerInfo .TVManagerInfoBlock .TVManagerInfoName:before {
    color: #5b6c7d;
    opacity: .6;
    content: "Ваш персональный менеджер";
    display: block;
    font-weight: 400
}

.TVManagerInfoControl .TVManagerInfoControlLogo,.TVManagerInfoControl .TVManagerInfoControlPrintLogo {
    width: 150px;
    height: 70px;
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: contain;
    display: none
}

@media (min-width: 600px) {
    .TVManagerInfoControl .TVManagerInfoControlLogo {
        display:block
    }
}

.TVManagerInfoControl .TVManagerInfoControlPrintLogo,.TVManagerInfoControl .TVManagerInfoControlPrintPhoto {
    object-fit: cover;
    display: none
}

.TVManagerInfoControl .TVManagerInfoControlPrintLogo {
    max-height: 70px;
    max-width: 150px;
    width: auto;
    height: auto
}

.TVManagerInfoControl .TVManagerInfoContacts {
    margin-top: 18px
}

.TVCartMobile {
    min-height: 100%;
    display: flex;
    flex-direction: column;
    background-color: #edf2f5
}

.TVCartMobile .TVCartManagerInfoBlock {
    padding: 20px 10px 0
}

.TVCartMobile .TVCartMobileList {
    flex: auto;
    position: relative;
    margin: 20px 10px
}

.TVCartMobile .TVCartMobileList .TVCartCountryList {
    min-height: 150px
}

.TVCartMobile .TVCartMobileFooter {
    padding: 30px 20px 20px;
    font-family: var(--tv-font-theme2);
    box-sizing: border-box
}

.TVCartMobile .TVCartMobileFooter:before {
    content: "Не знаете какой тур выбрать?";
    font-size: 18px;
    font-weight: 700
}

.TVCartMobile .TVCartMobileFooter .TVCartMobileFooterText {
    padding: 20px 0
}

.TVCartMobile .TVCartMobileFooter .TVCartMobileFooterText:before {
    content: "Вы можете отправить содержимое подборки нашему менеджеру, он свяжется с Вами и даст свои рекомендации по выбору тура.";
    font-size: 13px
}

.TVCartMobile .TVCartMobileFooter .TVCartMobileFooterButton {
    width: 100%;
    height: 50px;
    line-height: 50px;
    border-radius: 4px;
    text-align: center
}

.TVCartMobile .TVCartMobileFooter .TVCartMobileFooterButton:before {
    content: "Получить совет турагента"
}

.TVCartMobileMode {
    height: 40px;
    border-radius: 6px;
    background-color: #5c6672;
    color: #fff;
    margin: 20px 20px 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 600
}

.TVPriceHistoryControl {
    display: flex
}

.TVPriceHistoryIcon:before {
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOSIgaGVpZ2h0PSIxNiI+PGcgZGF0YS1uYW1lPSJHcm91cCA0NTgiIGZpbGw9IiM3NzciPjxyZWN0IGRhdGEtbmFtZT0iUmVjdGFuZ2xlIDEzNDUiIHdpZHRoPSI1IiBoZWlnaHQ9IjEzIiByeD0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAzKSIvPjxyZWN0IGRhdGEtbmFtZT0iUmVjdGFuZ2xlIDEzNDYiIHdpZHRoPSI1IiBoZWlnaHQ9IjE2IiByeD0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNykiLz48cmVjdCBkYXRhLW5hbWU9IlJlY3RhbmdsZSAxMzQ3IiB3aWR0aD0iNSIgaGVpZ2h0PSI3IiByeD0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTQgOSkiLz48L2c+PC9zdmc+");
    background-repeat: no-repeat;
    opacity: .5;
    width: 15px;
    background-size: 90%;
    background-position: 50%;
    margin-right: 5px
}

.TVPriceHistoryTrand {
    margin-left: 5px
}

.TVPriceHistoryTrandUp {
    display: flex;
    align-items: center;
    justify-content: center
}

.TVPriceHistoryTrandUp:before {
    content: "";
    display: block;
    border: 8px solid transparent;
    border-top: 0;
    border-bottom: 8px solid #fb5e51
}

.TVPriceHistoryTrandDown {
    display: flex;
    align-items: center;
    justify-content: center
}

.TVPriceHistoryTrandDown:before {
    content: "";
    display: block;
    border: 8px solid transparent;
    border-bottom: 0;
    border-top: 8px solid #5cb85c
}

.TVPriceHistoryValue {
    cursor: default;
    font-size: 13px;
    color: #5c6672;
    text-align: left;
    text-decoration: line-through
}

.TVPriceHistoryHint {
    padding: 20px
}

.TVProActivationControl {
    padding: 20px;
    display: flex;
    justify-content: space-between;
    background-color: #e2f1fb;
    font-family: var(--tv-font-theme2)
}

.TVProActivationControl .TVProActivationInfoLink {
    margin-left: 5px;
    display: inline-block;
    text-decoration: none
}

.TVProActivationControl .TVProActivationInfoLink:before {
    border-bottom: 1px dashed #31708f;
    content: "Узнать подробнее"
}

.TVProActivationControl .TVProActivationInfo {
    flex-basis: 500px;
    font-size: 13px;
    line-height: 21px;
    color: #31708f
}

.TVProActivationControl .TVProActivationInfo:before {
    content: "Для продолжения работы в режиме менеджера турагентства, необходимо активировать подписку «Tourvisor PRO»"
}

.TVProActivationControl .TVProActivationButton {
    background-color: #185584;
    color: #fff;
    margin: auto 0 auto 10px
}

.TVProActivationControl .TVProActivationButton:before {
    content: "Активировать"
}

@media screen and (max-width: 500px) {
    .TVProActivationControl {
        flex-wrap:wrap
    }

    .TVProActivationControl .TVProActivationButton {
        margin-top: 20px;
        width: 100%
    }
}

.TVRegisterForm {
    padding: 16px 20px;
    background-color: #e2f1fb;
    font-family: var(--tv-font-theme2)
}

.TVRegisterForm .TVRegisterFormBlock {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin: -26px -20px 0 0
}

.TVRegisterForm .TVRegisterFormBlock .TVRegisterFormItem {
    margin: 26px 20px 0 0;
    flex-grow: 1
}

.TVRegisterForm .TVRegisterFormBlock .TVRegisterFormItem:first-child {
    color: #31708f;
    flex-basis: 470px
}

.TVRegisterForm .TVRegisterFormBlock .TVRegisterFormItem:last-child {
    flex-basis: 250px
}

.TVRegisterForm .TVRegisterFormTitle:after {
    content: "Вы сможете бесплатно создавать неограниченное количество персонализированных подборок для ваших туристов, управлять ими, а также работать с обращениями туристов."
}

.TVRegisterForm .TVInput {
    margin: 0
}

.TVRegisterForm .TVDialogButton {
    width: 100%
}

.TVRegisterForm .TVDialogButton .TVWaiterBG {
    border-radius: 20px
}

.TVRegisterForm .TVDialogButton .TVWaiterBG .TVSimpleWaiterDuble:before {
    border-bottom-color: #fff;
    border-top-color: #fff
}

.TVRegisterForm .TVDialogButton .TVWaiterBG .TVSimpleWaiterDuble:after {
    border-right-color: #fff;
    border-top-color: #fff
}

.TVRegisterForm .TVDialogButton:before {
    content: "Зарегистрироваться"
}

.TVRegisterFormTitle {
    font-size: 13px;
    line-height: 21px
}

.TVRegisterFormTitle:before {
    content: "Регистрация менеджера турагентства";
    display: block;
    font-weight: 700
}

.TVRegisterFormTitle:after {
    margin-top: 12px;
    display: block
}

.TVRegisterFormTitle.TVError {
    color: #e31e22
}

.TVRegisterFormTitle.TVError:after {
    content: ""
}

.TVListCarts .TVInputRadio {
    padding: 15px 0;
    border-bottom: 1px solid #ddd
}

.TVListCarts .TVCartListItem {
    display: flex;
    justify-content: space-between
}

.TVListCarts .TVCartListItemName {
    font-size: 13px;
    color: #333
}

.TVListCarts .TVCartListItemDate {
    font-size: 10px;
    color: #777
}

.TVSelectCartControl {
    height: 100%
}

.TVSelectCartControl .TVSelectCartActionsContainer {
    padding-top: 8px;
    display: flex
}

.TVSelectCartControl .TVSelectCartBtn {
    flex: 1;
    padding: 10px;
    border-radius: 20px;
    text-align: center;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    cursor: pointer
}

.TVSelectCartControl .TVSelectCartDelete {
    border: 1px solid #ddd;
    color: #777;
    background: #efefef;
    margin-right: 20px
}

.TVSelectCartControl .TVSelectCartDelete:before {
    content: "Удалить"
}

.TVSelectCartControl .TVSelectCartLoad {
    background: #185584;
    color: #fff
}

.TVSelectCartControl .TVSelectCartLoad:before {
    content: "Загрузить"
}

.TVSelectCartControl .TVDisabled {
    opacity: .7;
    cursor: default
}

.TVSelectCartControl .TVTabName {
    cursor: pointer
}

.TVSelectCartControl .TVSelectCartList {
    height: calc(100% - 48px)
}

.TVLoadDialog {
    width: 540px
}

.TVLoadDialog .TVDialogBody {
    padding: 10px 20px 20px;
    box-sizing: border-box;
    height: 600px
}

.TVLoadDialog .TVTabbedListBody.TVTabbedListBodyWithTabs {
    padding-right: 10px
}

.TVLoadDialog .TVDialogHeader:after {
    content: "Загрузка подборки туров"
}

.TVMobilePanelBody .TVSelectCartControl {
    padding: 10px 20px 20px;
    box-sizing: border-box
}

.TVShortLoginPassword .TVRegisterFormTitle {
    padding-bottom: 16px
}

.TVShortLoginPassword .TVRegisterFormTitle:after {
    content: "На указанный Вами электронный ящик был отправлен пароль для входа, скопируйте его, вставьте в поле «введите пароль» и войдите в систему."
}

.TVShortLoginPassword .TVRegisterFormTitle.TVError:after {
    content: "Неправильный пароль."
}

.TVShortLoginPassword .TVRegisterFormTitle.TVResend:after {
    content: "Пароль отправлен повторно."
}

.TVShortLoginPassword .TVCartFormAction.TVResend:before {
    content: "Отправить повторно"
}

.TVShortLoginPassword .TVCartFormAction.TVChangeEmail:before {
    content: "Изменить почту";
    margin-left: 20px
}

.TVShortLoginPassword .TVDialogButton:before {
    content: "Войти"
}

.TVShowMyCartsControl {
    font-family: var(--tv-font-theme2);
    max-width: 500px;
    height: 125px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: auto;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0
}

.TVShowMyCartsControl .TVShowMyCartsButtons {
    width: 300px;
    display: flex;
    justify-content: space-around;
    margin-top: 20px
}

.TVShowMyCartsControl .TVShowMyCartsText {
    font-size: 30px;
    text-align: center
}

.TVShowMyCartsControl .TVShowMyCartsControlButton {
    border-radius: 20px;
    padding: 10px;
    text-align: center;
    font-size: 13px;
    cursor: pointer;
    width: 140px;
    height: 40px;
    box-sizing: border-box
}

.TVShowMyCartsControl .TVShowMyCartsControlMyCarts:before {
    content: "Мои подборки"
}

.TVShowMyCartsControl .TVShowMyCartsControlInfoLink {
    background: #efefef;
    color: #777;
    border: 1px solid #ddd;
    text-decoration: none
}

.TVShowMyCartsControl .TVShowMyCartsControlInfoLink:before {
    content: "Инструкция"
}

.TVShowcaseForm .TVShowcaseButtons {
    justify-content: space-between;
    display: flex;
    margin-bottom: 19.5px
}

.TVShowcaseForm .TVShowcaseButtons .TVDialogButton {
    width: 45%;
    margin: 0
}

.TVShowcaseForm .TVShowcaseButtons .TVDialogButton:first-child:before {
    content: "На принтер"
}

.TVShowcaseForm .TVShowcaseButtons .TVDialogButton:last-child:before {
    content: "На экран"
}

.TVShowcaseForm .TVShowcaseCheck {
    margin: 10px 0;
    padding: 10px;
    background-color: #efefef;
    border-radius: 2px;
    color: #777;
    height: 40px;
    box-sizing: border-box
}

.TVShowcaseForm .TVShowcaseCheck .TVCheckBox {
    font-size: 13px;
    display: block
}

.TVShowcaseForm .TVShowcaseCheck .TVCheckBox:hover {
    color: #777
}

.TVShowcaseFormControl .TVDialogHeader:after {
    content: "Вывести витрину туров"
}

.TVShowcasePage .TVShowcaseForm {
    margin: 20px
}

.TVSmsForm .TVShortLink {
    margin: 10px 0;
    padding: 10px;
    background-color: #efefef;
    border-radius: 2px;
    color: #777;
    height: 40px;
    box-sizing: border-box
}

.TVSmsForm .TVShortLink .TVCheckBox {
    font-size: 13px;
    display: block
}

.TVSmsForm .TVShortLink .TVCheckBox:hover {
    color: #777
}

.TVSmsForm .TVFailMessage {
    color: #e31e22;
    text-align: center;
    margin-top: 20px
}

.TVSmsForm .TVFailMessage:after {
    content: "Неправильные данные"
}

.TVSmsForm .TVMessageInfo {
    color: #777;
    font-size: 10px;
    margin: 12px 0 18px;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 3px
}

.TVSmsForm .TVMessageInfo .TVTextCounter:before {
    content: "Количество символов: "
}

.TVSmsForm .TVMessageInfo .TVMessageCounter:before {
    content: "("
}

.TVSmsForm .TVMessageInfo .TVMessageCounter:after {
    content: " смс, лимит -"
}

.TVSmsForm .TVMessageInfo .TVMessageLimit:after {
    content: " смс)"
}

.TVSmsForm textarea {
    height: 100px
}

.TVSmsForm .TVDialogButton:before {
    content: "Отправить"
}

.TVSmsFormControl .TVDialogHeader:after {
    content: "Отправить SMS"
}

.TVMobilePanelBody .TVSmsFormControl {
    margin: 20px;
    box-sizing: border-box
}

.TVCartTourContainer .TVCartOperator img {
    height: 25px
}

.TVCartTourContainer .TVCartOperator .TVCartOperatorLink {
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNSIgaGVpZ2h0PSIxMi42MzMiPjxwYXRoIGRhdGEtbmFtZT0iUGF0aCAxMzUiIGQ9Ik04LjgzNyAxMS40MDhjLjc3Mi0uMDY1IDEuNzU0LS4wNjMgMi42MjQtLjA2M2gxLjEyNXYtLjA2M2guMTg3di0uMDYzaC4xMjV2LS4wNjJoLjEyNmwuMDYyLS4xMjZoLjEyNWwuMTg4LS4yNTJoLjA2MnYtLjEyNmwuMTI1LS4wNjNhNC4yNjQgNC4yNjQgMCAwMC4xODctMS44MjhWNC4xMDFhNC4yNzkgNC4yNzkgMCAwMC0uMzEyLTIuMjY5bC0uMjUtLjE4OVYxLjU4aC0uMTI1YTcuMzI2IDcuMzI2IDAgMDEtLjA2Mi0uMTI2aC0uMTI1di0uMDYyaC0uMTI1di0uMDYzaC0uMTg3di0uMDYzaC0uOTM4YTkuNTM2IDkuNTM2IDAgMDEtMi44MTItLjEyNiAzLjIyIDMuMjIgMCAwMS0uMDYyLS45NDVjLjA3MS0uMDcyLjAyNCAwIC4wNjItLjEyNi43MTEtLjA3MSAxLjYyOC0uMDYzIDIuNDM3LS4wNjNoMXYuMDYzbC44MTIuMDYzdi4wNjNoLjEyNXYuMDYzaC4xMjV2LjA2M2guMTI2di4wNjJoLjEyNXYuMDYzaC4xMjVsLjEyNS4xODloLjEyNWwuMzEzLjM3OC4xMjUuMDYyYy42MTMuODc0LjU2MiAxLjczNy41NjIgMy4yMTV2NC4xNTlhNy43NjYgNy43NjYgMCAwMS0uMDYyIDIuMDhoLS4wNjJ2LjE4OWgtLjA2MnYuMTg5aC0uMDYydi4xMjZoLS4wNjJ2LjEyNmwtLjEyNi4wNjJ2LjEyNmwtLjEyNS4wNjN2LjEyNmwtLjEyNS4wNjItLjMxMy4zNzhoLS4xMjVsLS4xMjUuMTg5aC0uMTI1di4wNjNsLS4zNzUuMTI2di4wNjNsLS4zNzUuMDYzdi4wNjNsLTIuMzc0LjA2M2MtLjQ3NCAwLTEuNTI2LjEzMy0xLjY4Ny0uMTg5di0uODgyYy4wNjktLjA3NC4wMjItLjAwMi4wNi0uMTI3ek01LjAyNSA4LjgyNGMtMS41NTEgMC0zLjIzNy4wMDktNC42ODctLjA2M2wtLjMxMy0uMzc4VjUuMzU4YzAtLjMtLjA5LS45NTkuMDYzLTEuMTM1YS40NS40NSAwIDAxLjUtLjM3OGMuMTgxLS4xNjEuODc5LS4wNjMgMS4xODctLjA2M2gzLjI0OVYxLjU3NmMwLS4yNDQtLjA1Ny0uNjgyLjA2Mi0uODJhLjQ1MS40NTEgMCAwMS41LS4zNzhWLjMxNmguMDYzdi4wNjJoLjI0OWw1LjYyNCA1LjczNnYuMzc3bC0xLjM3NSAxLjQ1LTIuODEyIDIuNzczLTEuMDYyIDEuMDcxYy0uMi4yLS4yMzQuNDE0LS42MjQuNDQxdi4wNjNoLS4wNjN2LS4wNjNoLS4yNDlsLS4zMTMtLjM3OHoiIGZpbGw9IiNhYWEiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==");
    background-repeat: no-repeat;
    background-position: 50%;
    cursor: pointer;
    display: inline-block;
    text-decoration: none;
    width: 15px;
    height: 25px;
    margin-right: 5px
}

.TVCartTourContainer .TVCartTourParams {
    position: relative;
    line-height: 20px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    word-break: break-word;
    text-align: left;
    font-size: 13px;
    font-weight: 400;
    color: #5c6672;
    max-width: 200px
}

.TVCartTourContainer .TVCartTourParams .TVCartTourRoom {
    white-space: normal
}

.TVCartTourContainer .TVCartTourParams .TVCartTourRoom>div {
    display: inline-block;
    margin-left: 3px
}

.TVCartTourContainer .TVCartTourParams .TVCartTourDate {
    font-weight: 600;
    color: #333
}

.TVCartTourContainer .TVCartTourParams .TVCartTourDate:after {
    content: " нч";
    color: #333
}

.TVCartTourContainer .TVCartEditTourBlock {
    position: relative;
    margin-top: 10px
}

.TVCartTourContainer .TVCartTourPriceBlock {
    display: flex;
    align-items: flex-end;
    justify-content: space-between
}

.TVCartTourContainer .TVCartTourPrices {
    max-width: 150px;
    display: inline-block;
    position: relative
}

.TVCartTourContainer .TVCartTourPriceWaiterBlock {
    display: flex;
    width: 150px
}

.TVCartTourContainer .TVCartTourPriceWaiter {
    display: flex;
    align-items: center
}

.TVCartTourContainer .TVCartTourPriceWaiterContent {
    font-size: 11px;
    width: 120px;
    margin-left: 5px;
    color: #777
}

.TVCartTourContainer .TVCartTourPriceHistory {
    display: flex
}

.TVCartTourContainer .TVCartTourPrice {
    height: 30px;
    display: flex;
    align-items: center
}

.TVCartTourContainer .TVCartTourPriceValue {
    font-size: 16px;
    font-weight: 700;
    color: #000;
    height: 18px;
    display: flex;
    align-items: center;
    white-space: nowrap
}

.TVCartTourContainer .TVCartTourCurrency {
    font-size: 10px;
    text-transform: uppercase;
    color: #5c6672;
    margin-left: 5px;
    height: 18px;
    display: flex;
    align-items: flex-end
}

.TVCartTourContainer .TVCartPriceButtons {
    display: inline-flex
}

.TVCartTourContainer .TVCartButton {
    height: 30px;
    position: relative;
    text-transform: uppercase;
    font-weight: 600;
    font-size: 10px;
    text-align: center;
    cursor: pointer
}

.TVCartTourContainer .TVCartButton:hover {
    opacity: .9
}

.TVCartTourContainer .TVCartButton:active {
    box-shadow: none
}

.TVCartTourContainer .TVCartButton.TVDisabled {
    pointer-events: none;
    cursor: default
}

.TVCartTourContainer .TVCartBook {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    border-radius: 30px;
    padding: 0;
    font-size: 10px;
    text-decoration: none
}

.TVCartTourContainer .TVCartBook:before {
    content: "Подробнее"
}

.TVCartTourContainer .TVCartDel {
    box-sizing: border-box;
    background-color: #edf2f5;
    border-radius: 30px;
    padding: 5px;
    display: flex;
    align-items: center
}

.TVCartTourContainer .TVCartDel:after {
    display: block;
    width: 20px;
    height: 20px;
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMy4xMDIiIGhlaWdodD0iMTQuMTkyIj48cGF0aCBkPSJNOS44NSAxLjkyNWgyLjI2M2MuNCAwIC43NTctLjA0Ni45MDUuMi4wODEuMDc2LjA4NS4yLjA4My4zNjFoLS4wNDJ2LjEybC0uMTY1LjEyYy0uMTQ2LjE0NC0uNjY1LjA4NS0uOTQ3LjA4MS0uMDMyLjM2OC0uMDIxLjk2MS0uMDgyIDEuMzIycy4wNDcuODE5LS4wNDIgMS4xMjJ2MS4xNjNoLS4wNHYxLjE2MmgtLjA0MnYxLjE2M0gxMS43VjkuOWgtLjA0djEuMmgtLjA0MnYuODQybC0uMDgzIDEuMjgzaC0uMDR2LjEyaC0uMDQyYTQuNzE2IDQuNzE2IDAgMDEtLjA0Mi4xNmgtLjA0di4wOGwtLjEyMy4wODF2LjA4aC0uMDQybC0uMDgyLjEyYTMuMiAzLjIgMCAwMS0xLjk3Ni4zMjFoLTUuNmEyLjc4NCAyLjc4NCAwIDAxLTEuNC0uMiA4LjcwMyA4LjcwMyAwIDAwLS4wODMtLjEyMWgtLjA4MmMtLjA0Mi0uMDUyLS4wODItLjEwNi0uMTIzLS4xNTloLS4wNDJ2LS4wODFsLS4wODItLjA0di0uMDhIMS43bC0uMDQtLjE2aC0uMDQydi0uMTJoLS4wNDJ2LS4xNmgtLjA0MXYtLjhIMS41VjExLjFoLS4wNDFWOS45MzhoLS4wNDJWOC43NzVoLS4wNHYtMS4yaC0uMDQyVjYuNDEzaC0uMDQyVjUuMjVhNy4xNTIgNy4xNTIgMCAwMS0uMDQtMS4wODJjLS4wMzUtLjM4NS0uMDQ2LS45NzctLjA4My0xLjM2My0uNDI2LjAxLS45MTQuMDYxLTEuMDctLjJhLjUyLjUyIDAgMDEtLjA4Mi0uNEguMDZ2LS4wODFsLjEyMy0uMDguMDQtLjA4aC4xMjN2LS4wNGgyLjkyM0EyLjgyIDIuODIgMCAwMTMuNDc0LjQwMUwzLjU5Ny4zMiAzLjY3OS4yQTIuNzQ1IDIuNzQ1IDAgMDE1LjEyIDBIOGEyLjczIDIuNzMgMCAwMTEuNDQuMiA1LjEgNS4xIDAgMDAuMDgzLjEyYy4zNzIuMzY2LjMzNS44OC4zMjcgMS42MDV6bS01LjY3OCAwaDQuNzczVi45NjNhNC4yNTIgNC4yNTIgMCAwMC0xLjQ0LS4wODFINC4yNTRhMi40MyAyLjQzIDAgMDEtLjA0Mi4xMiAzLjA2OSAzLjA2OSAwIDAwLS4wNC45MjN6bS0yLjEuODgybC4wNDIuODQydi41MjFoLjA0MnYxLjE2M2guMDQydjEuMTYyaC4wNHYxLjE2M2guMDQxdjEuMTYzaC4wNDJ2MS4xNjJoLjA0djEuMmguMDQydi40NGMwIC4yNzQuMDIyLjU4OC4wNDIuOHYuNTYxaC4wNHYuMDhoLjA0MmMuMDE0LjA0LjAyNy4wODEuMDQyLjEybC4xMjMuMDR2LjA0aC4wODJ2LjA0SDEwLjN2LS4wNGguMTIzdi0uMDRsLjEyMy0uMDQuMDQyLS4xMmguMDR2LS4xMmguMDQydi0uNjQxaC4wNDJWMTEuMTRoLjA0VjkuOTc3aC4wNDJWOC44MmguMDQyVjcuNjU3aC4wNFY2LjQ5NGguMDQyVjUuMzMyaC4wNDJWNC4xN0gxMXYtLjUyMWwuMDQxLS44NDJ6bTEuOTc2IDEuMTYyYy4xMjggMCAuMy0uMDE5LjM3LjA0YS4yOS4yOSAwIDAxLjI0Ny4zMjFjLjA3OS4wODcuMDQyLjM2NS4wNDIuNTIxdjQuODFjMCAuNzEzLjAyMiAxLjUxNS0uMDQyIDIuMTY0LS4wNjguMDM5LS4xNzguMTg4LS4yMDUuMmgtLjQxMmMtLjA0Ny0uMDQ1IDAtLjAxNS0uMDgzLS4wMzlhMi42NjkgMi42NjkgMCAwMS0uMTY1LS4yNFY1LjkzM2E2LjQ4NSA2LjQ4NSAwIDAxLjA4My0xLjg0NC41NTQuNTU0IDAgMDAuMTY1LS4xMnptMi44MzkuMDgxbC4wNDIuMTJoLjA0MXYuMDhoLjA0MXY3LjVINi45N3YuMDhoLS4wNDFjLS4wMTQuMDQtLjAyNy4wODEtLjA0Mi4xMmgtLjA4MmwtLjA0Mi4wOGgtLjQxMmMtLjA4MS0uMTItLjExNi0uMDM3LS4xNjQtLjItLjExOC0uMS0uMDgzLS4zMDktLjA4My0uNTIxVjQuMjU0aC4wNDJ2LS4wOGguMDQybC4wNC0uMTJjLjA5Mi0uMDI0LjM1Ni0uMTU2LjUzNS0uMDgxbC4wNDIuMDgxem0xLjgxMS0uMDgxYTIuMjMgMi4yMyAwIDAxLjQ1Mi4wNC44OS44OSAwIDAwLjE2NS4yVjkuMThhMTUuMDg0IDE1LjA4NCAwIDAxLS4wODIgMi43MjYuODIyLjgyMiAwIDAxLS41MzUuMTE5bC0uMjQ3LS4ydi0uMTJoLS4wNDJWNC4yOWguMDQydi0uMTJ6IiBmaWxsPSIjNzc3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=");
    background-repeat: no-repeat;
    background-position: 50%
}

.TVCartTourContainer .TVCartDelConfirm {
    width: 100%;
    box-sizing: border-box;
    color: #5c6672;
    background-color: #edf2f5;
    border-radius: 30px;
    padding: 0 30px 0 15px;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVCartTourContainer .TVCartDelConfirm:before {
    content: "Удалить";
    font-size: 10px
}

.TVCartTourContainer .TVCartDelConfirm:after {
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    box-sizing: border-box;
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMy4xMDIiIGhlaWdodD0iMTQuMTkyIj48cGF0aCBkPSJNOS44NSAxLjkyNWgyLjI2M2MuNCAwIC43NTctLjA0Ni45MDUuMi4wODEuMDc2LjA4NS4yLjA4My4zNjFoLS4wNDJ2LjEybC0uMTY1LjEyYy0uMTQ2LjE0NC0uNjY1LjA4NS0uOTQ3LjA4MS0uMDMyLjM2OC0uMDIxLjk2MS0uMDgyIDEuMzIycy4wNDcuODE5LS4wNDIgMS4xMjJ2MS4xNjNoLS4wNHYxLjE2MmgtLjA0MnYxLjE2M0gxMS43VjkuOWgtLjA0djEuMmgtLjA0MnYuODQybC0uMDgzIDEuMjgzaC0uMDR2LjEyaC0uMDQyYTQuNzE2IDQuNzE2IDAgMDEtLjA0Mi4xNmgtLjA0di4wOGwtLjEyMy4wODF2LjA4aC0uMDQybC0uMDgyLjEyYTMuMiAzLjIgMCAwMS0xLjk3Ni4zMjFoLTUuNmEyLjc4NCAyLjc4NCAwIDAxLTEuNC0uMiA4LjcwMyA4LjcwMyAwIDAwLS4wODMtLjEyMWgtLjA4MmMtLjA0Mi0uMDUyLS4wODItLjEwNi0uMTIzLS4xNTloLS4wNDJ2LS4wODFsLS4wODItLjA0di0uMDhIMS43bC0uMDQtLjE2aC0uMDQydi0uMTJoLS4wNDJ2LS4xNmgtLjA0MXYtLjhIMS41VjExLjFoLS4wNDFWOS45MzhoLS4wNDJWOC43NzVoLS4wNHYtMS4yaC0uMDQyVjYuNDEzaC0uMDQyVjUuMjVhNy4xNTIgNy4xNTIgMCAwMS0uMDQtMS4wODJjLS4wMzUtLjM4NS0uMDQ2LS45NzctLjA4My0xLjM2My0uNDI2LjAxLS45MTQuMDYxLTEuMDctLjJhLjUyLjUyIDAgMDEtLjA4Mi0uNEguMDZ2LS4wODFsLjEyMy0uMDguMDQtLjA4aC4xMjN2LS4wNGgyLjkyM0EyLjgyIDIuODIgMCAwMTMuNDc0LjQwMUwzLjU5Ny4zMiAzLjY3OS4yQTIuNzQ1IDIuNzQ1IDAgMDE1LjEyIDBIOGEyLjczIDIuNzMgMCAwMTEuNDQuMiA1LjEgNS4xIDAgMDAuMDgzLjEyYy4zNzIuMzY2LjMzNS44OC4zMjcgMS42MDV6bS01LjY3OCAwaDQuNzczVi45NjNhNC4yNTIgNC4yNTIgMCAwMC0xLjQ0LS4wODFINC4yNTRhMi40MyAyLjQzIDAgMDEtLjA0Mi4xMiAzLjA2OSAzLjA2OSAwIDAwLS4wNC45MjN6bS0yLjEuODgybC4wNDIuODQydi41MjFoLjA0MnYxLjE2M2guMDQydjEuMTYyaC4wNHYxLjE2M2guMDQxdjEuMTYzaC4wNDJ2MS4xNjJoLjA0djEuMmguMDQydi40NGMwIC4yNzQuMDIyLjU4OC4wNDIuOHYuNTYxaC4wNHYuMDhoLjA0MmMuMDE0LjA0LjAyNy4wODEuMDQyLjEybC4xMjMuMDR2LjA0aC4wODJ2LjA0SDEwLjN2LS4wNGguMTIzdi0uMDRsLjEyMy0uMDQuMDQyLS4xMmguMDR2LS4xMmguMDQydi0uNjQxaC4wNDJWMTEuMTRoLjA0VjkuOTc3aC4wNDJWOC44MmguMDQyVjcuNjU3aC4wNFY2LjQ5NGguMDQyVjUuMzMyaC4wNDJWNC4xN0gxMXYtLjUyMWwuMDQxLS44NDJ6bTEuOTc2IDEuMTYyYy4xMjggMCAuMy0uMDE5LjM3LjA0YS4yOS4yOSAwIDAxLjI0Ny4zMjFjLjA3OS4wODcuMDQyLjM2NS4wNDIuNTIxdjQuODFjMCAuNzEzLjAyMiAxLjUxNS0uMDQyIDIuMTY0LS4wNjguMDM5LS4xNzguMTg4LS4yMDUuMmgtLjQxMmMtLjA0Ny0uMDQ1IDAtLjAxNS0uMDgzLS4wMzlhMi42NjkgMi42NjkgMCAwMS0uMTY1LS4yNFY1LjkzM2E2LjQ4NSA2LjQ4NSAwIDAxLjA4My0xLjg0NC41NTQuNTU0IDAgMDAuMTY1LS4xMnptMi44MzkuMDgxbC4wNDIuMTJoLjA0MXYuMDhoLjA0MXY3LjVINi45N3YuMDhoLS4wNDFjLS4wMTQuMDQtLjAyNy4wODEtLjA0Mi4xMmgtLjA4MmwtLjA0Mi4wOGgtLjQxMmMtLjA4MS0uMTItLjExNi0uMDM3LS4xNjQtLjItLjExOC0uMS0uMDgzLS4zMDktLjA4My0uNTIxVjQuMjU0aC4wNDJ2LS4wOGguMDQybC4wNC0uMTJjLjA5Mi0uMDI0LjM1Ni0uMTU2LjUzNS0uMDgxbC4wNDIuMDgxem0xLjgxMS0uMDgxYTIuMjMgMi4yMyAwIDAxLjQ1Mi4wNC44OS44OSAwIDAwLjE2NS4yVjkuMThhMTUuMDg0IDE1LjA4NCAwIDAxLS4wODIgMi43MjYuODIyLjgyMiAwIDAxLS41MzUuMTE5bC0uMjQ3LS4ydi0uMTJoLS4wNDJWNC4yOWguMDQydi0uMTJ6IiBmaWxsPSIjNzc3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=");
    background-repeat: no-repeat;
    background-position: 50%
}

.TVCartTourContainer .TVCartComment {
    width: 30px;
    box-sizing: border-box;
    background-color: #edf2f5;
    border-radius: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 400
}

.TVCartTourContainer .TVCartComment:before {
    color: #5c6672;
    font-size: 14px;
    line-height: 14px;
    font-family: TVicons;
    content: "\f0e5"
}

.TVCartTourContainer.TVMobile .TVCartTourAlternativeTour {
    margin-top: 19px
}

.TVCartTourContainer.TVMobile .TVCartTourComment {
    margin-top: 19px;
    padding: 10px;
    overflow: hidden;
    text-overflow: ellipsis
}

.TVCartTourContainer.TVMobile .TVCartTourDetailsBlock {
    position: relative;
    padding-bottom: 16px;
    margin-top: 16px;
    border-bottom: 1px dashed rgba(92,102,114,.4)
}

.TVCartTourContainer.TVMobile .TVCartTourDetailsBlock:first-child {
    padding-top: 0;
    margin-top: 0
}

.TVCartTourContainer.TVMobile .TVCartTourDetailsBlock:last-child {
    border: none;
    padding-bottom: 0
}

.TVCartTourContainer.TVMobile .TVCartTourDetailsBlock .TVCartOperator {
    display: flex
}

.TVCartTourContainer.TVMobile .TVCartTourDetailsBlock .TVCartOperator .TVCartOperatorLink:before {
    vertical-align: bottom
}

.TVCartTourContainer.TVMobile .TVCartTourDetailsBlock .TVCartTourParams {
    text-align: left;
    font-size: 13px;
    color: #5c6672;
    max-width: 75%
}

.TVCartTourContainer.TVMobile .TVCartTourDetailsBlock .TVCartTourParams .TVCartTourDate {
    font-weight: 600;
    color: #333
}

.TVCartTourContainer.TVMobile .TVCartTourDetailsBlock .TVCartEditTourBlock {
    display: inline-flex;
    width: 100%;
    justify-content: space-between;
    align-items: flex-end
}

.TVCartTourContainer.TVMobile .TVCartTourDetailsBlock .TVCartEditTourBlock .TVCartPriceButtons {
    margin-left: 10px
}

.TVCartTourContainer.TVMobile .TVCartTourDetailsBlock .TVCartEditTourBlock .TVCartPriceButtons .TVCartDel {
    margin-right: 10px
}

.TVCartTourContainer.TVMobile .TVCartTourDetailsBlock .TVCartEditTourBlock .TVCartPriceButtons .TVCartDel.TVNoTourMobile {
    width: auto;
    padding: 0 10px;
    margin-right: 0
}

.TVCartTourContainer.TVMobile .TVCartTourDetailsBlock .TVCartEditTourBlock .TVCartPriceButtons .TVCartDel.TVNoTourMobile:after {
    margin-left: 5px
}

.TVCartTourContainer.TVMobile .TVCartTourDetailsBlock .TVCartEditTourBlock .TVCartPriceButtons .TVCartDel.TVNoManager:after {
    content: none
}

.TVCartTourContainer.TVMobile .TVCartTourDetailsBlock .TVCartEditTourBlock .TVCartPriceButtons .TVCartBook {
    width: 90px;
    height: 30px
}

.TVCartTourContainer.TVMobile .TVCartTourDetailsBlock .TVCartEditTourBlock .TVCartPriceButtons .TVCartBook.TVCartTourButtonSmall {
    width: 30px;
    background-color: #5c6672;
    line-height: 14px
}

.TVCartTourContainer.TVMobile .TVCartTourDetailsBlock .TVCartEditTourBlock .TVCartPriceButtons .TVCartBook.TVCartTourButtonSmall:before {
    font-family: TVicons;
    content: "\e906";
    color: #fff;
    font-size: 16px;
    width: 13px
}

.TVCartTourContainer.TVMobile .TVCartTourPriceValue {
    font-size: 18px
}

.TVCartTourContainer.TVMobile .TVCartComment {
    margin-right: 10px
}

.TVCartTourContainer.TVMobile .TVCartTourPriceBlock .TVCartTourLikeStatus {
    margin-left: 10px
}

.TVCartTourContainer.TVMobile .TVCartFavorite,.TVCartTourContainer.TVMobile .TVCartPriceButtons .TVCartTourLikeStatus {
    margin-right: 10px
}

.TVCartTourContainer.TVMobile .TVCartTourPriceWaiterBlock {
    width: 100px
}

.TVCartTourContainer.TVDesktop .TVCartTourData {
    display: flex
}

.TVCartTourContainer.TVDesktop .TVCartTourComment {
    min-height: 16px;
    padding: 5px 10px;
    overflow: hidden;
    text-overflow: ellipsis
}

.TVCartTourContainer.TVDesktop .TVCartTourDetailsBlock {
    border-bottom: 1px dashed rgba(92,102,114,.4);
    display: block;
    justify-content: space-between;
    flex-grow: 1;
    padding-bottom: 20px;
    margin-bottom: 20px
}

.TVCartTourContainer.TVDesktop .TVCartTourDetailsBlock:first-child {
    padding-top: 0
}

.TVCartTourContainer.TVDesktop .TVCartTourDetailsBlock:last-child {
    border: none;
    padding-bottom: 0;
    margin-bottom: 0
}

.TVCartTourContainer.TVDesktop .TVCartTourDetailsBlock .TVCartTourDetails {
    display: flex;
    flex-direction: column-reverse;
    justify-content: flex-end;
    flex-grow: 1;
    margin-right: 5px
}

.TVCartTourContainer.TVDesktop .TVCartTourDetailsBlock .TVCartTourDetails .TVCartOperator {
    text-align: left;
    margin-bottom: 5px;
    display: inline-flex;
    width: 160px;
    align-items: center
}

.TVCartTourContainer.TVDesktop .TVCartTourDetailsBlock .TVCartTourComplexBlock {
    position: relative
}

.TVCartTourContainer.TVDesktop .TVCartTourDetailsBlock .TVCartEditTourBlock {
    display: flex;
    flex-direction: column;
    margin-top: 0;
    min-width: 130px
}

.TVCartTourContainer.TVDesktop .TVCartTourDetailsBlock .TVCartEditTourBlock .TVCartPriceButtons {
    margin-top: 10px;
    justify-content: space-between
}

.TVCartTourContainer.TVDesktop .TVCartTourDetailsBlock .TVCartEditTourBlock .TVCartPriceButtons .TVCartDel {
    margin-left: 10px
}

.TVCartTourContainer.TVDesktop .TVCartTourDetailsBlock .TVCartEditTourBlock .TVCartPriceButtons .TVCartBook {
    width: 110px
}

.TVCartTourContainer.TVDesktop .TVCartTourDetailsBlock .TVCartEditTourBlock .TVCartPriceButtons .TVCartBook:before {
    content: "Подробнее";
    text-transform: uppercase
}

.TVCartTourContainer.TVDesktop .TVCartTourDetailsBlock .TVCartEditTourBlock .TVCartPriceButtons .TVCartBook.TVNoTour {
    background-color: #777;
    color: #fff;
    opacity: .5
}

.TVCartTourContainer.TVDesktop .TVCartTourDetailsBlock .TVCartEditTourBlock .TVCartPriceButtons .TVCartBook.TVNoTour:before {
    content: "Тур продан"
}

.TVCartTourContainer.TVDesktop .TVCartTourDetailsBlock .TVCartEditTourBlock .TVCartPriceButtons.TVCartTourButtonFullWidth .TVCartBook {
    width: 100%
}

.TVCartTourContainer.TVDesktop .TVCartComment,.TVCartTourContainer.TVDesktop .TVCartFavorite,.TVCartTourContainer.TVDesktop .TVCartTourLikeStatus {
    margin-left: 10px
}

.TVTourItemCurrency {
    color: #5c6672;
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    margin-top: 8px;
    line-height: 10px
}

.TVCartTourViewCount {
    color: #5c6672;
    line-height: 30px;
    font-size: 13px;
    margin-left: 10px;
    display: flex;
    align-items: center;
    pointer-events: none
}

.TVCartTourViewCount:before {
    font-family: TVicons;
    content: "\e94c";
    font-size: 19px;
    margin-right: 3px
}

.TVCartTourComment {
    background-color: #e2f1fb;
    color: #31708f;
    font-size: 13px;
    line-height: 20px;
    padding: 5px 10px;
    border-radius: 6px;
    margin-top: 10px;
    display: flex;
    width: auto;
    height: auto;
    white-space: pre-wrap
}

.TVCartTourComment:before {
    font-size: 20px;
    line-height: 20px;
    margin-right: 10px;
    font-family: TVicons;
    content: "\f0e5"
}

.TVCartEditCommentPanel {
    resize: none;
    min-height: 80px;
    padding: 5px 10px;
    background-color: #e2f1fb;
    color: #31708f;
    border-radius: 4px;
    display: inline-block;
    width: 300px;
    margin-top: 5px;
    font-size: 12px;
    box-shadow: none
}

.TVNoTourOpacity {
    opacity: .5
}

.TVCartTourLikeStatus {
    height: 30px;
    width: 30px;
    min-width: 30px;
    border-radius: 30px;
    background-color: #edf2f5;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVCartTourLikeStatus.TVActive .TVCartTourLikeIcon,.TVCartTourLikeStatus.TVCartTourLikeStatusHover:hover .TVCartTourLikeIcon {
    fill: #fff
}

.TVCartTourLikeStatus.TVCartTourLikeStatusHover {
    cursor: pointer
}

.TVCartTourLikeStatus.TVCartTourLikeStatusHover:hover {
    opacity: .5
}

.TVCartTourLikeStatus.TVCartTourLikeStatusHover.TVActive:hover {
    opacity: .8
}

.TVCartTourLikeIcon {
    fill: #5c6672;
    height: 14px;
    width: 14px;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVCartTourDislike {
    transform: scaleY(-1)
}

.TVCartTourDislike.TVActive,.TVCartTourDislike.TVCartTourLikeStatusHover:hover {
    background-color: #fb5e51
}

.TVCartTourLike.TVActive,.TVCartTourLike.TVCartTourLikeStatusHover:hover {
    background-color: #55af59
}

.TVCartFavorite {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    min-width: 30px;
    border-radius: 30px;
    background-color: #edf2f5;
    -webkit-tap-highlight-color: transparent
}

.TVCartTourFlights {
    margin-top: 15px
}

.TVCartTourPriceFixed {
    display: flex;
    align-items: center;
    margin-bottom: 5px;
    cursor: default
}

.TVCartTourFixPriceIcon {
    fill: #5c6672;
    opacity: .4
}

.TVCartTourFixPriceContent {
    color: #5c6672;
    opacity: .4;
    font-size: 13px;
    margin-left: 5px
}

.TVTourListControl {
    display: flex;
    flex-direction: column;
    flex-grow: 1
}

.TVTourListControl>div:last-child {
    border-bottom: none
}

.TVTourPrint {
    font-family: var(--tv-font-theme1);
    font-weight: 700;
    overflow: hidden;
    padding-top: 80px;
    text-align: center;
    line-height: normal;
    width: 900px;
    margin: 0 auto
}

.TVTourPrint .TVTourPrintCountry {
    font-size: 110px
}

.TVTourPrint .TVTourPrintDeparture {
    font-size: 61px;
    margin-top: 50px
}

.TVTourPrint .TVTourPrintStars {
    font-size: 160px;
    margin-top: 120px
}

.TVTourPrint .TVTourPrintStars:after {
    content: "*"
}

.TVTourPrint .TVTourPrintDate {
    margin-top: 30px
}

.TVTourPrint .TVTourPrintDate,.TVTourPrint .TVTourPrintMeal {
    font-size: 48px;
    text-transform: lowercase;
    font-weight: 500
}

.TVTourPrint .TVTourPrintHotel {
    font-size: 48px;
    font-weight: 500;
    height: 116px;
    text-transform: capitalize
}

.TVTourPrint .TVTourPrintDate:after {
    content: " ночей"
}

.TVTourPrint .TVTourPrintPrice {
    font-size: 140px;
    margin-top: 100px;
    text-transform: lowercase
}

.TVTourPrint .TVTourPrintCurrency,.TVTourPrint .TVTourPrintPriceUnit {
    text-transform: lowercase;
    display: inline-block;
    font-size: 64px;
    font-weight: 500
}

.TVTourPrint .TVTourPrintPriceUnit {
    margin-left: 20px
}

@media print {
    .TVTourPrint {
        page-break-after: right
    }

    @page {
        size: A4;
        margin: 0
    }
}

.TVTourPrintHotelEnable.TVTourPrint {
    padding-top: 30px
}

.TVTourPrintHotelEnable .TVTourPrintStars {
    margin-top: 80px
}

.TVShowcaseClose {
    width: 20px;
    height: 20px;
    position: absolute;
    right: 10px;
    top: 10px;
    cursor: pointer
}

.TVShowcaseClose:after {
    font-family: TVicons;
    content: "\e916"
}

@media print {
    .TVShowcaseClose {
        display: none
    }
}

.TVViewProfile {
    display: flex;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    color: #5b6c7d;
    background-color: #fff;
    border-radius: 10px
}

.TVViewProfileLogo,.TVViewProfilePhoto {
    align-self: center;
    background-position: 50%;
    background-repeat: no-repeat;
    position: relative;
    cursor: pointer
}

.TVViewProfileLogo:before,.TVViewProfilePhoto:before {
    font-size: 10px;
    line-height: 18px;
    text-transform: uppercase;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    white-space: nowrap
}

.TVViewProfileLogo.TVActive:before,.TVViewProfilePhoto.TVActive:before {
    content: ""
}

.TVViewProfilePhoto {
    min-width: 70px;
    min-height: 70px;
    background-size: cover;
    border-radius: 50px;
    box-shadow: 0 0 20px rgba(0,0,0,.118)
}

.TVViewProfilePhoto:before {
    content: "+ Фото"
}

.TVViewProfileLogo {
    width: 180px;
    height: 70px;
    margin-left: auto;
    background-size: contain;
    border: 1px solid #ddd;
    border-radius: 4px
}

.TVViewProfileLogo:before {
    content: "+ Добавить логотип"
}

.TVViewProfileLogo.TVActive {
    border: 0;
    width: 150px
}

.TVViewProfileInfo {
    margin-left: 20px
}

.TVViewProfileInfo:before {
    opacity: .6;
    content: "Ваш персональный менеджер"
}

.TVViewProfileInfo .TVProfileName {
    font-weight: 700;
    color: #333
}

.TVViewProfileInfo .TVProfileInfo {
    white-space: pre-wrap
}

.TVViewProfileEdit {
    margin-top: 7px
}

.TVViewProfileEdit:before {
    content: "Добавить ваше имя и контакты для туристов"
}

@media screen and (max-width: 750px) {
    .TVMobilePanel .TVViewProfile .TVViewProfileLogo {
        display:none
    }
}

.TVProfileContacts {
    margin-top: 18px
}

.TVCartPage .TVMobilePanelBody,.TVCartSideNav {
    height: 100%
}

.TVCartExtraHeader {
    display: flex
}

.TVCartExtraHeader>:not(:first-child) {
    margin-left: 15px
}

.TVCartShareButton,.TVCartSubscribeButton,.TVCartUnsubscribeButton {
    width: 40px;
    height: 40px;
    border-radius: 40px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.2)
}

.TVCartShareButton.TVDisabled,.TVCartSubscribeButton.TVDisabled,.TVCartUnsubscribeButton.TVDisabled {
    pointer-events: none;
    opacity: .5
}

.TVCartMobileShareLinkIcon {
    width: 16px;
    height: 16px;
    fill: var(--tv-main-text-color)
}

.TVCartMobileSubscribeIcon,.TVCartMobileUnsubscribeIcon {
    width: 18px;
    height: 18px;
    fill: var(--tv-main-text-color);
    fill-rule: evenodd
}

.TVCartUnsubscribeButton {
    position: relative
}

.TVCartUnsubscribeButton:after {
    font-family: TVicons;
    content: "\e90b";
    font-size: 9px;
    line-height: 15px;
    text-align: center;
    width: 15px;
    height: 15px;
    border-radius: 15px;
    background-color: #fb5e51;
    color: #fff;
    position: absolute;
    top: 6px;
    right: 0
}

.TVBaseDialogPage.TVCartEditCustomerPage .TVMobilePanelCaption:before {
    content: "Данные клиента"
}

.TVBaseDialogPage.TVCartSavePage .TVMobilePanelCaption:before {
    content: "Сохранение подборки туров"
}

.TVBaseDialogPage.TVCartLoadPage .TVMobilePanelCaption:before {
    content: "Загрузка подборки туров"
}

.TVBaseDialogPage.TVCartLoginPage .TVMobilePanelCaption:before {
    content: "Вход для менеджеров"
}

.TVBaseDialogPage.TVCartSentToEmailPage .TVMobilePanelCaption:before {
    content: "Отправить по E-mail"
}

.TVBaseDialogPage.TVCartSentToSmsPage .TVMobilePanelCaption:before {
    content: "Отправить SMS"
}

.TVBaseDialogPage.TVCartAddDiscountPage .TVMobilePanelCaption:before {
    content: "Изменить скидку/наценку"
}

.TVBaseDialogPage.TVShowcasePage .TVMobilePanelCaption:before {
    content: "Вывести витрину туров"
}

.TVBaseDialogPage.TVCartEditCommentPage .TVMobilePanelCaption:before {
    content: "Добавить комментарий"
}

.TVBaseDialogPage.TVCartCollectionsPage .TVMobilePanelCaption:before {
    content: "Мои подборки"
}

.TVBaseDialogPage.TVCartCollectionsPage .TVCartCollectionsControl {
    margin: 20px
}

.TVCartMapPage.TVLayoutControl .TVMobilePanelCaption:before {
    content: "Отели на карте"
}

.TVCartMapPage .TVMobilePanelBody {
    height: 100%
}

.TVCartMapPage .TVCartMapControl .TVMapLayersDecorator {
    right: 60px
}

.TVCartMapPage .TVCartMapControl .TVMapToolsDecorator {
    right: 10px
}

.TVCartMapPage .TVCartMapControl .TVMapZoomDecorator {
    top: auto;
    bottom: 20px;
    transform: translate(0)
}

.TVCartMapPage .leaflet-rulerLine-pane>svg,.TVCartMapPage .leaflet-rulerMarker-pane>div {
    transition: none!important
}

.TVCartMapPage .TVRulerTooltip.leaflet-tooltip-right {
    margin-left: 13px
}

.TVCartHotelPage.TVLayoutControl .TVMobilePanelCaption:before {
    content: "Информация об отеле"
}

.TVCartHotelPage .TVHotelCardControl {
    overflow: hidden;
    overflow-y: auto;
    height: 100%
}

.TVToursCartWindow {
    width: 980px;
    background-color: #fff;
    font-family: var(--tv-font-theme2);
    box-shadow: 0 0 20px #000;
    border-radius: 5px;
    background-color: #edf2f5
}

.TVToursCartWindow .TVClosePopUp {
    margin: 14px 20px;
    right: 0;
    top: 0;
    text-shadow: none;
    background-color: transparent
}

.TVToursCartWindow .TVToursCartHeader {
    height: 50px;
    text-shadow: none;
    border-radius: 5px 5px 0 0
}

.TVToursCartWindow .TVToursCartHeader .TVCartMenuContent {
    width: 270px;
    height: 100%;
    position: absolute;
    top: 0;
    overflow: hidden
}

.TVToursCartWindow .TVToursCartHeader .TVCartMenuContent .TVSideNavContent {
    height: 100%;
    text-shadow: none
}

.TVToursCartWindow .TVToursCartHeader .TVCartMenuContent .TVSideNav {
    border-radius: 5px 0 0 5px;
    overflow: hidden
}

.TVToursCartWindow .TVToursCartHeader .TVCartMenuBlock {
    height: 50px;
    position: absolute;
    right: 70px;
    font-size: 13px;
    display: flex
}

.TVToursCartWindow .TVToursCartHeader .TVCartMenuBlock .TVCartMenuItemBlock {
    display: flex;
    align-items: center;
    padding-left: 25px;
    position: relative;
    cursor: pointer
}

.TVToursCartWindow .TVToursCartHeader .TVCartMenuBlock .TVCartMenuItemBlock:before {
    font-size: 16px;
    margin-right: 9px
}

.TVToursCartWindow .TVToursCartHeader .TVCartMenuBlock .TVCartMenuItemBlock:first-child {
    padding-left: 0
}

.TVToursCartWindow .TVToursCartHeader .TVCartMenuBlock .TVCartMenuItemBlock.TVDisabled {
    cursor: auto;
    pointer-events: none;
    opacity: .5
}

.TVToursCartWindow .TVToursCartHeader .TVCartMenuBlock .TVCartMail:before {
    font-family: TVicons;
    content: "\e951"
}

.TVToursCartWindow .TVToursCartHeader .TVCartMenuBlock .TVCartSms:before {
    font-family: TVicons;
    content: "\e950"
}

.TVToursCartWindow .TVToursCartHeader .TVCartMenuBlock .TVCartPrint:before {
    font-family: TVicons;
    content: "\e956"
}

.TVToursCartWindow .TVToursCartHeader .TVCartMenuBlock .TVCartNew:before {
    font-family: TVicons;
    content: "\e913"
}

.TVToursCartWindow .TVToursCartHeader .TVCartMenuBlock .TVCartSubscribeLinkIcon,.TVToursCartWindow .TVToursCartHeader .TVCartMenuBlock .TVCartUnsubscribeLinkIcon {
    fill: var(--tv-main-text-color);
    fill-rule: evenodd;
    width: 16px;
    height: 19px
}

.TVToursCartWindow .TVToursCartHeader .TVCartMenuBlock .TVCartSubscribeLinkContent,.TVToursCartWindow .TVToursCartHeader .TVCartMenuBlock .TVCartUnsubscribeLinkContent {
    padding-left: 9px
}

.TVToursCartWindow .TVToursCartHeader .TVCartMenuBlock .TVCartUnsubscribe:after {
    font-family: TVicons;
    content: "\e90b";
    font-size: 6px;
    line-height: 12px;
    text-align: center;
    width: 12px;
    height: 12px;
    border-radius: 15px;
    background-color: #fb5e51;
    color: #fff;
    position: absolute;
    top: 12px;
    left: 37px
}

.TVToursCartWindow .TVToursCartHeader .TVCartMenuBlock .TVWindowCartMenuWaiter {
    margin: 0 10px
}

.TVToursCartWindow .TVToursCartHeader .TVMenuButton {
    height: 50px;
    width: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    position: absolute;
    left: 0
}

.TVToursCartWindow .TVToursCartBody {
    min-height: 530px;
    position: relative;
    display: flex;
    flex-direction: column
}

.TVToursCartWindow .TVToursCartBody.TVEmptyList {
    display: flex;
    flex-direction: column
}

.TVToursCartWindow .TVToursCartBody.TVEmptyList .TVCartCountryList {
    position: relative;
    flex: 1;
    flex-basis: 340px
}

.TVToursCartWindow .TVCartControl {
    flex: auto;
    position: relative;
    padding: 20px
}

.TVToursCartWindow .TVActivationBlock,.TVToursCartWindow .TVRegistrationBlock {
    border-bottom: 1px solid #ddd;
    padding: 10px
}

.TVToursCartWindow .TVToursCartManagerInfo {
    padding: 30px 0 10px
}

.TVToursCartWindow .TVToursCartFooter {
    width: 100%;
    border-radius: 0 0 5px 5px;
    overflow: hidden;
    position: relative
}

.TVToursCartWindow .TVToursCartFooter .TVToursCartFooterBlock {
    padding: 40px 0 30px;
    text-shadow: none
}

.TVToursCartWindow .TVToursCartFooter .TVToursCartFooterBlock .TVToursCartFooterTitle {
    text-align: center
}

.TVToursCartWindow .TVToursCartFooter .TVToursCartFooterBlock .TVToursCartFooterTitle:before {
    content: "Не знаете какой тур выбрать?";
    text-transform: uppercase;
    font-size: 16px;
    font-weight: 700
}

.TVToursCartWindow .TVToursCartFooter .TVToursCartFooterBlock .TVToursCartFooterText {
    text-align: center;
    padding: 10px 230px
}

.TVToursCartWindow .TVToursCartFooter .TVToursCartFooterBlock .TVToursCartFooterText:before {
    content: "Вы можете отправить содержимое подборки нашему менеджеру, он свяжется с Вами и даст свои рекомендации по выбору тура.";
    font-size: 13px;
    font-weight: 100
}

.TVToursCartWindow .TVToursCartFooter .TVToursCartFooterBlock .TVToursCartFooterBtn {
    text-align: center;
    width: 300px;
    height: 50px;
    border-radius: 4px;
    margin: 20px auto 0;
    cursor: pointer
}

.TVToursCartWindow .TVToursCartFooter .TVToursCartFooterBlock .TVToursCartFooterBtn:before {
    content: "Получить совет турагента";
    font-size: 16px;
    line-height: 50px
}

.TVToursCartWindow .TVToursCartFooter .TVToursCartRequest {
    padding: 30px 40px 50px;
    background: #edf2f5
}

.TVToursCartWindow .TVSideNav {
    position: absolute;
    width: 100%
}

.TVToursCartWindow .TVSideNav .TVMenuItem {
    padding: 10px 0
}

.TVToursCartWindow .TVSideNav .TVMenuItem:last-child {
    border-bottom: none
}

.TVToursCartWindow .TVSideNav .TVMenuItem.TVBotUnsubscribeCartMenuItem:after,.TVToursCartWindow .TVSideNav .TVMenuItem.TVUnsubscribeCartMenuItem:after {
    top: 7px
}

.TVTourvisorInfo {
    width: 100%;
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    text-shadow: none;
    flex-wrap: wrap;
    padding: 10px;
    box-sizing: border-box
}

.TVTourvisorInfo:before {
    content: "";
    background-image: url(//tourvisor.ru/img/logo-cart.svg);
    background-repeat: no-repeat;
    width: 85px;
    height: 27px;
    margin-right: 15px
}

.TVTourvisorInfo:after {
    content: "Подборка создана в профессиональной системе поиска туров «Tourvisor»";
    opacity: .8;
    text-align: center
}

.TVToursCartMode {
    width: 340px;
    height: 40px;
    border-radius: 6px;
    background-color: #5c6672;
    color: #fff;
    margin: 20px auto 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer
}

.TVCartShareLinkIcon,.TVCartWindowMenuButton {
    fill: var(--tv-main-text-color)
}

.TVCartShareLinkIcon {
    width: 16px;
    height: 16px
}

.TVCartShareLinkContent {
    padding-left: 9px
}

.TVCartWindowTitle {
    font-size: 14px;
    line-height: 50px;
    position: absolute;
    left: 50px
}

.TVActionsButtonSpinner {
    margin: auto
}

.TVCartNewConfirmLink {
    margin-left: 5px;
    text-decoration: underline;
    color: #4b90d5;
    word-break: break-all
}

.TVCartSearchFiltersHintContent {
    font-size: 13px;
    line-height: 16px;
    padding: 20px
}

.TVReadyHotelsCollections {
    padding: 20px;
    background-color: #e2f1fb
}

.TVReadyHotelsCollections .TVReadyHotelsCollectionsHeader {
    display: flex;
    justify-content: space-between;
    align-items: center
}

.TVReadyHotelsCollections .TVReadyHotelsCollectionsHeaderTitle {
    display: flex;
    flex-direction: column
}

.TVReadyHotelsCollections .TVReadyHotelsCollectionsHeaderTitle:before {
    content: "Не знаете какой отель выбрать?";
    color: #31708f;
    font-size: 14px;
    font-weight: 700
}

.TVReadyHotelsCollections .TVReadyHotelsCollectionsHeaderTitle:after {
    content: "Посмотрите готовые подборки от наших менеджеров!";
    color: #31708f;
    font-size: 14px
}

.TVReadyHotelsCollections .TVReadyHotelsCollectionsToggleBtn {
    cursor: pointer;
    min-width: 30px;
    width: 30px;
    height: 30px;
    position: relative;
    background-color: #31708f;
    border-radius: 15px;
    transition: transform .15s linear;
    transform: rotate(0deg)
}

.TVReadyHotelsCollections .TVReadyHotelsCollectionsToggleBtn:before {
    font-family: TVicons;
    content: "\e906";
    position: absolute;
    top: 9px;
    left: 9px;
    line-height: 18px;
    color: #fff;
    font-size: 14px;
    line-height: 13px
}

.TVReadyHotelsCollections .TVReadyHotelsCollectionsToggleBtn.TVActive {
    transform: rotate(90deg)
}

.TVReadyHotelsCollections .TVReadyHotelsCollectionsList {
    margin-top: 20px
}

.TVReadyHotelsCollections .TVListBox {
    display: flex;
    flex-wrap: wrap;
    margin: -3px -10px;
    padding: 0;
    background-color: inherit
}

.TVReadyHotelsCollections .TVListBox .TVCheckBox {
    flex: 0 0 calc(50% - 20px);
    box-sizing: border-box;
    height: 30px;
    color: #31708f;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 2px;
    margin: 3px 10px;
    padding: 0 10px;
    display: flex;
    justify-content: space-between;
    align-items: center
}

.TVReadyHotelsCollections .TVListBox .TVCheckBox:hover {
    color: #31708f
}

.TVReadyHotelsCollections .TVListBox .TVCheckBox:before {
    display: none
}

.TVReadyHotelsCollections .TVListBox .TVCheckBox.TVChecked {
    color: #fff;
    border-color: #31708f;
    background-color: #31708f
}

.TVReadyHotelsCollections .TVListBox .TVCheckBox.TVChecked .TVReadyCollectionItemName {
    color: #fff
}

.TVReadyHotelsCollections .TVListBox .TVCheckBox.TVChecked .TVReadyCollectionItemCount {
    color: #31708f
}

.TVReadyHotelsCollections .TVReadyCollectionItemName {
    font-size: 13px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis
}

.TVReadyHotelsCollections .TVReadyCollectionItemCount {
    font-size: 10px;
    color: #777;
    background: #efefef;
    border-radius: 20px;
    padding: 0 5px
}

.TVReadyHotelsCollections .TVReadyHotelsCollectionsHideBtn {
    cursor: pointer;
    color: #31708f;
    font-size: 10px;
    text-transform: uppercase;
    margin-top: 15px
}

.TVReadyHotelsCollections .TVReadyHotelsCollectionsHideBtn:before {
    content: "Скрыть и не показывать это сообщение"
}

@media screen and (max-width: 500px) {
    .TVReadyHotelsCollections .TVListBox .TVCheckBox {
        flex:0 1 100%
    }
}

#ts_search_result *,#ts_search_result :after,#ts_search_result :before,.TVResultPanel * {
    -webkit-box-sizing: content-box;
    -moz-box-sizing: content-box;
    box-sizing: content-box
}

.TVRoomInfo {
    color: #185584;
    border-bottom: 1px dashed;
    cursor: pointer;
    position: relative;
    text-transform: none;
    text-decoration: none
}

.TVCountryResultBodyContainer,.TVHotelResultBodyContainer,.TVMCountryResultBodyContainer,.TVMHotelResultBodyContainer,.TVMResortResultBodyContainer,.TVResortResultBodyContainer,.TVSCountryResultBodyContainer,.TVSHotelResultBodyContainer,.TVSResortResultBodyContainer {
    font-family: var(--tv-font-theme2);
    opacity: 1;
    transition: opacity .5s linear
}

.TVSearchResults {
    width: 900px;
    font-family: var(--tv-font-theme2);
    font-size: 14px;
    margin: 0 auto 40px;
    padding-top: 40px;
    text-align: left
}

.blpricesort {
    -moz-transition: height .5s linear,opacity .3s linear;
    -o-transition: height .5s linear,opacity .3s linear;
    -webkit-transition: height .5s linear,opacity .3s linear;
    transition: height .5s linear,opacity .3s linear
}

.TVSRGoogleLink:before {
    content: " ";
    background-image: url(//tourvisor.ru/module/newform/images/mapslogo.svg);
    width: 14px;
    height: 14px;
    display: inline-block;
    background-size: 43px;
    background-position: -15px -23px;
    vertical-align: top;
    margin-top: 1px;
    margin-right: 2px
}

.TVSRGoogleLink:after {
    content: "открыть на Google Maps"
}

.TVSearchResults .TVReadyHotelsCollections {
    margin-bottom: 15px
}

.TVMobileContainer .TVMobileNotificationWindow {
    z-index: 3
}

.TVMobileContainer .TVREndSearchLbl {
    padding-right: 6px;
    text-transform: uppercase;
    font-weight: 700;
    margin-right: auto
}

.TVMobileContainer .TVRUpdateImg {
    margin-left: 10px
}

.TVMobileContainer .TVRUpdateImg:after {
    font-family: TVicons;
    content: "\e957";
    font-size: 24px;
    line-height: 2
}

.TVMobileContainer .TVRToursLbl {
    font-size: 13px;
    text-align: right
}

.TVMobileContainer .TVRToursLbl .TVRToursNumberLbl {
    text-align: right;
    font-weight: 700
}

.TVMCountryResultBodyContainer .blpricesort,.TVMHotelResultBodyContainer .blpricesort,.TVMResortResultBodyContainer .blpricesort {
    margin: 10px;
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 0 20px rgba(0,0,0,.15)
}

.TVHotTours {
    margin: 0 auto;
    text-align: left
}

.TVHotTours *,.TVHotTours :after,.TVHotTours :before {
    box-sizing: content-box
}

.TVHotTours .TVModuleFilter {
    box-sizing: border-box
}

.TVHotTours .TVHotItem {
    display: inline-block;
    vertical-align: top;
    position: relative;
    overflow: hidden;
    box-shadow: 1px 1px 3px #a6a6a6;
    border: 0 solid #bbb;
    box-sizing: border-box
}

.TVHotTours .TVTableView {
    box-sizing: border-box
}

.TVHotItemWrap {
    overflow: hidden
}

.TVHotImageWrap {
    position: relative
}

.TVHotImg {
    background-position: 50% 50%;
    background-size: cover
}

.TVHotDiscountWrapper {
    position: absolute;
    top: 0;
    left: 15px;
    background-color: #df0202;
    width: 46px;
    height: 37px
}

.TVHotDiscountWrapper:after {
    content: "";
    position: absolute;
    top: 37px;
    border: 23px solid transparent;
    border-top: 5px solid #df0202
}

.TVHotDiscount {
    text-align: center;
    color: #fff;
    line-height: 35px;
    font-size: 16px;
    font-weight: 500;
    vertical-align: bottom
}

.TVHotDiscount:before {
    content: "-";
    padding-right: 1px;
    font-size: 14px
}

.TVHotDiscount:after {
    content: "%";
    font-size: 13px
}

.TVHotInfoBlock {
    padding: 12px;
    position: relative;
    background-color: #fff;
    overflow: hidden;
    text-align: left;
    line-height: 17px
}

.TVHotText {
    font-size: 12px
}

.TVHotH3,.TVHotText {
    line-height: 1.39;
    color: #686868;
    font-weight: 300;
    text-align: left
}

.TVHotH3 {
    font-size: 14px
}

.TVHotTitle {
    font-weight: 500;
    font-size: 16px;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.TVHotStarWrap,.TVHotTitle {
    text-align: left;
    line-height: 1.39
}

.TVHotStarWrap {
    font-size: 0
}

.TVHotStar-ES,.TVHotStarB {
    display: inline-block
}

.TVHotStarB {
    height: 11px;
    color: #fc0;
    margin-right: 2px
}

.TVHotStarB:before {
    font-family: TVicons;
    content: "\e90c";
    font-size: 10px
}

.TVHotNewPrice {
    color: #fff;
    font-weight: 500;
    line-height: 30px;
    text-align: center;
    font-size: 17px;
    text-shadow: -1px -1px 0 #777;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden
}

.TVHotNewPriceValue {
    display: inline-block
}

.TVHotNewPriceCurrency {
    display: inline-block;
    padding-left: 3px;
    font-size: 14px;
    font-weight: 100
}

.TVHotOldPrice {
    position: absolute;
    color: #686868
}

.TVHotOldPriceCurrency,.TVHotOldPriceValue {
    display: inline-block;
    text-decoration: line-through
}

.TVHotOldPriceCurrency {
    padding-left: 1px
}

.TVHotPriceBlock {
    position: absolute;
    width: 82px;
    background: #ff7302;
    height: 30px
}

.TVHotPriceBlock:before {
    border: 15px solid transparent;
    border-right-color: #ff7302;
    content: " ";
    position: absolute;
    right: 82px
}

.TVHotResort:after {
    font-size: 13px;
    font-weight: 500
}

.TVHotBigPrice {
    font-size: 24px;
    display: inline-block;
    font-weight: 500;
    margin-right: 5px
}

.TVHotPriceSuffix {
    width: 30px;
    display: inline-block;
    line-height: 1.39
}

.TVHotPriceHuman,.TVHotPriceRubbles {
    font-size: 11px;
    font-weight: 300;
    color: #999
}

.TVHotPriceRubbles {
    display: inline-block;
    font-size: 9px;
    position: relative;
    top: 3px;
    border-bottom: 1px solid #ccc
}

.TVHotPriceHuman:after {
    content: "чел";
    position: relative
}

.TVHotBigPriceBlock {
    position: absolute;
    color: #333
}

.TVHotButton {
    background-color: #66bf3e;
    height: 27px;
    text-align: center;
    vertical-align: bottom;
    line-height: 26px;
    font-size: 14px;
    color: #fff;
    text-shadow: 1px 1px 1px #444;
    font-weight: 300;
    border-radius: 2px;
    border: 1px solid #4faa26;
    cursor: pointer;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none
}

.TVHotButton:after {
    content: "выбрать"
}

.TVHotButton:hover {
    background-color: #74dd45;
    border: 1px solid #74dd45
}

.TVHotButton:active {
    box-shadow: inset 0 1px 3px 0 #444;
    border: 0 solid #74dd45
}

.TVHotStarWrap {
    padding-bottom: 3px
}

.TVHTSliderRoot {
    left: 0;
    -moz-transition: left .5s;
    -o-transition: left .5s;
    -webkit-transition: left .5s;
    transition: left .5s;
    position: relative
}

.TVHotTours .TVSNavLeft,.TVHotTours .TVSNavRight {
    position: absolute;
    padding: 10px 5px;
    background-color: #444;
    background-color: rgba(18,17,17,.75);
    opacity: 0;
    zoom:1;z-index: 10;
    cursor: pointer;
    filter: alpha(opacity=0);
    -moz-transition: opacity .5s ease-in-out;
    -o-transition: opacity .5s ease-in-out;
    -webkit-transition: opacity .5s ease-in-out;
    transition: opacity .5s ease-in-out;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    top: 36%
}

.TVHotTours .TVSNavLeft {
    left: 0;
    border-bottom-right-radius: 4px;
    border-top-right-radius: 4px
}

.TVHotTours .TVSNavRight {
    right: 0;
    border-bottom-left-radius: 4px;
    border-top-left-radius: 4px
}

.TVHotTours .TVSLeftImg {
    background-position: -1px -99px
}

.TVHotTours .TVSLeftImg,.TVHotTours .TVSRightImg {
    background-image: url(//tourvisor.ru/module/newform/modules/images/minprice-sprite.png);
    width: 18px;
    height: 33px
}

.TVHotTours .TVSRightImg {
    background-position: -18px -99px
}

.TVHotTours:hover .TVSNavLeft,.TVHotTours:hover .TVSNavRight {
    opacity: 1;
    filter: alpha(opacity=100)
}

.TVHotMobileMode .TVSNavLeft,.TVHotMobileMode .TVSNavRight {
    opacity: 1
}

.TVHotOverflow {
    background-color: #fff
}

.TVHotTours.TVTheme1 {
    font-family: var(--tv-font-theme1)
}

.TVHotTours.TVTheme1 .TVHotItem .TVHotStar-ES {
    height: 11px;
    color: #fc0;
    margin-right: 2px
}

.TVHotTours.TVTheme1 .TVHotItem .TVHotStar-ES:before {
    font-family: TVicons;
    content: "\e90c";
    font-size: 10px
}

.TVHotTours.TVTheme1 .TVHotItem .TVHotStarWrap .TVHotelAcType {
    margin: 0;
    border-color: rgba(0,0,0,.1);
    font-size: 12px
}

.TVHotTours.TVTheme1 .TVHotItem .TVHotNoComma:after {
    content: ""
}

.TVHotTours.TVTheme1 .TVHotItem .TVHotTitles {
    overflow: hidden;
    white-space: nowrap
}

.TVHotTours.TVTheme1 .TVHotItem .TVHotHotel,.TVHotTours.TVTheme1 .TVHotItem.TVHotTourShowHotel .TVHotResort {
    text-transform: uppercase
}

.TVHotInfoBlock .TVHotCountry,.TVHotInfoBlock .TVHotDateNight {
    margin-right: 3px
}

.TVHotHotelOnly .TVHotResort {
    max-width: none;
    display: block
}

.TVHotHotelOnly .TVHotResort:after {
    content: ""
}

.TVHotTours.TVTheme2 {
    font-family: var(--tv-font-theme2);
    line-height: normal
}

.TVHotTours.TVTheme2 .TVHotContainer-ES {
    border: 0 solid #ddd
}

.TVHotTours.TVTheme2 .TVHotTourContainer {
    display: inline-block;
    vertical-align: top;
    position: relative;
    overflow: hidden;
    cursor: pointer;
    box-sizing: border-box
}

.TVHotTours.TVTheme2 .TVHotMainColor-ES {
    color: #000;
    background-color: #fff
}

.TVHotTours.TVTheme2 .TVHotTour {
    padding: 16px
}

.TVHotTours.TVTheme2 .TVHotTourImageWrap {
    position: relative
}

.TVHotTours.TVTheme2 .TVHotTourImage {
    background-position: 50% 50%;
    background-size: cover;
    transition: background-size .3s linear
}

.TVHotTours.TVTheme2 .TVHotTourDiscount {
    position: absolute;
    text-align: center;
    color: #fff;
    font-weight: 700;
    vertical-align: bottom;
    top: 50%;
    background: #df0202;
    background-image: none;
    width: 48px;
    height: 35px;
    left: -16px;
    font-size: 14px;
    line-height: 35px;
    margin-top: -17px
}

.TVHotTours.TVTheme2 .TVHotTourDiscount:before {
    content: "-";
    padding-right: 1px
}

.TVHotTours.TVTheme2 .TVHotTourDiscount:after {
    content: "%"
}

.TVHotTours.TVTheme2 .TVHotTourInfo {
    position: relative;
    font-size: 14px;
    line-height: 1.39
}

.TVHotTours.TVTheme2 .TVHotStar-ES {
    color: #ffa200;
    margin-right: 2px
}

.TVHotTours.TVTheme2 .TVHotStar-ES:before {
    font-family: TVicons;
    content: "\e90c"
}

.TVHotTours.TVTheme2 .TVHotTourInfoHotelStars .TVHotelAcType {
    margin: 0;
    border-color: rgba(0,0,0,.1)
}

.TVHotTours.TVTheme2 .TVHotTourInfoHotelName {
    font-weight: 600;
    font-size: 16px;
    margin-top: 3px;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    max-height: 22px;
    text-transform: uppercase
}

.TVHotTours.TVTheme2 .TVHotTourInfoCountry,.TVHotTours.TVTheme2 .TVHotTourInfoResort {
    display: inline-block;
    opacity: .6;
    overflow: hidden
}

.TVHotTours.TVTheme2 .TVHotTourInfoCountry:after,.TVHotTours.TVTheme2 .TVHotTourInfoResort:after {
    content: ",";
    margin-right: 5px
}

.TVHotTours.TVTheme2 .TVHotTourInfoCountry:last-child:after,.TVHotTours.TVTheme2 .TVHotTourInfoResort:last-child:after {
    content: "";
    margin-right: 0
}

.TVHotTours.TVTheme2 .TVHotTourInfoResort {
    white-space: nowrap;
    text-overflow: ellipsis
}

.TVHotTours.TVTheme2 .TVHotTourInfoDateNight,.TVHotTours.TVTheme2 .TVHotTourInfoDeparture {
    opacity: .8
}

.TVHotTours.TVTheme2 .TVHotTourInfoPriceContainer {
    position: relative;
    height: 36px
}

.TVHotTours.TVTheme2 .TVHotTourInfoOldPrice {
    text-decoration: line-through;
    opacity: .6;
    position: absolute;
    bottom: 0;
    left: 0
}

.TVHotTours.TVTheme2 .TVHotTourInfoOldPriceValue {
    display: inline-block;
    text-decoration: line-through
}

.TVHotTours.TVTheme2 .TVHotTourInfoOldPriceCurrency {
    display: inline-block;
    text-decoration: line-through;
    text-transform: uppercase;
    font-size: 10px;
    text-decoration: none;
    margin-left: 3px
}

.TVHotTours.TVTheme2 .TVHotTourInfoPriceBlock {
    text-align: right;
    padding-right: 35px;
    position: absolute;
    bottom: 0;
    right: 0
}

.TVHotTours.TVTheme2 .TVHotTourInfoNewPrice {
    font-size: 24px;
    text-align: right;
    line-height: 1
}

.TVHotTours.TVTheme2 .TVHotTourInfoNewPriceValue {
    display: inline-block
}

.TVHotTours.TVTheme2 .TVHotTourInfoNewPriceCurrency {
    display: inline-block;
    margin-left: 3px;
    text-transform: uppercase;
    font-size: 10px
}

.TVHotTours.TVTheme2 .TVHotTourInfoPriceIcon {
    font-size: 19px;
    line-height: 20px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: rgba(0,0,0,.4);
    color: #fff;
    padding: 5px;
    position: absolute;
    bottom: 0;
    right: 0;
    transition: background-color .3s linear
}

.TVHotTours.TVTheme2 .TVHotTourInfoPriceIcon:before {
    font-family: TVicons;
    content: "\e919"
}

.TVHotTours.TVTheme2 .TVHotTourInfoNewPriceCurrency,.TVHotTours.TVTheme2 .TVHotTourInfoOldPriceCurrency {
    opacity: .8
}

.TVHotTours.TVTheme2 .TVHotTourContainer:hover .TVHotTourInfoPriceIcon {
    background-color: #df0202
}

.TVHotTours.TVTheme3 {
    font-family: var(--tv-font-theme2);
    line-height: normal
}

.TVHotTours.TVTheme3 .TVHotTourContainer {
    --card-border-radius: 16px;
    cursor: pointer;
    border-radius: var(--card-border-radius);
    overflow: hidden;
    border: 0 solid rgba(51,51,51,.0901960784);
    box-sizing: border-box
}

.TVHotTours.TVTheme3 .TVHotMainColor-ES {
    --discount-background-color: #f14555;
    --discount-color: #fff;
    --rating-background-color: #e7f5e7;
    --rating-color: #33af33;
    color: #333;
    background-color: #fff
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourImage {
    background-position: 50% 50%;
    transition: background-size .3s linear
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoTopLine {
    display: flex;
    align-items: center;
    column-gap: 8px
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourDiscount {
    font-style: normal;
    font-weight: 600;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: -.01em;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: 2px 6px 2px 4px;
    border-radius: calc(var(--card-border-radius)/2);
    background-color: var(--discount-background-color);
    color: var(--discount-color)
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourDiscount:after {
    content: "%"
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourDiscount .TVHotTourDiscountIcon {
    display: flex;
    margin-right: 2px
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourDiscount .TVHotTourDiscountIcon path {
    fill: currentColor
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoOldPrice {
    position: relative;
    display: flex;
    align-items: flex-end
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoOldPrice:before {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
    opacity: .5
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoOldPrice .TVHotTourInfoOldPriceValue {
    font-style: normal;
    font-weight: 500;
    font-size: 12px;
    line-height: 14px;
    letter-spacing: -.02em;
    opacity: .5
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoOldPrice .TVHotTourInfoOldPriceCurrency {
    font-style: normal;
    font-weight: 500;
    font-size: 10px;
    line-height: 12px;
    letter-spacing: -.02em;
    text-transform: uppercase;
    opacity: .5;
    margin-left: 2px
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoHotelRating {
    font-style: normal;
    font-weight: 600;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: -.01em;
    color: var(--rating-color);
    display: flex;
    justify-content: center;
    padding: 2px 6px;
    background-color: var(--rating-background-color);
    border-radius: calc(var(--card-border-radius)/2);
    margin-left: auto
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoNewPrice {
    display: flex;
    align-items: flex-end;
    margin-top: 8px
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoNewPrice .TVHotTourInfoNewPriceValue {
    font-style: normal;
    font-weight: 600;
    font-size: 18px;
    line-height: 24px;
    letter-spacing: -.02em
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoNewPrice .TVHotTourInfoNewPriceCurrency {
    font-style: normal;
    font-weight: 600;
    font-size: 10px;
    line-height: 12px;
    letter-spacing: -.02em;
    text-transform: uppercase;
    opacity: .5;
    margin-left: 4px;
    padding-bottom: 4px
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoHotelName {
    font-weight: 600;
    opacity: .95;
    margin-top: 4px;
    text-transform: capitalize
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoAdditional,.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoHotelName {
    font-style: normal;
    font-size: 13px;
    line-height: 16px;
    letter-spacing: -.02em;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoAdditional {
    font-weight: 500;
    margin-top: 2px
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoAdditional .TVHotTourInfoDateNight,.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoAdditional .TVHotTourInfoMeal {
    display: inline
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoAdditional .TVHotTourInfoDateNight:not(:first-child),.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoAdditional .TVHotTourInfoMeal:not(:first-child) {
    margin-left: 5px
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoAdditional .TVHotTourInfoTourist {
    display: inline
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoAdditional .TVHotTourInfoTourist:not(:first-child) {
    margin-left: 4px
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoAdditional .TVHotTourInfoTourist:after {
    content: ","
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoAdditional .TVHotTourInfoDateNight {
    opacity: .95
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoAdditional .TVHotTourInfoMeal,.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoAdditional .TVHotTourInfoTourist {
    opacity: .6
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoAdditional .TVHotTourInfoTouristIcon {
    margin-right: 4px;
    vertical-align: top
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoAdditional .TVHotTourInfoTouristIcon path {
    fill: currentColor;
    opacity: .6
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoLocation {
    font-style: normal;
    font-weight: 500;
    font-size: 13px;
    line-height: 16px;
    letter-spacing: -.02em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoLocation .TVHotTourInfoLocationIcon {
    display: inline-flex;
    opacity: .6;
    vertical-align: top
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoLocation .TVHotTourInfoLocationIcon path {
    fill: currentColor;
    opacity: .6
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoLocation .TVHotTourInfoCountry {
    display: inline;
    margin-left: 4px
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoLocation .TVHotTourInfoResort {
    display: inline
}

.TVHotTours.TVTheme3 .TVHotTour .TVHotTourInfoLocation .TVHotTourInfoResort:before {
    content: ", "
}

.TVFilterListHotsControl.TVFilterDisabled .TVModuleFilter {
    pointer-events: none;
    opacity: .7
}

.TVFilterListHotsControl .TVEmptyList {
    padding: 20px;
    text-align: center;
    font-size: 18px;
    color: #333;
    text-shadow: 1px 1px 0 #fff
}

.TVFilterListHotsControl .TVEmptyList:before {
    content: "К сожалению, туров, с заданными параметрами, не найдено.";
    display: block
}

.TVFilterListHotsControl .TVEmptyList:after {
    content: "Вы можете изменить условия поиска или город вылета";
    display: block
}

.TVListHotsControl {
    --list-padding: 2px 0
}

.TVListHotsControl .TVSliderViewList {
    padding: var(--list-padding)
}

.TVMinPrice {
    font-family: var(--tv-font-theme1);
    font-size: 14px;
    position: relative;
    text-align: left
}

.TVMinPrice * {
    box-sizing: content-box
}

.TVMinPList,.TVMinPMetro,.TVMinPSimple,.TVMinPSlider,.TVMinPTable {
    margin: 0 auto;
    transition: opacity .5s ease-in-out;
    opacity: 1;
    line-height: 1.39
}

.TVMinPList .TVMinPCountryFlag,.TVMinPSimple .TVMinPCountryFlag {
    width: 18px;
    height: 14px;
    background-image: url(//static.tourvisor.ru/pics/flags/flags-calendar.png)
}

.TVMinPList .TVCountryFlagSmall,.TVMinPList .TVMinPCountryFlag,.TVMinPSimple .TVCountryFlagSmall,.TVMinPSimple .TVMinPCountryFlag {
    display: inline-block;
    border: 1px solid #fff;
    position: relative;
    top: 2px
}

.TVMinPSlider .TVMinPCountryFlag,.TVMinPTable .TVMinPCountryFlag {
    width: 18px;
    height: 14px;
    display: inline-block;
    margin: 13px 5px 0 15px
}

.TVMinPSlider .TVCountryFlagSmall,.TVMinPTable .TVCountryFlagSmall {
    display: inline-block;
    margin: 13px 5px 5px 15px
}

.TVMinPList .TVMinPCountryName,.TVMinPSimple .TVMinPCountryName {
    display: inline-block;
    margin-left: 5px;
    font-size: 15px;
    line-height: 19px
}

.TVMinPSlider .TVMinPCountryName,.TVMinPTable .TVMinPCountryName {
    display: inline-block;
    font-size: 18px;
    line-height: 18px;
    font-weight: 300;
    vertical-align: baseline;
    margin-top: 11px;
    margin-bottom: 3px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: calc(100% - 38px)
}

.TVMinPrice .TVMinPVisible {
    transition: height .5s;
    box-sizing: content-box
}

.TVMinPShowCont .TVButton:after,.TVMinPTable .TVButton:after {
    content: "показать все страны"
}

.TVMinPShowCont .TVMinPHideButton:after,.TVMinPTable .TVMinPHideButton:after {
    content: "скрыть"
}

.TVMinPShowCont .TVButton:hover,.TVMinPTable .TVButton:hover {
    box-shadow: none
}

.TVMinPSlider .TVMinPPriceBlock,.TVMinPTable .TVMinPPriceBlock {
    position: absolute;
    bottom: 7px;
    width: 100%;
    line-height: 15px;
    text-align: left
}

.TVMinPSlider .TVMinPPriceValue,.TVMinPTable .TVMinPPriceValue {
    font-size: 25px;
    margin-right: 5px;
    margin-left: 13px;
    font-weight: 400;
    line-height: 1.39;
    display: inline-block
}

.TVMinPSlider .TVMinPPriceSuffix,.TVMinPTable .TVMinPPriceSuffix {
    width: 30px;
    display: inline-block;
    line-height: 1.39
}

.TVMinPrice .TVMinPPriceHuman,.TVMinPrice .TVMinPPriceRubbles {
    font-size: 11px;
    font-weight: 300;
    color: #999
}

.TVMinPrice .TVMinPPriceRubbles {
    position: relative;
    top: 3px;
    border-bottom: 1px solid #ccc;
    font-size: 10px;
    width: fit-content
}

.TVMinPrice .TVMinPPriceHuman:after {
    content: "чел";
    position: relative
}

.TVMinPrice .TVPriceForPerson .TVMinPPriceHuman:after {
    content: ""
}

.TVMinPrice .TVPriceForPerson .TVMinPPriceRubbles:after {
    border-bottom: none;
    top: 0
}

.TVMinPrice .TVMinPPriceArrow {
    background-image: url(//tourvisor.ru/module/newform/modules/images/minprice-sprite.png);
    width: 29px;
    height: 30px;
    position: absolute;
    top: 0;
    right: 10px;
    background-position: -84px -135px;
    cursor: pointer
}

.TVMinPrice .TVMinPItem:hover .TVMinPPriceArrow {
    background-position: -113px -135px
}

.TVMinPList .TVMinPPrice,.TVMinPSimple .TVMinPPrice {
    color: red;
    cursor: pointer;
    text-decoration: none;
    font-weight: 300;
    font-size: 14px;
    display: flex;
    align-items: flex-end
}

.TVMinPList .TVMinPPrice:hover,.TVMinPSimple .TVMinPPrice:hover {
    text-decoration: underline
}

.TVMinPList .TVMinPPriceCurrency,.TVMinPSimple .TVMinPPriceCurrency {
    margin-left: 3px;
    color: #989898;
    font-size: 11px;
    line-height: 18px
}

.TVMinPrice .TVMinPRadius {
    border-radius: 5px
}

.TVMinPMobileMode .TVMinPTable .TVMinPPicture {
    background-size: cover;
    background-position: 50%
}

.TVMinPMainColor {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAC/CAQAAACV3H4HAAAACXBIWXMAAAsSAAALEgHS3X78AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAABgSURBVCjPnZFRDsAgCEPBU+7+B7EanBEcNWaJH1jbB0GpTxGxg08Rr2oFNh08gjuF2LT3SlsgDpO9BuyBacWL8n6QsbEUlZna9vOL3J3g5HRXK5LRBsF/WfDzCBWdMg0Nk+Ffhz7cDWkAAAAASUVORK5CYII=")
}

.TVMinPStarItem {
    background-image: url(//tourvisor.ru/module/newform/modules/images/minprice-sprite.png);
    width: 17px;
    height: 17px;
    display: inline-block;
    background-position: -85px -76px;
    font-size: 0
}

.TVMinPrice .TVModEmptyMess:before {
    content: "К сожалению, туров, с заданными параметрами, не найдено.";
    display: block
}

.TVMinPrice .TVModEmptyMess:after {
    content: "Вы можете изменить условия поиска или город вылета";
    display: block
}

.TVMinPSimple {
    padding: 1px 2px 1px 0;
    box-sizing: border-box
}

.TVMinPSimple .TVMinPPrice {
    margin-left: 24px
}

.TVMinPSimple .TVMinPSimpleItem {
    display: inline-block;
    padding: 6px 2px;
    box-sizing: border-box
}

.TVMinPList .TVMinPContainer {
    padding: 16px 16px 0;
    background-color: #fff
}

.TVMinPList .TVMinPVisible {
    overflow: hidden
}

.TVMinPList .TVMinPPrice {
    position: absolute;
    right: 0
}

.TVMinPList .TVMinPWrap {
    padding: 7px 0;
    border-bottom: 1px dotted #ddd;
    position: relative;
    height: 27px
}

.TVMinPList .TVMinPWrap .TVMinPPrice {
    top: 11px
}

.TVMinPList .TVMinPShowCont {
    position: relative;
    top: 0;
    width: 100%;
    padding-bottom: 15px
}

.TVMinPList .TVMinPShadow {
    background-image: url(//tourvisor.ru/module/newform/modules/images/minprice-sprite.png);
    height: 4px;
    position: absolute;
    top: -1px;
    background-position: -26px 59px;
    overflow: hidden;
    left: 1%;
    right: 1%;
    margin: 0 auto;
    width: 168px
}

.TVMinPList .TVMinPShowCont .TVButton {
    width: 133px;
    margin: 0 auto;
    float: none;
    font-size: 12px;
    color: #939393;
    -webkit-text-shadow: none;
    text-shadow: none;
    box-shadow: none;
    border: 1px solid #dfdfdf;
    border-top: 0 solid #dfdfdf;
    padding: 5px;
    font-weight: 300;
    border-radius: 0 0 3px 3px;
    background-color: #fff
}

.TVMinPList .TVMinPLinks {
    height: 10px;
    margin-left: 24px;
    margin-bottom: 1px;
    margin-top: -4px
}

.TVMinPList .TVMinPLinks a {
    font-size: 10px;
    padding-right: 5px;
    color: #bbb;
    text-decoration: none;
    line-height: 1.39;
    position: relative;
    top: 0;
    font-weight: 300
}

.TVMinPList .TVMinPLinks a:hover {
    text-decoration: underline
}

.TVMinPList .TVMinPHotels:after {
    content: "отели"
}

.TVMinPList .TVMinPRegions:after {
    content: "курорты"
}

.TVMinPList .TVMinPWithLinks .TVMinPCountryFlag {
    top: 5px
}

.TVMinPList .TVMinPWithLinks .TVMinPPrice {
    top: 11px
}

.TVMinPTable .TVMinPVisible {
    padding: 0;
    margin: 0
}

.TVMinPTable .TVMinPPicture {
    width: 100%;
    height: 160px;
    transition: background-size .3s linear;
    background-size: 285px 190px;
    background-position: 50%
}

.TVMinPTable .TVMinPItemBottom {
    height: 75px;
    width: 100%;
    background-color: #f9f9f9;
    position: relative
}

.TVMinPTable .TVMinPItem {
    display: inline-block;
    vertical-align: top;
    box-shadow: 1px 1px 3px #a6a6a6;
    border-radius: 4px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    padding: 0;
    background: none
}

.TVMinPTable .TVMinPItem:hover {
    box-shadow: 0 0 8px #a6a6a6
}

.TVMinPTable .TVMinPItem:hover .TVMinPPicture {
    background-size: 300px 200px
}

.TVMinPTable .TVMinPItem:hover .TVMinPItemBottom {
    background-color: #fff
}

.TVMinPTable .TVMinPItem .TVMinPPriceValue:after {
    content: ""
}

.TVMinPTable .TVMinPCountry {
    width: 180px;
    width: 72%;
    height: 40px;
    min-width: 150px;
    position: absolute;
    background-size: 1px 40px;
    bottom: 53px;
    border-radius: 0 6px 6px 0;
    box-shadow: 1px 1px 2px #444;
    text-align: left
}

.TVMinPTable .TVButton {
    width: 200px;
    margin: 0 auto 10px;
    font-weight: 300;
    vertical-align: middle;
    float: none;
    position: static;
    padding: 7px 0;
    box-shadow: none;
    border: 1px solid #bbb;
    border-top: 0 solid #bbb
}

.TVMinPTable .TVMinPInvisible {
    transition: height .5s;
    border-bottom: 1px solid #bbb;
    overflow: hidden
}

.TVMinPSlider {
    overflow: hidden;
    text-align: left
}

.TVMinPSlider .TVMinPSlideWrapper {
    position: relative
}

.TVMinPSlider .TVMinPItemList {
    padding: 0;
    margin: 0;
    overflow-y: hidden;
    position: relative;
    left: 0;
    -moz-transition: left .5s;
    -o-transition: left .5s;
    -webkit-transition: left .5s;
    transition: left .5s
}

.TVMinPSlider .TVMinPItem {
    display: inline-block;
    vertical-align: top;
    padding: 0;
    margin: 0 7px;
    overflow: hidden;
    position: relative
}

.TVMinPSlider .TVMinPItem .TVMinPPriceValue:after {
    content: ""
}

.TVMinPSlider .TVMinPPicture {
    width: 100%;
    height: 160px;
    transition: background-size .5s linear;
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative
}

.TVMinPSlider .TVMinPCountry {
    width: 100%;
    height: 40px;
    background-size: 1px 40px
}

.TVMinPSlider .TVMinPItemBottom {
    height: 55px;
    width: 100%;
    background-color: #fafafa;
    position: relative;
    cursor: pointer
}

.TVMinPSlider .TVSNavLeft,.TVMinPSlider .TVSNavRight {
    top: 85px
}

.TVMinPSlider .TVSNavLeft {
    left: 0;
    border-bottom-right-radius: 4px;
    border-top-right-radius: 4px
}

.TVMinPSlider .TVSNavRight {
    right: 0;
    border-bottom-left-radius: 4px;
    border-top-left-radius: 4px
}

.TVMinPSlider .TVSLeftImg {
    background-position: -1px -99px
}

.TVMinPSlider .TVSLeftImg,.TVMinPSlider .TVSRightImg {
    background-image: url(//tourvisor.ru/module/newform/modules/images/minprice-sprite.png);
    width: 18px;
    height: 33px
}

.TVMinPSlider .TVSRightImg {
    background-position: -18px -99px
}

.TVMinPSlider:hover .TVSNavLeft,.TVMinPSlider:hover .TVSNavRight {
    opacity: 1;
    filter: alpha(opacity=100)
}

.TVMinPSlider .TVMinPDepName {
    position: absolute;
    bottom: 0;
    padding: 2px 5px;
    background-color: #000;
    background-color: rgba(0,0,0,.65);
    width: 100%;
    color: #fff;
    font-weight: 300;
    font-style: italic
}

.TVMinPSlider .TVMinPDepName:before {
    content: " из "
}

.TVMinPriceControl.TVMinPMetro {
    margin-top: 10px
}

.TVMinPriceControl.TVMinPMetro.TVMinPScrolling .TVMinPMetroWrap {
    margin-bottom: 100px
}

.TVMinPriceControl.TVMinPMetro .TVMinPMetroWrap {
    padding: 0;
    margin: 0;
    overflow-y: hidden;
    transition: height .5s
}

.TVMinPriceControl.TVMinPMetro .TVMinPMetroWrap .TVMinPMetroItem {
    opacity: 1;
    display: inline-block;
    vertical-align: top;
    overflow: hidden;
    position: relative;
    padding: 0;
    margin-bottom: 10px;
    transition: opacity 2.5s
}

.TVMinPriceControl.TVMinPMetro .TVMinPMetroWrap .TVMinPMetroItem:hover .TVMinPInVisContent {
    top: 0
}

.TVMinPriceControl.TVMinPMetro .TVMinPMetroWrap .TVMinPMetroItem.TVMinPFading {
    opacity: 0
}

.TVMinPriceControl.TVMinPMetro .TVMinPPicture {
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: cover;
    width: 100%;
    height: 100%
}

.TVMinPriceControl.TVMinPMetro .TVMinPItemBottom {
    position: relative
}

.TVMinPriceControl.TVMinPMetro .TVMinPDeparture {
    padding-left: 18px;
    padding-bottom: 12px;
    font-weight: 300
}

.TVMinPriceControl.TVMinPMetro .TVMinPCountry {
    padding: 13px 0 0 18px;
    font-weight: 500;
    text-transform: uppercase
}

.TVMinPriceControl.TVMinPMetro .TVMinPPriceValue {
    position: absolute;
    right: 23px;
    top: 16px;
    font-size: 24px;
    font-weight: 300;
    display: flex;
    align-items: flex-end
}

.TVMinPriceControl.TVMinPMetro .TVMinPPriceCurrency {
    margin-left: 7px
}

.TVMinPriceControl.TVMinPMetro .TVMinPBg {
    opacity: .85;
    filter: alpha(opacity=85);
    height: 100%
}

.TVMinPriceControl.TVMinPMetro .TVMinPInVisContent {
    width: 100%;
    height: 100%;
    top: 100%;
    position: absolute;
    transition: top .5s
}

.TVMinPriceControl.TVMinPMetro .TVMinPInVisContent .TVMinPItemBottom {
    font-size: 19px;
    position: absolute;
    top: 30px;
    left: 30px;
    opacity: 0;
    transition: opacity .5s
}

.TVMinPriceControl.TVMinPMetro .TVMinPInVisContent.TVMinPOpacity .TVMinPItemBottom {
    opacity: 1
}

.TVMinPriceControl.TVMinPMetro .TVMinPInVisContent .TVMinPItemBottom div {
    padding-left: 0
}

.TVMinPriceControl.TVMinPMetro .TVMinPInVisContent .TVMinPPriceValue {
    position: static;
    padding-left: 18px;
    font-size: 36px;
    font-weight: 500
}

.TVMinPriceControl.TVMinPMetro .TVMinPDateNights {
    padding-left: 18px;
    font-size: 19px;
    font-weight: 300;
    margin-left: -4px;
    text-transform: lowercase
}

.TVMinPriceControl.TVMinPMetro .TVMinPDateNights .TVMinPMetroDate:after {
    content: ","
}

.TVMinPriceControl.TVMinPMetro .TVMinPDateNights .TVMinPMetroNights:after {
    content: " ночей"
}

.TVMinPriceControl.TVMinPMetro .TVMinPMainColor {
    background-image: none
}

.TVMinPriceControl.TVMinPMetro .TVMinPDateNights div {
    display: inline-block;
    margin: 0 5px
}

.TVMinPriceControl.TVMinPMetro .TVMinPMetroButton {
    display: block;
    text-decoration: none;
    color: #fff;
    -webkit-text-shadow: 1px 1px #444;
    text-shadow: 1px 1px #444;
    padding: 10px 0;
    background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMCUiIHkyPSIxMDAlIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjYWJkYzI4Ii8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjNzZjMTIwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI2EpIiBkPSJNMCAwaDF2MUgweiIvPjwvc3ZnPg==") repeat scroll 0 0 transparent;
    font-size: 16px;
    font-weight: 500;
    box-shadow: 1px 1px 3px 0 #444;
    border-radius: 2px;
    text-align: center;
    width: 150px;
    position: absolute;
    bottom: 30px;
    left: 30px;
    cursor: pointer
}

.TVMinPriceControl.TVMinPMetro .TVMinPMetroButton:hover {
    background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMCUiIHkyPSIxMDAlIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjOGZjODAwIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjOGZjODAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI2EpIiBkPSJNMCAwaDF2MUgweiIvPjwvc3ZnPg==);
    box-shadow: 1px 1px 4px 0 #111
}

.TVMinPriceControl.TVMinPMetro .TVMinPMetroButton:active {
    box-shadow: inset 1px 1px 4px #111
}

.TVMinPriceControl.TVMinPMetro .TVMinPMetroButton:after {
    content: "Показать туры"
}

.TVMinPriceControl.TVMinPMetro .TVMinPRadius {
    border-radius: 0
}

.TVMinPriceControl.TVMinPMetro .TVMinPStandartBlock,.TVMinPriceControl.TVMinPMetro .TVMinPVerticalBlock {
    display: flex;
    justify-content: space-between
}

.TVMinPriceControl.TVMinPMetro .TVMinPVerticalBlock .TVMinPMetroDate:after {
    content: ""
}

.TVMinPriceControl.TVMinPMetro .TVMinPVerticalBlock .TVMinPDeparture {
    padding-bottom: 0
}

.TVMinPriceControl.TVMinPMetro .TVMinPVerticalBlock .TVMinPPriceValue {
    padding-bottom: 12px
}

.TVMinPriceControl.TVMinPMetro .TVMinPVerticalBlock .TVMinPVisContent .TVMinPPriceValue {
    font-size: 24px;
    font-weight: 300;
    padding-left: 17px;
    position: static
}

.TVMinPriceControl.TVMinPMetro .TVMinPVerticalBlock .TVMinPInVisContent .TVMinPPriceValue {
    padding-top: 30px
}

.TVMinPriceControl.TVMinPMetro .TVMinPVerticalBlock .TVMinPDateNights div {
    display: block
}

.TVMinPriceControl.TVMinPMetro .TVMinPVerticalBlock .TVMinPMetroButton {
    margin-top: 100px;
    left: 30px
}

.TVMinPriceControl.TVMinPMetro.TVMinPNarrow .TVMinPInVisContent .TVMinPItemBottom {
    top: 0;
    left: 15px;
    font-size: 16px
}

.TVMinPriceControl.TVMinPMetro.TVMinPNarrow .TVMinPInVisContent .TVMinPPriceValue {
    font-size: 26px
}

.TVMinPriceControl.TVMinPMetro.TVMinPNarrow .TVMinPDateNights {
    font-size: 16px
}

.TVMinPriceControl.TVMinPMetro.TVMinPNarrow .TVMinPMetroButton {
    bottom: 20px;
    left: 15px
}

.TVMinPriceControl.TVMinPMetro.TVMinPNarrow .TVMinPVerticalItem .TVMinPMetroButton {
    margin-top: 100px;
    left: 15px;
    width: 80%
}

.TVLocked {
    pointer-events: none;
    opacity: .7
}

.TVMinPriceControl,.TVMinPriceFilter {
    margin: 0 auto
}

.TVSandartItem {
    width: 150px;
    height: 50px;
    background: #fff;
    box-shadow: 0 3px 6px rgba(0,0,0,.1607843137);
    box-sizing: border-box;
    position: relative;
    padding: 5px 10px;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    flex-direction: column
}

.TVSandartItem.TVMinPriceItem {
    display: flex
}

.TVSandartItem .TVCountryFlagMedium {
    margin: auto 0;
    border-radius: 4px;
    position: absolute;
    top: 0;
    bottom: 0;
    transform: scale(.5);
    transform-origin: left center
}

.TVSandartItem .TVMinPCountryName {
    padding-left: 30px;
    color: #333;
    font: 700 14px/19px var(--tv-font-theme2);
    letter-spacing: -.7px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis
}

.TVSandartItem .TVMinPPriceBlock {
    font-family: var(--tv-font-theme2);
    color: #777;
    padding-left: 30px;
    font-size: 13px;
    line-height: 18px;
    display: flex;
    align-items: flex-end
}

.TVSandartItem .TVMinPPriceBlock .TVMinPPrice {
    letter-spacing: -.65px;
    line-height: 16px
}

.TVSandartItem .TVMinPPriceBlock .TVMinPCurrency {
    margin-left: 3px;
    font-size: 10px;
    line-height: 14px;
    letter-spacing: -.3px
}

.TVSandartItem .TVMinPPriceBlock:after {
    font-family: TVicons;
    content: "\e90a";
    padding-left: 5px
}

.TVSandartItem.TVMinPMainColor {
    background-color: #fff
}

.TVMinPriceItem {
    display: inline-block;
    font-family: var(--tv-font-theme2);
    overflow: hidden;
    box-sizing: border-box;
    position: relative
}

.TVMinPriceItem.TVShowMinPrices .TVBackground,.TVMinPriceItem.TVShowMinPrices .TVMinpInVisContent {
    top: 0
}

.TVMinPriceItem .TVMinPPictureBlock {
    color: #fff;
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: cover
}

.TVMinPriceItem .TVMinPInfoBlock {
    padding: 15px;
    box-sizing: border-box;
    color: #333;
    position: relative;
    font-size: 13px
}

.TVMinPriceItem .TVMinPInfoBlock .TVMinPMetroDateIcon {
    text-transform: lowercase;
    color: #999
}

.TVMinPriceItem .TVMinPInfoBlock .TVMinPMetroDateIcon:before {
    font-family: TVicons;
    content: "\e938";
    margin-right: 7px
}

.TVMinPriceItem .TVMinPInfoBlock .TVMinPMetroDateIcon .TVMinPMetroDate {
    color: #333;
    display: inline-block
}

.TVMinPriceItem .TVMinPInfoBlock .TVMinPMetroNightsIcon {
    color: #999
}

.TVMinPriceItem .TVMinPInfoBlock .TVMinPMetroNightsIcon:before {
    font-family: TVicons;
    content: "\e943";
    margin-right: 7px
}

.TVMinPriceItem .TVMinPInfoBlock .TVMinPMetroNightsIcon .TVMinPMetroNights {
    color: #333;
    display: inline-block
}

.TVMinPriceItem .TVBackground,.TVMinPriceItem .TVMinpInVisContent {
    top: 100%;
    width: 100%;
    height: 100%;
    position: absolute;
    transition: top .5s ease-in-out
}

.TVMinPriceItem .TVBackground .TVMinPCountryName,.TVMinPriceItem .TVMinpInVisContent .TVMinPCountryName {
    margin: 12px 20px 0;
    font-size: 16px;
    line-height: 21px;
    font-weight: 800;
    letter-spacing: -.48px
}

.TVMinPriceItem .TVBackground .TVMinPDeparture,.TVMinPriceItem .TVMinpInVisContent .TVMinPDeparture {
    margin: 0 20px 9px;
    font-size: 13px;
    line-height: 18px;
    letter-spacing: -.39px
}

.TVMinPriceItem .TVBackground .TVMinPTable,.TVMinPriceItem .TVMinpInVisContent .TVMinPTable {
    width: 100%;
    position: relative;
    height: calc(100% - 69px);
    overflow: hidden;
    overflow-y: auto;
    opacity: 1;
    transition: opacity .5s ease-in-out
}

.TVMinPriceItem .TVBackground .TVMinPTable.TVPreview,.TVMinPriceItem .TVMinpInVisContent .TVMinPTable.TVPreview {
    pointer-events: none;
    filter: blur(3px);
    animation: opacity-animation 1s linear 1s infinite alternate
}

.TVMinPriceItem .TVTableTitle {
    position: relative
}

.TVMinPriceItem .TVMinPriceClose {
    position: absolute;
    margin: auto;
    bottom: 0;
    top: 0;
    right: 15px;
    border: 2px solid;
    border-radius: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 18px;
    height: 18px
}

.TVMinPriceItem .TVMinPriceClose:before {
    font-family: TVicons;
    content: "\e916";
    font-size: 10px;
    line-height: 10px;
    transform: scale(-1)
}

.TVMinPriceItem .TVCountryFlagMedium {
    transform: scale(.6);
    transform-origin: left center
}

.TVMinPriceItem .TVOpacity {
    opacity: .8
}

.TVMinPriceItem.TVThreeMinPriceDesignItem {
    height: 250px
}

.TVMinPriceItem.TVThreeMinPriceDesignItem .TVMinPPictureBlock {
    height: 185px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box
}

.TVMinPriceItem.TVThreeMinPriceDesignItem .TVMinPPictureBlock .TVMinPLeftGradient {
    height: 100%;
    width: 90%;
    opacity: 0;
    transition: opacity .5s ease-in-out;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 0
}

.TVMinPriceItem.TVThreeMinPriceDesignItem .TVMinPPictureBlock .TVCountryFlagMedium {
    z-index: 0
}

.TVMinPriceItem.TVThreeMinPriceDesignItem .TVMinPPictureBlock .TVMinPCountryName {
    font-size: 25px;
    line-height: 34px;
    font-weight: 800;
    letter-spacing: -1.25px;
    z-index: 0
}

.TVMinPriceItem.TVThreeMinPriceDesignItem .TVMinPPictureBlock .TVMinPDeparture {
    font-size: 15px;
    line-height: 20px;
    letter-spacing: -.75px;
    z-index: 0
}

.TVMinPriceItem.TVThreeMinPriceDesignItem .TVMinPInfoBlock {
    background-color: #efefef;
    height: 65px
}

.TVMinPriceItem.TVThreeMinPriceDesignItem .TVMinPInfoBlock .TVMinPMetroDate:before,.TVMinPriceItem.TVThreeMinPriceDesignItem .TVMinPInfoBlock .TVMinPMetroNights:before {
    color: #999
}

.TVMinPriceItem.TVThreeMinPriceDesignItem .TVMinPInfoBlock .TVMinPPriceValue {
    font-size: 21px;
    font-weight: 800;
    letter-spacing: -1.05px;
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto 0;
    right: 15px;
    height: 28px;
    display: flex;
    align-items: flex-end
}

.TVMinPriceItem.TVThreeMinPriceDesignItem .TVMinPInfoBlock .TVMinPPriceCurrency {
    font-weight: 400;
    font-size: 10px;
    letter-spacing: -.3px;
    text-transform: uppercase;
    margin-left: 4px;
    line-height: 20px
}

.TVMinPriceItem.TVThreeMinPriceDesignItem .TVMinpInVisContent {
    background-color: #f4f4f4
}

.TVMinPriceItem.TVThreeMinPriceDesignItem .TVMinPriceClose {
    color: #777
}

.TVMinPriceItem.TVTwoMinPriceDesignItem {
    height: 280px
}

.TVMinPriceItem.TVTwoMinPriceDesignItem .TVMinPPictureBlock {
    height: 154px
}

.TVMinPriceItem.TVTwoMinPriceDesignItem .TVMinPInfoBlock {
    background-color: #efefef
}

.TVMinPriceItem.TVTwoMinPriceDesignItem .TVMinPInfoBlock .TVMinPCountryName {
    font-size: 16px;
    font-weight: 800;
    line-height: 21px;
    letter-spacing: -.48px
}

.TVMinPriceItem.TVTwoMinPriceDesignItem .TVMinPInfoBlock .TVMinPDeparture {
    color: #777;
    font-size: 14px;
    line-height: 19px;
    letter-spacing: -.42px;
    margin: 5px 0 15px
}

.TVMinPriceItem.TVTwoMinPriceDesignItem .TVMinPInfoBlock .TVMinPPriceValue {
    font-size: 16px;
    font-weight: 600;
    text-align: center;
    line-height: 30px;
    letter-spacing: -.8px;
    position: absolute;
    bottom: 20px;
    right: 0;
    width: 100px;
    height: 30px;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: flex-end
}

.TVMinPriceItem.TVTwoMinPriceDesignItem .TVMinPInfoBlock .TVMinPPriceValue:before {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-top: 15px solid transparent;
    border-right-style: solid;
    border-right-width: 10px;
    border-bottom: 15px solid transparent;
    left: -10px;
    top: 0
}

.TVMinPriceItem.TVTwoMinPriceDesignItem .TVMinPInfoBlock .TVMinPPriceCurrency {
    font-size: 9px;
    line-height: 24px;
    letter-spacing: -.45px;
    text-transform: uppercase;
    margin-left: 4px
}

.TVMinPriceItem.TVTwoMinPriceDesignItem .TVMinpInVisContent {
    background-color: #f4f4f4
}

.TVMinPriceItem.TVTwoMinPriceDesignItem .TVMinPriceClose {
    color: #777
}

.TVMinPriceItem.TVFourMinPriceDesignItem {
    height: 260px
}

.TVMinPriceItem.TVFourMinPriceDesignItem .TVMinPPictureBlock {
    height: 182px
}

.TVMinPriceItem.TVFourMinPriceDesignItem .TVMinPInfoBlock {
    color: #fff;
    padding: 8px 12px
}

.TVMinPriceItem.TVFourMinPriceDesignItem .TVMinPInfoBlock .TVMinPCountryName {
    font-size: 18px;
    line-height: 21px;
    font-weight: 800;
    letter-spacing: -.9px;
    text-transform: uppercase
}

.TVMinPriceItem.TVFourMinPriceDesignItem .TVMinPInfoBlock .TVMinPDeparture {
    font-size: 13px;
    line-height: 18px;
    letter-spacing: -.65px
}

.TVMinPriceItem.TVFourMinPriceDesignItem .TVMinPInfoBlock .TVMinPPriceValue {
    font-size: 15px;
    line-height: 20px;
    letter-spacing: -.75px;
    display: flex;
    align-items: flex-end
}

.TVMinPriceItem.TVFourMinPriceDesignItem .TVMinPInfoBlock .TVMinPPriceCurrency {
    font-size: 10px;
    letter-spacing: -.3px;
    text-transform: uppercase;
    margin-left: 4px;
    line-height: 16px
}

.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinpInVisContent .TVMinPCountryName,.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinpInVisContent .TVMinPRegionName,.TVMinPriceItem.TVFourMinPriceDesignItem .TVMinpInVisContent .TVMinPCountryName,.TVMinPriceItem.TVFourMinPriceDesignItem .TVMinpInVisContent .TVMinPRegionName {
    font-size: 18px;
    line-height: 21px;
    font-weight: 800;
    letter-spacing: -.9px;
    text-transform: uppercase;
    margin: 20px 10px 0
}

.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinpInVisContent .TVMinPDeparture,.TVMinPriceItem.TVFourMinPriceDesignItem .TVMinpInVisContent .TVMinPDeparture {
    margin: 0 10px 16px;
    font-size: 13px;
    line-height: 18px;
    letter-spacing: -.65px
}

.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinpInVisContent .TVMinPTable,.TVMinPriceItem.TVFourMinPriceDesignItem .TVMinpInVisContent .TVMinPTable {
    width: auto;
    margin: 0 5px 5px;
    box-sizing: border-box;
    position: relative;
    height: calc(100% - 85px);
    background-color: transparent;
    overflow: hidden;
    overflow-y: auto
}

.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinpInVisContent .TVMinPTable .TVMinPriceTableItem,.TVMinPriceItem.TVFourMinPriceDesignItem .TVMinpInVisContent .TVMinPTable .TVMinPriceTableItem {
    margin-bottom: 5px;
    border-radius: 4px;
    box-sizing: content-box;
    border: none;
    height: 30px
}

.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinpInVisContent .TVMinPTable .TVMinPriceTableItem:last-child,.TVMinPriceItem.TVFourMinPriceDesignItem .TVMinpInVisContent .TVMinPTable .TVMinPriceTableItem:last-child {
    margin-bottom: 0
}

.TVMinPriceItem.TVFiveMinPriceDesignItem.TVWide .TVMinpInVisContent,.TVMinPriceItem.TVFourMinPriceDesignItem.TVWide .TVMinpInVisContent {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    padding: 10px 10px 10px 25px;
    box-sizing: border-box
}

.TVMinPriceItem.TVFiveMinPriceDesignItem.TVWide .TVMinpInVisContent .TVInVisBlock,.TVMinPriceItem.TVFourMinPriceDesignItem.TVWide .TVMinpInVisContent .TVInVisBlock {
    margin: auto 0
}

.TVMinPriceItem.TVFiveMinPriceDesignItem.TVWide .TVMinpInVisContent .TVMinPCountryName,.TVMinPriceItem.TVFiveMinPriceDesignItem.TVWide .TVMinpInVisContent .TVMinPRegionName,.TVMinPriceItem.TVFourMinPriceDesignItem.TVWide .TVMinpInVisContent .TVMinPCountryName,.TVMinPriceItem.TVFourMinPriceDesignItem.TVWide .TVMinpInVisContent .TVMinPRegionName {
    font-size: 30px;
    line-height: 35px;
    letter-spacing: -1px;
    margin: 0
}

.TVMinPriceItem.TVFiveMinPriceDesignItem.TVWide .TVMinpInVisContent .TVMinPDeparture,.TVMinPriceItem.TVFourMinPriceDesignItem.TVWide .TVMinpInVisContent .TVMinPDeparture {
    font-size: 15px;
    line-height: 20px;
    letter-spacing: -.75px;
    margin: 0
}

.TVMinPriceItem.TVFiveMinPriceDesignItem.TVWide .TVMinpInVisContent .TVMinPTable,.TVMinPriceItem.TVFourMinPriceDesignItem.TVWide .TVMinpInVisContent .TVMinPTable {
    width: 50%;
    height: 100%
}

.TVMinPriceItem.TVFiveMinPriceDesignItem.TVWide.TVMobileMinPriceItem .TVMinPTable,.TVMinPriceItem.TVFourMinPriceDesignItem.TVWide.TVMobileMinPriceItem .TVMinPTable {
    height: calc(100% - 30px);
    top: 30px
}

.TVMinPriceItem.TVFiveMinPriceDesignItem.TVWide.TVMobileMinPriceItem .TVTableTitle,.TVMinPriceItem.TVFourMinPriceDesignItem.TVWide.TVMobileMinPriceItem .TVTableTitle {
    position: static
}

.TVMinPriceItem.TVFiveMinPriceDesignItem.TVWide.TVMobileMinPriceItem .TVTableTitle .TVMinPriceClose,.TVMinPriceItem.TVFourMinPriceDesignItem.TVWide.TVMobileMinPriceItem .TVTableTitle .TVMinPriceClose {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    margin: 0;
    border: none
}

.TVMinPriceItem.TVFiveMinPriceDesignItem.TVWide.TVMobileMinPriceItem .TVTableTitle .TVMinPriceClose:before,.TVMinPriceItem.TVFourMinPriceDesignItem.TVWide.TVMobileMinPriceItem .TVTableTitle .TVMinPriceClose:before {
    position: absolute;
    top: 12px;
    right: 15px;
    border: 2px solid;
    border-radius: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 18px;
    height: 18px;
    color: #fff
}

.TVMinPriceItem.TVFiveMinPriceDesignItem,.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinPPictureBlock {
    height: 260px
}

.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinPPictureBlock .TVMinPBottomGradient {
    position: absolute;
    height: 70%;
    width: 100%;
    bottom: 0;
    left: 0;
    opacity: 0;
    transition: opacity .5s ease-in-out
}

.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinPPictureBlock .TVMinPInfoBlock {
    position: absolute;
    bottom: 0;
    left: 0;
    transition: opacity .5s ease-in-out;
    font-size: 30px
}

.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinPPictureBlock .TVMinPCountryName {
    line-height: 30px;
    font-weight: 800;
    letter-spacing: -1px;
    color: #fff;
    text-transform: uppercase
}

.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinPPictureBlock .TVMinPDeparture {
    font-size: 15px;
    line-height: 20px;
    color: #fff;
    letter-spacing: -.75px
}

.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinPPictureBlock .TVMinPPriceValue {
    font-size: 15px;
    line-height: 20px;
    letter-spacing: -.75px;
    color: #f29e00;
    text-shadow: 0 3px 6px rgba(0,0,0,.2);
    display: flex;
    align-items: flex-end
}

.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinPPictureBlock .TVMinPPriceCurrency {
    margin-left: 4px
}

.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinPriceTableItem .TVMinPMainColor {
    background-color: #f29e00
}

.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinpInVisContent {
    display: flex;
    flex-direction: column
}

.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinpInVisContent .TVMinPTable {
    height: 100%
}

.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinpInVisContent .TVMinPCountryName {
    margin-top: 0
}

.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinPCountryName,.TVMinPriceItem.TVFiveMinPriceDesignItem .TVMinPDeparture {
    text-shadow: 0 3px 6px rgba(0,0,0,.2)
}

.TVMinPriceItem.TVFiveMinPriceDesignItem.TVShowMinPrices .TVMinPInfoBlock {
    opacity: 0
}

@keyframes opacity-animation {
    0% {
        opacity: .3
    }

    to {
        opacity: 1
    }
}

.TVMinPriceTableItem {
    height: 30px;
    box-sizing: content-box;
    border-bottom: 1px solid #ddd;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    letter-spacing: -.39px;
    color: #333;
    position: relative;
    padding: 0 15px 0 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: #fff
}

.TVMinPriceTableItem:hover {
    background-color: #f5f5f5;
    cursor: pointer
}

.TVMinPriceTableItem:first-child {
    height: 31px;
    border-top: 1px solid #ddd
}

.TVMinPriceTableItem .TVPriceBlock {
    display: flex;
    align-items: flex-end;
    font-weight: 700;
    height: 20px;
    padding: 4px;
    box-sizing: border-box
}

.TVMinPriceTableItem .TVPriceBlock .TVMinPPrice {
    line-height: 12px;
    border-radius: 4px;
    margin: auto
}

.TVMinPriceTableItem .TVPriceBlock .TVMinPPriceCurrency {
    margin-left: 3px;
    font-weight: 400;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: -.3px;
    line-height: 10px
}

.TVMinPriceTableItem .TVPriceBlock:after {
    font-family: TVicons;
    content: "\e90a";
    font-weight: 400;
    margin-left: 4px;
    line-height: 14px
}

.TVMinPriceTableItem.TVSelection .TVPriceBlock {
    color: #bc1010
}

.TVMinPriceTableItem .TVMinPriceDate {
    display: inline-block;
    width: 50px
}

.TVMinPriceTableItem .TVMinPriceNight {
    margin-left: 25px;
    display: inline-block
}

.TVMinPriceTableItem .TVMinPriceNight:after {
    content: "нч";
    margin-left: 3px
}

.TVMinPMainColor {
    background-color: #0394f0;
    background-image: none;
    color: #fff
}

.TVMinPMainColor:before {
    color: #0394f0
}

.TVCustomPriceColor,.TVCustomPriceColor:before {
    color: rgba(3,148,240,.8)
}

.TVCustomLeftGradient {
    background: linear-gradient(270deg,rgba(3,148,240,0) 0,rgba(3,148,240,0))
}

.TVCustomBottomGradient {
    background: linear-gradient(rgba(3,148,240,0),rgba(3,148,240,0))
}

.TVMinpInVisContent {
    color: #333
}

.TVFiveMinPriceDesignItem .TVMinpInVisContent,.TVFourMinPriceDesignItem .TVMinpInVisContent {
    color: #fff
}

.TVStandartView,.TVStandartView .TVMinPVisibleArea {
    flex-wrap: wrap;
    display: flex;
    box-sizing: border-box
}

.TVStandartView .TVMinPInvisibleArea {
    flex-wrap: wrap;
    display: flex;
    box-sizing: border-box;
    display: none
}

.TVStandartView.TVShowAll .TVInvisibleAreaBlock {
    animation: overflow-animation .5s linear alternate;
    overflow: visible
}

@keyframes overflow-animation {
    0% {
        overflow: hidden
    }

    to {
        overflow: visible
    }
}

.TVListView {
    padding: 10px;
    background: none;
    position: relative
}

.TVListView .TVSandartItem {
    width: 100%;
    border-radius: 0;
    border-bottom: 1px dotted #ddd;
    box-shadow: none;
    height: 40px
}

.TVListView .TVSandartItem .TVMinPCountryName {
    line-height: 29px;
    padding-left: 35px
}

.TVListView .TVSandartItem .TVMinPPriceBlock {
    position: absolute;
    right: 10px;
    line-height: 29px
}

.TVListView .TVSandartItem .TVMinPPrice {
    line-height: 28px
}

.TVListView .TVSandartItem .TVMinPCurrency {
    line-height: 26px
}

.TVListView .TVSandartItem:hover {
    background-color: #efefef
}

.TVListView .TVTableViewButtonBlock {
    justify-content: center
}

.TVListView .TVTableViewButtonBlock:after,.TVListView .TVTableViewButtonBlock:before {
    display: none
}

.TVMinPMobileMode .TVSandartItem:hover {
    background-color: none
}

.TVMetroView {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    opacity: 1;
    transition: opacity 1s
}

.TVMetroView .TVMinPVisContent {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0
}

.TVMetroView .TVMinPVisContent .TVMinPPictureBlock {
    height: 100%
}

.TVMetroView .TVMetroBlock {
    flex-direction: row
}

.TVMetroView .TVMetroBlock,.TVMetroView .TVVisibleArea {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between
}

.TVMetroView .TVVisibleArea {
    box-sizing: border-box;
    width: 100%
}

.TVMetroView .TVInvisibleAreaBlock {
    height: 0;
    overflow: hidden;
    transition: height .5s;
    width: 100%
}

.TVMetroView .TVInvisibleAreaBlock .TVInvisibleArea {
    flex-wrap: wrap;
    display: flex;
    justify-content: space-between;
    box-sizing: border-box
}

.TVMetroView .TVMetroViewButtonBlock {
    width: 100%;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 30px;
    margin-top: 20px
}

.TVMetroView .TVMetroViewButtonBlock:after,.TVMetroView .TVMetroViewButtonBlock:before {
    display: block;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: calc(50% - 100px);
    height: 1px;
    content: "";
    margin: auto;
    background-color: #ddd
}

.TVMetroView .TVMetroViewButtonBlock .TVMetroViewButton {
    width: 145px;
    height: 30px;
    background-color: #efefef;
    border: 1px solid #ddd;
    border-radius: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-transform: uppercase;
    box-sizing: border-box;
    cursor: pointer;
    font-family: var(--tv-font-theme2)
}

.TVMetroView .TVMetroViewButtonBlock .TVMetroViewButton:before {
    content: "Показать все";
    text-transform: uppercase;
    font-size: 10px;
    color: #777
}

.TVMetroView.TVShowAll .TVMetroViewButton:before {
    content: "Скрыть"
}

.TVPictureSlider {
    width: 100%;
    height: 100%;
    min-width: 300px;
    margin: auto;
    text-align: left
}

.TVPictureSlider .TVSSliderContainer {
    position: relative;
    overflow: hidden;
    height: 100%
}

.TVPictureSlider .TVSSliderContainer .TVSImageList {
    position: relative;
    width: 100%;
    height: 100%
}

.TVPictureSlider .TVSSliderContainer .TVSImageList .TVSlide {
    position: absolute;
    height: 100%;
    width: 100%;
    max-height: 100%;
    opacity: 0;
    transition: opacity .5s ease-out;
    background: 50% no-repeat;
    background-size: cover;
    overflow: hidden
}

.TVPictureSlider .TVSSliderContainer .TVSImageList .TVSlide.TVActiveSlide {
    opacity: 1;
    z-index: 1
}

.TVPictureSlider .TVSSliderContainer .TVSImageList.TVSlideEffectMove {
    display: flex;
    transition: none
}

.TVPictureSlider .TVSSliderContainer .TVSImageList.TVSlideEffectMove.TVActiveAnimation {
    transition: transform 1s ease
}

.TVPictureSlider .TVSSliderContainer .TVSImageList.TVSlideEffectMove .TVSlide {
    position: relative;
    opacity: 1;
    transition: none
}

.TVPictureSlider .TVNavLeft,.TVPictureSlider .TVNavRight {
    width: 30px;
    height: 50px;
    box-sizing: border-box;
    opacity: 0;
    background-color: #000;
    position: absolute;
    margin: auto;
    top: 0;
    bottom: 0;
    cursor: pointer;
    transition: opacity .5s ease-in-out;
    z-index: 1
}

.TVPictureSlider .TVNavLeft:before,.TVPictureSlider .TVNavRight:before {
    font-size: 30px;
    line-height: 50px;
    color: #fff
}

.TVPictureSlider .TVNavLeft {
    left: 0;
    border-bottom-right-radius: 4px;
    border-top-right-radius: 4px
}

.TVPictureSlider .TVNavLeft:before {
    font-family: TVicons;
    content: "\e907"
}

.TVPictureSlider .TVNavRight {
    right: 0;
    border-bottom-left-radius: 4px;
    border-top-left-radius: 4px
}

.TVPictureSlider .TVNavRight:before {
    font-family: TVicons;
    content: "\e908"
}

.TVPictureSlider:hover .TVNavLeft,.TVPictureSlider:hover .TVNavRight {
    opacity: .7
}

.TVPictureSlider:after {
    height: 10%;
    width: 100%;
    display: block;
    background-image: url(//tourvisor.ru/module/newform/modules/images/slider/slidershadow.png);
    background-size: 100%;
    background-repeat: no-repeat
}

.TVPictureSlider.TVMobileslider .TVNavLeft,.TVPictureSlider.TVMobileslider .TVNavRight {
    opacity: .7
}

.TVSliderCustomBackground {
    background-color: rgba(0,0,0,.7)
}

.TVWorkWidth {
    width: calc(100% - 30px);
    margin: 0 auto;
    padding: 15px 0;
    height: 100%;
    box-sizing: border-box
}

.TVSlideLinkBlock {
    box-sizing: border-box;
    padding: 10px 20px;
    cursor: pointer
}

.TVSlideLinkBlock .TVSlideTitle {
    font: 700 25px/34px var(--tv-font-theme2);
    color: #fff
}

.TVSlideLinkBlock .TVSlideText {
    font: normal 14px/19px var(--tv-font-theme2);
    color: #91bfde
}

.TVSliderPriceBlock {
    background-color: #fff;
    opacity: .9;
    position: relative;
    padding-left: 15px;
    height: 55px;
    box-sizing: border-box;
    cursor: pointer
}

.TVSliderPriceBlock .TVSliderDiscount {
    width: 90px;
    height: 61px;
    top: -3px;
    left: 0;
    position: absolute;
    background-color: #d91b19;
    color: #fff;
    font: 700 30px/60px var(--tv-font-theme2);
    letter-spacing: -1.5px;
    text-align: center;
    opacity: 1
}

.TVSliderPriceBlock .TVSliderPriceArrow {
    width: 30px;
    height: 30px;
    border-radius: 30px;
    position: absolute;
    right: 12px;
    top: 0;
    bottom: 0;
    margin: auto;
    background-color: #bcbdbc;
    box-sizing: border-box;
    line-height: 30px;
    opacity: 1
}

.TVSliderPriceBlock .TVSliderPriceArrow:before {
    font-family: TVicons;
    content: "\e906";
    color: #fff;
    font-size: 15px;
    display: block;
    width: 13px;
    margin: auto
}

.TVSliderPriceBlock:hover .TVSliderPriceArrow {
    background-color: #7fb762
}

.TVSliderPriceBlock .TVSlideSalePriceNew {
    line-height: 48px
}

.TVSliderPriceBlock .TVSlideSalePriceCurrency {
    color: #999;
    text-transform: uppercase;
    font-size: 13px;
    font-weight: 400;
    line-height: 48px;
    margin-left: 5px;
    margin-top: 5px
}

.TVSliderPrice {
    color: #333;
    font-weight: 700;
    font-size: 22px;
    font-family: var(--tv-font-theme2);
    display: flex;
    align-items: center
}

.TVSliderStar {
    display: inline-block;
    box-sizing: border-box;
    font-size: 15px;
    color: #fff;
    margin-right: 2px
}

.TVSliderStar:before {
    font-family: TVicons;
    content: "\e90c"
}

.TVSliderHotPriceBlock {
    padding: 0 15px;
    background: #d91b19;
    border-radius: 20px 20px 0 0;
    margin: 0 auto;
    height: 40px;
    width: fit-content;
    box-sizing: border-box;
    color: #fff;
    line-height: 40px;
    font-family: var(--tv-font-theme2);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0
}

.TVSliderHotPriceBlock .TVSliderCurrency,.TVSliderHotPriceBlock .TVSliderNewPrice {
    font-weight: 700
}

.TVSliderHotPriceBlock .TVSliderNewPrice {
    font-size: 22px;
    margin-left: 10px
}

.TVSliderHotPriceBlock .TVSliderCurrency {
    font-size: 13px;
    margin: 0 10px 0 3px;
    line-height: 33px
}

.TVSliderHotPriceBlock .TVSliderOldPrice {
    text-decoration: line-through;
    font-size: 16px;
    line-height: 36px
}

.TVSliderHotPriceBlock:before {
    display: block;
    font-family: TVicons;
    content: "\e919";
    font-size: 20px
}

.TVSaleSlide .TVWorkWidth {
    display: flex;
    justify-content: space-between;
    flex-direction: column
}

.TVSaleSlide .TVWorkWidth .TVSliderPriceBlock {
    padding-left: 110px
}

.TVHotSlide {
    display: flex;
    justify-content: space-between;
    flex-direction: column
}

.TVHotSlide .TVSlideLinkBlock {
    margin: 15px 15px 0
}

.TVMinSlide {
    display: flex;
    justify-content: flex-start;
    flex-direction: column
}

.TVVerticalSlider .TVHotSlide .TVSlideTitle.TVSliderCustomBackground {
    background: none!important
}

.TVHorizontalSlider .TVWorkWidth {
    width: calc(100% - 60px);
    margin: 0 auto;
    padding: 30px 0
}

.TVHorizontalSlider .TVSlideLinkBlock,.TVHorizontalSlider .TVSliderPriceBlock {
    max-width: 350px
}

.TVWideSlider .TVWorkWidth {
    width: 70%;
    margin: 0 auto;
    padding: 30px 0
}

.TVWideSlider .TVSlideLinkBlock,.TVWideSlider .TVSliderPriceBlock {
    max-width: 350px
}

.TVWideSlider .TVSaleSlide .TVWorkWidth {
    justify-content: flex-start
}

.TVWideSlider .TVSaleSlide .TVWorkWidth .TVSliderPriceBlock {
    margin-top: 15px
}

.TVHorizontalSlider .TVHotSlide .TVSlideLinkBlock,.TVWideSlider .TVHotSlide .TVSlideLinkBlock {
    margin: 0 auto;
    width: 80%;
    text-align: center
}

.TVHorizontalSlider .TVHotSlide .TVSlideLinkBlock.TVSliderCustomBackground,.TVWideSlider .TVHotSlide .TVSlideLinkBlock.TVSliderCustomBackground {
    background: none!important
}

.TVHorizontalSlider .TVHotSlide .TVSlideLinkBlock .TVSlideTitle,.TVWideSlider .TVHotSlide .TVSlideLinkBlock .TVSlideTitle {
    padding: 0 20px;
    margin: 10px auto
}

.TVHorizontalSlider .TVHotSlide .TVSlideLinkBlock .TVSlideText,.TVWideSlider .TVHotSlide .TVSlideLinkBlock .TVSlideText {
    background-color: #fff;
    line-height: 30px;
    padding: 0 15px;
    font-size: 14px;
    color: #333;
    display: inline-block
}

.TVHotSlide .TVSlideTitle,.TVSaleSlide .TVSlideTitle {
    text-transform: capitalize
}

.TVSlideTopGradient {
    width: 100%;
    height: 90%
}

.TVSlideLeftGradient,.TVSlideTopGradient {
    display: none;
    position: absolute;
    top: 0;
    left: 0
}

.TVSlideLeftGradient {
    width: 90%;
    height: 100%
}

.TVGradientSlide {
    color: #fff
}

.TVGradientSlide .TVWorkWidth {
    width: 80%;
    margin: 0 auto;
    height: 100%
}

.TVGradientSlide .TVSlideDataBlock {
    margin: auto 0;
    position: absolute;
    bottom: 0;
    top: 0;
    display: flex;
    justify-content: center;
    flex-direction: column;
    width: 60%
}

.TVGradientSlide .TVSlideTitle {
    font-family: var(--tv-font-theme2);
    font-weight: 800;
    font-size: 25px;
    line-height: 40px;
    letter-spacing: -1.25px;
    margin-bottom: 7px
}

.TVGradientSlide .TVSlideText {
    font: normal 16px/20px var(--tv-font-theme2)
}

.TVGradientSlide .TVSlideButtonBlock {
    width: 150px;
    height: 40px;
    box-sizing: border-box;
    margin-top: 30px
}

.TVGradientSlide .TVSlideButtonBlock .TVSlideButton {
    width: 150px;
    border-radius: 30px;
    line-height: 40px;
    box-sizing: border-box;
    text-align: center;
    text-transform: uppercase;
    font-family: var(--tv-font-theme2);
    font-size: 14px;
    background-color: #fff;
    color: #000;
    cursor: pointer;
    position: absolute;
    margin-top: 0
}

.TVGradientSlide .TVSlideButtonBlock .TVSlideButton:hover {
    box-shadow: 0 0 10px rgba(0,0,0,.7)
}

.TVGradientSlide .TVSlideButtonBlock .TVSlideButton:before {
    content: "Подробнее"
}

.TVGradientSlide .TVSlidePrice {
    background: #d02626;
    font-family: var(--tv-font-theme2);
    font-weight: 800;
    font-size: 24px;
    line-height: 40px;
    letter-spacing: -1.2px;
    position: relative;
    box-sizing: border-box;
    height: 40px;
    margin-right: 10px;
    width: fit-content;
    text-align: center;
    margin-bottom: 10px;
    white-space: nowrap
}

.TVGradientSlide .TVSlidePrice:after {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-top: 20px solid transparent;
    border-left: 10px solid #d02626;
    border-bottom: 20px solid transparent;
    right: -10px;
    top: 0
}

.TVGradientSlide .TVSliderCurrency {
    font-size: 13px;
    font-weight: 800;
    letter-spacing: -.65px;
    margin-left: 3px
}

.TVGradientSlide .TVSlideSalePrice {
    font-family: var(--tv-font-theme2);
    display: flex;
    align-items: flex-end
}

.TVGradientSlide .TVSlideSalePriceNew {
    font-weight: 800;
    font-size: 35px;
    line-height: 40px;
    letter-spacing: -1.75px
}

.TVGradientSlide .TVSlideSalePriceCurrency {
    font-weight: 800;
    font-size: 13px;
    line-height: 23px;
    letter-spacing: -.65px;
    margin-left: 3px
}

.TVGradientSlide .TVDiscountBlock {
    box-sizing: border-box;
    margin-top: 30px;
    height: 40px
}

.TVGradientSlide .TVDiscountBlock .TVAnimationBlock {
    position: relative;
    cursor: pointer;
    width: 230px;
    border-radius: 30px
}

.TVGradientSlide .TVDiscountBlock .TVAnimationBlock:hover {
    box-shadow: 0 0 10px rgba(0,0,0,.7)
}

.TVGradientSlide .TVDiscountBlock .TVAnimationBlock .TVSlideButton:hover {
    box-shadow: none
}

.TVGradientSlide .TVDiscountBlock .TVDiscount {
    border-radius: 30px;
    background-color: #d02626;
    height: 40px;
    width: 150px;
    box-sizing: border-box;
    padding-left: 15px;
    font-family: var(--tv-font-theme2);
    font-weight: 800;
    font-size: 24px;
    line-height: 40px;
    letter-spacing: -1.2px
}

.TVGradientSlide .TVDiscountBlock .TVSlideButtonBlock {
    position: absolute;
    top: 0;
    margin-top: 0;
    left: 80px
}

.TVGradientSlide.TVMinSlide .TVSlideTitle {
    font-size: 35px
}

.TVGradientSlide.TVMinSlide .TVSlideTitle:before {
    content: "Отдых";
    font-size: 25px;
    display: block
}

.TVGradientSlide.TVMinSlide .TVSlidePrice {
    display: flex;
    justify-content: center;
    align-items: flex-end
}

.TVGradientSlide.TVMinSlide .TVSlidePrice .TVSliderCurrency {
    line-height: 33px
}

.TVGradientSlide.TVSaleSlide .TVSlideTitle {
    margin-bottom: 0
}

.TVGradientSlide.TVHotSlide .TVSlidePrice {
    display: flex;
    justify-content: start;
    align-items: flex-end;
    max-width: fit-content;
    width: auto
}

.TVGradientSlide.TVHotSlide .TVSlidePrice:before {
    display: block;
    font-family: TVicons;
    content: "\e919";
    font-size: 20px;
    width: 40px
}

.TVGradientSlide.TVHotSlide .TVSlidePrice .TVSliderCurrency {
    line-height: 33px
}

.TVGradientSlide.TVHotSlide .TVSlidePrice .TVSliderOldPrice {
    text-decoration: line-through;
    font: normal 16px/40px var(--tv-font-theme2);
    margin-left: 10px;
    line-height: 36px
}

.TVGradientSlide.TVHotSlide .TVSlideTitle {
    font-size: 30px
}

.TVVerticalSlider .TVSlideTopGradient {
    display: block
}

.TVVerticalSlider .TVWorkWidth {
    width: calc(100% - 70px);
    margin: 0 auto;
    padding: 35px 0
}

.TVVerticalSlider .TVSlideDataBlock {
    position: relative;
    max-width: none;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    justify-content: start
}

.TVVerticalSlider .TVGradientSlide.TVSaleSlide .TVSlideTitle {
    line-height: 30px;
    padding: 5px 0
}

.TVVerticalSlider .TVGradientSlide.TVHotSlide .TVSlideTitle {
    font-size: 25px;
    line-height: 30px
}

.TVHorizontalSlider .TVSlideLeftGradient,.TVWideSlider .TVSlideLeftGradient {
    display: block
}

.TVHorizontalSlider .TVSlideTitle,.TVWideSlider .TVSlideTitle {
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap
}

.TVRoundSlide {
    display: flex
}

.TVRoundSlide .TVSlideAnimationBlock {
    position: absolute;
    top: -100vw;
    bottom: -100vw;
    left: -100vw;
    right: -100vw;
    margin: auto;
    height: 300px;
    width: 300px;
    display: flex;
    justify-content: center;
    border-radius: 100%
}

.TVRoundSlide .TVSlideDataBlock {
    margin: auto;
    height: 180px;
    width: 180px;
    padding: 0;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    box-sizing: border-box;
    text-align: center;
    text-transform: uppercase;
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
    color: #fff
}

.TVRoundSlide .TVSlideButton,.TVRoundSlide .TVSlidePriceButton {
    width: 150px;
    border-radius: 30px;
    box-sizing: border-box;
    text-align: center;
    background-color: #fff;
    color: #000;
    margin: 0 auto;
    cursor: pointer
}

.TVRoundSlide .TVSlideButton:hover,.TVRoundSlide .TVSlidePriceButton:hover {
    box-shadow: 0 0 10px rgba(0,0,0,.7)
}

.TVRoundSlide .TVSlideButton {
    line-height: 40px
}

.TVRoundSlide .TVSlideButton:before {
    content: "Подробнее";
    text-transform: uppercase;
    font-family: var(--tv-font-theme2);
    font-size: 14px
}

.TVRoundSlide .TVSlidePriceButton {
    display: flex;
    justify-content: space-between;
    padding: 5px 5px 5px 15px;
    height: 40px;
    box-sizing: border-box
}

.TVRoundSlide .TVSlidePriceButton .TVSliderPrice {
    font-family: var(--tv-font-theme2);
    display: flex;
    align-items: center
}

.TVRoundSlide .TVSlidePriceButton .TVSliderCurrency,.TVRoundSlide .TVSlidePriceButton .TVSliderNewPrice {
    font-weight: 800
}

.TVRoundSlide .TVSlidePriceButton .TVSliderNewPrice {
    font-size: 20px;
    line-height: 20px;
    letter-spacing: -1px
}

.TVRoundSlide .TVSlidePriceButton .TVSliderCurrency {
    font-size: 13px;
    letter-spacing: -.65px;
    margin-left: 3px;
    margin-top: 4px
}

.TVRoundSlide .TVSlidePriceButton .TVSliderPriceArrow {
    width: 30px;
    height: 30px;
    border-radius: 100%
}

.TVRoundSlide .TVSlidePriceButton .TVSliderPriceArrow:before {
    font-family: TVicons;
    content: "\e906";
    color: #fff;
    font-size: 15px;
    display: block;
    width: 13px;
    margin: auto;
    line-height: 30px
}

.TVRoundSlide .TVSlideText {
    font: normal 14px/18px var(--tv-font-theme2);
    cursor: default;
    margin-bottom: 15px
}

.TVRoundSlide .TVSlideTitle {
    font-family: var(--tv-font-theme2);
    font-weight: 800;
    font-size: 24px;
    line-height: 30px;
    letter-spacing: -1.2px;
    text-overflow: ellipsis;
    overflow: hidden;
    max-height: 60px;
    text-transform: uppercase;
    white-space: pre-line;
    cursor: default;
    margin-bottom: 20px
}

.TVRoundSlide .TVDiscountBlock {
    position: relative;
    width: 180px;
    box-sizing: border-box;
    margin: 0 auto;
    cursor: pointer;
    border-radius: 30px
}

.TVRoundSlide .TVDiscountBlock:hover {
    box-shadow: 0 0 10px rgba(0,0,0,.7)
}

.TVRoundSlide .TVDiscountBlock .TVDiscount {
    border-radius: 30px;
    background-color: #d02626;
    height: 40px;
    width: 150px;
    box-sizing: border-box;
    padding-left: 12px;
    font-family: var(--tv-font-theme2);
    font-weight: 800;
    font-size: 20px;
    line-height: 40px;
    letter-spacing: -1px;
    text-align: left
}

.TVRoundSlide .TVDiscountBlock .TVSlidePriceButton {
    position: absolute;
    top: 0;
    margin-top: 0;
    right: 0;
    width: 120px
}

.TVRoundSlide .TVDiscountBlock .TVSlidePriceButton:hover {
    box-shadow: none
}

.TVRoundSlide .TVPriceBlock {
    position: relative;
    width: 150px;
    box-sizing: border-box;
    margin: 0 auto;
    cursor: pointer;
    border-radius: 30px
}

.TVRoundSlide .TVPriceBlock:hover {
    box-shadow: 0 0 10px rgba(0,0,0,.7)
}

.TVRoundSlide .TVPriceBlock .TVHotPrice {
    border-radius: 30px;
    background-color: #d02626;
    height: 40px;
    width: 100px;
    box-sizing: border-box;
    padding-left: 12px;
    text-align: left
}

.TVRoundSlide .TVPriceBlock .TVHotPrice:before {
    display: block;
    font-family: TVicons;
    content: "\e919";
    font-size: 20px;
    line-height: 40px
}

.TVRoundSlide .TVPriceBlock .TVSlidePriceButton {
    position: absolute;
    top: 0;
    margin-top: 0;
    left: 40px;
    width: fit-content;
    white-space: nowrap;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    text-align: left;
    padding: 0 12px
}

.TVRoundSlide .TVPriceBlock .TVSlidePriceButton .TVSliderOldPrice {
    color: #939393;
    text-decoration: line-through;
    font: normal 13px var(--tv-font-theme2)
}

.TVRoundSlide .TVPriceBlock .TVSlidePriceButton:hover {
    box-shadow: none
}

.TVRoundSlide.TVMinSlide .TVSlideTitle {
    font-size: 30px
}

@keyframes DelayWideSlideAnimation {
    0% {
        margin-left: -100%;
        position: absolute
    }

    60% {
        margin-left: -100%;
        position: absolute
    }

    to {
        margin-left: 0
    }
}

@keyframes DelayVerticalSlideAnimation {
    0% {
        left: -150%
    }

    60% {
        left: -150%
    }

    to {
        left: 0
    }
}

@keyframes WideSlideAnimation {
    0% {
        margin-left: -100%;
        position: absolute
    }

    to {
        margin-left: 0
    }
}

@keyframes VerticalSlideAnimation {
    0% {
        left: -150%
    }

    to {
        left: 0
    }
}

@keyframes OpacityAnimation {
    0% {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

@keyframes DelayOpacitySlideAnimation {
    0% {
        opacity: 0
    }

    60% {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

@keyframes HotPriceAnimation {
    0% {
        bottom: -40px;
        position: relative
    }

    to {
        bottom: 0;
        position: relative
    }
}

@keyframes DelayHotPriceAnimation {
    0% {
        bottom: -40px;
        position: relative
    }

    60% {
        bottom: -40px;
        position: relative
    }

    to {
        bottom: 0;
        position: relative
    }
}

.TVActiveSlide .TVSlideLinkBlock,.TVActiveSlide .TVSliderPriceBlock {
    animation: OpacityAnimation 1s ease alternate
}

.TVActiveSlide .TVSliderHotPriceBlock {
    animation: HotPriceAnimation 1s ease alternate
}

.TVSlideEffectMove .TVActiveSlide .TVSlideLinkBlock,.TVSlideEffectMove .TVActiveSlide .TVSliderPriceBlock {
    animation: DelayOpacitySlideAnimation 1.5s ease alternate
}

.TVSlideEffectMove .TVActiveSlide .TVSliderHotPriceBlock {
    animation: DelayHotPriceAnimation 1.5s ease alternate
}

.TVHorizontalSlider .TVSlideEffectMove .TVActiveSlide.TVSaleSlide .TVSliderPriceBlock,.TVWideSlider .TVSlideEffectMove .TVActiveSlide.TVSaleSlide .TVSliderPriceBlock {
    animation: DelayWideSlideAnimation 1.5s ease alternate
}

.TVHorizontalSlider .TVSlideEffectFade .TVActiveSlide.TVSaleSlide .TVSliderPriceBlock,.TVWideSlider .TVSlideEffectFade .TVActiveSlide.TVSaleSlide .TVSliderPriceBlock {
    animation: WideSlideAnimation 1s ease alternate
}

.TVVerticalSlider .TVSlideEffectMove .TVActiveSlide.TVSaleSlide .TVSliderPriceBlock {
    animation: DelayVerticalSlideAnimation 1.5s ease alternate
}

.TVVerticalSlider .TVSlideEffectFade .TVActiveSlide.TVSaleSlide .TVSliderPriceBlock {
    animation: VerticalSlideAnimation 1s ease alternate
}

@keyframes DelayGrButtonAnimation {
    0% {
        margin-top: 100%;
        position: absolute
    }

    60% {
        margin-top: 100%;
        position: absolute
    }

    to {
        margin-top: 0;
        position: absolute
    }
}

@keyframes GrButtonAnimation {
    0% {
        margin-top: 100%;
        position: absolute
    }

    to {
        margin-top: 0;
        position: absolute
    }
}

@keyframes DelayGrPriceAnimation {
    0% {
        margin-left: -100%
    }

    60% {
        margin-left: -100%
    }

    to {
        margin-left: 0
    }
}

@keyframes GrPriceAnimation {
    0% {
        margin-left: -100%
    }

    to {
        margin-left: 0
    }
}

@keyframes DelayGrDiscountPriceAnimation {
    0% {
        left: 0
    }

    60% {
        left: 0
    }

    to {
        left: 80px
    }
}

@keyframes GrDiscountPriceAnimation {
    0% {
        left: 0
    }

    to {
        left: 80px
    }
}

@keyframes DelayVerticalGrPriceAnimation {
    0% {
        margin-left: calc(-100% - 70px)
    }

    60% {
        margin-left: calc(-100% - 70px)
    }

    to {
        margin-left: 0
    }
}

@keyframes VerticalGrPriceAnimation {
    0% {
        margin-left: calc(-100% - 70px)
    }

    to {
        margin-left: 0
    }
}

@keyframes DelayVerticalGrButtonAnimation {
    0% {
        margin-top: 150%;
        position: absolute
    }

    60% {
        margin-top: 150%;
        position: absolute
    }

    to {
        margin-top: 0;
        position: absolute
    }
}

@keyframes VerticalGrButtonAnimation {
    0% {
        margin-top: 150%;
        position: absolute
    }

    to {
        margin-top: 0;
        position: absolute
    }
}

.TVGradientSlide.TVActiveSlide .TVSlideSalePrice,.TVGradientSlide.TVActiveSlide .TVSlideStars,.TVGradientSlide.TVActiveSlide .TVSlideText,.TVGradientSlide.TVActiveSlide .TVSlideTitle {
    animation: OpacityAnimation 1s ease alternate
}

.TVGradientSlide.TVActiveSlide .TVSlideButton {
    animation: GrButtonAnimation 1s ease alternate
}

.TVGradientSlide.TVActiveSlide .TVSlidePrice {
    animation: GrPriceAnimation 1s ease alternate
}

.TVGradientSlide.TVActiveSlide .TVAnimationBlock {
    animation: GrButtonAnimation 1s ease alternate
}

.TVGradientSlide.TVActiveSlide .TVAnimationBlock .TVSlideButtonBlock {
    animation: GrDiscountPriceAnimation 1s ease alternate
}

.TVGradientSlide.TVActiveSlide .TVAnimationBlock .TVSlideButton {
    animation: none
}

.TVSlideEffectMove .TVGradientSlide.TVActiveSlide .TVSlideSalePrice,.TVSlideEffectMove .TVGradientSlide.TVActiveSlide .TVSlideStars,.TVSlideEffectMove .TVGradientSlide.TVActiveSlide .TVSlideText,.TVSlideEffectMove .TVGradientSlide.TVActiveSlide .TVSlideTitle {
    animation: DelayOpacitySlideAnimation 1.5s ease alternate
}

.TVSlideEffectMove .TVGradientSlide.TVActiveSlide .TVSlideButton {
    animation: DelayGrButtonAnimation 1.5s ease alternate
}

.TVSlideEffectMove .TVGradientSlide.TVActiveSlide .TVSlidePrice {
    animation: DelayGrPriceAnimation 1.5s ease alternate
}

.TVSlideEffectMove .TVGradientSlide.TVActiveSlide .TVAnimationBlock {
    animation: DelayGrButtonAnimation 1.5s ease alternate
}

.TVSlideEffectMove .TVGradientSlide.TVActiveSlide .TVAnimationBlock .TVSlideButtonBlock {
    animation: DelayGrDiscountPriceAnimation 1.5s ease alternate
}

.TVSlideEffectMove .TVGradientSlide.TVActiveSlide .TVAnimationBlock .TVSlideButton {
    animation: none
}

.TVVerticalSlider .TVGradientSlide.TVActiveSlide .TVSlidePrice {
    animation: VerticalGrPriceAnimation 1s ease alternate
}

.TVVerticalSlider .TVGradientSlide.TVActiveSlide .TVAnimationBlock,.TVVerticalSlider .TVGradientSlide.TVActiveSlide .TVSlideButton {
    animation: VerticalGrButtonAnimation 1s ease alternate
}

.TVVerticalSlider .TVGradientSlide.TVActiveSlide .TVAnimationBlock .TVSlideButton {
    animation: none
}

.TVVerticalSlider .TVSlideEffectMove .TVGradientSlide.TVActiveSlide .TVSlidePrice {
    animation: DelayVerticalGrPriceAnimation 1.5s ease alternate
}

.TVVerticalSlider .TVSlideEffectMove .TVGradientSlide.TVActiveSlide .TVAnimationBlock,.TVVerticalSlider .TVSlideEffectMove .TVGradientSlide.TVActiveSlide .TVSlideButton {
    animation: DelayVerticalGrButtonAnimation 1.5s ease alternate
}

.TVVerticalSlider .TVSlideEffectMove .TVGradientSlide.TVActiveSlide .TVAnimationBlock .TVSlideButton {
    animation: none
}

@keyframes RoundSlideAnimation {
    0% {
        width: 100vw;
        height: 100vw;
        border-radius: 0
    }

    10% {
        width: 100vw;
        height: 100vw;
        border-radius: 100%
    }

    to {
        border-radius: 100%
    }
}

@keyframes RoundSlideAnimationPortrait {
    0% {
        width: 100vh;
        height: 100vh;
        border-radius: 0
    }

    10% {
        width: 100vh;
        height: 100vh;
        border-radius: 100%
    }

    to {
        border-radius: 100%
    }
}

.TVRoundSlide.TVActiveSlide .TVSlideAnimationBlock {
    animation: RoundSlideAnimation 1s ease alternate
}

.TVRoundSlide.TVActiveSlide .TVDiscountBlock,.TVRoundSlide.TVActiveSlide .TVPriceBlock,.TVRoundSlide.TVActiveSlide .TVSlideButton,.TVRoundSlide.TVActiveSlide .TVSlidePriceButton,.TVRoundSlide.TVActiveSlide .TVSlideText,.TVRoundSlide.TVActiveSlide .TVSlideTitle,.TVRoundSlide.TVActiveSlide .TVTitleBlock {
    animation: OpacityAnimation 1s ease alternate
}

.TVSlideEffectMove .TVRoundSlide.TVActiveSlide .TVSlideAnimationBlock {
    animation: RoundSlideAnimation 1.5s ease alternate
}

.TVSlideEffectMove .TVRoundSlide.TVActiveSlide .TVDiscountBlock,.TVSlideEffectMove .TVRoundSlide.TVActiveSlide .TVPriceBlock,.TVSlideEffectMove .TVRoundSlide.TVActiveSlide .TVSlideButton,.TVSlideEffectMove .TVRoundSlide.TVActiveSlide .TVSlidePriceButton,.TVSlideEffectMove .TVRoundSlide.TVActiveSlide .TVSlideText,.TVSlideEffectMove .TVRoundSlide.TVActiveSlide .TVSlideTitle,.TVSlideEffectMove .TVRoundSlide.TVActiveSlide .TVTitleBlock {
    animation: DelayOpacitySlideAnimation 1.5s ease alternate
}

@media screen and (orientation: portrait) {
    .TVRoundSlide.TVActiveSlide .TVSlideAnimationBlock {
        animation:RoundSlideAnimationPortrait 1s ease alternate
    }

    .TVSlideEffectMove .TVRoundSlide.TVActiveSlide .TVSlideAnimationBlock {
        animation: RoundSlideAnimationPortrait 1.5s ease alternate
    }
}

@media screen and (max-width: 370px) {
    .TVVerticalSlider .TVWorkWidth {
        width:calc(100% - 30px)
    }

    .TVSaleSlide .TVWorkWidth .TVSliderPriceBlock {
        padding-left: 105px
    }

    .TVSaleSlide .TVSliderPriceArrow {
        display: none
    }
}

.tv-free-button {
    display: inline-block!important
}

.TVBLargeSize {
    padding: 20px 25px;
    font-size: 18px
}

.TVBMediumSize {
    padding: 10px 20px;
    font-size: 16px
}

.TVBSmallSize {
    padding: 7px 15px;
    font-size: 14px
}

.TVBColor {
    background: #f90;
    color: #fff
}

.TVBButton {
    border-radius: 3px;
    cursor: pointer;
    display: inline-block;
    font-family: var(--tv-font-theme2);
    line-height: 1.39;
    position: relative
}

.TVBButton.TVBColor:active,.TVBWindow .TVBColor:active {
    box-shadow: inset 0 2px 4px rgba(0,0,0,.35)
}

.TVBHover {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: #fff;
    opacity: .05;
    display: none
}

.TVBColor:hover .TVBHover {
    display: block
}

.TVBButtonCaption:after {
    content: "ПОДБЕРИТЕ МНЕ ТУР"
}

.TVButtonMessageControl {
    font-size: 18px;
    font-weight: 700;
    color: #2b3f5a;
    text-align: center
}

.TVButtonOfficesSelect>:not(:last-child) {
    margin-bottom: 20px
}

.TVButtonOfficeCitySelect,.TVButtonOfficeSelect {
    border: 1px solid #ddd
}

.TVButtonOfficeCitySelect.TVInvalid,.TVButtonOfficeSelect.TVInvalid {
    border-color: #e31e22
}

.TVButtonFormTitle {
    font-size: 18px;
    font-weight: 700;
    color: #2b3f5a;
    margin-bottom: 35px
}

.TVButtonFormContent>:not(:last-child) {
    margin-bottom: 10px
}

.TVButtonFormRequest {
    margin-top: 20px
}

.TVButtonFormAgreement {
    margin-top: 15px
}

.TVButtonFormComment {
    outline: none;
    overflow: hidden;
    overflow-y: auto;
    resize: none;
    box-sizing: border-box;
    width: 100%;
    min-height: 88px;
    padding: 16px;
    font-size: 14px;
    font-weight: 400;
    line-height: 18px;
    color: #333;
    border: 1px solid #d8dde2;
    background-color: #fefefe;
    border-radius: 5px
}

.TVButtonFormComment::placeholder {
    color: #999
}

.TVButtonFormComment.TVInvalid {
    border-color: #e31e22
}

.TVButtonWindow {
    width: 400px;
    box-shadow: 0 0 20px rgba(0,0,0,.3);
    border-radius: 10px;
    font-family: var(--tv-font-theme2);
    padding: 30px
}

.TVButtonPage.TVLayoutControl .TVMobilePanelBlock,.TVButtonWindow {
    background-color: #edf2f5
}

.TVButtonPage.TVLayoutControl .TVMobilePanelBody {
    box-sizing: border-box;
    padding: 20px
}

.TVMobileMultyFilter {
    font-family: var(--tv-font-theme1);
    border: 1px solid #ddd;
    border-radius: 3px;
    margin: 3px;
    background-color: #fff
}

.TVMobMFItem {
    color: #777;
    font-size: 18px;
    font-weight: lighter;
    line-height: normal;
    padding: 15px
}

.TVMobMFItem>div {
    position: relative
}

.TVMobMFToggle {
    width: calc(100% - 24px);
    display: inline-block;
    vertical-align: text-bottom;
    text-align: left;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.TVMobMFFilterIcon {
    vertical-align: top;
    margin-top: -1px;
    float: right
}

.TVMobMFFilterIcon:after {
    content: "\e922";
    font-family: TVIcons;
    font-size: 24px;
    color: #565656
}

.TVMobMFItemLine {
    border-bottom: 1px solid #ddd;
    margin: 0 6px
}

.TVMobMFItemCntr {
    color: #777;
    font-size: 10px;
    font-weight: 400;
    text-transform: uppercase;
    width: 22%;
    text-align: right;
    display: inline-block;
    vertical-align: top;
    margin-right: 3%;
    line-height: 11px;
    max-width: 75px
}

.TVMobMFItemCaption {
    vertical-align: top;
    color: #333;
    font-size: 16px;
    font-weight: 700;
    padding-left: 10px;
    padding-top: 2px;
    padding-right: 20px;
    position: relative;
    line-height: normal;
    overflow: hidden;
    -ms-text-overflow: ellipsis;
    -o-text-overflow: ellipsis;
    text-overflow: ellipsis;
    white-space: nowrap
}

.TVMobMFSwitchIcon {
    position: absolute;
    right: 2px;
    top: 2px
}

.TVMobMFSwitchIcon:after {
    content: "\e900";
    font-family: TVIcons;
    color: #aaa;
    font-weight: lighter;
    font-size: 20px
}

.TVMobMFItemToggle {
    display: inline-block;
    vertical-align: top;
    width: 75%
}

.TVMobMFStars {
    margin-left: 10px
}

.TVMobFStar {
    display: inline-block;
    vertical-align: top;
    height: 4px;
    margin-right: 6px
}

.TVMobFStar:after {
    font-family: TVicons;
    content: "\e90c";
    font-size: 25px;
    color: #cac6c6
}

.TVMobFStar.TVFragActive:after {
    color: #f0ac3a
}

.TVFragActive.TVMobFCheckBox:after {
    font-family: TVicons;
    content: "\e90b";
    color: #0da90d;
    padding-top: 1px;
    position: absolute;
    top: 0;
    left: 1px
}

.TVMobFCheckBox {
    border: 1px solid #c7c2c2;
    width: 20px;
    height: 20px;
    border-radius: 5px;
    line-height: 20px;
    position: relative
}

.TVMobMFItemToggle .TVMobFCheckBox {
    margin-left: 10px
}

.TVMobMFToggle:after {
    content: "Показать фильтры"
}

.TVHideFilter .TVMobMFToggle:after {
    content: "Скрыть фильтры"
}

.TVMobMFStarsTitle:after {
    content: "Категория отеля от"
}

.TVCalendar {
    font-family: var(--tv-font-theme2);
    color: #333;
    text-align: left;
    font-weight: 400
}

.TVCalendarFilters {
    margin: 0 auto 5px
}

.TVCalendarFilters .TVModuleFilter {
    margin-top: 0;
    background-color: #428aaf
}

.TVDTCalendar {
    min-width: 420px;
    margin: 0 auto;
    border: 1px solid #dcdcdc;
    border-radius: 3px;
    overflow: hidden
}

.TVDTCalendar .TVCalendarCountry {
    width: 35%;
    display: inline-block
}

.TVDTCalendar .TVCalendarWeather {
    width: 25%;
    display: inline-block
}

.TVDTCalendar .TVCalendarDate {
    width: 15%;
    display: inline-block
}

.TVDTCalendar .TVCalendarPrice {
    width: 25%;
    max-width: 105px;
    position: relative;
    float: right
}

.TVDTCalendar .TVCalendarCountyList .TVCalendarPrice {
    font-weight: 700
}

.TVDTCalendar .TVCalendarCountryVisa {
    position: absolute;
    right: 0;
    top: 0;
    width: 20px
}

.TVDTCalendar .TVModEmptyMess {
    font-family: inherit;
    padding: 10px;
    font-size: 16px
}

.TVDTCalendar .TVCalendarPriceCurrency {
    font-weight: 300
}

.TVCalendarPriceContent {
    display: flex;
    align-items: flex-end
}

.TVCalendarPriceValue {
    line-height: 20px
}

.TVCalendarPriceCurrency {
    margin-left: 5px;
    font-size: 10px;
    line-height: 18px;
    color: #777;
    text-transform: uppercase
}

.TVCalendarColor {
    background-color: #428aaf;
    color: #777
}

.TVCalendarDepartureHeader {
    padding: 20px 10px 10px;
    position: relative;
    font-family: var(--tv-font-theme2);
    font-weight: 700;
    font-size: 20px
}

.TVCalendarDepartureHeader:before {
    content: "Туры "
}

.TVCalDirectOnly {
    position: absolute;
    right: 11px;
    top: 23px
}

.TVCalDirectOnly .TVCheckBox:after {
    content: "только прямые рейсы";
    font-size: 10px;
    text-transform: uppercase;
    line-height: 20px;
    display: inline-block;
    vertical-align: text-bottom
}

.TVCalendarListHeader {
    border-bottom: 1px solid #dcdcdc;
    font-size: 10px;
    text-transform: uppercase;
    color: #999;
    margin: 0 2px;
    padding: 10px 10px 2px
}

.TVCalendarCountryFlag {
    width: 18px;
    height: 14px;
    background-image: url(//static.tourvisor.ru/pics/flags/flags-calendar.png);
    display: inline-block;
    position: relative;
    top: 1px
}

.TVCalendarCountryValue {
    display: inline-block;
    padding-left: 5px
}

.TVCalendarCountyList {
    background: #fff
}

.TVCalendarList {
    font-size: 14px;
    cursor: pointer;
    border-bottom: 1px dotted #dcdcdc;
    margin: 0 2px;
    padding: 10px
}

.TVCalendarList:hover {
    background-color: #f9f9f9
}

.TVCalendarList .TVCalendarCountry {
    color: #333;
    position: relative
}

.TVCalendarAir {
    color: #e9a126;
    margin-right: 5px;
    display: inline-block
}

.TVCalendarAir:before {
    margin-right: 5px;
    font-family: TVicons;
    content: "\e958"
}

.TVCalendarWater {
    color: #5290de;
    display: inline-block
}

.TVCalendarWater:before {
    font-family: TVicons;
    content: "\e959";
    margin-right: 5px
}

.TVCalendarBook {
    width: 15%;
    position: absolute;
    right: 0;
    top: -3px;
    color: #999;
    font-size: 18px
}

.TVCalendarBook:before {
    font-family: TVicons;
    content: "\e90a"
}

.TVCalendarList:hover .TVCalendarBook:before {
    color: #333;
    font-weight: 700
}

.TVCalendarCountryVisa {
    color: #999;
    font-size: 13px
}

.TVCalendarCountryVisa:before {
    font-family: TVicons;
    content: "\e95d"
}

.TVCalendarFooter {
    padding: 5px;
    border-top: 1px solid #dcdcdc;
    text-align: center;
    margin-top: -1px
}

.TVCalShowAll {
    background-color: #fff;
    color: #777;
    display: inline-block;
    padding: 5px 20px;
    border: 1px solid #dcdcdc;
    cursor: pointer;
    margin: 0 auto;
    text-align: center;
    font-size: 11px;
    text-transform: uppercase
}

.TVCalShowAll:hover {
    border: 1px solid #bbb;
    color: #333
}

.TVCalShowAll:before {
    content: "показать все страны"
}

.TVCalShowAll.TVExpanded:before {
    content: "свернуть"
}

.TVCalendarWindow {
    background-color: #fff;
    border-radius: 5px;
    overflow: hidden;
    position: relative;
    box-shadow: 0 0 15px #000;
    line-height: normal;
    font-family: var(--tv-font-theme2)
}

.TVCalendarWindow .TVCalCountryFlag {
    margin-left: 20px;
    position: absolute;
    top: 60px
}

.TVCalendarWindow .TVCalCountryName {
    font-size: 42px;
    top: 90px;
    margin-left: 20px;
    position: absolute
}

.TVCalendarWindow .TVCalDeparture {
    margin-left: 20px;
    position: absolute;
    top: 150px;
    font-size: 21px
}

.TVCalendarWindow .TVCalInfoTitle {
    font-size: 20px;
    font-weight: 600;
    vertical-align: top;
    display: inline-block
}

.TVCalendarWindow .TVCalInfoDescription {
    font-size: 12px;
    position: relative;
    top: 0
}

.TVCalendarWindow .TVCalendarInfo {
    display: flex
}

.TVCalendarWindow .TVCalTemperatureDescription {
    display: inline-block;
    margin-right: 15px;
    width: 130px
}

.TVCalendarWindow .TVCalMonthDescription {
    min-height: 120px;
    order: 1;
    margin-left: 70px;
    width: 500px
}

.TVCalendarWindow .TVCalendarToursHeader {
    margin-left: 65%
}

.TVCalendarWindowHeader {
    width: 100%;
    height: 250px;
    background-size: cover;
    background-position: 50%
}

.TVCalendarBgDark {
    height: 250px;
    position: absolute;
    width: 100%;
    top: 0;
    background: #000;
    opacity: .3;
    filter: alpha(opacity=30)
}

.TVCalendarListHeader .TVCalendarCountry:after {
    content: "страна"
}

.TVCalendarListHeader .TVCalendarWeather:after {
    content: "погода"
}

.TVCalendarListHeader .TVCalendarDate:after {
    content: "дата тура"
}

.TVCalendarListHeader .TVCalendarPrice:after {
    content: "цена"
}

.TVCalendar .TVMFilterBlock .TVLabel {
    color: inherit
}

.TVCalMainColor {
    background-color: #428aaf;
    color: #fff
}

.TVCalendarWindowBody {
    padding: 20px 35px 35px;
    position: relative
}

.TVCalCountryName {
    font-weight: 700;
    color: #fff;
    text-shadow: 0 0 6px #444
}

.TVCalCountryName:before {
    content: "Туры "
}

.TVCalCountryFlag {
    background-image: url(//static.tourvisor.ru/pics/flags/flags-medium.png);
    width: 40px;
    height: 26px;
    background-repeat: no-repeat;
    box-shadow: 0 0 7px 0 #000
}

.TVCalDeparture {
    color: #fff;
    text-shadow: 0 0 6px #444
}

.TVCalInfoTitle:before {
    content: "Календарь туров"
}

.TVCalInfoDescription:after {
    content: "указана минимальная стоимость тура на человека";
    font-weight: 200;
    color: #777;
    line-height: 24px
}

.TVCalendarWindowTitle {
    width: 45%;
    display: inline-block;
    position: absolute;
    top: 20px
}

.TVMobileCalendar {
    background: #eee
}

.TVMobileCalendar .TVMobileFilter {
    padding: 1px
}

.TVMobileCalendar .TVCalendarCountry {
    display: inline-block;
    font-size: 16px;
    margin-bottom: 5px
}

.TVMobileCalendar .TVCalendarPrice {
    text-align: right;
    font-weight: 600;
    float: right;
    font-size: 16px
}

.TVMobileCalendar .TVCalendarWeather {
    display: inline-block
}

.TVMobileCalendar .TVCalendarDate {
    float: right;
    color: #969292;
    font-size: 14px;
    position: relative
}

.TVMobileCalendar .TVCalendarDate:before {
    font-size: 11px;
    display: block;
    position: absolute;
    left: -16px;
    top: 5px;
    font-family: TVicons;
    content: "\e93b"
}

.TVMobileCalendar .TVCalendarCountryVisa {
    margin-left: 10px;
    margin-top: -2px;
    display: inline-block
}

.TVMobileCalendar .TVCalendarFooter {
    margin-top: -2px;
    padding: 10px 0
}

.TVMobileCalendar .TVCalendarFooterButton {
    font-size: 14px
}

.TVMobileCalendar .TVMobMFItem {
    background: #fff
}

.TVMobileCalendar .TVCalendarPriceCurrency {
    font-size: 10px;
    text-transform: uppercase
}

.TVCalBody {
    overflow: hidden;
    background-color: #fff
}

.TVCalBody .TVMobMFItemCntr,.TVCalBody .TVMobMFItemLine {
    display: none
}

.TVCalBody .TVMobMFItem {
    border-bottom: 1px dotted #dcdcdc
}

.TVCalBody .TVMobMFItemToggle {
    display: inline-block;
    vertical-align: top;
    width: 100%;
    text-align: center
}

.TVCalendarPanelHeader {
    width: 100%;
    height: 120px;
    background-size: cover;
    background-position: 50%
}

.TVCalendarPanel {
    background: #fff
}

.TVCalendarPanel .TVCalendarBgDark {
    height: 120px
}

.TVCalendarPanel .TVCalCountryFlag {
    position: absolute;
    top: 15px;
    left: 15px
}

.TVCalendarPanel .TVCalCountryName {
    position: absolute;
    top: 45px;
    left: 15px;
    right: 15px;
    font-size: 24px;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden
}

.TVCalendarPanel .TVCalDeparture {
    position: absolute;
    left: 15px;
    top: 80px;
    font-size: 15px
}

.TVCalendarPanel .TVCalInfoTitle {
    font-weight: 600;
    font-size: 20px
}

.TVCalendarPanel .TVCalInfoDescription {
    font-size: 12px
}

.TVCalendarPanel .TVCalTempSun,.TVCalendarPanel .TVCalTempWater {
    width: 50%;
    text-align: center
}

.TVCalendarPanel .TVCalMonthDescription {
    margin-bottom: 30px;
    line-height: 24px
}

.TVCalendarPanel .TVCalendarToursDiagram {
    height: 178px;
    overflow: hidden
}

.TVCalendarPanel .TVCalDiagram:after {
    bottom: 35px
}

.TVCalendarPanel .TVCalDiagramDate {
    font-size: 14px;
    line-height: 13px
}

.TVCalendarPanel .TVCalendarPriceValue {
    font-size: 24px;
    font-weight: 700
}

.TVCalendarPanel .TVCalendarTours {
    margin-top: 10px
}

.TVCalendarPanel .TVCalendarToursNights {
    text-align: left
}

.TVCalDiagramAnim {
    backface-visibility: hidden;
    perspective: 1000;
    transform: translateZ(0);
    transition: left .3s linear
}

.TVCalendarInfo {
    margin-top: 20px
}

.TVCalendarPanelBody {
    padding: 15px
}

.TVCalendarPanel .TVNewStars,.TVCalendarWindow .TVNewStars {
    display: inline-block;
    line-height: 27px;
    margin-left: 15px;
    vertical-align: top
}

.TVCalendarFilter {
    display: flex;
    padding: 15px
}

.TVCalendarDeparture {
    box-sizing: border-box;
    width: calc(100% - 20px);
    font-family: var(--tv-font-theme2);
    font-size: 16px;
    font-weight: 700;
    line-height: normal;
    text-align: center;
    color: #333;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.TVCalDiagram {
    width: 100%;
    padding: 5px 0 0;
    text-align: center;
    height: 165px
}

.TVCalDiagramHolidays {
    color: #cc7272
}

.TVCalDiagramItem {
    display: inline-block;
    height: 120px;
    width: 20px;
    margin: 0 4px;
    text-align: right;
    vertical-align: baseline
}

.TVCalDiagramTop {
    position: relative;
    display: inline-block;
    width: 100%;
    height: 100%;
    vertical-align: top
}

.TVCalDiagramColumn {
    position: absolute;
    background-color: #18a7d3;
    border: 1px solid #099bc8;
    width: 100%;
    height: 0;
    bottom: 0;
    cursor: pointer
}

.TVCalDiagramColumn:hover .TVCalDiagramTitle {
    opacity: 1;
    z-index: 100
}

.TVCalDiagramColumn.TVCalDiagramActive {
    position: absolute;
    bottom: 0;
    background-color: #fe8a27;
    border: 1px solid #d27a52
}

.TVCalDiagramColumn.TVCalDiagramNone {
    border: none;
    border-bottom: 1px solid #d4d4d4;
    cursor: default
}

.TVCalDiagramColumn.TVCalDiagramNone .TVCalDiagramTitle {
    z-index: -1
}

.TVCalDiagramColumn.TVCalDiagramNone:hover .TVCalDiagramTitle {
    opacity: 0;
    z-index: 0
}

.TVCalDiagramTitle {
    position: absolute;
    top: -40px;
    z-index: 99;
    width: 72px;
    font-size: 10px;
    color: #fff;
    background: #000;
    padding: 4px;
    text-align: center;
    opacity: 0;
    left: -30px;
    border-radius: 2px;
    -moz-transition: opacity .2s linear;
    -o-transition: opacity .2s linear;
    -webkit-transition: opacity .2s linear;
    transition: opacity .2s linear
}

.TVCalDiagramNone:hover .TVCalDiagramTitle {
    opacity: 0;
    z-index: 0
}

.TVCalDiagramTitle:after {
    content: "";
    position: absolute;
    left: 32px;
    bottom: -15px;
    border: 8px solid transparent;
    border-top: 7px solid #0f0f0f
}

.TVCalDiagramTitlePrice {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    color: #fff
}

.TVCalDiagramTitlePriceValue {
    font-size: 13px;
    font-weight: 700;
    line-height: 20px
}

.TVCalDiagramTitlePriceCurrency {
    margin-left: 3px;
    font-size: 10px;
    font-weight: 500;
    line-height: 16px;
    text-transform: uppercase
}

.TVCalDiagramTitleNights {
    font-size: 10px;
    font-weight: 500
}

.TVCalDiagramDate {
    display: inline-block;
    font-size: 13px;
    font-weight: 400;
    line-height: 18px;
    text-align: center;
    margin-top: 8px;
    width: 100%
}

.TVCalendarTours {
    font-family: var(--tv-font-theme2)
}

.TVCalendarToursHeader {
    min-height: 48px;
    display: flex;
    justify-content: space-between
}

.TVCalendarToursPrice {
    display: flex;
    align-items: flex-end
}

.TVCalendarToursPriceValue {
    font-size: 24px;
    font-weight: 700;
    line-height: 20px
}

.TVCalendarToursPriceCurrency {
    margin-left: 5px;
    line-height: 14px;
    font-weight: 400;
    font-size: 16px;
    text-transform: lowercase
}

.TVCalendarToursNights {
    margin-top: 5px;
    font-size: 14px;
    color: #777;
    line-height: 14px;
    text-align: right
}

.TVCalendarToursShowBtn {
    position: relative;
    margin-top: 6px;
    padding: 10px;
    border-radius: 4px;
    font-size: 14px;
    color: #fff;
    text-align: center;
    text-transform: uppercase;
    cursor: pointer
}

.TVCalendarToursShowBtn:after {
    content: "Показать туры"
}

.TVCalendarToursShowBtn.TVDisabled {
    background: #efefef;
    border-color: #ddd;
    color: #999;
    cursor: default
}

.TVCalendarToursShowBtn a {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0
}

.TVCalButtonColor {
    background-color: #fe8a27;
    border: 1px solid #d27a52
}

.TVCalendarToursDiagram {
    height: 178px;
    margin-top: 25px;
    position: relative
}

.TVCalendarLine {
    width: 100%;
    border-top: 1px solid #eee;
    position: absolute
}

.TVCalendarLineTop {
    top: 0;
    margin-top: 0
}

.TVCalendarLineMiddle {
    top: 60px
}

.TVCalendarLineBottom {
    top: 127px
}

.TVCalendarPositionFix .TVCalDiagram {
    position: absolute
}

.TVCalendarToursMonth {
    margin: 20px 0 0;
    display: flex;
    justify-content: center
}

.TVCalendarNext,.TVCalendarPrev {
    font-size: 27px;
    color: #a9a9a9;
    font-weight: 400;
    cursor: pointer
}

.TVCalendarPrev:before {
    font-family: TVicons;
    content: "\e909"
}

.TVCalendarNext:before {
    font-family: TVicons;
    content: "\e90a"
}

.TVCalendarMonthValue {
    width: 175px;
    line-height: 35px;
    font-weight: 600;
    font-size: 20px;
    text-align: center
}

.TVCalMonthDescription {
    color: #777;
    font-size: 15px;
    line-height: 24px;
    font-weight: 400;
    vertical-align: top;
    display: inline-block;
    text-align: justify
}

.TVCalTemperatureDescription {
    color: #777
}

.TVCalTemperatureValue {
    font-size: 36px;
    font-weight: 300;
    padding-left: 3px;
    margin-top: 10px
}

.TVCalTempSun,.TVCalTempWater {
    font-size: 12px;
    display: inline-block;
    margin-left: 0;
    padding-left: 0;
    vertical-align: top
}

.TVCalTempSun .TVCalTemperatureValue {
    color: #fe8a27
}

.TVCalTempSun .TVCalTemperatureValue:before {
    font-family: TVicons;
    content: "\e958";
    margin-right: 5px
}

.TVCalTempSun .TVCalTemperatureDescription:after {
    content: "температура воздуха"
}

.TVCalTempWater .TVCalTemperatureValue {
    margin-left: 0;
    color: #18a7d3
}

.TVCalTempWater .TVCalTemperatureValue:before {
    margin-right: 5px;
    font-family: TVicons;
    content: "\e959"
}

.TVCalTempWater .TVCalTemperatureDescription:after {
    content: "температура воды"
}

.TVLPHotelWindow {
    position: absolute;
    top: 20px;
    z-index: 10;
    right: 20px;
    background: #fff;
    padding: 20px;
    border-radius: 3px;
    box-shadow: 0 0 13px 0 #444
}

.TVLPHotelWindow .TVLPHLName {
    margin: 10px 0 5px;
    width: 232px
}

.TVLPHotelWindow .TVLPHLImage {
    margin: 10px 0;
    width: 232px
}

.TVLPHotelWindow .TVLPStarsBlock {
    line-height: 13px
}

.TVLPHotelWindow .TVLPHLDescription {
    width: 232px;
    font-size: 12px;
    max-height: 81px;
    line-height: 16px
}

.TVLPHotelWindow .TVLPHLReviewTitle {
    margin-right: 0
}

.TVOfficeApp {
    font-family: var(--tv-font-theme2)
}

.TVOfficeDesktopChildren,.TVOfficeMobileChildren {
    margin-top: 20px
}

.TVOfficeCardControl {
    background-color: #fff;
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%
}

.TVOfficeCardControl.TVOfficeCardEnabledPaddings .TVOfficeCardHeader {
    padding-top: 20px;
    padding-left: 20px;
    padding-right: 20px
}

.TVOfficeCardControl.TVOfficeCardEnabledPaddings .TVOfficeCardActions,.TVOfficeCardControl.TVOfficeCardEnabledPaddings .TVOfficeCardBottom,.TVOfficeCardControl.TVOfficeCardEnabledPaddings .TVOfficeCardChildren,.TVOfficeCardControl.TVOfficeCardEnabledPaddings .TVOfficeCardFooterActions,.TVOfficeCardControl.TVOfficeCardEnabledPaddings .TVOfficeCardHeader {
    padding-left: 20px;
    padding-right: 20px
}

.TVOfficeCardControl.TVOfficeCardEnabledPaddings .TVOfficeCardBottom {
    padding-bottom: 20px
}

.TVOfficeCardControl.TVOfficeCardEnabledPaddings .TVOfficeCardChildren {
    background-color: #edf2f5
}

.TVOfficeCardControl.TVOfficeCardEnabledPaddings .TVOfficeCardFooterActions {
    padding-bottom: 20px
}

.TVOfficeCardHeader {
    margin-bottom: 20px
}

.TVOfficeCardMetroMarker {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-right: 5px
}

.TVOfficeCardAction,.TVOfficeCardChangeOffice {
    box-shadow: none;
    border-radius: 6px;
    border: 1px solid;
    margin-top: 0;
    padding: 10px;
    cursor: pointer;
    font-size: 13px;
    line-height: 18px;
    font-weight: 600;
    text-shadow: none;
    text-align: center
}

.TVOfficeCardAction {
    border-color: #5cb85c;
    background-color: #5cb85c;
    color: #fff
}

.TVOfficeCardAction:not(.TVHide)+.TVOfficeCardChangeOffice {
    margin-top: 10px
}

.TVOfficeCardChangeOffice {
    border-color: #5c6672;
    background-color: #fff;
    color: #5c6672
}

.TVOfficeCardGallery {
    height: 250px;
    min-height: 250px
}

.TVOfficeCardActions:not(.TVHide)+.TVOfficeCardGallery {
    margin-top: 20px
}

.TVOfficeCardInfoSection {
    font-size: 13px;
    line-height: 20px;
    font-weight: 500;
    color: #2b3f5a
}

.TVOfficeCardInfoSection:not(:last-child) {
    margin-bottom: 20px
}

.TVOfficeCardInfoSectionTitle {
    font-size: 14px;
    line-height: 18px;
    font-weight: 700;
    color: #2b3f5a;
    margin-bottom: 10px
}

.TVOfficeCardBody {
    display: flex;
    flex-direction: column
}

.TVOfficeCardInfo.TVOfficeCardScrollableInfo {
    overflow-y: auto
}

.TVOfficeCardRatingStars {
    line-height: 13px
}

.TVOfficeCardBottom {
    margin-top: 20px
}

.TVOfficeCardDivided {
    display: flex;
    flex-direction: row;
    position: relative
}

.TVOfficeCardDivided .TVOfficeCardBottom,.TVOfficeCardDivided .TVOfficeCardTop {
    box-sizing: border-box
}

.TVOfficeCardDivided .TVOfficeCardTop {
    width: 48%;
    padding-right: 5px
}

.TVOfficeCardDivided .TVOfficeCardBottom {
    width: 50%;
    position: absolute;
    right: 0;
    top: 0;
    height: 100%;
    padding-left: 5px;
    margin-top: 0;
    overflow-y: auto
}

.TVOfficeCardBottom.TVOfficeCardScrollable {
    overflow-y: scroll;
    padding-right: 10px;
    height: 100%
}

.TVOfficeCardExpandButton {
    color: #027ad0;
    text-decoration: underline;
    display: inline-block;
    margin-top: 10px;
    cursor: pointer
}

.TVOfficeCardFooterActions {
    padding-top: 20px
}

.TVOfficeCardChildren {
    padding-top: 30px;
    padding-bottom: 20px
}

.TVOfficeCardChildren:not(.TVHide) {
    margin-top: 20px
}

.TVOfficeCardHeaderControl {
    display: flex;
    align-items: center;
    justify-content: space-between
}

.TVOfficeCardNameWrapper {
    font-size: 18px;
    line-height: 22px;
    font-weight: 600;
    color: #2b3f5a;
    display: flex;
    align-items: center
}

.TVOfficeCardHeaderInfo {
    display: flex;
    flex-direction: column
}

.TVOfficeCardCrown {
    display: inline-flex;
    background-color: #0088cf;
    border-radius: 50%;
    align-items: center;
    justify-content: center;
    width: 16px;
    min-width: 16px;
    height: 16px;
    margin-left: 10px
}

.TVOfficeCardCrownIcon {
    width: 10px;
    height: auto
}

.TVOfficeCardRating {
    display: flex;
    align-items: center;
    margin-top: 10px
}

.TVOfficeCardRatingCount {
    color: #5c6672;
    font-size: 13px;
    font-weight: 500;
    line-height: 16px;
    opacity: .6;
    margin-left: 10px
}

.TVOfficeCardLogo {
    width: 30%;
    min-width: 30%;
    height: 60px;
    margin-left: 20px;
    background-size: contain;
    background-position: 50%;
    background-repeat: no-repeat
}

.TVOfficeFilterControl {
    display: flex
}

.TVOfficeFilterControl.TVOfficeFilterScrollable {
    -ms-overflow-style: none;
    scrollbar-width: none;
    padding-bottom: 5px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch
}

.TVOfficeFilterControl.TVOfficeFilterScrollable::-webkit-scrollbar {
    display: none
}

.TVOfficeFilterItem {
    height: 40px;
    flex: 0 0 auto
}

.TVOfficeFilterItem:not(:last-child) {
    margin-right: 10px
}

.TVOfficeFilterCity,.TVOfficeFilterRating {
    min-width: 100px
}

.TVOfficeFilterMetro {
    min-width: 90px
}

.TVOfficeFilterNearby:not(:last-child) {
    margin-right: 10px
}

.TVOfficeFilterNearbyButton {
    width: 70px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    line-height: 18px;
    letter-spacing: 0;
    color: #5c6672
}

.TVOfficeFilterNearbyButton.TVColorWhite {
    background-color: #fff
}

.TVOfficeFilterNearbyButton.TVColorBlue930 {
    background-color: #e8eef0
}

.TVOfficeFilterNearbyButton.TVActive {
    background-color: #5c6672;
    color: #fff
}

.TVOfficeFilterControl.TVPreview .TVOfficeFilterCity,.TVOfficeFilterControl.TVPreview .TVOfficeFilterMetro,.TVOfficeFilterControl.TVPreview .TVOfficeFilterNearby,.TVOfficeFilterControl.TVPreview .TVOfficeFilterRating {
    visibility: hidden;
    position: relative
}

.TVOfficeFilterControl.TVPreview .TVOfficeFilterCity:before,.TVOfficeFilterControl.TVPreview .TVOfficeFilterMetro:before,.TVOfficeFilterControl.TVPreview .TVOfficeFilterNearby:before,.TVOfficeFilterControl.TVPreview .TVOfficeFilterRating:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVOfficeFilterMetroLogo {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%
}

.TVOfficeItemControl {
    display: flex;
    align-items: center;
    padding: 16px;
    border-radius: 5px;
    background: #fff 0 0 no-repeat padding-box;
    cursor: pointer
}

.TVOfficeItemControl:hover .TVOfficeItemArrow {
    background: #7fb762;
    color: #fff
}

.TVOfficeItemControl:not(:last-child) {
    margin-bottom: 10px
}

.TVOfficeItemPhoto {
    width: 88px;
    min-width: 88px;
    height: 88px;
    margin-right: 25px;
    border-radius: 6px;
    background-size: cover;
    background-position: 50%;
    background-repeat: no-repeat
}

.TVOfficeItemCommonInfo {
    width: 70%;
    align-self: flex-start
}

.TVOfficeItemNoPhoto {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #e8eef0
}

.TVOfficeItemName,.TVOfficeMobileItemName {
    display: inline;
    color: #333;
    font-size: 14px;
    font-weight: 700;
    line-height: 18px
}

.TVOfficeItemAddress,.TVOfficeItemWorkingTime,.TVOfficeMobileItemAddress,.TVOfficeMobileItemWorkingTime {
    color: #5c6672;
    font-size: 13px;
    font-weight: 500;
    line-height: 18px
}

.TVOfficeItemAddress,.TVOfficeMobileItemAddress {
    margin-bottom: 2px
}

.TVOfficeItemRating,.TVOfficeMobileItemRating {
    display: flex;
    align-items: center;
    margin-bottom: 10px
}

.TVOfficeItemRatingCount,.TVOfficeMobileItemRatingCount {
    margin-left: 10px;
    color: #5c6672;
    font-size: 13px;
    line-height: 17px;
    font-weight: 500;
    opacity: .6
}

.TVOfficeItemLogo {
    width: 110px;
    height: 88px;
    margin-left: auto;
    margin-right: 25px;
    background-size: contain;
    background-position: 50%;
    background-repeat: no-repeat
}

.TVOfficeItemArrow {
    width: 30px;
    height: 30px;
    margin-left: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #edf2f5;
    border-radius: 100%;
    color: #5c6672
}

.TVOfficeItemArrow:before {
    font-family: TVicons;
    content: "\e906";
    font-size: 16px;
    line-height: 16px;
    transform: translateX(1px)
}

.TVOfficeItemCrown,.TVOfficeMobileItemCrown {
    display: inline-flex;
    background-color: #0088cf;
    border-radius: 50%;
    align-items: center;
    justify-content: center
}

.TVOfficeItemCrown {
    width: 20px;
    height: 20px;
    margin-left: 10px
}

.TVOfficeItemHead,.TVOfficeMobileItemHead {
    margin-bottom: 5px
}

.TVOfficeItemMetroMarker {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-right: 5px
}

.TVOfficeItemRatingStars {
    line-height: 13px
}

.TVOfficeMobileItemControl {
    padding: 16px 19px;
    display: flex;
    background-color: #fff;
    box-shadow: 0 0 20px rgba(0,0,0,.1);
    border-radius: 10px
}

.TVOfficeMobileItemControl:not(:last-child) {
    margin-bottom: 10px
}

.TVOfficeMobileItemCommonInfo {
    margin-right: 45px
}

.TVOfficeMobileItemPhoto {
    width: 80px;
    min-width: 80px;
    height: 80px;
    margin-left: auto;
    border-radius: 6px;
    background-size: cover;
    background-position: 50%;
    background-repeat: no-repeat
}

.TVOfficeMobileItemCrown {
    width: 16px;
    height: 16px;
    margin-left: 5px;
    transform: translateY(-1px)
}

.TVOfficeMobileItemCrown .TVOfficeItemCrownIcon {
    width: 12px;
    height: 9px
}

.TVOfficeMapControl {
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden
}

.TVOfficeMapControl:before {
    content: "Загрузка карты...";
    width: 100%;
    display: inline-block;
    text-align: center;
    position: absolute;
    top: calc(50% - 22px)
}

.TVOfficeMapControl.TVPreview {
    visibility: hidden;
    position: relative
}

.TVOfficeMapControl.TVPreview:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVOfficeMapControl.TVDisabled {
    pointer-events: none
}

.TVOfficeListControl {
    overflow: auto
}

.TVOfficeListControl.TVPreview .TVOfficeListControlPreviewItem,.TVOfficeListControl.TVPreview .TVOfficeListControlPreviewMobileItem {
    visibility: hidden;
    position: relative
}

.TVOfficeListControl.TVPreview .TVOfficeListControlPreviewItem:before,.TVOfficeListControl.TVPreview .TVOfficeListControlPreviewMobileItem:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVOfficeListControl.TVPreview .TVOfficeListControlPreviewItem:not(:last-child),.TVOfficeListControl.TVPreview .TVOfficeListControlPreviewMobileItem:not(:last-child) {
    margin-bottom: 10px
}

.TVOfficeListControl.TVPreview .TVOfficeListControlPreviewItem {
    height: 120px
}

.TVOfficeListControl.TVPreview .TVOfficeListControlPreviewMobileItem {
    height: 112px
}

.TVOfficeMapCardControl .TVOfficeCardGallery {
    border-radius: 6px;
    overflow: hidden
}

.TVOfficeMapCardControl .TVOfficeMapCardControlContent {
    width: 100%;
    height: 730px;
    display: flex;
    position: relative;
    overflow: hidden;
    box-sizing: border-box;
    padding: 8px 25px 8px 8px;
    background-color: #fff;
    border-radius: 5px
}

.TVOfficeMapCardControl .TVOfficeMapCardControlContent.TVTransparent {
    background-color: transparent
}

.TVOfficeMapCardControl .TVOfficeMapCardControlCard {
    box-sizing: border-box
}

.TVOfficeMapCardControl .TVOfficeMapCardControlMap:not(.TVHide)+.TVOfficeMapCardControlCard {
    margin-left: 25px
}

.TVOfficeMapCardControl .TVOfficeMapCardControlChildren {
    margin-top: 30px
}

.TVOfficeMapCardControl .TVOfficeMapCardControlCard,.TVOfficeMapCardControl .TVOfficeMapCardControlMap {
    width: 50%
}

.TVOfficeMapCardControl.TVOfficeMapCardControlWithoutMap .TVOfficeMapCardControlContent {
    padding: 8px
}

.TVOfficeMapCardControl.TVOfficeMapCardControlWithoutMap .TVOfficeMapCardControlCard {
    width: 100%
}

.TVOfficeMapCardControl.TVOfficeMapCardControlWithoutMap .TVOfficeMapCardControlContent {
    height: auto
}

.TVOfficeMapCardControl:not(.TVOfficeMapCardControlWithoutMap) .TVOfficeMapCardControlCard {
    padding-top: 20px
}

.TVOfficeChoiceControl.TVPreview .TVOfficeChoiceControlSwitcher {
    visibility: hidden;
    position: relative
}

.TVOfficeChoiceControl.TVPreview .TVOfficeChoiceControlSwitcher:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVOfficeChoiceControlHeader {
    margin-bottom: 20px
}

.TVOfficeChoiceControlTitle {
    font-size: 18px;
    line-height: 18px;
    font-weight: 500;
    letter-spacing: 0;
    color: #333;
    margin-bottom: 20px
}

.TVOfficeChoiceControlExpandable {
    display: flex;
    cursor: pointer;
    width: fit-content
}

.TVOfficeChoiceControlExpandable:after {
    font-family: TVicons;
    content: "\e900";
    color: #777;
    font-size: 18px;
    margin-left: 10px
}

.TVOfficeChoiceControlExpandable.TVActive:after {
    transform: scaleY(-1)
}

.TVOfficeChoiceControlHeaderRow {
    display: flex;
    align-items: center;
    justify-content: space-between
}

.TVOfficeChoiceControlSwitcher {
    font-size: 13px;
    line-height: 18px;
    font-weight: 600;
    color: #5c6672;
    width: auto;
    border-radius: 6px;
    padding: 11px 28px;
    cursor: pointer
}

.TVOfficeChoiceControlSwitcher.TVColorWhite {
    background-color: #fff
}

.TVOfficeChoiceControlSwitcher.TVColorBlue950 {
    background-color: #edf2f5
}

.TVOfficeChoiceControlMap {
    padding: 8px;
    background-color: #fff;
    border-radius: 5px
}

.TVOfficeFullChoiceHeader {
    margin-bottom: 20px
}

.TVOfficeFullChoiceMap {
    margin-bottom: 20px;
    border-radius: 6px;
    overflow: hidden
}

.TVOfficeSheetCard .TVOfficeCardActions,.TVOfficeSheetCard .TVOfficeCardFooterActions,.TVOfficeSheetCard .TVOfficeCardHeader,.TVOfficeSheetCard .TVOfficeCardInfo {
    padding: 0 20px
}

.TVOfficeChoiceSheet {
    height: calc(100vh - 60px)
}

.TVOfficeChoiceSheetMap {
    width: auto;
    min-width: 100%
}

.TVOfficeChoiceSheetFilter {
    padding: 0 0 10px 10px;
    margin-bottom: 0;
    min-height: 45px;
    z-index: 1;
    box-shadow: 0 10px 10px rgba(0,0,0,.03)
}

.TVOfficeChoiceSheetList {
    padding: 15px 10px;
    overflow: auto
}

.TVOfficeChoiceSheetList.TVOfficeChoiceSheetLockedScroll {
    overflow: hidden
}

.TVOfficeChoiceSheetCard {
    overflow-y: auto
}

.TVOfficeChoiceSheetCardHeader {
    padding: 0 20px 20px
}

.TVOfficeChoiceSheetFilterList {
    display: flex;
    flex-direction: column;
    height: 100%;
    flex: 1;
    min-height: 0
}

.TVOfficeSelectButton {
    text-align: center;
    border: 1px solid #ddd;
    background-color: #fff;
    border-radius: 6px;
    font-size: 13px;
    padding: 10px 0;
    cursor: pointer
}

.TVChatBtn:hover {
    width: 110px
}

.TVChatBtn:before {
    content: "Задать вопрос"
}

.TVChatBtn:after {
    font-family: TVicons;
    content: "\f0e5"
}

.TVChatBtn.TVMobileChatBtn {
    justify-content: center;
    width: 50px;
    height: 50px;
    position: fixed;
    bottom: 5px;
    left: 5px;
    z-index: 3;
    box-shadow: 0 0 10px rgba(0,0,0,.7);
    border: none
}

.TVChatBtn.TVMobileChatBtn:before {
    content: ""
}

.TVChatBtn.TVMobileChatBtn:after {
    font-size: 25px
}

.TVChatBtn.TVMobileChatBtn .TVStickyBtnCount {
    font-weight: 400;
    border: none;
    height: 14px;
    font-size: 9px;
    top: 13px;
    right: 10px
}

.TVChatSendMessageControl {
    padding: 10px;
    background-color: #fff
}

.TVChatSendMessageControl .TVChatSendMessageWrapper {
    display: flex;
    align-items: flex-end;
    flex-direction: row-reverse;
    padding: 10px;
    background-color: #f5f5f5;
    border-radius: 5px;
    border: 1px solid #ddd
}

.TVChatSendMessageControl .TVResponsiveTextarea {
    background-color: #f5f5f5;
    padding: 5px;
    min-height: 31px;
    max-height: 220px
}

.TVChatSendMessageControl .TVChatSendMessageBtn {
    width: 30px;
    height: 30px;
    position: relative;
    background-color: #777;
    color: #fff;
    border-radius: 15px;
    user-select: none;
    cursor: pointer
}

.TVChatSendMessageControl .TVChatSendMessageBtn:before {
    font-family: TVicons;
    content: "\e906";
    position: absolute;
    top: .6em;
    left: .6em;
    line-height: 15px;
    font-size: 14px
}

.TVChatMessageControl {
    background-color: #efefef;
    color: #333;
    padding: 5px 15px 5px 20px;
    font-size: 13px;
    margin: .3em 2em .3em 4px;
    border-radius: 10px 10px 10px 0;
    position: relative
}

.TVChatMessageControl:before {
    content: "";
    position: absolute;
    bottom: 0;
    border: 2px solid transparent
}

.TVChatMessageControl:not(.TVClientMessage):before {
    left: -4px;
    border-right: 2px solid #efefef;
    border-bottom: 2px solid #efefef
}

.TVChatMessageControl.TVClientMessage {
    align-self: flex-end;
    background-color: #e2f1fb;
    margin: .3em 4px .3em 2em;
    border-radius: 10px 10px 0 10px
}

.TVChatMessageControl.TVClientMessage:before {
    right: -4px;
    border-left: 2px solid #e2f1fb;
    border-bottom: 2px solid #e2f1fb
}

.TVChatMessageText {
    display: inline;
    word-break: break-all
}

.TVChatMessageInfo {
    float: right;
    margin-top: 5px;
    margin-left: 5px;
    display: flex;
    align-items: flex-end;
    line-height: 1;
    font-size: 12px;
    color: #999;
    user-select: none
}

.TVChatMessageStatus {
    margin-left: 5px;
    position: relative;
    width: 12px;
    height: 8px;
    font-size: 8px;
    overflow: hidden
}

.TVChatMessageStatus:before {
    left: 0
}

.TVChatMessageStatus:after,.TVChatMessageStatus:before {
    font-family: TVicons;
    content: "\e90b";
    position: absolute;
    top: 0
}

.TVChatMessageStatus:after {
    left: 4px
}

.TVChatMessageStatus.TVActive {
    color: #4a8fb2
}

.TVChatMessagesControl {
    padding: 10px;
    background-color: #fff;
    border-radius: 10px 10px 0 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    position: relative;
    overflow: hidden auto
}

.TVChatMessageDefaultLink {
    color: #4b90d5;
    text-decoration: none
}

.TVChatMessageDefaultLink:hover {
    text-decoration: underline
}

.TVChatMessageBtnLink {
    margin: .3em auto;
    padding: 10px 15px;
    background-color: #5bb65b;
    color: #fff;
    border-radius: 4px;
    font-size: 13px;
    text-decoration: none
}

.TVChatMessageCartLink:before {
    content: "Открыть подборку"
}

.TVChatMessageTourLink:before {
    content: "Открыть тур"
}

.TVChatMessageSearchLink:before {
    content: "Открыть поиск"
}

.TVChatScrollBottomBtn {
    position: absolute;
    bottom: 30px;
    right: 10px;
    opacity: 0;
    transition: all .1s ease-out
}

.TVChatScrollBottomBtn.TVVisible {
    opacity: 1;
    bottom: 40px
}

.TVChatScrollBottomBtn:before {
    font-family: TVicons;
    content: "\e900";
    font-size: 18px;
    background-color: #efefef;
    color: #333;
    height: 40px;
    width: 40px;
    position: fixed;
    transform: translateX(-100%);
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer
}

.TVChatManagerInfo {
    font-family: var(--tv-font-theme2);
    padding: 10px 20px;
    display: flex;
    align-items: center;
    user-select: none
}

.TVChatManagerInfo .TVChatManagerLogo {
    min-width: 50px;
    min-height: 50px;
    background-size: cover;
    border-radius: 50px;
    align-self: center;
    background-position: 50%;
    background-repeat: no-repeat;
    border: 2px solid #fff;
    position: relative
}

.TVChatManagerInfo .TVChatManagerName {
    flex: 1;
    margin-left: 20px;
    font-weight: 700;
    font-size: 13px;
    display: block;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden
}

.TVChatManagerInfo .TVChatManagerName:before {
    display: block;
    content: "Ваш консультант";
    font-weight: 400
}

.TVChatManagerInfo .TVClosePopUp {
    position: static;
    color: inherit
}

.TVChatWindow {
    height: 500px;
    width: 320px;
    z-index: 100001;
    display: flex;
    flex-direction: column;
    box-shadow: 0 0 30px rgba(0,0,0,.5);
    border-radius: 10px
}

.TVChatWindow .TVChatControl {
    height: calc(100% - 75px)
}

.TVChatWindow.TVDraggableStart {
    transition: transform .1s ease-out;
    transform: scale(1.03)
}

.TVChatWindow.TVDraggableEnd {
    transition: transform .1s ease-out;
    transform: scale(1)
}

.TVChatPage {
    z-index: 3
}

.TVChatPage .TVMobileHeaderWrapper {
    display: none
}

.TVChatPage .TVMobilePanelBlock {
    top: 0
}

.TVChatPage .TVMobilePanelBlock,.TVChatPage .TVMobilePanelBody {
    height: 100%
}

.TVChatPage .TVMobileChatWrapper {
    height: calc(100% - 75px)
}

.TVChatPage .TVChatBtn {
    display: none
}

.TVChatControl {
    font-family: var(--tv-font-theme2);
    height: 100%;
    display: flex;
    flex-direction: column
}

.TVChatControl .TVChatMessagesControl {
    flex: 1
}

.TVHotOfferControl {
    border-radius: 20px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    cursor: pointer
}

.TVHotOfferControl:hover .TVHotOfferArrow {
    background-color: #7fb762
}

.TVHotOfferControl .TVHotOfferImg {
    order: 0;
    width: 100%;
    height: 230px;
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: cover
}

.TVHotOfferControl .TVHotOfferImg.TVPreview {
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite
}

.TVHotOfferControl .TVHotOfferImg.TVEmptyPicture {
    background-color: #f5f5f5;
    position: relative
}

.TVHotOfferControl .TVHotOfferImg.TVEmptyPicture:before {
    font-family: TVicons;
    content: "\e945";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    font-size: 150px;
    color: #fff
}

.TVHotOfferControl .TVHotOfferDateContainer {
    order: 1;
    margin-top: -48px;
    padding: 10px 20px 25px;
    color: #fff;
    text-shadow: 0 0 6px rgba(0,0,0,.9);
    background: transparent linear-gradient(180deg,transparent,rgba(0,0,0,.6))
}

.TVHotOfferControl .TVHotOfferContentContainer {
    order: 2;
    margin-top: -20px;
    padding: 20px;
    background-color: #f5f5f5;
    border-radius: 20px 20px 0 0;
    display: flex;
    flex-direction: column;
    position: relative
}

.TVHotOfferControl .TVHotOfferPrice {
    margin-bottom: 15px
}

.TVHotOfferControl .TVHotOfferContent {
    height: 150px;
    overflow: hidden
}

.TVHotOfferControl .TVHotOfferContent .TVHotOfferTitle {
    flex-shrink: 0;
    max-height: 60px;
    margin-bottom: 10px
}

.TVHotOfferControl .TVHotOfferButtons {
    margin-top: 20px;
    display: flex;
    align-items: center
}

.TVHotOfferControl .TVHotOfferActionButton {
    display: flex;
    align-items: center;
    font-size: 13px;
    padding: 7px 10px;
    background-color: #fff;
    border-radius: 50px;
    color: #777;
    user-select: none;
    margin-right: 10px;
    line-height: 1
}

.TVHotOfferControl .TVHotOfferActionButton .TVHotOfferActionCount {
    margin-left: 7px
}

.TVHotOfferControl .TVHotOfferShare:before {
    width: 17px;
    height: 16px
}

.TVHotOfferControl .TVHotOfferArrow {
    padding: 7px 6px 7px 8px;
    display: flex;
    background-color: #777;
    color: #fff;
    border-radius: 15px;
    margin-left: auto;
    line-height: 1
}

.TVHotOfferControl .TVHotOfferArrow:before {
    font-family: TVicons;
    content: "\e906"
}

.TVHotOfferControl.TVHotOfferList {
    position: relative;
    width: 100%;
    min-height: 200px;
    height: auto;
    flex-direction: row;
    box-sizing: border-box
}

.TVHotOfferControl.TVHotOfferList .TVHotOfferImg {
    height: 100%;
    width: 250px
}

.TVHotOfferControl.TVHotOfferList .TVHotOfferContentContainer {
    flex: 1;
    margin-top: 0;
    border-radius: 0
}

.TVHotOfferControl.TVHotOfferList .TVHotOfferContent {
    height: 110px
}

.TVHotOfferControl.TVHotOfferList .TVHotOfferContent .TVHotOfferTitle {
    max-height: 40px
}

.TVHotOfferControl.TVHotOfferList .TVHotOfferDateContainer {
    order: 1;
    margin-top: 0;
    padding: 0;
    text-shadow: none;
    background: none;
    color: #777
}

.TVHotOfferControl.TVHotOfferList .TVHotOfferShare {
    margin-right: 20px
}

.TVHotOfferControl.TVHotOfferList .TVHotOfferArrow {
    order: 2
}

.TVHotOfferControl.TVHotOfferSold {
    pointer-events: none;
    cursor: default
}

.TVHotOfferControl.TVHotOfferSold .TVHotOfferImg {
    filter: grayscale(100%);
    filter: gray
}

.TVHotOfferControl.TVHotOfferSold .TVOfferPriceDiscount {
    background-color: #999
}

.TVHotOfferControl.TVHotOfferSold .TVOfferPriceNewPrice,.TVHotOfferControl.TVHotOfferSold .TVOfferPriceOldPrice {
    color: #999
}

.TVHotOfferControl.TVHotOfferSold .TVHotOfferArrow {
    justify-content: center;
    background-color: transparent;
    border: 1px solid #b94a48;
    color: #b94a48;
    padding: 6px 11px
}

.TVHotOfferControl.TVHotOfferSold .TVHotOfferArrow:before {
    font-family: inherit;
    content: "Продано";
    line-height: 1
}

.TVHotOfferControl.TVHotOfferSold:not(.TVHotOfferList) .TVHotOfferDateContainer {
    background: none;
    z-index: 0
}

.TVHotOfferControl.TVHotOfferSold:not(.TVHotOfferList) .TVHotOfferArrow {
    flex: 1
}

.TVHotOfferControl.TVHotOfferSold:not(.TVHotOfferList) .TVHotOfferActionButton {
    display: none
}

.TVFilterListOffersControl {
    font-family: var(--tv-font-theme2)
}

.TVFilterListOffersControl .TVModuleFiltersHeader .TVModuleFiltersTitle {
    margin-right: auto
}

.TVFilterListOffersControl .TVModuleFiltersHeader .TVHotOffersCreate {
    margin: 0 17px;
    order: 0
}

.TVFilterListOffersControl .TVEmptyList {
    padding: 30px 20px;
    text-align: center;
    font-size: 18px;
    color: #333;
    text-shadow: 1px 1px 0 #fff
}

.TVFilterListOffersControl .TVEmptyList:before {
    content: "К сожалению, туров, с заданными параметрами, не найдено.";
    display: block
}

.TVFilterListOffersControl .TVEmptyList:after {
    content: "Вы можете изменить условия поиска или город вылета";
    display: block
}

.TVMobile .TVFilterListOffersControl .TVHotOffersCreate {
    padding: 0;
    background: #fff;
    margin-right: 10px
}

.TVMobile .TVFilterListOffersControl .TVHotOffersCreate:before {
    color: #777;
    font-size: 27px;
    line-height: 24px
}

.TVMobile .TVFilterListOffersControl .TVHotOffersCreate:after {
    content: ""
}

.TVMobile .TVFilterListOffersControl .TVOffersFilterConfirm {
    padding: 20px
}

.TVMobile .TVFilterListOffersControl .TVOffersFilterConfirm .TVOffersFilterConfirmContent:before {
    margin-bottom: 5px
}

.TVMobile .TVFilterListOffersControl .TVOffersFilterConfirm .TVClosePopUp {
    display: none
}

.TVHotOffersCreate {
    padding: 8px 10px 8px 8px;
    display: inline-flex;
    align-items: center;
    border-radius: 30px;
    background: #777;
    white-space: nowrap;
    font-size: 10px;
    line-height: 15px;
    letter-spacing: normal;
    cursor: pointer
}

.TVHotOffersCreate:before {
    font-family: TVicons;
    content: "\e913";
    color: #fff;
    font-size: 18px
}

.TVHotOffersCreate:after {
    margin-left: 5px;
    font-weight: 400;
    text-transform: uppercase;
    color: #fff;
    content: "Добавить тур"
}

.TVOfferPriceControl {
    display: flex;
    align-items: flex-end
}

.TVOfferPriceControl .TVOfferPriceDiscount {
    margin-right: 10px;
    background: #d12947;
    border-radius: 20px;
    color: #fff;
    font-size: 13px;
    padding: 3px 10px;
    line-height: 14px
}

.TVOfferPriceControl .TVOfferPriceNewPrice,.TVOfferPriceControl .TVOfferPriceOldPrice {
    display: flex;
    align-items: flex-end;
    line-height: 1;
    white-space: nowrap
}

.TVOfferPriceControl .TVOfferPriceNewPrice {
    margin-right: 13px
}

.TVOfferPriceControl .TVOfferPriceNewPrice .TVOfferPriceValue {
    line-height: 18px
}

.TVOfferPriceControl .TVOfferPriceNewPrice .TVOfferPriceCurrency {
    margin-left: 3px;
    font-size: 10px;
    white-space: nowrap
}

.TVOfferPriceControl .TVOfferPriceOldPrice {
    color: #777
}

.TVOfferPriceControl .TVOfferPriceOldPrice .TVOfferPriceValue {
    text-decoration: line-through
}

.TVOfferPriceControl .TVOfferPriceOldPrice .TVOfferPriceCurrency {
    margin-left: 3px;
    font-size: 10px
}

.TVOfferPriceControl .TVOfferPriceNewPrice,.TVOfferPriceControl .TVOfferPriceNewPriceInput input {
    color: #d12947;
    font-size: 20px
}

.TVOfferPriceControl .TVOfferPriceOldPrice,.TVOfferPriceControl .TVOfferPriceOldPriceInput input {
    font-size: 14px
}

.TVOfferPriceControl .TVOfferPriceNewPriceInput input,.TVOfferPriceControl .TVOfferPriceOldPriceInput input {
    width: 100%;
    box-sizing: border-box;
    outline: none
}

.TVOfferPriceControl .TVOfferPriceCurrencyCombobox:before,.TVOfferPriceControl .TVOfferPriceNewPriceInput:before,.TVOfferPriceControl .TVOfferPriceOldPriceInput:before {
    display: block;
    margin-bottom: 5px;
    color: #777;
    font-size: 10px;
    text-transform: uppercase
}

.TVOfferPriceControl .TVOfferPriceNewPriceInput:before {
    content: "Цена за человека"
}

.TVOfferPriceControl .TVOfferPriceOldPriceInput:before {
    content: "Старая цена"
}

.TVOfferPriceControl .TVOfferPriceCurrencyCombobox,.TVOfferPriceControl .TVOfferPriceOldPriceInput input {
    color: #333
}

.TVOfferPriceControl .TVOfferPriceCurrencyCombobox:before {
    content: "Валюта"
}

.TVOfferPriceControl .TVOfferPriceCurrencyCombobox .TVTextBox {
    background: #fff
}

.TVOfferPriceControl .TVOfferPriceCurrencyCombobox .TVTextBoxSelector:after {
    color: #777
}

@keyframes tv-center-rotate {
    0% {
        transform: translate(-50%,-50%) rotate(0deg)
    }

    to {
        transform: translate(-50%,-50%) rotate(1turn)
    }
}

@keyframes tv-center-rotate-inv {
    0% {
        transform: translate(-50%,-50%) rotate(1turn)
    }

    to {
        transform: translate(-50%,-50%) rotate(0deg)
    }
}

.TVListOffersControl.TVPreview {
    opacity: .6;
    pointer-events: none
}

.TVListOffersControl.TVPreview .TVWaiterBG {
    background: none
}

.TVListOffersControl.TVPreview .TVSimpleWaiterDuble {
    top: 50px;
    left: 50%;
    right: auto
}

.TVListOffersControl.TVPreview .TVSimpleWaiterDuble:after,.TVListOffersControl.TVPreview .TVSimpleWaiterDuble:before {
    border-width: 2px;
    top: 0;
    left: 0;
    transform: translate(-50%,-50%)
}

.TVListOffersControl.TVPreview .TVSimpleWaiterDuble:before {
    width: 36px;
    height: 36px;
    animation: tv-center-rotate .8s linear infinite
}

.TVListOffersControl.TVPreview .TVSimpleWaiterDuble:after {
    width: 20px;
    height: 20px;
    animation: tv-center-rotate-inv .8s linear infinite
}

.TVHotOfferDateContainer {
    display: flex;
    color: #777;
    font-size: 13px
}

.TVHotOfferDateContainer .TVHotOfferDate {
    margin-right: 20px
}

.TVHotOfferDateContainer .TVHotOfferViewCount {
    display: flex;
    align-items: center
}

.TVHotOfferDateContainer .TVHotOfferViewCount:before {
    font-family: TVicons;
    content: "\e94c";
    font-size: 16px;
    line-height: 16px;
    margin-right: 3px
}

.TVOffersFilterConfirm {
    display: flex;
    padding: 25px 20px 25px 30px;
    background-color: #e2f1fb;
    border-radius: 20px;
    align-items: center;
    flex-wrap: wrap;
    position: relative
}

.TVOffersFilterConfirm .TVOffersFilterConfirmContent {
    flex: 4;
    flex-basis: 370px;
    margin-right: 30px;
    color: #31708f
}

.TVOffersFilterConfirm .TVOffersFilterConfirmContent:before {
    content: "Внимание!";
    display: block;
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 10px
}

.TVOffersFilterConfirm .TVOffersFilterConfirmContent:after {
    content: "Сохраненное предложение не будет отображено в списке при текущей фильтрации модуля. Хотите автоматически применить фильтры модуля, чтобы увидеть его?";
    display: block;
    font-size: 14px
}

.TVOffersFilterConfirm .TVOffersFilterConfirmButtons {
    flex: 1;
    display: flex;
    margin-top: 20px
}

.TVOffersFilterConfirm .TVOffersFilterConfirmButton {
    background-color: #fff;
    color: #31708f;
    border-radius: 30px;
    padding: 10px 40px;
    cursor: pointer
}

.TVOffersFilterConfirm .TVOffersFilterConfirmButton:not(:last-child) {
    margin-right: 20px
}

.TVOffersFilterConfirm .TVOffersFilterConfirmYes {
    background-color: #31708f;
    color: #fff
}

.TVOffersFilterConfirm .TVOffersFilterConfirmYes:before {
    content: "Да"
}

.TVOffersFilterConfirm .TVOffersFilterConfirmNo:before {
    content: "Нет"
}

.TVOffersFilterConfirm .TVClosePopUp {
    top: 10px;
    right: 10px;
    color: #31708f
}

.TVHotOfferActionButtons {
    display: flex
}

.TVHotOfferActionButtons .TVHotOfferActionButton {
    display: flex;
    align-items: center;
    font-size: 14px;
    line-height: 1;
    padding: 8px 12px;
    background-color: #fff;
    border-radius: 50px;
    color: #777;
    user-select: none;
    cursor: pointer
}

.TVHotOfferActionButtons .TVHotOfferActionButton:before {
    font-size: 17px;
    line-height: 1
}

.TVHotOfferActionButtons .TVHotOfferActionButton:hover {
    color: #333
}

.TVHotOfferActionButtons .TVHotOfferActionButton:not(:last-child) {
    margin-right: 10px
}

.TVHotOfferActionButtons .TVHotOfferActionCount {
    margin-left: 7px
}

.TVHotOfferActionButtons .TVHotOfferCopy:before,.TVHotOfferActionButtons .TVHotOfferDelete:before,.TVHotOfferActionButtons .TVHotOfferLike:before {
    font-size: 22px
}

.TVHotOfferActionButtons .TVHotOfferCreate:before {
    font-size: 35px;
    line-height: 0
}

.TVHotOfferActionButtons .TVHotOfferCreate {
    padding: 20px 10px
}

.TVHotOfferActionButtons .TVHotOfferCopy,.TVHotOfferActionButtons .TVHotOfferDelete {
    padding: 9px
}

.TVHotOfferActionButtons .TVHotOfferShowDetailButton {
    box-sizing: border-box;
    background-color: #5cb85c;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 4px;
    color: #fff;
    cursor: pointer;
    border: 1px solid;
    margin-left: auto;
    text-decoration: none
}

.TVHotOfferActionButtons .TVHotOfferCancelButton,.TVHotOfferActionButtons .TVHotOfferSaveButton,.TVHotOfferActionButtons .TVHotOfferShowDetailButton {
    font-size: 14px;
    padding: 10px 25px;
    border-radius: 50px
}

.TVHotOfferActionButtons .TVHotOfferCancelButton:before,.TVHotOfferActionButtons .TVHotOfferSaveButton:before,.TVHotOfferActionButtons .TVHotOfferShowDetailButton:before {
    line-height: 20px
}

.TVHotOfferActionButtons .TVHotOfferSaveButton {
    border: 1px solid #5cb85c;
    text-transform: capitalize
}

.TVHotOfferActionButtons .TVHotOfferSaveButton:before {
    content: "Сохранить"
}

.TVHotOfferActionButtons .TVHotOfferCancelButton {
    text-transform: capitalize;
    color: #777;
    background-color: #f5f5f5;
    border: 1px solid #ddd
}

.TVHotOfferActionButtons .TVHotOfferCancelButton:before {
    content: "Отменить"
}

.TVHotOfferActionButtons .TVHotOfferShowDetailButton:before {
    content: "Продолжить"
}

.TVHotOfferLike .TVHotOfferActionCount {
    order: 1
}

.TVHotOfferShare:before {
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMy44OTkiIGhlaWdodD0iMjEuNSI+PHBhdGggZD0iTTIzLjE1IDcuOTUxYS43OTIuNzkyIDAgMDEtLjIzOC41NjJsLTYuNCA2LjRhLjguOCAwIDAxLS41NjIuMjM4LjgwNS44MDUgMCAwMS0uOC0uOHYtMy4yaC0yLjhjLTUuMzg3IDAtOC45MjQgMS4wMzgtOC45MjQgNyAwIC41MTMuMDI1IDEuMDI1LjA2MiAxLjUzOC4wMTMuMi4wNjIuNDI1LjA2Mi42MjVhLjQuNCAwIDAxLS40LjQzNy40LjQgMCAwMS0uMzUtLjIxMyA2LjY4MyA2LjY4MyAwIDAxLS40NjItLjk1QTE1Ljg2NSAxNS44NjUgMCAwMS43NSAxMy45NTFhMTEuMjY5IDExLjI2OSAwIDAxLjY2Mi00LjE2MkMzLjE1IDUuNDc1IDguMjUgNC43NTEgMTIuMzUgNC43NTFoMi44di0zLjJhLjgwNS44MDUgMCAwMS44LS44Ljc5Mi43OTIgMCAwMS41NjIuMjM4bDYuNCA2LjRhLjguOCAwIDAxLjIzOC41NjJ6IiBmaWxsPSJyZ2JhKDI1NSwyNTUsMjU1LDApIiBzdHJva2U9IiM3MDcwNzAiIHN0cm9rZS13aWR0aD0iMS41Ii8+PC9zdmc+");
    background-repeat: no-repeat;
    background-position: 50%;
    background-size: 100%;
    width: 22px;
    height: 22px
}

.TVHotOfferCreate:before {
    content: "+"
}

.TVHotOfferCopy:before {
    font-family: TVicons;
    content: "\e94b"
}

.TVHotOfferDelete:before {
    font-family: TVicons;
    content: "\f014"
}

.TVHotOfferCreateHint:before {
    content: "Создать новый тур"
}

.TVHotOfferCopyHint:before {
    content: "Создать копию тура"
}

.TVHotOfferDeleteHint:before {
    content: "Удалить тур"
}

.TVHotOfferContent {
    display: flex;
    flex-direction: column
}

.TVHotOfferContent .TVHotOfferPrice {
    display: flex
}

.TVHotOfferContent .TVHotOfferPrice,.TVHotOfferContent .TVHotOfferTitle {
    margin-bottom: 20px
}

.TVHotOfferContent .TVHotOfferTitle,.TVHotOfferContent .TVHotOfferTitle .TVResponsiveTextarea {
    font-size: 15px;
    color: #333;
    font-weight: 700;
    letter-spacing: -.3px;
    line-height: 20px;
    word-break: break-word;
    word-wrap: break-word
}

.TVHotOfferContent .TVHotOfferTitle .TVResponsiveTextarea::placeholder,.TVHotOfferContent .TVHotOfferTitle::placeholder {
    color: #333
}

.TVHotOfferContent .TVHotOfferDescr,.TVHotOfferContent .TVHotOfferDescr .TVResponsiveTextarea {
    font-size: 13px;
    color: #777;
    line-height: 20px;
    word-break: break-word;
    word-wrap: break-word
}

.TVHotOfferContent .TVHotOfferDescr .TVResponsiveTextarea::placeholder,.TVHotOfferContent .TVHotOfferDescr::placeholder {
    color: #777
}

.TVHotOfferContent .TVOfferPriceNewPriceInput input,.TVHotOfferContent .TVOfferPriceOldPriceInput input,.TVHotOfferContent .TVResponsiveTextarea {
    border: 1px solid #ddd;
    padding: 10px
}

.TVHotOfferContent .TVOfferPriceNewPriceInput input {
    padding: 6px 10px
}

.TVHotOfferContent .TVOfferPriceNewPriceInput,.TVHotOfferContent .TVOfferPriceOldPriceInput {
    flex: 3;
    margin-right: 20px
}

.TVHotOfferContent .TVOfferPriceCurrencyCombobox {
    flex: 2
}

.TVHotOfferContent .TVOfferPriceCurrencyCombobox .TVTextBox {
    padding: 10px
}

.TVHotOfferContent .TVOfferPriceCurrencyCombobox .TVTextBoxSelector {
    top: 50%;
    transform: translateY(-50%);
    margin-top: 0
}

.TVHotOfferContent .TVOfferPriceCurrencyCombobox .TVTextBoxSelector:after {
    font-size: 20px
}

.TVHotOfferContent .TVWaiterBG {
    width: 24px;
    margin-left: 10px;
    background: transparent;
    position: relative
}

.TVHotOfferContent .TVWaiterBG .TVSimpleWaiterDuble {
    top: 50%
}

.TVHotOfferContent .TVWaiterBG .TVSimpleWaiterDuble:before {
    top: -9px;
    left: -9px
}

.TVHotOfferContent .TVWaiterBG .TVSimpleWaiterDuble:after {
    top: -5px;
    left: -5px
}

.TVHotOfferMenuDropPanel .TVMenuItem {
    padding: 17px 20px;
    height: 50px;
    font-size: 14px
}

.TVHotOfferMenuDropPanel .TVMenuItem:not(:last-child) {
    border-bottom: 1px solid #ddd
}

.TVHotOfferMenuDropPanel .TVMenuItem.TVCreateItem:before {
    content: "+";
    font-size: 27px;
    line-height: 15px
}

.TVHotOfferMenuDropPanel .TVMenuItem.TVCreateItem:after {
    content: "Создать"
}

.TVHotOfferMenuDropPanel .TVMenuItem.TVDeleteItem:before {
    font-family: TVicons;
    content: "\f014";
    font-size: 16px
}

.TVHotOfferMenuDropPanel .TVMenuItem.TVDeleteItem:after {
    content: "Удалить"
}

.TVHotOfferMenuDropPanel .TVMenuItem.TVEditItem:before {
    font-family: TVicons;
    content: "\e921";
    font-size: 16px
}

.TVHotOfferMenuDropPanel .TVMenuItem.TVEditItem:after {
    content: "Редактировать"
}

.TVHotOfferMenuDropPanel .TVMenuItem.TVCopyItem:before {
    font-family: TVicons;
    content: "\e94b";
    font-size: 15px
}

.TVHotOfferMenuDropPanel .TVMenuItem.TVCopyItem:after {
    content: "Создать копию"
}

.TVHotOfferMenuDropPanel .TVMenuItem.TVShareItem:after {
    content: "Поделиться"
}

.TVHotOfferMenuDropPanel .TVMenuItem.TVSearchLinkItem:before {
    font-family: TVicons;
    content: "\e91d";
    font-size: 15px
}

.TVHotOfferMenuDropPanel .TVMenuItem.TVSearchLinkItem:after {
    content: "Открыть в поиске туров"
}

.TVHotOfferMenuDropPanel .TVMenuItem.TVSendErrorItem:before {
    font-family: TVicons;
    content: "\e923";
    font-size: 17px
}

.TVHotOfferMenuDropPanel .TVMenuItem.TVSendErrorItem:after {
    content: "Сообщить об ошибке"
}

.TVHotOfferDropPanel {
    display: flex;
    flex-direction: column
}

.TVHotOfferDropPanel .TVHotOfferDropPanelWrapper {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 100001
}

.TVHotOfferDropPanel .TVHotOfferDropPanelBody,.TVHotOfferDropPanel .TVHotOfferDropPanelCancel {
    border-radius: 20px;
    box-shadow: 0 3px 15px rgba(0,0,0,.2);
    background-color: #fff;
    overflow: hidden
}

.TVHotOfferDropPanel .TVHotOfferDropPanelCancel {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 22px;
    margin-top: 20px;
    cursor: pointer
}

.TVHotOfferDropPanel .TVHotOfferDropPanelCancel:before {
    content: "Отмена";
    font-size: 16px;
    line-height: 1;
    text-transform: uppercase;
    color: #347eaf
}

.TVHotOfferDropPanel .TVHotOfferDropPanelCancel:hover {
    background-color: #f5f5f5
}

.TVOfferPriceMenu {
    overflow-y: auto;
    position: relative;
    padding-right: 3px
}

.TVOfferPriceMenu .TVHotOfferPriceMenuItem:not(:last-child) {
    margin-bottom: 5px
}

.TVHotOfferPriceDropPanel .TVHotOfferDropPanelBody {
    padding: 20px
}

.TVHotOfferPriceDropPanel .TVHotOfferPriceDropPanelTitle {
    margin-bottom: 15px
}

.TVHotOfferPriceDropPanel .TVHotOfferPriceDropPanelTitle:before {
    content: "Почему это выгодно?";
    letter-spacing: -.3px;
    display: block;
    font-size: 16px;
    font-weight: 800;
    color: #333
}

.TVHotOfferPriceDropPanel .TVHotOfferPriceDropPanelTitle:after {
    content: "Стоимость тура на другие даты";
    letter-spacing: -.3px;
    display: block;
    font-size: 13px;
    color: #777
}

.TVHotOfferPriceMenuItem {
    display: flex;
    align-items: center;
    background-color: #f5f5f5;
    border-radius: 4px;
    padding: 6px 11px;
    font-size: 13px;
    color: #333;
    white-space: nowrap;
    text-decoration: none;
    pointer-events: none;
    cursor: default;
    overflow: hidden
}

.TVHotOfferPriceMenuItem .TVHotOfferPriceMenuPrice {
    display: flex;
    align-items: flex-end;
    margin-left: auto;
    line-height: 1;
    color: #333;
    position: relative
}

.TVHotOfferPriceMenuItem .TVHotOfferPriceMenuPriceValue {
    font-weight: 700;
    letter-spacing: -.3px
}

.TVHotOfferPriceMenuItem .TVHotOfferPriceMenuPriceCurrency {
    font-size: 10px;
    margin-left: 3px
}

.TVHotOfferPriceMenuItem .TVHotOfferPriceMenuDate,.TVHotOfferPriceMenuItem .TVHotOfferPriceMenuDay,.TVHotOfferPriceMenuItem .TVHotOfferPriceMenuNights {
    width: 15%;
    margin-right: 6%
}

.TVHotOfferPriceMenuItem.TVHasLink {
    pointer-events: all;
    cursor: pointer
}

.TVHotOfferPriceMenuItem.TVHasLink:hover {
    background-color: #efefef
}

.TVHotOfferPriceMenuItem.TVHasLink .TVHotOfferPriceMenuPrice {
    margin-right: 20px
}

.TVHotOfferPriceMenuItem.TVHasLink .TVHotOfferPriceMenuPrice:after {
    position: absolute;
    font-family: TVicons;
    content: "\e90a";
    color: #777;
    margin-left: 10px;
    right: -20px
}

.TVHotOfferPriceMenuItem.TVActive .TVHotOfferPriceMenuPrice {
    background: #d12947;
    color: #fff;
    border-radius: 4px;
    padding: 2px 4px
}

.TVHotOfferCard .TVHotOfferCardPicture {
    background-color: #f0f0f0;
    overflow: hidden;
    position: relative
}

.TVHotOfferCard .TVHotOfferCardContent {
    display: flex;
    flex-direction: column
}

.TVHotOfferCard .TVHotOfferTitle,.TVHotOfferCard .TVHotOfferTitle .TVResponsiveTextarea {
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.3px;
    line-height: 22px
}

.TVHotOfferCard .TVHotOfferTitle .TVResponsiveTextarea {
    min-height: 80px
}

.TVHotOfferCard .TVHotOfferDescr .TVResponsiveTextarea {
    min-height: 235px
}

.TVHotOfferCard.TVEmpty .TVHotOfferSaveButton:before {
    content: "Опубликовать"
}

.TVHotOfferCard.TVEmpty .TVHotOfferCancelButton,.TVHotOfferCard.TVEmpty .TVHotOfferCopy,.TVHotOfferCard.TVEmpty .TVHotOfferCreate,.TVHotOfferCard.TVEmpty .TVHotOfferDelete {
    display: none
}

.TVHotOfferCard.TVHotOfferInvalidTitle .TVHotOfferTitle .TVResponsiveTextarea {
    border: 1px solid #e31e22
}

.TVHotOfferCard.TVHotOfferInvalidTitle .TVHotOfferTitle .TVResponsiveTextarea::placeholder {
    color: #e31e22
}

.TVHotOfferCard.TVHotOfferInvalidPicture .TVHotOfferCardPicture {
    border: 1px solid #e31e22;
    box-sizing: border-box
}

.TVHotOfferCard.TVHotOfferInvalidNewPrice .TVOfferPriceNewPriceInput:before,.TVHotOfferCard.TVHotOfferInvalidPicture .TVHotOfferPicture:before {
    color: #e31e22
}

.TVHotOfferCard.TVHotOfferInvalidFlyDate .TVFlyDatesFilter,.TVHotOfferCard.TVHotOfferInvalidNewPrice .TVOfferPriceNewPriceInput input {
    border-color: #e31e22
}

.TVHotOfferCard.TVHotOfferInvalidFlyDate .TVFlyDatesFilter:before {
    color: #e31e22
}

.TVHotOfferCard.TVHotOfferSold .TVHotOfferCardPicture {
    filter: grayscale(100%);
    filter: gray
}

.TVHotOfferCard.TVHotOfferSold .TVOfferPriceDiscount {
    background-color: #999
}

.TVHotOfferCard.TVHotOfferSold .TVOfferPriceNewPrice,.TVHotOfferCard.TVHotOfferSold .TVOfferPriceOldPrice {
    color: #999
}

.TVHotOfferCard.TVHotOfferSold .TVHotOfferActionButton {
    display: none
}

.TVHotOfferCard.TVHotOfferSold .TVHotOfferShowDetailButton {
    flex: 1;
    pointer-events: none;
    cursor: default;
    background-color: transparent;
    border: 1px solid #b94a48;
    color: #b94a48
}

.TVHotOfferCard.TVHotOfferSold .TVHotOfferShowDetailButton:before {
    font-family: inherit;
    content: "Продано"
}

.TVPreview .TVHotOfferCard .TVHotOfferCardPicture,.TVPreview .TVHotOfferCard .TVHotOfferDateContainer,.TVPreview .TVHotOfferCard .TVHotOfferDescr,.TVPreview .TVHotOfferCard .TVHotOfferPrice,.TVPreview .TVHotOfferCard .TVHotOfferTitle {
    visibility: hidden;
    position: relative
}

.TVPreview .TVHotOfferCard .TVHotOfferCardPicture:before,.TVPreview .TVHotOfferCard .TVHotOfferDateContainer:before,.TVPreview .TVHotOfferCard .TVHotOfferDescr:before,.TVPreview .TVHotOfferCard .TVHotOfferPrice:before,.TVPreview .TVHotOfferCard .TVHotOfferTitle:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVPreview .TVHotOfferCard .TVHotOfferActionButton,.TVPreview .TVHotOfferCard .TVHotOfferShowDetailButton {
    display: none
}

.TVPreview .TVHotOfferCard .TVHotOfferCardMenuButton {
    width: 50px;
    height: 15px;
    margin-bottom: 15px
}

.TVPreview .TVHotOfferCard .TVHotOfferDateContainer {
    width: 100px;
    height: 15px;
    margin: 6px 0 25px
}

.TVPreview .TVHotOfferCard .TVHotOfferPrice {
    width: 70%;
    height: 20px
}

.TVPreview .TVHotOfferCard .TVHotOfferTitle {
    width: 40%;
    height: 30px
}

.TVPreview .TVHotOfferCard .TVHotOfferDescr {
    height: 150px;
    width: 100%
}

.TVHotOfferFilterControl {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    background-color: #f5f5f5;
    padding: 20px
}

.TVHotOfferFilterControl .TVHotOfferFilterTourParams:before {
    content: "Параметры тура"
}

.TVHotOfferFilterControl .TVHotOfferFilterTourLink:before {
    content: "Ссылка на тур"
}

.TVHotOfferFilterControl .TVHotOfferFilterTourLink:before,.TVHotOfferFilterControl .TVHotOfferFilterTourParams:before {
    display: block;
    text-transform: uppercase;
    color: #777;
    font-size: 10px
}

.TVHotOfferFilterControl .TVHotOfferFilterTourInput {
    margin-top: 10px;
    resize: none;
    box-sizing: border-box;
    outline: none;
    width: 100%;
    height: 90px;
    padding: 6px;
    background-color: #fdfdfd;
    border: 1px solid #dedede;
    border-radius: 3px;
    color: #333;
    font-size: 13px;
    overflow: hidden;
    overflow-y: auto
}

.TVHotOfferFilterControl .TVModuleFilter {
    margin-top: 0
}

.TVHotOfferFilterControl .TVModuleFiltersBlock {
    padding: 0
}

.TVHotOfferFilterTourParams .TVWaiterBG {
    opacity: .75;
    margin: 10px 10px 0 0;
    background-color: #f5f5f5
}

.TVHotOfferPicture {
    height: 100%;
    width: 100%;
    position: relative
}

.TVHotOfferPicture:before {
    font-family: TVicons;
    content: "\e945";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    font-size: 250px;
    color: #fff
}

.TVHotOfferPicture .TVGallery {
    height: 100%
}

.TVHotOfferPicture .TVGallery .TVGallContainer .TVGallLeft,.TVHotOfferPicture .TVGallery .TVGallContainer .TVGallRight {
    width: 30px;
    height: 60px;
    background-color: #fff;
    opacity: .8;
    text-shadow: none;
    top: 50%;
    transform: translateY(-50%)
}

.TVHotOfferPicture .TVGallery .TVGallContainer .TVGallLeft:before,.TVHotOfferPicture .TVGallery .TVGallContainer .TVGallRight:before {
    width: 18px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: #333
}

.TVHotOfferPicture .TVGallery .TVGallContainer .TVGallRight {
    border-radius: 50px 0 0 50px
}

.TVHotOfferPicture .TVGallery .TVGallContainer .TVGallRight:before {
    right: 5px
}

.TVHotOfferPicture .TVGallery .TVGallContainer .TVGallLeft {
    border-radius: 0 50px 50px 0
}

.TVHotOfferPicture .TVGallery .TVGallContainer .TVGallLeft:before {
    left: 0
}

.TVHotOfferPicture .TVOfferPictureButtons {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 10px
}

.TVMobilePanel .TVHotOfferPicture .TVOfferPictureButtons {
    bottom: 30px
}

.TVHotOfferPicture.TVPictureError,.TVHotOfferPicture.TVPictureLoading,.TVHotOfferPicture.TVPictureOversized {
    position: relative
}

.TVHotOfferPicture.TVPictureError:after,.TVHotOfferPicture.TVPictureLoading:after,.TVHotOfferPicture.TVPictureOversized:after {
    position: absolute;
    top: 15%;
    left: 50%;
    transform: translate(-50%,-50%);
    color: #e31e22;
    white-space: nowrap
}

.TVHotOfferPicture.TVPictureLoading:after {
    color: #777;
    content: "Загрузка файла..."
}

.TVHotOfferPicture.TVPictureLoading .TVOfferPictureButtons {
    display: none
}

.TVHotOfferPicture.TVPictureOversized:after {
    content: "Максимальный размер файла 30 Мб"
}

.TVHotOfferPicture.TVPictureError:after {
    content: "Ошибка при загрузке файла"
}

.TVOfferPictureButtons .TVOfferPictureButton {
    padding: 8px 16px;
    background: #fff;
    border-radius: 20px;
    font-size: 10px;
    line-height: 15px;
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;
    color: #333;
    cursor: pointer
}

.TVOfferPictureButtons .TVOfferPictureButton:not(:last-child) {
    margin-right: 10px
}

.TVOfferPictureButtons .TVOfferPictureButton.TVActive {
    background: #333;
    color: #fff
}

.TVOfferPictureButtonsWrapper {
    display: flex;
    padding: 0 10px;
    overflow: auto;
    -ms-overflow-style: none;
    scrollbar-width: none
}

.TVOfferPictureButtonsWrapper::-webkit-scrollbar {
    display: none
}

.TVOfferPictureButtonsWrapper:before {
    content: "";
    margin-left: auto
}

.TVOfferPictureButtonsWrapper:after {
    content: "";
    margin-right: auto
}

.TVOfferCountryPictureButton:before {
    content: "Страна"
}

.TVOfferResortPictureButton:before {
    content: "Курорт"
}

.TVOfferHotelPictureButton:before {
    content: "Отель"
}

.TVOfferCommonPictureButton:before {
    content: "Общие фото"
}

.TVOfferUserPictureButton {
    position: relative
}

.TVOfferUserPictureButton:before {
    content: "Свое фото"
}

.TVHotOfferCardWrapper {
    position: relative
}

.TVHotOfferCardWrapper .TVHotOfferMenuButton {
    order: -1;
    margin-right: 15px;
    cursor: pointer;
    background-color: #efefef;
    border-radius: 30px;
    padding: 8px
}

.TVHotOfferCardWrapper .TVHotOfferMenuButton:before {
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMi4wNTUgMzIuMDU1IiBmaWxsPSIjNzc3Ij48cGF0aCBkPSJNMy45NjggMTIuMDYxQTMuOTY1IDMuOTY1IDAgMDAwIDE2LjAyN2EzLjk2NSAzLjk2NSAwIDAwMy45NjggMy45NjcgMy45NjYgMy45NjYgMCAxMDAtNy45MzN6bTEyLjI2NSAwYTMuOTY3IDMuOTY3IDAgMDAtMy45NjggMy45NjVjMCAyLjE5MiAxLjc3OCAzLjk2NyAzLjk2OCAzLjk2N3MzLjk3LTEuNzcyIDMuOTctMy45NjdhMy45NyAzLjk3IDAgMDAtMy45Ny0zLjk2NXptMTEuODU3IDBhMy45NjcgMy45NjcgMCAxMC0uMDA1IDcuOTMzIDMuOTY3IDMuOTY3IDAgMDAuMDA1LTcuOTMzeiIvPjwvc3ZnPg==");
    background-repeat: no-repeat;
    display: block;
    width: 16px;
    height: 16px
}

.TVHotOfferCardWrapper .TVHotOfferMenuButton:hover {
    background-color: #e9e9e9
}

.TVHotOfferCardWrapper .TVHotOfferPriceButton {
    margin-left: 20px;
    cursor: pointer;
    display: flex;
    align-items: flex-end;
    border-bottom: 1px dotted;
    line-height: 1
}

.TVHotOfferCardWrapper .TVHotOfferPriceButton:before {
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOSIgaGVpZ2h0PSIxNiI+PGcgZGF0YS1uYW1lPSJHcm91cCA0NTgiIGZpbGw9IiM3NzciPjxyZWN0IGRhdGEtbmFtZT0iUmVjdGFuZ2xlIDEzNDUiIHdpZHRoPSI1IiBoZWlnaHQ9IjEzIiByeD0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAzKSIvPjxyZWN0IGRhdGEtbmFtZT0iUmVjdGFuZ2xlIDEzNDYiIHdpZHRoPSI1IiBoZWlnaHQ9IjE2IiByeD0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNykiLz48cmVjdCBkYXRhLW5hbWU9IlJlY3RhbmdsZSAxMzQ3IiB3aWR0aD0iNSIgaGVpZ2h0PSI3IiByeD0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTQgOSkiLz48L2c+PC9zdmc+");
    background-repeat: no-repeat;
    background-size: 90%;
    background-position: 50%;
    width: 15px;
    height: 13px
}

.TVHotOfferCardWrapper .TVHotOfferPriceButton:after {
    content: "Обзор цен";
    margin-left: 3px
}

.TVHotOfferCardWrapper .TVHotOfferDropPanelWrapper {
    bottom: auto;
    top: 0
}

.TVHotOfferCardWrapper .TVOfferPriceMenu {
    height: 285px
}

.TVHotOfferCardWrapper .TVHotOfferCard {
    display: flex;
    flex-wrap: wrap;
    padding: 20px
}

.TVHotOfferCardWrapper .TVHotOfferCard.TVEmpty .TVHotOfferSaveButton {
    margin-left: auto
}

.TVHotOfferCardWrapper .TVHotOfferCardPicture {
    flex: 4;
    height: 460px;
    border-radius: 10px
}

.TVHotOfferCardWrapper .TVHotOfferCardContent {
    flex: 3;
    margin-left: 40px;
    position: relative
}

.TVHotOfferCardWrapper .TVHotOfferDateContainer {
    margin-bottom: 20px;
    order: -1;
    align-items: center
}

.TVHotOfferCardWrapper .TVHotOfferDescr:not(.TVEditMode) {
    max-height: 240px;
    overflow: hidden;
    overflow-y: auto;
    padding-right: 5px
}

.TVHotOfferCardWrapper .TVHotOfferCardRequest {
    margin-top: 25px;
    padding: 20px;
    background-color: #edf2f5
}

.TVHotOfferCardWrapper .TVHotOfferFilterControl {
    flex-basis: 100%;
    flex-direction: row;
    margin-top: 20px
}

.TVHotOfferCardWrapper .TVHotOfferFilterTourParams {
    width: 56%
}

.TVHotOfferCardWrapper .TVHotOfferFilterTourLink {
    width: 41%
}

.TVHotOfferCardWrapper .TVHotOfferFilterTourInput {
    flex: 1
}

.TVHotOfferCardWrapper .TVHotOfferActionButtons {
    margin-top: 20px
}

.TVHotOfferCardWrapper .TVHotOfferActionButtons .TVHotOfferCancelButton,.TVHotOfferCardWrapper .TVHotOfferActionButtons .TVHotOfferSaveButton {
    flex-basis: 20%
}

.TVHotOfferCardWrapper .TVHotOfferActionButtons .TVHotOfferCancelButton {
    margin-left: auto;
    margin-right: 15px
}

.TVHotOfferCardWrapper .TVHotOfferActionButtons:not(.TVHotOfferEditButtons) {
    flex: 1;
    align-items: flex-end
}

.TVHotOfferCardWrapper .TVHotOfferActionButtons.TVHotOfferEditButtons {
    flex-basis: 100%
}

.TVHotOfferCardWrapper .TVHotOfferActionButton {
    background-color: #f5f5f5;
    border: 1px solid #ddd
}

.TVHotOfferWindow {
    width: 940px;
    box-shadow: 0 0 20px rgba(0,0,0,.3);
    border-radius: 20px;
    background-color: #fff;
    font-family: var(--tv-font-theme2);
    overflow: hidden
}

.TVHotOfferWindow.TVPreview .TVHotOfferMenuButton,.TVHotOfferWindow.TVPreview .TVHotOfferPriceButton {
    display: none
}

.TVHotOfferWindow.TVSaving .TVHotOfferCard {
    opacity: .8;
    pointer-events: none
}

.TVHotOfferWindow.TVError:before {
    padding: 15px 20px;
    content: "К сожалению, невозможно получить информацию по туру"
}

.TVHotOfferWindow.TVError .TVHotOfferCardWrapper {
    display: none
}

.TVHotOfferWindow.TVActualizing .TVHotOfferMenuButton {
    opacity: .5;
    pointer-events: none
}

.TVBaseOfferPage .TVHotOfferPageMenuButtons {
    display: flex
}

.TVBaseOfferPage .TVHotOfferMenuButton,.TVBaseOfferPage .TVHotOfferPriceButton {
    margin: 0 10px;
    background-color: rgba(85,85,85,.5);
    border-radius: 30px;
    padding: 7px
}

.TVBaseOfferPage .TVHotOfferMenuButton:before,.TVBaseOfferPage .TVHotOfferPriceButton:before {
    display: block;
    background-position: 50%;
    width: 18px;
    height: 18px
}

.TVBaseOfferPage .TVHotOfferMenuButton:before {
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMi4wNTUgMzIuMDU1IiBmaWxsPSIjZmZmIj48cGF0aCBkPSJNMy45NjggMTIuMDYxQTMuOTY1IDMuOTY1IDAgMDAwIDE2LjAyN2EzLjk2NSAzLjk2NSAwIDAwMy45NjggMy45NjcgMy45NjYgMy45NjYgMCAxMDAtNy45MzN6bTEyLjI2NSAwYTMuOTY3IDMuOTY3IDAgMDAtMy45NjggMy45NjVjMCAyLjE5MiAxLjc3OCAzLjk2NyAzLjk2OCAzLjk2N3MzLjk3LTEuNzcyIDMuOTctMy45NjdhMy45NyAzLjk3IDAgMDAtMy45Ny0zLjk2NXptMTEuODU3IDBhMy45NjcgMy45NjcgMCAxMC0uMDA1IDcuOTMzIDMuOTY3IDMuOTY3IDAgMDAuMDA1LTcuOTMzeiIvPjwvc3ZnPg==");
    background-repeat: no-repeat;
    width: 18px;
    height: 18px
}

.TVBaseOfferPage .TVHotOfferPriceButton:before {
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOSIgaGVpZ2h0PSIxNiI+PGcgZGF0YS1uYW1lPSJHcm91cCA0NTgiIGZpbGw9IiNmZmYiPjxyZWN0IGRhdGEtbmFtZT0iUmVjdGFuZ2xlIDEzNDUiIHdpZHRoPSI1IiBoZWlnaHQ9IjEzIiByeD0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAzKSIvPjxyZWN0IGRhdGEtbmFtZT0iUmVjdGFuZ2xlIDEzNDYiIHdpZHRoPSI1IiBoZWlnaHQ9IjE2IiByeD0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNykiLz48cmVjdCBkYXRhLW5hbWU9IlJlY3RhbmdsZSAxMzQ3IiB3aWR0aD0iNSIgaGVpZ2h0PSI3IiByeD0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTQgOSkiLz48L2c+PC9zdmc+");
    background-repeat: no-repeat;
    background-size: 90%
}

.TVBaseOfferPage .TVHotOfferDropPanelWrapper {
    position: fixed;
    margin: 20px
}

.TVBaseOfferPage .TVHotOfferDropPanelWrapper .TVHotOfferDropPanelCancel {
    padding: 17px 20px
}

.TVBaseOfferPage .TVOfferPriceMenu {
    max-height: 365px
}

.TVBaseOfferPage .TVHotOfferPriceMenuItem {
    padding: 11px
}

.TVBaseOfferPage.TVMobilePanel .TVMobileHeaderWrapper {
    background: transparent;
    position: absolute
}

.TVBaseOfferPage.TVMobilePanel .TVMobilePanelHeader {
    background-color: transparent
}

.TVBaseOfferPage.TVMobilePanel .TVMobilePanelHeader .TVMobilePanelClose {
    height: 18px;
    width: 18px;
    background-color: rgba(85,85,85,.5);
    border: none
}

.TVBaseOfferPage.TVMobilePanel .TVMobilePanelHeader .TVMobilePanelClose:after {
    font-size: 24px
}

.TVBaseOfferPage.TVMobilePanel .TVMobilePanelHeader .TVMobilePanelCaption:before {
    content: ""
}

.TVBaseOfferPage.TVMobilePanel .TVMobilePanelBlock {
    height: 100%
}

.TVHotOfferPage .TVMobilePanelBlock {
    background-color: #f5f5f5
}

.TVHotOfferPage .TVHotOfferCardPicture {
    height: 350px;
    width: 100%;
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: cover;
    position: sticky;
    left: 0;
    top: 0;
    background-color: #e1e1e1;
    z-index: 0
}

.TVHotOfferPage .TVHotOfferCard {
    display: flex;
    flex-direction: column
}

.TVHotOfferPage .TVHotOfferDateContainer {
    order: 1;
    margin-top: -60px;
    padding: 10px 20px 25px;
    color: #fff;
    text-shadow: 0 0 6px rgba(0,0,0,.9);
    background: transparent linear-gradient(180deg,transparent,rgba(0,0,0,.6));
    z-index: 1
}

.TVHotOfferPage .TVHotOfferCardContent {
    order: 2;
    flex-basis: 100%;
    margin-top: -20px;
    background-color: #f5f5f5;
    border-radius: 20px 20px 0 0;
    padding: 20px 20px 90px;
    z-index: 2
}

.TVHotOfferPage .TVHotOfferPrice,.TVHotOfferPage .TVHotOfferTitle {
    margin-bottom: 15px
}

.TVHotOfferPage .TVOfferPriceNewPriceInput,.TVHotOfferPage .TVOfferPriceOldPriceInput {
    margin-right: 10px
}

.TVHotOfferPage .TVHotOfferTitle,.TVHotOfferPage .TVHotOfferTitle .TVResponsiveTextarea {
    font-size: 18px;
    line-height: 23px
}

.TVHotOfferPage .TVHotOfferDescr,.TVHotOfferPage .TVHotOfferDescr .TVResponsiveTextarea {
    font-size: 14px
}

.TVHotOfferPage .TVHotOfferActionButtons {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: #f5f5f5;
    height: 70px;
    display: flex;
    align-items: center;
    z-index: 3;
    padding: 0 20px
}

.TVHotOfferPage .TVHotOfferActionButtons:before {
    content: "";
    display: block;
    position: absolute;
    top: -20px;
    left: 0;
    right: 0;
    height: 20px;
    background: linear-gradient(hsla(0,0%,96.1%,.3),#f5f5f5)
}

.TVHotOfferPage .TVHotOfferCancelButton {
    flex: 1;
    margin-right: 20px;
    background-color: #fff
}

.TVHotOfferPage .TVHotOfferSaveButton {
    flex: 1
}

.TVHotOfferPage .TVHotOfferCopy,.TVHotOfferPage .TVHotOfferCreate,.TVHotOfferPage .TVHotOfferDelete {
    display: none
}

.TVHotOfferPage .TVHotOfferFilterControl {
    order: 2;
    flex-direction: column;
    flex-wrap: nowrap;
    padding: 20px 20px 90px;
    z-index: 2
}

.TVHotOfferPage .TVHotOfferFilterTourLink,.TVHotOfferPage .TVHotOfferFilterTourParams {
    flex-basis: 100%;
    width: 100%
}

.TVHotOfferPage .TVHotOfferFilterTourLink {
    order: -1
}

.TVHotOfferPage .TVHotOfferFilterTourParams {
    margin-top: 20px
}

.TVHotOfferPage .TVHotOfferEditButtons {
    order: 2;
    padding: 0 20px
}

.TVHotOfferPage.TVPreview .TVHotOfferDateContainer,.TVHotOfferPage.TVPreview .TVHotOfferMenuButton,.TVHotOfferPage.TVPreview .TVHotOfferPriceButton {
    display: none
}

.TVHotOfferPage.TVSaving .TVHotOfferCard {
    opacity: .8;
    pointer-events: none
}

.TVHotOfferPage.TVError .TVMobilePanelBlock:before {
    height: 100vh;
    padding: 0 20px;
    display: flex;
    align-items: center;
    text-align: center;
    content: "К сожалению, невозможно получить информацию по туру"
}

.TVHotOfferPage.TVActualizing .TVHotOfferMenuButton {
    opacity: .5;
    pointer-events: none
}

.TVHotOfferPage .TVEditMode .TVHotOfferDateContainer {
    display: none
}

.TVHotOfferPage .TVEditMode .TVHotOfferCardContent {
    padding-bottom: 0
}

.TVHotOfferPage .TVHotOfferInvalidPicture .TVHotOfferCardPicture {
    border: none
}

.TVBotSubscription {
    font-family: var(--tv-font-theme2)
}

.TVBotSubscriptionButton {
    display: inline-block;
    cursor: pointer
}

.TVBotSubscriptionButton.TVGradient {
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMCUiIHkyPSIxMDAlIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9Ii4zIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGZpbGw9InVybCgjYSkiIGQ9Ik0wIDBoMXYxSDB6Ii8+PC9zdmc+")
}

.TVBotSubscriptionButton.TVShadow {
    box-shadow: 0 1px 2px #444
}

.TVBotSubscriptionButton.TVSize-S {
    padding: 7px 15px;
    font-size: 14px
}

.TVBotSubscriptionButton.TVSize-M {
    padding: 10px 20px;
    font-size: 16px
}

.TVBotSubscriptionButton.TVSize-L {
    padding: 20px 25px;
    font-size: 18px
}

.TVBotSubscriptionButton.TVTextTransform-Uppercase {
    text-transform: uppercase
}

.TVBotSubscriptionButton.TVTextTransform-Capitalize {
    text-transform: capitalize
}

.TVFlightsCardBorderBlock {
    display: flex;
    height: 100%
}

.TVFlightsCardBorderBlock .TVFlightsCardBorderBlockWrapper {
    display: flex;
    position: relative;
    border: 1px solid #dde4ed;
    border-radius: 10px;
    width: 100%
}

.TVFlightsCardBorderBlock .TVFlightsCardBorderBlockWrapper.TVPaddingSize-XS {
    padding: 16px 14px
}

.TVFlightsCardBorderBlock .TVFlightsCardBorderBlockWrapper.TVPaddingSize-S {
    padding: 30px 17px 20px
}

.TVFlightsCardBorderBlock .TVFlightsCardBorderBlockWrapper.TVPaddingSize-M {
    padding: 30px 20px
}

.TVFlightsCardBorderBlock .TVFlightsCardBorderBlockTitle {
    background-color: #fff;
    position: absolute;
    left: 15px;
    top: 0;
    padding: 0 8px;
    transform: translateY(-50%);
    font-size: 13px;
    font-weight: 500;
    line-height: 9px;
    color: rgba(92,102,114,.5)
}

.TVFlightsCardBorderBlock .TVFlightsCardBorderBlockContent {
    overflow: auto;
    width: 100%
}

.TVFlightsCardBorderBlock.TVPreview .TVFlightsCardBorderBlockContent,.TVFlightsCardBorderBlock.TVPreview .TVFlightsCardBorderBlockTitle {
    visibility: hidden;
    position: relative
}

.TVFlightsCardBorderBlock.TVPreview .TVFlightsCardBorderBlockContent:before,.TVFlightsCardBorderBlock.TVPreview .TVFlightsCardBorderBlockTitle:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVFlightsCardBorderBlock.TVPreview .TVFlightsCardBorderBlockTitle {
    position: absolute;
    line-height: 11px
}

.TVFlightsCardSliderControl .TVFlightsCardSliderHeader {
    margin-bottom: 10px;
    display: flex;
    align-items: center
}

.TVFlightsCardSliderControl .TVFlightsCardSliderTitle {
    font-size: 13px;
    font-weight: 700;
    line-height: 20px;
    color: #5c6672
}

.TVFlightsCardSliderControl .TVFlightsCardSliderButtons {
    display: flex;
    margin-left: auto
}

.TVFlightsCardSliderControl .TVFlightsCardSliderBackButton,.TVFlightsCardSliderControl .TVFlightsCardSliderNextButton {
    width: 26px;
    height: 26px;
    background-color: #edf2f5;
    border-radius: 13px;
    color: #777;
    box-sizing: border-box;
    cursor: pointer;
    text-align: center;
    line-height: 1
}

.TVFlightsCardSliderControl .TVFlightsCardSliderBackButton:after,.TVFlightsCardSliderControl .TVFlightsCardSliderNextButton:after {
    font-size: 11px;
    font-weight: 600;
    line-height: 26px
}

.TVFlightsCardSliderControl .TVFlightsCardSliderBackButton.TVDisabled,.TVFlightsCardSliderControl .TVFlightsCardSliderNextButton.TVDisabled {
    color: #ddd;
    border-color: #ddd;
    pointer-events: none
}

.TVFlightsCardSliderControl .TVFlightsCardSliderBackButton:after {
    font-family: TVicons;
    content: "\e909"
}

.TVFlightsCardSliderControl .TVFlightsCardSliderNextButton {
    margin-left: 10px
}

.TVFlightsCardSliderControl .TVFlightsCardSliderNextButton:after {
    font-family: TVicons;
    content: "\e90a"
}

.TVFlightsCardSliderControl.TVPreview .TVFlightsCardSliderBackButton,.TVFlightsCardSliderControl.TVPreview .TVFlightsCardSliderNextButton,.TVFlightsCardSliderControl.TVPreview .TVFlightsCardSliderTitle {
    visibility: hidden;
    position: relative
}

.TVFlightsCardSliderControl.TVPreview .TVFlightsCardSliderBackButton:before,.TVFlightsCardSliderControl.TVPreview .TVFlightsCardSliderNextButton:before,.TVFlightsCardSliderControl.TVPreview .TVFlightsCardSliderTitle:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVFlightsCardSliderControl.TVPreview .TVFlightsCardSliderTitle {
    white-space: nowrap
}

.TVFlightsCardSliderControl.TVPreview .TVFlightsCardSliderButtons {
    display: none
}

.TVFlightsCardControl .TVFlightsCardHeader {
    display: flex;
    align-items: center;
    padding: 30px 20px 25px
}

.TVFlightsCardControl .TVFlightsCardTitle {
    margin-right: 20px
}

.TVFlightsCardControl .TVFlightsCardMonths {
    margin-left: auto;
    overflow: hidden;
    width: calc(100% - 415px)
}

.TVFlightsCardControl .TVFlightsCardFlightName {
    font-size: 20px;
    font-weight: 700;
    line-height: 24px;
    color: #333
}

.TVFlightsCardControl .TVFlightsCardFlightDescription {
    font-size: 13px;
    font-weight: 500;
    line-height: 20px;
    color: #5c6672
}

.TVFlightsCardControl .TVFlightsCardFlightDuration {
    margin-left: 10px
}

.TVFlightsCardControl .TVFlightsCardBody {
    padding: 20px;
    background-color: #edf2f5;
    display: flex
}

.TVFlightsCardControl .TVFlightsCardBodyBlock {
    background-color: #fff;
    border: 1px solid rgba(92,102,114,.15);
    border-radius: 10px
}

.TVFlightsCardControl .TVFlightsCardBodyRightCol {
    box-sizing: border-box;
    width: calc(100% - 405px);
    margin-left: 20px;
    display: flex;
    flex-direction: column
}

.TVFlightsCardControl .TVFlightsCardCalendar {
    box-sizing: border-box;
    height: 100%;
    padding: 17px 20px
}

.TVFlightsCardControl .TVFlightsCardResorts {
    padding: 16px 20px 20px;
    margin-top: 20px;
    flex-grow: 1
}

.TVFlightsCardControl .TVFlightsCardNights {
    padding: 16px 20px 20px
}

.TVFlightsCardControl .TVFlightsCardFooter {
    display: flex;
    flex-wrap: wrap;
    padding: 30px 20px 20px
}

.TVFlightsCardControl .TVFlightsCardSelectionParams {
    width: 100%
}

.TVFlightsCardControl .TVFlightsCardBorderBlockList {
    display: flex;
    flex-direction: column
}

.TVFlightsCardControl .TVFlightsCardBorderBlockListItem {
    font-size: 13px;
    font-weight: 500;
    line-height: 16px;
    color: #5c6672;
    opacity: 1
}

.TVFlightsCardControl .TVFlightsCardBorderBlockListItem:not(:first-child) {
    margin-top: 10px
}

.TVFlightsCardControl .TVFlightsCardBorderBlockListItem.TVDisabled {
    opacity: .4
}

.TVFlightsCardControl .TVFlightsCardSelectionParams {
    margin-bottom: 38px
}

.TVFlightsCardControl .TVFlightsCardAirlines,.TVFlightsCardControl .TVFlightsCardOperators,.TVFlightsCardControl .TVFlightsCardWeather {
    width: calc(33% - 12px);
    height: 182px
}

.TVFlightsCardControl .TVFlightsCardOperators,.TVFlightsCardControl .TVFlightsCardWeather {
    margin-left: 20px
}

.TVFlightsCardControl.TVMobile .TVFlightsCardHeader {
    overflow: hidden;
    flex-direction: column;
    align-items: flex-start;
    padding: 24px 0 20px
}

.TVFlightsCardControl.TVMobile .TVFlightsCardTitle {
    margin-right: 0;
    padding: 0 16px;
    transform: translateY(0)
}

.TVFlightsCardControl.TVMobile .TVFlightsCardFlightName {
    font-size: 16px;
    line-height: 19px
}

.TVFlightsCardControl.TVMobile .TVFlightsCardFlightDescription {
    font-size: 13px;
    line-height: 20px;
    margin-top: 5px
}

.TVFlightsCardControl.TVMobile .TVFlightsCardMonths {
    width: 100%;
    margin-top: 22px
}

.TVFlightsCardControl.TVMobile .TVFlightsCardBody {
    flex-direction: column;
    padding: 0;
    background-color: #fff
}

.TVFlightsCardControl.TVMobile .TVFlightsCardBodyBlock {
    border: none;
    border-radius: 0;
    overflow: hidden
}

.TVFlightsCardControl.TVMobile .TVFlightsCardCalendarWrapper {
    padding: 16px;
    background-color: #edf2f5
}

.TVFlightsCardControl.TVMobile .TVFlightsCardCalendar {
    margin: auto;
    border-radius: 10px;
    padding: 16px
}

.TVFlightsCardControl.TVMobile .TVFlightsCardBodyRightCol {
    margin: 16px 0 0;
    width: 100%
}

.TVFlightsCardControl.TVMobile .TVFlightsCardNights,.TVFlightsCardControl.TVMobile .TVFlightsCardResorts {
    padding: 0
}

.TVFlightsCardControl.TVMobile .TVFlightsCardResorts {
    margin-top: 28px
}

.TVFlightsCardControl.TVMobile .TVFlightsCardFooter {
    margin-top: 28px;
    padding: 0 16px
}

.TVFlightsCardControl.TVMobile .TVFlightsCardSelectionParams {
    margin-bottom: 32px
}

.TVFlightsCardControl.TVMobile .TVFlightsCardAirlines,.TVFlightsCardControl.TVMobile .TVFlightsCardOperators {
    width: calc(50% - 5px)
}

.TVFlightsCardControl.TVMobile .TVFlightsCardOperators {
    margin-left: 10px
}

.TVFlightsCardControl.TVMobile .TVFlightsCardWeather {
    margin: 25px 0;
    width: 100%;
    height: auto
}

.TVFlightsCardControl.TVPreview .TVFlightsCardCalendar,.TVFlightsCardControl.TVPreview .TVFlightsCardFlightDescription,.TVFlightsCardControl.TVPreview .TVFlightsCardFlightName,.TVFlightsCardControl.TVPreview .TVFlightsCardMonths {
    visibility: hidden;
    position: relative
}

.TVFlightsCardControl.TVPreview .TVFlightsCardCalendar:before,.TVFlightsCardControl.TVPreview .TVFlightsCardFlightDescription:before,.TVFlightsCardControl.TVPreview .TVFlightsCardFlightName:before,.TVFlightsCardControl.TVPreview .TVFlightsCardMonths:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVFlightsCardControl.TVPreview .TVFlightsCardTitle {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    transform: translateY(0)
}

.TVFlightsCardControl.TVPreview .TVFlightsCardFlightDescription {
    margin-top: 5px
}

.TVFlightsCardControl.TVPreview .TVFlightsCardNights,.TVFlightsCardControl.TVPreview .TVFlightsCardResorts {
    box-sizing: border-box
}

.TVFlightsCardControl.TVPreview .TVFlightsCardNights {
    box-sizing: border-box;
    height: 100px
}

.TVFlightsCardControl.TVPreview .TVFlightsCardResorts {
    height: 250px
}

.TVFlightsCardControl.TVPreview.TVMobile .TVFlightsCardNights,.TVFlightsCardControl.TVPreview.TVMobile .TVFlightsCardResorts {
    height: auto
}

.TVFlightsCardControl.TVPreview.TVMobile .TVFlightsCardMonths {
    margin-left: 16px;
    margin-right: 16px
}

.TVFlightsCardControl.TVLightPreview .TVFlightsCardBody,.TVFlightsCardControl.TVLightPreview .TVFlightsCardFooter {
    animation: tv-light-preview-animation 1.5s infinite;
    pointer-events: none
}

.TVFlightsCityList .TVFlightsCityListItem {
    display: flex;
    align-items: center;
    padding: 15px 15px 15px 25px
}

.TVFlightsCityList .TVFlightsCityListItem:not(:first-child) {
    border-top: 1px solid rgba(92,102,114,.15)
}

.TVFlightsCityList .TVFlightsCityListItem .TVFlightsCityListItemDuration,.TVFlightsCityList .TVFlightsCityListItem .TVFlightsCityListItemName {
    font-size: 13px;
    font-weight: 500;
    line-height: 16px;
    color: #5c6672
}

.TVFlightsCityList .TVFlightsCityListItem .TVFlightsCityListItemSchedule {
    font-size: 13px;
    font-weight: 600;
    line-height: 16px;
    color: #fff;
    display: flex;
    flex-direction: row-reverse;
    border-radius: 6px;
    padding: 8px 13px;
    margin-left: auto;
    cursor: pointer
}

.TVFlightsCityList .TVFlightsCityListItem .TVFlightsCityListItemSchedule:after {
    font-family: TVicons;
    content: "\e93b";
    margin-right: 6px;
    transform: translateY(1px)
}

.TVFlightsCityList .TVFlightsCityListItem .TVFlightsCityListItemTags {
    display: flex;
    align-items: center;
    margin-right: 8px
}

.TVFlightsCityList .TVFlightsCityListItem .TVFlightsCityListItemTag {
    font-size: 11px;
    font-weight: 500;
    line-height: 8px;
    color: #fff;
    text-transform: uppercase;
    padding: 7px;
    border-radius: 15px 0 15px 0
}

.TVFlightsCityList .TVFlightsCityListItem .TVFlightsCityListItemTitle {
    width: 25%;
    min-width: 25%;
    display: flex;
    align-items: center
}

.TVFlightsCityList .TVFlightsCityListItem .TVFlightsCityListItemDuration {
    min-width: 8%;
    margin-left: 55px;
    white-space: nowrap
}

.TVFlightsCityList .TVFlightsCityListItem .TVFlightsCityListItemMonths {
    margin-left: 25px;
    margin-right: 25px;
    max-width: 42%;
    overflow: hidden
}

.TVFlightsCityList .TVFlightsCityListItem.TVMobile .TVFlightsCityListItemTitle {
    width: auto;
    margin-right: 16px
}

.TVFlightsCityList .TVFlightsCityListItem.TVMobile .TVFlightsCityListItemSchedule {
    line-height: normal;
    font-size: 0;
    padding: 9px;
    margin-left: 16px
}

.TVFlightsCityList .TVFlightsCityListItem.TVMobile .TVFlightsCityListItemSchedule:after {
    font-size: 14px;
    margin-right: 0;
    transform: translateY(0)
}

.TVFlightsCityList .TVFlightsCityListItem.TVMobile .TVFlightsCityListItemDuration {
    width: auto;
    margin-left: auto
}

.TVFlightsCityList.TVPreview .TVFlightsCityListItem .TVFlightsCityListItemDuration,.TVFlightsCityList.TVPreview .TVFlightsCityListItem .TVFlightsCityListItemMonths,.TVFlightsCityList.TVPreview .TVFlightsCityListItem .TVFlightsCityListItemName,.TVFlightsCityList.TVPreview .TVFlightsCityListItem .TVFlightsCityListItemSchedule {
    visibility: hidden;
    position: relative
}

.TVFlightsCityList.TVPreview .TVFlightsCityListItem .TVFlightsCityListItemDuration:before,.TVFlightsCityList.TVPreview .TVFlightsCityListItem .TVFlightsCityListItemMonths:before,.TVFlightsCityList.TVPreview .TVFlightsCityListItem .TVFlightsCityListItemName:before,.TVFlightsCityList.TVPreview .TVFlightsCityListItem .TVFlightsCityListItemSchedule:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVFlightsCityList.TVPreview .TVFlightsCityListItem .TVFlightsCityListItemMonths,.TVFlightsCityList.TVPreview .TVFlightsCityListItem .TVFlightsCityListItemSchedule {
    box-sizing: border-box;
    border: none;
    height: 32px
}

.TVFlightsCityList.TVPreview .TVFlightsCityListItem .TVFlightsCityListItemSchedule {
    cursor: default
}

.TVFlightsCityList.TVPreview .TVFlightsCityListItem.TVMobile .TVFlightsCityListItemSchedule {
    width: 32px
}

.TVFlightsCountryList {
    padding: 24px 16px 16px;
    background-color: #edf2f5;
    border-radius: 10px
}

.TVFlightsCountryList .TVFlightsCountryListItem:not(:first-child) {
    margin-top: 24px
}

.TVFlightsCountryList .TVFlightsCountryListItem .TVFlightsCountryListItemTitle {
    display: flex;
    align-items: center;
    padding-left: 8px
}

.TVFlightsCountryList .TVFlightsCountryListItem .TVFlightsCountryListItemFlag {
    width: 26px;
    height: 18px;
    margin-right: 10px;
    background-size: cover;
    border-radius: 4px
}

.TVFlightsCountryList .TVFlightsCountryListItem .TVFlightsCountryListItemName {
    font-size: 18px;
    font-weight: 700;
    line-height: 22px;
    color: #333
}

.TVFlightsCountryList .TVFlightsCountryListItem .TVFlightsCountryListItemCities {
    margin-top: 22px;
    background-color: #fff;
    border-radius: 10px;
    border: 1px solid rgba(92,102,114,.15)
}

.TVFlightsCountryList.TVPreview .TVFlightsCountryListItem .TVFlightsCountryListItemFlag,.TVFlightsCountryList.TVPreview .TVFlightsCountryListItem .TVFlightsCountryListItemName {
    height: 22px;
    visibility: hidden;
    position: relative
}

.TVFlightsCountryList.TVPreview .TVFlightsCountryListItem .TVFlightsCountryListItemFlag:before,.TVFlightsCountryList.TVPreview .TVFlightsCountryListItem .TVFlightsCountryListItemName:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVFlightsFilterListControl .TVEmptyList {
    padding: 30px 20px;
    text-align: center;
    font-size: 18px;
    color: #333;
    text-shadow: 1px 1px 0 #fff
}

.TVFlightsFilterListControl .TVEmptyList:before {
    content: "К сожалению, данных, с заданными параметрами, не найдено.";
    display: block
}

.TVFlightsFilterListControl .TVEmptyList:after {
    content: "Вы можете изменить условия поиска или город вылета";
    display: block
}

.TVFlightsFilter {
    margin-bottom: 15px
}

.TVFlightsFilterControl {
    display: flex
}

.TVFlightsFilterWrapper {
    width: 100%
}

.TVFlightsMonthSelect {
    --selected-item-bg-color: #2f80ed;
    --selected-item-text-color: #fff;
    display: flex;
    align-items: flex-end
}

.TVFlightsMonthSelect.TVFlightsMonthSelectScrollable {
    -ms-overflow-style: none;
    scrollbar-width: none;
    overflow: auto;
    overflow-y: hidden;
    padding: 0 16px
}

.TVFlightsMonthSelect.TVFlightsMonthSelectScrollable::-webkit-scrollbar {
    display: none
}

.TVFlightsMonthSelectItem {
    font-size: 10px;
    font-weight: 600;
    line-height: 9px;
    color: #5c6672;
    text-transform: uppercase;
    background-color: #edf2f5;
    border: 1px solid #edf2f5;
    padding: 11px 10px;
    border-radius: 4px
}

.TVFlightsMonthSelectItem:hover {
    background-color: #def1ff;
    cursor: pointer
}

.TVFlightsMonthSelectItem.TVDisabled {
    background-color: #fff;
    border-color: #dde4ec;
    opacity: .36;
    cursor: default
}

.TVFlightsMonthSelectItem.TVFlightsMonthSelectItemSelected {
    border-color: var(--selected-item-bg-color);
    color: var(--selected-item-text-color)
}

.TVFlightsMonthSelectItem.TVFlightsMonthSelectItemSelected,.TVFlightsMonthSelectItem.TVFlightsMonthSelectItemSelected:hover {
    background-color: var(--selected-item-bg-color);
    cursor: default
}

.TVFlightsMonthSelectItem.TVTransparent {
    opacity: 0;
    pointer-events: none
}

.TVFlightsMonthSelectYear {
    font-size: 10px;
    font-weight: 500;
    line-height: 13px;
    color: #c4c7cc;
    align-self: normal
}

.TVFlightsMonthSelectYear:after {
    content: "";
    display: block;
    width: 0;
    height: 100%;
    margin: 5px auto 0;
    border: 1px dashed #dde4ed
}

.TVFlightsMonthSelectItem:not(:first-child),.TVFlightsMonthSelectYear:not(:first-child) {
    margin-left: 5px
}

.TVFlightsMonthSelectYear~.TVFlightsMonthSelectItem {
    margin-top: 14px
}

.TVFlightsNightSelectItem {
    --selected-bg-color: #2f80ed;
    --selected-text-color: #fff;
    background-color: #edf2f5;
    border-radius: 4px;
    padding: 8px 16px;
    min-width: 45px;
    box-sizing: border-box;
    font-size: 13px;
    font-weight: 500;
    line-height: 16px;
    color: #5c6672;
    text-align: center
}

.TVFlightsNightSelectItem:not(:first-child) {
    margin-left: 5px
}

.TVFlightsNightSelectItem:hover {
    background-color: #def1ff;
    cursor: pointer
}

.TVFlightsNightSelectItem.TVSelected {
    background-color: var(--selected-bg-color);
    border-color: var(--selected-bg-color);
    color: var(--selected-text-color)
}

.TVFlightsNightSelectItem.TVSelected:hover {
    background-color: var(--selected-bg-color);
    cursor: default
}

.TVFlightsNightSelectItem.TVPreview {
    visibility: hidden;
    position: relative
}

.TVFlightsNightSelectItem.TVPreview:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVFlightsResortSelectItem {
    display: flex;
    flex-direction: column;
    border-radius: 10px;
    overflow: hidden;
    cursor: pointer
}

.TVFlightsResortSelectItem.TVPreview {
    visibility: hidden;
    position: relative
}

.TVFlightsResortSelectItem.TVPreview:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVFlightsResortSelectItemImage {
    background-size: cover;
    width: 100%;
    height: 120px
}

.TVFlightsResortSelectItemDescription {
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    padding: 10px;
    background-color: #edf2f5;
    height: calc(100% - 120px)
}

.TVFlightsResortSelectItemName {
    font-size: 13px;
    font-weight: 600;
    line-height: 16px;
    color: #5c6672;
    width: 100%
}

.TVFlightsResortSelectItemPrice {
    margin-right: 10px;
    margin-top: auto
}

.TVFlightsResortSelectItemPriceValue {
    font-size: 13px;
    font-weight: 500;
    line-height: 18px;
    color: #8b939c
}

.TVFlightsResortSelectItemPriceCurrency {
    font-size: 10px;
    font-weight: 500;
    line-height: 18px;
    color: #5c6672;
    opacity: .7;
    margin-left: 5px
}

.TVFlightsResortSelectItemCheckBox {
    margin-left: auto;
    margin-top: auto
}

.TVFlightsSelectionParamsControl {
    display: flex
}

.TVFlightsSelectionParamsControl .TVFlightsSelectionParamsSearchButton {
    box-sizing: border-box;
    background: #ff6856;
    border-radius: 7px;
    padding: 14px 30px;
    cursor: pointer;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    line-height: 14px
}

.TVFlightsSelectionParamsControl.TVAxisDirection-Row {
    align-items: center
}

.TVFlightsSelectionParamsControl.TVAxisDirection-Row .TVFlightsSelectionParamsSearchButton {
    margin-left: auto
}

.TVFlightsSelectionParamsControl.TVAxisDirection-Column {
    align-items: flex-start;
    flex-direction: column
}

.TVFlightsSelectionParamsControl.TVAxisDirection-Column .TVFlightsSelectionParamsSearchButton {
    margin-top: 20px;
    width: 100%;
    text-align: center
}

.TVFlightsSelectionParamsItems {
    display: flex;
    align-items: center
}

.TVFlightsSelectionParamsItem {
    font-size: 15px;
    font-weight: 600;
    line-height: 14px;
    color: #5c6672
}

.TVFlightsSelectionParamsItem:not(:first-child) {
    margin-left: 10px;
    border-left: 2px solid #dbdde0;
    padding-left: 10px
}

.TVFlightsWeatherControl .TVFlightsWeatherTitle {
    font-size: 13px;
    font-weight: 500;
    line-height: 16px;
    color: #5c6672;
    margin-bottom: 10px
}

.TVFlightsWeatherControl .TVFlightsWeatherValue {
    font-size: 19px;
    font-weight: 500;
    line-height: 23px;
    display: flex;
    align-items: center
}

.TVFlightsWeatherControl .TVFlightsWeatherValue:before {
    font-size: 24px;
    font-weight: 600;
    margin-right: 8px
}

.TVFlightsWeatherControl .TVFlightsWeatherAirTemperature .TVFlightsWeatherValue {
    color: #ff6856
}

.TVFlightsWeatherControl .TVFlightsWeatherAirTemperature .TVFlightsWeatherValue:before {
    font-family: TVicons;
    content: "\e958"
}

.TVFlightsWeatherControl .TVFlightsWeatherWaterTemperature {
    margin-top: 15px;
    color: #027ad0
}

.TVFlightsWeatherControl .TVFlightsWeatherWaterTemperature .TVFlightsWeatherValue:before {
    font-family: TVicons;
    content: "\e959"
}

.TVFlightsWeatherControl.TVAxisDirection-Row {
    display: flex;
    align-items: center
}

.TVFlightsWeatherControl.TVAxisDirection-Row .TVFlightsWeatherWaterTemperature {
    margin: 0 0 0 30px
}

.TVFlightsApp {
    font-family: var(--tv-font-theme2);
    margin: 0 auto
}

.TVFlightsPage.TVError .TVMobilePanelBlock:before {
    content: "К сожалению, невозможно получить расписание рейсов";
    height: 100vh;
    padding: 0 20px;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVFlightsPageShare {
    border-radius: 50%;
    background-color: rgba(0,0,0,.2);
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVFlightsPageShareIcon {
    fill: #fff
}

.TVFlightsWindow {
    background: #fff;
    border-radius: 10px;
    max-width: 960px;
    min-width: 960px;
    overflow: hidden
}

.TVFlightsWindow .TVClosePopUp {
    color: currentColor;
    right: 20px;
    top: 14px
}

.TVFlightsWindow.TVError:before {
    content: "К сожалению, невозможно получить расписание рейсов";
    padding: 15px 20px
}

.TVFlightsWindow.TVError .TVFlightsWindowWrapper {
    display: none
}

.TVFlightsWindowHeader {
    display: flex;
    align-items: center;
    background: #1c7ad0;
    opacity: 1;
    padding: 16px 20px;
    color: #fff
}

.TVFlightsWindowShare,.TVFlightsWindowTitle {
    font-size: 13px;
    font-weight: 600;
    line-height: 16px
}

.TVFlightsWindowShare {
    margin-left: auto;
    margin-right: 50px;
    display: flex;
    align-items: center;
    cursor: pointer
}

.TVFlightsWindowShareIconWrapper {
    margin-right: 10px
}

.TVFlightsWindowShareIcon {
    fill: currentColor
}

.TVHistoryApp {
    font-family: var(--tv-font-theme2);
    margin: 0 auto
}

.TVHistorySliderControl {
    --bg-color: #fff;
    --bg-blur: 0;
    --border-color: #efefef;
    --text-color: #333
}

.TVHistorySliderControl .TVHistorySliderHeader {
    height: 38px;
    box-sizing: border-box;
    margin-bottom: 24px;
    display: flex;
    align-items: center
}

.TVHistorySliderControl .TVHistorySliderTitle {
    flex: 1;
    min-width: 0
}

.TVHistorySliderControl .TVHistorySliderButtons {
    display: flex;
    margin-left: auto
}

.TVHistorySliderControl .TVHistorySliderBackButton,.TVHistorySliderControl .TVHistorySliderNextButton {
    box-sizing: border-box;
    width: 38px;
    height: 38px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    border: 1px solid var(--border-color);
    background-color: var(--bg-color);
    -webkit-backdrop-filter: blur(var(--bg-blur));
    backdrop-filter: blur(var(--bg-blur));
    color: var(--text-color);
    fill: var(--text-color);
    stroke: var(--text-color)
}

.TVHistorySliderControl .TVHistorySliderBackButton.TVDisabled,.TVHistorySliderControl .TVHistorySliderNextButton.TVDisabled {
    opacity: .4;
    pointer-events: none
}

.TVHistorySliderControl .TVHistorySliderButtons>:not(:first-child) {
    margin-left: 6px
}

.TVHistorySliderControl.TVPreview .TVHistorySliderBackButton,.TVHistorySliderControl.TVPreview .TVHistorySliderNextButton {
    visibility: hidden;
    position: relative
}

.TVHistorySliderControl.TVPreview .TVHistorySliderBackButton:before,.TVHistorySliderControl.TVPreview .TVHistorySliderNextButton:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVHistorySliderControl.TVPreview .TVHistorySliderButtons {
    display: none
}

.TVHistorySearchItemControl {
    --bg-color: #fff;
    --bg-blur: 0;
    --border-radius: 12px;
    --border-color: #efefef;
    --icon-color: #027ad0;
    --icon-bg-color: linear-gradient(var(--bg-color),var(--bg-color)),linear-gradient(#f4f5f6,#f4f5f6);
    --text-color: #333
}

.TVHistorySearchItemControl.TVWithBorder .TVHistorySearchItemContent {
    border: 1px solid var(--border-color)
}

.TVHistorySearchItemControl.TVWithShadow {
    padding: 8px 4px
}

.TVHistorySearchItemControl.TVWithShadow .TVHistorySearchItemContent {
    box-shadow: 0 0 4px 1px rgba(0,0,0,.04),0 4px 6px 0 rgba(0,0,0,.03),0 5px 8px 0 rgba(0,0,0,.02)
}

.TVHistorySearchItemControl.TVPreview .TVHistorySearchItemContent {
    cursor: default
}

.TVHistorySearchItemControl.TVPreview .TVHistorySearchItemIcon,.TVHistorySearchItemControl.TVPreview .TVHistorySearchItemInfo,.TVHistorySearchItemControl.TVPreview .TVHistorySearchItemSubtitle,.TVHistorySearchItemControl.TVPreview .TVHistorySearchItemTitle {
    visibility: hidden;
    position: relative
}

.TVHistorySearchItemControl.TVPreview .TVHistorySearchItemIcon:before,.TVHistorySearchItemControl.TVPreview .TVHistorySearchItemInfo:before,.TVHistorySearchItemControl.TVPreview .TVHistorySearchItemSubtitle:before,.TVHistorySearchItemControl.TVPreview .TVHistorySearchItemTitle:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVHistorySearchItemContent {
    background-color: var(--bg-color);
    -webkit-backdrop-filter: blur(var(--bg-blur));
    backdrop-filter: blur(var(--bg-blur));
    border-radius: var(--border-radius);
    cursor: pointer;
    height: 90px;
    box-sizing: border-box;
    padding: 16px;
    display: grid;
    column-gap: 8px;
    grid-template-columns: auto 32px;
    grid-template-areas: "title icon" "subtitle icon" "info info"
}

.TVHistorySearchItemContent,.TVHistorySearchItemContent:active,.TVHistorySearchItemContent:hover {
    text-decoration: none;
    color: var(--text-color);
    fill: var(--text-color)
}

.TVHistorySearchItemInfo,.TVHistorySearchItemSubtitle,.TVHistorySearchItemTitle {
    min-height: 16px;
    line-height: 16px
}

.TVHistorySearchItemSubtitle,.TVHistorySearchItemTitle {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    min-width: 0
}

.TVHistorySearchItemTitle {
    grid-area: title;
    font-size: 13px;
    font-weight: 600
}

.TVHistorySearchItemSubtitle {
    margin-top: 2px;
    grid-area: subtitle;
    font-size: 13px;
    font-weight: 600
}

.TVHistorySearchItemInfo {
    margin-top: 8px;
    grid-area: info;
    font-size: 13px;
    font-weight: 500;
    display: flex;
    flex-wrap: wrap
}

.TVHistorySearchItemInfoElement {
    --info-opacity: 1;
    opacity: var(--info-opacity);
    fill-opacity: var(--info-opacity);
    display: flex;
    align-items: center
}

.TVHistorySearchItemInfoElement:not(:first-child) {
    margin-left: 6px
}

.TVHistorySearchItemInfoElement>:not(:first-child) {
    margin-left: 4px
}

.TVHistorySearchItemInfoElementIcon {
    display: flex;
    align-items: center
}

.TVHistorySearchItemIcon {
    grid-area: icon;
    border-radius: 100%;
    width: 32px;
    height: 32px;
    background: var(--icon-bg-color);
    background-blend-mode: multiply;
    color: var(--icon-color);
    fill: var(--icon-color)
}

.TVHistorySearchItemIcon,.TVModuleFiltersButton {
    display: flex;
    align-items: center;
    justify-content: center
}

.TVModuleFiltersButton {
    box-sizing: border-box;
    cursor: pointer;
    transition: border-color .2s linear
}

.TVModuleFiltersButton:not(:last-child) {
    margin-right: 8px
}

.TVModuleFiltersButton.TVSize-S {
    width: 28px;
    height: 28px
}

.TVModuleFiltersButton.TVSize-M {
    width: 34px;
    height: 34px
}

.TVModuleFiltersButton.TVSize-L {
    width: 40px;
    height: 40px
}

.TVModuleFiltersButton.TVStyleTheme1 {
    border: 1px solid transparent;
    color: #777
}

.TVModuleFiltersButton.TVStyleTheme2 {
    background-color: #edf2f5;
    color: #777;
    font-weight: 500
}

.TVModuleFiltersButton.TVBorderRadiusSize-XS {
    border-radius: 4px
}

.TVModuleFiltersButton.TVBorderRadiusSize-S {
    border-radius: 6px
}

.TVModuleFiltersButton.TVBorderRadiusSize-XXL {
    border-radius: 20px
}

.TVModuleFiltersButton .TVModuleFiltersButtonIcon {
    display: flex;
    align-items: center;
    justify-content: center
}

.TVModuleFiltersButton .TVModuleFiltersButtonIcon svg {
    fill: currentColor;
    height: auto
}

.TVModuleFiltersButton .TVModuleFiltersButtonIcon.TVSize-XXS svg {
    width: 14px
}

.TVModuleFiltersButton .TVModuleFiltersButtonIcon.TVSize-S svg {
    width: 18px
}

.TVModuleFiltersButton .TVModuleFiltersButtonIcon.TVSize-M svg {
    width: 20px
}

.TVModuleFiltersButton.TVActive.TVStyleTheme1 {
    border: 1px solid #777
}

.TVModuleFiltersButton.TVActive.TVStyleTheme2 {
    background-color: #5c6672;
    color: #fff
}

.TVModuleFiltersButton.TVModuleFiltersButtonFull {
    width: auto;
    padding: 0 15px
}

.TVModuleFiltersButton.TVModuleFiltersButtonFull .TVModuleFiltersButtonLabel {
    margin-left: 10px
}

.TVModuleFiltersButton.TVPreview {
    visibility: hidden;
    position: relative
}

.TVModuleFiltersButton.TVPreview:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVModuleFiltersHeader {
    font-family: var(--tv-font-theme2);
    color: #333;
    display: flex;
    align-items: center
}

.TVModuleFiltersHeader .TVModuleFiltersTitle {
    letter-spacing: -1.2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 33px
}

.TVModuleFiltersHeader.TVFontSize-S .TVModuleFiltersTitle {
    font-size: 21px
}

.TVModuleFiltersHeader.TVFontSize-M .TVModuleFiltersTitle {
    font-size: 24px
}

.TVModuleFiltersHeader.TVFontWeightSize-S .TVModuleFiltersTitle {
    font-weight: 700
}

.TVModuleFiltersHeader.TVFontWeightSize-M .TVModuleFiltersTitle {
    font-weight: 800
}

.TVModuleFiltersHeader .TVModuleFiltersHeaderHideButton {
    margin-left: auto
}

.TVModuleFiltersHeader.TVPreview .TVModuleFiltersTitle {
    visibility: hidden;
    position: relative
}

.TVModuleFiltersHeader.TVPreview .TVModuleFiltersTitle:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVActionsControlContent {
    font-size: 14px;
    color: #777
}

.TVActionsControlButtons {
    margin-top: 20px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center
}

.TVActionsControlButtons.TVAxisDirection-Column {
    flex-direction: column
}

.TVActionsControlButtons.TVAxisDirection-Column .TVActionsButton {
    width: 100%
}

.TVActionsControlButtons.TVAxisDirection-Column .TVActionsButton:not(:last-child) {
    margin-bottom: 20px
}

.TVActionsControlButtons.TVAxisDirection-Row {
    flex-direction: row
}

.TVActionsControlButtons.TVAxisDirection-Row .TVActionsButton {
    flex: 1
}

.TVActionsControlButtons.TVAxisDirection-Row .TVActionsButton:not(:last-child) {
    margin-right: 10px
}

.TVActionsButton {
    display: block;
    box-sizing: border-box;
    font-size: 13px;
    border-radius: 20px;
    padding: 10px;
    text-align: center;
    cursor: pointer;
    text-decoration: none
}

.TVActionsButton.TVColorGray950 {
    background-color: #efefef;
    color: #777
}

.TVActionsButton.TVColorBlue950 {
    background-color: #edf2f5;
    color: #5c6672
}

.TVActionsButton.TVColorBlue315 {
    background: #185584;
    color: #fff
}

.TVActionsModalTitle {
    font-size: 16px;
    font-weight: 700;
    color: #333;
    margin-bottom: 20px
}

.TVActionsModalPage .TVActionsModalContent {
    padding: 20px
}

.TVAgreementPage.TVLayoutControl .TVMobilePanelCaption:before {
    content: ""
}

.TVAgreementPageContent {
    padding: 20px
}

.TVAgreementManagerWindow {
    width: 600px;
    overflow: hidden;
    overflow-y: auto;
    background: #fff;
    padding: 23px 40px 30px
}

.TVAgreementContentControl {
    font-size: 13px;
    color: #5c6672
}

.TVAgreementContentControl .TVCheckBox:before {
    line-height: 16px
}

.TVAgreementContentControl.TVLineHeightSize-M {
    line-height: 18px
}

.TVAgreementContentControl.TVLineHeightSize-L {
    line-height: 20px
}

.TVAgreementContentControl.TVVariant-contained,.TVAgreementContentControl.TVVariant-outlined {
    display: flex;
    border-radius: 5px;
    padding: 10px
}

.TVAgreementContentControl.TVVariant-contained:before,.TVAgreementContentControl.TVVariant-outlined:before {
    font-family: TVicons;
    content: "\e923";
    font-size: 20px;
    min-width: 40px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-right: 5px
}

.TVAgreementContentControl.TVVariant-outlined {
    background: #fff
}

.TVAgreementContentControl.TVVariant-contained {
    background-color: #f5f5f5
}

.TVAgreementContentControl .TVAgreementContentLink {
    color: #4b90d5;
    text-decoration: underline;
    cursor: pointer
}

.TVAgreementContentControl .TVAgreementContentSection:not(:first-child) {
    margin-top: 10px
}

.TVAgreementContentControl .TVAgreementContent {
    display: flex
}

.TVAgreementContentControl.TVDisabled {
    cursor: auto;
    pointer-events: none;
    opacity: .5
}

.TVAgreementManagerContractTitle,.TVAgreementManagerPolicyTitle {
    text-transform: uppercase;
    font-weight: 700;
    text-align: center;
    margin-bottom: 0
}

.TVAgreementManagerContractSubtitle {
    text-align: center
}

.TVAgreementManagerContractTime {
    text-align: right;
    text-transform: lowercase;
    margin: 10px 0
}

.TVAgreementManagerContractText,.TVAgreementManagerPolicyText {
    margin-bottom: 20px;
    color: #444
}

.TVAgreementManagerContractText>p,.TVAgreementManagerPolicyText>p {
    text-align: justify;
    padding: 0;
    margin: 0
}

.TVAgreementManagerPDAgreementText {
    font-size: 16px;
    color: #444;
    text-align: justify
}

.TVAgreementManagerPDAgreementText>h3 {
    text-align: center
}

.TVAgreementManagerPolicyTitle {
    margin-bottom: 20px
}

.TVBannerFavoritesLikeIcon {
    fill: #fb5e51;
    width: 22px;
    margin-top: 2px
}

.TVBannerFavoritesSubscribeIcon {
    fill: #027ad0;
    fill-rule: evenodd;
    width: 20px;
    margin-top: 4px
}

.TVBannerFavoritesLike,.TVBannerFavoritesSubscribe {
    display: flex;
    justify-content: space-between
}

.TVBannerFavoritesControl {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    max-width: 400px;
    margin-top: 10px
}

.TVBannerFavoritesControl>:not(:first-child) {
    margin-top: 15px
}

.TVBannerFavoritesText {
    font-size: 13px;
    font-weight: 500;
    line-height: 20px;
    margin-left: 20px;
    color: #5c6672;
    flex: 1
}

.TVBotSubscribePage {
    background-color: #e2f1fb
}

.TVBotSubscribePage .TVMobilePanelCaption:before {
    content: "Подписка на горящие туры"
}

.TVBotSubscribePage .TVBotSubscribeControl {
    padding: 30px 15px 30px 20px
}

.TVBotSubscribeWindow {
    width: 940px;
    box-shadow: 0 0 20px rgba(0,0,0,.3);
    border-radius: 20px;
    background-color: #e2f1fb;
    font-family: var(--tv-font-theme2);
    padding: 30px
}

.TVBotSubscribeWindow .TVClosePopUp {
    color: #31708f
}

.TVBotSubscribeTitle {
    margin-bottom: 10px;
    display: block;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -.3px;
    color: #31708f
}

.TVBotSubscribeDescription {
    margin-bottom: 20px;
    display: block;
    font-size: 14px;
    color: #31708f
}

.BotSubscribeFilterControl>:not(:last-child) {
    margin-bottom: 15px
}

.BotSubscribeFilterControl .TVModuleFiltersBlock {
    width: auto;
    margin-top: -10px;
    margin-right: -10px;
    padding: 0
}

.BotSubscribeFilterControl .TVFormControl {
    color: #31708f
}

.BotSubscribeFilterControl .TVFormControl .TVCheckBox.TVChecked:before {
    background-color: #31708f;
    border: #31708f
}

.BotSubscribeFilterControl .TVModuleFilter {
    background-color: transparent
}

.TVBotSubscribeButtonsControl {
    display: flex;
    justify-content: flex-end
}

.TVBotSubscribeButton {
    height: 40px;
    box-sizing: border-box;
    padding: 0 30px;
    border-radius: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    cursor: pointer;
    background-color: #31708f;
    color: #fff
}

.TVBotSubscribeQueryButton {
    min-width: 200px
}

.TVBotSubscribeLink {
    min-width: 200px;
    border: none;
    text-transform: none;
    text-decoration: none
}

.TVBotSubscribeCopyButton {
    margin-right: 20px;
    background-color: #fff;
    color: #31708f;
    white-space: nowrap;
    transition: color .1s linear,background-color .1s linear
}

.TVBotSubscribeCopyButton.TVCopyLinkSuccessMessage {
    color: #fff;
    background-color: #7fb762
}

.TVBotSubscribeCopyHint:before {
    content: "Скопировать ссылку на подписку туристов"
}

@media screen and (max-width: 700px) {
    .TVBotSubscribeButtonsControl {
        flex-wrap:wrap
    }

    .TVBotSubscribeCopyButton,.TVBotSubscribeLink {
        flex: 1;
        margin-top: 10px;
        margin-right: 0
    }
}

.TVBotSubscribeControl>:not(:last-child) {
    margin-bottom: 30px
}

.TVConvertFavoritesConfirmOk {
    max-width: 180px;
    margin: auto
}

.TVErrorMessage {
    padding: 20px;
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    color: #777
}

.TVErrorMessage .TVErrorMessageTitle {
    padding-bottom: 7px
}

.TVErrorMessage .TVErrorMessageTitle:after {
    content: "Кратко опишите суть проблемы:"
}

.TVErrorMessage .TVErrorMessageEmailTitle {
    padding: 15px 0 7px;
    text-align: justify
}

.TVErrorMessage .TVErrorMessageEmailTitle:after {
    content: "Если Вы хотите получить ответ от наших специалистов, укажите Ваш E-Mail:"
}

.TVErrorMessage input,.TVErrorMessage textarea {
    width: 100%;
    border: 1px solid #ddd;
    border-radius: 3px;
    padding: 16px 19px;
    box-sizing: border-box;
    font-family: var(--tv-font-theme2);
    font-size: 13px
}

.TVErrorMessage input::placeholder,.TVErrorMessage textarea::placeholder {
    color: #999
}

.TVErrorMessage input:focus::placeholder,.TVErrorMessage textarea:focus::placeholder {
    color: transparent
}

.TVErrorMessage textarea {
    resize: none;
    outline: none;
    height: 90px
}

.TVErrorMessage textarea.TVWarning {
    border-color: red
}

.TVErrorMessageAgreement,.TVErrorMessageRequestButton {
    margin-top: 20px
}

.TVErrorPage.TVLayoutControl .TVMobilePanelCaption:before {
    content: "Сообщить об ошибке"
}

.TVErrorWindow {
    width: 370px;
    box-shadow: 0 0 20px rgba(0,0,0,.3);
    border-radius: 20px;
    background-color: #fff;
    font-family: var(--tv-font-theme2);
    padding: 30px
}

.TVErrorWindow .TVErrorMessage {
    padding: 0
}

.TVExportCrmInfoDescription {
    font-size: 14px;
    color: #777
}

.TVExportCrmInfoLink {
    width: 100%;
    display: block;
    box-sizing: border-box;
    font-size: 13px;
    border-radius: 20px;
    padding: 10px;
    text-align: center;
    cursor: pointer;
    margin-top: 20px;
    text-decoration: none
}

.TVExportCrmInfoAboutLink {
    background-color: #efefef;
    color: #777;
    border: 1px solid #ddd
}

.TVExportCrmInfoModalTitle {
    font-size: 16px;
    font-weight: 700;
    color: #333;
    margin-bottom: 20px
}

.TVExportCrmInfoModalPage .TVExportCrmInfoModalContent {
    padding: 20px
}

.TVMobilePanel.TVGalleryPage {
    background-color: #000;
    overflow: hidden
}

.TVMobilePanel.TVGalleryPage .TVMobilePanelHeader {
    position: fixed;
    right: 0;
    background-color: transparent
}

.TVMobilePanel.TVGalleryPage .TVMobilePanelHeader .TVMobilePanelCaption:before {
    content: ""
}

.TVMobilePanel.TVGalleryPage .TVMobilePanelBlock {
    width: 100%;
    height: 100%;
    overflow: hidden;
    top: auto;
    bottom: auto;
    left: auto;
    right: auto;
    position: fixed;
    top: 0
}

.TVMobilePanel.TVGalleryPage .TVMobilePanelBlock .TVMobilePanelBody {
    width: 100%;
    height: 100%;
    box-sizing: border-box
}

.TVMobilePanel.TVGalleryPage .TVPhotoGalleryFooter {
    position: absolute;
    bottom: 15px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 14px
}

.TVGalleryWindowDarkBackground {
    opacity: 1;
    z-index: 2147483647
}

.TVGalleryWindow {
    z-index: 2147483647;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    padding: 0;
    margin: 0;
    position: fixed
}

.TVGalleryWindow .TVClosePopUp {
    width: 70px;
    height: 65px;
    top: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVGalleryWindow .TVClosePopUp:after {
    color: #fff;
    font-family: var(--tv-font-theme2);
    font-size: 48px;
    line-height: 26px;
    content: "+";
    transform: rotate(45deg);
    border: none;
    border-radius: 0;
    padding: 0
}

.TVGalleryWindowContent {
    height: 100%;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding: 20px 5px
}

.TVGalleryWindowGallery {
    flex: 1;
    min-height: 0
}

.TVGalleryWindowPreviewSlider {
    margin-top: 2vh
}

.TVImageResizer {
    touch-action: none;
    transition: none
}

.TVImageResizer.TVImageResizerZoom {
    transition: transform .3s ease
}

.TVActionNoAccessDescription {
    font-size: 14px;
    color: #777
}

.TVActionNoAccessInfoLink,.TVActionNoAccessLoginLink {
    width: 100%;
    display: block;
    box-sizing: border-box;
    font-size: 13px;
    border-radius: 20px;
    padding: 10px;
    text-align: center;
    cursor: pointer;
    margin-top: 20px;
    text-decoration: none
}

.TVActionNoAccessInfoLink {
    background: #efefef;
    color: #777
}

.TVActionNoAccessModalTitle {
    font-size: 16px;
    font-weight: 700;
    color: #333;
    margin-bottom: 20px
}

.TVActionNoAccessModalPage .TVActionNoAccessModalContent {
    padding: 20px
}

.TVPayDialogControl {
    font-family: var(--tv-font-theme2);
    color: #000
}

.TVPayDialogControl.TVFontSize-M {
    font-size: 14px
}

.TVPayDialogControl.TVFontSize-L {
    font-size: 16px
}

.TVPayDialogControl.TVTextAlign-Left {
    text-align: left
}

.TVPayDialogControl.TVTextAlign-Center {
    text-align: center
}

.TVPayDialogControl.TVTextAlign-Right {
    text-align: right
}

.TVPayDialogControl .TVPayDialogTitle {
    font-size: 20px;
    font-weight: 600
}

.TVPayDialogControl .TVPayDialogAmount {
    margin-top: 25px
}

.TVPayDialogControl .TVPayDialogAmountTitle {
    margin-right: 5px
}

.TVPayDialogControl .TVPayDialogAmountValue {
    font-weight: 700
}

.TVPayDialogControl .TVPayDialogAmountCurrency {
    margin-left: 3px;
    text-transform: lowercase
}

.TVPayDialogControl .TVPayDialogText {
    line-height: 1.39;
    margin-top: 25px
}

.TVPayDialogControl .TVPayDialogPhone {
    margin-top: 25px;
    font-weight: 700
}

.TVPayDialogControl .TVPayDialogPhone:before {
    display: block;
    font-weight: 400;
    content: "Если у Вас есть какие-либо вопросы, пожалуйста, свяжитесь с нами по телефону:"
}

.TVPayDialogControl .TVPayDialogLink {
    width: 200px;
    margin: 25px auto 0;
    border-radius: 30px;
    font-size: 13px;
    padding: 10px 0;
    text-transform: none
}

.TVPayInfoPage.TVLayoutControl .TVMobilePanelCaption:before {
    content: ""
}

.TVPayInfoPage.TVLayoutControl .TVMobilePanelBody {
    padding: 30px;
    box-sizing: border-box
}

.TVPayInfoManagerWindow {
    width: 600px;
    overflow: hidden;
    overflow-y: auto;
    background: #fff;
    padding: 50px;
    border-radius: 10px
}

.TVRequestForm {
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    text-align: left;
    color: #5c6672
}

.TVRequestForm .TVRequestFormSendButton {
    width: 100%;
    margin: 20px auto 0;
    text-align: center;
    padding: 9px 0;
    text-transform: none;
    font-size: 13px
}

.TVRequestForm .TVRequestFormSendButton:before {
    content: "Отправить запрос"
}

.TVRequestForm .TVRequestFormSendButton.TVButtonWaiterVisible:before {
    content: "Отправка заявки"
}

.TVRequestForm .TVRequestFormTitle {
    font-size: 18px;
    font-weight: 600;
    color: #333
}

.TVRequestForm .TVRequestFormContractBlock,.TVRequestForm .TVRequestFormDescription {
    font-weight: 500
}

.TVRequestForm .TVRequestFormDescription {
    line-height: 20px;
    margin: 15px 0;
    text-align: justify
}

.TVRequestForm .TVWarning,.TVRequestForm .TVWarning .TVTextBox {
    border-color: red
}

.TVRequestForm .TVResponseError,.TVRequestForm .TVResponseSuccess {
    text-align: justify;
    color: #333
}

.TVRequestForm .TVResponseSuccess:before {
    content: "Спасибо, Ваша заявка отправлена!";
    font-weight: 700;
    text-transform: uppercase;
    color: #333;
    display: block
}

.TVRequestForm .TVResponseSuccess:after {
    margin-top: 10px;
    display: block;
    content: "В ближайшее время с Вами свяжется наш менеджер.";
    color: #777
}

.TVRequestForm .TVResponseError:after {
    content: "В данный момент невозможно отправить заявку, попробуйте позже."
}

.TVRequestForm .TVRequestFormMessage {
    position: relative
}

.TVRequestForm .TVInputPro {
    border-color: #d8dde2;
    background-color: #fefefe;
    border-radius: 5px
}

.TVRequestForm .TVInputPro.TVInvalidInput {
    border-color: #e31e22
}

.TVRequestForm .TVRequestFormSendButtonContainer {
    margin-bottom: 15px
}

.TVRequestForm .TVRequestFormActionsBlock {
    margin-top: 8px
}

.TVRequestForm.TVRequestFormDesctop .TVRequestFormDescription {
    order: 1;
    margin-top: 0;
    margin-bottom: 15px;
    white-space: pre-wrap
}

.TVRequestForm.TVRequestFormDesctop .TVRequestFormPanel {
    display: flex;
    justify-content: space-between
}

.TVRequestForm.TVRequestFormDesctop .TVRequestFormPanel .TVRequestFormWrapper {
    width: 48%;
    padding-top: 40px;
    position: relative;
    display: flex;
    flex-direction: column
}

.TVRequestForm.TVRequestFormDesctop .TVRequestFormPanel .TVRequestFormTitle {
    position: absolute;
    top: 0
}

.TVRequestForm.TVRequestFormDesctop .TVRequestFormPanel .TVRequestFormInfoBlock {
    width: 50%;
    padding-top: 35px;
    margin-left: 25px;
    display: flex;
    flex-direction: column;
    position: relative
}

.TVRequestForm.TVRequestFormDesctop .TVRequestFormPanel .TVRequestFormInfoBlock .TVRequestFormContractBlock {
    order: 2;
    padding: 10px 0
}

.TVRequestForm.TVRequestFormDesctop .TVRequestFormPanel .TVRequestFormInfoBlock .TVRequestFormSendButtonContainer {
    flex-grow: 1;
    order: 3;
    display: flex;
    align-items: flex-end;
    margin-bottom: 0
}

.TVRequestForm.TVRequestFormDesctop .TVRequestFormMessage {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    min-height: 300px;
    position: relative
}

.TVRequestControlFormWrapper {
    display: flex;
    flex-direction: column
}

.TVRequestControlOfficeWrapper {
    order: -1
}

.TVRequestControlAroundPadding .TVRequestControlFormWrapper,.TVRequestControlMessageWrapper {
    padding: 20px
}

.TVRequestControlAroundPadding .TVRequestControlOfficeWrapper {
    margin-bottom: 20px
}

.TVRequestControlBetweenPadding .TVRequestControlFormWrapper {
    gap: 20px
}

.TVRequestControlFormPadding .TVRequestForm {
    padding: 20px
}

.TVRequestMessageControl {
    font-family: var(--tv-font-theme2);
    font-size: 13px;
    position: relative
}

.TVRequestMessageError,.TVRequestMessageSuccess {
    text-align: justify;
    color: #333
}

.TVRequestMessageTitle {
    font-weight: 700;
    text-transform: uppercase
}

.TVRequestMessageDescription {
    color: #777
}

.TVRequestMessageTitle:not(.TVHide)+.TVRequestMessageDescription {
    margin-top: 10px
}

.TVRequestMessageDesktop {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    min-height: 300px
}

.TVRequestMessageDesktop .TVRequestMessageDescription {
    text-align: center
}

.TVRequestFormPage.TVMobilePanel {
    background: #edf2f5
}

.TVRequestFormPage.TVMobilePanel .TVMobilePanelBody {
    box-sizing: border-box;
    padding: 20px
}

.TVRequestPage.TVMobilePanel {
    background: #edf2f5
}

.TVRequestPage.TVMobilePanel .TVMobilePanelBody {
    box-sizing: border-box
}

.TVRequestWindow {
    width: 940px
}

.TVRequestWindowContent {
    padding: 50px 20px 40px;
    border-radius: 5px;
    background-color: #edf2f5
}

.TVRequestWindowBeforeDescription {
    font-weight: 700;
    font-size: 14px;
    white-space: pre-wrap
}

.TVRequestWindowAfterDescription {
    margin-top: 10px
}

.TVRoomControl {
    --horizontal-padding: 30px
}

.TVRoomControl .TVRoomContent {
    position: relative
}

.TVRoomControl .TVRoomDescription,.TVRoomControl .TVRoomDescriptionTVPreview,.TVRoomControl .TVRoomTags,.TVRoomControl .TVRoomTitle {
    padding: 0 var(--horizontal-padding)
}

.TVRoomControl .TVRoomPhoto {
    position: relative;
    overflow: hidden;
    margin-bottom: 40px
}

.TVRoomControl .TVRoomPhoto:not(.TVRoomPhotoDisabledBorderRadius) {
    border-radius: 10px
}

.TVRoomControl .TVRoomPhoto:not(.TVRoomPhotoDisabledPadding) {
    margin-left: var(--horizontal-padding);
    margin-right: var(--horizontal-padding)
}

.TVRoomControl .TVRoomTitle {
    font-size: 24px;
    font-weight: 600;
    line-height: 29px;
    letter-spacing: 0;
    color: #2b3f5a;
    text-transform: capitalize;
    margin-bottom: 30px
}

.TVRoomControl .TVRoomTags,.TVRoomControl .TVRoomTagsTVPreview {
    display: flex;
    align-items: normal;
    margin-bottom: 25px;
    padding-left: calc(var(--horizontal-padding) - 10px)
}

.TVRoomControl .TVRoomTags.TVOverflow-wrap,.TVRoomControl .TVRoomTagsTVPreview.TVOverflow-wrap {
    margin-top: -10px;
    flex-wrap: wrap
}

.TVRoomControl .TVRoomTags.TVOverflow-wrap .TVRoomTagsItem,.TVRoomControl .TVRoomTagsTVPreview.TVOverflow-wrap .TVRoomTagsItem {
    margin-top: 10px
}

.TVRoomControl .TVRoomTags.TVOverflow-scroll,.TVRoomControl .TVRoomTagsTVPreview.TVOverflow-scroll {
    -ms-overflow-style: none;
    scrollbar-width: none;
    padding-bottom: 5px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch
}

.TVRoomControl .TVRoomTags.TVOverflow-scroll::-webkit-scrollbar,.TVRoomControl .TVRoomTagsTVPreview.TVOverflow-scroll::-webkit-scrollbar {
    display: none
}

.TVRoomControl .TVRoomTags .TVRoomTagsItem,.TVRoomControl .TVRoomTags .TVRoomTagsItemTVPreview,.TVRoomControl .TVRoomTagsTVPreview .TVRoomTagsItem,.TVRoomControl .TVRoomTagsTVPreview .TVRoomTagsItemTVPreview {
    background: #edf2f5 0 0 no-repeat padding-box;
    border-radius: 6px;
    padding: 12px;
    color: #333;
    font-weight: 600;
    font-stretch: normal;
    font-size: 13px;
    line-height: 16px;
    display: flex;
    align-items: center;
    white-space: nowrap;
    margin-left: 10px
}

.TVRoomControl .TVRoomTags .TVRoomTagsItem t-sup,.TVRoomControl .TVRoomTags .TVRoomTagsItemTVPreview t-sup,.TVRoomControl .TVRoomTagsTVPreview .TVRoomTagsItem t-sup,.TVRoomControl .TVRoomTagsTVPreview .TVRoomTagsItemTVPreview t-sup {
    transform: translateY(-2px);
    font-size: 9px
}

.TVRoomControl .TVRoomDescription,.TVRoomControl .TVRoomDescriptionTVPreview {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    box-sizing: border-box;
    overflow: auto
}

.TVRoomControl .TVRoomDescription p,.TVRoomControl .TVRoomDescriptionTVPreview p,.TVRoomControl .TVRoomDescriptionTVPreview ul,.TVRoomControl .TVRoomDescription ul {
    letter-spacing: 0;
    color: #2b3f5a;
    box-sizing: border-box
}

.TVRoomControl .TVRoomDescription p,.TVRoomControl .TVRoomDescriptionTVPreview p {
    font-size: 15px;
    font-weight: 700;
    line-height: 19px;
    margin: 0 0 10px
}

.TVRoomControl .TVRoomDescriptionTVPreview ul,.TVRoomControl .TVRoomDescription ul {
    font-size: 13px;
    font-weight: 500;
    line-height: 20px;
    list-style-type: "‒";
    padding-left: 10px;
    margin: 3px 0 0
}

.TVRoomControl .TVRoomDescriptionTVPreview ul:not(:last-child),.TVRoomControl .TVRoomDescription ul:not(:last-child) {
    margin-bottom: 35px
}

.TVRoomControl .TVRoomDescriptionTVPreview ul li,.TVRoomControl .TVRoomDescription ul li {
    padding-left: 5px
}

.TVRoomControl .TVRoomDescriptionTVPreview {
    height: 150px
}

.TVRoomControl .TVRoomDescriptionTVPreview .TVRoomDescriptionBlockTVPreview {
    margin-bottom: 30px
}

.TVRoomControl .TVRoomDescriptionTVPreview .TVRoomDescriptionBlockTVPreview .TVRoomDescriptionContentTVPreview,.TVRoomControl .TVRoomDescriptionTVPreview .TVRoomDescriptionBlockTVPreview .TVRoomDescriptionTitleTVPreview {
    visibility: hidden;
    position: relative
}

.TVRoomControl .TVRoomDescriptionTVPreview .TVRoomDescriptionBlockTVPreview .TVRoomDescriptionContentTVPreview:before,.TVRoomControl .TVRoomDescriptionTVPreview .TVRoomDescriptionBlockTVPreview .TVRoomDescriptionTitleTVPreview:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVRoomControl .TVRoomDescriptionTVPreview .TVRoomDescriptionBlockTVPreview .TVRoomDescriptionTitleTVPreview {
    height: 20px;
    width: 75%;
    margin: 10px 0 0
}

.TVRoomControl .TVRoomDescriptionTVPreview .TVRoomDescriptionBlockTVPreview .TVRoomDescriptionContentTVPreview {
    height: 80px;
    width: 90%;
    margin: 10px 0 0
}

.TVRoomControl .TVRoomDescription.TVRoomDescriptionCalc {
    height: auto;
    position: absolute;
    width: 100%;
    opacity: 0
}

.TVRoomControl .TVRoomDescription .TVRoomDescriptionBlock {
    margin-bottom: 30px
}

.TVRoomControl .TVRoomDescription .TVRoomDescriptionTitle {
    display: block;
    font-weight: 700;
    font-size: 15px;
    line-height: 19px;
    color: #2b3f5a;
    margin-bottom: 10px
}

.TVRoomControl .TVRoomDescription .TVRoomDescriptionContent {
    font-weight: 500;
    font-size: 13px;
    line-height: 20px;
    color: #2b3f5a
}

.TVRoomControl .TVRoomDescriptionNote {
    font-size: 12px;
    font-weight: 500;
    line-height: 20px;
    letter-spacing: 0;
    color: #2b3f5a;
    background-color: #edf2f5;
    opacity: .6;
    padding: 25px var(--horizontal-padding)
}

.TVRoomControl.TVPreview .TVRoomPhoto,.TVRoomControl.TVPreview .TVRoomTagsItemTVPreview,.TVRoomControl.TVPreview .TVRoomTitle {
    visibility: hidden;
    position: relative
}

.TVRoomControl.TVPreview .TVRoomPhoto:before,.TVRoomControl.TVPreview .TVRoomTagsItemTVPreview:before,.TVRoomControl.TVPreview .TVRoomTitle:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVRoomControl.TVPreview .TVRoomTitle {
    margin-left: var(--horizontal-padding);
    margin-right: 30%;
    width: 70%;
    height: 30px
}

.TVRoomControl.TVPreview .TVRoomDescription {
    display: none
}

.TVRoomControl.TVRoomColumnsDescription .TVRoomPhoto .TVGallery {
    height: 450px
}

.TVRoomControl.TVRoomColumnsDescription .TVRoomDescriptionBlock {
    display: flex;
    flex-direction: column;
    width: calc(50% - 50px);
    padding-right: 50px
}

.TVRoomWindow {
    width: 800px;
    box-shadow: 0 0 20px rgba(0,0,0,.3);
    border-radius: 5px;
    background-color: #fff;
    font-family: var(--tv-font-theme2)
}

.TVRoomWindow .TVRoomWindowData,.TVRoomWindow .TVRoomWindowError {
    min-height: 300px
}

.TVRoomWindow.TVRoomNoPhotoWindow {
    width: 360px
}

.TVRoomWindow .TVRoomWindowContent {
    padding-top: 25px
}

.TVRoomWindow .TVRoomWindowError {
    display: flex;
    align-items: center;
    justify-content: center
}

.TVRoomActionSheetContent,.TVRoomActionSheetData {
    display: flex;
    flex-direction: column;
    height: 100%
}

.TVRoomActionSheetTitle {
    font-size: 18px;
    font-weight: 600;
    line-height: 22px;
    letter-spacing: 0;
    color: #2b3f5a;
    text-transform: capitalize;
    padding: 25px 20px
}

.TVRoomActionSheetChildren {
    overflow: auto
}

.TVRoomActionSheetError {
    min-height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 20px;
    font-size: 16px;
    font-weight: 500
}

.TVShareControl .TVMobileResultBtn {
    color: #5c6672;
    background-color: #edf2f5;
    border: none;
    font-weight: 600;
    padding: 15px;
    line-height: 10px
}

.TVShareControl .TVMobileResultBtn.TVSharePictureShare {
    padding: 9px 15px
}

.TVShareControl .TVMobileResultBtn:hover {
    opacity: .9
}

.TVMobilePanel .TVShareControl .TVMobileResultBtn {
    padding: 15px
}

.TVMobilePanel .TVShareControl .TVMobileResultBtn.TVSharePictureShare {
    padding: 9px 15px
}

.TVShareMainPanel .TVShareMainPanelMessengerTitle,.TVShareMainPanel .TVShareMainPanelTitle {
    display: block;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -.48px;
    color: #333
}

.TVShareMainPanel .TVShareMainPanelTitle {
    margin-bottom: 20px
}

.TVShareMainPanel .TVShareMainPanelMessengerTitle {
    margin: 30px 0 20px
}

.TVShareMainPanel .TVShareButton {
    padding: 0;
    text-transform: none;
    text-decoration: none;
    justify-content: flex-start;
    font-size: 13px
}

.TVShareMainPanel .TVShareButton:not(.TVShareButtonWithSvg):before {
    content: "";
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #5c6672;
    border-radius: inherit;
    font-size: 22px;
    font-weight: 400;
    color: #fff;
    width: 40px;
    height: 40px;
    margin-right: 20px
}

.TVShareMainPanel .TVShareButton:after {
    content: ""
}

.TVShareMainPanel .TVShareButton:not(:last-child) {
    margin-bottom: 20px
}

.TVShareMainPanel .TVShareButton.TVSharePanelPicture:before {
    font-family: TVicons;
    content: "\f16d"
}

.TVShareMainPanel .TVShareButton.TVSharePanelWhatsapp:before {
    content: "";
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+PHBhdGggZD0iTTIwIDkuNzQyYTkuODM1IDkuODM1IDAgMDEtMTQuNTY0IDguNTNMMCAyMGwxLjc3Mi01LjIyN0E5LjY0IDkuNjQgMCAwMS4zNjMgOS43NDJhOS44MTkgOS44MTkgMCAwMTE5LjYzNyAwem0tOS44MTgtOC4xOWE4LjIzMiA4LjIzMiAwIDAwLTguMjU1IDguMTkgOC4xIDguMSAwIDAwMS41NzIgNC44bC0xLjAzMSAzLjA0NSAzLjE3Mi0xLjAwOWE4LjI2MyA4LjI2MyAwIDAwMTIuOC02LjgzNiA4LjIzMyA4LjIzMyAwIDAwLTguMjU4LTguMTl6bTQuOTU4IDEwLjQzNGMtLjA2MS0uMS0uMjIxLS4xNTktLjQ2MS0uMjc5cy0xLjQyNC0uNy0xLjY0NC0uNzc3LS4zODItLjEyLS41NDIuMTE5LS42MjIuNzc3LS43NjIuOTM2LS4yODEuMTgtLjUyMi4wNmE2LjU4NyA2LjU4NyAwIDAxLTEuOTM1LTEuMTg1IDcuMiA3LjIgMCAwMS0xLjM0LTEuNjUyYy0uMTQtLjIzOS0uMDE1LS4zNjguMTA2LS40ODdzLjI0MS0uMjc5LjM2MS0uNDE4YTEuNiAxLjYgMCAwMC4yNC0uNC40MzUuNDM1IDAgMDAtLjAyLS40MThjLS4wNi0uMTE5LS41NDItMS4yOTQtLjc0Mi0xLjc3M3MtLjQtLjQtLjU0MS0uNC0uMy0uMDItLjQ2MS0uMDJhLjg4OC44ODggMCAwMC0uNjQyLjMgMi42NyAyLjY3IDAgMDAtLjg0MiAxLjk5MiA0LjYyMSA0LjYyMSAwIDAwLjk4MyAyLjQ3IDkuODM4IDkuODM4IDAgMDA0LjExMSAzLjYwNWMyLjQ0Ny45NTYgMi40NDcuNjM3IDIuODg4LjZBMi40MzQgMi40MzQgMCAwMDE1IDEzLjEyMmExLjk5MSAxLjk5MSAwIDAwLjE0LTEuMTM2eiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==);
    background-repeat: no-repeat;
    background-position: 50%;
    background-color: #278b3e
}

.TVShareMainPanel .TVShareButton.TVSharePanelTG:before {
    content: "";
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNy44OSI+PHBhdGggZGF0YS1uYW1lPSJQYXRoIDMiIGQ9Ik0xNi4xIDE3Ljg5YS43OTIuNzkyIDAgMDEtLjQ0NC0uMTM2bC01LjAyOS0zLjQxMS0yLjY5NyAxLjk0YS43OTIuNzkyIDAgMDEtMS4yMy0uNDQxTDUuMzQ4IDEwLjcxLjUwOSA4Ljg2QS43OTIuNzkyIDAgMDEuNSA3LjM4NUwxOC45LjA2M2EuNzkyLjc5MiAwIDAxLjI1OS0uMDYuODI2LjgyNiAwIDAxLjEgMCAuNzg5Ljc4OSAwIDAxLjUwNy4yMjUuNTc3LjU3NyAwIDAxLjA0Mi4wNDQuNzg5Ljc4OSAwIDAxLjE5NC40NjMuOC44IDAgMDEwIC4xMjYuNzcuNzcgMCAwMS0uMDEzLjA5bC0zLjEwNiAxNi4zYS43OTIuNzkyIDAgMDEtLjc3OC42NDN6bS01LjAzMi01LjE2MWw0LjQ3OSAzLjAzOCAyLjQxNy0xMi42OC04LjcyOCA4LjQgMS44MTEgMS4yMjh6bS0zLjcyOC0uNjc2bC42IDIuMjczIDEuMjkyLS45My0xLjY5Mi0xLjE0OGEuNzg5Ljc4OSAwIDAxLS4yLS4xOTV6bS00LjM3LTMuOTVsMy4zMjMgMS4yN2EuNzkyLjc5MiAwIDAxLjQ4My41MzdsLjQyMSAxLjZhLjc5Mi43OTIgMCAwMS4yMzgtLjQ4OGw4LjMxNy04eiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==);
    background-repeat: no-repeat;
    background-position: 50%;
    background-color: #23ade0
}

.TVShareMainPanel .TVShareButton.TVSharePanelViber:before {
    content: "";
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMC40NDciPjxnIGZpbGw9IiNmZmYiPjxwYXRoIGRhdGEtbmFtZT0iVW5pb24gMSIgZD0iTTE1LjE2NSAyMC4xODFhMjYuMjIyIDI2LjIyMiAwIDAxLTExLjI4Ny04LjY3OXEtLjI2OS0uMzU5LS41MjMtLjcyQTI0LjE0MiAyNC4xNDIgMCAwMS4zNzMgNS4xMzVjLS40NjYtMS4yODYtLjQ4OS0xLjg0My0uMTA2LTIuNWE3LjQxMyA3LjQxMyAwIDAxMS4zODEtMS4zNDYgNC43NzQgNC43NzQgMCAwMTEuNTYtLjkzMyAxLjc5MiAxLjc5MiAwIDAxLjgyNy4wNzkgMi4yNjUgMi4yNjUgMCAwMS40LjIgMTYuMDI0IDE2LjAyNCAwIDAxMi45NDQgMy43NTkgMi4xIDIuMSAwIDAxLjMzNCAxLjQ1OWMtLjEwNS4zNzYtLjI4MS41NzQtMS4wNjQgMS4yLS4xODcuMTUxLS4zNjcuMzA1LS40OTIuNDE5bC0uMDE1LjAxM2ExLjI1IDEuMjUgMCAwMC0uMTQ4LjE1MiAxLjUzNCAxLjUzNCAwIDAwLS4yMTYuNzQ1IDUuNTY3IDUuNTY3IDAgMDAuODMgMi4zMiA5Ljk0NCA5Ljk0NCAwIDAwMS42NTkgMS45NTEgOS4xODIgOS4xODIgMCAwMDIuMTc4IDEuNTM4Yy45NjkuNDgxIDEuNTYuNiAxLjk5My40bC4wMTctLjAwOGExLjU1OSAxLjU1OSAwIDAwLjI0My0uMTM3Yy4wMzMtLjAzLjI4OC0uMzQuNTY1LS42ODNhMy41MDYgMy41MDYgMCAwMS43MTMtLjc2NSAxLjM0NSAxLjM0NSAwIDAxLjMxMi0uMTQzIDEuNzc1IDEuNzc1IDAgMDExLjQyMS4xMjljLjM2NC4xODggMS4xNTcuNjggMS42NjkgMS4wMzZhMjQuNyAyNC43IDAgMDEyLjMxIDEuODggMS41IDEuNSAwIDAxLjE3MSAxLjU2MiA3LjM1MSA3LjM1MSAwIDAxLTEuNzE2IDIuMmMtLjA0OS4wNDItLjEuMDgxLS4xNDQuMTE2bC0uMS4wNzVhMi45NTkgMi45NTkgMCAwMS0uOTY3LjUgMi4zNzcgMi4zNzcgMCAwMS0uNTIyLjA3OWMtLjA3MiAwLS4xMzcuMDA2LS4yLjAwNmEyLjQyOSAyLjQyOSAwIDAxLTEuMDQ1LS4yNTd6Ii8+PHBhdGggZGF0YS1uYW1lPSJVbmlvbiAyIiBkPSJNMTguNzYyIDEwLjM3NmExLjU4NyAxLjU4NyAwIDAxLS4xLS42ODMgMTIuMSAxMi4xIDAgMDAtLjE3Ny0xLjcxNiA3LjkgNy45IDAgMDAtMy4wNjctNS4xIDguMDUgOC4wNSAwIDAwLTQuNjQ3LTEuNjRjLS42MjgtLjAzMS0uNzM4LS4wNTQtLjg3OS0uMTYzQS42NDYuNjQ2IDAgMDE5Ljg2OC4xNWMuMTU2LS4xNDIuMjY1LS4xNjIuODAzLS4xNDUuMjgxLjAxLjY5NC4wNDIuOTE5LjA2OWE5LjIxNyA5LjIxNyAwIDAxMy4wNjMuOTA4QTguMzI4IDguMzI4IDAgMDExNy4xMiAyLjc2YTguMDEzIDguMDEzIDAgMDExLjY4NSAyLjMxNEExMS4wMzUgMTEuMDM1IDAgMDExOS44NzkgOS42Yy4wMjMuNTc3LjAwNy43MDYtLjEyNS44NzFhLjU3NS41NzUgMCAwMS0uNDU3LjIxMS42LjYgMCAwMS0uNTM1LS4zMDZ6bS0yLjE3Ny0uNzE2Yy0uMjU0LS4xMjktLjMzLS4zMzMtLjMzLS44ODhhNS4yODMgNS4yODMgMCAwMC0uNjA1LTIuNDU1QTUuMDEyIDUuMDEyIDAgMDAxMy44MDcgNC40YTYuMyA2LjMgMCAwMC0yLjU0MS0uNzYzLjg0MS44NDEgMCAwMS0uNjI1LS4yMzcuNi42IDAgMDEtLjA0OS0uNzQ2Yy4xNzEtLjI2Ny40MzUtLjMxIDEuMjI2LS4xOTFBNi4zOTQgNi4zOTQgMCAwMTE2LjM5NSA1LjJhNi41NjQgNi41NjQgMCAwMTEuMDUyIDIuOTI2IDUuNDc5IDUuNDc5IDAgMDEwIDEuMjI3Ljc1OC43NTggMCAwMS0uMy4zMjcuNTU4LjU1OCAwIDAxLS4yNC4wNDUuNzE0LjcxNCAwIDAxLS4zMjItLjA2NXptLTIuNDM0LS44NDVjLS4xNTgtLjExOS0uMjA4LS4yNDQtLjI0NC0uNTg0YTMuMTM0IDMuMTM0IDAgMDAtLjI1OC0xLjA2MiAxLjg3MiAxLjg3MiAwIDAwLTEuNjY0LTEuMDUzYy0uNDA3LS4wNDktLjUyOS0uMS0uNjYyLS4yNWEuNjE1LjYxNSAwIDAxLjE4NS0uOTI0LjcxMy43MTMgMCAwMS40NTYtLjA1MyA0LjQ3NiA0LjQ3NiAwIDAxLjU2Mi4wNjkgMy4xNTcgMy4xNTcgMCAwMTEuNTc2Ljc4NSAzLjI2NCAzLjI2NCAwIDAxLjk4MyAyLjA0NmMuMDg5LjU4Ny4wNTIuODE4LS4xNTUgMS4wMDlhLjU4NC41ODQgMCAwMS0uMzkyLjEzOS42MjkuNjI5IDAgMDEtLjM4Ny0uMTIyeiIvPjwvZz48L3N2Zz4=);
    background-repeat: no-repeat;
    background-position: 50%;
    background-color: #7c0791
}

.TVShareMainPanel .TVShareButton.TVSharePanelVK:before {
    font-family: TVicons;
    content: "\e929";
    background-color: #4580ac
}

.TVShareMainPanel .TVShareButton.TVSharePanelFB:before {
    font-family: TVicons;
    content: "\e927";
    background-color: #0b5595
}

.TVShareMainPanel .TVShareButtonContent {
    display: flex;
    align-items: center;
    border-radius: inherit
}

.TVShareMainPanel .TVShareButtonContent .TVShareButtonContentIconWrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #5c6672;
    border-radius: inherit;
    width: 40px;
    height: 40px;
    margin-right: 20px
}

.TVShareMainPanel .TVShareButtonContent .TVShareButtonContentIconWrapper svg {
    fill: #fff
}

.TVShareMainPanel .TVShareButtonLinkIcon {
    width: 18px;
    height: auto
}

.TVMobilePanel .TVShareMainPanel .TVMobileResultBtn.TVShareButton {
    padding: 0
}

.TVShareNewLinkPanel {
    display: flex;
    flex-direction: column
}

.TVShareNewLinkPanel .TVShareLinkPanelTitle {
    display: flex;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -.48px;
    color: #333;
    margin-bottom: 20px
}

.TVShareNewLinkPanel .TVShareLinkPanelTabs {
    margin-bottom: 15px
}

.TVShareNewLinkPanel .TVShareLinkPanelWaiter {
    margin-left: 10px
}

.TVShareNewLinkPanel .TVShareLinkPanelTextarea {
    resize: none;
    outline: none;
    width: 100%;
    min-width: 280px;
    height: 150px;
    padding: 10px 20px 10px 10px;
    color: #185584;
    font-size: 12px;
    box-sizing: border-box;
    background: #fefefe;
    border: 1px solid #ddd;
    border-radius: 4px 4px 0 0;
    line-height: 16px;
    margin: 0;
    box-shadow: none
}

.TVShareNewLinkPanel .TVShareLinkPanelCheckBox {
    padding: 15px 20px;
    border: 1px solid #ddd;
    border-top: none;
    border-radius: 0;
    text-transform: uppercase;
    font-weight: 600;
    font-size: 10px;
    color: #5c6672
}

.TVShareNewLinkPanel .TVShareLinkPanelCheckBox:last-child {
    border-radius: 0 0 4px 4px
}

.TVShareNewLinkPanel .TVShareLinkPanelCheckBox:before {
    margin-right: 15px
}

.TVShareNewLinkPanel .TVShareLinkPanelCheckBox.TVChecked:before {
    background-color: #31708f;
    border-color: #31708f
}

.TVShareNewLinkPanel .TVShareLinkPanelCopyBtn {
    order: 1;
    transition: color .1s linear,background-color .1s linear;
    margin-top: 20px
}

.TVShareNewLinkPanel .TVShareLinkPanelCopyBtn:before {
    font-family: TVicons;
    content: "\e94b";
    font-size: 17px;
    margin-right: 10px;
    font-weight: 500
}

.TVShareNewLinkPanel .TVShareLinkPanelCopyBtn:after {
    content: "Скопировать"
}

.TVShareNewLinkPanel .TVShareLinkPanelCopyBtn.TVCopyLinkSuccessMessage {
    color: #fff;
    background-color: #7fb762
}

.TVShareNewLinkPanel .TVShareLinkPanelCopyBtn.TVCopyLinkSuccessMessage:after {
    content: "Скопировано"
}

.TVShareNewLinkPanel .TVShareLinkPanelSendErrorBtn {
    order: 2;
    margin-top: 20px;
    padding: 12px 15px
}

.TVShareNewLinkPanel .TVShareLinkPanelSendErrorBtn:before {
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMC4wOTIiIGhlaWdodD0iMTcuOTg3Ij48cGF0aCBkYXRhLW5hbWU9ItCe0LHRitC10LTQuNC90LXQvdC40LUgMyIgZD0iTTIgMTcuOTg3YTIgMiAwIDAxLTEuNzM0LTNMOC4zMTIgMWExLjk4MSAxLjk4MSAwIDAxMS43MzQtMSAxLjk4MSAxLjk4MSAwIDAxMS43MzMgMWw4LjA0MyAxMy45ODhhMiAyIDAgMDEtMS43MzQgM3pNOS42MDkgMS43NUwxLjU2NiAxNS43MzhhLjQ4My40ODMgMCAwMDAgLjUuNDg0LjQ4NCAwIDAwLjQzMy4yNWgxNi4wODZhLjQ4NC40ODQgMCAwMC40MzMtLjI1LjQ4My40ODMgMCAwMDAtLjVMMTAuNDc1IDEuNzVhLjQ4My40ODMgMCAwMC0uNDMzLS4yNS40ODMuNDgzIDAgMDAtLjQzLjI1MXptLS4wMzIgMTMuMTI2YTEuMDU3IDEuMDU3IDAgMDEtLjI5Mi0uOCAxLjA2NCAxLjA2NCAwIDAxLjI4NS0uODA1IDEuMTU3IDEuMTU3IDAgMDEuODMyLS4yNzQgMS4xMjYgMS4xMjYgMCAwMS44MTYuMjggMS4wNjEgMS4wNjEgMCAwMS4yODkuOCAxLjA2MiAxLjA2MiAwIDAxLS4yOTIuNzkgMS4xIDEuMSAwIDAxLS44MTMuMjg5IDEuMTM2IDEuMTM2IDAgMDEtLjgyMi0uMjh6bS4wNTgtMi45NjdsLS4zMjQtNi4yaDIuMmwtLjMyNCA2LjJ6IiBmaWxsPSIjNWM2NjcyIi8+PC9zdmc+");
    background-repeat: no-repeat;
    margin-right: 7px;
    background-size: 100%;
    background-position: 50%;
    width: 17px;
    height: 16px
}

.TVShareNewLinkPanel .TVShareLinkPanelSendErrorBtn:after {
    content: "Cообщить об ошибке"
}

.TVShareWithoutDateHint {
    width: 360px
}

.TVSharePicturePanel .TVSharePictureTitle {
    color: #333
}

.TVSharePicturePanel .TVSharePictureTitle:before {
    content: "Предварительный просмотр";
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -.48px
}

.TVSharePicturePanel .TVSharePictureContent {
    display: flex;
    flex-direction: column
}

.TVSharePicturePanel .TVSharePictureGallery {
    width: 100%;
    height: 100%;
    user-select: none
}

.TVSharePicturePanel .TVSharePictureGallery .TVGallLeft,.TVSharePicturePanel .TVSharePictureGallery .TVGallRight {
    width: 30px;
    height: 60px;
    background-color: #fff;
    opacity: .8;
    text-shadow: none;
    top: 50%;
    transform: translateY(-50%)
}

.TVSharePicturePanel .TVSharePictureGallery .TVGallLeft:before,.TVSharePicturePanel .TVSharePictureGallery .TVGallRight:before {
    width: 18px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: #333
}

.TVSharePicturePanel .TVSharePictureGallery .TVGallRight {
    border-radius: 50px 0 0 50px
}

.TVSharePicturePanel .TVSharePictureGallery .TVGallRight:before {
    right: 5px
}

.TVSharePicturePanel .TVSharePictureGallery .TVGallLeft {
    border-radius: 0 50px 50px 0
}

.TVSharePicturePanel .TVSharePictureGallery .TVGallLeft:before {
    left: 0
}

.TVSharePicturePanel .TVSharePictureGallery.TVSharePictureGalleryLoading {
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite
}

.TVSharePicturePanel .TVSharePictureChangeActions:not(.TVHide)+.TVSharePictureActions {
    margin-top: 20px
}

.TVSharePicturePanel .TVSharePictureActionBtns {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between
}

.TVSharePicturePanel .TVSharePictureActionBtns>:not(:first-child) {
    margin-top: 20px
}

.TVSharePicturePanel .TVSharePictureChangeActions .TVSharePictureActionBtns {
    flex-wrap: nowrap
}

.TVSharePicturePanel .TVSharePictureChangeActions .TVSharePictureActionBtns>* {
    margin-top: 0
}

.TVSharePicturePanel .TVSharePictureChangeActions .TVSharePictureActionBtns>:not(:first-child) {
    margin-left: 10px
}

.TVSharePicturePanel .TVSharePictureChangeActions .TVSharePictureActionBtns>:not(:last-child) {
    margin-right: 10px
}

.TVSharePicturePanel .TVSharePictureChangeActions .TVSharePictureActionBtns>:first-child:last-child {
    width: 100%
}

.TVSharePicturePanel .TVMobileResultBtn:before {
    margin-right: 10px;
    font-weight: 500;
    font-size: 19px
}

.TVSharePicturePanel .TVSharePictureToggleSwitch {
    width: 50%
}

.TVSharePicturePanel .TVSharePictureChangeImg {
    box-sizing: border-box;
    width: 50%
}

.TVSharePicturePanel .TVSharePictureChangeImg:after {
    content: "Изменить фото"
}

.TVSharePicturePanel .TVSharePictureLoadImg {
    flex-basis: 100%
}

.TVSharePicturePanel .TVSharePictureLoadImg:before {
    font-family: TVicons;
    content: "\e94e"
}

.TVSharePicturePanel .TVSharePictureLoadImg:after {
    content: "Скачать"
}

.TVSharePicturePanel .TVSharePictureShare {
    flex-basis: 100%
}

.TVSharePicturePanel .TVSharePictureShare:before {
    content: "";
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMy44OTkiIGhlaWdodD0iMjEuNSI+PHBhdGggZD0iTTIzLjE1IDcuOTUxYS43OTIuNzkyIDAgMDEtLjIzOC41NjJsLTYuNCA2LjRhLjguOCAwIDAxLS41NjIuMjM4LjgwNS44MDUgMCAwMS0uOC0uOHYtMy4yaC0yLjhjLTUuMzg3IDAtOC45MjQgMS4wMzgtOC45MjQgNyAwIC41MTMuMDI1IDEuMDI1LjA2MiAxLjUzOC4wMTMuMi4wNjIuNDI1LjA2Mi42MjVhLjQuNCAwIDAxLS40LjQzNy40LjQgMCAwMS0uMzUtLjIxMyA2LjY4MyA2LjY4MyAwIDAxLS40NjItLjk1QTE1Ljg2NSAxNS44NjUgMCAwMS43NSAxMy45NTFhMTEuMjY5IDExLjI2OSAwIDAxLjY2Mi00LjE2MkMzLjE1IDUuNDc1IDguMjUgNC43NTEgMTIuMzUgNC43NTFoMi44di0zLjJhLjgwNS44MDUgMCAwMS44LS44Ljc5Mi43OTIgMCAwMS41NjIuMjM4bDYuNCA2LjRhLjguOCAwIDAxLjIzOC41NjJ6IiBmaWxsPSJyZ2JhKDI1NSwyNTUsMjU1LDApIiBzdHJva2U9IiM3MDcwNzAiIHN0cm9rZS13aWR0aD0iMS41Ii8+PC9zdmc+");
    background-repeat: no-repeat;
    background-position: 50%;
    background-size: 100%;
    width: 22px;
    height: 22px
}

.TVSharePicturePanel .TVSharePictureShare:after {
    content: "Поделиться"
}

.TVSharePicturePanel .TVSharePictureCopyText {
    flex-basis: 100%;
    transition: color .1s linear,background-color .1s linear
}

.TVSharePicturePanel .TVSharePictureCopyText:before {
    font-family: TVicons;
    content: "\e94b"
}

.TVSharePicturePanel .TVSharePictureCopyText:after {
    content: "Cкопировать описание"
}

.TVSharePicturePanel .TVSharePictureCopyText.TVLink:after {
    content: "Cкопировать ссылку"
}

.TVSharePicturePanel .TVSharePictureCopyText.TVCopyLinkSuccessMessage {
    color: #fff;
    background-color: #7fb762
}

.TVSharePicturePanel .TVSharePictureCopyText.TVCopyLinkSuccessMessage:after {
    content: "Описание скопировано"
}

.TVSharePicturePanel .TVSharePictureCopyText.TVCopyLinkSuccessMessage.TVLink:after {
    content: "Ссылка скопирована"
}

.TVSharePicturePanel .TVSharePictureShowHelp {
    margin-top: 20px
}

.TVSharePicturePanel .TVSharePictureShowHelp:before {
    font-family: TVicons;
    content: "\e923"
}

.TVSharePicturePanel .TVSharePictureShowHelp:after {
    content: "Как поделиться картинкой"
}

.TVSharePicturePanel .TVSharePictureTextarea {
    margin: 20px 0 0;
    resize: none;
    outline: none;
    width: 100%;
    min-width: 280px;
    height: 210px;
    padding: 10px 20px 10px 10px;
    color: #185584;
    font-size: 13px;
    box-sizing: border-box;
    background: #fefefe;
    border: 1px solid #ddd;
    border-radius: 4px;
    line-height: 18px
}

.TVSharePicturePanel .TVSharePictureHelp {
    margin-top: 20px;
    padding: 25px 30px;
    background-color: #e2f1fb;
    font-size: 13px;
    color: #31708f;
    border-radius: 10px
}

.TVSharePicturePanel .TVSharePictureHelp:before {
    font-weight: 700;
    display: block;
    margin-bottom: 3px;
    content: "Instagram, Вконтакте, Facebook, Telegram, Viber:"
}

.TVSharePicturePanel .TVSharePictureHelp:after {
    white-space: pre-wrap;
    display: block;
    content: "- скачайте картинку - кнопка “Скачать”\a- создайте пост или сообщение в соцсети или мессенджере\a- загрузите сохраненную картинку с компьютера\a- скопируйте и вставьте краткое описание"
}

.TVSharePicturePanel .TVMobileResultBtn.TVDisabled,.TVSharePicturePanel .TVSharePictureToggleSwitch.TVDisabled {
    opacity: .7;
    pointer-events: none;
    cursor: default
}

.TVSharePage.TVMobilePanel .TVMobilePanelCaption:before {
    content: "Поделиться"
}

.TVSharePage.TVMobilePanel .TVShareControl {
    padding: 20px
}

.TVSharePage.TVMobilePanel .TVSharePictureChangeActions {
    margin-top: 20px;
    order: -1
}

.TVSharePage.TVMobilePanel .TVSharePictureGallery {
    margin-top: 20px
}

.TVSharePage.TVMobilePanel .TVSharePictureGallery .TVGallery {
    height: 89vw
}

.TVSharePage.TVMobilePanel .TVSharePictureShowHelp {
    display: none
}

.TVShareWindow {
    width: 370px;
    box-shadow: 0 0 20px rgba(0,0,0,.3);
    border-radius: 20px;
    background-color: #fff;
    font-family: var(--tv-font-theme2);
    padding: 30px
}

.TVShareWindow.TVPictureShare {
    width: 820px
}

.TVShareWindow .TVSharePicturePanel .TVSharePictureContent {
    display: grid;
    grid-template-columns: 450px auto;
    grid-template-rows: 40px auto;
    grid-column-gap: 20px;
    margin-top: 20px
}

.TVShareWindow .TVSharePicturePanel .TVSharePictureGallery {
    min-height: 450px;
    grid-column: 1;
    grid-row: span 2
}

.TVShareWindow .TVSharePicturePanel .TVSharePictureGallery .TVGallery {
    height: 450px
}

.TVShareWindow .TVSharePicturePanel .TVSharePictureActions,.TVShareWindow .TVSharePicturePanel .TVSharePictureChangeActions {
    grid-column: 2;
    grid-row: auto
}

@keyframes tv-progress-preview-animation {
    to {
        background-position: 300% 0,0 0
    }
}

@-webkit-keyframes tv-progress-preview-animation {
    to {
        background-position: 300% 0,0 0
    }
}

@-moz-keyframes tv-progress-preview-animation {
    to {
        background-position: 300% 0,0 0
    }
}

@-o-keyframes tv-progress-preview-animation {
    to {
        background-position: 300% 0,0 0
    }
}

@keyframes tv-light-preview-animation {
    0%,to {
        opacity: .8
    }

    50% {
        opacity: .4
    }
}

@-webkit-keyframes tv-light-preview-animation {
    0%,to {
        opacity: .8
    }

    50% {
        opacity: .4
    }
}

@-moz-keyframes tv-light-preview-animation {
    0%,to {
        opacity: .8
    }

    50% {
        opacity: .4
    }
}

@-o-keyframes tv-light-preview-animation {
    0%,to {
        opacity: .8
    }

    50% {
        opacity: .4
    }
}

.TVTourRedirectionInfoControl {
    font-family: var(--tv-font-theme2)
}

.TVTourRedirectionInfoControl.TVPreview .TVTourRedirectionInfoLogo,.TVTourRedirectionInfoControl.TVPreview .TVTourRedirectionInfoToAddress,.TVTourRedirectionInfoControl.TVPreview .TVTourRedirectionInfoToName,.TVTourRedirectionInfoControl.TVPreview .TVTourRedirectionInfoToPhone {
    visibility: hidden;
    position: relative
}

.TVTourRedirectionInfoControl.TVPreview .TVTourRedirectionInfoLogo:before,.TVTourRedirectionInfoControl.TVPreview .TVTourRedirectionInfoToAddress:before,.TVTourRedirectionInfoControl.TVPreview .TVTourRedirectionInfoToName:before,.TVTourRedirectionInfoControl.TVPreview .TVTourRedirectionInfoToPhone:before {
    content: "";
    background-image: linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 50%,hsla(0,0%,100%,0)),linear-gradient(#d3d3d3,#d3d3d3);
    background-repeat: no-repeat;
    background-size: 50% 100%,100% 100%;
    background-position: -200% 0,0 0;
    animation: tv-progress-preview-animation 3s infinite;
    border-radius: 5px;
    opacity: .8;
    visibility: visible;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%)
}

.TVTourRedirectionInfoControl.TVPreview .TVTourRedirectionInfoToAddress,.TVTourRedirectionInfoControl.TVPreview .TVTourRedirectionInfoToName,.TVTourRedirectionInfoControl.TVPreview .TVTourRedirectionInfoToPhone {
    height: 22px
}

.TVTourRedirectionInfoControl.TVPreview .TVTourRedirectionInfoToName {
    width: 200px
}

.TVTourRedirectionInfoControl.TVPreview .TVTourRedirectionInfoToAddress {
    width: 250px
}

.TVTourRedirectionInfoControl.TVPreview .TVTourRedirectionInfoToPhone {
    width: 150px
}

.TVTourRedirectionInfoHeader {
    box-sizing: border-box;
    display: flex;
    background: #fff
}

.TVTourRedirectionInfoLogo {
    width: 160px;
    height: 45px;
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: contain
}

.TVTourRedirectionInfoTo>:not(:last-child) {
    margin-bottom: 3px
}

.TVTourRedirectionInfoToName {
    font-size: 14px;
    font-weight: 700;
    color: #333
}

.TVTourRedirectionInfoToAddress,.TVTourRedirectionInfoToPhone {
    font-size: 13px;
    color: #777
}

.TVTourRedirectionInfoContent {
    background: #edf2f5
}

.TVTourRedirectionInfoDescr {
    color: #5c6672;
    font-size: 13px;
    margin-bottom: 20px
}

.TVTourRedirectionInfoStep {
    display: flex;
    align-items: flex-start
}

.TVTourRedirectionInfoStep:not(:last-child) {
    margin-bottom: 20px
}

.TVTourRedirectionInfoStep>:not(:last-child) {
    margin-right: 15px
}

.TVTourRedirectionInfoStepOrder {
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    background: #5c6672;
    width: 30px;
    min-width: 30px;
    height: 30px;
    border-radius: 50%;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center
}

.TVTourRedirectionInfoStepContent>:not(:last-child) {
    margin-bottom: 5px
}

.TVTourRedirectionInfoStepTitle {
    font-size: 14px;
    font-weight: 700;
    color: #333
}

.TVTourRedirectionInfoStepSubtitle {
    font-size: 13px;
    color: #5c6672
}

.TVTourRedirectionInfoSubmit {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 80px;
    background: #5cb85c;
    border-radius: 30px;
    font-size: 13px;
    color: #fff;
    margin: 0 auto;
    box-sizing: border-box
}

.TVTourRedirectionInfoControl.TVMobile .TVTourRedirectionInfoHeader {
    flex-direction: column;
    min-height: 170px
}

.TVTourRedirectionInfoControl.TVMobile .TVTourRedirectionInfoHeader>:not(:last-child) {
    margin-bottom: 20px
}

.TVTourRedirectionInfoControl.TVMobile .TVTourRedirectionInfoLogo {
    margin-top: 0
}

.TVTourRedirectionInfoControl.TVMobile .TVTourRedirectionInfoSubmit {
    max-width: 400px
}

.TVTourRedirectionInfoControl.TVMobile .TVTourRedirectionInfoSteps {
    margin-bottom: 20px
}

.TVTourRedirectionInfoControl:not(.TVMobile) .TVTourRedirectionInfoHeader {
    min-height: 120px
}

.TVTourRedirectionInfoControl:not(.TVMobile) .TVTourRedirectionInfoHeader>:not(:last-child) {
    margin-right: 40px
}

.TVTourRedirectionInfoControl:not(.TVMobile) .TVTourRedirectionInfoLogo {
    margin-top: 10px
}

.TVTourRedirectionInfoControl:not(.TVMobile) .TVTourRedirectionInfoSubmit {
    width: 240px
}

.TVTourRedirectionInfoControl:not(.TVMobile) .TVTourRedirectionInfoSteps {
    margin-bottom: 40px
}

.TVTourRedirectionInfoWindow {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 2147483647!important;
    background: #9b9b9b;
    display: flex;
    justify-content: center;
    align-items: center
}

.TVTourRedirectionInfoWindowContent {
    width: 920px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #edf2f5;
    margin: 0 20px;
    box-shadow: 0 0 20px rgba(0,0,0,.4392156863);
    border-radius: 5px;
    overflow: hidden
}

.TVTourRedirectionInfoWindowContent .TVTourRedirectionInfoHeader {
    padding: 30px 15%
}

.TVTourRedirectionInfoWindowContent .TVTourRedirectionInfoContent {
    padding: 50px 15%
}

.TVTourRedirectionInfoPage.TVMobilePanel .TVMobilePanelCaption:before {
    content: ""
}

.TVTourRedirectionInfoPage.TVMobilePanel .TVMobilePanelBlock {
    height: 100%
}

.TVTourRedirectionInfoPage.TVMobilePanel .TVMobileHeaderWrapper,.TVTourRedirectionInfoPage.TVMobilePanel .TVMobilePanelFooter {
    display: none
}

.TVTourRedirectionInfoPage.TVMobilePanel .TVMobilePanelBody {
    height: 100%;
    padding: 20px;
    box-sizing: border-box;
    background: #edf2f5
}

.TVTourRedirectionInfoPage.TVMobilePanel .TVTourRedirectionInfoHeader {
    padding: 20px;
    border-radius: 10px
}

.TVTourRedirectionInfoPage.TVMobilePanel .TVTourRedirectionInfoContent {
    padding: 20px 0
}

.TVTourErrorRedirectionContent {
    width: 200px
}

.TVTourErrorRedirectionButton {
    border-radius: 30px;
    padding: 10px 0;
    text-transform: none;
    font-size: 13px
}

.TVErrorTourRedirectionSubtitle {
    display: flex;
    flex-direction: column
}

.TVErrorTourRedirectionSubtitle>:not(:last-child) {
    margin-bottom: 10px
}

.TVTourRedirectionContent {
    display: flex;
    align-items: flex-start;
    justify-content: center
}

.TVTourRedirectionContent>:not(:last-child) {
    margin-right: 50px
}

.TVTourRedirectionSeparator {
    margin-top: 15px;
    width: 100px
}

.TVTourRedirectionFrom,.TVTourRedirectionTo {
    display: flex;
    align-items: center;
    flex-direction: column;
    width: 200px
}

.TVTourRedirectionFrom>:not(:last-child),.TVTourRedirectionTo>:not(:last-child) {
    margin-bottom: 20px
}

.TVTourRedirectionFromLogo,.TVTourRedirectionToLogo {
    width: 160px;
    height: 45px;
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: contain;
    font-size: 14px;
    font-weight: 700;
    color: #333;
    display: flex;
    justify-content: center;
    align-items: center
}

.TVTourRedirectionControl.TVMobile .TVTourRedirectionContent {
    flex-direction: column;
    align-items: center
}

.TVTourRedirectionControl.TVMobile .TVTourRedirectionContent>:not(:last-child) {
    margin-right: 0;
    margin-bottom: 50px
}

.TVTourRedirectionControl.TVMobile .TVTourRedirectionSeparator {
    margin-top: 0
}

.TVTourRedirectionWindow {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 2147483647;
    background: #edf2f5;
    display: flex;
    justify-content: center;
    align-items: center
}

.TVTourRedirectionPage.TVMobilePanel .TVMobilePanelCaption:before {
    content: ""
}

.TVTourRedirectionPage.TVMobilePanel .TVMobileHeaderWrapper {
    display: none
}

.TVTourErrorRedirectionControl,.TVTourRedirectionControl {
    border-radius: 5px;
    background: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 25px;
    font-family: var(--tv-font-theme2)
}

.TVTourErrorRedirectionControl>:not(:last-child),.TVTourRedirectionControl>:not(:last-child) {
    margin-bottom: 60px
}

.TVTourErrorRedirectionControl.TVMobile,.TVTourRedirectionControl.TVMobile {
    padding: 20px
}

.TVTourErrorRedirectionControl.TVMobile>:not(:last-child),.TVTourRedirectionControl.TVMobile>:not(:last-child) {
    margin-bottom: 50px
}

.TVTourErrorRedirectionHeader,.TVTourRedirectionHeader {
    display: flex;
    flex-direction: column;
    justify-content: center
}

.TVTourErrorRedirectionHeader>:not(:last-child),.TVTourRedirectionHeader>:not(:last-child) {
    margin-bottom: 20px
}

.TVErrorTourRedirectionTitle,.TVTourRedirectionTitle {
    font-size: 18px;
    font-weight: 800;
    color: #333;
    text-align: center
}

.TVErrorTourRedirectionInfo,.TVErrorTourRedirectionSubtitleItem,.TVTourRedirectionFromInfo,.TVTourRedirectionSubtitle,.TVTourRedirectionToInfo {
    font-size: 13px;
    color: #5c6672;
    text-align: center
}

.TVHotelReviewsPanel {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsAdd,.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsMore,.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsTophotels,.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsTourvisor,.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsTripadvisor {
    font-weight: 600
}

.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsMore,.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsTophotels,.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsTourvisor,.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsTripadvisor {
    margin-top: 20px
}

.TVHotelReviewsPanel.TVStyleTheme2 .TVHotelReviewsTopButtons {
    display: flex
}

.TVHotelReviewsPanel.TVStyleTheme2 .TVHotelAddReviewForm,.TVHotelReviewsPanel.TVStyleTheme2 .TVHotelReviewsListControl {
    width: 100%
}

.TVHotelReviewsPanel.TVStyleTheme2 .TVReviewTitleContainer {
    justify-content: flex-start
}

.TVHotelReviewsPanel.TVStyleTheme2 .TVReviewName {
    margin-right: 20px;
    font-size: 14px
}

.TVHotelReviewsPanel.TVStyleTheme2 .TVReviewStar:before {
    font-size: 13px
}

.TVHotelReviewsPanel.TVStyleTheme2 .TVReviewContent,.TVHotelReviewsPanel.TVStyleTheme2 .TVReviewShowAll {
    font-size: 14px;
    line-height: 24px
}

.TVHotelReviewsPanel.TVStyleTheme2 .TVHotelReviewsAdd,.TVHotelReviewsPanel.TVStyleTheme2 .TVHotelReviewsTophotels,.TVHotelReviewsPanel.TVStyleTheme2 .TVHotelReviewsTourvisor,.TVHotelReviewsPanel.TVStyleTheme2 .TVHotelReviewsTripadvisor {
    width: 192px;
    box-sizing: border-box
}

.TVHotelReviewsPanel.TVStyleTheme2 .TVHotelReviewsAdd:not(:first-child),.TVHotelReviewsPanel.TVStyleTheme2 .TVHotelReviewsTophotels:not(:first-child),.TVHotelReviewsPanel.TVStyleTheme2 .TVHotelReviewsTourvisor:not(:first-child),.TVHotelReviewsPanel.TVStyleTheme2 .TVHotelReviewsTripadvisor:not(:first-child) {
    margin-left: 15px
}

.TVHotelReviewsPanel.TVStyleTheme2 .TVHotelReviewsMore {
    width: 300px;
    margin: 20px auto 0
}

.TVHotelReviewsPanel.TVStyleTheme2 .TVUpButton {
    margin-top: 20px
}

@media screen and (min-width: 680px) {
    .TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsTopButtons {
        display:flex;
        flex-wrap: wrap;
        justify-content: center
    }

    .TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsListControl {
        width: 100%
    }

    .TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsAdd,.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsMore,.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsTophotels,.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsTourvisor,.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsTripadvisor {
        max-width: 200px
    }

    .TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsAdd,.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsTophotels,.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsTourvisor,.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsTripadvisor {
        width: 33%
    }

    .TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsTophotels,.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsTourvisor,.TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsTripadvisor {
        margin-top: 0;
        margin-left: 20px
    }

    .TVHotelReviewsPanel.TVStyleTheme1 .TVHotelReviewsMore {
        margin: 20px auto 0
    }
}

.TVHotelReviewsForm {
    --message-color: #777;
    display: flex;
    flex-direction: column;
    gap: 20px
}

.TVHotelReviewsForm .TVHotelReviewsFormTitle {
    margin-bottom: 20px
}

.TVHotelReviewsForm .TVHotelReviewsFormFields {
    display: flex;
    flex-direction: column;
    gap: 15px
}

.TVHotelReviewsForm .TVHotelReviewsFormFieldsFooter,.TVHotelReviewsForm .TVHotelReviewsFormFieldsHeader {
    display: flex;
    gap: 15px
}

.TVHotelReviewsForm .TVHotelReviewsFormFieldsHeader.TVAxisDirection-Column {
    flex-direction: column
}

.TVHotelReviewsForm .TVHotelReviewsFormFieldsHeader.TVAxisDirection-Row {
    align-items: center;
    flex-direction: row
}

.TVHotelReviewsForm .TVHotelReviewsFormFieldsHeader.TVAxisDirection-Row .TVHotelReviewsFormFieldsName {
    width: 45%
}

.TVHotelReviewsForm .TVHotelReviewsFormFieldsHeader.TVAxisDirection-Row .TVHotelReviewsFormFieldsStars {
    width: 55%
}

.TVHotelReviewsForm .TVHotelReviewsFormFieldsFooter .TVHotelReviewsFormFieldsMonth {
    width: 45%
}

.TVHotelReviewsForm .TVHotelReviewsFormFieldsFooter .TVHotelReviewsFormFieldsYear {
    width: 55%
}

.TVHotelReviewsForm .TVHotelReviewsFormAgreement,.TVHotelReviewsForm .TVHotelReviewsFormSubmit {
    margin-top: 20px
}

.TVHotelReviewsForm .TVHotelReviewsFormFieldsStars {
    border: 1px solid #ddd;
    border-radius: 8px;
    overflow: hidden;
    padding: 4px 0
}

.TVHotelReviewsForm .TVHotelReviewsFormBlockMessage {
    color: var(--message-color);
    font-size: 13px
}

.TVHotelReviewItemControl .TVReviewTitleContainer {
    display: flex;
    justify-content: space-between
}

.TVHotelReviewItemControl .TVReviewName {
    color: #333;
    font-size: 13px;
    line-height: 18px;
    font-weight: 700
}

.TVHotelReviewItemControl .TVReviewRate {
    display: flex
}

.TVHotelReviewItemControl .TVReviewStar:before {
    display: block;
    font-family: TVicons;
    content: "\e90c";
    font-size: 10px;
    line-height: 18px;
    color: #ddd
}

.TVHotelReviewItemControl .TVReviewStar.TVStarEnable:before {
    color: #eaa627
}

.TVHotelReviewItemControl .TVReviewContent,.TVHotelReviewItemControl .TVReviewShowAll {
    font-size: 13px;
    line-height: 18px
}

.TVHotelReviewItemControl .TVReviewContentWrapper {
    margin-top: 12px;
    color: #5c6672
}

.TVHotelReviewItemControl .TVReviewContentWrapper.TVReviewAll {
    overflow: hidden;
    max-height: 145px
}

.TVHotelReviewItemControl .TVReviewNegative:before,.TVHotelReviewItemControl .TVReviewPositive:before {
    margin-right: 5px;
    text-decoration: underline
}

.TVHotelReviewItemControl .TVReviewPositive:before {
    content: "Плюсы:"
}

.TVHotelReviewItemControl .TVReviewNegative:before {
    content: "Минусы:"
}

.TVHotelReviewItemControl .TVReviewShowAll {
    text-decoration: underline;
    color: #4b90d5;
    cursor: pointer
}

.TVHotelReviewsListControl {
    margin-top: 20px
}

.TVHotelReviewsListControl .TVHotelReviewItemControl:not(:first-child) {
    margin-top: 20px;
    border-top: 1px dashed #ddd;
    padding-top: 20px
}

.TVHotelReviewsListControl .TVHotelReviewItemControl:last-child {
    border-bottom: 1px dashed #ddd;
    padding-bottom: 20px
}

.TVHotelReviewsSummary {
    --content-line-height: 24px;
    border-radius: 8px;
    background-color: #edf2f5;
    padding: 24px
}

.TVHotelReviewsSummary .TVHotelReviewsSummaryHeader:after {
    content: "";
    display: block;
    border-top: 1px dashed #ddd;
    margin-top: 20px
}

.TVHotelReviewsSummary .TVHotelReviewsSummaryHeaderContent {
    display: flex;
    align-items: center
}

.TVHotelReviewsSummary .TVHotelReviewsSummaryTitle {
    color: #5c6672;
    font-size: 13px;
    font-style: normal;
    font-weight: 400;
    line-height: 18px
}

.TVHotelReviewsSummary .TVHotelReviewsSummaryLogo {
    margin-left: auto;
    padding-left: 10px
}

.TVHotelReviewsSummary .TVHotelReviewsSummaryContent {
    color: #5c6672;
    font-size: 13px;
    font-style: normal;
    font-weight: 400;
    line-height: var(--content-line-height)
}

.TVHotelReviewsFormWindow {
    background: #fff;
    border-radius: 10px;
    max-width: 700px;
    min-width: 700px;
    overflow: hidden;
    padding: 20px
}

.TVHotelReviewsFormPageContent {
    padding: 20px
}

.TVHotelReviewsFormPageTitle {
    margin-bottom: 20px
}

.TVHotelReviewsItemPage .TVHotelReviewsItemPageTitle {
    padding: 20px 20px 10px
}

.TVHotelReviewsItemPage .TVHotelReviewItemControl {
    margin: 0 20px 20px;
    padding-top: 20px;
    border-top: 1px solid #ddd
}

.TVHotelReviewsItemPage .TVReviewName {
    font-size: 16px
}

.TVHotelReviewsItemPage .TVReviewStar:before {
    font-size: 13px
}
