/* Browse-history visual language; WC remains authoritative for Cart state. */
.myopal-cart { background: #f6f2ea; padding: 0; }
.myopal-cart-content { position: relative; max-width: 64rem; margin: -1rem auto 0; padding: 1.25rem max(1rem, env(safe-area-inset-left, 0px)) 3rem; border-radius: 1rem 1rem 0 0; background: #f6f2ea; min-height: 45svh; }
.myopal-cart-form { margin:0; }
.myopal-cart-tools { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; font-size: .75rem; color: #8b806f; }
.myopal-cart-select-all { display: flex; align-items: center; gap: .5rem; min-height: 44px; }
.myopal-cart input[type='checkbox'] { flex: none; width: 18px; min-height: 18px; height: 18px; accent-color: #967844; cursor: pointer; }
.myopal-cart-items { display: grid; gap: .75rem; }
.myopal-cart-item { position: relative; display: grid; grid-template-columns: 24px clamp(4.75rem, 24vw, 8rem) minmax(0, 1fr); align-items: center; gap: .625rem; padding: .75rem .625rem; background: #fffdf8; border: 1px solid #b69a631c; border-radius: .875rem; box-shadow: 0 3px 16px #40301b05; scroll-margin-block: 1.5rem; }
.myopal-cart-check { display: flex; align-items: center; justify-content: center; min-height: 44px; }
.myopal-cart-image { display: block; overflow: hidden; border-radius: .625rem; aspect-ratio: 1; background: #eee8dd; }
.myopal-cart-image img { width: 100%; height: 100%; object-fit: cover; }
.myopal-cart-item-body { min-width: 0; padding-right: .25rem; }
.myopal-cart-item h2 { font-size: .8125rem; font-weight: 500; line-height: 1.5; text-wrap: initial; overflow-wrap: anywhere; }
.myopal-cart-item h2 a { color: #27221b; text-decoration: none; }
.myopal-cart-price { color: #967844; font-size: .9375rem; font-weight: 600; margin-top: .625rem; overflow-wrap: anywhere; }
.myopal-cart-item-status { font-size: .6875rem; color: var(--myopal-color-error); margin-top: .25rem; }
.myopal-cart-item dl { font-size: .6875rem; color: #8b806f; }
.myopal-cart-remove { position:absolute; top:-.4rem; right:-.4rem; }
.myopal-cart-form.is-enhanced:not(.is-editing) .myopal-cart-remove { display: none; }
.myopal-cart-edit-actions { display: flex; align-items: center; gap: var(--myopal-space-2); }
.myopal-cart-form:not(.is-enhanced) .myopal-cart-edit-tools { position:static; margin-block:var(--myopal-space-4); }
.myopal-cart-form.is-enhanced:not(.is-editing) .myopal-cart-edit-actions { display: none; }
.myopal-cart-form.is-editing .myopal-cart-edit-toggle { display: none; }
.myopal-cart-form.is-editing .myopal-cart-edit-actions { animation: myopal-cart-edit-enter .28s ease-out; }

.myopal-cart-summary-inner { max-width: 60rem; margin-inline: auto; }
.myopal-cart-summary-line { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; font-size: .75rem; }
.myopal-cart-summary-line strong { color: #967844; font-size: 1.125rem; }
.myopal-cart-summary-line small { color: #8b806f; font-size: .625rem; }
.myopal-cart-summary p { font-size: .625rem; color: #8b806f; margin-top: .25rem; }
.myopal-cart-primary { display: flex; justify-content: center; align-items: center; gap: .75rem; width: 100%; min-height: var(--myopal-action-height); padding: var(--myopal-action-padding); background: var(--myopal-action-background); border: 1px solid var(--myopal-color-black); border-radius: var(--myopal-radius-pill); color: var(--myopal-action-foreground); text-decoration: none; font-size: .875rem; font-weight: 600; margin-top: .75rem; }
.myopal-cart-primary:disabled { opacity: .5; cursor: not-allowed; }
.myopal-cart-feedback:not(:empty) { padding: .625rem; border-radius: .5rem; background: #ede5d4; margin-bottom: .75rem; font-size: .75rem; }
.myopal-cart-empty { display: grid; justify-items: center; gap: 1rem; text-align: center; padding: 4.5rem 1rem; }
.myopal-cart-empty h2 { font-size: 1.25rem; font-weight: 500; }
.myopal-cart-empty-mark { color: #b69a63; font-size: 2rem; }
.myopal-cart-empty p { font-size: .875rem; color: #8b806f; }
.myopal-cart-empty .myopal-cart-primary { max-width: 13rem; }
.myopal-cart-confirm { width: min(28rem, calc(100% - 2rem)); padding: 1.5rem; border: 0; border-radius: 1rem; background: #fffdf8; color: #27221b; }
.myopal-cart-confirm::backdrop { background: #0007; }
.myopal-cart-confirm h2 { font-size: 1.125rem; }
.myopal-cart-confirm p { font-size: .875rem; color: #8b806f; margin-block: .75rem 1.25rem; }
.myopal-cart-confirm > div { display: flex; gap: .75rem; }
.myopal-cart-confirm button { flex: 1; min-height: 44px; border-radius: 999px; background: #f6f2ea; border: 1px solid #b69a6340; }
.myopal-cart-confirm [data-confirm-remove] { background: #151515; color: #efd18f; border: 0; }
.myopal-cart [hidden] { display: none; }

@keyframes myopal-cart-edit-enter { from { opacity: 0; transform: translateX(2rem); } to { opacity: 1; transform: translateX(0); } }
@media (min-width: 48rem) {
 .myopal-cart-content { padding-inline: 2rem; }
 .myopal-cart-item { gap: 1.25rem; padding: 1rem; }
 .myopal-cart-item h2 { font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) { .myopal-cart-form.is-editing .myopal-cart-edit-actions { animation: none; } }

/* Desktop composition — shared 64rem / primary fine-pointer contract. */
@media (min-width:64rem) and (hover:hover) and (pointer:fine) {
.myopal-cart-content { max-width:none; margin:0; padding:0; }
 .myopal-cart-form { display:grid; grid-template-columns:minmax(0,1fr) 21rem; gap:1rem 2rem; align-items:start; }
 .myopal-cart-tools { grid-column:1; grid-row:1; margin:0; padding-right:9rem; font-size:.875rem; }
 .myopal-cart-items { grid-column:1; grid-row:2; gap:1rem; }
 .myopal-cart-form .myopal-cart-edit-tools { position:static; grid-column:1; grid-row:1; justify-self:end; margin:0; }
 .myopal-site.myopal-desktop-shell .myopal-cart-summary { position:sticky; inset:auto; top:calc(var(--myopal-header-content-height) + 2rem); grid-column:2; grid-row:1 / 3; width:100%; max-width:none; margin:0; padding:1.5rem; border-radius:var(--myopal-radius-md); background:var(--myopal-color-surface-raised); z-index:1; }
 .myopal-cart-summary-line { display:block; font-size:.9375rem; }
 .myopal-cart-summary-line strong { display:block; font-size:1.5rem; margin-top:.75rem; }
 .myopal-cart-summary-line small,.myopal-cart-summary p { font-size:.8125rem; }
 .myopal-cart-primary { margin-top:1.25rem; }
 .myopal-cart-item { grid-template-columns:1.5rem 7rem minmax(0,1fr); }
 .myopal-cart-item h2 { font-size:1rem; }
}
