dialog{
    border: none;

    &::backdrop{
        position: fixed;
        top: 0;
        left: 0;
        inline-size: 100%;
        block-size: 100%;
        background: rgba(34, 34, 34, 0.5);
    }

    &[open] {
        animation: open-dialog .3s ease normal
    }

    &:is([popup-image], [popup-coupon]){
        position: fixed;
        top: 50%;
        left: 50%;
        translate: -50% -50%;
        background: transparent;
    }

    &[popup-coupon]{
        inline-size: 100%;
        max-inline-size: 320px;

        > [close-dialog-button]{
            position: absolute;
            top: 24px;
            right: 24px;
            z-index: 2;
        }
    }

    &[popup-image]{
        overflow: hidden;

        > [close-dialog-button]{
            position: absolute;
            top: 20px;
            right: 20px;
        }

        > a{
            > img{
                border-radius: 24px;
                object-fit: contain;
                aspect-ratio: 1 / 1;
            }
        }
    }

    &[popup-toast]{
        position: fixed;
        display: none;
        bottom: 24px;
        left: 50%;
        translate: -50% 0;
        z-index: 1;
        inline-size: calc(100% - 48px);
        max-inline-size: 480px;

        &[open]{
            display: flex;
        }
    }
}

@keyframes open-dialog {
    0% {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

@media (min-width: 768px){
    dialog{
        &[popup-image]{
            > a{
                > img{
                    inline-size: 480px;
                    block-size: 480px;
                }
            }
        }

        &[popup-coupon]{
            min-inline-size: 480px;
        }
    }
}