.quote-generation-loader-overlay{
    position:fixed;
    top:0;
    left:0;
    right:0;
    bottom:0;
    background:#ffffff;
    display:-webkit-flex;
    display:-ms-flexbox;
    display:flex;
    -webkit-align-items:center;
        -ms-flex-align:center;
            align-items:center;
    -webkit-justify-content:center;
        -ms-flex-pack:center;
            justify-content:center;
    z-index:999999;
    -webkit-animation:fadeIn 0.3s ease-in;
            animation:fadeIn 0.3s ease-in;
    pointer-events:auto;
}
.quote-generation-loader-container{
    text-align:center;
    padding:2rem;
    width:100%;
    max-width:1400px;
    display:-webkit-flex;
    display:-ms-flexbox;
    display:flex;
    -webkit-flex-direction:column;
        -ms-flex-direction:column;
            flex-direction:column;
    -webkit-align-items:center;
        -ms-flex-align:center;
            align-items:center;
    -webkit-justify-content:center;
        -ms-flex-pack:center;
            justify-content:center;
}
.quote-generation-loader-container .w--spinner{
    width:70px;
    text-align:center;
    margin:0 auto 1.5rem;
}
.quote-generation-loader-container .w--spinner > div{
    width:14px;
    height:14px;
    margin-left:4px;
    background-color:#314451;
    border-radius:100%;
    display:inline-block;
    -webkit-animation:bouncedelay 1.4s infinite ease-in-out;
    animation:bouncedelay 1.4s infinite ease-in-out;
    -webkit-animation-fill-mode:both;
    animation-fill-mode:both;
}
.quote-generation-loader-container .w--spinner .bounce1{
    -webkit-animation-delay:-0.32s;
    animation-delay:-0.32s;
}
.quote-generation-loader-container .w--spinner .bounce2{
    -webkit-animation-delay:-0.16s;
    animation-delay:-0.16s;
}
.loader-message{
    font-size:18px;
    font-weight:600;
    color:#333;
    margin:0;
    opacity:0;
    -webkit-animation:fadeInUp 0.8s ease-out 0.3s forwards;
            animation:fadeInUp 0.8s ease-out 0.3s forwards;
    max-width:600px;
    line-height:1.5;
}
.loader-dummy-cards{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));
    gap:1.5rem;
    margin:2rem auto 0;
    padding:0 2rem;
    max-width:1200px;
    width:100%;
}
.loader-dummy-card{
    background:#fff;
    border-radius:12px;
    padding:1.5rem;
    box-shadow:0 2px 12px rgba(0, 0, 0, 0.08);
    opacity:0;
    -webkit-animation:fadeInScale 0.6s ease-out forwards;
            animation:fadeInScale 0.6s ease-out forwards;
}
.loader-dummy-card:nth-child(1){
    -webkit-animation-delay:0.8s;
            animation-delay:0.8s;
}
.loader-dummy-card:nth-child(2){
    -webkit-animation-delay:1s;
            animation-delay:1s;
}
.loader-dummy-card:nth-child(3){
    -webkit-animation-delay:1.2s;
            animation-delay:1.2s;
}
.loader-dummy-card:nth-child(4){
    -webkit-animation-delay:1.4s;
            animation-delay:1.4s;
}
.loader-dummy-logo{
    width:80px;
    height:40px;
    background:linear-gradient(90deg, #f0f0f0 0%, #e0e0e0 50%, #f0f0f0 100%);
    background-size:200% 100%;
    border-radius:6px;
    margin:0 auto 1.5rem;
    -webkit-animation:shimmer 2s infinite linear;
            animation:shimmer 2s infinite linear;
}
.loader-dummy-price{
    width:60%;
    height:32px;
    background:linear-gradient(90deg, #f0f0f0 0%, #e0e0e0 50%, #f0f0f0 100%);
    background-size:200% 100%;
    border-radius:6px;
    margin:0 auto 1rem;
    -webkit-animation:shimmer 2s infinite linear;
            animation:shimmer 2s infinite linear;
    -webkit-animation-delay:0.1s;
            animation-delay:0.1s;
}
.loader-dummy-text{
    width:80%;
    height:16px;
    background:linear-gradient(90deg, #f0f0f0 0%, #e0e0e0 50%, #f0f0f0 100%);
    background-size:200% 100%;
    border-radius:4px;
    margin:0.8rem auto;
    -webkit-animation:shimmer 2s infinite linear;
            animation:shimmer 2s infinite linear;
    -webkit-animation-delay:0.2s;
            animation-delay:0.2s;
}
.loader-dummy-text:last-of-type{
    width:65%;
}
.loader-dummy-button{
    width:100%;
    height:44px;
    background:linear-gradient(90deg, #f0f0f0 0%, #e0e0e0 50%, #f0f0f0 100%);
    background-size:200% 100%;
    border-radius:8px;
    margin-top:1.5rem;
    -webkit-animation:shimmer 2s infinite linear;
            animation:shimmer 2s infinite linear;
    -webkit-animation-delay:0.3s;
            animation-delay:0.3s;
}
@-webkit-keyframes fadeIn{
    from{
        opacity:0;
    }
    to{
        opacity:1;
    }
}
@keyframes fadeIn{
    from{
        opacity:0;
    }
    to{
        opacity:1;
    }
}
@-webkit-keyframes bouncedelay{
    0%, 80%, 100%{
        -webkit-transform:scale(0);
    }
    40%{
        -webkit-transform:scale(1);
    }
}
@keyframes bouncedelay{
    0%, 80%, 100%{
        transform:scale(0);
        -webkit-transform:scale(0);
    }
    40%{
        transform:scale(1);
        -webkit-transform:scale(1);
    }
}
@keyframes fadeInUp{
    from{
        opacity:0;
        -webkit-transform:translateY(20px);
                transform:translateY(20px);
    }
    to{
        opacity:1;
        -webkit-transform:translateY(0);
                transform:translateY(0);
    }
}
@-webkit-keyframes fadeInUp{
    from{
        opacity:0;
        -webkit-transform:translateY(20px);
    }
    to{
        opacity:1;
        -webkit-transform:translateY(0);
    }
}
@keyframes blink{
    0%, 49%{
        opacity:1;
    }
    50%, 100%{
        opacity:0;
    }
}
@-webkit-keyframes blink{
    0%, 49%{
        opacity:1;
    }
    50%, 100%{
        opacity:0;
    }
}
@keyframes shimmer{
    0%{
        background-position:-200% 0;
    }
    100%{
        background-position:200% 0;
    }
}
@-webkit-keyframes shimmer{
    0%{
        background-position:-200% 0;
    }
    100%{
        background-position:200% 0;
    }
}
@keyframes fadeInScale{
    from{
        opacity:0;
        -webkit-transform:scale(0.9) translateY(10px);
                transform:scale(0.9) translateY(10px);
    }
    to{
        opacity:1;
        -webkit-transform:scale(1) translateY(0);
                transform:scale(1) translateY(0);
    }
}
@-webkit-keyframes fadeInScale{
    from{
        opacity:0;
        -webkit-transform:scale(0.9) translateY(10px);
    }
    to{
        opacity:1;
        -webkit-transform:scale(1) translateY(0);
    }
}
@media (max-width: 768px){
    .quote-generation-loader-container{
        padding:1.5rem;
    }

    .loader-message{
        font-size:16px;
        padding:0 1rem;
    }

    .quote-generation-loader-container .w--spinner > div{
        width:12px;
        height:12px;
    }

    .loader-dummy-cards{
        grid-template-columns:1fr;
        gap:1rem;
        padding:0 1rem;
        margin:2rem auto 0;
    }

    .loader-dummy-card{
        padding:1rem;
    }

    .loader-dummy-logo{
        width:60px;
        height:30px;
    }

    .loader-dummy-price{
        height:24px;
    }
}
