/* ==========================
   Global
========================== */

.karen-request-page,
.karen-request-page *,
.karen-request-page *::before,
.karen-request-page *::after{
    box-sizing:border-box;
}
/* ==========================
   Container
========================== */

.karen-request-page{

    max-width:1100px;
    width:100%;

    margin:60px auto;

    padding:50px;

    background:#fff;

    border-radius:20px;

    box-shadow:0 10px 30px rgba(0,0,0,.06);
}

.karen-card{

    min-height:350px;

    position:relative;
}


/* ==========================
   Step
========================== */

.karen-step{

    opacity:0;

    visibility:hidden;

    position:absolute;

    width:100%;
}

.karen-step.is-active{

    opacity:1;

    visibility:visible;

    position:relative;
}

.karen-step h2{

    font-size:42px;

    font-weight:700;

    color:#1f2747;

    margin-bottom:10px;
}

.karen-step p{

    font-size:18px;

    color:#6b7280;

    margin-bottom:30px;
}


/* ==========================
   Progress
========================== */

.karen-progress{

    display:flex;

    justify-content:space-between;

    align-items:flex-start;

    margin:45px 0 60px;

    position:relative;
}

.karen-progress::before{

    content:"";

    position:absolute;

    top:16px;

    right:50px;

    left:50px;

    height:2px;

    background:#e5e7eb;

    z-index:0;
}

.progress-item{

    position:relative;

    z-index:1;

    display:flex;

    flex-direction:column;

    align-items:center;

    flex:1;

    text-align:center;
}

.step-number{

    width:32px;

    height:32px;

    border-radius:50%;

    border:2px solid #d1d5db;

    background:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:14px;

    font-weight:600;

    transition:.25s;
}

.step-title{

    margin-top:10px;

    font-size:13px;

    color:#6b7280;

    transition:.25s;
}

.progress-item.active .step-number{

    background:#16B89A;

    border-color:#16B89A;

    color:#fff;
}

.progress-item.active .step-title{

    color:#16B89A;

    font-weight:600;
}


/* ==========================
   Search
========================== */

.karen-service-search{

    position:relative;

    margin:30px 0;
}

.karen-service-search i{

    position:absolute;

    right:18px;

    top:50%;

    transform:translateY(-50%);

    color:#9ca3af;

    font-size:15px;

    z-index:2;
}

.karen-service-search input{

    width:100%;

    height:54px;

    padding:0 40px 0 50px;

    border:1px solid #d9d9d9;

    border-radius:12px;

    background:#fff;

    font-size:15px;

    outline:none;

    transition:.25s;
}

.karen-service-search input::placeholder{

    color:#9ca3af;
}

.karen-service-search input:focus{

    border-color:#16B89A;

    box-shadow:0 0 0 4px rgba(22,184,154,.08);
}


/* ==========================
   Search Result
========================== */

.service-results{

    display:none;

    position:absolute;

    top:calc(100% + 8px);

    right:0;

    left:0;

    background:#fff;

    border:1px solid #e5e7eb;

    border-radius:12px;

    overflow:hidden;

    box-shadow:0 10px 30px rgba(0,0,0,.08);

    z-index:100;
}

.service-item{

    padding:14px 18px;

    cursor:pointer;

    transition:.2s;
}

.service-item:hover{

    background:#f3f4f6;
}


/* ==========================
   Selected Services
========================== */

.selected-services{

    display:none;

    margin-top:30px;
}
.selected-services h3{

    font-size:20px;

    font-weight:600;

    color:#1f2747;

    margin-bottom:20px;
}

#selectedServices{

    display:flex;

    flex-wrap:wrap;

    gap:12px;
}

.selected-service{

    display:flex;

    align-items:center;

    gap:10px;

    min-height:40px;

    padding:8px 16px;

    background:#16B89A;

    color:#fff;

    border-radius:30px;

    font-size:14px;

    font-weight:500;
}

.selected-service button{

    width:20px;

    height:20px;

    border:none;

    background:none;

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    cursor:pointer;

    font-size:18px;

    line-height:1;
}


