.nmf-product-gallery,
.nmf-product-gallery * {
    box-sizing: border-box;
}

.nmf-product-gallery {
    --nmf-product-gallery-height: 82vh;
    --nmf-product-gallery-bg: #f4eeeb;
    --nmf-product-gallery-gap: 18px;
    --nmf-product-gallery-fit: cover;
    --nmf-product-gallery-position: center center;
    --nmf-product-thumb-width: 86px;
    --nmf-product-thumb-height: 116px;
    --nmf-product-thumb-gap: 12px;
    --nmf-product-thumb-opacity: .52;
    --nmf-product-thumb-active-border: rgba(20,18,23,.32);
    --nmf-product-arrow-size: 48px;
    --nmf-product-arrow-icon-size: 18px;
    --nmf-product-arrow-offset: 18px;
    --nmf-product-arrow-color: #141217;
    --nmf-product-arrow-bg: rgba(255,255,255,.86);
    --nmf-product-arrow-border: rgba(20,18,23,.10);
    --nmf-product-arrow-hover-color: #141217;
    --nmf-product-arrow-hover-bg: #ffffff;
    --nmf-product-arrow-radius: 0;
    --nmf-product-arrow-shadow-opacity: .08;
    --nmf-ease: cubic-bezier(.22, .61, .36, 1);
    display: grid;
    grid-template-columns: var(--nmf-product-thumb-width) minmax(0, 1fr);
    gap: var(--nmf-product-gallery-gap);
    width: 100%;
    font-family: inherit;
}

.nmf-product-gallery--notice {
    display: block;
    padding: 24px;
    border: 1px solid rgba(20,18,23,.14);
    background: #f4eeeb;
}

.nmf-product-gallery:not(.nmf-product-gallery--has-thumbs) {
    grid-template-columns: 1fr;
}

.nmf-product-gallery--sticky .nmf-product-gallery__stage,
.nmf-product-gallery--sticky .nmf-product-gallery__thumbs {
    position: sticky;
    top: 24px;
}

/* v0.4.2: safe non-sticky mode. Only the gallery itself is affected; parent containers are never touched. */
.nmf-product-gallery:not(.nmf-product-gallery--sticky) .nmf-product-gallery__stage,
.nmf-product-gallery:not(.nmf-product-gallery--sticky) .nmf-product-gallery__thumbs {
    position: relative !important;
    top: auto !important;
}

.nmf-product-gallery__thumbs {
    display: flex;
    flex-direction: column;
    gap: var(--nmf-product-thumb-gap);
    max-height: var(--nmf-product-gallery-height);
    overflow: auto;
    scrollbar-width: thin;
}

.nmf-product-gallery__thumb {
    display: block;
    width: var(--nmf-product-thumb-width);
    min-width: var(--nmf-product-thumb-width);
    height: var(--nmf-product-thumb-height);
    padding: 0;
    border: 1px solid transparent;
    border-radius: 0;
    background: var(--nmf-product-gallery-bg);
    overflow: hidden;
    cursor: pointer;
    opacity: var(--nmf-product-thumb-opacity);
    transition: opacity .35s var(--nmf-ease), border-color .35s var(--nmf-ease), transform .35s var(--nmf-ease);
}

.nmf-product-gallery__thumb.is-active,
.nmf-product-gallery__thumb:hover,
.nmf-product-gallery__thumb:focus-visible {
    opacity: 1;
    border-color: var(--nmf-product-thumb-active-border);
    transform: translateY(-1px);
}

.nmf-product-gallery__thumb img,
.nmf-product-gallery__thumb .nmf-product-gallery__thumb-img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    min-width: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
}

.nmf-product-gallery__stage {
    position: relative;
    min-width: 0;
    height: var(--nmf-product-gallery-height);
    background: var(--nmf-product-gallery-bg) !important;
    overflow: hidden;
}

.nmf-product-gallery__slides,
.nmf-product-gallery__slide,
.nmf-product-gallery__link {
    position: absolute;
    inset: 0;
    display: block;
    background: var(--nmf-product-gallery-bg) !important;
}

.nmf-product-gallery__link {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent !important;
    color: inherit;
    font: inherit;
    text-align: inherit;
    appearance: none;
    -webkit-appearance: none;
    cursor: zoom-in;
}

.nmf-product-gallery__link:focus-visible {
    outline: 1px solid rgba(20,18,23,.42);
    outline-offset: -5px;
}

