.tfpp-application-form{
    max-width:980px;
    margin:0 auto;
    font-family:"Post", sans-serif;
    color:#535359;
}

.tfpp-success-message,
.tfpp-error-message{
    max-width:980px;
    margin:0 auto 18px;
    padding:14px 16px;
    border:1px solid #dedbd4;
    background:#fff;
}

.tfpp-error-message{
    color:#b3261e;
}

.tfpp-steps{
    display:grid;
    grid-template-columns:1fr;
    gap:18px;
}

.tfpp-step{
    background:#fff;
    border:1px solid #dedbd4;
}

.tfpp-step-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:18px 20px;
    cursor:pointer;
    user-select:none;
}

.tfpp-step-head-left{
    display:flex;
    align-items:center;
    gap:18px;
    min-width:0;
    flex:1 1 auto;
}

.tfpp-eyebrow{
    margin:0;
    font-size:10px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:#767676;
    white-space:nowrap;
    flex:0 0 auto;
}

.tfpp-step-badge{
    min-width:58px;
    height:32px;
    padding:0 10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #dedbd4;
    background:#fff;
    color:#535359;
    font-size:15px;
    line-height:1;
    font-weight:500;
}

.tfpp-step.active .tfpp-step-badge{
    background:#535359;
    color:#fff;
    border-color:#535359;
}

.tfpp-step-title{
    font-family:"Roman", serif;
    font-size:18px;
    font-weight:400;
    line-height:1.2;
    color:#535359;
}

.tfpp-step:not(.active) .tfpp-step-title{
    color:#8e8e8e;
}

.tfpp-step-icon{
    width:22px;
    height:22px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 22px;
    color:#222;
}

.tfpp-step-content{
    display:none;
    padding:0 20px 22px;
    border-top:1px solid #dedbd4;
}

.tfpp-step.active .tfpp-step-content{
    display:block;
}

.tfpp-step.is-locked .tfpp-step-head{
    cursor:not-allowed;
}

.tfpp-form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px 22px;
    padding-top:22px;
}

.tfpp-field{
    display:block;
    position:relative;
}

.tfpp-field.full{
    grid-column:1 / -1;
}

.tfpp-field label{
    display:block;
    font-size:11px;
    letter-spacing:.18em;
    text-transform:uppercase;
    margin:0 0 0;
    color:#767676;
}

.tfpp-field input,
.tfpp-field textarea,
.tfpp-field select{
    width:100%;
    min-height:42px;
    padding:12px 12px;
    border:1px solid #dedbd4;
    background:#fff;
    color:#535359;
    font-size:12px;
    outline:none;
    box-sizing:border-box;
    transition:border-color .2s ease, box-shadow .2s ease;
    border-top:0;
    border-right:0;
    border-left:0;
    border-radius:0;
}

.tfpp-field input:focus,
.tfpp-field textarea:focus,
.tfpp-field select:focus{
    border-color:#535359;
    box-shadow:0 1px 0 0 #535359;
}

.tfpp-field.is-error input,
.tfpp-field.is-error textarea,
.tfpp-field.is-error select{
    border-color:#b3261e;
    box-shadow:0 1px 0 0 #b3261e;
}

.tfpp-helper{
    font-size:12px;
    color:#767676;
    margin-top:8px;
    line-height:1.5;
}

.tfpp-inline-error{
    display:none;
    font-size:12px;
    color:#b3261e;
    margin-top:6px;
    line-height:1.4;
}

.tfpp-form-actions{
    display:flex;
    gap:12px;
    margin-top:22px;
    flex-wrap:wrap;
}

.tfpp-btn{
    appearance:none;
    border:1px solid #535359;
    background:#535359;
    color:#fff;
    padding:14px 28px;
    min-width:184px;
    text-align:center;
    font-weight:600;
    letter-spacing:.08em;
    text-transform:uppercase;
    cursor:pointer;
    text-decoration:none;
    transition:all .25s ease;
}

.tfpp-btn:hover{
    background:#222;
    border-color:#222;
    color:#fff;
}

.tfpp-btn.tfpp-btn-alt{
    background:#fff;
    color:#535359;
    border-color:#dedbd4;
}

.tfpp-btn.tfpp-btn-alt:hover{
    border-color:#535359;
    color:#535359;
    background:#fff;
}

/* phone */
#tfpp-phone::placeholder{
    color:transparent !important;
}

.tfpp-field[data-required-field="tfpp_phone_full"] .iti{
    width:100% !important;
    display:block !important;
    position:relative !important;
}

.tfpp-field[data-required-field="tfpp_phone_full"] .iti input[type="tel"],
.tfpp-field[data-required-field="tfpp_phone_full"] .iti__tel-input{
    width:100% !important;
    min-height:42px !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    padding-left:96px !important;
    padding-right:12px !important;
    font-size:12px !important;
    border:1px solid #dedbd4 !important;
    border-top:0 !important;
    border-right:0 !important;
    border-left:0 !important;
    border-radius:0 !important;
    background:#fff !important;
    color:#535359 !important;
    box-shadow:none !important;
    outline:none !important;
}

.tfpp-field[data-required-field="tfpp_phone_full"] .iti__country-container{
    position:absolute !important;
    left:0 !important;
    top:0 !important;
    bottom:0 !important;
    z-index:50 !important;
    display:flex !important;
    align-items:center !important;
}

.tfpp-field[data-required-field="tfpp_phone_full"] .iti__selected-country{
    height:42px !important;
    padding-left:0 !important;
    padding-right:10px !important;
    background:transparent !important;
    border-radius:0 !important;
    display:flex !important;
    align-items:center !important;
}

.tfpp-field[data-required-field="tfpp_phone_full"] .iti__selected-dial-code{
    font-size:12px !important;
    color:#535359 !important;
    margin-left:8px !important;
    line-height:1 !important;
}

.tfpp-field[data-required-field="tfpp_phone_full"] .iti__dropdown-content{
    width:100% !important;
    min-width:320px !important;
    max-width:100% !important;
    border:1px solid #dedbd4 !important;
    border-radius:0 !important;
    background:#fff !important;
    box-shadow:none !important;
    overflow:hidden !important;
    z-index:9999 !important;
}

.tfpp-field[data-required-field="tfpp_phone_full"] .iti__search-input{
    width:100% !important;
    height:38px !important;
    padding:0 12px 0 36px !important;
    font-size:12px !important;
    border:0 !important;
    border-bottom:1px solid #dedbd4 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    outline:none !important;
    background:#fff !important;
}

@media (max-width: 767px){
    .tfpp-form-grid{
        grid-template-columns:1fr;
    }

    .tfpp-step-head{
        padding:14px;
        gap:10px;
    }

    .tfpp-step-head-left{
        gap:10px;
        align-items:flex-start;
    }

    .tfpp-step-badge{
        min-width:50px;
        height:30px;
        font-size:13px;
        padding:0 8px;
    }

    .tfpp-step-title{
        font-size:12px;
        white-space:nowrap;
        padding-top:7px;
    }

    .tfpp-step-content{
        padding:0 14px 16px;
    }

    .tfpp-btn{
        width:100%;
        min-width:0;
    }
}