/* A shared, slightly wider frame preserves the existing photograph backgrounds. */
.chapter-pieces .ring-photo,
.product-dialog .product-image-wrap{aspect-ratio:1.1 / 1}
.chapter-pieces .ring-photo img,
.product-dialog .product-image-wrap img{width:100%;height:100%;object-fit:cover;object-position:center;transform:translate(var(--ring-x,0%),var(--ring-y,0%)) scale(var(--ring-scale,1));transition:none}
.ring-photo:has(img[src*="crete-concept"]){--ring-scale:1.05;--ring-x:-2%}
.ring-photo:has(img[src*="vestige-concept"]){--ring-scale:1.12;--ring-x:-1.6%;--ring-y:.8%}
.ring-photo:has(img[src*="pli-concept"]){--ring-scale:1.05;--ring-x:-2%;--ring-y:2%}
.ring-photo:has(img[src*="etreinte-concept"]){--ring-scale:1.04;--ring-x:-1.5%;--ring-y:1.5%}
.ring-photo:has(img[src*="estran-concept"]){--ring-scale:1.06;--ring-x:-2.5%}
.ring-photo:has(img[src*="goutte-concept"]){--ring-scale:1.12;--ring-y:1.5%}
.ring-photo:has(img[src*="strate-concept"]){--ring-scale:1.06;--ring-x:-2.5%}
.ring-photo:has(img[src*="arche-concept"]){--ring-scale:1.03;--ring-x:-1%}
.ring-open:hover .ring-photo img{transform:translate(var(--ring-x,0%),var(--ring-y,0%)) scale(var(--ring-scale,1))}