.nmf-product-gallery__slide {
    margin: 0;
    opacity: 0;
    visibility: hidden;
    transform: scale(1.015);
    transition: opacity .58s var(--nmf-ease), visibility .58s var(--nmf-ease), transform .9s var(--nmf-ease);
}

.nmf-product-gallery__slide.is-active {
    opacity: 1;
    visibility: visible;
    transform: scale(1);
    z-index: 2;
}

.nmf-product-gallery__image {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: var(--nmf-product-gallery-fit) !important;
    object-position: var(--nmf-product-gallery-position) !important;
    background: transparent !important;
}

.nmf-product-gallery--fit-contain .nmf-product-gallery__image {
    object-fit: contain !important;
}

.nmf-product-gallery--fit-cover .nmf-product-gallery__image {
    object-fit: cover !important;
}

.nmf-product-gallery__link:hover .nmf-product-gallery__image {
    transform: scale(1.025);
    transition: transform 1.1s var(--nmf-ease);
}

.nmf-product-gallery__nav {
    position: absolute;
    top: 50%;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--nmf-product-arrow-size) !important;
    height: var(--nmf-product-arrow-size) !important;
    min-width: var(--nmf-product-arrow-size) !important;
    min-height: var(--nmf-product-arrow-size) !important;
    border: 1px solid var(--nmf-product-arrow-border) !important;
    border-radius: var(--nmf-product-arrow-radius) !important;
    background: var(--nmf-product-arrow-bg) !important;
    color: var(--nmf-product-arrow-color) !important;
    font-size: var(--nmf-product-arrow-icon-size) !important;
    line-height: 1;
    box-shadow: 0 12px 30px rgba(20,18,23,var(--nmf-product-arrow-shadow-opacity)) !important;
    cursor: pointer;
    transform: translateY(-50%);
    transition: background-color .35s var(--nmf-ease), transform .35s var(--nmf-ease), opacity .35s var(--nmf-ease);
}

.nmf-product-gallery__nav:hover,
.nmf-product-gallery__nav:focus-visible {
    background: var(--nmf-product-arrow-hover-bg) !important;
    color: var(--nmf-product-arrow-hover-color) !important;
    transform: translateY(-50%) scale(1.04);
}

.nmf-product-gallery__nav--prev {
    left: var(--nmf-product-arrow-offset);
}

.nmf-product-gallery__nav--next {
    right: var(--nmf-product-arrow-offset);
}

@media (max-width: 1024px) {
    .nmf-product-gallery {
        grid-template-columns: var(--nmf-product-thumb-width) minmax(0, 1fr);
    }

    .nmf-product-gallery--sticky .nmf-product-gallery__stage,
    .nmf-product-gallery--sticky .nmf-product-gallery__thumbs {
        position: relative;
        top: auto;
    }
}

@media (max-width: 767px) {
    .nmf-product-gallery,
    .nmf-product-gallery.nmf-product-gallery--has-thumbs {
        grid-template-columns: 1fr;
    }

    .nmf-product-gallery__stage {
        height: var(--nmf-product-gallery-height, 520px);
    }

    .nmf-product-gallery__thumbs {
        order: 2;
        flex-direction: row;
        max-height: none;
        overflow-x: auto;
        overflow-y: hidden;
        padding-bottom: 4px;
    }

    .nmf-product-gallery__thumb {
        flex: 0 0 var(--nmf-product-thumb-width);
        width: var(--nmf-product-thumb-width);
        height: var(--nmf-product-thumb-height);
    }

    .nmf-product-gallery__nav {
        width: var(--nmf-product-arrow-size, 42px);
        height: var(--nmf-product-arrow-size, 42px);
    }

    .nmf-product-gallery__nav--prev {
        left: var(--nmf-product-arrow-offset, 12px);
    }

    .nmf-product-gallery__nav--next {
        right: var(--nmf-product-arrow-offset, 12px);
    }
}

/* v0.4.3: safe external sticky override. This class is added only by JS to elements that should stop sticking. */
.nmf-product-gallery-unstuck-parent,
.nmf-product-gallery-unstuck-parent.elementor-sticky,
.nmf-product-gallery-unstuck-parent.elementor-sticky--active,
.nmf-product-gallery-unstuck-parent.wd-sticky,
.nmf-product-gallery-unstuck-parent.wd-sticky-spacer,
.nmf-product-gallery-unstuck-parent.wd-sticky-column,
.nmf-product-gallery-unstuck-parent.wd-sticky-sidebar {
    position: static !important;
    top: auto !important;
}

