{"id":159063,"date":"2025-10-09T00:51:47","date_gmt":"2025-10-08T22:51:47","guid":{"rendered":"https:\/\/www.cuttalo.com\/?page_id=159063"},"modified":"2025-10-10T05:15:29","modified_gmt":"2025-10-10T03:15:29","slug":"remove-image-background","status":"publish","type":"page","link":"https:\/\/www.cuttalo.com\/en\/remove-image-background\/","title":{"rendered":"AI Background Remover"},"content":{"rendered":"<!--themify_builder_content-->\n<div id=\"themify_builder_content-159063\" data-postid=\"159063\" class=\"themify_builder_content themify_builder_content-159063 themify_builder tf_clear\">\n                    <div  data-lazy=\"1\" class=\"module_row themify_builder_row tb_7x11969 tb_first tf_w\">\n                        <div class=\"row_inner col_align_top tb_col_count_1 tf_box tf_rel\">\n                        <div  data-lazy=\"1\" class=\"module_column tb-column col-full tb_rlp6969 first\">\n                    <!-- module plain text -->\n<div  class=\"module module-plain-text tb_ibt4969 \" data-lazy=\"1\">\n        <div class=\"tb_text_wrap\">\n    \r\n<!-- Schema.org Structured Data for SEO -->\r\n<script type=\"application\/ld+json\">\r\n{\r\n  \"@context\": \"https:\/\/schema.org\",\r\n  \"@type\": \"SoftwareApplication\",\r\n  \"name\": \"RemoveBG AI - Background Remover\",\r\n  \"applicationCategory\": \"MultimediaApplication\",\r\n  \"operatingSystem\": \"Web Browser\",\r\n  \"offers\": {\r\n    \"@type\": \"Offer\",\r\n    \"price\": \"0\",\r\n    \"priceCurrency\": \"EUR\",\r\n    \"description\": \"Free trial available, paid credits for unlimited use\"\r\n  },\r\n  \"aggregateRating\": {\r\n    \"@type\": \"AggregateRating\",\r\n    \"ratingValue\": \"4.8\",\r\n    \"ratingCount\": \"1250\"\r\n  },\r\n  \"featureList\": [\r\n    \"Automatic background removal with AI\",\r\n    \"Multi-format support (PNG, JPG, PDF, AI, EPS, SVG)\",\r\n    \"Professional quality BiRefNet and BRIA RMBG\",\r\n    \"Multiple batch processing\",\r\n    \"High resolution download\"\r\n  ],\r\n  \"screenshot\": \"https:\/\/www.cuttalo.com\/en\/wp-content\/uploads\/removebg-screenshot.png\",\r\n  \"url\": \"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/pages\/159063\",\r\n  \"provider\": {\r\n    \"@type\": \"Organization\",\r\n    \"name\": \"cuttalo.com\",\r\n    \"url\": \"https:\/\/www.cuttalo.com\/en\/\"\r\n  }\r\n}\r\n<\/script>\r\n\r\n<article class=\"removebg-tool-v2\" itemscope itemtype=\"https:\/\/schema.org\/SoftwareApplication\">\r\n    <!-- Hero Section -->\r\n    <header class=\"removebg-hero\">\r\n        <div class=\"removebg-hero-logo\">\r\n            <img decoding=\"async\" src=\"https:\/\/www.cuttalo.com\/wp-content\/uploads\/2025\/10\/Risorsa-24SS.png\" alt=\"Cuttalo Logo\" width=\"200\" height=\"200\" loading=\"eager\" title=\"\">\r\n        <\/div>\r\n        <div class=\"removebg-hero-content\">\r\n            <h1 class=\"removebg-hero-title\" itemprop=\"name\">Remove Background with AI<\/h1>\r\n            <div class=\"removebg-hero-description\" itemprop=\"description\">\r\n                <p class=\"removebg-hero-intro\">\r\n                    <strong>Transform your photos into professional images<\/strong> ready for e-commerce, catalogs and social media. No Photoshop, no technical skills required.                 <\/p>\r\n                <p class=\"removebg-hero-free\">\r\n                    \ud83c\udf81 <strong>1 free images<\/strong> to get started \u2022 No registration required!                 <\/p>\r\n                <p class=\"removebg-hero-bonus\">\r\n                    \ud83c\udf89 <strong>Register today<\/strong> and receive <strong>10 bonus credits<\/strong> for high-resolution images without watermark!                <\/p>\r\n                <p class=\"removebg-hero-features\">\r\n                    \u2728 <strong>Perfect for:<\/strong> Online Shops \u2022 Marketplaces \u2022 Designers \u2022 Photographers \u2022 Agencies<br>\u2713 Save hours of work &nbsp;\u2022&nbsp; \u2713 Studio-quality results &nbsp;\u2022&nbsp; \u2713 Instant delivery                <\/p>\r\n                <p class=\"removebg-hero-formats\">\r\n                    \ud83d\udcc1 <strong>Upload any format<\/strong> from your product catalog, photo archive or work files:<br>PNG \u2022 JPG \u2022 PDF \u2022 AI \u2022 EPS \u2022 SVG \u2022 TIFF \u2022 WebP and 20+ formats supported                <\/p>\r\n            <\/div>\r\n        <\/div>\r\n    <\/header>\r\n\r\n    <!-- Credits Display -->\r\n    <div class=\"removebg-credits-bar\">\r\n                    <div class=\"removebg-credits-info removebg-credits-free\">\r\n                <span class=\"removebg-credits-icon\">\ud83c\udd93<\/span>\r\n                <span class=\"removebg-credits-text\">\r\n                    <strong id=\"removebg-free-count\">1<\/strong> \/ 1                    low resolution free images available,\r\n                    register to get real credits!                <\/span>\r\n                <a href=\"#\" class=\"removebg-credits-register openLoginPopup\">\r\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                        <path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"><\/path>\r\n                        <circle cx=\"8.5\" cy=\"7\" r=\"4\"><\/circle>\r\n                        <polyline points=\"17 11 19 13 23 9\"><\/polyline>\r\n                    <\/svg>\r\n                    Get free credits!                <\/a>\r\n            <\/div>\r\n                <\/div>\r\n\r\n    <!-- Main Tool Wrapper -->\r\n    <section class=\"removebg-main-wrapper\" itemscope itemprop=\"applicationSubCategory\">\r\n        <!-- Main Tool -->\r\n        <div class=\"removebg-main\" role=\"application\" aria-label=\"Background removal tool interface\">\r\n            <!-- Processing overlay -->\r\n            <div class=\"removebg-processing\" id=\"removebg-processing\" style=\"display: none;\" role=\"status\" aria-live=\"polite\">\r\n                <div class=\"removebg-processing-card\">\r\n                    <div class=\"removebg-processing-text\">Processing<\/div>\r\n                    <div class=\"removebg-processing-percent\">0%<\/div>\r\n                    <div class=\"removebg-processing-bar\">\r\n                        <div class=\"removebg-processing-fill\"><\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Comparison Viewer (always visible with demo) -->\r\n            <div class=\"removebg-viewer\" id=\"removebg-viewer\">\r\n                <div class=\"removebg-canvas\" id=\"removebg-canvas\">\r\n                    <div class=\"removebg-canvas-container\">\r\n                        <!-- Original (left side) -->\r\n                        <div class=\"removebg-side removebg-side-original\">\r\n                            <picture>\r\n                                <source\r\n                                    srcset=\"https:\/\/www.cuttalo.com\/wp-content\/plugins\/00 removebg-ai\/assets\/img_princ-600w.webp 600w,\r\n                                            https:\/\/www.cuttalo.com\/wp-content\/plugins\/00 removebg-ai\/assets\/img_princ-800w.webp 800w,\r\n                                            https:\/\/www.cuttalo.com\/wp-content\/plugins\/00 removebg-ai\/assets\/img_princ-1000w.webp 1000w,\r\n                                            https:\/\/www.cuttalo.com\/wp-content\/plugins\/00 removebg-ai\/assets\/img_princ-2000w.webp 2000w\"\r\n                                    sizes=\"(max-width: 767px) 100vw, (max-width: 1023px) 80vw, 600px\"\r\n                                    type=\"image\/webp\">\r\n                                <img decoding=\"async\" src=\"https:\/\/www.cuttalo.com\/wp-content\/plugins\/00 removebg-ai\/assets\/img_princ-800w.jpg\" srcset=\"https:\/\/www.cuttalo.com\/wp-content\/plugins\/00 removebg-ai\/assets\/img_princ-600w.jpg 600w,\r\n                                             https:\/\/www.cuttalo.com\/wp-content\/plugins\/00 removebg-ai\/assets\/img_princ-800w.jpg 800w,\r\n                                             https:\/\/www.cuttalo.com\/wp-content\/plugins\/00 removebg-ai\/assets\/img_princ-1000w.jpg 1000w\" sizes=\"auto, (max-width: 767px) 100vw, (max-width: 1023px) 80vw, 600px\" alt=\"Cuttalo logo with background - Before removal example\" id=\"removebg-img-original\" loading=\"lazy\" width=\"800\" height=\"800\" title=\"\">\r\n                            <\/picture>\r\n                            <span class=\"removebg-label\">Original<\/span>\r\n                        <\/div>\r\n\r\n                        <!-- Processed (right side) -->\r\n                        <div class=\"removebg-side removebg-side-result\">\r\n                            <picture>\r\n                                <source\r\n                                    srcset=\"https:\/\/www.cuttalo.com\/wp-content\/plugins\/00 removebg-ai\/assets\/demo_result-600w.webp 600w,\r\n                                            https:\/\/www.cuttalo.com\/wp-content\/plugins\/00 removebg-ai\/assets\/demo_result-800w.webp 800w,\r\n                                            https:\/\/www.cuttalo.com\/wp-content\/plugins\/00 removebg-ai\/assets\/demo_result-1000w.webp 1000w,\r\n                                            https:\/\/www.cuttalo.com\/wp-content\/plugins\/00 removebg-ai\/assets\/demo_result-2000w.webp 2000w\"\r\n                                    sizes=\"(max-width: 767px) 100vw, (max-width: 1023px) 80vw, 600px\"\r\n                                    type=\"image\/webp\">\r\n                                <img decoding=\"async\" src=\"https:\/\/www.cuttalo.com\/wp-content\/plugins\/00 removebg-ai\/assets\/demo_result-800w.png\" srcset=\"https:\/\/www.cuttalo.com\/wp-content\/plugins\/00 removebg-ai\/assets\/demo_result-600w.png 600w,\r\n                                             https:\/\/www.cuttalo.com\/wp-content\/plugins\/00 removebg-ai\/assets\/demo_result-800w.png 800w,\r\n                                             https:\/\/www.cuttalo.com\/wp-content\/plugins\/00 removebg-ai\/assets\/demo_result-1000w.png 1000w\" sizes=\"auto, (max-width: 767px) 100vw, (max-width: 1023px) 80vw, 600px\" alt=\"Cuttalo logo with background automatically removed by AI - Perfect result\" id=\"removebg-img-result\" loading=\"lazy\" width=\"800\" height=\"800\" title=\"\">\r\n                            <\/picture>\r\n                            <span class=\"removebg-label\">Result<\/span>\r\n                        <\/div>\r\n\r\n                        <!-- Slider -->\r\n                        <div class=\"removebg-slider\" id=\"removebg-slider\">\r\n                            <div class=\"removebg-slider-handle\">\r\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                                    <polyline points=\"15 18 9 12 15 6\"><\/polyline>\r\n                                <\/svg>\r\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                                    <polyline points=\"9 18 15 12 9 6\"><\/polyline>\r\n                                <\/svg>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Controls -->\r\n            <div class=\"removebg-controls\">\r\n                <!-- Background Selector -->\r\n                <div class=\"removebg-bg-selector\">\r\n                    <label>Background:<\/label>\r\n                    <div class=\"removebg-bg-grid\">\r\n                        <button class=\"removebg-bg-btn removebg-bg-transparent active\" data-bg=\"transparent\" title=\"Transparent\">\r\n                            <span class=\"removebg-bg-checkerboard\"><\/span>\r\n                        <\/button>\r\n                        <button class=\"removebg-bg-btn removebg-bg-white\" data-bg=\"white\" title=\"White\"><\/button>\r\n                        <button class=\"removebg-bg-btn removebg-bg-black\" data-bg=\"black\" title=\"Black\"><\/button>\r\n                        <button class=\"removebg-bg-btn removebg-bg-blue\" data-bg=\"blue\" title=\"Blue\"><\/button>\r\n                        <button class=\"removebg-bg-btn removebg-bg-green\" data-bg=\"green\" title=\"Green\"><\/button>\r\n                        <button class=\"removebg-bg-btn removebg-bg-purple\" data-bg=\"purple\" title=\"Purple\"><\/button>\r\n                        <button class=\"removebg-bg-btn removebg-bg-red\" data-bg=\"red\" title=\"Red\"><\/button>\r\n                        <button class=\"removebg-bg-btn removebg-bg-custom\" data-bg=\"custom\" title=\"Custom Image\">\r\n                            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                                <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"\/>\r\n                                <circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"\/>\r\n                                <polyline points=\"21 15 16 10 5 21\"\/>\r\n                            <\/svg>\r\n                        <\/button>\r\n                    <\/div>\r\n                    <input type=\"file\" id=\"removebg-custom-bg-input\" accept=\"image\/*\" style=\"display: none;\">\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- Action Buttons Group -->\r\n        <div class=\"removebg-buttons-group\">\r\n            <!-- Upload Button -->\r\n            <button type=\"button\" class=\"removebg-btn removebg-btn-upload\" id=\"removebg-btn-upload\" aria-label=\"Upload your image to remove background\">\r\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\r\n                    <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"><\/path>\r\n                    <polyline points=\"17 8 12 3 7 8\"><\/polyline>\r\n                    <line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\"><\/line>\r\n                <\/svg>\r\n                Upload Your Image            <\/button>\r\n            <input type=\"file\" id=\"removebg-file-input\" accept=\"image\/*,.pdf,.ai,.eps,.svg,.tif,.tiff,.bmp,.psd\" style=\"display: none;\" aria-label=\"Select image file\">\r\n\r\n            <!-- Download Button (only for logged in users) -->\r\n            \r\n            <!-- High Resolution Download for logged in users with credits -->\r\n            \r\n            <!-- Credits Info Box -->\r\n            <div class=\"removebg-credits-info-box\">\r\n                                    <div class=\"removebg-info-item\">\r\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                            <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                            <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"><\/line>\r\n                            <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"><\/line>\r\n                        <\/svg>\r\n                        <span>Free version: <strong>600x600px<\/strong> with watermark<\/span>\r\n                    <\/div>\r\n\r\n                    <!-- Download Button for guest users -->\r\n                    <button type=\"button\" class=\"removebg-btn removebg-btn-download\" id=\"removebg-btn-download\" aria-label=\"Download image with removed background\">\r\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\r\n                            <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"><\/path>\r\n                            <polyline points=\"7 10 12 15 17 10\"><\/polyline>\r\n                            <line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"><\/line>\r\n                        <\/svg>\r\n                        <span id=\"download-label-text\">Download Image<\/span>\r\n                    <\/button>\r\n\r\n                    <!-- Image Sharing Buttons (shown after processing) -->\r\n                    <div class=\"removebg-share-container\" id=\"removebg-share-low-res\" style=\"display: none;\">\r\n                        <div class=\"removebg-share-label\">Share image<\/div>\r\n                        <div class=\"removebg-image-share-buttons\" id=\"removebg-share-buttons-low\">\r\n                            <!-- Buttons will be dynamically added by JavaScript -->\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <a href=\"#\" class=\"removebg-buy-credits-btn openLoginPopup\">\r\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                            <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"><\/path>\r\n                            <circle cx=\"12\" cy=\"7\" r=\"4\"><\/circle>\r\n                        <\/svg>\r\n                        Register for High Resolution                    <\/a>\r\n                    <a href=\"#price\" class=\"removebg-buy-credits-btn\" style=\"margin-top: 8px;\">\r\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                            <circle cx=\"9\" cy=\"21\" r=\"1\"><\/circle>\r\n                            <circle cx=\"20\" cy=\"21\" r=\"1\"><\/circle>\r\n                            <path d=\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"><\/path>\r\n                        <\/svg>\r\n                        Buy Credits                    <\/a>\r\n                                <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- Features -->\r\n    <section class=\"removebg-features\" aria-label=\"Service features\">\r\n        <div class=\"removebg-feature\">\r\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                <path d=\"M13 2L3 14h9l-1 8 10-12h-9l1-8z\"\/>\r\n            <\/svg>\r\n            <h3>Instant Processing<\/h3>\r\n            <p>State-of-the-art AI that removes complex backgrounds in 10-30 seconds. No waiting, no manual configuration.<\/p>\r\n        <\/div>\r\n        <div class=\"removebg-feature\">\r\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                <polyline points=\"20 6 9 17 4 12\"\/>\r\n            <\/svg>\r\n            <h3>Professional Quality<\/h3>\r\n            <p>Pixel-perfect precision with advanced handling of hair, fur, transparencies and complex objects. Graphic studio results.<\/p>\r\n        <\/div>\r\n        <div class=\"removebg-feature\">\r\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"\/>\r\n                <path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/>\r\n            <\/svg>\r\n            <h3>Total Privacy<\/h3>\r\n            <p>Your images are processed securely and automatically deleted after download. No tracking.<\/p>\r\n        <\/div>\r\n        <div class=\"removebg-feature\">\r\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"><\/rect>\r\n                <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"><\/rect>\r\n                <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"><\/rect>\r\n                <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"><\/rect>\r\n            <\/svg>\r\n            <h3>Batch Processing<\/h3>\r\n            <p>Process hundreds of images simultaneously. Perfect for e-commerce, photographers and companies managing catalogs.<\/p>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    \r\n<section class=\"removebg-examples-section\">\r\n    <div class=\"removebg-examples-header\">\r\n        <h3>See AI Magic in Action<\/h3>\r\n        <p>Drag the slider on any example to compare before and after. Real results processed with our AI technology.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"removebg-examples-grid\">\r\n                <div class=\"removebg-example-item\" data-example-id=\"1\">\r\n            <div class=\"removebg-example-header\">\r\n                <div class=\"removebg-example-title\">Portraits &amp; People<\/div>\r\n                <div class=\"removebg-example-description\">Perfectly detailed hair with natural transparencies<\/div>\r\n            <\/div>\r\n\r\n            <div class=\"removebg-example-comparison\">\r\n                <div class=\"removebg-example-container\">\r\n                    <!-- Original Image -->\r\n                    <div class=\"removebg-example-original\">\r\n                        <img decoding=\"async\" src=\"https:\/\/www.cuttalo.com\/wp-content\/plugins\/00%20removebg-ai\/assets\/examples\/example1-original.jpg\" alt=\"Original Portraits &amp; People\" title=\"\">\r\n                        <span class=\"removebg-example-label removebg-example-label-before\">Before<\/span>\r\n                    <\/div>\r\n\r\n                    <!-- Processed Image -->\r\n                    <div class=\"removebg-example-result\">\r\n                        <img decoding=\"async\" src=\"https:\/\/www.cuttalo.com\/wp-content\/plugins\/00%20removebg-ai\/assets\/examples\/example1-processed.png\" alt=\"Processed Portraits &amp; People\" title=\"\">\r\n                        <span class=\"removebg-example-label removebg-example-label-after\">After<\/span>\r\n                    <\/div>\r\n\r\n                    <!-- Slider Handle -->\r\n                    <div class=\"removebg-example-slider\">\r\n                        <div class=\"removebg-example-slider-button\">\r\n                            <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n                                <!-- Left arrow -->\r\n                                <path d=\"M20 24l-8-8 8-8\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n                                <!-- Right arrow -->\r\n                                <path d=\"M12 8l8 8-8 8\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n                            <\/svg>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n                <div class=\"removebg-example-item\" data-example-id=\"2\">\r\n            <div class=\"removebg-example-header\">\r\n                <div class=\"removebg-example-title\">Products &amp; E-commerce<\/div>\r\n                <div class=\"removebg-example-description\">Sharp and professional edges for online catalogs<\/div>\r\n            <\/div>\r\n\r\n            <div class=\"removebg-example-comparison\">\r\n                <div class=\"removebg-example-container\">\r\n                    <!-- Original Image -->\r\n                    <div class=\"removebg-example-original\">\r\n                        <img decoding=\"async\" src=\"https:\/\/www.cuttalo.com\/wp-content\/plugins\/00%20removebg-ai\/assets\/examples\/example2-original.jpg\" alt=\"Original Products &amp; E-commerce\" title=\"\">\r\n                        <span class=\"removebg-example-label removebg-example-label-before\">Before<\/span>\r\n                    <\/div>\r\n\r\n                    <!-- Processed Image -->\r\n                    <div class=\"removebg-example-result\">\r\n                        <img decoding=\"async\" src=\"https:\/\/www.cuttalo.com\/wp-content\/plugins\/00%20removebg-ai\/assets\/examples\/example2-processed.png\" alt=\"Processed Products &amp; E-commerce\" title=\"\">\r\n                        <span class=\"removebg-example-label removebg-example-label-after\">After<\/span>\r\n                    <\/div>\r\n\r\n                    <!-- Slider Handle -->\r\n                    <div class=\"removebg-example-slider\">\r\n                        <div class=\"removebg-example-slider-button\">\r\n                            <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n                                <!-- Left arrow -->\r\n                                <path d=\"M20 24l-8-8 8-8\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n                                <!-- Right arrow -->\r\n                                <path d=\"M12 8l8 8-8 8\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n                            <\/svg>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n                <div class=\"removebg-example-item\" data-example-id=\"3\">\r\n            <div class=\"removebg-example-header\">\r\n                <div class=\"removebg-example-title\">Logos &amp; Branding<\/div>\r\n                <div class=\"removebg-example-description\">Pixel-perfect precision for marketing materials<\/div>\r\n            <\/div>\r\n\r\n            <div class=\"removebg-example-comparison\">\r\n                <div class=\"removebg-example-container\">\r\n                    <!-- Original Image -->\r\n                    <div class=\"removebg-example-original\">\r\n                        <img decoding=\"async\" src=\"https:\/\/www.cuttalo.com\/wp-content\/plugins\/00%20removebg-ai\/assets\/examples\/example3-original.jpg\" alt=\"Original Logos &amp; Branding\" title=\"\">\r\n                        <span class=\"removebg-example-label removebg-example-label-before\">Before<\/span>\r\n                    <\/div>\r\n\r\n                    <!-- Processed Image -->\r\n                    <div class=\"removebg-example-result\">\r\n                        <img decoding=\"async\" src=\"https:\/\/www.cuttalo.com\/wp-content\/plugins\/00%20removebg-ai\/assets\/examples\/example3-processed.png\" alt=\"Processed Logos &amp; Branding\" title=\"\">\r\n                        <span class=\"removebg-example-label removebg-example-label-after\">After<\/span>\r\n                    <\/div>\r\n\r\n                    <!-- Slider Handle -->\r\n                    <div class=\"removebg-example-slider\">\r\n                        <div class=\"removebg-example-slider-button\">\r\n                            <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n                                <!-- Left arrow -->\r\n                                <path d=\"M20 24l-8-8 8-8\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n                                <!-- Right arrow -->\r\n                                <path d=\"M12 8l8 8-8 8\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n                            <\/svg>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n                <div class=\"removebg-example-item\" data-example-id=\"4\">\r\n            <div class=\"removebg-example-header\">\r\n                <div class=\"removebg-example-title\">Complex Objects<\/div>\r\n                <div class=\"removebg-example-description\">Perfect handling of irregular shapes and fine details<\/div>\r\n            <\/div>\r\n\r\n            <div class=\"removebg-example-comparison\">\r\n                <div class=\"removebg-example-container\">\r\n                    <!-- Original Image -->\r\n                    <div class=\"removebg-example-original\">\r\n                        <img decoding=\"async\" src=\"https:\/\/www.cuttalo.com\/wp-content\/plugins\/00%20removebg-ai\/assets\/examples\/example4-original.jpg\" alt=\"Original Complex Objects\" title=\"\">\r\n                        <span class=\"removebg-example-label removebg-example-label-before\">Before<\/span>\r\n                    <\/div>\r\n\r\n                    <!-- Processed Image -->\r\n                    <div class=\"removebg-example-result\">\r\n                        <img decoding=\"async\" src=\"https:\/\/www.cuttalo.com\/wp-content\/plugins\/00%20removebg-ai\/assets\/examples\/example4-processed.png\" alt=\"Processed Complex Objects\" title=\"\">\r\n                        <span class=\"removebg-example-label removebg-example-label-after\">After<\/span>\r\n                    <\/div>\r\n\r\n                    <!-- Slider Handle -->\r\n                    <div class=\"removebg-example-slider\">\r\n                        <div class=\"removebg-example-slider-button\">\r\n                            <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n                                <!-- Left arrow -->\r\n                                <path d=\"M20 24l-8-8 8-8\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n                                <!-- Right arrow -->\r\n                                <path d=\"M12 8l8 8-8 8\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n                            <\/svg>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n            <\/div>\r\n<\/section>\r\n<\/article>\r\n\r\n<!-- Fixed Sharing Buttons (Bottom Left) -->\r\n<div class=\"removebg-fixed-share-sidebar\">\r\n    <button class=\"removebg-share-btn removebg-share-page removebg-share-facebook\" data-platform=\"facebook\" title=\"Facebook\" aria-label=\"Share on Facebook\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n            <path d=\"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z\"\/>\r\n        <\/svg>\r\n    <\/button>\r\n    <button class=\"removebg-share-btn removebg-share-page removebg-share-twitter\" data-platform=\"twitter\" title=\"X (Twitter)\" aria-label=\"Share on X\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n            <path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"\/>\r\n        <\/svg>\r\n    <\/button>\r\n    <button class=\"removebg-share-btn removebg-share-page removebg-share-linkedin\" data-platform=\"linkedin\" title=\"LinkedIn\" aria-label=\"Share on LinkedIn\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n            <path d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z\"\/>\r\n        <\/svg>\r\n    <\/button>\r\n    <button class=\"removebg-share-btn removebg-share-page removebg-share-whatsapp\" data-platform=\"whatsapp\" title=\"WhatsApp\" aria-label=\"Share on WhatsApp\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n            <path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.890-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z\"\/>\r\n        <\/svg>\r\n    <\/button>\r\n    <button class=\"removebg-share-btn removebg-share-page removebg-share-telegram\" data-platform=\"telegram\" title=\"Telegram\" aria-label=\"Share on Telegram\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n            <path d=\"M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z\"\/>\r\n        <\/svg>\r\n    <\/button>\r\n    <button class=\"removebg-share-btn removebg-copy-link removebg-share-copy\" title=\"Copy Link\" aria-label=\"Copy link to clipboard\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n            <path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"><\/path>\r\n            <path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"><\/path>\r\n        <\/svg>\r\n    <\/button>\r\n<\/div>\r\n    <\/div>\n<\/div>\n<!-- \/module plain text -->        <\/div>\n                        <\/div>\n        <\/div>\n                        <div  data-anchor=\"batch\" data-lazy=\"1\" class=\"module_row themify_builder_row tb_has_section tb_section-batch tb_8pob687 tf_w\">\n                        <div class=\"row_inner col_align_top tb_col_count_1 tf_box tf_rel\">\n                        <div  data-lazy=\"1\" class=\"module_column tb-column col-full tb_ctkq687 first\">\n                    <!-- module plain text -->\n<div  class=\"module module-plain-text tb_vtt1687 \" data-lazy=\"1\">\n        <div class=\"tb_text_wrap\">\n    \r\n<article class=\"removebg-batch-tool\" itemscope itemtype=\"https:\/\/schema.org\/SoftwareApplication\">\r\n    <!-- Header -->\r\n    <header class=\"removebg-batch-header\">\r\n        <h2 itemprop=\"name\">Batch Processing - Remove Backgrounds from Hundreds of Images<\/h2>\r\n        <p itemprop=\"description\">Upload up to 50 images at once and receive a ZIP archive with all the results. Perfect for e-commerce, photographers and agencies managing large volumes of images.<\/p>\r\n    <\/header>\r\n\r\n    <!-- Upload Zone -->\r\n    <section class=\"removebg-batch-upload\" id=\"removebg-batch-upload\" aria-label=\"Image upload area\">\r\n        <div class=\"removebg-batch-upload-zone\" id=\"removebg-batch-dropzone\" role=\"button\" aria-label=\"File drag area\">\r\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"64\" height=\"64\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\r\n                <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"><\/path>\r\n                <polyline points=\"17 8 12 3 7 8\"><\/polyline>\r\n                <line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\"><\/line>\r\n            <\/svg>\r\n            <h3>Drag your images here<\/h3>\r\n            <p>Or click to browse (maximum 50 files per processing)<\/p>\r\n            <input type=\"file\" id=\"removebg-batch-input\" accept=\"image\/*,.pdf,.ai,.eps,.svg\" multiple style=\"display: none;\">\r\n                            <button type=\"button\" class=\"removebg-batch-select-btn openLoginPopup\" id=\"removebg-batch-select\">\r\n                    Registrati per il caricamento in massa                <\/button>\r\n                    <\/div>\r\n\r\n        <!-- Info Box -->\r\n        <aside class=\"removebg-batch-info\" aria-label=\"Batch processing information\">\r\n            <div class=\"removebg-batch-info-item\">\r\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\r\n                    <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                    <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"><\/line>\r\n                    <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"><\/line>\r\n                <\/svg>\r\n                <span><strong>2 credits<\/strong> per processed image<\/span>\r\n            <\/div>\r\n            <div class=\"removebg-batch-info-item\">\r\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\r\n                    <polyline points=\"20 6 9 17 4 12\"><\/polyline>\r\n                <\/svg>\r\n                <span>Maximum quality: high resolution without watermark<\/span>\r\n            <\/div>\r\n            <div class=\"removebg-batch-info-item\">\r\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\r\n                    <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"><\/path>\r\n                    <polyline points=\"7 10 12 15 17 10\"><\/polyline>\r\n                    <line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"><\/line>\r\n                <\/svg>\r\n                <span>You will receive an email with the download link. Keep this page open to monitor the processing<\/span>\r\n            <\/div>\r\n            <div class=\"removebg-batch-info-item\">\r\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\r\n                    <path d=\"M13 2L3 14h9l-1 8 10-12h-9l1-8z\"\/>\r\n                <\/svg>\r\n                <span>Ultra-fast parallel processing with AI<\/span>\r\n            <\/div>\r\n        <\/aside>\r\n    <\/section>\r\n\r\n    <!-- Files List -->\r\n    <div class=\"removebg-batch-files\" id=\"removebg-batch-files\" style=\"display: none;\">\r\n        <div class=\"removebg-batch-files-header\">\r\n            <h3>Selected Images <span id=\"removebg-batch-count\">0<\/span><\/h3>\r\n            <div class=\"removebg-batch-summary\">\r\n                <span>Total cost: <strong id=\"removebg-batch-total-credits\">0<\/strong> credits<\/span>\r\n                <button type=\"button\" class=\"removebg-batch-add-more-btn\" id=\"removebg-batch-add-more\">\r\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                        <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"><\/line>\r\n                        <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line>\r\n                    <\/svg>\r\n                    Add More                <\/button>\r\n                <button type=\"button\" class=\"removebg-batch-clear-btn\" id=\"removebg-batch-clear\">Remove All<\/button>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"removebg-batch-files-list\" id=\"removebg-batch-list\">\r\n            <!-- Files will be added here via JS -->\r\n        <\/div>\r\n\r\n        <div class=\"removebg-batch-actions\">\r\n            <button type=\"button\" class=\"removebg-batch-process-btn\" id=\"removebg-batch-process\">\r\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                    <path d=\"M13 2L3 14h9l-1 8 10-12h-9l1-8z\"\/>\r\n                <\/svg>\r\n                Process All Images            <\/button>\r\n            <button type=\"button\" class=\"removebg-batch-download-btn\" id=\"removebg-batch-download\" style=\"display: none;\">\r\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                    <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"><\/path>\r\n                    <polyline points=\"7 10 12 15 17 10\"><\/polyline>\r\n                    <line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"><\/line>\r\n                <\/svg>\r\n                Download ZIP            <\/button>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Progress -->\r\n    <div class=\"removebg-batch-progress\" id=\"removebg-batch-progress\" style=\"display: none;\">\r\n        <h3>Processing in progress...<\/h3>\r\n        <div class=\"removebg-batch-progress-bar\">\r\n            <div class=\"removebg-batch-progress-fill\" id=\"removebg-batch-progress-fill\"><\/div>\r\n        <\/div>\r\n        <div class=\"removebg-batch-progress-text\">\r\n            <span id=\"removebg-batch-progress-current\">0<\/span> \/ <span id=\"removebg-batch-progress-total\">0<\/span> completed        <\/div>\r\n    <\/div>\r\n<\/article>\r\n\r\n<style>\r\n\/* Batch Tool Styles *\/\r\n.removebg-batch-tool {\r\n    max-width: 1200px;\r\n    margin: 40px auto;\r\n    padding: 20px;\r\n}\r\n\r\n.removebg-batch-header {\r\n    text-align: center;\r\n    margin-bottom: 40px;\r\n}\r\n\r\n.removebg-batch-header h2 {\r\n    font-size: 32px;\r\n    font-weight: 700;\r\n    color: #1e293b;\r\n    margin: 0 0 8px 0;\r\n}\r\n\r\n.removebg-batch-header p {\r\n    font-size: 16px;\r\n    color: #64748b;\r\n    margin: 0;\r\n}\r\n\r\n\/* Upload Zone *\/\r\n.removebg-batch-upload {\r\n    background: white;\r\n    border-radius: 16px;\r\n    padding: 40px;\r\n    box-shadow: 0 4px 6px rgba(0,0,0,0.05);\r\n    margin-bottom: 30px;\r\n}\r\n\r\n.removebg-batch-upload-zone {\r\n    border: 2px dashed #cbd5e1;\r\n    border-radius: 12px;\r\n    padding: 60px 40px;\r\n    text-align: center;\r\n    transition: all 0.3s;\r\n    cursor: pointer;\r\n}\r\n\r\n.removebg-batch-upload-zone:hover,\r\n.removebg-batch-upload-zone.dragover {\r\n    border-color: #6366f1;\r\n    background: #f8fafc;\r\n}\r\n\r\n.removebg-batch-upload-zone svg {\r\n    color: #94a3b8;\r\n    margin-bottom: 20px;\r\n}\r\n\r\n.removebg-batch-upload-zone h3 {\r\n    font-size: 20px;\r\n    font-weight: 600;\r\n    color: #1e293b;\r\n    margin: 0 0 8px 0;\r\n}\r\n\r\n.removebg-batch-upload-zone p {\r\n    font-size: 14px;\r\n    color: #64748b;\r\n    margin: 0 0 20px 0;\r\n}\r\n\r\n.removebg-batch-select-btn {\r\n    display: inline-block;\r\n    background: #6366f1;\r\n    color: white;\r\n    padding: 12px 32px;\r\n    border: none;\r\n    border-radius: 8px;\r\n    font-size: 16px;\r\n    font-weight: 600;\r\n    cursor: pointer;\r\n    transition: all 0.2s;\r\n    text-decoration: none;\r\n    user-select: none;\r\n}\r\n\r\n.removebg-batch-select-btn:hover {\r\n    background: #4f46e5;\r\n    transform: translateY(-2px);\r\n    box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);\r\n    color: white;\r\n}\r\n\r\n\/* Info Box *\/\r\n.removebg-batch-info {\r\n    margin-top: 30px;\r\n    padding-top: 30px;\r\n    border-top: 1px solid #e2e8f0;\r\n    display: flex;\r\n    gap: 30px;\r\n    justify-content: center;\r\n    flex-wrap: wrap;\r\n}\r\n\r\n.removebg-batch-info-item {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n    font-size: 14px;\r\n    color: #475569;\r\n}\r\n\r\n.removebg-batch-info-item svg {\r\n    color: #6366f1;\r\n    flex-shrink: 0;\r\n}\r\n\r\n\/* Files List *\/\r\n.removebg-batch-files {\r\n    background: white;\r\n    border-radius: 16px;\r\n    padding: 30px;\r\n    box-shadow: 0 4px 6px rgba(0,0,0,0.05);\r\n    margin-bottom: 30px;\r\n}\r\n\r\n.removebg-batch-files-header {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    align-items: center;\r\n    margin-bottom: 20px;\r\n    padding-bottom: 20px;\r\n    border-bottom: 1px solid #e2e8f0;\r\n}\r\n\r\n.removebg-batch-files-header h3 {\r\n    font-size: 20px;\r\n    font-weight: 600;\r\n    color: #1e293b;\r\n    margin: 0;\r\n}\r\n\r\n.removebg-batch-summary {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 20px;\r\n}\r\n\r\n.removebg-batch-add-more-btn {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 6px;\r\n    background: #6366f1;\r\n    color: white;\r\n    padding: 8px 16px;\r\n    border: none;\r\n    border-radius: 6px;\r\n    font-size: 13px;\r\n    font-weight: 600;\r\n    cursor: pointer;\r\n    transition: all 0.2s;\r\n}\r\n\r\n.removebg-batch-add-more-btn:hover {\r\n    background: #4f46e5;\r\n}\r\n\r\n.removebg-batch-add-more-btn svg {\r\n    width: 16px;\r\n    height: 16px;\r\n}\r\n\r\n.removebg-batch-clear-btn {\r\n    background: #ef4444;\r\n    color: white;\r\n    padding: 8px 16px;\r\n    border: none;\r\n    border-radius: 6px;\r\n    font-size: 13px;\r\n    font-weight: 600;\r\n    cursor: pointer;\r\n    transition: all 0.2s;\r\n}\r\n\r\n.removebg-batch-clear-btn:hover {\r\n    background: #dc2626;\r\n}\r\n\r\n.removebg-batch-files-list {\r\n    display: grid;\r\n    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));\r\n    gap: 16px;\r\n    margin-bottom: 30px;\r\n}\r\n\r\n.removebg-batch-file-item {\r\n    position: relative;\r\n    border: 1px solid #e2e8f0;\r\n    border-radius: 8px;\r\n    overflow: hidden;\r\n    aspect-ratio: 1;\r\n    background: #f1f5f9;\r\n}\r\n\r\n.removebg-batch-file-item.loading::before {\r\n    content: '';\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    right: 0;\r\n    bottom: 0;\r\n    background: linear-gradient(\r\n        90deg,\r\n        #f1f5f9 0%,\r\n        #e2e8f0 50%,\r\n        #f1f5f9 100%\r\n    );\r\n    background-size: 200% 100%;\r\n    animation: shimmer 1.5s ease-in-out infinite;\r\n    z-index: 1;\r\n}\r\n\r\n@keyframes shimmer {\r\n    0% { background-position: 200% 0; }\r\n    100% { background-position: -200% 0; }\r\n}\r\n\r\n.removebg-batch-file-item img {\r\n    width: 100%;\r\n    height: 100%;\r\n    object-fit: cover;\r\n    opacity: 0;\r\n    transition: opacity 0.3s ease;\r\n    position: relative;\r\n    z-index: 2;\r\n}\r\n\r\n.removebg-batch-file-item.loaded img {\r\n    opacity: 1;\r\n}\r\n\r\n.removebg-batch-file-remove {\r\n    position: absolute;\r\n    top: 4px;\r\n    right: 4px;\r\n    background: rgba(239, 68, 68, 0.9);\r\n    color: white;\r\n    width: 24px;\r\n    height: 24px;\r\n    border: none;\r\n    border-radius: 50%;\r\n    cursor: pointer;\r\n    font-size: 16px;\r\n    line-height: 1;\r\n    transition: all 0.2s;\r\n}\r\n\r\n.removebg-batch-file-remove:hover {\r\n    background: #dc2626;\r\n    transform: scale(1.1);\r\n}\r\n\r\n.removebg-batch-file-status {\r\n    position: absolute;\r\n    bottom: 0;\r\n    left: 0;\r\n    right: 0;\r\n    background: rgba(0, 0, 0, 0.7);\r\n    color: white;\r\n    padding: 4px 8px;\r\n    font-size: 11px;\r\n    text-align: center;\r\n    z-index: 3;\r\n}\r\n\r\n.removebg-batch-file-item.loading .removebg-batch-file-status {\r\n    background: transparent;\r\n    padding: 0;\r\n    height: 4px;\r\n    overflow: hidden;\r\n}\r\n\r\n.removebg-batch-file-item.loading .removebg-batch-file-status::before {\r\n    content: '';\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    right: 0;\r\n    bottom: 0;\r\n    background: linear-gradient(90deg, #6366f1 0%, #8b5cf6 50%, #6366f1 100%);\r\n    background-size: 200% 100%;\r\n    animation: loadingBar 1.5s ease-in-out infinite;\r\n}\r\n\r\n@keyframes loadingBar {\r\n    0% { background-position: 200% 0; }\r\n    100% { background-position: -200% 0; }\r\n}\r\n\r\n.removebg-batch-file-item.processing {\r\n    border-color: #6366f1;\r\n    box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.2);\r\n}\r\n\r\n.removebg-batch-file-item.processing::after {\r\n    content: '';\r\n    position: absolute;\r\n    top: 50%;\r\n    left: 50%;\r\n    transform: translate(-50%, -50%);\r\n    width: 40px;\r\n    height: 40px;\r\n    border: 3px solid rgba(255, 255, 255, 0.3);\r\n    border-top-color: #6366f1;\r\n    border-radius: 50%;\r\n    animation: spin 0.8s linear infinite;\r\n    z-index: 10;\r\n}\r\n\r\n@keyframes spin {\r\n    from { transform: translate(-50%, -50%) rotate(0deg); }\r\n    to { transform: translate(-50%, -50%) rotate(360deg); }\r\n}\r\n\r\n.removebg-batch-file-item.processing .removebg-batch-file-status {\r\n    background: rgba(99, 102, 241, 0.9);\r\n}\r\n\r\n.removebg-batch-file-item.completed {\r\n    border-color: #22c55e;\r\n}\r\n\r\n.removebg-batch-file-item.completed .removebg-batch-file-status {\r\n    background: rgba(34, 197, 94, 0.9);\r\n}\r\n\r\n.removebg-batch-file-item.error {\r\n    border-color: #ef4444;\r\n}\r\n\r\n.removebg-batch-file-item.error .removebg-batch-file-status {\r\n    background: rgba(239, 68, 68, 0.9);\r\n}\r\n\r\n\/* Actions *\/\r\n.removebg-batch-actions {\r\n    display: flex;\r\n    gap: 16px;\r\n    justify-content: center;\r\n}\r\n\r\n.removebg-batch-process-btn,\r\n.removebg-batch-download-btn {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n    padding: 16px 32px;\r\n    border: none;\r\n    border-radius: 8px;\r\n    font-size: 16px;\r\n    font-weight: 600;\r\n    cursor: pointer;\r\n    transition: all 0.2s;\r\n}\r\n\r\n.removebg-batch-process-btn {\r\n    background: #6366f1;\r\n    color: white;\r\n}\r\n\r\n.removebg-batch-process-btn:hover {\r\n    background: #4f46e5;\r\n    transform: translateY(-2px);\r\n    box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);\r\n}\r\n\r\n.removebg-batch-download-btn {\r\n    background: #10b981;\r\n    color: white;\r\n}\r\n\r\n.removebg-batch-download-btn:hover {\r\n    background: #059669;\r\n    transform: translateY(-2px);\r\n    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);\r\n}\r\n\r\n\/* Progress *\/\r\n.removebg-batch-progress {\r\n    background: white;\r\n    border-radius: 16px;\r\n    padding: 30px;\r\n    box-shadow: 0 4px 6px rgba(0,0,0,0.05);\r\n    text-align: center;\r\n}\r\n\r\n.removebg-batch-progress h3 {\r\n    font-size: 18px;\r\n    font-weight: 600;\r\n    color: #1e293b;\r\n    margin: 0 0 20px 0;\r\n}\r\n\r\n.removebg-batch-progress-bar {\r\n    width: 100%;\r\n    height: 12px;\r\n    background: #e2e8f0;\r\n    border-radius: 6px;\r\n    overflow: hidden;\r\n    margin-bottom: 12px;\r\n}\r\n\r\n.removebg-batch-progress-fill {\r\n    height: 100%;\r\n    background: linear-gradient(90deg, #6366f1 0%, #8b5cf6 100%);\r\n    border-radius: 6px;\r\n    width: 0;\r\n    transition: width 0.3s ease;\r\n}\r\n\r\n.removebg-batch-progress-text {\r\n    font-size: 16px;\r\n    color: #475569;\r\n}\r\n\r\n\/* Responsive *\/\r\n@media (max-width: 768px) {\r\n    .removebg-batch-files-header {\r\n        flex-direction: column;\r\n        align-items: flex-start;\r\n        gap: 16px;\r\n    }\r\n\r\n    .removebg-batch-actions {\r\n        flex-direction: column;\r\n    }\r\n\r\n    .removebg-batch-process-btn,\r\n    .removebg-batch-download-btn {\r\n        width: 100%;\r\n    }\r\n}\r\n<\/style>\r\n\r\n<script>\r\n(function() {\r\n    \/\/ Ensure we wait for both DOM and jQuery\r\n    if (typeof jQuery === 'undefined') {\r\n        console.error('RemoveBG Batch: jQuery not loaded');\r\n        return;\r\n    }\r\n\r\n    jQuery(document).ready(function($) {\r\n        console.log('RemoveBG Batch: Initializing...');\r\n\r\n        \/\/ Intercept interactions for non-logged users\r\n                console.log('RemoveBG Batch: User not logged in - adding login interceptors');\r\n\r\n        \/\/ Create a hidden trigger button for the popup\r\n        if ($('.openLoginPopup').length > 0) {\r\n            \/\/ Intercept dropzone click\r\n            $(document).on('click', '#removebg-batch-dropzone', function(e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n                console.log('Dropzone clicked - triggering login popup');\r\n                $('.openLoginPopup').first().trigger('click');\r\n                return false;\r\n            });\r\n\r\n            \/\/ Intercept selection button click\r\n            $(document).on('click', '#removebg-batch-select', function(e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n                console.log('Selection button clicked - triggering login popup');\r\n                $('.openLoginPopup').first().trigger('click');\r\n                return false;\r\n            });\r\n\r\n            \/\/ Intercept file input (in case someone tries to access it directly)\r\n            $(document).on('click change', '#removebg-batch-input', function(e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n                console.log('File input triggered - triggering login popup');\r\n                $('.openLoginPopup').first().trigger('click');\r\n                return false;\r\n            });\r\n\r\n            \/\/ Intercept drag & drop events\r\n            $(document).on('dragover dragenter', '#removebg-batch-dropzone', function(e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n                return false;\r\n            });\r\n\r\n            $(document).on('drop', '#removebg-batch-dropzone', function(e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n                console.log('Drop event triggered - triggering login popup');\r\n                $('.openLoginPopup').first().trigger('click');\r\n                return false;\r\n            });\r\n        }\r\n\r\n        \/\/ Exit early for non-logged users\r\n        return;\r\n        \r\n        \/\/ ===== CUSTOM MODAL FUNCTIONS =====\r\n\r\n        \/**\r\n         * Show custom alert modal\r\n         *\/\r\n        function showAlert(message, title = '\u26a0\ufe0f', type = 'alert') {\r\n            return new Promise((resolve) => {\r\n                \/\/ Remove any existing modals\r\n                $('.removebg-modal-overlay').remove();\r\n\r\n                \/\/ Create modal HTML\r\n                const modalHtml = `\r\n                    <div class=\"removebg-modal-overlay\">\r\n                        <div class=\"removebg-modal ${type}-type\">\r\n                            <div class=\"removebg-modal-header\">\r\n                                <h3 class=\"removebg-modal-title\">\r\n                                    <span class=\"removebg-modal-title-icon\">${title}<\/span>\r\n                                    ${type === 'alert' ? 'Attenzione' : type === 'error' ? 'Errore' : 'Informazione'}\r\n                                <\/h3>\r\n                            <\/div>\r\n                            <div class=\"removebg-modal-body\">${message}<\/div>\r\n                            <div class=\"removebg-modal-footer\">\r\n                                <button class=\"removebg-modal-btn removebg-modal-btn-primary removebg-modal-ok\">OK<\/button>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                `;\r\n\r\n                $('body').append(modalHtml);\r\n\r\n                \/\/ Handle OK button\r\n                $('.removebg-modal-ok').on('click', function() {\r\n                    $('.removebg-modal-overlay').fadeOut(200, function() {\r\n                        $(this).remove();\r\n                        resolve(true);\r\n                    });\r\n                });\r\n\r\n                \/\/ Handle overlay click\r\n                $('.removebg-modal-overlay').on('click', function(e) {\r\n                    if ($(e.target).hasClass('removebg-modal-overlay')) {\r\n                        $(this).fadeOut(200, function() {\r\n                            $(this).remove();\r\n                            resolve(true);\r\n                        });\r\n                    }\r\n                });\r\n\r\n                \/\/ Handle ESC key\r\n                $(document).one('keydown', function(e) {\r\n                    if (e.key === 'Escape') {\r\n                        $('.removebg-modal-overlay').fadeOut(200, function() {\r\n                            $(this).remove();\r\n                            resolve(true);\r\n                        });\r\n                    }\r\n                });\r\n            });\r\n        }\r\n\r\n        \/**\r\n         * Show custom confirm modal\r\n         *\/\r\n        function showConfirm(message, title = '\u2753') {\r\n            return new Promise((resolve) => {\r\n                \/\/ Remove any existing modals\r\n                $('.removebg-modal-overlay').remove();\r\n\r\n                \/\/ Create modal HTML\r\n                const modalHtml = `\r\n                    <div class=\"removebg-modal-overlay\">\r\n                        <div class=\"removebg-modal confirm-type\">\r\n                            <div class=\"removebg-modal-header\">\r\n                                <h3 class=\"removebg-modal-title\">\r\n                                    <span class=\"removebg-modal-title-icon\">${title}<\/span>\r\n                                    Conferma\r\n                                <\/h3>\r\n                            <\/div>\r\n                            <div class=\"removebg-modal-body\">${message}<\/div>\r\n                            <div class=\"removebg-modal-footer\">\r\n                                <button class=\"removebg-modal-btn removebg-modal-btn-secondary removebg-modal-cancel\">Annulla<\/button>\r\n                                <button class=\"removebg-modal-btn removebg-modal-btn-primary removebg-modal-confirm\">Continua<\/button>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                `;\r\n\r\n                $('body').append(modalHtml);\r\n\r\n                \/\/ Handle confirm button\r\n                $('.removebg-modal-confirm').on('click', function() {\r\n                    $('.removebg-modal-overlay').fadeOut(200, function() {\r\n                        $(this).remove();\r\n                        resolve(true);\r\n                    });\r\n                });\r\n\r\n                \/\/ Handle cancel button\r\n                $('.removebg-modal-cancel').on('click', function() {\r\n                    $('.removebg-modal-overlay').fadeOut(200, function() {\r\n                        $(this).remove();\r\n                        resolve(false);\r\n                    });\r\n                });\r\n\r\n                \/\/ Handle overlay click\r\n                $('.removebg-modal-overlay').on('click', function(e) {\r\n                    if ($(e.target).hasClass('removebg-modal-overlay')) {\r\n                        $(this).fadeOut(200, function() {\r\n                            $(this).remove();\r\n                            resolve(false);\r\n                        });\r\n                    }\r\n                });\r\n\r\n                \/\/ Handle ESC key\r\n                $(document).one('keydown', function(e) {\r\n                    if (e.key === 'Escape') {\r\n                        $('.removebg-modal-overlay').fadeOut(200, function() {\r\n                            $(this).remove();\r\n                            resolve(false);\r\n                        });\r\n                    }\r\n                });\r\n            });\r\n        }\r\n\r\n        const batchState = {\r\n            files: [],\r\n            processedFiles: [],\r\n            isProcessing: false,\r\n            creditsRemaining: 0,\r\n            batchId: null,\r\n            zipUrl: null\r\n        };\r\n\r\n        const CREDITS_PER_IMAGE = 2;\r\n\r\n        \/\/ Verify elements exist\r\n        if ($('#removebg-batch-input').length === 0) {\r\n            console.error('RemoveBG Batch: Input element not found');\r\n            return;\r\n        }\r\n        console.log('RemoveBG Batch: All elements found');\r\n\r\n    \/\/ Get references to elements\r\n    const batchInput = document.getElementById('removebg-batch-input');\r\n    const batchDropzone = document.getElementById('removebg-batch-dropzone');\r\n\r\n    console.log('Batch elements found:', {\r\n        input: !!batchInput,\r\n        dropzone: !!batchDropzone\r\n    });\r\n\r\n    \/\/ File selection - Dropzone click (triggers label which opens file input natively)\r\n    if (batchDropzone) {\r\n        batchDropzone.addEventListener('click', function(e) {\r\n            \/\/ Don't trigger if clicking on remove button or the select label itself\r\n            if (e.target.classList.contains('removebg-batch-file-remove') ||\r\n                e.target.closest('.removebg-batch-file-remove') ||\r\n                e.target.id === 'removebg-batch-select' ||\r\n                e.target.closest('#removebg-batch-select')) {\r\n                return;\r\n            }\r\n            console.log('Batch dropzone clicked - triggering label');\r\n\r\n            \/\/ Trigger the label click (which will open file dialog)\r\n            const label = document.getElementById('removebg-batch-select');\r\n            if (label) {\r\n                label.click();\r\n            }\r\n        }, false);\r\n    }\r\n\r\n    \/\/ File selection - Change event\r\n    if (batchInput) {\r\n        batchInput.addEventListener('change', function(e) {\r\n            console.log('Batch input changed, files:', e.target.files.length);\r\n            handleFiles(e.target.files);\r\n            \/\/ Reset input value to allow selecting the same files again\r\n            e.target.value = '';\r\n        }, false);\r\n    }\r\n\r\n    \/\/ Drag & drop\r\n    const dropzone = $('#removebg-batch-dropzone');\r\n\r\n    dropzone.on('dragover', function(e) {\r\n        e.preventDefault();\r\n        $(this).addClass('dragover');\r\n    });\r\n\r\n    dropzone.on('dragleave', function() {\r\n        $(this).removeClass('dragover');\r\n    });\r\n\r\n    dropzone.on('drop', function(e) {\r\n        e.preventDefault();\r\n        $(this).removeClass('dragover');\r\n        handleFiles(e.originalEvent.dataTransfer.files);\r\n    });\r\n\r\n    async function handleFiles(files) {\r\n        if (files.length === 0) return;\r\n\r\n        \/\/ Limit to 50 files total\r\n        const currentCount = batchState.files.length;\r\n        const maxFiles = 50;\r\n        const availableSlots = maxFiles - currentCount;\r\n\r\n        if (availableSlots <= 0) {\r\n            await showAlert('You have reached the maximum limit of ' + maxFiles + ' images per batch.', '\u26a0\ufe0f', 'alert');\r\n            return;\r\n        }\r\n\r\n        const filesToAdd = Array.from(files).slice(0, availableSlots);\r\n\r\n        if (files.length > availableSlots) {\r\n            await showAlert('You can only add ' + availableSlots + ' images. Maximum limit: ' + maxFiles + ' images.', '\u26a0\ufe0f', 'alert');\r\n        }\r\n\r\n        filesToAdd.forEach(file => {\r\n            if (file.type.startsWith('image\/') || file.name.match(\/\\.(pdf|ai|eps|svg)$\/i)) {\r\n                const fileObj = {\r\n                    id: Date.now() + Math.random(),\r\n                    file: file,\r\n                    name: file.name,\r\n                    preview: null,\r\n                    status: 'pending',\r\n                    result: null\r\n                };\r\n\r\n                \/\/ Create preview\r\n                const reader = new FileReader();\r\n                reader.onload = function(e) {\r\n                    fileObj.preview = e.target.result;\r\n                    batchState.files.push(fileObj);\r\n                    updateFilesList();\r\n                };\r\n                reader.readAsDataURL(file);\r\n            }\r\n        });\r\n    }\r\n\r\n    function updateFilesList() {\r\n        const count = batchState.files.length;\r\n        const totalCredits = count * CREDITS_PER_IMAGE;\r\n\r\n        $('#removebg-batch-count').text(count);\r\n        $('#removebg-batch-total-credits').text(totalCredits);\r\n\r\n        \/\/ Enable\/disable process button based on minimum 2 images requirement\r\n        const processBtn = $('#removebg-batch-process');\r\n        if (count < 2) {\r\n            processBtn.prop('disabled', true);\r\n            processBtn.attr('title', 'Upload at least 2 images to use batch processing');\r\n        } else {\r\n            processBtn.prop('disabled', false);\r\n            processBtn.attr('title', '');\r\n        }\r\n\r\n        if (count > 0) {\r\n            $('#removebg-batch-files').show();\r\n            $('#removebg-batch-upload').hide();\r\n        } else {\r\n            $('#removebg-batch-files').hide();\r\n            $('#removebg-batch-upload').show();\r\n        }\r\n\r\n        \/\/ Render files\r\n        const list = $('#removebg-batch-list');\r\n        list.empty();\r\n\r\n        batchState.files.forEach((fileObj, index) => {\r\n            const item = $('<div>').addClass('removebg-batch-file-item').attr('data-id', fileObj.id);\r\n\r\n            \/\/ Use processed image if available, otherwise use original preview\r\n            const imageUrl = fileObj.processedPreview || fileObj.preview;\r\n\r\n            if (imageUrl) {\r\n                \/\/ Add loading class initially\r\n                item.addClass('loading');\r\n\r\n                const img = $('<img>').attr('src', imageUrl);\r\n\r\n                \/\/ When image loads, remove loading and add loaded class\r\n                img.on('load', function() {\r\n                    item.removeClass('loading').addClass('loaded');\r\n                });\r\n\r\n                item.append(img);\r\n            }\r\n\r\n            const removeBtn = $('<button>').addClass('removebg-batch-file-remove').html('\u00d7');\r\n            removeBtn.on('click', function(e) {\r\n                e.stopPropagation();\r\n                batchState.files = batchState.files.filter(f => f.id !== fileObj.id);\r\n                updateFilesList();\r\n            });\r\n            item.append(removeBtn);\r\n\r\n            const status = $('<div>').addClass('removebg-batch-file-status');\r\n            if (fileObj.status === 'processing') {\r\n                status.text('Processing...');\r\n                item.addClass('processing');\r\n            } else if (fileObj.status === 'completed') {\r\n                status.text('\u2713 Completed');\r\n                item.addClass('completed');\r\n            } else if (fileObj.status === 'error') {\r\n                status.text('\u2717 Error');\r\n                item.addClass('error');\r\n            } else {\r\n                status.text('Ready');\r\n            }\r\n            item.append(status);\r\n\r\n            list.append(item);\r\n        });\r\n    }\r\n\r\n    \/\/ Clear all\r\n    $('#removebg-batch-clear').on('click', async function() {\r\n        const confirmed = await showConfirm('Remove all images?', '\ud83d\uddd1\ufe0f');\r\n        if (!confirmed) return;\r\n        batchState.files = [];\r\n        batchState.processedFiles = [];\r\n        updateFilesList();\r\n    });\r\n\r\n    \/\/ Add more files\r\n    $('#removebg-batch-add-more').on('click', function() {\r\n        console.log('Add more files clicked');\r\n        $('#removebg-batch-input').click();\r\n    });\r\n\r\n    \/\/ Process batch\r\n    $('#removebg-batch-process').on('click', async function() {\r\n        const count = batchState.files.length;\r\n        const totalCredits = count * CREDITS_PER_IMAGE;\r\n\r\n        \/\/ Require minimum 2 images for batch processing\r\n        if (count < 2) {\r\n            await showAlert('Batch processing requires at least 2 images.<br><br>Upload at least one more image to continue.', '\u26a0\ufe0f', 'alert');\r\n            return;\r\n        }\r\n\r\n        \/\/ Check credits\r\n        if (batchState.creditsRemaining < totalCredits) {\r\n            await showAlert(\r\n                'Insufficient Credits<br><br>' +\r\n                'Required: ' + totalCredits + ' credits<br>' +\r\n                'Available: ' + batchState.creditsRemaining + ' credits<br><br>' +\r\n                'Buy credits to continue.',\r\n                '\ud83d\udcb3',\r\n                'alert'\r\n            );\r\n            return;\r\n        }\r\n\r\n        \/\/ Confirm\r\n        const confirmMessage =\r\n            'Batch Processing<br><br>' +\r\n            'Images: ' + count + '<br>' +\r\n            'Total cost: ' + totalCredits + ' credits<br>' +\r\n            'Credits available: ' + batchState.creditsRemaining + '<br>' +\r\n            'Credits after processing: ' + (batchState.creditsRemaining - totalCredits) + '<br><br>' +\r\n            'Do you want to proceed?';\r\n\r\n        const confirmed = await showConfirm(confirmMessage, '\ud83d\udca1');\r\n\r\n        if (!confirmed) return;\r\n\r\n        \/\/ Start processing\r\n        batchState.isProcessing = true;\r\n        $('#removebg-batch-progress').show();\r\n        $('#removebg-batch-process').prop('disabled', true);\r\n        $('#removebg-batch-progress-total').text(count);\r\n\r\n        try {\r\n            \/\/ Mark only FIRST file as processing, others remain ready\r\n            batchState.files.forEach((fileObj, index) => {\r\n                fileObj.status = index === 0 ? 'processing' : 'ready';\r\n            });\r\n            updateFilesList();\r\n\r\n            \/\/ Create FormData with all images\r\n            const formData = new FormData();\r\n            formData.append('action', 'removebg_process_batch');\r\n            formData.append('nonce', removebgFrontend.nonce);\r\n\r\n            \/\/ Append all files\r\n            batchState.files.forEach((fileObj, index) => {\r\n                formData.append('images[]', fileObj.file);\r\n            });\r\n\r\n            console.log('Sending batch request with', count, 'files');\r\n\r\n            \/\/ Submit batch job\r\n            const response = await $.ajax({\r\n                url: removebgFrontend.ajaxurl,\r\n                type: 'POST',\r\n                data: formData,\r\n                processData: false,\r\n                contentType: false,\r\n                timeout: 60000\r\n            });\r\n\r\n            if (!response.success) {\r\n                throw new Error(response.data?.message || 'Batch creation failed');\r\n            }\r\n\r\n            console.log('Batch job created:', response.data);\r\n\r\n            \/\/ Store batch ID\r\n            batchState.batchId = response.data.batch_id;\r\n            batchState.zipUrl = null;\r\n\r\n            \/\/ Monitor batch status\r\n            monitorBatchStatus(response.data.batch_id);\r\n\r\n        } catch (error) {\r\n            console.error('Batch error:', error);\r\n            await showAlert('Error in batch processing: ' + error.message, '\u274c', 'error');\r\n            batchState.isProcessing = false;\r\n            $('#removebg-batch-progress').hide();\r\n            $('#removebg-batch-process').prop('disabled', false);\r\n        }\r\n    });\r\n\r\n    \/\/ Monitor batch processing status\r\n    function monitorBatchStatus(batchId) {\r\n        const checkInterval = setInterval(async () => {\r\n            try {\r\n                const response = await $.ajax({\r\n                    url: removebgFrontend.ajaxurl,\r\n                    type: 'POST',\r\n                    data: {\r\n                        action: 'removebg_batch_status',\r\n                        nonce: removebgFrontend.nonce,\r\n                        batch_id: batchId\r\n                    }\r\n                });\r\n\r\n                if (response.success) {\r\n                    const data = response.data;\r\n                    console.log('Batch status:', data);\r\n\r\n                    \/\/ Update progress\r\n                    $('#removebg-batch-progress-current').text(data.processed_images);\r\n                    const percent = Math.round((data.processed_images \/ data.total_images) * 100);\r\n                    $('#removebg-batch-progress-fill').css('width', percent + '%');\r\n\r\n                    \/\/ Update file statuses sequentially AND replace images with processed versions\r\n                    const completedCount = parseInt(data.processed_images);\r\n                    const failedCount = parseInt(data.failed_images);\r\n                    const totalProcessed = completedCount + failedCount;\r\n\r\n                    batchState.files.forEach((fileObj, index) => {\r\n                        if (index < completedCount) {\r\n                            \/\/ Files processed successfully\r\n                            fileObj.status = 'completed';\r\n\r\n                            \/\/ Replace preview with processed image if available\r\n                            if (data.items && data.items[index] && data.items[index].url) {\r\n                                fileObj.processedPreview = data.items[index].url;\r\n                            }\r\n                        } else if (index < totalProcessed) {\r\n                            \/\/ Files that failed\r\n                            fileObj.status = 'error';\r\n                        } else if (index === totalProcessed) {\r\n                            \/\/ Current file being processed\r\n                            fileObj.status = 'processing';\r\n                        } else {\r\n                            \/\/ Files waiting to be processed\r\n                            fileObj.status = 'ready';\r\n                        }\r\n                    });\r\n                    updateFilesList();\r\n\r\n                    \/\/ Check if completed\r\n                    if (data.status === 'completed') {\r\n                        clearInterval(checkInterval);\r\n                        batchState.isProcessing = false;\r\n                        batchState.zipUrl = data.zip_url;\r\n\r\n                        $('#removebg-batch-progress').hide();\r\n                        $('#removebg-batch-download').show().attr('data-zip-url', data.zip_url);\r\n\r\n                        await showAlert(\r\n                            'Processing completed!<br><br>' +\r\n                            'Images processed: ' + data.processed_images + '<br>' +\r\n                            'Failed: ' + data.failed_images + '<br>' +\r\n                            'Credits used: ' + data.credits_used + '<br><br>' +\r\n                            'Click &quot;Download ZIP&quot; to download all images.',\r\n                            '\u2705',\r\n                            'alert'\r\n                        );\r\n                    }\r\n                } else {\r\n                    throw new Error(response.data?.message || 'Status check failed');\r\n                }\r\n\r\n            } catch (error) {\r\n                console.error('Status check error:', error);\r\n                clearInterval(checkInterval);\r\n                batchState.isProcessing = false;\r\n                $('#removebg-batch-progress').hide();\r\n                await showAlert('Error checking status. Reload the page.', '\u274c', 'error');\r\n            }\r\n        }, 3000); \/\/ Check every 3 seconds\r\n    }\r\n\r\n    \/\/ Download ZIP\r\n    $('#removebg-batch-download').on('click', async function() {\r\n        const zipUrl = $(this).attr('data-zip-url') || batchState.zipUrl;\r\n\r\n        if (!zipUrl) {\r\n            await showAlert('ZIP file not available', '\u274c', 'error');\r\n            return;\r\n        }\r\n\r\n        \/\/ Download ZIP file\r\n        window.location.href = zipUrl;\r\n    });\r\n\r\n    console.log('RemoveBG Batch: Initialization complete');\r\n    }); \/\/ End jQuery ready\r\n})(); \/\/ End IIFE\r\n<\/script>\r\n    <\/div>\n<\/div>\n<!-- \/module plain text -->        <\/div>\n                        <\/div>\n        <\/div>\n                        <div  data-anchor=\"price\" data-lazy=\"1\" class=\"module_row themify_builder_row tb_has_section tb_section-price tb_1p6d705 tf_w\">\n                        <div class=\"row_inner col_align_top tb_col_count_1 tf_box tf_rel\">\n                        <div  data-lazy=\"1\" class=\"module_column tb-column col-full tb_gcmr705 first\">\n                    <!-- module plain text -->\n<div  class=\"module module-plain-text tb_63g5705 \" data-lazy=\"1\">\n        <div class=\"tb_text_wrap\">\n    \r\n<div class=\"rbg-credits-shop\">\r\n\r\n    <h2>Cuttalo Credits<\/h2>\r\n    <p>Credits allow you to remove the background from your images with professional AI<\/p>\r\n\r\n    <div class=\"rbg-packages\">\r\n        \r\n        <div class=\"rbg-package \">\r\n            \r\n            <div class=\"rbg-credits\">10<\/div>\r\n            <div class=\"rbg-credits-label\">credits<\/div>\r\n\r\n            <div class=\"rbg-price\">&euro;1,00<\/div>\r\n\r\n            <a href=\"https:\/\/www.cuttalo.com\/en\/pay\/?add-to-cart=159082\"\r\n               class=\"rbg-btn\">\r\n                \ud83d\uded2 Buy Now            <\/a>\r\n        <\/div>\r\n\r\n        \r\n        <div class=\"rbg-package \">\r\n            \r\n            <div class=\"rbg-credits\">50<\/div>\r\n            <div class=\"rbg-credits-label\">credits<\/div>\r\n\r\n            <div class=\"rbg-price\">&euro;4,00<\/div>\r\n\r\n            <a href=\"https:\/\/www.cuttalo.com\/en\/pay\/?add-to-cart=159086\"\r\n               class=\"rbg-btn\">\r\n                \ud83d\uded2 Buy Now            <\/a>\r\n        <\/div>\r\n\r\n        \r\n        <div class=\"rbg-package rbg-best\">\r\n                        <span class=\"rbg-badge\">\u2728 Best Value<\/span>\r\n            \r\n            <div class=\"rbg-credits\">100<\/div>\r\n            <div class=\"rbg-credits-label\">credits<\/div>\r\n\r\n            <div class=\"rbg-price\">&euro;7,00<\/div>\r\n\r\n            <a href=\"https:\/\/www.cuttalo.com\/en\/pay\/?add-to-cart=159090\"\r\n               class=\"rbg-btn\">\r\n                \ud83d\uded2 Buy Now            <\/a>\r\n        <\/div>\r\n\r\n        \r\n        <div class=\"rbg-package \">\r\n            \r\n            <div class=\"rbg-credits\">1.000<\/div>\r\n            <div class=\"rbg-credits-label\">credits<\/div>\r\n\r\n            <div class=\"rbg-price\">&euro;40,00<\/div>\r\n\r\n            <a href=\"https:\/\/www.cuttalo.com\/en\/pay\/?add-to-cart=159094\"\r\n               class=\"rbg-btn\">\r\n                \ud83d\uded2 Buy Now            <\/a>\r\n        <\/div>\r\n\r\n            <\/div>\r\n\r\n    <style>\r\n    .rbg-credits-shop { max-width: 1200px; margin: 40px auto; padding: 20px; }\r\n    .rbg-credits-shop h2 { text-align: center; margin-bottom: 10px; }\r\n    .rbg-credits-shop > p { text-align: center; color: #666; margin-bottom: 30px; }\r\n    .rbg-packages { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; }\r\n    .rbg-package { position: relative; background: white; border: 2px solid #e0e0e0; border-radius: 12px; padding: 30px 20px; text-align: center; transition: all 0.3s; }\r\n    .rbg-package:hover { border-color: #667eea; transform: translateY(-4px); box-shadow: 0 8px 25px rgba(102, 126, 234, 0.2); }\r\n    .rbg-best { border-color: #667eea; border-width: 3px; }\r\n    .rbg-badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; }\r\n    .rbg-credits { font-size: 48px; font-weight: 800; color: #667eea; margin: 10px 0 5px; }\r\n    .rbg-credits-label { font-size: 13px; color: #888; text-transform: uppercase; margin-bottom: 15px; }\r\n    .rbg-price { font-size: 28px; font-weight: 700; color: #1a1a1a; margin-bottom: 20px; }\r\n    .rbg-btn { display: inline-block; padding: 12px 30px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border-radius: 8px; text-decoration: none; font-weight: 600; transition: all 0.3s; }\r\n    .rbg-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4); color: white; }\r\n    @media (max-width: 768px) { .rbg-packages { grid-template-columns: 1fr; } }\r\n    <\/style>\r\n\r\n<\/div>\r\n    <\/div>\n<\/div>\n<!-- \/module plain text -->        <\/div>\n                        <\/div>\n        <\/div>\n        <\/div>\n<!--\/themify_builder_content-->","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":159272,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-159063","page","type-page","status-publish","has-post-thumbnail","hentry","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"_links":{"self":[{"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/pages\/159063","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/comments?post=159063"}],"version-history":[{"count":18,"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/pages\/159063\/revisions"}],"predecessor-version":[{"id":159300,"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/pages\/159063\/revisions\/159300"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/media\/159272"}],"wp:attachment":[{"href":"https:\/\/www.cuttalo.com\/en\/wp-json\/wp\/v2\/media?parent=159063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}