/* Normal product gallery only. The full-screen viewer has separate controls. */
[data-product-gallery] .product-gallery__stage { cursor: zoom-in; }
[data-product-gallery] .product-gallery__main { cursor: zoom-in; transform-origin: var(--photo-origin-x, 50%) var(--photo-origin-y, 50%); }
[data-product-gallery] .product-gallery__stage.is-photo-hover .product-gallery__main:not(.is-changing) { transform: scale(1.3); will-change: transform; }
[data-product-gallery] .product-gallery__expand { position: absolute; z-index: 4; top: 14px; right: 14px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; color: var(--green, #0f5753); background: rgba(255, 254, 250, .95); border: 1px solid rgba(15, 87, 83, .15); border-radius: 50%; box-shadow: 0 5px 20px rgba(15, 66, 61, .1); cursor: zoom-in; }
[data-product-gallery] .product-gallery__expand:hover { color: var(--pink, #d31d7e); background: #fff; }
[data-product-gallery] .product-gallery__expand svg { width: 19px; height: 19px; }
[data-product-gallery] .product-gallery__expand:focus-visible { outline: 3px solid var(--pink, #d31d7e); outline-offset: 3px; }
html.me-photo-viewer-open, html.me-photo-viewer-open body { overflow: hidden; }
.me-photo-viewer { position: fixed; inset: 0; width: 100%; height: 100%; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; overflow: hidden; color: #fffefa; background: #0b2220; border: 0; font-family: var(--sans, Arial, sans-serif); }
.me-photo-viewer:not([open]) { display: none; }
.me-photo-viewer[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.me-photo-viewer::backdrop { background: rgba(5, 24, 22, .94); }
.me-photo-viewer *, .me-photo-viewer *::before, .me-photo-viewer *::after { box-sizing: border-box; }
.me-photo-viewer__header { position: relative; z-index: 2; display: flex; align-items: center; gap: 20px; min-height: 76px; padding: max(14px, env(safe-area-inset-top)) max(22px, env(safe-area-inset-right)) 14px max(22px, env(safe-area-inset-left)); border-bottom: 1px solid rgba(255, 255, 255, .1); }
.me-photo-viewer__heading { flex: 1; min-width: 0; margin: 0; color: #fffefa; font: 400 19px/1.3 var(--serif, Georgia, serif); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.me-photo-viewer__toolbar { display: flex; flex-shrink: 0; align-items: center; gap: 7px; }
.me-photo-viewer__button { display: grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; padding: 0; color: #fffefa; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .16); border-radius: 50%; cursor: pointer; transition: background .18s; }
.me-photo-viewer__button:hover { background: rgba(255, 255, 255, .17); }
.me-photo-viewer__button:disabled { opacity: .35; cursor: default; }
.me-photo-viewer__button:focus-visible, .me-photo-viewer__original:focus-visible { outline: 2px solid #e8cc83; outline-offset: 3px; }
.me-photo-viewer__button svg { display: block; width: 19px; height: 19px; }
.me-photo-viewer__button--close { margin-left: 8px; color: #0b2220; background: #fffefa; border-color: #fffefa; }
.me-photo-viewer__button--close:hover { color: #d31d7e; background: #fff; }
.me-photo-viewer__zoom { min-width: 44px; color: #d4e1db; text-align: center; font: 600 12px/1 var(--sans, Arial, sans-serif); font-variant-numeric: tabular-nums; }
.me-photo-viewer__body { position: relative; min-width: 0; min-height: 0; }
.me-photo-viewer__canvas { position: absolute; inset: 0; overflow: hidden; touch-action: none; user-select: none; -webkit-user-select: none; -webkit-tap-highlight-color: transparent; outline: none; }
.me-photo-viewer.is-zoomed .me-photo-viewer__canvas { cursor: grab; }
.me-photo-viewer.is-dragging .me-photo-viewer__canvas { cursor: grabbing; }
.me-photo-viewer__frame { position: absolute; left: 50%; top: 50%; width: 1px; height: 1px; transform: translate(-50%, -50%); pointer-events: none; }
.me-photo-viewer__image { display: block; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain; transform-origin: center; pointer-events: none; -webkit-user-drag: none; will-change: transform; }
.me-photo-viewer.is-loading .me-photo-viewer__image, .me-photo-viewer.has-error .me-photo-viewer__image { visibility: hidden; }
.me-photo-viewer__status { position: absolute; left: 50%; top: 50%; max-width: calc(100% - 80px); margin: 0; color: #d4e1db; text-align: center; font-size: 14px; line-height: 1.6; transform: translate(-50%, -50%); pointer-events: none; }
.me-photo-viewer__nav { position: absolute; z-index: 1; top: 50%; transform: translateY(-50%); background: rgba(8, 33, 30, .76); }
.me-photo-viewer__nav--prev { left: max(20px, env(safe-area-inset-left)); }
.me-photo-viewer__nav--next { right: max(20px, env(safe-area-inset-right)); }
.me-photo-viewer__nav[hidden] { display: none; }
.me-photo-viewer__footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 58px; padding: 12px max(22px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left)); color: #acc3ba; border-top: 1px solid rgba(255, 255, 255, .1); font-size: 12px; line-height: 1.5; }
.me-photo-viewer__count { flex-shrink: 0; color: #fffefa; font-variant-numeric: tabular-nums; }
.me-photo-viewer__help { text-align: center; }
.me-photo-viewer__original { flex-shrink: 0; color: #d4e1db; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 600px) {
    .me-photo-viewer__header { flex-wrap: wrap; gap: 10px; padding-left: max(12px, env(safe-area-inset-left)); padding-right: max(12px, env(safe-area-inset-right)); }
    .me-photo-viewer__heading { flex-basis: 100%; padding-right: 48px; font-size: 17px; }
    .me-photo-viewer__toolbar { gap: 6px; }
    .me-photo-viewer__button--close { position: absolute; top: max(12px, env(safe-area-inset-top)); right: max(12px, env(safe-area-inset-right)); margin: 0; }
    .me-photo-viewer__nav--prev { left: max(9px, env(safe-area-inset-left)); }
    .me-photo-viewer__nav--next { right: max(9px, env(safe-area-inset-right)); }
    .me-photo-viewer__footer { flex-wrap: wrap; gap: 6px 12px; padding-left: 14px; padding-right: 14px; font-size: 11px; }
    .me-photo-viewer__help { order: 3; flex-basis: 100%; }
    .me-photo-viewer__original { margin-left: auto; }
}
@media (prefers-reduced-motion: reduce) { [data-product-gallery] .product-gallery__main { transition: opacity .16s; } }
