.elementor-4592 .elementor-element.elementor-element-aa3280f{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--overflow:hidden;--overlay-opacity:0;--overlay-mix-blend-mode:darken;--padding-top:790px;--padding-bottom:110px;--padding-left:120px;--padding-right:120px;}.elementor-4592 .elementor-element.elementor-element-aa3280f::before, .elementor-4592 .elementor-element.elementor-element-aa3280f > .elementor-background-video-container::before, .elementor-4592 .elementor-element.elementor-element-aa3280f > .e-con-inner > .elementor-background-video-container::before, .elementor-4592 .elementor-element.elementor-element-aa3280f > .elementor-background-slideshow::before, .elementor-4592 .elementor-element.elementor-element-aa3280f > .e-con-inner > .elementor-background-slideshow::before, .elementor-4592 .elementor-element.elementor-element-aa3280f > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-image:url("https://lukassenkus.com/wp-content/uploads/2026/02/fade-mask.png");--background-overlay:'';}.elementor-4592 .elementor-element.elementor-element-aa3280f.e-con{--e-con-transform-scale:1.1;}.elementor-4592 .elementor-element.elementor-element-aa3280f:not(.elementor-motion-effects-element-type-background), .elementor-4592 .elementor-element.elementor-element-aa3280f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background:url("https://lukassenkus.com/wp-content/uploads/2026/02/LUKUI.png") 50% 50%;background-size:cover;}.elementor-4592 .elementor-element.elementor-element-aa3280f::before{filter:brightness( 101% ) contrast( 110% ) saturate( 100% ) blur( 10px ) hue-rotate( 0deg );}.elementor-4592 .elementor-element.elementor-element-8e14ae0{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;}.elementor-4592 .elementor-element.elementor-element-8e14ae0.e-con{--align-self:center;}.elementor-4592 .elementor-element.elementor-element-c0b8b4c{font-size:18px;color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-6849320{font-size:18px;color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-7d46666{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:40px;--padding-bottom:0px;--padding-left:20px;--padding-right:20px;--z-index:2;}.elementor-4592 .elementor-element.elementor-element-7d46666:not(.elementor-motion-effects-element-type-background), .elementor-4592 .elementor-element.elementor-element-7d46666 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-secondary );}.elementor-4592 .elementor-element.elementor-element-4ddfbba{--display:flex;--padding-top:0px;--padding-bottom:20px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-7acf29a{text-align:center;}.elementor-4592 .elementor-element.elementor-element-7acf29a .elementor-heading-title{font-size:38px;color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-8ee1cb4 > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-8ee1cb4{text-align:center;font-size:22px;font-weight:300;color:var( --e-global-color-text );}.elementor-4592 .elementor-element.elementor-element-3fb93fa{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:20px 20px;--row-gap:20px;--column-gap:20px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-873a6cc{--display:flex;--min-height:100px;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:stretch;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:20px;--padding-bottom:20px;--padding-left:20px;--padding-right:20px;}.elementor-4592 .elementor-element.elementor-element-873a6cc:not(.elementor-motion-effects-element-type-background), .elementor-4592 .elementor-element.elementor-element-873a6cc > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://lukassenkus.com/wp-content/uploads/2020/11/Lukas-Senkus-scaled.jpg");background-position:top center;background-repeat:no-repeat;background-size:cover;}.elementor-4592 .elementor-element.elementor-element-873a6cc.e-con{--flex-grow:0;--flex-shrink:1;}.elementor-4592 .elementor-element.elementor-element-82fbab5{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-evenly;--align-items:stretch;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-2f01713{--display:grid;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(2, 1fr);--gap:20px 20px;--row-gap:20px;--column-gap:20px;--grid-auto-flow:row;--justify-items:stretch;--align-items:stretch;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-36e3506 > .elementor-widget-container{padding:30px 30px 30px 30px;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-36e3506 .elementor-icon-box-wrapper{text-align:start;gap:20px;}.elementor-4592 .elementor-element.elementor-element-36e3506 .elementor-icon-box-title{margin-block-end:20px;color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-36e3506.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-36e3506.elementor-view-framed .elementor-icon, .elementor-4592 .elementor-element.elementor-element-36e3506.elementor-view-default .elementor-icon{fill:var( --e-global-color-primary );color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-36e3506 .elementor-icon{font-size:40px;}.elementor-4592 .elementor-element.elementor-element-36e3506 .elementor-icon-box-title, .elementor-4592 .elementor-element.elementor-element-36e3506 .elementor-icon-box-title a{font-size:22px;font-weight:400;}.elementor-4592 .elementor-element.elementor-element-36e3506 .elementor-icon-box-description{font-size:18px;font-weight:200;color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-3905db2 > .elementor-widget-container{padding:30px 30px 30px 30px;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-3905db2 .elementor-icon-box-wrapper{text-align:start;gap:20px;}.elementor-4592 .elementor-element.elementor-element-3905db2 .elementor-icon-box-title{margin-block-end:20px;color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-3905db2.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-3905db2.elementor-view-framed .elementor-icon, .elementor-4592 .elementor-element.elementor-element-3905db2.elementor-view-default .elementor-icon{fill:var( --e-global-color-primary );color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-3905db2 .elementor-icon{font-size:40px;}.elementor-4592 .elementor-element.elementor-element-3905db2 .elementor-icon-box-title, .elementor-4592 .elementor-element.elementor-element-3905db2 .elementor-icon-box-title a{font-size:22px;font-weight:400;}.elementor-4592 .elementor-element.elementor-element-3905db2 .elementor-icon-box-description{font-size:18px;font-weight:200;color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-47c785f > .elementor-widget-container{padding:30px 30px 30px 30px;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-47c785f .elementor-icon-box-wrapper{text-align:start;gap:20px;}.elementor-4592 .elementor-element.elementor-element-47c785f .elementor-icon-box-title{margin-block-end:20px;color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-47c785f.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-47c785f.elementor-view-framed .elementor-icon, .elementor-4592 .elementor-element.elementor-element-47c785f.elementor-view-default .elementor-icon{fill:var( --e-global-color-primary );color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-47c785f .elementor-icon{font-size:40px;}.elementor-4592 .elementor-element.elementor-element-47c785f .elementor-icon-box-title, .elementor-4592 .elementor-element.elementor-element-47c785f .elementor-icon-box-title a{font-size:22px;font-weight:400;}.elementor-4592 .elementor-element.elementor-element-47c785f .elementor-icon-box-description{font-size:18px;font-weight:200;color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-a008f2c > .elementor-widget-container{padding:30px 30px 30px 30px;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-a008f2c .elementor-icon-box-wrapper{text-align:start;gap:20px;}.elementor-4592 .elementor-element.elementor-element-a008f2c .elementor-icon-box-title{margin-block-end:20px;color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-a008f2c.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-a008f2c.elementor-view-framed .elementor-icon, .elementor-4592 .elementor-element.elementor-element-a008f2c.elementor-view-default .elementor-icon{fill:var( --e-global-color-primary );color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-a008f2c .elementor-icon{font-size:40px;}.elementor-4592 .elementor-element.elementor-element-a008f2c .elementor-icon-box-title, .elementor-4592 .elementor-element.elementor-element-a008f2c .elementor-icon-box-title a{font-size:22px;font-weight:400;}.elementor-4592 .elementor-element.elementor-element-a008f2c .elementor-icon-box-description{font-size:18px;font-weight:200;color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-8aadd00{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:40px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-8aadd00:not(.elementor-motion-effects-element-type-background), .elementor-4592 .elementor-element.elementor-element-8aadd00 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-secondary );}.elementor-4592 .elementor-element.elementor-element-c9e33ee{--display:flex;--padding-top:0px;--padding-bottom:20px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-dabff4c{text-align:center;}.elementor-4592 .elementor-element.elementor-element-dabff4c .elementor-heading-title{font-size:38px;color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-f9dbeb4 > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-f9dbeb4{text-align:center;font-size:22px;font-weight:300;color:var( --e-global-color-text );}.elementor-4592 .elementor-element.elementor-element-5a7f51d{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-6915245{--display:grid;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--gap:0px 0px;--row-gap:0px;--column-gap:0px;--grid-auto-flow:row;--justify-items:stretch;--align-items:stretch;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-eb78f77 > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-eb78f77 .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-eb78f77.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-eb78f77.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-eb78f77.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-eb78f77 .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-eb78f77 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-eb78f77 .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-eb78f77 .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-4d5ad83 > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-4d5ad83 .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-4d5ad83.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-4d5ad83.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-4d5ad83.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-4d5ad83 .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-4d5ad83 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-4d5ad83 .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-4d5ad83 .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-7737765 > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-7737765 .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-7737765.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-7737765.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-7737765.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-7737765 .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-7737765 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-7737765 .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-7737765 .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-e1133ca > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-e1133ca .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-e1133ca.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-e1133ca.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-e1133ca.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-e1133ca .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-e1133ca .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-e1133ca .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-e1133ca .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-1cd4429 > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-1cd4429 .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-1cd4429.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-1cd4429.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-1cd4429.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-1cd4429 .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-1cd4429 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-1cd4429 .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-1cd4429 .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-d21a712 > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-d21a712 .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-d21a712.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-d21a712.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-d21a712.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-d21a712 .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-d21a712 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-d21a712 .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-d21a712 .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-8b5115a > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-8b5115a .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-8b5115a.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-8b5115a.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-8b5115a.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-8b5115a .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-8b5115a .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-8b5115a .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-8b5115a .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-135abab > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-135abab .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-135abab.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-135abab.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-135abab.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-135abab .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-135abab .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-135abab .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-135abab .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-05ad076{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-e34253b{--display:grid;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--gap:0px 0px;--row-gap:0px;--column-gap:0px;--grid-auto-flow:row;--justify-items:stretch;--align-items:stretch;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-7e4620e > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-7e4620e .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-7e4620e.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-7e4620e.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-7e4620e.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-7e4620e .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-7e4620e .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-7e4620e .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-7e4620e .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-94be439{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-a1c5f20{--display:grid;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--gap:0px 0px;--row-gap:0px;--column-gap:0px;--grid-auto-flow:row;--justify-items:stretch;--align-items:stretch;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-fb12a7d > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-fb12a7d .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-fb12a7d.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-fb12a7d.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-fb12a7d.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-fb12a7d .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-fb12a7d .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-fb12a7d .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-fb12a7d .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-1e78c98 > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-1e78c98 .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-1e78c98.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-1e78c98.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-1e78c98.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-1e78c98 .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-1e78c98 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-1e78c98 .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-1e78c98 .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-55aa801 > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-55aa801 .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-55aa801.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-55aa801.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-55aa801.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-55aa801 .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-55aa801 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-55aa801 .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-55aa801 .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-f6190d8 > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-f6190d8 .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-f6190d8.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-f6190d8.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-f6190d8.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-f6190d8 .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-f6190d8 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-f6190d8 .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-f6190d8 .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-63acf04 > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-63acf04 .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-63acf04.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-63acf04.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-63acf04.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-63acf04 .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-63acf04 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-63acf04 .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-63acf04 .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-566a324 > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-566a324 .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-566a324.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-566a324.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-566a324.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-566a324 .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-566a324 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-566a324 .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-566a324 .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-8dbddd4 > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-8dbddd4 .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-8dbddd4.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-8dbddd4.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-8dbddd4.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-8dbddd4 .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-8dbddd4 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-8dbddd4 .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-8dbddd4 .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-9df7e77 > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-9df7e77 .elementor-image-box-wrapper{text-align:center;}.elementor-4592 .elementor-element.elementor-element-9df7e77.elementor-position-right .elementor-image-box-img{margin-left:0px;}.elementor-4592 .elementor-element.elementor-element-9df7e77.elementor-position-left .elementor-image-box-img{margin-right:0px;}.elementor-4592 .elementor-element.elementor-element-9df7e77.elementor-position-top .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-9df7e77 .elementor-image-box-wrapper .elementor-image-box-img{width:100%;}.elementor-4592 .elementor-element.elementor-element-9df7e77 .elementor-image-box-img img{transition-duration:0.3s;}.elementor-4592 .elementor-element.elementor-element-9df7e77 .elementor-image-box-title{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-9df7e77 .elementor-image-box-description{color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-c19dd94{--n-tabs-heading-wrap:wrap;--n-tabs-heading-overflow-x:initial;--n-tabs-title-white-space:initial;--n-tabs-title-gap:20px;--n-tabs-gap:20px;--n-tabs-title-border-radius:0px 0px 0px 0px;--n-tabs-title-color:var( --e-global-color-primary );--n-tabs-title-color-active:var( --e-global-color-secondary );}.elementor-4592 .elementor-element.elementor-element-c19dd94 > .elementor-widget-container > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title[aria-selected='false']:not( :hover ){background:var( --e-global-color-secondary );}.elementor-4592 .elementor-element.elementor-element-c19dd94.elementor-widget-n-tabs > .elementor-widget-container > .e-n-tabs[data-touch-mode='false'] > .e-n-tabs-heading > .e-n-tab-title[aria-selected="false"]:hover{background:var( --e-global-color-primary );border-style:solid;border-width:1px 1px 1px 1px;}.elementor-4592 .elementor-element.elementor-element-c19dd94.elementor-widget-n-tabs > .elementor-widget-container > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title[aria-selected="true"], .elementor-4592 .elementor-element.elementor-element-c19dd94.elementor-widget-n-tabs > .elementor-widget-container > .e-n-tabs[data-touch-mode='true'] > .e-n-tabs-heading > .e-n-tab-title[aria-selected="false"]:hover{background:var( --e-global-color-primary );border-style:solid;border-width:1px 1px 1px 1px;}.elementor-4592 .elementor-element.elementor-element-c19dd94.elementor-widget-n-tabs > .elementor-widget-container > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title[aria-selected="false"]:not( :hover ){border-style:solid;border-width:1px 1px 1px 1px;}.elementor-4592 .elementor-element.elementor-element-c19dd94 [data-touch-mode="false"] .e-n-tab-title[aria-selected="false"]:hover{--n-tabs-title-color-hover:var( --e-global-color-secondary );}.elementor-4592 .elementor-element.elementor-element-843fe5a{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:40px 40px;--row-gap:40px;--column-gap:40px;border-style:none;--border-style:none;--padding-top:60px;--padding-bottom:60px;--padding-left:0px;--padding-right:20px;}.elementor-4592 .elementor-element.elementor-element-843fe5a:not(.elementor-motion-effects-element-type-background), .elementor-4592 .elementor-element.elementor-element-843fe5a > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-secondary );}.elementor-4592 .elementor-element.elementor-element-7349f6a{text-align:center;}.elementor-4592 .elementor-element.elementor-element-7349f6a .elementor-heading-title{font-size:40px;font-weight:400;color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-bb3c734{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:40px 40px;--row-gap:40px;--column-gap:40px;border-style:solid;--border-style:solid;border-width:1px 0px 0px 0px;--border-top-width:1px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;border-color:var( --e-global-color-primary );--border-color:var( --e-global-color-primary );--padding-top:20px;--padding-bottom:40px;--padding-left:0px;--padding-right:20px;}.elementor-4592 .elementor-element.elementor-element-bb3c734:not(.elementor-motion-effects-element-type-background), .elementor-4592 .elementor-element.elementor-element-bb3c734 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-secondary );}.elementor-4592 .elementor-element.elementor-element-89d1d1d > .elementor-widget-container{margin:0px 0px 10px 0px;padding:20px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-89d1d1d img{width:8%;}.elementor-4592 .elementor-element.elementor-element-252f2e7{text-align:center;}.elementor-4592 .elementor-element.elementor-element-252f2e7 .elementor-heading-title{font-size:60px;font-weight:400;color:var( --e-global-color-primary );}.elementor-4592 .elementor-element.elementor-element-7aac37f{width:auto;max-width:auto;--e-icon-list-icon-size:22px;--icon-vertical-offset:0px;}.elementor-4592 .elementor-element.elementor-element-7aac37f > .elementor-widget-container{margin:-150px 0px 0px 20px;padding:5px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-7aac37f.elementor-element{--align-self:flex-end;}.elementor-4592 .elementor-element.elementor-element-7aac37f .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(18px/2);}.elementor-4592 .elementor-element.elementor-element-7aac37f .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(18px/2);}.elementor-4592 .elementor-element.elementor-element-7aac37f .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(18px/2);}.elementor-4592 .elementor-element.elementor-element-7aac37f .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-18px/2);}.elementor-4592 .elementor-element.elementor-element-7aac37f .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-18px/2);}.elementor-4592 .elementor-element.elementor-element-7aac37f .elementor-icon-list-icon i{color:var( --e-global-color-primary );transition:color 0.3s;}.elementor-4592 .elementor-element.elementor-element-7aac37f .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );transition:fill 0.3s;}.elementor-4592 .elementor-element.elementor-element-7aac37f .elementor-icon-list-item:hover .elementor-icon-list-icon i{color:#CCDDCC;}.elementor-4592 .elementor-element.elementor-element-7aac37f .elementor-icon-list-item:hover .elementor-icon-list-icon svg{fill:#CCDDCC;}.elementor-4592 .elementor-element.elementor-element-7aac37f .elementor-icon-list-text{transition:color 0.3s;}.elementor-4592 .elementor-element.elementor-element-2f6fba6.elementor-element{--align-self:center;}.elementor-4592 .elementor-element.elementor-element-2f6fba6{text-align:center;}.elementor-4592 .elementor-element.elementor-element-2f6fba6 .elementor-heading-title{font-family:"Oswald", dm mono;font-size:14px;font-weight:300;text-transform:uppercase;color:#FFFFFF;}.elementor-4592 .elementor-element.elementor-element-3f591a2.elementor-element{--align-self:center;}.elementor-4592 .elementor-element.elementor-element-3f591a2{text-align:center;}.elementor-4592 .elementor-element.elementor-element-3f591a2 .elementor-heading-title{font-family:"Oswald", dm mono;font-size:14px;font-weight:300;text-transform:uppercase;color:#FFFFFF;}.elementor-4592 .elementor-element.elementor-element-6f7a6c3{width:auto;max-width:auto;--e-icon-list-icon-size:22px;--icon-vertical-offset:0px;}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 > .elementor-widget-container{margin:-150px 0px 0px 20px;padding:5px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-6f7a6c3.elementor-element{--align-self:flex-end;}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(18px/2);}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(18px/2);}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(18px/2);}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-18px/2);}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-18px/2);}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 .elementor-icon-list-icon i{color:var( --e-global-color-primary );transition:color 0.3s;}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );transition:fill 0.3s;}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 .elementor-icon-list-item:hover .elementor-icon-list-icon i{color:#CCDDCC;}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 .elementor-icon-list-item:hover .elementor-icon-list-icon svg{fill:#CCDDCC;}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 .elementor-icon-list-text{transition:color 0.3s;}body.elementor-page-4592:not(.elementor-motion-effects-element-type-background), body.elementor-page-4592 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFAF5;}@media(max-width:1366px){.elementor-4592 .elementor-element.elementor-element-aa3280f{--padding-top:730px;--padding-bottom:60px;--padding-left:80px;--padding-right:80px;}.elementor-4592 .elementor-element.elementor-element-7d46666{--padding-top:40px;--padding-bottom:0px;--padding-left:20px;--padding-right:20px;}.elementor-4592 .elementor-element.elementor-element-3fb93fa{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-2f01713{--grid-auto-flow:row;}.elementor-4592 .elementor-element.elementor-element-6915245{--grid-auto-flow:row;}.elementor-4592 .elementor-element.elementor-element-eb78f77 .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-4d5ad83 .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-7737765 .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-e1133ca .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-1cd4429 .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-d21a712 .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-8b5115a .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-135abab .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-05ad076{--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-e34253b{--grid-auto-flow:row;}.elementor-4592 .elementor-element.elementor-element-7e4620e .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-94be439{--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-a1c5f20{--grid-auto-flow:row;}.elementor-4592 .elementor-element.elementor-element-fb12a7d .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-1e78c98 .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-55aa801 .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-f6190d8 .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-63acf04 .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-566a324 .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-8dbddd4 .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-9df7e77 .elementor-image-box-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-c19dd94{--n-tabs-title-gap:20px;--n-tabs-gap:20px;}.elementor-4592 .elementor-element.elementor-element-843fe5a{--gap:40px 40px;--row-gap:40px;--column-gap:40px;--padding-top:60px;--padding-bottom:60px;--padding-left:20px;--padding-right:20px;}.elementor-4592 .elementor-element.elementor-element-7349f6a .elementor-heading-title{font-size:30px;}.elementor-4592 .elementor-element.elementor-element-bb3c734{--gap:20px 20px;--row-gap:20px;--column-gap:20px;--padding-top:20px;--padding-bottom:20px;--padding-left:20px;--padding-right:20px;}}@media(max-width:1024px){.elementor-4592 .elementor-element.elementor-element-8e14ae0{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:20px 20px;--row-gap:20px;--column-gap:20px;}.elementor-4592 .elementor-element.elementor-element-5c2be64{text-align:center;}.elementor-4592 .elementor-element.elementor-element-5c2be64 .elementor-heading-title{font-size:18px;line-height:1.4em;}.elementor-4592 .elementor-element.elementor-element-7d46666{--padding-top:40px;--padding-bottom:0px;--padding-left:20px;--padding-right:20px;}.elementor-4592 .elementor-element.elementor-element-3fb93fa{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-2f01713{--grid-auto-flow:row;}.elementor-4592 .elementor-element.elementor-element-36e3506 > .elementor-widget-container{padding:20px 20px 20px 20px;}.elementor-4592 .elementor-element.elementor-element-36e3506 .elementor-icon{font-size:40px;}.elementor-4592 .elementor-element.elementor-element-36e3506 .elementor-icon-box-title, .elementor-4592 .elementor-element.elementor-element-36e3506 .elementor-icon-box-title a{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-36e3506 .elementor-icon-box-description{font-size:16px;}.elementor-4592 .elementor-element.elementor-element-3905db2 > .elementor-widget-container{padding:20px 20px 20px 20px;}.elementor-4592 .elementor-element.elementor-element-3905db2 .elementor-icon{font-size:40px;}.elementor-4592 .elementor-element.elementor-element-3905db2 .elementor-icon-box-title, .elementor-4592 .elementor-element.elementor-element-3905db2 .elementor-icon-box-title a{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-3905db2 .elementor-icon-box-description{font-size:16px;}.elementor-4592 .elementor-element.elementor-element-47c785f > .elementor-widget-container{padding:20px 20px 20px 20px;}.elementor-4592 .elementor-element.elementor-element-47c785f .elementor-icon{font-size:40px;}.elementor-4592 .elementor-element.elementor-element-47c785f .elementor-icon-box-title, .elementor-4592 .elementor-element.elementor-element-47c785f .elementor-icon-box-title a{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-47c785f .elementor-icon-box-description{font-size:16px;}.elementor-4592 .elementor-element.elementor-element-a008f2c > .elementor-widget-container{padding:20px 20px 20px 20px;}.elementor-4592 .elementor-element.elementor-element-a008f2c .elementor-icon{font-size:40px;}.elementor-4592 .elementor-element.elementor-element-a008f2c .elementor-icon-box-title, .elementor-4592 .elementor-element.elementor-element-a008f2c .elementor-icon-box-title a{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-a008f2c .elementor-icon-box-description{font-size:16px;}.elementor-4592 .elementor-element.elementor-element-6915245{--grid-auto-flow:row;}.elementor-4592 .elementor-element.elementor-element-eb78f77 .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-4d5ad83 .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-7737765 .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-e1133ca .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-1cd4429 .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-d21a712 .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-8b5115a .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-135abab .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-e34253b{--grid-auto-flow:row;}.elementor-4592 .elementor-element.elementor-element-7e4620e .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-a1c5f20{--grid-auto-flow:row;}.elementor-4592 .elementor-element.elementor-element-fb12a7d .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-1e78c98 .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-55aa801 .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-f6190d8 .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-63acf04 .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-566a324 .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-8dbddd4 .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-9df7e77 .elementor-image-box-title{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-252f2e7 .elementor-heading-title{font-size:50px;}}@media(max-width:767px){.elementor-4592 .elementor-element.elementor-element-aa3280f{--padding-top:510px;--padding-bottom:60px;--padding-left:40px;--padding-right:40px;}.elementor-4592 .elementor-element.elementor-element-7d46666{--padding-top:40px;--padding-bottom:0px;--padding-left:20px;--padding-right:20px;}.elementor-4592 .elementor-element.elementor-element-7acf29a .elementor-heading-title{font-size:28px;}.elementor-4592 .elementor-element.elementor-element-8ee1cb4{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-3fb93fa{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-873a6cc{--min-height:400px;}.elementor-4592 .elementor-element.elementor-element-873a6cc:not(.elementor-motion-effects-element-type-background), .elementor-4592 .elementor-element.elementor-element-873a6cc > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:top center;}.elementor-4592 .elementor-element.elementor-element-82fbab5{--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4592 .elementor-element.elementor-element-2f01713{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-4592 .elementor-element.elementor-element-dabff4c .elementor-heading-title{font-size:28px;}.elementor-4592 .elementor-element.elementor-element-f9dbeb4{font-size:20px;}.elementor-4592 .elementor-element.elementor-element-6915245{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-4592 .elementor-element.elementor-element-eb78f77 .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-4d5ad83 .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-7737765 .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-e1133ca .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-1cd4429 .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-d21a712 .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-8b5115a .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-135abab .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-e34253b{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-4592 .elementor-element.elementor-element-7e4620e .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-a1c5f20{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-4592 .elementor-element.elementor-element-fb12a7d .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-1e78c98 .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-55aa801 .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-f6190d8 .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-63acf04 .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-566a324 .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-8dbddd4 .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-9df7e77 .elementor-image-box-img{margin-bottom:0px;}.elementor-4592 .elementor-element.elementor-element-c19dd94{--n-tabs-direction:column;--n-tabs-heading-direction:row;--n-tabs-heading-width:initial;--n-tabs-title-flex-basis:content;--n-tabs-title-flex-shrink:0;--n-tabs-heading-justify-content:center;--n-tabs-title-width:initial;--n-tabs-title-height:initial;--n-tabs-title-align-items:center;--n-tabs-title-flex-grow:0;--n-tabs-title-justify-content:center;--n-tabs-title-text-align:center;}.elementor-4592 .elementor-element.elementor-element-c19dd94 > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-843fe5a{--gap:30px 30px;--row-gap:30px;--column-gap:30px;--padding-top:40px;--padding-bottom:40px;--padding-left:20px;--padding-right:20px;}.elementor-4592 .elementor-element.elementor-element-7349f6a .elementor-heading-title{font-size:24px;}.elementor-4592 .elementor-element.elementor-element-89d1d1d > .elementor-widget-container{margin:0px 0px 30px 0px;}.elementor-4592 .elementor-element.elementor-element-89d1d1d img{width:20%;}.elementor-4592 .elementor-element.elementor-element-252f2e7 .elementor-heading-title{font-size:30px;}.elementor-4592 .elementor-element.elementor-element-7aac37f{width:auto;max-width:auto;--e-icon-list-icon-size:25px;}.elementor-4592 .elementor-element.elementor-element-7aac37f > .elementor-widget-container{margin:20px 0px 0px 6px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-7aac37f.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:1;}.elementor-4592 .elementor-element.elementor-element-7aac37f .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(20px/2);}.elementor-4592 .elementor-element.elementor-element-7aac37f .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(20px/2);}.elementor-4592 .elementor-element.elementor-element-7aac37f .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(20px/2);}.elementor-4592 .elementor-element.elementor-element-7aac37f .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-20px/2);}.elementor-4592 .elementor-element.elementor-element-7aac37f .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-20px/2);}.elementor-4592 .elementor-element.elementor-element-2f6fba6{text-align:start;}.elementor-4592 .elementor-element.elementor-element-2f6fba6 .elementor-heading-title{font-size:12px;}.elementor-4592 .elementor-element.elementor-element-3f591a2{text-align:start;}.elementor-4592 .elementor-element.elementor-element-3f591a2 .elementor-heading-title{font-size:12px;}.elementor-4592 .elementor-element.elementor-element-6f7a6c3{width:100%;max-width:100%;--e-icon-list-icon-size:25px;}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 > .elementor-widget-container{margin:20px 0px 0px 6px;padding:0px 0px 0px 0px;}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(20px/2);}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(20px/2);}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(20px/2);}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-20px/2);}.elementor-4592 .elementor-element.elementor-element-6f7a6c3 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-20px/2);}}@media(min-width:768px){.elementor-4592 .elementor-element.elementor-element-873a6cc{--width:25%;}}@media(max-width:1366px) and (min-width:768px){.elementor-4592 .elementor-element.elementor-element-873a6cc{--width:40%;}}/* Start custom CSS for heading, class: .elementor-element-5c2be64 *//* Base heading styles */
.elementor-heading-title.blurry-reveal,
.blurry-reveal {
  font-family: 'Oswald', Arial, sans-serif;
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: white;
  text-align: left;
  margin: 1rem 0;
  padding: 0 10px;
}

/* Each letter / character */
.blurry-reveal span {
  display: inline-block;
  opacity: 0;
  filter: blur(8px);
  transform: translateY(18px);
  animation: letter-reveal 1s ease-out forwards;
}

/* The reveal animation */
@keyframes letter-reveal {
  to {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
  }
}

/* Staggered delays – exactly 71 positions (0.00s → 2.80s) */
.blurry-reveal span:nth-child(1)  { animation-delay: 0.00s; }
.blurry-reveal span:nth-child(2)  { animation-delay: 0.04s; }
.blurry-reveal span:nth-child(3)  { animation-delay: 0.08s; }
.blurry-reveal span:nth-child(4)  { animation-delay: 0.12s; }
.blurry-reveal span:nth-child(5)  { animation-delay: 0.16s; }
.blurry-reveal span:nth-child(6)  { animation-delay: 0.20s; }
.blurry-reveal span:nth-child(7)  { animation-delay: 0.24s; }
.blurry-reveal span:nth-child(8)  { animation-delay: 0.28s; }
.blurry-reveal span:nth-child(9)  { animation-delay: 0.32s; }
.blurry-reveal span:nth-child(10) { animation-delay: 0.36s; }
.blurry-reveal span:nth-child(11) { animation-delay: 0.40s; }
.blurry-reveal span:nth-child(12) { animation-delay: 0.44s; }
.blurry-reveal span:nth-child(13) { animation-delay: 0.48s; }
.blurry-reveal span:nth-child(14) { animation-delay: 0.52s; }
.blurry-reveal span:nth-child(15) { animation-delay: 0.56s; }
.blurry-reveal span:nth-child(16) { animation-delay: 0.60s; }
.blurry-reveal span:nth-child(17) { animation-delay: 0.64s; }
.blurry-reveal span:nth-child(18) { animation-delay: 0.68s; }
.blurry-reveal span:nth-child(19) { animation-delay: 0.72s; }
.blurry-reveal span:nth-child(20) { animation-delay: 0.76s; }
.blurry-reveal span:nth-child(21) { animation-delay: 0.80s; }
.blurry-reveal span:nth-child(22) { animation-delay: 0.84s; }
.blurry-reveal span:nth-child(23) { animation-delay: 0.88s; }
.blurry-reveal span:nth-child(24) { animation-delay: 0.92s; }
.blurry-reveal span:nth-child(25) { animation-delay: 0.96s; }
.blurry-reveal span:nth-child(26) { animation-delay: 1.00s; }
.blurry-reveal span:nth-child(27) { animation-delay: 1.04s; }
.blurry-reveal span:nth-child(28) { animation-delay: 1.08s; }
.blurry-reveal span:nth-child(29) { animation-delay: 1.12s; }
.blurry-reveal span:nth-child(30) { animation-delay: 1.16s; }
.blurry-reveal span:nth-child(31) { animation-delay: 1.20s; }
.blurry-reveal span:nth-child(32) { animation-delay: 1.24s; }
.blurry-reveal span:nth-child(33) { animation-delay: 1.28s; }
.blurry-reveal span:nth-child(34) { animation-delay: 1.32s; }
.blurry-reveal span:nth-child(35) { animation-delay: 1.36s; }
.blurry-reveal span:nth-child(36) { animation-delay: 1.40s; }
.blurry-reveal span:nth-child(37) { animation-delay: 1.44s; }
.blurry-reveal span:nth-child(38) { animation-delay: 1.48s; }
.blurry-reveal span:nth-child(39) { animation-delay: 1.52s; }
.blurry-reveal span:nth-child(40) { animation-delay: 1.56s; }
.blurry-reveal span:nth-child(41) { animation-delay: 1.60s; }
.blurry-reveal span:nth-child(42) { animation-delay: 1.64s; }
.blurry-reveal span:nth-child(43) { animation-delay: 1.68s; }
.blurry-reveal span:nth-child(44) { animation-delay: 1.72s; }
.blurry-reveal span:nth-child(45) { animation-delay: 1.76s; }
.blurry-reveal span:nth-child(46) { animation-delay: 1.80s; }
.blurry-reveal span:nth-child(47) { animation-delay: 1.84s; }
.blurry-reveal span:nth-child(48) { animation-delay: 1.88s; }
.blurry-reveal span:nth-child(49) { animation-delay: 1.92s; }
.blurry-reveal span:nth-child(50) { animation-delay: 1.96s; }
.blurry-reveal span:nth-child(51) { animation-delay: 2.00s; }
.blurry-reveal span:nth-child(52) { animation-delay: 2.04s; }
.blurry-reveal span:nth-child(53) { animation-delay: 2.08s; }
.blurry-reveal span:nth-child(54) { animation-delay: 2.12s; }
.blurry-reveal span:nth-child(55) { animation-delay: 2.16s; }
.blurry-reveal span:nth-child(56) { animation-delay: 2.20s; }
.blurry-reveal span:nth-child(57) { animation-delay: 2.24s; }
.blurry-reveal span:nth-child(58) { animation-delay: 2.28s; }
.blurry-reveal span:nth-child(59) { animation-delay: 2.32s; }
.blurry-reveal span:nth-child(60) { animation-delay: 2.36s; }
.blurry-reveal span:nth-child(61) { animation-delay: 2.40s; }
.blurry-reveal span:nth-child(62) { animation-delay: 2.44s; }
.blurry-reveal span:nth-child(63) { animation-delay: 2.48s; }
.blurry-reveal span:nth-child(64) { animation-delay: 2.52s; }
.blurry-reveal span:nth-child(65) { animation-delay: 2.56s; }
.blurry-reveal span:nth-child(66) { animation-delay: 2.60s; }
.blurry-reveal span:nth-child(67) { animation-delay: 2.64s; }
.blurry-reveal span:nth-child(68) { animation-delay: 2.68s; }
.blurry-reveal span:nth-child(69) { animation-delay: 2.72s; }
.blurry-reveal span:nth-child(70) { animation-delay: 2.76s; }
.blurry-reveal span:nth-child(71) { animation-delay: 2.80s; }/* End custom CSS */
/* Start custom CSS for text-editor, class: .elementor-element-c0b8b4c *//* Base heading styles */
.elementor-heading-title.blurry-reveal,
.blurry-reveal {
  font-family: 'Oswald', Arial, sans-serif;
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: white;
  text-align: left;
  margin: 1rem 0;
  padding: 0 10px;
}

/* Each letter / character */
.blurry-reveal span {
  display: inline-block;
  opacity: 0;
  filter: blur(8px);
  transform: translateY(18px);
  animation: letter-reveal 1s ease-out forwards;
}

/* The reveal animation */
@keyframes letter-reveal {
  to {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
  }
}

/* Staggered delays – exactly 71 positions (0.00s → 2.80s) */
.blurry-reveal span:nth-child(1)  { animation-delay: 0.00s; }
.blurry-reveal span:nth-child(2)  { animation-delay: 0.04s; }
.blurry-reveal span:nth-child(3)  { animation-delay: 0.08s; }
.blurry-reveal span:nth-child(4)  { animation-delay: 0.12s; }
.blurry-reveal span:nth-child(5)  { animation-delay: 0.16s; }
.blurry-reveal span:nth-child(6)  { animation-delay: 0.20s; }
.blurry-reveal span:nth-child(7)  { animation-delay: 0.24s; }
.blurry-reveal span:nth-child(8)  { animation-delay: 0.28s; }
.blurry-reveal span:nth-child(9)  { animation-delay: 0.32s; }
.blurry-reveal span:nth-child(10) { animation-delay: 0.36s; }
.blurry-reveal span:nth-child(11) { animation-delay: 0.40s; }
.blurry-reveal span:nth-child(12) { animation-delay: 0.44s; }
.blurry-reveal span:nth-child(13) { animation-delay: 0.48s; }
.blurry-reveal span:nth-child(14) { animation-delay: 0.52s; }
.blurry-reveal span:nth-child(15) { animation-delay: 0.56s; }
.blurry-reveal span:nth-child(16) { animation-delay: 0.60s; }
.blurry-reveal span:nth-child(17) { animation-delay: 0.64s; }
.blurry-reveal span:nth-child(18) { animation-delay: 0.68s; }
.blurry-reveal span:nth-child(19) { animation-delay: 0.72s; }
.blurry-reveal span:nth-child(20) { animation-delay: 0.76s; }
.blurry-reveal span:nth-child(21) { animation-delay: 0.80s; }
.blurry-reveal span:nth-child(22) { animation-delay: 0.84s; }
.blurry-reveal span:nth-child(23) { animation-delay: 0.88s; }
.blurry-reveal span:nth-child(24) { animation-delay: 0.92s; }
.blurry-reveal span:nth-child(25) { animation-delay: 0.96s; }
.blurry-reveal span:nth-child(26) { animation-delay: 1.00s; }
.blurry-reveal span:nth-child(27) { animation-delay: 1.04s; }
.blurry-reveal span:nth-child(28) { animation-delay: 1.08s; }
.blurry-reveal span:nth-child(29) { animation-delay: 1.12s; }
.blurry-reveal span:nth-child(30) { animation-delay: 1.16s; }
.blurry-reveal span:nth-child(31) { animation-delay: 1.20s; }
.blurry-reveal span:nth-child(32) { animation-delay: 1.24s; }
.blurry-reveal span:nth-child(33) { animation-delay: 1.28s; }
.blurry-reveal span:nth-child(34) { animation-delay: 1.32s; }
.blurry-reveal span:nth-child(35) { animation-delay: 1.36s; }
.blurry-reveal span:nth-child(36) { animation-delay: 1.40s; }
.blurry-reveal span:nth-child(37) { animation-delay: 1.44s; }
.blurry-reveal span:nth-child(38) { animation-delay: 1.48s; }
.blurry-reveal span:nth-child(39) { animation-delay: 1.52s; }
.blurry-reveal span:nth-child(40) { animation-delay: 1.56s; }
.blurry-reveal span:nth-child(41) { animation-delay: 1.60s; }
.blurry-reveal span:nth-child(42) { animation-delay: 1.64s; }
.blurry-reveal span:nth-child(43) { animation-delay: 1.68s; }
.blurry-reveal span:nth-child(44) { animation-delay: 1.72s; }
.blurry-reveal span:nth-child(45) { animation-delay: 1.76s; }
.blurry-reveal span:nth-child(46) { animation-delay: 1.80s; }
.blurry-reveal span:nth-child(47) { animation-delay: 1.84s; }
.blurry-reveal span:nth-child(48) { animation-delay: 1.88s; }
.blurry-reveal span:nth-child(49) { animation-delay: 1.92s; }
.blurry-reveal span:nth-child(50) { animation-delay: 1.96s; }
.blurry-reveal span:nth-child(51) { animation-delay: 2.00s; }
.blurry-reveal span:nth-child(52) { animation-delay: 2.04s; }
.blurry-reveal span:nth-child(53) { animation-delay: 2.08s; }
.blurry-reveal span:nth-child(54) { animation-delay: 2.12s; }
.blurry-reveal span:nth-child(55) { animation-delay: 2.16s; }
.blurry-reveal span:nth-child(56) { animation-delay: 2.20s; }
.blurry-reveal span:nth-child(57) { animation-delay: 2.24s; }
.blurry-reveal span:nth-child(58) { animation-delay: 2.28s; }
.blurry-reveal span:nth-child(59) { animation-delay: 2.32s; }
.blurry-reveal span:nth-child(60) { animation-delay: 2.36s; }
.blurry-reveal span:nth-child(61) { animation-delay: 2.40s; }
.blurry-reveal span:nth-child(62) { animation-delay: 2.44s; }
.blurry-reveal span:nth-child(63) { animation-delay: 2.48s; }
.blurry-reveal span:nth-child(64) { animation-delay: 2.52s; }
.blurry-reveal span:nth-child(65) { animation-delay: 2.56s; }
.blurry-reveal span:nth-child(66) { animation-delay: 2.60s; }
.blurry-reveal span:nth-child(67) { animation-delay: 2.64s; }
.blurry-reveal span:nth-child(68) { animation-delay: 2.68s; }
.blurry-reveal span:nth-child(69) { animation-delay: 2.72s; }
.blurry-reveal span:nth-child(70) { animation-delay: 2.76s; }
.blurry-reveal span:nth-child(71) { animation-delay: 2.80s; }/* End custom CSS */
/* Start custom CSS for text-editor, class: .elementor-element-6849320 *//* Base heading styles */
.elementor-heading-title.blurry-reveal,
.blurry-reveal {
  font-family: 'Oswald', Arial, sans-serif;
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: white;
  text-align: left;
  margin: 1rem 0;
  padding: 0 10px;
}

/* Each letter / character */
.blurry-reveal span {
  display: inline-block;
  opacity: 0;
  filter: blur(8px);
  transform: translateY(18px);
  animation: letter-reveal 1s ease-out forwards;
}

/* The reveal animation */
@keyframes letter-reveal {
  to {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
  }
}

/* Staggered delays – exactly 71 positions (0.00s → 2.80s) */
.blurry-reveal span:nth-child(1)  { animation-delay: 0.00s; }
.blurry-reveal span:nth-child(2)  { animation-delay: 0.04s; }
.blurry-reveal span:nth-child(3)  { animation-delay: 0.08s; }
.blurry-reveal span:nth-child(4)  { animation-delay: 0.12s; }
.blurry-reveal span:nth-child(5)  { animation-delay: 0.16s; }
.blurry-reveal span:nth-child(6)  { animation-delay: 0.20s; }
.blurry-reveal span:nth-child(7)  { animation-delay: 0.24s; }
.blurry-reveal span:nth-child(8)  { animation-delay: 0.28s; }
.blurry-reveal span:nth-child(9)  { animation-delay: 0.32s; }
.blurry-reveal span:nth-child(10) { animation-delay: 0.36s; }
.blurry-reveal span:nth-child(11) { animation-delay: 0.40s; }
.blurry-reveal span:nth-child(12) { animation-delay: 0.44s; }
.blurry-reveal span:nth-child(13) { animation-delay: 0.48s; }
.blurry-reveal span:nth-child(14) { animation-delay: 0.52s; }
.blurry-reveal span:nth-child(15) { animation-delay: 0.56s; }
.blurry-reveal span:nth-child(16) { animation-delay: 0.60s; }
.blurry-reveal span:nth-child(17) { animation-delay: 0.64s; }
.blurry-reveal span:nth-child(18) { animation-delay: 0.68s; }
.blurry-reveal span:nth-child(19) { animation-delay: 0.72s; }
.blurry-reveal span:nth-child(20) { animation-delay: 0.76s; }
.blurry-reveal span:nth-child(21) { animation-delay: 0.80s; }
.blurry-reveal span:nth-child(22) { animation-delay: 0.84s; }
.blurry-reveal span:nth-child(23) { animation-delay: 0.88s; }
.blurry-reveal span:nth-child(24) { animation-delay: 0.92s; }
.blurry-reveal span:nth-child(25) { animation-delay: 0.96s; }
.blurry-reveal span:nth-child(26) { animation-delay: 1.00s; }
.blurry-reveal span:nth-child(27) { animation-delay: 1.04s; }
.blurry-reveal span:nth-child(28) { animation-delay: 1.08s; }
.blurry-reveal span:nth-child(29) { animation-delay: 1.12s; }
.blurry-reveal span:nth-child(30) { animation-delay: 1.16s; }
.blurry-reveal span:nth-child(31) { animation-delay: 1.20s; }
.blurry-reveal span:nth-child(32) { animation-delay: 1.24s; }
.blurry-reveal span:nth-child(33) { animation-delay: 1.28s; }
.blurry-reveal span:nth-child(34) { animation-delay: 1.32s; }
.blurry-reveal span:nth-child(35) { animation-delay: 1.36s; }
.blurry-reveal span:nth-child(36) { animation-delay: 1.40s; }
.blurry-reveal span:nth-child(37) { animation-delay: 1.44s; }
.blurry-reveal span:nth-child(38) { animation-delay: 1.48s; }
.blurry-reveal span:nth-child(39) { animation-delay: 1.52s; }
.blurry-reveal span:nth-child(40) { animation-delay: 1.56s; }
.blurry-reveal span:nth-child(41) { animation-delay: 1.60s; }
.blurry-reveal span:nth-child(42) { animation-delay: 1.64s; }
.blurry-reveal span:nth-child(43) { animation-delay: 1.68s; }
.blurry-reveal span:nth-child(44) { animation-delay: 1.72s; }
.blurry-reveal span:nth-child(45) { animation-delay: 1.76s; }
.blurry-reveal span:nth-child(46) { animation-delay: 1.80s; }
.blurry-reveal span:nth-child(47) { animation-delay: 1.84s; }
.blurry-reveal span:nth-child(48) { animation-delay: 1.88s; }
.blurry-reveal span:nth-child(49) { animation-delay: 1.92s; }
.blurry-reveal span:nth-child(50) { animation-delay: 1.96s; }
.blurry-reveal span:nth-child(51) { animation-delay: 2.00s; }
.blurry-reveal span:nth-child(52) { animation-delay: 2.04s; }
.blurry-reveal span:nth-child(53) { animation-delay: 2.08s; }
.blurry-reveal span:nth-child(54) { animation-delay: 2.12s; }
.blurry-reveal span:nth-child(55) { animation-delay: 2.16s; }
.blurry-reveal span:nth-child(56) { animation-delay: 2.20s; }
.blurry-reveal span:nth-child(57) { animation-delay: 2.24s; }
.blurry-reveal span:nth-child(58) { animation-delay: 2.28s; }
.blurry-reveal span:nth-child(59) { animation-delay: 2.32s; }
.blurry-reveal span:nth-child(60) { animation-delay: 2.36s; }
.blurry-reveal span:nth-child(61) { animation-delay: 2.40s; }
.blurry-reveal span:nth-child(62) { animation-delay: 2.44s; }
.blurry-reveal span:nth-child(63) { animation-delay: 2.48s; }
.blurry-reveal span:nth-child(64) { animation-delay: 2.52s; }
.blurry-reveal span:nth-child(65) { animation-delay: 2.56s; }
.blurry-reveal span:nth-child(66) { animation-delay: 2.60s; }
.blurry-reveal span:nth-child(67) { animation-delay: 2.64s; }
.blurry-reveal span:nth-child(68) { animation-delay: 2.68s; }
.blurry-reveal span:nth-child(69) { animation-delay: 2.72s; }
.blurry-reveal span:nth-child(70) { animation-delay: 2.76s; }
.blurry-reveal span:nth-child(71) { animation-delay: 2.80s; }/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-eb78f77 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-4d5ad83 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-7737765 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-e1133ca *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-1cd4429 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-d21a712 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-8b5115a *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-135abab *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-7e4620e *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-fb12a7d *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-1e78c98 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-55aa801 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-f6190d8 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-63acf04 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-566a324 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-8dbddd4 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-9df7e77 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-eb78f77 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-4d5ad83 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-7737765 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-e1133ca *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-1cd4429 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-d21a712 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-8b5115a *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-135abab *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-7e4620e *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-fb12a7d *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-1e78c98 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-55aa801 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-f6190d8 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-63acf04 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-566a324 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-8dbddd4 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-9df7e77 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-eb78f77 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-4d5ad83 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-7737765 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-e1133ca *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-1cd4429 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-d21a712 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-8b5115a *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-135abab *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-7e4620e *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-fb12a7d *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-1e78c98 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-55aa801 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-f6190d8 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-63acf04 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-566a324 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-8dbddd4 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-9df7e77 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-eb78f77 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-4d5ad83 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-7737765 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-e1133ca *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-1cd4429 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-d21a712 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-8b5115a *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-135abab *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-7e4620e *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-fb12a7d *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-1e78c98 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-55aa801 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-f6190d8 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-63acf04 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-566a324 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-8dbddd4 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for image-box, class: .elementor-element-9df7e77 *//* Base setup for the container */
.hover-grayscale-darken-title {
    position: relative;               /* Important: allows absolute positioning of title & overlay */
    overflow: hidden;                 /* Prevents overflow issues */
    transition: all 0.4s ease;        /* Smooth all changes */
}

/* The image itself */
.hover-grayscale-darken-title .elementor-image-box-img img,
.hover-grayscale-darken-title img {
    display: block;
    width: 100%;
    height: auto;
    transition: filter 0.5s ease;     /* Smooth grayscale transition */
    filter: grayscale(0%);            /* Normal state: full color */
}

/* Black overlay (15% opacity = rgba(0,0,0,0.15)) – hidden by default */
.hover-grayscale-darken-title::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);  /* 15% black fill for darkening */
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;             /* Doesn't block clicks/hover */
    z-index: 1;                       /* Above image, below title */
}

/* Title – hidden by default */
.hover-grayscale-darken-title .elementor-image-box-title,
.hover-grayscale-darken-title .elementor-image-box-content .elementor-heading-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;                       /* Above overlay */
    opacity: 0;
    transition: opacity 0.5s ease;
    margin: 0;
    text-align: center;
    width: 90%;                       /* Prevents edge clipping on long titles */
    pointer-events: none;             /* Optional: title doesn't interfere with links */
}

