/*================================
|    Global re-usable classes    |
================================*/
/* Display */
.tf-d-b {
    display: block !important;
}
.tf-d-g {
    display: grid !important;
}
.tf-d-f {
    display: flex !important;
}
.tf-d-i {
    display: inline !important;
}
.tf-d-ib {
    display: inline-block !important;
}
.tf-d-ig {
    display: inline-grid !important;
}
.tf-d-if {
    display: inline-flex !important;
}
.tf-d-n {
    display: none !important;
}
/* Position */
.tf-p-a {
    position: absolute !important;
}
.tf-p-f {
    position: fixed !important;
}
.tf-p-r {
    position: relative !important;
}
/* Align */
.tf-t-l {
    text-align: left !important;
}
.tf-t-c {
    text-align: center !important;
}
.tf-t-r {
    text-align: right !important;
}
.tf-t-j {
    text-align: justify !important;
}

/*================================
|            Common              |
================================*/
.tf-nothing-found {
    font-size: 24px;
    font-weight: normal;
    color: #333;
    text-align: center;
    margin: 20% 0 20% 0;
}
.fancybox-container {
    z-index: 999999;
}

/**
 * tf-tooltip
 */
.tf-tooltip {
    position:relative;
}
.tf-tooltip .tf-top {
    top: -20px;
    left: 50%;
    transform: translate(-50%, -74%);
    padding: 10px 10px;
    color: #FFFFFF;
    background-color: #333333;
    font-weight: normal;
    font-size: 12px;
    border-radius: 4px;
    position: absolute;
    z-index: 99999999;
    box-sizing: border-box;
    border: 1px solid #333333;
    box-shadow: 0 1px 8px transparent;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.8s;
    text-align: center;
    line-height: 1;
    white-space: nowrap;
}
.tf-tooltip:hover .tf-top {
    visibility:visible; opacity:1;
}
.tf-tooltip .tf-top i.tool-i {
    position:absolute;
    top:100%;
    left:50%;
    margin-left:-12px;
    width:24px;
    height:12px;
    overflow:hidden;
}
.tf-tooltip .tf-top i.tool-i::after {
    content:'';
    position:absolute;
    width:12px;
    height:12px;
    left:50%;
    transform:translate(-50%,-50%) rotate(45deg);
    background-color:#333333;
    border:1px solid #333333;box-shadow:0 1px 8px transparent;
}
/*================================
|            Tour CSS           |
================================*/
/**
 * Sinlge tour
 * Full Width
 */
/* Star rating */
.tf-single-rating {
    position: absolute;
    left: 0;
    top: 0;
    line-height: 1;
    color: #333;
    font-size: 16px;
    cursor: pointer;
    z-index: 999;
    display: flex;
    align-items: center;
    background: rgba(19, 55, 116, 0.24);
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-sizing: border-box;
    padding: 8px;
    color: #fff;
    border-radius: 8px;
}
.tf-single-rating i {
    font-size: 14px;
    color: #FFCD3D;
}
.tf-single-rating span {
    margin: 0 3px 0 5px;
    font-weight: 600;
    font-size: 18px;
}

/* Pricing */
.tf-single-tour-pricing {
    width: 200px;
}
.tf-single-tour-pricing .tf-price{
    font-weight: 400;
    font-size: 16px;
    line-height: 1;
    color: #9696A0;
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
    justify-content: center;
}
.tf-single-tour-pricing .tf-price span.sale-price{
    font-weight: 600;
    font-size: 24px;
    line-height: 1;
    color: #133774;
    margin: 0 8px 0 0;
}
.tf-single-tour-pricing .tf-price-tab{
    list-style: none;
    display: flex;
    line-height: 1;
    font-size: 14px;
    font-weight: 600;
    color: #5A5B6A;
    flex-direction: row;
    justify-content: space-evenly;
    margin: 10px 0 0 0;
    border: 1px solid #D8E6FF;
    box-sizing: border-box;
    border-radius: 8px 8px 8px 8px;
    cursor: pointer;
}
.tf-single-tour-pricing .tf-price-tab li{
    padding: 0;
    width: 100%;
    text-align: center;
    height: 36px;
    justify-content: center;
    align-content: center;
    display: flex;
    align-items: center;
    transition: 0.3s;
}
.tf-single-tour-pricing .tf-price-tab li:hover{
    color: #133774;
    background: #F5F8FF;
}
.tf-single-tour-pricing .tf-price-tab li:nth-child(2){
    border-left: 1px solid #D8E6FF;
}
.tf-single-tour-pricing .tf-price-tab li:nth-child(3){
    border-left: 1px solid #D8E6FF;
}
.tf-single-tour-pricing  .tf-price-tab li.active{
    color: #133774;
    background: #D8E6FF;
}