/* ==========================
   Footer
========================== */

.karen-form-footer{

    display:flex;

    justify-content:space-between;

    gap:15px;

    margin-top:35px;
  
    border-radius: 12px;
}

.karen-btn{

    height:50px;

    min-width:150px;

    padding:0 24px;

    border-radius:12px;

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    font-size:15px;

    font-weight:600;

    cursor:pointer;

    transition:.25s;
}

.karen-btn i{

    font-size:13px;
}

.karen-btn-outline{

    background:#fff;

    color:#16B89A;

    border:2px solid #16B89A;
}

.karen-btn-outline:hover{

    background:#f2fffb;
}

.karen-btn-primary{

    background:#16B89A;

    color:#fff;

    border:none;
}

.karen-btn-primary:hover{

    background:#13a488;
}

/* ==========================
   Mobile
========================== */

@media (max-width:768px){

    .karen-request-page{

        margin:20px 15px;

        padding:25px 20px;

        border-radius:16px;
    }

    .karen-progress{

        margin:30px 0 40px;
    }

    .karen-progress::before{

        right:35px;

        left:35px;
    }

    .step-number{

        width:30px;

        height:30px;

        font-size:13px;
    }

    .step-title{

        font-size:12px;

        margin-top:8px;
    }
 .karen-header h1{
   font-size:30px;
 }
    .karen-step h2{

        font-size:20px;

        line-height:1.4;

        text-align:center;
    }

    .karen-step p{

        font-size:16px;

        text-align:center;
    }

    .selected-services h3{

        font-size:15px;
    }

    #selectedServices{

        gap:8px;
    }

    .selected-service{

        font-size:13px;

        padding:8px 14px;
    }

     .karen-form-footer{

        display:flex;

        flex-direction:row;

        gap:10px;
       
        border-radius: 12px;
    }

    .karen-btn{

        flex:1;

        min-width:0;

        padding:0 12px;

        font-size:14px;
    }

}

@media (max-width:768px){

    .karen-request-page{
        width:auto;
        margin:20px 15px;
        padding:25px 20px;
    }

}



/* ==========================
   Form
========================== */

.karen-form-group{

    margin-bottom:28px;
    margin-top:20px;
}

.karen-form-group label{

    display:block;

    margin-bottom:10px;

    font-weight:600;

    color:#1f2747;
}

.karen-form-row{

    display:grid;

    grid-template-columns:2fr 1fr;

    gap:20px;
}

.karen-input{

    width:100%;

    height:52px;

    padding:0 16px;

    border:1px solid #d9d9d9;

    border-radius:12px;

    font-size:15px;

    outline:none;

    transition:.25s;
}

.karen-input:focus{

    border-color:#16B89A;

    box-shadow:0 0 0 4px rgba(22,184,154,.08);
}

.karen-age{

    display:flex;

    align-items:center;

    gap:10px;
}


.karen-radio-group label{

    display:flex;

    align-items:center;

    gap:8px;

    margin:0;

    cursor:pointer;
}


/* ==========================
   Select Cards
========================== */

.karen-select-grid{

    display:grid;

    grid-template-columns:repeat(auto-fill,minmax(150px,1fr));

    gap:15px;
}

.karen-select-card{

    border:1px solid #e5e7eb;

    border-radius:14px;

    padding:18px;

    text-align:center;

    cursor:pointer;

    transition:.25s;
}

.karen-select-card i{

    font-size:24px;

    color:#16B89A;

    margin-bottom:12px;

    display:block;
}

.karen-select-card span{

    font-size:14px;

    font-weight:600;
}

.karen-select-card.active{

    border-color:#16B89A;

    background:#eefcf8;
}


/* ==========================
   Textarea
========================== */

.karen-textarea{

    width:100%;

    border:1px solid #d9d9d9;

    border-radius:12px;

    padding:15px;

    resize:vertical;

    font-size:15px;

    outline:none;
}

.karen-textarea:focus{

    border-color:#16B89A;

    box-shadow:0 0 0 4px rgba(22,184,154,.08);
}


