page-modal .modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.7);
    z-index: 9999;
}

page-modal .modal.active {
    overflow: hidden;
}

page-modal .popup {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-height: 80vh;
    overflow-y: auto;
    background-color: white;
    padding: 2rem;
    box-shadow: 0 1.25rem 2.5rem 0.875rem rgba(0, 0, 0, 0.25);
    z-index: 9999;
}

page-modal .popup-button:not(.display-none) {
    min-width: 12rem;
    outline: none;
    border: none;
    cursor: pointer;
    color: var(--global--color-sw-black);
    align-self: center;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.4rem;
    border-radius: 1.25rem;
    height: 2.5rem;
    letter-spacing: 0.01rem;
    color: var(--global--color-sw-black);
    border: 2px solid var(--global--color-sw-yellow);
    background-color: white;
    margin: 0 auto;
}

page-modal .popup-button:not(.display-none):hover {
    background-color: var(--global--color-sw-darker-grey);
    color: white;
    border-color: var(--global--color-sw-darker-grey);
}

page-modal .popup-button.add,
page-modal .popup-button.download {
    border: 2px solid var(--global--color-sw-yellow);
    background-color: white;
    color: var(--global--color-sw-black);
}

page-modal .popup-button.remove {
    border: 2px solid var(--global--color-sw-red);
    background-color: white;
    color: var(--global--color-sw-black);
}

page-modal .popup-button > .icon {
    font-size: 1.5rem;
    font-variation-settings: "FILL" 0, "wght" 600, "GRAD" 0, "opsz" 48;
}

page-modal .popup-button > span {
    font-family: var(--global--font-medium);
    font-weight: 600;
    font-size: 1rem;
    padding: 0 0.2rem;
    letter-spacing: 0.02rem;
}

page-modal .popup-button.disabled {
    pointer-events: none;
    border: 2px solid var(--global--color-grey);
    color: var(--global--color-sw-grey);
    background-color: white;
    cursor: not-allowed;
}

page-modal .popup .close {
    position: absolute;
    right: 1rem;
    top: 1rem;
    transition: all 0.3s;
    font-size: 1.5rem;
    text-decoration: none;
    color: var(--global--color-grey);
    outline: none;
    border: none;
    cursor: pointer;
    background: none;
    z-index: 9999;
}

page-modal .popup .close .icon {
    font-variation-settings: "FILL"0, "wght"900, "GRAD"0, "opsz"48;
}

page-modal .popup .close:hover {
    color: var(--global--color-dark-grey);
}

page-modal .popup small {
    font-family: var(--global--font-primary);
    font-size: 0.875rem;
    padding-bottom: 0.4rem;
    color: var(--global--color-grey);
}

page-modal .popup .popup-title > span {
    font-family: var(--global--font-secondary);
    font-size: 1rem;
}

page-modal .popup .popup-title,
page-modal .popup .popup-category,
page-modal .popup .popup-group,
page-modal .popup .popup-language,
page-modal .popup .popup-video,
page-modal .popup .popup-file,
page-modal .popup .popup-audience,
page-modal .popup .popup-text {
    display: flex;
    flex-flow: column nowrap;
    padding-bottom: 1.25rem;
}

page-modal .popup p {
    margin: 0 0 1rem;
    line-height: 1.2;
}
page-modal .popup p[data-html="language"] {
    margin-bottom: 0.5rem;
}
page-modal .popup p:last-child {
    margin: 0;
}

page-modal .popup .video-box {
    position: relative;
}

page-modal .popup .video-box > video {
    width: 100%;
    cursor: pointer;
    z-index: 9999;
}

page-modal .popup .file-box {
    width: 100%;
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 9;
}

page-modal .popup .file-box > iframe {
    width: 100%;
    height: 100%;
    border: none;
    position: absolute;
}

page-modal .popup .video-box > .icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -68%);
    width: 5rem;
    height: 5rem;
    cursor: pointer;
    font-size: 5rem;
    color: rgba(255, 255, 255, 0.9);
    z-index: 9999;
}

page-modal .popup aside[data-cart="1"] > .add {
    display: none;
}

page-modal .popup aside[data-cart="1"] > .remove {
    display: flex;
}

page-modal .popup aside[data-cart="0"] > .add {
    display: flex;
}

page-modal .popup aside[data-cart="0"] > .remove {
    display: none;
}

page-modal .popup aside[data-role="guest"] {
    display: none;
}

@media (min-width: 40rem) {
    .popup {
        width: 90%;
    }
}

@media (min-width: 56rem) {
    .popup {
        width: 70vmin;
    }
}

@media (max-width: 40rem) {
    .popup {
        min-width: 100%;
        min-height: 100%;
        overflow: auto;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        transform: translate(0, 0);
    }
}