{"id":20346,"date":"2025-11-01T12:49:54","date_gmt":"2025-11-01T12:49:54","guid":{"rendered":"https:\/\/handson.pt\/?page_id=20346"},"modified":"2025-11-25T10:33:15","modified_gmt":"2025-11-25T10:33:15","slug":"perfect-experience-to-gift-in-2025","status":"publish","type":"page","link":"https:\/\/handson.pt\/pt\/perfect-experience-to-gift-in-2025\/","title":{"rendered":"Experi\u00eancia perfeita para oferecer em 2025"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"20346\" class=\"elementor elementor-20346\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-51a3799 e-flex e-con-boxed e-con e-parent\" data-id=\"51a3799\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b0379a1 elementor-widget elementor-widget-html\" data-id=\"b0379a1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Workshop Gift Picker<\/title>\n   <style>\n        html { scroll-behavior: smooth; }\n        * { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }\n        body {\n            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n            line-height: 1.5;\n            color: #333;\n            background: #FFF7ED;\n            min-height: 100vh;\n            padding: 0;\n            position: relative;\n            overflow-x: hidden;\n            font-size: 16px;\n        }\n        .container { max-width: 896px; margin: 0 auto; padding: 12px; position: relative; z-index: 1; }\n        @media (min-width: 641px) { .container { padding: 16px; } }\n        \n        .card { background: white; border-radius: 20px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); padding: 20px 16px; position: relative; overflow: hidden; }\n        @media (min-width: 641px) { .card { padding: 40px; border-radius: 24px; } }\n        \n        .logo-container { text-align: center; margin-bottom: 12px; padding-bottom: 0; }\n        .logo { max-height: 36px; width: auto; display: inline-block; opacity: 0.9; }\n        @media (min-width: 641px) { .logo { max-height: 50px; } .logo-container { margin-bottom: 16px; } }\n        \n        .progress-container { margin-bottom: 20px; }\n        .progress-bar { width: 100%; height: 6px; background: #E5E7EB; border-radius: 9999px; overflow: hidden; }\n        .progress-fill { height: 100%; background: #EB6038; transition: width 0.5s ease-out; }\n        .progress-text { margin-top: 6px; font-size: 12px; color: #6B7280; text-align: right; font-weight: 500; }\n        \n        h1 { font-size: 26px; font-weight: bold; text-align: center; margin-bottom: 8px; color: #1F2937; line-height: 1.25; }\n        h2 { font-size: 22px; font-weight: bold; margin-bottom: 16px; line-height: 1.3; }\n        h3 { font-size: 15px; font-weight: 700; margin-bottom: 4px; line-height: 1.3; color: #1F2937; }\n        .subtitle { text-align: center; color: #6B7280; margin-bottom: 20px; font-size: 15px; line-height: 1.4; }\n        \n        @media (min-width: 641px) {\n            h1 { font-size: 32px; margin-bottom: 8px; }\n            h2 { font-size: 26px; margin-bottom: 24px; }\n            h3 { font-size: 19px; margin-bottom: 8px; }\n            .subtitle { font-size: 17px; margin-bottom: 32px; }\n        }\n        \n        .btn { font-weight: bold; padding: 13px 20px; border-radius: 10px; transition: all 0.3s; border: none; cursor: pointer; font-size: 16px; text-decoration: none; display: inline-block; text-align: center; }\n        .btn-primary { background: #EB6038; color: white; box-shadow: 0 2px 8px rgba(235, 96, 56, 0.3); }\n        .btn-primary:hover { background: #D64F29; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(235, 96, 56, 0.4); }\n        .btn-primary:active { transform: translateY(0); }\n        .btn-secondary { background: #E5E7EB; color: #1F2937; padding: 13px 20px; font-size: 16px; }\n        .btn-secondary:hover { background: #D1D5DB; }\n        .btn-block { width: 100%; display: block; }\n        \n        \/* REDESIGNED OPTION CARDS - HORIZONTAL LAYOUT *\/\n        .option-grid { display: grid; gap: 12px; margin-bottom: 24px; }\n        @media (min-width: 641px) { .option-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 32px; } }\n        \n        .option-card {\n            background: white;\n            border: 2px solid #E5E7EB;\n            border-radius: 12px;\n            padding: 14px 16px;\n            cursor: pointer;\n            transition: all 0.3s;\n            display: flex;\n            align-items: center;\n            gap: 14px;\n            text-align: left;\n        }\n        @media (min-width: 641px) { .option-card { padding: 16px 20px; } }\n        \n        .option-card:hover { border-color: #EB6038; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(235, 96, 56, 0.15); }\n        .option-card.selected { border-color: #EB6038; background: #FFF7ED; box-shadow: 0 4px 12px rgba(235, 96, 56, 0.2); }\n        .option-icon { width: 40px; height: 40px; flex-shrink: 0; }\n        @media (min-width: 641px) { .option-icon { width: 48px; height: 48px; } }\n        .option-content { flex: 1; min-width: 0; }\n        .option-title { font-weight: 700; color: #1F2937; margin-bottom: 2px; font-size: 16px; }\n        .option-desc { font-size: 13px; color: #6B7280; margin-top: 2px; }\n        \n        .checkbox-grid { display: grid; gap: 10px; margin-bottom: 24px; }\n        @media (min-width: 641px) { .checkbox-grid { gap: 12px; margin-bottom: 32px; } }\n        .checkbox-label { display: flex; align-items: center; padding: 13px 14px; background: #F9FAFB; border: 2px solid #E5E7EB; border-radius: 10px; cursor: pointer; transition: all 0.3s; font-size: 15px; }\n        .checkbox-label:hover, .checkbox-label.checked { border-color: #EB6038; background: #FFF7ED; }\n        .checkbox-input { width: 18px; height: 18px; margin-right: 11px; cursor: pointer; accent-color: #EB6038; flex-shrink: 0; }\n        \n        \/* ALWAYS 2 COLUMNS - MOBILE AND DESKTOP *\/\n        .workshop-grid { \n            display: grid; \n            grid-template-columns: repeat(2, 1fr);\n            gap: 12px; \n            margin-bottom: 24px; \n        }\n        \n        @media (min-width: 641px) { \n            .workshop-grid { \n                gap: 20px; \n                margin-bottom: 32px; \n            } \n        }\n        \n        .workshop-card {\n            background: white;\n            border: 2px solid #E5E7EB;\n            border-radius: 12px;\n            overflow: hidden;\n            transition: all 0.3s;\n            cursor: pointer;\n            position: relative;\n            display: flex;\n            flex-direction: column;\n        }\n        \n        @media (min-width: 641px) {\n            .workshop-card {\n                border-radius: 16px;\n                min-height: 480px;\n            }\n        }\n        \n        .workshop-card:active { transform: scale(0.98); }\n        \n        \/* MOBILE: Vertical card with image on top *\/\n        .workshop-image-container {\n            width: 100%;\n            height: 140px;\n            overflow: hidden;\n            position: relative;\n            background: #E5E7EB;\n            flex-shrink: 0;\n            border-radius: 10px 10px 0 0;\n            background-size: cover;\n            background-position: center;\n            background-repeat: no-repeat;\n        }\n        \n        @media (min-width: 641px) {\n            .workshop-image-container {\n                height: 280px;\n                border-radius: 14px 14px 0 0;\n                background-position: center 30%;\n            }\n        }\n        \n        .workshop-content {\n            padding: 10px 8px;\n            display: flex;\n            flex-direction: column;\n            flex-grow: 1;\n        }\n        \n        @media (min-width: 641px) {\n            .workshop-content {\n                padding: 16px;\n            }\n        }\n        \n        .workshop-title {\n            font-weight: 700;\n            font-size: 13px;\n            margin-bottom: 4px;\n            line-height: 1.2;\n            color: #1F2937;\n            display: -webkit-box;\n            -webkit-line-clamp: 2;\n            -webkit-box-orient: vertical;\n            overflow: hidden;\n            text-overflow: ellipsis;\n            word-break: break-word;\n            min-height: 32px;\n        }\n        \n        @media (min-width: 641px) {\n            .workshop-title {\n                font-size: 18px;\n                line-height: 1.35;\n                margin-bottom: 8px;\n                min-height: auto;\n            }\n        }\n        \n        .workshop-location-price {\n            display: flex;\n            flex-direction: column;\n            align-items: flex-start;\n            margin-bottom: 6px;\n            gap: 2px;\n        }\n        \n        .workshop-location {\n            color: #6B7280;\n            font-size: 11px;\n            display: flex;\n            align-items: center;\n            gap: 3px;\n            white-space: nowrap;\n            overflow: hidden;\n            text-overflow: ellipsis;\n            width: 100%;\n        }\n        \n        .workshop-location svg { width: 10px; height: 10px; flex-shrink: 0; }\n        \n        .workshop-price {\n            color: #1F2937;\n            font-size: 18px;\n            font-weight: 800;\n            white-space: nowrap;\n        }\n        \n        @media (min-width: 641px) {\n            .workshop-location { font-size: 14px; margin-bottom: 4px; }\n            .workshop-location svg { width: 14px; height: 14px; }\n            .workshop-price { font-size: 26px; }\n            .workshop-location-price { margin-bottom: 10px; gap: 4px; }\n        }\n        \n        .workshop-tags {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 4px;\n            margin-bottom: 8px;\n        }\n        \n        @media (min-width: 641px) {\n            .workshop-tags { gap: 6px; margin-bottom: 12px; }\n        }\n        \n        .tag {\n            background: #FFF7ED;\n            color: #EA580C;\n            padding: 2px 6px;\n            border-radius: 9999px;\n            font-size: 9px;\n            font-weight: 600;\n            border: 1px solid #FED7AA;\n            white-space: nowrap;\n        }\n        \n        @media (min-width: 641px) {\n            .tag { padding: 4px 10px; font-size: 11px; }\n        }\n        \n        .tag-bestseller { background: #7C3AED; color: white; border: none; }\n        \n        \/* MOBILE: Single column buttons *\/\n        .workshop-buttons {\n            display: flex;\n            flex-direction: column;\n            gap: 6px;\n            margin-top: auto;\n        }\n        \n        @media (min-width: 641px) {\n            .workshop-buttons { \n                flex-direction: row;\n                gap: 8px; \n            }\n        }\n        \n        .btn-gift {\n            background: #EB6038;\n            color: white;\n            padding: 8px 10px;\n            border-radius: 8px;\n            font-weight: 700;\n            font-size: 12px;\n            text-decoration: none;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            text-align: center;\n            transition: all 0.3s;\n            box-shadow: 0 2px 6px rgba(235, 96, 56, 0.3);\n            flex: 1;\n            cursor: pointer;\n            border: none;\n            white-space: nowrap;\n        }\n        \n        @media (min-width: 641px) {\n            .btn-gift {\n                padding: 12px 16px;\n                font-size: 14px;\n                border-radius: 10px;\n            }\n        }\n        \n        .btn-gift:active { background: #D64F29; transform: scale(0.97); }\n        \n        .btn-info {\n            background: white;\n            color: #EB6038;\n            border: 2px solid #EB6038;\n            padding: 8px 10px;\n            border-radius: 8px;\n            font-weight: 700;\n            font-size: 12px;\n            text-decoration: none;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            transition: all 0.3s;\n            cursor: pointer;\n            white-space: nowrap;\n        }\n        \n        @media (min-width: 641px) {\n            .btn-info {\n                padding: 12px 16px;\n                font-size: 14px;\n                border-radius: 10px;\n            }\n        }\n        \n        .btn-info:hover { background: #FFF7ED; }\n        \n        .gift-card-section {\n            background: #FFF7ED;\n            border: 2px solid #FED7AA;\n            border-radius: 16px;\n            padding: 20px 16px;\n            margin-bottom: 24px;\n        }\n        \n        @media (min-width: 641px) {\n            .gift-card-section { padding: 28px; border-radius: 20px; margin-bottom: 32px; }\n        }\n        \n        .gift-card-buttons { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }\n        @media (max-width: 640px) { .gift-card-buttons { grid-template-columns: repeat(2, 1fr); gap: 7px; } }\n        \n        .btn-amount {\n            background: white;\n            border: 2px solid #FB923C;\n            color: #EA580C;\n            font-weight: bold;\n            padding: 11px 6px;\n            border-radius: 10px;\n            text-decoration: none;\n            transition: all 0.3s;\n            text-align: center;\n            font-size: 15px;\n        }\n        \n        .btn-amount:hover { background: #EB6038; color: white; border-color: #EB6038; transform: translateY(-2px); }\n        \n        .btn-amount-bestseller {\n            background: #EB6038;\n            color: white;\n            border: 2px solid #D64F29;\n            box-shadow: 0 3px 10px rgba(235, 96, 56, 0.3);\n            grid-column: span 1;\n            position: relative;\n        }\n        \n        .btn-amount-bestseller::before { content: '\u2b50'; position: absolute; top: -7px; right: -7px; font-size: 17px; }\n        @media (max-width: 640px) { .btn-amount-bestseller { grid-column: span 2; } }\n        .btn-amount-bestseller:hover { background: #D64F29; transform: translateY(-3px); box-shadow: 0 5px 14px rgba(235, 96, 56, 0.4); }\n        \n        .button-group { display: flex; justify-content: space-between; gap: 12px; flex-direction: column; }\n        @media (min-width: 641px) { .button-group { flex-direction: row; gap: 16px; } }\n        \n        .hidden { display: none; }\n        .step-nav { display: none; }\n        @media (min-width: 768px) { .step-nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; padding: 14px; background: #F9FAFB; border-radius: 12px; } }\n        .step-nav-item { padding: 7px 14px; border-radius: 8px; font-size: 13px; color: #6B7280; background: white; border: 1px solid #E5E7EB; cursor: pointer; transition: all 0.3s; }\n        .step-nav-item:hover { border-color: #EB6038; color: #EB6038; }\n        .step-nav-item.active { background: #EB6038; color: white; border-color: #EB6038; font-weight: 600; }\n        .step-nav-item.completed { border-color: #FB923C; color: #EA580C; background: #FFF7ED; }\n        .step-nav-item.completed::after { content: '\u2713'; margin-left: 6px; font-weight: bold; }\n<\/style>\n<\/head>\n<body>\n    <div class=\"container\">\n        <div class=\"card\">\n            <div class=\"logo-container\">\n                <img decoding=\"async\" src=\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/03\/LogoLogomarcaPrancheta-9-1.png\" alt=\"HandsOn\" class=\"logo\">\n            <\/div>\n            <div id=\"progressContainer\" class=\"progress-container hidden\">\n                <div class=\"progress-bar\"><div id=\"progressFill\" class=\"progress-fill\" style=\"width: 0%\"><\/div><\/div>\n                <div id=\"progressText\" class=\"progress-text\"><\/div>\n            <\/div>\n            <div id=\"stepNavigation\" class=\"step-nav hidden\"><\/div>\n            <div id=\"stepContent\"><\/div>\n        <\/div>\n    <\/div>\n    <script>\nconst icons={gift:`<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 8v13m0-13V6a2 2 0 112 2h-2zm0 0V5.5A2.5 2.5 0 109.5 8H12zm-7 4h14M5 12a2 2 0 110-4h14a2 2 0 110 4M5 12v7a2 2 0 002 2h10a2 2 0 002-2v-7\" \/><\/svg>`,location:`<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z\" \/><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 11a3 3 0 11-6 0 3 3 0 016 0z\" \/><\/svg>`,indoor:`<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6\" \/><\/svg>`,outdoor:`<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z\" \/><\/svg>`,noPreference:`<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 12h.01M12 12h.01M16 12h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\" \/><\/svg>`,giftCard:`<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" style=\"width: 24px; height: 24px; margin-right: 8px;\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z\" \/><\/svg>`};\nconst workshops=[{id:1,listingId:\"12940\",title:\"Create Your Own Scent: Intuitive Perfume Workshop\",category:\"Cosmetic\",personality:[\"Creative\",\"Mindful\"],groupType:[\"Solo\",\"Friends\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/04\/perfum_workshop-1200x810.jpeg\",price:69.0,location:\"Almada\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/create-your-own-scent-intuitive-perfume-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=12940\"},{id:2,listingId:\"13901\",title:\"Tufting Initiation Workshop\",category:\"arts crafts\",personality:[\"Crafty\",\"Creative\"],groupType:[\"Friends\",\"Solo\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/08\/0AEDCDD2-8442-40A4-B332-B299D3361A20.jpg\",price:150.0,location:\"Sintra\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/tufting-initiation-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=13901\"},{id:3,listingId:\"10461\",title:\"Mini Rug Tufting Experience\",category:\"arts crafts\",personality:[\"Crafty\",\"Creative\"],groupType:[\"Friends\",\"Solo\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/11\/hvzbkh-2.jpg\",price:65.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/mini-rug-tufting-experience\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=10461\"},{id:4,listingId:\"10295\",title:\"Tufting Workshop\",category:\"arts crafts\",personality:[\"Crafty\",\"Creative\"],groupType:[\"Friends\",\"Solo\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/11\/hvzbkh-2.jpg\",price:125.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/tufting-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=10295\"},{id:5,listingId:\"10435\",title:\"Scuba Diving Experience\",category:\"Sport\",personality:[\"Sporty\",\"Adventure\"],groupType:[\"Friends\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/11\/Mergulho_1.jpg\",price:75.0,location:\"Set\u00fabal\",region:\"Lisboa\",outdoor:true,workshopUrl:\"https:\/\/handson.pt\/workshop\/scuba-diving-experience\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=10435\"},{id:6,listingId:\"8619\",title:\"Introduction to Spearfishing Workshop\",category:\"Sport\",personality:[\"Sporty\",\"Adventure\"],groupType:[\"Friends\",\"Solo\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/09\/Caparica-Diving-caA\u00a7a-submarina-em-troia.webp\",price:75.0,location:\"Sesimbra\",region:\"Lisboa\",outdoor:true,workshopUrl:\"https:\/\/handson.pt\/workshop\/introduction-to-spearfishing-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=8619\"},{id:7,listingId:\"14034\",title:\"Pastel de Nata Pastry Workshop\",category:\"Foodie\",personality:[\"Foodie\",\"Creative\"],groupType:[\"Friends\",\"Partner\",\"Family\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/06\/LisbonAffair-PastelNata_215-scaled.jpg\",price:54.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/pastel-de-nata-pastry-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=14034\"},{id:8,listingId:\"11398\",title:\"Portuguese Custard Tart Workshop\",category:\"Foodie\",personality:[\"Foodie\",\"Creative\"],groupType:[\"Friends\",\"Partner\",\"Family\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/01\/Captura-de-ecra-2025-01-30-as-21.26.19.jpg\",price:35.0,location:\"Porto\",region:\"Porto\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/portuguese-custard-tart-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=11398\"},{id:9,listingId:\"12139\",title:\"Advanced Sushi Workshop: Elevate Your Craft to Professional Levels\",category:\"Foodie\",personality:[\"Foodie\",\"Creative\"],groupType:[\"Friends\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/02\/mc_sushi-avanc.jpg\",price:75.0,location:\"Set\u00fabal\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/advanced-sushi-workshop-elevate-your-craft-to-professional-levels\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=12139\"},{id:10,listingId:\"12129\",title:\"Sushi Workshop for Beginners: Dive into Japanese Cuisine\",category:\"Foodie\",personality:[\"Foodie\",\"Creative\"],groupType:[\"Friends\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/02\/mc_sushi-bases-1.jpg\",price:72.0,location:\"Set\u00fabal\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/sushi-workshop-for-beginners-dive-into-japanese-cuisine\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=12129\"},{id:11,listingId:\"10481\",title:\"Traditional Sushi Making Workshop\",category:\"Foodie\",personality:[\"Foodie\",\"Creative\"],groupType:[\"Friends\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/11\/Sushi3-scaled.jpg\",price:50.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/traditional-sushi-making-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=10481\"},{id:12,listingId:\"11284\",title:\"Ramen & Mochi Basics Workshop\",category:\"Foodie\",personality:[\"Foodie\",\"Creative\"],groupType:[\"Friends\",\"Solo\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/01\/introduction-ramen-workshop-lisbon.jpg\",price:68.0,location:\"Set\u00fabal\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/ramen-mochi-basics-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=11284\"},{id:13,listingId:\"11276\",title:\"Advanced Ramen Workshop: Master the Art of Japanese Noodles\",category:\"Foodie\",personality:[\"Foodie\",\"Creative\"],groupType:[\"Friends\",\"Solo\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/01\/ramen-cooking-workshop.jpg\",price:68.0,location:\"Set\u00fabal\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/advanced-ramen-workshop-master-the-art-of-japanese-noodles-%f0%9f%8d%9c\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=11276\"},{id:14,listingId:\"10488\",title:\"Authentic Ramen Crafting\",category:\"Foodie\",personality:[\"Foodie\",\"Creative\"],groupType:[\"Friends\",\"Solo\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/11\/Ramen.jpeg\",price:45.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/authentic-ramen-crafting\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=10488\"},{id:15,listingId:\"10021\",title:\"Natural Beekeeping Course\",category:\"Nature\",personality:[\"Eco-Friendly\",\"Nature Lover\"],groupType:[\"Solo\",\"Friends\",\"Family\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/10\/bees.jpg\",price:140.0,location:\"Sintra\",region:\"Lisboa\",outdoor:true,workshopUrl:\"https:\/\/handson.pt\/workshop\/natural-beekeeping-course\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=10021\"},{id:16,listingId:\"11326\",title:\"Homebrewing Workshop with an Extract Kit\",category:\"Foodie\",personality:[\"Foodie\",\"Social\"],groupType:[\"Friends\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/01\/0061_Sov-scaled.jpg\",price:50.0,location:\"Porto\",region:\"Porto\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/homebrewing-workshop-with-an-extract-kit\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=11326\"},{id:17,listingId:\"20058\",title:\"Craft Beer Brewing Workshop\",category:\"Foodie\",personality:[\"Foodie\",\"Social\"],groupType:[\"Friends\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/10\/Screenshot-2025-10-27-at-15.55.06.jpg\",price:135.0,location:\"Sintra\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/craft-beer-brewing-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=20058\"},{id:18,listingId:\"11391\",title:\"Tile Painting Workshop\",category:\"arts crafts\",personality:[\"Crafty\",\"Creative\"],groupType:[\"Solo\",\"Friends\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/01\/Captura-de-ecra-2025-01-30-as-21.04.42.jpg\",price:40.0,location:\"Porto\",region:\"Porto\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/tile-painting-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=11391\"},{id:19,listingId:\"12796\",title:\"The Art of Azulejos: Portuguese Tile Painting Workshop\",category:\"arts crafts\",personality:[\"Crafty\",\"Creative\"],groupType:[\"Solo\",\"Friends\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/07\/Foto-Workshop-Azulejos-copie-1-1200x900-1.webp\",price:50.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/the-art-of-azulejos-portuguese-tile-painting-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=12796\"},{id:20,listingId:\"9023\",title:\"Introduction to Climbing Workshop\",category:\"Sport\",personality:[\"Sporty\",\"Adventure\"],groupType:[\"Solo\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/09\/230624-Escala25-236.jpg\",price:30.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:true,workshopUrl:\"https:\/\/handson.pt\/workshop\/introduction-to-climbing-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=9023\"},{id:21,listingId:\"18638\",title:\"Hands-On DJ Workshop: Mix, Blend, and Perform\",category:\"Music\",personality:[\"Creative\",\"Social\"],groupType:[\"Solo\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/10\/IMG_4491.jpeg\",price:25.0,location:\"Alentejo\",region:\"Other\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/hands-on-dj-workshop-mix-blend-and-perform\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=18638\"},{id:22,listingId:\"11220\",title:\"DJ Fundamentals Workshop\",category:\"Music\",personality:[\"Creative\",\"Social\"],groupType:[\"Solo\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/01\/IMG_6297-scaled.jpg\",price:60.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/dj-fundamentals-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=11220\"},{id:23,listingId:\"7685\",title:\"Permaculture Garden\",category:\"Eco\",personality:[\"Eco-Friendly\",\"Nature Lover\"],groupType:[\"Solo\",\"Friends\",\"Family\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/09\/Captura-de-ecra-2024-09-12-as-16.42.34-1200x449.jpg\",price:61.5,location:\"Sintra\",region:\"Lisboa\",outdoor:true,workshopUrl:\"https:\/\/handson.pt\/workshop\/permaculture-garden\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=7685\"},{id:24,listingId:\"10028\",title:\"Seeds and Nursery Mastery\",category:\"Eco\",personality:[\"Eco-Friendly\",\"Nature Lover\"],groupType:[\"Solo\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/10\/seeds2.jpg\",price:61.5,location:\"Sintra\",region:\"Lisboa\",outdoor:true,workshopUrl:\"https:\/\/handson.pt\/workshop\/seeds-and-nursery-mastery\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=10028\"},{id:25,listingId:\"8826\",title:\"Hair Care Cosmetics Workshop\",category:\"Cosmetic\",personality:[\"Eco-Friendly\",\"Crafty\",\"Mindful\"],groupType:[\"Friends\",\"Solo\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/09\/hair-soap-balls.jpeg\",price:43.0,location:\"Sintra\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/hair-care-cosmetics-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=8826\"},{id:26,listingId:\"12340\",title:\"Introduction to Ceramics Workshop\",category:\"arts crafts\",personality:[\"Crafty\",\"Creative\",\"Mindful\"],groupType:[\"Solo\",\"Friends\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/03\/armazem_2023_179-scaled.jpg\",price:68.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/introduction-to-ceramics-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=12340\"},{id:27,listingId:\"12101\",title:\"Intro to Ceramics Workshop: Craft Your Own Masterpiece\",category:\"arts crafts\",personality:[],groupType:[],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/02\/dcc2dbcb-d459-40a0-ae8e-284238c21482.jpeg\",price:55.0,location:\"Porto\",region:\"Porto\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/intro-to-ceramics-workshop-craft-your-own-masterpiece\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=12101\"},{id:28,listingId:\"12367\",title:\"Ceramics & Wine Workshop\",category:\"arts crafts\",personality:[\"Crafty\",\"Creative\",\"Foodie\"],groupType:[\"Partner\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/03\/Captura-de-ecra-2025-03-07-as-20.22.13.jpg\",price:72.0,location:\"Porto\",region:\"Porto\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/ceramics-wine-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=12367\"},{id:29,listingId:\"18995\",title:\"Parent & Child Ceramic Workshop\",category:\"arts crafts\",personality:[\"Crafty\",\"Creative\"],groupType:[\"Family\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/10\/WhatsApp-Image-2025-10-03-at-20.55.52.jpeg\",price:30.0,location:\"Coimbra\",region:\"Porto\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/parent-child-ceramic-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=18995\"},{id:30,listingId:\"10069\",title:\"Beginner Surf Experience\",category:\"Sport\",personality:[\"Sporty\",\"Adventure\"],groupType:[\"Family\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/10\/Fotografia-de-Cesar-Oliveira.jpg\",price:30.0,location:\"Almada\",region:\"Lisboa\",outdoor:true,workshopUrl:\"https:\/\/handson.pt\/workshop\/beginners-surf-experience\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=10069\"},{id:31,listingId:\"12061\",title:\"Bedroom Music Production: A Beginner's Workshop to Home Recording\",category:\"Creative\",personality:[\"Creative\",\"Tech\"],groupType:[\"Solo\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/02\/asdsf-1.jpg\",price:65.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/bedroom-music-production-a-beginners-workshop-to-home-recording\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=12061\"},{id:32,listingId:\"14548\",title:\"M.O.V.E - Ecstatic Dance Workshop with Live Percussion\",category:\"wellbeing\",personality:[\"Mindful\",\"Social\",\"Active\"],groupType:[\"Solo\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/07\/25_HORIZ_MOVE.jpg\",price:18.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:true,workshopUrl:\"https:\/\/handson.pt\/workshop\/m-o-v-e-ecstatic-dance-workshop-with-live-percussion\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=14548\"},{id:33,listingId:\"18682\",title:\"Techniques of Meditation Workshop\",category:\"wellbeing\",personality:[\"Mindful\"],groupType:[\"Solo\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/10\/WhatsApp-Image-2025-10-03-at-12.04.13.jpg\",price:30.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/techniques-of-meditation-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=18682\"},{id:34,listingId:\"14371\",title:\"Private Tango Lessons in Lisboa\",category:\"Sport\",personality:[\"Romantic\",\"Social\"],groupType:[\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/06\/Foto-Angel.jpg\",price:50.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/private-tango-lessons-in-lisboa\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=14371\"},{id:35,listingId:\"11958\",title:\"Introduction to Pole Dance Workshop\",category:\"Sport\",personality:[\"Sporty\",\"Confident\",\"Creative\"],groupType:[\"Solo\",\"Friends\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/02\/54FF7FC5-B634-480C-A0F3-C5422516D592-15987-00000B877254FE67-1.jpeg\",price:25.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/introduction-to-pole-dance-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=11958\"},{id:36,listingId:\"17211\",title:\"Conscious Connected Breathing Workshop + Ice Bath Immersion\",category:\"wellbeing\",personality:[\"Wellness\",\"Adventure\"],groupType:[\"Solo\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/09\/Gelo_2.jpg\",price:65.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/%f0%9f%8c%ac%ef%b8%8f-conscious-connected-breathing-workshop-ice-bath-immersion\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=17211\"},{id:37,listingId:\"17063\",title:\"Guided Massage Routine \u2013 Shiatsu & Ayurvedic Home Practice for Couples and Friends\",category:\"wellbeing\",personality:[\"Mindful\",\"Caring\"],groupType:[\"Partner\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/09\/Beginnings_AUK-14-scaled.jpg\",price:45.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/guided-massage-routine-shiatsu-ayurvedic\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=17063\"},{id:38,listingId:\"17387\",title:\"Cyanotype on Paper \u2013 Creative Workshop\",category:\"arts crafts\",personality:[\"Creative\",\"Artistic\"],groupType:[\"Solo\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/09\/JD5A2523_Portrait_FabricaModerna_131023cCRUA-scaled.jpg\",price:55.5,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/cyanotype-on-paper-creative-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=17387\"},{id:39,listingId:\"18935\",title:\"Introduction to Surf Foil\",category:\"Sport\",personality:[\"Sporty\",\"Adventure\"],groupType:[\"Friends\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/10\/joao-kopke-barreiro.00_04_45_01.Quadro009-scaled.jpg\",price:100.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:true,workshopUrl:\"https:\/\/handson.pt\/workshop\/introduction-to-surf-foil\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=18935\"},{id:40,listingId:\"19455\",title:\"Heart-Opening Cacao Ceremony \u2013 Plant Medicine and Sound Healing\",category:\"wellbeing\",personality:[\"Mindful\",\"Spiritual\"],groupType:[\"Solo\",\"Friends\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/10\/Inner-Power-Retreat-41-scaled.jpg\",price:41.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/heart-opening-cacao-ceremony\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=19455\"},{id:41,listingId:\"8766\",title:\"Homemade Bread with Sourdough\",category:\"Foodie\",personality:[\"Foodie\",\"Traditional\"],groupType:[\"Solo\",\"Friends\",\"Family\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2024\/09\/Captura-de-ecra-2024-09-11-as-19.41.29.jpg\",price:38.0,location:\"Sintra\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/homemade-bread-with-sourdough\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=8766\"},{id:42,listingId:\"12167\",title:\"Fish Workshop: Techniques and Flavors from the Sea\",category:\"Foodie\",personality:[\"Foodie\"],groupType:[\"Friends\",\"Partner\",\"Family\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/02\/mc_peixe.jpg\",price:70.0,location:\"Set\u00fabal\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/fish-workshop-techniques-and-flavors-from-the-sea\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=12167\"},{id:43,listingId:\"12115\",title:\"Mastering Steak Workshop: From Raw to Perfectly Cooked\",category:\"Foodie\",personality:[\"Foodie\"],groupType:[\"Partner\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/02\/mc_steakhouse_raf1-1.jpg\",price:70.0,location:\"Set\u00fabal\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/mastering-steak-workshop-from-raw-to-perfectly-cooked\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=12115\"},{id:44,listingId:\"12146\",title:\"Fresh Pasta Workshop\",category:\"Foodie\",personality:[\"Foodie\",\"Creative\"],groupType:[\"Partner\",\"Friends\",\"Family\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/02\/mc_massa-fresca-c1.jpg\",price:66.0,location:\"Set\u00fabal\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/fresh-pasta-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=12146\"},{id:45,listingId:\"19655\",title:\"Shoot Like a Pro (with Your Phone)\",category:\"Creative\",personality:[\"Creative\",\"Tech\"],groupType:[\"Solo\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/10\/WhatsApp-Image-2025-10-20-at-14.49.22_de971c11.jpg\",price:40.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:true,workshopUrl:\"https:\/\/handson.pt\/workshop\/shoot-like-a-pro-with-your-phone\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=19655\"},{id:46,listingId:\"12294\",title:\"Mobile Photography Workshop\",category:\"Creative\",personality:[\"Creative\",\"Tech\"],groupType:[\"Solo\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/10\/ca02084c-fb36-462d-884a-f12074175b8e.avif\",price:65.0,location:\"Porto\",region:\"Porto\",outdoor:true,workshopUrl:\"https:\/\/handson.pt\/workshop\/mobile-photography-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=12294\"},{id:47,listingId:\"11422\",title:\"Acrylic Painting Workshop\",category:\"arts crafts\",personality:[\"Creative\",\"Artistic\"],groupType:[\"Solo\",\"Friends\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/01\/Captura-de-ecra-2025-01-30-as-22.03.04.jpg\",price:39.0,location:\"Porto\",region:\"Porto\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/acrylic-painting-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=11422\"},{id:48,listingId:\"11406\",title:\"Necklace Jewelry Workshop\",category:\"arts crafts\",personality:[\"Crafty\",\"Creative\"],groupType:[\"Solo\",\"Friends\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/01\/Captura-de-ecra-2025-01-30-as-21.41.30.jpg\",price:70.0,location:\"Porto\",region:\"Porto\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/necklace-jewelry-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=11406\"},{id:49,listingId:\"11696\",title:\"Initiation to Portuguese Filigree Workshop\",category:\"arts crafts\",personality:[\"Crafty\",\"Traditional\",\"Detailed\"],groupType:[\"Solo\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/02\/workshop-2.jpg\",price:100.0,location:\"Porto\",region:\"Porto\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/initiation-to-portuguese-filigree-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=11696\"},{id:50,listingId:\"18432\",title:\"Portuguese Filigree Jewelry Workshop with Brunch\",category:\"arts crafts\",personality:[\"Crafty\",\"Traditional\",\"Detailed\"],groupType:[\"Solo\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/09\/WhatsApp-Image-2025-09-22-at-20.43.35.jpeg\",price:150.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/portuguese-filigree-jewelry-workshop-with-brunch\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=18432\"},{id:51,listingId:\"13302\",title:\"Gold Ring Workshop\",category:\"arts crafts\",personality:[\"Crafty\",\"Traditional\",\"Detailed\"],groupType:[\"Solo\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/04\/1.jpg\",price:190.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/gold-ring-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=13302\"},{id:52,listingId:\"11099\",title:\"Minimal Rings Workshop\",category:\"arts crafts\",personality:[\"Crafty\",\"Traditional\",\"Detailed\"],groupType:[\"Solo\",\"Friends\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/01\/mao-molho-fundo-negro.jpg\",price:125.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/minimal-rings-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=11099\"},{id:53,listingId:\"11809\",title:\"Wedding Rings Workshop\",category:\"arts crafts\",personality:[\"Crafty\",\"Traditional\",\"Detailed\"],groupType:[\"Solo\",\"Friends\",\"Partner\"],image:\"https:\/\/handson.pt\/wp-content\/uploads\/2025\/02\/MG_5528-1-1200x1800.jpg\",price:380.0,location:\"Lisbon\",region:\"Lisboa\",outdoor:false,workshopUrl:\"https:\/\/handson.pt\/workshop\/wedding-rings-workshop\/\",giftUrl:\"https:\/\/handson.pt\/gift-card-purchase\/?listing_id=11809\"}];\nconst giftCardAmounts=[{amount:15,label:'\u20ac15'},{amount:30,label:'\u20ac30'},{amount:50,label:'\u20ac50',bestseller:true},{amount:75,label:'\u20ac75'},{amount:100,label:'\u20ac100'}];\nlet currentStep=0;let preferences={recipientType:'',recipientName:'',personality:[],groupType:[],location:'',outdoor:null};const steps=['welcome','name','region','personality','group','outdoor','results'];\nfunction shuffleArray(array){const shuffled=[...array];for(let i=shuffled.length-1;i>0;i--){const j=Math.floor(Math.random()*(i+1));[shuffled[i],shuffled[j]]=[shuffled[j],shuffled[i]]}return shuffled}\nfunction getAvailablePersonalities(){if(!preferences.location)return['Crafty','Mindful','Nature','Foodie','Sporty','Wellness','Cosmetic','Creative','Adventure','Curious','Social'];const available=new Set();workshops.forEach(workshop=>{if(workshop.region===preferences.location){workshop.personality.forEach(p=>available.add(p));available.add(workshop.category)}});return Array.from(available)}\nfunction getAvailableGroups(){const available=new Set();workshops.forEach(workshop=>{let matches=true;if(preferences.location&&workshop.region!==preferences.location)matches=false;if(preferences.personality.length>0){const hasMatch=preferences.personality.some(p=>workshop.personality.includes(p)||workshop.category===p);if(!hasMatch)matches=false}if(matches){workshop.groupType.forEach(g=>available.add(g))}});return Array.from(available)}\nfunction getAvailableOutdoorOptions(){const hasIndoor=workshops.some(workshop=>{let matches=true;if(preferences.location&&workshop.region!==preferences.location)matches=false;if(preferences.personality.length>0){const hasMatch=preferences.personality.some(p=>workshop.personality.includes(p)||workshop.category===p);if(!hasMatch)matches=false}if(preferences.groupType.length>0){const hasMatch=preferences.groupType.some(g=>workshop.groupType.includes(g));if(!hasMatch)matches=false}return matches&&!workshop.outdoor});const hasOutdoor=workshops.some(workshop=>{let matches=true;if(preferences.location&&workshop.region!==preferences.location)matches=false;if(preferences.personality.length>0){const hasMatch=preferences.personality.some(p=>workshop.personality.includes(p)||workshop.category===p);if(!hasMatch)matches=false}if(preferences.groupType.length>0){const hasMatch=preferences.groupType.some(g=>workshop.groupType.includes(g));if(!hasMatch)matches=false}return matches&&workshop.outdoor});return{hasIndoor,hasOutdoor}}\nfunction nextStep(){if(steps[currentStep+1]==='outdoor'){const{hasIndoor,hasOutdoor}=getAvailableOutdoorOptions();if(hasIndoor&&!hasOutdoor){preferences.outdoor=false;currentStep+=2;renderStep();return}else if(!hasIndoor&&hasOutdoor){preferences.outdoor=true;currentStep+=2;renderStep();return}}if(currentStep<steps.length-1){currentStep++;renderStep()}}\nfunction previousStep(){if(currentStep>0){if(steps[currentStep]==='results'&&steps[currentStep-1]==='outdoor'){const{hasIndoor,hasOutdoor}=getAvailableOutdoorOptions();if((hasIndoor&&!hasOutdoor)||(!hasIndoor&&hasOutdoor)){currentStep-=2;renderStep();return}}currentStep--;renderStep()}}\nfunction goToStep(step){const stepIndex=steps.indexOf(step);if(stepIndex!==-1){currentStep=stepIndex;renderStep()}}\nfunction getRecommendedWorkshops(){let filtered=filterWorkshops(true,true,true);if(preferences.recipientType==='secretsanta'){filtered=filtered.filter(w=>w.price<=50)}if(filtered.length>=2){filtered=shuffleArray(filtered);return filtered.length>10?filtered.slice(0,10):filtered}filtered=filterWorkshops(true,false,true);if(preferences.recipientType==='secretsanta'){filtered=filtered.filter(w=>w.price<=50)}if(filtered.length>=2){filtered=shuffleArray(filtered);return filtered.length>10?filtered.slice(0,10):filtered}filtered=filterWorkshops(false,false,true);if(preferences.recipientType==='secretsanta'){filtered=filtered.filter(w=>w.price<=50)}if(filtered.length>=2){filtered=shuffleArray(filtered);return filtered.length>10?filtered.slice(0,10):filtered}filtered=workshops.filter(w=>w.region===preferences.location);if(preferences.recipientType==='secretsanta'){filtered=filtered.filter(w=>w.price<=50)}filtered=shuffleArray(filtered);return filtered.slice(0,5)}\nfunction filterWorkshops(usePersonality,useGroup,useOutdoor){return workshops.filter(workshop=>{if(preferences.location&&workshop.region!==preferences.location){return false}if(usePersonality&&preferences.personality.length>0){const hasMatchingPersonality=preferences.personality.some(p=>workshop.personality.includes(p)||workshop.category===p);if(!hasMatchingPersonality)return false}if(useGroup&&preferences.groupType.length>0){const hasMatchingGroup=preferences.groupType.some(g=>workshop.groupType.includes(g));if(!hasMatchingGroup)return false}if(useOutdoor&&preferences.outdoor!==null){if(workshop.outdoor!==preferences.outdoor){return false}}return true})}\nfunction forceRepaint(){requestAnimationFrame(()=>{document.body.offsetHeight;setTimeout(()=>{window.scrollTo(0,0)},10)})}\nfunction renderStep(){const step=steps[currentStep];updateProgress();const content=document.getElementById('stepContent');switch(step){case'welcome':content.innerHTML=renderWelcome();break;case'name':content.innerHTML=renderName();break;case'region':content.innerHTML=renderRegion();break;case'personality':content.innerHTML=renderPersonality();attachPersonalityListeners();break;case'group':content.innerHTML=renderGroup();attachGroupListeners();break;case'outdoor':content.innerHTML=renderOutdoorStep();break;case'results':content.innerHTML=renderResults();forceRepaint();break}}\nfunction updateProgress(){const progressContainer=document.getElementById('progressContainer');const progressFill=document.getElementById('progressFill');const progressText=document.getElementById('progressText');const stepNavigation=document.getElementById('stepNavigation');if(currentStep===0){progressContainer.classList.add('hidden');stepNavigation.classList.add('hidden')}else{progressContainer.classList.remove('hidden');const progress=(currentStep\/(steps.length-1))*100;progressFill.style.width=progress+'%';progressText.textContent=`Step ${currentStep} of ${steps.length-1}`;stepNavigation.classList.remove('hidden');const stepNames={'name':preferences.recipientName||'Recipient','region':preferences.location||'Region','personality':'Personality','group':'Group','outdoor':'Setting','results':'Results'};let navHtml='';steps.forEach((step,index)=>{if(step!=='welcome'){const stepName=stepNames[step]||step;const isActive=index===currentStep;const isCompleted=index<currentStep;const classes=`step-nav-item ${isActive?'active':''} ${isCompleted?'completed':''}`;navHtml+=`<div class=\"${classes}\" onclick=\"goToStep('${step}')\">${stepName}<\/div>`}});stepNavigation.innerHTML=navHtml}}\nfunction renderWelcome(){return `<div style=\"text-align: center;\"><div style=\"margin: 0 auto 16px; width: 40px; height: 40px;\">${icons.gift}<\/div><h1>Find the Perfect Workshop Gift<\/h1><p class=\"subtitle\" style=\"margin-bottom: 20px;\">Answer 5 quick questions to get personalized recommendations<\/p><button class=\"btn btn-primary btn-block\" onclick=\"nextStep()\">Start<\/button><\/div>`}\nfunction renderName(){const categories=[{value:'partner',label:'Partner',display:'your partner',svg:'<svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" style=\"color: #EB6038;\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z\" \/><\/svg>'},{value:'bff',label:'Best Friend',display:'your best friend',svg:'<svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" style=\"color: #EB6038;\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z\" \/><\/svg>'},{value:'family',label:'Family',display:'family',svg:'<svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" style=\"color: #EB6038;\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z\" \/><\/svg>'},{value:'friend',label:'Friend',display:'a friend',svg:'<svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" style=\"color: #EB6038;\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z\" \/><\/svg>'},{value:'coworker',label:'Coworker',display:'a coworker',svg:'<svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" style=\"color: #EB6038;\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 13.255A23.931 23.931 0 0112 15c-3.183 0-6.22-.62-9-1.745M16 6V4a2 2 0 00-2-2h-4a2 2 0 00-2 2v2m4 6h.01M5 20h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\" \/><\/svg>'},{value:'secretsanta',label:'Secret Santa',display:'Secret Santa',desc:'Under \u20ac50',svg:'<svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" style=\"color: #EB6038;\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 8v13m0-13V6a2 2 0 112 2h-2zm0 0V5.5A2.5 2.5 0 109.5 8H12zm-7 4h14M5 12a2 2 0 110-4h14a2 2 0 110 4M5 12v7a2 2 0 002 2h10a2 2 0 002-2v-7\" \/><\/svg>'}];return `<div><h2>Who are you gifting to?<\/h2><p class=\"subtitle\">Choose the recipient<\/p><div class=\"option-grid\">${categories.map(cat=>`<div class=\"option-card ${preferences.recipientType===cat.value?'selected':''}\" onclick=\"selectRecipientType('${cat.value}','${cat.display}')\"><div class=\"option-icon\">${cat.svg}<\/div><div class=\"option-content\"><div class=\"option-title\">${cat.label}<\/div>${cat.desc?`<div class=\"option-desc\">${cat.desc}<\/div>`:''}<\/div><\/div>`).join('')}<\/div><div class=\"button-group\"><button class=\"btn btn-secondary\" onclick=\"previousStep()\">Back<\/button><button class=\"btn btn-primary\" onclick=\"nextStep()\" ${!preferences.recipientType?'disabled style=\"opacity: 0.5; cursor: not-allowed;\"':''}>Continue<\/button><\/div><\/div>`}\nfunction selectRecipientType(type,display){preferences.recipientType=type;preferences.recipientName=display;renderStep()}\nfunction renderRegion(){return `<div><h2>Around which big city?<\/h2><p class=\"subtitle\">Where would ${preferences.recipientName||'they'} prefer to attend?<\/p><div class=\"option-grid\">${renderLocationOption('Lisboa','Lisboa')}${renderLocationOption('Porto','Porto')}<\/div><div class=\"button-group\"><button class=\"btn btn-secondary\" onclick=\"previousStep()\">Back<\/button><button class=\"btn btn-primary\" onclick=\"nextStep()\">Continue<\/button><\/div><\/div>`}\nfunction renderLocationOption(location,value){const selected=preferences.location===value?'selected':'';return `<div class=\"option-card ${selected}\" onclick=\"selectLocation('${value}')\"><div class=\"option-icon\">${icons.location}<\/div><div class=\"option-content\"><div class=\"option-title\">${location}<\/div><\/div><\/div>`}\nfunction renderPersonality(){const allPersonalities=[{label:'Crafty',value:'Crafty'},{label:'Esoteric',value:'Mindful'},{label:'Nature Lover',value:'Nature'},{label:'Foodie',value:'Foodie'},{label:'Sporty',value:'Sporty'},{label:'Wellbeing Focused',value:'Wellness'},{label:'Good Appearance',value:'Cosmetic'},{label:'Creative',value:'Creative'},{label:'Adventure Seeker',value:'Adventure'},{label:'Curious',value:'Curious'},{label:'Social',value:'Social'}];const availableValues=getAvailablePersonalities();const personalities=allPersonalities.filter(p=>availableValues.includes(p.value));return `<div><h2>Describe the person<\/h2><p class=\"subtitle\">Pick as many as you want<\/p><div class=\"checkbox-grid\">${personalities.map(p=>`<label class=\"checkbox-label ${preferences.personality.includes(p.value)?'checked':''}\"><input type=\"checkbox\" class=\"checkbox-input personality-check\" value=\"${p.value}\" ${preferences.personality.includes(p.value)?'checked':''}\/><span>${p.label}<\/span><\/label>`).join('')}<\/div><div class=\"button-group\"><button class=\"btn btn-secondary\" onclick=\"previousStep()\">Back<\/button><button class=\"btn btn-primary\" onclick=\"nextStep()\">Continue<\/button><\/div><\/div>`}\nfunction renderGroup(){const allGroups=['Solo','Partner','Friends','Family'];const availableGroups=getAvailableGroups();const groups=allGroups.filter(g=>availableGroups.includes(g));return `<div><h2>Who should they go with?<\/h2><p class=\"subtitle\">Select all that apply<\/p><div class=\"checkbox-grid\">${groups.map(g=>`<label class=\"checkbox-label ${preferences.groupType.includes(g)?'checked':''}\"><input type=\"checkbox\" class=\"checkbox-input group-check\" value=\"${g}\" ${preferences.groupType.includes(g)?'checked':''}\/><span>${g}<\/span><\/label>`).join('')}<\/div><div class=\"button-group\"><button class=\"btn btn-secondary\" onclick=\"previousStep()\">Back<\/button><button class=\"btn btn-primary\" onclick=\"nextStep()\">Continue<\/button><\/div><\/div>`}\nfunction renderOutdoorStep(){const{hasIndoor,hasOutdoor}=getAvailableOutdoorOptions();let options=[];if(hasIndoor)options.push(renderOutdoorOption('Indoor',false,icons.indoor));if(hasOutdoor)options.push(renderOutdoorOption('Outdoor',true,icons.outdoor));if(hasIndoor&&hasOutdoor){options.push(renderOutdoorOption('No Preference',null,icons.noPreference))}return `<div><h2>Indoor or outdoor?<\/h2><p class=\"subtitle\">What would ${preferences.recipientName||'they'} prefer?<\/p><div class=\"option-grid\">${options.join('')}<\/div><div class=\"button-group\"><button class=\"btn btn-secondary\" onclick=\"previousStep()\">Back<\/button><button class=\"btn btn-primary\" onclick=\"nextStep()\">Show Results<\/button><\/div><\/div>`}\nfunction renderOutdoorOption(label,value,iconSvg){const selected=preferences.outdoor===value?'selected':'';const valueStr=value===null?'null':value;return `<div class=\"option-card ${selected}\" onclick=\"selectOutdoor(${valueStr})\"><div class=\"option-icon\">${iconSvg}<\/div><div class=\"option-content\"><div class=\"option-title\">${label}<\/div><\/div><\/div>`}\nfunction renderResults(){const recommended=getRecommendedWorkshops();const headlines={'partner':`Romantic Experiences for You Two`,'bff':`Perfect Matches for Your Best Friend`,'family':`Family Bonding Experiences`,'friend':`Great Gifts for a Friend`,'coworker':`Professional Yet Fun Activities`,'secretsanta':`Secret Santa Gifts Under \u20ac50`};const headline=headlines[preferences.recipientType]||`Perfect Matches`;let html=`<div><h2>${headline}<\/h2><p class=\"subtitle\">We found ${recommended.length} workshop${recommended.length!==1?'s':''}<\/p>`;if(recommended.length>0){html+='<div class=\"workshop-grid\">';recommended.forEach(workshop=>{const isBestseller=workshop.price>=100;html+=`<div class=\"workshop-card\" onclick=\"window.open('${workshop.giftUrl}','_blank');\"><div class=\"workshop-image-container\" style=\"background-image: url('${workshop.image}'); background-size: cover; background-position: center;\"><\/div><div class=\"workshop-content\"><h3 class=\"workshop-title\">${workshop.title}<\/h3><div class=\"workshop-location-price\"><p class=\"workshop-location\">${icons.location} ${workshop.location}<\/p><p class=\"workshop-price\">\u20ac${workshop.price}<\/p><\/div><div class=\"workshop-tags\">${isBestseller?'<span class=\"tag tag-bestseller\">Best seller<\/span>':''}${workshop.outdoor?'<span class=\"tag\">Outdoor<\/span>':'<span class=\"tag\">Indoor<\/span>'}<\/div><div class=\"workshop-buttons\"><button type=\"button\" onclick=\"event.stopPropagation(); window.open('${workshop.giftUrl}', '_blank');\" class=\"btn-gift\">Buy Gift<\/button><button type=\"button\" onclick=\"event.stopPropagation(); window.open('${workshop.workshopUrl}', '_blank');\" class=\"btn-info\">Info<\/button><\/div><\/div><\/div>`});html+='<\/div>';html+=`<p style=\"text-align: center; margin: 20px 0 24px; font-size: 15px;\"><a href=\"https:\/\/handson.pt\/workshops\" target=\"_blank\" style=\"color: #EB6038; text-decoration: underline; font-weight: 600;\">Check all workshops<\/a><\/p>`}html+=`<div class=\"gift-card-section\"><div style=\"display: flex; align-items: center; justify-content: center; margin-bottom: 12px;\">${icons.giftCard}<h3 style=\"margin: 0; font-size: 17px;\">Still hard to pick?<\/h3><\/div><p style=\"color: #6B7280; margin-bottom: 16px; text-align: center; font-size: 14px;\">Let them choose with a gift card!<\/p><div class=\"gift-card-buttons\">${giftCardAmounts.map(item=>{const btnClass=item.bestseller?'btn-amount btn-amount-bestseller':'btn-amount';return `<a href=\"https:\/\/handson.pt\/gift-card-purchase\/?amount_price=${item.amount}\" target=\"_blank\" class=\"${btnClass}\">${item.label}<\/a>`}).join('')}<\/div><\/div>`;html+=`<div class=\"button-group\"><button class=\"btn btn-secondary\" onclick=\"previousStep()\">Back<\/button><\/div><\/div>`;return html}\nfunction attachPersonalityListeners(){document.querySelectorAll('.personality-check').forEach(checkbox=>{checkbox.addEventListener('change',(e)=>{const value=e.target.value;if(e.target.checked){if(!preferences.personality.includes(value)){preferences.personality.push(value)}}else{preferences.personality=preferences.personality.filter(p=>p!==value)}e.target.closest('label').classList.toggle('checked',e.target.checked)})})}\nfunction attachGroupListeners(){document.querySelectorAll('.group-check').forEach(checkbox=>{checkbox.addEventListener('change',(e)=>{const value=e.target.value;if(e.target.checked){if(!preferences.groupType.includes(value)){preferences.groupType.push(value)}}else{preferences.groupType=preferences.groupType.filter(g=>g!==value)}e.target.closest('label').classList.toggle('checked',e.target.checked)})})}\nfunction selectLocation(location){preferences.location=location;renderStep()}\nfunction selectOutdoor(outdoor){preferences.outdoor=outdoor;renderStep()}\nfunction forceContentVisible(){const stepContent=document.getElementById('stepContent');if(stepContent){stepContent.style.display='block';stepContent.style.visibility='visible';stepContent.style.opacity='0';requestAnimationFrame(()=>{stepContent.offsetHeight;stepContent.style.transition='opacity 0.3s';stepContent.style.opacity='1';})}}\nfunction init(){const stepContent=document.getElementById('stepContent');if(stepContent){stepContent.style.display='block';stepContent.style.visibility='visible';}renderStep();requestAnimationFrame(()=>{forceContentVisible();document.body.offsetHeight;});setTimeout(()=>{forceContentVisible();document.body.offsetHeight;window.scrollTo(0,0);},50);setTimeout(()=>{forceContentVisible();},150);setTimeout(forceContentVisible,300);}\nif(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',init)}else{init()}\n    <\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f246ba3 e-flex e-con-boxed e-con e-parent\" data-id=\"f246ba3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dc5ed7d elementor-widget elementor-widget-html\" data-id=\"dc5ed7d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"klaviyo-form-TDMFSG\"><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Sele\u00e7\u00e3o de presentes para a oficina<\/p>","protected":false},"author":138,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-20346","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/handson.pt\/pt\/wp-json\/wp\/v2\/pages\/20346","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/handson.pt\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/handson.pt\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/handson.pt\/pt\/wp-json\/wp\/v2\/users\/138"}],"replies":[{"embeddable":true,"href":"https:\/\/handson.pt\/pt\/wp-json\/wp\/v2\/comments?post=20346"}],"version-history":[{"count":117,"href":"https:\/\/handson.pt\/pt\/wp-json\/wp\/v2\/pages\/20346\/revisions"}],"predecessor-version":[{"id":22605,"href":"https:\/\/handson.pt\/pt\/wp-json\/wp\/v2\/pages\/20346\/revisions\/22605"}],"wp:attachment":[{"href":"https:\/\/handson.pt\/pt\/wp-json\/wp\/v2\/media?parent=20346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}