.karen-form-row{

    display:flex;

    flex-direction:column;

    gap:18px;
}

.karen-inline-field{

    display:flex;

    align-items:center;

    gap:18px;
}

.karen-inline-field > label{

    width:70px;

    margin:0;

    font-weight:600;
}

.karen-radio-group{

    display:flex;

    gap:20px;
}

.karen-radio-group label{

    display:flex;

    align-items:center;

    gap:6px;

    margin:0;
}

.karen-age{

    display:flex;

    align-items:center;

    gap:10px;
}

.karen-age .karen-input{

    width:90px;

    height:44px;

    text-align:center;
}

.karen-select-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:12px;
}

.karen-select-card{

    display:flex;

    align-items:center;

    gap:12px;

    min-height:56px;

    padding:14px 16px;

    border:1px solid #e5e7eb;

    border-radius:12px;

    cursor:pointer;

    transition:.25s;
}

.karen-select-card i{

    width:22px;

    font-size:18px;

    color:#16B89A;

    margin:0;

    text-align:center;
}

.karen-select-card span{

    font-size:14px;

    font-weight:600;
}

.karen-select-card.active{

    border-color:#16B89A;

    background:#eefcf8;
}
.karen-inline-field{

    flex-wrap:wrap;
}

.karen-select-grid{

    grid-template-columns:1fr;
}

.karen-age .karen-input{

    width:80px;
}

/*step3*/
.karen-textarea{

    width:100%;

    min-height:90px;

    padding:14px 16px;

    border:1px solid #ddd;

    border-radius:12px;

    resize:vertical;

    font-family:inherit;

    font-size:14px;
}

.karen-textarea:focus{

    border-color:#16B89A;

    outline:none;
}

/* ---------- Step 4 ---------- */

.karen-checkbox{

    margin-top:25px;
}

.karen-checkbox label{

    display:flex;

    align-items:flex-start;

    gap:12px;

    cursor:pointer;

    line-height:1.8;

    font-size:14px;
}

.karen-checkbox input{

    margin-top:5px;
}


.karen-info-box{

    margin-top:30px;

    padding:14px 16px;

    border-radius:14px;

    background:#f5fbfa;

    border:1px solid #d7efea;

    display:flex;

    gap:15px;
}

.karen-info-box i{

    color:#16B89A;

    font-size:22px;

    margin-top:3px;
}

.karen-info-box strong{

    display:block;

    margin-bottom:6px;
}

.karen-info-box p{

    margin:0;

    color:#666;

    line-height:1.8;
}


/* ==========================
   Validation
========================== */

.karen-error{

    color:#dc2626;

    font-size:13px;

    margin-top:8px;

    display:block;
}

.karen-input.error,
.karen-textarea.error{

    border-color:#dc2626;
}

.karen-select-grid.error{

    border:1px solid #dc2626;

    border-radius:14px;

    padding:8px;
}


.karen-success{

    text-align:center;

    background:#fff;

    border-radius:16px;

    padding:50px 30px;

    box-shadow:0 10px 35px rgba(0,0,0,.08);

}

.karen-success-icon{

    width:90px;
    height:90px;

    margin:auto;

    border-radius:50%;

    background:#22c55e;

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:42px;

    margin-bottom:25px;

}

.tracking-box{

    margin:30px auto;

    max-width:320px;

    padding:18px;

    border:2px dashed #3B82F6;

    border-radius:12px;

}

.tracking-box strong{

    display:block;

    margin-top:10px;

    font-size:28px;

    letter-spacing:2px;

}

/* ==========================================
   Loading Button
========================================== */

.karen-form-footer button.is-loading {
    cursor: wait;
    opacity: 0.8;
}

.karen-form-footer button.is-loading:disabled {
    cursor: wait;
}

.karen-spinner {
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-left: 8px;
    vertical-align: -3px;
    border: 2px solid currentColor;
    border-left-color: transparent;
    border-radius: 50%;
    animation: karen-spin 0.7s linear infinite;
}

@keyframes karen-spin {
    to {
        transform: rotate(360deg);
    }
}