.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-27351 .elementor-element.elementor-element-932477c img{pointer-events:all;width:9%;}.elementor-27351 .elementor-element.elementor-element-932477c{text-align:center;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-27351 .elementor-element.elementor-element-574aba1{text-align:center;}.elementor-27351 .elementor-element.elementor-element-574aba1 .elementor-heading-title{font-family:"Public Sans", Sans-serif;font-size:130px;font-weight:600;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-27351 .elementor-element.elementor-element-a219879{text-align:center;font-family:"Public Sans", Sans-serif;font-size:18px;font-weight:400;}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-27351 .elementor-element.elementor-element-3d1d73c .elementor-button{background-color:var( --e-global-color-primary );font-family:"Public Sans", Sans-serif;font-size:17px;font-weight:600;text-transform:uppercase;border-radius:10px 10px 10px 10px;padding:25px 25px 25px 25px;}.elementor-27351 .elementor-element.elementor-element-3d1d73c .elementor-button:hover, .elementor-27351 .elementor-element.elementor-element-3d1d73c .elementor-button:focus{background-color:var( --e-global-color-accent );color:#FFFFFF;border-color:var( --e-global-color-accent );}.elementor-27351 .elementor-element.elementor-element-3d1d73c{width:100%;max-width:100%;margin:30px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;}.elementor-27351 .elementor-element.elementor-element-3d1d73c.elementor-element{--align-self:center;}.elementor-27351 .elementor-element.elementor-element-3d1d73c .elementor-button-content-wrapper{flex-direction:row;}.elementor-27351 .elementor-element.elementor-element-3d1d73c .elementor-button .elementor-button-content-wrapper{gap:24px;}.elementor-27351 .elementor-element.elementor-element-3d1d73c .elementor-button:hover svg, .elementor-27351 .elementor-element.elementor-element-3d1d73c .elementor-button:focus svg{fill:#FFFFFF;}@media(max-width:767px){.elementor-27351 .elementor-element.elementor-element-932477c img{width:34%;}.elementor-27351 .elementor-element.elementor-element-574aba1 .elementor-heading-title{font-size:54px;}.elementor-27351 .elementor-element.elementor-element-3d1d73c{width:var( --container-widget-width, 90% );max-width:90%;--container-widget-width:90%;--container-widget-flex-grow:0;}.elementor-27351 .elementor-element.elementor-element-3d1d73c .elementor-button{font-size:16px;padding:20px 20px 20px 20px;}}/* Start custom CSS for button, class: .elementor-element-3d1d73c *//* 1. Ensure the button container allows overflowing waves */
.custom-wave-btn .elementor-button {
    position: relative !important;
    overflow: visible !important;
}

/* 2. Create the base for all 4 waves */
/* We target the button itself and the text inside (elementor-button-text) */
.custom-wave-btn .elementor-button::before,
.custom-wave-btn .elementor-button::after,
.custom-wave-btn .elementor-button-text::before,
.custom-wave-btn .elementor-button-text::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 12px;
    height: 25px;
    border-radius: 50%;
    transform: translateY(-50%);
    opacity: 0;
    pointer-events: none;
    transition: none; /* Prevents Elementor transitions from breaking it */
}

/* 3. Positioning and Colors */
/* Adjust #ff2b2b to match your specific button color */
.custom-wave-btn .elementor-button::before, 
.custom-wave-btn .elementor-button-text::before { 
    left: -10px; 
    border-left: 3px solid #ff2b2b; 
}

.custom-wave-btn .elementor-button::after, 
.custom-wave-btn .elementor-button-text::after { 
    right: -10px; 
    border-right: 3px solid #ff2b2b; 
}

/* 4. Trigger Animations on Hover */
.custom-wave-btn .elementor-button:hover::before { 
    animation: waveLeft 0.6s infinite linear; 
}
.custom-wave-btn .elementor-button:hover::after { 
    animation: waveRight 0.6s infinite linear; 
}

/* The second set (the text span) starts with a 0.3s delay */
.custom-wave-btn .elementor-button:hover .elementor-button-text::before { 
    animation: waveLeft 0.6s infinite linear 0.3s; 
}
.custom-wave-btn .elementor-button:hover .elementor-button-text::after { 
    animation: waveRight 0.6s infinite linear 0.3s; 
}

/* 5. Keyframes */
@keyframes waveLeft {
    0% { transform: translateY(-50%) translateX(0) scale(0.9); opacity: 0; }
    20% { opacity: 1; }
    100% { transform: translateY(-50%) translateX(-15px) scale(1.3); opacity: 0; }
}

@keyframes waveRight {
    0% { transform: translateY(-50%) translateX(0) scale(0.9); opacity: 0; }
    20% { opacity: 1; }
    100% { transform: translateY(-50%) translateX(15px) scale(1.3); opacity: 0; }
}/* End custom CSS */