body.woocommerce-cart { background: #f6f5f3; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    margin:          0 0 24px !important;
    padding:         16px 20px !important;
    background:      var(--color-bg-alt) !important;
    border:          0 !important;
    border-left:     4px solid var(--color-primary) !important;
    border-radius:   8px !important;
    list-style:      none !important;
    font-size:       16px;
    line-height:     22px;
    color:           var(--color-heading);
}

.woocommerce-info { border-left-color: #3D8FD1 !important; }
.woocommerce-error { border-left-color: #D0392C !important; }
.woocommerce-error li { list-style: none !important; padding: 0 !important; margin: 0 !important; }

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before,
.woocommerce-error li::before { content: none !important; }
.woocommerce-error li + li { margin-top: 12px !important; }

.woocommerce-message__text {
    display:         flex;
    align-items:     center;
    justify-content: flex-start;
    flex-wrap:       wrap;
    gap:             16px;
    padding-left:    4px;
}

.woocommerce-message a.button.wc-forward,
.woocommerce-info a.button.wc-forward {
    flex:            none;
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    padding:         10px 24px;
    background:      var(--color-primary);
    border-radius:   100px;
    color:           #ffffff;
    font-size:       14px;
    font-weight:     500;
    white-space:     nowrap;
    transition:      background var(--transition);
}

.woocommerce-message a.button.wc-forward:hover,
.woocommerce-info a.button.wc-forward:hover { background: var(--color-primary-hov); }

.cart-page { padding-bottom: 60px; }

body.woocommerce-cart .woocommerce-breadcrumb { margin-top: 50px !important; }

.cart-card {
    display:        flex;
    flex-direction: column;
    align-items:    stretch;
    gap:            24px;
    max-width:      1000px;
    margin:         24px auto 0;
    padding:        40px;
    background:     #ffffff;
    border-radius:  16px;
}

.cart-card__title {
    font-size:      24px;
    font-weight:    700;
    line-height:    1.1;
    letter-spacing: -0.48px;
    text-align:     center;
    color:          var(--color-heading);
}

.cart-empty {
    align-items: center;
    padding:     60px 40px;
    text-align:  center;
}

.cart-empty .woocommerce-info { width: 100%; max-width: 480px; margin: 0 !important; text-align: left; }

.cart-empty__link {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    padding:         14px 32px;
    background:      var(--color-primary);
    border-radius:   10px;
    color:           #ffffff;
    font-size:       16px;
    font-weight:     500;
    transition:      background var(--transition);
}

.cart-empty__link:hover { background: var(--color-primary-hov); }

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

.cart-item {
    position:      relative;
    display:       flex;
    align-items:   center;
    gap:           24px;
    padding:       16px;
    background:    #ffffff;
    border:        1px solid var(--color-border);
    border-radius: 10px;
}

.cart-item__remove {
    display:         flex;
    align-items:     center;
    justify-content: center;
    position:        absolute;
    top:             13px;
    right:           16px;
    width:           16px;
    height:          16px;
    color:           var(--color-muted);
    transition:      color var(--transition);
}

.cart-item__remove:hover { color: var(--color-red); }

.cart-item__image {
    flex:  none;
    width: 100px;
}

.cart-item__image img {
    display:       block;
    width:         100%;
    height:        100px;
    object-fit:    contain;
    border-radius: 10px;
    background:    #ffffff;
}

.cart-item__info {
    display:        flex;
    flex-direction: column;
    align-items:    flex-start;
    gap:            12px;
    flex:           1 1 0;
    min-width:      0;
    padding-right:  24px;
}

.cart-item__title {
    font-size:   16px;
    font-weight: 600;
    line-height: 1.2;
    color:       var(--color-heading);
    transition:  color var(--transition);
}

a.cart-item__title:hover { color: var(--color-primary); }

.cart-item__qty { flex: none; }

.cart-item__qty .quantity {
    display:         flex;
    align-items:     center;
    justify-content: center;
    gap:             2px;
    padding:         8px;
    background:      #ffffff;
    border:          1px solid var(--color-border);
    border-radius:   170px;
}

.cart-item__qty .quantity__control {
    display:         flex;
    flex:            none;
    align-items:     center;
    justify-content: center;
    width:           34px;
    height:          34px;
    padding:         0;
    background:      #F4F3EE;
    border:          0;
    border-radius:   50%;
    color:           #1a1a1a;
    cursor:          pointer;
}

.cart-item__qty .qty {
    width:       40px;
    padding:     0;
    border:      0;
    font-size:   16px;
    font-weight: 400;
    text-align:  center;
    color:       #1a1a1a;
    appearance:  textfield;
}

.cart-item__qty .qty::-webkit-outer-spin-button,
.cart-item__qty .qty::-webkit-inner-spin-button { appearance: none; margin: 0; }

.cart-item__subtotal {
    flex:        none;
    width:       140px;
    font-size:   16px;
    font-weight: 600;
    text-align:  right;
    color:       var(--color-text);
}

.cart-totals { display: flex; flex-direction: column; gap: 24px; }

.cart-totals__row {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    gap:             16px;
    font-size:       16px;
    color:           var(--color-heading);
}

.cart-totals__amount {
    font-size:   24px;
    font-weight: 600;
    color:       var(--color-primary);
}

.cart-totals__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; }

.cart-continue-shopping {
    display:         flex;
    align-items:     center;
    justify-content: center;
    width:           215px;
    height:          50px;
    border:          1px solid var(--color-muted);
    border-radius:   10px;
    font-size:       14px;
    font-weight:     600;
    color:           var(--color-muted);
    transition:      background var(--transition), color var(--transition);
}

.cart-continue-shopping:hover { background: var(--color-muted); color: #ffffff; }

.cart-totals .checkout-button {
    display:         flex;
    align-items:     center;
    justify-content: center;
    height:          50px;
    padding:         14px 26px !important;
    background:      linear-gradient(90deg, #3F8F46 0%, #6DC170 100%) !important;
    border-radius:   10px !important;
    font-size:       16px;
    font-weight:     500;
    text-align:      center !important;
    color:           #ffffff !important;
    transition:      opacity var(--transition);
}

.cart-totals .checkout-button:hover { opacity: .9; }

@media (max-width: 767px) {
    .cart-card { padding: 24px 20px; }

    .cart-item { flex-wrap: wrap; gap: 12px 16px; }

    .cart-item__image { width: 70px; }
    .cart-item__image img { height: 70px; }

    .cart-item__info { flex: 1 1 auto; order: 1; padding-right: 24px; }
    .cart-item__qty { order: 3; }
    .cart-item__subtotal { flex: 1 1 auto; order: 2; width: auto; text-align: left; }

    .cart-totals__row { flex-wrap: wrap; }

    .cart-totals__actions { flex-direction: column; align-items: stretch; }
    .cart-continue-shopping { width: 100%; }
    .cart-totals .checkout-button { width: 100%; }
}
