/* Individual Product gallery; core owns the interaction and media rules. */
.oceana-product-gallery { min-width: 0; width: 100%; }
.oceana-product-gallery__main-link {
    display: grid; place-items: center; width: 100%; text-decoration: none;
    background: transparent; cursor: zoom-in;
}
.oceana-product-gallery__main-image {
    display: block; width: 100%; height: auto; max-height: 470px;
    object-fit: contain; object-position: center;
}
.oceana-product-gallery__thumbnails {
    display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 8px;
    margin-block-start: 10px;
}
.oceana-product-gallery__thumbnail {
    display: grid; place-items: center; width: 70px; height: 70px;
    padding: 2px; border: 2px solid transparent; background: #fff;
    overflow: hidden; cursor: pointer; box-sizing: border-box;
}
.oceana-product-gallery__thumbnail.is-active,
.oceana-product-gallery__thumbnail[aria-current="true"] { border-color: #1d9b99; }
.oceana-product-gallery__thumbnail:focus-visible,
.oceana-product-gallery__main-link:focus-visible { outline: 3px solid #1d9b99; outline-offset: 2px; }
.oceana-product-gallery__thumbnail-image { display: block; width: 100%; height: 100%; object-fit: cover; }
.oceana-product-gallery__lightbox {
    border: 0; padding: 0; margin: auto; max-width: min(94vw, 1400px); max-height: 92vh;
    color: white; background: #172222; box-shadow: 0 20px 70px #0008;
    overflow: hidden;
}
.oceana-product-gallery__lightbox::backdrop { background: rgb(0 0 0 / 82%); }
.oceana-product-gallery__lightbox-inner {
    display: grid; grid-template-columns: 46px minmax(0, 1fr) 46px;
    align-items: center; position: relative; max-height: 92vh;
    padding: 48px 14px 35px; min-width: min(90vw, 330px);
}
.oceana-product-gallery__lightbox-image {
    grid-column: 2; max-width: 100%; max-height: calc(92vh - 100px);
    width: auto; height: auto; object-fit: contain; margin: auto;
}
.oceana-product-gallery__prev, .oceana-product-gallery__next,
.oceana-product-gallery__close {
    color: #fff; background: #0007; border: 1px solid #fff5;
    cursor: pointer; font: inherit; line-height: 1;
}
.oceana-product-gallery__prev,.oceana-product-gallery__next { width: 42px; height: 58px; font-size: 34px; }
.oceana-product-gallery__prev { grid-column: 1; grid-row: 1; }
.oceana-product-gallery__next { grid-column: 3; grid-row: 1; }
.oceana-product-gallery__close { position: absolute; right: 12px; top: 8px; width: 38px; height: 35px; font-size: 28px; z-index: 2; }
.oceana-product-gallery__counter { position: absolute; bottom: 9px; inset-inline: 12px; text-align: center; font-size: 13px; color: #eee; }
.oceana-product-gallery__lightbox button:focus-visible { outline: 3px solid white; outline-offset: 3px; }
@media (max-width: 640px) {
    .oceana-product-gallery__main-image { max-height: 360px; }
    .oceana-product-gallery__thumbnail { width: 60px; height: 60px; }
    .oceana-product-gallery__lightbox-inner { grid-template-columns: 32px minmax(0,1fr) 32px; padding-inline: 5px; }
    .oceana-product-gallery__prev,.oceana-product-gallery__next { width: 30px; height: 46px; font-size: 26px; }
}
@media (prefers-reduced-motion: reduce) {
    .oceana-product-gallery, .oceana-product-gallery * { scroll-behavior: auto; transition: none !important; }
}
