.m-accessibility {
    position: fixed;
    z-index: 99;
    bottom: 30px;
    right: 30px;
    border-radius: 50px;
    background-color: $color-primary;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 62px;
    width: 62px;

    body.is-contrast &  {
        background-color: $color-black;
        border: 2px solid $color-white;
     }

    > .m-button {
        background-color: $color-primary;
        border-radius: 50px;
        border: 2px solid $color-white;
        cursor: pointer;
        height: 48px;
        width: 48px;
        padding: 5px;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: transform .3s ease-out;

        &:hover {
            transform: scale(1.0625);
        }

        body.is-contrast &  {
            background-color: $color-black;
        }

        > svg {
            width: 45px;
            height: 45px;
            min-width: 45px;
        }
    }

    > .m-accessibility-modal {
        display: none;
        position: fixed;
        right: 30px;
        bottom: 30px;
        background-color: $color-off-white;
        width: 480px;
        max-width: calc(100% - 48px);
        height: fit-content;
        min-height: 282px;
        padding: 24px 48px 48px;
        border-radius: 12px 12px 30px 30px;
        box-shadow: 0 9px 46px 8px rgba(0, 0, 0, .12), 0 24px 38px 3px rgba(0, 0, 0, .14), 0 11px 15px -7px rgba(0, 0, 0, .2);
        z-index: 1000;

        &.opened {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-content: center;
            gap: 10px;
            animation: slideIn 0.5s forwards;
        }

        &.closed {
            animation: slideOut 0.5s forwards;
        }

        > .close-btn {
            position: absolute;
            top: 24px;
            right: 24px;
            font-size: 24px;
            cursor: pointer;
            color: black;
        }

        > .m-header {
            display: flex;
            align-items: center;
            justify-content: flex-start;
            gap: 10px;
            margin-bottom: 15px;

            > svg {
                height: 35px;
                width: 35px;
                max-width: 35px;
            }

            > .m-headline {
                font-size: 24px;
                max-width: 200px;
                margin: 0;
                color: $color-black;
            }
        }

        > .m-tools-wrapper {
            display: flex;
            flex-direction: column;
            justify-content: center;
            gap: 15px;

            > .m-tools-group {
                display: flex;
                flex-direction: column;
                justify-content: center;
                align-items: flex-start;
                padding: 20px;
                border-radius: 18px;
                background: $color-white;
                box-shadow: 0 0 20px 4px rgba(105, 114, 125, 0.20);

                > .m-tool {
                    cursor: pointer;
                    box-sizing: border-box;
                    height: 65px;
                    min-width: 100%;
                    display: flex;
                    justify-content: flex-start;
                    align-items: center;
                    padding: 12px 24px 12px 12px;
                    max-width: calc(50% - 16px);
                    border-radius: 16px;
                    background-color: $color-off-white;
                    color: $color-black;
                    transition: box-shadow .3s ease-out;
                    user-select: none;
                    gap: 10px;

                    &:hover, &.is-active {
                        border: 2px solid $color-black;
                    }

                    .m-zoom {
                        background: embed("../svg/large-print.svg") no-repeat;
                        background-size: 35px;
                        width: 35px;
                        height: 35px;
                        position: relative;

                        > .m-plus {
                            position: absolute;
                            top: -10px;
                            font-weight: 400 !important;
                            font-size: 20px !important;

                            &:nth-child(1) {
                                right: -8px;
                            }

                            &:nth-child(2) {
                                right: -18px;
                            }
                        }
                    }

                    .m-contrast {
                        background: embed("../svg/setting.svg") no-repeat;
                        background-size: 28px;
                        width: 28px;
                        height: 28px;
                    }

                    .m-reader {
                        background: embed("../svg/voice.svg") no-repeat;
                        background-size: 23px;
                        width: 23px;
                        height: 23px;
                    }

                    > .m-label {
                        padding-left: 10px;
                    }
                }
            }
        }
    }
}

@keyframes slideIn {
    from {
        bottom: -400px;
        opacity: 0;
        display: none;
    }
    to {
        bottom: 30px;
        opacity: 1;
        display: flex;
    }
}

@keyframes slideOut {
    from {
        bottom: 30px;
        display: flex;
    }
    to {
        bottom: -600px;
        display: none;
    }
}