/* Related tour */
.tf-suggestion-item {
    background-position: center center;
}

/*================================
|            Hotel CSS           |
================================*/
.tf_room-table .availability-table tbody tr:nth-child(odd) td{
    background: #fff;
}

/* the slides */
.slick-slide {
    margin-left: 5px !important;
    margin-right: 5px !important;
}

/* the parent */
.slick-list {
    margin-left: -5px !important;
    margin-right: -5px !important;
}

/** 
 * TF Hotel Sidebar Booking
 */
.tf-hotel-side-booking .tf_form-inner {
    position: relative;
    display: grid;
    padding: 0 0 0 0;
    background: #fff;
    grid-template-columns: 38px auto;
    align-items: center;
    justify-items: center;
}
.tf-hotel-side-booking .tf_form-inner i{
    color: #bfbfbf;
    font-size: 16px;
}

/**
 * Room table 
 */
.hotel-room-wrap {
    width: 100%;
}

.tf_room-table th.description {
    border-top: 1px solid #f2f2f2;
    border-left: 1px solid #f2f2f2;
    border-bottom: 1px solid #f2f2f2;
    border-right: 1px solid #f2f2f2;
}
.tf_room-table th.pax {
    border-top: 1px solid #f2f2f2;
    border-bottom: 1px solid #f2f2f2;
    text-align: center;
}
.tf_room-table th.pricing {
    border-top: 1px solid #f2f2f2;
    border-left: 1px solid #f2f2f2;
    border-bottom: 1px solid #f2f2f2;
    text-align: center;
}
.tf_room-table th.reserve {
    border-top: 1px solid #f2f2f2;
    border-right: 1px solid #f2f2f2;
    border-left: 1px solid #f2f2f2;
    border-bottom: 1px solid #f2f2f2;
    text-align: center;
}

.tf_room-table td.description {
    border-left: 1px solid #f2f2f2;
    border-bottom: 1px solid #f2f2f2;
    border-right: 1px solid #f2f2f2;
}
.tf_room-table td.pax {
    border-bottom: 1px solid #f2f2f2;
    min-width: 80px;
}
.tf_room-table td.pricing {
    border-left: 1px solid #f2f2f2;
    border-bottom: 1px solid #f2f2f2;
}
.tf_room-table td.reserve {
    border-right: 1px solid #f2f2f2;
    border-left: 1px solid #f2f2f2;
    border-bottom: 1px solid #f2f2f2;
}

/**
 * Hotel Room Details
 */
.room-detail-icon {
    text-align: center;
    margin: 15px 0 0 0;
}
.room-detail-icon .room-icon-wrap{
    border: 1px solid #eaeef3;
    border-radius: 5px;
    padding: 8px 10px 4px 10px;
}
.room-detail-icon  .room-icon-wrap i{
    font-size: 18px;
    color: #5e6d77;
}
.room-detail-icon .icon-text{
    font-size: 14px;
    color: #5e6d77;
}

