.hs-music {
    --hs-music-bg: #111827;
    --hs-music-button-bg: #ffffff;
    --hs-music-button-hover-bg: #e5e7eb;
    --hs-music-button-border-color: rgba(255, 255, 255, 0);
    --hs-music-button-hover-border-color: rgba(255, 255, 255, 0.35);
    --hs-music-button-border-width: 0px;
    --hs-music-button-bg-active: var(--hs-music-button-bg);
    --hs-music-button-hover-bg-active: var(--hs-music-button-hover-bg);
    --hs-music-button-border-color-active: var(--hs-music-button-border-color);
    --hs-music-button-hover-border-color-active: var(--hs-music-button-hover-border-color);
    --hs-music-button-border-width-active: var(--hs-music-button-border-width);
    --hs-music-button-radius: 50%;
    --hs-music-button-size: 34px;
    --hs-music-play-color: #111827;
    --hs-music-play-hover-color: #000000;
    --hs-music-pause-color: #111827;
    --hs-music-pause-hover-color: #000000;
    --hs-music-mute-color: #ffffff;
    --hs-music-mute-hover-color: #ffffff;
    --hs-music-unmute-color: #ffffff;
    --hs-music-unmute-hover-color: #ffffff;
    --hs-music-download-color: #ffffff;
    --hs-music-download-hover-color: #ffffff;
    --hs-music-play-icon-size: 15px;
    --hs-music-mute-icon-size: 15px;
    --hs-music-download-icon-size: 15px;
    --hs-music-controls-gap: 10px;
    --hs-music-time-color: #cbd5e1;
    --hs-music-time-font-size: 12px;
    --hs-music-time-min-width: 42px;
    --hs-music-progress-box-height: 38px;
    --hs-music-progress-height: 8px;
    --hs-music-progress-width-control: 100%;
    --hs-music-progress-radius: 999px;
    --hs-music-progress-cover-bg: transparent;
    --hs-music-progress-cover-hover-bg: rgba(255, 255, 255, 0.08);
    --hs-music-progress-cover-border-color: rgba(255, 255, 255, 0);
    --hs-music-progress-cover-hover-border-color: rgba(255, 255, 255, 0.35);
    --hs-music-progress-cover-border-width: 0px;
    --hs-music-progress-cover-bg-active: transparent;
    --hs-music-progress-cover-hover-bg-active: transparent;
    --hs-music-progress-cover-border-color-active: transparent;
    --hs-music-progress-cover-hover-border-color-active: transparent;
    --hs-music-progress-cover-border-width-active: 0px;
    --hs-music-progress-bg: rgba(255, 255, 255, 0.2);
    --hs-music-progress-bg-gradient-enabled: 0;
    --hs-music-progress-bg-gradient-start: rgba(255, 255, 255, 0.12);
    --hs-music-progress-bg-gradient-end: rgba(255, 255, 255, 0.35);
    --hs-music-progress-bg-gradient-angle: 90deg;
    --hs-music-progress-bg-paint: var(--hs-music-progress-bg);
    --hs-music-progress-fill: #22c55e;
    --hs-music-progress-fill-gradient-enabled: 0;
    --hs-music-progress-fill-gradient-start: #22c55e;
    --hs-music-progress-fill-gradient-end: #0ea5e9;
    --hs-music-progress-fill-gradient-angle: 90deg;
    --hs-music-progress-fill-paint: var(--hs-music-progress-fill);
    --hs-music-progress-fill-hover: #16a34a;
    --hs-music-progress-fill-hover-paint: var(--hs-music-progress-fill-hover);
    --hs-music-progress-fill-hover-active: var(--hs-music-progress-fill-hover-paint);
    --hs-music-progress-cover-hover-bg-mode: var(--hs-music-progress-cover-hover-bg-active);
    --hs-music-progress-cover-hover-border-color-mode: var(--hs-music-progress-cover-hover-border-color-active);
    --hs-music-bar-opacity: 1;
    --hs-music-equalizer-opacity: 0;
    --hs-music-wave-opacity: 0;
    display: flex;
    align-items: center;
    width: 100%;
    min-width: 0;
    padding: 18px;
    background: var(--hs-music-bg);
    border-radius: 16px;
    box-sizing: border-box;
}

.hs-music,
.hs-music * {
    box-sizing: border-box;
}

.hs-music__audio {
    display: none;
}

