
@layer components {

    .summary {
        position: sticky;
        top: calc(var(--h-header-slim) + var(--s-5));
        display: grid;
        gap: var(--s-5);
        margin-top: var(--s-6);
        padding: var(--s-6);
        border-radius: var(--r-1);
        background: var(--c-tile);
    }

    .summary__title {
        font-family: var(--f-display);
        font-size: var(--t-xl);
        font-weight: var(--fw-display);
    }

    .summary__notes {
        display: grid;
        gap: var(--s-3);
        font-size: var(--t-xs);
        color: var(--c-muted);
    }

    .summary__notes li {
        display: flex;
        align-items: baseline;
        gap: var(--s-3);
    }

    .summary__notes .icon {
        position: relative;
        top: 4px;
        font-size: 13px;
    }

    .summary__lines {
        display: grid;
        gap: var(--s-4);
    }

    .summary__lines:empty {
        display: none;
    }

    .summary__line {
        display: grid;
        grid-template-columns: 64px minmax(0, 1fr) auto;
        align-items: center;
        gap: var(--s-4);
        font-size: var(--t-sm);
    }

    .summary__thumb {
        position: relative;
        width: 64px;
        height: 64px;
        border-radius: var(--r-1);
        background: var(--c-page);
    }

    .summary__img {
        width: 100%;
        height: 100%;
        border-radius: var(--r-1);
        object-fit: cover;
    }

    .summary__qty {
        position: absolute;
        top: -7px;
        right: -7px;
        display: grid;
        place-items: center;
        min-width: 20px;
        height: 20px;
        padding-inline: 5px;
        border-radius: var(--r-pill);
        background: var(--c-ink);
        color: var(--c-page);
        font-size: var(--t-2xs);
        font-weight: 600;
    }

    .summary__name {
        display: grid;
        font-weight: 500;
    }

    .summary__variant {
        font-weight: 400;
        color: var(--c-muted);
    }

    .summary__price {
        font-variant-numeric: tabular-nums;
    }

    .summary__line[data-state="unavailable"] .summary__thumb {
        opacity: .55;
    }

    .summary__line[data-state="unavailable"] .summary__price {
        color: var(--c-warn);
    }

    .summary__empty {
        color: var(--c-muted);
    }

    @media (max-width: 899px) {
        .summary {
            position: static;
            margin-top: 0;
        }
    }

}
