/* CART LAYOUT */
.page-title {
    font-family: 'Playfair Display', serif;
    font-size: clamp(28px, 4vw, 40px);
    color: #E5E2E1;
    margin-bottom: 40px
}

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

.cart-items {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid rgba(80, 69, 59, .1);
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 32px
}

.cart-item {
    display: flex;
    gap: 24px;
    padding: 24px;
    border-bottom: 1px solid rgba(80, 69, 59, .1);
    background: var(--card);
    transition: opacity .3s, transform .3s
}

.cart-item:last-child {
    border-bottom: none
}

.cart-item__img {
    width: 100px;
    height: 100px;
    border-radius: 4px;
    overflow: hidden;
    flex-shrink: 0
}

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

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

.cart-item__top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 16px
}

.cart-item__name {
    font-family: 'Playfair Display', serif;
    font-size: 18px;
    color: #E5E2E1;
    margin-bottom: 4px
}

.cart-item__desc {
    font-size: 12px;
    color: var(--stone)
}

.cart-item__price {
    font-family: 'Playfair Display', serif;
    font-size: 18px;
    color: var(--gold);
    white-space: nowrap
}

.cart-item__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between
}

.qty-pill {
    display: flex;
    align-items: center;
    border: 1px solid rgba(80, 69, 59, .3);
    border-radius: 999px;
    overflow: hidden
}

.qty-btn {
    width: 32px;
    height: 32px;
    background: transparent;
    border: none;
    color: #E5E2E1;
    font-size: 16px;
    cursor: pointer;
    transition: background .2s
}

.qty-btn:hover {
    background: rgba(80, 69, 59, .2)
}

.qty-num {
    min-width: 32px;
    text-align: center;
    font-size: 14px;
    color: #E5E2E1
}

.remove-btn {
    font-size: 11px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--stone);
    background: none;
    border: none;
    cursor: pointer;
    transition: color .2s
}

.remove-btn:hover {
    color: var(--red)
}

/* Add-ons */
.addons-section {
    margin-top: 8px
}

.addons-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px
}

.addon-line {
    flex: 1;
    height: 1px;
    background: rgba(80, 69, 59, .1)
}

.addon-label {
    font-size: 10px;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: var(--stone);
    white-space: nowrap
}

.addons-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 32px
}

.addon-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px;
    background: var(--card);
    border: 1px solid rgba(80, 69, 59, .1);
    border-radius: 8px
}

.addon-icon-box {
    width: 40px;
    height: 40px;
    background: rgba(212, 163, 115, .07);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.addon-info {
    flex: 1
}

.addon-name {
    font-size: 14px;
    color: #E5E2E1;
    margin-bottom: 2px
}

.addon-price {
    font-size: 12px;
    color: var(--gold)
}

.addon-add-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid rgba(212, 163, 115, .3);
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .2s
}

.addon-add-btn.added {
    background: var(--red);
    border-color: var(--red)
}

.return-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: var(--stone);
    text-decoration: none;
    transition: color .2s
}

.return-btn:hover {
    color: var(--cream)
}

/* Summary */
.summary-card {
    background: var(--card);
    border-radius: 4px;
    padding: 32px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25);
    position: sticky;
    top: 120px
}

.summary-title {
    font-family: 'Playfair Display', serif;
    font-size: 20px;
    color: var(--gold);
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(80, 69, 59, .2)
}

.summary-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 12px
}

.summary-label {
    font-size: 13px;
    color: var(--cream)
}

.summary-value {
    font-family: 'Playfair Display', serif;
    font-size: 15px;
    color: var(--cream)
}

.summary-total-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin: 24px 0
}

.summary-total-label {
    font-size: 13px;
    color: var(--gold)
}

.summary-total-amount {
    font-family: 'Playfair Display', serif;
    font-size: 40px;
    letter-spacing: -.04em;
    color: var(--gold);
    line-height: 1
}

.btn-checkout {
    width: 100%;
    padding: 20px;
    background: var(--red);
    border: none;
    border-radius: 4px;
    font-size: 12px;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: #fff;
    cursor: pointer;
    transition: opacity .2s
}

.btn-checkout:hover {
    opacity: .88
}

@media(max-width:1100px) {
    .cart-layout {
        grid-template-columns: 1fr
    }

    .summary-card {
        position: static
    }
}

@media(max-width:700px) {
    .addons-grid {
        grid-template-columns: 1fr
    }
}