{"product_id":"filtro-a-densita-neutra-variabile-gobe-da-67mm","title":"Gobe 67mm Variable Neutral Density Filter","description":"\u003cbody\u003e\n\n\u003cscript\u003e\ndocument.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    const modalInnerContent = document.querySelector('.modal-content');\n\n\n    \/\/ FUNCTION ADDED FOR MANUAL CENTERING VIA JAVASCRIPT\n    function centerModal() {\n        \/\/ Set the black container to cover the entire screen immediately\n        modal.style.position = 'fixed';\n        modal.style.top = '0px';\n        modal.style.left = '0px';\n        modal.style.width = '100vw';\n        modal.style.height = '100vh';\n        \n        \/\/ Force the white box to center with the CSS trick\n        modalInnerContent.style.position = 'absolute';\n        modalInnerContent.style.top = '50%';\n        modalInnerContent.style.left = '50%';\n        modalInnerContent.style.transform = 'translate(-50%, -50%)';\n    }\n\n\n    function openModal(title, content) {\n        modalTitle.innerHTML = title;\n        \n        \/\/ ... (your innerHTML formatting code goes here) ...\n        let formatted = content.replace(\/(“Excellent”|12-Month Free Warranty from Scatta l’Attimo)\/g, '\u003cspan class=\"highlight-bold condition-value badge-condizione\"\u003e$1\u003c\/span\u003e')\n                               .replace(\/(30 days from receipt|12 months|30% bonus)\/g, '\u003cspan class=\"highlight-bold\"\u003e$1\u003c\/span\u003e')\n                               .replace(\/(Sudden breakdowns)\/g, '▪️ $1')\n                               .replace(\/(Defects of conformity)\/g, '▪️ $1')\n                               .replace(\/(The warranty covers:)\\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        modalContent.innerHTML = formatted;\n        \n        \/\/ Before showing, force centering\n        centerModal(); \n        modal.classList.add('is-open'); \n    }\n\n    function closeModal() {\n        modal.classList.remove('is-open');\n        \/\/ Reset position when closed so it doesn't interfere with anything else\n        modal.style.position = 'fixed'; \n    }\n    \n    \/\/ Add a listener to recalculate the center if the user resizes the window\n    window.addEventListener('resize', centerModal);\n\n    \/\/ ... (the rest of your click script goes below) ...\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            if (container \u0026\u0026 container.querySelector('.titolo-label').innerText.includes('Return')) { return; }\n            let link = e.target.classList.contains('link-dettagli') ? e.target : container.querySelector('.link-dettagli');\n            if (!link \u0026\u0026 e.target.classList.contains('valore-cliccabile') \u0026\u0026 container.querySelector('.titolo-label').innerText.includes('Warranty')) {\n                link = container.querySelector('.link-dettagli');\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    window.onclick = function(event) {\n        if (event.target == modal) {\n            closeModal();\n        }\n    }\n});\n\u003c\/script\u003e\n\n\n\n\n\n    \u003cmeta charset=\"UTF-8\"\u003e\n    \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n    \u003ctitle\u003eScatta l'Attimo Product Specifications\u003c\/title\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 \"gap\" *\/\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 image size inside 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 a hand cursor 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 SHRUNK *\/\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 pop-up font size *\/\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 bulleted list text size in 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 aligned on desktop *\/\n            .riga-principale-reso-container { margin-left: 6px; } \n            \n            \/* On desktop, align \"further details\" below the first letter of the title *\/\n            .link-dettagli {\n                 margin-left: -4px;\n                 padding-left: 65px;\n            }\n        }\n\n        \/* ADDITIONAL STYLES FOR THE \"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\n\n    \u003c!-- Main container for specifications --\u003e\n    \u003cdiv\u003e\n        \n\n\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\n            \u003cspan class=\"titolo-label\"\u003eCondition:\u003c\/span\u003e\n            \u003cspan class=\"valore-cliccabile badge-condizione\"\u003eExcellent\u003c\/span\u003e\n            \u003ca class=\"link-dettagli\" data-title=\"Condition\" data-content=\"Every product photo is real: you will receive exactly what you see in the photo at home. The condition assessment is carried out by our specialized technician.\n               \n              This item is “Excellent”, meaning generally:\n\n• Aesthetic condition: any signs of wear are minimal (surface scratches)\n• Functionality: It is perfectly functional in all its parts\"\u003e\n               further details\n\n\u003c\/a\u003e\n        \u003c\/div\u003e\n\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\n                 \u003c!-- Using the gift emoji as requested --\u003e\n                \u003cspan class=\"emoji-arancione\"\u003e🎁\u003c\/span\u003e\n            \u003c\/span\u003e\n            \u003cspan class=\"titolo-label\"\u003eIncluded:\u003c\/span\u003e\n            \u003cul class=\"lista-inclusi\"\u003e\n                \u003cli\u003eGobe 67mm Variable ND Filter\u003c\/li\u003e\n \u003cli\u003eBox\u003c\/li\u003e\n          \u003c\/ul\u003e\n        \u003c\/div\u003e\n   \n\n\n  \u003c!-- 4. SHIPPING (NEW SECTION ADDED HERE) --\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\n                \u003cspan class=\"titolo-label\"\u003eShipping:\u003c\/span\u003e\n                \u003cspan class=\"valore-fisso\"\u003eFree\u003c\/span\u003e\n            \u003c\/div\u003e\n            \n            \u003cdiv class=\"descrizione-reso\"\u003e\n                \u003cspan class=\"riga-reso\"\u003e\n                    We ship with express courier throughout Italy.\n                \u003c\/span\u003e\n                \n                \u003cspan class=\"riga-reso highlight-bold soddisfatto\"\u003e\n                    Delivery in 48\/72 working hours\n                \u003c\/span\u003e\n            \u003c\/div\u003e\n        \u003c\/div\u003e\n\n\n\n\n\n\n\n\n\n\n        \u003c!-- 4. RETURN (NOW WITH ORANGE BORDER) --\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\n                \u003cspan class=\"titolo-label\"\u003eReturn:\u003c\/span\u003e\n                \u003cspan class=\"valore-fisso\"\u003e30 days\u003c\/span\u003e\n            \u003c\/div\u003e\n            \n            \u003cdiv class=\"descrizione-reso\"\u003e\n                \u003cspan class=\"riga-reso\"\u003e\n                    If the item does not match the description, you can return it for a full refund within 30 days of receipt.\n                \u003c\/span\u003e\n                \n                \u003cspan class=\"riga-reso highlight-bold soddisfatto\"\u003e\n                    100% satisfied or your money back\n                \u003c\/span\u003e\n            \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003c!-- 5. WARRANTY (UPDATED AND INDENTED TEXT) --\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\n            \u003cspan class=\"titolo-label\"\u003eWarranty:\u003c\/span\u003e\n            \u003cspan class=\"valore-cliccabile\"\u003e12 months\u003c\/span\u003e\n             \u003ca class=\"link-dettagli\" data-title=\"Warranty\" data-content=\"The item is covered by Scatta l’Attimo's 12-Month Free Warranty. \n               The warranty covers:\n               Sudden breakdowns (excluding those caused by accidental drops, improper use, or negligence).\n               Defects of conformity (when the product does not match the description or does not work as expected).\n                 \n                 \u0026lt;a href='https:\/\/scattalattimo.it' class='link-garanzia-popup' target='_blank'\u0026gt;You can consult the complete warranty conditions.\u0026lt;\/a\u0026gt;\"\u003e\n               further details\n            \u003c\/a\u003e\n        \u003c\/div\u003e\n        \n        \u003c!-- 6. 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\n            \u003cspan class=\"titolo-label\"\u003eControls performed:\u003c\/span\u003e\n            \u003cdiv class=\"testo-fisso\"\u003eThis item has been carefully cleaned and checked.\u003c\/div\u003e\n        \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\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\n            \u003cbutton id=\"btnCapito\" class=\"pulsante-base\"\u003eGot It\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\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(\/(“Excellent”|12-Month Free Warranty from Scatta l’Attimo)\/g, '\u003cspan class=\"highlight-bold condition-value badge-condizione\"\u003e$1\u003c\/span\u003e')\n                                   .replace(\/(30 days from receipt|12 months|30% bonus)\/g, '\u003cspan class=\"highlight-bold\"\u003e$1\u003c\/span\u003e')\n                                   .replace(\/(Sudden breakdowns)\/g, '▪️ $1')\n                                   .replace(\/(Defects of conformity)\/g, '▪️ $1')\n                                   .replace(\/(The warranty covers:)\\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 the A tags already present 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 \"Return\" (which has a fixed value)\n                if (container \u0026\u0026 container.querySelector('.titolo-label').innerText.includes('Return')) {\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('Warranty')) {\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003c\/body\u003e","brand":"Scatta l'Attimo","offers":[{"title":"12 months (Standard)","offer_id":53676544983381,"sku":"899797","price":24.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0968\/6555\/0677\/files\/4de534df-86d7-45dd-ac97-ad44fbb3d65c.jpg?v=1769042624","url":"https:\/\/scattalattimo.it\/en-gb\/products\/filtro-a-densita-neutra-variabile-gobe-da-67mm","provider":"Scatta l'Attimo","version":"1.0","type":"link"}