/**
 * Отдельные стили аудиосказок.
 */

.audio-player-card,
.audio-source,
.audio-about {
    max-width: 820px;
    margin-right: auto;
    margin-left: auto;
}

.audio-player-card {
    position: relative;
    background: var(--gray-color-35);
    border-radius: var(--radius);
    padding: 24px;
}

.audio-narrator {
    color: var(--gray-color-85);
    font-size: 16px;
    margin: 18px 0 0;
}

.audio-control {
    width: 100%;
}

.audio-player {
    width: 100%;
    display: block;
}

.audio-interface {
    display: flex;
    flex-direction: column;
}

.audio-actions {
    display: grid;
    grid-template-columns: minmax(70px, 1fr) minmax(180px, 2.5fr) minmax(70px, 1fr);
    align-items: center;
    gap: 8px;
    margin-top: 24px;
}

.audio-play,
.audio-skip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-family: inherit;
    touch-action: manipulation;
    border-radius: var(--radius);
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.audio-play {
    background: var(--primary-color-accent);
    width: 100%;
    min-width: 0;
    height: 72px;
    gap: 10px;
    color: var(--white-color);
    font-size: 18px;
    font-weight: 700;
    border: 1px solid var(--primary-color-accent);
    padding: 0 24px;
}

.audio-play:hover {
    background: var(--primary-color-hover);
    border-color: var(--primary-color-hover);
}

.audio-play-icon {
    background-image: url("../images/icons/audio-play.png");
    background-image: image-set(
        url("../images/icons/audio-play.png") 1x,
        url("../images/icons/audio-play@2x.png") 2x
    );
    background-repeat: no-repeat;
    background-size: 28px 28px;
    width: 28px;
    height: 28px;
    display: block;
    flex: 0 0 auto;
}

.audio-play.is-playing .audio-play-icon {
    background-image: url("../images/icons/audio-pause.png");
    background-image: image-set(
        url("../images/icons/audio-pause.png") 1x,
        url("../images/icons/audio-pause@2x.png") 2x
    );
}

.audio-skip {
    background: var(--white-color);
    width: 100%;
    height: 72px;
    color: var(--gray-color-110);
    font-size: 16px;
    font-weight: 600;
    border: 1px solid var(--gray-color-40);
    padding: 0 8px;
}

.audio-skip:hover {
    background: var(--gray-color-45);
    border-color: var(--gray-color-60);
}

.audio-play:focus-visible,
.audio-skip:focus-visible,
.audio-progress:focus-visible {
    outline: 2px solid var(--primary-color-accent);
    outline-offset: 3px;
}

.audio-progress {
    --audio-progress: 0%;
    position: absolute;
    top: -22px;
    left: 0;
    background: transparent;
    width: 100%;
    height: 44px;
    display: block;
    cursor: pointer;
    appearance: none;
    padding: 0;
    margin: 0;
}

.audio-progress::-webkit-slider-runnable-track {
    background: linear-gradient(
        to right,
        var(--primary-color-accent) 0,
        var(--primary-color-accent) var(--audio-progress),
        var(--gray-color-60) var(--audio-progress),
        var(--gray-color-60) 100%
    );
    height: 10px;
    border-radius: 5px 5px 0 0;
}

.audio-progress::-webkit-slider-thumb {
    background: var(--primary-color-accent);
    width: 28px;
    height: 28px;
    appearance: none;
    border: 4px solid var(--white-color);
    border-radius: 50%;
    box-shadow: 0 2px 7px rgba(38, 38, 38, .2);
    margin-top: -9px;
}

.audio-progress::-moz-range-track {
    background: var(--gray-color-60);
    height: 10px;
    border-radius: 5px 5px 0 0;
}

.audio-progress::-moz-range-progress {
    background: var(--primary-color-accent);
    height: 10px;
    border-radius: 5px 5px 0 0;
}

.audio-progress::-moz-range-thumb {
    background: var(--primary-color-accent);
    width: 20px;
    height: 20px;
    border: 4px solid var(--white-color);
    border-radius: 50%;
    box-shadow: 0 2px 7px rgba(38, 38, 38, .2);
}

.audio-time {
    display: flex;
    justify-content: space-between;
    color: var(--gray-color-95);
    font-size: 16px;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}

.audio-status {
    color: var(--gray-color-95);
    font-size: 14px;
    text-align: center;
    margin: 14px 0 0;
}

.audio-status:empty {
    display: none;
}

.audio-status.is-error {
    color: var(--primary-color-accent);
}

.audio-source {
    background: var(--white-color);
    border: 1px solid var(--gray-color-40);
    border-radius: var(--radius);
    padding: 24px;
    margin-top: 28px;
}

.audio-source h2 {
    color: var(--gray-color-110);
    font-size: 24px;
    line-height: 1.25;
    margin: 0 0 18px;
}

.audio-source-list {
    margin: 0;
}

.audio-source-row {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 16px;
    color: var(--gray-color-100);
    font-size: 16px;
    line-height: 1.55;
}

.audio-source-row + .audio-source-row {
    margin-top: 14px;
}

.audio-source-row dt {
    color: var(--gray-color-85);
    font-weight: 700;
}

.audio-source-row dd {
    margin: 0;
}

.audio-source-row a {
    color: var(--primary-color-accent);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.audio-about {
    max-width: 760px;
    margin-top: 44px;
}

.audio-about p {
    color: var(--gray-color-100);
    font-family: "Literata", Georgia, serif;
    font-size: 18px;
    line-height: 1.7;
}

@media screen and (max-width: 640px) {
    .audio-actions {
        grid-template-columns: 48px minmax(0, 1fr) 48px;
        gap: 8px;
        margin-top: 20px;
    }

    .audio-play {
        min-width: 0;
        height: 64px;
        font-size: 17px;
        padding: 0 12px;
    }

    .audio-play-icon {
        display: none;
    }

    .audio-skip {
        width: 100%;
        height: 64px;
        font-size: 14px;
        padding: 0 4px;
    }

    .audio-source {
        padding: 20px;
        margin-top: 22px;
    }

    .audio-source-row {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .audio-source-row + .audio-source-row {
        margin-top: 12px;
    }

}

@media (prefers-reduced-motion: reduce) {
    .audio-play,
    .audio-skip {
        transition: none;
    }
}