.hotel-room-availability, .hotel-room-book {
    background: #003162;
    color: #fff;
    text-decoration: none;
    display: inline-block;
    text-align: center;
    font-size: 12px;
    border: 1px solid #003162;
    border-radius: 2px;
    padding: 6px 12px;
    white-space: nowrap;
}
#hotel-room-selected {
    width: 50%;
    height: 30px;
    text-align: center;
    border: 1px solid #ddd;
    border-radius: 3px;
    color: #333;
    outline: none;
    padding: 0;
}

.tf-hotel-side-booking #check-in-out-date {
    font-size: 13px;
    min-width: 150px;
    padding: 0;
}

/*================================
|          Review CSS            |
================================*/
:root {
    --tf-star-filled-color: #FFC314;
    --tf-star-border: #E1E1E3;
    --tf-star: "\f005";
    --tf-star-size: 22px;
}
/**
 * Review Form
 */
.tf-review-form-container {
    min-width: 600px;
    padding: 0 !important;
    margin: 0 !important;
    background: #fff !important;
}
.tf-review-form-container .logged-in-as {
    display: none;
}
.tf-review-form-container .tf-rating-wrapper{
    display: grid;
    grid-template-columns: calc(50% - 20px) calc(50% - 20px);
    column-gap: 40px;
    row-gap: 15px;
    margin: 0 0 80px 0;
}
.tf-review-form-container .tf-rating-wrapper .tf-form-single-rating {
    display: grid;
    grid-template-columns: auto auto;
    justify-content: space-between;
    align-items: center;
    column-gap: 20px;
}
.tf-review-form-container .tf-form-single-rating .error{
    color: red;
}
.tf-review-form-container .tf-rating-wrapper .tf-form-single-rating label{
    color: #333;
    font-style: normal;
    font-weight: 500;
    font-size: 16px;
    line-height: 1;
    text-transform: capitalize;
}
.tf-review-form-container .tf-form-single-rating .ratings-container {
    line-height: 1;
    unicode-bidi: bidi-override;
    direction: rtl;
}
.tf-review-form-container .tf-form-single-rating .ratings-container.star10 {
    width: 220px;
}
.tf-review-form-container .tf-form-single-rating .ratings-container.star5 {
    width: 110px;
}
.tf-review-form-container .tf-form-single-rating .ratings-container label{
    padding: 0;
    margin: 0;
    height: auto;
    line-height: 1;
    color: transparent;
}
.tf-review-form-container .tf-form-single-rating .ratings-container > input {
    display: none;
}
.tf-review-form-container .ratings-container > input + label {
    text-indent: -9999px;
    font-family: "Font Awesome 5 Free";
    display: inline-block;
    overflow: hidden;
    width: var(--tf-star-size);
    white-space: nowrap;
    cursor: pointer;
    color: transparent;
}
.tf-review-form-container .ratings-container > .star-cb-clear + label,
.tf-review-form-container .ratings-container > input + label:before {
    text-indent: 9999px;
}
.tf-review-form-container .ratings-container > input + label:before {
    display: inline-block;
    content: var(--tf-star);
    color: var(--tf-star-border);
    font-size: 18px;
}
.tf-review-form-container .ratings-container > input:checked ~ label:before,
.tf-review-form-container .ratings-container > input + label:hover ~ label:before,
.tf-review-form-container .ratings-container > input + label:hover:before {
    content: var(--tf-star);
    color: var(--tf-star-filled-color);
    font-weight: 900;
}

.tf-review-form-container .ratings-container > .star-cb-clear + label {
    text-indent: -9999px;
    width: 0.5em;
    margin-left: -0.5em;
}

.tf-review-form-container .ratings-container > .star-cb-clear + label:before {
    width: 0.5em;
}

.tf-review-form-container .ratings-container:hover > input + label:before {
    content: var(--tf-star);
    color: var(--tf-star-border);    
}