/* On hover: apply effects */
.hover-grayscale-darken-title:hover .elementor-image-box-img img,
.hover-grayscale-darken-title:hover img {
    filter: grayscale(100%);          /* Full grayscale */
}

.hover-grayscale-darken-title:hover::after {
    opacity: 1;                       /* Show 15% black overlay → darkens image */
}

.hover-grayscale-darken-title:hover .elementor-image-box-title,
.hover-grayscale-darken-title:hover .elementor-image-box-content .elementor-heading-title {
    opacity: 1;                       /* Reveal centered title */
}/* End custom CSS */
/* Start custom CSS for nested-tabs, class: .elementor-element-c19dd94 *//* Force zero border radius on Elementor Tabs - All states */
.e-n-tab-title,
.e-n-tab-title[aria-selected="true"],
.e-n-tab-title[aria-selected="false"],
.e-n-tab-title:hover,
.e-n-tab-title:focus,
.e-n-tab-title:active {
    border-radius: 0 !important;
}

/* More specific targeting for hover state */
.e-n-tab-title[aria-selected="false"]:hover {
    border-radius: 0 !important;
}

/* Target the inner wrapper as well (sometimes radius is applied here) */
.e-n-tab-title > span,
.e-n-tab-title .e-n-tab-title-text {
    border-radius: 0 !important;
}

/* Extra safety - in case Elementor uses box-shadow or other elements */
.e-n-tabs .e-n-tab-title-wrapper {
    border-radius: 0 !important;
}/* End custom CSS */