.overlay-carrinho{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.4);

    opacity:0;

    visibility:hidden;

    transition:.3s;

    z-index:2000;
}

.overlay-carrinho.show{

    opacity:1;

    visibility:visible;
}

.painel-carrinho{

    position:fixed;

    top:0;
    right:0;

    width:450px;

    max-width:95%;

    height:100vh;

    background:white;

    transform:translateX(100%);

    transition:.3s;

    z-index:2001;

    display:flex;

    flex-direction:column;
}

.painel-carrinho.show{

    transform:translateX(0);
}

.carrinho-header{

    padding:20px;

    border-bottom:1px solid #eee;

    display:flex;

    justify-content:space-between;

    align-items:center;
}

.carrinho-header button{

    border:none;

    background:none;

    font-size:30px;

    cursor:pointer;
}

.carrinho-itens{

    flex:1;

    overflow-y:auto;

    padding:20px;
}

.carrinho-footer{

    padding:20px;

    border-top:1px solid #eee;

    background:white;
}

.carrinho-total{

    font-size:24px;

    font-weight:bold;

    margin-bottom:15px;
}

.btn-finalizar{

    width:100%;

    height:55px;

    border:none;

    border-radius:12px;

    background:#ef4444;

    color:white;

    font-size:18px;

    font-weight:bold;

    cursor:pointer;
}

.carrinho-item{

    display:flex;

    gap:15px;

    margin-bottom:20px;

    padding-bottom:20px;

    border-bottom:1px solid #eee;
}

.carrinho-item img{

    width:80px;

    height:80px;

    object-fit:contain;
}

.carrinho-info{

    flex:1;
}

.btn-remover{

    margin-top:10px;

    border:none;

    background:#dc2626;

    color:white;

    padding:8px 12px;

    border-radius:8px;

    cursor:pointer;
}

.frete-box{

    margin-top:20px;

    padding-top:20px;

    border-top:1px solid #ddd;
}

.frete-linha{

    display:flex;

    gap:10px;

    margin-top:10px;
}

.frete-linha input{

    flex:1;

    height:40px;

    padding-left:10px;
}

.frete-linha button{

    width:100px;

    border:none;

    background:#ef4444;

    color:white;

    border-radius:8px;

    cursor:pointer;
}

.frete-box{

    margin-top:20px;

    padding-top:20px;

    border-top:1px solid #ddd;
}

.btn-frete{

    width:100%;

    height:45px;

    border:none;

    border-radius:10px;

    background:#ef4444;

    color:white;

    font-weight:bold;

    cursor:pointer;
}

.frete-resultado{

    margin-top:15px;

    padding:12px;

    background:#f8f8f8;

    border-radius:10px;
}

.quantidade-controle{

    display:flex;

    align-items:center;

    gap:10px;

    margin-top:8px;
}

.btn-qtd{

    width:28px;

    height:28px;

    border:none;

    border-radius:6px;

    background:#ef4444;

    color:white;

    font-size:18px;

    font-weight:bold;

    cursor:pointer;

    transition:.2s;
}

.btn-qtd:hover{

    background:#dc2626;
}

.quantidade-controle span{

    min-width:25px;

    text-align:center;

    font-weight:bold;
}
