No items found.

Your custom trip is ready

Michel

's

No items found.

itinerary

Crafted by our AI + a local expert. Fully editable to your style & pace.

No items found.
Season illustration
Best time to go

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

nights

Heading

From

$

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

USD per person

Home
Text Link
No items found.
Text Link

Let’s turn this into your exact trip.

Maria— Travel Designer

Replies within 24h • 100% tailor-made

5/5

225 reviews
Share it with your friends👇

Details

<div class="trip-overview-raw" style="display: none;"> <script> (function(){ try { var mapData = {"summary":{"title":"7-Day France Couple Trip","dates":"TBD","travelers":"2 Travelers"},"weather":{"desc":"Mild weather with fewer crowds","temp":"15-25°C"},"security":{"status":"Low Risk","tip":"Stay aware of your surroundings in crowded areas."},"budget":{"total":"€1,400","items":[{"label":"Accommodations","val":"€840"},{"label":"Transport","val":"€200"},{"label":"Activities & Food","val":"€360"}]},"map":{"waypoints":[{"name":"Paris","lat":48.8566,"lon":2.3522,"days":"Day 1-3","desc":"Explore the romantic streets and iconic landmarks.","photo":"","highlights":["Eiffel Tower","Seine River"]},{"name":"Versailles","lat":48.8049,"lon":2.1204,"days":"Day 3","desc":"Visit the opulent palace and beautiful gardens.","photo":"","highlights":["Palace of Versailles","Gardens"]},{"name":"Amboise","lat":47.4118,"lon":0.9812,"days":"Day 4-6","desc":"Discover charming castles and local wines.","photo":"","highlights":["Château d'Amboise","Loire River"]}],"route":[0,1,2]},"days":[{"day_index":1,"day_title":"Arrival in Paris","image_query":"Paris Marais District France","html_placeholder":"[DAY_IMAGE_01]"},{"day_index":2,"day_title":"Paris Essentials","image_query":"Paris Eiffel Tower France","html_placeholder":"[DAY_IMAGE_02]"},{"day_index":3,"day_title":"Day Trip to Versailles","image_query":"Versailles Palace France","html_placeholder":"[DAY_IMAGE_03]"},{"day_index":4,"day_title":"Paris to Loire Valley (Amboise)","image_query":"Amboise Château d'Amboise France","html_placeholder":"[DAY_IMAGE_04]"},{"day_index":5,"day_title":"Loire Valley – Castles & Villages","image_query":"Amboise Château de Chenonceau France","html_placeholder":"[DAY_IMAGE_05]"},{"day_index":6,"day_title":"Loire Valley – Tours & Gastronomy","image_query":"Tours Saint-Gatien Cathedral France","html_placeholder":"[DAY_IMAGE_06]"},{"day_index":7,"day_title":"Return to Paris & Departure","image_query":"Paris City Center France","html_placeholder":"[DAY_IMAGE_07]"}]}; var dayImagesRaw = [{"day_index":1,"day_title":"Arrival in Paris","placeholder":"[DAY_IMAGE_01]","day_image_url":"https://images.unsplash.com/photo-1471623432079-b009d30b6729?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4NjAxNDN8MHwxfHNlYXJjaHwxfHxQYXJpcyUyME1hcmFpcyUyMERpc3RyaWN0JTIwRnJhbmNlfGVufDB8MHx8fDE3NzkwODc1OTB8MA&ixlib=rb-4.1.0&q=80&w=1080","day_image_html":"<img src=\"https://images.unsplash.com/photo-1471623432079-b009d30b6729?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4NjAxNDN8MHwxfHNlYXJjaHwxfHxQYXJpcyUyME1hcmFpcyUyMERpc3RyaWN0JTIwRnJhbmNlfGVufDB8MHx8fDE3NzkwODc1OTB8MA&ixlib=rb-4.1.0&q=80&w=1080\" width=\"640\" alt=\"Arrival in Paris\" style=\"display:block;margin:20px auto;border-radius:8px;\">"}, {"day_index":2,"day_title":"Paris Essentials","placeholder":"[DAY_IMAGE_02]","day_image_url":"https://images.unsplash.com/photo-1502602898657-3e91760cbb34?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4NjAxNDN8MHwxfHNlYXJjaHwxfHxQYXJpcyUyMEVpZmZlbCUyMFRvd2VyJTIwRnJhbmNlfGVufDB8MHx8fDE3NzkwODc1OTJ8MA&ixlib=rb-4.1.0&q=80&w=1080","day_image_html":"<img src=\"https://images.unsplash.com/photo-1502602898657-3e91760cbb34?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4NjAxNDN8MHwxfHNlYXJjaHwxfHxQYXJpcyUyMEVpZmZlbCUyMFRvd2VyJTIwRnJhbmNlfGVufDB8MHx8fDE3NzkwODc1OTJ8MA&ixlib=rb-4.1.0&q=80&w=1080\" width=\"640\" alt=\"Paris Essentials\" style=\"display:block;margin:20px auto;border-radius:8px;\">"}, {"day_index":3,"day_title":"Day Trip to Versailles","placeholder":"[DAY_IMAGE_03]","day_image_url":"https://images.unsplash.com/photo-1595841044697-86e94ea53c77?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4NjAxNDN8MHwxfHNlYXJjaHwxfHxWZXJzYWlsbGVzJTIwUGFsYWNlJTIwRnJhbmNlfGVufDB8MHx8fDE3NzkwODc1OTN8MA&ixlib=rb-4.1.0&q=80&w=1080","day_image_html":"<img src=\"https://images.unsplash.com/photo-1595841044697-86e94ea53c77?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4NjAxNDN8MHwxfHNlYXJjaHwxfHxWZXJzYWlsbGVzJTIwUGFsYWNlJTIwRnJhbmNlfGVufDB8MHx8fDE3NzkwODc1OTN8MA&ixlib=rb-4.1.0&q=80&w=1080\" width=\"640\" alt=\"Day Trip to Versailles\" style=\"display:block;margin:20px auto;border-radius:8px;\">"}, {"day_index":4,"day_title":"Paris to Loire Valley (Amboise)","placeholder":"[DAY_IMAGE_04]","day_image_url":"https://images.unsplash.com/photo-1526816229784-65d5d54ac8bc?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4NjAxNDN8MHwxfHNlYXJjaHwxfHxBbWJvaXNlJTIwQ2glQzMlQTJ0ZWF1JTIwZCUyN0FtYm9pc2UlMjBGcmFuY2V8ZW58MHwwfHx8MTc3OTA4NzU5NHww&ixlib=rb-4.1.0&q=80&w=1080","day_image_html":"<img src=\"https://images.unsplash.com/photo-1526816229784-65d5d54ac8bc?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4NjAxNDN8MHwxfHNlYXJjaHwxfHxBbWJvaXNlJTIwQ2glQzMlQTJ0ZWF1JTIwZCUyN0FtYm9pc2UlMjBGcmFuY2V8ZW58MHwwfHx8MTc3OTA4NzU5NHww&ixlib=rb-4.1.0&q=80&w=1080\" width=\"640\" alt=\"Paris to Loire Valley (Amboise)\" style=\"display:block;margin:20px auto;border-radius:8px;\">"}, {"day_index":5,"day_title":"Loire Valley – Castles & Villages","placeholder":"[DAY_IMAGE_05]","day_image_url":"https://images.unsplash.com/photo-1526816229784-65d5d54ac8bc?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4NjAxNDN8MHwxfHNlYXJjaHwxfHxBbWJvaXNlJTIwQ2glQzMlQTJ0ZWF1JTIwZGUlMjBDaGVub25jZWF1JTIwRnJhbmNlfGVufDB8MHx8fDE3NzkwODc1OTV8MA&ixlib=rb-4.1.0&q=80&w=1080","day_image_html":"<img src=\"https://images.unsplash.com/photo-1526816229784-65d5d54ac8bc?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4NjAxNDN8MHwxfHNlYXJjaHwxfHxBbWJvaXNlJTIwQ2glQzMlQTJ0ZWF1JTIwZGUlMjBDaGVub25jZWF1JTIwRnJhbmNlfGVufDB8MHx8fDE3NzkwODc1OTV8MA&ixlib=rb-4.1.0&q=80&w=1080\" width=\"640\" alt=\"Loire Valley – Castles & Villages\" style=\"display:block;margin:20px auto;border-radius:8px;\">"}, {"day_index":6,"day_title":"Loire Valley – Tours & Gastronomy","placeholder":"[DAY_IMAGE_06]","day_image_url":"https://images.unsplash.com/photo-1477089884677-c596568bd120?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4NjAxNDN8MHwxfHNlYXJjaHwyfHxGcmFuY2UlMjB0cmF2ZWwlMjBsYW5kc2NhcGV8ZW58MHwwfHx8MTc3OTA4NzU4Mnww&ixlib=rb-4.1.0&q=80&w=1080","day_image_html":"<img src=\"https://images.unsplash.com/photo-1477089884677-c596568bd120?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4NjAxNDN8MHwxfHNlYXJjaHwyfHxGcmFuY2UlMjB0cmF2ZWwlMjBsYW5kc2NhcGV8ZW58MHwwfHx8MTc3OTA4NzU4Mnww&ixlib=rb-4.1.0&q=80&w=1080\" width=\"640\" alt=\"Loire Valley – Tours & Gastronomy\" style=\"display:block;margin:20px auto;border-radius:8px;\">"}, {"day_index":7,"day_title":"Return to Paris & Departure","placeholder":"[DAY_IMAGE_07]","day_image_url":"https://images.unsplash.com/photo-1674385174362-fc806205c8f9?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4NjAxNDN8MHwxfHNlYXJjaHwxfHxQYXJpcyUyMENpdHklMjBDZW50ZXIlMjBGcmFuY2V8ZW58MHwwfHx8MTc3OTA4NzU5Nnww&ixlib=rb-4.1.0&q=80&w=1080","day_image_html":"<img src=\"https://images.unsplash.com/photo-1674385174362-fc806205c8f9?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4NjAxNDN8MHwxfHNlYXJjaHwxfHxQYXJpcyUyMENpdHklMjBDZW50ZXIlMjBGcmFuY2V8ZW58MHwwfHx8MTc3OTA4NzU5Nnww&ixlib=rb-4.1.0&q=80&w=1080\" width=\"640\" alt=\"Return to Paris & Departure\" style=\"display:block;margin:20px auto;border-radius:8px;\">"}]; var dayImages = Array.isArray(dayImagesRaw) ? dayImagesRaw : (dayImagesRaw ? [dayImagesRaw] : []); var travelerName = "Michel"; var destination = "France"; function extractDays(dayRange) { if (!dayRange) return []; var match = dayRange.toString().match(/Day\s+(\d+)(?:-(\d+))?/); if (!match) return []; var start = parseInt(match[1]); var end = match[2] ? parseInt(match[2]) : start; var days = []; for (var i = start; i <= end; i++) { days.push(i); } return days; } function findImageForWaypoint(waypoint, dayImages) { var days = extractDays(waypoint.days); if (days.length === 0) return null; var firstDay = days[0]; for (var i = 0; i < dayImages.length; i++) { if (dayImages[i].day_index === firstDay) { return dayImages[i].day_image_url; } } return null; } if (mapData && mapData.map && mapData.map.waypoints) { for (var i = 0; i < mapData.map.waypoints.length; i++) { var wp = mapData.map.waypoints[i]; var imageUrl = findImageForWaypoint(wp, dayImages); if (imageUrl) { wp.photo = imageUrl; } } } window.TD_MAP_DATA_ENRICHED = mapData; window.travelerName = travelerName; window.destination = destination; } catch(e) { console.error('Error enriching map data:', e); window.TD_MAP_DATA_ENRICHED = {"summary":{"title":"7-Day France Couple Trip","dates":"TBD","travelers":"2 Travelers"},"weather":{"desc":"Mild weather with fewer crowds","temp":"15-25°C"},"security":{"status":"Low Risk","tip":"Stay aware of your surroundings in crowded areas."},"budget":{"total":"€1,400","items":[{"label":"Accommodations","val":"€840"},{"label":"Transport","val":"€200"},{"label":"Activities & Food","val":"€360"}]},"map":{"waypoints":[{"name":"Paris","lat":48.8566,"lon":2.3522,"days":"Day 1-3","desc":"Explore the romantic streets and iconic landmarks.","photo":"","highlights":["Eiffel Tower","Seine River"]},{"name":"Versailles","lat":48.8049,"lon":2.1204,"days":"Day 3","desc":"Visit the opulent palace and beautiful gardens.","photo":"","highlights":["Palace of Versailles","Gardens"]},{"name":"Amboise","lat":47.4118,"lon":0.9812,"days":"Day 4-6","desc":"Discover charming castles and local wines.","photo":"","highlights":["Château d'Amboise","Loire River"]}],"route":[0,1,2]},"days":[{"day_index":1,"day_title":"Arrival in Paris","image_query":"Paris Marais District France","html_placeholder":"[DAY_IMAGE_01]"},{"day_index":2,"day_title":"Paris Essentials","image_query":"Paris Eiffel Tower France","html_placeholder":"[DAY_IMAGE_02]"},{"day_index":3,"day_title":"Day Trip to Versailles","image_query":"Versailles Palace France","html_placeholder":"[DAY_IMAGE_03]"},{"day_index":4,"day_title":"Paris to Loire Valley (Amboise)","image_query":"Amboise Château d'Amboise France","html_placeholder":"[DAY_IMAGE_04]"},{"day_index":5,"day_title":"Loire Valley – Castles & Villages","image_query":"Amboise Château de Chenonceau France","html_placeholder":"[DAY_IMAGE_05]"},{"day_index":6,"day_title":"Loire Valley – Tours & Gastronomy","image_query":"Tours Saint-Gatien Cathedral France","html_placeholder":"[DAY_IMAGE_06]"},{"day_index":7,"day_title":"Return to Paris & Departure","image_query":"Paris City Center France","html_placeholder":"[DAY_IMAGE_07]"}]} || {}; window.travelerName = "Michel"; window.destination = "France"; } })(); </script> </div> <script> (function () { 'use strict'; console.log('[TD Map V8] Initializing...'); function loadLeaflet(callback) { if (typeof L !== 'undefined') { callback(); return; } console.log('[TD Map V8] Loading Leaflet libraries...'); var link = document.createElement('link'); link.rel = 'stylesheet'; link.href = 'https://unpkg.com/leaflet@1.9.4/dist/leaflet.css'; document.head.appendChild(link); var script = document.createElement('script'); script.src = 'https://unpkg.com/leaflet@1.9.4/dist/leaflet.js'; script.onload = function () { console.log('[TD Map V8] Leaflet loaded!'); callback(); }; script.onerror = function () { console.error('[TD Map V8] Failed to load Leaflet.'); var container = document.getElementById('td-map-v8-container'); if (container) container.innerHTML = 'Map Error: Could not load libraries.'; }; document.head.appendChild(script); } function decodeHTML(str) { var txt = document.createElement('textarea'); var decoded = str; var max = 5, i = 0; while ((decoded.includes('&lt;') || decoded.includes('&amp;')) && i < max) { txt.innerHTML = decoded; decoded = txt.value; i++; } return decoded; } function extractMapData(content) { var startMarkers = ['var mapData=', 'var mapData =', 'mapData=']; for (var m = 0; m < startMarkers.length; m++) { var startIdx = content.indexOf(startMarkers[m]); if (startIdx !== -1) { var braceStart = content.indexOf('{', startIdx); if (braceStart === -1) continue; var depth = 0, braceEnd = -1; for (var i = braceStart; i < content.length; i++) { if (content[i] === '{') depth++; if (content[i] === '}') depth--; if (depth === 0) { braceEnd = i; break; } } if (braceEnd !== -1) { var jsonStr = content.substring(braceStart, braceEnd + 1); try { return JSON.parse(jsonStr); } catch (e) { jsonStr = jsonStr.replace(/&amp;/g, '&').replace(/\\"/g, '"'); try { return JSON.parse(jsonStr); } catch (e2) { } } } } } return null; } function extractVariable(content, varName) { var match = content.match(new RegExp('var\\s+' + varName + '\\s*=\\s*["\']([^"\']+)["\']')); return match ? match[1] : null; } function initMap() { var mapData = window.TD_MAP_DATA_ENRICHED; var travelerName = window.travelerName || 'Traveler'; var destination = window.destination || 'Destination'; if (!mapData) { var rawEl = document.querySelector('.trip-overview-raw') || document.querySelector('#trip-overview-raw'); if (!rawEl) { console.warn('[TD Map V8] No data element found.'); return; } var content = decodeHTML(rawEl.innerHTML || rawEl.textContent); rawEl.style.display = 'none'; mapData = extractMapData(content); if (!mapData) { console.error('[TD Map V8] JSON extraction failed.'); return; } travelerName = extractVariable(content, 'travelerName') || travelerName; destination = extractVariable(content, 'destination') || destination; } var container = document.getElementById('td-map-v8-container'); if (!container) { container = document.createElement('div'); container.id = 'td-map-v8-container'; container.style.width = '100%'; container.style.display = 'flex'; container.style.flexDirection = 'column'; var rawEl = document.querySelector('.trip-overview-raw'); if (rawEl && rawEl.parentNode) { rawEl.parentNode.insertBefore(container, rawEl.nextSibling); } else { document.body.appendChild(container); } } container.innerHTML = ''; buildMapUI(container, mapData, travelerName, destination); } function buildMapUI(container, mapData, travelerName, destination) { var waypoints = mapData.map.waypoints || []; if (waypoints.length === 0) return; // Préparer les données pour la STATS BAR var weatherTemp = mapData.weather ? mapData.weather.temp : ''; var weatherDesc = mapData.weather ? mapData.weather.desc : ''; var securityStatus = mapData.security ? mapData.security.status : ''; var securityTip = mapData.security ? mapData.security.tip : ''; var budgetTotal = mapData.budget ? mapData.budget.total : ''; container.innerHTML = '<div id="td-map-v8" style="font-family: \'Inter\', sans-serif; width: 100%; background: #fff; border-radius: 0.75rem; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,0.08);"><div style="background: #001427; padding: 1.1rem 1.5rem;"><div style="display: flex; justify-content: space-between; align-items: center;"><div><h2 style="margin: 0; font-family: \'Poppins\', sans-serif; font-size: 1.1rem; font-weight: 600; color: white;">' + travelerName + '\'s Journey</h2><p style="margin: 0.25rem 0 0; font-size: 0.8rem; color: rgba(255,255,255,0.7);">' + (mapData.summary ? mapData.summary.dates : '') + ' • ' + (mapData.summary ? mapData.summary.travelers : '') + '</p></div><div style="text-align: right;"><span style="display: block; font-size: 0.7rem; text-transform: uppercase; color: rgba(255,255,255,0.5); letter-spacing: 1px; font-weight: 600;">Est. Budget</span><span style="font-size: 1rem; font-weight: 700; color: #E98A15;">' + budgetTotal + '</span></div></div></div><div style="display: grid; grid-template-columns: 1fr 1fr; background: #f8f9fa; border-left: 1px solid #eef0f2; border-right: 1px solid #eef0f2; padding: 0.9rem 1.5rem;"><div style="border-right: 1px solid #eef0f2; padding-right: 0.9rem;"><span style="display: block; font-size: 0.65rem; text-transform: uppercase; color: #8898aa; font-weight: 700; letter-spacing: 0.5px; margin-bottom: 0.25rem;">Weather</span><div style="display: flex; align-items: center; gap: 0.5rem;"><span style="font-size: 1.1rem;">☀️</span><div><span style="display: block; font-size: 0.8rem; font-weight: 600; color: #001427;">' + weatherTemp + '</span><span style="display: block; font-size: 0.7rem; color: #525f7f;">' + weatherDesc + '</span></div></div></div><div style="padding-left: 0.9rem;"><span style="display: block; font-size: 0.65rem; text-transform: uppercase; color: #8898aa; font-weight: 700; letter-spacing: 0.5px; margin-bottom: 0.25rem;">Safety</span><div style="display: flex; align-items: center; gap: 0.5rem;"><span style="font-size: 1.1rem;">🛡️</span><div><span style="display: block; font-size: 0.8rem; font-weight: 600; color: #001427;">' + securityStatus + '</span><span style="display: block; font-size: 0.7rem; color: #525f7f; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 120px;">' + securityTip + '</span></div></div></div></div><div id="leaflet-map-v8" style="width: 100%; height: 25rem; background: #e7e0da; z-index: 1;"></div><div id="timeline-v8" style="background: #f8f9fa; padding: 1rem 1.25rem; border-top: 3px solid #e98a15; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch;"><div style="display: inline-flex; gap: 0.5rem; padding-bottom: 5px;"></div></div><div style="display: flex; justify-content: center; gap: 1.5rem; padding: 0.8rem; font-size: 0.75rem; color: #001427; font-weight: 500; border-top: 1px solid #eee;"><span style="display: flex; align-items: center; gap: 0.4rem;"><span style="width: 0.6rem; height: 0.6rem; background: #e98a15; border-radius: 50%;"></span> ' + destination + '</span><span style="display: flex; align-items: center; gap: 0.4rem;"><span>📷</span> Click markers for photos</span></div></div><style>.leaflet-popup-content-wrapper { border-radius: 0.75rem !important; padding: 0 !important; overflow: hidden; box-shadow: 0 10px 25px rgba(0,0,0,0.15) !important; }.leaflet-popup-content { margin: 0 !important; width: 280px !important; }.leaflet-container { font-family: \'Inter\', sans-serif !important; }.timeline-item-v8 { display: inline-flex; flex-direction: column; align-items: center; cursor: pointer; padding: 0.5rem 0.75rem; border-radius: 0.5rem; min-width: 4.5rem; transition: all 0.2s ease; border: 1px solid transparent; }.timeline-item-v8:hover { background: #fff; border-color: #ddd; transform: translateY(-2px); }.timeline-item-v8.active { background: #e98a15; color: white !important; box-shadow: 0 4px 12px rgba(233, 138, 21, 0.4); }.timeline-item-v8.active span { color: white !important; }#timeline-v8::-webkit-scrollbar { height: 6px; }#timeline-v8::-webkit-scrollbar-track { background: transparent; }#timeline-v8::-webkit-scrollbar-thumb { background: #ddd; border-radius: 10px; }#timeline-v8::-webkit-scrollbar-thumb:hover { background: #ccc; }</style>'; var map = L.map('leaflet-map-v8', { scrollWheelZoom: true, zoomControl: true }).setView([0, 0], 2); L.tileLayer('https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png', { maxZoom: 19, attribution: '&copy; <a href="https://carto.com/">CARTO</a>' }).addTo(map); var markers = []; waypoints.forEach(function(wp, i) { var dayLabelRaw = wp.days ? wp.days.toString() : ""; var dayLabelClean = dayLabelRaw.split('-')[0]; var iconHtml = '<div style="background: linear-gradient(135deg, #e98a15, #d47710); color: white; width: 2.2rem; height: 2.2rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; border: 3px solid white; box-shadow: 0 4px 15px rgba(233,138,21,0.5); font-size: 0.9rem;">' + (i + 1) + '</div>'; var icon = L.divIcon({ html: iconHtml, className: 'td-marker-v8', iconSize: [36, 36], iconAnchor: [18, 18], popupAnchor: [0, -24] }); var popupContent = '<div style="font-family: \'Inter\', sans-serif;"><div style="width: 100%; height: 9rem; background: #eee; overflow: hidden; position: relative;"><img src="' + (wp.photo || '') + '" style="width: 100%; height: 100%; object-fit: cover; display: block;" onerror="this.parentElement.style.display=\'none\'"></div><div style="padding: 1rem;"><span style="background: rgba(233,138,21,0.1); color: #d47710; padding: 0.25rem 0.6rem; border-radius: 2rem; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px;">' + wp.days + '</span><h4 style="margin: 0.5rem 0 0.25rem; font-size: 1rem; color: #001427; font-weight: 700; line-height: 1.3;">' + wp.name + '</h4><p style="font-size: 0.8rem; color: #666; margin: 0; line-height: 1.4;">' + (wp.desc || '') + '</p></div></div>'; var marker = L.marker([wp.lat, wp.lon], { icon: icon }).bindPopup(popupContent).addTo(map); markers.push(marker); var tlItem = document.createElement('div'); tlItem.className = 'timeline-item-v8'; var timelineDayText = dayLabelClean; if (/^\d+$/.test(timelineDayText.trim())) { timelineDayText = "Day " + timelineDayText; } tlItem.innerHTML = '<span style="font-size: 0.65rem; color: #999; font-weight: 600; text-transform: uppercase;">' + timelineDayText + '</span><span style="font-size: 0.8rem; font-weight: 700; color: #001427;">' + wp.name + '</span>'; tlItem.onclick = function() { map.setView([wp.lat, wp.lon], 11, { animate: true }); marker.openPopup(); var allItems = document.querySelectorAll('.timeline-item-v8'); for (var j = 0; j < allItems.length; j++) { allItems[j].classList.remove('active'); } tlItem.classList.add('active'); tlItem.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' }); }; marker.on('click', function() { var allItems = document.querySelectorAll('.timeline-item-v8'); for (var j = 0; j < allItems.length; j++) { allItems[j].classList.remove('active'); } tlItem.classList.add('active'); tlItem.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' }); }); document.querySelector('#timeline-v8 > div').appendChild(tlItem); }); var route = waypoints.map(function(wp) { return [wp.lat, wp.lon]; }); L.polyline(route, { color: '#e98a15', weight: 4, dashArray: '10, 10', opacity: 0.8, lineCap: 'round' }).addTo(map); if (markers.length > 0) { map.fitBounds(L.latLngBounds(waypoints.map(function(wp) { return [wp.lat, wp.lon]; })).pad(0.1)); } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { loadLeaflet(initMap); }); } else { loadLeaflet(initMap); } })(); </script>
Loading Map...

Content Summary :

Let’s turn this into your exact trip.

Maria — Travel Designer

Replies within 24h • 100% tailor-made

5/5

225 reviews
Share it with your friends👇

More immersive travel

Discover the world through the eyes of our local partners. Each tour is carefully curated to immerse you in local cultures while preserving the beauty of their countries.

No items found.
More Immersive Travels

What Makes us Different

Why Travel Differently ?

Adventurous

Designed by Locals

Our itineraries are meticulously crafted by local expert guides who reveal hidden treasures and offer immersive experiences. With their deep knowledge of each destination and commitment to safety, you can explore with confidence and fully enjoy your adventure.

Authentic

Immersive Interactions

Immerse yourself in local culture through authentic encounters with locals and visits to stunning cultural and natural attractions. Every moment is carefully designed to provide an unforgettable experience, while respecting local traditions and resources.

Responsible

Community Support

The profits generated by Travel Differently directly support local communities, ensuring fair wages and sustainable economic growth. We are committed to turning tourism into a force for positive change, while respecting local cultures and the environment.

What does Travel Differently do?

We are a company specializing in community-based travel, offering guided tours in small groups of up to 12 people, or private experiences. Our mission is to deliver immersive travel experiences that align with your dreams while respecting local cultures.

How do we do it?

With the support of our local partners, including unique ecolodges and passionate tour guides, we create travel experiences that are deeply immersive and respectful of local cultures and the environment.

Why did we create Travel Differently?

Our goal is to transform tourism into a force for positive change. We strive to avoid mass tourism and to promote responsible travel that respects local communities and our planet.

Not Just a Trip.
An Immersion Into Real Costa Rica & Nicaragua

Frequently Asked Questions

How safe is it to travel in Africa for an immersive experience?

How does Travel Differently support local communities?

How safe is it to travel with a local guide?

What are the essential safety tips for traveling in Central America?

Why should I choose Travel Differently?

How are travel itineraries created?

What if I have special requests or needs?

What are the essential travel safety tips for South America?

What if there are issues during the trip?

How large are the travel groups?

Why should I choose Travel Differently?

Will my travel experience be immersive?

What if I have special requests or needs?

How large are the travel groups?

Will my travel experience be immersive?

How are travel itineraries created?

What should I expect after booking a trip?

How safe is it to travel with a local guide?

What is the impact of tourism on local communities?

What if there are issues during the trip?

Seamless and Personalized Travel Planning

Embark On Our Instagram Odyssey

traveldifferently_
traveldifferently_
traveldifferently_
traveldifferently_
traveldifferently_
traveldifferently_