.rvft-layer { position: absolute; z-index: 10; pointer-events: none; box-sizing: border-box; }
.rvft-surface { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; padding: 0; background: transparent; cursor: pointer; pointer-events: auto; touch-action: pan-x pan-y pinch-zoom; }
.rvft-controls { position: absolute; top: 8px; right: 8px; display: flex; gap: 6px; pointer-events: auto; }
.rvft-controls button { display: grid; place-items: center; width: 44px; height: 44px; min-width: 44px; padding: 8px; border: 1px solid #ffffff80; border-radius: 8px; color: #fff; background: #111d; cursor: pointer; line-height: 1; }
.rvft-controls svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; }
.rvft-layer button:focus-visible { outline: 3px solid #ffd85c; outline-offset: 2px; }
.rvft-surface:focus-visible { outline-offset: -4px !important; }
.rvft-layer [hidden] { display: none !important; }
.mejs-container.rvft-owned .mejs-overlay-play { visibility: hidden !important; pointer-events: none !important; }
.mejs-container.rvft-owned .mejs-controls { visibility: hidden !important; }
@media (max-width: 480px) { .rvft-controls { top: 4px; right: 4px; gap: 4px; } }
@media (forced-colors: active) { .rvft-controls button { border: 2px solid ButtonText; } }

/* Elementor Video: keep the cover visible until the preview is confirmed ready.
   Scoped to the widget AND preview state; no effect on normal Elementor editing. */
.elementor-widget-video.rvft-preview-ready .elementor-custom-embed-image-overlay,
.elementor-widget-video.rvft-preview-ready .elementor-video-cover,
.elementor-widget-video.rvft-preview-ready .e-hosted-video__poster,
.elementor-widget-video.rvft-preview-ready .elementor-wrapper > .elementor-custom-embed-image-overlay,
.e-widget-video.rvft-preview-ready .elementor-custom-embed-image-overlay {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}
.elementor-widget-video.rvft-preview-ready video,
.e-widget-video.rvft-preview-ready video {
    visibility: visible !important;
    opacity: 1 !important;
}
/* Never paint a color over the playing video from the interaction layer. */
.rvft-layer, .rvft-surface { background: transparent !important; background-image: none !important; }

/* Controls are exclusively available after an intentional playback activation. */
.rvft-controls[hidden] { display: none !important; }

.rvft-layer { -webkit-tap-highlight-color: transparent; }

/* Elementor covers may remain visible, but must never swallow a touch event.
   Do not hide the poster until playback has actually started. */
.elementor-widget-video .elementor-custom-embed-image-overlay,
.elementor-widget-video .elementor-video-cover,
.elementor-widget-video .e-hosted-video__poster { -webkit-tap-highlight-color: transparent; }
.elementor-widget-video.rvft-preview-ready .elementor-custom-embed-image-overlay { pointer-events: none !important; }
