/* Structural media layers only. Size, fit, focal points, scrim and selected states are Elementor controls. */
.elementor-widget-uoh-hero-media{pointer-events:none}
.elementor-widget-uoh-hero-media>.elementor-widget-container{height:100%;width:100%;position:relative}
.uoh-hero-stage,.uoh-hero-slide,.uoh-hero-slide>img,.uoh-hero-slide>video,.uoh-hero-shade{position:absolute;inset:0;width:100%;height:100%}
.uoh-hero-slide{opacity:0;z-index:0;transition:opacity var(--uoh-fade-duration,640ms) ease}
.uoh-hero-slide.is-outgoing{opacity:1}
.uoh-hero-slide.is-current{opacity:1;z-index:1}
.uoh-hero-slide[hidden]{display:none}
.uoh-hero-slide>video[hidden]{display:none}
.uoh-hero-slide>video{z-index:1}
.uoh-hero-shade{z-index:2}
/* Elementor resets all reduced-motion transitions with !important; retain only this native-controlled opacity fade. */
@media(prefers-reduced-motion:reduce){.uoh-hero-stage>.uoh-hero-slide{transition-duration:var(--uoh-reduced-fade-duration,160ms)!important}}

/* Native repeater controls set optional media edge blends for reframed shots. */
.uoh-hero-slide>img,.uoh-hero-slide>video{mask-image:linear-gradient(to right,transparent,#000 var(--uoh-blend-left,0%)),linear-gradient(to top,transparent,#000 var(--uoh-blend-bottom,0%));mask-composite:intersect}

/* Per-slide hero copy (data-uoh-hero-copy). Before the script runs only the first block shows; the editor shows all. */
[data-uoh-hero]:not([data-uoh-copy-live]) [data-uoh-hero-copy]~[data-uoh-hero-copy]{display:none!important}
.elementor-editor-active [data-uoh-hero] [data-uoh-hero-copy]~[data-uoh-hero-copy]{display:var(--display)!important}
[data-uoh-hero][data-uoh-copy-live] [data-uoh-hero-copy]:not(.is-current){display:none!important}
[data-uoh-hero][data-uoh-copy-live] [data-uoh-hero-copy].is-current{animation:uoh-copy-in 520ms cubic-bezier(.2,.7,.2,1) both}
@keyframes uoh-copy-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){[data-uoh-hero][data-uoh-copy-live] [data-uoh-hero-copy].is-current{animation:uoh-copy-fade 160ms ease both!important}}
@keyframes uoh-copy-fade{from{opacity:0}to{opacity:1}}
