.cc-product-gallery{min-width:0;max-width:100%;color:var(--cc-text);font:400 14px/1.6 var(--cc-font-body)}.cc-gallery-viewport{position:relative;aspect-ratio:4/3;width:100%;overflow:hidden;background:var(--cc-media-surface);border:1px solid var(--cc-border);border-radius:var(--cc-radius-sm);overscroll-behavior:auto;scroll-behavior:auto}.cc-gallery-canvas{width:100%;height:100%;min-width:100%;min-height:100%}.cc-gallery-viewport[data-gallery-zoom="2"] .cc-gallery-canvas{width:200%;height:200%}.cc-gallery-viewport[data-gallery-zoom="3"] .cc-gallery-canvas{width:300%;height:300%}.cc-gallery-viewport[data-gallery-zoom="4"] .cc-gallery-canvas{width:400%;height:400%}.cc-gallery-canvas>.product-media{width:100%;height:100%;aspect-ratio:auto}.cc-gallery-canvas .product-media>img{object-fit:contain;padding:12px}.cc-gallery-canvas .cc-media-preview{padding:16px}.cc-gallery-panel :is(p,small){font-size:14px;line-height:1.65;margin:8px 0;overflow-wrap:anywhere}.cc-gallery-caption{font-weight:650}.cc-gallery-scope{padding:7px 9px;border-radius:var(--cc-radius-sm);background:var(--cc-raised);font-weight:550}.cc-gallery-controls,.cc-gallery-thumbnails{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.cc-gallery-controls button,.cc-gallery-thumbnails button{min-height:44px;min-width:44px;max-width:100%;padding:8px 10px;font:600 14px/1.5 var(--cc-font-body);border:1px solid var(--cc-control-border);border-radius:var(--cc-radius-sm);background:var(--cc-surface);color:var(--cc-text);cursor:pointer}.cc-gallery-controls button:disabled{opacity:.55;cursor:default}.cc-gallery-thumbnails{flex-wrap:nowrap;overflow-x:auto;padding:3px}.cc-gallery-thumbnails button{flex:0 0 auto;display:flex;align-items:center;gap:7px;padding:6px}.cc-gallery-thumbnails button[aria-pressed=true]{outline:2px solid var(--cc-accent);outline-offset:0}.cc-gallery-thumbnails img{width:48px;height:48px;object-fit:scale-down;background:var(--cc-media-surface)}.cc-gallery-help,.cc-gallery-limits,.cc-gallery-views-note,.cc-gallery-status{color:var(--cc-muted)}.cc-gallery-source a{display:inline-flex;align-items:center;min-height:36px;text-underline-offset:3px}.cc-product-gallery :is(button,a,.cc-gallery-viewport,summary):focus-visible{outline:3px solid var(--cc-focus);outline-offset:3px}.cc-gallery-compact{margin-top:8px;font-weight:400}.cc-gallery-inspection>summary{cursor:pointer;min-height:36px;display:list-item;line-height:1.5;white-space:normal}.cc-gallery-inspection{min-width:0}.cc-gallery-compact .cc-gallery-panel{margin-top:0}.cc-gallery-compact .cc-gallery-controls button{font-size:14px}.cc-gallery-compact .cc-gallery-thumbnails button{font-size:14px}.cc-product-gallery [hidden]{display:none!important}.product-menu-gallery{max-width:600px;margin:18px 0}.product-page .product-page-media.cc-product-gallery{grid-row:1/12}.profile-product .cc-product-gallery{margin-bottom:16px}
@media(max-width:600px){.cc-gallery-controls button{flex:1 1 auto}.cc-gallery-inspection{min-width:0}}
@media(prefers-reduced-motion:reduce){.cc-product-gallery *{scroll-behavior:auto!important;transition:none;animation:none}}

@media(max-width:700px){.product-page .product-page-media.cc-product-gallery{grid-row:auto}}

/* Compact browsing retains one visible stage; disclosure never clones the photo. */
.cc-gallery-compact{margin-top:0}.cc-gallery-compact .cc-gallery-caption{margin:5px 0 3px;font-size:13px}.cc-gallery-compact .cc-gallery-scope{font-size:12px;margin:4px 0;padding:4px 6px;line-height:1.4}.cc-gallery-compact .cc-gallery-inspection>summary{font-size:13px}.cc-gallery-compact .cc-gallery-thumbnails{margin:6px 0}.cc-gallery-compact .cc-gallery-thumbnails button{min-width:44px;padding:3px}.cc-gallery-compact .cc-gallery-thumbnails span{max-width:90px;white-space:normal;line-height:1.25}.cc-gallery-inspection[open]{margin-top:6px}.cc-gallery-inspection>summary::marker{color:var(--cc-accent)}

.cc-gallery-canvas .product-media .cc-media-scope{display:none}

/* One click opens the original-size source image; another dismisses it. */
.cc-gallery-viewport[role=button]{cursor:zoom-in;overflow:hidden}.cc-gallery-viewport[aria-disabled=true]{cursor:default}
.cc-gallery-retry{min-height:44px;padding:8px 12px;border:1px solid var(--cc-border);border-radius:8px;background:var(--cc-surface);color:var(--cc-text);font:600 14px var(--cc-font-body)}
.cc-photo-lightbox{box-sizing:border-box;position:fixed;inset:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:min(96vw,2400px);max-width:96vw;height:94dvh;max-height:94dvh;margin:0;padding:42px 20px 20px;border:1px solid var(--cc-border);border-radius:16px;background:var(--cc-surface);color:var(--cc-text);overflow:hidden;cursor:zoom-out;box-shadow:0 16px 80px #0006}
.cc-photo-lightbox::backdrop{background:#06120de6}
.cc-photo-lightbox[open]{display:grid;grid-template-rows:minmax(0,1fr) auto}
.cc-photo-lightbox>img{display:block;width:100%;height:100%;min-height:0;object-fit:contain;cursor:zoom-out;align-self:center;justify-self:center}
.cc-photo-lightbox-close{position:absolute;top:6px;right:8px;display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid var(--cc-border);border-radius:50%;background:var(--cc-surface);color:var(--cc-text);font:400 30px/1 var(--cc-font-body);cursor:pointer}
.cc-photo-lightbox-caption{font:400 14px/1.4 var(--cc-font-body);text-align:center;margin:10px 0 0;max-height:calc(94dvh - 76px);overflow:auto;white-space:normal;overflow-wrap:anywhere}
.cc-photo-lightbox [hidden]{display:none}
@media(max-width:600px){.cc-photo-lightbox{width:calc(100vw - 16px);max-width:none;height:94dvh;border-radius:12px;padding:48px 8px 12px}}

/* Keep the blur and decoded image in one grid cell, with the existing wrapped caption. */
.cc-photo-lightbox>img{grid-area:1/1;opacity:0;transition:opacity .25s ease}
.cc-photo-lightbox>img.cc-lightbox-lqip{opacity:1;filter:blur(10px);pointer-events:none}
.cc-photo-lightbox[data-media-state=ready]>img:not(.cc-lightbox-lqip){opacity:1}
.cc-photo-lightbox[data-media-state=ready]>img.cc-lightbox-lqip,.cc-photo-lightbox[data-media-state=error]>img.cc-lightbox-lqip{display:none}
.cc-photo-lightbox-caption{grid-area:2/1}
.cc-photo-lightbox-close{z-index:3}
.cc-photo-lightbox>img[data-fade-cached=true]{transition:none}
@media(prefers-reduced-motion:reduce){.cc-photo-lightbox>img{transition:none}}
