.vesna-sp-root,
.vesna-sp-root * {
    box-sizing: border-box;
}

.vesna-sp-root {
    position: relative;
    width: 100%;
    --vesna-sp-parallax: 0px;
    --vesna-sp-panel-height: 78vh;
    --vesna-sp-text-lift: 72px;
}

.vesna-sp-slide {
    position: relative;
    width: 100%;
    height: var(--vesna-sp-panel-height, 78vh);
    min-height: 320px;
    z-index: var(--vesna-sp-z, 1);
}

.vesna-sp-panel {
    position: relative;
    top: 0;
    display: block;
    width: 100%;
    height: var(--vesna-sp-panel-height, 78vh);
    min-height: 320px;
    overflow: hidden;
    color: inherit;
    text-decoration: none;
    background: #111;
    transform: translateZ(0);
    will-change: transform;
    isolation: isolate;
}

.vesna-sp-gsap-ready .vesna-sp-slide {
    overflow: visible;
}

.vesna-sp-panel:hover,
.vesna-sp-panel:focus {
    color: inherit;
    text-decoration: none;
}

.vesna-sp-media {
    position: absolute;
    inset: 0;
    z-index: 1;
    overflow: hidden;
    background: #111;
}

.vesna-sp-media img,
.vesna-sp-media video {
    position: absolute;
    inset: calc(var(--vesna-sp-parallax, 0px) * -1) 0;
    width: 100%;
    height: calc(100% + (var(--vesna-sp-parallax, 0px) * 2));
    display: block;
    object-fit: cover;
    object-position: var(--vesna-sp-object-position, center center);
    border: 0;
    transform: translate3d(0, 0, 0);
}

.vesna-sp-media video {
    object-fit: cover !important;
    pointer-events: none;
}

.vesna-sp-media iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: max(100vw, calc((100vh + (var(--vesna-sp-parallax, 0px) * 2)) * 1.7778));
    height: max(calc(100vh + (var(--vesna-sp-parallax, 0px) * 2)), 56.25vw);
    min-width: 100%;
    min-height: calc(100% + (var(--vesna-sp-parallax, 0px) * 2));
    display: block;
    border: 0;
    transform: translate3d(-50%, -50%, 0);
    pointer-events: none;
}

.vesna-sp-overlay,
.vesna-sp-gradient {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
}

.vesna-sp-gradient {
    background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,0.68) 100%);
}

.vesna-sp-content {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    min-height: 100%;
    height: 100%;
    color: #fff;
    pointer-events: none;
}

.vesna-sp-category,
.vesna-sp-bottom-copy,
.vesna-sp-title,
.vesna-sp-metric {
    display: block;
}

.vesna-sp-category {
    margin-right: auto;
    font-size: 11px;
    line-height: 1.1;
    font-weight: 500;
    letter-spacing: -0.01em;
}

.vesna-sp-bottom-copy {
    margin-top: auto;
    transform: translate3d(0, calc(var(--vesna-sp-text-lift, 0px) * -1), 0);
}

.vesna-sp-title {
    font-size: clamp(28px, 4vw, 58px);
    line-height: 0.96;
    font-weight: 500;
    letter-spacing: -0.055em;
}

.vesna-sp-metric {
    font-size: 11px;
    line-height: 1.25;
    font-weight: 500;
    letter-spacing: -0.015em;
}

.vesna-sp-reveal-yes .vesna-sp-panel {
    transition: filter 420ms cubic-bezier(.22, 1, .36, 1), transform 420ms cubic-bezier(.22, 1, .36, 1);
}

.vesna-sp-rounded-yes .vesna-sp-panel {
    overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
    .vesna-sp-panel {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        width: 100% !important;
        transform: none !important;
    }

    .vesna-sp-reveal-yes .vesna-sp-panel {
        transition: none;
    }
}

@media (max-width: 767px) {
    .vesna-sp-root {
        --vesna-sp-text-lift: 44px;
    }

    .vesna-sp-mobile-free-yes .vesna-sp-panel {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        width: 100% !important;
        transform: none !important;
    }

    .vesna-sp-title {
        font-size: clamp(32px, 12vw, 52px);
    }

    .vesna-sp-category,
    .vesna-sp-metric {
        font-size: 10px;
    }
}

/* v1.7 mobile stability fix: true fullscreen cover panels, no top bleed, no mobile jump. */
@media (max-width: 767px) {
    .vesna-sp-root {
        --vesna-sp-mobile-vh: 100svh;
    }

    .vesna-sp-root .vesna-sp-slide,
    .vesna-sp-root .vesna-sp-panel {
        height: var(--vesna-sp-panel-height, var(--vesna-sp-mobile-vh, 100svh)) !important;
        min-height: 0 !important;
    }

    .vesna-sp-root .vesna-sp-panel {
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        border-radius: 0;
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
        transform: translate3d(0, 0, 0);
        will-change: transform;
    }

    .vesna-sp-root .vesna-sp-media {
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        overflow: hidden !important;
    }

    .vesna-sp-root .vesna-sp-media img,
    .vesna-sp-root .vesna-sp-media video {
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        min-width: 100% !important;
        min-height: 100% !important;
        object-fit: cover !important;
        object-position: var(--vesna-sp-object-position, center center) !important;
    }

    .vesna-sp-root .vesna-sp-media iframe {
        top: 50% !important;
        left: 50% !important;
        width: max(100vw, calc(var(--vesna-sp-mobile-vh, 100svh) * 1.7778)) !important;
        height: max(var(--vesna-sp-mobile-vh, 100svh), 56.25vw) !important;
        min-width: 100% !important;
        min-height: 100% !important;
        transform: translate3d(-50%, -50%, 0);
    }

    .vesna-sp-gsap-ready .vesna-sp-slide {
        overflow: visible;
        background: #111;
    }

    .vesna-sp-content {
        min-height: 100% !important;
        height: 100% !important;
    }
}

/* v1.9 mobile media override: optional mobile-specific image/video/poster per portfolio item. */
.vesna-sp-media--mobile {
    display: none;
}

@media (max-width: 767px) {
    .vesna-sp-has-mobile-media .vesna-sp-media--desktop {
        display: none;
    }

    .vesna-sp-has-mobile-media .vesna-sp-media--mobile {
        display: block;
    }

    .vesna-sp-has-mobile-media .vesna-sp-media--mobile img,
    .vesna-sp-has-mobile-media .vesna-sp-media--mobile video {
        width: 100% !important;
        height: 100% !important;
        min-width: 100% !important;
        min-height: 100% !important;
        object-fit: cover !important;
        object-position: var(--vesna-sp-object-position, center center) !important;
    }
}


/* v2.0: mobile slide height now respects Elementor responsive Slide Height control. */
@media (max-width: 767px) {
    .vesna-sp-root .vesna-sp-slide,
    .vesna-sp-root .vesna-sp-panel {
        height: var(--vesna-sp-panel-height, 100svh) !important;
        min-height: 0 !important;
    }

    .vesna-sp-root .vesna-sp-content {
        height: 100% !important;
        min-height: 100% !important;
    }
}
