.tfl-form{
    position: relative;
}
.tfl-form.submitting:before{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: transparent;
    content: '';
    visibility: visible;
    z-index: 98;
}
.tfl-form.submitting:after{
    animation: qode-rotate 2s linear infinite;
    background-color: transparent;
    border: 2px solid #efece6;
    border-radius: 50%;
    border-top: 2px solid var(--qode-main-color);
    content: '';
    height: 24px;
    left: calc(50% - 12px);
    opacity: 1;
    position: absolute;
    top: calc(50% - 12px);
    visibility: visible;
    width: 24px;
    z-index: 99;
}
.tfl-form.submitting .tab-container{
    opacity: 0.3;
}

.tfl-form .tab {
    display: none;
}
.tfl-form.tfl-single-part-form .tab {
    display: block;
}
.tfl-form input,
.tfl-form textarea{
    margin-bottom: 0px !important;
}
.tfl-form select.invalid,
.tfl-form input.invalid {
    border-color: #cf2e2e !important;
}
.tfl-form .form-field{
    margin-bottom: 26px;
}
.tfl-form .tfl-contact-grid{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 24px;
}
.tfl-form .tfl-inline-grid{
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
    gap: 24px;
}
.tfl-form .tfl-traveler-grid{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}
.tfl-form .tfl-traveler-card{
    padding: 0;
    background: transparent;
}
.tfl-form .tfl-stepper{
    display: flex;
    align-items: center;
    gap: 12px;
}
.tfl-form .tfl-stepper-btn{
    width: 44px;
    height: 44px;
    border: 1px solid #767676;
    border-radius: 0;
    background: #fff;
    color: #767676;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}
.tfl-form .tfl-stepper input{
    flex: 1 1 auto;
    min-width: 0;
    text-align: center;
    font-weight: 600;
    border-radius: 0;
}
.tfl-form .tfl-child-ages-fields{
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 18px 24px;
}
.tfl-form .tfl-child-ages-wrap{
    border: 1px solid #d8d1c4;
    padding: 20px 24px 24px;
    background: #f7f4ee;
}
.tfl-form .tfl-child-ages-wrap > label{
    display: block;
    margin-bottom: 18px;
}
.tfl-form .tfl-child-age-item{
    margin-top: 0;
}
.tfl-form .tfl-child-age-item select{
    width: 100%;
    border-radius: 0;
    background: #fff;
}
.tfl-form .btn-group{
    display: flex;
    justify-content: space-between;
}
.tfl-form label{
    margin-bottom: 0.1rem;
    font-size: 1rem;
}

/*animation*/
.tfl-form .fadein {
    -webkit-animation: fade 2s;
    animation: fade 2s;
    opacity: 1;
    display: block;
}
.tfl-form .fadeout {
    -webkit-animation: fade 2s reverse;
    animation: fade 2s reverse;
    opacity: 0;
    display: none;
}

.tfl-form .success-msg{
    border: 2px solid #6cdf8d;
    padding: 10px 10px;
    color: #277c3f;
    font-weight: 400;
    margin-bottom: 26px;
}
.tfl-form .error-msg{
    border: 2px solid #dc3232;
    padding: 10px 10px;
    color: #dc3232;
    font-weight: 400;
    margin-bottom: 26px;
}

/*page*/
.tfl-page-content{
    margin: 150px 0;
}
.tfl-page-content .success-msg{
    border: 2px solid #6cdf8d;
    padding: 10px 10px;
    color: #277c3f;
    font-weight: 400;
}
.tfl-page-content .error-msg{
    border: 2px solid #dc3232;
    padding: 10px 10px;
    color: #dc3232;
    font-weight: 400;    
}
.tfl-page-content .payment-form{
    display: none;
}

/*custom animation effect*/
@-webkit-keyframes fade {
    from {
        opacity: 0
    }
    to {
        opacity: 1
    }
}
@keyframes fade {
    from {
        opacity: 0
    }
    to {
        opacity: 1
    }
}

@media (max-width: 767px) {
  	.tfl-form .tfl-contact-grid,
    .tfl-form .tfl-inline-grid,
    .tfl-form .tfl-traveler-grid{
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1199px) {
    .tfl-form .tfl-child-ages-fields{
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .tfl-form .tfl-inline-grid,
    .tfl-form .tfl-traveler-grid{
        grid-template-columns: 1fr;
    }

    .tfl-form .tfl-child-ages-fields{
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .tfl-form .tfl-child-ages-fields{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    .tfl-form .tfl-child-ages-fields{
        grid-template-columns: 1fr;
    }
}
