.open-cart-button[hidden], .cart-add-button[hidden] { display: none !important; }
.cart-add-button, .open-cart-button, #photo-cart button {
    font-family: inherit; padding: 10px 14px; border: 1px solid #333; border-radius: 0;
    background: white; color: #333; cursor: pointer; font-size: 12px; letter-spacing: .5px;
}
.cart-add-button { background: #333; color: white; }
.cart-add-button:hover, #cart-checkout:hover { background: #555; color: white; }
.cart-add-button[aria-pressed="true"] { background: #eee; color: #333; border-color: #ddd; }
.photo-actions .cart-add-button { flex-basis: 100%; }
.filmstrip-nav-left { flex-wrap: wrap; }
.modal-cart-actions { position: absolute; top: 12px; left: 12px; right: 55px; z-index: 6; display: flex; gap: 8px; flex-wrap: wrap; }
#photo-cart { width: min(720px, calc(100% - 32px)); max-height: calc(100dvh - 40px); margin: auto; padding: 28px; border: 1px solid #ddd; color: #333; background: white; overflow: auto; }
#photo-cart::backdrop { background: rgba(0,0,0,.65); }
.cart-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.cart-heading h2 { font-weight: 300; font-size: 1.5rem; letter-spacing: 1px; }
#cart-gallery-name, .cart-hint { color: #777; font-size: 13px; margin: 14px 0; }
.cart-item { display: grid; grid-template-columns: 56px minmax(0,1fr) auto auto; gap: 14px; align-items: center; border-bottom: 1px solid #eee; padding: 16px 0; font-size: 13px; }
.cart-item img { width: 56px; height: 56px; object-fit: cover; background: #eee; }
.cart-item span { overflow-wrap: anywhere; }
.cart-item strong { font-weight: 500; }
.cart-total-line { display: flex; justify-content: space-between; gap: 20px; padding: 20px 0; }
.cart-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 20px; flex-wrap: wrap; }
#photo-cart #cart-checkout { background: #333; color: white; }
#photo-cart button:disabled { opacity: .45; cursor: default; }
.cart-feedback { position: fixed; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (max-width: 600px) {
    #photo-cart { padding: 20px 16px; }
    .cart-item { grid-template-columns: 48px minmax(0,1fr) auto; gap: 10px; }
    .cart-item img { width: 48px; height: 48px; }
    .cart-item button { grid-column: 2 / -1; justify-self: end; }
    .cart-actions button { width: 100%; }
    .modal-cart-actions { top: auto; bottom: 50px; right: 12px; }
}
