.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-737 .elementor-element.elementor-element-aca63f8{--display:flex;}.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-737 .elementor-element.elementor-element-2dc65bb{padding:30px 30px 30px 30px;text-align:center;}.elementor-737 .elementor-element.elementor-element-2dc65bb .elementor-heading-title{font-family:"Raleway", Sans-serif;font-size:36px;font-weight:700;text-transform:uppercase;color:var( --e-global-color-accent );}.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-737 .elementor-element.elementor-element-7b85da1{text-align:justify;font-family:"Oswald", Sans-serif;font-weight:400;color:var( --e-global-color-secondary );}.elementor-737 .elementor-element.elementor-element-cba53e0{--display:flex;--min-height:350px;--justify-content:center;--border-radius:12px 12px 12px 12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-737 .elementor-element.elementor-element-cba53e0.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-737 .elementor-element.elementor-element-0057e47 img{width:100%;}.elementor-737 .elementor-element.elementor-element-b3ac76a{--display:flex;}.elementor-737 .elementor-element.elementor-element-e10ca16{text-align:justify;}.elementor-737 .elementor-element.elementor-element-6f36361{--display:flex;--min-height:350px;--justify-content:center;--border-radius:12px 12px 12px 12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-737 .elementor-element.elementor-element-6f36361.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-737 .elementor-element.elementor-element-0efa10c img{width:100%;}.elementor-737 .elementor-element.elementor-element-bb10a44{--display:flex;}.elementor-737 .elementor-element.elementor-element-074e09a{text-align:justify;}.elementor-737 .elementor-element.elementor-element-2abd093{--display:flex;--min-height:350px;--justify-content:center;--border-radius:12px 12px 12px 12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-737 .elementor-element.elementor-element-2abd093.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-737 .elementor-element.elementor-element-6d4704a img{width:100%;}.elementor-737 .elementor-element.elementor-element-5d357d4{--display:flex;}.elementor-737 .elementor-element.elementor-element-797c737{text-align:justify;}.elementor-737 .elementor-element.elementor-element-0f4ff2c{--display:flex;--min-height:350px;--justify-content:center;--border-radius:12px 12px 12px 12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-737 .elementor-element.elementor-element-0f4ff2c.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-737 .elementor-element.elementor-element-5e70b7c img{width:100%;}.elementor-737 .elementor-element.elementor-element-2a38f6c{--display:flex;}.elementor-737 .elementor-element.elementor-element-93cf04c{text-align:justify;}.elementor-737 .elementor-element.elementor-element-afba371{--display:flex;--min-height:350px;--justify-content:center;--border-radius:12px 12px 12px 12px;--margin-top:0px;--margin-bottom:50px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-737 .elementor-element.elementor-element-afba371.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-737 .elementor-element.elementor-element-0f5ce77 img{width:100%;}.elementor-737 .elementor-element.elementor-element-f2972f2{--display:flex;}.elementor-737 .elementor-element.elementor-element-50674ab{text-align:justify;}.elementor-737 .elementor-element.elementor-element-774106f{--display:flex;--min-height:350px;--justify-content:center;--border-radius:12px 12px 12px 12px;--margin-top:0px;--margin-bottom:50px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-737 .elementor-element.elementor-element-774106f.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-737 .elementor-element.elementor-element-f644d8a img{width:100%;}.elementor-737 .elementor-element.elementor-element-712b6fe{--display:flex;}.elementor-737 .elementor-element.elementor-element-2b0e3e2{text-align:justify;}.elementor-737 .elementor-element.elementor-element-cd92d6a{--display:flex;--min-height:350px;--justify-content:center;--border-radius:12px 12px 12px 12px;--margin-top:0px;--margin-bottom:50px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-737 .elementor-element.elementor-element-cd92d6a.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-737 .elementor-element.elementor-element-6f087bc img{width:100%;}.elementor-737 .elementor-element.elementor-element-c5dd4db{--display:flex;}.elementor-737 .elementor-element.elementor-element-3784160{text-align:justify;}.elementor-737 .elementor-element.elementor-element-1fd6178{--display:flex;--min-height:350px;--justify-content:center;--border-radius:12px 12px 12px 12px;--margin-top:0px;--margin-bottom:50px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-737 .elementor-element.elementor-element-1fd6178.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-737 .elementor-element.elementor-element-154a2ac img{width:100%;}.elementor-737 .elementor-element.elementor-element-165e4ab{--display:flex;}.elementor-737 .elementor-element.elementor-element-ddc0754{text-align:justify;}.elementor-737 .elementor-element.elementor-element-4282e21{--display:flex;--min-height:350px;--justify-content:center;--border-radius:12px 12px 12px 12px;--margin-top:0px;--margin-bottom:50px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-737 .elementor-element.elementor-element-4282e21.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-737 .elementor-element.elementor-element-2732260 img{width:100%;}.elementor-737 .elementor-element.elementor-element-aa1aac8{--display:flex;}.elementor-737 .elementor-element.elementor-element-ffe1efe{text-align:justify;}@media(min-width:768px){.elementor-737 .elementor-element.elementor-element-cba53e0{--width:50%;}.elementor-737 .elementor-element.elementor-element-6f36361{--width:50%;}.elementor-737 .elementor-element.elementor-element-2abd093{--width:50%;}.elementor-737 .elementor-element.elementor-element-0f4ff2c{--width:50%;}.elementor-737 .elementor-element.elementor-element-afba371{--width:50%;}.elementor-737 .elementor-element.elementor-element-774106f{--width:50%;}.elementor-737 .elementor-element.elementor-element-cd92d6a{--width:50%;}.elementor-737 .elementor-element.elementor-element-1fd6178{--width:50%;}.elementor-737 .elementor-element.elementor-element-4282e21{--width:50%;}}/* Start custom CSS for container, class: .elementor-element-cba53e0 *//* 1. Setup the parent card context */
.card-image-wrapper {
    position: relative !important;
    cursor: pointer;
}

/* Ensure the image stretches properly across the full card width */
.card-image-wrapper .elementor-widget-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* 2. Absolute position the text container over the bottom of the image */
.card-text-overlay {
    position: absolute !important;
    bottom: 0;
    left: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 30px !important;
    z-index: 2;
    
    /* Built-in gradient protection for dark readability over white skies */
    background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.4) 70%, rgba(0, 0, 0, 0) 100%);
    
    /* Smooth transitions for slide effects */
    transition: transform 0.35s ease-in-out, background 0.35s ease-in-out;
}

/* Force text layout inside overlay to be white */
.card-text-overlay h2, 
.card-text-overlay p,
.card-text-overlay .elementor-heading-title {
    color: #ffffff !important;
    margin: 0 !important;
}

/* Add a clean spacing rule between title and text */
.card-text-overlay .elementor-widget-heading {
    margin-bottom: 6px !important;
}

/* 3. Hide the description by default */
.card-text-overlay .elementor-widget-text-editor {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, opacity 0.25s ease, margin 0.35s ease;
}

/* 4. Interactive Hover States */
.card-image-wrapper:hover .card-text-overlay .elementor-widget-text-editor {
    max-height: 100px; /* Adapts cleanly up to a couple lines of text */
    opacity: 1;
    margin-top: 6px !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-6f36361 *//* 1. Setup the parent card context */
.card-image-wrapper {
    position: relative !important;
    cursor: pointer;
}

/* Ensure the image stretches properly across the full card width */
.card-image-wrapper .elementor-widget-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* 2. Absolute position the text container over the bottom of the image */
.card-text-overlay {
    position: absolute !important;
    bottom: 0;
    left: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 30px !important;
    z-index: 2;
    
    /* Built-in gradient protection for dark readability over white skies */
    background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.4) 70%, rgba(0, 0, 0, 0) 100%);
    
    /* Smooth transitions for slide effects */
    transition: transform 0.35s ease-in-out, background 0.35s ease-in-out;
}

/* Force text layout inside overlay to be white */
.card-text-overlay h2, 
.card-text-overlay p,
.card-text-overlay .elementor-heading-title {
    color: #ffffff !important;
    margin: 0 !important;
}

/* Add a clean spacing rule between title and text */
.card-text-overlay .elementor-widget-heading {
    margin-bottom: 6px !important;
}

/* 3. Hide the description by default */
.card-text-overlay .elementor-widget-text-editor {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, opacity 0.25s ease, margin 0.35s ease;
}

/* 4. Interactive Hover States */
.card-image-wrapper:hover .card-text-overlay .elementor-widget-text-editor {
    max-height: 100px; /* Adapts cleanly up to a couple lines of text */
    opacity: 1;
    margin-top: 6px !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-2abd093 *//* 1. Setup the parent card context */
.card-image-wrapper {
    position: relative !important;
    cursor: pointer;
}

/* Ensure the image stretches properly across the full card width */
.card-image-wrapper .elementor-widget-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* 2. Absolute position the text container over the bottom of the image */
.card-text-overlay {
    position: absolute !important;
    bottom: 0;
    left: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 30px !important;
    z-index: 2;
    
    /* Built-in gradient protection for dark readability over white skies */
    background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.4) 70%, rgba(0, 0, 0, 0) 100%);
    
    /* Smooth transitions for slide effects */
    transition: transform 0.35s ease-in-out, background 0.35s ease-in-out;
}

/* Force text layout inside overlay to be white */
.card-text-overlay h2, 
.card-text-overlay p,
.card-text-overlay .elementor-heading-title {
    color: #ffffff !important;
    margin: 0 !important;
}

/* Add a clean spacing rule between title and text */
.card-text-overlay .elementor-widget-heading {
    margin-bottom: 6px !important;
}

/* 3. Hide the description by default */
.card-text-overlay .elementor-widget-text-editor {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, opacity 0.25s ease, margin 0.35s ease;
}

/* 4. Interactive Hover States */
.card-image-wrapper:hover .card-text-overlay .elementor-widget-text-editor {
    max-height: 100px; /* Adapts cleanly up to a couple lines of text */
    opacity: 1;
    margin-top: 6px !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-0f4ff2c *//* 1. Setup the parent card context */
.card-image-wrapper {
    position: relative !important;
    cursor: pointer;
}

/* Ensure the image stretches properly across the full card width */
.card-image-wrapper .elementor-widget-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* 2. Absolute position the text container over the bottom of the image */
.card-text-overlay {
    position: absolute !important;
    bottom: 0;
    left: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 30px !important;
    z-index: 2;
    
    /* Built-in gradient protection for dark readability over white skies */
    background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.4) 70%, rgba(0, 0, 0, 0) 100%);
    
    /* Smooth transitions for slide effects */
    transition: transform 0.35s ease-in-out, background 0.35s ease-in-out;
}

/* Force text layout inside overlay to be white */
.card-text-overlay h2, 
.card-text-overlay p,
.card-text-overlay .elementor-heading-title {
    color: #ffffff !important;
    margin: 0 !important;
}

/* Add a clean spacing rule between title and text */
.card-text-overlay .elementor-widget-heading {
    margin-bottom: 6px !important;
}

/* 3. Hide the description by default */
.card-text-overlay .elementor-widget-text-editor {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, opacity 0.25s ease, margin 0.35s ease;
}

/* 4. Interactive Hover States */
.card-image-wrapper:hover .card-text-overlay .elementor-widget-text-editor {
    max-height: 100px; /* Adapts cleanly up to a couple lines of text */
    opacity: 1;
    margin-top: 6px !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-afba371 *//* 1. Setup the parent card context */
.card-image-wrapper {
    position: relative !important;
    cursor: pointer;
}

/* Ensure the image stretches properly across the full card width */
.card-image-wrapper .elementor-widget-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* 2. Absolute position the text container over the bottom of the image */
.card-text-overlay {
    position: absolute !important;
    bottom: 0;
    left: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 30px !important;
    z-index: 2;
    
    /* Built-in gradient protection for dark readability over white skies */
    background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.4) 70%, rgba(0, 0, 0, 0) 100%);
    
    /* Smooth transitions for slide effects */
    transition: transform 0.35s ease-in-out, background 0.35s ease-in-out;
}

/* Force text layout inside overlay to be white */
.card-text-overlay h2, 
.card-text-overlay p,
.card-text-overlay .elementor-heading-title {
    color: #ffffff !important;
    margin: 0 !important;
}

/* Add a clean spacing rule between title and text */
.card-text-overlay .elementor-widget-heading {
    margin-bottom: 6px !important;
}

/* 3. Hide the description by default */
.card-text-overlay .elementor-widget-text-editor {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, opacity 0.25s ease, margin 0.35s ease;
}

/* 4. Interactive Hover States */
.card-image-wrapper:hover .card-text-overlay .elementor-widget-text-editor {
    max-height: 100px; /* Adapts cleanly up to a couple lines of text */
    opacity: 1;
    margin-top: 6px !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-774106f *//* 1. Setup the parent card context */
.card-image-wrapper {
    position: relative !important;
    cursor: pointer;
}

/* Ensure the image stretches properly across the full card width */
.card-image-wrapper .elementor-widget-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* 2. Absolute position the text container over the bottom of the image */
.card-text-overlay {
    position: absolute !important;
    bottom: 0;
    left: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 30px !important;
    z-index: 2;
    
    /* Built-in gradient protection for dark readability over white skies */
    background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.4) 70%, rgba(0, 0, 0, 0) 100%);
    
    /* Smooth transitions for slide effects */
    transition: transform 0.35s ease-in-out, background 0.35s ease-in-out;
}

/* Force text layout inside overlay to be white */
.card-text-overlay h2, 
.card-text-overlay p,
.card-text-overlay .elementor-heading-title {
    color: #ffffff !important;
    margin: 0 !important;
}

/* Add a clean spacing rule between title and text */
.card-text-overlay .elementor-widget-heading {
    margin-bottom: 6px !important;
}

/* 3. Hide the description by default */
.card-text-overlay .elementor-widget-text-editor {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, opacity 0.25s ease, margin 0.35s ease;
}

/* 4. Interactive Hover States */
.card-image-wrapper:hover .card-text-overlay .elementor-widget-text-editor {
    max-height: 100px; /* Adapts cleanly up to a couple lines of text */
    opacity: 1;
    margin-top: 6px !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-cd92d6a *//* 1. Setup the parent card context */
.card-image-wrapper {
    position: relative !important;
    cursor: pointer;
}

/* Ensure the image stretches properly across the full card width */
.card-image-wrapper .elementor-widget-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* 2. Absolute position the text container over the bottom of the image */
.card-text-overlay {
    position: absolute !important;
    bottom: 0;
    left: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 30px !important;
    z-index: 2;
    
    /* Built-in gradient protection for dark readability over white skies */
    background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.4) 70%, rgba(0, 0, 0, 0) 100%);
    
    /* Smooth transitions for slide effects */
    transition: transform 0.35s ease-in-out, background 0.35s ease-in-out;
}

/* Force text layout inside overlay to be white */
.card-text-overlay h2, 
.card-text-overlay p,
.card-text-overlay .elementor-heading-title {
    color: #ffffff !important;
    margin: 0 !important;
}

/* Add a clean spacing rule between title and text */
.card-text-overlay .elementor-widget-heading {
    margin-bottom: 6px !important;
}

/* 3. Hide the description by default */
.card-text-overlay .elementor-widget-text-editor {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, opacity 0.25s ease, margin 0.35s ease;
}

/* 4. Interactive Hover States */
.card-image-wrapper:hover .card-text-overlay .elementor-widget-text-editor {
    max-height: 100px; /* Adapts cleanly up to a couple lines of text */
    opacity: 1;
    margin-top: 6px !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1fd6178 *//* 1. Setup the parent card context */
.card-image-wrapper {
    position: relative !important;
    cursor: pointer;
}

/* Ensure the image stretches properly across the full card width */
.card-image-wrapper .elementor-widget-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* 2. Absolute position the text container over the bottom of the image */
.card-text-overlay {
    position: absolute !important;
    bottom: 0;
    left: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 30px !important;
    z-index: 2;
    
    /* Built-in gradient protection for dark readability over white skies */
    background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.4) 70%, rgba(0, 0, 0, 0) 100%);
    
    /* Smooth transitions for slide effects */
    transition: transform 0.35s ease-in-out, background 0.35s ease-in-out;
}

