/* ==========================================================
   VBC Framework
   Cart Page
========================================================== */

.vbc-cart-page{
    padding:48px 0 80px;
}

.vbc-cart-page__title{
    font-family:var(--vbc-font-heading);
    font-size:36px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.02em;
    color:var(--vbc-color-heading);
    margin:0 0 32px;
}

/*==========================================================
    Empty State
==========================================================*/

.vbc-cart-page__empty{
    text-align:center;
    padding:60px 20px;
    border:1px solid var(--vbc-color-border);
    background:var(--vbc-color-surface);
}

.vbc-cart-page__empty i{
    width:40px;
    height:40px;
    background-color:var(--vbc-color-accent);
    margin:0 auto 16px;
}

.vbc-cart-page__empty p{
    font-size:16px;
    color:var(--vbc-color-body);
    margin:0 0 20px;
}

.vbc-cart-page__empty-cta{
    display:inline-block;
    background:var(--vbc-color-primary);
    color:#fff;
    padding:12px 28px;
    font-family:var(--vbc-font-heading);
    font-weight:700;
    font-size:13px;
    letter-spacing:.04em;
    text-transform:uppercase;
    text-decoration:none;
}

/*==========================================================
    Layout
==========================================================*/

.vbc-cart-page__layout{
    display:grid;
    grid-template-columns:1fr 340px;
    gap:32px;
    align-items:start;
}

.vbc-cart-page__items{
    display:flex;
    flex-direction:column;
    gap:16px;
}

/*==========================================================
    Cart Item
==========================================================*/

.vbc-cart-item{
    position:relative;
    display:flex;
    align-items:center;
    gap:16px;
    padding:16px;
    background:var(--vbc-color-surface);
    border:1px solid var(--vbc-color-border);
}

.vbc-cart-item__image{
    flex-shrink:0;
    width:90px;
    height:90px;
    background:var(--vbc-color-background);
    border:1px solid var(--vbc-color-border);
    display:block;
}

.vbc-cart-item__image img{
    width:100%;
    height:100%;
    object-fit:contain;
    padding:8px;
}

.vbc-cart-item__body{
    flex:1;
    min-width:0;
}

.vbc-cart-item__name{
    display:block;
    font-size:14px;
    font-weight:600;
    color:var(--vbc-color-heading);
    text-decoration:none;
    margin-bottom:6px;
}

.vbc-cart-item__price{
    font-size:14px;
    font-weight:700;
    color:var(--vbc-color-primary);
    margin-bottom:10px;
}

.vbc-cart-item__qty-input{
    width:64px;
    height:36px;
    text-align:center;
    border:1px solid var(--vbc-color-border);
    background:var(--vbc-color-background);
    font-size:14px;
}

.vbc-cart-item__remove{
    flex-shrink:0;
    display:flex;
    align-items:center;
    justify-content:center;
    width:32px;
    height:32px;
    color:var(--vbc-color-muted);
}

.vbc-cart-item__remove i{
    width:16px;
    height:16px;
    background-color:currentColor;
}

.vbc-cart-page__update{
    align-self:flex-start;
    background:none;
    border:1px solid var(--vbc-color-primary);
    color:var(--vbc-color-primary);
    padding:12px 24px;
    font-family:var(--vbc-font-heading);
    font-weight:700;
    font-size:12px;
    letter-spacing:.04em;
    text-transform:uppercase;
    cursor:pointer;
}

/*==========================================================
    Summary
==========================================================*/

.vbc-cart-page__summary-box{
    position:relative;
    background:var(--vbc-color-surface);
    border:1px solid var(--vbc-color-border);
    padding:24px;
}

.vbc-cart-page__summary-box h2{
    font-family:var(--vbc-font-heading);
    font-size:16px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.03em;
    color:var(--vbc-color-heading);
    margin:0 0 20px;
}

.vbc-cart-page__summary-row{
    display:flex;
    justify-content:space-between;
    font-size:14px;
    color:var(--vbc-color-body);
    padding:10px 0;
    border-bottom:1px solid var(--vbc-color-border);
}

.vbc-cart-page__summary-row--total{
    border-bottom:none;
    padding-top:14px;
    font-size:16px;
    font-weight:700;
    color:var(--vbc-color-heading);
}

.vbc-cart-page__summary-note{
    font-size:11px;
    color:var(--vbc-color-muted);
    margin:12px 0 16px;
}

.vbc-cart-page__checkout{
    display:block;
    width:100%;
    text-align:center;
    background:var(--vbc-color-primary);
    color:#fff;
    padding:14px;
    font-family:var(--vbc-font-heading);
    font-weight:700;
    font-size:13px;
    letter-spacing:.04em;
    text-transform:uppercase;
    text-decoration:none;
}

/*==========================================================
    Responsive
==========================================================*/

@media(max-width:900px){

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

}

@media(max-width:600px){

    .vbc-cart-page{
        padding:32px 0 60px;
    }

    .vbc-cart-page__title{
        font-size:26px;
    }

    .vbc-cart-item{
        flex-wrap:wrap;
    }

    .vbc-cart-item__remove{
        position:absolute;
        top:10px;
        right:10px;
    }

}