{"product_id":"canon-ef-s-60mm-f-2-8","title":"Canon EF-S 60mm f\/2.8 Macro USM","description":"\u003cp\u003e\u003cmeta charset=\"UTF-8\"\u003e \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\u003c\/p\u003e\n\u003cstyle\u003e\n        \/* GENERAL STYLES *\/\n        .sezione-info {\n            color: #404040;\n            padding: 8px 0;\n            font-size: 14px;\n        }\n        .area-info-badge {\n            background-color: #fcf8e3;\n            border: 1px solid #e0d8c0;\n            border-radius: 8px;\n            padding: 8px 10px;\n            margin-bottom: 10px;\n            \/* ADDED: Orange bottom border for the \"small space\" *\/\n            border-bottom: 4px solid #ffcb3c; \n        }\n\n        \/* New style for the orange circle around the emoji or image *\/\n        .emoji-cerchio-arancione {\n            display: inline-flex; \/* Use flexbox for centering *\/\n            align-items: center;\n            justify-content: center;\n            width: 40px; \/* Circle size *\/\n            height: 40px; \/* Circle size *\/\n            background-color: #ffcb3c; \/* Orange background *\/\n            border-radius: 50%; \/* Makes the container a circle *\/\n            margin-right: 12px; \/* Adjusted right margin *\/\n            vertical-align: middle; \n            flex-shrink: 0; \n        }\n\n        .emoji-arancione {\n            color: #404040;\n            font-size: 24px; \/* Increased emoji size to fit in the circle *\/\n        }\n        \n        \/* Style for the icon image (for shots) *\/\n        .icona-scatti-img {\n            width: 24px; \/* Adjust the image size within the circle *\/\n            height: auto;\n            display: block;\n        }\n\n        .titolo-label {\n            font-weight: bold;\n            color: #404040;\n            font-size: 18px;\n            display: inline;\n            vertical-align: middle;\n        }\n        \/* Ensures pointer on all clickable elements *\/\n        .valore-cliccabile, .link-dettagli, .pulsante-base, .link-garanzia-popup {\n            cursor: pointer;\n        }\n\n        \/* The values 12 months, 30 days and 1,250 shots now share the same style *\/\n        .valore-cliccabile, .valore-fisso {\n            font-weight: bold;\n            color: #000000;\n            font-size: 18px; \/* ALL AT 18px *\/\n            margin-left: 5px;\n            vertical-align: middle;\n        }\n\n        \/* UPDATED AND REALIGNED STYLE FOR \"further details\" *\/\n        .link-dettagli {\n            font-weight: normal;\n            text-decoration: underline;\n            color: #777; \/* Slightly softer color *\/\n            font-size: 12px; \/* FURTHER SMALLER *\/\n            display: block;\n            margin-top: 4px;\n            \/* RECALCULATED TO ALIGN UNDER THE FIRST LETTER OF THE TITLE *\/\n            margin-left: -4px; \n            padding-left: 65px; \n            transition: color 0.3s ease;\n            cursor: pointer !important; \n        }\n        .link-dettagli:hover { color: #aaa; }\n        .badge-condizione {\n            background-color: #fff7e6;\n            border: 1px solid #8c6f21;\n            border-radius: 12px;\n            padding: 4px 10px;\n            display: inline-block;\n            line-height: 1;\n        }\n        \n        \/* \"CONTROLS PERFORMED\" TEXT (NO LONGER TOUCHED) *\/\n        .testo-fisso {\n            font-weight: normal;\n            font-size: 14px;\n            margin-left: 58px; \n            margin-top: 4px;\n        }\n        \n        \/* Increased to better fit the new font size of the pop-up *\/\n        .highlight-bold { \n            font-weight: bold; \n            font-size: 22px; \n        }\n        \n        \/* Return Layout: Default Mobile *\/\n        .descrizione-reso {\n            padding-left: 58px; \n            margin-top: 4px;\n            line-height: 1.4;\n        }\n        .riga-reso {\n            display: block;\n            font-size: 14px;\n            color: #404040;\n            margin-top: 4px;\n        }\n        .riga-principale-reso-container {\n            display: flex;\n            align-items: center;\n            \/* UPDATED MODIFICATION: Move the entire return row slightly to the right *\/\n            margin-left: 6px; \n        }\n\n        .highlight-bold.soddisfatto {\n            font-size: 16px; \n            display: block;\n            margin-top: 8px !important;\n        }\n\n        \/* POP-UP STYLES *\/\n        .modal { display: none; position: fixed; z-index: 10; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.6); opacity: 0; transition: opacity 0.3s ease-out; }\n        .modal.is-open { opacity: 1; display: block; }\n        .modal-content { \n            background-color: #fefefe; \n            padding: 10px; \n            border-radius: 10px; \n            width: 85%; \n            max-width: 620px; \/* Set to 620px *\/\n            position: absolute; \n            top: 50%; \n            left: 50%; \n            transform: translate(-50%, -50%); \n            max-height: 90vh; \n            overflow-y: auto; \n        }\n        .modal-header { \n            display: flex; \n            justify-content: space-between; \n            align-items: flex-start; \n             \/* MODIFICATION: Reduced margin below header to 2px *\/\n            margin-bottom: 2px; \n        }\n        .pulsante-base { background-color: #FFFFFF; border: 1px solid #8c6f21; color: #8c6f21; font-weight: bold; border-radius: 50px; padding: 10px 20px; transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease; }\n        .pulsante-base:hover { background-color: #ffcb3c; border-color: #ffcb3c; color: #000000; }\n        .close-button.pulsante-base { padding: 5px 10px; font-size: 20px; line-height: 1; height: 40px; width: 40px; display: flex; align-items: center; justify-content: center; }\n        #modalTitle { \n            \/* MODIFICATION: Much larger title *\/\n            font-size: 32px; \n            font-weight: bold; \n            color: #8c6f21; \n            text-align: center;\n            width: 100%; \n        }\n        \/* Added: Style for normal pop-up text *\/\n        .modal-content p {\n            font-size: 18px;\n            line-height: 1.4;\n        }\n        .custom-list-item { display: flex; align-items: flex-start; line-height: 1.2; margin-bottom: 2px; }\n        \/* Increased text size of the bulleted list in the pop-up *\/\n        .custom-list-text {\n            font-size: 16px;\n        }\n        .custom-list-bullet { margin-right: 0.5em; flex-shrink: 0; }\n        .modal-content .link-garanzia-popup { display: block; margin-top: 15px; text-decoration: underline; color: #8c6f21; font-size: 16px; }\n        \n        \/* MEDIA QUERY FOR PC (Desktop\/Tablet \u003e 768px) *\/\n        @media only screen and (min-width: 768px) {\n            \n            \/* Return Text aligned with Controls at 58px *\/\n            .testo-fisso, .descrizione-reso {\n                 margin-left: 58px; \n                 padding-left: 0;\n            }\n            \n            .highlight-bold.soddisfatto { margin-left: 0 !important; }\n            \/* Removes the previously added margin, if on desktop it should be aligned *\/\n            .riga-principale-reso-container { margin-left: 6px; } \n            \n            \/* On desktop, align \"further details\" under the first letter of the title *\/\n            .link-dettagli {\n                 margin-left: -4px;\n                 padding-left: 65px;\n            }\n        }\n\n        \/* ADDITIONAL STYLES FOR \"YOU WILL RECEIVE\" LIST (Unchanged) *\/\n        .lista-inclusi { list-style-type: none; padding-left: 0; margin-top: 8px; margin-left: 48px; }\n        .lista-inclusi li { position: relative; padding-left: 20px; margin-bottom: 4px; line-height: 1.4; font-size: 14px; }\n        .lista-inclusi li::before { content: '•'; position: absolute; left: 0; top: 0; color: #8c6f21; font-size: 18px; line-height: 1; }\n        \n        \/* PROPOSED SOLUTION: Override Shopify theme CSS that might add a gray border *\/\n        .area-info-badge, \n        .emoji-cerchio-arancione, \n        .emoji-cerchio-arancione img,\n        .badge-condizione {\n            border-color: transparent !important;\n        }\n    \u003c\/style\u003e\n\u003c!-- Main container for specifications --\u003e\n\u003cdiv\u003e\n\u003c!-- 1. CONDITION --\u003e\n\u003cdiv class=\"sezione-info area-info-badge\"\u003e\n\u003cspan class=\"emoji-cerchio-arancione\"\u003e\u003cspan class=\"emoji-arancione\"\u003e✨\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"titolo-label\"\u003eCondition:\u003c\/span\u003e \u003cspan class=\"valore-cliccabile badge-condizione\"\u003eExcellent\u003c\/span\u003e \u003ca class=\"link-dettagli\" data-title=\"Condition\" data-content=\"Every photo and product description is real: you will receive exactly what you see in the photo and description. The condition assessment is carried out by our specialized technician between “Like New”, “Excellent”, “Good”, “Heavily Used” and “Fair”.\n\n              This item is “Excellent”, meaning it has:\n\n• Lens: Free of scratches, mold or dust;\n• Focus ring: Smooth and in excellent operating condition.\n• Mount and barrel: Shows slight and localized signs of cosmetic wear (surface scratches).\"\u003e further details \u003c\/a\u003e\n\u003c\/div\u003e\n\u003c!-- 3. YOU WILL RECEIVE (with gift EMOJI) --\u003e\n\u003cdiv class=\"sezione-info area-info-badge\"\u003e\n\u003cspan class=\"emoji-cerchio-arancione\"\u003e \u003c!-- Using the gift emoji as requested --\u003e \u003cspan class=\"emoji-arancione\"\u003e🎁\u003c\/span\u003e \u003c\/span\u003e \u003cspan class=\"titolo-label\"\u003eIncluded:\u003c\/span\u003e\n\u003cul class=\"lista-inclusi\"\u003e\n\u003cli\u003e52mm front lens cap\u003c\/li\u003e\n\u003cli\u003eRear lens cap - EF mount\u003c\/li\u003e\n\u003cli\u003eOriginal packaging\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c!-- 7. CONTROLS --\u003e\n\u003cdiv class=\"sezione-info area-info-badge\"\u003e\n\u003cspan class=\"emoji-cerchio-arancione\"\u003e\u003cspan class=\"emoji-arancione\"\u003e✅\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"titolo-label\"\u003eVerification performed:\u003c\/span\u003e\n\u003cdiv class=\"testo-fisso\"\u003eThis item has passed all 18 tests of the Scatta l’Attimo Protocol.\u003c\/div\u003e\n\u003ca data-content=\"Every product undergoes rigorous checks carried out by our expert technician:\n       \u0026lt;br\u0026gt;• \u0026lt;b\u0026gt;Lens cleaning and mold verification\u0026lt;\/b\u0026gt;\n       \u0026lt;br\u0026gt;• \u0026lt;b\u0026gt;Diaphragm and ring mechanics\u0026lt;\/b\u0026gt;\n       \u0026lt;br\u0026gt;• \u0026lt;b\u0026gt;Autofocus and Stabilization\u0026lt;\/b\u0026gt;\n       \u0026lt;br\u0026gt;• \u0026lt;b\u0026gt;Electronic contact check\u0026lt;\/b\u0026gt;\n       \u0026lt;br\u0026gt;\u0026lt;b\u0026gt;A professional technical check guaranteed on all our lenses.\u0026lt;\/b\u0026gt;\n       \u0026lt;br\u0026gt;\u0026lt;br\u0026gt;If you want to see all the complete tests performed on this lens:\n       \u0026lt;br\u0026gt;\u0026lt;a href='https:\/\/scattalattimo.it\/pages\/la-garanzia-di-scatta-lattimo' target='_blank' style='color:#8c6f21; font-weight:bold; text-decoration:underline;'\u0026gt;CLICK HERE, SCROLL TO THE END AND DISCOVER THE 18 POINTS\u0026lt;\/a\u0026gt;\" data-title=\"18 Test Protocol\" class=\"link-dettagli link-test-pos\"\u003efind out more about the tests performed\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c!-- 4. OPTIMIZED SHIPPING --\u003e\n\u003cdiv class=\"sezione-info area-info-badge\"\u003e\n\u003cdiv class=\"riga-principale-reso-container\"\u003e\n\u003cspan class=\"emoji-cerchio-arancione\"\u003e\u003cspan class=\"emoji-arancione\"\u003e🚚\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"titolo-label\"\u003eShipping:\u003c\/span\u003e \u003cspan class=\"valore-fisso\"\u003e\u003cstrong\u003eFree and Insured\u003c\/strong\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"descrizione-reso\"\u003e\u003cspan class=\"riga-reso\"\u003eExpress delivery in \u003cstrong\u003e48\/72h\u003c\/strong\u003e throughout Italy.\u003c\/span\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- 5. FINAL RETURN --\u003e\n\u003cdiv class=\"sezione-info area-info-badge\"\u003e\n\u003cdiv class=\"riga-principale-reso-container\"\u003e\n\u003cspan class=\"emoji-cerchio-arancione\"\u003e\u003cspan class=\"emoji-arancione\"\u003e🔄\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"titolo-label\"\u003eReturn:\u003c\/span\u003e \u003cspan class=\"valore-fisso\"\u003e\u003cstrong\u003eFree within 30 Days\u003c\/strong\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"descrizione-reso\"\u003e\n\u003cspan class=\"riga-reso\"\u003eIf the product does not meet your expectations, the refund is \u003cstrong\u003efull\u003c\/strong\u003e.\u003c\/span\u003e \u003cspan class=\"riga-reso highlight-bold soddisfatto\"\u003e100% Satisfied or Your Money Back\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- MODAL STRUCTURE --\u003e\n\u003cdiv id=\"infoModal\" class=\"modal\"\u003e\n\u003cdiv class=\"modal-content\"\u003e\n\u003cdiv class=\"modal-header\"\u003e\n\u003ch3 id=\"modalTitle\"\u003e\u003c\/h3\u003e\n\u003cbutton id=\"closeButtonX\" class=\"close-button pulsante-base\"\u003e×\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cp id=\"modalContent\"\u003e\u003c\/p\u003e\n\u003cdiv style=\"text-align: center; margin-top: 15px;\"\u003e\u003cbutton id=\"btnCapito\" class=\"pulsante-base\"\u003eGot it\u003c\/button\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n    document.addEventListener('DOMContentLoaded', () =\u003e {\n        const modal = document.getElementById(\"infoModal\");\n        const modalTitle = document.getElementById(\"modalTitle\");\n        const modalContent = document.getElementById(\"modalContent\");\n        const closeButtonX = document.getElementById(\"closeButtonX\");\n        const btnCapito = document.getElementById(\"btnCapito\");\n\n        function openModal(title, content) {\n            modalTitle.innerHTML = title;\n            \n            \/\/ Apply dynamic formatting to the text\n            let formatted = content.replace(\/(“Eccellente”|Garanzia Gratuita di 12 mesi di Scatta l’Attimo)\/g, '\u003cspan class=\"highlight-bold condition-value badge-condizione\"\u003e$1\u003c\/span\u003e')\n                                   .replace(\/(30 giorni dalla ricezione|12 mesi|bonus del 30%)\/g, '\u003cspan class=\"highlight-bold\"\u003e$1\u003c\/span\u003e')\n                                   .replace(\/(Guasti improvvisi)\/g, '▪️ $1')\n                                   .replace(\/(Difetti di conformità)\/g, '▪️ $1')\n                                   .replace(\/(La garanzia copre:)\\n\/g, '$1\u003cbr\u003e\u003cbr\u003e')\n                                   .replace(\/▪️ ([^\\n]+)\/g, '\u003cspan class=\"custom-list-item\"\u003e\u003cspan class=\"custom-list-bullet\"\u003e▪️\u003c\/span\u003e\u003cspan class=\"custom-list-text\"\u003e$1\u003c\/span\u003e\u003c\/span\u003e')\n                                   .replace(\/\\n\/g, '\u003cbr\u003e');\n\n            \/\/ Insert the formatted content (including existing A tags in data-content) into the DOM\n            modalContent.innerHTML = formatted;\n            \n            modal.classList.add('is-open'); \n        }\n\n        function closeModal() {\n            modal.classList.remove('is-open');\n        }\n\n        document.querySelectorAll('.link-dettagli, .valore-cliccabile').forEach(el =\u003e {\n            el.addEventListener('click', (e) =\u003e {\n                const container = e.target.closest('.sezione-info');\n                \n                \/\/ Prevents the modal from opening if clicking on the Return (which has a fixed value)\n                if (container \u0026\u0026 container.querySelector('.titolo-label').innerText.includes('Reso')) {\n                    return;\n                }\n\n                let link = e.target.classList.contains('link-dettagli') ? e.target : container.querySelector('.link-dettagli');\n\n                \/\/ Handles clicking on the \"12 months\" value to open the warranty modal\n                if (!link \u0026\u0026 e.target.classList.contains('valore-cliccabile') \u0026\u0026 container.querySelector('.titolo-label').innerText.includes('Garanzia')) {\n                    link = container.querySelector('.link-dettagli');\n                }\n                \n                if (link) {\n                    openModal(link.dataset.title, link.dataset.content);\n                }\n            });\n        });\n\n        closeButtonX.onclick = closeModal;\n        btnCapito.onclick = closeModal;\n\n        \/\/ Close the modal by clicking outside\n        window.onclick = (e) =\u003e { \n            if (e.target == modal) closeModal(); \n        };\n    });\n    \u003c\/script\u003e\n\u003c\/div\u003e","brand":"Canon","offers":[{"title":"12 months (Standard)","offer_id":53664218382677,"sku":"329292","price":340.0,"currency_code":"EUR","in_stock":false},{"title":"24 months (Double Protection)","offer_id":53664218415445,"sku":"329292","price":385.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0968\/6555\/0677\/files\/Canon_EF-S_60mm_f_2.8_Macro_USM..jpg?v=1775341027","url":"https:\/\/scattalattimo.it\/en-gb\/products\/canon-ef-s-60mm-f-2-8","provider":"Scatta l'Attimo","version":"1.0","type":"link"}