/* Keep every product photo visible without cropping its edges. */
.cart-left{min-width:0;flex:1}
.cart-product-info{min-width:0;overflow-wrap:anywhere}
.cart-quantity{display:flex;align-items:center;gap:5px;margin-top:10px}
.cart-quantity button{width:34px;height:36px;border:1px solid var(--line);border-radius:8px;background:var(--brand-tint);color:var(--ink);font-size:20px}
.cart-quantity button:disabled{opacity:.4;cursor:not-allowed;transform:none}
.cart-quantity input{width:56px;height:36px;padding:4px;border:1px solid var(--line);border-radius:8px;text-align:center;font:inherit}
.cart-item>div:last-child{flex-shrink:0;text-align:right;max-width:115px}
.cart-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap}
.cart-btn svg{flex-shrink:0}
.cart-btn #cartCount{display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:25px;padding:0 6px;border-radius:99px;background:var(--lime);color:var(--deep);font-size:.82rem;font-weight:900}
.cart-btn:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.product .photo{height:auto;aspect-ratio:4/3;background:var(--soft);padding:10px}
.product .photo img{width:100%;height:100%;min-height:0;object-fit:contain;display:block}
.thumb{overflow:hidden;flex-shrink:0}
.thumb img{width:100%;height:100%;object-fit:contain;display:block}
.product .photo[role=button],.product h3[role=button]{cursor:pointer}
.product .photo:focus-visible,.product h3:focus-visible{outline:3px solid var(--brand);outline-offset:-3px}
.product-detail-link{display:block;margin-top:12px;width:100%;background:transparent;border:1px solid var(--line);border-radius:8px;padding:9px;color:var(--brand);font-weight:bold}
.product-preview{margin:10px 0 0;padding:12px;border:1px dashed var(--line);border-radius:12px;background:var(--soft)}
.product-preview[hidden]{display:none}
.product-preview img{display:block;width:100%;height:200px;object-fit:contain}
.product-preview figcaption{margin-top:8px;font-size:.8rem;font-weight:normal;line-height:1.5;color:var(--muted)}
.product-dialog{width:min(850px,calc(100% - 24px));max-height:90dvh;padding:0;border:1px solid var(--line);border-radius:20px;color:var(--ink);box-shadow:0 20px 80px #0005}
.product-dialog::backdrop{background:color-mix(in srgb,var(--deep) 73%,transparent)}
.product-dialog-top{display:flex;justify-content:flex-end;padding:8px 12px}
.product-dialog-close{border:0;background:var(--brand-tint);border-radius:50%;font-size:24px;width:40px;height:40px}
.product-dialog-body{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:0 24px 28px}
.product-dialog-media{background:var(--soft);border-radius:14px;min-width:0;display:grid;place-items:center;min-height:260px;font-size:80px;padding:12px}
.product-dialog-media img{display:block;width:100%;height:340px;object-fit:contain}
.product-dialog h2{font-size:1.7rem;margin:10px 0;overflow-wrap:anywhere}
.product-dialog-description{white-space:pre-wrap;line-height:1.6;overflow-wrap:anywhere}
.product-dialog-price{font-size:1.6rem;font-weight:bold;margin:20px 0 10px}
.product-dialog label{display:block;margin-top:20px;font-weight:bold}
.product-dialog .qty{min-height:44px;width:80px}
.product-dialog .add{min-height:44px}
.product-dialog-status{color:var(--danger);font-size:.9rem;min-height:1.2em}
@media(max-width:600px){.product-dialog-body{grid-template-columns:1fr;gap:12px;padding:0 18px 20px}.product-dialog-media{min-height:180px}.product-dialog-media img{height:240px}.product-dialog h2{font-size:1.4rem}.product .photo{aspect-ratio:1;padding:6px}}
