.greens-product-zoom {
    --pswp-bg:#fff;
    --pswp-icon-color:#002856;
    --pswp-icon-color-secondary:#fff;
    --pswp-preloader-color:#527f83;
    --greens-zoom-control-bg:#fff;
    --greens-zoom-control-border:rgba(0,40,86,.2);
    z-index:2147483647!important;
    color:#002856;
    background:#fff;
    outline:none!important;
    -webkit-tap-highlight-color:transparent;
}
/* Image resolution updates must be atomic. Native zoom animation belongs to
   the zoom wrapper; inherited image width/height transitions desynchronise it. */
.greens-product-zoom .pswp__img { border:0!important; border-radius:0!important; box-shadow:none!important; background:#fff; -webkit-user-drag:none; transition:none!important; }
.greens-product-zoom .pswp__icn-shadow { display:none; }
/* WooCommerce's PhotoSwipe 4 sprite also matches v5's close button. Own the
   toolbar within this viewer, so one SVG is the only icon in each control. */
.greens-product-zoom .pswp__top-bar {
    top:env(safe-area-inset-top,0px); display:flex; align-items:center; justify-content:flex-end; gap:8px;
    padding:12px max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));
    height:auto!important; box-sizing:border-box; pointer-events:none;
}
.greens-product-zoom .pswp__top-bar button.pswp__button {
    appearance:none; position:relative; display:flex!important; align-items:center; justify-content:center; flex:none;
    width:44px!important; height:44px!important; min-width:44px; padding:0!important; margin:0!important;
    background:var(--greens-zoom-control-bg)!important; background-image:none!important;
    color:var(--pswp-icon-color)!important; border:1px solid var(--greens-zoom-control-border)!important;
    border-radius:50%!important; box-shadow:none!important; opacity:1; cursor:pointer; pointer-events:auto;
    font-family:inherit; font-size:14px; font-weight:400; line-height:1; letter-spacing:normal;
    overflow:hidden; text-indent:0;
}
.greens-product-zoom .pswp__top-bar button.pswp__button::before,
.greens-product-zoom .pswp__top-bar button.pswp__button::after { content:none!important; display:none!important; }
.greens-product-zoom .pswp__top-bar .pswp__icn {
    position:static!important; width:32px!important; height:32px!important; margin:0!important; inset:auto!important;
}
.greens-product-zoom .pswp__preloader { display:flex; align-items:center; justify-content:center; width:44px; height:44px; margin-right:auto; }
.greens-product-zoom .pswp__top-bar button.greens-zoom-thumbnail-toggle {
    width:auto!important; gap:8px; padding:0 12px!important; border-radius:8px!important;
}
.greens-product-zoom .greens-zoom-thumbnail-icon { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.4; flex:none; }
.greens-product-zoom .pswp__top-bar button.pswp__button:hover { border-color:currentColor!important; }
.greens-product-zoom button.pswp__button.greens-zoom-arrow {
    position:absolute; top:calc(50% - 24px); display:flex!important; align-items:center; justify-content:center;
    width:48px!important; height:48px!important; min-width:48px; padding:0!important; margin:0;
    background:#fff!important; color:#002856!important; border:1px solid rgba(0,0,0,.2)!important;
    border-radius:50%!important; box-shadow:none!important; opacity:1; cursor:pointer; z-index:20;
    transition:border-color .16s ease,opacity .16s ease;
}
.greens-product-zoom .greens-zoom-prev { left:max(16px,env(safe-area-inset-left)); }
.greens-product-zoom .greens-zoom-next { right:max(16px,env(safe-area-inset-right)); }
.greens-product-zoom .greens-zoom-arrow svg { width:20px!important; height:20px!important; pointer-events:none; }
.greens-product-zoom .greens-zoom-arrow svg path { fill:none!important; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.greens-product-zoom .greens-zoom-prev svg { transform:rotate(180deg); }
.greens-product-zoom button.greens-zoom-arrow:disabled { opacity:.25; cursor:default; }
.greens-product-zoom button.greens-zoom-arrow:hover:not(:disabled) { border-color:rgba(0,40,86,.5)!important; }
.greens-product-zoom button:focus-visible { outline:2px solid #527f83!important; outline-offset:3px; }
.greens-product-zoom button:focus:not(:focus-visible) { outline:none!important; }
.greens-product-zoom .greens-zoom-caption {
    position:absolute; top:max(18px,env(safe-area-inset-top)); left:50%; transform:translateX(-50%);
    max-width:calc(100% - 560px); max-height:44px; overflow:auto; box-sizing:border-box;
    margin:0; padding:8px 13px; border-radius:9px; background:#edf3f3; color:#234650;
    font-family:inherit; font-weight:400; font-size:14px; line-height:1.4; text-align:center; overflow-wrap:anywhere; z-index:20;
}
.greens-product-zoom .greens-zoom-thumbnails[hidden] { display:none!important; }
.greens-product-zoom .greens-zoom-caption[hidden] { display:none!important; }
.greens-product-zoom .greens-zoom-thumbnails {
    position:absolute; z-index:20; bottom:max(14px,env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%);
    display:flex; gap:10px; max-width:calc(100% - 32px); box-sizing:border-box; padding:4px;
    overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none; border-radius:12px; background:#fff;
    touch-action:pan-x; -webkit-overflow-scrolling:touch;
}
.greens-product-zoom .greens-zoom-thumbnails::-webkit-scrollbar { display:none; }
.greens-product-zoom .greens-zoom-thumbnails button[aria-pressed] {
    appearance:none; flex:0 0 62px; display:block; width:62px; height:62px; min-width:0; padding:0; margin:0;
    border:1px solid #dce3e5!important; border-radius:8px!important; background:#fff!important; box-shadow:none!important;
    overflow:hidden; cursor:pointer;
}
.greens-product-zoom .greens-zoom-thumbnails button[aria-pressed="true"] { border:2px solid #527f83!important; }
.greens-product-zoom .greens-zoom-thumbnails img { display:block; width:100%; height:100%; object-fit:contain; border:0!important; box-shadow:none!important; user-select:none; -webkit-user-drag:none; }
/* PhotoSwipe exposes native UI as its opening transition starts. Our overlaid
   chrome must wait for final geometry, including on the first uncached open.
   Visibility also keeps these pending controls out of focus and hit testing. */
.greens-product-zoom:not([data-axm-viewer-ready="true"]) :is(.pswp__top-bar, .greens-zoom-caption, .greens-zoom-thumbnails, .greens-zoom-arrow) {
    visibility:hidden!important; opacity:0!important; pointer-events:none!important; transition:none!important;
}
@media(max-width:767px) {
    .greens-product-zoom .greens-zoom-thumbnails button[aria-pressed] { flex-basis:54px; width:54px; height:54px; }
    .greens-product-zoom .greens-zoom-caption { font-size:13px; max-width:calc(100% - 248px); }
    .greens-product-zoom .greens-zoom-toggle-label { display:none; }
    .greens-product-zoom .pswp__top-bar button.greens-zoom-thumbnail-toggle { width:44px!important; padding:0!important; }
    .greens-product-zoom .greens-zoom-prev { left:max(10px,env(safe-area-inset-left)); }
    .greens-product-zoom .greens-zoom-next { right:max(10px,env(safe-area-inset-right)); }
}
@media(prefers-reduced-motion:reduce) { .greens-product-zoom button { transition:none; } }

/* Standard photo galleries share the product viewer's track and controls. */
.greens-product-zoom.axm-media-gallery-viewer {
    --pswp-bg:var(--axm-media-lightbox-standard-bg,rgba(0,0,0,.95));
    --pswp-icon-color:#fff;
    --greens-zoom-control-bg:rgba(0,0,0,.82);
    --greens-zoom-control-border:rgba(255,255,255,.28);
    color:#fff;
    background:var(--axm-media-lightbox-standard-bg,rgba(0,0,0,.95));
    /* The gallery is a full-screen overlay, including on logged-in Woo pages. */
    inset:0!important; width:100%!important; height:100%!important;
}
.axm-media-gallery-viewer .pswp__img { background:transparent; }
.axm-media-gallery-viewer .pswp__top-bar {
    top:max(calc(var(--axm-gallery-media-top,0px) + 12px),env(safe-area-inset-top));
    left:max(calc(var(--axm-gallery-media-left,0px) + 12px),env(safe-area-inset-left));
    right:max(calc(var(--axm-gallery-media-right,0px) + 12px),env(safe-area-inset-right));
    width:auto!important; padding:0; z-index:30; background:transparent!important;
}
.axm-media-gallery-viewer .greens-zoom-caption {
    top:max(calc(var(--axm-gallery-media-top,0px) + 16px),env(safe-area-inset-top));
    max-width:max(80px,calc(100% - var(--axm-gallery-media-left,0px) - var(--axm-gallery-media-right,0px) - 560px));
    background:#000; color:#fff; border-radius:6px;
}
.axm-media-gallery-viewer .greens-zoom-thumbnails {
    bottom:max(calc(var(--axm-gallery-media-bottom,0px) + 12px),env(safe-area-inset-bottom));
    max-width:calc(100% - var(--axm-gallery-media-left,0px) - var(--axm-gallery-media-right,0px) - 24px);
    background:rgba(0,0,0,.82);
}
.axm-media-gallery-viewer .greens-zoom-prev { left:max(calc(var(--axm-gallery-media-left,0px) + 12px),env(safe-area-inset-left)); }
.axm-media-gallery-viewer .greens-zoom-next { right:max(calc(var(--axm-gallery-media-right,0px) + 12px),env(safe-area-inset-right)); }
@media(max-width:767px) {
    .axm-media-gallery-viewer .greens-zoom-caption {
        left:max(calc(var(--axm-gallery-media-left,0px) + 12px),env(safe-area-inset-left)); transform:none; text-align:left;
        max-width:calc(100% - var(--axm-gallery-media-left,0px) - var(--axm-gallery-media-right,0px) - 128px);
    }
}
