.pge-project-video {
    position: relative;
    width: 100%;
    aspect-ratio: var(--pge-video-ratio, 16 / 9);
    overflow: hidden;
    background: #000;
    box-sizing: border-box;
}
.pge-project-video__iframe,
.pge-project-video__poster {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    border: 0;
}
.pge-project-video__poster { object-fit: cover; }
.pge-project-video__overlay { position: absolute; inset: 0; background: #000; opacity: 0.25; pointer-events: none; }
.pge-project-video__play {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    border: 0;
    border-radius: 50%;
    color: #fff;
    background: #222;
    cursor: pointer;
    line-height: 1;
}
.pge-project-video__play .pge-project-video__play-icon { display: block; width: var(--pge-play-icon-size, 32px); height: var(--pge-play-icon-size, 32px); }
.pge-project-video__play:focus-visible, .pge-video-popup__close:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.pge-project-video__message { padding: 16px; border: 1px solid #b9b9b9; color: #333; background: #f6f6f6; }
.pge-project-video-native .elementor-wrapper.e-hosted-video,
.pge-project-video-native .elementor-wrapper {
    position: relative;
    aspect-ratio: var(--pge-video-ratio, 16 / 9) !important;
    height: auto !important;
    padding-bottom: 0 !important;
    overflow: hidden;
}
.pge-project-video-native video.elementor-video {
    position: absolute !important;
    inset: 0;
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: 100%;
    object-fit: contain !important;
    aspect-ratio: auto !important;
}
.pge-project-video-native .elementor-custom-embed-image-overlay { inset: 0; background-size: contain; }
.pge-video-popup { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 4vh 2vw; box-sizing: border-box; opacity: 0; transition: opacity 220ms ease; }
.pge-video-popup.is-open { opacity: 1; }
.pge-video-popup.is-closing { pointer-events: none; }
.pge-video-popup[hidden] { display: none; }
.pge-video-popup__overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.36); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.pge-video-popup__loading { position: absolute; color: #fff; pointer-events: none; }
.pge-video-popup.is-ready .pge-video-popup__loading { display: none; }
.pge-video-popup__dialog {
    position: relative;
    z-index: 1;
    width: min(96vw, calc(92vh * var(--pge-popup-ratio, 16 / 9)));
    max-height: 92vh;
    overflow: hidden;
    margin: 0 auto;
    box-sizing: border-box;
    border-radius: 20px;
    background: transparent;
    opacity: 0;
    transform: translateY(12px) scale(0.98);
    transition: opacity 220ms ease, transform 220ms ease;
}
.pge-video-popup.is-open.is-ready .pge-video-popup__dialog { opacity: 1; transform: translateY(0) scale(1); }
.pge-video-popup__media { position: relative; width: 100%; aspect-ratio: var(--pge-popup-ratio, 16 / 9) !important; }
.pge-video-popup__video { position: absolute; inset: 0; display: block; width: 100% !important; height: 100% !important; max-width: none !important; max-height: none !important; object-fit: contain !important; border: 0; border-radius: inherit; }
.pge-video-popup .pge-video-popup__close { position: absolute; top: 10px; right: 10px; z-index: 2; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 5px; border: 0; border-radius: 50%; background: #fff; cursor: pointer; box-shadow: 0 1px 8px #0003; }
.pge-video-popup__close img { width: 30px; height: 30px; display: block; }
.pge-video-popup .pge-video-popup__close:hover, .pge-video-popup .pge-video-popup__close:focus, .pge-video-popup .pge-video-popup__close:active { background: #ececec !important; color: #333 !important; border-color: transparent !important; }
@media (hover: hover) and (pointer: fine) {
    .pge-video-popup .pge-video-popup__close { opacity: 0; }
    .pge-video-popup__dialog:hover .pge-video-popup__close, .pge-video-popup .pge-video-popup__close:focus-visible { opacity: 1; }
}
@media (any-pointer: coarse) { .pge-video-popup .pge-video-popup__close { opacity: 1; } }
.pge-video-popup .pge-video-popup__loading-close { top: 4vh; right: 2vw; opacity: 1; }
.pge-video-popup.is-ready .pge-video-popup__loading-close { display: none; }
body.pge-video-popup-open { overflow: hidden; }
@supports (height: 100dvh) {
    .pge-video-popup { padding: 4dvh 2vw; }
    .pge-video-popup__dialog { width: min(96vw, calc(92dvh * var(--pge-popup-ratio, 16 / 9))); max-height: 92dvh; }
}
@media (prefers-reduced-motion: reduce) {
    .pge-video-popup, .pge-video-popup__dialog { transition: none; }
    .pge-video-popup__dialog { transform: none; }
}
