{"id":3564,"date":"2026-03-22T19:55:58","date_gmt":"2026-03-22T17:55:58","guid":{"rendered":"https:\/\/www.elinek.gr\/?p=3564"},"modified":"2026-05-18T12:50:22","modified_gmt":"2026-05-18T09:50:22","slug":"common-mistakes-in-eu-cosmetic-product-labels","status":"publish","type":"post","link":"https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/","title":{"rendered":"Common Mistakes in EU Cosmetic Product Labels"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column][vc_column_text css=&#8221;&#8221;]<\/p>\n<h1>Common Mistakes in EU Cosmetic Product Labels<\/h1>\n<p class=\"deck\">A labelling error can halt distribution, trigger recalls, and expose brands to significant liability. Here is what manufacturers and importers consistently get wrong \u2014 and how to correct it.<\/p>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text css=&#8221;&#8221;]<span style=\"color: #003366;\">LEGAL BASIS<\/span><\/p>\n<p><span style=\"color: #003366;\">All cosmetic products placed on the EU market must comply with Regulation (EC) No 1223\/2009. Article 19 sets out mandatory labelling information. Non-compliance can result in market withdrawal, penalties, and criminal liability for the Responsible Person.<\/span><\/p>\n<div class=\"hr-thin\"><\/div>\n<p>[\/vc_column_text][vc_column_text css=&#8221;&#8221;]<\/p>\n<p class=\"prose\">EU cosmetic labelling requirements are among the most detailed in the world. Yet a surprisingly high share of products \u2014 particularly those entering the market from outside the EU or from small domestic brands \u2014 arrive with labels that fall short of the legal minimum.<\/p>\n<p class=\"prose\">National authorities across Europe are conducting increasingly systematic market surveillance, making label compliance more important than ever.<\/p>\n<p class=\"prose\">The mistakes below account for the vast majority of non-compliance findings. They range from the technical and easy to fix, to the structurally complex \u2014 the kind that require involvement from a regulatory expert or Responsible Person before any product reaches a shelf.<\/p>\n<p>[\/vc_column_text][vc_column_text css=&#8221;&#8221;]<\/p>\n<h3>The eleven most common labelling failures<\/h3>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text css=&#8221;&#8221;]<\/p>\n<div id=\"app-wrapper\" class=\"h-full w-full overflow-auto flex items-center justify-center p-6 sm:p-10 md:p-16\">\n<article class=\"w-full max-w-4xl\" role=\"main\">\n<div id=\"card-container\" class=\"rounded-2xl p-6 sm:p-10 md:p-14\" style=\"background-color: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 8px 32px rgba(0,0,0,0.03);\">\n<p><!-- Main horizontal layout --><\/p>\n<div class=\"flex flex-col sm:flex-row gap-6 sm:gap-10 md:gap-14 animate-in\">\n<p><!-- Left: Section Number --><\/p>\n<div class=\"flex-shrink-0 flex sm:flex-col items-baseline sm:items-start gap-4 sm:gap-0\">\n<h2><span id=\"section-number\" class=\"font-serif-display section-number text-6xl sm:text-7xl md:text-8xl select-none\" style=\"color: #c2694a;\">01<\/span><\/h2>\n<div id=\"divider\" class=\"divider-line hidden sm:block mt-4\" style=\"background-color: #c2694a; opacity: 0.3;\"><\/div>\n<\/div>\n<p><!-- Right: Content --><\/p>\n<div class=\"flex-1 min-w-0\">\n<p><!-- Title --><\/p>\n<h2 id=\"section-title\" class=\"font-sans-body text-xl sm:text-2xl md:text-[1.7rem] font-700 leading-tight tracking-tight animate-in animate-in-delay-1\" style=\"color: #2a2928;\">Missing or incorrect Responsible Person details<\/h2>\n<p><!-- Description --><\/p>\n<p id=\"paragraph-text\" class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">Every cosmetic product placed on the EU market must identify a Responsible Person (RP) established within the EU. The label must state the RP&#8217;s name and address \u2014 not just a brand name or website. A company registered in the UK post-Brexit can no longer act as RP for EU distribution. This is the single most frequent non-compliance issue for products entering via e-commerce.<\/p>\n<p><!-- Compliance Boxes --><\/p>\n<div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4 mt-7 sm:mt-8 animate-in animate-in-delay-3\">\n<p><!-- Non-Compliant Box --><\/p>\n<div class=\"flex items-center gap-2 mb-3\"><span id=\"tag-one\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"color: #a8533a; border-color: #eeab82; background-color: rgba(194,105,74,0.06);\">\u21d2High risk <\/span> <span id=\"tag-two\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"color: #4a6b8a; border-color: #a8c4db; background-color: rgba(74,107,138,0.06);\"> Art. 19(1)(a)<\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<p><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML=\"window.__CF$cv$params={r:'9e06924bb6977173',t:'MTc3NDE5NjkyNy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='\/cdn-cgi\/challenge-platform\/scripts\/jsd\/main.js';document.getElementsByTagName('head')[0].appendChild(a);\";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();<\/script>[\/vc_column_text][vc_column_text css=&#8221;&#8221;]<\/p>\n<div id=\"app-wrapper\" class=\"h-full w-full overflow-auto flex items-center justify-center p-6 sm:p-10 md:p-16\">\n<article class=\"w-full max-w-4xl\" role=\"main\">\n<div id=\"card-container\" class=\"rounded-2xl p-6 sm:p-10 md:p-14\" style=\"background-color: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 8px 32px rgba(0,0,0,0.03);\">\n<p><!-- Main horizontal layout --><\/p>\n<div class=\"flex flex-col sm:flex-row gap-6 sm:gap-10 md:gap-14 animate-in\">\n<p><!-- Left: Section Number --><\/p>\n<div class=\"flex-shrink-0 flex sm:flex-col items-baseline sm:items-start gap-4 sm:gap-0\">\n<h2><span id=\"section-number\" class=\"font-serif-display section-number text-6xl sm:text-7xl md:text-8xl select-none\" style=\"color: #c2694a;\">02<\/span><\/h2>\n<div id=\"divider\" class=\"divider-line hidden sm:block mt-4\" style=\"background-color: #c2694a; opacity: 0.3;\"><\/div>\n<\/div>\n<p><!-- Right: Content --><\/p>\n<div class=\"flex-1 min-w-0\">\n<p><!-- Title --><\/p>\n<h2 id=\"section-title\" class=\"font-sans-body text-xl sm:text-2xl md:text-[1.7rem] font-700 leading-tight tracking-tight animate-in animate-in-delay-1\" style=\"color: #2a2928;\">Incorrect or missing country of origin for imported products<\/h2>\n<p><!-- Description --><\/p>\n<p id=\"paragraph-text\" class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">Regulation (EC) No 1223\/2009 requires that the country of origin be clearly stated on the labelling of cosmetic products imported into the EU. Vague or overly broad geographical references do not satisfy this requirement and may result in market surveillance actions, including product withdrawal.<\/p>\n<p><!-- Compliance Boxes --><\/p>\n<div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4 mt-7 sm:mt-8 animate-in animate-in-delay-3\">\n<p><!-- Non-Compliant Box --><\/p>\n<div id=\"non-compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #fdf5f0; border-color: #f5cdb3;\">\n<div class=\"flex items-center gap-2 mb-3\"><span id=\"non-compliant-label\" class=\"text-[0.65rem] font-700 uppercase tracking-[0.12em]\" style=\"color: #c2694a;\">Non-Compliant<\/span><\/div>\n<p id=\"non-compliant-text\" class=\"text-sm leading-snug font-500\" style=\"color: #565350;\">Manufactured by Cosmetica Ltd, Europe<\/p>\n<\/div>\n<p><!-- Compliant Box --><\/p>\n<div id=\"compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #f2f7f3; border-color: #c3dbc2;\">\n<div class=\"flex items-center gap-2 mb-3\"><span id=\"compliant-label\" class=\"text-[0.65rem] font-700 uppercase tracking-[0.12em]\" style=\"color: #4a8050;\"><div class=\"gap\" style=\"line-height: 10px; height: 10px;\"><\/div>Compliant<\/span><\/div>\n<p id=\"compliant-text\" class=\"text-sm leading-snug font-500\" style=\"color: #565350;\">Manufactured in France<\/p>\n<\/div>\n<\/div>\n<p><!-- Tags --><\/p>\n<div class=\"flex flex-wrap gap-2.5 mt-7 sm:mt-8 animate-in animate-in-delay-4\"><span id=\"tag-one\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"color: #a8533a; border-color: #eeab82; background-color: rgba(194,105,74,0.06);\"> \u21d2High risk <\/span> <span id=\"tag-two\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"color: #4a6b8a; border-color: #a8c4db; background-color: rgba(74,107,138,0.06);\"> Art. 19(1)(b) <\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<p><script>\n    const defaultConfig = {\n      \/\/ Colors (ordered by visual prominence)\n      background_color: '#f6f5f3',\n      card_color: '#ffffff',\n      text_color: '#2a2928',\n      accent_color: '#c2694a',\n      compliant_color: '#4a8050',<\/p>\n<p>      \/\/ Font\n      font_family: 'DM Sans',\n      font_size: 16,<\/p>\n<p>      \/\/ Text content\n      section_number: '02',\n      section_title: 'Incorrect or missing country of origin for imported products',\n      paragraph_text: 'Regulation (EC) No 1223\/2009 requires that the country of origin be clearly stated on the labelling of cosmetic products imported into the EU. Vague or overly broad geographical references do not satisfy this requirement and may result in market surveillance actions, including product withdrawal.',\n      non_compliant_text: 'Manufactured by Cosmetica Ltd, Europe',\n      compliant_text: 'Manufactured in France',\n      tag_one: 'High risk',\n      tag_two: 'Art. 19(1)(b)',\n    };<\/p>\n<p>    function applyConfig(config) {\n      const c = key => config[key] || defaultConfig[key];<\/p>\n<p>      \/\/ Background\n      document.body.style.backgroundColor = c('background_color');\n      document.getElementById('card-container').style.backgroundColor = c('card_color');<\/p>\n<p>      \/\/ Accent color (terracotta)\n      const accent = c('accent_color');\n      document.getElementById('section-number').style.color = accent;\n      document.getElementById('divider').style.backgroundColor = accent;<\/p>\n<p>      \/\/ Non-compliant box accent\n      const ncBox = document.getElementById('non-compliant-box');\n      ncBox.querySelector('.rounded-full').style.backgroundColor = accent;\n      document.getElementById('non-compliant-label').style.color = accent;<\/p>\n<p>      \/\/ Compliant color\n      const green = c('compliant_color');\n      const cBox = document.getElementById('compliant-box');\n      cBox.querySelector('.rounded-full').style.backgroundColor = green;\n      document.getElementById('compliant-label').style.color = green;<\/p>\n<p>      \/\/ Text color\n      const textColor = c('text_color');\n      document.getElementById('section-title').style.color = textColor;<\/p>\n<p>      \/\/ Font\n      const fontFamily = c('font_family');\n      const baseFontStack = 'system-ui, sans-serif';\n      const fullStack = `${fontFamily}, ${baseFontStack}`;\n      document.body.style.fontFamily = fullStack;<\/p>\n<p>      const baseSize = c('font_size');\n      document.getElementById('section-title').style.fontSize = `${baseSize * 1.7}px`;\n      document.getElementById('paragraph-text').style.fontSize = `${baseSize * 0.95}px`;\n      document.getElementById('non-compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('tag-one').style.fontSize = `${baseSize * 0.75}px`;\n      document.getElementById('tag-two').style.fontSize = `${baseSize * 0.75}px`;<\/p>\n<p>      \/\/ Text content\n      document.getElementById('section-number').textContent = c('section_number');\n      document.getElementById('section-title').textContent = c('section_title');\n      document.getElementById('paragraph-text').textContent = c('paragraph_text');\n      document.getElementById('non-compliant-text').textContent = c('non_compliant_text');\n      document.getElementById('compliant-text').textContent = c('compliant_text');\n      document.getElementById('tag-one').textContent = c('tag_one');\n      document.getElementById('tag-two').textContent = c('tag_two');\n    }<\/p>\n<p>    \/\/ Helper to create a mutable for a config key\n    function mutable(configRef, key) {\n      return {\n        get: () => configRef[key] || defaultConfig[key],\n        set: (value) => {\n          configRef[key] = value;\n          window.elementSdk.setConfig({ [key]: value });\n        }\n      };\n    }<\/p>\n<p>    window.elementSdk.init({\n      defaultConfig,\n      onConfigChange: async (config) => {\n        applyConfig(config);\n      },\n      mapToCapabilities: (config) => ({\n        recolorables: [\n          mutable(config, 'background_color'),\n          mutable(config, 'card_color'),\n          mutable(config, 'text_color'),\n          mutable(config, 'accent_color'),\n          mutable(config, 'compliant_color'),\n        ],\n        borderables: [],\n        fontEditable: mutable(config, 'font_family'),\n        fontSizeable: mutable(config, 'font_size'),\n      }),\n      mapToEditPanelValues: (config) => new Map([\n        ['section_number', config.section_number || defaultConfig.section_number],\n        ['section_title', config.section_title || defaultConfig.section_title],\n        ['paragraph_text', config.paragraph_text || defaultConfig.paragraph_text],\n        ['non_compliant_text', config.non_compliant_text || defaultConfig.non_compliant_text],\n        ['compliant_text', config.compliant_text || defaultConfig.compliant_text],\n        ['tag_one', config.tag_one || defaultConfig.tag_one],\n        ['tag_two', config.tag_two || defaultConfig.tag_two],\n      ]),\n    });\n  <\/script><br \/>\n<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML=\"window.__CF$cv$params={r:'9e06924bb6977173',t:'MTc3NDE5NjkyNy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='\/cdn-cgi\/challenge-platform\/scripts\/jsd\/main.js';document.getElementsByTagName('head')[0].appendChild(a);\";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();<\/script>[\/vc_column_text][vc_column_text css=&#8221;&#8221;]<\/p>\n<div id=\"app-wrapper\" class=\"h-full w-full overflow-auto flex items-center justify-center p-6 sm:p-10 md:p-16\">\n<article class=\"w-full max-w-4xl\" role=\"main\">\n<div id=\"card-container\" class=\"rounded-2xl p-6 sm:p-10 md:p-14\" style=\"background-color: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 8px 32px rgba(0,0,0,0.03);\">\n<p><!-- Main horizontal layout --><\/p>\n<div class=\"flex flex-col sm:flex-row gap-6 sm:gap-10 md:gap-14 animate-in\">\n<p><!-- Left: Section Number --><\/p>\n<div class=\"flex-shrink-0 flex sm:flex-col items-baseline sm:items-start gap-4 sm:gap-0\">\n<h2><span id=\"section-number\" class=\"font-serif-display section-number text-6xl sm:text-7xl md:text-8xl select-none\" style=\"color: #c2694a;\">03<\/span><\/h2>\n<div id=\"divider\" class=\"divider-line hidden sm:block mt-4\" style=\"background-color: #c2694a; opacity: 0.3;\"><\/div>\n<\/div>\n<p><!-- Right: Content --><\/p>\n<div class=\"flex-1 min-w-0\">\n<p><!-- Title --><\/p>\n<h2 id=\"section-title\" class=\"font-sans-body text-xl sm:text-2xl md:text-[1.7rem] font-700 leading-tight tracking-tight animate-in animate-in-delay-1\" style=\"color: #2a2928;\">Incorrect minimum durability or PAO indication<\/h2>\n<p><!-- Description --><\/p>\n<p id=\"paragraph-text\" class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">Products with a shelf life under 30 months must display a &#8220;best before&#8221; date using the hourglass symbol followed by date. Products lasting longer must show a Period After Opening (PAO) symbol \u2014 the open-jar icon \u2014 with the number of months (e.g. &#8220;12M&#8221;).<\/p>\n<p class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">A frequent error is using PAO for products with a shelf life under 30 months, or omitting PAO entirely for long-life products. Both are non-compliant.<\/p>\n<p><!-- Compliance Boxes --><\/p>\n<div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4 mt-7 sm:mt-8 animate-in animate-in-delay-3\">\n<p><!-- Non-Compliant Box --><\/p>\n<div id=\"non-compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #fdf5f0; border-color: #f5cdb3;\"><\/div>\n<div id=\"compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #f2f7f3; border-color: #c3dbc2;\">\n<p id=\"compliant-text\" class=\"text-sm leading-snug font-500\" style=\"color: #565350;\">\n<\/div>\n<\/div>\n<p><!-- Tags --><\/p>\n<div class=\"flex flex-wrap gap-2.5 mt-7 sm:mt-8 animate-in animate-in-delay-4\"><span id=\"tag-one\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"color: #a8533a; border-color: #eeab82; background-color: rgba(194,105,74,0.06);\"> \u21d2High risk <span class=\"tag tag-info\" style=\"color: #5497de;\">Art. 19(1)(f) &amp; (g)<\/span><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<p><script>\n    const defaultConfig = {\n      \/\/ Colors (ordered by visual prominence)\n      background_color: '#f6f5f3',\n      card_color: '#ffffff',\n      text_color: '#2a2928',\n      accent_color: '#c2694a',\n      compliant_color: '#4a8050',<\/p>\n<p>      \/\/ Font\n      font_family: 'DM Sans',\n      font_size: 16,<\/p>\n<p>      \/\/ Text content\n      section_number: '02',\n      section_title: 'Incorrect or missing country of origin for imported products',\n      paragraph_text: 'Regulation (EC) No 1223\/2009 requires that the country of origin be clearly stated on the labelling of cosmetic products imported into the EU. Vague or overly broad geographical references do not satisfy this requirement and may result in market surveillance actions, including product withdrawal.',\n      non_compliant_text: 'Manufactured by Cosmetica Ltd, Europe',\n      compliant_text: 'Manufactured in France',\n      tag_one: 'High risk',\n      tag_two: 'Art. 19(1)(b)',\n    };<\/p>\n<p>    function applyConfig(config) {\n      const c = key => config[key] || defaultConfig[key];<\/p>\n<p>      \/\/ Background\n      document.body.style.backgroundColor = c('background_color');\n      document.getElementById('card-container').style.backgroundColor = c('card_color');<\/p>\n<p>      \/\/ Accent color (terracotta)\n      const accent = c('accent_color');\n      document.getElementById('section-number').style.color = accent;\n      document.getElementById('divider').style.backgroundColor = accent;<\/p>\n<p>      \/\/ Non-compliant box accent\n      const ncBox = document.getElementById('non-compliant-box');\n      ncBox.querySelector('.rounded-full').style.backgroundColor = accent;\n      document.getElementById('non-compliant-label').style.color = accent;<\/p>\n<p>      \/\/ Compliant color\n      const green = c('compliant_color');\n      const cBox = document.getElementById('compliant-box');\n      cBox.querySelector('.rounded-full').style.backgroundColor = green;\n      document.getElementById('compliant-label').style.color = green;<\/p>\n<p>      \/\/ Text color\n      const textColor = c('text_color');\n      document.getElementById('section-title').style.color = textColor;<\/p>\n<p>      \/\/ Font\n      const fontFamily = c('font_family');\n      const baseFontStack = 'system-ui, sans-serif';\n      const fullStack = `${fontFamily}, ${baseFontStack}`;\n      document.body.style.fontFamily = fullStack;<\/p>\n<p>      const baseSize = c('font_size');\n      document.getElementById('section-title').style.fontSize = `${baseSize * 1.7}px`;\n      document.getElementById('paragraph-text').style.fontSize = `${baseSize * 0.95}px`;\n      document.getElementById('non-compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('tag-one').style.fontSize = `${baseSize * 0.75}px`;\n      document.getElementById('tag-two').style.fontSize = `${baseSize * 0.75}px`;<\/p>\n<p>      \/\/ Text content\n      document.getElementById('section-number').textContent = c('section_number');\n      document.getElementById('section-title').textContent = c('section_title');\n      document.getElementById('paragraph-text').textContent = c('paragraph_text');\n      document.getElementById('non-compliant-text').textContent = c('non_compliant_text');\n      document.getElementById('compliant-text').textContent = c('compliant_text');\n      document.getElementById('tag-one').textContent = c('tag_one');\n      document.getElementById('tag-two').textContent = c('tag_two');\n    }<\/p>\n<p>    \/\/ Helper to create a mutable for a config key\n    function mutable(configRef, key) {\n      return {\n        get: () => configRef[key] || defaultConfig[key],\n        set: (value) => {\n          configRef[key] = value;\n          window.elementSdk.setConfig({ [key]: value });\n        }\n      };\n    }<\/p>\n<p>    window.elementSdk.init({\n      defaultConfig,\n      onConfigChange: async (config) => {\n        applyConfig(config);\n      },\n      mapToCapabilities: (config) => ({\n        recolorables: [\n          mutable(config, 'background_color'),\n          mutable(config, 'card_color'),\n          mutable(config, 'text_color'),\n          mutable(config, 'accent_color'),\n          mutable(config, 'compliant_color'),\n        ],\n        borderables: [],\n        fontEditable: mutable(config, 'font_family'),\n        fontSizeable: mutable(config, 'font_size'),\n      }),\n      mapToEditPanelValues: (config) => new Map([\n        ['section_number', config.section_number || defaultConfig.section_number],\n        ['section_title', config.section_title || defaultConfig.section_title],\n        ['paragraph_text', config.paragraph_text || defaultConfig.paragraph_text],\n        ['non_compliant_text', config.non_compliant_text || defaultConfig.non_compliant_text],\n        ['compliant_text', config.compliant_text || defaultConfig.compliant_text],\n        ['tag_one', config.tag_one || defaultConfig.tag_one],\n        ['tag_two', config.tag_two || defaultConfig.tag_two],\n      ]),\n    });\n  <\/script><br \/>\n<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML=\"window.__CF$cv$params={r:'9e06924bb6977173',t:'MTc3NDE5NjkyNy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='\/cdn-cgi\/challenge-platform\/scripts\/jsd\/main.js';document.getElementsByTagName('head')[0].appendChild(a);\";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();<\/script>[\/vc_column_text][vc_column_text css=&#8221;&#8221;]<\/p>\n<div id=\"app-wrapper\" class=\"h-full w-full overflow-auto flex items-center justify-center p-6 sm:p-10 md:p-16\">\n<article class=\"w-full max-w-4xl\" role=\"main\">\n<div id=\"card-container\" class=\"rounded-2xl p-6 sm:p-10 md:p-14\" style=\"background-color: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 8px 32px rgba(0,0,0,0.03);\">\n<p><!-- Main horizontal layout --><\/p>\n<div class=\"flex flex-col sm:flex-row gap-6 sm:gap-10 md:gap-14 animate-in\">\n<p><!-- Left: Section Number --><\/p>\n<div class=\"flex-shrink-0 flex sm:flex-col items-baseline sm:items-start gap-4 sm:gap-0\">\n<h2><span id=\"section-number\" class=\"font-serif-display section-number text-6xl sm:text-7xl md:text-8xl select-none\" style=\"color: #c2694a;\">04<\/span><\/h2>\n<div id=\"divider\" class=\"divider-line hidden sm:block mt-4\" style=\"background-color: #c2694a; opacity: 0.3;\"><\/div>\n<\/div>\n<p><!-- Right: Content --><\/p>\n<div class=\"flex-1 min-w-0\">\n<p><!-- Title --><\/p>\n<h2 id=\"section-title\" class=\"font-sans-body text-xl sm:text-2xl md:text-[1.7rem] font-700 leading-tight tracking-tight animate-in animate-in-delay-1\" style=\"color: #2a2928;\">Ingredient list not in INCI nomenclature<\/h2>\n<p><!-- Description --><\/p>\n<p id=\"paragraph-text\" class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">The ingredient list must use International Nomenclature of Cosmetic Ingredients (INCI) names \u2014 not common names, trade names, or marketing language. Ingredients must be listed in descending order of weight at the time of incorporation. Perfume and aromatic compositions may be listed simply as &#8220;Parfum&#8221; or &#8220;Aroma,&#8221; but allergens above threshold concentrations must be declared individually, even within fragrance mixes.<\/p>\n<p><!-- Compliance Boxes --><\/p>\n<div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4 mt-7 sm:mt-8 animate-in animate-in-delay-3\">\n<p><!-- Non-Compliant Box --><\/p>\n<div id=\"non-compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #fdf5f0; border-color: #f5cdb3;\"><\/div>\n<div id=\"compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #f2f7f3; border-color: #c3dbc2;\">\n<p id=\"compliant-text\" class=\"text-sm leading-snug font-500\" style=\"color: #565350;\">\n<\/div>\n<\/div>\n<p><!-- Tags --><\/p>\n<div class=\"flex flex-wrap gap-2.5 mt-7 sm:mt-8 animate-in animate-in-delay-4\"><span id=\"tag-one\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"color: #a8533a; border-color: #eeab82; background-color: rgba(194,105,74,0.06);\"> \u21d2High risk <span class=\"tag tag-info\" style=\"color: #5497de;\">Art. 19(1)(g)<\/span><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<p><script>\n    const defaultConfig = {\n      \/\/ Colors (ordered by visual prominence)\n      background_color: '#f6f5f3',\n      card_color: '#ffffff',\n      text_color: '#2a2928',\n      accent_color: '#c2694a',\n      compliant_color: '#4a8050',<\/p>\n<p>      \/\/ Font\n      font_family: 'DM Sans',\n      font_size: 16,<\/p>\n<p>      \/\/ Text content\n      section_number: '02',\n      section_title: 'Incorrect or missing country of origin for imported products',\n      paragraph_text: 'Regulation (EC) No 1223\/2009 requires that the country of origin be clearly stated on the labelling of cosmetic products imported into the EU. Vague or overly broad geographical references do not satisfy this requirement and may result in market surveillance actions, including product withdrawal.',\n      non_compliant_text: 'Manufactured by Cosmetica Ltd, Europe',\n      compliant_text: 'Manufactured in France',\n      tag_one: 'High risk',\n      tag_two: 'Art. 19(1)(b)',\n    };<\/p>\n<p>    function applyConfig(config) {\n      const c = key => config[key] || defaultConfig[key];<\/p>\n<p>      \/\/ Background\n      document.body.style.backgroundColor = c('background_color');\n      document.getElementById('card-container').style.backgroundColor = c('card_color');<\/p>\n<p>      \/\/ Accent color (terracotta)\n      const accent = c('accent_color');\n      document.getElementById('section-number').style.color = accent;\n      document.getElementById('divider').style.backgroundColor = accent;<\/p>\n<p>      \/\/ Non-compliant box accent\n      const ncBox = document.getElementById('non-compliant-box');\n      ncBox.querySelector('.rounded-full').style.backgroundColor = accent;\n      document.getElementById('non-compliant-label').style.color = accent;<\/p>\n<p>      \/\/ Compliant color\n      const green = c('compliant_color');\n      const cBox = document.getElementById('compliant-box');\n      cBox.querySelector('.rounded-full').style.backgroundColor = green;\n      document.getElementById('compliant-label').style.color = green;<\/p>\n<p>      \/\/ Text color\n      const textColor = c('text_color');\n      document.getElementById('section-title').style.color = textColor;<\/p>\n<p>      \/\/ Font\n      const fontFamily = c('font_family');\n      const baseFontStack = 'system-ui, sans-serif';\n      const fullStack = `${fontFamily}, ${baseFontStack}`;\n      document.body.style.fontFamily = fullStack;<\/p>\n<p>      const baseSize = c('font_size');\n      document.getElementById('section-title').style.fontSize = `${baseSize * 1.7}px`;\n      document.getElementById('paragraph-text').style.fontSize = `${baseSize * 0.95}px`;\n      document.getElementById('non-compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('tag-one').style.fontSize = `${baseSize * 0.75}px`;\n      document.getElementById('tag-two').style.fontSize = `${baseSize * 0.75}px`;<\/p>\n<p>      \/\/ Text content\n      document.getElementById('section-number').textContent = c('section_number');\n      document.getElementById('section-title').textContent = c('section_title');\n      document.getElementById('paragraph-text').textContent = c('paragraph_text');\n      document.getElementById('non-compliant-text').textContent = c('non_compliant_text');\n      document.getElementById('compliant-text').textContent = c('compliant_text');\n      document.getElementById('tag-one').textContent = c('tag_one');\n      document.getElementById('tag-two').textContent = c('tag_two');\n    }<\/p>\n<p>    \/\/ Helper to create a mutable for a config key\n    function mutable(configRef, key) {\n      return {\n        get: () => configRef[key] || defaultConfig[key],\n        set: (value) => {\n          configRef[key] = value;\n          window.elementSdk.setConfig({ [key]: value });\n        }\n      };\n    }<\/p>\n<p>    window.elementSdk.init({\n      defaultConfig,\n      onConfigChange: async (config) => {\n        applyConfig(config);\n      },\n      mapToCapabilities: (config) => ({\n        recolorables: [\n          mutable(config, 'background_color'),\n          mutable(config, 'card_color'),\n          mutable(config, 'text_color'),\n          mutable(config, 'accent_color'),\n          mutable(config, 'compliant_color'),\n        ],\n        borderables: [],\n        fontEditable: mutable(config, 'font_family'),\n        fontSizeable: mutable(config, 'font_size'),\n      }),\n      mapToEditPanelValues: (config) => new Map([\n        ['section_number', config.section_number || defaultConfig.section_number],\n        ['section_title', config.section_title || defaultConfig.section_title],\n        ['paragraph_text', config.paragraph_text || defaultConfig.paragraph_text],\n        ['non_compliant_text', config.non_compliant_text || defaultConfig.non_compliant_text],\n        ['compliant_text', config.compliant_text || defaultConfig.compliant_text],\n        ['tag_one', config.tag_one || defaultConfig.tag_one],\n        ['tag_two', config.tag_two || defaultConfig.tag_two],\n      ]),\n    });\n  <\/script><br \/>\n<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML=\"window.__CF$cv$params={r:'9e06924bb6977173',t:'MTc3NDE5NjkyNy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='\/cdn-cgi\/challenge-platform\/scripts\/jsd\/main.js';document.getElementsByTagName('head')[0].appendChild(a);\";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();<\/script>[\/vc_column_text][vc_column_text css=&#8221;&#8221;]<\/p>\n<div id=\"app-wrapper\" class=\"h-full w-full overflow-auto flex items-center justify-center p-6 sm:p-10 md:p-16\">\n<article class=\"w-full max-w-4xl\" role=\"main\">\n<div id=\"card-container\" class=\"rounded-2xl p-6 sm:p-10 md:p-14\" style=\"background-color: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 8px 32px rgba(0,0,0,0.03);\">\n<p><!-- Main horizontal layout --><\/p>\n<div class=\"flex flex-col sm:flex-row gap-6 sm:gap-10 md:gap-14 animate-in\">\n<p><!-- Left: Section Number --><\/p>\n<div class=\"flex-shrink-0 flex sm:flex-col items-baseline sm:items-start gap-4 sm:gap-0\">\n<h2><span id=\"section-number\" class=\"font-serif-display section-number text-6xl sm:text-7xl md:text-8xl select-none\" style=\"color: #c2694a;\">05<\/span><\/h2>\n<div id=\"divider\" class=\"divider-line hidden sm:block mt-4\" style=\"background-color: #c2694a; opacity: 0.3;\"><\/div>\n<\/div>\n<p><!-- Right: Content --><\/p>\n<div class=\"flex-1 min-w-0\">\n<p><!-- Title --><\/p>\n<h2 id=\"section-title\" class=\"font-sans-body text-xl sm:text-2xl md:text-[1.7rem] font-700 leading-tight tracking-tight animate-in animate-in-delay-1\" style=\"color: #2a2928;\">Insufficient font size or illegible text<\/h2>\n<p><!-- Description --><\/p>\n<p id=\"paragraph-text\" class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">All mandatory label information must be indelible, easily legible, and clearly visible. While the regulation does not specify an exact minimum point size, national guidance and industry practice treat 0.9mm lower-case letter height as the practical threshold. Information on very small containers that cannot fit all mandatory data on the physical label may use a leaflet or card, but must still include certain elements on the pack itself.<\/p>\n<p><!-- Compliance Boxes --><\/p>\n<div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4 mt-7 sm:mt-8 animate-in animate-in-delay-3\">\n<p><!-- Non-Compliant Box --><\/p>\n<div id=\"non-compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #fdf5f0; border-color: #f5cdb3;\"><\/div>\n<div id=\"compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #f2f7f3; border-color: #c3dbc2;\">\n<p id=\"compliant-text\" class=\"text-sm leading-snug font-500\" style=\"color: #565350;\">\n<\/div>\n<\/div>\n<p><!-- Tags --><\/p>\n<div class=\"flex flex-wrap gap-2.5 mt-7 sm:mt-8 animate-in animate-in-delay-4\"><span id=\"tag-one\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"color: #a8533a; border-color: #eeab82; background-color: rgba(194,105,74,0.06);\"> \u2192Medium risk \u00a0<span class=\"tag tag-info\" style=\"color: #5497de;\">Art. 19(2)<\/span><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<p><script>\n    const defaultConfig = {\n      \/\/ Colors (ordered by visual prominence)\n      background_color: '#f6f5f3',\n      card_color: '#ffffff',\n      text_color: '#2a2928',\n      accent_color: '#c2694a',\n      compliant_color: '#4a8050',<\/p>\n<p>      \/\/ Font\n      font_family: 'DM Sans',\n      font_size: 16,<\/p>\n<p>      \/\/ Text content\n      section_number: '02',\n      section_title: 'Incorrect or missing country of origin for imported products',\n      paragraph_text: 'Regulation (EC) No 1223\/2009 requires that the country of origin be clearly stated on the labelling of cosmetic products imported into the EU. Vague or overly broad geographical references do not satisfy this requirement and may result in market surveillance actions, including product withdrawal.',\n      non_compliant_text: 'Manufactured by Cosmetica Ltd, Europe',\n      compliant_text: 'Manufactured in France',\n      tag_one: 'High risk',\n      tag_two: 'Art. 19(1)(b)',\n    };<\/p>\n<p>    function applyConfig(config) {\n      const c = key => config[key] || defaultConfig[key];<\/p>\n<p>      \/\/ Background\n      document.body.style.backgroundColor = c('background_color');\n      document.getElementById('card-container').style.backgroundColor = c('card_color');<\/p>\n<p>      \/\/ Accent color (terracotta)\n      const accent = c('accent_color');\n      document.getElementById('section-number').style.color = accent;\n      document.getElementById('divider').style.backgroundColor = accent;<\/p>\n<p>      \/\/ Non-compliant box accent\n      const ncBox = document.getElementById('non-compliant-box');\n      ncBox.querySelector('.rounded-full').style.backgroundColor = accent;\n      document.getElementById('non-compliant-label').style.color = accent;<\/p>\n<p>      \/\/ Compliant color\n      const green = c('compliant_color');\n      const cBox = document.getElementById('compliant-box');\n      cBox.querySelector('.rounded-full').style.backgroundColor = green;\n      document.getElementById('compliant-label').style.color = green;<\/p>\n<p>      \/\/ Text color\n      const textColor = c('text_color');\n      document.getElementById('section-title').style.color = textColor;<\/p>\n<p>      \/\/ Font\n      const fontFamily = c('font_family');\n      const baseFontStack = 'system-ui, sans-serif';\n      const fullStack = `${fontFamily}, ${baseFontStack}`;\n      document.body.style.fontFamily = fullStack;<\/p>\n<p>      const baseSize = c('font_size');\n      document.getElementById('section-title').style.fontSize = `${baseSize * 1.7}px`;\n      document.getElementById('paragraph-text').style.fontSize = `${baseSize * 0.95}px`;\n      document.getElementById('non-compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('tag-one').style.fontSize = `${baseSize * 0.75}px`;\n      document.getElementById('tag-two').style.fontSize = `${baseSize * 0.75}px`;<\/p>\n<p>      \/\/ Text content\n      document.getElementById('section-number').textContent = c('section_number');\n      document.getElementById('section-title').textContent = c('section_title');\n      document.getElementById('paragraph-text').textContent = c('paragraph_text');\n      document.getElementById('non-compliant-text').textContent = c('non_compliant_text');\n      document.getElementById('compliant-text').textContent = c('compliant_text');\n      document.getElementById('tag-one').textContent = c('tag_one');\n      document.getElementById('tag-two').textContent = c('tag_two');\n    }<\/p>\n<p>    \/\/ Helper to create a mutable for a config key\n    function mutable(configRef, key) {\n      return {\n        get: () => configRef[key] || defaultConfig[key],\n        set: (value) => {\n          configRef[key] = value;\n          window.elementSdk.setConfig({ [key]: value });\n        }\n      };\n    }<\/p>\n<p>    window.elementSdk.init({\n      defaultConfig,\n      onConfigChange: async (config) => {\n        applyConfig(config);\n      },\n      mapToCapabilities: (config) => ({\n        recolorables: [\n          mutable(config, 'background_color'),\n          mutable(config, 'card_color'),\n          mutable(config, 'text_color'),\n          mutable(config, 'accent_color'),\n          mutable(config, 'compliant_color'),\n        ],\n        borderables: [],\n        fontEditable: mutable(config, 'font_family'),\n        fontSizeable: mutable(config, 'font_size'),\n      }),\n      mapToEditPanelValues: (config) => new Map([\n        ['section_number', config.section_number || defaultConfig.section_number],\n        ['section_title', config.section_title || defaultConfig.section_title],\n        ['paragraph_text', config.paragraph_text || defaultConfig.paragraph_text],\n        ['non_compliant_text', config.non_compliant_text || defaultConfig.non_compliant_text],\n        ['compliant_text', config.compliant_text || defaultConfig.compliant_text],\n        ['tag_one', config.tag_one || defaultConfig.tag_one],\n        ['tag_two', config.tag_two || defaultConfig.tag_two],\n      ]),\n    });\n  <\/script><br \/>\n<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML=\"window.__CF$cv$params={r:'9e06924bb6977173',t:'MTc3NDE5NjkyNy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='\/cdn-cgi\/challenge-platform\/scripts\/jsd\/main.js';document.getElementsByTagName('head')[0].appendChild(a);\";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();<\/script>[\/vc_column_text][vc_column_text css=&#8221;&#8221;]<\/p>\n<div id=\"app-wrapper\" class=\"h-full w-full overflow-auto flex items-center justify-center p-6 sm:p-10 md:p-16\">\n<article class=\"w-full max-w-4xl\" role=\"main\">\n<div id=\"card-container\" class=\"rounded-2xl p-6 sm:p-10 md:p-14\" style=\"background-color: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 8px 32px rgba(0,0,0,0.03);\">\n<p><!-- Main horizontal layout --><\/p>\n<div class=\"flex flex-col sm:flex-row gap-6 sm:gap-10 md:gap-14 animate-in\">\n<p><!-- Left: Section Number --><\/p>\n<div class=\"flex-shrink-0 flex sm:flex-col items-baseline sm:items-start gap-4 sm:gap-0\">\n<h2><span id=\"section-number\" class=\"font-serif-display section-number text-6xl sm:text-7xl md:text-8xl select-none\" style=\"color: #c2694a;\">06<\/span><\/h2>\n<div id=\"divider\" class=\"divider-line hidden sm:block mt-4\" style=\"background-color: #c2694a; opacity: 0.3;\"><\/div>\n<\/div>\n<p><!-- Right: Content --><\/p>\n<div class=\"flex-1 min-w-0\">\n<p><!-- Title --><\/p>\n<h2 id=\"section-title\" class=\"font-sans-body text-xl sm:text-2xl md:text-[1.7rem] font-700 leading-tight tracking-tight animate-in animate-in-delay-1\" style=\"color: #2a2928;\">Claims not substantiated or prohibited claims used<\/h2>\n<p><!-- Description --><\/p>\n<p id=\"paragraph-text\" class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">Cosmetic products may not claim medicinal properties, suggest they cure or treat conditions, or use comparative claims without substantiation. The EU&#8217;s Common Criteria Regulation sets six principles all cosmetic claims must satisfy: legal compliance, truthfulness, evidential support, honesty, fairness, and informed decision-making.<\/p>\n<p class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">Phrases like &#8220;clinically proven,&#8221; &#8220;dermatologist tested,&#8221; or &#8220;eliminates bacteria&#8221; routinely fail substantiation requirements or imply medical efficacy.<\/p>\n<p><!-- Compliance Boxes --><\/p>\n<div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4 mt-7 sm:mt-8 animate-in animate-in-delay-3\">\n<p><!-- Non-Compliant Box --><\/p>\n<div id=\"non-compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #fdf5f0; border-color: #f5cdb3;\"><\/div>\n<div id=\"compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #f2f7f3; border-color: #c3dbc2;\">\n<p id=\"compliant-text\" class=\"text-sm leading-snug font-500\" style=\"color: #565350;\">\n<\/div>\n<\/div>\n<p><!-- Tags --><\/p>\n<div class=\"flex flex-wrap gap-2.5 mt-7 sm:mt-8 animate-in animate-in-delay-4\"><span id=\"tag-one\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"color: #a8533a; border-color: #eeab82; background-color: rgba(194,105,74,0.06);\"> \u21d2High risk <span class=\"tag tag-info\" style=\"color: #58a5d1;\"> Reg. 655\/2013<\/span><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<p><script>\n    const defaultConfig = {\n      \/\/ Colors (ordered by visual prominence)\n      background_color: '#f6f5f3',\n      card_color: '#ffffff',\n      text_color: '#2a2928',\n      accent_color: '#c2694a',\n      compliant_color: '#4a8050',<\/p>\n<p>      \/\/ Font\n      font_family: 'DM Sans',\n      font_size: 16,<\/p>\n<p>      \/\/ Text content\n      section_number: '02',\n      section_title: 'Incorrect or missing country of origin for imported products',\n      paragraph_text: 'Regulation (EC) No 1223\/2009 requires that the country of origin be clearly stated on the labelling of cosmetic products imported into the EU. Vague or overly broad geographical references do not satisfy this requirement and may result in market surveillance actions, including product withdrawal.',\n      non_compliant_text: 'Manufactured by Cosmetica Ltd, Europe',\n      compliant_text: 'Manufactured in France',\n      tag_one: 'High risk',\n      tag_two: 'Art. 19(1)(b)',\n    };<\/p>\n<p>    function applyConfig(config) {\n      const c = key => config[key] || defaultConfig[key];<\/p>\n<p>      \/\/ Background\n      document.body.style.backgroundColor = c('background_color');\n      document.getElementById('card-container').style.backgroundColor = c('card_color');<\/p>\n<p>      \/\/ Accent color (terracotta)\n      const accent = c('accent_color');\n      document.getElementById('section-number').style.color = accent;\n      document.getElementById('divider').style.backgroundColor = accent;<\/p>\n<p>      \/\/ Non-compliant box accent\n      const ncBox = document.getElementById('non-compliant-box');\n      ncBox.querySelector('.rounded-full').style.backgroundColor = accent;\n      document.getElementById('non-compliant-label').style.color = accent;<\/p>\n<p>      \/\/ Compliant color\n      const green = c('compliant_color');\n      const cBox = document.getElementById('compliant-box');\n      cBox.querySelector('.rounded-full').style.backgroundColor = green;\n      document.getElementById('compliant-label').style.color = green;<\/p>\n<p>      \/\/ Text color\n      const textColor = c('text_color');\n      document.getElementById('section-title').style.color = textColor;<\/p>\n<p>      \/\/ Font\n      const fontFamily = c('font_family');\n      const baseFontStack = 'system-ui, sans-serif';\n      const fullStack = `${fontFamily}, ${baseFontStack}`;\n      document.body.style.fontFamily = fullStack;<\/p>\n<p>      const baseSize = c('font_size');\n      document.getElementById('section-title').style.fontSize = `${baseSize * 1.7}px`;\n      document.getElementById('paragraph-text').style.fontSize = `${baseSize * 0.95}px`;\n      document.getElementById('non-compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('tag-one').style.fontSize = `${baseSize * 0.75}px`;\n      document.getElementById('tag-two').style.fontSize = `${baseSize * 0.75}px`;<\/p>\n<p>      \/\/ Text content\n      document.getElementById('section-number').textContent = c('section_number');\n      document.getElementById('section-title').textContent = c('section_title');\n      document.getElementById('paragraph-text').textContent = c('paragraph_text');\n      document.getElementById('non-compliant-text').textContent = c('non_compliant_text');\n      document.getElementById('compliant-text').textContent = c('compliant_text');\n      document.getElementById('tag-one').textContent = c('tag_one');\n      document.getElementById('tag-two').textContent = c('tag_two');\n    }<\/p>\n<p>    \/\/ Helper to create a mutable for a config key\n    function mutable(configRef, key) {\n      return {\n        get: () => configRef[key] || defaultConfig[key],\n        set: (value) => {\n          configRef[key] = value;\n          window.elementSdk.setConfig({ [key]: value });\n        }\n      };\n    }<\/p>\n<p>    window.elementSdk.init({\n      defaultConfig,\n      onConfigChange: async (config) => {\n        applyConfig(config);\n      },\n      mapToCapabilities: (config) => ({\n        recolorables: [\n          mutable(config, 'background_color'),\n          mutable(config, 'card_color'),\n          mutable(config, 'text_color'),\n          mutable(config, 'accent_color'),\n          mutable(config, 'compliant_color'),\n        ],\n        borderables: [],\n        fontEditable: mutable(config, 'font_family'),\n        fontSizeable: mutable(config, 'font_size'),\n      }),\n      mapToEditPanelValues: (config) => new Map([\n        ['section_number', config.section_number || defaultConfig.section_number],\n        ['section_title', config.section_title || defaultConfig.section_title],\n        ['paragraph_text', config.paragraph_text || defaultConfig.paragraph_text],\n        ['non_compliant_text', config.non_compliant_text || defaultConfig.non_compliant_text],\n        ['compliant_text', config.compliant_text || defaultConfig.compliant_text],\n        ['tag_one', config.tag_one || defaultConfig.tag_one],\n        ['tag_two', config.tag_two || defaultConfig.tag_two],\n      ]),\n    });\n  <\/script><br \/>\n<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML=\"window.__CF$cv$params={r:'9e06924bb6977173',t:'MTc3NDE5NjkyNy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='\/cdn-cgi\/challenge-platform\/scripts\/jsd\/main.js';document.getElementsByTagName('head')[0].appendChild(a);\";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();<\/script>[\/vc_column_text][vc_column_text css=&#8221;&#8221;]<\/p>\n<div id=\"app-wrapper\" class=\"h-full w-full overflow-auto flex items-center justify-center p-6 sm:p-10 md:p-16\">\n<article class=\"w-full max-w-4xl\" role=\"main\">\n<div id=\"card-container\" class=\"rounded-2xl p-6 sm:p-10 md:p-14\" style=\"background-color: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 8px 32px rgba(0,0,0,0.03);\">\n<p><!-- Main horizontal layout --><\/p>\n<div class=\"flex flex-col sm:flex-row gap-6 sm:gap-10 md:gap-14 animate-in\">\n<p><!-- Left: Section Number --><\/p>\n<div class=\"flex-shrink-0 flex sm:flex-col items-baseline sm:items-start gap-4 sm:gap-0\">\n<h2><span id=\"section-number\" class=\"font-serif-display section-number text-6xl sm:text-7xl md:text-8xl select-none\" style=\"color: #c2694a;\">07<\/span><\/h2>\n<div id=\"divider\" class=\"divider-line hidden sm:block mt-4\" style=\"background-color: #c2694a; opacity: 0.3;\"><\/div>\n<\/div>\n<p><!-- Right: Content --><\/p>\n<div class=\"flex-1 min-w-0\">\n<p><!-- Title --><\/p>\n<h2 id=\"section-title\" class=\"font-sans-body text-xl sm:text-2xl md:text-[1.7rem] font-700 leading-tight tracking-tight animate-in animate-in-delay-1\" style=\"color: #2a2928;\">Language requirements not met<\/h2>\n<p><!-- Description --><\/p>\n<p id=\"paragraph-text\" class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">Labels must be in the official language(s) of the member state(s) where the product is sold. Warnings, precautions, and directions of use must be translated. Ingredient lists may use INCI names which are internationally standardised, but all other mandatory particulars require a local-language version.<\/p>\n<p class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">Selling a product intended for the Greek or French market with English-only warnings is a clear violation.<\/p>\n<p><!-- Compliance Boxes --><\/p>\n<div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4 mt-7 sm:mt-8 animate-in animate-in-delay-3\">\n<p><!-- Non-Compliant Box --><\/p>\n<div id=\"non-compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #fdf5f0; border-color: #f5cdb3;\"><\/div>\n<div id=\"compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #f2f7f3; border-color: #c3dbc2;\">\n<p id=\"compliant-text\" class=\"text-sm leading-snug font-500\" style=\"color: #565350;\">\n<\/div>\n<\/div>\n<p><!-- Tags --><\/p>\n<div class=\"flex flex-wrap gap-2.5 mt-7 sm:mt-8 animate-in animate-in-delay-4\"><span id=\"tag-one\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"color: #a8533a; border-color: #eeab82; background-color: rgba(194,105,74,0.06);\"> \u21d2High risk \u00a0<\/span><span id=\"tag-one\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"border-color: #eeab82; background-color: rgba(194, 105, 74, 0.06); color: #679ac2;\"><span class=\"tag tag-info\">Art. 19(5)<\/span><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<p><script>\n    const defaultConfig = {\n      \/\/ Colors (ordered by visual prominence)\n      background_color: '#f6f5f3',\n      card_color: '#ffffff',\n      text_color: '#2a2928',\n      accent_color: '#c2694a',\n      compliant_color: '#4a8050',<\/p>\n<p>      \/\/ Font\n      font_family: 'DM Sans',\n      font_size: 16,<\/p>\n<p>      \/\/ Text content\n      section_number: '02',\n      section_title: 'Incorrect or missing country of origin for imported products',\n      paragraph_text: 'Regulation (EC) No 1223\/2009 requires that the country of origin be clearly stated on the labelling of cosmetic products imported into the EU. Vague or overly broad geographical references do not satisfy this requirement and may result in market surveillance actions, including product withdrawal.',\n      non_compliant_text: 'Manufactured by Cosmetica Ltd, Europe',\n      compliant_text: 'Manufactured in France',\n      tag_one: 'High risk',\n      tag_two: 'Art. 19(1)(b)',\n    };<\/p>\n<p>    function applyConfig(config) {\n      const c = key => config[key] || defaultConfig[key];<\/p>\n<p>      \/\/ Background\n      document.body.style.backgroundColor = c('background_color');\n      document.getElementById('card-container').style.backgroundColor = c('card_color');<\/p>\n<p>      \/\/ Accent color (terracotta)\n      const accent = c('accent_color');\n      document.getElementById('section-number').style.color = accent;\n      document.getElementById('divider').style.backgroundColor = accent;<\/p>\n<p>      \/\/ Non-compliant box accent\n      const ncBox = document.getElementById('non-compliant-box');\n      ncBox.querySelector('.rounded-full').style.backgroundColor = accent;\n      document.getElementById('non-compliant-label').style.color = accent;<\/p>\n<p>      \/\/ Compliant color\n      const green = c('compliant_color');\n      const cBox = document.getElementById('compliant-box');\n      cBox.querySelector('.rounded-full').style.backgroundColor = green;\n      document.getElementById('compliant-label').style.color = green;<\/p>\n<p>      \/\/ Text color\n      const textColor = c('text_color');\n      document.getElementById('section-title').style.color = textColor;<\/p>\n<p>      \/\/ Font\n      const fontFamily = c('font_family');\n      const baseFontStack = 'system-ui, sans-serif';\n      const fullStack = `${fontFamily}, ${baseFontStack}`;\n      document.body.style.fontFamily = fullStack;<\/p>\n<p>      const baseSize = c('font_size');\n      document.getElementById('section-title').style.fontSize = `${baseSize * 1.7}px`;\n      document.getElementById('paragraph-text').style.fontSize = `${baseSize * 0.95}px`;\n      document.getElementById('non-compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('tag-one').style.fontSize = `${baseSize * 0.75}px`;\n      document.getElementById('tag-two').style.fontSize = `${baseSize * 0.75}px`;<\/p>\n<p>      \/\/ Text content\n      document.getElementById('section-number').textContent = c('section_number');\n      document.getElementById('section-title').textContent = c('section_title');\n      document.getElementById('paragraph-text').textContent = c('paragraph_text');\n      document.getElementById('non-compliant-text').textContent = c('non_compliant_text');\n      document.getElementById('compliant-text').textContent = c('compliant_text');\n      document.getElementById('tag-one').textContent = c('tag_one');\n      document.getElementById('tag-two').textContent = c('tag_two');\n    }<\/p>\n<p>    \/\/ Helper to create a mutable for a config key\n    function mutable(configRef, key) {\n      return {\n        get: () => configRef[key] || defaultConfig[key],\n        set: (value) => {\n          configRef[key] = value;\n          window.elementSdk.setConfig({ [key]: value });\n        }\n      };\n    }<\/p>\n<p>    window.elementSdk.init({\n      defaultConfig,\n      onConfigChange: async (config) => {\n        applyConfig(config);\n      },\n      mapToCapabilities: (config) => ({\n        recolorables: [\n          mutable(config, 'background_color'),\n          mutable(config, 'card_color'),\n          mutable(config, 'text_color'),\n          mutable(config, 'accent_color'),\n          mutable(config, 'compliant_color'),\n        ],\n        borderables: [],\n        fontEditable: mutable(config, 'font_family'),\n        fontSizeable: mutable(config, 'font_size'),\n      }),\n      mapToEditPanelValues: (config) => new Map([\n        ['section_number', config.section_number || defaultConfig.section_number],\n        ['section_title', config.section_title || defaultConfig.section_title],\n        ['paragraph_text', config.paragraph_text || defaultConfig.paragraph_text],\n        ['non_compliant_text', config.non_compliant_text || defaultConfig.non_compliant_text],\n        ['compliant_text', config.compliant_text || defaultConfig.compliant_text],\n        ['tag_one', config.tag_one || defaultConfig.tag_one],\n        ['tag_two', config.tag_two || defaultConfig.tag_two],\n      ]),\n    });\n  <\/script><br \/>\n<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML=\"window.__CF$cv$params={r:'9e06924bb6977173',t:'MTc3NDE5NjkyNy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='\/cdn-cgi\/challenge-platform\/scripts\/jsd\/main.js';document.getElementsByTagName('head')[0].appendChild(a);\";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();<\/script>[\/vc_column_text][vc_column_text css=&#8221;&#8221;]<\/p>\n<div id=\"app-wrapper\" class=\"h-full w-full overflow-auto flex items-center justify-center p-6 sm:p-10 md:p-16\">\n<article class=\"w-full max-w-4xl\" role=\"main\">\n<div id=\"card-container\" class=\"rounded-2xl p-6 sm:p-10 md:p-14\" style=\"background-color: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 8px 32px rgba(0,0,0,0.03);\">\n<p><!-- Main horizontal layout --><\/p>\n<div class=\"flex flex-col sm:flex-row gap-6 sm:gap-10 md:gap-14 animate-in\">\n<p><!-- Left: Section Number --><\/p>\n<div class=\"flex-shrink-0 flex sm:flex-col items-baseline sm:items-start gap-4 sm:gap-0\">\n<h2><span id=\"section-number\" class=\"font-serif-display section-number text-6xl sm:text-7xl md:text-8xl select-none\" style=\"color: #c2694a;\">08<\/span><\/h2>\n<div id=\"divider\" class=\"divider-line hidden sm:block mt-4\" style=\"background-color: #c2694a; opacity: 0.3;\"><\/div>\n<\/div>\n<p><!-- Right: Content --><\/p>\n<div class=\"flex-1 min-w-0\">\n<p><!-- Title --><\/p>\n<h2 id=\"section-title\" class=\"font-sans-body text-xl sm:text-2xl md:text-[1.7rem] font-700 leading-tight tracking-tight animate-in animate-in-delay-1\" style=\"color: #2a2928;\">Missing or incorrect precautionary statements for specific ingredients<\/h2>\n<p><!-- Description --><\/p>\n<p id=\"paragraph-text\" class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">A number of cosmetic ingredients are permitted only with specific labelling conditions. Hydrogen peroxide in hair products, retinol, and certain other ingredients all carry mandatory on-label warnings set out in the annexes to the Regulation.<\/p>\n<p class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">Failure to include them \u2014 even if the product is otherwise compliant \u2014 constitutes a direct breach of the conditions of use.<\/p>\n<p><!-- Compliance Boxes --><\/p>\n<div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4 mt-7 sm:mt-8 animate-in animate-in-delay-3\">\n<p><!-- Non-Compliant Box --><\/p>\n<div id=\"non-compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #fdf5f0; border-color: #f5cdb3;\"><\/div>\n<div id=\"compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #f2f7f3; border-color: #c3dbc2;\">\n<p id=\"compliant-text\" class=\"text-sm leading-snug font-500\" style=\"color: #565350;\">\n<\/div>\n<\/div>\n<p><!-- Tags --><\/p>\n<div class=\"flex flex-wrap gap-2.5 mt-7 sm:mt-8 animate-in animate-in-delay-4\"><span id=\"tag-one\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"color: #a8533a; border-color: #eeab82; background-color: rgba(194,105,74,0.06);\"> \u21d2High risk \u00a0<\/span><span id=\"tag-one\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"border-color: #eeab82; background-color: rgba(194, 105, 74, 0.06); color: #679ac2;\"><span class=\"tag tag-info\">Annexes III-VI<\/span><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<p><script>\n    const defaultConfig = {\n      \/\/ Colors (ordered by visual prominence)\n      background_color: '#f6f5f3',\n      card_color: '#ffffff',\n      text_color: '#2a2928',\n      accent_color: '#c2694a',\n      compliant_color: '#4a8050',<\/p>\n<p>      \/\/ Font\n      font_family: 'DM Sans',\n      font_size: 16,<\/p>\n<p>      \/\/ Text content\n      section_number: '02',\n      section_title: 'Incorrect or missing country of origin for imported products',\n      paragraph_text: 'Regulation (EC) No 1223\/2009 requires that the country of origin be clearly stated on the labelling of cosmetic products imported into the EU. Vague or overly broad geographical references do not satisfy this requirement and may result in market surveillance actions, including product withdrawal.',\n      non_compliant_text: 'Manufactured by Cosmetica Ltd, Europe',\n      compliant_text: 'Manufactured in France',\n      tag_one: 'High risk',\n      tag_two: 'Art. 19(1)(b)',\n    };<\/p>\n<p>    function applyConfig(config) {\n      const c = key => config[key] || defaultConfig[key];<\/p>\n<p>      \/\/ Background\n      document.body.style.backgroundColor = c('background_color');\n      document.getElementById('card-container').style.backgroundColor = c('card_color');<\/p>\n<p>      \/\/ Accent color (terracotta)\n      const accent = c('accent_color');\n      document.getElementById('section-number').style.color = accent;\n      document.getElementById('divider').style.backgroundColor = accent;<\/p>\n<p>      \/\/ Non-compliant box accent\n      const ncBox = document.getElementById('non-compliant-box');\n      ncBox.querySelector('.rounded-full').style.backgroundColor = accent;\n      document.getElementById('non-compliant-label').style.color = accent;<\/p>\n<p>      \/\/ Compliant color\n      const green = c('compliant_color');\n      const cBox = document.getElementById('compliant-box');\n      cBox.querySelector('.rounded-full').style.backgroundColor = green;\n      document.getElementById('compliant-label').style.color = green;<\/p>\n<p>      \/\/ Text color\n      const textColor = c('text_color');\n      document.getElementById('section-title').style.color = textColor;<\/p>\n<p>      \/\/ Font\n      const fontFamily = c('font_family');\n      const baseFontStack = 'system-ui, sans-serif';\n      const fullStack = `${fontFamily}, ${baseFontStack}`;\n      document.body.style.fontFamily = fullStack;<\/p>\n<p>      const baseSize = c('font_size');\n      document.getElementById('section-title').style.fontSize = `${baseSize * 1.7}px`;\n      document.getElementById('paragraph-text').style.fontSize = `${baseSize * 0.95}px`;\n      document.getElementById('non-compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('tag-one').style.fontSize = `${baseSize * 0.75}px`;\n      document.getElementById('tag-two').style.fontSize = `${baseSize * 0.75}px`;<\/p>\n<p>      \/\/ Text content\n      document.getElementById('section-number').textContent = c('section_number');\n      document.getElementById('section-title').textContent = c('section_title');\n      document.getElementById('paragraph-text').textContent = c('paragraph_text');\n      document.getElementById('non-compliant-text').textContent = c('non_compliant_text');\n      document.getElementById('compliant-text').textContent = c('compliant_text');\n      document.getElementById('tag-one').textContent = c('tag_one');\n      document.getElementById('tag-two').textContent = c('tag_two');\n    }<\/p>\n<p>    \/\/ Helper to create a mutable for a config key\n    function mutable(configRef, key) {\n      return {\n        get: () => configRef[key] || defaultConfig[key],\n        set: (value) => {\n          configRef[key] = value;\n          window.elementSdk.setConfig({ [key]: value });\n        }\n      };\n    }<\/p>\n<p>    window.elementSdk.init({\n      defaultConfig,\n      onConfigChange: async (config) => {\n        applyConfig(config);\n      },\n      mapToCapabilities: (config) => ({\n        recolorables: [\n          mutable(config, 'background_color'),\n          mutable(config, 'card_color'),\n          mutable(config, 'text_color'),\n          mutable(config, 'accent_color'),\n          mutable(config, 'compliant_color'),\n        ],\n        borderables: [],\n        fontEditable: mutable(config, 'font_family'),\n        fontSizeable: mutable(config, 'font_size'),\n      }),\n      mapToEditPanelValues: (config) => new Map([\n        ['section_number', config.section_number || defaultConfig.section_number],\n        ['section_title', config.section_title || defaultConfig.section_title],\n        ['paragraph_text', config.paragraph_text || defaultConfig.paragraph_text],\n        ['non_compliant_text', config.non_compliant_text || defaultConfig.non_compliant_text],\n        ['compliant_text', config.compliant_text || defaultConfig.compliant_text],\n        ['tag_one', config.tag_one || defaultConfig.tag_one],\n        ['tag_two', config.tag_two || defaultConfig.tag_two],\n      ]),\n    });\n  <\/script><br \/>\n<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML=\"window.__CF$cv$params={r:'9e06924bb6977173',t:'MTc3NDE5NjkyNy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='\/cdn-cgi\/challenge-platform\/scripts\/jsd\/main.js';document.getElementsByTagName('head')[0].appendChild(a);\";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();<\/script>[\/vc_column_text][vc_column_text css=&#8221;&#8221;]<\/p>\n<div id=\"app-wrapper\" class=\"h-full w-full overflow-auto flex items-center justify-center p-6 sm:p-10 md:p-16\">\n<article class=\"w-full max-w-4xl\" role=\"main\">\n<div id=\"card-container\" class=\"rounded-2xl p-6 sm:p-10 md:p-14\" style=\"background-color: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 8px 32px rgba(0,0,0,0.03);\">\n<p><!-- Main horizontal layout --><\/p>\n<div class=\"flex flex-col sm:flex-row gap-6 sm:gap-10 md:gap-14 animate-in\">\n<p><!-- Left: Section Number --><\/p>\n<div class=\"flex-shrink-0 flex sm:flex-col items-baseline sm:items-start gap-4 sm:gap-0\">\n<h2><span id=\"section-number\" class=\"font-serif-display section-number text-6xl sm:text-7xl md:text-8xl select-none\" style=\"color: #c2694a;\">09<\/span><\/h2>\n<div id=\"divider\" class=\"divider-line hidden sm:block mt-4\" style=\"background-color: #c2694a; opacity: 0.3;\"><\/div>\n<\/div>\n<p><!-- Right: Content --><\/p>\n<div class=\"flex-1 min-w-0\">\n<p><!-- Title --><\/p>\n<h2 class=\"mistake-title\">Batch number absent or non-traceable<\/h2>\n<p><!-- Description --><\/p>\n<p id=\"paragraph-text\" class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">A batch number or other reference to identify the manufacturing batch must appear on the label. This is a core traceability requirement enabling market recall actions. The batch code must exist on both the primary and secondary packaging, and the manufacturer must be able to decode it to identify production date, site, and raw material lot.<\/p>\n<p class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">Generic codes repeated across unrelated product runs do not satisfy this requirement.<\/p>\n<p><!-- Compliance Boxes --><\/p>\n<div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4 mt-7 sm:mt-8 animate-in animate-in-delay-3\">\n<p><!-- Non-Compliant Box --><\/p>\n<div id=\"non-compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #fdf5f0; border-color: #f5cdb3;\"><\/div>\n<div id=\"compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #f2f7f3; border-color: #c3dbc2;\">\n<p id=\"compliant-text\" class=\"text-sm leading-snug font-500\" style=\"color: #565350;\">\n<\/div>\n<\/div>\n<p><!-- Tags --><\/p>\n<div class=\"flex flex-wrap gap-2.5 mt-7 sm:mt-8 animate-in animate-in-delay-4\"><span id=\"tag-one\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"color: #a8533a; border-color: #eeab82; background-color: rgba(194,105,74,0.06);\">\u2192Medium risk \u00a0<\/span><span id=\"tag-one\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"border-color: #eeab82; background-color: rgba(194, 105, 74, 0.06); color: #679ac2;\"><span class=\"tag tag-info\">Art.19(1)(e)<\/span><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<p><script>\n    const defaultConfig = {\n      \/\/ Colors (ordered by visual prominence)\n      background_color: '#f6f5f3',\n      card_color: '#ffffff',\n      text_color: '#2a2928',\n      accent_color: '#c2694a',\n      compliant_color: '#4a8050',<\/p>\n<p>      \/\/ Font\n      font_family: 'DM Sans',\n      font_size: 16,<\/p>\n<p>      \/\/ Text content\n      section_number: '02',\n      section_title: 'Incorrect or missing country of origin for imported products',\n      paragraph_text: 'Regulation (EC) No 1223\/2009 requires that the country of origin be clearly stated on the labelling of cosmetic products imported into the EU. Vague or overly broad geographical references do not satisfy this requirement and may result in market surveillance actions, including product withdrawal.',\n      non_compliant_text: 'Manufactured by Cosmetica Ltd, Europe',\n      compliant_text: 'Manufactured in France',\n      tag_one: 'High risk',\n      tag_two: 'Art. 19(1)(b)',\n    };<\/p>\n<p>    function applyConfig(config) {\n      const c = key => config[key] || defaultConfig[key];<\/p>\n<p>      \/\/ Background\n      document.body.style.backgroundColor = c('background_color');\n      document.getElementById('card-container').style.backgroundColor = c('card_color');<\/p>\n<p>      \/\/ Accent color (terracotta)\n      const accent = c('accent_color');\n      document.getElementById('section-number').style.color = accent;\n      document.getElementById('divider').style.backgroundColor = accent;<\/p>\n<p>      \/\/ Non-compliant box accent\n      const ncBox = document.getElementById('non-compliant-box');\n      ncBox.querySelector('.rounded-full').style.backgroundColor = accent;\n      document.getElementById('non-compliant-label').style.color = accent;<\/p>\n<p>      \/\/ Compliant color\n      const green = c('compliant_color');\n      const cBox = document.getElementById('compliant-box');\n      cBox.querySelector('.rounded-full').style.backgroundColor = green;\n      document.getElementById('compliant-label').style.color = green;<\/p>\n<p>      \/\/ Text color\n      const textColor = c('text_color');\n      document.getElementById('section-title').style.color = textColor;<\/p>\n<p>      \/\/ Font\n      const fontFamily = c('font_family');\n      const baseFontStack = 'system-ui, sans-serif';\n      const fullStack = `${fontFamily}, ${baseFontStack}`;\n      document.body.style.fontFamily = fullStack;<\/p>\n<p>      const baseSize = c('font_size');\n      document.getElementById('section-title').style.fontSize = `${baseSize * 1.7}px`;\n      document.getElementById('paragraph-text').style.fontSize = `${baseSize * 0.95}px`;\n      document.getElementById('non-compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('tag-one').style.fontSize = `${baseSize * 0.75}px`;\n      document.getElementById('tag-two').style.fontSize = `${baseSize * 0.75}px`;<\/p>\n<p>      \/\/ Text content\n      document.getElementById('section-number').textContent = c('section_number');\n      document.getElementById('section-title').textContent = c('section_title');\n      document.getElementById('paragraph-text').textContent = c('paragraph_text');\n      document.getElementById('non-compliant-text').textContent = c('non_compliant_text');\n      document.getElementById('compliant-text').textContent = c('compliant_text');\n      document.getElementById('tag-one').textContent = c('tag_one');\n      document.getElementById('tag-two').textContent = c('tag_two');\n    }<\/p>\n<p>    \/\/ Helper to create a mutable for a config key\n    function mutable(configRef, key) {\n      return {\n        get: () => configRef[key] || defaultConfig[key],\n        set: (value) => {\n          configRef[key] = value;\n          window.elementSdk.setConfig({ [key]: value });\n        }\n      };\n    }<\/p>\n<p>    window.elementSdk.init({\n      defaultConfig,\n      onConfigChange: async (config) => {\n        applyConfig(config);\n      },\n      mapToCapabilities: (config) => ({\n        recolorables: [\n          mutable(config, 'background_color'),\n          mutable(config, 'card_color'),\n          mutable(config, 'text_color'),\n          mutable(config, 'accent_color'),\n          mutable(config, 'compliant_color'),\n        ],\n        borderables: [],\n        fontEditable: mutable(config, 'font_family'),\n        fontSizeable: mutable(config, 'font_size'),\n      }),\n      mapToEditPanelValues: (config) => new Map([\n        ['section_number', config.section_number || defaultConfig.section_number],\n        ['section_title', config.section_title || defaultConfig.section_title],\n        ['paragraph_text', config.paragraph_text || defaultConfig.paragraph_text],\n        ['non_compliant_text', config.non_compliant_text || defaultConfig.non_compliant_text],\n        ['compliant_text', config.compliant_text || defaultConfig.compliant_text],\n        ['tag_one', config.tag_one || defaultConfig.tag_one],\n        ['tag_two', config.tag_two || defaultConfig.tag_two],\n      ]),\n    });\n  <\/script><br \/>\n<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML=\"window.__CF$cv$params={r:'9e06924bb6977173',t:'MTc3NDE5NjkyNy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='\/cdn-cgi\/challenge-platform\/scripts\/jsd\/main.js';document.getElementsByTagName('head')[0].appendChild(a);\";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();<\/script>[\/vc_column_text][vc_column_text css=&#8221;&#8221;]<\/p>\n<div id=\"app-wrapper\" class=\"h-full w-full overflow-auto flex items-center justify-center p-6 sm:p-10 md:p-16\">\n<article class=\"w-full max-w-4xl\" role=\"main\">\n<div id=\"card-container\" class=\"rounded-2xl p-6 sm:p-10 md:p-14\" style=\"background-color: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 8px 32px rgba(0,0,0,0.03);\">\n<p><!-- Main horizontal layout --><\/p>\n<div class=\"flex flex-col sm:flex-row gap-6 sm:gap-10 md:gap-14 animate-in\">\n<p><!-- Left: Section Number --><\/p>\n<div class=\"flex-shrink-0 flex sm:flex-col items-baseline sm:items-start gap-4 sm:gap-0\">\n<h2><span id=\"section-number\" class=\"font-serif-display section-number text-6xl sm:text-7xl md:text-8xl select-none\" style=\"color: #c2694a;\">10<\/span><\/h2>\n<div id=\"divider\" class=\"divider-line hidden sm:block mt-4\" style=\"background-color: #c2694a; opacity: 0.3;\"><\/div>\n<\/div>\n<p><!-- Right: Content --><\/p>\n<div class=\"flex-1 min-w-0\">\n<p><!-- Title --><\/p>\n<h2 class=\"mistake-title\">Nano-ingredient declarations missing<\/h2>\n<p><!-- Description --><\/p>\n<p id=\"paragraph-text\" class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">Ingredients in nanomaterial form must be clearly indicated in the ingredient list. The word &#8220;nano&#8221; must follow the INCI name in brackets \u2014 for example, &#8220;Titanium Dioxide (nano).&#8221; This requirement is frequently overlooked because the nano status of an ingredient may not be apparent from supplier documentation. Brands must actively verify particle size characterisation in safety data.<\/p>\n<p><!-- Compliance Boxes --><\/p>\n<div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4 mt-7 sm:mt-8 animate-in animate-in-delay-3\">\n<p><!-- Non-Compliant Box --><\/p>\n<div id=\"non-compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #fdf5f0; border-color: #f5cdb3;\"><\/div>\n<div id=\"compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #f2f7f3; border-color: #c3dbc2;\">\n<p id=\"compliant-text\" class=\"text-sm leading-snug font-500\" style=\"color: #565350;\">\n<\/div>\n<\/div>\n<p><!-- Tags --><\/p>\n<div class=\"flex flex-wrap gap-2.5 mt-7 sm:mt-8 animate-in animate-in-delay-4\"><span id=\"tag-one\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"color: #a8533a; border-color: #eeab82; background-color: rgba(194,105,74,0.06);\">\u2192Medium risk \u00a0<\/span><span id=\"tag-one\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"border-color: #eeab82; background-color: rgba(194, 105, 74, 0.06); color: #679ac2;\"><span class=\"tag tag-info\">Art.19(1)(g) Art.16<\/span><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<p><script>\n    const defaultConfig = {\n      \/\/ Colors (ordered by visual prominence)\n      background_color: '#f6f5f3',\n      card_color: '#ffffff',\n      text_color: '#2a2928',\n      accent_color: '#c2694a',\n      compliant_color: '#4a8050',<\/p>\n<p>      \/\/ Font\n      font_family: 'DM Sans',\n      font_size: 16,<\/p>\n<p>      \/\/ Text content\n      section_number: '02',\n      section_title: 'Incorrect or missing country of origin for imported products',\n      paragraph_text: 'Regulation (EC) No 1223\/2009 requires that the country of origin be clearly stated on the labelling of cosmetic products imported into the EU. Vague or overly broad geographical references do not satisfy this requirement and may result in market surveillance actions, including product withdrawal.',\n      non_compliant_text: 'Manufactured by Cosmetica Ltd, Europe',\n      compliant_text: 'Manufactured in France',\n      tag_one: 'High risk',\n      tag_two: 'Art. 19(1)(b)',\n    };<\/p>\n<p>    function applyConfig(config) {\n      const c = key => config[key] || defaultConfig[key];<\/p>\n<p>      \/\/ Background\n      document.body.style.backgroundColor = c('background_color');\n      document.getElementById('card-container').style.backgroundColor = c('card_color');<\/p>\n<p>      \/\/ Accent color (terracotta)\n      const accent = c('accent_color');\n      document.getElementById('section-number').style.color = accent;\n      document.getElementById('divider').style.backgroundColor = accent;<\/p>\n<p>      \/\/ Non-compliant box accent\n      const ncBox = document.getElementById('non-compliant-box');\n      ncBox.querySelector('.rounded-full').style.backgroundColor = accent;\n      document.getElementById('non-compliant-label').style.color = accent;<\/p>\n<p>      \/\/ Compliant color\n      const green = c('compliant_color');\n      const cBox = document.getElementById('compliant-box');\n      cBox.querySelector('.rounded-full').style.backgroundColor = green;\n      document.getElementById('compliant-label').style.color = green;<\/p>\n<p>      \/\/ Text color\n      const textColor = c('text_color');\n      document.getElementById('section-title').style.color = textColor;<\/p>\n<p>      \/\/ Font\n      const fontFamily = c('font_family');\n      const baseFontStack = 'system-ui, sans-serif';\n      const fullStack = `${fontFamily}, ${baseFontStack}`;\n      document.body.style.fontFamily = fullStack;<\/p>\n<p>      const baseSize = c('font_size');\n      document.getElementById('section-title').style.fontSize = `${baseSize * 1.7}px`;\n      document.getElementById('paragraph-text').style.fontSize = `${baseSize * 0.95}px`;\n      document.getElementById('non-compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('tag-one').style.fontSize = `${baseSize * 0.75}px`;\n      document.getElementById('tag-two').style.fontSize = `${baseSize * 0.75}px`;<\/p>\n<p>      \/\/ Text content\n      document.getElementById('section-number').textContent = c('section_number');\n      document.getElementById('section-title').textContent = c('section_title');\n      document.getElementById('paragraph-text').textContent = c('paragraph_text');\n      document.getElementById('non-compliant-text').textContent = c('non_compliant_text');\n      document.getElementById('compliant-text').textContent = c('compliant_text');\n      document.getElementById('tag-one').textContent = c('tag_one');\n      document.getElementById('tag-two').textContent = c('tag_two');\n    }<\/p>\n<p>    \/\/ Helper to create a mutable for a config key\n    function mutable(configRef, key) {\n      return {\n        get: () => configRef[key] || defaultConfig[key],\n        set: (value) => {\n          configRef[key] = value;\n          window.elementSdk.setConfig({ [key]: value });\n        }\n      };\n    }<\/p>\n<p>    window.elementSdk.init({\n      defaultConfig,\n      onConfigChange: async (config) => {\n        applyConfig(config);\n      },\n      mapToCapabilities: (config) => ({\n        recolorables: [\n          mutable(config, 'background_color'),\n          mutable(config, 'card_color'),\n          mutable(config, 'text_color'),\n          mutable(config, 'accent_color'),\n          mutable(config, 'compliant_color'),\n        ],\n        borderables: [],\n        fontEditable: mutable(config, 'font_family'),\n        fontSizeable: mutable(config, 'font_size'),\n      }),\n      mapToEditPanelValues: (config) => new Map([\n        ['section_number', config.section_number || defaultConfig.section_number],\n        ['section_title', config.section_title || defaultConfig.section_title],\n        ['paragraph_text', config.paragraph_text || defaultConfig.paragraph_text],\n        ['non_compliant_text', config.non_compliant_text || defaultConfig.non_compliant_text],\n        ['compliant_text', config.compliant_text || defaultConfig.compliant_text],\n        ['tag_one', config.tag_one || defaultConfig.tag_one],\n        ['tag_two', config.tag_two || defaultConfig.tag_two],\n      ]),\n    });\n  <\/script><br \/>\n<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML=\"window.__CF$cv$params={r:'9e06924bb6977173',t:'MTc3NDE5NjkyNy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='\/cdn-cgi\/challenge-platform\/scripts\/jsd\/main.js';document.getElementsByTagName('head')[0].appendChild(a);\";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();<\/script>[\/vc_column_text][vc_column_text css=&#8221;&#8221;]<\/p>\n<div id=\"app-wrapper\" class=\"h-full w-full overflow-auto flex items-center justify-center p-6 sm:p-10 md:p-16\">\n<article class=\"w-full max-w-4xl\" role=\"main\">\n<div id=\"card-container\" class=\"rounded-2xl p-6 sm:p-10 md:p-14\" style=\"background-color: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 8px 32px rgba(0,0,0,0.03);\">\n<p><!-- Main horizontal layout --><\/p>\n<div class=\"flex flex-col sm:flex-row gap-6 sm:gap-10 md:gap-14 animate-in\">\n<p><!-- Left: Section Number --><\/p>\n<div class=\"flex-shrink-0 flex sm:flex-col items-baseline sm:items-start gap-4 sm:gap-0\">\n<h2><span id=\"section-number\" class=\"font-serif-display section-number text-6xl sm:text-7xl md:text-8xl select-none\" style=\"color: #c2694a;\">11<\/span><\/h2>\n<div id=\"divider\" class=\"divider-line hidden sm:block mt-4\" style=\"background-color: #c2694a; opacity: 0.3;\"><\/div>\n<\/div>\n<p><!-- Right: Content --><\/p>\n<div class=\"flex-1 min-w-0\">\n<p><!-- Title --><\/p>\n<h2 class=\"mistake-title\">CPNP notification errors or omissions<\/h2>\n<p><!-- Description --><\/p>\n<p id=\"paragraph-text\" class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">Before a cosmetic product is placed on the EU market, the Responsible Person must submit a notification through the Cosmetic Products Notification Portal (CPNP). Errors here are more common than many brands expect: notifying with an incomplete or outdated formula, failing to update the notification after a reformulation, submitting under the wrong product category, or \u2014 critically \u2014 placing the product on the market before the notification is accepted. For products containing nanomaterials, a separate 6-month prior notification is required under Article 16, and this step is frequently missed entirely.<\/p>\n<p class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">A product on-shelf with an absent or incorrect CPNP notification is non-compliant regardless of how accurate the physical label is.<\/p>\n<p><!-- Compliance Boxes --><\/p>\n<div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4 mt-7 sm:mt-8 animate-in animate-in-delay-3\">\n<p><!-- Non-Compliant Box --><\/p>\n<div id=\"non-compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #fdf5f0; border-color: #f5cdb3;\"><\/div>\n<div id=\"compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #f2f7f3; border-color: #c3dbc2;\">\n<p id=\"compliant-text\" class=\"text-sm leading-snug font-500\" style=\"color: #565350;\">\n<\/div>\n<\/div>\n<p><!-- Tags --><\/p>\n<div class=\"flex flex-wrap gap-2.5 mt-7 sm:mt-8 animate-in animate-in-delay-4\"><span id=\"tag-one\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"color: #a8533a; border-color: #eeab82; background-color: rgba(194,105,74,0.06);\">\u21d2High risk \u00a0<\/span><span id=\"tag-one\" class=\"pill-tag inline-flex items-center px-3.5 py-1.5 rounded-full text-xs font-500 border\" style=\"border-color: #eeab82; background-color: rgba(194, 105, 74, 0.06); color: #679ac2;\"><span class=\"tag tag-info\">Art.13 &amp; Art.16<\/span><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<p><script>\n    const defaultConfig = {\n      \/\/ Colors (ordered by visual prominence)\n      background_color: '#f6f5f3',\n      card_color: '#ffffff',\n      text_color: '#2a2928',\n      accent_color: '#c2694a',\n      compliant_color: '#4a8050',<\/p>\n<p>      \/\/ Font\n      font_family: 'DM Sans',\n      font_size: 16,<\/p>\n<p>      \/\/ Text content\n      section_number: '02',\n      section_title: 'Incorrect or missing country of origin for imported products',\n      paragraph_text: 'Regulation (EC) No 1223\/2009 requires that the country of origin be clearly stated on the labelling of cosmetic products imported into the EU. Vague or overly broad geographical references do not satisfy this requirement and may result in market surveillance actions, including product withdrawal.',\n      non_compliant_text: 'Manufactured by Cosmetica Ltd, Europe',\n      compliant_text: 'Manufactured in France',\n      tag_one: 'High risk',\n      tag_two: 'Art. 19(1)(b)',\n    };<\/p>\n<p>    function applyConfig(config) {\n      const c = key => config[key] || defaultConfig[key];<\/p>\n<p>      \/\/ Background\n      document.body.style.backgroundColor = c('background_color');\n      document.getElementById('card-container').style.backgroundColor = c('card_color');<\/p>\n<p>      \/\/ Accent color (terracotta)\n      const accent = c('accent_color');\n      document.getElementById('section-number').style.color = accent;\n      document.getElementById('divider').style.backgroundColor = accent;<\/p>\n<p>      \/\/ Non-compliant box accent\n      const ncBox = document.getElementById('non-compliant-box');\n      ncBox.querySelector('.rounded-full').style.backgroundColor = accent;\n      document.getElementById('non-compliant-label').style.color = accent;<\/p>\n<p>      \/\/ Compliant color\n      const green = c('compliant_color');\n      const cBox = document.getElementById('compliant-box');\n      cBox.querySelector('.rounded-full').style.backgroundColor = green;\n      document.getElementById('compliant-label').style.color = green;<\/p>\n<p>      \/\/ Text color\n      const textColor = c('text_color');\n      document.getElementById('section-title').style.color = textColor;<\/p>\n<p>      \/\/ Font\n      const fontFamily = c('font_family');\n      const baseFontStack = 'system-ui, sans-serif';\n      const fullStack = `${fontFamily}, ${baseFontStack}`;\n      document.body.style.fontFamily = fullStack;<\/p>\n<p>      const baseSize = c('font_size');\n      document.getElementById('section-title').style.fontSize = `${baseSize * 1.7}px`;\n      document.getElementById('paragraph-text').style.fontSize = `${baseSize * 0.95}px`;\n      document.getElementById('non-compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('tag-one').style.fontSize = `${baseSize * 0.75}px`;\n      document.getElementById('tag-two').style.fontSize = `${baseSize * 0.75}px`;<\/p>\n<p>      \/\/ Text content\n      document.getElementById('section-number').textContent = c('section_number');\n      document.getElementById('section-title').textContent = c('section_title');\n      document.getElementById('paragraph-text').textContent = c('paragraph_text');\n      document.getElementById('non-compliant-text').textContent = c('non_compliant_text');\n      document.getElementById('compliant-text').textContent = c('compliant_text');\n      document.getElementById('tag-one').textContent = c('tag_one');\n      document.getElementById('tag-two').textContent = c('tag_two');\n    }<\/p>\n<p>    \/\/ Helper to create a mutable for a config key\n    function mutable(configRef, key) {\n      return {\n        get: () => configRef[key] || defaultConfig[key],\n        set: (value) => {\n          configRef[key] = value;\n          window.elementSdk.setConfig({ [key]: value });\n        }\n      };\n    }<\/p>\n<p>    window.elementSdk.init({\n      defaultConfig,\n      onConfigChange: async (config) => {\n        applyConfig(config);\n      },\n      mapToCapabilities: (config) => ({\n        recolorables: [\n          mutable(config, 'background_color'),\n          mutable(config, 'card_color'),\n          mutable(config, 'text_color'),\n          mutable(config, 'accent_color'),\n          mutable(config, 'compliant_color'),\n        ],\n        borderables: [],\n        fontEditable: mutable(config, 'font_family'),\n        fontSizeable: mutable(config, 'font_size'),\n      }),\n      mapToEditPanelValues: (config) => new Map([\n        ['section_number', config.section_number || defaultConfig.section_number],\n        ['section_title', config.section_title || defaultConfig.section_title],\n        ['paragraph_text', config.paragraph_text || defaultConfig.paragraph_text],\n        ['non_compliant_text', config.non_compliant_text || defaultConfig.non_compliant_text],\n        ['compliant_text', config.compliant_text || defaultConfig.compliant_text],\n        ['tag_one', config.tag_one || defaultConfig.tag_one],\n        ['tag_two', config.tag_two || defaultConfig.tag_two],\n      ]),\n    });\n  <\/script><br \/>\n<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML=\"window.__CF$cv$params={r:'9e06924bb6977173',t:'MTc3NDE5NjkyNy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='\/cdn-cgi\/challenge-platform\/scripts\/jsd\/main.js';document.getElementsByTagName('head')[0].appendChild(a);\";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();<\/script>[\/vc_column_text][vc_separator css=&#8221;&#8221;][vc_column_text css=&#8221;&#8221;]<\/p>\n<blockquote><p><em>&#8220;A labelling review should be an iterative process, not a one-time sign-off \u2014 ingredient annexes are updated regularly, and a compliant label from two years ago may no longer be.&#8221;<\/em><\/p><\/blockquote>\n<p>[\/vc_column_text][vc_column_text css=&#8221;&#8221;]<\/p>\n<div id=\"app-wrapper\" class=\"h-full w-full overflow-auto flex items-center justify-center p-6 sm:p-10 md:p-16\">\n<article class=\"w-full max-w-4xl\" role=\"main\">\n<div id=\"card-container\" class=\"rounded-2xl p-6 sm:p-10 md:p-14\" style=\"background-color: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 8px 32px rgba(0,0,0,0.03);\">\n<p><!-- Main horizontal layout --><\/p>\n<div class=\"flex flex-col sm:flex-row gap-6 sm:gap-10 md:gap-14 animate-in\">\n<p><!-- Left: Section Number --><\/p>\n<div class=\"flex-shrink-0 flex sm:flex-col items-baseline sm:items-start gap-4 sm:gap-0\">\n<h2><span id=\"section-number\" class=\"font-serif-display section-number text-6xl sm:text-7xl md:text-8xl select-none\">Practical guidance for compliance teams<\/span><\/h2>\n<div id=\"divider\" class=\"divider-line hidden sm:block mt-4\" style=\"background-color: #c2694a; opacity: 0.3;\"><\/div>\n<\/div>\n<p><!-- Right: Content --><\/p>\n<div class=\"flex-1 min-w-0\">\n<p><!-- Title --><\/p>\n<p class=\"prose\"><span style=\"color: #808080;\">Labelling compliance is not a one-time project. The annexes to Regulation 1223\/2009 are amended regularly through Commission regulations, and ingredients that were permitted without restriction can suddenly require specific warnings or be subject to concentration limits. Any label must be reviewed against the current version of the annexes at the point of placing on the market \u2014 not at the point of initial development.<\/span><\/p>\n<p class=\"prose\"><span style=\"color: #808080;\">For multi-market products, it is strongly recommended to develop a master label specification that identifies every mandatory and optional element, maps it to the relevant article, records the evidence supporting any claim, and assigns a language version for each target member state. A rolling review schedule should be tied to product reformulation, ingredient supplier changes, and regulatory updates.<\/span><\/p>\n<p class=\"prose\"><span style=\"color: #808080;\">The same discipline applies to CPNP notifications. Brands should maintain an internal register of all notified products, recording the notification date, product category, formula version, and any subsequent updates. When a formula changes \u2014 even marginally \u2014 the notification must be reviewed and amended accordingly.<\/span><\/p>\n<p><span style=\"color: #808080;\"><!-- Description --><\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<p><script>\n    const defaultConfig = {\n      \/\/ Colors (ordered by visual prominence)\n      background_color: '#f6f5f3',\n      card_color: '#ffffff',\n      text_color: '#2a2928',\n      accent_color: '#c2694a',\n      compliant_color: '#4a8050',<\/p>\n<p>      \/\/ Font\n      font_family: 'DM Sans',\n      font_size: 16,<\/p>\n<p>      \/\/ Text content\n      section_number: '02',\n      section_title: 'Incorrect or missing country of origin for imported products',\n      paragraph_text: 'Regulation (EC) No 1223\/2009 requires that the country of origin be clearly stated on the labelling of cosmetic products imported into the EU. Vague or overly broad geographical references do not satisfy this requirement and may result in market surveillance actions, including product withdrawal.',\n      non_compliant_text: 'Manufactured by Cosmetica Ltd, Europe',\n      compliant_text: 'Manufactured in France',\n      tag_one: 'High risk',\n      tag_two: 'Art. 19(1)(b)',\n    };<\/p>\n<p>    function applyConfig(config) {\n      const c = key => config[key] || defaultConfig[key];<\/p>\n<p>      \/\/ Background\n      document.body.style.backgroundColor = c('background_color');\n      document.getElementById('card-container').style.backgroundColor = c('card_color');<\/p>\n<p>      \/\/ Accent color (terracotta)\n      const accent = c('accent_color');\n      document.getElementById('section-number').style.color = accent;\n      document.getElementById('divider').style.backgroundColor = accent;<\/p>\n<p>      \/\/ Non-compliant box accent\n      const ncBox = document.getElementById('non-compliant-box');\n      ncBox.querySelector('.rounded-full').style.backgroundColor = accent;\n      document.getElementById('non-compliant-label').style.color = accent;<\/p>\n<p>      \/\/ Compliant color\n      const green = c('compliant_color');\n      const cBox = document.getElementById('compliant-box');\n      cBox.querySelector('.rounded-full').style.backgroundColor = green;\n      document.getElementById('compliant-label').style.color = green;<\/p>\n<p>      \/\/ Text color\n      const textColor = c('text_color');\n      document.getElementById('section-title').style.color = textColor;<\/p>\n<p>      \/\/ Font\n      const fontFamily = c('font_family');\n      const baseFontStack = 'system-ui, sans-serif';\n      const fullStack = `${fontFamily}, ${baseFontStack}`;\n      document.body.style.fontFamily = fullStack;<\/p>\n<p>      const baseSize = c('font_size');\n      document.getElementById('section-title').style.fontSize = `${baseSize * 1.7}px`;\n      document.getElementById('paragraph-text').style.fontSize = `${baseSize * 0.95}px`;\n      document.getElementById('non-compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('tag-one').style.fontSize = `${baseSize * 0.75}px`;\n      document.getElementById('tag-two').style.fontSize = `${baseSize * 0.75}px`;<\/p>\n<p>      \/\/ Text content\n      document.getElementById('section-number').textContent = c('section_number');\n      document.getElementById('section-title').textContent = c('section_title');\n      document.getElementById('paragraph-text').textContent = c('paragraph_text');\n      document.getElementById('non-compliant-text').textContent = c('non_compliant_text');\n      document.getElementById('compliant-text').textContent = c('compliant_text');\n      document.getElementById('tag-one').textContent = c('tag_one');\n      document.getElementById('tag-two').textContent = c('tag_two');\n    }<\/p>\n<p>    \/\/ Helper to create a mutable for a config key\n    function mutable(configRef, key) {\n      return {\n        get: () => configRef[key] || defaultConfig[key],\n        set: (value) => {\n          configRef[key] = value;\n          window.elementSdk.setConfig({ [key]: value });\n        }\n      };\n    }<\/p>\n<p>    window.elementSdk.init({\n      defaultConfig,\n      onConfigChange: async (config) => {\n        applyConfig(config);\n      },\n      mapToCapabilities: (config) => ({\n        recolorables: [\n          mutable(config, 'background_color'),\n          mutable(config, 'card_color'),\n          mutable(config, 'text_color'),\n          mutable(config, 'accent_color'),\n          mutable(config, 'compliant_color'),\n        ],\n        borderables: [],\n        fontEditable: mutable(config, 'font_family'),\n        fontSizeable: mutable(config, 'font_size'),\n      }),\n      mapToEditPanelValues: (config) => new Map([\n        ['section_number', config.section_number || defaultConfig.section_number],\n        ['section_title', config.section_title || defaultConfig.section_title],\n        ['paragraph_text', config.paragraph_text || defaultConfig.paragraph_text],\n        ['non_compliant_text', config.non_compliant_text || defaultConfig.non_compliant_text],\n        ['compliant_text', config.compliant_text || defaultConfig.compliant_text],\n        ['tag_one', config.tag_one || defaultConfig.tag_one],\n        ['tag_two', config.tag_two || defaultConfig.tag_two],\n      ]),\n    });\n  <\/script><br \/>\n<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML=\"window.__CF$cv$params={r:'9e06924bb6977173',t:'MTc3NDE5NjkyNy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='\/cdn-cgi\/challenge-platform\/scripts\/jsd\/main.js';document.getElementsByTagName('head')[0].appendChild(a);\";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();<\/script>[\/vc_column_text][vc_column_text css=&#8221;&#8221;]<\/p>\n<div id=\"app-wrapper\" class=\"h-full w-full overflow-auto flex items-center justify-center p-6 sm:p-10 md:p-16\">\n<article class=\"w-full max-w-4xl\" role=\"main\">\n<div id=\"card-container\" class=\"rounded-2xl p-6 sm:p-10 md:p-14\" style=\"background-color: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 8px 32px rgba(0,0,0,0.03);\">\n<p><!-- Main horizontal layout --><\/p>\n<div class=\"flex flex-col sm:flex-row gap-6 sm:gap-10 md:gap-14 animate-in\">\n<p><!-- Left: Section Number --><\/p>\n<div class=\"flex-shrink-0 flex sm:flex-col items-baseline sm:items-start gap-4 sm:gap-0\">\n<h2><span id=\"section-number\" class=\"font-serif-display section-number text-6xl sm:text-7xl md:text-8xl select-none\" style=\"color: #c2694a;\">NEED HELP WITH YOUR LABELS?<\/span><\/h2>\n<div id=\"divider\" class=\"divider-line hidden sm:block mt-4\" style=\"background-color: #c2694a; opacity: 0.3;\"><\/div>\n<\/div>\n<p><!-- Right: Content --><\/p>\n<div class=\"flex-1 min-w-0\">\n<p><!-- Title --><\/p>\n<h2 class=\"mistake-title\">ELINEK can review your cosmetic products for full EU compliance<\/h2>\n<p><!-- Description --><\/p>\n<p id=\"paragraph-text\" class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">Our team of cosmetic regulatory specialists offers label assessment, INCI verification, claims substantiation review, CPNP notification support, and safety evaluation for the Greek and EU markets.<\/p>\n<p class=\"mt-4 sm:mt-5 text-[0.95rem] sm:text-base leading-relaxed animate-in animate-in-delay-2\" style=\"color: #706c66;\">Whether you are bringing a new product to market or auditing an existing range, we are here to help.<\/p>\n<p>&nbsp;<\/p>\n<div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4 mt-7 sm:mt-8 animate-in animate-in-delay-3\">\n<div id=\"compliant-box\" class=\"compliance-box rounded-xl p-5 border\" style=\"background-color: #f2f7f3; border-color: #c3dbc2;\">\n<p id=\"compliant-text\" class=\"text-sm leading-snug font-500\" style=\"color: #565350;\">\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<p><script>\n    const defaultConfig = {\n      \/\/ Colors (ordered by visual prominence)\n      background_color: '#f6f5f3',\n      card_color: '#ffffff',\n      text_color: '#2a2928',\n      accent_color: '#c2694a',\n      compliant_color: '#4a8050',<\/p>\n<p>      \/\/ Font\n      font_family: 'DM Sans',\n      font_size: 16,<\/p>\n<p>      \/\/ Text content\n      section_number: '02',\n      section_title: 'Incorrect or missing country of origin for imported products',\n      paragraph_text: 'Regulation (EC) No 1223\/2009 requires that the country of origin be clearly stated on the labelling of cosmetic products imported into the EU. Vague or overly broad geographical references do not satisfy this requirement and may result in market surveillance actions, including product withdrawal.',\n      non_compliant_text: 'Manufactured by Cosmetica Ltd, Europe',\n      compliant_text: 'Manufactured in France',\n      tag_one: 'High risk',\n      tag_two: 'Art. 19(1)(b)',\n    };<\/p>\n<p>    function applyConfig(config) {\n      const c = key => config[key] || defaultConfig[key];<\/p>\n<p>      \/\/ Background\n      document.body.style.backgroundColor = c('background_color');\n      document.getElementById('card-container').style.backgroundColor = c('card_color');<\/p>\n<p>      \/\/ Accent color (terracotta)\n      const accent = c('accent_color');\n      document.getElementById('section-number').style.color = accent;\n      document.getElementById('divider').style.backgroundColor = accent;<\/p>\n<p>      \/\/ Non-compliant box accent\n      const ncBox = document.getElementById('non-compliant-box');\n      ncBox.querySelector('.rounded-full').style.backgroundColor = accent;\n      document.getElementById('non-compliant-label').style.color = accent;<\/p>\n<p>      \/\/ Compliant color\n      const green = c('compliant_color');\n      const cBox = document.getElementById('compliant-box');\n      cBox.querySelector('.rounded-full').style.backgroundColor = green;\n      document.getElementById('compliant-label').style.color = green;<\/p>\n<p>      \/\/ Text color\n      const textColor = c('text_color');\n      document.getElementById('section-title').style.color = textColor;<\/p>\n<p>      \/\/ Font\n      const fontFamily = c('font_family');\n      const baseFontStack = 'system-ui, sans-serif';\n      const fullStack = `${fontFamily}, ${baseFontStack}`;\n      document.body.style.fontFamily = fullStack;<\/p>\n<p>      const baseSize = c('font_size');\n      document.getElementById('section-title').style.fontSize = `${baseSize * 1.7}px`;\n      document.getElementById('paragraph-text').style.fontSize = `${baseSize * 0.95}px`;\n      document.getElementById('non-compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('compliant-text').style.fontSize = `${baseSize * 0.875}px`;\n      document.getElementById('tag-one').style.fontSize = `${baseSize * 0.75}px`;\n      document.getElementById('tag-two').style.fontSize = `${baseSize * 0.75}px`;<\/p>\n<p>      \/\/ Text content\n      document.getElementById('section-number').textContent = c('section_number');\n      document.getElementById('section-title').textContent = c('section_title');\n      document.getElementById('paragraph-text').textContent = c('paragraph_text');\n      document.getElementById('non-compliant-text').textContent = c('non_compliant_text');\n      document.getElementById('compliant-text').textContent = c('compliant_text');\n      document.getElementById('tag-one').textContent = c('tag_one');\n      document.getElementById('tag-two').textContent = c('tag_two');\n    }<\/p>\n<p>    \/\/ Helper to create a mutable for a config key\n    function mutable(configRef, key) {\n      return {\n        get: () => configRef[key] || defaultConfig[key],\n        set: (value) => {\n          configRef[key] = value;\n          window.elementSdk.setConfig({ [key]: value });\n        }\n      };\n    }<\/p>\n<p>    window.elementSdk.init({\n      defaultConfig,\n      onConfigChange: async (config) => {\n        applyConfig(config);\n      },\n      mapToCapabilities: (config) => ({\n        recolorables: [\n          mutable(config, 'background_color'),\n          mutable(config, 'card_color'),\n          mutable(config, 'text_color'),\n          mutable(config, 'accent_color'),\n          mutable(config, 'compliant_color'),\n        ],\n        borderables: [],\n        fontEditable: mutable(config, 'font_family'),\n        fontSizeable: mutable(config, 'font_size'),\n      }),\n      mapToEditPanelValues: (config) => new Map([\n        ['section_number', config.section_number || defaultConfig.section_number],\n        ['section_title', config.section_title || defaultConfig.section_title],\n        ['paragraph_text', config.paragraph_text || defaultConfig.paragraph_text],\n        ['non_compliant_text', config.non_compliant_text || defaultConfig.non_compliant_text],\n        ['compliant_text', config.compliant_text || defaultConfig.compliant_text],\n        ['tag_one', config.tag_one || defaultConfig.tag_one],\n        ['tag_two', config.tag_two || defaultConfig.tag_two],\n      ]),\n    });\n  <\/script><br \/>\n<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML=\"window.__CF$cv$params={r:'9e06924bb6977173',t:'MTc3NDE5NjkyNy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='\/cdn-cgi\/challenge-platform\/scripts\/jsd\/main.js';document.getElementsByTagName('head')[0].appendChild(a);\";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();<\/script>[\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column][vc_cta h2=&#8221;Need support with EU cosmetic compliance?&#8221; add_button=&#8221;bottom&#8221; btn_title=&#8221;Contact us!&#8221; btn_size=&#8221;lg&#8221; css=&#8221;&#8221; btn_link=&#8221;url:https%3A%2F%2Fwww.elinek.gr%2Fen%2Fcontact%2F|target:_blank&#8221;][\/vc_cta][\/vc_column][\/vc_row][vc_row][vc_column][vc_cta h2=&#8221;Download Services Overview (PDF)&#8221; txt_align=&#8221;center&#8221; color=&#8221;green&#8221; css=&#8221;&#8221;]<\/p>\n<p style=\"text-align: center;\">Download our complete services overview \u2014 cosmetics testing, regulatory affairs, food supplements &amp; more.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.elinek.gr\/wp-content\/uploads\/2026\/05\/ELINEK_Brochure_Services_2026.pdf\">ELINEK_Brochure_Services_2026<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>[\/vc_cta][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>The most common cosmetic labelling mistakes in the EU and how to ensure compliance with Regulation (EC) No 1223\/2009.<\/p>\n","protected":false},"author":12,"featured_media":3581,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[40],"tags":[],"class_list":["post-3564","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-legislation","category-40","description-off"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Common Mistakes in EU Cosmetic Product Labels - Elinek<\/title>\n<meta name=\"description\" content=\"Discover the 11 most common cosmetic labeling compliance issues in the EU, including Responsible Person details, INCI lists, claims, and CPNP requirements.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Common Mistakes in EU Cosmetic Product Labels - Elinek\" \/>\n<meta property=\"og:description\" content=\"Discover the 11 most common cosmetic labeling compliance issues in the EU, including Responsible Person details, INCI lists, claims, and CPNP requirements.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/\" \/>\n<meta property=\"og:site_name\" content=\"Elinek\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-22T17:55:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-18T09:50:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.elinek.gr\/wp-content\/uploads\/2026\/03\/Labeling-Compliance-in-the-EU-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"896\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Katerina Zouridaki\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Katerina Zouridaki\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.elinek.gr\\\/en\\\/common-mistakes-in-eu-cosmetic-product-labels\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.elinek.gr\\\/en\\\/common-mistakes-in-eu-cosmetic-product-labels\\\/\"},\"author\":{\"name\":\"Katerina Zouridaki\",\"@id\":\"https:\\\/\\\/www.elinek.gr\\\/#\\\/schema\\\/person\\\/86d4648aa853f647dd8dbc5f529ba19d\"},\"headline\":\"Common Mistakes in EU Cosmetic Product Labels\",\"datePublished\":\"2026-03-22T17:55:58+00:00\",\"dateModified\":\"2026-05-18T09:50:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.elinek.gr\\\/en\\\/common-mistakes-in-eu-cosmetic-product-labels\\\/\"},\"wordCount\":1517,\"image\":{\"@id\":\"https:\\\/\\\/www.elinek.gr\\\/en\\\/common-mistakes-in-eu-cosmetic-product-labels\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.elinek.gr\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/Labeling-Compliance-in-the-EU-2.png\",\"articleSection\":[\"Legislation\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.elinek.gr\\\/en\\\/common-mistakes-in-eu-cosmetic-product-labels\\\/\",\"url\":\"https:\\\/\\\/www.elinek.gr\\\/en\\\/common-mistakes-in-eu-cosmetic-product-labels\\\/\",\"name\":\"Common Mistakes in EU Cosmetic Product Labels - Elinek\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.elinek.gr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.elinek.gr\\\/en\\\/common-mistakes-in-eu-cosmetic-product-labels\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.elinek.gr\\\/en\\\/common-mistakes-in-eu-cosmetic-product-labels\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.elinek.gr\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/Labeling-Compliance-in-the-EU-2.png\",\"datePublished\":\"2026-03-22T17:55:58+00:00\",\"dateModified\":\"2026-05-18T09:50:22+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.elinek.gr\\\/#\\\/schema\\\/person\\\/86d4648aa853f647dd8dbc5f529ba19d\"},\"description\":\"Discover the 11 most common cosmetic labeling compliance issues in the EU, including Responsible Person details, INCI lists, claims, and CPNP requirements.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.elinek.gr\\\/en\\\/common-mistakes-in-eu-cosmetic-product-labels\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.elinek.gr\\\/en\\\/common-mistakes-in-eu-cosmetic-product-labels\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.elinek.gr\\\/en\\\/common-mistakes-in-eu-cosmetic-product-labels\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.elinek.gr\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/Labeling-Compliance-in-the-EU-2.png\",\"contentUrl\":\"https:\\\/\\\/www.elinek.gr\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/Labeling-Compliance-in-the-EU-2.png\",\"width\":1600,\"height\":896},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.elinek.gr\\\/en\\\/common-mistakes-in-eu-cosmetic-product-labels\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0391\u03c1\u03c7\u03b9\u03ba\u03ae\",\"item\":\"https:\\\/\\\/www.elinek.gr\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Common Mistakes in EU Cosmetic Product Labels\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.elinek.gr\\\/#website\",\"url\":\"https:\\\/\\\/www.elinek.gr\\\/\",\"name\":\"Elinek\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.elinek.gr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.elinek.gr\\\/#\\\/schema\\\/person\\\/86d4648aa853f647dd8dbc5f529ba19d\",\"name\":\"Katerina Zouridaki\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bfdda222b3f2c4e072719e38d79850d9ea6004c9ac9ec28f73c3fe9b382e189e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bfdda222b3f2c4e072719e38d79850d9ea6004c9ac9ec28f73c3fe9b382e189e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bfdda222b3f2c4e072719e38d79850d9ea6004c9ac9ec28f73c3fe9b382e189e?s=96&d=mm&r=g\",\"caption\":\"Katerina Zouridaki\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Common Mistakes in EU Cosmetic Product Labels - Elinek","description":"Discover the 11 most common cosmetic labeling compliance issues in the EU, including Responsible Person details, INCI lists, claims, and CPNP requirements.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/","og_locale":"en_US","og_type":"article","og_title":"Common Mistakes in EU Cosmetic Product Labels - Elinek","og_description":"Discover the 11 most common cosmetic labeling compliance issues in the EU, including Responsible Person details, INCI lists, claims, and CPNP requirements.","og_url":"https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/","og_site_name":"Elinek","article_published_time":"2026-03-22T17:55:58+00:00","article_modified_time":"2026-05-18T09:50:22+00:00","og_image":[{"width":1600,"height":896,"url":"https:\/\/www.elinek.gr\/wp-content\/uploads\/2026\/03\/Labeling-Compliance-in-the-EU-2.png","type":"image\/png"}],"author":"Katerina Zouridaki","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Katerina Zouridaki","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/#article","isPartOf":{"@id":"https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/"},"author":{"name":"Katerina Zouridaki","@id":"https:\/\/www.elinek.gr\/#\/schema\/person\/86d4648aa853f647dd8dbc5f529ba19d"},"headline":"Common Mistakes in EU Cosmetic Product Labels","datePublished":"2026-03-22T17:55:58+00:00","dateModified":"2026-05-18T09:50:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/"},"wordCount":1517,"image":{"@id":"https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/#primaryimage"},"thumbnailUrl":"https:\/\/www.elinek.gr\/wp-content\/uploads\/2026\/03\/Labeling-Compliance-in-the-EU-2.png","articleSection":["Legislation"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/","url":"https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/","name":"Common Mistakes in EU Cosmetic Product Labels - Elinek","isPartOf":{"@id":"https:\/\/www.elinek.gr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/#primaryimage"},"image":{"@id":"https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/#primaryimage"},"thumbnailUrl":"https:\/\/www.elinek.gr\/wp-content\/uploads\/2026\/03\/Labeling-Compliance-in-the-EU-2.png","datePublished":"2026-03-22T17:55:58+00:00","dateModified":"2026-05-18T09:50:22+00:00","author":{"@id":"https:\/\/www.elinek.gr\/#\/schema\/person\/86d4648aa853f647dd8dbc5f529ba19d"},"description":"Discover the 11 most common cosmetic labeling compliance issues in the EU, including Responsible Person details, INCI lists, claims, and CPNP requirements.","breadcrumb":{"@id":"https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/#primaryimage","url":"https:\/\/www.elinek.gr\/wp-content\/uploads\/2026\/03\/Labeling-Compliance-in-the-EU-2.png","contentUrl":"https:\/\/www.elinek.gr\/wp-content\/uploads\/2026\/03\/Labeling-Compliance-in-the-EU-2.png","width":1600,"height":896},{"@type":"BreadcrumbList","@id":"https:\/\/www.elinek.gr\/en\/common-mistakes-in-eu-cosmetic-product-labels\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0391\u03c1\u03c7\u03b9\u03ba\u03ae","item":"https:\/\/www.elinek.gr\/en\/"},{"@type":"ListItem","position":2,"name":"Common Mistakes in EU Cosmetic Product Labels"}]},{"@type":"WebSite","@id":"https:\/\/www.elinek.gr\/#website","url":"https:\/\/www.elinek.gr\/","name":"Elinek","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.elinek.gr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.elinek.gr\/#\/schema\/person\/86d4648aa853f647dd8dbc5f529ba19d","name":"Katerina Zouridaki","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/bfdda222b3f2c4e072719e38d79850d9ea6004c9ac9ec28f73c3fe9b382e189e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bfdda222b3f2c4e072719e38d79850d9ea6004c9ac9ec28f73c3fe9b382e189e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bfdda222b3f2c4e072719e38d79850d9ea6004c9ac9ec28f73c3fe9b382e189e?s=96&d=mm&r=g","caption":"Katerina Zouridaki"}}]}},"_links":{"self":[{"href":"https:\/\/www.elinek.gr\/en\/wp-json\/wp\/v2\/posts\/3564","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.elinek.gr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.elinek.gr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.elinek.gr\/en\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.elinek.gr\/en\/wp-json\/wp\/v2\/comments?post=3564"}],"version-history":[{"count":4,"href":"https:\/\/www.elinek.gr\/en\/wp-json\/wp\/v2\/posts\/3564\/revisions"}],"predecessor-version":[{"id":3906,"href":"https:\/\/www.elinek.gr\/en\/wp-json\/wp\/v2\/posts\/3564\/revisions\/3906"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.elinek.gr\/en\/wp-json\/wp\/v2\/media\/3581"}],"wp:attachment":[{"href":"https:\/\/www.elinek.gr\/en\/wp-json\/wp\/v2\/media?parent=3564"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.elinek.gr\/en\/wp-json\/wp\/v2\/categories?post=3564"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.elinek.gr\/en\/wp-json\/wp\/v2\/tags?post=3564"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}