.wkpgw-gallery {
    --wkpgw-main-radius: 0px;
    --wkpgw-thumb-radius: 0px;
    --wkpgw-gap: 18px;
    --wkpgw-thumb-gap: 10px;
    --wkpgw-main-bg: transparent;
    --wkpgw-thumb-bg: transparent;
    --wkpgw-active-border: #ffffff;
    --wkpgw-grid-thumb-width: 95px;
    --wkpgw-thumb-opacity: 0.65;
    --wkpgw-thumb-active-opacity: 1;
    width: 100%;
}

.wkpgw-main-wrap {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: var(--wkpgw-main-bg);
    border-radius: var(--wkpgw-main-radius);
}

.wkpgw-main-image {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--wkpgw-main-radius);
    object-fit: cover;
    transition: transform .35s ease, opacity .25s ease;
}

.wkpgw-gallery[data-lightbox="yes"] .wkpgw-main-image {
    cursor: zoom-in;
}

.wkpgw-gallery[data-fit="contain"] .wkpgw-main-image,
.wkpgw-gallery[data-fit="contain"] .wkpgw-thumb-image {
    object-fit: contain;
}

.wkpgw-gallery[data-hover="zoom"] .wkpgw-main-wrap:hover .wkpgw-main-image {
    transform: scale(1.04);
}

.wkpgw-lightbox-btn {
    position: absolute;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    background: rgba(255,255,255,.92);
    color: #111;
    line-height: 1;
    transition: transform .2s ease, opacity .2s ease;
}

.wkpgw-lightbox-btn:hover {
    transform: scale(1.06);
}

.wkpgw-lightbox-btn svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

.wkpgw-lightbox-btn.pos-bottom-left { left: 22px; bottom: 22px; }
.wkpgw-lightbox-btn.pos-bottom-right { right: 22px; bottom: 22px; }
.wkpgw-lightbox-btn.pos-top-left { left: 22px; top: 22px; }
.wkpgw-lightbox-btn.pos-top-right { right: 22px; top: 22px; }

.wkpgw-thumbs {
    display: grid;
    gap: var(--wkpgw-thumb-gap);
    margin-top: var(--wkpgw-gap);
}

.wkpgw-thumbs.layout-row {
    grid-template-columns: repeat(var(--wkpgw-thumb-columns, 4), var(--wkpgw-grid-thumb-width));
}

.wkpgw-thumbs.layout-carousel {
    display: flex;
    overflow-x: auto;
    scrollbar-width: thin;
    padding-bottom: 2px;
}

.wkpgw-thumb {
    display: block;
    padding: 0;
    border: 0;
    background: var(--wkpgw-thumb-bg);
    border-radius: var(--wkpgw-thumb-radius);
    overflow: hidden;
    cursor: pointer;
    opacity: var(--wkpgw-thumb-opacity);
    transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease;
}

.wkpgw-thumbs.layout-carousel .wkpgw-thumb {
    flex: 0 0 var(--wkpgw-carousel-thumb-width, 110px);
}

.wkpgw-thumb:hover,
.wkpgw-thumb.is-active {
    opacity: var(--wkpgw-thumb-active-opacity);
}

.wkpgw-thumb.is-active {
    box-shadow: 0 0 0 var(--wkpgw-active-border-width, 2px) var(--wkpgw-active-border);
}

.wkpgw-thumb-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--wkpgw-thumb-radius);
}

.wkpgw-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(0,0,0,.86);
}

.wkpgw-modal.is-open {
    display: flex;
}

.wkpgw-modal img {
    max-width: min(1100px, 92vw);
    max-height: 88vh;
    width: auto;
    height: auto;
    display: block;
}

.wkpgw-modal-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    width: 54px;
    height: 54px;
    border: 0;
    border-radius: 999px;
    background: rgba(255,255,255,.92);
    color: #111;
    font-size: 44px;
    line-height: 44px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform .2s ease, opacity .2s ease;
}

.wkpgw-modal-arrow:hover {
    transform: translateY(-50%) scale(1.06);
}

.wkpgw-modal-prev { left: 24px; }
.wkpgw-modal-next { right: 24px; }

.wkpgw-modal-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 999px;
    background: #fff;
    color: #111;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

body.wkpgw-modal-open {
    overflow: hidden;
}

@media (max-width: 767px) {
    .wkpgw-modal-arrow {
        width: 42px;
        height: 42px;
        font-size: 34px;
        line-height: 34px;
    }

    .wkpgw-modal-prev { left: 10px; }
    .wkpgw-modal-next { right: 10px; }
}