.nmf-product-gallery-widget-unstuck,
.nmf-product-gallery-widget-unstuck > .elementor-widget-container,
.nmf-product-gallery--unstick-parent,
.nmf-product-gallery--unstick-parent .nmf-product-gallery__stage,
.nmf-product-gallery--unstick-parent .nmf-product-gallery__thumbs {
    position: relative !important;
    top: auto !important;
}


/* v0.5.8: DIGIKROM isolated editorial product lightbox */
.nmf-product-lightbox,
.nmf-product-lightbox * {
    box-sizing: border-box !important;
}

body.nmf-product-lightbox-open {
    overflow: hidden !important;
}

body.nmf-product-lightbox-open .pswp,
body.nmf-product-lightbox-open .pswp--open,
body.nmf-product-lightbox-open .pswp__bg,
body.nmf-product-lightbox-open .pswp__scroll-wrap,
body.nmf-product-lightbox-open .mfp-wrap,
body.nmf-product-lightbox-open .mfp-bg,
body.nmf-product-lightbox-open .fancybox-container,
body.nmf-product-lightbox-open .fancybox__container,
body.nmf-product-lightbox-open .elementor-lightbox,
body.nmf-product-lightbox-open #elementor-lightbox,
body.nmf-product-lightbox-open .dialog-type-lightbox,
body.nmf-product-lightbox-open .dialog-lightbox-widget,
body.nmf-product-lightbox-open .nmf-product-foreign-lightbox-hidden {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.nmf-product-lightbox {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483647 !important;
    display: block !important;
    width: 100vw !important;
    height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #fff !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    isolation: isolate;
    transform: translateZ(0);
    transition: opacity .32s cubic-bezier(.22, .61, .36, 1), visibility .32s cubic-bezier(.22, .61, .36, 1);
}

.nmf-product-lightbox.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.nmf-product-lightbox[hidden] {
    display: none !important;
}

.nmf-product-lightbox__backdrop {
    all: unset !important;
    box-sizing: border-box !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    cursor: zoom-out !important;
    background:
        radial-gradient(circle at 50% 50%, rgba(255, 235, 226, .11) 0, rgba(255, 235, 226, .045) 24%, rgba(255, 235, 226, 0) 56%),
        rgba(12, 10, 12, .92) !important;
}

.nmf-product-lightbox__inner {
    position: absolute !important;
    inset: 0 !important;
    z-index: 2 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: clamp(18px, 4vw, 64px) !important;
    transform: translateY(10px) scale(.985);
    transition: transform .38s cubic-bezier(.22, .61, .36, 1);
}

.nmf-product-lightbox.is-open .nmf-product-lightbox__inner {
    transform: translateY(0) scale(1);
}

.nmf-product-lightbox__glow {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    z-index: 1 !important;
    display: block !important;
    width: min(72vw, 920px) !important;
    height: min(72vh, 760px) !important;
    pointer-events: none !important;
    background: radial-gradient(ellipse at 50% 50%, rgba(255, 223, 211, .28), rgba(255, 223, 211, .10) 34%, rgba(255, 223, 211, 0) 68%) !important;
    filter: blur(34px) !important;
    opacity: .78 !important;
    transform: translate(-50%, -50%) !important;
}

.nmf-product-lightbox__figure {
    all: unset !important;
    box-sizing: border-box !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    z-index: 3 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    height: auto !important;
    max-width: calc(100vw - clamp(36px, 8vw, 160px)) !important;
    max-height: calc(100vh - clamp(36px, 8vw, 160px)) !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: translate(-50%, -50%) !important;
}

.nmf-product-lightbox__image {
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: min(86vw, 1180px) !important;
    max-height: 86vh !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: contain !important;
    object-position: center center !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: rgba(255, 255, 255, .035) !important;
    box-shadow:
        0 36px 96px rgba(0, 0, 0, .46),
        0 0 90px rgba(255, 226, 214, .18),
        0 0 0 1px rgba(255, 255, 255, .10) !important;
}

.nmf-product-lightbox__caption {
    position: fixed !important;
    left: 50% !important;
    bottom: clamp(14px, 3vh, 32px) !important;
    z-index: 6 !important;
    width: min(92vw, 760px) !important;
    padding: 11px 18px !important;
    border: 1px solid rgba(255, 255, 255, .14) !important;
    border-radius: 0 !important;
    background: rgba(10, 8, 10, .54) !important;
    color: rgba(255, 255, 255, .88) !important;
    font-size: 12px !important;
    line-height: 1.55 !important;
    letter-spacing: .06em !important;
    text-align: center !important;
    text-transform: uppercase !important;
    backdrop-filter: blur(16px);
    transform: translateX(-50%) !important;
}

.nmf-product-lightbox__caption[hidden] {
    display: none !important;
}

.nmf-product-lightbox__button {
    all: unset !important;
    box-sizing: border-box !important;
    position: absolute !important;
    z-index: 7 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
    padding: 0 !important;
    border: 1px solid rgba(255, 255, 255, .22) !important;
    border-radius: 0 !important;
    background: rgba(255, 255, 255, .09) !important;
    color: #fff !important;
    font-family: inherit !important;
    font-size: 22px !important;
    font-weight: 300 !important;
    line-height: 1 !important;
    text-align: center !important;
    cursor: pointer !important;
    backdrop-filter: blur(18px);
    box-shadow: 0 18px 48px rgba(0, 0, 0, .26) !important;
    transition: background-color .25s cubic-bezier(.22, .61, .36, 1), border-color .25s cubic-bezier(.22, .61, .36, 1), transform .25s cubic-bezier(.22, .61, .36, 1);
}

.nmf-product-lightbox__button:hover,
.nmf-product-lightbox__button:focus-visible {
    border-color: rgba(255, 255, 255, .48) !important;
    background: rgba(255, 255, 255, .20) !important;
    color: #fff !important;
    outline: none !important;
    transform: scale(1.035);
}

.nmf-product-lightbox__button--close {
    top: clamp(14px, 2.7vw, 34px) !important;
    right: clamp(14px, 2.7vw, 34px) !important;
    font-size: 30px !important;
}

.nmf-product-lightbox__button--prev,
.nmf-product-lightbox__button--next {
    top: 50% !important;
    transform: translateY(-50%) !important;
}

.nmf-product-lightbox__button--prev:hover,
.nmf-product-lightbox__button--prev:focus-visible,
.nmf-product-lightbox__button--next:hover,
.nmf-product-lightbox__button--next:focus-visible {
    transform: translateY(-50%) scale(1.035) !important;
}

.nmf-product-lightbox__button--prev {
    left: clamp(14px, 3vw, 44px) !important;
}

.nmf-product-lightbox__button--next {
    right: clamp(14px, 3vw, 44px) !important;
}

.nmf-product-lightbox__counter {
    position: absolute !important;
    left: 50% !important;
    top: clamp(14px, 2.7vw, 34px) !important;
    z-index: 7 !important;
    display: block !important;
    padding: 12px 18px !important;
    border: 1px solid rgba(255, 255, 255, .16) !important;
    border-radius: 0 !important;
    background: rgba(255, 255, 255, .08) !important;
    color: rgba(255, 255, 255, .84) !important;
    font-size: 11px !important;
    line-height: 1 !important;
    letter-spacing: .18em !important;
    text-align: center !important;
    text-transform: uppercase !important;
    backdrop-filter: blur(18px);
    transform: translateX(-50%) !important;
}

.nmf-product-lightbox--single .nmf-product-lightbox__button--prev,
.nmf-product-lightbox--single .nmf-product-lightbox__button--next,
.nmf-product-lightbox--single .nmf-product-lightbox__counter {
    display: none !important;
}

@media (max-width: 767px) {
    .nmf-product-lightbox__inner {
        padding: 14px !important;
    }

    .nmf-product-lightbox__glow {
        width: 88vw !important;
        height: 64vh !important;
        filter: blur(26px) !important;
    }

    .nmf-product-lightbox__figure {
        max-width: calc(100vw - 28px) !important;
        max-height: calc(100vh - 92px) !important;
    }

    .nmf-product-lightbox__image {
        max-width: calc(100vw - 28px) !important;
        max-height: 82vh !important;
    }

    .nmf-product-lightbox__button {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
        font-size: 18px !important;
    }

    .nmf-product-lightbox__button--close {
        top: 12px !important;
        right: 12px !important;
        font-size: 28px !important;
    }

    .nmf-product-lightbox__button--prev {
        left: 12px !important;
    }

    .nmf-product-lightbox__button--next {
        right: 12px !important;
    }

    .nmf-product-lightbox__counter {
        top: 12px !important;
        padding: 10px 14px !important;
    }

    .nmf-product-lightbox__caption {
        bottom: 10px !important;
        font-size: 10px !important;
    }
}
