/* ==========================================================
QUICK FINANCE LEAD FORM
Phase 4 - Part 1
========================================================== */
:root{
--primary:#006d5b;
--secondary:#ffb000;
--primary-dark:#005347;
--white:#ffffff;
--bg:#f4f8fb;
--border:#d9e2ec;
--text:#1f2937;
--muted:#6b7280;
--danger:#dc2626;
--success:#16a34a;
--shadow:0 15px 45px rgba(0,0,0,.08);
--radius:14px;
--transition:.35s ease;
}
*{
margin:0;
padding:0;
box-sizing:border-box;
}
body{
background:linear-gradient(180deg,#f8fafc,#eef5f8);
font-family:
"Inter",
Arial,
sans-serif;
color:var(--text);
line-height:1.6;
}
.sf-container{
max-width:1100px;
margin:50px auto;
background:#fff;
border-radius:18px;
overflow:hidden;
box-shadow:var(--shadow);
}
.sf-logo{
text-align:center;
padding:35px 20px 10px;
}
.sf-logo img{
max-width:230px;
}
.sf-header{
text-align:center;
padding:0 40px 35px;
}
.sf-header h1{
font-size:36px;
color:var(--primary);
margin-bottom:12px;
font-weight:700;
}
.sf-header p{
color:#555;
font-size:17px;
}
/* =======================================
Progress Bar
======================================= */
.sf-progress{
display:flex;
justify-content:space-between;
align-items:center;
position:relative;
margin:20px 70px 50px;
}
.sf-progress-line{
position:absolute;
height:5px;
background:#d8dde5;
width:100%;
left:0;
top:28px;
border-radius:30px;
}
#progressFill{
position:absolute;
height:5px;
background:var(--primary);
left:0;
top:28px;
width:0;
border-radius:30px;
transition:.5s;
}
.sf-step{
position:relative;
z-index:5;
text-align:center;
}
.sf-circle{
width:55px;
height:55px;
background:#fff;
border:3px solid #d8dde5;
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
font-size:18px;
font-weight:700;
color:#777;
transition:.4s;
}
.sf-step.active .sf-circle{
background:var(--primary);
border-color:var(--primary);
color:#fff;
}
.sf-step.completed .sf-circle{
background:var(--success);
border-color:var(--success);
color:#fff;
}
.sf-step span{
display:block;
margin-top:14px;
font-size:15px;
font-weight:600;
color:#555;
}
/* =======================================
Form Step
======================================= */
.form-step{
display:none;
padding:45px;
}
.form-step.active{
display:block;
animation:fadeSlide .4s;
}
@keyframes fadeSlide{
from{
opacity:0;
transform:translateY(25px);
}
to{
opacity:1;
transform:none;
}
}
.step-title{
margin-bottom:35px;
}
.step-title h2{
color:var(--primary);
font-size:32px;
margin-bottom:8px;
}
.step-title p{
color:#666;
font-size:16px;
}
/* =======================================
Grid
======================================= */
.sf-grid{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:25px;
}
.full-width{
grid-column:1/-1;
}
/* =======================================
Fields
======================================= */
.sf-field{
display:flex;
flex-direction:column;
}
.sf-field label{
margin-bottom:10px;
font-size:15px;
font-weight:600;
color:#444;
}
.sf-field input,
.sf-field textarea,
.sf-field select{
width:100%;
padding:15px 18px;
border:2px solid var(--border);
border-radius:12px;
background:#fff;
font-size:15px;
transition:.3s;
outline:none;
}
.sf-field input:hover,
.sf-field textarea:hover,
.sf-field select:hover{
border-color:var(--secondary);
}
.sf-field input:focus,
.sf-field textarea:focus,
.sf-field select:focus{
border-color:var(--primary);
box-shadow:0 0 0 4px rgba(0,109,91,.12);
}
.sf-field textarea{
resize:vertical;
min-height:140px;
}
/* =======================================
Notice
======================================= */
.sf-notice,
.privacy-box{
margin-top:30px;
padding:20px;
border-left:5px solid var(--secondary);
background:#fff9ec;
border-radius:10px;
color:#555;
}
.consent-box{
margin-top:25px;
background:#f8fafc;
padding:18px;
border-radius:12px;
}
.consent-box label{
display:flex;
gap:12px;
cursor:pointer;
align-items:flex-start;
font-size:15px;
}
.consent-box input{
margin-top:4px;
}
/* =======================================
Buttons
======================================= */
.sf-buttons{
display:flex;
justify-content:space-between;
margin-top:45px;
gap:20px;
}
.btn-prev,
.btn-next,
.btn-submit{
border:none;
padding:16px 34px;
border-radius:12px;
font-size:16px;
font-weight:600;
cursor:pointer;
transition:.35s;
}
.btn-prev{
background:#eceff3;
color:#555;
}
.btn-prev:hover{
background:#d8dde5;
}
.btn-next,
.btn-submit{
background:var(--primary);
color:#fff;
}
.btn-next:hover,
.btn-submit:hover{
background:var(--primary-dark);
transform:translateY(-2px);
box-shadow:0 10px 25px rgba(0,109,91,.25);
}
.btn-submit{
background:var(--secondary);
color:#222;
}
.btn-submit:hover{
background:#f5a300;
}
/* =======================================
Errors
======================================= */
.error{
border-color:var(--danger)!important;
background:#fff8f8;
}
.field-error-msg{
color:var(--danger);
font-size:13px;
margin-top:8px;
display:none;
}
.field-error-msg.show{
display:block;
}
/* ==========================================================
QUICK FINANCE LEAD FORM
Phase 4 - Part 2
========================================================== */
/* ============================
Upload Area
============================ */
.upload-wrapper{
margin-top:40px;
padding:35px;
background:#f9fbfd;
border:1px solid #e3e9ef;
border-radius:16px;
}
.upload-wrapper h3{
color:var(--primary);
font-size:24px;
margin-bottom:8px;
}
.upload-wrapper p{
color:#666;
margin-bottom:25px;
}
.sf-upload{
display:flex;
flex-direction:column;
}
.sf-upload label{
font-weight:600;
margin-bottom:12px;
}
.sf-upload input[type=file]{
padding:18px;
border:2px dashed var(--primary);
border-radius:14px;
background:#ffffff;
cursor:pointer;
transition:.35s;
}
.sf-upload input[type=file]:hover{
background:#eef9f6;
border-color:var(--secondary);
}
.sf-upload small{
margin-top:10px;
color:#777;
font-size:13px;
}
/* ============================
Custom Scrollbar
============================ */
::-webkit-scrollbar{
width:10px;
}
::-webkit-scrollbar-track{
background:#edf2f7;
}
::-webkit-scrollbar-thumb{
background:var(--primary);
border-radius:30px;
}
::-webkit-scrollbar-thumb:hover{
background:var(--secondary);
}
/* ============================
Checkbox
============================ */
.consent-box input{
width:20px;
height:20px;
accent-color:var(--primary);
}
/* ============================
Loading Spinner
============================ */
.spinner{
display:none;
width:22px;
height:22px;
border:3px solid rgba(255,255,255,.3);
border-top:3px solid #fff;
border-radius:50%;
animation:spin .7s linear infinite;
margin-right:10px;
}
@keyframes spin{
from{
transform:rotate(0deg);
}
to{
transform:rotate(360deg);
}
}
/* ============================
Input Icons Support
============================ */
.sf-field{
position:relative;
}
.sf-field i{
position:absolute;
right:18px;
top:50px;
color:#999;
font-size:17px;
}
/* ============================
Success Alert
============================ */
.success-box{
display:none;
margin-top:25px;
padding:20px;
background:#ecfdf5;
color:#166534;
border-left:5px solid var(--success);
border-radius:12px;
}
.success-box.show{
display:block;
animation:fadeSlide .5s;
}
/* ============================
Button Animation
============================ */
.btn-next,
.btn-prev,
.btn-submit{
position:relative;
overflow:hidden;
}
.btn-next::before,
.btn-submit::before{
content:"";
position:absolute;
width:0;
height:100%;
background:rgba(255,255,255,.15);
left:0;
top:0;
transition:.4s;
}
.btn-next:hover::before,
.btn-submit:hover::before{
width:100%;
}
/* ============================
Input Animation
============================ */
.sf-field input,
.sf-field select,
.sf-field textarea{
transition:.35s;
}
.sf-field input:focus,
.sf-field textarea:focus,
.sf-field select:focus{
transform:translateY(-2px);
}
/* ============================
Card Hover
============================ */
.sf-container{
transition:.4s;
}
.sf-container:hover{
box-shadow:0 30px 70px rgba(0,0,0,.12);
}
/* ============================
Section Divider
============================ */
.step-title::after{
content:"";
display:block;
width:70px;
height:4px;
background:var(--secondary);
border-radius:20px;
margin-top:15px;
}
/* ============================
Disabled Button
============================ */
button:disabled{
opacity:.6;
cursor:not-allowed;
}
/* ============================
Placeholder
============================ */
::placeholder{
color:#a0aec0;
}
/* ============================
Responsive
============================ */
@media(max-width:1024px){
.sf-container{
margin:30px;
}
.sf-progress{
margin:30px;
}
}
@media(max-width:991px){
.sf-grid{
grid-template-columns:1fr;
}
.sf-buttons{
flex-direction:column;
}
.btn-prev,
.btn-next,
.btn-submit{
width:100%;
}
}
@media(max-width:768px){
.sf-container{
margin:15px;
border-radius:14px;
}
.sf-header{
padding:20px;
}
.sf-header h1{
font-size:28px;
}
.sf-header p{
font-size:15px;
}
.form-step{
padding:25px;
}
.step-title h2{
font-size:25px;
}
.sf-progress{
margin:20px;
}
.sf-step span{
font-size:12px;
}
.sf-circle{
width:42px;
height:42px;
font-size:14px;
}
.upload-wrapper{
padding:20px;
}
}
@media(max-width:576px){
.sf-logo img{
max-width:170px;
}
.sf-progress{
overflow-x:auto;
padding-bottom:10px;
gap:20px;
}
.sf-progress-line,
#progressFill{
display:none;
}
.sf-step{
min-width:120px;
}
.sf-buttons{
gap:15px;
}
.btn-prev,
.btn-next,
.btn-submit{
padding:15px;
font-size:15px;
}
.sf-field input,
.sf-field select,
.sf-field textarea{
padding:14px;
font-size:15px;
}
}
/* ============================
Fade Effects
============================ */
.fade-in{
animation:fadeSlide .5s;
}
.hidden{
display:none!important;
}
/* ============================
File Uploaded State
============================ */
.file-success{
border-color:var(--success)!important;
background:#ecfdf5!important;
}
/* ============================
Focus Accessibility
============================ */
button:focus,
input:focus,
select:focus,
textarea:focus{
outline:none;
}
/* ============================
Print Hide
============================ */
@media print{
.btn-next,
.btn-prev,
.btn-submit,
.sf-progress{
display:none;
}
body{
background:#fff;
}
.sf-container{
box-shadow:none;
}
}