.cart-page{
    padding:60px 0;
    background:#faf8f7;
    min-height:100vh;
}

.cart-container{
    width:min(1200px,92%);
    margin:auto;
}

.cart-heading{
    margin-bottom:45px;
}

.cart-eyebrow{
    display:inline-block;
    color:#d38aa5;
    font-weight:700;
    margin-bottom:10px;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:13px;
}

.cart-heading h1{
    font-size:42px;
    margin-bottom:10px;
    color:#2f2f2f;
}

.cart-heading p{
    color:#777;
    font-size:17px;
}

.cart-layout{
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:35px;
    align-items:start;
}

.cart-products,
.cart-summary-box{
    background:#fff;
    border-radius:22px;
    padding:28px;
    box-shadow:0 15px 40px rgba(0,0,0,.05);
}

.cart-products-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:25px;
}

.cart-products-top h2{
    font-size:24px;
}

.cart-items{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.cart-item{
    display:flex;
    gap:20px;
    padding:18px;
    border:1px solid #eee;
    border-radius:18px;
    transition:.25s;
    background:#fff;
}

.cart-item:hover{
    box-shadow:0 10px 25px rgba(0,0,0,.06);
}

.cart-item-image{
    width:120px;
    height:120px;
    overflow:hidden;
    border-radius:16px;
    background:#f7f7f7;
    flex-shrink:0;
}

.cart-item-image img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.cart-item-placeholder{
    width:100%;
    height:100%;
    display:flex;
    justify-content:center;
    align-items:center;
    color:#999;
}

.cart-item-info{
    flex:1;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
}

.cart-item-main{
    display:flex;
    justify-content:space-between;
    gap:20px;
}

.cart-item-name{
    font-size:21px;
    font-weight:700;
    color:#333;
}

.cart-item-sku{
    display:block;
    margin-top:8px;
    color:#999;
    font-size:13px;
}

.cart-item-unit-price{
    color:#d38aa5;
    font-size:22px;
}

.cart-item-bottom{
    margin-top:20px;
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.cart-quantity{
    display:flex;
    align-items:center;
    gap:10px;
}

.cart-quantity-button{
    width:38px;
    height:38px;
    border-radius:12px;
    border:none;
    cursor:pointer;
    background:#f2f2f2;
    font-size:22px;
}

.cart-quantity-input{
    width:65px;
    height:38px;
    border-radius:10px;
    border:1px solid #ddd;
    text-align:center;
}

.cart-item-actions{
    display:flex;
    align-items:center;
    gap:18px;
}

.cart-item-subtotal{
    font-size:22px;
    font-weight:700;
    color:#333;
}

.cart-remove-button{
    background:none;
    border:none;
    color:#c94d4d;
    cursor:pointer;
    font-weight:600;
}

.cart-summary-row,
.cart-summary-total{
    display:flex;
    justify-content:space-between;
    margin:16px 0;
}

.cart-summary-total{
    font-size:24px;
    font-weight:700;
}

.cart-summary-box hr{
    margin:18px 0;
    border:none;
    border-top:1px solid #ececec;
}

.cart-coupon,
.cart-frete{
    display:flex;
    flex-direction:column;
    gap:12px;
    margin-top:22px;
}

.cart-coupon input,
.cart-frete input{
    width:100%;
    padding:12px;
    border-radius:12px;
    border:1px solid #ddd;
}

.cart-checkout-button{
    width:100%;
    margin-top:30px;
}

.cart-continue-shopping{
    display:block;
    text-align:center;
    margin-top:18px;
    color:#777;
}

.cart-security{
    margin-top:28px;
    display:flex;
    flex-direction:column;
    gap:18px;
}

.cart-security-item{
    background:#fafafa;
    border-radius:14px;
    padding:15px;
}

.cart-security-item strong{
    display:block;
    margin-bottom:5px;
}

.cart-alert{
    padding:18px;
    border-radius:15px;
    margin-bottom:25px;
    font-weight:600;
}

.cart-alert-success{
    background:#e8f8ec;
    color:#1f6b39;
}

.cart-alert-error{
    background:#fdeaea;
    color:#9c2b2b;
}

.cart-empty{
    background:#fff;
    border-radius:24px;
    padding:70px 40px;
    text-align:center;
}

.cart-empty-icon{
    font-size:60px;
    margin-bottom:20px;
}

.cart-warning{
    margin-top:25px;
    padding:14px;
    border-radius:14px;
    background:#fff5db;
    color:#8a6200;
}

.disabled{
    pointer-events:none;
    opacity:.45;
}

@media(max-width:900px){

    .cart-layout{
        grid-template-columns:1fr;
    }

}

@media(max-width:650px){

    .cart-item{
        flex-direction:column;
    }

    .cart-item-image{
        width:100%;
        height:220px;
    }

    .cart-item-main,
    .cart-item-bottom{
        flex-direction:column;
        align-items:flex-start;
    }

    .cart-item-actions{
        width:100%;
        justify-content:space-between;
    }

}