.tf-review-form-container .ratings-container:hover > input + label:hover ~ label:before,
.tf-review-form-container .ratings-container:hover > input + label:hover:before {
    content: var(--tf-star);
    color: var(--tf-star-filled-color);
    font-weight: 900;
}
.tf-review-form-container .review-desc textarea{
    background: #F7F7FA;
    border: 1px solid #EDEDF0;
    border-radius: 8px;
    padding: 16px 8px 16px 16px;
    height: 160px;
    outline: none;
    color: #333;
    box-shadow: none;
    width: 100%;
}
.tf-review-form-container .tf-visitor-info{
    display: grid;
    grid-template-columns: calc(50% - 20px) calc(50% - 20px);
    column-gap: 40px;
    margin: 40px 0 0 0;
}
.tf-review-form-container .tf-visitor-info input{
    background: #F7F7FA;
    border: 1px solid #EDEDF0;
    box-sizing: border-box;
    border-radius: 8px;
    height: 56px;
    padding: 16px 8px 16px 16px;
    outline: none;
    color: #333;
    box-shadow: none;
    width: 100%;
}
.tf-review-form-container .tf-visitor-info .error{
    color: red;
}
.tf-review-form-container .tf-review-submit{
    margin: 40px 0 0 0;
}
.tf-review-form-container .tf-review-submit input[type="submit"]{
    background: #2979FF;
    border-radius: 4px;
    height: 56px;
    padding: 16px 32px;
    width: 100%;
    color: #fff;
    font-style: normal;
    font-weight: 500;
    font-size: 16px;
    line-height: 1;
    border: none;
}

/**
 * Review Block
 */
.tf-review-container .no-comments {
    display: none;
}
.tf-review-container .tf-total-review {
    display: grid;
    grid-template-columns: auto auto;
    justify-content: space-between;
    align-items: center;
    margin: 0 0 25px 0;
}
.tf-review-container .tf-total-review .tf-total-average {
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
}
.tf-review-container .tf-total-review .tf-total-average div {
    width: 60px;
    height: 60px;
    background: #4F91FF;
    border-radius: 8px;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    padding: 16px;
    color: #FFFFFF;
    font-weight: 600;
    font-size: 24px;
    line-height: 32px;
}
.tf-review-container .tf-total-review .tf-total-average span {
    color: #9696A0;
    font-style: normal;
    font-weight: 400;
    font-size: 16px;
    line-height: 24px;
    margin: 0px 16px;
}
.tf-review-container button {
    color: #2979FF;
    font-style: normal;
    font-weight: 400;
    font-size: 16px;
    line-height: 24px;
    background: #EBF2FF;
    border: 1px solid #2979FF;
    box-sizing: border-box;
    border-radius: 4px;
    padding: 8px 16px;
    outline: none;
}
.tf-review-container button i{
    font-size: 14px;
}
.tf-review-container .tf-review-progress-bar {
    background: #F7F7FA;
    display: grid;
    grid-template-columns: calc(50% - 20px) calc(50% - 20px);
    column-gap: 40px;
    row-gap: 20px;
    padding: 24px;
    border: 1px solid #EDEDF0;
    box-sizing: border-box;
    border-radius: 8px;
    margin: 0 0 25px 0;
}
.tf-review-container .tf-review-progress-bar .tf-single {
    display: grid;
    grid-template-columns: calc(50% - 15px) calc(50% - 15px) 30px;
    align-items: center;
}
.tf-review-container .tf-review-progress-bar .tf-single .tf-text{
    text-align: left;
    color: #5A5B6A;
    font-style: normal;
    font-weight: 400;
    font-size: 14px;
    line-height: 1;
    text-transform: capitalize;
}
.tf-review-container .tf-review-progress-bar .tf-single .tf-p-bar{
    width: 100%;
    height: 7px;
    background: #D8E6FF;
    border-radius: 7px;
    position: relative;
    overflow: hidden;
}
.tf-review-container .tf-review-progress-bar .tf-single .tf-p-bar .percent-progress {
    position: absolute;
    width: 0;
    background-color: #76A9FF;
    height: 100%;
    transition: width 1s ease-in-out;
  }
