.bag-page{padding:calc(var(--nav-h) + var(--space-8)) var(--section-x) var(--space-10);background:var(--color-ivory)}.bag-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(16rem,22rem);gap:var(--space-8);max-width:var(--container);margin:0 auto;align-items:start}.bag-page h1{margin-bottom:var(--space-6)}.bag-count{font-family:var(--font-text);font-size:var(--fs-h3);font-weight:400;letter-spacing:0;color:var(--color-graphite)}.bag-page-empty{margin:0;font-size:var(--fs-body-lg);color:var(--color-graphite)}.bag-page-empty[hidden]{display:none}.bag-line{display:grid;grid-template-columns:8.5rem minmax(0,1fr) auto;gap:var(--space-5);align-items:start;padding:var(--space-5);margin-bottom:var(--space-4);background:var(--color-paper);border:1px solid var(--color-linen)}.bag-line-media{aspect-ratio:1;background:var(--color-stone);display:flex;align-items:center;justify-content:center}.bag-line-media img{width:100%;height:100%;object-fit:contain;display:block}.bag-line-title{display:block;margin:0;font-family:var(--font-text);font-size:var(--fs-small);font-weight:600;letter-spacing:.06em;line-height:1.4;text-transform:uppercase;text-decoration:none;color:var(--color-ink)}a.bag-line-title:hover{color:var(--color-forest)}.bag-line-meta{margin:var(--space-2) 0 0;font-size:var(--fs-small);line-height:1.45;color:var(--color-graphite)}.bag-line-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);margin-top:var(--space-4)}.bag-stepper{display:inline-flex;align-items:stretch;height:var(--tap);border:var(--border);background:var(--color-paper)}.bag-step{width:var(--tap);border:0;background:transparent;color:var(--color-ink);font-size:1.1rem;line-height:1;cursor:pointer}.bag-step:hover{color:var(--color-forest)}.bag-step:disabled{color:var(--color-linen);cursor:not-allowed}.bag-step:focus-visible{outline:2px solid var(--color-ink);outline-offset:-2px}.bag-qty{min-width:1.5rem;display:flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums;font-weight:600;color:var(--color-ink)}.bag-remove{border:0;background:none;padding:0;color:var(--color-graphite);font-family:var(--font-text);font-size:var(--fs-small);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.bag-remove:hover{color:var(--color-ink)}.bag-remove:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}.bag-line-total{margin:0;font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-ink);white-space:nowrap}.bag-summary{position:sticky;top:calc(var(--nav-h) + var(--space-5));padding:var(--space-6) var(--space-5);background:var(--color-paper);border:1px solid var(--color-linen)}.bag-summary h2{margin-bottom:var(--space-5);font-size:var(--fs-h4)}.bag-totals{margin:0 0 var(--space-5)}.bag-totals>div{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--space-4);align-items:start;padding:var(--space-4) 0;border-bottom:var(--border)}.bag-totals dt{color:var(--color-ink);font-weight:600}.bag-totals dt span{display:block;margin-top:2px;font-weight:400;font-size:var(--fs-small);line-height:1.4;color:var(--color-graphite)}.bag-totals dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-ink);white-space:nowrap}.bag-totals .is-total{margin-top:var(--space-2);padding-top:var(--space-4);border-bottom:0;border-top:1px solid var(--color-ink)}.bag-totals .is-total dt,.bag-totals .is-total dd{font-size:var(--fs-h4)}.bag-proceed{display:flex;align-items:center;justify-content:center;min-height:52px;padding:0 var(--space-4);background:var(--color-ink);border:1px solid var(--color-ink);color:var(--color-ivory);font-family:var(--font-text);font-size:var(--fs-button);font-weight:600;letter-spacing:var(--tracking-button);line-height:1.2;text-align:center;text-transform:uppercase;text-decoration:none}.bag-proceed[hidden]{display:none}@media(hover:hover){.bag-proceed:hover{background:var(--color-ivory);color:var(--color-ink);border-color:var(--color-ink)}}.bag-proceed:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}.bag-continue{display:block;margin-top:var(--space-4);text-align:center;color:var(--color-ink);font-size:var(--fs-small)}@media(max-width:800px){.bag-layout{grid-template-columns:1fr}.bag-summary{position:static}.bag-line{grid-template-columns:6.5rem minmax(0,1fr)}.bag-line-total{grid-column:2}}
