.cart-page { margin-top: 5rem; margin-bottom: 8rem; }

.cart-page__header {
    display: flex; justify-content: space-between; align-items: baseline;
    margin-bottom: 3rem; flex-wrap: wrap; gap: 1rem;
}
.cart-page__header-actions { display: flex; gap: 1.5rem; align-items: center; }
.cart-page__continue-link { text-decoration: underline; color: inherit; }

.cart-page__list { display: flex; flex-direction: column; gap: 2rem; margin-bottom: 4rem; }

.cart-page__item {
    display: grid;
    grid-template-columns: 12rem 1fr 14rem;
    gap: 2rem;
    padding: 2rem;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    align-items: start;
}

.cart-page__item-media { display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.cart-page__thumb {
    width: 10rem; height: 10rem; object-fit: cover;
    border-radius: 4px; display: block;
}
.cart-page__thumb--placeholder {
    display: flex; align-items: center; justify-content: center;
    background: #f3f3f3; color: #c9cccf; font-size: 4rem;
}
.cart-page__remove-btn {
    font-size: 1.3rem; color: #b91c1c; background: none; border: none;
    cursor: pointer; text-decoration: underline; padding: 0;
}
.cart-page__remove-form { margin: 0; }

.cart-page__item-body { min-width: 0; }
.cart-page__title {
    font-size: 1.7rem; font-weight: 600; color: inherit;
    text-decoration: none; display: block; margin-bottom: 1rem;
}
.cart-page__title:hover { text-decoration: underline; }

.cart-page__features {
    list-style: none; margin: 0 0 1rem; padding: 0;
    font-size: 1.35rem; line-height: 1.6;
}
.cart-page__feature { margin-bottom: .35rem; }
.cart-page__feature-label { font-weight: 500; margin-right: .35rem; }
.cart-page__feature-value { color: var(--color-base-text-opacity-85, #555); }

.cart-page__file-thumb {
    display: inline-block; padding: 0; border: 1px solid #d1d5db;
    border-radius: 4px; background: #fff; cursor: zoom-in; vertical-align: middle;
}
.cart-page__file-thumb img {
    width: 4.8rem; height: 4.8rem; object-fit: contain; display: block;
}
.cart-page__file-dl {
    display: inline-flex; align-items: center; gap: .4rem;
    color: inherit; text-decoration: underline; font-size: 1.3rem;
}

.cart-page__unit-price {
    font-size: 1.35rem; color: var(--color-base-text-opacity-85, #666);
    margin-bottom: 1.5rem;
}

.cart-page__size-form { max-width: 28rem; }
.cart-page__size-table {
    width: 100%; border-collapse: collapse; font-size: 1.3rem; margin-bottom: .75rem;
}
.cart-page__size-table th,
.cart-page__size-table td {
    padding: .65rem .75rem; border: 1px solid #d1d5db; text-align: center; vertical-align: middle;
}
.cart-page__size-table th { background: #f9fafb; font-weight: 500; }

.cart-page__update-btn {
    display: inline-block; padding: .55rem 1.2rem;
    border: 1px solid #111; border-radius: 4px;
    background: #fff; color: #111; font-size: 1.25rem;
    cursor: pointer; margin-top: .25rem;
}
.cart-page__update-btn:hover { background: #f9fafb; }

.cart-page__item-qty { text-align: center; }
.cart-page__qty-label {
    display: block; font-size: 1.3rem; color: var(--color-base-text-opacity-85, #666);
    margin-bottom: .75rem;
}
.cart-page__qty-total { font-size: 3.2rem; font-weight: 600; line-height: 1; }
.cart-page__single-qty-form { display: flex; flex-direction: column; align-items: center; gap: .75rem; }
.cart-page__single-qty-form .qty-stepper { margin: 0 auto; }

.cart-page__clear-btn {
    font-size: 1.3rem; color: #b91c1c; background: none; border: none;
    cursor: pointer; text-decoration: underline;
}

.cart-page__summary-wrap { display: flex; justify-content: flex-end; }
.cart-page__summary { width: 100%; max-width: 40rem; }
.cart-page__discount-form { display: flex; gap: 1rem; margin-bottom: 2rem; }
.cart-page__discount-input {
    flex: 1; padding: 1.2rem 1.6rem; border: 1px solid #e5e5e5;
    border-radius: var(--theme-corner-radius, 4px); font-size: 1.4rem;
}
.cart-page__discount-input--applied { background: #ecfdf5; }

.cart-page__totals { text-align: right; }
.cart-page__totals-row {
    display: flex; justify-content: space-between;
    margin-bottom: 1rem; font-size: 1.6rem;
}
.cart-page__totals-row--discount { color: #166534; }
.cart-page__totals-row--grand { font-size: 2rem; font-weight: 600; margin-bottom: 1.5rem; }
.cart-page__tax-note {
    color: var(--color-base-text-opacity-85, #666);
    font-size: 1.4rem; margin-bottom: 2rem;
}
.cart-page__checkout-btn { width: 100%; text-align: center; display: block; }

.cart-page__alert { border-radius: 8px; padding: 12px 16px; margin-bottom: 16px; font-size: 1.4rem; }
.cart-page__alert--success { background: #ecfdf5; border: 1px solid #86efac; color: #166534; }
.cart-page__alert--error { background: #fef2f2; border: 1px solid #fca5a5; color: #991b1b; }

.cart-page__empty { text-align: center; padding: 10rem 0; }
.cart-page__empty .bx-cart { font-size: 6rem; color: var(--color-base-text-opacity-85, #666); margin-bottom: 2rem; display: block; }

.cart-page__lightbox {
    position: fixed; inset: 0; z-index: 9999;
    background: rgba(0,0,0,.85); display: flex;
    align-items: center; justify-content: center; padding: 2rem;
}
.cart-page__lightbox[hidden] { display: none !important; }
.cart-page__lightbox-img { max-width: 90vw; max-height: 90vh; object-fit: contain; }
.cart-page__lightbox-close {
    position: absolute; top: 1.5rem; right: 2rem;
    background: none; border: none; color: #fff;
    font-size: 3rem; cursor: pointer; line-height: 1;
}

@media (max-width: 768px) {
    .cart-page__item {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    .cart-page__item-media { flex-direction: row; justify-content: flex-start; }
    .cart-page__item-qty { text-align: left; }
    .cart-page__single-qty-form { align-items: flex-start; }
}
