/* A shared viewing area; the original product files retain their colours and proportions. */
.catalogue-page .shop-photo-button{height:250px;background:#f0f3eb;padding:14px;border:1px solid #dbe3d6;box-sizing:border-box}
.catalogue-page .shop-photo-button .shop-photo{object-fit:contain;object-position:center;max-width:100%;max-height:100%}
.catalogue-page #catalogue-product .product-detail-shell{width:min(720px,calc(100vw - 28px))}
.catalogue-page #catalogue-product .catalogue-product-photo{width:100%;max-width:646px;height:360px;min-height:0;box-sizing:border-box;position:relative;overflow:hidden;padding:20px;margin-left:auto;margin-right:auto;margin-bottom:0;border:1px solid #dbe3d6;border-radius:8px;background:#f0f3eb}
.catalogue-page #catalogue-product .catalogue-product-photo[data-layout=ring],.catalogue-page #catalogue-product .catalogue-product-photo[data-layout=set]{background:#111110}
.catalogue-page #catalogue-product .catalogue-product-photo>.catalogue-cart-thumb{display:flex;align-items:center;justify-content:center;width:100%;height:100%;max-width:none;flex:1 1 100%;border:0;border-radius:0;background:transparent;overflow:visible}
.catalogue-page #catalogue-product .catalogue-product-photo .catalogue-cart-thumb .standalone-product-photo{display:block;width:100%;height:100%;max-width:100%;max-height:100%;padding:0;object-fit:contain;object-position:center;border-radius:0;background:transparent}
.catalogue-page #catalogue-product .catalogue-product-photo .catalogue-cart-thumb small{display:none}
.catalogue-page #catalogue-product .catalogue-product-photo.photo-chain{background:#fff}
.catalogue-photo-tools{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 0 15px;color:#576e60;max-width:646px;margin-left:auto;margin-right:auto}
.catalogue-photo-view-label{font:400 11px/1.5 Arial,sans-serif}
.catalogue-photo-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.catalogue-photo-action{display:inline-flex;align-items:center;justify-content:center;min-height:44px;font:400 13px/1.4 Arial,sans-serif;padding:10px 13px;border:1px solid #8ba78d;border-radius:6px;color:#234f38;background:#edf3e7;cursor:pointer;white-space:normal}
.catalogue-photo-action:hover{background:#e1ecd9}.catalogue-photo-action:focus-visible{outline:2px solid #a88537;outline-offset:3px}
#catalogue-photo-viewer{width:min(1050px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:94dvh;padding:0;background:#fffef9;color:#153e32;border:1px solid #d8e2d8;border-radius:12px;box-shadow:0 20px 80px #122e3433;overflow:auto}
#catalogue-photo-viewer::backdrop{background:#173c37aa}
#catalogue-photo-viewer .catalogue-photo-viewer-shell{padding:20px}
#catalogue-photo-viewer .catalogue-photo-viewer-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
#catalogue-photo-viewer h2{font:400 25px/1.25 Georgia,serif;margin:0;overflow-wrap:anywhere;min-width:0}
#catalogue-photo-viewer .catalogue-photo-viewer-heading button{flex:none}
#catalogue-photo-viewer .catalogue-photo-stage{height:65dvh;max-height:650px;position:relative;overflow:hidden;background:#f0f3eb;border:1px solid #dbe3d6;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:20px}
#catalogue-photo-viewer .standalone-product-photo{display:block;width:100%;height:100%;max-height:100%;object-fit:contain;background:transparent;border-radius:0}
#catalogue-photo-viewer .photo-chain{background:#fff}
#catalogue-photo-viewer .catalogue-photo-tools{padding-bottom:0}
/* Each source spread becomes two leaves, including matching product hotspots. */
.page-stage .book .catalogue-leaf[data-page-part=left],.page-stage .book .catalogue-leaf[data-page-part=right]{aspect-ratio:var(--leaf-ratio);overflow:hidden}
.page-stage .book .catalogue-leaf[data-page-part=left]>img,.page-stage .book .catalogue-leaf[data-page-part=right]>img{position:absolute;top:0;width:200%;max-width:none;height:auto;left:0}
.page-stage .book .catalogue-leaf[data-page-part=right]>img{left:-100%}
@media(max-width:650px){.catalogue-page .shop-photo-button{height:230px;padding:10px}.catalogue-page #catalogue-product .catalogue-product-photo{height:300px;padding:12px}.catalogue-photo-tools{gap:8px}.catalogue-photo-actions{gap:6px}.catalogue-photo-action{font-size:12px;padding:10px}.catalogue-photo-view-label{font-size:11px}#catalogue-photo-viewer{width:calc(100vw - 14px);max-width:calc(100vw - 14px)}#catalogue-photo-viewer .catalogue-photo-viewer-shell{padding:13px}#catalogue-photo-viewer h2{font-size:21px}#catalogue-photo-viewer .catalogue-photo-stage{height:60dvh;padding:12px}}
@media(max-width:390px){.catalogue-page .shop-photo-button{height:200px}.catalogue-photo-actions{width:100%}.catalogue-photo-actions>button{flex:1 1 auto}}

/* The approved minus/plus controls work in the product form and image dialog. */
.catalogue-photo-zoom-controls{display:flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;max-width:100%}
.catalogue-photo-zoom-button{display:flex;align-items:center;justify-content:center;width:44px;min-width:44px;height:44px;padding:6px;border:1px solid #8fa98f;border-radius:6px;background:#edf3e7;color:#214f38;font:400 23px/1 Arial,sans-serif;cursor:pointer}
.catalogue-photo-zoom-button:hover:not(:disabled){background:#e0ecd8}.catalogue-photo-zoom-button:disabled{opacity:.38;cursor:default}.catalogue-photo-zoom-button:focus-visible{outline:2px solid #a88537;outline-offset:2px}
.catalogue-photo-zoom-percent{display:inline-block;min-width:43px;text-align:center;font:400 13px/1.4 Arial,sans-serif;font-variant-numeric:tabular-nums;color:#244d3b}
.catalogue-photo-zoom-button.catalogue-photo-zoom-reset{width:auto;min-width:70px;padding:8px 10px;font-size:13px;line-height:1.2;margin-left:3px}
.catalogue-photo-stage.has-photo-zoom{touch-action:pan-y;user-select:none}
.catalogue-photo-stage.has-photo-zoom .standalone-product-photo{user-select:none;pointer-events:none;transform-origin:center}
.catalogue-photo-stage.photo-is-zoomed{touch-action:none;cursor:grab}.catalogue-photo-stage.photo-is-dragging{cursor:grabbing}
@media(max-width:650px){.catalogue-photo-tools{align-items:flex-start}.catalogue-photo-actions{max-width:100%}.catalogue-photo-zoom-controls{gap:5px}.catalogue-photo-zoom-button.catalogue-photo-zoom-reset{min-width:66px;margin-left:1px;padding:8px}.catalogue-photo-zoom-percent{min-width:40px}}