.hs-music__controls {
    display: flex;
    direction: ltr;
    flex: 1 1 auto;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: var(--hs-music-controls-gap);
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.hs-music__button,
.hs-music__progress {
    padding: 0;
    border: 0;
    appearance: none;
    background: transparent;
    box-shadow: none;
    outline: 0;
    filter: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.hs-music .hs-music__button,
.hs-music .hs-music__button:hover,
.hs-music .hs-music__button:focus,
.hs-music .hs-music__button:active,
.hs-music .hs-music__progress,
.hs-music .hs-music__progress:hover,
.hs-music .hs-music__progress:focus,
.hs-music .hs-music__progress:active {
    box-shadow: none !important;
    outline: 0;
    filter: none !important;
    text-decoration: none;
}

.hs-music__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: var(--hs-music-button-size);
    height: var(--hs-music-button-size);
    color: var(--hs-music-mute-color);
    border: var(--hs-music-button-border-width-active) solid var(--hs-music-button-border-color-active);
    border-radius: var(--hs-music-button-radius);
    background: var(--hs-music-button-bg-active) !important;
    transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.hs-music .hs-music__button:hover,
.hs-music .hs-music__button:focus,
.hs-music .hs-music__button:active {
    border-color: var(--hs-music-button-hover-border-color-active);
    background: var(--hs-music-button-hover-bg-active) !important;
}

.hs-music__button svg,
.hs-music__button i {
    display: block;
    width: 1em;
    height: 1em;
    font-size: var(--hs-music-mute-icon-size);
    line-height: 1;
}

.hs-music__play {
    color: var(--hs-music-play-color);
}

.hs-music__play svg,
.hs-music__play i {
    font-size: var(--hs-music-play-icon-size);
}

.hs-music__play:hover {
    color: var(--hs-music-play-hover-color);
}

.hs-music.is-playing .hs-music__play {
    color: var(--hs-music-pause-color);
}

.hs-music.is-playing .hs-music__play:hover {
    color: var(--hs-music-pause-hover-color);
}

.hs-music__mute:hover {
    color: var(--hs-music-mute-hover-color);
}

.hs-music__download {
    display: none;
    color: var(--hs-music-download-color);
    text-decoration: none;
}

.hs-music__download svg,
.hs-music__download i {
    font-size: var(--hs-music-download-icon-size);
}

.hs-music__download:hover {
    color: var(--hs-music-download-hover-color);
}

.hs-music__icon--pause,
.hs-music.is-playing .hs-music__icon--play,
.hs-music__icon--unmute,
.hs-music.is-muted .hs-music__icon--mute {
    display: none;
}

.hs-music.is-playing .hs-music__icon--pause,
.hs-music.is-muted .hs-music__icon--unmute {
    display: inline-flex;
}

.hs-music.is-muted .hs-music__mute {
    color: var(--hs-music-unmute-color);
}

.hs-music.is-muted .hs-music__mute:hover {
    color: var(--hs-music-unmute-hover-color);
}

.hs-music__time {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-width: var(--hs-music-time-min-width);
    color: var(--hs-music-time-color);
    font-size: var(--hs-music-time-font-size);
    font-variant-numeric: tabular-nums;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
}

.hs-music__progress {
    position: relative;
    display: block;
    flex: 0 1 var(--hs-music-progress-width-control);
    width: var(--hs-music-progress-width-control);
    min-width: 48px;
    max-width: min(100%, var(--hs-music-progress-width-control));
    height: var(--hs-music-progress-box-height);
    overflow: hidden;
    direction: ltr;
    border: var(--hs-music-progress-cover-border-width-active) solid var(--hs-music-progress-cover-border-color-active);
    border-radius: var(--hs-music-progress-radius);
    background: var(--hs-music-progress-cover-bg-active) !important;
    transition: background-color 160ms ease, border-color 160ms ease;
}

.hs-music__progress:hover {
    border-color: var(--hs-music-progress-cover-hover-border-color-mode);
    background: var(--hs-music-progress-cover-hover-bg-mode) !important;
}

.hs-music__bar,
.hs-music__equalizer,
.hs-music__wave-wrap {
    position: absolute;
    pointer-events: none;
    transition: opacity 120ms ease;
}

.hs-music__bar {
    right: 0;
    left: 0;
    top: 50%;
    height: var(--hs-music-progress-height);
    overflow: hidden;
    direction: ltr;
    opacity: var(--hs-music-bar-opacity);
    background: var(--hs-music-progress-bg-paint);
    border-radius: var(--hs-music-progress-radius);
    transform: translateY(-50%);
}

.hs-music__bar span {
    display: block;
    width: var(--hs-music-progress-width, 0%);
    height: 100%;
    margin-right: auto;
    margin-left: 0;
    background: var(--hs-music-progress-fill-paint);
    border-radius: inherit;
    transform-origin: left center;
}

.hs-music__progress:hover .hs-music__bar span {
    background: var(--hs-music-progress-fill-hover-active);
}

.hs-music__equalizer {
    inset: 5px 0;
    display: flex;
    direction: ltr;
    flex-direction: row;
    align-items: center;
    gap: 3px;
    opacity: var(--hs-music-equalizer-opacity);
}

.hs-music__equalizer span {
    display: block;
    flex: 1 1 0;
    height: calc(var(--hs-bar-height, 40) * 1%);
    min-height: 4px;
    background: var(--hs-music-progress-bg-paint);
    border-radius: 999px;
    transition: background-color 140ms ease, opacity 140ms ease;
}

.hs-music__equalizer span.is-filled {
    background: var(--hs-music-progress-fill-paint);
}

.hs-music__progress:hover .hs-music__equalizer span.is-filled {
    background: var(--hs-music-progress-fill-hover-active);
}

.hs-music.is-playing .hs-music__equalizer span.is-filled {
    animation: hs-music-equalizer 780ms ease-in-out infinite alternate;
    animation-delay: calc(var(--hs-index, 0) * -32ms);
}

.hs-music__wave-wrap {
    inset: 0;
    overflow: hidden;
    direction: ltr;
    opacity: var(--hs-music-wave-opacity);
}

.hs-music__wave {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
}

.hs-music__wave--fill {
    clip-path: inset(0 var(--hs-music-progress-inset, 100%) 0 0);
}

.hs-music__button:focus-visible,
.hs-music__progress:focus-visible {
    outline: 2px solid var(--hs-music-progress-fill);
    outline-offset: 2px;
}

@keyframes hs-music-equalizer {
    from {
        transform: scaleY(0.72);
    }

    to {
        transform: scaleY(1.08);
    }
}

@media (max-width: 1024px) {
    .hs-music {
        --hs-music-button-size: 32px;
        --hs-music-play-icon-size: 14px;
        --hs-music-mute-icon-size: 14px;
        --hs-music-download-icon-size: 14px;
        --hs-music-controls-gap: 8px;
        --hs-music-time-font-size: 11px;
        --hs-music-time-min-width: 36px;
        --hs-music-progress-box-height: 34px;
        --hs-music-progress-height: 7px;
        --hs-music-progress-width-control: 62%;
        padding: 14px;
    }
}

@media (max-width: 767px) {
    .hs-music {
        --hs-music-button-size: 28px;
        --hs-music-play-icon-size: 12px;
        --hs-music-mute-icon-size: 12px;
        --hs-music-download-icon-size: 12px;
        --hs-music-controls-gap: 5px;
        --hs-music-time-font-size: 10px;
        --hs-music-time-min-width: 28px;
        --hs-music-progress-box-height: 28px;
        --hs-music-progress-height: 6px;
        --hs-music-progress-width-control: 42%;
        flex-direction: row;
        align-items: center;
        padding: 10px;
    }

    .hs-music__controls {
        flex-wrap: nowrap;
        justify-content: flex-start;
        overflow: hidden;
    }

    .hs-music__progress {
        min-width: 44px;
    }

    .hs-music__equalizer {
        inset: 5px 0;
        gap: 2px;
    }
}

@media (max-width: 480px) {
    .hs-music {
        --hs-music-controls-gap: 4px;
        --hs-music-time-min-width: 26px;
        --hs-music-progress-width-control: 38%;
        padding: 8px;
    }

    .hs-music__progress {
        min-width: 40px;
    }
}

/* Base-state fallbacks for migrated widgets; responsive Elementor rules can override these. */
.hs-music--hide-play .hs-music__play,
.hs-music--hide-mute .hs-music__mute,
.hs-music--hide-progress .hs-music__progress,
.hs-music--hide-current .hs-music__current,
.hs-music--hide-remaining .hs-music__remaining,
.hs-music--hide-download .hs-music__download {
    display: none;
}

.hs-music--no-button-cover {
    --hs-music-button-bg-active: transparent;
    --hs-music-button-hover-bg-active: transparent;
    --hs-music-button-border-color-active: transparent;
    --hs-music-button-hover-border-color-active: transparent;
    --hs-music-button-border-width-active: 0px;
}

.hs-music--no-progress-cover {
    --hs-music-progress-cover-bg-active: transparent;
    --hs-music-progress-cover-hover-bg-active: transparent;
    --hs-music-progress-cover-border-color-active: transparent;
    --hs-music-progress-cover-hover-border-color-active: transparent;
    --hs-music-progress-cover-border-width-active: 0px;
}
