{"id":4351,"date":"2026-03-12T18:12:46","date_gmt":"2026-03-12T23:12:46","guid":{"rendered":"https:\/\/spacejourney.app\/planejador-de-viagens\/"},"modified":"2026-07-18T18:37:05","modified_gmt":"2026-07-18T23:37:05","slug":"planejador-de-viagens","status":"publish","type":"page","link":"https:\/\/spacejourney.app\/pt-br\/planejador-de-viagens\/","title":{"rendered":"Planejador de viagens"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4351\" class=\"elementor elementor-4351 elementor-1837\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-87cbee1 e-flex e-con-boxed e-con e-parent\" data-id=\"87cbee1\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;video&quot;,&quot;background_video_link&quot;:&quot;https:\\\/\\\/spacejourney.app\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/24s-Arture-Travel-Video-General-Background.mp4&quot;,&quot;background_play_on_mobile&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-background-video-container\">\n\t\t\t\t\t\t\t<video class=\"elementor-background-video-hosted\" role=\"presentation\" autoplay muted playsinline loop><\/video>\n\t\t\t\t\t<\/div>\t\t<div class=\"elementor-element elementor-element-f979598 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"f979598\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;_animation_delay&quot;:200}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Planejador de viagens<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c799ca1 elementor-widget elementor-widget-text-editor\" data-id=\"c799ca1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Projete sua aventura perfeita em minutos. Adicione experi\u00eancias exclusivas, organize seus dias e exporte o percurso para seu Calend\u00e1rio. Gratuito e sem estresse.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3c472f0 e-con-full e-flex e-con e-child\" data-id=\"3c472f0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2714e34 elementor-align-center elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"2714e34\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-bob\" href=\"#planeje%20sua%20viagem\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Comece a planejar<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-19e4b01 elementor-align-center elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"19e4b01\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-bob\" href=\"https:\/\/spacejourney.app\/pt-br\/\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Plataforma para viajantes<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\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-1f50847 e-flex e-con-boxed e-con e-parent\" data-id=\"1f50847\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;shape_divider_top&quot;:&quot;split&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-shape elementor-shape-top\" aria-hidden=\"true\" data-negative=\"false\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1000 20\" preserveAspectRatio=\"none\">\n\t<path class=\"elementor-shape-fill\" d=\"M0,0v3c0,0,393.8,0,483.4,0c9.2,0,16.6,7.4,16.6,16.6c0-9.1,7.4-16.6,16.6-16.6C606.2,3,1000,3,1000,3V0H0z\"\/>\n<\/svg>\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1cd1e21 elementor-widget elementor-widget-spacer\" data-id=\"1cd1e21\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"planifica-tu-viaje\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3c18922 elementor-widget elementor-widget-shortcode\" data-id=\"3c18922\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">        <!-- Inyectamos CDN directamente para evitar bloqueos del Theme\/Plugins -->\r\n        <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/sortablejs@latest\/Sortable.min.js\"><\/script>\r\n        <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/sweetalert2@11\"><\/script>\r\n\r\n        <!-- CSS del Itinerario (Estilo Solarpunk Premium V2.0) -->\r\n        <style>\r\n            \/* \u2500\u2500 CSS ISOLATION: scoped to #sjItineraryApp \u2500\u2500 *\/\r\n            #sjItineraryApp {\r\n                font-family: 'Outfit', sans-serif;\r\n                box-sizing: border-box;\r\n            }\r\n\r\n            #sjItineraryApp * {\r\n                box-sizing: border-box;\r\n            }\r\n\r\n            :root {\r\n                --sj-primary: #193B33;\r\n                \/* Verde oscuro Space Journey *\/\r\n                --sj-accent: #E5C07B;\r\n                \/* Dorado Space Journey *\/\r\n                --sj-bg: #F4F1EA;\r\n                \/* Arena claro *\/\r\n                --sj-card: #FFFFFF;\r\n                --sj-text: #193B33;\r\n                --sj-text-muted: #57736b;\r\n                --sj-border: rgba(25, 59, 51, 0.08) !important;\r\n                --sj-shadow: 0 4px 12px rgba(25, 59, 51, 0.04);\r\n                --sj-shadow-hover: 0 8px 24px rgba(25, 59, 51, 0.08);\r\n            }\r\n\r\n            #sjItineraryApp .sj-itinerary-wrapper {\r\n                font-family: 'Inter', sans-serif !important;\r\n                display: flex !important;\r\n                flex-direction: column;\r\n                gap: 20px;\r\n                max-width: 1200px;\r\n                margin: 0 auto;\r\n                background: rgba(255, 255, 255, 0.15) !important;\r\n                backdrop-filter: blur(12px);\r\n                -webkit-backdrop-filter: blur(12px);\r\n                border: 1px solid rgba(255, 255, 255, 0.2) !important;\r\n                border-radius: 16px !important;\r\n                min-height: 80vh;\r\n                padding: 25px !important;\r\n                box-shadow: 0 8px 32px 0 rgba(25, 59, 51, 0.05) !important;\r\n            }\r\n\r\n            \/* HEADER DEL CONSTRUCTOR *\/\r\n            #sjItineraryApp .sj-itinerary-header {\r\n                display: flex !important;\r\n                justify-content: space-between;\r\n                align-items: center;\r\n                flex-wrap: wrap;\r\n                gap: 20px;\r\n                width: 100%;\r\n                margin-bottom: 25px;\r\n                \/* Separaci\u00f3n extra debajo del header *\/\r\n            }\r\n\r\n            #sjItineraryApp .sj-trip-banner {\r\n                width: 100%;\r\n                height: 200px;\r\n                border-radius: 16px;\r\n                background-color: rgba(25, 59, 51, 0.05);\r\n                background-size: cover;\r\n                background-position: center;\r\n                display: flex;\r\n                align-items: flex-end;\r\n                padding: 30px;\r\n                box-sizing: border-box;\r\n                position: relative;\r\n                margin-bottom: 30px;\r\n                border: 1px solid var(--sj-border);\r\n            }\r\n\r\n            #sjItineraryApp .sj-trip-banner-content {\r\n                background: rgba(255, 255, 255, 0.85);\r\n                backdrop-filter: blur(10px);\r\n                padding: 15px 25px;\r\n                border-radius: 12px;\r\n                max-width: 100%;\r\n            }\r\n\r\n            #sjItineraryApp .sj-btn-link {\r\n                background: none;\r\n                border: none;\r\n                cursor: pointer;\r\n                padding: 0;\r\n                margin: 0;\r\n                display: inline-flex;\r\n                align-items: center;\r\n                gap: 5px;\r\n            }\r\n\r\n            #sjItineraryApp .sj-btn-link:hover {\r\n                color: var(--sj-primary) !important;\r\n                text-decoration: underline;\r\n            }\r\n\r\n            #sjItineraryApp .sj-trip-title-row .sj-trip-input {\r\n                flex-grow: 1;\r\n                min-width: 0;\r\n            }\r\n\r\n            #sjItineraryApp .sj-trip-input {\r\n                width: 100%;\r\n                height: 42px;\r\n                padding: 0 16px !important;\r\n                border: 1px solid rgba(25, 59, 51, 0.15) !important;\r\n                border-radius: 30px !important;\r\n                font-family: inherit !important;\r\n                font-size: 15px;\r\n                color: var(--sj-primary) !important;\r\n                background: #ffffff !important;\r\n                transition: all 0.2s ease;\r\n                box-sizing: border-box;\r\n            }\r\n\r\n            #sjItineraryApp select.sj-trip-input {\r\n                appearance: none !important;\r\n                background-image: url(\"data:image\/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23193B33%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E\");\r\n                background-repeat: no-repeat;\r\n                background-position: right 16px top 50%;\r\n                background-size: 12px auto;\r\n                padding-right: 40px !important;\r\n            }\r\n\r\n            #sjItineraryApp .sj-trip-input:focus {\r\n                border-color: var(--sj-primary) !important;\r\n                box-shadow: 0 0 0 3px rgba(25, 59, 51, 0.08) !important;\r\n                outline: none;\r\n            }\r\n\r\n            \/* GRID DE ACCIONES Y CONTENEDORES *\/\r\n            #sjItineraryApp .sj-itinerary-actions-grid {\r\n                display: flex !important;\r\n                flex-direction: column !important;\r\n                gap: 12px;\r\n                width: 100%;\r\n                max-width: 480px;\r\n            }\r\n\r\n            #sjItineraryApp .sj-btn-row {\r\n                display: flex !important;\r\n                gap: 12px;\r\n                width: 100%;\r\n            }\r\n\r\n            #sjItineraryApp .sj-btn-row .sj-btn {\r\n                flex: 1 1 0px;\r\n                justify-content: center;\r\n            }\r\n\r\n            \/* BOTONES PILL-SHAPED (Afecta App y Modal de SweetAlert) *\/\r\n            #sjItineraryApp .sj-btn,\r\n            .swal2-popup .sj-btn {\r\n                -webkit-appearance: none !important;\r\n                appearance: none !important;\r\n                height: 42px;\r\n                padding: 0 24px !important;\r\n                border-radius: 30px !important;\r\n                cursor: pointer;\r\n                font-weight: 700;\r\n                font-size: 14px;\r\n                font-family: 'Outfit', sans-serif !important;\r\n                transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);\r\n                display: inline-flex;\r\n                align-items: center;\r\n                justify-content: center;\r\n                gap: 8px;\r\n                box-sizing: border-box;\r\n                text-decoration: none;\r\n                white-space: nowrap;\r\n            }\r\n\r\n            #sjItineraryApp .sj-btn-primary,\r\n            .swal2-popup .sj-btn-primary {\r\n                background: linear-gradient(135deg, #AEE2E3, #8FD14F) !important;\r\n                color: #112F24 !important;\r\n                border: none !important;\r\n                box-shadow: 0 4px 12px rgba(143, 209, 79, 0.2) !important;\r\n            }\r\n\r\n            #sjItineraryApp .sj-btn-primary:hover,\r\n            .swal2-popup .sj-btn-primary:hover {\r\n                opacity: 0.95 !important;\r\n                transform: translateY(-2px);\r\n                box-shadow: 0 6px 20px rgba(143, 209, 79, 0.35) !important;\r\n            }\r\n\r\n            #sjItineraryApp .sj-btn-gold,\r\n            .swal2-popup .sj-btn-gold {\r\n                background: linear-gradient(135deg, #F3D287, #E5C07B) !important;\r\n                color: #193B33 !important;\r\n                border: none !important;\r\n                box-shadow: 0 4px 12px rgba(229, 192, 123, 0.2) !important;\r\n            }\r\n\r\n            #sjItineraryApp .sj-btn-gold:hover,\r\n            .swal2-popup .sj-btn-gold:hover {\r\n                opacity: 0.95 !important;\r\n                transform: translateY(-2px);\r\n                box-shadow: 0 6px 20px rgba(229, 192, 123, 0.35) !important;\r\n            }\r\n\r\n            #sjItineraryApp .sj-btn-secondary,\r\n            .swal2-popup .sj-btn-secondary {\r\n                background: transparent !important;\r\n                color: var(--sj-primary) !important;\r\n                border: 2px solid var(--sj-primary) !important;\r\n            }\r\n\r\n            #sjItineraryApp .sj-btn-secondary:hover,\r\n            .swal2-popup .sj-btn-secondary:hover {\r\n                background: rgba(25, 59, 51, 0.05) !important;\r\n                transform: translateY(-2px);\r\n            }\r\n\r\n            #sjItineraryApp .sj-btn-accent,\r\n            .swal2-popup .sj-btn-accent {\r\n                background: transparent !important;\r\n                color: #c2410c !important;\r\n                border: 2px solid #E5C07B !important;\r\n            }\r\n\r\n            #sjItineraryApp .sj-btn-accent:hover,\r\n            .swal2-popup .sj-btn-accent:hover {\r\n                background: rgba(229, 192, 123, 0.08) !important;\r\n                transform: translateY(-2px);\r\n            }\r\n\r\n            #sjItineraryApp .sj-btn-danger,\r\n            .swal2-popup .sj-btn-danger {\r\n                background: transparent !important;\r\n                color: #ff4d4d !important;\r\n                border: 2px solid #ff4d4d !important;\r\n            }\r\n\r\n            #sjItineraryApp .sj-btn-danger:hover,\r\n            .swal2-popup .sj-btn-danger:hover {\r\n                background: rgba(255, 77, 77, 0.04) !important;\r\n                transform: translateY(-1px);\r\n            }\r\n\r\n            \/* Bot\u00f3n de Icono Fijo (No se estira en m\u00f3viles) *\/\r\n            #sjItineraryApp .sj-btn-icon-only,\r\n            .swal2-popup .sj-btn-icon-only {\r\n                width: 42px !important;\r\n                height: 42px !important;\r\n                min-width: 42px !important;\r\n                padding: 0 !important;\r\n                flex-shrink: 0 !important;\r\n                justify-content: center;\r\n                border-radius: 50% !important;\r\n            }\r\n\r\n            \/* Enlace de peligro *\/\r\n            #sjItineraryApp .sj-btn-link-danger {\r\n                background: transparent !important;\r\n                border: none !important;\r\n                color: #ff4d4d !important;\r\n                cursor: pointer;\r\n                font-size: 13px;\r\n                font-weight: 700;\r\n                text-align: center;\r\n                padding: 8px;\r\n                text-decoration: underline;\r\n            }\r\n\r\n            #sjItineraryApp .sj-btn-link-danger:hover {\r\n                color: #cc0000 !important;\r\n            }\r\n\r\n            \/* ESTADO CERO (Zero-State) *\/\r\n            #sjItineraryApp .sj-zero-state {\r\n                display: flex;\r\n                flex-direction: column;\r\n                align-items: center;\r\n                justify-content: center;\r\n                padding: 60px 20px;\r\n                text-align: center;\r\n                background: rgba(255, 255, 255, 0.4);\r\n                border-radius: 16px;\r\n                border: 2px dashed rgba(25, 59, 51, 0.2);\r\n                margin: 40px auto;\r\n                max-width: 600px;\r\n                width: 100%;\r\n            }\r\n\r\n            #sjItineraryApp .sj-zero-state h3 {\r\n                font-family: 'Outfit', sans-serif;\r\n                color: var(--sj-primary);\r\n                margin-bottom: 12px;\r\n                font-size: 24px;\r\n                font-weight: 700;\r\n            }\r\n\r\n            #sjItineraryApp .sj-zero-state p {\r\n                color: var(--sj-text-muted);\r\n                margin-bottom: 24px;\r\n                font-size: 16px;\r\n                max-width: 400px;\r\n            }\r\n\r\n            \/* DISE\u00d1O DE COLUMNAS (D\u00cdAS) *\/\r\n            #sjItineraryApp .sj-days-container {\r\n                display: flex !important;\r\n                gap: 24px;\r\n                overflow-x: auto;\r\n                padding: 12px 4px 24px 4px !important;\r\n                align-items: flex-start;\r\n                scrollbar-width: thin;\r\n                scrollbar-color: rgba(25, 59, 51, 0.2) transparent !important;\r\n            }\r\n\r\n            #sjItineraryApp .sj-days-container::-webkit-scrollbar {\r\n                height: 6px;\r\n            }\r\n\r\n            #sjItineraryApp .sj-days-container::-webkit-scrollbar-thumb {\r\n                background-color: rgba(25, 59, 51, 0.2) !important;\r\n                border-radius: 3px !important;\r\n            }\r\n\r\n            #sjItineraryApp .sj-day-column {\r\n                background: rgba(255, 255, 255, 0.45) !important;\r\n                \/* Glassmorphism soft but visible *\/\r\n                backdrop-filter: blur(12px);\r\n                -webkit-backdrop-filter: blur(12px);\r\n                border: 1.5px solid rgba(255, 255, 255, 0.45) !important;\r\n                border-radius: 16px !important;\r\n                min-width: 310px;\r\n                max-width: 310px;\r\n                display: flex !important;\r\n                flex-direction: column !important;\r\n                flex-shrink: 0;\r\n                box-shadow: 0 8px 32px 0 rgba(25, 59, 51, 0.06) !important;\r\n                transition: all 0.3s ease;\r\n            }\r\n\r\n            #sjItineraryApp .sj-day-column:hover {\r\n                box-shadow: var(--sj-shadow-hover) !important;\r\n                border-color: rgba(25, 59, 51, 0.12) !important;\r\n            }\r\n\r\n            #sjItineraryApp .sj-day-header {\r\n                padding: 16px 20px !important;\r\n                background: transparent !important;\r\n                \/* Soft background *\/\r\n                border-bottom: 2px dashed rgba(25, 59, 51, 0.08);\r\n                color: var(--sj-primary) !important;\r\n                border-radius: 16px 16px 0 0 !important;\r\n                font-family: 'Outfit', sans-serif !important;\r\n                font-weight: 700;\r\n                font-size: 17px;\r\n                display: flex !important;\r\n                justify-content: space-between;\r\n                align-items: center;\r\n            }\r\n\r\n            #sjItineraryApp .sj-day-header .dashicons-trash {\r\n                opacity: 0.6;\r\n                color: var(--sj-text-muted) !important;\r\n                transition: all 0.2s ease;\r\n                font-size: 18px;\r\n                width: 18px;\r\n                height: 18px;\r\n                cursor: pointer;\r\n            }\r\n\r\n            #sjItineraryApp .sj-day-header .dashicons-trash:hover {\r\n                opacity: 1;\r\n                color: #ff4d4d !important;\r\n                transform: scale(1.1);\r\n            }\r\n\r\n            #sjItineraryApp .sj-dropzone {\r\n                padding: 16px !important;\r\n                min-height: 160px;\r\n                display: flex !important;\r\n                flex-direction: column !important;\r\n                gap: 12px;\r\n            }\r\n\r\n            \/* TARJETAS (CARTAS) *\/\r\n            #sjItineraryApp .sj-card-item {\r\n                background: rgba(255, 255, 255, 0.65) !important;\r\n                backdrop-filter: blur(4px);\r\n                -webkit-backdrop-filter: blur(4px);\r\n                border: 1px solid rgba(255, 255, 255, 0.55) !important;\r\n                border-radius: 12px !important;\r\n                padding: 14px 16px !important;\r\n                box-shadow: 0 4px 12px 0 rgba(25, 59, 51, 0.04) !important;\r\n                cursor: grab;\r\n                display: flex !important;\r\n                justify-content: space-between;\r\n                align-items: center;\r\n                position: relative;\r\n                transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);\r\n            }\r\n\r\n            #sjItineraryApp .sj-card-item:hover {\r\n                transform: translateY(-3px);\r\n                box-shadow: 0 8px 24px rgba(25, 59, 51, 0.08) !important;\r\n                border-color: var(--sj-accent) !important;\r\n                \/* Soft gold glow *\/\r\n            }\r\n\r\n            #sjItineraryApp .sj-card-item:active {\r\n                cursor: grabbing;\r\n            }\r\n\r\n            #sjItineraryApp .sj-card-handle {\r\n                color: #a3b8b0 !important;\r\n                margin-right: 10px;\r\n                cursor: grab;\r\n                display: flex !important;\r\n                align-items: center;\r\n            }\r\n\r\n            #sjItineraryApp .sj-card-content {\r\n                flex-grow: 1;\r\n                min-width: 0;\r\n            }\r\n\r\n            #sjItineraryApp .sj-card-title {\r\n                font-weight: 600;\r\n                color: var(--sj-primary) !important;\r\n                margin: 0 0 5px 0;\r\n                outline: none;\r\n                font-size: 14.5px;\r\n            }\r\n\r\n            #sjItineraryApp .sj-card-actions {\r\n                display: flex !important;\r\n                align-items: center;\r\n                gap: 12px;\r\n                flex-shrink: 0;\r\n                margin-left: 12px;\r\n            }\r\n\r\n            #sjItineraryApp .sj-card-actions .dashicons {\r\n                cursor: pointer;\r\n                font-size: 20px;\r\n                width: 20px;\r\n                height: 20px;\r\n                transition: all 0.2s ease;\r\n            }\r\n\r\n            #sjItineraryApp .sj-card-actions .dashicons-clock {\r\n                color: var(--sj-text-muted) !important;\r\n                opacity: 0.7;\r\n            }\r\n\r\n            #sjItineraryApp .sj-card-actions .dashicons-clock:hover {\r\n                color: var(--sj-primary) !important;\r\n                opacity: 1;\r\n                transform: scale(1.1);\r\n            }\r\n\r\n            #sjItineraryApp .sj-card-actions .dashicons-trash {\r\n                color: #ff4d4d !important;\r\n                opacity: 0.8;\r\n            }\r\n\r\n            #sjItineraryApp .sj-card-actions .dashicons-trash:hover {\r\n                color: #d32f2f !important;\r\n                opacity: 1;\r\n                transform: scale(1.1);\r\n            }\r\n\r\n            \/* Sparkle Upsell *\/\r\n            #sjItineraryApp .sj-sparkle-hint {\r\n                font-size: 11px;\r\n                color: #d97706 !important;\r\n                background: #fef3c7 !important;\r\n                padding: 3px 8px !important;\r\n                border-radius: 6px !important;\r\n                display: inline-block !important;\r\n                margin-top: 6px;\r\n                cursor: pointer;\r\n                font-weight: 600;\r\n                transition: all 0.2s;\r\n            }\r\n\r\n            #sjItineraryApp .sj-sparkle-hint:hover {\r\n                background: #fde68a !important;\r\n            }\r\n\r\n            \/* Time Badges *\/\r\n            #sjItineraryApp .sj-time-badge {\r\n                font-size: 10px;\r\n                padding: 2px 6px !important;\r\n                border-radius: 4px !important;\r\n                display: inline-block !important;\r\n                margin-top: 6px;\r\n                font-weight: 600;\r\n            }\r\n\r\n            #sjItineraryApp .sj-time-morning {\r\n                background: #e0f2fe !important;\r\n                color: #0369a1 !important;\r\n            }\r\n\r\n            #sjItineraryApp .sj-time-afternoon {\r\n                background: #ffedd5 !important;\r\n                color: #c2410c !important;\r\n            }\r\n\r\n            #sjItineraryApp .sj-time-night {\r\n                background: #ede9fe !important;\r\n                color: #5b21b6 !important;\r\n            }\r\n\r\n            #sjItineraryApp .sj-time-exact {\r\n                background: #e2e8f0 !important;\r\n                color: #334155 !important;\r\n            }\r\n\r\n            \/* ESTADO \"GHOST\" CUANDO SE ARRASTRA *\/\r\n            #sjItineraryApp .sortable-ghost {\r\n                opacity: 0.3;\r\n                background: rgba(229, 192, 123, 0.05) !important;\r\n                border: 2px dashed var(--sj-accent) !important;\r\n                box-shadow: none !important;\r\n            }\r\n\r\n            \/* A\u00d1ADIR NUEVA TARJETA *\/\r\n            #sjItineraryApp .sj-add-card-btn {\r\n                background: transparent !important;\r\n                border: 2px dashed rgba(25, 59, 51, 0.15) !important;\r\n                color: var(--sj-text-muted) !important;\r\n                padding: 12px !important;\r\n                text-align: center;\r\n                border-radius: 12px !important;\r\n                cursor: pointer;\r\n                width: calc(100% - 32px);\r\n                margin: 0 16px 16px 16px;\r\n                transition: 0.2s;\r\n                font-weight: 600;\r\n            }\r\n\r\n            #sjItineraryApp .sj-add-card-btn:hover {\r\n                border-color: var(--sj-primary) !important;\r\n                color: var(--sj-primary) !important;\r\n                background: rgba(25, 59, 51, 0.02) !important;\r\n            }\r\n\r\n            \/* COLUMNA FANTASMA A\u00d1ADIR D\u00cdA AL FINAL *\/\r\n            #sjItineraryApp .sj-day-column-add-placeholder {\r\n                background: rgba(255, 255, 255, 0.4) !important;\r\n                border: 2px dashed rgba(25, 59, 51, 0.2) !important;\r\n                border-radius: 16px !important;\r\n                min-width: 310px;\r\n                max-width: 310px;\r\n                min-height: 200px;\r\n                display: flex !important;\r\n                align-items: center;\r\n                justify-content: center;\r\n                cursor: pointer;\r\n                flex-shrink: 0;\r\n                box-shadow: none !important;\r\n                transition: all 0.3s ease;\r\n            }\r\n\r\n            #sjItineraryApp .sj-day-column-add-placeholder:hover {\r\n                border-color: var(--sj-primary) !important;\r\n                background: rgba(255, 255, 255, 0.75) !important;\r\n                transform: translateY(-3px);\r\n                box-shadow: var(--sj-shadow-hover) !important;\r\n            }\r\n\r\n            #sjItineraryApp .sj-day-add-placeholder-content {\r\n                text-align: center;\r\n                color: var(--sj-primary) !important;\r\n                padding: 20px !important;\r\n            }\r\n\r\n            #sjItineraryApp .sj-day-add-placeholder-content .dashicons {\r\n                font-size: 32px;\r\n                width: 32px;\r\n                height: 32px;\r\n                margin-bottom: 8px;\r\n                color: var(--sj-accent) !important;\r\n                transition: transform 0.3s ease;\r\n            }\r\n\r\n            #sjItineraryApp .sj-day-column-add-placeholder:hover .sj-day-add-placeholder-content .dashicons {\r\n                transform: scale(1.15);\r\n            }\r\n\r\n            \/* OVERRIDES SWEETALERT2 (Estilo Solarpunk SJ) *\/\r\n            .swal2-popup .swal2-confirm {\r\n                background: linear-gradient(90deg, #AEE2E3, #8FD14F) !important;\r\n                color: #204035 !important;\r\n                font-weight: bold !important;\r\n                border: none !important;\r\n                border-radius: 30px !important;\r\n                padding: 12px 32px !important;\r\n                box-shadow: none !important;\r\n                transition: opacity 0.3s ease !important;\r\n            }\r\n\r\n            .swal2-popup .swal2-confirm:hover {\r\n                opacity: 0.9 !important;\r\n            }\r\n\r\n            .swal2-popup .swal2-cancel {\r\n                background: linear-gradient(90deg, #F3D287, #E5C07B) !important;\r\n                color: #193B33 !important;\r\n                border: none !important;\r\n                font-weight: bold !important;\r\n                border-radius: 30px !important;\r\n                padding: 12px 32px !important;\r\n                box-shadow: none !important;\r\n                transition: all 0.3s ease !important;\r\n            }\r\n\r\n            .swal2-popup .swal2-cancel:hover {\r\n                opacity: 0.9 !important;\r\n                color: #112F24 !important;\r\n            }\r\n\r\n            .sj-planner-filter-select {\r\n                width: 100%;\r\n                padding: 10px 32px 10px 16px;\r\n                border: 1px solid rgba(25, 59, 51, 0.15);\r\n                border-radius: 20px;\r\n                background-color: #f8fafc;\r\n                color: #193B33;\r\n                font-family: 'Outfit', sans-serif;\r\n                font-weight: 600;\r\n                font-size: 14px;\r\n                margin-bottom: 20px;\r\n                cursor: pointer;\r\n            }\r\n            .sj-planner-filter-select:focus {\r\n                outline: none;\r\n                border-color: #E5C07B;\r\n            }\r\n            \r\n            .sj-upsell-link {\r\n                display: inline-block;\r\n                margin-top: 15px;\r\n                color: #E8C57D;\r\n                background: #193B33;\r\n                padding: 8px 16px;\r\n                border-radius: 20px;\r\n                font-weight: 700;\r\n                text-decoration: none;\r\n                font-size: 14px;\r\n                transition: opacity 0.2s;\r\n            }\r\n            .sj-upsell-link:hover {\r\n                opacity: 0.9;\r\n                color: #FFF;\r\n            }\r\n            .sj-upsell-text {\r\n                font-size: 13px;\r\n                color: #57736b;\r\n                margin-top: 12px;\r\n                display: block;\r\n            }\r\n\r\n            .swal2-popup .sj-swal-upsell-btn {\r\n                background: linear-gradient(90deg, #E8C57D, #D4A373) !important;\r\n                color: #204035 !important;\r\n            }\r\n\r\n            .swal2-popup .swal2-close {\r\n                color: #193B33 !important;\r\n                transition: 0.3s !important;\r\n            }\r\n\r\n            .swal2-popup .swal2-close:hover {\r\n                color: #c2410c !important;\r\n            }\r\n\r\n            .swal2-popup .swal2-input,\r\n            .swal2-popup .swal2-select {\r\n                box-sizing: border-box !important;\r\n                width: 90% !important;\r\n                max-width: 90% !important;\r\n                margin: 1em auto !important;\r\n                border-radius: 30px !important;\r\n            }\r\n\r\n            \/* M\u00d3VILES *\/\r\n            \/* M\u00d3VILES *\/\r\n            @media (max-width: 768px) {\r\n                #sjItineraryApp .sj-itinerary-wrapper {\r\n                    flex-direction: column !important;\r\n                    padding: 24px 16px !important;\r\n                    margin: 0 16px !important;\r\n                    width: auto !important;\r\n                }\r\n\r\n                #sjItineraryApp .sj-itinerary-header {\r\n                    flex-direction: column !important;\r\n                    align-items: flex-start;\r\n                    margin-bottom: 20px;\r\n                }\r\n\r\n                #sjItineraryApp .sj-trip-banner {\r\n                    height: 150px;\r\n                    padding: 15px;\r\n                }\r\n\r\n                #sjItineraryApp .sj-days-container {\r\n                    flex-direction: column !important;\r\n                    overflow-x: visible;\r\n                    gap: 16px;\r\n                    width: 100%;\r\n                }\r\n\r\n                #sjItineraryApp .sj-day-column {\r\n                    min-width: 100%;\r\n                    max-width: 100%;\r\n                }\r\n\r\n                #sjItineraryApp .sj-day-column-add-placeholder {\r\n                    min-width: 100%;\r\n                    max-width: 100%;\r\n                    min-height: 60px !important;\r\n                    border-radius: 30px !important;\r\n                    padding: 10px !important;\r\n                    margin-top: 10px;\r\n                    box-sizing: border-box;\r\n                }\r\n\r\n                \/* Agrupaci\u00f3n de botones en m\u00f3viles *\/\r\n                #sjItineraryApp .sj-header-actions {\r\n                    width: 100%;\r\n                    justify-content: space-between;\r\n                }\r\n\r\n                #sjItineraryApp .sj-header-actions .sj-btn {\r\n                    flex-grow: 1;\r\n                    justify-content: center;\r\n                    padding: 0 10px !important;\r\n                    font-size: 13px;\r\n                }\r\n\r\n                #sjItineraryApp .sj-btn:not(.sj-btn-icon-only):not(.sj-btn-row .sj-btn):not(.sj-header-actions .sj-btn) {\r\n                    width: 100%;\r\n                    justify-content: center;\r\n                }\r\n\r\n                #sjItineraryApp .sj-itinerary-actions-grid {\r\n                    max-width: 100%;\r\n                }\r\n            }\r\n\r\n            \/* SwearAlert Customizations para botones *\/\r\n            .sj-swal-actions {\r\n                gap: 15px;\r\n            }\r\n\r\n            .sj-swal-actions .sj-btn {\r\n                margin: 0 !important;\r\n            }\r\n\r\n            \/* Ajustes espec\u00edficos para m\u00f3viles *\/\r\n            @media (max-width: 768px) {\r\n                #sjItineraryApp .sj-itinerary-header {\r\n                    margin-bottom: 35px;\r\n                    \/* Espacio extra cr\u00edtico debajo de los botones en m\u00f3viles *\/\r\n                }\r\n\r\n                #sjItineraryApp .sj-trip-banner {\r\n                    margin-top: 15px;\r\n                }\r\n            }\r\n        <\/style>\r\n\r\n        <!-- HTML ESTRUCTURA -->\r\n        <div class=\"sj-itinerary-wrapper\" id=\"sjItineraryApp\">\r\n            <div class=\"sj-itinerary-header\">\r\n                <!-- Izquierda: Selector de viajes -->\r\n                <div style=\"display:flex; gap:10px; align-items:center; flex-wrap:nowrap; width:100%; max-width:350px;\">\r\n                    <div style=\"position:relative; flex-grow:1;\">\r\n                        <button id=\"sjBtnMyTrips\" class=\"sj-btn\" onclick=\"sjGoToDashboard()\"\r\n                            style=\"display:none; width:100%; justify-content:space-between; align-items:center; background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(10px); border: 1px solid rgba(229, 192, 123, 0.3); color: var(--sj-text); font-weight:600; padding: 10px 15px; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); transition: all 0.3s ease;\">\r\n                            <span style=\"display:flex; align-items:center; gap:5px;\"><span\r\n                                    class=\"dashicons dashicons-location-alt\" style=\"color:var(--sj-primary);\"><\/span>\r\n                                Minhas Viagens<\/span>\r\n                            <span class=\"dashicons dashicons-grid-view\"\r\n                                style=\"font-size: 16px; color:var(--sj-primary);\"><\/span>\r\n                        <\/button>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- Derecha: Acciones R\u00e1pidas (PLG) -->\r\n                <div class=\"sj-header-actions\" style=\"display:flex; gap:10px; align-items:center; flex-wrap:wrap;\">\r\n                    <button class=\"sj-btn sj-btn-secondary\" onclick=\"sjCreateNewTrip()\"\r\n                        style=\"border:none; background:transparent; font-weight:600; color:var(--sj-text-muted);\">\r\n                        <span class=\"dashicons dashicons-plus\"><\/span> Nova Viagem                    <\/button>\r\n                    <button class=\"sj-btn sj-btn-secondary\" onclick=\"sjSaveItinerary()\"\r\n                        style=\"border:none; background:transparent; font-weight:600; color:var(--sj-text-muted);\">\r\n                        <span class=\"dashicons dashicons-cloud\"><\/span> Salvar                    <\/button>\r\n                    <button class=\"sj-btn sj-btn-gold\" onclick=\"sjExportToCalendar()\" style=\"padding:0 20px;\">\r\n                        <span class=\"dashicons dashicons-calendar-alt\"><\/span>\r\n                        Exportar roteiro                    <\/button>\r\n                    <button class=\"sj-btn sj-btn-primary\" onclick=\"sjShareTrip()\" style=\"padding:0 20px;\">\r\n                        <span class=\"dashicons dashicons-share-alt2\"><\/span> Compartilhar minha rota                    <\/button>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- BANNER DEL VIAJE -->\r\n            <div class=\"sj-trip-banner\" id=\"sjTripBanner\" style=\"display:none;\">\r\n                <div class=\"sj-trip-banner-content\">\r\n                    <h1 id=\"sjTripBannerTitle\"\r\n                        style=\"margin:0; font-size:32px; font-weight:800; color:var(--sj-text); line-height:1.2;\"><\/h1>\r\n                    <div style=\"display:flex; gap:15px; margin-top:15px; align-items:center;\">\r\n                        <button class=\"sj-btn-link\" onclick=\"sjOpenTripSettings()\"\r\n                            style=\"font-weight:600; font-size:14px; color:var(--sj-text-muted);\">\r\n                            <span class=\"dashicons dashicons-admin-generic\"\r\n                                style=\"vertical-align:middle; font-size:16px;\"><\/span>\r\n                            Configura\u00e7\u00f5es da viagem                        <\/button>\r\n                        <button class=\"sj-btn sj-btn-secondary\" onclick=\"sjAddDay()\"\r\n                            style=\"height:32px; padding:0 15px; font-size:13px; font-weight:600; border-radius:16px;\">\r\n                            <span class=\"dashicons dashicons-plus-alt2\" style=\"font-size:14px; line-height:1.5;\"><\/span>\r\n                            Adicionar Dia                        <\/button>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Contenedor Horizontal de D\u00edas -->\r\n            <div class=\"sj-days-container\" id=\"sjDaysContainer\">\r\n                <!-- Los d\u00edas se inyectan ac\u00e1 por JS -->\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- EL MOTOR JAVASCRIPT -->\r\n        <script>\r\n            document.addEventListener('DOMContentLoaded', function () {\r\n                \/\/ Esperar a que Sortable cargue (Al usar CDN a veces tarda ms)\r\n                function initApp() {\r\n                    if (typeof Sortable === 'undefined') {\r\n                        setTimeout(initApp, 50);\r\n                        return;\r\n                    }\r\n                    sjForceGlassmorphismAncestors();\r\n                    sjLoadItinerary();\r\n                }\r\n                initApp();\r\n            });\r\n\r\n            \/\/ Forzar transparencia de ancestros para que luzca el Glassmorphism\r\n            function sjForceGlassmorphismAncestors() {\r\n                const app = document.getElementById('sjItineraryApp');\r\n                if (app) {\r\n                    let parent = app.parentElement;\r\n                    while (parent && parent.tagName !== 'BODY') {\r\n                        parent.style.setProperty('background', 'transparent', 'important');\r\n                        parent.style.setProperty('background-color', 'transparent', 'important');\r\n                        parent.style.setProperty('background-image', 'none', 'important');\r\n                        parent.style.setProperty('box-shadow', 'none', 'important');\r\n                        parent = parent.parentElement;\r\n                    }\r\n                }\r\n            }\r\n\r\n            \/\/ 1. EL ESTADO GLOBAL (Memoria de Trabajo)\r\n            let sjState = {\r\n                id: 0, \/\/ 0 = Nuevo. Si > 0 = Cargado de BD\r\n                title: \"Nova Viagem\",\r\n                coverImage: \"\",\r\n                cityId: 0,\r\n                startDate: \"\",\r\n                endDate: \"\",\r\n                days: []\r\n            };\r\n\r\n            const isUserLoggedIn = false;\r\n            const ajaxUrl = 'https:\/\/spacejourney.app\/wp-admin\/admin-ajax.php';\r\n            const securityNonce = 'e79f5e63df';\r\n            const userMembershipLevel = 0;\r\n            const sjPlannerExperiences = [{\"city\":\"Cidade do M\\u00e9xico\",\"slug\":\"cidade-do-mexico\",\"constellation\":\"Constela\\u00e7\\u00e3o das Am\\u00e9ricas\",\"country\":\"Mundo\",\"experiences\":[{\"id\":7251,\"title\":\"As Ilhas da CU | O campus que \\u00e9 patrim\\u00f4nio\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/as-ilhas-da-cu-o-campus-que-e-patrimonio\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/12570366-300x200.jpeg\",\"duration\":\"90\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7253,\"title\":\"Parque M\\u00e9xico | O o\\u00e1sis el\\u00edptico da Condessa\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/parque-mexico-o-oasis-eliptico-da-condessa\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/220caf1f-dd6b-4972-bbf2-70818a5f0194-300x169.jpg\",\"duration\":\"60\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7255,\"title\":\"Quiosque Morisco | A joia geom\\u00e9trica de Santa Mar\\u00eda\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/quiosque-morisco-a-joia-geometrica-de-santa-maria\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bypass-landscape-kiosko-morisco-la-joya-de-santa-maria-la-ribera-v13d-300x169.jpg\",\"duration\":\"45\",\"xp\":\"80\",\"badge\":\"free\"},{\"id\":7257,\"title\":\"Audiorama Chapultepec | O ref\\u00fagio do sil\\u00eancio no CDMX\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/audiorama-chapultepec-o-refugio-do-silencio-no-cdmx\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bypass-landscape-audiorama-chapultepec-el-refugio-del-silencio-v13d-300x169.jpg\",\"duration\":\"60\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7259,\"title\":\"Jardim Verde Roma | O laborat\\u00f3rio de resili\\u00eancia urbana\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/jardim-verde-roma-o-laboratorio-de-resiliencia-urbana\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/94d13783-3836-46ea-9987-eff60fbbf6e3-300x181.jpg\",\"duration\":\"90\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7241,\"title\":\"Coyoac\\u00e1n: Becos de Frida\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/coyoacan-becos-de-frida\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bypass-landscape-coyoacan-callejones-frida-mistica-v13d-300x169.jpg\",\"duration\":\"80\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7243,\"title\":\"Biblioteca Vasconcelos: A arca de cristal no CDMX\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/biblioteca-vasconcelos-a-arca-de-cristal-no-cdmx\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/839ab076-ec89-4620-b8fe-a3baf6ca23ed-300x189.jpg\",\"duration\":\"90\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7245,\"title\":\"Ex-Convento do Deserto dos Le\\u00f5es: O sussurro da floresta\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/ex-convento-do-deserto-dos-leoes-o-sussurro-da-floresta\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bypass-landscape-ex-convento-desierto-leones-susurro-bosque-v13d-300x169.jpg\",\"duration\":\"120\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7247,\"title\":\"Plaza de San Jacinto (San \\u00c1ngel): O jardim dos artistas\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/plaza-de-san-jacinto-san-angel-o-jardim-dos-artistas\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bypass-landscape-plaza-san-jacinto-jardin-artistas-v13d-300x169.jpg\",\"duration\":\"60\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7249,\"title\":\"Plaza de Santo Domingo: Os portais da mem\\u00f3ria\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/plaza-de-santo-domingo-os-portais-da-memoria\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bypass-landscape-plaza-santo-domingo-portales-memoria-v13d-300x169.jpg\",\"duration\":\"40\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7228,\"title\":\"Templo Mayor: O cora\\u00e7\\u00e3o sagrado do Imp\\u00e9rio Mexicano\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/templo-mayor-o-coracao-sagrado-do-imperio-mexicano\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/gdainznsyfa-300x200.jpg\",\"duration\":\"150\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7233,\"title\":\"Pujol &#038; Quintonil: O Olimpo da alta gastronomia mexicana\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/pujol-quintonil-o-olimpo-da-alta-gastronomia-mexicana\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/44b9c96e-e14b-484a-984b-3d59d4bb646c-300x113.jpg\",\"duration\":\"210\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7235,\"title\":\"Museu Nacional de Antropologia: O or\\u00e1culo da \\u00e9poca pr\\u00e9-hisp\\u00e2nica\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/museu-nacional-de-antropologia-o-oraculo-da-epoca-pre-hispanica\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ndxkwolenku-300x212.jpg\",\"duration\":\"180\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7237,\"title\":\"Xochimilco: Protocolo de canal privado e m\\u00edstica das chinampas\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/xochimilco-protocolo-de-canal-privado-e-mistica-das-chinampas\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/12638539-300x200.jpeg\",\"duration\":\"180\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7239,\"title\":\"Teotihuac\\u00e1n: voo de bal\\u00e3o ao nascer do sol com vista para as pir\\u00e2mides\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/teotihuacan-voo-de-balao-ao-nascer-do-sol-com-vista-para-as-piramides\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/eo9v20ig3z0-300x200.jpg\",\"duration\":\"240\",\"xp\":\"400\",\"badge\":\"premium\"}]},{\"city\":\"Londres\",\"slug\":\"londres-pt\",\"constellation\":\"Constela\\u00e7\\u00e3o Europeia\",\"country\":\"Mundo\",\"experiences\":[{\"id\":7626,\"title\":\"A caminhada da rainha | Caminhada pelo T\\u00e2misa\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/a-caminhada-da-rainha-caminhada-pelo-tamisa\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/ujiiuat1hz0-300x225.jpg\",\"duration\":\"89\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7628,\"title\":\"Jardim de Kyoto: o jardim japon\\u00eas em Londres\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/jardim-de-kyoto-o-jardim-japones-em-londres\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/6d3eaf4d-cdae-41e6-977f-4b96a5c7771b-300x225.jpg\",\"duration\":\"90\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7630,\"title\":\"Little Venice: o passeio mais tranquilo pelos canais de Londres\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/little-venice-o-passeio-mais-tranquilo-pelos-canais-de-londres\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/unwohpmx8sw-300x200.jpg\",\"duration\":\"89\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7632,\"title\":\"Conservat\\u00f3rio Barbican: o o\\u00e1sis solarpunk de Londres\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/conservatorio-barbican-o-oasis-solarpunk-de-londres\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/a318db16-e725-4f25-bc3b-9ce030769be0-300x225.jpg\",\"duration\":\"60\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7634,\"title\":\"St Dunstan no Oriente: o jardim entre as ru\\u00ednas\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/st-dunstan-no-oriente-o-jardim-entre-as-ruinas\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/St-Dunstan-in-the-East-London-Main-Wide-Fotorealistic-300x167.jpg\",\"duration\":\"60\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7616,\"title\":\"Colina da Pr\\u00edmula | Horizonte de Londres\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/colina-da-primula-horizonte-de-londres\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/wkyfavx8uc8-300x199.jpg\",\"duration\":\"8\",\"xp\":\"200\",\"badge\":\"secret\"},{\"id\":7618,\"title\":\"Jardim do C\\u00e9u | A floresta nas nuvens\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/jardim-do-ceu-a-floresta-nas-nuvens\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/17c5730f-1332-4381-a173-22a93b96f132-300x154.jpg\",\"duration\":\"6\",\"xp\":\"200\",\"badge\":\"secret\"},{\"id\":7620,\"title\":\"Docas de Santa Catarina | O porto secreto da Tower Bridge\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/docas-de-santa-catarina-o-porto-secreto-da-tower-bridge\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/00d818a9-8209-4082-9dec-f51769c2e1bb-300x200.jpg\",\"duration\":\"1245\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7622,\"title\":\"BAPS Shri Swaminarayan Mandir | O templo hindu escondido\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/baps-shri-swaminarayan-mandir-o-templo-hindu-escondido\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/51998c36-df66-46a3-b778-49ec9832d4d5-300x211.jpg\",\"duration\":\"120\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7624,\"title\":\"Mercado Leadenhall | Beco Diagonal \\u00e0s 6h\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/mercado-leadenhall-beco-diagonal-as-6h\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/dc7uwjrnags-300x200.jpg\",\"duration\":\"45\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7600,\"title\":\"Salas de Guerra de Churchill | O bunker da liberdade\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/salas-de-guerra-de-churchill-o-bunker-da-liberdade\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/9edc6c0f-961c-4164-ad77-e74ddd4ffc71-300x225.jpg\",\"duration\":\"100\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7602,\"title\":\"Pal\\u00e1cio de Kensington | O jardim das mem\\u00f3rias reais\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/palacio-de-kensington-o-jardim-das-memorias-reais\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/4bad56a5-3560-4237-99a2-95fe903477ec-300x225.jpg\",\"duration\":\"90\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7604,\"title\":\"Abadia de Westminster O sussurro da hist\\u00f3ria em pedra (Verger Tour)\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/abadia-de-westminster-o-sussurro-da-historia-em-pedra-verger-tour\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/33334264-300x199.jpeg\",\"duration\":\"120\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7612,\"title\":\"Cutty Sark | O gigante de cobre sob o vidro\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/cutty-sark-o-gigante-de-cobre-sob-o-vidro\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/o-rjptppb0u-300x145.jpg\",\"duration\":\"2\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7614,\"title\":\"Torre de Londres: Primeiro Protocolo de Acesso e Cerim\\u00f4nia de Chave\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/torre-de-londres-primeiro-protocolo-de-acesso-e-cerimonia-de-chave\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nsotqaul-4-300x200.jpg\",\"duration\":\"3\",\"xp\":\"400\",\"badge\":\"premium\"}]},{\"city\":\"Miami\",\"slug\":\"miami-pt\",\"constellation\":\"Constela\\u00e7\\u00e3o das Am\\u00e9ricas\",\"country\":\"Mundo\",\"experiences\":[{\"id\":7528,\"title\":\"Parque Lummus Miami | Jardim de n\\u00e9on da Ocean Drive\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/parque-lummus-miami-jardim-de-neon-da-ocean-drive\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/34334889-300x225.jpeg\",\"duration\":\"75\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7530,\"title\":\"Wynwood Caminhos Miami | O museu das ruas\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/wynwood-caminhos-miami-o-museu-das-ruas\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/miami-custom-landscape-wynwood-pathways-museo-calles-miami-Wynwood-Walls-colorful-mu-v15-300x169.jpg\",\"duration\":\"120\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7532,\"title\":\"Parque SoundScape Miami | Sinfonia sob as palmeiras\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/parque-soundscape-miami-sinfonia-sob-as-palmeiras\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/miami-pexels-landscape-SoundScape-Park-Miami-Beach-v14-300x169.jpg\",\"duration\":\"60\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7516,\"title\":\"Floresta Encantada Miami | Floresta das Fadas de Miami\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/floresta-encantada-miami-floresta-das-fadas-de-miami\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/miami-custom-landscape-enchanted-forest-bosque-hadas-miami-live-oak-trees-Spanish-mo-v15-300x169.jpg\",\"duration\":\"45\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7518,\"title\":\"Matheson Hammock Park Miami | O atol artificial\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/matheson-hammock-park-miami-o-atol-artificial\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/miami-pexels-landscape-Matheson-Hammock-Park-atoll-po-v14-300x169.jpg\",\"duration\":\"120\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7520,\"title\":\"Parque Alice Wainwright Miami | O mirante do mangue\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/parque-alice-wainwright-miami-o-mirante-do-mangue\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/miami-pexels-landscape-Alice-Wainwright-Park-Miami-wa-v14-300x169.jpg\",\"duration\":\"60\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7522,\"title\":\"Antigo Mosteiro Espanhol Miami | O labirinto m\\u00edstico\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/antigo-mosteiro-espanhol-miami-o-labirinto-mistico\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/miami-unsplash-landscape-Ancient-Spanish-Monastery-Miam-v14-300x169.jpg\",\"duration\":\"90\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7524,\"title\":\"Museu e Jardins Vizcaya Miami | O renascimento da \\u00e1gua\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/museu-e-jardins-vizcaya-miami-o-renascimento-da-agua\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/9ef1ec5c-bdcd-4213-abc2-953e583b8da2-300x199.jpg\",\"duration\":\"150\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7526,\"title\":\"O Kampong Miami | Ref\\u00fagio Bot\\u00e2nico Coconut Grove\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/o-kampong-miami-refugio-botanico-coconut-grove\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/miami-pexels-landscape-The-Kampong-Coconut-Grove-bota-v14-300x169.jpg\",\"duration\":\"120\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7504,\"title\":\"Aerobarco Everglades | A pulsa\\u00e7\\u00e3o do rio de grama\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/aerobarco-everglades-a-pulsacao-do-rio-de-grama\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/miami-custom-landscape-everglades-airboat-pulso-rio-hierba-Everglades-airboat-speed-v15-300x169.jpg\",\"duration\":\"120\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7506,\"title\":\"Museu Rubell | O santu\\u00e1rio da arte contempor\\u00e2nea\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/museu-rubell-o-santuario-da-arte-contemporanea\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/miami-pexels-landscape-Rubell-Museum-Miami-interior-g-v14-300x169.jpg\",\"duration\":\"150\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7508,\"title\":\"Museu da Ci\\u00eancia Frost | O olho do oceano\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/museu-da-ciencia-frost-o-olho-do-oceano\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/miami-unsplash-landscape-Frost-Science-Museum-aquarium-v14-300x169.jpg\",\"duration\":\"180\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7510,\"title\":\"Artechouse Miami | O laborat\\u00f3rio de luz\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/artechouse-miami-o-laboratorio-de-luz\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/miami-pexels-landscape-Artechouse-Miami-digital-exhib-v14-300x169.jpg\",\"duration\":\"75\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7512,\"title\":\"Museu de Arte P\\u00e9rez Miami | O jardim suspenso \\u00e0 beira da ba\\u00eda\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/museu-de-arte-perez-miami-o-jardim-suspenso-a-beira-da-baia\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/miami-custom-landscape-perez-art-museum-miami-pamm-jardin-colgante-Perez-Art-Museum-hanging-v15-300x169.jpg\",\"duration\":\"120\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7514,\"title\":\"Superazul Miami | O portal das dimens\\u00f5es\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/superazul-miami-o-portal-das-dimensoes\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/miami-unsplash-landscape-Superblue-Miami-immersive-art-v14-300x169.jpg\",\"duration\":\"90\",\"xp\":\"400\",\"badge\":\"premium\"}]},{\"city\":\"Nova York\",\"slug\":\"nova-york\",\"constellation\":\"Constela\\u00e7\\u00e3o das Am\\u00e9ricas\",\"country\":\"Mundo\",\"experiences\":[{\"id\":7558,\"title\":\"Bonde da Ilha Roosevelt: voo urbano sobre o East River\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/bonde-da-ilha-roosevelt-voo-urbano-sobre-o-east-river\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nyc-custom-landscape-roosevelt-island-tramway-vuelo-urbano-east-river-Roosevelt-Island-Tramway-v16-300x169.jpg\",\"duration\":\"15\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7560,\"title\":\"Little Island: O Parque no Hudson\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/little-island-o-parque-no-hudson\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nyc-pexels-landscape-Little-Island-park-Pier-55-New-v14-300x169.jpg\",\"duration\":\"60\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7562,\"title\":\"Balsa de Staten Island: mirante do porto de Nova York\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/balsa-de-staten-island-mirante-do-porto-de-nova-york\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nyc-custom-landscape-staten-island-ferry-mirador-libertad-Staten-Island-Ferry-Manha-v16-300x169.jpg\",\"duration\":\"60\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7564,\"title\":\"O Navio: Geometria urbana e fluxo vertical\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/o-navio-geometria-urbana-e-fluxo-vertical\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nyc-pexels-landscape-The-Vessel-Hudson-Yards-NYC-v14-300x169.jpg\",\"duration\":\"45\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7546,\"title\":\"A caminhada | A floresta secreta do Central Park\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/a-caminhada-a-floresta-secreta-do-central-park\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nyc-pexels-landscape-Central-Park-The-Ramble-forest-v14-300x169.jpg\",\"duration\":\"50\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7548,\"title\":\"Passeio de Brooklyn Heights | A varanda da cidade\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/passeio-de-brooklyn-heights-a-varanda-da-cidade\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nyc-pexels-landscape-Brooklyn-Heights-Promenade-vie-v14-300x169.jpg\",\"duration\":\"45\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7550,\"title\":\"Parque Greenacre | Cachoeira escondida do centro da cidade\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/parque-greenacre-cachoeira-escondida-do-centro-da-cidade\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nyc-pexels-landscape-Greenacre-Park-waterfall-v14-300x169.jpg\",\"duration\":\"30\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7552,\"title\":\"A Biblioteca Morgan | O bunker do conhecimento em Nova York\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/a-biblioteca-morgan-o-bunker-do-conhecimento-em-nova-york\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nyc-pexels-landscape-Morgan-Library-McKim-Room-v14-300x169.jpg\",\"duration\":\"60\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7554,\"title\":\"\\u00c1trio da Funda\\u00e7\\u00e3o Ford | Selva sob vidro\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/atrio-da-fundacao-ford-selva-sob-vidro\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nyc-unsplash-landscape-Ford-Foundation-Building-garde-v14-300x169.jpg\",\"duration\":\"40\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7556,\"title\":\"O Acre Elevado | O jardim secreto de Wall Street\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/o-acre-elevado-o-jardim-secreto-de-wall-street\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nyc-pexels-landscape-The-Elevated-Acre-park-Wall-St-v14-300x169.jpg\",\"duration\":\"45\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7536,\"title\":\"Passeio de helic\\u00f3ptero em Nova York | O Or\\u00e1culo do Horizonte\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/passeio-de-helicoptero-em-nova-york-o-oraculo-do-horizonte\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nyc-pexels-landscape-Manhattan-aerial-view-helicopt-v14-300x169.jpg\",\"duration\":\"20\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7538,\"title\":\"Museu Guggenheim Nova York | A espiral da arte moderna\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/museu-guggenheim-nova-york-a-espiral-da-arte-moderna\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nyc-unsplash-landscape-Guggenheim-Museum-architecture-v14-300x169.jpg\",\"duration\":\"120\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7540,\"title\":\"Le Pavillon Nova York | Jardim comest\\u00edvel de Daniel Boulud\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/le-pavillon-nova-york-jardim-comestivel-de-daniel-boulud\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nyc-unsplash-landscape-Le-Pavillon-restaurant-gourmet-v14-300x169.jpg\",\"duration\":\"150\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7542,\"title\":\"O Met Cloisters Nova York | M\\u00edstica medieval no Hudson\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/o-met-cloisters-nova-york-mistica-medieval-no-hudson\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nyc-pexels-landscape-The-Met-Cloisters-fort-tryon-v14-300x169.jpg\",\"duration\":\"120\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7544,\"title\":\"Summit One Vanderbilt Nova York | Mergulhe nas nuvens\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/summit-one-vanderbilt-nova-york-mergulhe-nas-nuvens\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nyc-pexels-landscape-Summit-One-Vanderbilt-mirrors-v14-300x169.jpg\",\"duration\":\"90\",\"xp\":\"400\",\"badge\":\"premium\"}]},{\"city\":\"Paris\",\"slug\":\"paris-pt\",\"constellation\":\"Constela\\u00e7\\u00e3o Europeia\",\"country\":\"Mundo\",\"experiences\":[{\"id\":7577,\"title\":\"Torre Eiffel: o mirante do Trocad\\u00e9ro\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/torre-eiffel-o-mirante-do-trocadero\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/pexels-landscape-Eiffel-Tower-sunrise-beautiful-300x169.jpg\",\"duration\":\"40\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7592,\"title\":\"Canal Saint-Martin: a art\\u00e9ria bo\\u00eamia de Paris\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/canal-saint-martin-a-arteria-boemia-de-paris\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/14348452-300x200.jpeg\",\"duration\":\"120\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7594,\"title\":\"Square du Vert-Galant: a proa da Ile de la Cit\\u00e9\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/square-du-vert-galant-a-proa-da-ile-de-la-cite\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/0b910532-1c1b-4007-8311-58d5496b66d3-300x201.jpg\",\"duration\":\"45\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7596,\"title\":\"Jardin du Luxembourg: a eleg\\u00e2ncia do Quartier Latin\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/jardin-du-luxembourg-a-elegancia-do-quartier-latin\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/pexels-landscape-Luxembourg-Palace-Paris-sunny-300x200.jpg\",\"duration\":\"60\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7598,\"title\":\"Promenade Plant\\u00e9e: O jardim elevado de Paris\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/promenade-plantee-o-jardim-elevado-de-paris\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bypass-landscape-promenade-plantee-el-jardin-elevado-de-paris-300x199.jpg\",\"duration\":\"90\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":7582,\"title\":\"Passage des Panoramas: O labirinto de vidro e selo\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/passage-des-panoramas-o-labirinto-de-vidro-e-selo\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bypass-landscape-passage-des-panoramas-el-laberinto-de-cristal-y-sellos-300x169.jpg\",\"duration\":\"45\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7584,\"title\":\"Mus\\u00e9e de la Vie Romantique: O jardim das ideias\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/musee-de-la-vie-romantique-o-jardim-das-ideias\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bypass-landscape-musee-de-la-vie-romantique-el-jardin-escondido-de-pigalle-300x169.jpg\",\"duration\":\"50\",\"xp\":\"200\",\"badge\":\"secret\"},{\"id\":7587,\"title\":\"Maison de Victor Hugo: A alma da Place des Vosges\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/maison-de-victor-hugo-a-alma-da-place-des-vosges\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bypass-landscape-maison-victor-hugo-paris-place-des-vosges-300x169.jpg\",\"duration\":\"60\",\"xp\":\"250\",\"badge\":\"secret\"},{\"id\":7590,\"title\":\"Ar\\u00e8nes de Lut\\u00e8ce: O eco da G\\u00e1lia Romana\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/arenes-de-lutece-o-eco-da-galia-romana\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bypass-landscape-arenes-de-lutece-el-eco-de-la-galia-romana-300x169.jpg\",\"duration\":\"45\",\"xp\":\"200\",\"badge\":\"secret\"},{\"id\":7610,\"title\":\"Parque des Buttes-Chaumont | O templo sobre o abismo\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/parque-des-buttes-chaumont-o-templo-sobre-o-abismo\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/gznhhbmex7u-300x225.jpg\",\"duration\":\"75\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":7566,\"title\":\"Sainte-Chapelle: O relic\\u00e1rio medieval da luz\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/sainte-chapelle-o-relicario-medieval-da-luz\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bypass-landscape-sainte-chapelle-relicario-luz-medieval-v13b-300x169.jpg\",\"duration\":\"45\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7568,\"title\":\"Jantar no Sena: O cruzeiro de vidro e luzes em Paris\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/jantar-no-sena-o-cruzeiro-de-vidro-e-luzes-em-paris\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bypass-landscape-cena-sena-crucero-cristal-luces-v13b-300x169.jpg\",\"duration\":\"150\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7570,\"title\":\"Mus\\u00e9e d&#8217;Orsay: Impressionismo na antiga esta\\u00e7\\u00e3o\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/musee-dorsay-impressionismo-na-antiga-estacao\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bypass-landscape-musee-dorsay-impresionismo-antigua-estacion-v13b-300x169.jpg\",\"duration\":\"90\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7572,\"title\":\"\\u00d3pera Garnier: O pal\\u00e1cio da m\\u00fasica e do ouro em Paris\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/opera-garnier-o-palacio-da-musica-e-do-ouro-em-paris\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bypass-landscape-opera-garnier-palacio-musica-oro-v13b-300x169.jpg\",\"duration\":\"60\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":7574,\"title\":\"Catacumbas de Paris: O Imp\\u00e9rio da Morte\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/catacumbas-de-paris-o-imperio-da-morte\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/bypass-landscape-catacumbas-paris-imperio-muerte-vip-v13b-300x169.jpg\",\"duration\":\"90\",\"xp\":\"400\",\"badge\":\"premium\"}]},{\"city\":\"Roma\",\"slug\":\"roma-pt\",\"constellation\":\"Constela\\u00e7\\u00e3o Europeia\",\"country\":\"Mundo\",\"experiences\":[{\"id\":6731,\"title\":\"O Gianicolo: a colina panor\\u00e2mica de Roma\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/o-gianicolo-a-colina-panoramica-de-roma\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Gianicolo-Roma-Horizontal-Space-Journey-300x167.jpg\",\"duration\":\"90\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":6507,\"title\":\"O Vittoriano: A m\\u00e1quina do tempo do m\\u00e1rmore\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/o-vittoriano-a-maquina-do-tempo-do-marmore\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/dacdebdqjpk-300x198.jpg\",\"duration\":\"120\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":6509,\"title\":\"O Coliseu Romano: visita exterior\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/o-coliseu-romano-visita-exterior\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/qh0c7c5gjj8-300x200.jpg\",\"duration\":\"120\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":6511,\"title\":\"O jardim de laranjas e a chave secreta\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/o-jardim-de-laranjas-e-a-chave-secreta\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Giardino-degli-Aranco-Space-Journey-Horizontal-300x127.jpg\",\"duration\":\"90\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":6514,\"title\":\"Trastevere: o sussurro dos paralelep\\u00edpedos\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/trastevere-o-sussurro-dos-paralelepipedos\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Trastevere-Space-Journey-Horizontal-300x167.png\",\"duration\":\"90\",\"xp\":\"100\",\"badge\":\"free\"},{\"id\":6703,\"title\":\"Fontana di Trevi em sil\\u00eancio: O ritual da \\u00e1gua\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/fontana-di-trevi-em-silencio-o-ritual-da-agua\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/i1lv2yx67gi-300x200.jpg\",\"duration\":\"45\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":6705,\"title\":\"O Pante\\u00e3o: O portal da luz\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/o-panteao-o-portal-da-luz\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/tlyzsnu8md0-300x200.jpg\",\"duration\":\"60\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":6723,\"title\":\"Parco degli acquedotti: Os gigantes de pedra\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/parco-degli-acquedotti-os-gigantes-de-pedra\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/32a1ecbf-d3dc-494c-8531-0a4d04f40382-300x200.jpg\",\"duration\":\"120\",\"xp\":\"200\",\"badge\":\"secret\"},{\"id\":6725,\"title\":\"Via appia antica: O ritmo da eternidade\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/via-appia-antica-o-ritmo-da-eternidade\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/efa41f36-f333-4dcd-a697-76751cbe0258-300x169.jpg\",\"duration\":\"150\",\"xp\":\"150\",\"badge\":\"secret\"},{\"id\":6727,\"title\":\"Garbatella: a vila-jardim em Roma\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/garbatella-a-vila-jardim-em-roma\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/1600e33a-f814-4c1d-8d1b-86fb91c2ad3a-300x225.jpg\",\"duration\":\"105\",\"xp\":\"200\",\"badge\":\"secret\"},{\"id\":6675,\"title\":\"Castel Sant&#8217;Angelo: O corredor secreto\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/castel-santangelo-o-corredor-secreto\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/292541fe-36cf-4333-9af9-49ae4b425401-300x199.jpg\",\"duration\":\"90\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":6693,\"title\":\"Galleria Borghese: perfei\\u00e7\\u00e3o escultural\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/galleria-borghese-perfeicao-escultural\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/9kngv0hk3au-300x200.jpg\",\"duration\":\"120\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":6696,\"title\":\"Museus e Museus do Vaticano Capela Sistina\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/museus-e-museus-do-vaticano-capela-sistina\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/si2eyuamw9m-300x115.jpg\",\"duration\":\"180\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":6698,\"title\":\"Coliseu, F\\u00f3rum Romano e Roma Monte Palatino\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/coliseu-forum-romano-e-roma-monte-palatino\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/3om3q0wtjlm-300x200.jpg\",\"duration\":\"180\",\"xp\":\"400\",\"badge\":\"premium\"},{\"id\":6733,\"title\":\"O Vittoriano: O visual das carruagens\",\"url\":\"https:\\\/\\\/spacejourney.app\\\/pt-br\\\/experiencia\\\/o-vittoriano-o-visual-das-carruagens\\\/\",\"image\":\"https:\\\/\\\/assets.spacelab.network\\\/spacejourney\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/vt_5jmfufya-300x200.jpg\",\"duration\":\"60\",\"xp\":\"250\",\"badge\":\"premium\"}]}];\r\n\r\n            \/\/ 2. RENDERIZAR LA INTERFAZ\r\n            function sjRenderUI() {\r\n                sjForceGlassmorphismAncestors();\r\n                const container = document.getElementById('sjDaysContainer');\r\n                const banner = document.getElementById('sjTripBanner');\r\n                const titleElem = document.getElementById('sjTripBannerTitle');\r\n\r\n                container.innerHTML = ''; \/\/ Limpiar\r\n\r\n                \/\/ \u00bfTiene cero d\u00edas este viaje en particular?\r\n                const tripHasNoDays = (!sjState.days || sjState.days.length === 0);\r\n\r\n                \/\/ \u00bfEs un usuario sin ning\u00fan viaje guardado en el sistema?\r\n                \/\/ Detectamos esto si el selector de viajes no tiene \"options\" v\u00e1lidas o no existe\r\n                const selector = document.getElementById('sjTripSelector');\r\n                const hasSavedTripsInDB = selector && selector.options.length > 0 && selector.options[0].value !== 'new';\r\n\r\n                \/\/ Logica del Zero-State vs Empty Trip\r\n                if (sjState.isDashboard) {\r\n                    banner.style.display = 'none'; \/\/ Ocultar banner\r\n                    let zeroHtml = '';\r\n\r\n                    if (window.sjAvailableTrips && window.sjAvailableTrips.length > 0) {\r\n                        \/\/ INLINE DASHBOARD (GRID)\r\n                        zeroHtml += '<div style=\"width:100%; max-width:1000px; margin: 20px auto; padding: 0 20px; box-sizing:border-box;\">';\r\n                        zeroHtml += '<div style=\"display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; flex-wrap:wrap; gap:15px;\">';\r\n                        zeroHtml += '<h2 style=\"font-family: \\'Outfit\\', sans-serif; color:var(--sj-primary); margin:0; font-weight:800; font-size:28px;\">Minhas Viagens<\/h2>';\r\n                        zeroHtml += '<button class=\"sj-btn sj-btn-primary\" onclick=\"sjCreateNewTrip()\" style=\"border-radius:30px;\"><span class=\"dashicons dashicons-plus-alt2\"><\/span> Nova Viagem<\/button>';\r\n                        zeroHtml += '<\/div>';\r\n\r\n                        zeroHtml += '<div style=\"display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px;\">';\r\n\r\n                        window.sjAvailableTrips.forEach((it) => {\r\n                            zeroHtml += `<div onclick=\"sjSwitchTripGrid(${it.id})\" style=\"background: rgba(255, 255, 255, 0.82); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1.5px solid rgba(25, 59, 51, 0.15); border-radius: 16px; padding: 20px; cursor: pointer; transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); box-shadow: 0 8px 24px rgba(25, 59, 51, 0.08); display: flex; align-items: center; min-height: 90px;\" onmouseover=\"this.style.transform='translateY(-4px)'; this.style.boxShadow='0 12px 30px rgba(25, 59, 51, 0.15)'; this.style.borderColor='var(--sj-accent)'; this.style.backgroundColor='rgba(255, 255, 255, 0.95)';\" onmouseout=\"this.style.transform='translateY(0)'; this.style.boxShadow='0 8px 24px rgba(25, 59, 51, 0.08)'; this.style.borderColor='rgba(25, 59, 51, 0.15)'; this.style.backgroundColor='rgba(255, 255, 255, 0.82)';\">`;\r\n\r\n                            \/\/ Portada Circular\r\n                            const coverUrl = (it.cover_image || it.coverImage || 'https:\/\/spacejourney.app\/wp-content\/uploads\/2026\/05\/Space-Journey-City-Lab.jpg').trim();\r\n                            zeroHtml += `<div style=\"width: 50px; height: 50px; border-radius: 50%; overflow: hidden; border: 2px solid rgba(229, 192, 123, 0.8); flex-shrink: 0; margin-right: 15px; background: url('${coverUrl}') no-repeat center center; background-size: cover; box-shadow: 0 4px 10px rgba(0,0,0,0.05);\"><\/div>`;\r\n\r\n                            \/\/ Textos de Tarjeta\r\n                            zeroHtml += `<div style=\"display: flex; flex-direction: column; justify-content: center; min-width: 0; flex-grow: 1;\">`;\r\n                            zeroHtml += `<h4 style=\"margin: 0; font-size: 16px; font-weight: 700; color: var(--sj-text); font-family: \\'Outfit\\', sans-serif; line-height:1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\">${it.title}<\/h4>`;\r\n                            if (it.city_name) {\r\n                                zeroHtml += `<span style=\"font-size: 11px; color: var(--sj-accent); font-weight: 600; margin-top: 3px; text-transform: uppercase; letter-spacing: 0.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\">${it.city_name}<\/span>`;\r\n                            }\r\n                            zeroHtml += `<span style=\"font-size: 11px; color: var(--sj-text-muted); font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; margin-top: 5px;\">Abrir viagem &rarr;<\/span>`;\r\n                            zeroHtml += `<\/div>`;\r\n\r\n                            zeroHtml += `<\/div>`;\r\n                        });\r\n\r\n                        zeroHtml += '<\/div>'; \/\/ Cerrar Grid de Viajes\r\n\r\n                        \/\/ BANNER DE MEMBRES\u00cdA ADAPTATIVO (En otra fila abajo, de ancho completo)\r\n                        zeroHtml += '<div style=\"margin-top: 30px; width: 100%;\">';\r\n\r\n                        if (userMembershipLevel === 2) {\r\n                            \/\/ Ultra\r\n                            zeroHtml += `<div style=\"background: linear-gradient(135deg, #112F24 0%, #193B33 100%); border: 2px solid var(--sj-accent); border-radius: 16px; padding: 25px; box-shadow: 0 8px 32px rgba(25, 59, 51, 0.15); display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;\">`;\r\n                            zeroHtml += `<div style=\"flex: 1; min-width: 280px;\">`;\r\n                            zeroHtml += `<h4 style=\"margin: 0 0 10px 0; font-size: 20px; font-weight: 700; color: #ffffff; font-family: \\'Outfit\\', sans-serif;\">Planejador Ultra Ativo \ud83c\udf1f<\/h4>`;\r\n                            zeroHtml += `<p style=\"margin: 0; font-size: 13.5px; color: #e2e8f0; line-height: 1.5; font-family: \\'Inter\\', sans-serif;\">Voc\u00ea \u00e9 um viajante Ultra! O planejador de viagens 100% j\u00e1 est\u00e1 dispon\u00edvel, com otimiza\u00e7\u00e3o de tempo por IA, mapas din\u00e2micos interativos, exporta\u00e7\u00f5es ilimitadas e todas as ferramentas exclusivas.<\/p>`;\r\n                            zeroHtml += `<\/div>`;\r\n                            zeroHtml += `<div style=\"color: var(--sj-accent); font-weight: 700; font-size: 15px; font-family: \\'Outfit\\', sans-serif; white-space: nowrap; display: flex; align-items: center; gap: 6px;\">`;\r\n                            zeroHtml += `<span class=\"dashicons dashicons-saved\" style=\"color:var(--sj-accent);\"><\/span> Recursos Desbloqueados`;\r\n                            zeroHtml += `<\/div>`;\r\n                            zeroHtml += `<\/div>`;\r\n                        } else if (userMembershipLevel === 1) {\r\n                            \/\/ Pass\r\n                            zeroHtml += `<div style=\"background: linear-gradient(135deg, #112F24 0%, #193B33 100%); border: 2px solid var(--sj-accent); border-radius: 16px; padding: 25px; box-shadow: 0 8px 32px rgba(25, 59, 51, 0.15); display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;\">`;\r\n                            zeroHtml += `<div style=\"flex: 1; min-width: 280px;\">`;\r\n                            zeroHtml += `<h4 style=\"margin: 0 0 10px 0; font-size: 20px; font-weight: 700; color: #ffffff; font-family: \\'Outfit\\', sans-serif;\">Obrigado por explorar com o Pass!<\/h4>`;\r\n                            zeroHtml += `<p style=\"margin: 0; font-size: 13.5px; color: #e2e8f0; line-height: 1.5; font-family: \\'Inter\\', sans-serif;\">Voc\u00ea tem acesso a viagens ilimitadas e exporta\u00e7\u00e3o para o Calendar. Quer mais? Fa\u00e7a upgrade para o Ultra para otimizar seu tempo com IA, atribui\u00e7\u00e3o de horas exatas e sugest\u00f5es avan\u00e7adas de roteiros.<\/p>`;\r\n                            zeroHtml += `<\/div>`;\r\n                            zeroHtml += `<button onclick=\"window.open(\\'https:\/\/spacejourney.app\/membership-levels\/\\', \\'_blank\\')\" class=\"sj-btn\" style=\"height: 42px; padding: 0 25px; font-weight: 700; border-radius: 30px; background-color: #112a24 !important; border: 2px solid var(--sj-accent) !important; color: var(--sj-accent) !important; box-shadow: 0 4px 12px rgba(17, 42, 36, 0.3); white-space: nowrap; transition: all 0.3s ease;\" onmouseover=\"this.style.backgroundColor='var(--sj-accent)'; this.style.color='#112a24';\" onmouseout=\"this.style.backgroundColor='#112a24'; this.style.color='var(--sj-accent)';\">`;\r\n                            zeroHtml += `Fazer upgrade para Ultra`;\r\n                            zeroHtml += `<\/button>`;\r\n                            zeroHtml += `<\/div>`;\r\n                        } else {\r\n                            \/\/ Free (userMembershipLevel === 0)\r\n                            zeroHtml += `<div style=\"background: linear-gradient(135deg, #112F24 0%, #193B33 100%); border: 2px solid var(--sj-accent); border-radius: 16px; padding: 25px; box-shadow: 0 8px 32px rgba(25, 59, 51, 0.15); display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;\">`;\r\n                            zeroHtml += `<div style=\"flex: 1; min-width: 280px;\">`;\r\n                            zeroHtml += `<h4 style=\"margin: 0 0 10px 0; font-size: 20px; font-weight: 700; color: #ffffff; font-family: \\'Outfit\\', sans-serif;\">Leve suas viagens ao pr\u00f3ximo n\u00edvel<\/h4>`;\r\n                            zeroHtml += `<p style=\"margin: 0; font-size: 13.5px; color: #e2e8f0; line-height: 1.5; font-family: \\'Inter\\', sans-serif;\">Sua conta Free permite salvar at\u00e9 3 viagens. Desbloqueie o plano Pass para salvar viagens ilimitadas e exportar para o Calendar, ou fa\u00e7a upgrade para Ultra para agendar hor\u00e1rios exatos e otimizar sua rota com nossa IA.<\/p>`;\r\n                            zeroHtml += `<\/div>`;\r\n                            zeroHtml += `<button onclick=\"window.open(\\'https:\/\/spacejourney.app\/membership-levels\/\\', \\'_blank\\')\" class=\"sj-btn\" style=\"height: 42px; padding: 0 25px; font-weight: 700; border-radius: 30px; background-color: #112a24 !important; border: 2px solid var(--sj-accent) !important; color: var(--sj-accent) !important; box-shadow: 0 4px 12px rgba(17, 42, 36, 0.3); white-space: nowrap; transition: all 0.3s ease;\" onmouseover=\"this.style.backgroundColor='var(--sj-accent)'; this.style.color='#112a24';\" onmouseout=\"this.style.backgroundColor='#112a24'; this.style.color='var(--sj-accent)';\">`;\r\n                            zeroHtml += `Ver Assinaturas`;\r\n                            zeroHtml += `<\/button>`;\r\n                            zeroHtml += `<\/div>`;\r\n                        }\r\n\r\n                        zeroHtml += '<\/div>'; \/\/ Fin Banner Row\r\n                        zeroHtml += '<\/div>'; \/\/ Fin Contenedor Dashboard\r\n                    } else {\r\n                        \/\/ ZERO-STATE TOTAL (Usuario Nuevo)\r\n                        zeroHtml = `\r\n                    <div class=\"sj-zero-state\">\r\n                        <span class=\"dashicons dashicons-location-alt\" style=\"font-size:48px; color:var(--sj-primary); margin-bottom:15px; opacity:0.8;\"><\/span>\r\n                        <h3>Sua pr\u00f3xima grande aventura come\u00e7a aqui.<\/h3>\r\n                        <p>Crie seu primeiro roteiro para descobrir, salvar e organizar lugares incr\u00edveis.<\/p>\r\n                        <button class=\"sj-btn sj-btn-primary\" onclick=\"sjCreateNewTrip()\" style=\"padding:15px 30px; font-size:16px;\">\r\n                            <span class=\"dashicons dashicons-plus-alt2\"><\/span> Criar minha primeira viagem                        <\/button>\r\n                    <\/div>\r\n                    `;\r\n                    }\r\n                    container.innerHTML = zeroHtml;\r\n                    return; \/\/ Detener el renderizado\r\n                }\r\n                \r\n                if (tripHasNoDays) {\r\n                    \/\/ EL VIAJE EST\u00c1 VAC\u00cdO (pero s\u00ed estamos viendo uno concreto)\r\n                    banner.style.display = 'flex';\r\n                    titleElem.innerText = sjState.title || \"Sem T\u00edtulo\";\r\n                    if (sjState.coverImage) {\r\n                        banner.style.backgroundImage = `url('${sjState.coverImage}')`;\r\n                    } else {\r\n                        banner.style.backgroundImage = 'none';\r\n                    }\r\n\r\n                    \/\/ Bot\u00f3n para a\u00f1adir el primer d\u00eda\r\n                    container.innerHTML = `\r\n                    <div style=\"width:100%; text-align:center; padding: 40px; border: 2px dashed var(--sj-border); border-radius: 16px; margin-top:20px;\">\r\n                        <p style=\"color:var(--sj-text-muted); font-size:16px; margin-bottom:20px;\">Esta viagem ainda n\u00e3o tem atividades.<\/p>\r\n                        <button class=\"sj-btn sj-btn-secondary\" onclick=\"sjAddDay()\">\r\n                            <span class=\"dashicons dashicons-plus\"><\/span> Adicionar Dia 1                        <\/button>\r\n                    <\/div>\r\n                `;\r\n                    return; \/\/ Detener el renderizado normal\r\n                }\r\n\r\n                \/\/ Flujo Normal con D\u00edas\r\n                banner.style.display = 'flex';\r\n                titleElem.innerText = sjState.title || \"Sem T\u00edtulo\";\r\n\r\n                const fallbackImage = 'https:\/\/spacejourney.app\/wp-content\/uploads\/2026\/05\/Space-Journey-City-Lab.jpg';\r\n                if (sjState.coverImage) {\r\n                    banner.style.backgroundImage = `url('${sjState.coverImage}')`;\r\n                } else {\r\n                    banner.style.backgroundImage = `url('${fallbackImage}')`;\r\n                }\r\n\r\n                sjState.days.forEach((day, dayIndex) => {\r\n                    \/\/ Crear Columna\r\n                    const div = document.createElement('div');\r\n                    div.className = 'sj-day-column';\r\n                    div.setAttribute('data-day-id', day.id);\r\n\r\n                    \/\/ HTML de la Columna y Tarjetas\r\n                    let cardsHtml = day.cards.map(card => {\r\n                        const imgHtml = card.image ?\r\n                            `<img decoding=\"async\" src=\"${card.image}\" style=\"width:40px;height:40px;border-radius:6px;object-fit:cover;flex-shrink:0;\">` :\r\n                            `<div style=\"width:40px;height:40px;border-radius:6px;background:var(--sj-bg);display:flex;align-items:center;justify-content:center;color:var(--sj-accent);flex-shrink:0;\"><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>`;\r\n\r\n                        \/\/ Traducciones din\u00e1micas de bloques de tiempo en base a la RAM\r\n                        let timeBadgeLabel = '';\r\n                        let timeClass = '';\r\n                        if (card.timeMode) {\r\n                            if (card.timeMode === 'morning') { timeBadgeLabel = \"Manh\u00e3\"; timeClass = 'sj-time-morning'; }\r\n                            else if (card.timeMode === 'afternoon') { timeBadgeLabel = \"Tarde\"; timeClass = 'sj-time-afternoon'; }\r\n                            else if (card.timeMode === 'night') { timeBadgeLabel = \"Noite\"; timeClass = 'sj-time-night'; }\r\n                            else { timeBadgeLabel = card.timeMode; timeClass = 'sj-time-exact'; }\r\n                        }\r\n\r\n                        const timeBadge = card.timeMode ? `<span class=\"sj-time-badge ${timeClass}\">${timeBadgeLabel}<\/span>` : '';\r\n\r\n                        return `\r\n                    <div class=\"sj-card-item\" data-id=\"${card.id}\">\r\n                        <span class=\"sj-card-handle dashicons dashicons-menu\"><\/span>\r\n                        ${imgHtml ? `<div style=\"margin-right:10px; display:flex; align-items:center; flex-shrink:0;\">${imgHtml}<\/div>` : ''}\r\n                        <div class=\"sj-card-content\" style=\"min-width:0; flex-grow:1; display:flex; flex-direction:column; justify-content:center; overflow:hidden;\">\r\n                            <div class=\"sj-card-title\" contenteditable=\"true\" onblur=\"sjUpdateCardTitle('${day.id}', '${card.id}', this.innerText)\" style=\"word-break: break-word; white-space: normal; line-height: 1.2;\">${card.title}<\/div>\r\n                            ${timeBadge}\r\n                        <\/div>\r\n                        <div class=\"sj-card-actions\">\r\n                            <span class=\"dashicons dashicons-clock\" onclick=\"sjSetTimeMode('${day.id}', '${card.id}')\" title=\"Atribuir hor\u00e1rio\"><\/span>\r\n                            <span class=\"dashicons dashicons-trash\" onclick=\"sjDeleteCard('${day.id}', '${card.id}')\" title=\"Excluir Atividade\"><\/span>\r\n                        <\/div>\r\n                    <\/div>\r\n                `}).join('');\r\n\r\n                    div.innerHTML = `\r\n                    <div class=\"sj-day-header\" style=\"align-items:center; display:flex;\">\r\n                        <span contenteditable=\"true\" onblur=\"sjUpdateDayTitle('${day.id}', this.innerText)\" style=\"outline:none; border-bottom:1px dashed rgba(25,59,51,0.2); padding-bottom:2px; flex-grow:1; margin-right:15px; word-break: break-word; line-height: 1.2;\">${day.title}<\/span>\r\n                        <span class=\"dashicons dashicons-trash\" onclick=\"sjDeleteDay('${day.id}')\" title=\"Excluir Dia\"><\/span>\r\n                    <\/div>\r\n                    <div class=\"sj-dropzone\" id=\"dropzone_${day.id}\" data-day=\"${day.id}\">\r\n                        ${cardsHtml}\r\n                    <\/div>\r\n                    <div class=\"sj-add-card-btn\" onclick=\"sjAddCard('${day.id}')\">+ Adicionar Atividade<\/div>\r\n                `;\r\n                    container.appendChild(div);\r\n\r\n                    \/\/ ACTIVAR SORTABLE JS PARA ESTA COLUMNA\r\n                    Sortable.create(document.getElementById(`dropzone_${day.id}`), {\r\n                        group: 'shared', \/\/ Permite arrastrar entre columnas\r\n                        animation: 150,\r\n                        handle: '.sj-card-handle', \/\/ Solo se arrastra desde el \u00edcono (Fundamental para m\u00f3viles)\r\n                        ghostClass: 'sortable-ghost',\r\n                        onEnd: function (evt) {\r\n                            sjHandleDragEnd(evt);\r\n                        }\r\n                    });\r\n                });\r\n\r\n                \/\/ Columna Fantasma \"A\u00f1adir D\u00eda\" al Final (Bot\u00f3n al final)\r\n                const addColumnDiv = document.createElement('div');\r\n                addColumnDiv.className = 'sj-day-column sj-day-column-add-placeholder';\r\n                addColumnDiv.innerHTML = `\r\n                <div class=\"sj-day-add-placeholder-content\">\r\n                    <span class=\"dashicons dashicons-plus-alt2\"><\/span>\r\n                    <div style=\"font-family: 'Outfit', sans-serif; font-weight: 700; font-size: 15px;\">Adicionar Dia<\/div>\r\n                <\/div>\r\n            `;\r\n                addColumnDiv.onclick = sjAddDay;\r\n                container.appendChild(addColumnDiv);\r\n            }\r\n\r\n            \/\/ 3. LOGICA DE ARRASTRE\r\n            function sjHandleDragEnd(evt) {\r\n                const oldDayId = evt.from.dataset.day;\r\n                const newDayId = evt.to.dataset.day;\r\n                const oldIndex = evt.oldIndex;\r\n                const newIndex = evt.newIndex;\r\n\r\n                \/\/ Mover en la memoria (JS State)\r\n                const oldDay = sjState.days.find(d => d.id === oldDayId);\r\n                const newDay = sjState.days.find(d => d.id === newDayId);\r\n\r\n                \/\/ Sacar la tarjeta\r\n                const movedCard = oldDay.cards.splice(oldIndex, 1)[0];\r\n                \/\/ Meterla en el nuevo lugar\r\n                newDay.cards.splice(newIndex, 0, movedCard);\r\n\r\n                sjSaveToLocal(); \/\/ Autoguardar temporal\r\n                if (isUserLoggedIn) sjSaveItinerary(true); \/\/ Autoguardar en la nube\r\n            }\r\n\r\n            \/\/ 4. FUNCIONES CRUD B\u00c1SICAS\r\n            function sjAddDay() {\r\n                const newNumber = sjState.days.length + 1;\r\n                const newDayId = `day_${Date.now()}`;\r\n                sjState.days.push({ id: newDayId, title: `Dia ${newNumber}`, cards: [] });\r\n                sjRenderUI();\r\n                sjSaveToLocal();\r\n                if (isUserLoggedIn) sjSaveItinerary(true);\r\n\r\n                \/\/ Llevar al usuario hasta el nuevo d\u00eda en el tablero\r\n                sjScrollToDay(newDayId);\r\n            }\r\n\r\n            \/\/ Funci\u00f3n para enfocar y desplazar al nuevo d\u00eda (Micro-interacci\u00f3n de Calma)\r\n            function sjScrollToDay(dayId) {\r\n                setTimeout(() => {\r\n                    const dayColumn = document.querySelector(`.sj-day-column[data-day-id=\"${dayId}\"]`);\r\n                    const container = document.getElementById('sjDaysContainer');\r\n                    if (dayColumn && container) {\r\n                        const isMobile = window.innerWidth <= 768;\r\n                        if (isMobile) {\r\n                            \/\/ En m\u00f3viles, el scroll es vertical\r\n                            dayColumn.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n                        } else {\r\n                            \/\/ En desktop, el scroll es horizontal\r\n                            const containerRect = container.getBoundingClientRect();\r\n                            const columnRect = dayColumn.getBoundingClientRect();\r\n                            const scrollLeft = container.scrollLeft + (columnRect.left - containerRect.left) - (containerRect.width \/ 2) + (columnRect.width \/ 2);\r\n                            container.scrollTo({ left: scrollLeft, behavior: 'smooth' });\r\n                        }\r\n\r\n                        \/\/ Destello dorado de confirmaci\u00f3n en la cabecera\r\n                        const header = dayColumn.querySelector('.sj-day-header');\r\n                        if (header) {\r\n                            header.style.transition = 'background-color 0.3s ease';\r\n                            header.style.backgroundColor = 'rgba(229, 192, 123, 0.25)'; \/\/ Dorado transl\u00facido\r\n                            setTimeout(() => {\r\n                                header.style.backgroundColor = 'transparent';\r\n                            }, 800);\r\n                        }\r\n                    }\r\n                }, 100);\r\n            }\r\n\r\n            function sjUpdateDayTitle(dayId, newTitle) {\r\n                const day = sjState.days.find(d => d.id === dayId);\r\n                if (day && newTitle.trim() !== '') day.title = newTitle.trim();\r\n                sjSaveToLocal();\r\n                if (isUserLoggedIn) sjSaveItinerary(true);\r\n            }\r\n\r\n            \/\/ Se mantiene confirmaci\u00f3n est\u00e9tica con SweetAlert2\r\n            function sjDeleteDay(dayId) {\r\n                Swal.fire({\r\n                    title: \"Excluir Dia?\",\r\n                    text: \"Todas as atividades deste dia ser\u00e3o exclu\u00eddas.\",\r\n                    icon: 'warning',\r\n                    showCancelButton: true,\r\n                    confirmButtonText: \"Sim, excluir\",\r\n                    cancelButtonText: \"Cancelar\",\r\n                    confirmButtonColor: '#ff4d4d'\r\n                }).then((result) => {\r\n                    if (result.isConfirmed) {\r\n                        sjState.days = sjState.days.filter(d => d.id !== dayId);\r\n                        sjRenderUI();\r\n                        sjSaveToLocal();\r\n                        if (isUserLoggedIn) sjSaveItinerary(true);\r\n                    }\r\n                });\r\n            }\r\n\r\n            \/\/ Funci\u00f3n global para filtrar carruseles\r\n            window.sjFilterExperiences = function() {\r\n                const selectedConstellation = document.getElementById('sjConstellationFilter') ? document.getElementById('sjConstellationFilter').value : 'all';\r\n                const selectedCity = document.getElementById('sjCityFilter') ? document.getElementById('sjCityFilter').value : 'all';\r\n                \r\n                document.querySelectorAll('.sj-planner-city-block').forEach(block => {\r\n                    const blockConstellation = block.getAttribute('data-constellation');\r\n                    const blockCity = block.getAttribute('data-city');\r\n                    \r\n                    const matchConstellation = (selectedConstellation === 'all' || blockConstellation === selectedConstellation);\r\n                    const matchCity = (selectedCity === 'all' || blockCity === selectedCity);\r\n                    \r\n                    if (matchConstellation && matchCity) {\r\n                        block.style.display = 'block';\r\n                    } else {\r\n                        block.style.display = 'none';\r\n                    }\r\n                });\r\n            };\r\n\r\n            \/\/ \u2500\u2500 CARRUSEL DE EXPERIENCIAS \u2500\u2500\r\n            function sjAddCard(dayId) {\r\n                if (!sjPlannerExperiences || sjPlannerExperiences.length === 0) {\r\n                    sjAddCardFreeText(dayId);\r\n                    return;\r\n                }\r\n\r\n                \/\/ Extraer constelaciones \u00fanicas para el filtro\r\n                const constellations = new Set();\r\n                const countries = new Set();\r\n                sjPlannerExperiences.forEach(c => {\r\n                    if (c.constellation) constellations.add(c.constellation);\r\n                    if (c.country) countries.add(c.country);\r\n                });\r\n                \r\n                let filterHtml = '<div style=\"display:flex; gap:10px;\">';\r\n                if (constellations.size > 0) {\r\n                    filterHtml += `<select id=\"sjConstellationFilter\" class=\"sj-planner-filter-select\" style=\"flex:1; padding-right:32px;\" onchange=\"sjFilterExperiences()\">\r\n                        <option value=\"all\">Continentes<\/option>`;\r\n                    constellations.forEach(cons => { filterHtml += `<option value=\"${cons}\">${cons}<\/option>`; });\r\n                    filterHtml += `<\/select>`;\r\n                }\r\n                \r\n                const uniqueCities = new Set();\r\n                sjPlannerExperiences.forEach(c => {\r\n                    if (c.city) uniqueCities.add(c.city);\r\n                });\r\n                if (uniqueCities.size > 0) {\r\n                    filterHtml += `<select id=\"sjCityFilter\" class=\"sj-planner-filter-select\" style=\"flex:1; padding-right:32px;\" onchange=\"sjFilterExperiences()\">\r\n                        <option value=\"all\">Cidades<\/option>`;\r\n                    uniqueCities.forEach(city => { filterHtml += `<option value=\"${city}\">${city}<\/option>`; });\r\n                    filterHtml += `<\/select>`;\r\n                }\r\n                filterHtml += '<\/div>';\r\n\r\n                \/\/ Construir HTML del carrusel agrupado por ciudad\r\n                let carouselHtml = '<div style=\"max-height:62vh; overflow-y:auto; padding:4px 6px 10px; overflow-x:hidden;\">';\r\n                \r\n                carouselHtml += filterHtml;\r\n\r\n                sjPlannerExperiences.forEach((cityData, index) => {\r\n                    if (!cityData.experiences || cityData.experiences.length === 0) return;\r\n\r\n                    const safeConstellation = cityData.constellation || 'Global';\r\n\r\n                    carouselHtml += `<div class=\"sj-planner-city-block\" data-constellation=\"${safeConstellation}\" data-city=\"${cityData.city}\" style=\"margin-bottom:22px; position:relative;\">\r\n                        <div style=\"display:flex; align-items:center; gap:8px; margin-bottom:12px; padding-bottom:8px;\r\n                                    border-bottom:1px dashed rgba(25,59,51,0.15);\">\r\n                            <span style=\"font-size:13px;\">\ud83d\udccd<\/span>\r\n                            <span style=\"font-family:'Outfit',sans-serif; font-size:13px; font-weight:800;\r\n                                         color:#193B33; text-transform:uppercase; letter-spacing:0.8px;\">\r\n                                ${cityData.city}\r\n                            <\/span>\r\n                        <\/div>\r\n                        \r\n                        <div style=\"position:relative; padding: 0 5px;\">\r\n                            <button onclick=\"document.getElementById('sj-track-${index}').scrollBy({left:-220, behavior:'smooth'})\" \r\n                                style=\"position:absolute; left:0px; top:calc(50% - 20px); transform:translateY(-50%); z-index:2;\r\n                                width:34px; height:34px; border-radius:50%; background:linear-gradient(135deg,#F3D287,#E5C07B);\r\n                                border:none; color:#193B33 !important; box-shadow:0 4px 10px rgba(0,0,0,0.15); cursor:pointer;\r\n                                font-weight:bold; display:flex; align-items:center; justify-content:center; font-size:16px;\">\r\n                                <span class=\"dashicons dashicons-arrow-left-alt2\"><\/span>\r\n                            <\/button>\r\n                            \r\n                            <button onclick=\"document.getElementById('sj-track-${index}').scrollBy({left:220, behavior:'smooth'})\" \r\n                                style=\"position:absolute; right:0px; top:calc(50% - 20px); transform:translateY(-50%); z-index:2;\r\n                                width:34px; height:34px; border-radius:50%; background:linear-gradient(135deg,#F3D287,#E5C07B);\r\n                                border:none; color:#193B33 !important; box-shadow:0 4px 10px rgba(0,0,0,0.15); cursor:pointer;\r\n                                font-weight:bold; display:flex; align-items:center; justify-content:center; font-size:16px;\">\r\n                                <span class=\"dashicons dashicons-arrow-right-alt2\"><\/span>\r\n                            <\/button>\r\n\r\n                            <div id=\"sj-track-${index}\" class=\"sj-planner-track\" style=\"display:flex; gap:12px; overflow-x:auto;\r\n                                scroll-snap-type:x mandatory; padding-bottom:10px; scrollbar-width:none; -ms-overflow-style:none; padding: 0 20px;\">`;\r\n\r\n                    cityData.experiences.forEach(exp => {\r\n                        const badgeIcons   = { free: '\ud83d\udfe2', secret: '\ud83d\udddd\ufe0f', premium: '\ud83d\udc51' };\r\n                        const badgeColors  = { free: '#7BA591', secret: '#E8C57D', premium: '#b8860b' };\r\n                        const badgeLabels  = {\r\n                            free:    'Libre',\r\n                            secret:  'Segredo',\r\n                            premium: 'Pr\u00eamio'\r\n                        };\r\n                        const bIcon  = badgeIcons[exp.badge]  || '\ud83d\udfe2';\r\n                        const bColor = badgeColors[exp.badge] || '#7BA591';\r\n                        const bLabel = badgeLabels[exp.badge] || exp.badge;\r\n                        const imgStyle = exp.image\r\n                            ? `background-image:url(${exp.image}); background-size:cover; background-position:center;`\r\n                            : 'background:#e8f0ec;';\r\n\r\n                        const safeTitle = exp.title.replace(\/'\/g, \"\\\\'\").replace(\/\"\/g, '&quot;');\r\n                        const safeUrl   = exp.url;\r\n\r\n                        carouselHtml += `\r\n                            <div class=\"sj-planner-slide\" style=\"flex:0 0 220px; scroll-snap-align:start;\">\r\n                                <div class=\"sj-planner-card\" style=\"background:linear-gradient(160deg,#18241e,#0d1411);\r\n                                    border-radius:14px; border:1px solid rgba(123,165,145,0.2);\r\n                                    box-shadow:0 4px 15px rgba(0,0,0,0.18); overflow:hidden;\r\n                                    display:flex; flex-direction:column; height:100%;\">\r\n                                    <div style=\"height:130px; position:relative; ${imgStyle}\">\r\n                                        <div style=\"position:absolute; inset:0;\r\n                                            background:linear-gradient(to top,rgba(13,20,17,0.85),transparent);\">\r\n                                        <\/div>\r\n                                        <div style=\"position:absolute; top:8px; right:8px; font-size:0.65rem;\r\n                                            font-weight:800; text-transform:uppercase; border-radius:12px; padding:3px 8px;\r\n                                            display:flex; align-items:center; gap:4px;\r\n                                            background:rgba(0,0,0,0.55); color:${bColor};\r\n                                            border:1px solid ${bColor}; backdrop-filter:blur(4px);\">\r\n                                            ${bIcon} ${bLabel}\r\n                                        <\/div>\r\n                                    <\/div>\r\n\r\n                                    <!-- Body -->\r\n                                    <div style=\"padding:12px; flex-grow:1; display:flex; flex-direction:column; gap:6px;\">\r\n                                        <div style=\"font-family:'Outfit',sans-serif; font-size:0.9rem;\r\n                                            font-weight:700; color:#f8fafc; line-height:1.3;\r\n                                            overflow:hidden; display:-webkit-box;\r\n                                            -webkit-line-clamp:2; -webkit-box-orient:vertical;\">\r\n                                            ${exp.title}\r\n                                        <\/div>\r\n                                        <div style=\"display:flex; gap:10px; font-size:0.75rem;\r\n                                            color:#9cb8ad; margin-top:auto; padding-top:8px;\r\n                                            border-top:1px dashed rgba(123,165,145,0.2);\">\r\n                                            <span>\ud83d\udd50 ${exp.duration} min<\/span>\r\n                                            <span>\u2b50 ${exp.xp} XP<\/span>\r\n                                        <\/div>\r\n                                    <\/div>\r\n\r\n                                    <!-- 2 Botones -->\r\n                                    <div style=\"display:flex; gap:6px; padding:0 12px 12px;\">\r\n                                        <button\r\n                                            onclick=\"sjAddExperienceCard('${dayId}', ${exp.id}, '${safeTitle}', '${exp.image}', '${safeUrl}')\"\r\n                                            style=\"flex:1; background:#193B33; color:#E8C57D; border:1px solid rgba(232,197,125,0.4);\r\n                                                border-radius:20px; padding:7px 4px; font-size:0.75rem;\r\n                                                font-weight:700; cursor:pointer; font-family:'Outfit',sans-serif;\r\n                                                transition:background 0.2s;\">\r\n                                            Adicionar                                        <\/button>\r\n                                        <a href=\"${safeUrl}\" target=\"_blank\"\r\n                                            style=\"flex:1; background:rgba(255,255,255,0.06); color:#a3c4b5;\r\n                                                border:1px solid rgba(123,165,145,0.25); border-radius:20px;\r\n                                                padding:7px 4px; font-size:0.75rem; font-weight:700;\r\n                                                text-align:center; text-decoration:none; font-family:'Outfit',sans-serif;\r\n                                                transition:background 0.2s;\">\r\n                                            Descobrir                                        <\/a>\r\n                                    <\/div>\r\n                                <\/div>\r\n                            <\/div>`;\r\n                    });\r\n\r\n                    carouselHtml += `<\/div><\/div><\/div>`;\r\n                });\r\n\r\n                carouselHtml += '<\/div>';\r\n\r\n                Swal.fire({\r\n                    title: \"Que experi\u00eancia voc\u00ea adiciona?\",\r\n                    html: carouselHtml,\r\n                    showConfirmButton: false,\r\n                    showCancelButton: true,\r\n                    cancelButtonText: \"Insira sua atividade\",\r\n                    width: '680px',\r\n                    customClass: { popup: 'sj-solarpunk-popup', cancelButton: 'sj-swal-cancel-btn' },\r\n                    didOpen: () => {\r\n                        \/\/ Ocultar scrollbar en tracks internos\r\n                        document.querySelectorAll('.sj-planner-track').forEach(t => {\r\n                            t.style.setProperty('scrollbar-width', 'none');\r\n                        });\r\n                    }\r\n                }).then((result) => {\r\n                    if (result.isDismissed && result.dismiss === Swal.DismissReason.cancel) {\r\n                        sjAddCardFreeText(dayId);\r\n                    }\r\n                });\r\n            }\r\n\r\n            \/\/ A\u00f1adir una experiencia oficial al d\u00eda del itinerario y solicitar bloque de tiempo\r\n            function sjAddExperienceCard(dayId, expId, expTitle, expImage, expUrl) {\r\n                Swal.close();\r\n                const cardObj = {\r\n                    id:         `c_${Date.now()}`,\r\n                    title:      expTitle,\r\n                    image:      expImage,\r\n                    officialId: expId,\r\n                    url:        expUrl\r\n                };\r\n                sjPromptTimeForCard(dayId, cardObj);\r\n            }\r\n\r\n            \/\/ Fallback: actividad libre (texto manual) y bloque de tiempo\r\n            function sjAddCardFreeText(dayId) {\r\n                Swal.fire({\r\n                    title: \"Nova atividade gratuita\",\r\n                    input: 'text',\r\n                    inputPlaceholder: \"Ex. Visitar o Pante\u00e3o\",\r\n                    showCancelButton: true,\r\n                    confirmButtonText: \"Seguindo\",\r\n                    cancelButtonText: \"Cancelar\",\r\n                    confirmButtonColor: '#193B33'\r\n                }).then((result) => {\r\n                    if (result.isConfirmed && result.value) {\r\n                        const cardObj = {\r\n                            id: `c_${Date.now()}`, \r\n                            title: result.value\r\n                        };\r\n                        sjPromptTimeForCard(dayId, cardObj);\r\n                    }\r\n                });\r\n            }\r\n\r\n            function sjPromptTimeForCard(dayId, cardObj) {\r\n                const membershipLevel = 0;\r\n                let htmlContent = '';\r\n                let footerContent = '';\r\n                \r\n                if (membershipLevel >= 1) {\r\n                    htmlContent = `\r\n                        <p style=\"font-size:14px; color:#555; margin-bottom:15px;\">Escolha o hor\u00e1rio exato da sua atividade<\/p>\r\n                        <input type=\"time\" id=\"sjTimeInput\" class=\"sj-planner-filter-select\" style=\"max-width:200px; margin:0 auto; display:block;\">\r\n                    `;\r\n                } else {\r\n                    htmlContent = `\r\n                        <select id=\"sjTimeInput\" class=\"sj-planner-filter-select\" style=\"max-width:250px; margin:0 auto; display:block;\">\r\n                            <option value=\"morning\">Manh\u00e3<\/option>\r\n                            <option value=\"afternoon\">Tarde<\/option>\r\n                            <option value=\"night\">Noite<\/option>\r\n                        <\/select>\r\n                    `;\r\n                    footerContent = `\r\n                        <div style=\"text-align:center; width:100%;\">\r\n                            <span class=\"sj-upsell-text\" style=\"display:block; margin-bottom:10px;\">\u2b50 Sincronize com o Calend\u00e1rio e escolha os hor\u00e1rios exatos com sua assinatura Pass ou Ultra.<\/span>\r\n                            <a href=\"https:\/\/spacejourney.app\/membership-levels\/\" target=\"_blank\" class=\"swal2-confirm swal2-styled\" style=\"display:inline-block; text-decoration:none; margin-top:10px; width:auto; font-size:1em; padding:12px 32px; border-radius:30px; font-weight:bold;\">Melhore seu plano<\/a>\r\n                        <\/div>\r\n                    `;\r\n                }\r\n\r\n                Swal.fire({\r\n                    title: \"Bloco de Tempo\",\r\n                    html: htmlContent,\r\n                    footer: footerContent,\r\n                    showCancelButton: true,\r\n                    confirmButtonText: \"OK\",\r\n                    cancelButtonText: \"Cancelar\",\r\n                    confirmButtonColor: '#8FD14F',\r\n                    customClass: { popup: 'sj-solarpunk-popup' },\r\n                    preConfirm: () => {\r\n                        const timeVal = document.getElementById('sjTimeInput').value;\r\n                        if (!timeVal) {\r\n                            Swal.showValidationMessage(\"Escolha um hor\u00e1rio\");\r\n                        }\r\n                        return timeVal;\r\n                    }\r\n                }).then((timeResult) => {\r\n                    if (timeResult.isConfirmed && timeResult.value) {\r\n                        const day = sjState.days.find(d => d.id === dayId);\r\n                        if (!day) return;\r\n                        \r\n                        cardObj.timeMode = timeResult.value;\r\n                        day.cards.push(cardObj);\r\n                        \r\n                        if (typeof sjSortDayCards === 'function') sjSortDayCards(day);\r\n                        \r\n                        sjRenderUI();\r\n                        sjSaveToLocal();\r\n                        if (isUserLoggedIn) sjSaveItinerary(true);\r\n                    }\r\n                });\r\n            }\r\n\r\n            \/\/ Correcci\u00f3n de bug de texto duplicado en edici\u00f3n inline\r\n            function sjUpdateCardTitle(dayId, cardId, newTitle) {\r\n                const day = sjState.days.find(d => d.id === dayId);\r\n                const card = day.cards.find(c => c.id === cardId);\r\n                if (card) card.title = newTitle.trim();\r\n                sjRenderUI(); \/\/ Re-render para evaluar el Sparkle Upsell\r\n                sjSaveToLocal();\r\n                if (isUserLoggedIn) sjSaveItinerary(true);\r\n            }\r\n\r\n            function sjDeleteCard(dayId, cardId) {\r\n                const day = sjState.days.find(d => d.id === dayId);\r\n                if (day) day.cards = day.cards.filter(c => c.id !== cardId);\r\n                sjRenderUI();\r\n                sjSaveToLocal();\r\n                if (isUserLoggedIn) sjSaveItinerary(true);\r\n            }\r\n\r\n            \/\/ 6. FLUJO DE GUARDADO (FREEMIUM VS PREMIUM)\r\n            function sjSaveToLocal() {\r\n                localStorage.setItem('sj_temp_itinerary', JSON.stringify(sjState));\r\n            }\r\n\r\n            \/\/ FUNCION AUXILIAR: ORDENAR TARJETAS POR HORA\r\n            function sjSortDayCards(day) {\r\n                if (!day || !day.cards) return;\r\n                const getTimeWeight = (timeMode) => {\r\n                    if (!timeMode || timeMode === '') return 9999; \/\/ Sin hora va al final\r\n                    if (timeMode === 'morning') return 8 * 60;\r\n                    if (timeMode === 'afternoon') return 14 * 60;\r\n                    if (timeMode === 'night') return 19 * 60;\r\n                    const parts = timeMode.split(':');\r\n                    if (parts.length === 2) return parseInt(parts[0]) * 60 + parseInt(parts[1]);\r\n                    return 9999;\r\n                };\r\n                day.cards.sort((a, b) => getTimeWeight(a.timeMode) - getTimeWeight(b.timeMode));\r\n            }\r\n\r\n            \/\/ BLOQUES DE TIEMPO EDITAR\r\n            function sjSetTimeMode(dayId, cardId) {\r\n                const day = sjState.days.find(d => d.id === dayId);\r\n                const card = day ? day.cards.find(c => c.id === cardId) : null;\r\n                const currentTime = card ? (card.timeMode || '') : '';\r\n                \r\n                const membershipLevel = 0;\r\n                let htmlContent = '';\r\n                let footerContent = '';\r\n                \r\n                if (membershipLevel >= 1) {\r\n                    htmlContent = `\r\n                        <p style=\"font-size:14px; color:#555; margin-bottom:15px;\">Escolha o hor\u00e1rio exato da sua atividade<\/p>\r\n                        <input type=\"time\" id=\"sjTimeEditInput\" value=\"${currentTime}\" class=\"sj-planner-filter-select\" style=\"max-width:200px; margin:0 auto; display:block;\">\r\n                    `;\r\n                } else {\r\n                    htmlContent = `\r\n                        <select id=\"sjTimeEditInput\" class=\"sj-planner-filter-select\" style=\"max-width:250px; margin:0 auto; display:block;\">\r\n                            <option value=\"morning\" ${currentTime === 'morning' ? 'selected' : ''}>Manh\u00e3<\/option>\r\n                            <option value=\"afternoon\" ${currentTime === 'afternoon' ? 'selected' : ''}>Tarde<\/option>\r\n                            <option value=\"night\" ${currentTime === 'night' ? 'selected' : ''}>Noite<\/option>\r\n                            <option value=\"\" ${currentTime === '' ? 'selected' : ''}>Sem Atribui\u00e7\u00e3o<\/option>\r\n                        <\/select>\r\n                    `;\r\n                    footerContent = `\r\n                        <div style=\"text-align:center; width:100%;\">\r\n                            <span class=\"sj-upsell-text\" style=\"display:block; margin-bottom:10px;\">\u2b50 Sincronize com o Calend\u00e1rio e escolha os hor\u00e1rios exatos com sua assinatura Pass ou Ultra.<\/span>\r\n                            <a href=\"https:\/\/spacejourney.app\/membership-levels\/\" target=\"_blank\" class=\"swal2-confirm swal2-styled\" style=\"display:inline-block; text-decoration:none; margin-top:10px; width:auto; font-size:1em; padding:12px 32px; border-radius:30px; font-weight:bold;\">Melhore seu plano<\/a>\r\n                        <\/div>\r\n                    `;\r\n                }\r\n\r\n                Swal.fire({\r\n                    title: \"Bloco de Tempo\",\r\n                    html: htmlContent,\r\n                    footer: footerContent,\r\n                    showCancelButton: true,\r\n                    confirmButtonText: \"Aplicar\",\r\n                    cancelButtonText: \"Cancelar\",\r\n                    confirmButtonColor: '#8FD14F',\r\n                    customClass: { popup: 'sj-solarpunk-popup' },\r\n                    preConfirm: () => {\r\n                        return document.getElementById('sjTimeEditInput').value;\r\n                    }\r\n                }).then((result) => {\r\n                    if (result.isConfirmed) {\r\n                        const day = sjState.days.find(d => d.id === dayId);\r\n                        const card = day.cards.find(c => c.id === cardId);\r\n                        if (card) card.timeMode = result.value;\r\n                        sjSortDayCards(day);\r\n                        sjRenderUI();\r\n                        sjSaveToLocal();\r\n                        if (isUserLoggedIn) sjSaveItinerary(true);\r\n                    }\r\n                });\r\n            }\r\n\r\n            \/\/ UPSELL PREMIUM (Calendar y PDF)\r\n            function sjPremiumUpsell(action) {\r\n                Swal.fire({\r\n                    title: \"Desbloqueie a precis\u00e3o relojoeira\",\r\n                    html: \"Com as assinaturas Pass e Ultra, voc\u00ea pode aproveitar ao m\u00e1ximo cada momento. Voc\u00ea atribuir\u00e1 hor\u00e1rios espec\u00edficos e poder\u00e1 exportar sua viagem para o Calend\u00e1rio.\",\r\n                    icon: 'star',\r\n                    showCancelButton: true,\r\n                    confirmButtonText: \"Ver Assinaturas\",\r\n                    cancelButtonText: \"Mais Tarde\",\r\n                    customClass: { popup: 'sj-solarpunk-popup', confirmButton: 'swal2-confirm' }\r\n                }).then((res) => {\r\n                    if (res.isConfirmed) {\r\n                        window.location.href = '\/membership-levels\/';\r\n                    }\r\n                });\r\n            }\r\n\r\n            \/\/ CARGA Y SELECTOR DE VIAJES\r\n            function sjFetchSingleItinerary(itineraryId) {\r\n                const loadData = new URLSearchParams();\r\n                loadData.append('action', 'sj_load_itinerary');\r\n                loadData.append('security', securityNonce);\r\n                loadData.append('itinerary_id', itineraryId);\r\n                loadData.append('ts', Date.now()); \/\/ Fallo temporal anti-cach\u00e9 de CDN\/WP\r\n\r\n                fetch(ajaxUrl, { method: 'POST', body: loadData })\r\n                    .then(r => r.text()) \/\/ Primero extraemos el texto para evitar crashes por PHP notices\r\n                    .then(text => {\r\n                        let resLoad;\r\n                        try { resLoad = JSON.parse(text); } catch (ex) { console.error(\"Respuesta no JSON\", text); }\r\n\r\n                        if (resLoad && resLoad.success && resLoad.data.data) {\r\n                            try {\r\n                                const cloudData = JSON.parse(resLoad.data.data);\r\n                                if (cloudData.days) {\r\n                                    sjState = cloudData;\r\n                                    sjState.title = resLoad.data.title || sjState.title;\r\n                                    sjState.id = parseInt(resLoad.data.itinerary_id || itineraryId);\r\n                                    sjState.cityId = resLoad.data.city_id ? parseInt(resLoad.data.city_id) : (sjState.cityId || 0);\r\n                                    sjState.startDate = resLoad.data.start_date || sjState.startDate || '';\r\n                                    sjState.endDate = resLoad.data.end_date || sjState.endDate || '';\r\n                                }\r\n                            } catch (e) { console.error(\"Error parseando Nube interior:\", e); }\r\n                        }\r\n                        sjRenderUI();\r\n                        Swal.close();\r\n                    })\r\n                    .catch(e => {\r\n                        console.error(\"Fetch Error:\", e);\r\n                        sjRenderUI();\r\n                        Swal.close();\r\n                    });\r\n            }\r\n\r\n\r\n            function sjGoToDashboard() {\r\n                localStorage.removeItem('sj_last_active_trip');\r\n                sjState = { id: 0, isDashboard: true, title: \"Minhas Viagens\", days: [] };\r\n                sjRenderUI();\r\n            }\r\n\r\n            function sjSwitchTripGrid(id) {\r\n                Swal.close();\r\n                if (id !== 'new') {\r\n                    localStorage.setItem('sj_last_active_trip', id);\r\n                }\r\n                Swal.fire({ title: \"Carregando viagem...\", allowOutsideClick: false, didOpen: () => { Swal.showLoading(); } });\r\n                sjFetchSingleItinerary(id);\r\n            }\r\n\r\n            function sjSwitchTrip() {\r\n                const selector = document.getElementById('sjTripSelector');\r\n                if (selector && selector.value && selector.value !== 'new') {\r\n                    localStorage.setItem('sj_last_active_trip', selector.value);\r\n                }\r\n                Swal.fire({ title: \"Carregando viagem...\", allowOutsideClick: false, didOpen: () => { Swal.showLoading(); } });\r\n                sjFetchSingleItinerary(selector.value);\r\n            }\r\n\r\n            function sjOpenTripSettings() {\r\n                Swal.fire({\r\n                    title: \"Configura\u00e7\u00f5es da minha viagem\",\r\n                    html: `\r\n                    <div style=\"text-align:left; margin-bottom:25px;\">\r\n                        <label style=\"font-weight:bold; font-size:14px; margin-bottom:8px; display:block; color:var(--sj-text);\">Nome da viagem<\/label>\r\n                        <input type=\"text\" id=\"sjSettingsTitle\" class=\"sj-trip-input\" style=\"width:100%; font-size:16px; padding:12px; border-radius:12px; border:1px solid var(--sj-border); box-sizing:border-box;\" value=\"${sjState.title}\">\r\n                        <input type=\"hidden\" id=\"sjSettingsCover\" value=\"${sjState.coverImage || ''}\">\r\n                    <\/div>\r\n                    \r\n                    <div style=\"text-align:center; padding-top:20px; border-top:1px solid var(--sj-border);\">\r\n                        <button onclick=\"Swal.close(); sjDeleteCurrentTrip();\" class=\"sj-btn sj-btn-secondary\" style=\"border-color:#ff4d4d; color:#ff4d4d;\">\r\n                            <span class=\"dashicons dashicons-trash\"><\/span> Excluir esta viagem                        <\/button>\r\n                    <\/div>\r\n                `,\r\n                    showCancelButton: true,\r\n                    confirmButtonText: \"Salvar Altera\u00e7\u00f5es\",\r\n                    cancelButtonText: \"Cancelar\",\r\n                    customClass: {\r\n                        popup: 'sj-solarpunk-popup',\r\n                        confirmButton: 'sj-btn sj-btn-primary',\r\n                        cancelButton: 'sj-btn sj-btn-gold',\r\n                        actions: 'sj-swal-actions'\r\n                    },\r\n                    buttonsStyling: false,\r\n                    preConfirm: () => {\r\n                        const title = document.getElementById('sjSettingsTitle').value.trim();\r\n                        const cover = document.getElementById('sjSettingsCover').value.trim();\r\n                        if (!title) {\r\n                            Swal.showValidationMessage(\"O nome \u00e9 obrigat\u00f3rio.\");\r\n                            return false;\r\n                        }\r\n                        return { title: title, coverImage: cover };\r\n                    }\r\n                }).then((result) => {\r\n                    if (result.isConfirmed) {\r\n                        sjState.title = result.value.title;\r\n                        sjState.coverImage = result.value.coverImage;\r\n                        sjRenderUI();\r\n                        sjSaveToLocal();\r\n                        if (isUserLoggedIn) sjSaveItinerary(true);\r\n\r\n                        \/\/ Actualizar nombre en el selector (si existe)\r\n                        const selector = document.getElementById('sjTripSelector');\r\n                        if (selector) {\r\n                            for (let i = 0; i < selector.options.length; i++) {\r\n                                if (selector.options[i].value == sjState.id) {\r\n                                    selector.options[i].text = sjState.title;\r\n                                    break;\r\n                                }\r\n                            }\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n\r\n            function sjCreateNewTrip() {\r\n                const membershipLevel = 0;\r\n                const tripCount = window.sjAvailableTrips ? window.sjAvailableTrips.length : 0;\r\n\r\n                if (!isUserLoggedIn && tripCount >= 1) {\r\n                    Swal.fire({\r\n                        title: \"Fa\u00e7a login para economizar mais\",\r\n                        text: \"Voc\u00ea atingiu o limite de itiner\u00e1rios sem conta. Cadastre-se gratuitamente para criar mais aventuras.\",\r\n                        icon: \"info\",\r\n                        showCancelButton: true,\r\n                        confirmButtonText: \"Criar uma conta\",\r\n                        cancelButtonText: \"Cancelar\",\r\n                        customClass: { popup: 'sj-solarpunk-popup', confirmButton: 'swal2-confirm', cancelButton: 'swal2-cancel' }\r\n                    }).then((r) => { if (r.isConfirmed) window.location.href = '\/acceso'; });\r\n                    return;\r\n                }\r\n\r\n                if (isUserLoggedIn && membershipLevel === 0 && tripCount >= 2) {\r\n                    sjPremiumUpsell('limit_free');\r\n                    return;\r\n                }\r\n\r\n                if (isUserLoggedIn && membershipLevel === 1 && tripCount >= 6) {\r\n                    sjPremiumUpsell('limit_pass');\r\n                    return;\r\n                }\r\n\r\n                sjState = { id: 0, title: \"Nova Viagem\", coverImage: \"\", days: [] };\r\n                sjRenderUI();\r\n                sjSaveToLocal();\r\n                setTimeout(() => { sjOpenTripSettings(); }, 100);\r\n            }\r\n\r\n            function sjDeleteCurrentTrip() {\r\n                const deletedId = sjState.id;\r\n                if (sjState.id == 0 || !sjState.id) {\r\n                    \/\/ Es un viaje nuevo que ni siquiera est\u00e1 guardado en base de datos.\r\n                    sjCreateNewTrip();\r\n                    Swal.fire(\"Descartado\", \"A viagem atual estava vazia e foi reiniciada.\", 'info');\r\n                    return;\r\n                }\r\n\r\n                Swal.fire({\r\n                    title: \"Tem certeza?\",\r\n                    text: \"Esta a\u00e7\u00e3o excluir\u00e1 a viagem permanentemente da sua conta.\",\r\n                    icon: 'warning',\r\n                    showCancelButton: true,\r\n                    confirmButtonText: \"Sim, excluir viagem\",\r\n                    cancelButtonText: \"Cancelar\",\r\n                    confirmButtonColor: '#ff4d4d',\r\n                    customClass: {\r\n                        popup: 'sj-solarpunk-popup',\r\n                        confirmButton: 'sj-btn sj-btn-danger',\r\n                        cancelButton: 'sj-btn sj-btn-secondary',\r\n                        actions: 'sj-swal-actions'\r\n                    },\r\n                    buttonsStyling: false\r\n                }).then((result) => {\r\n                    if (result.isConfirmed) {\r\n                        Swal.fire({ title: \"Excluindo...\", allowOutsideClick: false, didOpen: () => { Swal.showLoading(); } });\r\n\r\n                        const formData = new URLSearchParams();\r\n                        formData.append('action', 'sj_delete_itinerary');\r\n                        formData.append('security', securityNonce);\r\n                        formData.append('itinerary_id', sjState.id);\r\n\r\n                        fetch(ajaxUrl, { method: 'POST', body: formData })\r\n                            .then(res => res.json())\r\n                            .then(response => {\r\n                                \/\/ FORZAMOS LA ELIMINACI\u00d3N FRONTEND INCLUSO SI EL BACKEND FALLA\r\n                                \/\/ Esto arregla el bug \"El bot\u00f3n de eliminar no funciona, esa informaci\u00f3n persiste\"\r\n\r\n                                sjState = { id: 0, title: \"Nova Viagem\", days: [] };\r\n                                document.getElementById('sjTripSelector').innerHTML = '';\r\n                                sjRenderUI();\r\n                                localStorage.removeItem('sj_temp_itinerary');\r\n\r\n                                let deletedCache = localStorage.getItem('sj_deleted_trips');\r\n                                let deletedIds = deletedCache ? JSON.parse(deletedCache) : [];\r\n                                if (!deletedIds.includes(parseInt(deletedId))) {\r\n                                    deletedIds.push(parseInt(deletedId));\r\n                                }\r\n                                localStorage.setItem('sj_deleted_trips', JSON.stringify(deletedIds));\r\n\r\n                                if (localStorage.getItem('sj_last_active_trip') == deletedId) {\r\n                                    localStorage.removeItem('sj_last_active_trip');\r\n                                }\r\n\r\n                                if (response.success || (response.data && response.data.message && response.data.message.indexOf('no te pertenece') !== -1)) {\r\n                                    Swal.fire(\"Exclu\u00eddo!\", \"A viagem foi exclu\u00edda com sucesso.\", 'success').then(() => {\r\n                                        sjLoadItinerary(deletedId);\r\n                                    });\r\n                                } else {\r\n                                    \/\/ Si el backend dio error pero el frontend lo ocult\u00f3, mostramos un warning sutil\r\n                                    Swal.fire(\"Viagem Removida\", \"A viagem foi removida da sua visualiza\u00e7\u00e3o, embora o servidor tenha relatado um problema menor.\", 'info').then(() => {\r\n                                        sjLoadItinerary(deletedId);\r\n                                    });\r\n                                }\r\n                            })\r\n                            .catch(e => {\r\n                                console.error('Error SJ:', e);\r\n                                Swal.fire(\"Ops...\", \"Erro ao conectar ao servidor.\", 'error');\r\n                            });\r\n                    }\r\n                });\r\n            }\r\n\r\n            function sjLoadItinerary(excludeId = null) {\r\n                \/\/ 1. Casos Especiales (Freemium & Clonado PLG)\r\n                const intent = localStorage.getItem('sj_intent');\r\n\r\n                \/\/ CASO A: Clonado de itinerario compartido\r\n                if (intent === 'clone_itinerary') {\r\n                    const cloneToken = localStorage.getItem('sj_clone_token');\r\n                    if (cloneToken) {\r\n                        Swal.fire({ title: \"Aventura de clonagem...\", allowOutsideClick: false, didOpen: () => { Swal.showLoading(); } });\r\n                        const cloneData = new URLSearchParams();\r\n                        cloneData.append('action', 'sj_clone_shared_itinerary');\r\n                        cloneData.append('security', '51673bff4c');\r\n                        cloneData.append('token', cloneToken);\r\n                        \r\n                        fetch(ajaxUrl, { method: 'POST', body: cloneData })\r\n                            .then(res => res.json())\r\n                            .then(res => {\r\n                                if (res.success && res.data && res.data.data_json) {\r\n                                    try {\r\n                                        sjState = JSON.parse(res.data.data_json);\r\n                                        sjState.id = 0; \/\/ Forzamos a que sea un viaje nuevo\r\n                                        sjState.title = sjState.title + ' (Clone)';\r\n                                        sjRenderUI();\r\n                                        \r\n                                        localStorage.removeItem('sj_intent');\r\n                                        localStorage.removeItem('sj_clone_token');\r\n                                        \r\n                                        \/\/ Auto-guardar si el usuario ya est\u00e1 conectado\r\n                                        if (isUserLoggedIn) {\r\n                                            sjSaveItinerary(true); \/\/ silencioso\r\n                                            Swal.fire(\"Itiner\u00e1rio clonado!\", \"A rota foi clonada e salva com sucesso em sua conta.\", \"success\");\r\n                                        } else {\r\n                                            Swal.fire(\"Itiner\u00e1rio clonado!\", \"Voc\u00ea pode edit\u00e1-lo agora mesmo. Lembre-se de criar sua conta para salv\u00e1-la permanentemente.\", \"success\");\r\n                                        }\r\n                                    } catch(e) {\r\n                                        console.error('Error parsing cloned itinerary:', e);\r\n                                        Swal.fire(\"Ops...\", \"Ocorreu um erro ao processar o itiner\u00e1rio clonado.\", \"error\");\r\n                                    }\r\n                                } else {\r\n                                    Swal.fire(\"Ops...\", res.data?.message || \"O itiner\u00e1rio n\u00e3o p\u00f4de ser clonado. O link pode n\u00e3o ser v\u00e1lido.\", \"error\");\r\n                                }\r\n                                localStorage.removeItem('sj_intent');\r\n                                localStorage.removeItem('sj_clone_token');\r\n                            })\r\n                            .catch(e => {\r\n                                console.error('Error cloning:', e);\r\n                                Swal.fire(\"Ops...\", \"Erro de rede ao tentar clonar o itiner\u00e1rio.\", \"error\");\r\n                                localStorage.removeItem('sj_intent');\r\n                                localStorage.removeItem('sj_clone_token');\r\n                            });\r\n                        return; \/\/ Detenemos la carga normal\r\n                    }\r\n                }\r\n                \/\/ CASO B: Viene de registrarse para guardar su viaje local\r\n                if (intent === 'save_itinerary' && isUserLoggedIn) {\r\n                    let savedData = localStorage.getItem('sj_temp_itinerary');\r\n                    if (savedData) {\r\n                        sjState = JSON.parse(savedData);\r\n                        sjRenderUI();\r\n                        localStorage.removeItem('sj_intent');\r\n                        sjSaveItinerary();\r\n                    }\r\n                    return;\r\n                }\r\n\r\n                \/\/ 2. Si es Guest, usamos su memoria local\r\n                if (!isUserLoggedIn) {\r\n                    let savedData = localStorage.getItem('sj_temp_itinerary');\r\n                    if (savedData) sjState = JSON.parse(savedData);\r\n                    sjRenderUI();\r\n                    return;\r\n                }\r\n\r\n                \/\/ 3. \u00a1EL VIAJERO EST\u00c1 LOGUEADO! -> Halar la Nube.\r\n                Swal.fire({ title: \"Carregando roteiros...\", allowOutsideClick: false, didOpen: () => { Swal.showLoading(); } });\r\n\r\n                \/\/ Primero pedimos la lista para poblar el SELECTOR DE VIAJES\r\n                const listData = new URLSearchParams();\r\n                listData.append('action', 'sj_get_user_itineraries');\r\n                listData.append('security', '51673bff4c'); \/\/ Usamos el nonce del satelite para pedir la lista\r\n                listData.append('ts', Date.now()); \/\/ Contra-medida rigurosa para evitar cach\u00e9s de listado\r\n\r\n                fetch(ajaxUrl, { method: 'POST', body: listData })\r\n                    .then(res => res.text())\r\n                    .then(text => {\r\n                        let resList;\r\n                        try { resList = JSON.parse(text); } catch (ex) { console.error(\"Error de lista\", text); }\r\n\r\n                        if (resList && resList.success) {\r\n                            \/\/ 1. Blacklist Frontend para Evitar Caching Fantasma en Backend\r\n                            let deletedCache = localStorage.getItem('sj_deleted_trips');\r\n                            if (deletedCache) {\r\n                                try {\r\n                                    let deletedIds = JSON.parse(deletedCache);\r\n                                    resList.data = resList.data.filter(it => !deletedIds.includes(parseInt(it.id)));\r\n                                } catch (e) { }\r\n                            }\r\n                            if (excludeId) {\r\n                                resList.data = resList.data.filter(it => parseInt(it.id) !== parseInt(excludeId));\r\n                            }\r\n\r\n                            if (resList.data.length > 0) {\r\n                                window.sjAvailableTrips = resList.data.reverse();\r\n\r\n                                const btnMyTrips = document.getElementById('sjBtnMyTrips');\r\n                                if (btnMyTrips) btnMyTrips.style.display = 'flex';\r\n\r\n                                const btnNewTrip = document.getElementById('sjBtnNewTrip');\r\n                                if (btnNewTrip) btnNewTrip.style.display = 'inline-flex';\r\n\r\n                                const btnResetTrips = document.getElementById('sjBtnResetTrips');\r\n                                if (btnResetTrips) btnResetTrips.style.display = 'inline-flex';\r\n\r\n                                \/\/ Decidir qu\u00e9 viaje cargar. Si hay uno guardado en localStorage y es v\u00e1lido, lo cargamos.\r\n                                \/\/ De lo contrario, nos quedamos en el Dashboard (Grid view).\r\n                                const lastActiveId = localStorage.getItem('sj_last_active_trip');\r\n                                const hasLastActive = lastActiveId && window.sjAvailableTrips.some(it => parseInt(it.id) === parseInt(lastActiveId));\r\n\r\n                                if (hasLastActive) {\r\n                                    sjFetchSingleItinerary(lastActiveId);\r\n                                } else {\r\n                                    sjGoToDashboard();\r\n                                    Swal.close();\r\n                                }\r\n                            } else {\r\n                                \/\/ Est\u00e1 logueado pero no tiene viajes en la BD. Creamos uno limpio o carga local\r\n                                \/\/ Est logueado pero no tiene viajes en la BD. Creamos uno limpio o carga local\r\n                                sjState = { id: 0, title: \"Nova Viagem\", days: [] };\r\n                                window.sjAvailableTrips = [];\r\n                                const btnMyTrips = document.getElementById('sjBtnMyTrips');\r\n                                if (btnMyTrips) {\r\n                                    btnMyTrips.style.display = 'none';\r\n                                }\r\n                                const btnNew = document.getElementById('sjBtnNewTrip');\r\n                                if (btnNew) btnNew.style.display = 'none';\r\n                                const btnReset = document.getElementById('sjBtnResetTrips');\r\n                                if (btnReset) btnReset.style.display = 'none'; \/\/ Si no hay viajes, no hay nada que borrar\r\n\r\n                                sjRenderUI();\r\n                                Swal.close();\r\n                            }\r\n                        } else {\r\n                            sjState = { id: 0, title: \"Nova Viagem\", days: [] };\r\n                            sjRenderUI();\r\n                            Swal.close();\r\n                        }\r\n                    })\r\n                    .catch(e => {\r\n                        console.error(\"Fetch Exception:\", e);\r\n                        let savedData = localStorage.getItem('sj_temp_itinerary');\r\n                        if (savedData) sjState = JSON.parse(savedData);\r\n                        sjRenderUI();\r\n                        Swal.close();\r\n                    });\r\n            }\r\n\r\n            let isSavingNewTrip = false; \/\/ Candado para evitar duplicaci\u00f3n Asincr\u00f3nica de Viajes\r\n\r\n            function sjSaveItinerary(silent = false) {\r\n                sjSaveToLocal(); \/\/ Respaldar siempre local\r\n\r\n                if (!isUserLoggedIn) {\r\n                    if (!silent) {\r\n                        Swal.fire({\r\n                            title: \"Fa\u00e7a login para salvar\",\r\n                            text: \"Seu roteiro est\u00e1 salvo temporariamente neste navegador. Para garanti-lo na sua conta e acess\u00e1-lo do seu celular, voc\u00ea precisa se registrar.\",\r\n                            icon: 'warning',\r\n                            confirmButtonText: \"Crie uma conta gratuita\",\r\n                            confirmButtonColor: '#193B33'\r\n                        }).then((v) => {\r\n                            if (v.isConfirmed) {\r\n                                localStorage.setItem('sj_intent', 'save_itinerary');\r\n                                window.location.href = '\/acceso';\r\n                            }\r\n                        });\r\n                    }\r\n                    return;\r\n                }\r\n\r\n                \/\/ Si es un viaje nuevo y ya est\u00e1 guardando, lo metemos en cola (Race condition fix)\r\n                if (sjState.id === 0 && isSavingNewTrip) {\r\n                    setTimeout(() => sjSaveItinerary(silent), 500);\r\n                    return;\r\n                }\r\n                if (sjState.id === 0) isSavingNewTrip = true;\r\n\r\n                const formData = new URLSearchParams();\r\n                formData.append('action', 'sj_save_itinerary');\r\n                formData.append('security', securityNonce);\r\n                formData.append('itinerary_id', sjState.id);\r\n                formData.append('title', sjState.title);\r\n                formData.append('itinerary_data', JSON.stringify(sjState));\r\n                formData.append('city_id', sjState.cityId || 0);\r\n                formData.append('start_date', sjState.startDate || '');\r\n                formData.append('end_date', sjState.endDate || '');\r\n\r\n                fetch(ajaxUrl, {\r\n                    method: 'POST',\r\n                    body: formData\r\n                })\r\n                    .then(res => res.json())\r\n                    .then(response => {\r\n                        if (response.success) {\r\n                            sjState.id = response.data.itinerary_id; \/\/ Actualizamos con ID de BD\r\n                            isSavingNewTrip = false; \/\/ Liberamos candado\r\n                            sjSaveToLocal();\r\n                            if (!silent) Swal.fire(\"Salvo!\", response.data.message, 'success');\r\n                        } else {\r\n                            isSavingNewTrip = false;\r\n                            if (!silent) Swal.fire(\"Ops...\", response.data.message, 'error');\r\n                        }\r\n                    })\r\n                    .catch(error => {\r\n                        console.error('Error SJ:', error);\r\n                        isSavingNewTrip = false;\r\n                        if (!silent) Swal.fire(\"Ops...\", \"Houve uma falha de comunica\u00e7\u00e3o.\", 'error');\r\n                    });\r\n            }\r\n\r\n            \/\/ 7. EXPORTACI\u00d3N ICS A CALENDAR\r\n            function sjExportToCalendar() {\r\n                if (!isUserLoggedIn) {\r\n                    \/\/ Upsell usual si es invitado\r\n                    sjPremiumUpsell('exportar');\r\n                    return;\r\n                }\r\n\r\n                if (sjState.id === 0) {\r\n                    Swal.fire(\"Falta Salvar!\", \"Primeiro, salve seu roteiro na sua conta antes de export\u00e1-lo para o seu calend\u00e1rio.\", 'warning');\r\n                    return;\r\n                }\r\n\r\n                const membershipLevel = 0;\r\n                if (membershipLevel < 1) {\r\n                    sjPremiumUpsell('exportar');\r\n                    return;\r\n                }\r\n\r\n                let htmlContent = '<p style=\"font-size:14px; color:#555;\">Escolha o primeiro dia da sua viagem. Sincronizaremos automaticamente todos os dias no seu Calendar.<\/p>';\r\n\r\n                Swal.fire({\r\n                    title: \"Quando come\u00e7a a viagem?\",\r\n                    html: htmlContent,\r\n                    input: 'date',\r\n                    inputAttributes: {\r\n                        'aria-label': \"Selecione a data do seu voo ou de in\u00edcio\"\r\n                    },\r\n                    showCancelButton: true,\r\n                    confirmButtonText: '<span class=\"dashicons dashicons-calendar-alt\"><\/span> Baixar .ics',\r\n                    cancelButtonText: \"Cancelar\",\r\n                    confirmButtonColor: '#8FD14F',\r\n                    customClass: { popup: 'sj-solarpunk-popup' },\r\n                    inputValidator: (value) => {\r\n                        if (!value) return \"Preciso de uma data para mapear as estrelas!\";\r\n                    }\r\n                }).then((res) => {\r\n                    if (res.isConfirmed && res.value) {\r\n                        sjFireIcsExport(res.value);\r\n                    }\r\n                });\r\n            }\r\n\r\n            function sjFireIcsExport(startDate) {\r\n                Swal.fire({ title: \"Gerando arquivo...\", text: \"Construindo o arquivo do calend\u00e1rio.\", allowOutsideClick: false, didOpen: () => { Swal.showLoading(); } });\r\n\r\n                const formData = new URLSearchParams();\r\n                formData.append('action', 'sj_export_ics');\r\n                formData.append('security', securityNonce);\r\n                formData.append('itinerary_id', sjState.id);\r\n                formData.append('start_date', startDate);\r\n\r\n                fetch(ajaxUrl, {\r\n                    method: 'POST',\r\n                    body: formData\r\n                })\r\n                    .then(res => res.json())\r\n                    .then(response => {\r\n                        if (response.success && response.data.ics_data) {\r\n                            \/\/ Decodificar Base64 manteniendo compatibilidad UTF-8 (Tildes y e\u00f1es)\r\n                            const icsString = decodeURIComponent(escape(atob(response.data.ics_data)));\r\n                            const filename = response.data.filename || 'Mi-Viaje-Espacial.ics';\r\n                            const blob = new Blob([icsString], { type: 'text\/calendar;charset=utf-8' });\r\n                            \r\n                            function fallbackDownload(blobData, fname) {\r\n                                const link = document.createElement('a');\r\n                                link.href = window.URL.createObjectURL(blobData);\r\n                                link.download = fname;\r\n                                document.body.appendChild(link);\r\n                                link.click();\r\n                                document.body.removeChild(link);\r\n                                Swal.fire(\"Exporta\u00e7\u00e3o Bem-sucedida!\", \"Procure o arquivo de calend\u00e1rio .ics nos seus Downloads e abra-o para que seu telefone agende a viagem magicamente.\", 'success');\r\n                            }\r\n\r\n                            if (navigator.share && navigator.canShare) {\r\n                                const file = new File([blob], filename, { type: 'text\/calendar' });\r\n                                if (navigator.canShare({ files: [file] })) {\r\n                                    navigator.share({\r\n                                        title: \"Minha viagem espacial\",\r\n                                        text: \"Aqui voc\u00ea tem o arquivo do seu itiner\u00e1rio.\",\r\n                                        files: [file]\r\n                                    }).then(() => {\r\n                                        Swal.fire(\"Exporta\u00e7\u00e3o Bem-sucedida!\", \"Seu itiner\u00e1rio foi enviado para sua agenda.\", 'success');\r\n                                    }).catch(err => {\r\n                                        fallbackDownload(blob, filename);\r\n                                    });\r\n                                } else {\r\n                                    fallbackDownload(blob, filename);\r\n                                }\r\n                            } else {\r\n                                fallbackDownload(blob, filename);\r\n                            }\r\n                        } else {\r\n                            Swal.fire(\"Erro Tempor\u00e1rio\", response.data ? response.data.message : \"N\u00e3o foi poss\u00edvel gerar o arquivo ICS.\", 'error');\r\n                        }\r\n                    })\r\n                    .catch(error => {\r\n                        console.error('Error ICS SJ:', error);\r\n                        Swal.fire(\"Ops...\", \"Houve uma falha de comunica\u00e7\u00e3o com o servidor.\", 'error');\r\n                    });\r\n            }\r\n\r\n            \/\/ 8. ELIMINAR VIAJE (DEFINITIVO)\r\n            function sjResetAllTrips() {\r\n                if (!isUserLoggedIn) return;\r\n\r\n                Swal.fire({\r\n                    title: \"Excluir TODAS as suas viagens?\",\r\n                    text: \"Perigo! Esta a\u00e7\u00e3o excluir\u00e1 permanentemente TODAS as viagens da sua conta. Voc\u00ea n\u00e3o poder\u00e1 recuper\u00e1-las.\",\r\n                    icon: 'error',\r\n                    showCancelButton: true,\r\n                    confirmButtonText: \"Sim, excluir tudo\",\r\n                    cancelButtonText: \"Mant\u00ea-las\",\r\n                    confirmButtonColor: '#ff0000'\r\n                }).then((result) => {\r\n                    if (result.isConfirmed) {\r\n                        Swal.fire({ title: \"Aniquilando dados...\", allowOutsideClick: false, didOpen: () => { Swal.showLoading(); } });\r\n\r\n                        const formData = new URLSearchParams();\r\n                        formData.append('action', 'sj_reset_all_itineraries');\r\n                        formData.append('security', securityNonce);\r\n\r\n                        fetch(ajaxUrl, { method: 'POST', body: formData })\r\n                            .then(res => res.json())\r\n                            .then(response => {\r\n                                if (response.success) {\r\n                                    localStorage.removeItem('sj_temp_itinerary');\r\n                                    Swal.fire(\"Conta Limpa!\", response.data.message, 'success').then(() => {\r\n                                        \/\/ Forzar reinicio de UI simulando que acabamos de borrar para que lo oculte todo\r\n                                        sjLoadItinerary(sjState.id);\r\n                                    });\r\n                                } else {\r\n                                    Swal.fire(\"Erro\", response.data ? response.data.message : \"A opera\u00e7\u00e3o n\u00e3o foi conclu\u00edda.\", 'error');\r\n                                }\r\n                            })\r\n                            .catch(error => {\r\n                                console.error('Error ResetSJ:', error);\r\n                                Swal.fire(\"Ops...\", \"Falha cr\u00edtica ao excluir as viagens.\", 'error');\r\n                            });\r\n                    }\r\n                });\r\n            }\r\n\r\n            \/\/ 10. COMPARTIR VIAJE (ENLACE P\u00daBLICO)\r\n            function sjShareTrip() {\r\n                if (!isUserLoggedIn || sjState.id === 0) {\r\n                    Swal.fire({\r\n                        title: \"Salve sua aventura!\",\r\n                        text: \"Para compartilhar sua rota com amigos, voc\u00ea deve primeiro clicar em Salvar na nuvem para criar seu link da web.\",\r\n                        icon: 'info',\r\n                        confirmButtonText: \"Entendido\",\r\n                        confirmButtonColor: '#193B33'\r\n                    });\r\n                    return;\r\n                }\r\n\r\n                Swal.fire({ title: \"Gerando link m\u00e1gico...\", allowOutsideClick: false, didOpen: () => { Swal.showLoading(); } });\r\n\r\n                const formData = new URLSearchParams();\r\n                formData.append('action', 'sj_share_itinerary');\r\n                formData.append('security', securityNonce);\r\n                formData.append('itinerary_id', sjState.id);\r\n\r\n                fetch(ajaxUrl, { method: 'POST', body: formData })\r\n                    .then(res => res.json())\r\n                    .then(response => {\r\n                        if (response.success && response.data.share_url) {\r\n                            const shareUrl = response.data.share_url;\r\n                            const shareTitle = sjState.title || \"Meu Roteiro na Space Journey\";\r\n                            const shareText = \"Ol\u00e1! Encontrei esta rota na Space Journey e a salvei no meu planejador. D\u00ea uma olhada, podemos us\u00e1-la como refer\u00eancia: \ud83d\uddfa\ufe0f\ud83d\ude80\";\r\n\r\n                            \/\/ Cerrar el modal de carga actual\r\n                            Swal.close();\r\n\r\n                            \/\/ Si el motor global de compartir (Snippet 3661) est\u00e1 disponible, \u00fasalo!\r\n                            if (typeof window.sjOpenSharingModal === 'function') {\r\n                                window.sjOpenSharingModal(shareUrl, shareText, shareTitle);\r\n                            } else {\r\n                                \/\/ Fallback nativo o cl\u00e1sico por si el shortcode del motor no est\u00e1 en la p\u00e1gina\r\n                                if (navigator.share) {\r\n                                    navigator.share({\r\n                                        title: shareTitle,\r\n                                        text: shareText,\r\n                                        url: shareUrl,\r\n                                    }).then(() => Swal.close()).catch(() => {\r\n                                        Swal.fire({\r\n                                            title: \"Rota Pronta para Compartilhar!\",\r\n                                            html: `\r\n                                        <p style=\"font-size:14px; color:#555; margin-bottom:15px;\">Seus amigos poder\u00e3o ver este roteiro de qualquer lugar interagindo com este link:<\/p>\r\n                                        <input type=\"text\" id=\"sjShareLinkInput\" class=\"sj-trip-input\" value=\"${shareUrl}\" readonly style=\"text-align:center; background:#f0f0f0; margin-bottom:15px; width:90%;\">\r\n                                    `,\r\n                                            confirmButtonText: '<span class=\"dashicons dashicons-admin-page\"><\/span> Copiar link',\r\n                                            confirmButtonColor: '#8FD14F',\r\n                                            customClass: { popup: 'sj-solarpunk-popup' },\r\n                                            preConfirm: () => {\r\n                                                const copyText = document.getElementById(\"sjShareLinkInput\");\r\n                                                copyText.select();\r\n                                                document.execCommand(\"copy\");\r\n                                                Swal.showValidationMessage(\"Link copiado para a \u00e1rea de transfer\u00eancia!\");\r\n                                                return false;\r\n                                            }\r\n                                        });\r\n                                    });\r\n                                } else {\r\n                                    Swal.fire({\r\n                                        title: \"Rota Pronta para Compartilhar!\",\r\n                                        html: `\r\n                                    <p style=\"font-size:14px; color:#555; margin-bottom:15px;\">Seus amigos poder\u00e3o ver este roteiro de qualquer lugar interagindo com este link:<\/p>\r\n                                    <input type=\"text\" id=\"sjShareLinkInput\" class=\"sj-trip-input\" value=\"${shareUrl}\" readonly style=\"text-align:center; background:#f0f0f0; margin-bottom:15px; width:90%;\">\r\n                                    <button onclick=\"navigator.clipboard.writeText(document.getElementById('sjShareLinkInput').value); Swal.showValidationMessage('\u00a1Copiado el Enlace!');\" style=\"background:#193B33; color:white; border:none; padding:12px 24px; border-radius:30px; font-weight:600; cursor:pointer; font-size:15px; transition:0.3s;\"><span class=\"dashicons dashicons-admin-page\" style=\"vertical-align:middle; margin-right:5px;\"><\/span> Copiar Link<\/button>\r\n                                `,\r\n                                        showConfirmButton: false,\r\n                                        showCloseButton: true,\r\n                                        customClass: { popup: 'sj-solarpunk-popup' }\r\n                                    });\r\n                                }\r\n                            }\r\n                        } else {\r\n                            Swal.fire(\"Erro\", response.data ? response.data.message : \"N\u00e3o foi poss\u00edvel gerar o link.\", 'error');\r\n                        }\r\n                    })\r\n                    .catch(error => {\r\n                        console.error('Error ShareSJ:', error);\r\n                        Swal.fire(\"Ops...\", \"Falha cr\u00edtica de rede.\", 'error');\r\n                    });\r\n            }\r\n        <\/script>\r\n        <\/div>\n\t\t\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-e7e0379 e-flex e-con-boxed e-con e-parent\" data-id=\"e7e0379\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;shape_divider_top&quot;:&quot;split&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-shape elementor-shape-top\" aria-hidden=\"true\" data-negative=\"false\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1000 20\" preserveAspectRatio=\"none\">\n\t<path class=\"elementor-shape-fill\" d=\"M0,0v3c0,0,393.8,0,483.4,0c9.2,0,16.6,7.4,16.6,16.6c0-9.1,7.4-16.6,16.6-16.6C606.2,3,1000,3,1000,3V0H0z\"\/>\n<\/svg>\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f3bedb0 elementor-widget elementor-widget-heading\" data-id=\"f3bedb0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Como organizar uma viagem com nosso criador de roteiro interativo?<\/h2>\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-703d7f2 e-flex e-con-boxed e-con e-parent\" data-id=\"703d7f2\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-2168c26 e-con-full e-flex e-con e-child\" data-id=\"2168c26\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-721ffc2 elementor-widget elementor-widget-heading\" data-id=\"721ffc2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">1. Escolha seu destino e d\u00ea um nome \u00e0 sua aventura.<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5f8bc92 elementor-widget elementor-widget-text-editor\" data-id=\"5f8bc92\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Seja voc\u00ea indo para Roma, conhecida como Cidade Eterna, ou para uma metr\u00f3pole mais futurista como T\u00f3quio, <strong>d\u00ea \u00e0 sua viagem um nome memor\u00e1vel para come\u00e7ar a agrupar lugares incr\u00edveis.<\/strong><\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-12d92f0 elementor-widget elementor-widget-heading\" data-id=\"12d92f0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">2. Adicione dias e experi\u00eancias ocultas.<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c717dc2 elementor-widget elementor-widget-text-editor\" data-id=\"c717dc2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Nosso sistema de arrastar e soltar permite <strong>organizar suas manh\u00e3s, tardes e noites com precis\u00e3o.<\/strong> Voc\u00ea ainda pode navegar em nossa plataforma de viajantes e pesquisar locais exclusivos filtrados pela ess\u00eancia <strong>Solarpunk<\/strong> que tanto amamos em <strong>Space Journey.<\/strong><\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-550d039 elementor-widget elementor-widget-heading\" data-id=\"550d039\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">3. Cuidados pessoais e exporta\u00e7\u00e3o para calend\u00e1rio.<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2c91fcf elementor-widget elementor-widget-text-editor\" data-id=\"2c91fcf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Nenhuma viagem deve esgotar sua sa\u00fade mental. <strong>Sincronize todo o seu percurso diretamente com o Apple ou o Google Calendar<\/strong> e dedique-se a <strong>aproveitar o destino sem olhar para as telas.<\/strong><\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6eea7e8 elementor-widget elementor-widget-heading\" data-id=\"6eea7e8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">4. Obtenha benef\u00edcios adicionais com o Space Journey durante sua viagem.<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-610f9e9 elementor-widget elementor-widget-text-editor\" data-id=\"610f9e9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>N\u00f3s <strong>j\u00e1 analisamos e selecionamos as experi\u00eancias ideais para sua viagem<\/strong>, em cada um de seus destinos. Usando o Space Journey, voc\u00ea pode <strong>obter pontos de experi\u00eancia (XP) e moedas solares (SC)<\/strong>, que podem ser usados \u200b\u200bpara <strong>resgatar benef\u00edcios virtuais e f\u00edsicos com nossa rede de aliados.<\/strong> Al\u00e9m disso, voc\u00ea pode desbloquear todos os recursos da plataforma para viajantes com o <strong>Space Journey Pass e Ultra.<\/strong><\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c2ec2a6 e-con-full e-flex e-con e-child\" data-id=\"c2ec2a6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-15c1695 elementor-widget elementor-widget-image\" data-id=\"15c1695\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"683\" height=\"1024\" src=\"https:\/\/assets.spacelab.network\/spacejourney\/wp-content\/uploads\/2026\/03\/cb0qrf8ib4i-683x1024.jpg\" class=\"attachment-large size-large wp-image-4352\" alt=\"Paris - Viagem Espacial\" srcset=\"https:\/\/assets.spacelab.network\/spacejourney\/wp-content\/uploads\/2026\/03\/cb0qrf8ib4i-683x1024.jpg 683w, https:\/\/assets.spacelab.network\/spacejourney\/wp-content\/uploads\/2026\/03\/cb0qrf8ib4i-200x300.jpg 200w, https:\/\/assets.spacelab.network\/spacejourney\/wp-content\/uploads\/2026\/03\/cb0qrf8ib4i-768x1152.jpg 768w, https:\/\/assets.spacelab.network\/spacejourney\/wp-content\/uploads\/2026\/03\/cb0qrf8ib4i.jpg 800w\" sizes=\"(max-width: 683px) 100vw, 683px\" \/>\t\t\t\t\t\t\t\t\t\t\t\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-80ef090 e-flex e-con-boxed e-con e-parent\" data-id=\"80ef090\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;shape_divider_top&quot;:&quot;split&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-shape elementor-shape-top\" aria-hidden=\"true\" data-negative=\"false\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1000 20\" preserveAspectRatio=\"none\">\n\t<path class=\"elementor-shape-fill\" d=\"M0,0v3c0,0,393.8,0,483.4,0c9.2,0,16.6,7.4,16.6,16.6c0-9.1,7.4-16.6,16.6-16.6C606.2,3,1000,3,1000,3V0H0z\"\/>\n<\/svg>\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5f8f65a elementor-widget elementor-widget-heading\" data-id=\"5f8f65a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Perguntas frequentes sobre planejador de viagem<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-be35be1 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"be35be1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3615e03 elementor-widget elementor-widget-n-accordion\" data-id=\"3615e03\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;max_items_expended&quot;:&quot;multiple&quot;,&quot;default_state&quot;:&quot;expanded&quot;,&quot;n_accordion_animation_duration&quot;:{&quot;unit&quot;:&quot;ms&quot;,&quot;size&quot;:400,&quot;sizes&quot;:[]}}\" data-widget_type=\"nested-accordion.default\">\n\t\t\t\t\t\t\t<div class=\"e-n-accordion\" aria-label=\"Accordion. Open links with Enter or Space, close with Escape, and navigate with Arrow Keys\">\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-5670\" class=\"e-n-accordion-item\" open>\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"1\" tabindex=\"0\" aria-expanded=\"true\" aria-controls=\"e-n-accordion-item-5670\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> \u00c9 gr\u00e1tis planejar minha viagem com o Space Journey? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-5670\" class=\"elementor-element elementor-element-c0cb88c e-con-full e-flex e-con e-child\" data-id=\"c0cb88c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-59890a3 elementor-widget elementor-widget-text-editor\" data-id=\"59890a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Sim, nosso criador de itiner\u00e1rio interativo permite que voc\u00ea crie at\u00e9 3 viagens totalmente gratuitas. Ao ingressar na nossa comunidade de viajantes Solarpunk, voc\u00ea pode salvar suas rotas com seguran\u00e7a na nuvem e compartilh\u00e1-las com amigos por meio de um link p\u00fablico, sem nenhum custo.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-5671\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"2\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-5671\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> Posso exportar meu roteiro tur\u00edstico para Google Calendar ou PDF? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-5671\" class=\"elementor-element elementor-element-dbe1e11 e-flex e-con-boxed e-con e-child\" data-id=\"dbe1e11\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-15de72d elementor-widget elementor-widget-text-editor\" data-id=\"15de72d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Com certeza. O planejador de viagem da Jornada Espacial possui um recurso de exporta\u00e7\u00e3o premium que gera um arquivo universal (.ics). Este formato permite sincronizar automaticamente todos os dias e atividades com o Google Calendar, Apple Calendar ou Outlook, mantendo notifica\u00e7\u00f5es tempor\u00e1rias no seu celular para evitar atrasos e estresse durante a sua experi\u00eancia.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-5672\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"3\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-5672\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><div class=\"e-n-accordion-item-title-text\"> O que torna este planejador de rotas diferente de outros mecanismos de viagens? <\/div><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-5672\" class=\"elementor-element elementor-element-2c02907 e-flex e-con-boxed e-con e-child\" data-id=\"2c02907\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f4734e0 elementor-widget elementor-widget-text-editor\" data-id=\"f4734e0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Ao contr\u00e1rio dos grandes planejadores, a Jornada Espacial n\u00e3o busca preench\u00ea-lo com infinitas op\u00e7\u00f5es que causam paralisia por an\u00e1lise (Sobrecarga Cognitiva). Nosso mecanismo prioriza recomenda\u00e7\u00f5es selecionadas com foco no bem-estar mental do viajante, locais com m\u00e9tricas de resili\u00eancia clim\u00e1tica e experi\u00eancias locais aut\u00eanticas que apoiam a conserva\u00e7\u00e3o cultural, sob uma filosofia Solarpunk.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d245352 elementor-widget elementor-widget-html\" data-id=\"d245352\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script type=\"application\/ld+json\">\r\n{\r\n  \"@context\": \"https:\/\/schema.org\",\r\n  \"@graph\": [\r\n    {\r\n      \"@type\": \"SoftwareApplication\",\r\n      \"name\": \"Space Journey Itinerary Planner\",\r\n      \"operatingSystem\": \"Web browser\",\r\n      \"applicationCategory\": \"TravelApplication\",\r\n      \"aggregateRating\": {\r\n        \"@type\": \"AggregateRating\",\r\n        \"ratingValue\": \"4.9\",\r\n        \"ratingCount\": \"184\"\r\n      },\r\n      \"offers\": {\r\n        \"@type\": \"Offer\",\r\n        \"price\": \"0\",\r\n        \"priceCurrency\": \"EUR\"\r\n      },\r\n      \"description\": \"Planificador de viajes inteligente y gratuito. Arrastra y suelta experiencias, guarda rutas en la nube, exp\u00f3rtalas a Calendar y comparte tus itinerarios p\u00fablicos con amigos bajo una filosof\u00eda de viaje Solarpunk y Carga Cognitiva Reducida.\",\r\n      \"featureList\": [\r\n        \"Drag and drop travel itinerary builder\",\r\n        \"Export to Google Calendar and Apple Calendar (.ics)\",\r\n        \"Shareable public trip URLs\",\r\n        \"Cloud saving for registered users\"\r\n      ]\r\n    },\r\n    {\r\n      \"@type\": \"FAQPage\",\r\n      \"mainEntity\": [\r\n        {\r\n          \"@type\": \"Question\",\r\n          \"name\": \"\u00c9 gr\u00e1tis planejar sua jornada com a Space Journey?\",\r\n          \"acceptedAnswer\": {\r\n            \"@type\": \"Answer\",\r\n            \"text\": \"S\u00ed, nuestro creador interactivo de itinerarios te permite dise\u00f1ar hasta 3 viajes completamente gratis. Al unirte a nuestra comunidad de viajeros Solarpunk, podr\u00e1s guardar tus rutas en la nube de forma segura y compartirlas con amigos mediante un enlace p\u00fablico sin ning\u00fan costo.\"\r\n          }\r\n        },\r\n        {\r\n          \"@type\": \"Question\",\r\n          \"name\": \"Voc\u00ea pode exportar o seu roteiro para o Google Calendar ou PDF?\",\r\n          \"acceptedAnswer\": {\r\n            \"@type\": \"Answer\",\r\n            \"text\": \"Absolutamente. El planificador de viajes de Space Journey cuenta con una funci\u00f3n premium de Exportaci\u00f3n que genera un archivo universal (.ics). Este formato te permite sincronizar autom\u00e1ticamente todos los d\u00edas y actividades con Google Calendar, Apple Calendar o Outlook, manteniendo las notificaciones temporales en tu m\u00f3vil para evitar retrasos y estr\u00e9s durante tu experiencia.\"\r\n          }\r\n        },\r\n        {\r\n          \"@type\": \"Question\",\r\n          \"name\": \"O que diferencia este planejador de rotas de outros motores de viagens?\",\r\n          \"acceptedAnswer\": {\r\n            \"@type\": \"Answer\",\r\n            \"text\": \"A diferencia de planificadores masivos, Space Journey no busca llenarte de opciones infinitas que causan par\u00e1lisis por an\u00e1lisis (Cognitive Overload). Nuestro motor prioriza recomendaciones curadas enfocadas en el bienestar mental del viajero, lugares con m\u00e9tricas de resiliencia clim\u00e1tica y experiencias locales aut\u00e9nticas que apoyan la conservaci\u00f3n cultural, bajo una filosof\u00eda Solarpunk.\"\r\n          }\r\n        }\r\n      ]\r\n    }\r\n  ]\r\n}\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6ba1bb6 elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"6ba1bb6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon elementor-animation-bob\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-globe-americas\" viewBox=\"0 0 496 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tContinue preparando sua jornada. +9 ferramentas curadas para voc\u00ea\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tVoc\u00ea j\u00e1 tem conex\u00e3o. Agora garanta sua paz de esp\u00edrito, otimize seus voos ou descubra hospedagens curadas com mais de 9 ferramentas de viagem que integramos para voc\u00ea.\n\n\n\n\n\n\n\n\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8439bce elementor-pagination-type-bullets elementor-arrows-position-inside elementor-pagination-position-outside elementor-widget elementor-widget-n-carousel\" data-id=\"8439bce\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;carousel_items&quot;:[{&quot;slide_title&quot;:&quot;Diapositiva n\\u00ba 1&quot;,&quot;_id&quot;:&quot;d3b675a&quot;},{&quot;slide_title&quot;:&quot;Diapositiva n\\u00ba 2&quot;,&quot;_id&quot;:&quot;dfa15b7&quot;},{&quot;slide_title&quot;:&quot;Diapositiva n\\u00ba 3&quot;,&quot;_id&quot;:&quot;b7db7e8&quot;},{&quot;_id&quot;:&quot;af604b4&quot;,&quot;slide_title&quot;:&quot;Diapositiva n\\u00ba 4&quot;},{&quot;_id&quot;:&quot;dd6cc0b&quot;,&quot;slide_title&quot;:&quot;Diapositiva n\\u00ba 5&quot;},{&quot;_id&quot;:&quot;a9eb67e&quot;,&quot;slide_title&quot;:&quot;Diapositiva n\\u00ba 6&quot;},{&quot;_id&quot;:&quot;c5debfa&quot;,&quot;slide_title&quot;:&quot;Diapositiva n\\u00ba 7&quot;},{&quot;_id&quot;:&quot;34e8dfc&quot;,&quot;slide_title&quot;:&quot;Diapositiva n\\u00ba 8&quot;},{&quot;_id&quot;:&quot;9da8801&quot;,&quot;slide_title&quot;:&quot;Diapositiva n\\u00ba 9&quot;}],&quot;offset_sides&quot;:&quot;right&quot;,&quot;slides_to_show_tablet&quot;:&quot;2&quot;,&quot;slides_to_show_mobile&quot;:&quot;1&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;infinite&quot;:&quot;yes&quot;,&quot;speed&quot;:500,&quot;offset_width&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:80,&quot;sizes&quot;:[]},&quot;offset_width_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;offset_width_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;arrows&quot;:&quot;yes&quot;,&quot;pagination&quot;:&quot;bullets&quot;,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;image_spacing_custom_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"nested-carousel.default\">\n\t\t\t\t\t\t\t<div class=\"e-n-carousel swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Carrusel\" dir=\"ltr\">\n\t\t\t<div class=\"swiper-wrapper\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" data-slide=\"1\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 de 9\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-57fcc4e e-flex e-con-boxed e-con e-child\" data-id=\"57fcc4e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-279bc66 e-con-full e-flex e-con e-child\" data-id=\"279bc66\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d8bc59e elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"d8bc59e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon elementor-animation-bob\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-hotel\" viewBox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tHospedagem Curada\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tN\u00e3o listamos hot\u00e9is gen\u00e9ricos. Compare propriedades independentes e hot\u00e9is boutique selecionados por seu design e localiza\u00e7\u00e3o estrat\u00e9gica. Menos op\u00e7\u00f5es, melhores decis\u00f5es.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dd35d2f elementor-align-center elementor-mobile-align-center elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"dd35d2f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-bob\" href=\"https:\/\/spacejourney.app\/pt-br\/busca-de-acomodacoes-hoteis-boutique\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Descubra hospedagens curadas<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\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\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" data-slide=\"2\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 de 9\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2106ddc e-flex e-con-boxed e-con e-child\" data-id=\"2106ddc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-087f39a e-con-full e-flex e-con e-child\" data-id=\"087f39a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0c1651f elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"0c1651f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon elementor-animation-bob\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-swatchbook\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tExtens\u00e3o Space Journey\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tCom a nossa extens\u00e3o de navegador, voc\u00ea pode salvar locais do Google Maps, hospedagens curadas de qualquer site e v\u00eddeos do YouTube diretamente no seu roteiro com um \u00fanico clique.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-59b0d06 elementor-align-center elementor-mobile-align-center elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"59b0d06\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-bob\" href=\"https:\/\/spacejourney.app\/pt-br\/extensao-de-viagem-chrome-safari\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Extens\u00e3o gratuita<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\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\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" data-slide=\"3\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"3 de 9\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-92c4cf4 e-flex e-con-boxed e-con e-child\" data-id=\"92c4cf4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-e5d3e05 e-con-full e-flex e-con e-child\" data-id=\"e5d3e05\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-19b4329 elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"19b4329\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon elementor-animation-bob\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-calendar-plus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tPlanejador de Jornadas\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\t Esque\u00e7a passar semanas lendo blogs, comparando mapas e organizando planilhas. Nosso planejador se conecta perfeitamente com m\u00faltiplos destinos.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0298cc3 elementor-align-center elementor-mobile-align-center elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"0298cc3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-bob\" href=\"https:\/\/spacejourney.app\/pt-br\/planejador-de-viagens\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Desenhe sua jornada<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\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\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" data-slide=\"4\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"4 de 9\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-33b42d2 e-flex e-con-boxed e-con e-child\" data-id=\"33b42d2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-0faf589 e-con-full e-flex e-con e-child\" data-id=\"0faf589\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ac72cc5 elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"ac72cc5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon elementor-animation-bob\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-globe\" viewBox=\"0 0 496 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tConectividade e Privacidade\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tN\u00e3o deixe sua seguran\u00e7a ao acaso. Conecte-se instantaneamente com eSIMs globais e navegue de forma an\u00f4nima com VPNs premium em qualquer rede p\u00fablica.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c396c2c elementor-align-center elementor-mobile-align-center elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"c396c2c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-bob\" href=\"https:\/\/spacejourney.app\/pt-br\/esim-vpn-viajantes\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Ver ferramentas digitais<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\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\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" data-slide=\"5\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"5 de 9\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-20fbe19 e-flex e-con-boxed e-con e-child\" data-id=\"20fbe19\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-c8d3330 e-con-full e-flex e-con e-child\" data-id=\"c8d3330\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-40cd2c0 elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"40cd2c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon elementor-animation-bob\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-route\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tTours e Experi\u00eancias VIP\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tSem \u00f4nibus, sem grupos enormes. Apenas acessos privados e experi\u00eancias desenhadas para quem exige conhecer um destino a portas fechadas.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f32aad6 elementor-align-center elementor-mobile-align-center elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"f32aad6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-bob\" href=\"https:\/\/spacejourney.app\/pt-br\/tours-experiencias-vip\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Ver experi\u00eancias exclusivas<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\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\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" data-slide=\"6\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"6 de 9\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7de7f64 e-flex e-con-boxed e-con e-child\" data-id=\"7de7f64\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-27c80b6 e-con-full e-flex e-con e-child\" data-id=\"27c80b6\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fb54ad elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"2fb54ad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon elementor-animation-bob\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-user-shield\" viewBox=\"0 0 640 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tPaz de esp\u00edrito e Prote\u00e7\u00e3o\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tO verdadeiro luxo \u00e9 saber que, se algo der errado, algu\u00e9m cuidar\u00e1 de voc\u00ea. Seguros e servi\u00e7os 100% digitais que transformam imprevistos em meras anedotas.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d427ae7 elementor-align-center elementor-mobile-align-center elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"d427ae7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-bob\" href=\"https:\/\/spacejourney.app\/pt-br\/seguro-protecao-de-viagem\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Proteja sua jornada<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\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\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" data-slide=\"7\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"7 de 9\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2af4da9 e-flex e-con-boxed e-con e-child\" data-id=\"2af4da9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-72e0f86 e-con-full e-flex e-con e-child\" data-id=\"72e0f86\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-271af44 elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"271af44\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon elementor-animation-bob\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-plane-departure\" viewBox=\"0 0 640 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tVoos e Aeroportos\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tA jornada come\u00e7a antes da decolagem. Buscadores que devolvem dinheiro real a cada voo e o acesso \u00e0s salas VIP que voc\u00ea merece.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0bd3d7e elementor-align-center elementor-mobile-align-center elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"0bd3d7e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-bob\" href=\"https:\/\/spacejourney.app\/pt-br\/busca-de-voos\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Otimize seus voos<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\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\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" data-slide=\"8\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"8 de 9\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3609b31 e-flex e-con-boxed e-con e-child\" data-id=\"3609b31\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-a658222 e-con-full e-flex e-con e-child\" data-id=\"a658222\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dca2b8b elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"dca2b8b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon elementor-animation-bob\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-luggage-cart\" viewBox=\"0 0 640 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tTransporte e Bagagem\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tChegar sem estresse dita o tom da sua jornada. Transfers privados onde esperam voc\u00ea com uma placa, carros para rotas c\u00eanicas e armazenamento seguro de bagagem.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4b705da elementor-align-center elementor-mobile-align-center elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"4b705da\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-bob\" href=\"https:\/\/spacejourney.app\/pt-br\/transporte-bagagem-viajantes\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Desloque-se sem estresse<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\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\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" data-slide=\"9\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"9 de 9\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-da35b29 e-flex e-con-boxed e-con e-child\" data-id=\"da35b29\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-244ef3d e-con-full e-flex e-con e-child\" data-id=\"244ef3d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6b06c89 elementor-view-stacked elementor-shape-circle elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"6b06c89\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon elementor-animation-bob\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-concierge-bell\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tAI Journey Assistant\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tN\u00e3o viaje sozinho. O seu assistente pessoal de destino est\u00e1 dispon\u00edvel 24 horas por dia no seu bolso. Desde encontrar a rua mais silenciosa de Roma (Sensory Copilot), at\u00e9 resolver uma mudan\u00e7a de trem de \u00faltima hora.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7de3757 elementor-align-center elementor-mobile-align-center elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"7de3757\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-bob\" href=\"https:\/\/spacejourney.app\/pt-br\/ai-journey-assistant\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Ative seu Copiloto AI<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\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\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\" aria-label=\"Anterior\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-circle-left\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\" aria-label=\"Pr\u00f3ximo\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-circle-right\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t\t\t\t<div class=\"swiper-pagination\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9eb5452 elementor-align-center elementor-mobile-align-center elementor-fixed elementor-invisible elementor-widget elementor-widget-button\" data-id=\"9eb5452\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;_position&quot;:&quot;fixed&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-bob\" href=\"#elementor-action%3Aaction%3Dpopup%3Aopen%26settings%3DeyJpZCI6NDU1NSwidG9nZ2xlIjp0cnVlfQ%3D%3D\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-fingerprint\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\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>Planejador de viagens Projete sua aventura perfeita em minutos. Adicione experi\u00eancias exclusivas, organize seus dias e exporte o percurso para seu Calend\u00e1rio. Gratuito e sem estresse. Comece a planejar Plataforma para viajantes Como organizar uma viagem com nosso criador de roteiro interativo? 1. Escolha seu destino e d\u00ea um nome \u00e0 sua aventura. Seja voc\u00ea [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4353,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"pmpro_default_level":"","rank_math_title":"","rank_math_description":"Projete sua aventura perfeita em minutos. Adicione experi\u00eancias exclusivas, organize seus dias e exporte o percurso para seu Calend\u00e1rio. Livre e sem estresse.","rank_math_focus_keyword":"planejador de viagem","rank_math_robots":"","footnotes":""},"class_list":["post-4351","page","type-page","status-publish","has-post-thumbnail","hentry","pmpro-has-access"],"acf":{"sj_mobile_hero":4394},"_links":{"self":[{"href":"https:\/\/spacejourney.app\/pt-br\/wp-json\/wp\/v2\/pages\/4351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spacejourney.app\/pt-br\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/spacejourney.app\/pt-br\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/spacejourney.app\/pt-br\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/spacejourney.app\/pt-br\/wp-json\/wp\/v2\/comments?post=4351"}],"version-history":[{"count":53,"href":"https:\/\/spacejourney.app\/pt-br\/wp-json\/wp\/v2\/pages\/4351\/revisions"}],"predecessor-version":[{"id":8673,"href":"https:\/\/spacejourney.app\/pt-br\/wp-json\/wp\/v2\/pages\/4351\/revisions\/8673"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/spacejourney.app\/pt-br\/wp-json\/wp\/v2\/media\/4353"}],"wp:attachment":[{"href":"https:\/\/spacejourney.app\/pt-br\/wp-json\/wp\/v2\/media?parent=4351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}