.elementor-854 .elementor-element.elementor-element-ccdea64{--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;--padding-top:50px;--padding-bottom:50px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-3e4c4cc{--display:flex;--justify-content:center;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family );font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );}.elementor-854 .elementor-element.elementor-element-5787272{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family );font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-854 .elementor-element.elementor-element-7afa712{font-family:"Outfit";font-size:20px;font-weight:400;color:#010F31;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family );font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );text-transform:var( --e-global-typography-primary-text-transform );color:var( --e-global-color-primary );}.elementor-854 .elementor-element.elementor-element-e9e2f7b .elementor-heading-title{font-family:"Poppins";font-size:53px;font-weight:700;text-transform:capitalize;color:#001F6C;}.elementor-854 .elementor-element.elementor-element-87e4f0f{--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:flex-start;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-6fa9bfb{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-2551c71{--e-rating-icon-font-size:20px;--e-rating-gap:6px;--e-rating-icon-marked-color:#001E67;}.elementor-854 .elementor-element.elementor-element-cfab60d{--display:flex;--flex-direction:row-reverse;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap-reverse;--justify-content:flex-end;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-242b904 .elementor-heading-title{font-family:"Outfit";font-size:20px;font-weight:100;text-transform:capitalize;color:#7597EB;}.elementor-854 .elementor-element.elementor-element-6aa473b .elementor-heading-title{font-family:"Outfit";font-size:20px;font-weight:100;text-transform:capitalize;color:#7597EB;}.elementor-854 .elementor-element.elementor-element-59b3201{--display:flex;--gap:4px 020px;--row-gap:4px;--column-gap:020px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-88a4353{width:var( --container-widget-width, 92% );max-width:92%;--container-widget-width:92%;--container-widget-flex-grow:0;font-family:"Outfit";font-size:20px;font-weight:400;text-transform:capitalize;line-height:24px;color:#010F31;}.elementor-854 .elementor-element.elementor-element-0119292 .elementor-heading-title{font-family:"Outfit";font-size:20px;font-weight:400;text-transform:capitalize;color:#010F31;}.elementor-854 .elementor-element.elementor-element-ad98268{--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;--align-items:center;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-3557cd4 .elementor-heading-title{font-family:"Outfit";font-size:20px;font-weight:400;text-transform:capitalize;color:#010F31;}.elementor-854 .elementor-element.elementor-element-9b1bc4d{font-family:"Outfit";font-size:20px;font-weight:400;color:#010F31;}.elementor-854 .elementor-element.elementor-element-dd098a1{--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;}.elementor-854 .elementor-element.elementor-element-4bb31ec{--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;--padding-top:100px;--padding-bottom:100px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-4bb31ec:not(.elementor-motion-effects-element-type-background), .elementor-854 .elementor-element.elementor-element-4bb31ec > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F5F5F5;}.elementor-854 .elementor-element.elementor-element-9a3d746{--display:flex;--justify-content:space-between;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-eaace3a{--display:flex;}.elementor-854 .elementor-element.elementor-element-aa60d5f img{height:50px;}.elementor-854 .elementor-element.elementor-element-b58211e{text-align:center;}.elementor-854 .elementor-element.elementor-element-b58211e .elementor-heading-title{font-family:"Poppins";font-size:24px;font-weight:600;text-transform:capitalize;color:#001E67;}.elementor-854 .elementor-element.elementor-element-cc86a9d{text-align:center;font-family:"Poppins";font-size:18px;font-weight:400;color:#001E67;}.elementor-854 .elementor-element.elementor-element-2bb3ffc{--display:flex;--justify-content:space-between;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-03c3cfd{--display:flex;}.elementor-854 .elementor-element.elementor-element-077282a img{height:50px;}.elementor-854 .elementor-element.elementor-element-f809e9e{text-align:center;}.elementor-854 .elementor-element.elementor-element-f809e9e .elementor-heading-title{font-family:"Poppins";font-size:24px;font-weight:600;text-transform:capitalize;color:#001E67;}.elementor-854 .elementor-element.elementor-element-9f428ee{text-align:center;font-family:"Poppins";font-size:18px;font-weight:400;color:#001E67;}.elementor-854 .elementor-element.elementor-element-b003350{--display:flex;--justify-content:space-between;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-501dda4{--display:flex;}.elementor-854 .elementor-element.elementor-element-f69761d img{height:50px;}.elementor-854 .elementor-element.elementor-element-e992d97{text-align:center;}.elementor-854 .elementor-element.elementor-element-e992d97 .elementor-heading-title{font-family:"Poppins";font-size:24px;font-weight:600;text-transform:capitalize;color:#001E67;}.elementor-854 .elementor-element.elementor-element-dcbf19d{text-align:center;font-family:"Poppins";font-size:18px;font-weight:400;color:#001E67;}.elementor-854 .elementor-element.elementor-element-bf355f2{--display:flex;--justify-content:space-between;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-a0b3b50{--display:flex;}.elementor-854 .elementor-element.elementor-element-3604ae5 img{height:50px;}.elementor-854 .elementor-element.elementor-element-7ee19fd{text-align:center;}.elementor-854 .elementor-element.elementor-element-7ee19fd .elementor-heading-title{font-family:"Poppins";font-size:24px;font-weight:600;text-transform:capitalize;color:#001E67;}.elementor-854 .elementor-element.elementor-element-21de298{--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;--padding-top:60px;--padding-bottom:30px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-7ed876e{padding:0px 0px 10px 0px;text-align:center;}.elementor-854 .elementor-element.elementor-element-7ed876e .elementor-heading-title{font-family:"Outfit";font-size:53px;font-weight:700;text-transform:capitalize;color:#001F6C;}.elementor-854 .elementor-element.elementor-element-26a4be6{padding:0px 0px 40px 0px;text-align:center;}.elementor-854 .elementor-element.elementor-element-26a4be6 .elementor-heading-title{font-family:"Outfit";font-size:20px;font-weight:400;color:#010F31;}.elementor-854 .elementor-element.elementor-element-b1564a2{--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;}.elementor-854 .elementor-element.elementor-element-a4f0abb{--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:space-between;border-style:solid;--border-style:solid;border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:#0039AD;--border-color:#0039AD;--border-radius:40px 40px 40px 40px;--padding-top:30px;--padding-bottom:30px;--padding-left:20px;--padding-right:20px;}.elementor-854 .elementor-element.elementor-element-a4f0abb:not(.elementor-motion-effects-element-type-background), .elementor-854 .elementor-element.elementor-element-a4f0abb > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F6F6F6;}.elementor-854 .elementor-element.elementor-element-fa97850{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-40fc8f4{text-align:center;}.elementor-854 .elementor-element.elementor-element-40fc8f4 .elementor-heading-title{font-family:"Poppins";font-size:20px;font-weight:500;color:#010F31;}.elementor-854 .elementor-element.elementor-element-5519099{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-1db2500{text-align:center;font-family:"Poppins";font-size:16px;font-weight:400;color:#010F31;}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family );font-weight:var( --e-global-typography-accent-font-weight );}.elementor-854 .elementor-element.elementor-element-a85dc0b .elementor-button{background-color:transparent;font-family:"Outfit";font-size:20px;font-weight:600;background-image:linear-gradient(90deg, #7597EB 0%, #001E67 100%);border-style:solid;border-width:1px 1px 1px 1px;border-color:#AAC2FF;border-radius:70px 70px 70px 70px;}.elementor-854 .elementor-element.elementor-element-cad6d37{--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:space-between;border-style:solid;--border-style:solid;border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:#0039AD;--border-color:#0039AD;--border-radius:40px 40px 40px 40px;--padding-top:30px;--padding-bottom:30px;--padding-left:20px;--padding-right:20px;}.elementor-854 .elementor-element.elementor-element-cad6d37:not(.elementor-motion-effects-element-type-background), .elementor-854 .elementor-element.elementor-element-cad6d37 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F6F6F6;}.elementor-854 .elementor-element.elementor-element-443c29b{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-85c10e7{text-align:center;}.elementor-854 .elementor-element.elementor-element-85c10e7 .elementor-heading-title{font-family:"Poppins";font-size:20px;font-weight:500;color:#010F31;}.elementor-854 .elementor-element.elementor-element-a85a0fd{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-8d35a6d{text-align:center;font-family:"Poppins";font-size:16px;font-weight:400;color:#010F31;}.elementor-854 .elementor-element.elementor-element-600d28f .elementor-button{background-color:transparent;font-family:"Outfit";font-size:20px;font-weight:600;background-image:linear-gradient(90deg, #7597EB 0%, #001E67 100%);border-style:solid;border-width:1px 1px 1px 1px;border-color:#AAC2FF;border-radius:70px 70px 70px 70px;}.elementor-854 .elementor-element.elementor-element-418715a{--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:space-between;border-style:solid;--border-style:solid;border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:#0039AD;--border-color:#0039AD;--border-radius:40px 40px 40px 40px;--padding-top:30px;--padding-bottom:30px;--padding-left:20px;--padding-right:20px;}.elementor-854 .elementor-element.elementor-element-418715a:not(.elementor-motion-effects-element-type-background), .elementor-854 .elementor-element.elementor-element-418715a > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F6F6F6;}.elementor-854 .elementor-element.elementor-element-1176bc5{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-5eab717{text-align:center;}.elementor-854 .elementor-element.elementor-element-5eab717 .elementor-heading-title{font-family:"Poppins";font-size:20px;font-weight:500;color:#010F31;}.elementor-854 .elementor-element.elementor-element-703a13c{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-91ca490{text-align:center;font-family:"Poppins";font-size:16px;font-weight:400;color:#010F31;}.elementor-854 .elementor-element.elementor-element-3556fc1 .elementor-button{background-color:transparent;font-family:"Outfit";font-size:20px;font-weight:600;background-image:linear-gradient(90deg, #7597EB 0%, #001E67 100%);border-style:solid;border-width:1px 1px 1px 1px;border-color:#AAC2FF;border-radius:70px 70px 70px 70px;}.elementor-854 .elementor-element.elementor-element-ea2eb66{--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;}.elementor-854 .elementor-element.elementor-element-b0a41df{--display:flex;}.elementor-854 .elementor-element.elementor-element-2db58d2{--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;--justify-content:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-6f93c3d{--display:flex;--justify-content:center;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-8d56c32{--display:flex;--flex-direction:row-reverse;--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-reverse;--justify-content:flex-start;--align-items:center;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-1e61680 .elementor-button{background-color:#FAFAFA00;font-family:"Poppins";font-size:20px;font-weight:600;fill:#001E67;color:#001E67;border-style:solid;border-width:2px 2px 2px 2px;border-color:#AAC2FF;border-radius:70px 70px 70px 70px;padding:12px 17px 12px 17px;}.elementor-854 .elementor-element.elementor-element-1e61680 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-854 .elementor-element.elementor-element-1e61680 .elementor-button .elementor-button-content-wrapper{gap:6px;}.elementor-854 .elementor-element.elementor-element-f9d7d71{text-align:end;}.elementor-854 .elementor-element.elementor-element-f9d7d71 img{width:100%;}@media(min-width:768px){.elementor-854 .elementor-element.elementor-element-3e4c4cc{--width:45%;}.elementor-854 .elementor-element.elementor-element-5787272{--width:55%;}.elementor-854 .elementor-element.elementor-element-6fa9bfb{--width:30%;}.elementor-854 .elementor-element.elementor-element-cfab60d{--width:60%;}.elementor-854 .elementor-element.elementor-element-b0a41df{--width:10%;}.elementor-854 .elementor-element.elementor-element-6f93c3d{--width:20%;}}@media(max-width:1024px) and (min-width:768px){.elementor-854 .elementor-element.elementor-element-6fa9bfb{--width:40%;}}@media(max-width:1024px){.elementor-widget-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}.elementor-854 .elementor-element.elementor-element-e9e2f7b .elementor-heading-title{font-size:35px;}.elementor-854 .elementor-element.elementor-element-87e4f0f{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-854 .elementor-element.elementor-element-6fa9bfb{--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-854 .elementor-element.elementor-element-88a4353{font-size:16px;}.elementor-854 .elementor-element.elementor-element-0119292 .elementor-heading-title{font-size:16px;}.elementor-854 .elementor-element.elementor-element-ad98268{--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;--align-items:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-854 .elementor-element.elementor-element-3557cd4 .elementor-heading-title{font-size:16px;}.elementor-854 .elementor-element.elementor-element-9b1bc4d{font-size:16px;}.elementor-854 .elementor-element.elementor-element-b58211e .elementor-heading-title{font-size:17px;}.elementor-854 .elementor-element.elementor-element-cc86a9d{font-size:16px;}.elementor-854 .elementor-element.elementor-element-f809e9e .elementor-heading-title{font-size:17px;}.elementor-854 .elementor-element.elementor-element-9f428ee{font-size:16px;}.elementor-854 .elementor-element.elementor-element-e992d97 .elementor-heading-title{font-size:17px;}.elementor-854 .elementor-element.elementor-element-dcbf19d{font-size:16px;}.elementor-854 .elementor-element.elementor-element-7ee19fd .elementor-heading-title{font-size:17px;}.elementor-854 .elementor-element.elementor-element-21de298{--padding-top:50px;--padding-bottom:16px;--padding-left:16px;--padding-right:16px;}.elementor-854 .elementor-element.elementor-element-7ed876e .elementor-heading-title{font-size:40px;}.elementor-854 .elementor-element.elementor-element-b1564a2{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-40fc8f4 .elementor-heading-title{font-size:18px;}.elementor-854 .elementor-element.elementor-element-1db2500{font-size:16px;}.elementor-854 .elementor-element.elementor-element-85c10e7 .elementor-heading-title{font-size:18px;}.elementor-854 .elementor-element.elementor-element-8d35a6d{font-size:16px;}.elementor-854 .elementor-element.elementor-element-5eab717 .elementor-heading-title{font-size:18px;}.elementor-854 .elementor-element.elementor-element-91ca490{font-size:16px;}}@media(max-width:767px){.elementor-854 .elementor-element.elementor-element-ccdea64{--padding-top:50px;--padding-bottom:50px;--padding-left:16px;--padding-right:16px;}.elementor-widget-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}.elementor-854 .elementor-element.elementor-element-e9e2f7b .elementor-heading-title{font-size:24px;}.elementor-854 .elementor-element.elementor-element-87e4f0f{--gap:20px 20px;--row-gap:20px;--column-gap:20px;}.elementor-854 .elementor-element.elementor-element-6fa9bfb{--width:40%;}.elementor-854 .elementor-element.elementor-element-2551c71{--e-rating-justify-content:center;}.elementor-854 .elementor-element.elementor-element-cfab60d{--width:52%;}.elementor-854 .elementor-element.elementor-element-59b3201{--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-854 .elementor-element.elementor-element-0119292{text-align:center;}.elementor-854 .elementor-element.elementor-element-4bb31ec{--padding-top:30px;--padding-bottom:30px;--padding-left:0px;--padding-right:0px;}.elementor-854 .elementor-element.elementor-element-7ed876e{text-align:center;}.elementor-854 .elementor-element.elementor-element-7ed876e .elementor-heading-title{font-size:25px;}.elementor-854 .elementor-element.elementor-element-26a4be6{width:100%;max-width:100%;text-align:center;}.elementor-854 .elementor-element.elementor-element-26a4be6 .elementor-heading-title{font-size:16px;}.elementor-854 .elementor-element.elementor-element-8d56c32{--justify-content:center;}}/* Start custom CSS for image-carousel, class: .elementor-element-c0d4bee */<script>
document.addEventListener("DOMContentLoaded", function() {
    
    // 1. Find all Image Carousels with the class 'magic-product-viewer'
    const sources = document.querySelectorAll('.magic-product-viewer');

    sources.forEach(function(carouselWidget) {
        
        // 2. Extract Images from the Carousel
        // Elementor normally puts images inside 'swiper-slide' or just img tags
        let images = carouselWidget.querySelectorAll('img');
        let imgSrcList = [];
        
        images.forEach(img => {
            // Try to get the full resolution URL if available (data-src), otherwise src
            let src = img.getAttribute('src');
            // Avoid duplicates
            if(src && !imgSrcList.includes(src)) {
                imgSrcList.push(src);
            }
        });

        if (imgSrcList.length === 0) return; // Stop if no images found

        // 3. Build the Product Gallery HTML Structure
        const galleryID = 'gallery-' + Math.floor(Math.random() * 10000);
        
        let thumbnailsHTML = '';
        imgSrcList.forEach((src, index) => {
            let activeClass = (index === 0) ? 'active' : '';
            thumbnailsHTML += `<img class="mpg-thumb ${activeClass}" src="${src}" onclick="mpgChangeImage('${galleryID}', this)">`;
        });

        const galleryHTML = `
            <div class="mpg-wrapper" id="${galleryID}">
                <div class="mpg-main-container" onmousemove="mpgMoveLens(event, '${galleryID}')" onmouseenter="mpgShowLens('${galleryID}')" onmouseleave="mpgHideLens('${galleryID}')">
                    <div class="mpg-lens"></div>
                    <img class="mpg-main-image" src="${imgSrcList[0]}">
                </div>
                <div class="mpg-thumbnails-container">
                    ${thumbnailsHTML}
                </div>
            </div>
        `;

        // 4. Inject the new Gallery BEFORE the carousel, then Hide the carousel
        const wrapperDiv = document.createElement('div');
        wrapperDiv.innerHTML = galleryHTML;
        carouselWidget.parentNode.insertBefore(wrapperDiv, carouselWidget);
        carouselWidget.style.display = 'none'; // Hide the original Elementor widget
    });
});

// --- GLOBAL FUNCTIONS FOR THE GALLERY ---

function mpgChangeImage(galleryID, thumb) {
    const wrapper = document.getElementById(galleryID);
    const mainImg = wrapper.querySelector('.mpg-main-image');
    const allThumbs = wrapper.querySelectorAll('.mpg-thumb');

    // Swap Source
    mainImg.src = thumb.src;

    // Handle Active State
    allThumbs.forEach(t => t.classList.remove('active'));
    thumb.classList.add('active');
}

function mpgShowLens(galleryID) {
    if (window.innerWidth <= 768) return; // Disable on mobile
    const wrapper = document.getElementById(galleryID);
    const lens = wrapper.querySelector('.mpg-lens');
    const img = wrapper.querySelector('.mpg-main-image');
    
    lens.style.display = "block";
    lens.style.backgroundImage = "url('" + img.src + "')";
    
    // CALCULATE RATIO (Standard Woo Ratio)
    // We want the background inside the lens to be 2x or 3x the size of the main image
    const zoomRatio = 2.5; 
    
    lens.style.backgroundSize = (img.width * zoomRatio) + "px " + (img.height * zoomRatio) + "px";
    
    // Store ratio for movement calculation
    wrapper.dataset.zoom = zoomRatio;
}

function mpgHideLens(galleryID) {
    const wrapper = document.getElementById(galleryID);
    wrapper.querySelector('.mpg-lens').style.display = "none";
}

function mpgMoveLens(e, galleryID) {
    if (window.innerWidth <= 768) return;
    
    e.preventDefault();
    const wrapper = document.getElementById(galleryID);
    const lens = wrapper.querySelector('.mpg-lens');
    const img = wrapper.querySelector('.mpg-main-image');
    const zoomRatio = parseFloat(wrapper.dataset.zoom) || 2.5;

    // Get Cursor Position
    const pos = getCursorPos(e, img);
    let x = pos.x;
    let y = pos.y;

    // Center the lens on the cursor
    // Lens size is defined in CSS (150px)
    const lensSize = 150; 
    const halfLens = lensSize / 2;

    // Boundaries
    if (x > img.width - halfLens) { x = img.width - halfLens; }
    if (x < halfLens) { x = halfLens; }
    if (y > img.height - halfLens) { y = img.height - halfLens; }
    if (y < halfLens) { y = halfLens; }

    // Move Lens
    lens.style.left = (x - halfLens) + "px";
    lens.style.top = (y - halfLens) + "px";

    // Move Background Image (The Zoom Effect)
    lens.style.backgroundPosition = "-" + ((x * zoomRatio) - halfLens) + "px -" + ((y * zoomRatio) - halfLens) + "px";
}

function getCursorPos(e, img) {
    let a, x = 0, y = 0;
    e = e || window.event;
    a = img.getBoundingClientRect();
    x = e.pageX - a.left;
    y = e.pageY - a.top;
    x = x - window.pageXOffset;
    y = y - window.pageYOffset;
    return {x : x, y : y};
}
</script>

<style>
/* WRAPPER - Limit Desktop Width */
.mpg-wrapper {
    width: 100%;
    /* Fixes "Main image too large" - Adjust this value if needed */
    max-width: 550px; 
    margin: 0 auto; /* Centers the whole player */
    position: relative;
}

/* MAIN IMAGE CONTAINER */
.mpg-main-container {
    position: relative;
    width: 100%;
    overflow: hidden; /* Keeps lens inside */
    border: 1px solid #eee;
    margin-bottom: 15px;
    cursor: crosshair; /* Adds the + cursor */
}

.mpg-main-image {
    width: 100%;
    height: auto;
    display: block;
}

/* THE LENS (WooCommerce Style) */
.mpg-lens {
    position: absolute;
    display: none; /* Hidden by default */
    border: 1px solid #888;
    /* Dimensions of the square glass */
    width: 150px;
    height: 150px;
    
    background-color: #fff; /* Fallback */
    background-repeat: no-repeat;
    
    /* This creates the "Glass" look */
    box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2), inset 0 0 10px rgba(0,0,0,0.1);
    
    pointer-events: none; /* Allows clicking through */
    z-index: 10;
}

/* THUMBNAILS CONTAINER */
.mpg-thumbnails-container {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    /* Fixes "Thumbnails not centered" */
    justify-content: center; 
}

/* THUMBNAIL IMAGES */
.mpg-thumb {
    width: 80px; /* Adjust thumbnail size */
    height: 80px;
    object-fit: cover;
    border: 2px solid transparent;
    cursor: pointer;
    opacity: 0.7;
    transition: 0.3s;
}

.mpg-thumb:hover {
    opacity: 1;
}

.mpg-thumb.active {
    opacity: 1;
    border-color: #000; /* Black border for active item */
}

/* MOBILE FIXES */
@media (max-width: 768px) {
    .mpg-wrapper {
        max-width: 100%;
    }
    .mpg-lens {
        display: none !important; /* Force hide lens on touch */
    }
}
</style>/* End custom CSS */