/* One shared photo viewer for catalog and editorial product cards. */
.ch-product-gallery-media { position:relative; width:100%; }
.ch-product-gallery-media > a { display:block; }
button.ch-product-gallery-trigger {
    appearance:none; display:inline-flex; align-items:center; justify-content:center;
    position:absolute; right:10px; bottom:10px; z-index:4;
    width:32px; height:32px; min-width:32px; padding:0; border:0; border-radius:50%;
    background:rgba(255,255,255,.32); color:#212529!important; box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);
    -webkit-backdrop-filter:blur(10px) saturate(1.2); backdrop-filter:blur(10px) saturate(1.2);
    cursor:pointer; line-height:1; transition:background-color 160ms ease,transform 160ms ease;
}
button.ch-product-gallery-trigger svg, .ch-product-gallery svg { display:block; flex:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
/* Keep the magnifier circular when Elementor applies its global button states. */
.ch-product-gallery-media > button.ch-product-gallery-trigger:is(:hover,:focus,:active) { border-radius:50%; }
button.ch-product-gallery-trigger:active { transform:scale(.96); }
/* Smaller, lighter disc that keeps a 44px tap target. */
button.ch-product-gallery-trigger::after { content:""; position:absolute; inset:-6px; border-radius:50%; }
button.ch-product-gallery-trigger svg { width:16px; height:16px; }
button.ch-product-gallery-trigger:focus-visible { outline:2px solid #212529; outline-offset:3px; }
/* Match the brand lightbox: dark overlay, centered image and unframed controls. */
.ch-product-gallery {
    position:fixed; inset:0; margin:0; padding:0; border:0;
    width:100%; max-width:100%; height:100vh; height:100dvh; max-height:100dvh;
    color:#fff; background:transparent; overflow:hidden; box-sizing:border-box;
    opacity:0; transition:opacity 180ms ease;
}
.ch-product-gallery *, .ch-product-gallery *::before, .ch-product-gallery *::after { box-sizing:border-box; }
.ch-product-gallery[open] { display:block; }
.ch-product-gallery.is-open { opacity:1; }
.ch-product-gallery::backdrop { background:#0000; transition:background-color 180ms ease; }
.ch-product-gallery.is-open::backdrop { background:rgba(0,0,0,.8); }
.ch-product-gallery.is-instant, .ch-product-gallery.is-instant::backdrop, .ch-product-gallery.is-instant .ch-pg-track { transition:none; }
.ch-product-gallery :focus-visible { outline:2px solid #fff; outline-offset:3px; }
.ch-product-gallery .ch-pg-header { position:absolute; top:0; right:18px; z-index:3; display:flex; align-items:center; gap:0; height:50px; padding:0; border:0; background:none; }
.ch-pg-heading, .ch-product-gallery .ch-pg-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.ch-product-gallery .ch-pg-icon {
    appearance:none; display:inline-flex; align-items:center; justify-content:center;
    flex:none; width:36px; height:44px; min-width:36px; padding:0; margin:0;
    border:0; border-radius:0; background:transparent; color:rgba(237,237,237,.9)!important;
    box-shadow:none; cursor:pointer; line-height:1; text-decoration:none; transition:color 160ms ease;
}
.ch-product-gallery .ch-pg-icon svg { width:20px; height:20px; stroke-width:2; }
#ch-product-gallery .ch-pg-icon:is(:hover,:focus,:active),
#ch-product-gallery .ch-pg-thumb:is(:hover,:focus,:active) { background:transparent; }
.ch-product-gallery .ch-pg-close svg { width:26px; height:26px; }
.ch-product-gallery .ch-pg-stage { position:absolute; inset:50px 0 110px; background:transparent; overflow:visible; }
.ch-pg-viewport { height:100%; width:70%; margin:0 auto; overflow:hidden; touch-action:pan-y pinch-zoom; }
.ch-pg-track { display:flex; height:100%; transition:transform 240ms cubic-bezier(.32,.72,0,1); }
.ch-pg-slide { position:relative; display:flex; align-items:center; justify-content:center; flex:0 0 100%; min-width:0; height:100%; overflow:hidden; overscroll-behavior:contain; scrollbar-width:none; }
.ch-pg-slide::-webkit-scrollbar { display:none; }
.ch-pg-slide img { display:block; flex:none; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; user-select:none; -webkit-user-drag:none; cursor:zoom-in; }
.ch-pg-slide.is-zoomed { display:block; touch-action:none; cursor:grab; }
.ch-pg-slide.is-zoomed img { width:200%; height:200%; max-width:none; max-height:none; object-fit:contain; cursor:grab; }
.ch-pg-slide.is-dragging, .ch-pg-slide.is-dragging img { cursor:grabbing; }
.ch-product-gallery .ch-pg-prev, .ch-product-gallery .ch-pg-next { position:absolute; top:calc(50% + 8px); z-index:2; width:44px; height:44px; }
.ch-product-gallery .ch-pg-prev { left:15%; }
.ch-product-gallery .ch-pg-next { right:15%; }
.ch-product-gallery .ch-pg-prev svg, .ch-product-gallery .ch-pg-next svg { width:34px; height:34px; stroke-width:3; }
.ch-product-gallery button:disabled { opacity:.3; cursor:default; }
.ch-product-gallery [hidden] { display:none!important; }
.ch-product-gallery .ch-pg-footer { position:absolute; bottom:0; left:0; right:0; height:110px; padding:10px 20px; background:none; }
.ch-pg-thumbs { display:flex; align-items:center; justify-content:flex-start; gap:8px; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; width:max-content; max-width:100%; height:90px; margin:0 auto; }
.ch-pg-thumbs::-webkit-scrollbar { display:none; }
.ch-product-gallery button.ch-pg-thumb { appearance:none; display:block; flex:none; width:auto; height:65px; margin:0; padding:0; border:2px solid transparent; border-radius:4px; background:transparent; opacity:.5; overflow:hidden; cursor:pointer; transition:opacity 160ms ease,border-color 160ms ease; }
.ch-product-gallery button.ch-pg-thumb[aria-pressed="true"] { border-color:#fff; opacity:1; }
.ch-pg-thumb img { width:auto; height:100%; max-width:none; object-fit:cover; display:block; }
@media(hover:hover) and (pointer:fine) {
 button.ch-product-gallery-trigger:hover { background:rgba(255,255,255,.9); }
 .ch-product-gallery .ch-pg-icon:hover { color:#fff!important; background:transparent; }
 .ch-product-gallery button.ch-pg-thumb:hover { opacity:1; }
}
@media(max-width:767px) {
 .ch-product-gallery.is-open::backdrop { background:rgba(0,0,0,.85); }
 .ch-product-gallery .ch-pg-header { right:10px; height:50px; padding-top:env(safe-area-inset-top); }
 .ch-product-gallery .ch-pg-status { top:18px; left:20px; width:auto; height:auto; margin:0; clip-path:none; overflow:visible; font:14px/1.4 Arial,sans-serif; letter-spacing:.5px; }
 .ch-product-gallery .ch-pg-stage { top:max(50px,env(safe-area-inset-top)); bottom:90px; }
 .ch-pg-viewport { width:100%; }
 .ch-product-gallery .ch-pg-prev, .ch-product-gallery .ch-pg-next { top:calc(50% - 22px); }
 .ch-product-gallery .ch-pg-prev { left:0; }
 .ch-product-gallery .ch-pg-next { right:0; }
 .ch-product-gallery .ch-pg-prev svg, .ch-product-gallery .ch-pg-next svg { width:30px; height:30px; }
 .ch-product-gallery .ch-pg-footer { height:calc(58px + env(safe-area-inset-bottom)); padding:6px 10px calc(6px + env(safe-area-inset-bottom)); }
 .ch-pg-thumbs { height:46px; gap:4px; }
 .ch-product-gallery button.ch-pg-thumb { height:42px; }
 button.ch-product-gallery-trigger { right:8px; bottom:8px; width:30px; height:30px; min-width:30px; }
}
@media(prefers-reduced-motion:reduce) {
 .ch-product-gallery, .ch-product-gallery::backdrop, .ch-pg-track, button.ch-product-gallery-trigger, .ch-product-gallery button { transition:none!important; }
}

/* Heart and magnifier: one matching pair of light glass discs, mirrored top/bottom on the same corner. */
.ch-product-gallery-media > button.ch-product-gallery-trigger,
.ch-product-gallery-media > button.ch-wishlist-heart.ch-wishlist-heart {
    width:38px; height:38px; min-width:38px; right:10px;
    background:rgba(255,255,255,.05); box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);
    -webkit-backdrop-filter:none; backdrop-filter:none;
}
.ch-product-gallery-media > button.ch-product-gallery-trigger { bottom:10px; }
.ch-product-gallery-media > button.ch-wishlist-heart.ch-wishlist-heart { top:10px; }
.ch-product-gallery-media > button.ch-product-gallery-trigger svg,
.ch-product-gallery-media > button.ch-wishlist-heart.ch-wishlist-heart svg { width:19px; height:19px; filter:drop-shadow(0 0 1.5px rgba(255,255,255,.9)); }
/* Keep a 44px tap target around the smaller discs. */
.ch-product-gallery-media > button.ch-wishlist-heart.ch-wishlist-heart::after { content:""; position:absolute; inset:-3px; border-radius:50%; }
@media(hover:hover) {
 .ch-product-gallery-media > button.ch-product-gallery-trigger:hover,
 .ch-product-gallery-media > button.ch-wishlist-heart.ch-wishlist-heart:hover { background:rgba(255,255,255,.85); }
}
@media(max-width:767px) {
 .ch-product-gallery-media > button.ch-product-gallery-trigger,
 .ch-product-gallery-media > button.ch-wishlist-heart.ch-wishlist-heart { width:34px; height:34px; min-width:34px; right:8px; }
 .ch-product-gallery-media > button.ch-product-gallery-trigger { bottom:8px; }
 .ch-product-gallery-media > button.ch-wishlist-heart.ch-wishlist-heart { top:8px; }
}