.tf-review-container .tf-review-progress-bar .tf-single .tf-p-b-rating{
    text-align: right;
    font-style: normal;
    font-weight: 500;
    font-size: 14px;
    line-height: 1;
    color: #5A5B6A;
}
.tf-review-container .no-review {
    text-align: center;
}
/**
 * Individual Single Review
 */
.tf-single-review {
    display: grid;
    grid-template-columns: calc(50% - 10px) calc(50% - 10px);
    column-gap: 20px;
    row-gap: 40px;
}
.tf-single-review .tf-single-details {
    display: grid;
    grid-template-columns: 56px calc(100% - 72px);
    column-gap: 16px;
}
.tf-single-review .tf-review-avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    overflow: hidden;
}
.tf-single-review .tf-review-details .tf-name {
    font-style: normal;
    font-weight: 500;
    font-size: 18px;
    line-height: 1;
    color: #3A3A44;
    margin: 0 0 8px 0;
    text-transform: capitalize;
}
.tf-single-review .tf-review-details .tf-date {
    font-style: normal;
    font-weight: 400;
    font-size: 12px;
    line-height: 1;
    color: #5A5B6A;
    letter-spacing: 0.2px;
    margin: 0 0 8px;
}
.tf-single-review .tf-review-details .tf-rating-stars {
    display: grid;
    grid-template-columns: auto auto;
    column-gap: 5px;
    align-items: center;
    justify-content: start;
    line-height: 1;
}
.tf-single-review .tf-review-details .tf-rating-stars i{
    color: #FFBF00;
    font-size: 10px;
    height: 14px;
}
.tf-single-review .tf-review-details .tf-description {
    font-style: normal;
    font-weight: 400;
    font-size: 14px;
    line-height: 22px;
    color: #5A5B6A;
    margin: 8px 0 0 0;
}

.tf-review-pending {
    text-align: center;
    font-size: 16px;
    font-style: italic;
    font-weight: normal;
    background: #FFF4A3;
    border-radius: 4px;
    padding: 10px 10px;
    color: #333;
    margin: 30px 0 10px 0;
}


/*================================
|         Wishlist CSS           |
================================*/
.wish-button {
    background: #f1fbf3;
    color: #333;
    font-weight: 600;
    font-size: 12px;
    line-height: 1;
    padding: 5px 7px;
    border-radius: 2px;
    margin: 0;
    transition: 0.3s;
}
.tf-wishlists .remove-wishlist {
    cursor: pointer;
}
.wish-button:hover {
    background: #333;
    color: #f1fbf3;
}
.tf-wishlist-button {
    font-size: 24px;
    cursor: pointer;
    margin: 0 5px 0 0;
    line-height: 1;
    color: #333;
}
.single-tour-wish-bt {
    position: absolute;
    right: 0;
    top: 0;
    line-height: 1;
    color: #333;
    font-size: 24px;
    cursor: pointer;
    z-index: 999;
}
/* Table Skeleton Loader */
.tf-text-preloader {
    position: relative;
}
.tf-text-preloader .tf-bar {
    background-color: #E7E7E7;
    height: 14px;
    border-radius: 7px;
    width: 80%;
}
.tf-text-preloader:after {
    position: absolute;
    transform: translateY(-50%);
    top: 50%;
    left: 0;
    content: "";
    display: block;
    width: 100%;
    height: 24px;
    background-image: linear-gradient(100deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 80%);
    background-size: 200px 24px;
    background-position: -100px 0;
    background-repeat: no-repeat;
    animation: tfTextLoader 1s infinite;
}
@keyframes tfTextLoader {
    0% {
        background-position: 100% 0;
      }
    25% {
        background-position: 80% 0;
      }
    50% {
    background-position: 60% 0;
    }
    75% {
      background-position: 40% 0;
    }
    100% {
      background-position: 20% 0;
    }
}

/* center text */
.tf-text-center{
    text-align: center;
}
.tf-text-red{
      color: #c00;
}

/*================================
|            Archive CSS         |
================================*/
.tf-archive-rating {
    width: 40px;
    height: 40px;
    line-height: 1;
    background: #133774;
    border-radius: 8px;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}
