.btn {
    .elementor-button {
        width: fit-content;
        background-color: transparent !important;
        padding: 0;
        position: relative;
        overflow: hidden;
        border-radius: 0;
        height: 55px;

        &::before, &::after {
            content: '';
            position: absolute;
            width: 40%;
            height: 2px;
            left: 0;
            right: 0;
            background: var(--c-primario);
            -webkit-transition: left .3s ease-out .3s, right .3s ease-out .3s, background .3s linear;
            -o-transition: left .3s ease-out .3s, right .3s ease-out .3s, background .3s linear;
            transition: left .3s ease-out .3s, right .3s ease-out .3s, ba ckground .3s linear;
            margin: auto;
        }

        &::before {
            top: 0;
            -webkit-transition: left .3s ease-out, right .3s ease-out, width .3s ease-out;
            -o-transition: left .3s ease-out, right .3s ease-out, width .3s ease-out;
            transition: left .3s ease-out, right .3s ease-out, width .3s ease-out;
        }

        &::after {
            bottom: 0;
            -webkit-transition: left .3s ease-out, right .3s ease-out, width .3s ease-out;
            -o-transition: left .3s ease-out, right .3s ease-out, width .3s ease-out;
            transition: left .3s ease-out, right .3s ease-out, width .3s ease-out;
            top: auto;            
        }
        
        .elementor-button-content-wrapper {
            color: var(--c-primario) !important;
            background-color: transparent !important;
            display: block;
            padding: 15px 40px;
            border: 1px solid var(--c-gris);
            border-radius: 0;
            cursor: pointer;
            text-decoration: none;
            text-transform: uppercase;
            transition: all 0.4s ease-in-out;
            font-size: 1rem;
            line-height: 1.3em;
            font-weight: 500;
            width: 100%;
            -webkit-transform: translateY(0);
            -ms-transform: translateY(0);
            transform: translateY(0);
            opacity: 1;
            -webkit-transition: opacity 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s, -webkit-transform 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s;
            -o-transition: transform 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s, opacity 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s;
            transition: transform 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s, opacity 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s;
            transition: transform 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s, opacity 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s, -webkit-transform 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            cursor: pointer;
            overflow: hidden;
            height: 55px;

            &::before, &::after {
                content: '';
                position: absolute;
                width: 2px;
                height: 0;
                background: var(--c-primario);
                -webkit-transition: height .3s ease-out 150ms;
                -o-transition: height .3s ease-out 150ms;
                transition: height .3s ease-out 150ms;
            }

            &::before {
                top: 0;
                left: 0;
            }

            &::after {
                bottom: 0;
                right: 0;
            }
        }

        &:hover {
            background-color: var(--c-secundario) !important;

            .elementor-button-content-wrapper {
                color: var(--c-blanco) !important;

                &::before, &::after {
                    height: 100%;
                }
            }

            &::before {
                width: 40px;
                left: 0;
                right: 100%;
            }

            &::after {
                width: 40px;
                right: 1px;
                left: 100%;
            }
        }
    }
}

.btn-blanco {
    .elementor-button {
        width: fit-content;
        background-color: transparent !important;
        padding: 0;
        position: relative;
        overflow: hidden;
        border-radius: 0;
        height: 55px;

        &::before, &::after {
            content: '';
            position: absolute;
            width: 40%;
            height: 2px;
            left: 0;
            right: 0;
            background: var(--c-blanco);
            -webkit-transition: left .3s ease-out .3s, right .3s ease-out .3s, background .3s linear;
            -o-transition: left .3s ease-out .3s, right .3s ease-out .3s, background .3s linear;
            transition: left .3s ease-out .3s, right .3s ease-out .3s, ba ckground .3s linear;
            margin: auto;
        }

        &::before {
            top: 0;
            -webkit-transition: left .3s ease-out, right .3s ease-out, width .3s ease-out;
            -o-transition: left .3s ease-out, right .3s ease-out, width .3s ease-out;
            transition: left .3s ease-out, right .3s ease-out, width .3s ease-out;
        }

        &::after {
            bottom: 0;
            -webkit-transition: left .3s ease-out, right .3s ease-out, width .3s ease-out;
            -o-transition: left .3s ease-out, right .3s ease-out, width .3s ease-out;
            transition: left .3s ease-out, right .3s ease-out, width .3s ease-out;
            top: auto;            
        }
        
        .elementor-button-content-wrapper {
            color: var(--c-blanco) !important;
            background-color: transparent !important;
            display: block;
            padding: 15px 40px;
            border: 1px solid var(--c-gris);
            border-radius: 0;
            cursor: pointer;
            text-decoration: none;
            text-transform: uppercase;
            transition: all 0.4s ease-in-out;
            font-size: 1rem;
            line-height: 1.3em;
            font-weight: 500;
            width: 100%;
            -webkit-transform: translateY(0);
            -ms-transform: translateY(0);
            transform: translateY(0);
            opacity: 1;
            -webkit-transition: opacity 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s, -webkit-transform 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s;
            -o-transition: transform 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s, opacity 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s;
            transition: transform 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s, opacity 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s;
            transition: transform 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s, opacity 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s, -webkit-transform 2.1s cubic-bezier(.23, 1, .38, 1) 1.2s;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            cursor: pointer;
            overflow: hidden;
            height: 55px;

            &::before, &::after {
                content: '';
                position: absolute;
                width: 2px;
                height: 0;
                background: var(--c-blanco);
                -webkit-transition: height .3s ease-out 150ms;
                -o-transition: height .3s ease-out 150ms;
                transition: height .3s ease-out 150ms;
            }

            &::before {
                top: 0;
                left: 0;
            }

            &::after {
                bottom: 0;
                right: 0;
            }
        }

        &:hover {
            background-color: var(--c-secundario) !important;

            .elementor-button-content-wrapper {
                &::before, &::after {
                    height: 100%;
                }
            }

            &::before {
                width: 40px;
                left: 0;
                right: 100%;
            }

            &::after {
                width: 40px;
                right: 1px;
                left: 100%;
            }
        }
    }
}