.arcus-player {
    position: relative; width: 100%; background: #111821;
    aspect-ratio: var(--arcus-render-ratio,var(--arcus-ratio,16/9)); overflow: hidden;
    border-radius: var(--arcus-render-radius,var(--arcus-radius,0px)); isolation: isolate;
}
.arcus-player__video {
    display: block!important; width: 100%!important; height: 100%!important;
    max-width: 100%; object-fit: contain; margin: 0!important;
}
.arcus-player__poster, .arcus-player--preview > img {
    position: absolute; inset: 0; display: block; width: 100%!important;
    height: 100%!important; max-width: none!important; object-fit: cover;
    object-position: center; margin: 0!important; pointer-events: none;
}
.arcus-player__poster { z-index: 1; }
.arcus-player__play {
    position: absolute; z-index: 2; left: 50%; top: 50%;
    transform: translate(-50%,-50%); display: grid; place-items: center;
    width: var(--arcus-render-size,var(--arcus-size,80px)); height: var(--arcus-render-size,var(--arcus-size,80px));
    padding: 0!important; border: 0; border-radius: 50%;
    color: var(--arcus-icon,#fff); background: transparent; cursor: pointer;
    transition: transform .2s ease, filter .2s ease;
}
.arcus-player__button-face {
    position: relative; display: grid; place-items: center; width: 100%; height: 100%;
    border-radius: inherit; background: var(--arcus-button,#1255a2); color: inherit;
    box-sizing: border-box; border: var(--arcus-border-width,0px) var(--arcus-border-style,solid) var(--arcus-border-color,#fff);
    transition: background-color .2s ease, border-color .2s ease;
    box-shadow: var(--arcus-button-shadow,0 6px 28px #0004);
    animation-duration: var(--arcus-duration,2s); animation-delay: var(--arcus-delay,0s);
    animation-iteration-count: var(--arcus-repeat,infinite);
    animation-timing-function: ease-in-out; animation-fill-mode: both;
}
.arcus-player__play:focus-visible { outline: 3px solid #fff; outline-offset: 5px; }
.arcus-player__play svg { width: 42%; height: 42%; fill: var(--arcus-icon,#fff); }
.arcus-player [hidden] { display: none!important; }
:is(.arcus-player,.arcus-popup-card)[data-hover-effect="grow"] .arcus-player__play:is(:hover,:focus-visible) { transform: translate(-50%,-50%) scale(1.08); }
:is(.arcus-player,.arcus-popup-card)[data-hover-effect="lift"] .arcus-player__play:is(:hover,:focus-visible) { transform: translate(-50%,calc(-50% - 5px)); }
:is(.arcus-player,.arcus-popup-card)[data-hover-effect="glow"] .arcus-player__play:is(:hover,:focus-visible) { filter: drop-shadow(0 0 12px var(--arcus-button,#1255a2)); }
:is(.arcus-player,.arcus-popup-card)[data-button-animation="pulse"] .arcus-player__button-face { animation-name: arcus-button-pulse; }
:is(.arcus-player,.arcus-popup-card)[data-button-animation="bounce"] .arcus-player__button-face { animation-name: arcus-button-bounce; }
:is(.arcus-player,.arcus-popup-card)[data-button-animation="glow"] .arcus-player__button-face { animation-name: arcus-button-glow; }
:is(.arcus-player,.arcus-popup-card)[data-button-animation="ripple"] .arcus-player__button-face::after {
    content: ""; position: absolute; inset: 0; border: 2px solid var(--arcus-button,#1255a2);
    border-radius: inherit; pointer-events: none;
    animation: arcus-button-ripple var(--arcus-duration,2s) ease-out var(--arcus-delay,0s) var(--arcus-repeat,infinite) both;
}
:is(.arcus-player,.arcus-popup-card)[data-animation-trigger="hover"] .arcus-player__play:not(:hover):not(:focus-visible) .arcus-player__button-face,
:is(.arcus-player,.arcus-popup-card)[data-animation-trigger="hover"] .arcus-player__play:not(:hover):not(:focus-visible) .arcus-player__button-face::after { animation-name: none; }
:is(.arcus-player,.arcus-popup-card)[data-animation-trigger="hover"] .arcus-player__play:not(:hover):not(:focus-visible) .arcus-player__button-face::after { opacity: 0; }
@keyframes arcus-button-pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(var(--arcus-grow,1.12)); } }
@keyframes arcus-button-bounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(calc(-1 * var(--arcus-travel,12px))); } }
@keyframes arcus-button-glow { 0%,100% { box-shadow: var(--arcus-button-shadow,0 6px 28px #0004); } 50% { box-shadow: 0 0 var(--arcus-glow,24px) var(--arcus-button,#1255a2); } }
@keyframes arcus-button-ripple { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(var(--arcus-ring,1.6)); opacity: 0; } }
.arcus-player__error { position: absolute; z-index: 3; bottom: 0; left: 0; right: 0; padding: 14px!important; margin: 0!important; background: #111e; color: #fff; font: 14px/1.5 sans-serif; }
.arcus-player__error a { color: #fff; text-decoration: underline; }
.arcus-video-empty { padding: 40px 24px; background: #edf2f8; color: #24364b; text-align: center; border: 1px dashed #b3c1d1; }
.arcus-player--preview { pointer-events: none; }
.arcus-player--preview .arcus-player__play { pointer-events: none; }
.arcus-player__preview-label { position: absolute; bottom: 12px; left: 12px; background: #111b; color: #fff; font: 12px/1.4 sans-serif; padding: 5px 9px; border-radius: 4px; }
@media(prefers-reduced-motion:reduce) {
    .arcus-player__play { transition: none!important; transform: translate(-50%,-50%)!important; }
    .arcus-player__button-face, .arcus-player__button-face::after { animation: none!important; }
    .arcus-player__button-face::after { display: none!important; }
}

/* Set the SVG and path directly: theme SVG rules must not replace the saved icon colour. */
.arcus_video .arcus-player .arcus-player__play .arcus-player__icon,
.arcus_video .arcus-player .arcus-player__play .arcus-player__icon path {
    fill: var(--arcus-icon,#fff)!important;
    color: var(--arcus-icon,#fff)!important;
    stroke: none!important;
}

/* Keep hover changes on the circular control, without changing the module rectangle. */
:is(.arcus-player,.arcus-popup-card) .arcus-player__play:is(:hover,:focus-visible) {
    --arcus-button: var(--arcus-button-hover);
    --arcus-icon: var(--arcus-icon-hover);
    --arcus-border-color: var(--arcus-border-color-hover);
}
@media(prefers-reduced-motion:reduce) {
    .arcus-player__button-face { transition: none!important; }
}

/* Moving thumbnail sits above the still cover, below the main play control. */
.arcus-player__preview-video {
    position: absolute; inset: 0; z-index: 1; display: block;
    width: 100%!important; height: 100%!important; max-width: none!important;
    object-fit: cover; object-position: center; margin: 0!important; pointer-events: none;
}
.arcus-player__preview-toggle {
    position: absolute; z-index: 2; bottom: 12px; right: 12px;
    padding: 5px 9px; border: 1px solid #fff8; border-radius: 4px;
    background: #111b; color: #fff; font: 12px/1.4 sans-serif; cursor: pointer;
}
.arcus-player__preview-toggle:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
