/* ============ DIVI MEGA PRO - FLIP BOXES ============ */
.dmpro-flip-box-front-side-wrapper,
.dmpro-flip-box-back-side-wrapper {
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.dmpro-flip-box-front-side,
.dmpro-flip-box-back-side {
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.dmpro-flip-box-inner-wrapper,
.dmpro-flip-box-front-side,
.dmpro-flip-box-back-side,
.dmpro-flip-box-front-side-wrapper,
.dmpro-flip-box-back-side-wrapper,
.dmpro-flip-box-container .dmpro-flip-box-inner .dmpro-flip-box-inner-wrapper {
    -webkit-transform-style: preserve-3d !important;
    transform-style: preserve-3d !important;
}

.dmpro-flip-box-front-side-innner,
.dmpro-flip-box-back-side-innner {
    padding: 20px;
}

.dmpro-flip-box-container .dmpro-flip-box-inner {
    position: relative;
    margin: 0;
    padding: 0;
    -moz-perspective: 1000;
    -webkit-perspective: 1000px;
    perspective: 1000px;
}

.dmpro-flip-box-container .dmpro-flip-box-inner .dmpro-flip-box-inner-wrapper {
    position: relative;
    transition: transform 0.6s;
}

.dmpro-flip-box-container .dmpro-flip-box-inner .dmpro-flip-box-front-side,
.dmpro-flip-box-container .dmpro-flip-box-inner .dmpro-flip-box-back-side {
    top: 0;
    right: 0;
    left: 0;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    height: 100%;
    background-position: center;
    background-clip: padding-box;
    background-size: cover;
    background-repeat: no-repeat;
    text-align: center;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-perspective: 1000px;
    perspective: 1000px;
}

.dmpro-flip-box-front-side-wrapper,
.dmpro-flip-box-back-side-wrapper {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.dmpro-flip-box-container .dmpro-flip-box-front-side-innner,
.dmpro-flip-box-container .dmpro-flip-box-back-side-innner {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    flex: 1;
}

/* Flip Animation - Left to Right */
.dmpro-flip-left-right .dmpro-flip-box-front-side {
    transform: rotateY(0deg);
}

.dmpro-flip-left-right .dmpro-flip-box-back-side {
    transform: rotateY(180deg);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
}

.dmpro-flip-left-right:hover .dmpro-flip-box-inner-wrapper {
    transform: rotateY(180deg);
}

.dmpro-flip-box-heading {
    font-size: 24px;
    color: #fff;
    margin-bottom: 10px;
}

.dmpro-flip-box-container .dmpro-text {
    padding: 10px;
}

.dmpro-flip-box-container .dmpro-desc {
    color: rgba(255, 255, 255, 0.9);
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 15px;
}

.dmpro-back-button {
    margin-top: 10px;
}

.dmpro-front-image-icon-wrap img {
    width: 80px;
    height: auto;
    margin-bottom: 15px;
}

/* ============ DIVI MEGA PRO - MEGA MENU ============ */
.divimegapro-container {
    display: none;
}

.dmp-open .divimegapro-close:focus,
.dmp-open .divimegapro-close:focus-visible {
    border: dotted 2px gray;
}

.divimegapro-close-container .divimegapro-close:after {
    content: " ";
    display: block;
    font-size: 70px;
    height: 25px;
    width: 25px;
    z-index: 99;
    position: relative;
    visibility: hidden;
}

.divimegapro-close-container .divimegapro-close:hover {
    opacity: .8;
}

/* ============ TIPPY TOOLTIPS ============ */
.tippy-tooltip[data-placement^=top] > .tippy-arrow:before {
    border-width: 8px 8px 0;
    border-top-color: #333;
    margin: 0 3px;
    transform-origin: 50% 0;
    bottom: -7px;
}

.tippy-tooltip[data-placement^=bottom] > .tippy-arrow:before {
    border-width: 0 8px 8px;
    border-bottom-color: #333;
    margin: 0 3px;
    transform-origin: 50% 7px;
    top: -7px;
}

.tippy-tooltip[data-placement^=left] > .tippy-arrow:before {
    border-width: 8px 0 8px 8px;
    border-left-color: #333;
    margin: 3px 0;
    transform-origin: 0 50%;
    right: -7px;
}

.tippy-tooltip[data-placement^=right] > .tippy-arrow:before {
    border-width: 8px 8px 8px 0;
    border-right-color: #333;
    margin: 3px 0;
    transform-origin: 7px 50%;
    left: -7px;
}

.tippy-arrow:before {
    content: "";
    position: absolute;
    border-color: transparent;
    border-style: solid;
}

/* ============ OWL CAROUSEL ============ */
.owl-carousel .owl-stage:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0;
}

.owl-next:before, .owl-prev:before {
    font-family: ETmodules;
}

.owl-next:hover, .owl-prev:hover {
    opacity: 1;
}

.owl-next:before { content: "5"; }
.owl-prev:before { content: "4"; }

.owl-next:before, .owl-prev:before {
    vertical-align: text-bottom;
    font-size: 56px;
}

/* ============ GRAVITY FORMS ============ */
.gform_wrapper :focus {
    outline: 0;
}

.gform_legacy_markup_wrapper :after,
.gform_legacy_markup_wrapper :before {
    box-sizing: border-box !important;
}

.gform_legacy_markup_wrapper ul li:after,
.gform_legacy_markup_wrapper ul li:before {
    padding: 0;
    margin: 0;
    overflow: visible;
}

/* ============ DIVI FILTER GRID ============ */
.dp-dfg-container > div {
    margin-bottom: 1.33%;
}

.dp-dfg-layout-grid .dp-dfg-items {
    justify-content: space-between;
    flex-wrap: wrap;
}

.dp-dfg-layout-grid .dp-dfg-item {
    width: 24%;
    margin-bottom: 1.33%;
}

@supports (grid-area: auto) {
    .dp-dfg-container {
        display: grid;
    }

    .dp-dfg-container > div {
        margin-bottom: 0;
    }

    .dp-dfg-layout-grid .dp-dfg-items {
        display: grid;
    }

    .dp-dfg-layout-grid .dp-dfg-item {
        display: grid;
        width: auto;
        margin-bottom: 0;
    }
}

.dp-dfg-container {
    font-size: 10px;
    display: grid;
    grid-gap: 2em;
}

@media screen and (min-width: 768px) and (max-width: 980px) {
    .dp-dfg-container > div { margin-bottom: 2%; }
    .dp-dfg-layout-grid .dp-dfg-item { width: 32%; margin-bottom: 2%; }
}

@media screen and (min-width: 480px) and (max-width: 767px) {
    .dp-dfg-container > div { margin-bottom: 4%; }
    .dp-dfg-layout-grid .dp-dfg-item { width: 48%; margin-bottom: 4%; }
}

@media screen and (max-width: 479px) {
    .dp-dfg-container > div { margin-bottom: 4%; }
    .dp-dfg-layout-grid .dp-dfg-item { width: 100%; }
}

/* ============ ANIMATIONS ============ */
@-webkit-keyframes flipInX {
    0% {
        -webkit-transform: perspective(400px) rotateX(90deg);
        transform: perspective(400px) rotateX(90deg);
        opacity: 0;
    }
    40% {
        -webkit-transform: perspective(400px) rotateX(-20deg);
        transform: perspective(400px) rotateX(-20deg);
    }
    60% {
        -webkit-transform: perspective(400px) rotateX(10deg);
        transform: perspective(400px) rotateX(10deg);
        opacity: 1;
    }
    80% {
        -webkit-transform: perspective(400px) rotateX(-5deg);
        transform: perspective(400px) rotateX(-5deg);
    }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
    }
}

@keyframes flipInX {
    0% {
        transform: perspective(400px) rotateX(90deg);
        opacity: 0;
    }
    40% {
        transform: perspective(400px) rotateX(-20deg);
    }
    60% {
        transform: perspective(400px) rotateX(10deg);
        opacity: 1;
    }
    80% {
        transform: perspective(400px) rotateX(-5deg);
    }
    to {
        transform: perspective(400px);
    }
}

@keyframes slideBottom {
    0% {
        opacity: 0;
        transform: translateY(50px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ============ WP CONSENT BANNER ============ */
#wpconsent-root {
    --wpconsent-z-index: 900000;
    --wpconsent-background: #110404;
    --wpconsent-text: #ffffff;
    --wpconsent-outline-color: rgba(255, 255, 255, 0.2);
    --wpconsent-accept-bg: #619a38;
    --wpconsent-cancel-bg: #d9d9d9;
    --wpconsent-preferences-bg: #d9d9d9;
    --wpconsent-accept-color: #ffffff;
    --wpconsent-cancel-color: #000000;
    --wpconsent-preferences-color: #000000;
    --wpconsent-font-size: 16px;
}
