/*
 * ss-cart-item — Cart line item
 *
 * Structure:
 *   <article class="ss-cart-item">
 *     <img class="ss-cart-item__image" />
 *     <div class="ss-cart-item__body">
 *       <h4 class="ss-cart-item__name">Name</h4>
 *       <div class="ss-cart-item__sku">SKU</div>
 *       <div class="ss-cart-item__options">Size: M · Color: Blue</div>
 *     </div>
 *     <div class="ss-cart-item__controls">
 *       <input class="ss-input ss-input--sm ss-input--mono" type="number" value="1" />
 *       <button class="ss-btn ss-btn--ghost ss-btn--icon-only ss-btn--sm" aria-label="Remove"><svg class="ss-icon">...</svg></button>
 *     </div>
 *     <div class="ss-cart-item__total"><span class="ss-num">$12.34</span></div>
 *   </article>
 *
 * Mobile-first: image + body stack, controls + total below.
 * Desktop: single row layout.
 */

.ss-cart-item {
    display: grid;
    grid-template-columns: 72px 1fr;
    grid-template-areas:
        "image body"
        "controls controls"
        "total total";
    gap: var(--space-3);
    padding: var(--space-4);
    background: var(--bg-card);
    border: 1px solid var(--border-card);
    border-radius: var(--radius-md);
}

.ss-cart-item__image {
    grid-area: image;
    width: 72px;
    height: 72px;
    object-fit: contain;
    border-radius: var(--radius-sm);
    background: var(--bg-card-dim);
    padding: var(--space-1);
}

.ss-cart-item__body { grid-area: body; min-width: 0; }

.ss-cart-item__name {
    margin: 0 0 var(--space-1);
    font-size: var(--text-md);
    font-weight: var(--weight-semibold);
    color: var(--text-primary);
    line-height: var(--leading-tight);
}

.ss-cart-item__sku {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    color: var(--accent-text);
    background: var(--accent-soft);
    padding: 2px var(--space-2);
    border-radius: var(--radius-sm);
    margin-top: var(--space-1);
}

.ss-cart-item__options {
    margin-top: var(--space-1);
    font-size: var(--text-sm);
    color: var(--text-muted);
}

.ss-cart-item__controls {
    grid-area: controls;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding-top: var(--space-3);
    border-top: 1px solid var(--border-divider);
}

.ss-cart-item__controls .ss-input {
    width: 72px;
    text-align: center;
}

.ss-cart-item__total {
    grid-area: total;
    text-align: right;
    font-family: var(--font-mono);
    font-size: var(--text-lg);
    font-weight: var(--weight-bold);
    color: var(--text-primary);
}

.ss-cart-item--unavailable { opacity: 0.55; }
.ss-cart-item--unavailable .ss-cart-item__name { color: var(--text-muted); }

/* ── Desktop: single row ──────────────────────────────────────── */

@media (min-width: 640px) {
    .ss-cart-item {
        grid-template-columns: 88px 1fr auto auto;
        grid-template-areas: "image body controls total";
        align-items: center;
        gap: var(--space-4);
    }
    .ss-cart-item__image { width: 88px; height: 88px; }
    .ss-cart-item__controls { padding-top: 0; border-top: none; }
    .ss-cart-item__total { min-width: 100px; }
}
