.elementor-55609 .elementor-element.elementor-element-1274e707:not(.elementor-motion-effects-element-type-background), .elementor-55609 .elementor-element.elementor-element-1274e707 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-0d7d8d4 );}.elementor-55609 .elementor-element.elementor-element-1274e707 > .elementor-container{max-width:1525px;}.elementor-55609 .elementor-element.elementor-element-1274e707{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:0px 25px 0px 25px;}.elementor-55609 .elementor-element.elementor-element-1274e707 > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-global.elementor-wc-products ul.products li.product .woocommerce-loop-product__title{color:var( --e-global-color-primary );}.elementor-widget-global.elementor-wc-products ul.products li.product .woocommerce-loop-category__title{color:var( --e-global-color-primary );}.elementor-widget-global.elementor-wc-products ul.products li.product .woocommerce-loop-product__title, .elementor-widget-global.elementor-wc-products ul.products li.product .woocommerce-loop-category__title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-global.elementor-wc-products .products > h2{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-global.elementor-wc-products ul.products li.product .price{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-global.elementor-wc-products ul.products li.product .price ins{color:var( --e-global-color-primary );}.elementor-widget-global.elementor-wc-products ul.products li.product .price ins .amount{color:var( --e-global-color-primary );}.elementor-widget-global.elementor-wc-products ul.products li.product .price del{color:var( --e-global-color-primary );}.elementor-widget-global.elementor-wc-products ul.products li.product .price del .amount{color:var( --e-global-color-primary );}.elementor-widget-global.elementor-wc-products ul.products li.product .price del {font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-global.elementor-wc-products ul.products li.product .button{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-global.elementor-wc-products .added_to_cart{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-55609 .elementor-element.elementor-global-57008.elementor-wc-products ul.products li.product{--button-align-display:flex;--button-align-direction:column;--button-align-justify:space-between;}.elementor-55609 .elementor-element.elementor-global-57008{background-color:var( --e-global-color-0d7d8d4 );border-style:solid;border-width:0px 0px 0px 0px;}.elementor-55609 .elementor-element.elementor-global-57008.elementor-wc-products  ul.products{grid-column-gap:10px;grid-row-gap:30px;}.elementor-55609 .elementor-element.elementor-global-57008.elementor-wc-products ul.products li.product .button{color:var( --e-global-color-0d7d8d4 );background-color:var( --e-global-color-168aa01 );font-family:"Roboto", Sans-serif;font-size:10px;font-weight:500;border-radius:5px 5px 5px 5px;}.elementor-55609 .elementor-element.elementor-global-57008.elementor-wc-products .added_to_cart{font-family:"Roboto", Sans-serif;font-weight:500;}.elementor-55609 .elementor-element.elementor-global-57008.elementor-wc-products ul.products li.product span.onsale{display:block;color:var( --e-global-color-primary );background-color:var( --e-global-color-e0041f3 );}.elementor-55609 .elementor-element.elementor-element-53f060ea:not(.elementor-motion-effects-element-type-background) > .elementor-widget-wrap, .elementor-55609 .elementor-element.elementor-element-53f060ea > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#ffffff;}.elementor-bc-flex-widget .elementor-55609 .elementor-element.elementor-element-53f060ea.elementor-column .elementor-widget-wrap{align-items:flex-start;}.elementor-55609 .elementor-element.elementor-element-53f060ea.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:flex-start;align-items:flex-start;}.elementor-55609 .elementor-element.elementor-element-53f060ea > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){--kit-widget-spacing:40px;}.elementor-55609 .elementor-element.elementor-element-53f060ea > .elementor-element-populated{border-style:solid;border-width:1px 0px 01px 0px;border-color:var( --e-global-color-0d7d8d4 );box-shadow:0px 0px 50px -10px rgba(0,0,0,0.17);transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin:10px 10px 10px 10px;--e-column-margin-right:10px;--e-column-margin-left:10px;padding:20px 30px 10px 30px;}.elementor-55609 .elementor-element.elementor-element-53f060ea > .elementor-element-populated, .elementor-55609 .elementor-element.elementor-element-53f060ea > .elementor-element-populated > .elementor-background-overlay, .elementor-55609 .elementor-element.elementor-element-53f060ea > .elementor-background-slideshow{border-radius:5px 5px 5px 5px;}.elementor-55609 .elementor-element.elementor-element-53f060ea > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-55609 .elementor-element.elementor-element-26bbca1{background-color:#F2F2F2;padding:10px 5px 1px 15px;border-radius:5px 5px 5px 5px;}.elementor-55609 .elementor-element.elementor-element-26bbca1 .woocommerce-breadcrumb{font-size:10px;}.elementor-widget-woocommerce-product-title .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-55609 .elementor-element.elementor-element-62fc8389{margin:5px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;text-align:left;}.elementor-55609 .elementor-element.elementor-element-62fc8389 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-weight:400;}.woocommerce .elementor-widget-woocommerce-product-price .price{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-55609 .elementor-element.elementor-element-5eeacabe{margin:-10px 0px calc(var(--kit-widget-spacing, 0px) + -30px) 0px;padding:0px 0px 0px 0px;border-style:none;border-radius:0px 0px 0px 0px;text-align:left;}.woocommerce .elementor-55609 .elementor-element.elementor-element-5eeacabe .price{color:var( --e-global-color-primary );font-family:"Montserrat", Sans-serif;font-size:30px;font-weight:600;}.woocommerce .elementor-55609 .elementor-element.elementor-element-5eeacabe .price ins{color:#000000;font-family:"Montserrat", Sans-serif;font-size:32px;font-weight:700;}body:not(.rtl) .elementor-55609 .elementor-element.elementor-element-5eeacabe:not(.elementor-product-price-block-yes) del{margin-right:0px;}body.rtl .elementor-55609 .elementor-element.elementor-element-5eeacabe:not(.elementor-product-price-block-yes) del{margin-left:0px;}.elementor-55609 .elementor-element.elementor-element-5eeacabe.elementor-product-price-block-yes del{margin-bottom:0px;}.elementor-55609 .elementor-element.elementor-element-6378c859{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + -22px) 0px;}.elementor-55609 .elementor-element.elementor-element-5fe7d8b7{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + -12px) 0px;text-align:left;}.elementor-55609 .elementor-element.elementor-element-5fe7d8b7 img{border-radius:8px 8px 8px 8px;}.elementor-widget-global .added_to_cart{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-55609 .elementor-element.elementor-global-57014{background-color:var( --e-global-color-4d4d29c );margin:-10px 0px calc(var(--kit-widget-spacing, 0px) + 2px) 0px;padding:0px 5px 2px 5px;border-radius:5px 5px 5px 5px;}.elementor-55609 .elementor-element.elementor-global-57014:hover{background-color:var( --e-global-color-4d4d29c );}.elementor-55609 .elementor-element.elementor-global-57014 .cart button, .elementor-55609 .elementor-element.elementor-global-57014 .cart .button{font-size:22px;border-style:solid;border-radius:5px 5px 5px 5px;padding:20px 20px 20px 20px;background-color:var( --e-global-color-168aa01 );border-color:#000000;transition:all 0s;}.elementor-55609 .elementor-element.elementor-global-57014 .cart button:hover, .elementor-55609 .elementor-element.elementor-global-57014 .cart .button:hover{color:var( --e-global-color-0d7d8d4 );background-color:var( --e-global-color-81e7888 );border-color:#000000;}.woocommerce .elementor-55609 .elementor-element.elementor-global-57014 form.cart table.variations tr th, .woocommerce .elementor-55609 .elementor-element.elementor-global-57014 form.cart table.variations tr td{padding-top:calc( 2px/2 );padding-bottom:calc( 2px/2 );}.woocommerce .elementor-55609 .elementor-element.elementor-global-57014 form.cart table.variations label{font-size:16px;text-decoration:underline;line-height:1px;}.woocommerce .elementor-55609 .elementor-element.elementor-global-57014 form.cart table.variations td.value select, .woocommerce .elementor-55609 .elementor-element.elementor-global-57014 form.cart table.variations td.value:before{border-radius:0px;}.elementor-55609 .elementor-element.elementor-element-6d0cf0a7:not(.elementor-motion-effects-element-type-background), .elementor-55609 .elementor-element.elementor-element-6d0cf0a7 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F5ECE3;}.elementor-55609 .elementor-element.elementor-element-6d0cf0a7{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin-top:0px;margin-bottom:0px;padding:40px 10px 20px 10px;}.elementor-55609 .elementor-element.elementor-element-6d0cf0a7 > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-55609 .elementor-element.elementor-element-1f87c6c1 > .elementor-element-populated{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;}.elementor-55609 .elementor-element.elementor-element-1f87c6c1 > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-55609 .elementor-element.elementor-element-2cdd8983.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-55609 .elementor-element.elementor-element-2cdd8983 .bdt-image-mask>*{-webkit-mask-position:center center;mask-position:center center;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;}.elementor-55609 .elementor-element.elementor-element-2cdd8983 .bdt-ep-advanced-image-gallery-thumbnail img{height:355px;}.elementor-55609 .elementor-element.elementor-element-2cdd8983 .bdt-ep-advanced-image-gallery.bdt-grid{margin-left:-5px;}.elementor-55609 .elementor-element.elementor-element-2cdd8983 .bdt-ep-advanced-image-gallery.bdt-grid > *{padding-left:5px;}.elementor-55609 .elementor-element.elementor-element-2cdd8983 .bdt-navigation-prev i,
					.elementor-55609 .elementor-element.elementor-element-2cdd8983 .bdt-navigation-next i{font-size:25px;}.elementor-55609 .elementor-element.elementor-element-2cdd8983 .bdt-navigation-prev{left:-60px;}.elementor-55609 .elementor-element.elementor-element-2cdd8983 .bdt-navigation-next{right:-60px;}.elementor-55609 .elementor-element.elementor-element-5360dad7 .bdt-ep-advanced-image-gallery-thumbnail img{height:265px;}.elementor-55609 .elementor-element.elementor-element-5360dad7 .bdt-ep-advanced-image-gallery.bdt-grid{margin-left:-0px;margin-top:-0px;}.elementor-55609 .elementor-element.elementor-element-5360dad7 .bdt-ep-advanced-image-gallery.bdt-grid > *{padding-left:0px;margin-top:0px;}.elementor-55609 .elementor-element.elementor-element-5360dad7 .bdt-navigation-prev i,
					.elementor-55609 .elementor-element.elementor-element-5360dad7 .bdt-navigation-next i{font-size:25px;}.elementor-55609 .elementor-element.elementor-element-5360dad7 .bdt-navigation-prev{left:-60px;}.elementor-55609 .elementor-element.elementor-element-5360dad7 .bdt-navigation-next{right:-60px;}.elementor-55609 .elementor-element.elementor-element-46062f78:not(.elementor-motion-effects-element-type-background), .elementor-55609 .elementor-element.elementor-element-46062f78 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-0d7d8d4 );}.elementor-55609 .elementor-element.elementor-element-46062f78{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:0px 0px 0px 0px;}.elementor-55609 .elementor-element.elementor-element-46062f78 > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-widget-woocommerce-product-content{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-55609 .elementor-element.elementor-element-11d30266:not(.elementor-motion-effects-element-type-background), .elementor-55609 .elementor-element.elementor-element-11d30266 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-11d30266{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;}.elementor-55609 .elementor-element.elementor-element-11d30266 > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-widget-woocommerce-product-upsell.elementor-wc-products ul.products li.product .woocommerce-loop-product__title{color:var( --e-global-color-primary );}.elementor-widget-woocommerce-product-upsell.elementor-wc-products ul.products li.product .woocommerce-loop-category__title{color:var( --e-global-color-primary );}.elementor-widget-woocommerce-product-upsell.elementor-wc-products ul.products li.product .woocommerce-loop-product__title, .elementor-widget-woocommerce-product-upsell.elementor-wc-products ul.products li.product .woocommerce-loop-category__title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-woocommerce-product-upsell.elementor-wc-products .products > h2{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-woocommerce-product-upsell.elementor-wc-products ul.products li.product .price{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-woocommerce-product-upsell.elementor-wc-products ul.products li.product .price ins{color:var( --e-global-color-primary );}.elementor-widget-woocommerce-product-upsell.elementor-wc-products ul.products li.product .price ins .amount{color:var( --e-global-color-primary );}.elementor-widget-woocommerce-product-upsell.elementor-wc-products ul.products li.product .price del{color:var( --e-global-color-primary );}.elementor-widget-woocommerce-product-upsell.elementor-wc-products ul.products li.product .price del .amount{color:var( --e-global-color-primary );}.elementor-widget-woocommerce-product-upsell.elementor-wc-products ul.products li.product .price del {font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-woocommerce-product-upsell.elementor-wc-products ul.products li.product .button{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-woocommerce-product-upsell.elementor-wc-products .added_to_cart{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-55609 .elementor-element.elementor-element-b3287a6.elementor-wc-products  ul.products{grid-column-gap:20px;grid-row-gap:40px;}.elementor-55609 .elementor-element.elementor-element-b3287a6.elementor-wc-products ul.products li.product span.onsale{display:block;}.elementor-55609 .elementor-element.elementor-element-215fd17b{--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;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:25px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-55609 .elementor-element.elementor-element-215fd17b:not(.elementor-motion-effects-element-type-background), .elementor-55609 .elementor-element.elementor-element-215fd17b > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#10253E;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-55609 .elementor-element.elementor-element-536a8cf6 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:26px;font-weight:600;text-decoration:underline;-webkit-text-stroke-color:#000;stroke:#000;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-3469a12a:not(.elementor-motion-effects-element-type-background), .elementor-55609 .elementor-element.elementor-element-3469a12a > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#10253E;}.elementor-55609 .elementor-element.elementor-element-3469a12a{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:15px 15px 25px 15px;}.elementor-55609 .elementor-element.elementor-element-3469a12a > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-55609 .elementor-element.elementor-element-5b574192 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-cc33b32 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-27916e18 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-7a34ea17 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-7d9c1dda .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-66357ec1 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-dbd6aac .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-6526bc53 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-3ca33856 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:14px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-3778840e .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:14px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-31cbf9e2 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:15px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-47604a96 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:14px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-45ef434e .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:14px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-57453d59 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:14px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-6fff1a43 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:14px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-21cf93ea .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:14px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-517517a9 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-43d7ea22 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-428366b2 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-4a39b03 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-6c8fa67d .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-39a7f4a5 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-2eb9d782 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-85382de .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-438ba0a5 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-b211396 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-466a295b .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-fa362e3 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-74eefe2c .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-7a656125 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-6400981b .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-59c3cb83 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-4b2b5d34 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:14px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-1a1840fc .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:14px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-bbb8c56 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:14px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-3e59cee4 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:14px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-73b729b6 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:14px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-530831ef .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:14px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-e5dc595 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:14px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-20ed04b5 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:14px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-4d805287 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-744159d1 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-7d8e1097 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-2c88a904 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-1f06b679 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-73a34a94 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-725db033 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-0d7d8d4 );}.elementor-55609 .elementor-element.elementor-element-563b7f2 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-0d7d8d4 );}.elementor-55609 .elementor-element.elementor-element-6349f2cc:not(.elementor-motion-effects-element-type-background), .elementor-55609 .elementor-element.elementor-element-6349f2cc > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#10253E;}.elementor-55609 .elementor-element.elementor-element-6349f2cc{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:15px 15px 25px 15px;}.elementor-55609 .elementor-element.elementor-element-6349f2cc > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-55609 .elementor-element.elementor-element-1823236d .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-13aa83b0 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-1a87e5a1 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-35220d8e .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-673d24da .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-58badc91 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-559d09e0 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-1177018c .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:18px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-3fbd826f .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:18px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-5d4e9855 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:18px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-186dfef8 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:18px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-200fe9f3 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:18px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-642e518e .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:18px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-6850609a .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:18px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-55009245 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:500;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-6dd92733 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:500;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-2b2389a4 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:500;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-4ff4fa8b .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:500;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-61aa5a12.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-55609 .elementor-element.elementor-element-61aa5a12 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:500;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-20575355 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:500;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-70005bdc .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:500;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-6b46568b.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-55609 .elementor-element.elementor-element-6b46568b .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-554c919b .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-55104a6d .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-27ec869b .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-4d62ea27 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-47f1e4b2 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-0cddb69 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-c36260c .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-19bb610c .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-61fe5195 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:18px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-369b8b1b .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:18px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-38c1cd73 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:400;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-34220442 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:18px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-1b11900f .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:18px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-5dc74a68 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:18px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-7072ac0a .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:18px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-46cd8be .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:18px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-f49387c .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:18px;font-weight:600;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-549bd241 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:500;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-395cde09 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:500;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-1162b6a5 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:500;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-381d062f .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:500;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-4715b49f.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-55609 .elementor-element.elementor-element-4715b49f .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:500;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-7c8c836b .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:500;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-489f605 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:500;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-41f4eb2 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:500;color:var( --e-global-color-1b21ee7 );}.elementor-55609 .elementor-element.elementor-element-16f3f52 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:500;color:var( --e-global-color-1b21ee7 );}.elementor-widget-woocommerce-product-related.elementor-wc-products ul.products li.product .woocommerce-loop-product__title{color:var( --e-global-color-primary );}.elementor-widget-woocommerce-product-related.elementor-wc-products ul.products li.product .woocommerce-loop-category__title{color:var( --e-global-color-primary );}.elementor-widget-woocommerce-product-related.elementor-wc-products ul.products li.product .woocommerce-loop-product__title, .elementor-widget-woocommerce-product-related.elementor-wc-products ul.products li.product .woocommerce-loop-category__title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.woocommerce .elementor-widget-woocommerce-product-related.elementor-wc-products .products > h2{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-woocommerce-product-related.elementor-wc-products ul.products li.product .price{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-woocommerce-product-related.elementor-wc-products ul.products li.product .price ins{color:var( --e-global-color-primary );}.elementor-widget-woocommerce-product-related.elementor-wc-products ul.products li.product .price ins .amount{color:var( --e-global-color-primary );}.elementor-widget-woocommerce-product-related.elementor-wc-products ul.products li.product .price del{color:var( --e-global-color-primary );}.elementor-widget-woocommerce-product-related.elementor-wc-products ul.products li.product .price del .amount{color:var( --e-global-color-primary );}.elementor-widget-woocommerce-product-related.elementor-wc-products ul.products li.product .price del {font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-woocommerce-product-related.elementor-wc-products ul.products li.product .button{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-woocommerce-product-related.elementor-wc-products .added_to_cart{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-55609 .elementor-element.elementor-element-29a3f034.elementor-wc-products  ul.products{grid-column-gap:20px;grid-row-gap:40px;}.elementor-55609 .elementor-element.elementor-element-29a3f034.elementor-wc-products ul.products li.product span.onsale{display:block;color:var( --e-global-color-e0041f3 );background-color:var( --e-global-color-primary );}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-55609 .elementor-element.elementor-element-3c49d10{background-color:var( --e-global-color-0d7d8d4 );text-align:center;font-family:"Roboto", Sans-serif;font-size:10px;font-weight:400;}.elementor-widget .tippy-tooltip .tippy-content{text-align:center;}@media(min-width:768px){.elementor-55609 .elementor-element.elementor-element-2c2c1ecd{width:60.049%;}.elementor-55609 .elementor-element.elementor-element-53f060ea{width:39.951%;}.elementor-55609 .elementor-element.elementor-element-242211ab{width:12.982%;}.elementor-55609 .elementor-element.elementor-element-34c61549{width:3.017%;}.elementor-55609 .elementor-element.elementor-element-53d9e08{width:32.667%;}.elementor-55609 .elementor-element.elementor-element-41fb2cc6{width:12.982%;}.elementor-55609 .elementor-element.elementor-element-6a0f1f1f{width:5.912%;}.elementor-55609 .elementor-element.elementor-element-359de2eb{width:29.772%;}}@media(max-width:1024px){.elementor-55609 .elementor-element.elementor-global-57008.elementor-wc-products  ul.products{grid-column-gap:20px;grid-row-gap:40px;}.elementor-55609 .elementor-element.elementor-element-53f060ea > .elementor-element-populated{padding:40px 40px 40px 40px;}.elementor-55609 .elementor-element.elementor-element-b3287a6.elementor-wc-products  ul.products{grid-column-gap:20px;grid-row-gap:40px;}.elementor-55609 .elementor-element.elementor-element-29a3f034.elementor-wc-products  ul.products{grid-column-gap:20px;grid-row-gap:40px;}}@media(max-width:767px){.elementor-55609 .elementor-element.elementor-global-57008.elementor-wc-products  ul.products{grid-column-gap:20px;grid-row-gap:40px;}.elementor-55609 .elementor-element.elementor-element-53f060ea > .elementor-element-populated{padding:30px 30px 30px 30px;}.elementor-55609 .elementor-element.elementor-element-5eeacabe{border-radius:4px 4px 4px 4px;text-align:center;}.woocommerce .elementor-55609 .elementor-element.elementor-element-5eeacabe .price{font-size:25px;}.elementor-55609 .elementor-element.elementor-element-b3287a6.elementor-wc-products  ul.products{grid-column-gap:20px;grid-row-gap:40px;}.elementor-55609 .elementor-element.elementor-element-536a8cf6{padding:0px 0px 0px 4px;}.elementor-55609 .elementor-element.elementor-element-4b14b68d{width:29%;}.elementor-55609 .elementor-element.elementor-element-1823236d .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-13aa83b0 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-1a87e5a1 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-35220d8e .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-673d24da .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-58badc91 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-559d09e0 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-45900a96{width:8%;}.elementor-55609 .elementor-element.elementor-element-1177018c .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-3fbd826f .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-5d4e9855 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-186dfef8 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-200fe9f3 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-642e518e .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-6850609a .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-a38f0ad{width:63%;}.elementor-55609 .elementor-element.elementor-element-55009245 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-6dd92733 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-2b2389a4 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-4ff4fa8b .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-61aa5a12{width:var( --container-widget-width, 179.3px );max-width:179.3px;--container-widget-width:179.3px;--container-widget-flex-grow:0;}.elementor-55609 .elementor-element.elementor-element-61aa5a12 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-20575355 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-70005bdc .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-534d36fb{width:29%;}.elementor-55609 .elementor-element.elementor-element-6b46568b{width:var( --container-widget-width, 74.7px );max-width:74.7px;--container-widget-width:74.7px;--container-widget-flex-grow:0;}.elementor-55609 .elementor-element.elementor-element-6b46568b .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-554c919b .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-55104a6d .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-27ec869b .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-4d62ea27 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-47f1e4b2 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-0cddb69 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-c36260c .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-19bb610c .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-2832fb26{width:8%;}.elementor-55609 .elementor-element.elementor-element-61fe5195 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-369b8b1b .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-38c1cd73 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-34220442 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-1b11900f .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-5dc74a68 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-7072ac0a .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-46cd8be .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-f49387c .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-6e8f7efc{width:63%;}.elementor-55609 .elementor-element.elementor-element-549bd241 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-395cde09 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-1162b6a5 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-381d062f .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-4715b49f{width:var( --container-widget-width, 181px );max-width:181px;--container-widget-width:181px;--container-widget-flex-grow:0;}.elementor-55609 .elementor-element.elementor-element-4715b49f .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-7c8c836b .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-489f605 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-41f4eb2 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-16f3f52 .elementor-heading-title{font-size:12px;}.elementor-55609 .elementor-element.elementor-element-29a3f034.elementor-wc-products  ul.products{grid-column-gap:20px;grid-row-gap:40px;}}/* Start custom CSS for image, class: .elementor-element-5fe7d8b7 */<?php 

/**
 * The public-facing functionality of the plugin.
 *
 * @package    SCFW_Size_Chart_For_Woocommerce
 * @subpackage SCFW_Size_Chart_For_Woocommerce/public
 * @link       http://www.multidots.com/
 * @since      1.0.0
 */
/**
 * If this file is called directly, abort.
 */
if ( ! defined( 'WPINC' ) ) {
	die;
}

/**
 * The public-facing functionality of the plugin.
 *
 * Defines the plugin name, version, and two examples hooks for how to
 * enqueue the admin-specific stylesheet and JavaScript.
 *
 * @package    SCFW_Size_Chart_For_Woocommerce
 * @subpackage SCFW_Size_Chart_For_Woocommerce/public
 * @author     Multidots <inquiry@multidots.in>
 */
class SCFW_Size_Chart_For_Woocommerce_Public {

	/**
	 * The ID of this plugin.
	 *
	 * @since  1.0.0
	 * @access private
	 * @var    string $plugin_name The ID of this plugin.
	 */
	private $plugin_name;

	/**
	 * The version of this plugin.
	 *
	 * @since  1.0.0
	 * @access private
	 * @var    string $version The current version of this plugin.
	 */
	private $version;

	/**
	 * The version of this plugin.
	 *
	 * @since  1.0.0
	 * @access private
	 * @var    string $version The current version of this plugin.
	 */
	private $post_type_name;

	/**
	 * Initialize the class and set its properties.
	 *
	 * @param string $plugin_name The name of the plugin.
	 * @param string $version The version of this plugin.
	 * @param string $post_type_name The post type name of this plugin.
	 *
	 * @since 1.0.0
	 */
	public function __construct( $plugin_name, $version, $post_type_name ) {

		$this->plugin_name    = $plugin_name;
		$this->version        = $version;
		$this->post_type_name = $post_type_name;
		
	}

	/**
	 * Get the plugin name.
	 * @return string
	 */
	public function get_plugin_name() {
		return $this->plugin_name;
	}

	/**
	 * Plugin dash name.
	 * @return string
	 */
	public function get_plugin_dash_name() {
		return sanitize_title_with_dashes( $this->get_plugin_name() );
	}

	/**
	 * Get the plugin version.
	 * @return string
	 */
	public function get_plugin_version() {
		return $this->version;
	}

	/**
	 * Register the Style and JavaScript for the public-facing side of the site.
	 *
	 * @since 1.0.0
	 */
	public function scfw_enqueue_styles_scripts_callback() {
		$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';

		/**
		 * This function is provided for demonstration purposes only.
		 *
		 * An instance of this class should be passed to the run() function
		 * defined in SCFW_Size_Chart_For_Woocommerce_Loader as all of the hooks are defined
		 * in that particular class.
		 *
		 * The SCFW_Size_Chart_For_Woocommerce_Loader will then create the relationship
		 * between the defined hooks and the functions defined in this
		 * class.
		 */
		
		// Register styles.
		wp_register_style( $this->get_plugin_dash_name(), plugin_dir_url( __FILE__ ) . 'css/size-chart-for-woocommerce-public.css', array(), $this->version, 'all' );

		// Enqueue styles.
		wp_enqueue_style( $this->get_plugin_dash_name() );

		$inline_style_varibale = $this->scfw_get_inline_style_for_size_chart();
		if ( false !== $inline_style_varibale ) {
			wp_add_inline_style( $this->get_plugin_dash_name(), $inline_style_varibale );
		}


		/**
		 * This function is provided for demonstration purposes only.
		 *
		 * An instance of this class should be passed to the run() function
		 * defined in SCFW_Size_Chart_For_Woocommerce_Loader as all of the hooks are defined
		 * in that particular class.
		 *
		 * The SCFW_Size_Chart_For_Woocommerce_Loader will then create the relationship
		 * between the defined hooks and the functions defined in this
		 * class.
		 */
		wp_register_script( $this->get_plugin_dash_name(), plugin_dir_url( __FILE__ ) . 'js/size-chart-for-woocommerce-public' . $suffix . '.js', array( 'jquery' ), $this->version, true );
		wp_enqueue_script( $this->get_plugin_dash_name() );
	}

	/**
	 * Size chart product custom tab.
	 *
	 * @param array $tabs current tabs array.
	 *
	 * @return array return a array of tabs.
	 * @since 1.0.0
	 *
	 */
	public function scfw_size_chart_custom_product_tab_callback( $tabs ) {
		global $post;
		$prod_id  = scfw_size_chart_get_product( $post->ID );
		$prod_id = (is_array($prod_id)) ? $prod_id : [$prod_id];
		
		if ( isset( $prod_id ) && is_array( $prod_id ) && !empty( $prod_id ) ) {
			$i = 50;
            $i = apply_filters( 'scfw_tab_priority_setting', $i );
			foreach( $prod_id as $prod_val ) {
				$chart_position = scfw_size_chart_get_position_by_chart_id( $prod_val );
				if ( 'publish' === get_post_status( $prod_val ) ) {
					$size_chart_id = $prod_val;
				} else {
					$size_chart_id = $this->scfw_size_chart_id_by_category( $post->ID );
				}

				// Check if product is belongs to tag
				if ( 0 === intval($size_chart_id) || ! $size_chart_id ) {
					$size_chart_id = $this->scfw_size_chart_id_by_tag( $post->ID );

					// Check if product is belongs to attribute
					if ( 0 === intval($size_chart_id) || ! $size_chart_id ) {
						$size_chart_id = $this->scfw_size_chart_id_by_attributes( $post->ID );
					}
				}

				if ( ! $size_chart_id ) {
					return $tabs;
				}
				
                $link_show = true; // This will work in pro version
        
                if ( scfw_fs()->is__premium_only() && scfw_fs()->can_use_premium_code() ) {
                    $current_country = $this->scfw_get_current_user_country__premium_only();
                    $chart_country = scfw_size_chart_country__premium_only($size_chart_id);

                    $link_show = false;
                    if( empty($chart_country) || in_array( $current_country, $chart_country, true ) ) {
                        $link_show = true;
                    }
                }

                if ( ! $link_show ) {
					return $tabs;
				}

				$chart_label = scfw_size_chart_get_label_by_chart_id( $size_chart_id );

				if ( 'tab' === $chart_position ) {
					$size_chart_tab_label = scfw_size_chart_get_tab_label_by_chart_id( $size_chart_id );
					if ( isset( $size_chart_tab_label ) && ! empty( $size_chart_tab_label ) ) {
						$tab_label = $size_chart_tab_label;
					} else {
						$size_chart_tab_label = scfw_size_chart_get_tab_label();
						if ( isset( $size_chart_tab_label ) && ! empty( $size_chart_tab_label ) ) {
							$tab_label = scfw_size_chart_get_tab_label();
						} else {
							$tab_label = $chart_label;
						}
					}

					if ( !empty( $size_chart_id ) && is_array( $size_chart_id ) ) {
						foreach( $size_chart_id as $chart_id ) {
							$tabs[$chart_id] = array(
								'title'    => __( $tab_label, 'size-chart-for-woocommerce' ),
								'priority' => $i++,
								'callback' => array( $this, 'scfw_size_chart_custom_product_tab_content_callback' ),
							);
						}
					} else {
						$tabs[$size_chart_id] = array(
							'title'    => __( $tab_label, 'size-chart-for-woocommerce' ),
							'priority' => $i++,
							'callback' => array( $this, 'scfw_size_chart_custom_product_tab_content_callback' ),
						);
					}
				}
			}
		}
		if( isset( $post->ID ) && !empty( $post->ID ) ){
			$j = 50;
            $j = apply_filters( 'scfw_tab_priority_setting', $j );
			$chart_ids = $this->scfw_size_chart_id_by_category( $post->ID );
			if( !empty( $chart_ids ) ){
				foreach( $chart_ids as $chart_id ) {

                    $link_show = true; // This will work in pro version
        
                    if ( scfw_fs()->is__premium_only() && scfw_fs()->can_use_premium_code() ) {
                        $current_country = $this->scfw_get_current_user_country__premium_only();
                        $chart_country = scfw_size_chart_country__premium_only($chart_id);

                        $link_show = false;
                        if( empty($chart_country) || in_array( $current_country, $chart_country, true ) ) {
                            $link_show = true;
                        }
                    }

					if ( ! $chart_ids || ! $link_show) {
						return $tabs;
					}

					$chart_position = scfw_size_chart_get_position_by_chart_id( $chart_id );
					$chart_label    = scfw_size_chart_get_label_by_chart_id( $chart_id );	
					
					if ( 'tab' === $chart_position ) {
						$size_chart_tab_label = scfw_size_chart_get_tab_label_by_chart_id( $chart_id );
						if ( isset( $size_chart_tab_label ) && ! empty( $size_chart_tab_label ) ) {
							$tab_label = $size_chart_tab_label;
						} else {
							$size_chart_tab_label = scfw_size_chart_get_tab_label();
							if ( isset( $size_chart_tab_label ) && ! empty( $size_chart_tab_label ) ) {
								$tab_label = scfw_size_chart_get_tab_label();
							} else {
								$tab_label = $chart_label;
							}
						}
	
						$tabs[$chart_id] = array(
							'title'    => __( $tab_label, 'size-chart-for-woocommerce' ),
							'priority' => $j++,
							'callback' => array( $this, 'scfw_size_chart_custom_product_tab_content_callback' ),
						);
					}
				}
			}
			
			$size_chart_id = $this->scfw_size_chart_id_by_tag( $post->ID );
			if( !empty($size_chart_id) ){
				foreach( $size_chart_id as $chart_id ) {

                    $link_show = true; // This will work in pro version
        
                    if ( scfw_fs()->is__premium_only() && scfw_fs()->can_use_premium_code() ) {
                        $current_country = $this->scfw_get_current_user_country__premium_only();
                        $chart_country = scfw_size_chart_country__premium_only($chart_id);

                        $link_show = false;
                        if( empty($chart_country) || in_array( $current_country, $chart_country, true ) ) {
                            $link_show = true;
                        }
                    }

					if ( ! $size_chart_id || ! $link_show) {
						return $tabs;
					}

					$chart_position = scfw_size_chart_get_position_by_chart_id( $chart_id );
					$chart_label    = scfw_size_chart_get_label_by_chart_id( $chart_id );	
					
					if ( 'tab' === $chart_position ) {
						$size_chart_tab_label = scfw_size_chart_get_tab_label_by_chart_id( $chart_id );
						if ( isset( $size_chart_tab_label ) && ! empty( $size_chart_tab_label ) ) {
							$tab_label = $size_chart_tab_label;
						} else {
							$size_chart_tab_label = scfw_size_chart_get_tab_label();
							if ( isset( $size_chart_tab_label ) && ! empty( $size_chart_tab_label ) ) {
								$tab_label = scfw_size_chart_get_tab_label();
							} else {
								$tab_label = $chart_label;
							}
						}
	
						$tabs[$chart_id] = array(
							'title'    => __( $tab_label, 'size-chart-for-woocommerce' ),
							'priority' => $j++,
							'callback' => array( $this, 'scfw_size_chart_custom_product_tab_content_callback' ),
						);
					}
				}
			}
				
			$chart_attr_id = $this->scfw_size_chart_id_by_attributes( $post->ID );
			if ( !empty( $chart_attr_id ) ) {				
				foreach( $chart_attr_id as $chart_id ) {

                    $link_show = true; // This will work in pro version
        
                    if ( scfw_fs()->is__premium_only() && scfw_fs()->can_use_premium_code() ) {
                        $current_country = $this->scfw_get_current_user_country__premium_only();
                        $chart_country = scfw_size_chart_country__premium_only($chart_id);

                        $link_show = false;
                        if( empty($chart_country) || in_array( $current_country, $chart_country, true ) ) {
                            $link_show = true;
                        }
                    }

					if ( ! $chart_attr_id || ! $link_show) {
						return $tabs;
					}

					$chart_position = scfw_size_chart_get_position_by_chart_id( $chart_id );
					$chart_label    = scfw_size_chart_get_label_by_chart_id( $chart_id );	
					
					if ( 'tab' === $chart_position ) {
						$size_chart_tab_label = scfw_size_chart_get_tab_label_by_chart_id( $chart_id );
						if ( isset( $size_chart_tab_label ) && ! empty( $size_chart_tab_label ) ) {
							$tab_label = $size_chart_tab_label;
						} else {
							$size_chart_tab_label = scfw_size_chart_get_tab_label();
							if ( isset( $size_chart_tab_label ) && ! empty( $size_chart_tab_label ) ) {
								$tab_label = scfw_size_chart_get_tab_label();
							} else {
								$tab_label = $chart_label;
							}
						}
	
						$tabs[$chart_id] = array(
							'title'    => __( $tab_label, 'size-chart-for-woocommerce' ),
							'priority' => $j++,
							'callback' => array( $this, 'scfw_size_chart_custom_product_tab_content_callback' ),
						);
					}
				}
			}
		}
		return $tabs;
	}

	/**
	 * Check popup button position.
	 *
	 * @since 1.0.0
	 */
	public function scfw_size_chart_popup_button_position_callback() {
		if ( scfw_fs()->is__premium_only() ) {
			if ( scfw_fs()->can_use_premium_code() ) {
				$position = scfw_size_chart_get_button_position();
				if ( 'before-summary-text' === $position ) {
					$hook     = 'woocommerce_single_product_summary';
					$priority = 11;
				} elseif ( 'after-add-to-cart' === $position ) {
					$hook     = 'woocommerce_single_product_summary';
					$priority = 31;
				} elseif ( 'before-add-to-cart' === $position ) {
					$hook     = 'woocommerce_single_product_summary';
					$priority = 29;
				} elseif ( 'after-product-meta' === $position ) {
					$hook     = 'woocommerce_single_product_summary';
					$priority = 41;
				} else {
					$hook     = 'woocommerce_single_product_summary';
					$priority = 11;
				}

				$filter_hook = apply_filters('add_hook_custom_size_chart_position', $hook);
				add_action( $filter_hook, array( $this, 'scfw_size_chart_popup_button_callback' ), $priority );
			} else {
				$filter_hook = apply_filters('add_hook_custom_size_chart_position', 'woocommerce_single_product_summary');
				add_action( $filter_hook, array( $this, 'scfw_size_chart_popup_button_callback' ), 11 );
			}
		} else {
			$filter_hook = apply_filters('add_hook_custom_size_chart_position', 'woocommerce_single_product_summary');
			add_action( $filter_hook, array( $this, 'scfw_size_chart_popup_button_callback' ), 11 );
		}

	}

	/**
	 * Size chart new tab content.
	 *
	 * @since 1.0.0
	 */
	public function scfw_size_chart_custom_product_tab_content_callback( $size_chart_id ) {
		global $post;
		$dup_id = array();
		$prod_id  = scfw_size_chart_get_product( $post->ID );
		$prod_id = (is_array($prod_id)) ? $prod_id : [$prod_id];

		if ( isset( $prod_id ) && is_array( $prod_id ) && !empty( $prod_id ) ) {
			foreach( $prod_id as $prod_val ) {
				if ( '' !== get_post_status( $prod_val ) && 'publish' === get_post_status( $prod_val ) ) {
					$chart_id = $prod_val;
				} else {
					$chart_id = $this->scfw_size_chart_id_by_category( $post->ID );
				}

				// Check if product is belongs to tag
				if ( 0 === intval($chart_id) || ! $chart_id ) {
					$chart_id = $this->scfw_size_chart_id_by_tag( $post->ID );

					// Check if product is belongs to attribute
					if ( 0 === intval($chart_id) || ! $chart_id ) {
						$chart_id = $this->scfw_size_chart_id_by_attributes( $post->ID );
					}
				}

				$chart_position = scfw_size_chart_get_position_by_chart_id( $chart_id );

				if ( 'tab' === $chart_position && $chart_id === $size_chart_id ) {
					$file_dir_path = 'includes/common-files/size-chart-contents.php';
					if ( file_exists( plugin_dir_path( dirname( __FILE__ ) ) . $file_dir_path ) ) {
						include plugin_dir_path( dirname( __FILE__ ) ) . $file_dir_path;
						$dup_id[] = $prod_val;
					}
				}
			}
		}
		if( isset( $post->ID ) && !empty( $post->ID ) ){
			
			$chart_cat_ids = $this->scfw_size_chart_id_by_category( $post->ID );			
			if( !empty( $chart_cat_ids ) ){
				foreach( $chart_cat_ids as $chart_id ) {
					if( ! in_array( $chart_id, $dup_id, true ) ){
						$chart_position = scfw_size_chart_get_position_by_chart_id( $chart_id );
						if ( 'tab' === $chart_position && $chart_id === $size_chart_id ) {
							$file_dir_path = 'includes/common-files/size-chart-contents.php';
							if ( file_exists( plugin_dir_path( dirname( __FILE__ ) ) . $file_dir_path ) ) {
								include plugin_dir_path( dirname( __FILE__ ) ) . $file_dir_path;
								$dup_id[] = $chart_id;
							}
						}
					}
				}
			}
			
			$chart_ids = $this->scfw_size_chart_id_by_tag( $post->ID );			
			if( !empty( $chart_ids ) ){
				foreach( $chart_ids as $chart_id ) {
					if( ! in_array( $chart_id, $dup_id, true ) ){
						$chart_position = scfw_size_chart_get_position_by_chart_id( $chart_id );
						if ( 'tab' === $chart_position && $chart_id === $size_chart_id ) {
							$file_dir_path = 'includes/common-files/size-chart-contents.php';
							if ( file_exists( plugin_dir_path( dirname( __FILE__ ) ) . $file_dir_path ) ) {
								include plugin_dir_path( dirname( __FILE__ ) ) . $file_dir_path;
								$dup_id[] = $chart_id;
							}
						}
					}					
				}
			}

			$chart_attr_ids = $this->scfw_size_chart_id_by_attributes( $post->ID );			
			if( !empty( $chart_attr_ids ) ){
				foreach( $chart_attr_ids as $chart_id ) {
					if( ! in_array( $chart_id, $dup_id, true ) ){
						$chart_position = scfw_size_chart_get_position_by_chart_id( $chart_id );
						if ( 'tab' === $chart_position && $chart_id === $size_chart_id ) {
							$file_dir_path = 'includes/common-files/size-chart-contents.php';
							if ( file_exists( plugin_dir_path( dirname( __FILE__ ) ) . $file_dir_path ) ) {
								include plugin_dir_path( dirname( __FILE__ ) ) . $file_dir_path;
							}
						}
					}					
				}
			}
		}
	}

	/**
	 * Hook to display chart button.
	 *
	 * @since 1.0.0
	 */
	public function scfw_size_chart_popup_button_callback() {
		global $post, $scfw_size_chart_rendered;

		if ( empty( $post ) ) {
			return;
		}
		
		$hide_if_shortcode_exist = apply_filters( 'scfw_size_chart_hide_if_shortcode_exist', true );
		if ( $hide_if_shortcode_exist ) {
			// Check if the shortcode exists in the content.
		    $has_shortcode_in_content = has_shortcode( $post->post_content, 'scfw_product_size_chart' );
		    $has_shortcode_in_excerpt = has_shortcode( $post->post_excerpt, 'scfw_product_size_chart' );

		    if ( $has_shortcode_in_content || $has_shortcode_in_excerpt || ! empty( $scfw_size_chart_rendered ) ) {
		        // Do not display the button if shortcode is used.
		        return;
		    }	
		}

		$dup_id = array();
		$prod_id  = scfw_size_chart_get_product( $post->ID );
		$prod_id = (is_array($prod_id)) ? $prod_id : [$prod_id];
		if ( isset( $prod_id ) && is_array( $prod_id ) && !empty( $prod_id ) ) {
			foreach( $prod_id as $prod_val ) {
				if ( '' !== get_post_status( $prod_val ) && 'publish' === get_post_status( $prod_val ) ) {
					$this->scfw_size_chart_popup_button_area($prod_val);
					$dup_id[] = $prod_val;
				}
			}
		}
		if( isset( $post->ID ) && !empty( $post->ID ) ){
			$chart_ids = $this->scfw_size_chart_id_by_category( $post->ID );
			if( !empty( $chart_ids ) ){
				foreach( $chart_ids as $chart_id ) {
					if( ! in_array( $chart_id, $dup_id, true ) ){
						$this->scfw_size_chart_popup_button_area($chart_id);
						$dup_id[] = $chart_id;
					}					
				}
			}
			
			$chart_tag_id = $this->scfw_size_chart_id_by_tag( $post->ID );
			if( !empty($chart_tag_id) ){
				foreach( $chart_tag_id as $chart_id ) {
					if( ! in_array( $chart_id, $dup_id, true ) ){
						$this->scfw_size_chart_popup_button_area($chart_id);
						$dup_id[] = $chart_id;
					}
				}
			}
			$chart_attr_id = $this->scfw_size_chart_id_by_attributes( $post->ID );
			if ( !empty( $chart_attr_id ) ) {				
				foreach( $chart_attr_id as $chart_id ) {
					if( ! in_array( $chart_id, $dup_id, true ) ){
						$this->scfw_size_chart_popup_button_area($chart_id);
					}
				}
			}
		}
		
	}

	/**
	 * Product Details, Category, Tag or Attribute Specific Size Chart Generate
	 */
	public function scfw_size_chart_popup_button_area($chart_id){
		$chart_label    = scfw_size_chart_get_label_by_chart_id( $chart_id );
		$chart_position = scfw_size_chart_get_position_by_chart_id( $chart_id );
		$size_chart_style = scfw_size_chart_style_value_by_chart_id( $chart_id );
        $link_show = true; // This will work in pro version
        $popup_position = 'center';

        if ( scfw_fs()->is__premium_only() && scfw_fs()->can_use_premium_code() ) {
            $current_country = $this->scfw_get_current_user_country__premium_only();
            $chart_country = scfw_size_chart_country__premium_only($chart_id);

            $link_show = false;
            if( empty($chart_country) || in_array( $current_country, $chart_country, true ) ) {
                $link_show = true;
            }

            $popup_position = scfw_get_popup_postition__premium_only( $chart_id );
        }

		if ( 0 !== $chart_id && 'popup' === $chart_position && $link_show ) {

			$chart_popup_label = scfw_size_chart_get_popup_label_by_chart_id( $chart_id );
			if ( isset( $chart_popup_label ) && ! empty( $chart_popup_label ) ) {
				$popup_label = $chart_popup_label;
			} else {
				$size_chart_popup_label = scfw_size_chart_get_popup_label();
				if ( isset( $size_chart_popup_label ) && ! empty( $size_chart_popup_label ) ) {
					$popup_label = $size_chart_popup_label;
				} else {
					$popup_label = $chart_label;
				}
			}

			$size_chart_get_button_class = '';
			if ( scfw_fs()->is__premium_only() ) {
				if ( scfw_fs()->can_use_premium_code() ) {
					$size_chart_get_button_class = scfw_size_chart_get_button_class();
				}
			}
            
            $chart_popup_type = scfw_size_chart_get_popup_type_by_chart_id( $chart_id );
            if ( isset( $chart_popup_type ) && ! empty( $chart_popup_type ) && 'global' !== $chart_popup_type ) {
                $popup_type = $chart_popup_type;
            } else {
                $size_chart_popup_type = scfw_size_chart_get_popup_type();
                if ( isset( $size_chart_popup_type ) && ! empty( $size_chart_popup_type ) ) {
                    $popup_type = $size_chart_popup_type;
                } else {
                    $popup_type = 'text';
                }
            }

            $chart_popup_icon = scfw_size_chart_get_popup_icon_by_chart_id( $chart_id );
            if( !empty( $chart_popup_icon ) ){
                $popup_label = sprintf( __( '<span class="dashicons"><img src="%1$s" alt="%2$s" /></span>', 'size-chart-for-woocommerce' ), esc_url(SCFW_PLUGIN_URL.'includes/chart-icons/'.$chart_popup_icon.'.svg'), $chart_popup_icon ).$popup_label;
            }
            ?>
            <div class="scfw-size-chart-main md-size-chart-modal-main">
	            <div class="button-wrapper">
	                <?php if('text' === $popup_type ){ ?>
	                    <a class="<?php echo esc_attr( $size_chart_get_button_class ); ?> md-size-chart-btn" chart-data-id="chart-<?php echo esc_attr($chart_id); ?>" href="javascript:void(0);" id="chart-button">
	                        <?php echo wp_kses_post( $popup_label ); ?>
	                    </a>
	                <?php } else { ?>
	                    <button class="<?php echo esc_attr( $size_chart_get_button_class ); ?> button md-size-chart-btn" chart-data-id="chart-<?php echo esc_attr($chart_id); ?>"><?php echo wp_kses_post( $popup_label ); ?></button>
	                <?php } ?>
	            </div>
	            <div id="md-size-chart-modal" class="md-size-chart-modal scfw-size-chart-modal <?php echo esc_attr( 'scfw-size-chart-popup-' . $popup_position ); ?>" chart-data-id="chart-<?php echo esc_attr($chart_id); ?>">
	                <div class="md-size-chart-modal-content">
            			<div class="md-size-chart-overlay"></div>
	                    <div class="md-size-chart-modal-body <?php echo esc_attr(scfw_size_chart_get_size()); ?> <?php echo ! empty( $size_chart_style ) && 'tab_style' === $size_chart_style ? esc_attr('scfw_tab_style') : ''; ?>" id="md-poup">
	                        <?php
	                        $file_dir_path = 'includes/common-files/size-chart-contents.php';
	                        if ( file_exists( plugin_dir_path( dirname( __FILE__ ) ) . $file_dir_path ) ) {
	                            include plugin_dir_path( dirname( __FILE__ ) ) . $file_dir_path;
	                        }
	                        ?>
	                    </div>
	                </div>
	            </div>
	        </div>
            <?php
		}
	}

	/**
	 * Shortcode to display chart button.
	 * 
	 * @since 1.0.0
	 */
	public static function scfw_size_chart_popup_shortcode_callback() {
		if( is_admin() || is_customize_preview() || true === apply_filters( 'scfw_shortcode_callback_return', false ) ) {
            return;
        }

		global $post;
		$dup_id = array();
		$prod_id  = scfw_size_chart_get_product( $post->ID );
		$prod_id = (is_array($prod_id)) ? $prod_id : [$prod_id];

		$plugin_post_type_name = 'size-chart';
		$plugin_name = __( SCFW_PLUGIN_NAME, 'size-chart-for-woocommerce' );
		$plugin_version = __( SCFW_PLUGIN_VERSION, 'size-chart-for-woocommerce' );

		$cls = ( new SCFW_Size_Chart_For_Woocommerce_Public( $plugin_name, $plugin_version, $plugin_post_type_name ));
		if ( isset( $prod_id ) && is_array( $prod_id ) && !empty( $prod_id ) ) {
			foreach( $prod_id as $prod_val ) {
				if ( '' !== get_post_status( $prod_val ) && 'publish' === get_post_status( $prod_val ) ) {
					$chart_id = $prod_val;
				} else {
					$chart_id = $cls->scfw_size_chart_id_by_category( $post->ID );
				}

				// Check if product is belongs to tag
				if ( 0 === intval($chart_id) || ! $chart_id ) {
					$chart_id = $cls->scfw_size_chart_id_by_tag( $post->ID );

					// Check if product is belongs to attribute
					if ( 0 === intval($chart_id) || ! $chart_id ) {
						$chart_id = $cls->scfw_size_chart_id_by_attributes( $post->ID );
					}
				}

				$chart_label    = scfw_size_chart_get_label_by_chart_id( $chart_id );
				$chart_position = scfw_size_chart_get_position_by_chart_id( $chart_id );
                $link_show = true; // This will work in pro version
        
                if ( scfw_fs()->is__premium_only() && scfw_fs()->can_use_premium_code() ) {
                    $current_country = $cls->scfw_get_current_user_country__premium_only();
                    $chart_country = scfw_size_chart_country__premium_only($chart_id);
                    $link_show = false;
                    if( empty($chart_country) || in_array( $current_country, $chart_country, true ) ) {
                        $link_show = true;
                    }
                }

				if ( 0 !== $chart_id && 'popup' === $chart_position && $link_show ) {
					$chart_popup_label = scfw_size_chart_get_popup_label_by_chart_id( $chart_id );
					if ( isset( $chart_popup_label ) && ! empty( $chart_popup_label ) ) {
						$popup_label = $chart_popup_label;
					} else {
						$size_chart_popup_label = scfw_size_chart_get_popup_label();
						if ( isset( $size_chart_popup_label ) && ! empty( $size_chart_popup_label ) ) {
							$popup_label = $size_chart_popup_label;
						} else {
							$popup_label = $chart_label;
						}
					}

					$size_chart_get_button_class = '';
					$popup_position = 'center';
					if ( scfw_fs()->is__premium_only() ) {
						if ( scfw_fs()->can_use_premium_code() ) {
							$size_chart_get_button_class = scfw_size_chart_get_button_class();
							$popup_position = scfw_get_popup_postition__premium_only( $chart_id );
						}
					}

					$popup_type = '';
                    $chart_popup_type = scfw_size_chart_get_popup_type_by_chart_id( $chart_id );
                    if ( isset( $chart_popup_type ) && ! empty( $chart_popup_type ) && 'global' !== $chart_popup_type ) {
						$popup_type = $chart_popup_type;
					} else {
                        $size_chart_popup_type = scfw_size_chart_get_popup_type();
						if ( isset( $size_chart_popup_type ) && ! empty( $size_chart_popup_type ) ) {
							$popup_type = $size_chart_popup_type;
						}
                    }
                    $chart_popup_icon = scfw_size_chart_get_popup_icon_by_chart_id( $chart_id );
                    if( !empty( $chart_popup_icon ) ){
                        $popup_label = sprintf( __( '<span class="dashicons"><img src="%1$s" alt="%2$s" /></span>', 'size-chart-for-woocommerce' ), esc_url(SCFW_PLUGIN_URL.'includes/chart-icons/'.$chart_popup_icon.'.svg'), $chart_popup_icon ).$popup_label;
                    }
					?>
					<div class="scfw-size-chart-main md-size-chart-modal-main scfw-by-general-shortcode">
						<div class="button-wrapper">
                            <?php if('text' === $popup_type ){ ?>
                                <a class="<?php echo esc_attr( $size_chart_get_button_class ); ?> md-size-chart-btn" chart-data-id="chart-<?php echo esc_attr($chart_id); ?>" href="javascript:void(0);">
                                    <?php echo wp_kses_post( $popup_label ); ?>
                                </a>
                            <?php } else { ?>
                                <button class="<?php echo esc_attr( $size_chart_get_button_class ); ?> button md-size-chart-btn" chart-data-id="chart-<?php echo esc_attr($chart_id); ?>"><?php echo wp_kses_post( $popup_label ); ?></button>
                            <?php } ?>
                        </div>
						<div id="md-size-chart-modal" chart-data-id="chart-<?php echo esc_attr($chart_id); ?>" class="md-size-chart-modal scfw-size-chart-modal <?php echo esc_attr( 'scfw-size-chart-popup-' . $popup_position ); ?>">
							<div class="md-size-chart-modal-content">
								<div class="md-size-chart-overlay"></div>
								<div class="md-size-chart-modal-body <?php echo esc_attr(scfw_size_chart_get_size()); ?>" id="md-poup">
									<?php
									$file_dir_path = 'includes/common-files/size-chart-contents.php';
									if ( file_exists( plugin_dir_path( dirname( __FILE__ ) ) . $file_dir_path ) ) {
										include plugin_dir_path( dirname( __FILE__ ) ) . $file_dir_path;
									}
									?>
								</div>
							</div>
						</div>
					</div>
					<?php
					$dup_id[] = $prod_val;
				}
			}
		}

		if( isset( $post->ID ) && !empty( $post->ID ) ){
			
			$chart_ids = $cls->scfw_size_chart_id_by_category( $post->ID );
			if( !empty( $chart_ids ) ){
				foreach( $chart_ids as $chart_id ) {
					if( ! in_array( $chart_id, $dup_id, true ) ){
						$cls->scfw_size_chart_popup_button_area($chart_id);
						$dup_id[] = $chart_id;
					}
				}
			}
			
			$chart_tag_id = $cls->scfw_size_chart_id_by_tag( $post->ID );
			if( !empty($chart_tag_id) ){
				foreach( $chart_tag_id as $chart_id ) {
					if( ! in_array( $chart_id, $dup_id, true ) ){
						$cls->scfw_size_chart_popup_button_area($chart_id);
						$dup_id[] = $chart_id;
					}
				}
			}
				
			$chart_attr_id = $cls->scfw_size_chart_id_by_attributes( $post->ID );			
			if ( !empty( $chart_attr_id ) ) {				
				foreach( $chart_attr_id as $chart_id ) {
					if( ! in_array( $chart_id, $dup_id, true ) ){
						$cls->scfw_size_chart_popup_button_area($chart_id);
					}
				}
			}
		}
		
	}

	/**
     * Check if product belongs to a category.
     *
     * @param int $product_id product id.
     *
     * @return bool|int|mixed return size chart id if size chart id found.
     * @since 1.0.0
     */
    public function scfw_size_chart_id_by_category( $product_id ) {
		
        $size_chart_id = 0;
		$product_terms = wc_get_product_term_ids( $product_id, 'product_cat' );
		
		if ( ( isset( $product_terms ) && ! empty( $product_terms ) ) && ( is_array( $product_terms ) && array_filter( $product_terms ) ) ) {
            $cache_key     = 'size_chart_categories_with_product_categories_' . implode( "_", $product_terms );
            $size_chart_id = wp_cache_get( $cache_key );
			
            if ( false === $size_chart_id ) {
                $size_chart_args = array(
                    'posts_per_page'         => 10,
                    'order'                  => 'DESC',
                    'post_type'              => 'size-chart',
                    'post_status'            => 'publish',
                    'no_found_rows'          => true,
                    'update_post_term_cache' => false,
                    'fields'                 => 'ids',
                );
                
                $size_chart_args['meta_query']['relation'] = 'OR';
                
                foreach ( $product_terms as $product_term ) {
                    $size_chart_args['meta_query'][] = array(
                        'key'     => 'chart-categories',
                        'value'   => "[$product_term,",
                        'compare' => 'LIKE',
                    );
					$size_chart_args['meta_query'][] = array(
                        'key'     => 'chart-categories',
                        'value'   => ",$product_term,",
                        'compare' => 'LIKE',
                    );
					$size_chart_args['meta_query'][] = array(
                        'key'     => 'chart-categories',
                        'value'   => ",$product_term]",
                        'compare' => 'LIKE',						
                    );
					$size_chart_args['meta_query'][] = array(
                        'key'     => 'chart-categories',
                        'value'   => "[$product_term]",
                        'compare' => 'LIKE',						
                    );
                }
                $size_chart_category_query = new WP_Query( $size_chart_args );
                if ( isset( $size_chart_category_query ) && ! empty( $size_chart_category_query ) && $size_chart_category_query->have_posts() ) {
					foreach ( $size_chart_category_query->posts as $chart_array_id ) {
						if(!is_array($size_chart_id)) $size_chart_id = [];
                        $size_chart_id[] = $chart_array_id;
                    }
                }
                wp_cache_set( $cache_key, $size_chart_id );
            }
        }
        return $size_chart_id;
    }

	/**
     * Check if product belongs to a tag.
     *
     * @param int $product_id product id.
     *
     * @return bool|int|mixed return size chart id if size chart id found.
     * @since 1.0.0
     */
    public function scfw_size_chart_id_by_tag( $product_id ) {
        $size_chart_id = 0;
        $product_terms = wc_get_product_term_ids( $product_id, 'product_tag' );

        if ( ( isset( $product_terms ) && ! empty( $product_terms ) ) && ( is_array( $product_terms ) && array_filter( $product_terms ) ) ) {
            $cache_key     = 'size_chart_tags_with_product_tags_' . implode( "_", $product_terms );
            $size_chart_id = wp_cache_get( $cache_key );
            if ( false === $size_chart_id ) {
                $size_chart_args = array(
                    'posts_per_page'         => 10,
                    'order'                  => 'DESC',
                    'post_type'              => 'size-chart',
                    'post_status'            => 'publish',
                    'no_found_rows'          => true,
                    'update_post_term_cache' => false,
                    'fields'                 => 'ids',
                );
               
                $size_chart_args['meta_query']['relation'] = 'OR';
               
                foreach ( $product_terms as $product_term ) {
                	$size_chart_args['meta_query'][] = array(
                        'key'     => 'chart-tags',
                        'value'   => "[$product_term,",
                        'compare' => 'LIKE',
                    );
					$size_chart_args['meta_query'][] = array(
                        'key'     => 'chart-tags',
                        'value'   => ",$product_term,",
                        'compare' => 'LIKE',
                    );
					$size_chart_args['meta_query'][] = array(
                        'key'     => 'chart-tags',
                        'value'   => ",$product_term]",
                        'compare' => 'LIKE',						
                    );
					$size_chart_args['meta_query'][] = array(
                        'key'     => 'chart-tags',
                        'value'   => "[$product_term]",
                        'compare' => 'LIKE',						
                    );
                }
                $size_chart_tags_query = new WP_Query( $size_chart_args );
                if ( isset( $size_chart_tags_query ) && ! empty( $size_chart_tags_query ) && $size_chart_tags_query->have_posts() ) {
                    foreach ( $size_chart_tags_query->posts as $chart_array_id ) {
                    	if(!is_array($size_chart_id)) $size_chart_id = [];
                        $size_chart_id[] = $chart_array_id;
                    }
                }
                wp_cache_set( $cache_key, $size_chart_id );
            }
        }
        return $size_chart_id;
    }

	/**
     * Check if product belongs to a attributes.
     *
     * @param int $product_id product id.
     *
     * @return bool|int|mixed return size chart id if size chart id found.
     * @since 1.0.0
     */
    public function scfw_size_chart_id_by_attributes( $product_id ) {
		$size_chart_id      = 0;
        $product            = wc_get_product( $product_id );
        if ( ! is_a( $product, 'WC_Product' ) ) {
		    return;
		}
        $product_attributes = $product->get_attributes();
        $product_terms      = [];
		foreach ( $product_attributes as $attribute ) {
			if ( is_object( $attribute ) && !empty($attribute->get_options()) ) {
				$product_terms = array_merge( $product_terms, $attribute->get_options() );
			}
		}
       
        if ( ( isset( $product_terms ) && ! empty( $product_terms ) ) && ( is_array( $product_terms ) && array_filter( $product_terms ) ) ) {
            $cache_key     = 'size_chart_attributes_with_product_attributes_' . implode( "_", $product_terms );
            $size_chart_id = wp_cache_get( $cache_key );
            if ( false === $size_chart_id ) {
                $size_chart_args = array(
                    'posts_per_page'         => 10,
                    'order'                  => 'DESC',
                    'post_type'              => 'size-chart',
                    'post_status'            => 'publish',
                    'no_found_rows'          => true,
                    'update_post_term_cache' => false,
                    'fields'                 => 'ids',
                );
                $size_chart_args['meta_query']['relation'] = 'OR';
                foreach ( $product_terms as $product_term ) {
					$size_chart_args['meta_query'][] = array(
                        'key'     => 'chart-attributes',
                        'value'   => "[$product_term,",
                        'compare' => 'LIKE',
                    );
					$size_chart_args['meta_query'][] = array(
                        'key'     => 'chart-attributes',
                        'value'   => ",$product_term,",
                        'compare' => 'LIKE',
                    );
					$size_chart_args['meta_query'][] = array(
                        'key'     => 'chart-attributes',
                        'value'   => ",$product_term]",
                        'compare' => 'LIKE',						
                    );
					$size_chart_args['meta_query'][] = array(
                        'key'     => 'chart-attributes',
                        'value'   => "[$product_term]",
                        'compare' => 'LIKE',						
                    );
                }
                $size_chart_attributes_query = new WP_Query( $size_chart_args );
                if ( isset( $size_chart_attributes_query ) && ! empty( $size_chart_attributes_query ) && $size_chart_attributes_query->have_posts() ) {
                    foreach ( $size_chart_attributes_query->posts as $chart_array_id ) {
                    	if(!is_array($size_chart_id)) $size_chart_id = [];
                        $size_chart_id[] = $chart_array_id;
                    }
                }
                wp_cache_set( $cache_key, $size_chart_id );
            }
        }
        return $size_chart_id;
    }

	/**
	 * Create and get the inline style.
	 *
	 * @return bool|string Inline style string.
	 */
	public function scfw_get_inline_style_for_size_chart() {
		global $post;
		if ( isset( $post ) && ! empty( $post ) ) {
            
			$prod_id = scfw_size_chart_get_product( $post->ID );
			$prod_id = (is_array($prod_id)) ? $prod_id : [$prod_id];
            $cs_style = '';
			if ( isset( $prod_id ) && is_array( $prod_id ) && !empty( $prod_id ) ) {
				foreach( $prod_id as $prod_val ) {
					$cs_style .= scfw_size_chart_get_inline_styles_by_post_id( $prod_val );
				}
			}

			if( isset( $post->ID ) && !empty( $post->ID ) ){
				$chart_ids = $this->scfw_size_chart_id_by_category( $post->ID );
				if( !empty( $chart_ids ) ){
					foreach( $chart_ids as $chart_id ) {
						$cs_style .= scfw_size_chart_get_inline_styles_by_post_id( $chart_id );
					}
				}
				
				$chart_tag_id = $this->scfw_size_chart_id_by_tag( $post->ID );
				if( !empty($chart_tag_id) ){
					foreach( $chart_tag_id as $chart_id ) {
						$cs_style .= scfw_size_chart_get_inline_styles_by_post_id( $chart_id );
					}
				}
					
				$chart_attr_id = $this->scfw_size_chart_id_by_attributes( $post->ID );			
				if ( !empty( $chart_attr_id ) ) {				
					foreach( $chart_attr_id as $chart_id ) {
						$cs_style .= scfw_size_chart_get_inline_styles_by_post_id( $chart_id );
					}
				}
				return $cs_style;
			}
		}

		return false;

	}

    /**
     * Get country code is allow to show size chart popup or not
     *
     * @param int $ip IP address for which we want country code.
     *
     * @return bool|int|mixed return country code from ip address which is passed
     * @since 2.4.0
     */
    public function scfw_get_current_user_country__premium_only( $ip = '' ) {
        if( empty($ip) ){

            $HTTP_CLIENT_IP       = filter_input( INPUT_SERVER, 'HTTP_CLIENT_IP', FILTER_SANITIZE_SPECIAL_CHARS );
            $HTTP_X_FORWARDED_FOR = filter_input( INPUT_SERVER, 'HTTP_X_FORWARDED_FOR', FILTER_SANITIZE_SPECIAL_CHARS );
            $HTTP_X_FORWARDED     = filter_input( INPUT_SERVER, 'HTTP_X_FORWARDED', FILTER_SANITIZE_SPECIAL_CHARS );
            $HTTP_FORWARDED_FOR   = filter_input( INPUT_SERVER, 'HTTP_FORWARDED_FOR', FILTER_SANITIZE_SPECIAL_CHARS );
            $HTTP_FORWARDED       = filter_input( INPUT_SERVER, 'HTTP_FORWARDED', FILTER_SANITIZE_SPECIAL_CHARS );
            $REMOTE_ADDR          = filter_input( INPUT_SERVER, 'REMOTE_ADDR', FILTER_SANITIZE_SPECIAL_CHARS );

            if ( isset( $HTTP_CLIENT_IP ) )
                $ip = $HTTP_CLIENT_IP;
            else if ( isset( $HTTP_X_FORWARDED_FOR ) )
                $ip = $HTTP_X_FORWARDED_FOR;
            else if ( isset( $HTTP_X_FORWARDED ) )
                $ip = $HTTP_X_FORWARDED;
            else if ( isset( $HTTP_FORWARDED_FOR ) )
                $ip = $HTTP_FORWARDED_FOR;
            else if ( isset( $HTTP_FORWARDED ) )
                $ip = $HTTP_FORWARDED;
            else if ( isset( $REMOTE_ADDR ) )
                $ip = $REMOTE_ADDR;
            else
                $ip = '127.0.0.1';
        }

        $ip_country_data = get_transient( 'scfw_ip_country_data' );
        if( false === $ip_country_data ){
            $api_url = 'http://www.geoplugin.net/json.gp?ip=' . $ip;
        
	        $response = wp_remote_get($api_url, array(
	            'timeout' => 5,
	            'user-agent' => 'WordPress/Size-Chart-Plugin',
	            'headers' => array(
	                'Accept' => 'application/json'
	            )
	        ));

	        // Check for errors and validate response
	        if (!is_wp_error($response) && 
	            wp_remote_retrieve_response_code($response) === 200 && 
	            !empty(wp_remote_retrieve_body($response))) {
	            
	            $ipdat = json_decode(wp_remote_retrieve_body($response));
	            
	            if (isset($ipdat->geoplugin_countryCode) && !empty($ipdat->geoplugin_countryCode)) {
	                set_transient('scfw_ip_country_data', array($ip => $ipdat->geoplugin_countryCode), DAY_IN_SECONDS);
	            } else {
	                $ip_country_data = array($ip => WC()->countries->get_base_country());
	                set_transient('scfw_ip_country_data', $ip_country_data, DAY_IN_SECONDS);
	            }
	        } else {
	            // If API call fails, fallback to base country
	            $ip_country_data = array($ip => WC()->countries->get_base_country());
	            set_transient('scfw_ip_country_data', $ip_country_data, DAY_IN_SECONDS);
            }
        }

        // Return if not an array
		if ( ! is_array( $ip_country_data ) ) {
		     return;
		}

        if( ! isset($ip_country_data[$ip] ) && is_array( $ip_country_data ) ){
            $api_url = 'http://www.geoplugin.net/json.gp?ip=' . $ip;
            
            $response = wp_remote_get($api_url, array(
                'timeout' => 5,
                'user-agent' => 'WordPress/Size-Chart-Plugin',
                'headers' => array(
                    'Accept' => 'application/json'
                )
            ));

            // Check for errors and validate response
            if (!is_wp_error($response) && 
                wp_remote_retrieve_response_code($response) === 200 && 
                !empty(wp_remote_retrieve_body($response))) {
                
                $ipdat = json_decode(wp_remote_retrieve_body($response));
                
                if (isset($ipdat->geoplugin_countryCode) && !empty($ipdat->geoplugin_countryCode)) {
                    $ip_country_data = $ip_country_data + array($ip => $ipdat->geoplugin_countryCode);
                    set_transient('scfw_ip_country_data', $ip_country_data, DAY_IN_SECONDS);
                } else {
                    $ip_country_data = $ip_country_data + array($ip => WC()->countries->get_base_country());
					set_transient('scfw_ip_country_data', $ip_country_data, DAY_IN_SECONDS);
                }
            } else {
                // If API call fails, fallback to base country
                $ip_country_data = $ip_country_data + array($ip => WC()->countries->get_base_country());
                set_transient( 'scfw_ip_country_data', $ip_country_data, DAY_IN_SECONDS );
            }
        }

        return $ip_country_data[$ip];
    }

    /**
	 * Display size chart by shortcode with chart id
	 * 
	 * @since 2.4.2
	 */
	public static function scfw_size_chart_shortcode_with_id_callback__premium_only( $attr ) {
		$attr = shortcode_atts( array(
	        'id' => '',
	    ), $attr, 'scfw_size_chart' );

	    if ( isset( $attr['id'] ) && !empty( $attr['id'] ) ) {
	    	$chart_id = intval($attr['id']);

	    	$chart_label    = scfw_size_chart_get_label_by_chart_id( $chart_id );
			$chart_position = scfw_size_chart_get_position_by_chart_id( $chart_id );
			?>
			<div class="scfw-size-chart-main md-size-chart-modal-main scfw-by-individual-shortcode">
				<?php
				// Size chart default css
		    	$inline_style_varibale = scfw_size_chart_get_inline_styles_by_post_id( $chart_id );
				if ( false !== $inline_style_varibale ) {
					echo '<style>'.wp_kses_post($inline_style_varibale).'</style>';
				}

				// Get size chart content
				if ( 0 !== $chart_id && 'popup' === $chart_position ) {
					$chart_popup_label = scfw_size_chart_get_popup_label_by_chart_id( $chart_id );
					if ( isset( $chart_popup_label ) && ! empty( $chart_popup_label ) ) {
						$popup_label = $chart_popup_label;
					} else {
						$size_chart_popup_label = scfw_size_chart_get_popup_label();
						if ( isset( $size_chart_popup_label ) && ! empty( $size_chart_popup_label ) ) {
							$popup_label = $size_chart_popup_label;
						} else {
							$popup_label = $chart_label;
						}
					}

					$size_chart_get_button_class = '';
					$popup_position = 'center';
					if ( scfw_fs()->is__premium_only() ) {
						if ( scfw_fs()->can_use_premium_code() ) {
							$size_chart_get_button_class = scfw_size_chart_get_button_class();
							$popup_position = scfw_get_popup_postition__premium_only( $chart_id );
						}
					}
					$popup_type = '';
	                $chart_popup_type = scfw_size_chart_get_popup_type_by_chart_id( $chart_id );
	                if ( isset( $chart_popup_type ) && ! empty( $chart_popup_type ) && 'global' !== $chart_popup_type ) {
						$popup_type = $chart_popup_type;
					} else {
	                    $size_chart_popup_type = scfw_size_chart_get_popup_type();
						if ( isset( $size_chart_popup_type ) && ! empty( $size_chart_popup_type ) ) {
							$popup_type = $size_chart_popup_type;
						}
	                }
	                $chart_popup_icon = scfw_size_chart_get_popup_icon_by_chart_id( $chart_id );
	                if( !empty( $chart_popup_icon ) ){
	                    $popup_label = sprintf( __( '<span class="dashicons"><img src="%1$s" alt="%2$s" /></span>', 'size-chart-for-woocommerce' ), esc_url(SCFW_PLUGIN_URL.'includes/chart-icons/'.$chart_popup_icon.'.svg'), $chart_popup_icon ).$popup_label;
	                }
					?>
					
						<div class="button-wrapper">
	                        <?php if('text' === $popup_type ){ ?>
	                            <a class="<?php echo esc_attr( $size_chart_get_button_class ); ?> md-size-chart-btn" chart-data-id="chart-<?php echo esc_attr($chart_id); ?>" href="javascript:void(0);">
	                                <?php echo wp_kses_post( $popup_label ); ?>
	                            </a>
	                        <?php } else { ?>
	                            <button class="<?php echo esc_attr( $size_chart_get_button_class ); ?> button md-size-chart-btn" chart-data-id="chart-<?php echo esc_attr($chart_id); ?>"><?php echo wp_kses_post( $popup_label ); ?></button>
	                        <?php } ?>
	                    </div>
						<div id="md-size-chart-modal" chart-data-id="chart-<?php echo esc_attr($chart_id); ?>" class="md-size-chart-modal scfw-size-chart-modal <?php echo esc_attr( 'scfw-size-chart-popup-' . $popup_position ); ?>">
							<div class="md-size-chart-modal-content">
								<div class="md-size-chart-overlay"></div>
								<div class="md-size-chart-modal-body <?php echo esc_attr(scfw_size_chart_get_size()); ?>" id="md-poup">
									<?php
									$file_dir_path = 'includes/common-files/size-chart-contents.php';
									if ( file_exists( plugin_dir_path( dirname( __FILE__ ) ) . $file_dir_path ) ) {
										include plugin_dir_path( dirname( __FILE__ ) ) . $file_dir_path;
									}
									?>
								</div>
							</div>
						</div>
					<?php
				} elseif ( 0 !== $chart_id && 'tab' === $chart_position ) {
					$file_dir_path = 'includes/common-files/size-chart-contents.php';
					if ( file_exists( plugin_dir_path( dirname( __FILE__ ) ) . $file_dir_path ) ) {
						include plugin_dir_path( dirname( __FILE__ ) ) . $file_dir_path;
					}
				} ?>
			</div>
			<?php
	    }
		
	}
}
/** Added new shortcode for size chart link */
add_shortcode('scfw_product_size_chart', 'scfw_size_chart_link_shortcode' );

function scfw_size_chart_link_shortcode() {
	ob_start();
		echo esc_html( SCFW_Size_Chart_For_Woocommerce_Public::scfw_size_chart_popup_shortcode_callback() );
	return ob_get_clean();
}
if ( scfw_fs()->is__premium_only() ) {
	if ( scfw_fs()->can_use_premium_code() ) {
		add_shortcode('scfw_size_chart', 'scfw_size_chart_shortcode_with_id' );

		function scfw_size_chart_shortcode_with_id( $attr ) {
			ob_start();
				echo esc_html( SCFW_Size_Chart_For_Woocommerce_Public::scfw_size_chart_shortcode_with_id_callback__premium_only( $attr ) );
			return ob_get_clean();
		}
	}
}/* End custom CSS */