{"id":188340,"date":"2022-01-24T16:26:10","date_gmt":"2022-01-24T21:26:10","guid":{"rendered":"https:\/\/dev.new.datacolor.eu\/soluzioni-aziendali\/soluzioni-per-la-gestione-del-colore\/banco\/confrontare\/"},"modified":"2026-06-11T05:48:26","modified_gmt":"2026-06-11T09:48:26","slug":"compare","status":"publish","type":"page","link":"https:\/\/www.datacolor.com\/it\/soluzioni-aziendali\/soluzioni-per-la-gestione-del-colore\/banco\/compare\/","title":{"rendered":"Spettrofotometri da banco a confronto"},"content":{"rendered":"<div class=\"wp-core-gutenblock gutenblock bg-color-white core_table\">\n            <div class=\"container-fluid\">\n                <div class=\"row\">\n                    <div class=\"column\">\n                    <div class=\"compare-table-wrap\">\n                        <div class=\"compare-table-wrap__more d-none\">Altro <i class=\"fas fa-angle-double-right\"><\/i><\/div>\n                        \n                    <\/div><\/div>\n                <\/div>\n            <\/div>\n        <\/div><div class=\"wp-core-gutenblock gutenblock bg-color-white core_html\">\n            <div class=\"container-fluid\">\n                <div class=\"row\">\n                    <div class=\"column\">  <style>\n    *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }\n    html, body, #root { min-height: 100vh; }\n    body {\n      font-family: 'Roboto', 'Noto Sans SC', sans-serif;\n      font-weight: 300;\n      font-size: 16px;\n      line-height: 1.5;\n      color: #53565A;\n      background: #F5F5F5;\n      -webkit-font-smoothing: antialiased;\n    }\n  <\/style>\n  <script crossorigin src=\"https:\/\/unpkg.com\/react@18\/umd\/react.production.min.js\"><\/script>\n  <script crossorigin src=\"https:\/\/unpkg.com\/react-dom@18\/umd\/react-dom.production.min.js\"><\/script>\n  <script src=\"https:\/\/unpkg.com\/@babel\/standalone\/babel.min.js\"><\/script>\n\n\n  <div id=\"root\"><\/div>\n  <script type=\"text\/babel\">\n    const { useState, useEffect, useCallback, useMemo, createContext, useContext } = React;\n\n    \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n       DESIGN TOKENS \u2014 Datacolor Design System\n    \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n    const C = {\n      RED: \"#D7172F\",\n      RED_DARK: \"#A61121\",\n      RED_LIGHT: \"#EF6577\",\n      RED_PALE: \"#FCE0E4\",\n      BLACK: \"#000000\",\n      N_DARK: \"#53565A\",\n      N_MID: \"#97999B\",\n      N_LT: \"#C8C9C7\",\n      N_PALE: \"#E6E6E6\",\n      WHITE: \"#FFFFFF\",\n      OFFWHITE: \"#F5F5F5\",\n      SUCCESS: \"#85C72E\",\n      SUCCESS_DARK: \"#639522\",\n      ALERT: \"#FECD32\",\n    };\n    const R = \"1px\"; \/\/ border-radius \u2014 system-wide\n    const EASE = \"cubic-bezier(0.45, 0, 0.55, 1)\";\n\n    \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n       LANGUAGE CONFIG\n    \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n    const SUPPORTED_LANGS = [\"en\",\"de\",\"fr\",\"es\",\"pt\",\"it\",\"zh\"];\n\n    \/* Read language from CMS-injected variable. The CMS page should include\n       a script tag setting: var ComparisonToolLanguage = \"de\";\n       before this tool's script. Falls back to English if not set. *\/\n    function getLang() {\n      const cmsLang = (typeof window.ComparisonToolLanguage === \"string\")\n        ? window.ComparisonToolLanguage.toLowerCase().trim()\n        : \"\";\n      return SUPPORTED_LANGS.includes(cmsLang) ? cmsLang : \"en\";\n    }\n\n    const LangContext = createContext({ lang: \"en\" });\n\n    \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n       PER-LANGUAGE URLS\n    \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n    const BASE = \"https:\/\/www.datacolor.com\";\n    const BASE_CN = \"https:\/\/www.datacolorchina.cn\";\n\n    const PRODUCT_URLS = {\n      spectro1000: {\n        en: `${BASE}\/business-solutions\/product\/spectro-1000\/`,\n        de: `${BASE}\/de\/business-solutions\/product\/spektro-1000\/`,\n        fr: `${BASE}\/fr\/business-solutions\/product\/spectro-1000\/`,\n        es: `${BASE}\/es\/business-solutions\/product\/espectro-1000\/`,\n        pt: `${BASE}\/pt-br\/business-solutions\/product\/spectro-1000\/`,\n        it: `${BASE}\/it\/business-solutions\/product\/spettro-1000\/`,\n        zh: `${BASE_CN}\/zh-hans\/business-solutions\/product\/spectro-1000\/`,\n      },\n      spectro700: {\n        en: `${BASE}\/business-solutions\/product\/spectro-700\/`,\n        de: `${BASE}\/de\/business-solutions\/product\/spektro-700\/`,\n        fr: `${BASE}\/fr\/business-solutions\/product\/spectro-700\/`,\n        es: `${BASE}\/es\/business-solutions\/product\/espectro-700-2\/`,\n        pt: `${BASE}\/pt-br\/business-solutions\/product\/spectro-700-2\/`,\n        it: `${BASE}\/it\/business-solutions\/product\/spettro-700-2\/`,\n        zh: `${BASE_CN}\/zh-hans\/business-solutions\/product\/spectro-700-2\/`,\n      },\n      spectravision: {\n        en: `${BASE}\/business-solutions\/product\/spectravision\/`,\n        de: `${BASE}\/de\/business-solutions\/product\/spectravision\/`,\n        fr: `${BASE}\/fr\/business-solutions\/product\/spectravision\/`,\n        es: `${BASE}\/es\/business-solutions\/product\/spectravision\/`,\n        pt: `${BASE}\/pt-br\/business-solutions\/product\/spectravision\/`,\n        it: `${BASE}\/it\/business-solutions\/product\/spectravision\/`,\n        zh: `${BASE_CN}\/zh-hans\/business-solutions\/product\/spectravision\/`,\n      },\n      elrepho: {\n        en: `${BASE}\/business-solutions\/product\/datacolor-elrepho\/`,\n        de: `${BASE}\/de\/business-solutions\/product\/datacolor-elrepho\/`,\n        fr: `${BASE}\/fr\/business-solutions\/product\/datacolor-elrepho\/`,\n        es: `${BASE}\/es\/business-solutions\/product\/datacolor-elrepho\/`,\n        pt: `${BASE}\/pt-br\/business-solutions\/product\/elrepho-1000-controle-de-qualidade-para-a-industria-de-papel-celulose-e-minerais\/`,\n        it: `${BASE}\/it\/business-solutions\/product\/datacolor-elrepho\/`,\n        zh: `${BASE_CN}\/zh-hans\/business-solutions\/product\/datacolor-elrepho\/`,\n      },\n    };\n\n    const CONTACT_URLS = {\n      en: `${BASE}\/business-solutions\/request-product-info\/`,\n      de: `${BASE}\/de\/business-loesungen\/anfrage-produkt-info\/`,\n      fr: `${BASE}\/fr\/solutions-daffaires\/demande-dinformations-sur-les-produits-2\/`,\n      es: `${BASE}\/es\/soluciones-empresariales\/solicitar-mas-informacion\/`,\n      pt: `${BASE}\/pt-br\/business-solutions\/pedir-mais-informacoes\/`,\n      it: `${BASE}\/it\/soluzioni-aziendali\/richiesta-di-informazioni-sul-prodotto\/`,\n      zh: `${BASE_CN}\/zh-hans\/business-solutions\/request-product-info\/`,\n    };\n\n    const UPL = `${BASE}\/wp-content\/uploads`;\n    const SPEC_SHEETS = {\n      spectro1000: {\n        en: `${UPL}\/2022\/04\/DC1000-specsheet-EN-0621-1.pdf`,\n        de: `${UPL}\/2022\/04\/DC1000-specsheet-DE-0621.pdf`,\n        fr: `${UPL}\/2022\/04\/DC1000-specsheet-FR-0621.pdf`,\n        es: `${UPL}\/2022\/04\/DC1000-specsheet-ES.pdf`,\n        pt: `${UPL}\/2022\/04\/DC1000-specsheet-PT.pdf`,\n        it: `${UPL}\/2022\/04\/DC1000-specsheet-IT.pdf`,\n        zh: `${UPL}\/2022\/04\/DC1000-specsheet-SC-0621.pdf`,\n      },\n      spectro700: {\n        en: `${UPL}\/2022\/01\/DC700-specsheet-EN-0621-1.pdf`,\n        de: `${UPL}\/2022\/01\/DC700-specsheet-DE-0621.pdf`,\n        fr: `${UPL}\/2022\/01\/DC700-specsheet-FR-0621.pdf`,\n        es: `${UPL}\/2022\/01\/DC700-specsheet-ES.pdf`,\n        pt: `${UPL}\/2022\/01\/DC700-specsheet-PT.pdf`,\n        it: `${UPL}\/2022\/01\/DC700-specsheet-IT.pdf`,\n        zh: `${UPL}\/2022\/01\/DC700-specsheet-SC-0621.pdf`,\n      },\n      spectravision: {\n        en: `${UPL}\/2024\/05\/SV-specsheet-EN-202405.pdf`,\n        de: `${UPL}\/2022\/01\/SV-specsheet-DE.pdf`,\n        fr: `${UPL}\/2022\/01\/SV-specsheet-FR.pdf`,\n        es: `${UPL}\/2024\/05\/SV-specsheet-EN-202405.pdf`,\n        pt: `${UPL}\/2024\/05\/SV-specsheet-EN-202405.pdf`,\n        it: `${UPL}\/2024\/05\/SV-specsheet-EN-202405.pdf`,\n        zh: `${UPL}\/2022\/01\/SV-specsheet-SC.pdf`,\n      },\n      elrepho: {\n        en: `${UPL}\/2022\/01\/Elrepho-specsheet-EN-21112024.pdf`,\n        de: `${UPL}\/2024\/07\/Elrepho-specsheet-DE-19072024.pdf`,\n        fr: `${UPL}\/2024\/07\/Elrepho-specsheet-FR-19072024.pdf`,\n        es: `${UPL}\/2022\/01\/Elrepho-specsheet-ES-08082024.pdf`,\n        pt: `${UPL}\/2022\/01\/Elrepho-specsheet-EN-21112024.pdf`,\n        it: `${UPL}\/2022\/01\/Elrepho-specsheet-EN-21112024.pdf`,\n        zh: `${UPL}\/2024\/08\/Elrepho-specsheet-SC-23072024.pdf`,\n      },\n    };\n\n    function productUrl(id, lang) { return PRODUCT_URLS[id]?.[lang] || PRODUCT_URLS[id]?.en; }\n    function specSheetUrl(id, lang) { return SPEC_SHEETS[id]?.[lang] || SPEC_SHEETS[id]?.en; }\n    function contactUrl(lang) { return CONTACT_URLS[lang] || CONTACT_URLS.en; }\n\n    \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n       I18N \u2014 All translatable strings\n    \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n    const I18N = {\n      \/* \u2500\u2500 English \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n      en: {\n        headerLabel: \"Spectrophotometer Selector\",\n        restart: \"Restart\",\n        welcomeTitle: \"Find Your Ideal Spectrophotometer\",\n        welcomeDesc: \"Answer a few quick questions about your application and we\\u2019ll recommend the best Datacolor benchtop spectrophotometer for your needs.\",\n        startBtn: \"Start Product Finder\",\n        browseBtn: \"Browse All Models\",\n        stepOf: (n, t) => `Step ${n} of ${t}`,\n        back: \"Back\",\n        skip: \"Skip\",\n        cont: \"Continue\",\n        seeRecs: \"See Recommendations\",\n        yourRecs: \"Your Recommendations\",\n        basedOn: \"Based on your application requirements\",\n        topRec: \"TOP RECOMMENDATION\",\n        match: \"match\",\n        recVariant: \"Recommended variant\",\n        viewProduct: \"View Product\",\n        specSheet: \"Spec Sheet\",\n        compareTxt: \"Compare\",\n        inCompare: \"\\u2713 In Compare\",\n        compareModels: \"Compare Models\",\n        compareN: (n) => `Compare ${n} Models \\u2192`,\n        remove: \"Remove\",\n        variantsAvail: \"Variants Available\",\n        sampleTypesLbl: \"Sample Types\",\n        productPage: \"Product Page\",\n        startOver: \"Start Over\",\n        contactCta: \"Contact a Color Expert \\u2192\",\n        contactSub1: \"Not sure which one? Our color experts can help.\",\n        contactSub2: \"Want personalized guidance? Our color measurement experts are here to help.\",\n        contactSub3: \"Need help deciding? Our color experts can guide you to the perfect solution.\",\n        selectToCompare: \"Select models to compare side-by-side\",\n        temp: \"Temp\",\n        camera: \"Camera\",\n        \/\/ Questions\n        q1: \"What materials do you need to measure?\",\n        q1sub: \"Select all that apply\",\n        q1_textiles: \"Textiles & fabrics\",\n        q1_paint: \"Paint & coatings\",\n        q1_opaque: \"Opaque plastics\",\n        q1_translucent: \"Translucent \/ transparent materials\",\n        q1_paper: \"Paper, pulp & minerals\",\n        q1_powders: \"Powders, granules & pastes\",\n        q1_liquids: \"Liquids\",\n        q1_irregular: \"Small, textured, or irregular samples\",\n        q2: \"What is your primary use case?\",\n        q2sub: \"Select one\",\n        q2_formulation: \"Color formulation & recipe development\",\n        q2_qc: \"Quality control & inspection\",\n        q2_both: \"Both formulation and QC\",\n        q3: \"How critical is instrument-to-instrument consistency?\",\n        q3sub: \"Inter-instrument agreement (IIA) measures how closely instruments of the same model read the same color\",\n        q3_highest: \"Highest precision\",\n        q3_highestDesc: \"Global supply chain, multiple sites, tightest tolerances\",\n        q3_high: \"High precision\",\n        q3_highDesc: \"Multi-location QC, reliable results\",\n        q3_standard: \"Standard precision\",\n        q3_standardDesc: \"Single site, general quality control\",\n        q4: \"Do you need any of these capabilities?\",\n        q4sub: \"Select all that apply, or skip if none\",\n        q4_trans: \"Transmittance measurement\",\n        q4_transDesc: \"For transparent or translucent samples\",\n        q4_uv: \"UV calibration\",\n        q4_uvDesc: \"For fluorescent materials & optical brighteners\",\n        q4_temp: \"Sample temperature measurement\",\n        q4_tempDesc: \"For thermochromic confidence\",\n        q4_camera: \"Camera-assisted positioning\",\n        q4_cameraDesc: \"Precise spot measurement on samples\",\n        q4_vert: \"Vertical measurement port\",\n        q4_vertDesc: \"For powders, granules, or pastes\",\n        \/\/ Products\n        p_s1000_tag: \"Highest precision benchtop spectrophotometers\",\n        p_s1000_best: \"Global supply chains demanding the tightest color tolerances across multiple instruments and sites.\",\n        p_s700_tag: \"Cost-effective, high-precision spectrophotometers\",\n        p_s700_best: \"Labs and manufacturers needing reliable, accurate color measurement at an accessible price point.\",\n        p_sv_tag: \"Precise color evaluation of nearly anything\",\n        p_sv_best: \"Samples that are traditionally unmeasurable \\u2014 multi-color, textured, small, or irregularly shaped materials.\",\n        p_el_tag: \"Quality control for paper, pulp & minerals\",\n        p_el_best: \"Paper mills, pulp producers, and mineral processors focused on whiteness, brightness, opacity, and diffuse reflectance QC.\",\n        \/\/ Sample types\n        st_textiles: \"Textiles & fabrics\", st_paint: \"Paint & coatings\", st_opaque: \"Opaque plastics\",\n        st_translucent: \"Translucent materials\", st_powders: \"Powders & granules\", st_liquids: \"Liquids\",\n        st_fluorescent: \"Fluorescent \/ OBA samples\", st_prints: \"Prints & patterns\",\n        st_lace: \"Lace, trims, zippers\", st_buttons: \"Buttons & small components\",\n        st_yarns: \"Yarns & thread\", st_jewelry: \"Jewelry & watches\",\n        st_textured: \"Textured surfaces\", st_dental: \"Dental ceramics & crystals\",\n        st_pellets: \"Small plastic pellets\", st_weathering: \"Weathering samples\",\n        st_paper: \"Paper & board\", st_pulp: \"Pulp\", st_chemicals: \"Chemicals\",\n        st_minerals: \"Minerals\", st_nonwovens: \"Non-wovens\",\n        \/\/ Variants\n        v_s1000_std: \"Standard front-facing reflectance\",\n        v_s1050: \"Reflectance + Transmittance\",\n        v_s1000v: \"Vertical downward-facing\",\n        v_s1000x: \"Vertical upward-facing\",\n        v_s1000_stdBest: \"Textiles, paint, opaque plastics, fluorescent samples\",\n        v_s1050Best: \"Translucent plastics, clear liquids, films\",\n        v_s1000vBest: \"Minerals, powders, plastic granules (gravity-fed)\",\n        v_s1000xBest: \"Powders, granules, pastes, liquids placed on port\",\n        v_s700_std: \"Standard reflectance\",\n        v_s750: \"Reflectance + Transmittance\",\n        v_s700v: \"Vertical configuration\",\n        v_s700uv: \"UV-optimized for fluorescence\",\n        v_s700_stdBest: \"Paint, opaque plastics, general color QC\",\n        v_s750Best: \"Translucent plastics, clear liquids\",\n        v_s700vBest: \"Minerals, powders, liquids\",\n        v_s700uvBest: \"Textiles, optical brighteners, detergent & washability tests\",\n        v_sv: \"Camera-based multi-point measurement\",\n        v_svBest: \"Multi-color, textured, small, or irregular samples\",\n        v_el: \"Reflectance measurement for paper & pulp QC\",\n        v_elBest: \"Whiteness, brightness, opacity, yellowness, and color QC for paper & pulp\",\n        \/\/ Spec labels\n        sl_iia: \"Inter-Instrument Agreement\",\n        sl_repeat: \"Repeatability (20 reads)\",\n        sl_wl: \"Wavelength Range\",\n        sl_sphere: \"Sphere Diameter\",\n        sl_uv: \"UV Calibration\",\n        sl_tempSensor: \"Temperature Sensor\",\n        sl_cam: \"Positioning Camera\",\n        sl_apertures: \"Apertures\",\n        sl_connect: \"Connectivity\",\n        sl_warranty: \"Warranty\",\n        sl_method: \"Measurement Method\",\n        sl_sampleSize: \"Sample Size\",\n        sl_multiPoint: \"Multi-Point\",\n        sl_primaryUse: \"Primary Use\",\n        sl_standards: \"Industry Standards\",\n        \/\/ Spec values\n        sv_yes: \"Yes\", sv_no: \"No\", sv_standard: \"Standard\",\n        sv_autoAdj: \"Automated, adjustable\",\n        sv_yesLav: \"Yes (LAV aperture)\",\n        sv_yesCam: \"Yes\",\n        sv_imaging: \"Imaging spectrophotometer\",\n        sv_anyShape: \"Virtually any shape or size\",\n        sv_multiYes: \"Yes \\u2014 measure multiple areas at once\",\n        sv_intCam: \"Integrated high-res camera\",\n        sv_isoTappi: \"ISO \/ TAPPI compliant\",\n        sv_whiteness: \"Whiteness, brightness, opacity, reflectance factors, yellowness\",\n        \/\/ Scoring reasons\n        r_irregular: \"Designed for irregular, multi-color, and textured samples\",\n        r_paper: \"Purpose-built for paper, pulp & mineral QC\",\n        r_textile: \"Supports textile measurement\",\n        r_trans: \"Transmittance variant recommended for translucent samples\",\n        r_formulation: \"Supports color formulation\",\n        r_both: \"Supports both formulation and QC\",\n        r_iia1000: \"Industry-leading IIA: 0.08 avg \/ 0.15 max \\u0394E*ab\",\n        r_iia700: \"Strong IIA: 0.15 avg \/ 0.30 max \\u0394E*ab at a great value\",\n        r_transAvail: \"Transmittance-capable variant available\",\n        r_uvCal: \"Includes UV calibration for fluorescent samples\",\n        r_tempBuilt: \"Built-in sample temperature measurement\",\n        r_camAssist: \"Camera-assisted sample positioning\",\n        r_vertAvail: \"Vertical measurement configuration available\",\n        \/\/ Tiers\n        tier_premium: \"Premium\", tier_professional: \"Professional\", tier_specialty: \"Specialty\",\n      },\n\n      \/* \u2500\u2500 German \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n      de: {\n        headerLabel: \"Spektrophotometer-Auswahl\",\n        restart: \"Neustart\",\n        welcomeTitle: \"Finden Sie Ihr ideales Spektrophotometer\",\n        welcomeDesc: \"Beantworten Sie einige kurze Fragen zu Ihrer Anwendung und wir empfehlen Ihnen das passende Datacolor Tisch-Spektrophotometer.\",\n        startBtn: \"Produktfinder starten\",\n        browseBtn: \"Alle Modelle ansehen\",\n        stepOf: (n, t) => `Schritt ${n} von ${t}`,\n        back: \"Zur\u00fcck\",\n        skip: \"\u00dcberspringen\",\n        cont: \"Weiter\",\n        seeRecs: \"Empfehlungen anzeigen\",\n        yourRecs: \"Ihre Empfehlungen\",\n        basedOn: \"Basierend auf Ihren Anwendungsanforderungen\",\n        topRec: \"TOP-EMPFEHLUNG\",\n        match: \"\u00dcbereinstimmung\",\n        recVariant: \"Empfohlene Variante\",\n        viewProduct: \"Produkt ansehen\",\n        specSheet: \"Datenblatt\",\n        compareTxt: \"Vergleichen\",\n        inCompare: \"\\u2713 Im Vergleich\",\n        compareModels: \"Modelle vergleichen\",\n        compareN: (n) => `${n} Modelle vergleichen \\u2192`,\n        remove: \"Entfernen\",\n        variantsAvail: \"Verf\u00fcgbare Varianten\",\n        sampleTypesLbl: \"Probentypen\",\n        productPage: \"Produktseite\",\n        startOver: \"Neu starten\",\n        contactCta: \"Farbexperten kontaktieren \\u2192\",\n        contactSub1: \"Nicht sicher? Unsere Farbexperten helfen Ihnen gerne.\",\n        contactSub2: \"Sie w\u00fcnschen individuelle Beratung? Unsere Farbmessexperten stehen Ihnen zur Verf\u00fcgung.\",\n        contactSub3: \"Hilfe bei der Entscheidung? Unsere Farbexperten beraten Sie gerne.\",\n        selectToCompare: \"Modelle f\u00fcr den Vergleich ausw\u00e4hlen\",\n        temp: \"Temp.\", camera: \"Kamera\",\n        q1: \"Welche Materialien m\u00fcssen Sie messen?\",\n        q1sub: \"W\u00e4hlen Sie alle zutreffenden aus\",\n        q1_textiles: \"Textilien & Stoffe\",\n        q1_paint: \"Lacke & Beschichtungen\",\n        q1_opaque: \"Opake Kunststoffe\",\n        q1_translucent: \"Transluzente \/ transparente Materialien\",\n        q1_paper: \"Papier, Zellstoff & Mineralien\",\n        q1_powders: \"Pulver, Granulate & Pasten\",\n        q1_liquids: \"Fl\u00fcssigkeiten\",\n        q1_irregular: \"Kleine, texturierte oder unregelm\u00e4\u00dfige Proben\",\n        q2: \"Was ist Ihr prim\u00e4rer Anwendungsfall?\",\n        q2sub: \"W\u00e4hlen Sie eine Option\",\n        q2_formulation: \"Farbrezeptierung & Rezepturentwicklung\",\n        q2_qc: \"Qualit\u00e4tskontrolle & Pr\u00fcfung\",\n        q2_both: \"Sowohl Rezeptierung als auch QC\",\n        q3: \"Wie wichtig ist die Ger\u00e4te-zu-Ger\u00e4te-Konsistenz?\",\n        q3sub: \"Die Zwischenger\u00e4te-\u00dcbereinstimmung (IIA) misst, wie nah Ger\u00e4te desselben Modells dieselbe Farbe messen\",\n        q3_highest: \"H\u00f6chste Pr\u00e4zision\",\n        q3_highestDesc: \"Globale Lieferkette, mehrere Standorte, engste Toleranzen\",\n        q3_high: \"Hohe Pr\u00e4zision\",\n        q3_highDesc: \"QC an mehreren Standorten, zuverl\u00e4ssige Ergebnisse\",\n        q3_standard: \"Standardpr\u00e4zision\",\n        q3_standardDesc: \"Einzelner Standort, allgemeine Qualit\u00e4tskontrolle\",\n        q4: \"Ben\u00f6tigen Sie eine dieser Funktionen?\",\n        q4sub: \"W\u00e4hlen Sie alle zutreffenden aus oder \u00fcberspringen Sie\",\n        q4_trans: \"Transmissionsmessung\", q4_transDesc: \"F\u00fcr transparente oder transluzente Proben\",\n        q4_uv: \"UV-Kalibrierung\", q4_uvDesc: \"F\u00fcr fluoreszierende Materialien & optische Aufheller\",\n        q4_temp: \"Probentemperaturmessung\", q4_tempDesc: \"F\u00fcr thermochrome Sicherheit\",\n        q4_camera: \"Kameragest\u00fctzte Positionierung\", q4_cameraDesc: \"Pr\u00e4zise Punktmessung auf Proben\",\n        q4_vert: \"Vertikaler Messport\", q4_vertDesc: \"F\u00fcr Pulver, Granulate oder Pasten\",\n        p_s1000_tag: \"Tisch-Spektrophotometer h\u00f6chster Pr\u00e4zision\",\n        p_s1000_best: \"Globale Lieferketten mit engsten Farbtoleranzen \u00fcber mehrere Ger\u00e4te und Standorte.\",\n        p_s700_tag: \"Kosteneffektive, hochpr\u00e4zise Spektrophotometer\",\n        p_s700_best: \"Labore und Hersteller, die zuverl\u00e4ssige, genaue Farbmessung zu einem attraktiven Preis ben\u00f6tigen.\",\n        p_sv_tag: \"Pr\u00e4zise Farbbewertung f\u00fcr nahezu alles\",\n        p_sv_best: \"Proben, die traditionell nicht messbar sind \\u2014 mehrfarbige, texturierte, kleine oder unregelm\u00e4\u00dfig geformte Materialien.\",\n        p_el_tag: \"Qualit\u00e4tskontrolle f\u00fcr Papier, Zellstoff & Mineralien\",\n        p_el_best: \"Papierfabriken, Zellstoffhersteller und Mineralieverarbeiter mit Fokus auf Wei\u00dfe, Helligkeit, Opazit\u00e4t und diffuse Reflexions-QC.\",\n        st_textiles: \"Textilien & Stoffe\", st_paint: \"Lacke & Beschichtungen\", st_opaque: \"Opake Kunststoffe\",\n        st_translucent: \"Transluzente Materialien\", st_powders: \"Pulver & Granulate\", st_liquids: \"Fl\u00fcssigkeiten\",\n        st_fluorescent: \"Fluoreszierende \/ OBA-Proben\", st_prints: \"Drucke & Muster\",\n        st_lace: \"Spitzen, Borten, Rei\u00dfverschl\u00fcsse\", st_buttons: \"Kn\u00f6pfe & Kleinteile\",\n        st_yarns: \"Garne & F\u00e4den\", st_jewelry: \"Schmuck & Uhren\",\n        st_textured: \"Texturierte Oberfl\u00e4chen\", st_dental: \"Dentalkeramik & Kristalle\",\n        st_pellets: \"Kleine Kunststoffgranulate\", st_weathering: \"Bewitterungsproben\",\n        st_paper: \"Papier & Karton\", st_pulp: \"Zellstoff\", st_chemicals: \"Chemikalien\",\n        st_minerals: \"Mineralien\", st_nonwovens: \"Vliesstoffe\",\n        v_s1000_std: \"Standard-Frontalreflexion\", v_s1050: \"Reflexion + Transmission\",\n        v_s1000v: \"Vertikal nach unten\", v_s1000x: \"Vertikal nach oben\",\n        v_s1000_stdBest: \"Textilien, Lacke, opake Kunststoffe, fluoreszierende Proben\",\n        v_s1050Best: \"Transluzente Kunststoffe, klare Fl\u00fcssigkeiten, Folien\",\n        v_s1000vBest: \"Mineralien, Pulver, Kunststoffgranulate (schwerkraftgespeist)\",\n        v_s1000xBest: \"Pulver, Granulate, Pasten, Fl\u00fcssigkeiten auf dem Port\",\n        v_s700_std: \"Standardreflexion\", v_s750: \"Reflexion + Transmission\",\n        v_s700v: \"Vertikale Konfiguration\", v_s700uv: \"UV-optimiert f\u00fcr Fluoreszenz\",\n        v_s700_stdBest: \"Lacke, opake Kunststoffe, allgemeine Farb-QC\",\n        v_s750Best: \"Transluzente Kunststoffe, klare Fl\u00fcssigkeiten\",\n        v_s700vBest: \"Mineralien, Pulver, Fl\u00fcssigkeiten\",\n        v_s700uvBest: \"Textilien, optische Aufheller, Waschmittel- & Waschbarkeitstests\",\n        v_sv: \"Kamerabasierte Mehrpunktmessung\", v_svBest: \"Mehrfarbige, texturierte, kleine oder unregelm\u00e4\u00dfige Proben\",\n        v_el: \"Reflexionsmessung f\u00fcr Papier- & Zellstoff-QC\",\n        v_elBest: \"Wei\u00dfe, Helligkeit, Opazit\u00e4t, Gelbheit und Farb-QC f\u00fcr Papier & Zellstoff\",\n        sl_iia: \"Zwischenger\u00e4te-\u00dcbereinstimmung\", sl_repeat: \"Wiederholbarkeit (20 Messungen)\",\n        sl_wl: \"Wellenl\u00e4ngenbereich\", sl_sphere: \"Kugeldurchmesser\",\n        sl_uv: \"UV-Kalibrierung\", sl_tempSensor: \"Temperatursensor\",\n        sl_cam: \"Positionierungskamera\", sl_apertures: \"Messblenden\",\n        sl_connect: \"Konnektivit\u00e4t\", sl_warranty: \"Garantie\",\n        sl_method: \"Messmethode\", sl_sampleSize: \"Probengr\u00f6\u00dfe\",\n        sl_multiPoint: \"Mehrpunkt\", sl_primaryUse: \"Prim\u00e4rverwendung\", sl_standards: \"Industriestandards\",\n        sv_yes: \"Ja\", sv_no: \"Nein\", sv_standard: \"Standard\",\n        sv_autoAdj: \"Automatisch, einstellbar\", sv_yesLav: \"Ja (LAV-Blende)\", sv_yesCam: \"Ja\",\n        sv_imaging: \"Bildgebendes Spektrophotometer\", sv_anyShape: \"Nahezu jede Form oder Gr\u00f6\u00dfe\",\n        sv_multiYes: \"Ja \\u2014 mehrere Bereiche gleichzeitig messen\", sv_intCam: \"Integrierte Hochaufl\u00f6sungskamera\",\n        sv_isoTappi: \"ISO \/ TAPPI-konform\", sv_whiteness: \"Wei\u00dfe, Helligkeit, Opazit\u00e4t, Reflexionsfaktoren, Gelbheit\",\n        r_irregular: \"Entwickelt f\u00fcr unregelm\u00e4\u00dfige, mehrfarbige und texturierte Proben\",\n        r_paper: \"Speziell f\u00fcr Papier-, Zellstoff- & Mineral-QC\",\n        r_textile: \"Unterst\u00fctzt Textilmessung\",\n        r_trans: \"Transmissionsvariante f\u00fcr transluzente Proben empfohlen\",\n        r_formulation: \"Unterst\u00fctzt Farbrezeptierung\",\n        r_both: \"Unterst\u00fctzt Rezeptierung und QC\",\n        r_iia1000: \"Branchenf\u00fchrende IIA: 0,08 \u00d8 \/ 0,15 max \\u0394E*ab\",\n        r_iia700: \"Starke IIA: 0,15 \u00d8 \/ 0,30 max \\u0394E*ab bei bestem Preis-Leistungs-Verh\u00e4ltnis\",\n        r_transAvail: \"Transmissionsf\u00e4hige Variante verf\u00fcgbar\",\n        r_uvCal: \"UV-Kalibrierung f\u00fcr fluoreszierende Proben enthalten\",\n        r_tempBuilt: \"Integrierte Probentemperaturmessung\",\n        r_camAssist: \"Kameragest\u00fctzte Probenpositionierung\",\n        r_vertAvail: \"Vertikale Messkonfiguration verf\u00fcgbar\",\n        tier_premium: \"Premium\", tier_professional: \"Professional\", tier_specialty: \"Spezial\",\n      },\n\n      \/* \u2500\u2500 French \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n      fr: {\n        headerLabel: \"S\u00e9lecteur de spectrophotom\u00e8tre\",\n        restart: \"Recommencer\",\n        welcomeTitle: \"Trouvez votre spectrophotom\u00e8tre id\u00e9al\",\n        welcomeDesc: \"R\u00e9pondez \u00e0 quelques questions sur votre application et nous vous recommanderons le spectrophotom\u00e8tre de table Datacolor le mieux adapt\u00e9.\",\n        startBtn: \"Lancer le guide produit\",\n        browseBtn: \"Voir tous les mod\u00e8les\",\n        stepOf: (n, t) => `\u00c9tape ${n} sur ${t}`,\n        back: \"Retour\", skip: \"Passer\", cont: \"Continuer\",\n        seeRecs: \"Voir les recommandations\",\n        yourRecs: \"Vos recommandations\",\n        basedOn: \"En fonction de vos exigences d\\u2019application\",\n        topRec: \"MEILLEURE RECOMMANDATION\",\n        match: \"correspondance\", recVariant: \"Variante recommand\u00e9e\",\n        viewProduct: \"Voir le produit\", specSheet: \"Fiche technique\",\n        compareTxt: \"Comparer\", inCompare: \"\\u2713 En comparaison\",\n        compareModels: \"Comparer les mod\u00e8les\", compareN: (n) => `Comparer ${n} mod\u00e8les \\u2192`,\n        remove: \"Retirer\", variantsAvail: \"Variantes disponibles\",\n        sampleTypesLbl: \"Types d\\u2019\u00e9chantillons\", productPage: \"Page produit\",\n        startOver: \"Recommencer\", contactCta: \"Contacter un expert couleur \\u2192\",\n        contactSub1: \"Vous h\u00e9sitez ? Nos experts couleur peuvent vous aider.\",\n        contactSub2: \"Besoin de conseils personnalis\u00e9s ? Nos experts en mesure de couleur sont l\u00e0 pour vous.\",\n        contactSub3: \"Besoin d\\u2019aide pour choisir ? Nos experts couleur vous guident vers la solution id\u00e9ale.\",\n        selectToCompare: \"S\u00e9lectionnez les mod\u00e8les \u00e0 comparer\",\n        temp: \"Temp.\", camera: \"Cam\u00e9ra\",\n        q1: \"Quels mat\u00e9riaux devez-vous mesurer ?\",\n        q1sub: \"S\u00e9lectionnez tous ceux qui s\\u2019appliquent\",\n        q1_textiles: \"Textiles & tissus\", q1_paint: \"Peintures & rev\u00eatements\",\n        q1_opaque: \"Plastiques opaques\", q1_translucent: \"Mat\u00e9riaux translucides \/ transparents\",\n        q1_paper: \"Papier, p\u00e2te & min\u00e9raux\", q1_powders: \"Poudres, granul\u00e9s & p\u00e2tes\",\n        q1_liquids: \"Liquides\", q1_irregular: \"\u00c9chantillons petits, textur\u00e9s ou irr\u00e9guliers\",\n        q2: \"Quel est votre cas d\\u2019utilisation principal ?\",\n        q2sub: \"S\u00e9lectionnez une option\",\n        q2_formulation: \"Formulation couleur & d\u00e9veloppement de recettes\",\n        q2_qc: \"Contr\u00f4le qualit\u00e9 & inspection\", q2_both: \"Formulation et CQ\",\n        q3: \"Quelle importance accordez-vous \u00e0 la coh\u00e9rence entre instruments ?\",\n        q3sub: \"L\\u2019accord inter-instruments (IIA) mesure la concordance des mesures entre instruments du m\u00eame mod\u00e8le\",\n        q3_highest: \"Pr\u00e9cision maximale\", q3_highestDesc: \"Cha\u00eene d\\u2019approvisionnement mondiale, sites multiples, tol\u00e9rances les plus strictes\",\n        q3_high: \"Haute pr\u00e9cision\", q3_highDesc: \"CQ multi-sites, r\u00e9sultats fiables\",\n        q3_standard: \"Pr\u00e9cision standard\", q3_standardDesc: \"Site unique, contr\u00f4le qualit\u00e9 g\u00e9n\u00e9ral\",\n        q4: \"Avez-vous besoin de ces fonctionnalit\u00e9s ?\",\n        q4sub: \"S\u00e9lectionnez toutes les options pertinentes ou passez\",\n        q4_trans: \"Mesure en transmittance\", q4_transDesc: \"Pour \u00e9chantillons transparents ou translucides\",\n        q4_uv: \"Calibration UV\", q4_uvDesc: \"Pour mat\u00e9riaux fluorescents & azurants optiques\",\n        q4_temp: \"Mesure de temp\u00e9rature d\\u2019\u00e9chantillon\", q4_tempDesc: \"Pour fiabilit\u00e9 thermochromique\",\n        q4_camera: \"Positionnement assist\u00e9 par cam\u00e9ra\", q4_cameraDesc: \"Mesure ponctuelle pr\u00e9cise\",\n        q4_vert: \"Port de mesure vertical\", q4_vertDesc: \"Pour poudres, granul\u00e9s ou p\u00e2tes\",\n        p_s1000_tag: \"Spectrophotom\u00e8tres de table de la plus haute pr\u00e9cision\",\n        p_s1000_best: \"Cha\u00eenes d\\u2019approvisionnement mondiales exigeant les tol\u00e9rances de couleur les plus strictes sur plusieurs instruments et sites.\",\n        p_s700_tag: \"Spectrophotom\u00e8tres haute pr\u00e9cision et \u00e9conomiques\",\n        p_s700_best: \"Laboratoires et fabricants n\u00e9cessitant une mesure de couleur fiable et pr\u00e9cise \u00e0 un prix accessible.\",\n        p_sv_tag: \"\u00c9valuation pr\u00e9cise de la couleur de presque tout\",\n        p_sv_best: \"\u00c9chantillons traditionnellement non mesurables \\u2014 mat\u00e9riaux multicolores, textur\u00e9s, petits ou de forme irr\u00e9guli\u00e8re.\",\n        p_el_tag: \"Contr\u00f4le qualit\u00e9 pour papier, p\u00e2te & min\u00e9raux\",\n        p_el_best: \"Papeteries, producteurs de p\u00e2te et transformateurs de min\u00e9raux ax\u00e9s sur la blancheur, la luminosit\u00e9, l\\u2019opacit\u00e9 et le CQ de r\u00e9flectance diffuse.\",\n        st_textiles: \"Textiles & tissus\", st_paint: \"Peintures & rev\u00eatements\", st_opaque: \"Plastiques opaques\",\n        st_translucent: \"Mat\u00e9riaux translucides\", st_powders: \"Poudres & granul\u00e9s\", st_liquids: \"Liquides\",\n        st_fluorescent: \"\u00c9chantillons fluorescents \/ AO\", st_prints: \"Imprim\u00e9s & motifs\",\n        st_lace: \"Dentelles, garnitures, fermetures\", st_buttons: \"Boutons & petits composants\",\n        st_yarns: \"Fils & filaments\", st_jewelry: \"Bijoux & montres\",\n        st_textured: \"Surfaces textur\u00e9es\", st_dental: \"C\u00e9ramiques dentaires & cristaux\",\n        st_pellets: \"Petits granul\u00e9s plastiques\", st_weathering: \"\u00c9chantillons de vieillissement\",\n        st_paper: \"Papier & carton\", st_pulp: \"P\u00e2te \u00e0 papier\", st_chemicals: \"Produits chimiques\",\n        st_minerals: \"Min\u00e9raux\", st_nonwovens: \"Non-tiss\u00e9s\",\n        v_s1000_std: \"R\u00e9flectance frontale standard\", v_s1050: \"R\u00e9flectance + Transmittance\",\n        v_s1000v: \"Verticale orient\u00e9e vers le bas\", v_s1000x: \"Verticale orient\u00e9e vers le haut\",\n        v_s1000_stdBest: \"Textiles, peintures, plastiques opaques, \u00e9chantillons fluorescents\",\n        v_s1050Best: \"Plastiques translucides, liquides clairs, films\",\n        v_s1000vBest: \"Min\u00e9raux, poudres, granul\u00e9s plastiques (par gravit\u00e9)\",\n        v_s1000xBest: \"Poudres, granul\u00e9s, p\u00e2tes, liquides sur le port\",\n        v_s700_std: \"R\u00e9flectance standard\", v_s750: \"R\u00e9flectance + Transmittance\",\n        v_s700v: \"Configuration verticale\", v_s700uv: \"Optimis\u00e9 UV pour fluorescence\",\n        v_s700_stdBest: \"Peintures, plastiques opaques, CQ couleur g\u00e9n\u00e9ral\",\n        v_s750Best: \"Plastiques translucides, liquides clairs\",\n        v_s700vBest: \"Min\u00e9raux, poudres, liquides\",\n        v_s700uvBest: \"Textiles, azurants optiques, tests de lavabilit\u00e9\",\n        v_sv: \"Mesure multi-points par cam\u00e9ra\", v_svBest: \"\u00c9chantillons multicolores, textur\u00e9s, petits ou irr\u00e9guliers\",\n        v_el: \"Mesure de r\u00e9flectance pour CQ papier & p\u00e2te\",\n        v_elBest: \"Blancheur, luminosit\u00e9, opacit\u00e9, jaunissement et CQ couleur pour papier & p\u00e2te\",\n        sl_iia: \"Accord inter-instruments\", sl_repeat: \"R\u00e9p\u00e9tabilit\u00e9 (20 mesures)\",\n        sl_wl: \"Plage de longueurs d\\u2019onde\", sl_sphere: \"Diam\u00e8tre de la sph\u00e8re\",\n        sl_uv: \"Calibration UV\", sl_tempSensor: \"Capteur de temp\u00e9rature\",\n        sl_cam: \"Cam\u00e9ra de positionnement\", sl_apertures: \"Ouvertures\",\n        sl_connect: \"Connectivit\u00e9\", sl_warranty: \"Garantie\",\n        sl_method: \"M\u00e9thode de mesure\", sl_sampleSize: \"Taille de l\\u2019\u00e9chantillon\",\n        sl_multiPoint: \"Multi-points\", sl_primaryUse: \"Utilisation principale\", sl_standards: \"Normes industrielles\",\n        sv_yes: \"Oui\", sv_no: \"Non\", sv_standard: \"Standard\",\n        sv_autoAdj: \"Automatique, ajustable\", sv_yesLav: \"Oui (ouverture LAV)\", sv_yesCam: \"Oui\",\n        sv_imaging: \"Spectrophotom\u00e8tre imageur\", sv_anyShape: \"Presque toute forme ou taille\",\n        sv_multiYes: \"Oui \\u2014 mesurer plusieurs zones simultan\u00e9ment\", sv_intCam: \"Cam\u00e9ra haute r\u00e9solution int\u00e9gr\u00e9e\",\n        sv_isoTappi: \"Conforme ISO \/ TAPPI\", sv_whiteness: \"Blancheur, luminosit\u00e9, opacit\u00e9, facteurs de r\u00e9flectance, jaunissement\",\n        r_irregular: \"Con\u00e7u pour les \u00e9chantillons irr\u00e9guliers, multicolores et textur\u00e9s\",\n        r_paper: \"Con\u00e7u sp\u00e9cifiquement pour le CQ papier, p\u00e2te et min\u00e9raux\",\n        r_textile: \"Prise en charge de la mesure textile\",\n        r_trans: \"Variante transmittance recommand\u00e9e pour les \u00e9chantillons translucides\",\n        r_formulation: \"Prise en charge de la formulation couleur\",\n        r_both: \"Prise en charge de la formulation et du CQ\",\n        r_iia1000: \"IIA de r\u00e9f\u00e9rence : 0,08 moy. \/ 0,15 max \\u0394E*ab\",\n        r_iia700: \"IIA solide : 0,15 moy. \/ 0,30 max \\u0394E*ab \u00e0 un excellent rapport qualit\u00e9-prix\",\n        r_transAvail: \"Variante en transmittance disponible\",\n        r_uvCal: \"Calibration UV incluse pour \u00e9chantillons fluorescents\",\n        r_tempBuilt: \"Mesure de temp\u00e9rature d\\u2019\u00e9chantillon int\u00e9gr\u00e9e\",\n        r_camAssist: \"Positionnement d\\u2019\u00e9chantillon assist\u00e9 par cam\u00e9ra\",\n        r_vertAvail: \"Configuration de mesure verticale disponible\",\n        tier_premium: \"Premium\", tier_professional: \"Professionnel\", tier_specialty: \"Sp\u00e9cialit\u00e9\",\n      },\n\n      \/* \u2500\u2500 Spanish \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n      es: {\n        headerLabel: \"Selector de espectrofot\u00f3metro\",\n        restart: \"Reiniciar\",\n        welcomeTitle: \"Encuentre su espectrofot\u00f3metro ideal\",\n        welcomeDesc: \"Responda unas breves preguntas sobre su aplicaci\u00f3n y le recomendaremos el espectrofot\u00f3metro de sobremesa Datacolor m\u00e1s adecuado.\",\n        startBtn: \"Iniciar buscador de productos\",\n        browseBtn: \"Ver todos los modelos\",\n        stepOf: (n, t) => `Paso ${n} de ${t}`,\n        back: \"Atr\u00e1s\", skip: \"Omitir\", cont: \"Continuar\",\n        seeRecs: \"Ver recomendaciones\", yourRecs: \"Sus recomendaciones\",\n        basedOn: \"Seg\u00fan los requisitos de su aplicaci\u00f3n\",\n        topRec: \"RECOMENDACI\u00d3N PRINCIPAL\",\n        match: \"coincidencia\", recVariant: \"Variante recomendada\",\n        viewProduct: \"Ver producto\", specSheet: \"Hoja de datos\",\n        compareTxt: \"Comparar\", inCompare: \"\\u2713 En comparaci\u00f3n\",\n        compareModels: \"Comparar modelos\", compareN: (n) => `Comparar ${n} modelos \\u2192`,\n        remove: \"Eliminar\", variantsAvail: \"Variantes disponibles\",\n        sampleTypesLbl: \"Tipos de muestra\", productPage: \"P\u00e1gina del producto\",\n        startOver: \"Empezar de nuevo\", contactCta: \"Contactar a un experto en color \\u2192\",\n        contactSub1: \"\u00bfNo est\u00e1 seguro? Nuestros expertos en color pueden ayudarle.\",\n        contactSub2: \"\u00bfNecesita orientaci\u00f3n personalizada? Nuestros expertos en medici\u00f3n del color est\u00e1n aqu\u00ed para ayudarle.\",\n        contactSub3: \"\u00bfNecesita ayuda para decidir? Nuestros expertos en color le guiar\u00e1n hacia la soluci\u00f3n perfecta.\",\n        selectToCompare: \"Seleccione modelos para comparar\",\n        temp: \"Temp.\", camera: \"C\u00e1mara\",\n        q1: \"\u00bfQu\u00e9 materiales necesita medir?\", q1sub: \"Seleccione todos los que apliquen\",\n        q1_textiles: \"Textiles y tejidos\", q1_paint: \"Pinturas y recubrimientos\",\n        q1_opaque: \"Pl\u00e1sticos opacos\", q1_translucent: \"Materiales transl\u00facidos \/ transparentes\",\n        q1_paper: \"Papel, pulpa y minerales\", q1_powders: \"Polvos, gr\u00e1nulos y pastas\",\n        q1_liquids: \"L\u00edquidos\", q1_irregular: \"Muestras peque\u00f1as, texturizadas o irregulares\",\n        q2: \"\u00bfCu\u00e1l es su caso de uso principal?\", q2sub: \"Seleccione una opci\u00f3n\",\n        q2_formulation: \"Formulaci\u00f3n de color y desarrollo de recetas\",\n        q2_qc: \"Control de calidad e inspecci\u00f3n\", q2_both: \"Formulaci\u00f3n y CC\",\n        q3: \"\u00bfQu\u00e9 tan cr\u00edtica es la consistencia entre instrumentos?\",\n        q3sub: \"El acuerdo inter-instrumental (IIA) mide cu\u00e1n consistentemente instrumentos del mismo modelo leen el mismo color\",\n        q3_highest: \"M\u00e1xima precisi\u00f3n\", q3_highestDesc: \"Cadena de suministro global, m\u00faltiples sitios, tolerancias m\u00e1s estrictas\",\n        q3_high: \"Alta precisi\u00f3n\", q3_highDesc: \"CC en m\u00faltiples ubicaciones, resultados confiables\",\n        q3_standard: \"Precisi\u00f3n est\u00e1ndar\", q3_standardDesc: \"Sitio \u00fanico, control de calidad general\",\n        q4: \"\u00bfNecesita alguna de estas funciones?\", q4sub: \"Seleccione las que apliquen u omita\",\n        q4_trans: \"Medici\u00f3n de transmitancia\", q4_transDesc: \"Para muestras transparentes o transl\u00facidas\",\n        q4_uv: \"Calibraci\u00f3n UV\", q4_uvDesc: \"Para materiales fluorescentes y blanqueadores \u00f3pticos\",\n        q4_temp: \"Medici\u00f3n de temperatura de muestra\", q4_tempDesc: \"Para confianza termocr\u00f3mata\",\n        q4_camera: \"Posicionamiento asistido por c\u00e1mara\", q4_cameraDesc: \"Medici\u00f3n puntual precisa en muestras\",\n        q4_vert: \"Puerto de medici\u00f3n vertical\", q4_vertDesc: \"Para polvos, gr\u00e1nulos o pastas\",\n        p_s1000_tag: \"Espectrofot\u00f3metros de sobremesa de m\u00e1xima precisi\u00f3n\",\n        p_s1000_best: \"Cadenas de suministro globales que exigen las tolerancias de color m\u00e1s estrictas en m\u00faltiples instrumentos y sitios.\",\n        p_s700_tag: \"Espectrofot\u00f3metros de alta precisi\u00f3n y econ\u00f3micos\",\n        p_s700_best: \"Laboratorios y fabricantes que necesitan medici\u00f3n de color confiable y precisa a un precio accesible.\",\n        p_sv_tag: \"Evaluaci\u00f3n precisa del color de casi cualquier cosa\",\n        p_sv_best: \"Muestras tradicionalmente no medibles \\u2014 materiales multicolor, texturizados, peque\u00f1os o de forma irregular.\",\n        p_el_tag: \"Control de calidad para papel, pulpa y minerales\",\n        p_el_best: \"Papeleras, productores de pulpa y procesadores de minerales enfocados en blancura, brillo, opacidad y CC de reflectancia difusa.\",\n        st_textiles: \"Textiles y tejidos\", st_paint: \"Pinturas y recubrimientos\", st_opaque: \"Pl\u00e1sticos opacos\",\n        st_translucent: \"Materiales transl\u00facidos\", st_powders: \"Polvos y gr\u00e1nulos\", st_liquids: \"L\u00edquidos\",\n        st_fluorescent: \"Muestras fluorescentes \/ ABO\", st_prints: \"Impresiones y patrones\",\n        st_lace: \"Encajes, adornos, cremalleras\", st_buttons: \"Botones y componentes peque\u00f1os\",\n        st_yarns: \"Hilos y filamentos\", st_jewelry: \"Joyer\u00eda y relojes\",\n        st_textured: \"Superficies texturizadas\", st_dental: \"Cer\u00e1micas dentales y cristales\",\n        st_pellets: \"Gr\u00e1nulos pl\u00e1sticos peque\u00f1os\", st_weathering: \"Muestras de envejecimiento\",\n        st_paper: \"Papel y cart\u00f3n\", st_pulp: \"Pulpa\", st_chemicals: \"Productos qu\u00edmicos\",\n        st_minerals: \"Minerales\", st_nonwovens: \"No tejidos\",\n        v_s1000_std: \"Reflectancia frontal est\u00e1ndar\", v_s1050: \"Reflectancia + Transmitancia\",\n        v_s1000v: \"Vertical hacia abajo\", v_s1000x: \"Vertical hacia arriba\",\n        v_s1000_stdBest: \"Textiles, pinturas, pl\u00e1sticos opacos, muestras fluorescentes\",\n        v_s1050Best: \"Pl\u00e1sticos transl\u00facidos, l\u00edquidos claros, pel\u00edculas\",\n        v_s1000vBest: \"Minerales, polvos, gr\u00e1nulos pl\u00e1sticos (por gravedad)\",\n        v_s1000xBest: \"Polvos, gr\u00e1nulos, pastas, l\u00edquidos en el puerto\",\n        v_s700_std: \"Reflectancia est\u00e1ndar\", v_s750: \"Reflectancia + Transmitancia\",\n        v_s700v: \"Configuraci\u00f3n vertical\", v_s700uv: \"Optimizado UV para fluorescencia\",\n        v_s700_stdBest: \"Pinturas, pl\u00e1sticos opacos, CC de color general\",\n        v_s750Best: \"Pl\u00e1sticos transl\u00facidos, l\u00edquidos claros\",\n        v_s700vBest: \"Minerales, polvos, l\u00edquidos\",\n        v_s700uvBest: \"Textiles, blanqueadores \u00f3pticos, pruebas de lavabilidad\",\n        v_sv: \"Medici\u00f3n multipunto por c\u00e1mara\", v_svBest: \"Muestras multicolor, texturizadas, peque\u00f1as o irregulares\",\n        v_el: \"Medici\u00f3n de reflectancia para CC de papel y pulpa\",\n        v_elBest: \"Blancura, brillo, opacidad, amarillamiento y CC de color para papel y pulpa\",\n        sl_iia: \"Acuerdo inter-instrumental\", sl_repeat: \"Repetibilidad (20 lecturas)\",\n        sl_wl: \"Rango de longitud de onda\", sl_sphere: \"Di\u00e1metro de la esfera\",\n        sl_uv: \"Calibraci\u00f3n UV\", sl_tempSensor: \"Sensor de temperatura\",\n        sl_cam: \"C\u00e1mara de posicionamiento\", sl_apertures: \"Aperturas\",\n        sl_connect: \"Conectividad\", sl_warranty: \"Garant\u00eda\",\n        sl_method: \"M\u00e9todo de medici\u00f3n\", sl_sampleSize: \"Tama\u00f1o de muestra\",\n        sl_multiPoint: \"Multipunto\", sl_primaryUse: \"Uso principal\", sl_standards: \"Normas industriales\",\n        sv_yes: \"S\u00ed\", sv_no: \"No\", sv_standard: \"Est\u00e1ndar\",\n        sv_autoAdj: \"Autom\u00e1tica, ajustable\", sv_yesLav: \"S\u00ed (apertura LAV)\", sv_yesCam: \"S\u00ed\",\n        sv_imaging: \"Espectrofot\u00f3metro de imagen\", sv_anyShape: \"Pr\u00e1cticamente cualquier forma o tama\u00f1o\",\n        sv_multiYes: \"S\u00ed \\u2014 medir m\u00faltiples \u00e1reas simult\u00e1neamente\", sv_intCam: \"C\u00e1mara de alta resoluci\u00f3n integrada\",\n        sv_isoTappi: \"Conforme ISO \/ TAPPI\", sv_whiteness: \"Blancura, brillo, opacidad, factores de reflectancia, amarillamiento\",\n        r_irregular: \"Dise\u00f1ado para muestras irregulares, multicolor y texturizadas\",\n        r_paper: \"Dise\u00f1ado espec\u00edficamente para CC de papel, pulpa y minerales\",\n        r_textile: \"Soporta medici\u00f3n textil\", r_trans: \"Variante de transmitancia recomendada para muestras transl\u00facidas\",\n        r_formulation: \"Soporta formulaci\u00f3n de color\", r_both: \"Soporta formulaci\u00f3n y CC\",\n        r_iia1000: \"IIA l\u00edder: 0,08 prom. \/ 0,15 m\u00e1x. \\u0394E*ab\",\n        r_iia700: \"IIA s\u00f3lido: 0,15 prom. \/ 0,30 m\u00e1x. \\u0394E*ab a excelente valor\",\n        r_transAvail: \"Variante de transmitancia disponible\",\n        r_uvCal: \"Calibraci\u00f3n UV incluida para muestras fluorescentes\",\n        r_tempBuilt: \"Medici\u00f3n de temperatura de muestra integrada\",\n        r_camAssist: \"Posicionamiento de muestra asistido por c\u00e1mara\",\n        r_vertAvail: \"Configuraci\u00f3n de medici\u00f3n vertical disponible\",\n        tier_premium: \"Premium\", tier_professional: \"Profesional\", tier_specialty: \"Especialidad\",\n      },\n\n      \/* \u2500\u2500 Portuguese (Brazilian) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n      pt: {\n        headerLabel: \"Seletor de espectrofot\u00f4metro\",\n        restart: \"Reiniciar\",\n        welcomeTitle: \"Encontre seu espectrofot\u00f4metro ideal\",\n        welcomeDesc: \"Responda algumas perguntas r\u00e1pidas sobre sua aplica\u00e7\u00e3o e recomendaremos o espectrofot\u00f4metro de bancada Datacolor mais adequado.\",\n        startBtn: \"Iniciar buscador de produtos\",\n        browseBtn: \"Ver todos os modelos\",\n        stepOf: (n, t) => `Passo ${n} de ${t}`,\n        back: \"Voltar\", skip: \"Pular\", cont: \"Continuar\",\n        seeRecs: \"Ver recomenda\u00e7\u00f5es\", yourRecs: \"Suas recomenda\u00e7\u00f5es\",\n        basedOn: \"Com base nos requisitos da sua aplica\u00e7\u00e3o\",\n        topRec: \"PRINCIPAL RECOMENDA\u00c7\u00c3O\",\n        match: \"correspond\u00eancia\", recVariant: \"Variante recomendada\",\n        viewProduct: \"Ver produto\", specSheet: \"Folha de dados\",\n        compareTxt: \"Comparar\", inCompare: \"\\u2713 Em compara\u00e7\u00e3o\",\n        compareModels: \"Comparar modelos\", compareN: (n) => `Comparar ${n} modelos \\u2192`,\n        remove: \"Remover\", variantsAvail: \"Variantes dispon\u00edveis\",\n        sampleTypesLbl: \"Tipos de amostra\", productPage: \"P\u00e1gina do produto\",\n        startOver: \"Recome\u00e7ar\", contactCta: \"Contatar um especialista em cor \\u2192\",\n        contactSub1: \"N\u00e3o tem certeza? Nossos especialistas em cor podem ajudar.\",\n        contactSub2: \"Precisa de orienta\u00e7\u00e3o personalizada? Nossos especialistas em medi\u00e7\u00e3o de cor est\u00e3o aqui para ajudar.\",\n        contactSub3: \"Precisa de ajuda para decidir? Nossos especialistas em cor o guiar\u00e3o at\u00e9 a solu\u00e7\u00e3o perfeita.\",\n        selectToCompare: \"Selecione modelos para comparar lado a lado\",\n        temp: \"Temp.\", camera: \"C\u00e2mera\",\n        q1: \"Quais materiais voc\u00ea precisa medir?\", q1sub: \"Selecione todos que se aplicam\",\n        q1_textiles: \"T\u00eaxteis e tecidos\", q1_paint: \"Tintas e revestimentos\",\n        q1_opaque: \"Pl\u00e1sticos opacos\", q1_translucent: \"Materiais transl\u00facidos \/ transparentes\",\n        q1_paper: \"Papel, celulose e minerais\", q1_powders: \"P\u00f3s, gr\u00e2nulos e pastas\",\n        q1_liquids: \"L\u00edquidos\", q1_irregular: \"Amostras pequenas, texturizadas ou irregulares\",\n        q2: \"Qual \u00e9 seu caso de uso principal?\", q2sub: \"Selecione uma op\u00e7\u00e3o\",\n        q2_formulation: \"Formula\u00e7\u00e3o de cor e desenvolvimento de receitas\",\n        q2_qc: \"Controle de qualidade e inspe\u00e7\u00e3o\", q2_both: \"Formula\u00e7\u00e3o e CQ\",\n        q3: \"Qu\u00e3o cr\u00edtica \u00e9 a consist\u00eancia entre instrumentos?\",\n        q3sub: \"A concord\u00e2ncia inter-instrumental (IIA) mede a consist\u00eancia das leituras entre instrumentos do mesmo modelo\",\n        q3_highest: \"M\u00e1xima precis\u00e3o\", q3_highestDesc: \"Cadeia de suprimentos global, m\u00faltiplos locais, toler\u00e2ncias mais rigorosas\",\n        q3_high: \"Alta precis\u00e3o\", q3_highDesc: \"CQ em m\u00faltiplos locais, resultados confi\u00e1veis\",\n        q3_standard: \"Precis\u00e3o padr\u00e3o\", q3_standardDesc: \"Local \u00fanico, controle de qualidade geral\",\n        q4: \"Voc\u00ea precisa de alguma dessas funcionalidades?\", q4sub: \"Selecione as que se aplicam ou pule\",\n        q4_trans: \"Medi\u00e7\u00e3o de transmit\u00e2ncia\", q4_transDesc: \"Para amostras transparentes ou transl\u00facidas\",\n        q4_uv: \"Calibra\u00e7\u00e3o UV\", q4_uvDesc: \"Para materiais fluorescentes e alvejantes \u00f3pticos\",\n        q4_temp: \"Medi\u00e7\u00e3o de temperatura da amostra\", q4_tempDesc: \"Para confian\u00e7a termocr\u00f4mica\",\n        q4_camera: \"Posicionamento assistido por c\u00e2mera\", q4_cameraDesc: \"Medi\u00e7\u00e3o pontual precisa em amostras\",\n        q4_vert: \"Porta de medi\u00e7\u00e3o vertical\", q4_vertDesc: \"Para p\u00f3s, gr\u00e2nulos ou pastas\",\n        p_s1000_tag: \"Espectrofot\u00f4metros de bancada de m\u00e1xima precis\u00e3o\",\n        p_s1000_best: \"Cadeias de suprimentos globais que exigem as toler\u00e2ncias de cor mais rigorosas em m\u00faltiplos instrumentos e locais.\",\n        p_s700_tag: \"Espectrofot\u00f4metros de alta precis\u00e3o e econ\u00f4micos\",\n        p_s700_best: \"Laborat\u00f3rios e fabricantes que precisam de medi\u00e7\u00e3o de cor confi\u00e1vel e precisa a um pre\u00e7o acess\u00edvel.\",\n        p_sv_tag: \"Avalia\u00e7\u00e3o precisa da cor de praticamente qualquer coisa\",\n        p_sv_best: \"Amostras tradicionalmente n\u00e3o mensur\u00e1veis \\u2014 materiais multicoloridos, texturizados, pequenos ou de forma irregular.\",\n        p_el_tag: \"Controle de qualidade para papel, celulose e minerais\",\n        p_el_best: \"F\u00e1bricas de papel, produtores de celulose e processadores de minerais com foco em alvura, brilho, opacidade e CQ de reflect\u00e2ncia difusa.\",\n        st_textiles: \"T\u00eaxteis e tecidos\", st_paint: \"Tintas e revestimentos\", st_opaque: \"Pl\u00e1sticos opacos\",\n        st_translucent: \"Materiais transl\u00facidos\", st_powders: \"P\u00f3s e gr\u00e2nulos\", st_liquids: \"L\u00edquidos\",\n        st_fluorescent: \"Amostras fluorescentes \/ ABO\", st_prints: \"Impress\u00f5es e padr\u00f5es\",\n        st_lace: \"Rendas, aviamentos, z\u00edperes\", st_buttons: \"Bot\u00f5es e componentes pequenos\",\n        st_yarns: \"Fios e linhas\", st_jewelry: \"Joias e rel\u00f3gios\",\n        st_textured: \"Superf\u00edcies texturizadas\", st_dental: \"Cer\u00e2micas dent\u00e1rias e cristais\",\n        st_pellets: \"Gr\u00e2nulos pl\u00e1sticos pequenos\", st_weathering: \"Amostras de envelhecimento\",\n        st_paper: \"Papel e papel\u00e3o\", st_pulp: \"Celulose\", st_chemicals: \"Produtos qu\u00edmicos\",\n        st_minerals: \"Minerais\", st_nonwovens: \"N\u00e3o tecidos\",\n        v_s1000_std: \"Reflect\u00e2ncia frontal padr\u00e3o\", v_s1050: \"Reflect\u00e2ncia + Transmit\u00e2ncia\",\n        v_s1000v: \"Vertical para baixo\", v_s1000x: \"Vertical para cima\",\n        v_s1000_stdBest: \"T\u00eaxteis, tintas, pl\u00e1sticos opacos, amostras fluorescentes\",\n        v_s1050Best: \"Pl\u00e1sticos transl\u00facidos, l\u00edquidos claros, filmes\",\n        v_s1000vBest: \"Minerais, p\u00f3s, gr\u00e2nulos pl\u00e1sticos (por gravidade)\",\n        v_s1000xBest: \"P\u00f3s, gr\u00e2nulos, pastas, l\u00edquidos na porta\",\n        v_s700_std: \"Reflect\u00e2ncia padr\u00e3o\", v_s750: \"Reflect\u00e2ncia + Transmit\u00e2ncia\",\n        v_s700v: \"Configura\u00e7\u00e3o vertical\", v_s700uv: \"Otimizado UV para fluoresc\u00eancia\",\n        v_s700_stdBest: \"Tintas, pl\u00e1sticos opacos, CQ de cor geral\",\n        v_s750Best: \"Pl\u00e1sticos transl\u00facidos, l\u00edquidos claros\",\n        v_s700vBest: \"Minerais, p\u00f3s, l\u00edquidos\",\n        v_s700uvBest: \"T\u00eaxteis, alvejantes \u00f3pticos, testes de lavabilidade\",\n        v_sv: \"Medi\u00e7\u00e3o multiponto por c\u00e2mera\", v_svBest: \"Amostras multicoloridas, texturizadas, pequenas ou irregulares\",\n        v_el: \"Medi\u00e7\u00e3o de reflect\u00e2ncia para CQ de papel e celulose\",\n        v_elBest: \"Alvura, brilho, opacidade, amarelecimento e CQ de cor para papel e celulose\",\n        sl_iia: \"Concord\u00e2ncia inter-instrumental\", sl_repeat: \"Repetibilidade (20 leituras)\",\n        sl_wl: \"Faixa de comprimento de onda\", sl_sphere: \"Di\u00e2metro da esfera\",\n        sl_uv: \"Calibra\u00e7\u00e3o UV\", sl_tempSensor: \"Sensor de temperatura\",\n        sl_cam: \"C\u00e2mera de posicionamento\", sl_apertures: \"Aberturas\",\n        sl_connect: \"Conectividade\", sl_warranty: \"Garantia\",\n        sl_method: \"M\u00e9todo de medi\u00e7\u00e3o\", sl_sampleSize: \"Tamanho da amostra\",\n        sl_multiPoint: \"Multiponto\", sl_primaryUse: \"Uso principal\", sl_standards: \"Normas industriais\",\n        sv_yes: \"Sim\", sv_no: \"N\u00e3o\", sv_standard: \"Padr\u00e3o\",\n        sv_autoAdj: \"Autom\u00e1tica, ajust\u00e1vel\", sv_yesLav: \"Sim (abertura LAV)\", sv_yesCam: \"Sim\",\n        sv_imaging: \"Espectrofot\u00f4metro de imagem\", sv_anyShape: \"Praticamente qualquer forma ou tamanho\",\n        sv_multiYes: \"Sim \\u2014 medir m\u00faltiplas \u00e1reas simultaneamente\", sv_intCam: \"C\u00e2mera de alta resolu\u00e7\u00e3o integrada\",\n        sv_isoTappi: \"Conforme ISO \/ TAPPI\", sv_whiteness: \"Alvura, brilho, opacidade, fatores de reflect\u00e2ncia, amarelecimento\",\n        r_irregular: \"Projetado para amostras irregulares, multicoloridas e texturizadas\",\n        r_paper: \"Projetado especificamente para CQ de papel, celulose e minerais\",\n        r_textile: \"Suporta medi\u00e7\u00e3o t\u00eaxtil\", r_trans: \"Variante de transmit\u00e2ncia recomendada para amostras transl\u00facidas\",\n        r_formulation: \"Suporta formula\u00e7\u00e3o de cor\", r_both: \"Suporta formula\u00e7\u00e3o e CQ\",\n        r_iia1000: \"IIA l\u00edder: 0,08 m\u00e9d. \/ 0,15 m\u00e1x. \\u0394E*ab\",\n        r_iia700: \"IIA s\u00f3lida: 0,15 m\u00e9d. \/ 0,30 m\u00e1x. \\u0394E*ab com excelente valor\",\n        r_transAvail: \"Variante de transmit\u00e2ncia dispon\u00edvel\",\n        r_uvCal: \"Calibra\u00e7\u00e3o UV inclu\u00edda para amostras fluorescentes\",\n        r_tempBuilt: \"Medi\u00e7\u00e3o de temperatura de amostra integrada\",\n        r_camAssist: \"Posicionamento de amostra assistido por c\u00e2mera\",\n        r_vertAvail: \"Configura\u00e7\u00e3o de medi\u00e7\u00e3o vertical dispon\u00edvel\",\n        tier_premium: \"Premium\", tier_professional: \"Profissional\", tier_specialty: \"Especialidade\",\n      },\n\n      \/* \u2500\u2500 Italian \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n      it: {\n        headerLabel: \"Selettore di spettrofotometri\",\n        restart: \"Ricomincia\",\n        welcomeTitle: \"Trova il tuo spettrofotometro ideale\",\n        welcomeDesc: \"Rispondi ad alcune domande sulla tua applicazione e ti consiglieremo lo spettrofotometro da banco Datacolor pi\u00f9 adatto.\",\n        startBtn: \"Avvia il selettore prodotti\",\n        browseBtn: \"Sfoglia tutti i modelli\",\n        stepOf: (n, t) => `Passaggio ${n} di ${t}`,\n        back: \"Indietro\", skip: \"Salta\", cont: \"Continua\",\n        seeRecs: \"Vedi consigli\", yourRecs: \"I tuoi consigli\",\n        basedOn: \"In base ai requisiti della tua applicazione\",\n        topRec: \"CONSIGLIO PRINCIPALE\",\n        match: \"corrispondenza\", recVariant: \"Variante consigliata\",\n        viewProduct: \"Vedi prodotto\", specSheet: \"Scheda tecnica\",\n        compareTxt: \"Confronta\", inCompare: \"\\u2713 In confronto\",\n        compareModels: \"Confronta modelli\", compareN: (n) => `Confronta ${n} modelli \\u2192`,\n        remove: \"Rimuovi\", variantsAvail: \"Varianti disponibili\",\n        sampleTypesLbl: \"Tipi di campione\", productPage: \"Pagina prodotto\",\n        startOver: \"Ricomincia\", contactCta: \"Contatta un esperto del colore \\u2192\",\n        contactSub1: \"Non sei sicuro? I nostri esperti del colore possono aiutarti.\",\n        contactSub2: \"Hai bisogno di consulenza personalizzata? I nostri esperti di misurazione del colore sono qui per aiutarti.\",\n        contactSub3: \"Hai bisogno di aiuto nella scelta? I nostri esperti del colore ti guideranno verso la soluzione perfetta.\",\n        selectToCompare: \"Seleziona i modelli da confrontare\",\n        temp: \"Temp.\", camera: \"Fotocamera\",\n        q1: \"Quali materiali devi misurare?\", q1sub: \"Seleziona tutti quelli applicabili\",\n        q1_textiles: \"Tessili e tessuti\", q1_paint: \"Vernici e rivestimenti\",\n        q1_opaque: \"Plastiche opache\", q1_translucent: \"Materiali traslucidi \/ trasparenti\",\n        q1_paper: \"Carta, cellulosa e minerali\", q1_powders: \"Polveri, granuli e paste\",\n        q1_liquids: \"Liquidi\", q1_irregular: \"Campioni piccoli, strutturati o irregolari\",\n        q2: \"Qual \u00e8 il tuo caso d\\u2019uso principale?\", q2sub: \"Seleziona un\\u2019opzione\",\n        q2_formulation: \"Formulazione colore e sviluppo ricette\",\n        q2_qc: \"Controllo qualit\u00e0 e ispezione\", q2_both: \"Formulazione e CQ\",\n        q3: \"Quanto \u00e8 critica la coerenza tra strumenti?\",\n        q3sub: \"L\\u2019accordo inter-strumentale (IIA) misura la coerenza delle letture tra strumenti dello stesso modello\",\n        q3_highest: \"Massima precisione\", q3_highestDesc: \"Catena di fornitura globale, siti multipli, tolleranze pi\u00f9 strette\",\n        q3_high: \"Alta precisione\", q3_highDesc: \"CQ in pi\u00f9 sedi, risultati affidabili\",\n        q3_standard: \"Precisione standard\", q3_standardDesc: \"Singolo sito, controllo qualit\u00e0 generale\",\n        q4: \"Hai bisogno di queste funzionalit\u00e0?\", q4sub: \"Seleziona le opzioni pertinenti o salta\",\n        q4_trans: \"Misurazione in trasmittanza\", q4_transDesc: \"Per campioni trasparenti o traslucidi\",\n        q4_uv: \"Calibrazione UV\", q4_uvDesc: \"Per materiali fluorescenti e sbiancanti ottici\",\n        q4_temp: \"Misurazione temperatura campione\", q4_tempDesc: \"Per affidabilit\u00e0 termocromica\",\n        q4_camera: \"Posizionamento assistito da fotocamera\", q4_cameraDesc: \"Misurazione puntuale precisa sui campioni\",\n        q4_vert: \"Porta di misurazione verticale\", q4_vertDesc: \"Per polveri, granuli o paste\",\n        p_s1000_tag: \"Spettrofotometri da banco di massima precisione\",\n        p_s1000_best: \"Catene di fornitura globali che richiedono le tolleranze di colore pi\u00f9 strette su pi\u00f9 strumenti e siti.\",\n        p_s700_tag: \"Spettrofotometri ad alta precisione ed economici\",\n        p_s700_best: \"Laboratori e produttori che necessitano di misurazioni cromatiche affidabili e precise a un prezzo accessibile.\",\n        p_sv_tag: \"Valutazione precisa del colore di quasi tutto\",\n        p_sv_best: \"Campioni tradizionalmente non misurabili \\u2014 materiali multicolore, strutturati, piccoli o di forma irregolare.\",\n        p_el_tag: \"Controllo qualit\u00e0 per carta, cellulosa e minerali\",\n        p_el_best: \"Cartiere, produttori di cellulosa e trasformatori di minerali focalizzati su bianchezza, luminosit\u00e0, opacit\u00e0 e CQ di riflettanza diffusa.\",\n        st_textiles: \"Tessili e tessuti\", st_paint: \"Vernici e rivestimenti\", st_opaque: \"Plastiche opache\",\n        st_translucent: \"Materiali traslucidi\", st_powders: \"Polveri e granuli\", st_liquids: \"Liquidi\",\n        st_fluorescent: \"Campioni fluorescenti \/ AO\", st_prints: \"Stampe e motivi\",\n        st_lace: \"Pizzi, passamanerie, cerniere\", st_buttons: \"Bottoni e piccoli componenti\",\n        st_yarns: \"Filati e fili\", st_jewelry: \"Gioielli e orologi\",\n        st_textured: \"Superfici strutturate\", st_dental: \"Ceramiche dentali e cristalli\",\n        st_pellets: \"Piccoli granuli plastici\", st_weathering: \"Campioni di invecchiamento\",\n        st_paper: \"Carta e cartone\", st_pulp: \"Cellulosa\", st_chemicals: \"Prodotti chimici\",\n        st_minerals: \"Minerali\", st_nonwovens: \"Non tessuti\",\n        v_s1000_std: \"Riflettanza frontale standard\", v_s1050: \"Riflettanza + Trasmittanza\",\n        v_s1000v: \"Verticale verso il basso\", v_s1000x: \"Verticale verso l\\u2019alto\",\n        v_s1000_stdBest: \"Tessili, vernici, plastiche opache, campioni fluorescenti\",\n        v_s1050Best: \"Plastiche traslucide, liquidi chiari, film\",\n        v_s1000vBest: \"Minerali, polveri, granuli plastici (per gravit\u00e0)\",\n        v_s1000xBest: \"Polveri, granuli, paste, liquidi sulla porta\",\n        v_s700_std: \"Riflettanza standard\", v_s750: \"Riflettanza + Trasmittanza\",\n        v_s700v: \"Configurazione verticale\", v_s700uv: \"Ottimizzato UV per fluorescenza\",\n        v_s700_stdBest: \"Vernici, plastiche opache, CQ colore generale\",\n        v_s750Best: \"Plastiche traslucide, liquidi chiari\",\n        v_s700vBest: \"Minerali, polveri, liquidi\",\n        v_s700uvBest: \"Tessili, sbiancanti ottici, test di lavabilit\u00e0\",\n        v_sv: \"Misurazione multipunto con fotocamera\", v_svBest: \"Campioni multicolore, strutturati, piccoli o irregolari\",\n        v_el: \"Misurazione riflettanza per CQ carta e cellulosa\",\n        v_elBest: \"Bianchezza, luminosit\u00e0, opacit\u00e0, giallore e CQ colore per carta e cellulosa\",\n        sl_iia: \"Accordo inter-strumentale\", sl_repeat: \"Ripetibilit\u00e0 (20 letture)\",\n        sl_wl: \"Gamma di lunghezze d\\u2019onda\", sl_sphere: \"Diametro della sfera\",\n        sl_uv: \"Calibrazione UV\", sl_tempSensor: \"Sensore di temperatura\",\n        sl_cam: \"Fotocamera di posizionamento\", sl_apertures: \"Aperture\",\n        sl_connect: \"Connettivit\u00e0\", sl_warranty: \"Garanzia\",\n        sl_method: \"Metodo di misurazione\", sl_sampleSize: \"Dimensione campione\",\n        sl_multiPoint: \"Multipunto\", sl_primaryUse: \"Uso primario\", sl_standards: \"Norme industriali\",\n        sv_yes: \"S\u00ec\", sv_no: \"No\", sv_standard: \"Standard\",\n        sv_autoAdj: \"Automatica, regolabile\", sv_yesLav: \"S\u00ec (apertura LAV)\", sv_yesCam: \"S\u00ec\",\n        sv_imaging: \"Spettrofotometro a immagine\", sv_anyShape: \"Praticamente qualsiasi forma o dimensione\",\n        sv_multiYes: \"S\u00ec \\u2014 misurare pi\u00f9 aree simultaneamente\", sv_intCam: \"Fotocamera ad alta risoluzione integrata\",\n        sv_isoTappi: \"Conforme ISO \/ TAPPI\", sv_whiteness: \"Bianchezza, luminosit\u00e0, opacit\u00e0, fattori di riflettanza, giallore\",\n        r_irregular: \"Progettato per campioni irregolari, multicolore e strutturati\",\n        r_paper: \"Progettato specificamente per CQ carta, cellulosa e minerali\",\n        r_textile: \"Supporta misurazione tessile\", r_trans: \"Variante trasmittanza consigliata per campioni traslucidi\",\n        r_formulation: \"Supporta formulazione colore\", r_both: \"Supporta formulazione e CQ\",\n        r_iia1000: \"IIA leader: 0,08 med. \/ 0,15 max \\u0394E*ab\",\n        r_iia700: \"IIA solido: 0,15 med. \/ 0,30 max \\u0394E*ab a ottimo rapporto qualit\u00e0-prezzo\",\n        r_transAvail: \"Variante trasmittanza disponibile\",\n        r_uvCal: \"Calibrazione UV inclusa per campioni fluorescenti\",\n        r_tempBuilt: \"Misurazione temperatura campione integrata\",\n        r_camAssist: \"Posizionamento campione assistito da fotocamera\",\n        r_vertAvail: \"Configurazione di misurazione verticale disponibile\",\n        tier_premium: \"Premium\", tier_professional: \"Professionale\", tier_specialty: \"Specialit\u00e0\",\n      },\n\n      \/* \u2500\u2500 Simplified Chinese \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n      zh: {\n        headerLabel: \"\u5206\u5149\u5149\u5ea6\u8ba1\u9009\u578b\u5de5\u5177\",\n        restart: \"\u91cd\u65b0\u5f00\u59cb\",\n        welcomeTitle: \"\u627e\u5230\u60a8\u7406\u60f3\u7684\u5206\u5149\u5149\u5ea6\u8ba1\",\n        welcomeDesc: \"\u56de\u7b54\u51e0\u4e2a\u5173\u4e8e\u60a8\u5e94\u7528\u9700\u6c42\u7684\u7b80\u77ed\u95ee\u9898\uff0c\u6211\u4eec\u5c06\u4e3a\u60a8\u63a8\u8350\u6700\u5408\u9002\u7684Datacolor\u53f0\u5f0f\u5206\u5149\u5149\u5ea6\u8ba1\u3002\",\n        startBtn: \"\u5f00\u59cb\u4ea7\u54c1\u9009\u578b\",\n        browseBtn: \"\u6d4f\u89c8\u6240\u6709\u578b\u53f7\",\n        stepOf: (n, t) => `\u7b2c ${n} \u6b65\uff0c\u5171 ${t} \u6b65`,\n        back: \"\u8fd4\u56de\", skip: \"\u8df3\u8fc7\", cont: \"\u7ee7\u7eed\",\n        seeRecs: \"\u67e5\u770b\u63a8\u8350\", yourRecs: \"\u60a8\u7684\u63a8\u8350\",\n        basedOn: \"\u57fa\u4e8e\u60a8\u7684\u5e94\u7528\u9700\u6c42\",\n        topRec: \"\u9996\u9009\u63a8\u8350\",\n        match: \"\u5339\u914d\u5ea6\", recVariant: \"\u63a8\u8350\u578b\u53f7\",\n        viewProduct: \"\u67e5\u770b\u4ea7\u54c1\", specSheet: \"\u6280\u672f\u89c4\u683c\",\n        compareTxt: \"\u5bf9\u6bd4\", inCompare: \"\\u2713 \u5df2\u52a0\u5165\u5bf9\u6bd4\",\n        compareModels: \"\u5bf9\u6bd4\u578b\u53f7\", compareN: (n) => `\u5bf9\u6bd4 ${n} \u4e2a\u578b\u53f7 \\u2192`,\n        remove: \"\u79fb\u9664\", variantsAvail: \"\u53ef\u7528\u578b\u53f7\",\n        sampleTypesLbl: \"\u6837\u54c1\u7c7b\u578b\", productPage: \"\u4ea7\u54c1\u9875\u9762\",\n        startOver: \"\u91cd\u65b0\u9009\u62e9\", contactCta: \"\u8054\u7cfb\u8272\u5f69\u4e13\u5bb6 \\u2192\",\n        contactSub1: \"\u4e0d\u786e\u5b9a\u9009\u54ea\u4e2a\uff1f\u6211\u4eec\u7684\u8272\u5f69\u4e13\u5bb6\u53ef\u4ee5\u5e2e\u52a9\u60a8\u3002\",\n        contactSub2: \"\u9700\u8981\u4e2a\u6027\u5316\u6307\u5bfc\uff1f\u6211\u4eec\u7684\u8272\u5f69\u6d4b\u91cf\u4e13\u5bb6\u968f\u65f6\u4e3a\u60a8\u670d\u52a1\u3002\",\n        contactSub3: \"\u9700\u8981\u5e2e\u52a9\u505a\u51b3\u5b9a\uff1f\u6211\u4eec\u7684\u8272\u5f69\u4e13\u5bb6\u5c06\u4e3a\u60a8\u63a8\u8350\u6700\u4f73\u65b9\u6848\u3002\",\n        selectToCompare: \"\u9009\u62e9\u578b\u53f7\u8fdb\u884c\u5e76\u6392\u5bf9\u6bd4\",\n        temp: \"\u6e29\u5ea6\", camera: \"\u76f8\u673a\",\n        q1: \"\u60a8\u9700\u8981\u6d4b\u91cf\u54ea\u4e9b\u6750\u6599\uff1f\", q1sub: \"\u9009\u62e9\u6240\u6709\u9002\u7528\u9879\",\n        q1_textiles: \"\u7eba\u7ec7\u54c1\u548c\u9762\u6599\", q1_paint: \"\u6cb9\u6f06\u548c\u6d82\u6599\",\n        q1_opaque: \"\u4e0d\u900f\u660e\u5851\u6599\", q1_translucent: \"\u534a\u900f\u660e\/\u900f\u660e\u6750\u6599\",\n        q1_paper: \"\u7eb8\u5f20\u3001\u7eb8\u6d46\u548c\u77ff\u7269\", q1_powders: \"\u7c89\u672b\u3001\u9897\u7c92\u548c\u818f\u4f53\",\n        q1_liquids: \"\u6db2\u4f53\", q1_irregular: \"\u5c0f\u578b\u3001\u6709\u7eb9\u7406\u6216\u4e0d\u89c4\u5219\u6837\u54c1\",\n        q2: \"\u60a8\u7684\u4e3b\u8981\u5e94\u7528\u573a\u666f\u662f\u4ec0\u4e48\uff1f\", q2sub: \"\u9009\u62e9\u4e00\u9879\",\n        q2_formulation: \"\u914d\u8272\u548c\u914d\u65b9\u5f00\u53d1\",\n        q2_qc: \"\u8d28\u91cf\u63a7\u5236\u548c\u68c0\u9a8c\", q2_both: \"\u914d\u8272\u548c\u8d28\u91cf\u63a7\u5236\",\n        q3: \"\u4eea\u5668\u95f4\u4e00\u81f4\u6027\u5bf9\u60a8\u6709\u591a\u91cd\u8981\uff1f\",\n        q3sub: \"\u53f0\u95f4\u4e00\u81f4\u6027 (IIA) \u8861\u91cf\u540c\u578b\u53f7\u4eea\u5668\u8bfb\u53d6\u540c\u4e00\u989c\u8272\u7684\u4e00\u81f4\u7a0b\u5ea6\",\n        q3_highest: \"\u6700\u9ad8\u7cbe\u5ea6\", q3_highestDesc: \"\u5168\u7403\u4f9b\u5e94\u94fe\u3001\u591a\u4e2a\u7ad9\u70b9\u3001\u6700\u4e25\u683c\u7684\u5bb9\u5dee\",\n        q3_high: \"\u9ad8\u7cbe\u5ea6\", q3_highDesc: \"\u591a\u70b9\u8d28\u63a7\u3001\u53ef\u9760\u7ed3\u679c\",\n        q3_standard: \"\u6807\u51c6\u7cbe\u5ea6\", q3_standardDesc: \"\u5355\u4e00\u7ad9\u70b9\u3001\u5e38\u89c4\u8d28\u91cf\u63a7\u5236\",\n        q4: \"\u60a8\u662f\u5426\u9700\u8981\u4ee5\u4e0b\u529f\u80fd\uff1f\", q4sub: \"\u9009\u62e9\u9002\u7528\u9879\u6216\u8df3\u8fc7\",\n        q4_trans: \"\u900f\u5c04\u6d4b\u91cf\", q4_transDesc: \"\u7528\u4e8e\u900f\u660e\u6216\u534a\u900f\u660e\u6837\u54c1\",\n        q4_uv: \"\u7d2b\u5916\u6821\u51c6\", q4_uvDesc: \"\u7528\u4e8e\u8367\u5149\u6750\u6599\u548c\u8367\u5149\u589e\u767d\u5242\",\n        q4_temp: \"\u6837\u54c1\u6e29\u5ea6\u6d4b\u91cf\", q4_tempDesc: \"\u7528\u4e8e\u70ed\u81f4\u53d8\u8272\u53ef\u9760\u6027\",\n        q4_camera: \"\u76f8\u673a\u8f85\u52a9\u5b9a\u4f4d\", q4_cameraDesc: \"\u7cbe\u786e\u7684\u6837\u54c1\u70b9\u6d4b\u91cf\",\n        q4_vert: \"\u5782\u76f4\u6d4b\u91cf\u53e3\", q4_vertDesc: \"\u7528\u4e8e\u7c89\u672b\u3001\u9897\u7c92\u6216\u818f\u4f53\",\n        p_s1000_tag: \"\u6700\u9ad8\u7cbe\u5ea6\u53f0\u5f0f\u5206\u5149\u5149\u5ea6\u8ba1\",\n        p_s1000_best: \"\u8981\u6c42\u5728\u591a\u53f0\u4eea\u5668\u548c\u591a\u4e2a\u7ad9\u70b9\u95f4\u4fdd\u6301\u6700\u4e25\u683c\u8272\u5f69\u5bb9\u5dee\u7684\u5168\u7403\u4f9b\u5e94\u94fe\u3002\",\n        p_s700_tag: \"\u6027\u4ef7\u6bd4\u9ad8\u7684\u9ad8\u7cbe\u5ea6\u5206\u5149\u5149\u5ea6\u8ba1\",\n        p_s700_best: \"\u9700\u8981\u4ee5\u5408\u7406\u4ef7\u683c\u83b7\u5f97\u53ef\u9760\u3001\u7cbe\u786e\u8272\u5f69\u6d4b\u91cf\u7684\u5b9e\u9a8c\u5ba4\u548c\u5236\u9020\u5546\u3002\",\n        p_sv_tag: \"\u51e0\u4e4e\u4efb\u4f55\u7269\u4f53\u7684\u7cbe\u786e\u8272\u5f69\u8bc4\u4f30\",\n        p_sv_best: \"\u4f20\u7edf\u4e0a\u65e0\u6cd5\u6d4b\u91cf\u7684\u6837\u54c1\u2014\u2014\u591a\u8272\u3001\u6709\u7eb9\u7406\u3001\u5c0f\u578b\u6216\u4e0d\u89c4\u5219\u5f62\u72b6\u7684\u6750\u6599\u3002\",\n        p_el_tag: \"\u7eb8\u5f20\u3001\u7eb8\u6d46\u548c\u77ff\u7269\u7684\u8d28\u91cf\u63a7\u5236\",\n        p_el_best: \"\u4e13\u6ce8\u4e8e\u767d\u5ea6\u3001\u4eae\u5ea6\u3001\u4e0d\u900f\u660e\u5ea6\u548c\u6f2b\u53cd\u5c04\u8d28\u63a7\u7684\u9020\u7eb8\u5382\u3001\u7eb8\u6d46\u751f\u4ea7\u5546\u548c\u77ff\u7269\u52a0\u5de5\u5546\u3002\",\n        st_textiles: \"\u7eba\u7ec7\u54c1\u548c\u9762\u6599\", st_paint: \"\u6cb9\u6f06\u548c\u6d82\u6599\", st_opaque: \"\u4e0d\u900f\u660e\u5851\u6599\",\n        st_translucent: \"\u534a\u900f\u660e\u6750\u6599\", st_powders: \"\u7c89\u672b\u548c\u9897\u7c92\", st_liquids: \"\u6db2\u4f53\",\n        st_fluorescent: \"\u8367\u5149\/OBA\u6837\u54c1\", st_prints: \"\u5370\u5237\u54c1\u548c\u56fe\u6848\",\n        st_lace: \"\u82b1\u8fb9\u3001\u9970\u8fb9\u3001\u62c9\u94fe\", st_buttons: \"\u7ebd\u6263\u548c\u5c0f\u90e8\u4ef6\",\n        st_yarns: \"\u7eb1\u7ebf\u548c\u7ebf\", st_jewelry: \"\u73e0\u5b9d\u548c\u624b\u8868\",\n        st_textured: \"\u7eb9\u7406\u8868\u9762\", st_dental: \"\u7259\u79d1\u9676\u74f7\u548c\u6676\u4f53\",\n        st_pellets: \"\u5c0f\u5851\u6599\u9897\u7c92\", st_weathering: \"\u8001\u5316\u6d4b\u8bd5\u6837\u54c1\",\n        st_paper: \"\u7eb8\u5f20\u548c\u7eb8\u677f\", st_pulp: \"\u7eb8\u6d46\", st_chemicals: \"\u5316\u5b66\u54c1\",\n        st_minerals: \"\u77ff\u7269\", st_nonwovens: \"\u975e\u7ec7\u9020\u5e03\",\n        v_s1000_std: \"\u6807\u51c6\u6b63\u9762\u53cd\u5c04\", v_s1050: \"\u53cd\u5c04+\u900f\u5c04\",\n        v_s1000v: \"\u5782\u76f4\u5411\u4e0b\", v_s1000x: \"\u5782\u76f4\u5411\u4e0a\",\n        v_s1000_stdBest: \"\u7eba\u7ec7\u54c1\u3001\u6cb9\u6f06\u3001\u4e0d\u900f\u660e\u5851\u6599\u3001\u8367\u5149\u6837\u54c1\",\n        v_s1050Best: \"\u534a\u900f\u660e\u5851\u6599\u3001\u900f\u660e\u6db2\u4f53\u3001\u8584\u819c\",\n        v_s1000vBest: \"\u77ff\u7269\u3001\u7c89\u672b\u3001\u5851\u6599\u9897\u7c92\uff08\u91cd\u529b\u8fdb\u6599\uff09\",\n        v_s1000xBest: \"\u7c89\u672b\u3001\u9897\u7c92\u3001\u818f\u4f53\u3001\u653e\u7f6e\u5728\u7aef\u53e3\u4e0a\u7684\u6db2\u4f53\",\n        v_s700_std: \"\u6807\u51c6\u53cd\u5c04\", v_s750: \"\u53cd\u5c04+\u900f\u5c04\",\n        v_s700v: \"\u5782\u76f4\u914d\u7f6e\", v_s700uv: \"\u8367\u5149\u4f18\u5316UV\",\n        v_s700_stdBest: \"\u6cb9\u6f06\u3001\u4e0d\u900f\u660e\u5851\u6599\u3001\u5e38\u89c4\u8272\u5f69\u8d28\u63a7\",\n        v_s750Best: \"\u534a\u900f\u660e\u5851\u6599\u3001\u900f\u660e\u6db2\u4f53\",\n        v_s700vBest: \"\u77ff\u7269\u3001\u7c89\u672b\u3001\u6db2\u4f53\",\n        v_s700uvBest: \"\u7eba\u7ec7\u54c1\u3001\u8367\u5149\u589e\u767d\u5242\u3001\u6d17\u6da4\u6d4b\u8bd5\",\n        v_sv: \"\u57fa\u4e8e\u76f8\u673a\u7684\u591a\u70b9\u6d4b\u91cf\", v_svBest: \"\u591a\u8272\u3001\u7eb9\u7406\u3001\u5c0f\u578b\u6216\u4e0d\u89c4\u5219\u6837\u54c1\",\n        v_el: \"\u7eb8\u5f20\u548c\u7eb8\u6d46\u8d28\u63a7\u7684\u53cd\u5c04\u6d4b\u91cf\",\n        v_elBest: \"\u7eb8\u5f20\u548c\u7eb8\u6d46\u7684\u767d\u5ea6\u3001\u4eae\u5ea6\u3001\u4e0d\u900f\u660e\u5ea6\u3001\u9ec4\u5ea6\u548c\u8272\u5f69\u8d28\u63a7\",\n        sl_iia: \"\u53f0\u95f4\u4e00\u81f4\u6027\", sl_repeat: \"\u91cd\u590d\u6027\uff0820\u6b21\u8bfb\u6570\uff09\",\n        sl_wl: \"\u6ce2\u957f\u8303\u56f4\", sl_sphere: \"\u79ef\u5206\u7403\u76f4\u5f84\",\n        sl_uv: \"\u7d2b\u5916\u6821\u51c6\", sl_tempSensor: \"\u6e29\u5ea6\u4f20\u611f\u5668\",\n        sl_cam: \"\u5b9a\u4f4d\u76f8\u673a\", sl_apertures: \"\u6d4b\u91cf\u5b54\u5f84\",\n        sl_connect: \"\u8fde\u63a5\u65b9\u5f0f\", sl_warranty: \"\u4fdd\u4fee\",\n        sl_method: \"\u6d4b\u91cf\u65b9\u6cd5\", sl_sampleSize: \"\u6837\u54c1\u5c3a\u5bf8\",\n        sl_multiPoint: \"\u591a\u70b9\u6d4b\u91cf\", sl_primaryUse: \"\u4e3b\u8981\u7528\u9014\", sl_standards: \"\u884c\u4e1a\u6807\u51c6\",\n        sv_yes: \"\u662f\", sv_no: \"\u5426\", sv_standard: \"\u6807\u51c6\",\n        sv_autoAdj: \"\u81ea\u52a8\uff0c\u53ef\u8c03\u8282\", sv_yesLav: \"\u662f\uff08LAV\u5b54\u5f84\uff09\", sv_yesCam: \"\u662f\",\n        sv_imaging: \"\u6210\u50cf\u5f0f\u5206\u5149\u5149\u5ea6\u8ba1\", sv_anyShape: \"\u51e0\u4e4e\u4efb\u4f55\u5f62\u72b6\u6216\u5c3a\u5bf8\",\n        sv_multiYes: \"\u662f\u2014\u2014\u540c\u65f6\u6d4b\u91cf\u591a\u4e2a\u533a\u57df\", sv_intCam: \"\u96c6\u6210\u9ad8\u5206\u8fa8\u7387\u76f8\u673a\",\n        sv_isoTappi: \"\u7b26\u5408 ISO \/ TAPPI \u6807\u51c6\", sv_whiteness: \"\u767d\u5ea6\u3001\u4eae\u5ea6\u3001\u4e0d\u900f\u660e\u5ea6\u3001\u53cd\u5c04\u56e0\u5b50\u3001\u9ec4\u5ea6\",\n        r_irregular: \"\u4e13\u4e3a\u4e0d\u89c4\u5219\u3001\u591a\u8272\u548c\u7eb9\u7406\u6837\u54c1\u8bbe\u8ba1\",\n        r_paper: \"\u4e13\u4e3a\u7eb8\u5f20\u3001\u7eb8\u6d46\u548c\u77ff\u7269\u8d28\u63a7\u800c\u8bbe\u8ba1\",\n        r_textile: \"\u652f\u6301\u7eba\u7ec7\u54c1\u6d4b\u91cf\", r_trans: \"\u63a8\u8350\u900f\u5c04\u578b\u53f7\u7528\u4e8e\u534a\u900f\u660e\u6837\u54c1\",\n        r_formulation: \"\u652f\u6301\u914d\u8272\", r_both: \"\u652f\u6301\u914d\u8272\u548c\u8d28\u63a7\",\n        r_iia1000: \"\u884c\u4e1a\u9886\u5148IIA\uff1a0.08 \u5e73\u5747 \/ 0.15 \u6700\u5927 \\u0394E*ab\",\n        r_iia700: \"\u4f18\u79c0IIA\uff1a0.15 \u5e73\u5747 \/ 0.30 \u6700\u5927 \\u0394E*ab\uff0c\u6027\u4ef7\u6bd4\u6781\u9ad8\",\n        r_transAvail: \"\u900f\u5c04\u578b\u53f7\u53ef\u7528\",\n        r_uvCal: \"\u5305\u542b\u8367\u5149\u6837\u54c1\u7d2b\u5916\u6821\u51c6\",\n        r_tempBuilt: \"\u5185\u7f6e\u6837\u54c1\u6e29\u5ea6\u6d4b\u91cf\",\n        r_camAssist: \"\u76f8\u673a\u8f85\u52a9\u6837\u54c1\u5b9a\u4f4d\",\n        r_vertAvail: \"\u5782\u76f4\u6d4b\u91cf\u914d\u7f6e\u53ef\u7528\",\n        tier_premium: \"\u65d7\u8230\", tier_professional: \"\u4e13\u4e1a\", tier_specialty: \"\u7279\u6b8a\u5e94\u7528\",\n      },\n    };\n\n    \/* helper *\/\n    function t(key, lang) { return I18N[lang]?.[key] || I18N.en[key] || key; }\n\n    \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n       PRODUCT DATA \u2014 language-independent technical data\n    \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n    const PRODUCTS = [\n      {\n        id: \"spectro1000\", name: \"Spectro 1000 Family\", tierKey: \"tier_premium\",\n        image: \"https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/04\/700x700-Product-Spectro-1000.png\",\n        tagKey: \"p_s1000_tag\", bestKey: \"p_s1000_best\",\n        iia: \"0.08 avg \/ 0.15 max \\u0394E*ab SCI\",\n        hasUV: true, hasTemperature: true, hasCamera: true, hasInternet: true,\n        formulation: true, qc: true,\n        sampleTypeKeys: [\"st_textiles\",\"st_paint\",\"st_opaque\",\"st_translucent\",\"st_powders\",\"st_liquids\",\"st_fluorescent\"],\n        variants: [\n          { name: \"Spectro 1000\", descKey: \"v_s1000_std\", config: \"standard\", transmittance: false, vertical: false, bestKey: \"v_s1000_stdBest\" },\n          { name: \"Spectro 1050\", descKey: \"v_s1050\", config: \"transmittance\", transmittance: true, vertical: false, bestKey: \"v_s1050Best\" },\n          { name: \"Spectro 1000V\", descKey: \"v_s1000v\", config: \"vertical-down\", transmittance: false, vertical: true, bestKey: \"v_s1000vBest\" },\n          { name: \"Spectro 1000X\", descKey: \"v_s1000x\", config: \"vertical-up\", transmittance: false, vertical: true, bestKey: \"v_s1000xBest\" },\n        ],\n        keySpecKeys: [\n          [\"sl_iia\", \"0.08 \\u0394E*ab (avg SCI), 0.15 \\u0394E*ab (max SCI)\"],\n          [\"sl_repeat\", \"0.01 \\u0394E*ab (max)\"],\n          [\"sl_wl\", \"360\\u2013700 nm\"],\n          [\"sl_sphere\", \"152 mm (6\\u2033)\"],\n          [\"sl_uv\", \"sv_autoAdj\"],\n          [\"sl_tempSensor\", \"sv_yesLav\"],\n          [\"sl_cam\", \"sv_yesCam\"],\n          [\"sl_apertures\", \"LAV, SAV, USAV (+ optional MAV, XUSAV)\"],\n          [\"sl_connect\", \"USB 2.0 \/ Ethernet\"],\n          [\"sl_warranty\", \"5 years\"],\n        ],\n      },\n      {\n        id: \"spectro700\", name: \"Spectro 700 Family\", tierKey: \"tier_professional\",\n        image: \"https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/04\/800x800-Product-Spectro-750.png\",\n        tagKey: \"p_s700_tag\", bestKey: \"p_s700_best\",\n        iia: \"0.15 avg \/ 0.30 max \\u0394E*ab SCI\",\n        hasUV: true, hasTemperature: false, hasCamera: false, hasInternet: true,\n        formulation: true, qc: true,\n        sampleTypeKeys: [\"st_paint\",\"st_opaque\",\"st_translucent\",\"st_powders\",\"st_liquids\",\"st_textiles\",\"st_fluorescent\"],\n        variants: [\n          { name: \"Spectro 700\", descKey: \"v_s700_std\", config: \"standard\", transmittance: false, vertical: false, bestKey: \"v_s700_stdBest\" },\n          { name: \"Spectro 750\", descKey: \"v_s750\", config: \"transmittance\", transmittance: true, vertical: false, bestKey: \"v_s750Best\" },\n          { name: \"Spectro 700V\", descKey: \"v_s700v\", config: \"vertical-down\", transmittance: false, vertical: true, bestKey: \"v_s700vBest\" },\n          { name: \"Spectro 700UV\", descKey: \"v_s700uv\", config: \"uv\", transmittance: false, vertical: false, bestKey: \"v_s700uvBest\" },\n        ],\n        keySpecKeys: [\n          [\"sl_iia\", \"0.15 \\u0394E*ab (avg SCI), 0.30 \\u0394E*ab (max SCI)\"],\n          [\"sl_repeat\", \"0.02 \\u0394E*ab (max)\"],\n          [\"sl_wl\", \"360\\u2013700 nm\"],\n          [\"sl_sphere\", \"152 mm (6\\u2033)\"],\n          [\"sl_uv\", \"sv_autoAdj\"],\n          [\"sl_tempSensor\", \"sv_no\"],\n          [\"sl_cam\", \"sv_no\"],\n          [\"sl_apertures\", \"LAV, SAV, USAV\"],\n          [\"sl_connect\", \"USB 2.0 \/ Ethernet\"],\n          [\"sl_warranty\", \"sv_standard\"],\n        ],\n      },\n      {\n        id: \"spectravision\", name: \"SpectraVision\", tierKey: \"tier_specialty\",\n        image: \"https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/SpectraVision-V-L2.png\",\n        tagKey: \"p_sv_tag\", bestKey: \"p_sv_best\",\n        iia: \"0.15 avg \/ 0.25 max \\u0394E*ab\",\n        hasUV: false, hasTemperature: false, hasCamera: true, hasInternet: true,\n        formulation: true, qc: true,\n        sampleTypeKeys: [\"st_prints\",\"st_lace\",\"st_buttons\",\"st_yarns\",\"st_jewelry\",\"st_textured\",\"st_dental\",\"st_pellets\",\"st_weathering\"],\n        variants: [\n          { name: \"SpectraVision\", descKey: \"v_sv\", config: \"imaging\", transmittance: false, vertical: false, bestKey: \"v_svBest\" },\n        ],\n        keySpecKeys: [\n          [\"sl_iia\", \"0.15 \\u0394E*ab (avg), 0.25 \\u0394E*ab (max)\"],\n          [\"sl_method\", \"sv_imaging\"],\n          [\"sl_wl\", \"360\\u2013780 nm\"],\n          [\"sl_sampleSize\", \"sv_anyShape\"],\n          [\"sl_multiPoint\", \"sv_multiYes\"],\n          [\"sl_uv\", \"sv_no\"],\n          [\"sl_tempSensor\", \"sv_no\"],\n          [\"sl_cam\", \"sv_intCam\"],\n          [\"sl_connect\", \"USB \/ Ethernet\"],\n          [\"sl_warranty\", \"sv_standard\"],\n        ],\n      },\n      {\n        id: \"elrepho\", name: \"Elrepho 1000\", tierKey: \"tier_specialty\",\n        image: \"https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/DCElrepho1000-FR-S-800x800-1.png\",\n        tagKey: \"p_el_tag\", bestKey: \"p_el_best\",\n        iia: \"0.25 avg \/ 0.40 max \\u0394E*ab\",\n        hasUV: false, hasTemperature: false, hasCamera: false, hasInternet: false,\n        formulation: false, qc: true,\n        sampleTypeKeys: [\"st_paper\",\"st_pulp\",\"st_chemicals\",\"st_minerals\",\"st_nonwovens\"],\n        variants: [\n          { name: \"Elrepho 1000\", descKey: \"v_el\", config: \"standard\", transmittance: false, vertical: false, bestKey: \"v_elBest\" },\n        ],\n        keySpecKeys: [\n          [\"sl_iia\", \"0.25 \\u0394E*ab (avg), 0.40 \\u0394E*ab (max)\"],\n          [\"sl_wl\", \"360\\u2013700 nm\"],\n          [\"sl_primaryUse\", \"sv_whiteness\"],\n          [\"sl_standards\", \"sv_isoTappi\"],\n          [\"sl_uv\", \"sv_no\"],\n          [\"sl_tempSensor\", \"sv_no\"],\n          [\"sl_cam\", \"sv_no\"],\n          [\"sl_connect\", \"USB\"],\n          [\"sl_warranty\", \"sv_standard\"],\n        ],\n      },\n    ];\n\n    \/* \u2500\u2500 Questions builder \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    function getQuestions(lang) {\n      const g = (k) => t(k, lang);\n      return [\n        {\n          id: \"sampleType\", question: g(\"q1\"), subtitle: g(\"q1sub\"), multi: true,\n          options: [\n            { id: \"textiles\", label: g(\"q1_textiles\"), icon: \"\\uD83E\\uDDF5\" },\n            { id: \"paint\", label: g(\"q1_paint\"), icon: \"\\uD83C\\uDFA8\" },\n            { id: \"opaquePlastic\", label: g(\"q1_opaque\"), icon: \"\\u2B1B\" },\n            { id: \"translucentPlastic\", label: g(\"q1_translucent\"), icon: \"\\uD83D\\uDC8E\" },\n            { id: \"paperPulp\", label: g(\"q1_paper\"), icon: \"\\uD83D\\uDCC4\" },\n            { id: \"powdersGranules\", label: g(\"q1_powders\"), icon: \"\\u2697\\uFE0F\" },\n            { id: \"liquids\", label: g(\"q1_liquids\"), icon: \"\\uD83D\\uDCA7\" },\n            { id: \"irregular\", label: g(\"q1_irregular\"), icon: \"\\uD83D\\uDD2C\" },\n          ],\n        },\n        {\n          id: \"application\", question: g(\"q2\"), subtitle: g(\"q2sub\"), multi: false,\n          options: [\n            { id: \"formulation\", label: g(\"q2_formulation\"), icon: \"\\uD83E\\uDDEA\" },\n            { id: \"qc\", label: g(\"q2_qc\"), icon: \"\\u2705\" },\n            { id: \"both\", label: g(\"q2_both\"), icon: \"\\uD83D\\uDD04\" },\n          ],\n        },\n        {\n          id: \"precision\", question: g(\"q3\"), subtitle: g(\"q3sub\"), multi: false,\n          options: [\n            { id: \"highest\", label: g(\"q3_highest\"), desc: g(\"q3_highestDesc\"), icon: \"\\uD83C\\uDFAF\" },\n            { id: \"high\", label: g(\"q3_high\"), desc: g(\"q3_highDesc\"), icon: \"\\uD83D\\uDCCA\" },\n            { id: \"standard\", label: g(\"q3_standard\"), desc: g(\"q3_standardDesc\"), icon: \"\\uD83D\\uDCCB\" },\n          ],\n        },\n        {\n          id: \"features\", question: g(\"q4\"), subtitle: g(\"q4sub\"), multi: true, skippable: true,\n          options: [\n            { id: \"transmittance\", label: g(\"q4_trans\"), desc: g(\"q4_transDesc\"), icon: \"\\uD83D\\uDD26\" },\n            { id: \"uv\", label: g(\"q4_uv\"), desc: g(\"q4_uvDesc\"), icon: \"\\u2600\\uFE0F\" },\n            { id: \"temperature\", label: g(\"q4_temp\"), desc: g(\"q4_tempDesc\"), icon: \"\\uD83C\\uDF21\\uFE0F\" },\n            { id: \"camera\", label: g(\"q4_camera\"), desc: g(\"q4_cameraDesc\"), icon: \"\\uD83D\\uDCF7\" },\n            { id: \"vertical\", label: g(\"q4_vert\"), desc: g(\"q4_vertDesc\"), icon: \"\\u2B07\\uFE0F\" },\n          ],\n        },\n      ];\n    }\n\n    \/* \u2500\u2500 Scoring engine (unchanged logic) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    function scoreProducts(answers, lang) {\n      const g = (k) => t(k, lang);\n      const scores = {};\n      PRODUCTS.forEach((p) => {\n        let score = 50; let reasons = []; let variantScore = {};\n        p.variants.forEach((v) => (variantScore[v.name] = 0));\n        const samples = answers.sampleType || [];\n        if (samples.includes(\"irregular\")) { score += p.id === \"spectravision\" ? 40 : -5; if (p.id === \"spectravision\") reasons.push(g(\"r_irregular\")); }\n        if (samples.includes(\"paperPulp\")) { score += p.id === \"elrepho\" ? 40 : (p.id === \"spectro1000\" ? 5 : 0); if (p.id === \"elrepho\") reasons.push(g(\"r_paper\")); }\n        if (samples.includes(\"textiles\")) { score += (p.id === \"spectro1000\" ? 15 : p.id === \"spectro700\" ? 10 : p.id === \"spectravision\" ? 8 : -10); if (p.id !== \"elrepho\") reasons.push(g(\"r_textile\")); }\n        if (samples.includes(\"paint\")) { score += (p.id === \"spectro1000\" ? 12 : p.id === \"spectro700\" ? 12 : -5); }\n        if (samples.includes(\"opaquePlastic\")) { score += (p.id === \"spectro1000\" ? 12 : p.id === \"spectro700\" ? 10 : -5); }\n        if (samples.includes(\"translucentPlastic\")) {\n          score += (p.id === \"spectro1000\" || p.id === \"spectro700\") ? 10 : -10;\n          p.variants.forEach((v) => { if (v.transmittance) variantScore[v.name] += 30; });\n          reasons.push(g(\"r_trans\"));\n        }\n        if (samples.includes(\"powdersGranules\")) {\n          score += (p.id === \"spectro1000\" ? 10 : p.id === \"spectro700\" ? 8 : -5);\n          p.variants.forEach((v) => { if (v.vertical) variantScore[v.name] += 25; });\n        }\n        if (samples.includes(\"liquids\")) {\n          score += (p.id === \"spectro1000\" || p.id === \"spectro700\") ? 8 : -5;\n          p.variants.forEach((v) => { if (v.transmittance || v.vertical) variantScore[v.name] += 20; });\n        }\n        const app = answers.application;\n        if (app === \"formulation\" && !p.formulation) score -= 30;\n        if (app === \"formulation\" && p.formulation) { score += 5; reasons.push(g(\"r_formulation\")); }\n        if (app === \"qc\" && p.qc) score += 5;\n        if (app === \"both\") { if (p.formulation && p.qc) { score += 8; reasons.push(g(\"r_both\")); } else score -= 20; }\n        const prec = answers.precision;\n        if (prec === \"highest\") { score += p.id === \"spectro1000\" ? 25 : (p.id === \"spectravision\" ? 10 : (p.id === \"spectro700\" ? -5 : -15)); if (p.id === \"spectro1000\") reasons.push(g(\"r_iia1000\")); }\n        if (prec === \"high\") { score += p.id === \"spectro700\" ? 20 : (p.id === \"spectro1000\" ? 10 : 0); if (p.id === \"spectro700\") reasons.push(g(\"r_iia700\")); }\n        if (prec === \"standard\") { score += p.id === \"spectro700\" ? 10 : (p.id === \"elrepho\" ? 10 : 0); }\n        const feats = answers.features || [];\n        if (feats.includes(\"transmittance\")) { const has = p.variants.some((v) => v.transmittance); score += has ? 15 : -15; p.variants.forEach((v) => { if (v.transmittance) variantScore[v.name] += 30; }); if (has) reasons.push(g(\"r_transAvail\")); }\n        if (feats.includes(\"uv\")) { score += p.hasUV ? 10 : -5; if (p.id === \"spectro700\") { p.variants.forEach((v) => { if (v.config === \"uv\") variantScore[v.name] += 25; }); } if (p.hasUV) reasons.push(g(\"r_uvCal\")); }\n        if (feats.includes(\"temperature\")) { score += p.hasTemperature ? 15 : -3; if (p.hasTemperature) reasons.push(g(\"r_tempBuilt\")); }\n        if (feats.includes(\"camera\")) { score += p.hasCamera ? 12 : -2; if (p.hasCamera) reasons.push(g(\"r_camAssist\")); }\n        if (feats.includes(\"vertical\")) { const has = p.variants.some((v) => v.vertical); score += has ? 12 : -8; p.variants.forEach((v) => { if (v.vertical) variantScore[v.name] += 25; }); if (has) reasons.push(g(\"r_vertAvail\")); }\n        let bestVariant = p.variants[0]; let bestVS = -Infinity;\n        p.variants.forEach((v) => { if (variantScore[v.name] > bestVS) { bestVS = variantScore[v.name]; bestVariant = v; } });\n        scores[p.id] = { score: Math.max(0, Math.min(100, score)), reasons: [...new Set(reasons)], bestVariant };\n      });\n      return scores;\n    }\n\n    \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n       UI COMPONENTS\n    \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n\n    \/* \u2500\u2500 Common styles \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    const btnPrimary = { padding: \"12px 28px\", background: C.RED, color: C.WHITE, border: \"none\", borderRadius: R, fontSize: 16, fontWeight: 700, cursor: \"pointer\", fontFamily: \"inherit\", transition: `all 200ms ${EASE}`, lineHeight: 1.5 };\n    const btnSecondary = { padding: \"10px 24px\", background: \"transparent\", color: C.RED, border: `1px solid ${C.RED}`, borderRadius: R, fontSize: \"13.33px\", fontWeight: 700, cursor: \"pointer\", fontFamily: \"inherit\", transition: `all 200ms ${EASE}` };\n    const btnGhost = { padding: \"10px 20px\", background: \"transparent\", color: C.N_DARK, border: `1px solid ${C.N_LT}`, borderRadius: R, fontSize: \"13.33px\", fontWeight: 300, cursor: \"pointer\", fontFamily: \"inherit\" };\n\n    function ProgressBar({ current, total }) {\n      return (\n        <div style={{ display: \"flex\", gap: 8, padding: \"0 4px\" }}>\n          {Array.from({ length: total }, (_, i) => (\n            <div key={i} style={{ flex: 1, height: 4, borderRadius: R, background: i <= current ? C.RED : C.N_PALE, transition: \"background 0.3s\" }} \/>\n          ))}\n        <\/div>\n      );\n    }\n\n    function ProductImage({ src, alt, size = 180 }) {\n      const [loaded, setLoaded] = useState(false);\n      const [err, setErr] = useState(false);\n      useEffect(() => { setErr(false); setLoaded(false); }, [src]);\n      return (\n        <div style={{ width: size, height: size, display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\n          {!err && src && <img src={src} alt={alt} onLoad={() => setLoaded(true)} onError={() => setErr(true)} style={{ width: size, height: size, objectFit: \"contain\", borderRadius: R, display: loaded ? \"block\" : \"none\" }} \/>}\n          {(!loaded || err) && (\n            <div style={{ width: size, height: size, background: C.OFFWHITE, borderRadius: R, display: \"flex\", flexDirection: \"column\", alignItems: \"center\", justifyContent: \"center\", gap: 8, border: `1px solid ${C.N_PALE}` }}>\n              <svg width={size * 0.35} height={size * 0.35} viewBox=\"0 0 60 60\" fill=\"none\"><rect x=\"8\" y=\"20\" width=\"44\" height=\"30\" rx=\"1\" fill=\"#D1D5DB\" stroke={C.N_MID} strokeWidth=\"1.5\"\/><circle cx=\"40\" cy=\"35\" r=\"9\" fill=\"#E5E7EB\" stroke={C.N_MID} strokeWidth=\"1.5\"\/><circle cx=\"40\" cy=\"35\" r=\"5\" fill=\"#6B7280\"\/><circle cx=\"40\" cy=\"35\" r=\"2\" fill={C.RED}\/><\/svg>\n              <span style={{ fontSize: Math.max(10, size * 0.07), fontWeight: 700, color: C.N_MID, textAlign: \"center\", padding: \"0 8px\", lineHeight: 1.2 }}>{alt}<\/span>\n            <\/div>\n          )}\n        <\/div>\n      );\n    }\n\n    function Badge({ children, color = C.RED }) {\n      return <span style={{ display: \"inline-block\", padding: \"4px 10px\", borderRadius: R, fontSize: \"11.11px\", fontWeight: 700, letterSpacing: 0.5, textTransform: \"uppercase\", background: color === C.RED ? C.RED_PALE : \"#F0F7FF\", color: color, border: `1px solid ${color}22` }}>{children}<\/span>;\n    }\n\n\n    \/* \u2500\u2500 Welcome Screen \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    function WelcomeScreen({ onStart, onBrowse }) {\n      const { lang } = useContext(LangContext);\n      const g = (k) => t(k, lang);\n      return (\n        <div style={{ textAlign: \"center\", padding: \"64px 24px\", maxWidth: 640, margin: \"0 auto\" }}>\n          <div style={{ display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", width: 72, height: 72, borderRadius: \"50%\", background: C.RED_PALE, marginBottom: 32 }}>\n            <svg width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"none\" stroke={C.RED} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><path d=\"m21 21-4.35-4.35\"\/><\/svg>\n          <\/div>\n          <h1 style={{ fontSize: \"33.18px\", fontWeight: 300, color: C.BLACK, lineHeight: 1.4, marginBottom: 16 }}>{g(\"welcomeTitle\")}<\/h1>\n          <p style={{ fontSize: 16, fontWeight: 300, color: C.N_DARK, lineHeight: 1.5, marginBottom: 40, maxWidth: 480, margin: \"0 auto 40px\" }}>{g(\"welcomeDesc\")}<\/p>\n          <button onClick={onStart} style={btnPrimary}>{g(\"startBtn\")}<\/button>\n          <div style={{ marginTop: 16 }}>\n            <button onClick={onBrowse} style={btnSecondary}>{g(\"browseBtn\")}<\/button>\n          <\/div>\n        <\/div>\n      );\n    }\n\n    \/* \u2500\u2500 Wizard Step \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    function WizardStep({ question, answers, onAnswer, onBack, onSkip, stepNum, totalSteps }) {\n      const { lang } = useContext(LangContext);\n      const g = (k) => t(k, lang);\n      const [selected, setSelected] = useState(answers[question.id] || (question.multi ? [] : null));\n      const toggle = (id) => { if (question.multi) setSelected((s) => s.includes(id) ? s.filter((x) => x !== id) : [...s, id]); else setSelected(id); };\n      const canProceed = question.multi ? selected.length > 0 : selected !== null;\n      return (\n        <div style={{ maxWidth: 640, margin: \"0 auto\", padding: \"24px 20px\" }}>\n          <ProgressBar current={stepNum} total={totalSteps} \/>\n          <div style={{ marginTop: 32, marginBottom: 8 }}>\n            <span style={{ fontSize: \"11.11px\", fontWeight: 700, color: C.N_MID, textTransform: \"uppercase\", letterSpacing: 1 }}>{g(\"stepOf\")(stepNum + 1, totalSteps)}<\/span>\n          <\/div>\n          <h2 style={{ fontSize: \"23.04px\", fontWeight: 700, color: C.BLACK, marginBottom: 8, lineHeight: 1.5 }}>{question.question}<\/h2>\n          <p style={{ fontSize: \"13.33px\", fontWeight: 300, color: C.N_MID, marginBottom: 24, lineHeight: 1.5 }}>{question.subtitle}<\/p>\n          <div style={{ display: \"flex\", flexDirection: \"column\", gap: 8 }}>\n            {question.options.map((opt) => {\n              const isSelected = question.multi ? selected.includes(opt.id) : selected === opt.id;\n              return (\n                <button key={opt.id} onClick={() => toggle(opt.id)} style={{\n                  display: \"flex\", alignItems: \"center\", gap: 16, padding: \"14px 16px\", border: `1px solid ${isSelected ? C.RED : C.N_LT}`,\n                  borderRadius: R, background: isSelected ? C.RED_PALE : C.WHITE, cursor: \"pointer\", textAlign: \"left\", fontFamily: \"inherit\",\n                  transition: `all 200ms ${EASE}`,\n                }}>\n                  <span style={{ fontSize: 22, flexShrink: 0, width: 36, textAlign: \"center\" }}>{opt.icon}<\/span>\n                  <div style={{ flex: 1 }}>\n                    <div style={{ fontSize: 16, fontWeight: isSelected ? 700 : 300, color: isSelected ? C.RED : C.BLACK }}>{opt.label}<\/div>\n                    {opt.desc && <div style={{ fontSize: \"13.33px\", fontWeight: 300, color: C.N_MID, marginTop: 2 }}>{opt.desc}<\/div>}\n                  <\/div>\n                  <div style={{\n                    width: 22, height: 22, borderRadius: question.multi ? R : \"50%\", border: `1px solid ${isSelected ? C.RED : C.N_LT}`,\n                    background: isSelected ? C.RED : \"transparent\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", flexShrink: 0,\n                  }}>\n                    {isSelected && <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"><path d=\"M2.5 6L5 8.5L9.5 3.5\" stroke=\"white\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"\/><\/svg>}\n                  <\/div>\n                <\/button>\n              );\n            })}\n          <\/div>\n          <div style={{ display: \"flex\", gap: 12, marginTop: 32, justifyContent: \"space-between\", alignItems: \"center\" }}>\n            <button onClick={onBack} style={btnGhost}>{g(\"back\")}<\/button>\n            <div style={{ display: \"flex\", gap: 8 }}>\n              {question.skippable && <button onClick={() => onSkip(question.id)} style={{ ...btnGhost, border: \"none\", color: C.N_MID, textDecoration: \"underline\" }}>{g(\"skip\")}<\/button>}\n              <button onClick={() => canProceed && onAnswer(question.id, selected)} disabled={!canProceed} style={{\n                ...btnPrimary, fontSize: \"13.33px\", padding: \"10px 24px\",\n                background: canProceed ? C.RED : C.N_PALE, color: canProceed ? C.WHITE : C.N_MID, cursor: canProceed ? \"pointer\" : \"default\",\n              }}>\n                {stepNum === totalSteps - 1 ? g(\"seeRecs\") : g(\"cont\")}\n              <\/button>\n            <\/div>\n          <\/div>\n        <\/div>\n      );\n    }\n\n    \/* \u2500\u2500 Product Card \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    function ProductCard({ product, scoreData, onCompare, isInCompare, compact = false }) {\n      const { lang } = useContext(LangContext);\n      const g = (k) => t(k, lang);\n      const matchPct = scoreData ? Math.round(scoreData.score) : null;\n      const variant = scoreData?.bestVariant || product.variants[0];\n      return (\n        <div style={{\n          border: `1px solid ${isInCompare ? C.RED : C.N_LT}`, borderRadius: R, overflow: \"hidden\", background: C.WHITE,\n          transition: `all 200ms ${EASE}`,\n        }}>\n          <div style={{ display: \"flex\", flexDirection: compact ? \"row\" : \"column\", alignItems: compact ? \"center\" : \"stretch\" }}>\n            <div style={{ background: C.OFFWHITE, padding: compact ? 16 : 24, display: \"flex\", alignItems: \"center\", justifyContent: \"center\", flexShrink: 0 }}>\n              <ProductImage src={product.image} alt={product.name} size={compact ? 100 : 160} \/>\n            <\/div>\n            <div style={{ padding: compact ? 16 : 20, flex: 1 }}>\n              <div style={{ display: \"flex\", gap: 8, flexWrap: \"wrap\", marginBottom: 8, alignItems: \"center\" }}>\n                <Badge>{g(product.tierKey)}<\/Badge>\n                {matchPct !== null && (\n                  <span style={{ fontSize: \"11.11px\", fontWeight: 700, color: matchPct >= 70 ? C.SUCCESS_DARK : matchPct >= 50 ? \"#BE9925\" : C.N_MID, background: matchPct >= 70 ? \"#E0F1CB\" : matchPct >= 50 ? \"#FFF3CC\" : C.OFFWHITE, padding: \"4px 10px\", borderRadius: R }}>\n                    {matchPct}% {g(\"match\")}\n                  <\/span>\n                )}\n              <\/div>\n              <h3 style={{ fontSize: \"19.2px\", fontWeight: 700, color: C.BLACK, marginBottom: 4 }}>{product.name}<\/h3>\n              <p style={{ fontSize: \"13.33px\", fontWeight: 300, color: C.N_MID, marginBottom: 10, fontStyle: \"italic\" }}>{g(product.tagKey)}<\/p>\n              {scoreData && variant && product.variants.length > 1 && (\n                <div style={{ background: \"#F0F9FF\", border: `1px solid #BAE6FD`, borderRadius: R, padding: \"8px 12px\", marginBottom: 10, fontSize: \"13.33px\" }}>\n                  <span style={{ fontWeight: 700, color: \"#0369A1\" }}>{g(\"recVariant\")}: <\/span>\n                  <span style={{ color: \"#0C4A6E\" }}>{variant.name}<\/span>\n                  <div style={{ color: C.N_MID, fontSize: \"11.11px\", marginTop: 2 }}>{g(variant.descKey)} \u2014 {g(variant.bestKey)}<\/div>\n                <\/div>\n              )}\n              {scoreData && scoreData.reasons.length > 0 && !compact && (\n                <div style={{ marginBottom: 12 }}>\n                  {scoreData.reasons.slice(0, 3).map((r, i) => (\n                    <div key={i} style={{ fontSize: \"13.33px\", fontWeight: 300, color: C.N_DARK, display: \"flex\", gap: 6, marginBottom: 4, alignItems: \"flex-start\" }}>\n                      <span style={{ color: C.SUCCESS, fontWeight: 700, flexShrink: 0, marginTop: 1 }}>{\"\\u2713\"}<\/span> {r}\n                    <\/div>\n                  ))}\n                <\/div>\n              )}\n              <div style={{ fontSize: \"13.33px\", fontWeight: 300, color: C.N_DARK, marginBottom: 16, lineHeight: 1.5 }}>{g(product.bestKey)}<\/div>\n              <div style={{ display: \"flex\", gap: 8, flexWrap: \"wrap\", marginBottom: 16 }}>\n                <span style={{ fontSize: \"11.11px\", fontWeight: 700, color: C.N_DARK, background: C.OFFWHITE, padding: \"4px 8px\", borderRadius: R }}>IIA: {product.iia}<\/span>\n                {product.hasTemperature && <span style={{ fontSize: \"11.11px\", fontWeight: 700, color: C.N_DARK, background: C.OFFWHITE, padding: \"4px 8px\", borderRadius: R }}>{\"\\uD83C\\uDF21\\uFE0F\"} {g(\"temp\")}<\/span>}\n                {product.hasCamera && <span style={{ fontSize: \"11.11px\", fontWeight: 700, color: C.N_DARK, background: C.OFFWHITE, padding: \"4px 8px\", borderRadius: R }}>{\"\\uD83D\\uDCF7\"} {g(\"camera\")}<\/span>}\n                {product.hasUV && <span style={{ fontSize: \"11.11px\", fontWeight: 700, color: C.N_DARK, background: C.OFFWHITE, padding: \"4px 8px\", borderRadius: R }}>{\"\\u2600\\uFE0F\"} UV<\/span>}\n              <\/div>\n              <div style={{ display: \"flex\", gap: 8, flexWrap: \"wrap\" }}>\n                <a href={productUrl(product.id, lang)} target=\"_blank\" rel=\"noopener noreferrer\" style={{\n                  ...btnPrimary, fontSize: \"13.33px\", padding: \"8px 16px\", textDecoration: \"none\", display: \"inline-block\",\n                }}>{g(\"viewProduct\")}<\/a>\n                <a href={specSheetUrl(product.id, lang)} target=\"_blank\" rel=\"noopener noreferrer\" style={{\n                  ...btnSecondary, padding: \"8px 16px\", textDecoration: \"none\", display: \"inline-block\",\n                }}>{g(\"specSheet\")} {\"\\u2193\"}<\/a>\n                <button onClick={() => onCompare(product.id)} style={{\n                  padding: \"8px 16px\", background: isInCompare ? C.BLACK : \"transparent\", color: isInCompare ? C.WHITE : C.N_DARK,\n                  border: `1px solid ${isInCompare ? C.BLACK : C.N_LT}`, borderRadius: R, fontSize: \"13.33px\", fontWeight: isInCompare ? 700 : 300,\n                  cursor: \"pointer\", fontFamily: \"inherit\",\n                }}>\n                  {isInCompare ? g(\"inCompare\") : \"+ \" + g(\"compareTxt\")}\n                <\/button>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      );\n    }\n\n    \/* \u2500\u2500 Compare View \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    function CompareView({ compareIds, onRemove, onBack }) {\n      const { lang } = useContext(LangContext);\n      const g = (k) => t(k, lang);\n      const items = PRODUCTS.filter((p) => compareIds.includes(p.id));\n      if (items.length === 0) return null;\n      const allSpecKeys = [...new Set(items.flatMap((p) => p.keySpecKeys.map(k => k[0])))];\n      function getSpecVal(p, labelKey) {\n        const found = p.keySpecKeys.find(k => k[0] === labelKey);\n        if (!found) return \"\\u2014\";\n        const val = found[1];\n        return I18N[lang]?.[val] || I18N.en[val] || val;\n      }\n      return (\n        <div style={{ maxWidth: 900, margin: \"0 auto\", padding: \"24px 16px\" }}>\n          <button onClick={onBack} style={{ ...btnGhost, display: \"flex\", alignItems: \"center\", gap: 6, marginBottom: 24 }}>{\"\\u2190\"} {g(\"back\")}<\/button>\n          <h2 style={{ fontSize: \"23.04px\", fontWeight: 700, color: C.BLACK, marginBottom: 24 }}>{g(\"compareModels\")}<\/h2>\n          <div style={{ overflowX: \"auto\", WebkitOverflowScrolling: \"touch\" }}>\n            <table style={{ width: \"100%\", borderCollapse: \"collapse\", minWidth: items.length * 240 }}>\n              <thead>\n                <tr>\n                  <th style={{ width: 160, padding: 12, textAlign: \"left\", borderBottom: `2px solid ${C.N_PALE}`, fontSize: \"13.33px\", fontWeight: 700, color: C.N_MID, position: \"sticky\", left: 0, background: C.WHITE, zIndex: 1 }}><\/th>\n                  {items.map((p) => (\n                    <th key={p.id} style={{ padding: 12, textAlign: \"center\", borderBottom: `2px solid ${C.N_PALE}`, minWidth: 200 }}>\n                      <div style={{ display: \"flex\", flexDirection: \"column\", alignItems: \"center\", gap: 8 }}>\n                        <ProductImage src={p.image} alt={p.name} size={80} \/>\n                        <span style={{ fontWeight: 700, fontSize: \"13.33px\", color: C.BLACK }}>{p.name}<\/span>\n                        <Badge>{g(p.tierKey)}<\/Badge>\n                        <button onClick={() => onRemove(p.id)} style={{ fontSize: \"11.11px\", color: C.N_MID, background: \"transparent\", border: \"none\", cursor: \"pointer\", fontFamily: \"inherit\", textDecoration: \"underline\" }}>{g(\"remove\")}<\/button>\n                      <\/div>\n                    <\/th>\n                  ))}\n                <\/tr>\n              <\/thead>\n              <tbody>\n                {allSpecKeys.map((key, i) => (\n                  <tr key={key} style={{ background: i % 2 === 0 ? C.WHITE : C.OFFWHITE }}>\n                    <td style={{ padding: \"10px 12px\", fontSize: \"13.33px\", fontWeight: 700, color: C.N_DARK, borderBottom: `1px solid ${C.N_PALE}`, position: \"sticky\", left: 0, background: i % 2 === 0 ? C.WHITE : C.OFFWHITE, zIndex: 1 }}>{g(key)}<\/td>\n                    {items.map((p) => (\n                      <td key={p.id} style={{ padding: \"10px 12px\", fontSize: \"13.33px\", fontWeight: 300, color: C.N_DARK, textAlign: \"center\", borderBottom: `1px solid ${C.N_PALE}` }}>\n                        {getSpecVal(p, key)}\n                      <\/td>\n                    ))}\n                  <\/tr>\n                ))}\n                <tr>\n                  <td style={{ padding: \"10px 12px\", fontSize: \"13.33px\", fontWeight: 700, color: C.N_DARK, borderBottom: `1px solid ${C.N_PALE}`, position: \"sticky\", left: 0, background: C.WHITE, zIndex: 1 }}>{g(\"variantsAvail\")}<\/td>\n                  {items.map((p) => (\n                    <td key={p.id} style={{ padding: \"10px 12px\", fontSize: \"11.11px\", fontWeight: 300, color: C.N_DARK, textAlign: \"center\", borderBottom: `1px solid ${C.N_PALE}`, lineHeight: 1.6 }}>\n                      {p.variants.map((v) => v.name).join(\", \")}\n                    <\/td>\n                  ))}\n                <\/tr>\n                <tr>\n                  <td style={{ padding: \"10px 12px\", fontSize: \"13.33px\", fontWeight: 700, color: C.N_DARK, borderBottom: `1px solid ${C.N_PALE}`, position: \"sticky\", left: 0, background: C.OFFWHITE, zIndex: 1 }}>{g(\"sampleTypesLbl\")}<\/td>\n                  {items.map((p) => (\n                    <td key={p.id} style={{ padding: \"10px 12px\", fontSize: \"11.11px\", fontWeight: 300, color: C.N_DARK, textAlign: \"center\", borderBottom: `1px solid ${C.N_PALE}`, lineHeight: 1.6, background: C.OFFWHITE }}>\n                      {p.sampleTypeKeys.map(k => g(k)).join(\", \")}\n                    <\/td>\n                  ))}\n                <\/tr>\n                <tr>\n                  <td style={{ padding: 12, position: \"sticky\", left: 0, background: C.WHITE, zIndex: 1 }}><\/td>\n                  {items.map((p) => (\n                    <td key={p.id} style={{ padding: 12, textAlign: \"center\" }}>\n                      <div style={{ display: \"flex\", gap: 8, justifyContent: \"center\", flexWrap: \"wrap\" }}>\n                        <a href={productUrl(p.id, lang)} target=\"_blank\" rel=\"noopener noreferrer\" style={{ ...btnPrimary, fontSize: \"11.11px\", padding: \"6px 14px\", textDecoration: \"none\" }}>{g(\"productPage\")}<\/a>\n                        <a href={specSheetUrl(p.id, lang)} target=\"_blank\" rel=\"noopener noreferrer\" style={{ ...btnSecondary, fontSize: \"11.11px\", padding: \"6px 14px\", textDecoration: \"none\" }}>{g(\"specSheet\")}<\/a>\n                      <\/div>\n                    <\/td>\n                  ))}\n                <\/tr>\n              <\/tbody>\n            <\/table>\n          <\/div>\n          <div style={{ textAlign: \"center\", marginTop: 32, padding: 24, background: C.OFFWHITE, borderRadius: R }}>\n            <p style={{ fontSize: 16, fontWeight: 300, color: C.N_DARK, marginBottom: 16 }}>{g(\"contactSub3\")}<\/p>\n            <a href={contactUrl(lang)} target=\"_blank\" rel=\"noopener noreferrer\" style={{ ...btnPrimary, textDecoration: \"none\", display: \"inline-block\" }}>{g(\"contactCta\")}<\/a>\n          <\/div>\n        <\/div>\n      );\n    }\n\n    \/* \u2500\u2500 Results Screen \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    function ResultsScreen({ scores, answers, onCompare, compareIds, onShowCompare, onRestart, onBrowse }) {\n      const { lang } = useContext(LangContext);\n      const g = (k) => t(k, lang);\n      const ranked = PRODUCTS.map((p) => ({ ...p, ...scores[p.id] })).sort((a, b) => b.score - a.score);\n      return (\n        <div style={{ maxWidth: 700, margin: \"0 auto\", padding: \"24px 20px\" }}>\n          <div style={{ textAlign: \"center\", marginBottom: 32 }}>\n            <div style={{ display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", width: 56, height: 56, borderRadius: \"50%\", background: \"#E0F1CB\", marginBottom: 16 }}>\n              <span style={{ fontSize: 28 }}>{\"\\uD83C\\uDFAF\"}<\/span>\n            <\/div>\n            <h2 style={{ fontSize: \"23.04px\", fontWeight: 700, color: C.BLACK, marginBottom: 8 }}>{g(\"yourRecs\")}<\/h2>\n            <p style={{ fontSize: \"13.33px\", fontWeight: 300, color: C.N_MID }}>{g(\"basedOn\")}<\/p>\n          <\/div>\n          {ranked.map((p, i) => (\n            <div key={p.id} style={{ marginBottom: 16, position: \"relative\" }}>\n              {i === 0 && <div style={{ position: \"absolute\", top: -10, left: 20, background: C.SUCCESS, color: C.WHITE, padding: \"4px 12px\", borderRadius: R, fontSize: \"11.11px\", fontWeight: 700, zIndex: 1, letterSpacing: 0.5 }}>{g(\"topRec\")}<\/div>}\n              <ProductCard product={p} scoreData={scores[p.id]} onCompare={onCompare} isInCompare={compareIds.includes(p.id)} \/>\n            <\/div>\n          ))}\n          {compareIds.length >= 2 && (\n            <div style={{ position: \"sticky\", bottom: 16, zIndex: 10, marginTop: 8 }}>\n              <button onClick={onShowCompare} style={{ width: \"100%\", padding: 14, background: C.BLACK, color: C.WHITE, border: \"none\", borderRadius: R, fontSize: 16, fontWeight: 700, cursor: \"pointer\", fontFamily: \"inherit\", boxShadow: \"0 4px 24px rgba(0,0,0,0.25)\" }}>\n                {g(\"compareN\")(compareIds.length)}\n              <\/button>\n            <\/div>\n          )}\n          <div style={{ textAlign: \"center\", marginTop: 24, padding: 24, background: C.OFFWHITE, borderRadius: R }}>\n            <p style={{ fontSize: 16, fontWeight: 300, color: C.N_DARK, marginBottom: 16, lineHeight: 1.5 }}>{g(\"contactSub2\")}<\/p>\n            <a href={contactUrl(lang)} target=\"_blank\" rel=\"noopener noreferrer\" style={{ ...btnPrimary, textDecoration: \"none\", display: \"inline-block\" }}>{g(\"contactCta\")}<\/a>\n          <\/div>\n          <div style={{ display: \"flex\", gap: 8, justifyContent: \"center\", marginTop: 16 }}>\n            <button onClick={onRestart} style={btnGhost}>{g(\"startOver\")}<\/button>\n            <button onClick={onBrowse} style={btnSecondary}>{g(\"browseBtn\")}<\/button>\n          <\/div>\n        <\/div>\n      );\n    }\n\n    \/* \u2500\u2500 Browse All \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    function BrowseAll({ onCompare, compareIds, onShowCompare, onBack }) {\n      const { lang } = useContext(LangContext);\n      const g = (k) => t(k, lang);\n      return (\n        <div style={{ maxWidth: 700, margin: \"0 auto\", padding: \"24px 20px\" }}>\n          <button onClick={onBack} style={{ ...btnGhost, display: \"flex\", alignItems: \"center\", gap: 6, marginBottom: 24 }}>{\"\\u2190\"} {g(\"back\")}<\/button>\n          <h2 style={{ fontSize: \"23.04px\", fontWeight: 700, color: C.BLACK, marginBottom: 8 }}>{g(\"browseBtn\")}<\/h2>\n          <p style={{ fontSize: \"13.33px\", fontWeight: 300, color: C.N_MID, marginBottom: 24 }}>{g(\"selectToCompare\")}<\/p>\n          {PRODUCTS.map((p) => (\n            <div key={p.id} style={{ marginBottom: 16 }}>\n              <ProductCard product={p} scoreData={null} onCompare={onCompare} isInCompare={compareIds.includes(p.id)} \/>\n            <\/div>\n          ))}\n          {compareIds.length >= 2 && (\n            <div style={{ position: \"sticky\", bottom: 16, zIndex: 10, marginTop: 8 }}>\n              <button onClick={onShowCompare} style={{ width: \"100%\", padding: 14, background: C.BLACK, color: C.WHITE, border: \"none\", borderRadius: R, fontSize: 16, fontWeight: 700, cursor: \"pointer\", fontFamily: \"inherit\", boxShadow: \"0 4px 24px rgba(0,0,0,0.25)\" }}>\n                {g(\"compareN\")(compareIds.length)}\n              <\/button>\n            <\/div>\n          )}\n          <div style={{ textAlign: \"center\", marginTop: 24, padding: 24, background: C.OFFWHITE, borderRadius: R }}>\n            <p style={{ fontSize: 16, fontWeight: 300, color: C.N_DARK, marginBottom: 16 }}>{g(\"contactSub1\")}<\/p>\n            <a href={contactUrl(lang)} target=\"_blank\" rel=\"noopener noreferrer\" style={{ ...btnPrimary, textDecoration: \"none\", display: \"inline-block\" }}>{g(\"contactCta\")}<\/a>\n          <\/div>\n        <\/div>\n      );\n    }\n\n    \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n       MAIN APP\n    \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n    function ProductSelector() {\n      const lang = useMemo(() => getLang(), []);\n      const [view, setView] = useState(\"welcome\");\n      const [step, setStep] = useState(0);\n      const [answers, setAnswers] = useState({});\n      const [compareIds, setCompareIds] = useState([]);\n      const [scores, setScores] = useState(null);\n      const [prevView, setPrevView] = useState(\"welcome\");\n\n      const questions = useMemo(() => getQuestions(lang), [lang]);\n\n      const handleAnswer = useCallback((qId, val) => {\n        const next = { ...answers, [qId]: val };\n        setAnswers(next);\n        if (step < questions.length - 1) setStep(step + 1);\n        else { setScores(scoreProducts(next, lang)); setView(\"results\"); }\n      }, [answers, step, questions, lang]);\n\n      const handleSkip = useCallback((qId) => {\n        const next = { ...answers, [qId]: [] };\n        setAnswers(next);\n        if (step < questions.length - 1) setStep(step + 1);\n        else { setScores(scoreProducts(next, lang)); setView(\"results\"); }\n      }, [answers, step, questions, lang]);\n\n      const toggleCompare = useCallback((id) => {\n        setCompareIds((c) => c.includes(id) ? c.filter((x) => x !== id) : c.length < 4 ? [...c, id] : c);\n      }, []);\n\n      const resetAll = () => { setView(\"welcome\"); setStep(0); setAnswers({}); setScores(null); setCompareIds([]); };\n\n      const g = (k) => t(k, lang);\n\n      return (\n        <LangContext.Provider value={{ lang }}>\n          <div style={{ fontFamily: lang === \"zh\" ? \"'Noto Sans SC', 'Roboto', sans-serif\" : \"'Roboto', sans-serif\", fontWeight: 300, color: C.N_DARK, background: C.WHITE, minHeight: \"100vh\", overflowX: \"hidden\" }}>\n            {\/* Header *\/}\n            <div style={{ borderBottom: `1px solid ${C.N_PALE}`, padding: \"12px 20px\", display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\", background: C.WHITE, position: \"sticky\", top: 0, zIndex: 20 }}>\n              <div style={{ display: \"flex\", alignItems: \"center\", gap: 12 }}>\n                <a href=\"https:\/\/www.datacolor.com\/business-solutions\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n                  <img decoding=\"async\" src=\"https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/2xlarger-datacolor-logo-300x39.png\" alt=\"Datacolor\" style={{ height: 22 }} onError={(e) => { e.target.style.display = \"none\"; }} \/>\n                <\/a>\n                <span style={{ fontSize: \"13.33px\", fontWeight: 300, color: C.N_MID, borderLeft: `1px solid ${C.N_LT}`, paddingLeft: 12 }}>{g(\"headerLabel\")}<\/span>\n              <\/div>\n              <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n                {view !== \"welcome\" && (\n                  <button onClick={resetAll} style={{ fontSize: \"13.33px\", color: C.RED, background: \"transparent\", border: \"none\", cursor: \"pointer\", fontWeight: 700, fontFamily: \"inherit\" }}>{g(\"restart\")}<\/button>\n                )}\n              <\/div>\n            <\/div>\n\n            {view === \"welcome\" && <WelcomeScreen onStart={() => setView(\"wizard\")} onBrowse={() => setView(\"browse\")} \/>}\n            {view === \"wizard\" && <WizardStep question={questions[step]} answers={answers} onAnswer={handleAnswer} onSkip={handleSkip} onBack={() => { if (step > 0) setStep(step - 1); else setView(\"welcome\"); }} stepNum={step} totalSteps={questions.length} \/>}\n            {view === \"results\" && scores && <ResultsScreen scores={scores} answers={answers} onCompare={toggleCompare} compareIds={compareIds} onShowCompare={() => { setPrevView(\"results\"); setView(\"compare\"); }} onRestart={resetAll} onBrowse={() => { setPrevView(\"results\"); setView(\"browse\"); }} \/>}\n            {view === \"browse\" && <BrowseAll onCompare={toggleCompare} compareIds={compareIds} onShowCompare={() => { setPrevView(\"browse\"); setView(\"compare\"); }} onBack={() => setView(scores ? \"results\" : \"welcome\")} \/>}\n            {view === \"compare\" && <CompareView compareIds={compareIds} onRemove={(id) => setCompareIds((c) => c.filter((x) => x !== id))} onBack={() => setView(prevView || \"results\")} \/>}\n\n          <\/div>\n        <\/LangContext.Provider>\n      );\n    }\n\n    \/* \u2500\u2500 Mount \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    const root = ReactDOM.createRoot(document.getElementById(\"root\"));\n    root.render(<ProductSelector \/>);\n  <\/script>\n\n<\/div>\n                <\/div>\n            <\/div>\n        <\/div><section id=\"gutenblock-block_9fe27caa2238cfb1e26b1c190f3bb3bd\" class=\"gutenblock gutenblock--oms-faqs bg-color-gray\">\n        <div class=\"gutenblock-inner\">\n            <div class=\"container-fluid\">\n\n                    <div class=\"gutenblock-header \">\n        <div class=\"row header_row justify-content-center\">\n            <div class=\"header_column\">\n                <p class=\"pre-title\">Domande frequenti<\/p>\n<h2>Esplora le domande pi\u00f9 frequenti sui banchi di prova<\/h2>\n<p><a class=\"cta-link\" href=\"https:\/\/www.datacolor.com\/it\/soluzioni-aziendali\/assistenza-clienti\/faq\/\">Vedi tutte le domande frequenti<\/a><\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n\n                \n            <\/div>\n        <\/div>\n    <\/section><section id=\"gutenblock-block_3e63ea2cfa3083fa262bb038274aeb92\" class=\"gutenblock gutenblock--oms-image-text bg-color-white image-position-overlap layout-image-text gutenblock-5050\">\n        <div class=\"gutenblock-inner\">\n            <div class=\"container-fluid\">\n\n                \n                                    <div class=\"row l-image-pb__row justify-content-center\">\n\n                                                        <div class=\"l-image-pb__col l-image-pb__col--image col-12 col-md-10 col-lg-6\">\n                                    <figure class=\"pb-image pb-image--stylized\"><img decoding=\"async\" width=\"735\" height=\"459\" src=\"https:\/\/www.datacolor.com\/wp-content\/uploads\/2024\/07\/woman-using-spectrophotometer-735x459.jpg\" class=\"pb-image__image\" alt=\"\" srcset=\"https:\/\/www.datacolor.com\/wp-content\/uploads\/2024\/07\/woman-using-spectrophotometer-735x459.jpg 735w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2024\/07\/woman-using-spectrophotometer-300x188.jpg 300w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2024\/07\/woman-using-spectrophotometer-768x480.jpg 768w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2024\/07\/woman-using-spectrophotometer-600x375.jpg 600w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2024\/07\/woman-using-spectrophotometer-350x219.jpg 350w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2024\/07\/woman-using-spectrophotometer-700x438.jpg 700w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2024\/07\/woman-using-spectrophotometer-100x63.jpg 100w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2024\/07\/woman-using-spectrophotometer-40x25.jpg 40w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2024\/07\/woman-using-spectrophotometer-280x175.jpg 280w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2024\/07\/woman-using-spectrophotometer.jpg 800w\" sizes=\"(max-width: 735px) 100vw, 735px\" \/><\/figure>                                <\/div>\n                                                            <div class=\"l-image-pb__col l-image-pb__col--text col-12 col-md-10 col-lg-6\">\n                                    <div class=\"image-pb__text\">\n                                        <h2>Scopri le nozioni di base sugli spettrofotometri<\/h2>\n<p>Perch\u00e9 sono importanti in un contesto di produzione industriale? Quali sono le migliori pratiche per le tecniche di misurazione, le procedure operative standard e l&#8217;ambiente? Scopri tutto questo e molto altro ancora.  <\/p>\n<p><a class=\"btn-primary\" href=\"https:\/\/www.datacolor.com\/it\/soluzioni-aziendali\/spettrofotometri\/\" target=\"_blank\" rel=\"noopener\">Ottenere le intuizioni<\/a><\/p>\n                                    <\/div>\n                                <\/div>\n                            \n                    <\/div>\n                \n                \n\n            <\/div>\n        <\/div>\n    <\/section><section id=\"gutenblock-block_b565dbc17ace19c2c221d7e1a0692402\" class=\"gutenblock gutenblock--oms-cta \">\n\n        <img decoding=\"async\" width=\"1600\" height=\"500\" src=\"https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/hero-footer-colorcantwait-1600x500-1-1600x500.jpg\" class=\"bg_image\" alt=\"\" srcset=\"https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/hero-footer-colorcantwait-1600x500-1.jpg 1600w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/hero-footer-colorcantwait-1600x500-1-300x94.jpg 300w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/hero-footer-colorcantwait-1600x500-1-1024x320.jpg 1024w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/hero-footer-colorcantwait-1600x500-1-768x240.jpg 768w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/hero-footer-colorcantwait-1600x500-1-1536x480.jpg 1536w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/hero-footer-colorcantwait-1600x500-1-600x188.jpg 600w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/hero-footer-colorcantwait-1600x500-1-992x310.jpg 992w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/hero-footer-colorcantwait-1600x500-1-1200x375.jpg 1200w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/hero-footer-colorcantwait-1600x500-1-1000x313.jpg 1000w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/hero-footer-colorcantwait-1600x500-1-350x109.jpg 350w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/hero-footer-colorcantwait-1600x500-1-735x230.jpg 735w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/hero-footer-colorcantwait-1600x500-1-700x219.jpg 700w, https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/01\/hero-footer-colorcantwait-1600x500-1-100x31.jpg 100w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/>\n        <div class=\"gutenblock-inner\">\n\n            <div class=\"container-fluid l-cta__container\">\n\n                <div class=\"row l-cta__row l-cta__row--middle\">\n\n                    <div class=\"col-12 col-lg-6 l-cta__col\">\n                        <div class=\"cta__content text-white\">\n\n\t\t\t    <h3>Avete ancora bisogno di aiuto per decidere?<\/h3>\n<p>Mandaci un messaggio: il colore non pu\u00f2 aspettare.<\/p>\n\n                                                            <div class=\"cta_links_container mt-4\">\n                                    <a href=\"https:\/\/www.datacolor.com\/it\/soluzioni-aziendali\/richiesta-di-informazioni-sul-prodotto\/\" target=\"\" class=\"cta_link btn-secondary\">Parla con uno Specialista Datacolor<\/a>                                <\/div>\n                            \n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/section>","protected":false},"excerpt":{"rendered":"<p>Confronta i Banchi Hai bisogno di aiuto? Contattaci Spectro 1000 di Datacolor Scarica la scheda tecnica Datacolor Spectro 1050 Scarica la scheda tecnica Datacolor Spectro 1000V Scarica la scheda tecnica&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":165787,"menu_order":13,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"186252,186636,186992,166171,166191,166139","_relevanssi_noindex_reason":"","footnotes":""},"class_list":["post-188340","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Confronto tra i prodotti dello spettrofotometro da banco | Datacolor<\/title>\n<meta name=\"description\" content=\"Scopri qual \u00e8 lo spettrofotometro da banco pi\u00f9 adatto alle tue esigenze di gestione del colore! Parlate con uno specialista del colore oggi stesso!\" \/>\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.datacolor.com\/it\/soluzioni-aziendali\/soluzioni-per-la-gestione-del-colore\/banco\/compare\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Confronto tra i prodotti dello spettrofotometro da banco | Datacolor\" \/>\n<meta property=\"og:description\" content=\"Scopri qual \u00e8 lo spettrofotometro da banco pi\u00f9 adatto alle tue esigenze di gestione del colore! Parlate con uno specialista del colore oggi stesso!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.datacolor.com\/it\/soluzioni-aziendali\/soluzioni-per-la-gestione-del-colore\/banco\/compare\/\" \/>\n<meta property=\"og:site_name\" content=\"Datacolor\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/DatacolorCorporate\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-11T09:48:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/04\/700x700-Product-Spectro-1000-368x476.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minuti\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Confronto tra i prodotti dello spettrofotometro da banco | Datacolor","description":"Scopri qual \u00e8 lo spettrofotometro da banco pi\u00f9 adatto alle tue esigenze di gestione del colore! Parlate con uno specialista del colore oggi stesso!","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.datacolor.com\/it\/soluzioni-aziendali\/soluzioni-per-la-gestione-del-colore\/banco\/compare\/","og_locale":"it_IT","og_type":"article","og_title":"Confronto tra i prodotti dello spettrofotometro da banco | Datacolor","og_description":"Scopri qual \u00e8 lo spettrofotometro da banco pi\u00f9 adatto alle tue esigenze di gestione del colore! Parlate con uno specialista del colore oggi stesso!","og_url":"https:\/\/www.datacolor.com\/it\/soluzioni-aziendali\/soluzioni-per-la-gestione-del-colore\/banco\/compare\/","og_site_name":"Datacolor","article_publisher":"https:\/\/facebook.com\/DatacolorCorporate","article_modified_time":"2026-06-11T09:48:26+00:00","og_image":[{"url":"https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/04\/700x700-Product-Spectro-1000-368x476.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Tempo di lettura stimato":"5 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.datacolor.com\/it\/soluzioni-aziendali\/soluzioni-per-la-gestione-del-colore\/banco\/compare\/","url":"https:\/\/www.datacolor.com\/it\/soluzioni-aziendali\/soluzioni-per-la-gestione-del-colore\/banco\/compare\/","name":"Confronto tra i prodotti dello spettrofotometro da banco | Datacolor","isPartOf":{"@id":"https:\/\/www.datacolor.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.datacolor.com\/it\/soluzioni-aziendali\/soluzioni-per-la-gestione-del-colore\/banco\/compare\/#primaryimage"},"image":{"@id":"https:\/\/www.datacolor.com\/it\/soluzioni-aziendali\/soluzioni-per-la-gestione-del-colore\/banco\/compare\/#primaryimage"},"thumbnailUrl":"https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/04\/700x700-Product-Spectro-1000-368x476.png","datePublished":"2022-01-24T21:26:10+00:00","dateModified":"2026-06-11T09:48:26+00:00","description":"Scopri qual \u00e8 lo spettrofotometro da banco pi\u00f9 adatto alle tue esigenze di gestione del colore! Parlate con uno specialista del colore oggi stesso!","breadcrumb":{"@id":"https:\/\/www.datacolor.com\/it\/soluzioni-aziendali\/soluzioni-per-la-gestione-del-colore\/banco\/compare\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.datacolor.com\/it\/soluzioni-aziendali\/soluzioni-per-la-gestione-del-colore\/banco\/compare\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.datacolor.com\/it\/soluzioni-aziendali\/soluzioni-per-la-gestione-del-colore\/banco\/compare\/#primaryimage","url":"https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/04\/700x700-Product-Spectro-1000-368x476.png","contentUrl":"https:\/\/www.datacolor.com\/wp-content\/uploads\/2022\/04\/700x700-Product-Spectro-1000-368x476.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.datacolor.com\/it\/soluzioni-aziendali\/soluzioni-per-la-gestione-del-colore\/banco\/compare\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Soluzioni di business","item":"https:\/\/www.datacolor.com\/it\/soluzioni-aziendali\/"},{"@type":"ListItem","position":2,"name":"Soluzioni di gestione del colore","item":"https:\/\/www.datacolor.com\/it\/soluzioni-aziendali\/soluzioni-per-la-gestione-del-colore\/"},{"@type":"ListItem","position":3,"name":"Spettrofotometri da banco"}]},{"@type":"WebSite","@id":"https:\/\/www.datacolor.com\/it\/#website","url":"https:\/\/www.datacolor.com\/it\/","name":"Datacolor","description":"Color Management Solutions","publisher":{"@id":"https:\/\/www.datacolor.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.datacolor.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/www.datacolor.com\/it\/#organization","name":"Datacolor","url":"https:\/\/www.datacolor.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.datacolor.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/www.datacolor.com\/wp-content\/uploads\/2021\/12\/logo-header.jpg","contentUrl":"https:\/\/www.datacolor.com\/wp-content\/uploads\/2021\/12\/logo-header.jpg","width":259,"height":45,"caption":"Datacolor"},"image":{"@id":"https:\/\/www.datacolor.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/DatacolorCorporate","https:\/\/linkedin.com\/company\/datacolor","https:\/\/www.youtube.com\/user\/DatacolorIndustrial"]}]}},"_links":{"self":[{"href":"https:\/\/www.datacolor.com\/it\/wp-json\/wp\/v2\/pages\/188340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.datacolor.com\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.datacolor.com\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.datacolor.com\/it\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.datacolor.com\/it\/wp-json\/wp\/v2\/comments?post=188340"}],"version-history":[{"count":5,"href":"https:\/\/www.datacolor.com\/it\/wp-json\/wp\/v2\/pages\/188340\/revisions"}],"predecessor-version":[{"id":188351,"href":"https:\/\/www.datacolor.com\/it\/wp-json\/wp\/v2\/pages\/188340\/revisions\/188351"}],"up":[{"embeddable":true,"href":"https:\/\/www.datacolor.com\/it\/wp-json\/wp\/v2\/pages\/165787"}],"wp:attachment":[{"href":"https:\/\/www.datacolor.com\/it\/wp-json\/wp\/v2\/media?parent=188340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}