html.wsp-lock,
html.wsp-lock body {
    overflow: hidden;
}

.wsp-root {
    --wsp-width: 720px;
    --wsp-mobile: 92vw;
    --wsp-radius: 14px;
    --wsp-z: 999999;
    position: fixed !important;
    inset: 0;
    z-index: var(--wsp-z);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.wsp-root.is-open {
    display: flex;
}

.wsp-root.pos-top {
    align-items: flex-start;
    padding-top: 6vh;
}

.wsp-root.pos-bottom {
    align-items: flex-end;
    padding-bottom: 6vh;
}

.wsp-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .58);
}

.wsp-root.no-overlay .wsp-overlay {
    background: transparent;
    pointer-events: none;
}

.wsp-dialog {
    position: relative;
    z-index: 2;
    width: min(var(--wsp-width), var(--wsp-mobile));
    max-height: 90vh;
    border-radius: var(--wsp-radius);
    overflow: visible;
    outline: none;
}

.wsp-dialog.has-shadow {
    box-shadow: 0 24px 70px rgba(0, 0, 0, .34);
}

.wsp-image-link {
    display: block;
    border-radius: inherit;
    overflow: hidden;
    line-height: 0;
}

.wsp-image-link img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 90vh;
    object-fit: contain;
    border-radius: inherit;
}

.wsp-close {
    all: unset;
    box-sizing: border-box !important;
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    z-index: 10 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(0, 0, 0, .10) !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, .96) !important;
    color: #d72f68 !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .18) !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 27px !important;
    font-weight: 300 !important;
    line-height: 1 !important;
    text-align: center !important;
    cursor: pointer !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    transition: background-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease !important;
}

.wsp-close:hover,
.wsp-close:focus-visible {
    background: #d72f68 !important;
    color: #ffffff !important;
    transform: scale(1.06);
    box-shadow: 0 6px 18px rgba(0, 0, 0, .22) !important;
}

.wsp-close:focus-visible {
    outline: 2px solid #ffffff !important;
    outline-offset: 2px !important;
}
.wsp-reopen {
    --wsp-z: 999999;
    --wsp-reopen-bg: #111111;
    --wsp-reopen-text: #ffffff;
    --wsp-reopen-opacity: 1;
    --wsp-reopen-font: 16px;
    --wsp-reopen-icon: 18px;
    --wsp-reopen-py: 11px;
    --wsp-reopen-px: 16px;
    --wsp-reopen-radius: 999px;
    --wsp-reopen-border: 0px;
    --wsp-reopen-border-color: #111111;
    --wsp-reopen-x: 22px;
    --wsp-reopen-y: 22px;

    position: fixed;
    bottom: var(--wsp-reopen-y) !important;
    z-index: calc(var(--wsp-z) - 1);
    display: none;
    align-items: center;
    gap: 8px;
    border: var(--wsp-reopen-border) solid var(--wsp-reopen-border-color) !important;
    border-radius: var(--wsp-reopen-radius) !important;
    padding: var(--wsp-reopen-py) var(--wsp-reopen-px) !important;
    background: var(--wsp-reopen-bg) !important;
    color: var(--wsp-reopen-text) !important;
    opacity: var(--wsp-reopen-opacity) !important;
    cursor: pointer;
    font: inherit;
    font-size: var(--wsp-reopen-font) !important;
    font-weight: 600;
    transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease;
}

.wsp-reopen:hover {
    opacity: 1;
    transform: translateY(-2px);
}

.wsp-reopen.has-reopen-shadow {
    box-shadow: 0 8px 28px rgba(0,0,0,.2);
}

.wsp-reopen.is-visible {
    display: inline-flex;
}

.wsp-reopen.reopen-bottom-right {
    right: var(--wsp-reopen-x) !important;
}

.wsp-reopen.reopen-bottom-left {
    left: var(--wsp-reopen-x) !important;
}

.wsp-reopen-icon {
    font-size: var(--wsp-reopen-icon) !important;
    line-height: 1;
}

.wsp-root.anim-fade.is-open .wsp-dialog {
    animation: wspFade .28s ease both;
}

.wsp-root.anim-zoom.is-open .wsp-dialog {
    animation: wspZoom .28s ease both;
}

.wsp-root.anim-slide.is-open .wsp-dialog {
    animation: wspSlide .34s ease both;
}

@keyframes wspFade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes wspZoom {
    from { opacity: 0; transform: scale(.94); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes wspSlide {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 600px) {
    .wsp-root {
        padding: 18px;
    }

    .wsp-reopen {
        max-width: calc(100vw - 28px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .wsp-dialog {
        animation: none !important;
    }
}