.tf-archive-rating span{
    font-weight: 600;
    font-size: 14px;
    color: #FFFFFF;
}

/*================================
|            Search Form CSS     |
================================*/
/* Auto complete */
.tf_form-inner .autocomplete-items {
    position: absolute;
    border: 1px solid #d4d4d4;
    border-bottom: none;
    border-top: none;
    z-index: 99;
    /*position the autocomplete items to be the same width as the container:*/
    top: 100%;
    left: 0;
    right: 0;
}
.tf_form-inner .autocomplete-items div {
    padding: 10px;
    cursor: pointer;
    background-color: #fff; 
    border-bottom: 1px solid #d4d4d4;
    color: #444;
}
.tf_form-inner .autocomplete-items div:hover {
    background-color: #e9e9e9; 
}  
.tf_booking-widget .tf_form-row .tf_button {
      padding: 15px 20px;
      width: 100%;
}
.single-tour-inner .tf_button {
      padding: 15px 20px;
      border-radius: 8px;
}

/* Horizontal Search Form */
.tf_booking-widget #check-in-out-date {
    font-size: 13px;
    min-width: 150px;
}

/*================================
|            Search Page CSS     |
================================*/
/* Filter Widget  */
.widget_tf_hotel_filter .tf-filter ul{
    display: block;
    margin: 0;
}
.widget_tf_hotel_filter .tf-filter ul li{
    background: #f2f2f2;
    margin: 0 0 3px 0;
    /* display: grid;
    grid-template-columns: 90% 10%;
    align-items: center; */
    padding: 8px 10px 8px 10px;
    justify-content: space-between;
}
.widget_tf_hotel_filter .tf-filter ul li label{
    display: grid;
    grid-template-columns: 11% 13% 76%;
    align-items: center;
    line-height: 1;
    color: #333;
    cursor: pointer;
}
.widget_tf_hotel_filter .tf-filter ul li label input{
    outline: none;
    width: 14px;
    height: 14px;
    color: #333;
}
.widget_tf_hotel_filter .tf-filter ul li span{
    display: block;
    text-align: center;
    background: #333;
    border-radius: 50%;
    line-height: 20px;
    width: 20px;
    height: 20px;
    color: #fff;
    font-size: 12px;
}

/*================================
|        Widget/Shortcode        |
================================*/
/* Widget Slider */
.tf-widget-slider {
    padding: 40px 0 40px 0;
    margin: 0;
}
.tf-widget-slider .tf-heading{
    text-align: center;
    margin: 0 0 30px 0;
}
.tf-widget-slider .tf-heading h2{
    font-size: 28px;
    font-weight: 600;
    line-height: 32px;
    padding: 0;
    margin: 0 0 10px;
    color: #333;
}
.tf-widget-slider .tf-heading p{
    font-size: 16px;
    color: #555;
    line-height: 18px;
    padding: 0;
    margin: 0;
}
.tf-widget-slider .tf-slider-wrapper .tf-single img{
    border-top-right-radius: 10px;
    border-top-left-radius: 10px;
}
.tf-widget-slider .tf-slider-wrapper .tf-single .tf-single-meta{
    text-align: center;
    background: #f2f2f2;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
    padding: 10px 10px 12px 10px;
}
.tf-widget-slider .tf-slider-wrapper .tf-single .tf-single-meta .tf-title{
    color: #333;
    font-size: 16px;
    line-height: 18px;
    font-weight: 600;
    margin: 0;
    padding: 0;
}

/*================================
|      Theme based CSS Fix       |
================================*/
/**
 * Twenty Twenty Two
 */
/* Slick SLider*/
.single-tf_hotel.theme-twentytwentytwo .slick-slide {
    height: auto !important;
}
.single-tf_hotel.theme-twentytwentytwo .slick-slide img{
    height: auto !important;
}
.single-tf_tours.theme-twentytwentytwo .tf-tour-booking-wrap {
    height: auto !important;
}