/* Force text layout inside overlay to be white */
.card-text-overlay h2, 
.card-text-overlay p,
.card-text-overlay .elementor-heading-title {
    color: #ffffff !important;
    margin: 0 !important;
}

/* Add a clean spacing rule between title and text */
.card-text-overlay .elementor-widget-heading {
    margin-bottom: 6px !important;
}

/* 3. Hide the description by default */
.card-text-overlay .elementor-widget-text-editor {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, opacity 0.25s ease, margin 0.35s ease;
}

/* 4. Interactive Hover States */
.card-image-wrapper:hover .card-text-overlay .elementor-widget-text-editor {
    max-height: 100px; /* Adapts cleanly up to a couple lines of text */
    opacity: 1;
    margin-top: 6px !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-4282e21 *//* 1. Setup the parent card context */
.card-image-wrapper {
    position: relative !important;
    cursor: pointer;
}

/* Ensure the image stretches properly across the full card width */
.card-image-wrapper .elementor-widget-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* 2. Absolute position the text container over the bottom of the image */
.card-text-overlay {
    position: absolute !important;
    bottom: 0;
    left: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 30px !important;
    z-index: 2;
    
    /* Built-in gradient protection for dark readability over white skies */
    background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.4) 70%, rgba(0, 0, 0, 0) 100%);
    
    /* Smooth transitions for slide effects */
    transition: transform 0.35s ease-in-out, background 0.35s ease-in-out;
}

/* Force text layout inside overlay to be white */
.card-text-overlay h2, 
.card-text-overlay p,
.card-text-overlay .elementor-heading-title {
    color: #ffffff !important;
    margin: 0 !important;
}

/* Add a clean spacing rule between title and text */
.card-text-overlay .elementor-widget-heading {
    margin-bottom: 6px !important;
}

/* 3. Hide the description by default */
.card-text-overlay .elementor-widget-text-editor {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, opacity 0.25s ease, margin 0.35s ease;
}

/* 4. Interactive Hover States */
.card-image-wrapper:hover .card-text-overlay .elementor-widget-text-editor {
    max-height: 100px; /* Adapts cleanly up to a couple lines of text */
    opacity: 1;
    margin-top: 6px !important;
}/* End custom CSS */