.ngg-slideshow.slick-slider {
    margin: 40px auto 50px !important;
    overflow: visible;
    background: transparent !important;
    display: block !important;
    box-sizing: border-box;
    min-width: 0;
}

.ngg-slideshow .slick-list,
.ngg-slideshow .slick-track,
.ngg-slideshow .slick-slide {
    background: transparent !important;
    border: none !important;
}

.ngg-slideshow a,
.ngg-slideshow img,
.ngg-slideshow .ngg-gallery-slideshow-image,
.ngg-slideshow .ngg-gallery-slideshow-image > a {
    border: none !important;
    box-shadow: none !important;
    background: #fff !important;
}

.ngg-slideshow .slick-slide > a {
    display: block;
    width: 100%;
    text-align: center;
    cursor: default;
    border: none !important;
    box-shadow: none !important;
}

.ngg-slideshow .slick-slide > a.ngg-slideshow-magnifier-hover { cursor: zoom-in; }
.ngg-slideshow[data-ngg-magnifier="0"] .slick-slide > a { cursor: default; }
.ngg-slideshow[data-ngg-magnifier="0"] .slick-slide > a.ngg-slideshow-magnifier-hover { cursor: default; }

.ngg-slideshow .slick-slide img,
.ngg-slideshow .ngg-gallery-slideshow-image img {
    margin: 0 auto;
    display: block !important;
    max-width: 100% !important;
    height: auto;
    transform-origin: center center;
}

.ngg-slideshow .slick-slide > .ngg-gallery-slideshow-image,
.ngg-slideshow .slick-slide > .ngg-gallery-slideshow-image > a {
    display: block !important;
}

.ngg-slideshow .ngg-gallery-slideshow-image,
.ngg-slideshow .ngg-gallery-slideshow-image > a {
    display: block !important;
    width: 100% !important;
}

/* Numeric scales use the resized slide dimensions calculated in the
   template. Keep the image in normal flow so it cannot be cropped by a
   transform-based zoom rule from another gallery stylesheet. */
.ngg-slideshow[data-ngg-slideshow-scale]:not([data-ngg-slideshow-scale="max"]) .slick-slide img,
.ngg-slideshow[data-ngg-slideshow-scale]:not([data-ngg-slideshow-scale="max"]) .ngg-gallery-slideshow-image img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    transform: none !important;
}

/* "slideshow_scale=max" fills the available page/content area while
   preserving the image's aspect ratio. It intentionally does not transform
   the surrounding page, so only the image grows and no black bars are enlarged. */
.ngg-slideshow[data-ngg-slideshow-scale="max"] {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
}

.ngg-slideshow[data-ngg-slideshow-scale="max"] .slick-slide img {
    width: 100% !important;
    max-width: 100% !important;
    max-height: calc(100vh - 180px) !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    transform: none !important;
}

.ngg-slideshow[data-ngg-slideshow-scale="max"] .slick-slide,
.ngg-slideshow[data-ngg-slideshow-scale="max"] .ngg-gallery-slideshow-image,
.ngg-slideshow[data-ngg-slideshow-scale="max"] .ngg-gallery-slideshow-image > a {
    height: auto !important;
    min-height: 0 !important;
}

.ngg-slideshow[data-ngg-slideshow-scale="max"] .slick-slide > .ngg-gallery-slideshow-image,
.ngg-slideshow[data-ngg-slideshow-scale="max"] .slick-slide > .ngg-gallery-slideshow-image > a {
    display: block !important;
    width: 100% !important;
}

/* Apply max sizing before Slick has finished enhancing the markup as well.
   This prevents a brief (or permanent, when another script is delayed)
   fallback render at the image's intrinsic dimensions. */
.ngg-slideshow[data-ngg-slideshow-scale="max"] > a,
.ngg-slideshow[data-ngg-slideshow-scale="max"] > .ngg-gallery-slideshow-image > a {
    display: block !important;
    width: 100% !important;
}

.ngg-slideshow[data-ngg-slideshow-scale="max"] > a img,
.ngg-slideshow[data-ngg-slideshow-scale="max"] > .ngg-gallery-slideshow-image img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: calc(100vh - 180px) !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
}

.ngg-slideshow .slick-prev {
    left: 20px !important;
    z-index: 10 !important;
    top: 49%;
    cursor: pointer;
}

.ngg-slideshow .slick-next {
    right: 30px !important;
    z-index: 10 !important;
    top: 49%;
    cursor: pointer;
}

.ngg-slideshow .slick-next:before, 
.ngg-slideshow .slick-prev:before {
    color: #CCC !important;
    font-size: 32px !important;
}

.ngg-slideshow .slick-next:hover:before, 
.ngg-slideshow .slick-prev:hover:before {
    color: #AAA !important;
    font-size: 32px !important;
}

.ngg-slideshow .slick-dots {
    margin: 0;
    padding: 0;
    bottom: -30px;
}

.ngg-slideshow .slick-dots li {
    margin: 0;
}

.ngg-slideshow .slick-dots li button {
    margin: 0;
}

.ngg-slideshow .slick-dots li button:before {
    font-size: 8px;
    color: #888;
    opacity: .5;
    cursor: pointer;
}

.ngg-slideshow .slick-dots li.slick-active button:before {
    opacity: 1;
    color: #555;
}

.slideshowlink {
    margin: -34px auto 50px;
    text-align: center;
    text-transform: uppercase;
}

.slideshowlink a {
    font-size: 13px;
    letter-spacing: .75px;
    cursor: pointer;
    text-decoration: none;
    box-shadow: none;
    border: none;
}

.slideshowlink a:hover {
    text-decoration: none !important;
    box-shadow: none !important;
    border: none !important;
}
