:root{
    --primary:#7a2c64;
    --text:#222;
    --muted:#6b7280;
    --border:#e5e7eb;
    --background:#ffffff;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    font-family:'Poppins',sans-serif;
    background:#fff;
    color:var(--text);
    min-height:100vh;
}



header{
    height:72px;
    padding:0 20px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    border-bottom:1px solid var(--border);
    background:#fff;
}

header .logo img{
    height:42px;
    width:auto;
}

header .menu{
    display:flex;
    align-items:center;
    gap:24px;
}

header .menu p{
    font-size:13px;
    font-weight:500;
    cursor:pointer;
}

header .burger{
    display:none;
}

@media(max-width:640px){

    header .menu{
        display:none;
    }

    header .burger{
        display:block;
    }

    header .burger .lines{
        display:flex;
        flex-direction:column;
        gap:5px;
    }

    header .burger .line{
        width:24px;
        height:2px;
        background:#111;
    }
}



main{
    display:flex;
    justify-content:center;
    padding:40px 15px;
}



.loader-wrapper {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.loader-wrapper.active {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 60vh;
    width: 100%;
}

#loading-message {
    margin-top: 20px;
    text-align: center;
    font-size: 18px;
    font-weight: 500;
    color: #9e9e9e;
    font-family: "Segoe UI", Arial, sans-serif;
    width: 100%;
    max-width: 400px;
    line-height: 1.5;
}

.loader-01 {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top: 3px solid var(--primary);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

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



.wrapper{
    width:100%;
    max-width:480px;
    display:none;
}

.wrapper.active{
    display:block;
}



.breadcrumb{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-bottom:24px;
}

.breadcrumb .item{
    font-size:12px;
    color:#999;
}

.breadcrumb .item.active{
    color:var(--primary);
    font-weight:600;
}

.breadcrumb .item.passed{
    color:#444;
}

.breadcrumb .divider{
    font-size:12px;
    color:#ccc;
}



h1{
    font-size:26px;
    font-weight:700;
}

h3{
    font-size:22px;
    font-weight:600;
    margin-bottom:6px;
}

.sub-title{
    font-size:13px;
    color:var(--muted);
    line-height:1.5;
    margin-bottom:20px;
}



.form-element{
    margin-bottom:16px;
}

.form-element label{
    display:block;
    margin-bottom:6px;
    font-size:13px;
    font-weight:500;
}

.row{
    display:flex;
    gap:12px;
}

.row .form-element{
    flex:1;
}

input,
select{
    width:100%;
    height:50px;
    border:1px solid var(--border);
    border-radius:12px;
    padding:0 14px;
    font-size:14px;
    background:#fff;
}

input:focus,
select:focus{
    outline:none;
    border-color:var(--primary);
}



.price{
    background:#faf5fa;
    border-radius:14px;
    padding:18px;
    margin:20px 0;
}

.price h1{
    font-size:24px;
    font-weight:600;
}

.price h1 span{
    color:var(--primary);
}

.price p{
    font-size:12px;
    color:var(--muted);
    margin-top:5px;
}



input[type="submit"]{
    border:none;
    background:var(--primary);
    color:#fff;
    font-size:14px;
    font-weight:600;
    cursor:pointer;
}

input[type="submit"]:hover{
    opacity:.95;
}



.card-informations{
    border:1px solid var(--border);
    border-radius:14px;
    padding:18px;
    background:#fff;
}

.logos{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-bottom:16px;
}

.logos img{
    height:22px;
    width:auto;
}



.succes{
    text-align:center;
    margin-top:20px;
}

.succes img{
    width:120px;
    max-width:100%;
}



.notification-image{
    text-align:center;
}

.notification-image img{
    max-width:180px;
    width:100%;
    height:auto;
}



footer{
    border-top:1px solid var(--border);
    padding:24px 15px;
    text-align:center;
    background:#fff;
}

footer .logo{
    margin-bottom:10px;
}

footer img{
    height:40px;
}

footer p{
    font-size:12px;
    color:var(--muted);
    margin:4px 0;
}



@media(max-width:640px){

    main{
        padding:20px 12px;
    }

    .row{
        flex-direction:column;
        gap:0;
    }

    h3{
        font-size:20px;
    }

    .price h1{
        font-size:22px;
    }

    input,
    select,
    input[type="submit"]{
        height:48px;
    }
}
