/* Selected catalogue presentation only; cart and order behavior is unchanged. */
#shop-products.selected-catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#shop-products .selected-product { display: flex; align-items: stretch; gap: 14px; }
#shop-products .selected-product h2 { margin: 0; }
.selected-colors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
.selected-colors figure { min-width: 0; margin: 0; }
/* Shop thumbnail viewports: square at every card width, with centered cropping. */
#shop-products .selected-colors .product-thumbnail,
#shop-products .product-art { display: block; width: 100%; aspect-ratio: 1 / 1; overflow: hidden; }
#shop-products .selected-colors .product-thumbnail { background: #f7f9fa; border-radius: 6px; }
#shop-products .selected-colors .product-thumbnail > img,
#shop-products .product-art > img { display: block; width: 100%; height: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: center center; }
.selected-colors figcaption { margin-top: 6px; text-align: center; font-size: 14px; }
#shop-products .selected-product > .product-price { margin: 0; padding-top: 12px; font-size: 25px; }
#shop-products .selected-product > .selection-hold { color: var(--muted); }
.selection-note { margin: 0 0 24px; color: var(--muted); }
@media (max-width: 760px) { #shop-products.selected-catalog { grid-template-columns: 1fr; gap: 24px; } }

.product-description h3 { margin: 4px 0 8px; font-size: 16px; }
.product-description p { margin: 0; line-height: 1.8; color: var(--muted); }
.product-cart-controls > label { display: flex; align-items: center; gap: 12px; margin: 10px 0; }
.product-cart-controls select { min-width: 0; flex: 1; padding: 10px; font: inherit; }
.legacy-product-details { margin-top: 28px; }
.legacy-product-details summary { cursor: pointer; font-weight: 600; }
.legacy-description-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin-top: 20px; }
@media(max-width:760px) { .legacy-description-grid { grid-template-columns: 1fr; } }

/* One square image; colour buttons sit beside it on desktop and below on mobile. */
#shop-products .product-color-gallery { width: 100%; grid-template-columns: minmax(0, 1fr) minmax(110px, 0.65fr); align-items: center; }
.product-color-gallery .product-thumbnail { touch-action: pan-y; }
.product-color-dots { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.product-color-dot { display: flex; align-items: center; gap: 8px; padding: 9px; border: 2px solid transparent; border-radius: 8px; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.product-color-dot[aria-pressed="true"] { border-color: var(--accent, #176a85); background: #edf6fa; font-weight: 700; }
.product-color-dot:focus-visible { outline: 2px solid var(--accent, #176a85); outline-offset: 2px; }
.color-swatch { flex: 0 0 22px; width: 22px; height: 22px; border: 1px solid #999; border-radius: 50%; }
@media (max-width: 760px) {
  #shop-products .product-color-gallery { grid-template-columns: minmax(0, 1fr); }
  .product-color-dots { flex-direction: row; flex-wrap: wrap; }
  .product-color-dot { flex: 1 1 calc(50% - 8px); }
}

/* AUDIT2 R1: preserve full product silhouettes and separate selection controls. */
#shop-products .selected-product { border:1px solid #dce5ee; border-radius:16px; background:#fff; box-shadow:0 6px 20px rgba(22,59,96,0.03); }
#shop-products .selected-colors .product-thumbnail { border:1px solid #e3eaf0; border-radius:12px; background:#f7f9fb; }
#shop-products .selected-colors .product-thumbnail > img { object-fit:contain; }
#shop-products .product-description { color:#586b7c; }
#shop-products .product-description p { color:inherit; font-size:14px; }
#shop-products .product-cart-controls { width:100%; padding-top:18px; margin-top:auto; border-top:1px solid #e3eaf0; }
#shop-products .product-cart-controls .cart-actions { gap:10px; }
#shop-products .product-cart-controls .btn { min-width:0; border-radius:10px; padding:11px 14px; }
#shop-products .product-cart-controls .btn-dark { background:var(--accent); color:#fff; border-color:var(--accent); }
#shop-products .product-cart-controls .btn-dark:hover { background:#164f74; }
#shop-products .product-color-dot { min-height:44px; }
#shop-products .product-cart-controls :is(button,select):focus-visible { outline:2px solid var(--accent); outline-offset:3px; }

/* AUDIT2 R2: product facts and selection state; no price or order changes. */
#shop-products .selected-product,
#shop-products .selected-product:hover {
 border:1px solid #dce5ee; border-radius:16px;
 box-shadow:0 6px 20px rgba(22,59,96,0.03);
}
#shop-products .selected-product > .product-category,
#shop-products .selected-product > .product-state,
#shop-products .selected-product > .product-spec-line { margin:0; font-size:14px; font-weight:400; line-height:1.5; }
#shop-products .selected-product > .product-category { color:#586b7c; font-weight:500; }
#shop-products .selected-product > .product-spec-line { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
#shop-products .product-price-row { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 12px; margin-top:auto; padding-top:12px; }
#shop-products .product-price-row .product-price { margin:0; font-size:25px; font-weight:500; }
#shop-products .product-price-row .price-rule { color:#586b7c; }
#shop-products .product-cart-controls { margin-top:0; }
#shop-products .product-color-dot { font-weight:400; }
#shop-products .product-color-dot[aria-pressed="true"] { border-color:#1d5e8c; color:#1d5e8c; font-weight:500; }
#shop-products .product-color-dot[aria-pressed="true"] .color-swatch { border:2px solid #1d5e8c; }
#shop-products .product-color-dot[aria-pressed="true"]::after { content:"✓ 已选"; margin-left:auto; font-size:12px; font-weight:500; white-space:nowrap; }
html[lang="en"] #shop-products .product-color-dot[aria-pressed="true"]::after { content:"✓ Selected"; }
