/* Full-photo safe areas inside the decorative frames. */
html[data-image-shape="leaf"] .product-card figure:not(.image-fallback) img {
  position: absolute; top: var(--leaf-top, 39%); left: var(--leaf-left, 21%); width: var(--leaf-width, 58%); height: var(--leaf-height, 42%); padding: 0; object-fit: contain; object-position: center;
}
html[data-image-shape="flower"] .product-card figure:not(.image-fallback) img {
  position: absolute; top: 25%; left: 25%; width: 50%; height: 50%; padding: 0; object-fit: contain; object-position: center;
}
html[data-image-shape="circle"] .product-card figure:not(.image-fallback) img {
  position: absolute; top: 17%; left: 17%; width: 66%; height: 66%; padding: 0; object-fit: contain; object-position: center;
}

/* Two-column mobile catalog; full-size touch targets and wrapping text. */
@media (max-width: 639.98px) {
  .product-list[data-columns] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
  .product-list .product-card-main, .product-list .draft-card { padding: .5rem; gap: .75rem; }
  .product-list .product-card h3 { font-size: 1rem; line-height: 1.5; overflow-wrap: anywhere; }
  .product-list .price { font-size: 1rem; margin-top: .5rem; overflow-wrap: anywhere; }
  .product-list .product-actions { padding: 0 .5rem .5rem; gap: .5rem; }
  .product-list .product-actions > button { flex: 1 1 100%; min-height: 44px; padding-inline: .375rem; }
}
