/* Base Button */
.cg-btn-red .elementor-button,
.cg-btn-black .elementor-button,
.cg-btn-white-on-red .elementor-button,
.cg-btn-white-on-dark .elementor-button {
    position: relative;
    overflow: hidden;
    border: none !important;
    border-radius: 5px !important;
    background: transparent !important;
    isolation: isolate;
    transition: none !important;
}

.cg-btn-red .elementor-button::before,
.cg-btn-red .elementor-button::after,
.cg-btn-black .elementor-button::before,
.cg-btn-black .elementor-button::after,
.cg-btn-white-on-red .elementor-button::before,
.cg-btn-white-on-red .elementor-button::after,
.cg-btn-white-on-dark .elementor-button::before,
.cg-btn-white-on-dark .elementor-button::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    border: 2px solid transparent;
    z-index: -1;
    transition: opacity .25s ease;
}

.cg-btn-red .elementor-button::after,
.cg-btn-black .elementor-button::after,
.cg-btn-white-on-red .elementor-button::after,
.cg-btn-white-on-dark .elementor-button::after {
    opacity: 0;
}

.cg-btn-red .elementor-button:hover::after,
.cg-btn-black .elementor-button:hover::after,
.cg-btn-white-on-red .elementor-button:hover::after,
.cg-btn-white-on-dark .elementor-button:hover::after {
    opacity: 1;
}


/* Default */
.cg-btn-red .elementor-button {
    color: var(--e-global-color-cg_white) !important;
}

.cg-btn-red .elementor-button::before {
    background:
        linear-gradient(90deg, var(--e-global-color-primary) 0%, #9E1117 100%) padding-box,
        linear-gradient(90deg, var(--e-global-color-primary) 0%, #9E1117 100%) border-box;
}

/* Hover */
.cg-btn-red .elementor-button::after {
    background:
        linear-gradient(180deg, var(--e-global-color-text) 0%, #020000 100%) padding-box,
        linear-gradient(var(--e-global-color-primary), var(--e-global-color-primary)) border-box;
}

.cg-btn-black .elementor-button {
    color: var(--e-global-color-cg_white) !important;
}

.cg-btn-black .elementor-button::before {
    background:
        linear-gradient(180deg, var(--e-global-color-text) 0%, #020000 100%) padding-box,
        linear-gradient(var(--e-global-color-primary), var(--e-global-color-primary)) border-box;
}

.cg-btn-black.border-white .elementor-button::before {
    background:
        linear-gradient(180deg, var(--e-global-color-text) 0%, #020000 100%) padding-box,
        linear-gradient(var(--e-global-color-cg_white), var(--e-global-color-cg_white)) border-box !important;
}

.cg-btn-black.border-white .elementor-button:hover::before {
    opacity: 0;
}

.cg-btn-black .elementor-button::after {
    background:
        linear-gradient(90deg, var(--e-global-color-primary) 0%, #9E1117 100%) padding-box,
        linear-gradient(90deg, var(--e-global-color-primary) 0%, #9E1117 100%) border-box;
}

.cg-btn-white-on-red .elementor-button {
    color: #1A1A1A !important;
}

.cg-btn-white-on-red .elementor-button::before {
    background:
        linear-gradient(var(--e-global-color-cg_white), var(--e-global-color-cg_white)) padding-box,
        linear-gradient(var(--e-global-color-primary), var(--e-global-color-primary)) border-box;
}

.cg-btn-white-on-red .elementor-button::after {
    background:
        linear-gradient(180deg, var(--e-global-color-text) 0%, #020000 100%) padding-box,
        linear-gradient(180deg, var(--e-global-color-text) 0%, #020000 100%) border-box;
}

.cg-btn-white-on-red .elementor-button:hover {
    color: var(--e-global-color-cg_white) !important;
}

.cg-btn-white-on-dark .elementor-button {
    color: #1A1A1A !important;
}

.cg-btn-white-on-dark .elementor-button::before {
    background:
        linear-gradient(var(--e-global-color-cg_white), var(--e-global-color-cg_white)) padding-box,
        linear-gradient(var(--e-global-color-primary), var(--e-global-color-primary)) border-box;
}

.cg-btn-white-on-dark .elementor-button::after {
    background:
        linear-gradient(90deg, var(--e-global-color-primary) 0%, #9E1117 100%) padding-box,
        linear-gradient(90deg, var(--e-global-color-primary) 0%, #9E1117 100%) border-box;
}

.cg-btn-white-on-dark .elementor-button:hover {
    color: var(--e-global-color-cg_white) !important;
}

.cg-btn-red.header-contact-btn .elementor-button::after,
.cg-btn-red.footer-contact-btn .elementor-button::after {
    background:
        linear-gradient(180deg, var(--e-global-color-text) 0%, #020000 100%) padding-box,
        linear-gradient(var(--e-global-color-cg_white), var(--e-global-color-cg_white)) border-box;
}

/* Button text / Safari hover fix */
.cg-btn-red .elementor-button *,
.cg-btn-black .elementor-button *,
.cg-btn-white-on-red .elementor-button *,
.cg-btn-white-on-dark .elementor-button * {
    color: inherit !important;
    transition: none !important;
}

.cg-btn-red .elementor-button-content-wrapper,
.cg-btn-black .elementor-button-content-wrapper,
.cg-btn-white-on-red .elementor-button-content-wrapper,
.cg-btn-white-on-dark .elementor-button-content-wrapper {
    position: relative;
    z-index: 2;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}