{"id":38810,"date":"2025-12-23T21:33:39","date_gmt":"2025-12-23T21:33:39","guid":{"rendered":"https:\/\/thisismadeiraisland.com\/?page_id=38810"},"modified":"2026-04-19T12:34:21","modified_gmt":"2026-04-19T12:34:21","slug":"madeira-trip-planner","status":"publish","type":"page","link":"https:\/\/thisismadeiraisland.com\/nl\/madeira-trip-planner\/","title":{"rendered":"Madeira Reisplanner"},"content":{"rendered":"\n<script>\nconsole.log(\n  \"%cSTOP! %cThis code is the property of This is Madeira Island (https:\/\/thisismadeiraisland.com\/). Theft or unauthorized use will be prosecuted.\", \n  \"color: red; font-size: 20px; font-weight: bold;\", \n  \"color: #333; font-size: 14px;\"\n);\n\n\/\/ ... rest of your code ...\n<\/script>\n\n\n\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&#038;display=swap\" rel=\"stylesheet\">\n<link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\" rel=\"stylesheet\">\n\n<style>\n  :root {\n    --mp-primary: #00A859;       \n    --mp-secondary: #007EA7;     \n    --mp-accent: #FFD700;        \n    --mp-dark: #1e293b;\n    --mp-text: #334155;\n    --mp-bg: #f8fafc;\n    --mp-radius: 24px;\n    --mp-shadow: 0 20px 40px rgba(0,0,0,0.08);\n  }\n\/* UNIQUE INSIDER BADGES *\/\n  .mp-insider-badge {\n      display: inline-block; font-size: 11px; font-weight: 700;\n      padding: 3px 8px; border-radius: 4px; margin-top: 8px; margin-right: 5px;\n      text-transform: uppercase; letter-spacing: 0.5px;\n  }\n  .vertigo { background: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }\n  .cow { background: #f3f4f6; color: #1f2937; border: 1px solid #d1d5db; }\n  .tunnel { background: #334155; color: #f8fafc; border: 1px solid #1e293b; }\n  .poncha { background: #fef3c7; color: #92400e; border: 1px solid #fde68a; }\n  .sun { background: #fff7ed; color: #c2410c; border: 1px solid #ffedd5; }\n  .swim { background: #eff6ff; color: #1e40af; border: 1px solid #dbeafe; }\n  \n  .mp-time-badge {\n      font-size: 12px; font-weight: 600; color: #475569;\n      background: #f1f5f9; display: inline-block; padding: 2px 8px;\n      border-radius: 20px; margin-left: 5px;\n  }\n\/* REALITY CHECK BAR *\/\n.mp-reality-bar {\n    display: flex; gap: 10px; flex-wrap: wrap;\n    background: #f8fafc; border: 1px solid #e2e8f0;\n    padding: 10px; border-radius: 8px; margin-top: 12px;\n    font-size: 12px; font-weight: 600; color: #475569;\n    align-items: center;\n}\n.mp-reality-item { display: flex; align-items: center; gap: 6px; }\n.mp-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }\n.dot-green { background: #22c55e; box-shadow: 0 0 5px #22c55e; }\n.dot-yellow { background: #eab308; box-shadow: 0 0 5px #eab308; }\n.dot-red { background: #ef4444; box-shadow: 0 0 5px #ef4444; }\n.dot-blue { background: #3b82f6; box-shadow: 0 0 5px #3b82f6; }\n.mp-separator { width: 1px; height: 15px; background: #cbd5e1; margin: 0 5px; }\n\n  \/* LAYOUT *\/\n  #madeira-planner-app {\n    font-family: 'Plus Jakarta Sans', sans-serif;\n    max-width: 1000px;\n    margin: 40px auto;\n    background: var(--mp-bg);\n    color: var(--mp-text);\n    border-radius: var(--mp-radius);\n    overflow: hidden;\n    box-shadow: var(--mp-shadow);\n    position: relative;\n    line-height: 1.6;\n  }\n  #madeira-planner-app * { box-sizing: border-box; }\n\n  \/* HEADER *\/\n  .mp-header {\n    background: linear-gradient(180deg, rgba(0,20,10,0.6) 0%, rgba(0,0,0,0.2) 100%), \n                url('\/wp-content\/uploads\/2025\/12\/iStock-1443496570-scaled.jpg');\n    background-size: cover; background-position: center;\n    padding: 100px 20px 60px;\n    text-align: center; color: white; position: relative;\n  }\n  .mp-header h1 { font-size: 38px; font-weight: 800; margin: 0 0 10px; text-shadow: 0 10px 30px rgba(0,0,0,0.5); color: white; }\n  .mp-tagline { \n    background: rgba(255,255,255,0.2); backdrop-filter: blur(5px);\n    padding: 8px 20px; border-radius: 50px; font-size: 14px; font-weight: 600;\n    display: inline-flex; align-items: center; gap: 8px; cursor: pointer; transition: 0.3s;\n    border: 1px solid rgba(255,255,255,0.3); color: white;\n  }\n  .mp-tagline:hover { background: rgba(255,255,255,0.3); transform: scale(1.05); }\n\n  \/* PROGRESS BAR *\/\n  .mp-progress-container { background: #e2e8f0; height: 6px; width: 100%; }\n  .mp-progress-bar { background: linear-gradient(90deg, var(--mp-primary), var(--mp-secondary)); height: 100%; width: 5%; transition: width 0.6s ease; }\n\n  \/* STEPS *\/\n  .mp-body { padding: 40px 20px; min-height: 500px; padding-bottom: 120px; }\n  .mp-step { display: none; animation: mpFadeUp 0.6s ease; max-width: 900px; margin: 0 auto; }\n  .mp-step.active { display: block; }\n  .mp-step-title { font-size: 32px; font-weight: 800; margin-bottom: 25px; text-align: center; color: var(--mp-dark); }\n\n  \/* BUTTONS & CARDS *\/\n  .mp-days-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 15px; }\n  .mp-day-btn {\n    width: 80px; height: 80px; border-radius: 20px; background: white;\n    box-shadow: 0 4px 10px rgba(0,0,0,0.05); display: flex; flex-direction: column;\n    align-items: center; justify-content: center; cursor: pointer; transition: 0.3s;\n    border: 2px solid transparent; font-weight: 800; color: var(--mp-dark); font-size: 20px;\n  }\n  .mp-day-btn:hover { transform: translateY(-5px); border-color: var(--mp-primary); color: var(--mp-primary); }\n\n  .mp-grid-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }\n  .mp-card-btn {\n    background: white; border-radius: 16px; overflow: hidden; cursor: pointer;\n    box-shadow: 0 4px 6px rgba(0,0,0,0.03); transition: 0.3s; border: 2px solid transparent; position: relative;\n  }\n  .mp-card-bg { height: 130px; background-size: cover; background-position: center; }\n  .mp-card-content { padding: 25px 20px 20px; position: relative; }\n  .mp-card-icon { \n    position: absolute; top: -30px; right: 20px; width: 50px; height: 50px;\n    background: white; border-radius: 50%; display: flex; align-items: center; justify-content: center;\n    font-size: 24px; box-shadow: 0 5px 15px rgba(0,0,0,0.1);\n  }\n  .mp-card-btn:hover { transform: translateY(-5px); border-color: var(--mp-primary); }\n  .mp-card-btn strong { display: block; font-size: 18px; margin-bottom: 5px; color: var(--mp-dark); }\n  .mp-card-btn p { font-size: 13px; color: #64748b; margin: 0; line-height: 1.4; }\n\n  \/* DASHBOARD WIDGETS *\/\n  .mp-dashboard-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 30px; }\n  .mp-dash-card {\n    background: white; border: 1px solid #e2e8f0; border-radius: 16px;\n    padding: 15px; display: flex; align-items: center; gap: 15px;\n    box-shadow: 0 4px 10px rgba(0,0,0,0.02); transition: 0.3s;\n  }\n  .mp-dash-icon { \n    width: 45px; height: 45px; background: #f0f9ff; color: var(--mp-secondary);\n    border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 20px;\n  }\n  .mp-dash-icon.gold { background: #fffbe6; color: #d4b106; }\n  .mp-dash-text strong { display: block; font-size: 15px; color: var(--mp-dark); line-height: 1.2; }\n  .mp-dash-text span { display: block; font-size: 11px; color: #64748b; margin-top: 2px; }\n  .mp-dash-highlight { color: var(--mp-primary); font-weight: 700; background: #dcfce7; padding: 2px 6px; border-radius: 4px; font-size: 11px; margin-left: 5px; }\n  @media(max-width: 650px) { .mp-dashboard-grid { grid-template-columns: 1fr; } }\n\n  \/* INSTA TOGGLE *\/\n  .mp-toggle-wrapper { display: flex; justify-content: center; align-items: center; gap: 10px; margin-bottom: 25px; }\n  .mp-switch { position: relative; display: inline-block; width: 50px; height: 26px; }\n  .mp-switch input { opacity: 0; width: 0; height: 0; }\n  .mp-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; border-radius: 34px; transition: .4s; }\n  .mp-slider:before { position: absolute; content: \"\"; height: 20px; width: 20px; left: 3px; bottom: 3px; background-color: white; border-radius: 50%; transition: .4s; }\n  input:checked + .mp-slider { background-color: #E1306C; }\n  input:checked + .mp-slider:before { transform: translateX(24px); }\n\n  \/* TABS *\/\n  .mp-tabs { display: flex; justify-content: center; gap: 10px; margin-bottom: 30px; background: #e2e8f0; padding: 5px; border-radius: 50px; display: inline-flex; flex-wrap: wrap; }\n  .mp-tab { padding: 10px 25px; border-radius: 40px; cursor: pointer; font-weight: 600; font-size: 14px; color: #64748b; transition: 0.3s; }\n  .mp-tab.active { background: white; color: var(--mp-primary); box-shadow: 0 2px 5px rgba(0,0,0,0.05); }\n\n  \/* FUEL CARD *\/\n  .mp-fuel-card {\n    background: linear-gradient(135deg, #1e293b, #334155); color: white;\n    border-radius: 16px; padding: 25px; margin-bottom: 30px;\n    display: flex; justify-content: space-around; align-items: center; flex-wrap: wrap; gap: 15px;\n    box-shadow: 0 10px 25px rgba(0,0,0,0.15);\n  }\n  .mp-fuel-stat { text-align: center; }\n  .mp-fuel-stat div { font-size: 28px; font-weight: 800; color: var(--mp-accent); line-height: 1; margin-bottom: 5px; }\n  .mp-fuel-stat span { font-size: 12px; opacity: 0.8; text-transform: uppercase; letter-spacing: 1px; }\n\n  \/* PACKING LIST *\/\n  .mp-packing-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; }\n  .mp-pack-item { background: white; padding: 15px; border-radius: 12px; display: flex; align-items: center; gap: 10px; border: 1px solid #e2e8f0; font-size: 14px; font-weight: 500; }\n  .mp-check { color: var(--mp-primary); font-size: 18px; }\n\n  \/* ACCORDION *\/\n  .mp-acc-item { background: white; border-radius: 16px; margin-bottom: 15px; border: 1px solid #f1f5f9; overflow: hidden; }\n  .mp-acc-header { padding: 20px; cursor: pointer; display: flex; align-items: center; justify-content: space-between; }\n  .mp-acc-header:hover { background: #fdfdfd; }\n  .mp-acc-body { display: none; padding: 0 20px 20px; border-top: 1px solid #f8fafc; }\n  .mp-acc-item.open .mp-acc-body { display: block; animation: slideDown 0.3s; }\n  \n  .mp-day-grid { display: grid; grid-template-columns: 100px 1fr; gap: 20px; margin-top: 20px; }\n  .mp-day-thumb { height: 100px; width: 100px; border-radius: 12px; background-size: cover; background-position: center; }\n  \n  \/* SAVINGS BADGE *\/\n  .mp-savings-badge {\n    background: #dcfce7; color: #166534; font-size: 11px; font-weight: 700;\n    padding: 4px 10px; border-radius: 6px; display: inline-block; margin-top: 8px;\n    border: 1px solid #bbf7d0; box-shadow: 0 2px 4px rgba(0,0,0,0.03);\n  }\n\n  .mp-map-btn {\n    display: inline-flex; align-items: center; gap: 6px;\n    background: white; border: 1px solid #e2e8f0; color: var(--mp-secondary);\n    padding: 8px 15px; border-radius: 8px; font-size: 13px; font-weight: 700;\n    text-decoration: none; margin-top: 12px; transition: 0.2s; margin-right:10px;\n  }\n  .mp-map-btn:hover { background: #f0f9ff; border-color: var(--mp-secondary); transform: translateY(-2px); }\n\n  .mp-insta-tip {\n    display: none; background: linear-gradient(45deg, #f09433 0%, #dc2743 100%);\n    color: white; padding: 10px 15px; border-radius: 8px; margin-top: 15px; font-size: 13px; font-weight: 600;\n  }\n  .mp-container-insta .mp-insta-tip { display: block; animation: mpFadeUp 0.5s; }\n\n  .mp-book-btn {\n    display: inline-block; background: var(--mp-secondary); color: white; \n    padding: 4px 10px; border-radius: 6px; font-size: 11px; font-weight: 700; text-transform: uppercase;\n    text-decoration: none; margin-left: 10px; animation: pulse 2s infinite;\n  }\n\n  \/* STICKY BAR *\/\n  .mp-sticky-bar {\n    position: fixed; bottom: -120px; left: 20px; right: 20px; max-width: 960px; margin: 0 auto;\n    background: rgba(255,255,255,0.95); backdrop-filter: blur(10px);\n    border: 2px solid var(--mp-primary); border-radius: 16px;\n    padding: 15px 25px; display: flex; justify-content: space-between; align-items: center;\n    box-shadow: 0 10px 40px rgba(0,0,0,0.3); z-index: 99999;\n    transition: bottom 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n  }\n  .mp-sticky-bar.visible { bottom: 20px; }\n  .mp-sticky-btn { background: var(--mp-primary); color: white; padding: 10px 25px; border-radius: 50px; text-decoration: none; font-weight: 700; font-size: 14px; box-shadow: 0 5px 15px rgba(0,168,89,0.3); }\n\n  \/* ACTIONS *\/\n  .mp-actions { display: flex; gap: 10px; justify-content: center; margin-top: 40px; }\n  .mp-action-btn { background: white; border: 1px solid #ccc; padding: 10px 20px; border-radius: 50px; cursor: pointer; font-size: 14px; display: flex; align-items: center; gap: 8px; font-weight: 600; color: #555; }\n  .mp-action-btn:hover { border-color: var(--mp-primary); color: var(--mp-primary); transform: translateY(-2px); transition: 0.2s; }\n  .mp-action-btn.whatsapp { color: #25D366; border-color: #25D366; }\n  .mp-action-btn.whatsapp:hover { background: #25D366; color: white; }\n\n  \/* SEO CONTENT AREA *\/\n  .mp-seo-box { max-width: 800px; margin: 60px auto; color: #334155; line-height: 1.8; padding: 0 20px; }\n  .mp-seo-box h2 { font-size: 24px; font-weight: 700; color: var(--mp-dark); margin-bottom: 20px; }\n  .mp-seo-box h3 { font-size: 20px; font-weight: 600; color: var(--mp-dark); margin-top: 30px; margin-bottom: 10px; }\n  .mp-seo-box p { margin-bottom: 15px; }\n  .mp-seo-box ul { margin-bottom: 20px; padding-left: 20px; }\n  .mp-seo-box li { margin-bottom: 10px; }\n\n  \/* LOADER *\/\n  #mpLoader { display: none; text-align: center; padding: 60px 20px; }\n  .mp-spinner { width: 50px; height: 50px; border: 5px solid #e2e8f0; border-top: 5px solid var(--mp-primary); border-radius: 50%; margin: 0 auto 20px; animation: mpSpin 1s infinite linear; }\n\n  @keyframes mpFadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }\n  @keyframes mpSpin { to { transform: rotate(360deg); } }\n  @keyframes slideDown { from { opacity: 0; height: 0; } to { opacity: 1; height: auto; } }\n  @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }\n\n  @media(max-width: 600px) {\n    .mp-header { padding: 60px 20px 40px; }\n    .mp-sticky-bar { flex-direction: column; text-align: center; gap: 10px; bottom: -200px; }\n    .mp-sticky-bar.visible { bottom: 10px; }\n  }\n<\/style>\n\n<div id=\"madeira-planner-app\">\n  <audio id=\"mpAudio\" src=\"\/wp-content\/uploads\/2025\/12\/ocean-waves-250310.mp3\" loop><\/audio>\n\n  <div class=\"mp-header\">\n    <div onclick=\"window.mpToggleAudio()\" class=\"mp-tagline\">\n      <span id=\"audioIcon\">\ud83d\udd07<\/span> <span>Click for Island Mood<\/span>\n    <\/div>\n    <h1 style=\"font-size: 38px; font-weight: 800; margin: 0 0 10px; text-shadow: 0 10px 30px rgba(0,0,0,0.5); color: white;\">Free Madeira Trip Planner &#038; Itinerary Builder<\/h1>\n    <p>Design your custom itinerary in seconds<\/p>\n  <\/div>\n  \n  <div class=\"mp-progress-container\"><div class=\"mp-progress-bar\" id=\"mpBar\"><\/div><\/div>\n\n  <div class=\"mp-body\">\n\n    <div id=\"mpStep1\" class=\"mp-step\">\n      <div class=\"mp-step-title\">How many days?<\/div>\n      <div class=\"mp-days-grid\">\n        <div class=\"mp-day-btn\" onclick=\"window.mpSetDays(3)\"><span>3<\/span><\/div>\n        <div class=\"mp-day-btn\" onclick=\"window.mpSetDays(5)\"><span>5<\/span><\/div>\n        <div class=\"mp-day-btn\" onclick=\"window.mpSetDays(7)\"><span>7<\/span><\/div>\n        <div class=\"mp-day-btn\" onclick=\"window.mpSetDays(8)\"><span>8<\/span><\/div>\n        <div class=\"mp-day-btn\" onclick=\"window.mpSetDays(9)\"><span>9<\/span><\/div>\n        <div class=\"mp-day-btn\" onclick=\"window.mpSetDays(10)\"><span>10<\/span><\/div>\n        <div class=\"mp-day-btn\" onclick=\"window.mpSetDays(11)\"><span>11<\/span><\/div>\n        <div class=\"mp-day-btn\" onclick=\"window.mpSetDays(12)\"><span>12<\/span><\/div>\n        <div class=\"mp-day-btn\" onclick=\"window.mpSetDays(13)\"><span>13<\/span><\/div>\n        <div class=\"mp-day-btn\" onclick=\"window.mpSetDays(14)\"><span>14<\/span><\/div>\n      <\/div>\n    <\/div>\n\n    <div id=\"mpStep2\" class=\"mp-step\">\n      <div class=\"mp-step-title\">Travel Style<\/div>\n      <div class=\"mp-grid-cards\" style=\"grid-template-columns: repeat(3, 1fr);\">\n        <div class=\"mp-card-btn\" onclick=\"window.mpSetPace(1)\">\n          <div class=\"mp-card-bg\" style=\"background-image:url('\/wp-content\/uploads\/2025\/05\/iStock-1396288603-1.jpg');\"><\/div>\n          <div class=\"mp-card-content\">\n            <div class=\"mp-card-icon\">\ud83c\udf05<\/div>\n            <strong>The Sunset Chaser<\/strong>\n            <p>Relaxed pace. Scenic drives &#038; food.<\/p>\n          <\/div>\n        <\/div>\n        <div class=\"mp-card-btn\" onclick=\"window.mpSetPace(2)\">\n          <div class=\"mp-card-bg\" style=\"background-image:url('\/wp-content\/uploads\/2024\/02\/iStock-2212000911-scaled.jpg');\"><\/div>\n          <div class=\"mp-card-content\">\n            <div class=\"mp-card-icon\">\ud83d\udcf8<\/div>\n            <strong>The Explorer<\/strong>\n            <p>Balanced mix of sights &#038; rest.<\/p>\n          <\/div>\n        <\/div>\n        <div class=\"mp-card-btn\" onclick=\"window.mpSetPace(3)\">\n          <div class=\"mp-card-bg\" style=\"background-image:url('\/wp-content\/uploads\/2025\/12\/passeiosape_veredadopicodoruivo189.jpg');\"><\/div>\n          <div class=\"mp-card-content\">\n            <div class=\"mp-card-icon\">\ud83e\udd7e<\/div>\n            <strong>Mountain Goat<\/strong>\n            <p>Active. Hiking peaks &#038; thrills.<\/p>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div id=\"mpStep3\" class=\"mp-step\">\n      <div class=\"mp-step-title\">Who is traveling?<\/div>\n      <div class=\"mp-grid-cards\">\n        <div class=\"mp-card-btn\" onclick=\"window.mpSetFocus('mix')\">\n          <div class=\"mp-card-bg\" style=\"background-image:url('\/wp-content\/uploads\/2025\/05\/funchal56.jpg');\"><\/div>\n          <div class=\"mp-card-content\">\n             <div class=\"mp-card-icon\">\u2764\ufe0f<\/div>\n             <strong>Solo \/ Couple<\/strong>\n             <p>Classic Madeira highlights.<\/p>\n          <\/div>\n        <\/div>\n        <div class=\"mp-card-btn\" onclick=\"window.mpSetFamily()\">\n          <div class=\"mp-card-bg\" style=\"background-image:url('\/wp-content\/uploads\/2025\/06\/balcoes-Madeira-Island-02.webp');\"><\/div>\n          <div class=\"mp-card-content\">\n             <div class=\"mp-card-icon\">\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66<\/div>\n             <strong>Family with Kids<\/strong>\n             <p>Safe, fun &#038; accessible.<\/p>\n          <\/div>\n        <\/div>\n        <div class=\"mp-card-btn\" onclick=\"window.mpSetFocus('ocean')\">\n          <div class=\"mp-card-bg\" style=\"background-image:url('\/wp-content\/uploads\/2025\/03\/madeira-sea-boats.jpg');\"><\/div>\n          <div class=\"mp-card-content\">\n             <div class=\"mp-card-icon\">\ud83e\udd42<\/div>\n             <strong>Group of Friends<\/strong>\n             <p>Sun, road trips &#038; fun.<\/p>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div id=\"mpLoader\">\n      <div class=\"mp-spinner\"><\/div>\n      <p>Building your dream itinerary&#8230;<\/p>\n    <\/div>\n\n    <div id=\"mpResult\" class=\"mp-step\">\n      <div class=\"mp-result-header\">\n        <h4 id=\"guideTitle\">Your Custom Itinerary<\/h4>\n        \n        <div class=\"mp-dashboard-grid\">\n           <div class=\"mp-dash-card\">\n              <div class=\"mp-dash-icon\"><i class=\"fa-solid fa-cloud-sun\"><\/i><\/div>\n              <div class=\"mp-dash-text\">\n                 <strong id=\"mpWeatherTitle\">Madeira Weather<\/strong>\n                 <span id=\"mpWeatherTip\">Cloudy in Funchal? Head West!<\/span>\n              <\/div>\n           <\/div>\n           <div class=\"mp-dash-card\">\n              <div class=\"mp-dash-icon gold\"><i class=\"fa-solid fa-piggy-bank\"><\/i><\/div>\n              <div class=\"mp-dash-text\">\n                 <strong id=\"mpSavingsText\">Calculated Savings<\/strong>\n                 <span>by renting a car vs tours &#038; taxi<\/span> <span class=\"mp-dash-highlight\">Best Deal<\/span>\n              <\/div>\n           <\/div>\n        <\/div>\n\n        <div class=\"mp-toggle-wrapper\">\n          <span style=\"font-size:13px; font-weight:600; color:#444;\">Standard<\/span>\n          <label class=\"mp-switch\">\n            <input type=\"checkbox\" onchange=\"window.mpToggleInsta(this)\">\n            <span class=\"mp-slider\"><\/span>\n          <\/label>\n          <span style=\"font-size:13px; font-weight:600; background: -webkit-linear-gradient(45deg, #f09433, #bc1888); -webkit-background-clip: text; -webkit-text-fill-color: transparent;\">Insta-Spots<\/span>\n        <\/div>\n\n        <div class=\"mp-tabs\">\n          <div class=\"mp-tab active\" onclick=\"window.mpSwitchTab('itinerary', this)\">Itinerary<\/div>\n          <div class=\"mp-tab\" onclick=\"window.mpSwitchTab('fuel', this)\">Stats &#038; Fuel<\/div>\n          <div class=\"mp-tab\" onclick=\"window.mpSwitchTab('packing', this)\">What to take<\/div>\n        <\/div>\n      <\/div>\n\n      <div id=\"tab-itinerary\" class=\"mp-tab-content\">\n        <div id=\"guideContainer\"><\/div>\n      <\/div>\n\n      <div id=\"tab-fuel\" class=\"mp-tab-content\" style=\"display:none;\">\n        <div class=\"mp-fuel-card\">\n           <div class=\"mp-fuel-stat\"><div id=\"statKm\">0<\/div><span>Total Km<\/span><\/div>\n           <div class=\"mp-fuel-stat\"><div id=\"statFuel\">\u20ac0<\/div><span>Est. Fuel<\/span><\/div>\n           <div class=\"mp-fuel-stat\"><div id=\"statDays\">0<\/div><span>Rental Days<\/span><\/div>\n           <div style=\"width:100%; text-align:center; margin-top:15px; border-top:1px solid rgba(255,255,255,0.2); padding-top:15px;\">\n              <p style=\"font-size:14px; margin-bottom:10px;\">This route requires a car for best access.<\/p>\n              <a href=\"https:\/\/thisismadeiraisland.com\/rental-car\/\" target=\"_blank\" class=\"mp-sticky-btn\" style=\"background:white; color:#1e293b; box-shadow:none;\">Check Rental Deals<\/a>\n           <\/div>\n        <\/div>\n      <\/div>\n\n      <div id=\"tab-packing\" class=\"mp-tab-content\" style=\"display:none;\">\n        <div class=\"mp-packing-list\" id=\"packingListContainer\"><\/div>\n      <\/div>\n\n      <div class=\"mp-actions\">\n        <button class=\"mp-action-btn\" onclick=\"window.print()\"><i class=\"fa-solid fa-print\"><\/i> PDF<\/button>\n        <button class=\"mp-action-btn whatsapp\" onclick=\"window.mpShareWhatsapp()\"><i class=\"fa-brands fa-whatsapp\"><\/i> Share<\/button>\n        <button class=\"mp-action-btn\" onclick=\"location.reload()\">Restart<\/button>\n      <\/div>\n    <\/div>\n\n    <div id=\"stickyBar\" class=\"mp-sticky-bar\">\n      <div>\n        <strong style=\"color:#1e293b;\">Need a car?<\/strong>\n        <span style=\"font-size:13px; color:#555;\">Booking beforehand secures the best deals.<\/span>\n      <\/div>\n      <a href=\"https:\/\/thisismadeiraisland.com\/rental-car\/\" target=\"_blank\" class=\"mp-sticky-btn\">Check Availability<\/a>\n    <\/div>\n\n  <\/div>\n  \n  <div class=\"mp-seo-box\">\n     <h2>How to Plan the Perfect Madeira Itinerary<\/h2>\n     <div>\n       <p>Planning a trip to the &#8220;Pearl of the Atlantic&#8221; can be overwhelming because there is simply so much to see. Whether you are visiting for a long weekend or a full two-week vacation, creating a balanced plan is essential to experience the island&#8217;s magic without burnout.<\/p>\n       <h3>Understanding the Island: North vs. South<\/h3>\n       <p>Madeira is famous for its microclimates. You can experience four seasons in a single day depending on where you drive:<\/p>\n       <ul>\n         <li><strong>The South Coast:<\/strong> Sunniest and warmest. Perfect for sunsets and swimming.<\/li>\n         <li><strong>The North Coast:<\/strong> Wild, lush, and dramatic. Famous for waterfalls and black sand.<\/li>\n       <\/ul>\n       <h3>Best Things to Do in Madeira<\/h3>\n       <p>A perfect day combines both worlds. Start with a sunrise hike at Pico do Arieiro, descend into the ancient Laurisilva Forest, and end with a swim in the crystal waters of Garajau.<\/p>\n     <\/div>\n  <\/div>\n\n<\/div>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n  \n  window.mpState = { days: 0, pace: 0, focus: '' };\n\n  \/\/ --- IMAGES ---\n  const img_funchal = \"\/wp-content\/uploads\/2025\/05\/funchal56.jpg\";\n  const img_mountain = \"\/wp-content\/uploads\/2025\/12\/passeiosape_veredadopicodoruivo189.jpg\";\n  const img_levada = \"\/wp-content\/uploads\/2024\/02\/iStock-1255894482-scaled.jpg\";\n  const img_fanal = \"\/wp-content\/uploads\/2025\/04\/hike-sel-fanal-03s-870x555-1.webp\";\n  const img_sand = \"\/wp-content\/uploads\/2025\/05\/iStock-1250320151.jpg\";\n  const img_pools = \"\/wp-content\/uploads\/2025\/04\/thumb_210560_cover_header.jpg\";\n  const img_cliff = \"\/wp-content\/uploads\/2024\/02\/iStock-2212000911-scaled.jpg\";\n  const img_waterfall = \"\/wp-content\/uploads\/2025\/12\/iStock-1399772422.jpg\";\n  const img_sunset = \"\/wp-content\/uploads\/2025\/05\/iStock-1396288603-1.jpg\";\n  const img_boat = \"\/wp-content\/uploads\/2025\/03\/madeira-sea-boats.jpg\";\n  const img_santana = \"\/wp-content\/uploads\/2024\/02\/iStock-1727191715-1-scaled.jpg\";\n  const img_family = \"\/wp-content\/uploads\/2025\/06\/balcoes-Madeira-Island-02.webp\";\n\n  \/\/ --- ENGLISH DATA ONLY ---\n  const en_data = {\n    relaxed_mix: [\n      {t:\"Funchal & Kayak\", stops:[\"Funchal Marina, Madeira\", \"Garajau, Madeira\", \"Zona Velha Funchal, Madeira\"], m:\"Kayak Tour in Marine Reserve.\", a:\"Cable Car to Monte Palace.\", e:\"Dinner in the Marina.\", tip:\"Book kayak in advance.\", insta:\"Kayak view.\", img:img_funchal, book:\"https:\/\/thisismadeiraisland.com\/things-to-do\/kayak-tour\/\"},\n      {t:\"Ponta do Sol\", stops:[\"Ponta do Sol, Madeira\", \"Cascata dos Anjos, Madeira\", \"Maktub Pub, Madeira\"], m:\"Drive to Ponta do Sol.\", a:\"Lunch by the sea & Car Wash Waterfall.\", e:\"Sunset at Maktub Bar.\", tip:\"Arrive early for parking.\", insta:\"Car Wash Waterfall.\", img:img_sunset},\n      {t:\"Enchanted Terraces 4x4\", stops:[\"Fanal Forestry Station, Madeira\", \"Seixal Beach, Madeira\", \"S\u00e3o Vicente Caves, Madeira\"], m:\"Open Roof Jeep Tour Northwest.\", a:\"Swimming in Seixal.\", e:\"Return via S\u00e3o Vicente.\", tip:\"Jeep access is best.\", insta:\"Standing in Jeep.\", img:img_fanal, book:\"https:\/\/thisismadeiraisland.com\/things-to-do\/northwest-enchanted-terraces\"},\n      {t:\"Dolphins & Views\", stops:[\"Marina do Funchal, Madeira\", \"Cabo Gir\u00e3o Skywalk, Madeira\", \"C\u00e2mara de Lobos, Madeira\"], m:\"Catamaran Trip (3 hours).\", a:\"Cabo Gir\u00e3o Skywalk.\", e:\"Dinner in C\u00e2mara de Lobos.\", tip:\"High chance of dolphins.\", insta:\"Glass Floor Skywalk.\", img:img_boat, book:\"https:\/\/thisismadeiraisland.com\/things-to-do\/dolphin-and-whale-watching-with-catamaran\"},\n      {t:\"Golden East\", stops:[\"Machico Beach, Madeira\", \"Pico do Facho Viewpoint, Madeira\", \"Cani\u00e7al, Madeira\"], m:\"Machico Golden Beach.\", a:\"Pico do Facho Viewpoint.\", e:\"Dinner in Cani\u00e7al.\", tip:\"Machico is protected from wind.\", insta:\"Airport Runway View.\", img:img_sand},\n      {t:\"Rum & Cliffs\", stops:[\"Porto da Cruz, Madeira\", \"Engenhos do Norte, Madeira\", \"Miradouro do Guindaste, Madeira\"], m:\"Porto da Cruz promenade.\", a:\"Visit the Rum Factory.\", e:\"Sunset at Guindaste Viewpoint.\", tip:\"Try the 'Poncha de Rum'.\", insta:\"Glass Platform Guindaste.\", img:img_cliff},\n      {t:\"Southwest Calm\", stops:[\"Madalena do Mar, Madeira\", \"Jardim do Mar, Madeira\", \"Paul do Mar, Madeira\"], m:\"Banana walk in Madalena do Mar.\", a:\"Coffee in Jardim do Mar.\", e:\"Sunset in Paul do Mar.\", tip:\"Best area for warm weather.\", insta:\"Flower Alleys.\", img:img_sunset},\n      {t:\"Cristo Rei\", stops:[\"Cristo Rei Madeira\", \"Garajau Beach, Madeira\", \"Santa Cruz Madeira\"], m:\"Cristo Rei Statue view.\", a:\"Cable car down to Garajau Beach.\", e:\"Dinner in Santa Cruz.\", tip:\"Garajau water is crystal clear.\", insta:\"Stairs to Cristo Rei.\", img:img_cliff},\n      {t:\"Botanical Garden\", stops:[\"Madeira Botanical Garden, Funchal\", \"Palheiro Gardens, Madeira\", \"Funchal Old Town, Madeira\"], m:\"Madeira Botanical Garden.\", a:\"Palheiro Gardens (Tea House).\", e:\"Relax in Old Town.\", tip:\"Different from Monte Palace.\", insta:\"Flower Carpet.\", img:img_funchal},\n      {t:\"Valley of Nuns\", stops:[\"Eira do Serrado Viewpoint, Madeira\", \"Curral das Freiras, Madeira\", \"Funchal, Madeira\"], m:\"Drive to Eira do Serrado.\", a:\"Chestnut soup in the village.\", e:\"Return to Funchal.\", tip:\"The road views are breathtaking.\", insta:\"Looking down the crater.\", img:img_mountain},\n      {t:\"Scents & Flavours 4x4\", stops:[\"Quinta do Arco, Madeira\", \"S\u00e3o Jorge Madeira\", \"Santana, Madeira\"], m:\"Jeep Tour: Northeast & Forests.\", a:\"Lunch in Cabanas view.\", e:\"Coastal drive.\", tip:\"Experience the real scents.\", insta:\"Jeep in forest.\", img:img_levada, book:\"https:\/\/thisismadeiraisland.com\/things-to-do\/madeira-scents-and-flavours\"},\n      {t:\"Porto Santo Island (Golden Isle)\", stops:[\"Funchal Ferry Terminal, Madeira\", \"Vila Baleira, Porto Santo\", \"Ponta da Calheta, Porto Santo\"], m:\"Ferry trip to the Golden Island.\", a:\"Relax on the 9km sand beach.\", e:\"Return Ferry to Funchal.\", tip:\"The sand has therapeutic properties.\", insta:\"Endless golden sand.\", img:img_sand},\n      {t:\"Levada Easy\", stops:[\"Ribeiro Frio, Madeira\", \"Balc\u00f5es Viewpoint, Madeira\", \"Santana, Madeira\"], m:\"Short walk to Balc\u00f5es.\", a:\"Trout farm visit.\", e:\"Santana traditional houses.\", tip:\"Very flat and easy walk.\", insta:\"Birds on hand.\", img:img_family},\n      {t:\"Farewell Funchal\", stops:[\"Parque de Santa Catarina, Funchal\", \"Nini Andrade Silva Design Centre, Funchal\", \"Funchal Marina, Madeira\"], m:\"Santa Catarina Park.\", a:\"Design Centre Nini Andrade Silva.\", e:\"Final Poncha & Dinner.\", tip:\"Great sunset from the Design Centre.\", insta:\"Fortress View.\", img:img_funchal},\n      {t:\"The Wicker & Woods\", stops:[\"Camacha, Madeira\", \"Poiso, Madeira\", \"Ribeiro Frio, Madeira\"], m:\"Visit Wicker Factory.\", a:\"Drive through forest to Poiso.\", e:\"Trout dinner in Ribeiro Frio.\", tip:\"Buy local crafts.\", insta:\"Wicker Sleds.\", img:img_mountain},\n      {t:\"Green Sanctuary\", stops:[\"S\u00e3o Vicente, Madeira\", \"Ponta Delgada, Madeira\", \"Boaventura, Madeira\"], m:\"Explore volcanic caves.\", a:\"Lunch in Ponta Delgada.\", e:\"Valley views in Boaventura.\", tip:\"Lush green valley.\", insta:\"Sanctuary View.\", img:img_levada}\n    ],\n    relaxed_ocean: [\n      {t:\"The West\", stops:[\"Jardim do Mar, Madeira\", \"Calheta Beach, Madeira\", \"Paul do Mar, Madeira\"], m:\"Jardim do Mar village walk.\", a:\"Calheta Beach (Sand).\", e:\"Sunset in Paul do Mar.\", tip:\"Great seafood area.\", insta:\"Waves at Paul do Mar.\", img:img_sunset},\n      {t:\"Sea & Sky\", stops:[\"Funchal Marina, Madeira\", \"Cabo Gir\u00e3o Skywalk, Madeira\", \"C\u00e2mara de Lobos, Madeira\"], m:\"Catamaran Dolphin watching.\", a:\"Cabo Gir\u00e3o Skywalk.\", e:\"C\u00e2mara de Lobos Bay.\", tip:\"Book boat in advance.\", insta:\"Churchill Bay.\", img:img_cliff, book:\"https:\/\/thisismadeiraisland.com\/things-to-do\/dolphin-and-whale-watching-with-catamaran\"},\n      {t:\"Vineyards & Colors 4x4\", stops:[\"Santo da Serra, Madeira\", \"Portela Viewpoint, Madeira\", \"Machico, Madeira\"], m:\"Jeep Tour: East & Vineyards.\", a:\"Tasting local cider.\", e:\"Return via Machico.\", tip:\"Authentic 4x4 experience.\", insta:\"Vineyards.\", img:img_family, book:\"https:\/\/thisismadeiraisland.com\/things-to-do\/vineyards-colours\"},\n      {t:\"East Chill\", stops:[\"Machico Beach, Madeira\", \"Prainha Beach Cani\u00e7al, Madeira\", \"Cani\u00e7al, Madeira\"], m:\"Machico Beach relax.\", a:\"Prainha Beach (Hidden gem).\", e:\"Cani\u00e7al promenade.\", tip:\"Prainha has black sand.\", insta:\"Prainha Drone Shot.\", img:img_sand},\n      {t:\"Lighthouse\", stops:[\"Ponta do Pargo Lighthouse, Madeira\", \"Garganta Funda Viewpoint, Madeira\", \"Paul do Mar, Madeira\"], m:\"Drive to Ponta do Pargo.\", a:\"Garganta Funda Waterfall view.\", e:\"Lighthouse Sunset.\", tip:\"Western tip is windy.\", insta:\"Lighthouse silhouette.\", img:img_boat},\n      {t:\"Hidden Beach\", stops:[\"Calhau da Lapa, Madeira\", \"Ribeira Brava, Madeira\", \"Campan\u00e1rio, Madeira\"], m:\"Boat to Calhau da Lapa.\", a:\"Swim in clearest waters.\", e:\"Ribeira Brava Dinner.\", tip:\"Access by boat is easiest.\", insta:\"Cave houses.\", img:img_cliff},\n      {t:\"Surf Vibes\", stops:[\"Porto da Cruz, Madeira\", \"Maiata Beach, Madeira\", \"Miradouro do Guindaste, Madeira\"], m:\"Watch surfers at Maiata.\", a:\"Lunch in Porto da Cruz.\", e:\"North Coast Drive.\", tip:\"Very relaxed vibe here.\", insta:\"Surf board.\", img:img_pools},\n      {t:\"Marine Reserve\", stops:[\"Garajau Nature Reserve, Madeira\", \"Reis Magos Beach, Madeira\", \"Santa Cruz, Madeira\"], m:\"Snorkel at Garajau.\", a:\"Lunch at Reis Magos.\", e:\"Promenade walk.\", tip:\"Protected area, lots of fish.\", insta:\"Underwater shot.\", img:img_sand},\n      {t:\"Pools of S\u00e3o Jorge\", stops:[\"S\u00e3o Jorge Ruins, Madeira\", \"Calhau de S\u00e3o Jorge, Madeira\", \"Santana, Madeira\"], m:\"Discover the ruins.\", a:\"Swim in the river mouth.\", e:\"Santana.\", tip:\"Off the beaten path.\", insta:\"Ruins Arch.\", img:img_pools},\n      {t:\"Faj\u00e3 dos Padres\", stops:[\"Cabo Gir\u00e3o, Madeira\", \"Faj\u00e3 dos Padres Cable Car, Madeira\", \"C\u00e2mara de Lobos, Madeira\"], m:\"Cable car down.\", a:\"Lunch at organic farm.\", e:\"Swim and relax all day.\", tip:\"Access only by cable car or boat.\", insta:\"Cable car view.\", img:img_sunset},\n      {t:\"South East\", stops:[\"Santa Cruz Market, Madeira\", \"Praia das Palmeiras, Madeira\", \"Machico, Madeira\"], m:\"Santa Cruz Market.\", a:\"Palmeiras Beach.\", e:\"Local fish dinner.\", tip:\"Close to airport, planes overhead.\", insta:\"Plane spotting.\", img:img_boat},\n      {t:\"Porto Santo Island (Golden Isle)\", stops:[\"Funchal Ferry Terminal, Madeira\", \"Vila Baleira, Porto Santo\", \"Ponta da Calheta, Porto Santo\"], m:\"Ferry trip to the Golden Island.\", a:\"Relax on the 9km sand beach.\", e:\"Return Ferry to Funchal.\", tip:\"The sand has therapeutic properties.\", insta:\"Endless golden sand.\", img:img_sand},\n      {t:\"West Coast Road\", stops:[\"Telef\u00e9rico das Achadas da Cruz, Madeira\", \"Ponta do Pargo, Madeira\", \"Paul do Mar, Madeira\"], m:\"Achadas da Cruz steep cable car to the bottom.\", a:\"Picnic by the sea.\", e:\"Sunset West.\", tip:\"Steepest cable car in Europe.\", insta:\"Steep descent.\", img:img_cliff},\n      {t:\"Ocean Farewell\", stops:[\"Doca do Cavacas, Madeira\", \"Formosa Beach, Madeira\", \"Lido Promenade, Funchal\"], m:\"Doca do Cavacas natural pools.\", a:\"Walk tunnel to Formosa.\", e:\"Sunset drink.\", tip:\"Classic Funchal local spot.\", insta:\"Tunnel Window.\", img:img_pools},\n      {t:\"Southwest Silence\", stops:[\"Prazeres, Madeira\", \"Faj\u00e3 da Ovelha, Madeira\", \"Paul do Mar, Madeira\"], m:\"Tea House in Prazeres.\", a:\"Scenic drive through Faj\u00e3.\", e:\"Sunset in Paul do Mar.\", tip:\"Warmest part of the island.\", insta:\"Cliff roads.\", img:img_sunset}\n    ],\n    balanced_mix: [\n      {t:\"Funchal Essentials\", stops:[\"Monte Palace Madeira\", \"Funchal Old Town\", \"Parque de Santa Catarina\"], m:\"Monte Palace & Toboggans.\", a:\"Old Town & Fort.\", e:\"Sunset at Santa Catarina.\", tip:\"Wear grip shoes for Toboggans.\", insta:\"Toboggan shot.\", img:img_funchal},\n      {t:\"North Magic\", stops:[\"Fanal Forestry Station, Madeira\", \"Seixal Beach, Madeira\", \"Miradouro do V\u00e9u da Noiva, Madeira\"], m:\"Fanal Forest (Morning).\", a:\"Seixal Beach swim.\", e:\"Bridal Veil Waterfall.\", tip:\"Seixal sand is soft and black.\", insta:\"Waterfall into sea.\", img:img_pools},\n      {t:\"Peak Views\", stops:[\"Pico do Arieiro, Madeira\", \"Ribeiro Frio, Madeira\", \"Santana, Madeira\"], m:\"Pico do Arieiro Viewpoint.\", a:\"Balc\u00f5es Levada Walk.\", e:\"Santana Dinner.\", tip:\"Arieiro gets crowded by 10 AM.\", insta:\"Ninho da Manta.\", img:img_mountain},\n      {t:\"Dragon Tail\", stops:[\"Ponta de S\u00e3o Louren\u00e7o, Madeira\", \"Machico Beach, Madeira\", \"Cani\u00e7al, Madeira\"], m:\"Ponta de S\u00e3o Louren\u00e7o Hike.\", a:\"Machico Beach relax.\", e:\"Cani\u00e7al Seafood.\", tip:\"No shade on this hike.\", insta:\"Red cliffs.\", img:img_cliff},\n      {t:\"Levada & Sun\", stops:[\"Raba\u00e7al Nature Spot, Madeira\", \"Calheta Beach, Madeira\", \"Ponta do Sol, Madeira\"], m:\"Levada do Alecrim.\", a:\"Calheta Beach.\", e:\"Sunset in Ponta do Sol.\", tip:\"Raba\u00e7al parking fills up fast.\", insta:\"Green tunnel.\", img:img_levada},\n      {t:\"West Coast Gem\", stops:[\"Jardim do Mar, Madeira\", \"Ponta do Pargo Lighthouse, Madeira\", \"Paul do Mar, Madeira\"], m:\"Explore flower alleys of Jardim.\", a:\"Scenic drive to Lighthouse.\", e:\"Sunset at Lighthouse.\", tip:\"Best sunset spot on island.\", insta:\"Lighthouse.\", img:img_sunset},\n      {t:\"Nun's Valley Hike\", stops:[\"Eira do Serrado Viewpoint, Madeira\", \"Curral das Freiras, Madeira\", \"Funchal, Madeira\"], m:\"Hike down from Eira do Serrado.\", a:\"Explore village.\", e:\"Bus\/Taxi back up.\", tip:\"Short but steep descent.\", insta:\"Zig Zag path.\", img:img_mountain},\n      {t:\"Porto Santo Island (Golden Isle)\", stops:[\"Funchal Ferry Terminal, Madeira\", \"Vila Baleira, Porto Santo\", \"Ponta da Calheta, Porto Santo\"], m:\"Ferry crossing.\", a:\"Rent bike or beach.\", e:\"Return ferry.\", tip:\"A totally different dry landscape.\", insta:\"Palm trees.\", img:img_sand},\n      {t:\"Levada Nova\", stops:[\"Levada Nova, Madeira\", \"Cascata da Levada Nova, Madeira\", \"Ponta do Sol, Madeira\"], m:\"Levada Nova (Waterfall walk).\", a:\"Ponta do Sol lunch.\", e:\"Relax.\", tip:\"Includes a tunnel behind a waterfall.\", insta:\"Behind waterfall.\", img:img_levada},\n      {t:\"Madeira Theme\", stops:[\"Santana Theme Park\", \"Guindaste Viewpoint, Madeira\", \"Porto da Cruz, Madeira\"], m:\"Santana Theme Park.\", a:\"Guindaste Viewpoint.\", e:\"Porto da Cruz.\", tip:\"Learn about island history.\", insta:\"Triangle houses.\", img:img_santana},\n      {t:\"Hidden Calhaus\", stops:[\"Telef\u00e9rico das Achadas da Cruz, Madeira\", \"Porto Moniz, Madeira\", \"Seixal, Madeira\"], m:\"Achadas da Cruz Cable Car to the bottom.\", a:\"Walk by the sea.\", e:\"Porto Moniz Dinner.\", tip:\"Very quiet and secluded.\", insta:\"Alone on beach.\", img:img_cliff},\n      {t:\"Scents & Flavours 4x4\", stops:[\"North Coast, Madeira\", \"S\u00e3o Vicente, Madeira\", \"Santana, Madeira\"], m:\"Jeep Tour: Real Madeira.\", a:\"Lunch with locals.\", e:\"Return.\", tip:\"See the hidden north.\", insta:\"Jeep view.\", img:img_funchal, book:\"https:\/\/thisismadeiraisland.com\/things-to-do\/madeira-scents-and-flavours\"},\n      {t:\"Emerald Green\", stops:[\"Parque Florestal das Queimadas, Madeira\", \"Pico das Pedras, Madeira\", \"Santana, Madeira\"], m:\"Walk forest path connecting Queimadas & Pico das Pedras.\", a:\"Drive down to Santana village.\", e:\"Visit traditional thatched houses & Dinner.\", tip:\"The walk between the two parks is flat and magical.\", insta:\"Mossy trees.\", img:img_levada},\n      {t:\"Last Day Chill\", stops:[\"Lido Promenade, Funchal\", \"Doca do Cavacas, Madeira\", \"Funchal Old Town\"], m:\"Lido Promenade walk.\", a:\"Doca do Cavacas pools.\", e:\"Final seafood dinner.\", tip:\"Great vibe for the last day.\", insta:\"Sunset drink.\", img:img_pools},\n      {t:\"Eagle's Rock\", stops:[\"Faial, Madeira\", \"Penha de \u00c1guia, Madeira\", \"Porto da Cruz, Madeira\"], m:\"View of Penha de \u00c1guia.\", a:\"Go Kart or Fort in Faial.\", e:\"Surf vibe in Porto da Cruz.\", tip:\"Impressive rock formation.\", insta:\"Eagle Rock.\", img:img_cliff}\n    ],\n    balanced_ocean: [\n      {t:\"Old Road\", stops:[\"Ponta do Sol, Madeira\", \"Cascata dos Anjos, Madeira\", \"Paul do Mar, Madeira\"], m:\"Cascata dos Anjos (Car Wash).\", a:\"Paul do Mar & Jardim do Mar.\", e:\"Ponta do Pargo Sunset.\", tip:\"Drive the old coastal road.\", insta:\"Car under waterfall.\", img:img_cliff},\n      {t:\"Volcanic Swim\", stops:[\"Porto Moniz Natural Swimming Pools\", \"Seixal Beach, Madeira\", \"S\u00e3o Vicente Caves\"], m:\"Porto Moniz Pools.\", a:\"Seixal Beach.\", e:\"S\u00e3o Vicente Caves.\", tip:\"Water shoes help on rocks.\", insta:\"Pool waves.\", img:img_pools},\n      {t:\"Eastern Point\", stops:[\"Ponta de S\u00e3o Louren\u00e7o, Madeira\", \"Cani\u00e7al, Madeira\", \"Machico, Madeira\"], m:\"Ponta de S\u00e3o Louren\u00e7o (Half hike).\", a:\"Kayak tour in Cani\u00e7al.\", e:\"Dinner by the sea.\", tip:\"Bring plenty of water.\", insta:\"Cliff edge.\", img:img_boat},\n      {t:\"Cliff Lift\", stops:[\"Cabo Gir\u00e3o Skywalk\", \"Faj\u00e3 dos Padres, Madeira\", \"C\u00e2mara de Lobos, Madeira\"], m:\"Cabo Gir\u00e3o.\", a:\"Faj\u00e3 dos Padres (Cable car down).\", e:\"Swim & Lunch there.\", tip:\"Faj\u00e3 is organic and secluded.\", insta:\"Organic garden.\", img:img_sand},\n      {t:\"Porto Santo Island (Golden Isle)\", stops:[\"Funchal Ferry Terminal, Madeira\", \"Vila Baleira, Porto Santo\", \"Ponta da Calheta, Porto Santo\"], m:\"Ferry to Porto Santo.\", a:\"9km Beach.\", e:\"Return Ferry.\", tip:\"Book ferry 24h ahead.\", insta:\"Blue water.\", img:img_sunset},\n      {t:\"Hidden Beach\", stops:[\"Calhau da Lapa, Madeira\", \"Campan\u00e1rio, Madeira\", \"Ribeira Brava, Madeira\"], m:\"Boat to Calhau da Lapa.\", a:\"Snorkel and swim.\", e:\"Campan\u00e1rio.\", tip:\"Clear water, very local.\", insta:\"Cave houses.\", img:img_cliff},\n      {t:\"North Surf\", stops:[\"Porto da Cruz, Madeira\", \"Engenhos do Norte, Madeira\", \"Miradouro do Guindaste\"], m:\"Surf lesson or watch.\", a:\"Rum Factory visit.\", e:\"Guindaste Viewpoint.\", tip:\"Try the dry white wine too.\", insta:\"Surf waves.\", img:img_pools},\n      {t:\"Garajau Marine\", stops:[\"Cristo Rei Madeira\", \"Garajau Beach, Madeira\", \"Santa Cruz, Madeira\"], m:\"Cristo Rei statue.\", a:\"Cable car to beach.\", e:\"Santa Cruz.\", tip:\"No fishing allowed here, lots of fish.\", insta:\"Christ statue.\", img:img_sand},\n      {t:\"Madalena Sun\", stops:[\"Madalena do Mar, Madeira\", \"Ponta do Sol, Madeira\", \"Calheta Beach\"], m:\"Banana plantation walk.\", a:\"Lunch in Ponta do Sol.\", e:\"Sunset Maktub.\", tip:\"Warmest part of the island.\", insta:\"Banana leaves.\", img:img_sunset},\n      {t:\"Seixal Morning\", stops:[\"Seixal Beach, Madeira\", \"Po\u00e7a das Lesmas, Madeira\", \"S\u00e3o Vicente, Madeira\"], m:\"Sunrise swim Seixal.\", a:\"Po\u00e7a das Lesmas pools.\", e:\"S\u00e3o Vicente.\", tip:\"Morning light is best here.\", insta:\"Arch rock.\", img:img_pools},\n      {t:\"Desertas Islands\", stops:[\"Pra\u00e7a do Povo, Funchal\", \"Cani\u00e7al, Madeira\"], m:\"Full day boat trip.\", a:\"Nature reserve visit.\", e:\"Return.\", tip:\"You might see Monk Seals.\", insta:\"Monk Seal.\", img:img_boat, book:\"https:\/\/thisismadeiraisland.com\/things-to-do\/desertas-islands-full-day-catamaran-trip\"},\n      {t:\"Machico Vibes\", stops:[\"Machico Beach\", \"Pico do Facho Viewpoint\", \"Santa Cruz\"], m:\"Sand beach morning.\", a:\"Walk promenade.\", e:\"Pico do Facho view.\", tip:\"Relaxed local vibe.\", insta:\"Golden sand.\", img:img_sand},\n      {t:\"South Coast\", stops:[\"Ribeira Brava, Madeira\", \"Lugar de Baixo, Madeira\", \"Taberna da Poncha\"], m:\"Ribeira Brava market.\", a:\"Lugar de Baixo pond.\", e:\"Taberna da Poncha.\", tip:\"Central location.\", insta:\"Poncha prep.\", img:img_cliff},\n      {t:\"Ocean Sunset\", stops:[\"Lido Funchal\", \"Doca do Cavacas, Madeira\", \"Formosa Beach\"], m:\"Lido pools.\", a:\"Tunnel walk.\", e:\"Dinner overlooking sea.\", tip:\"Perfect goodbye.\", insta:\"Pool reflection.\", img:img_pools}\n    ],\n    active_mountain: [\n      {t:\"Night Hike\", stops:[\"Pico Ruivo\", \"Achada do Teixeira\"], m:\"Night hike to Pico Ruivo.\", a:\"Sunrise at top.\", e:\"Nap on beach.\", tip:\"Headlamp essential.\", insta:\"Starry sky.\", img:img_mountain},\n      {t:\"Green Inferno\", stops:[\"Parque Florestal das Queimadas\", \"Caldeir\u00e3o Verde\", \"Caldeir\u00e3o do Inferno\"], m:\"Caldeir\u00e3o Verde & Inferno.\", a:\"S\u00e3o Jorge.\", e:\"Santana.\", tip:\"Inferno adds more tunnels\/height.\", insta:\"Dark tunnel.\", img:img_levada},\n      {t:\"Central Massif\", stops:[\"Curral das Freiras\", \"Pico Grande\", \"Funchal\"], m:\"Pico Grande Hike.\", a:\"Po\u00e7o dos Chefes swim.\", e:\"Nuns Valley.\", tip:\"360 views of central massif.\", insta:\"Top of rock.\", img:img_cliff},\n      {t:\"MTB\", stops:[\"Paul da Serra\", \"Fanal Forestry Station\", \"Seixal\"], m:\"Mountain Biking Paul da Serra.\", a:\"Fanal.\", e:\"Seixal.\", tip:\"Rent good bikes in Funchal.\", insta:\"Muddy bike.\", img:img_fanal},\n      {t:\"Royal Path\", stops:[\"Prazeres\", \"Paul do Mar\", \"Jardim do Mar\"], m:\"Caminho Real (Section).\", a:\"Steep descent.\", e:\"Ocean swim.\", tip:\"Ancient stone roads.\", insta:\"Cobblestones.\", img:img_pools},\n      {t:\"Folhadal\", stops:[\"Encumeada\", \"Levada do Folhadal\", \"Ros\u00e1rio\"], m:\"Levada do Folhadal.\", a:\"Tunnel crossing.\", e:\"Encumeada.\", tip:\"Lush vegetation.\", insta:\"Jungle vibes.\", img:img_levada},\n      {t:\"Pico Ruivo West\", stops:[\"Achada do Teixeira\", \"Pico Ruivo\", \"Santana\"], m:\"Hike Teixeira to Ruivo.\", a:\"Explore side trails.\", e:\"Santana.\", tip:\"Easier side.\", insta:\"Dead trees.\", img:img_mountain},\n      {t:\"Fanal Guided Hike\", stops:[\"Fanal Forestry Station\", \"Seixal Beach\", \"Porto Moniz\"], m:\"Book a Guided Hike.\", a:\"Explore ancient trees.\", e:\"Porto Moniz.\", tip:\"Atmospheric.\", insta:\"Ghost tree.\", img:img_fanal, book:\"https:\/\/thisismadeiraisland.com\/things-to-do\/hike-in-the-forest-of-madeira-fanal\"},\n      {t:\"King's Levada\", stops:[\"Levada do Rei\", \"S\u00e3o Jorge\", \"Santana\"], m:\"Levada do Rei full.\", a:\"Waterfall shower.\", e:\"Santana.\", tip:\"Bring waterproofs.\", insta:\"Water curtain.\", img:img_levada},\n      {t:\"Sky Challenge\", stops:[\"Pico do Arieiro\", \"Pico Ruivo\", \"Achada do Teixeira\"], m:\"Arieiro to Ruivo.\", a:\"Ruivo to Teixeira.\", e:\"Taxi back.\", tip:\"The big crossing.\", insta:\"Exposed ridge.\", img:img_mountain},\n      {t:\"Raba\u00e7al Lakes\", stops:[\"Raba\u00e7al Nature Spot\", \"Lagoa do Vento\", \"Calheta\"], m:\"Hike to Lagoa do Vento.\", a:\"Risco.\", e:\"Calheta.\", tip:\"Less crowded lagoon.\", insta:\"Top of falls.\", img:img_waterfall},\n      {t:\"S\u00e3o Jorge\", stops:[\"S\u00e3o Jorge\", \"Ponta de S\u00e3o Jorge\", \"Santana\"], m:\"Coastal trail.\", a:\"Steep cliffs.\", e:\"Santana.\", tip:\"Wild north coast.\", insta:\"Rough coast.\", img:img_cliff},\n      {t:\"Bica da Cana\", stops:[\"Bica da Cana\", \"Pin\u00e1culo\", \"Paul da Serra\"], m:\"Sunrise Bica da Cana.\", a:\"Pin\u00e1culo hike.\", e:\"Paul da Serra.\", tip:\"Best sunrise view.\", insta:\"Sun rising.\", img:img_mountain},\n      {t:\"Endurance\", stops:[\"Encumeada Viewpoint\", \"Pico Ruivo\", \"Achada do Teixeira\"], m:\"Encumeada to Ruivo.\", a:\"Hard trek.\", e:\"Taxi.\", tip:\"For fit hikers only.\", insta:\"Tired smile.\", img:img_mountain}\n    ],\n    active_mix: [\n      {t:\"Peak to Peak\", stops:[\"Pico do Arieiro, Madeira\", \"Pico Ruivo, Madeira\", \"Achada do Teixeira\"], m:\"Pico Arieiro to Pico Ruivo.\", a:\"Transfer back.\", e:\"Hearty Dinner.\", tip:\"Hardest but best hike.\", insta:\"The ridges.\", img:img_mountain},\n      {t:\"Canyoning\", stops:[\"Raba\u00e7al Nature Spot\", \"Fanal Forestry Station\", \"Porto Moniz\"], m:\"Canyoning Tour (Interior).\", a:\"Fanal Forest.\", e:\"Porto Moniz.\", tip:\"Book Canyoning with guide.\", insta:\"Waterfall jump.\", img:img_waterfall, book:\"https:\/\/thisismadeiraisland.com\/things-to-do\/canyoning-in-madeira-beginners\"},\n      {t:\"25 Fountains\", stops:[\"Raba\u00e7al Nature Spot\", \"25 Fontes Falls\", \"Calheta Beach\"], m:\"25 Fontes Hike (Early!).\", a:\"Risco Waterfall.\", e:\"Calheta swim.\", tip:\"Start at 8 AM to beat crowds.\", insta:\"25 fountains wall.\", img:img_levada},\n      {t:\"Dragon Tail\", stops:[\"Ponta de S\u00e3o Louren\u00e7o\", \"Cais do Sardinha\", \"Machico\"], m:\"Full Ponta S\u00e3o Louren\u00e7o.\", a:\"Swim at the end.\", e:\"Machico.\", tip:\"Very dry and windy area.\", insta:\"The saddle.\", img:img_cliff},\n      {t:\"Surf North\", stops:[\"Porto da Cruz, Madeira\", \"Levada do Rei\", \"Santana\"], m:\"Surf Lesson (North).\", a:\"Levada do Rei.\", e:\"Santana.\", tip:\"North waves are best.\", insta:\"Surf action.\", img:img_pools},\n      {t:\"Vertical Descent\", stops:[\"Telef\u00e9rico das Achadas da Cruz\", \"Porto Moniz\", \"Seixal\"], m:\"Hike down Vereda da Ladeira.\", a:\"Swim at bottom.\", e:\"Cable car up.\", tip:\"Very steep!\", insta:\"Looking up.\", img:img_cliff},\n      {t:\"MTB Adventure\", stops:[\"Paul da Serra\", \"Fanal Forestry Station\", \"Seixal\"], m:\"MTB Tour Paul da Serra.\", a:\"Fanal trails.\", e:\"Seixal.\", tip:\"Rent a full suspension bike.\", insta:\"Bike jump.\", img:img_fanal},\n      {t:\"Pico Grande\", stops:[\"Encumeada Viewpoint\", \"Pico Grande\", \"Funchal\"], m:\"Summit Pico Grande.\", a:\"360 Views.\", e:\"Encumeada.\", tip:\"A mini-Everest feel.\", insta:\"Summit rock.\", img:img_mountain},\n      {t:\"Coasteering\", stops:[\"Baia d'Abra\", \"Cani\u00e7al\", \"Machico\"], m:\"Coasteering East.\", a:\"Prainha chill.\", e:\"Cani\u00e7al dinner.\", tip:\"Jumping off cliffs!\", insta:\"Mid-air jump.\", img:img_pools},\n      {t:\"Levada do Norte\", stops:[\"Cabo Gir\u00e3o Skywalk\", \"Levada do Norte\", \"C\u00e2mara de Lobos\"], m:\"Levada do Norte run\/hike.\", a:\"Cabo Gir\u00e3o.\", e:\"C\u00e2mara de Lobos.\", tip:\"Long and scenic.\", insta:\"Running trail.\", img:img_levada},\n      {t:\"Larano Path\", stops:[\"Vereda do Larano\", \"Boca do Risco\", \"Porto da Cruz\"], m:\"Machico to Porto da Cruz hike.\", a:\"Rum Factory arrival.\", e:\"Taxi back.\", tip:\"Not for vertigo sufferers.\", insta:\"Cliff edge path.\", img:img_cliff},\n      {t:\"Kayak Tour\", stops:[\"Funchal Marina\", \"Garajau Nature Reserve\", \"Funchal Old Town\"], m:\"Kayak volcanic coast.\", a:\"Snorkel.\", e:\"Funchal.\", tip:\"See the cliffs from water.\", insta:\"Kayak view.\", img:img_boat, book:\"https:\/\/thisismadeiraisland.com\/things-to-do\/kayak-tour\/\"},\n      {t:\"Nuns Hike\", stops:[\"Curral das Freiras\", \"Eira do Serrado\", \"Funchal\"], m:\"Hike down into crater.\", a:\"Explore.\", e:\"Hike back up (Challenge).\", tip:\"Great cardio.\", insta:\"Sweaty selfie.\", img:img_mountain},\n      {t:\"Peaks & Sails\", stops:[\"Pico do Arieiro\", \"Funchal Marina\"], m:\"Hike Pico Arieiro.\", a:\"Relax in Funchal.\", e:\"Sunset Sailboat Tour.\", tip:\"Relax after the hike.\", insta:\"Sails at sunset.\", img:img_boat, book:\"https:\/\/thisismadeiraisland.com\/things-to-do\/special-sunset-sailboat-tour\"}\n    ],\n    active_ocean: [\n      {t:\"Cliff Hike\", stops:[\"Prazeres, Madeira\", \"Paul do Mar, Madeira\", \"Jardim do Mar, Madeira\"], m:\"Hike down to Paul do Mar.\", a:\"Swim in ocean.\", e:\"Sunset.\", tip:\"Steep ascent back up!\", insta:\"Switchbacks.\", img:img_cliff},\n      {t:\"Coasteering\", stops:[\"Prainha Cani\u00e7al\", \"Cani\u00e7al\", \"Machico\"], m:\"Coasteering (Climb\/Jump).\", a:\"Prainha Beach.\", e:\"Cani\u00e7al.\", tip:\"Adrenaline rush guaranteed.\", insta:\"Splash.\", img:img_pools},\n      {t:\"Surf City\", stops:[\"Porto da Cruz\", \"Engenhos do Norte\", \"Miradouro do Guindaste\"], m:\"Surf Porto da Cruz.\", a:\"North Coast scenic drive.\", e:\"Rum Factory.\", tip:\"Porto da Cruz is surf city.\", insta:\"Surf vibe.\", img:img_boat},\n      {t:\"Vertigo Path\", stops:[\"Vereda do Larano\", \"Boca do Risco\", \"Machico\"], m:\"Larano Cliff Path.\", a:\"Boca do Risco.\", e:\"Machico.\", tip:\"Not for those with vertigo.\", insta:\"Edge of world.\", img:img_mountain},\n      {t:\"Marine Reserve\", stops:[\"Garajau Nature Reserve\", \"Reis Magos Beach\", \"Santa Cruz\"], m:\"Garajau Reserve Snorkel.\", a:\"Kayak tour.\", e:\"Santa Cruz.\", tip:\"Clear water protected area.\", insta:\"Fish school.\", img:img_sand},\n      {t:\"Faj\u00e3 dos Padres\", stops:[\"Cabo Gir\u00e3o\", \"Faj\u00e3 dos Padres Cable Car\", \"C\u00e2mara de Lobos\"], m:\"Cable car down.\", a:\"Swim & Snorkel.\", e:\"Sunset.\", tip:\"Organic farming spot.\", insta:\"Mango trees.\", img:img_sunset},\n      {t:\"Seixal Swim\", stops:[\"Seixal Beach\", \"Club Naval do Seixal\", \"S\u00e3o Vicente\"], m:\"Sunrise swim.\", a:\"Kayak rental Seixal.\", e:\"S\u00e3o Vicente.\", tip:\"Black sand stunning views.\", insta:\"Contrast.\", img:img_pools},\n      {t:\"West Surf\", stops:[\"Jardim do Mar\", \"Paul do Mar\", \"Calheta\"], m:\"Check surf at Jardim.\", a:\"Lunch Paul do Mar.\", e:\"Sunset.\", tip:\"Experts only surf here.\", insta:\"Big waves.\", img:img_cliff},\n      {t:\"Desertas Boat\", stops:[\"Pra\u00e7a do Povo, Funchal\", \"Cani\u00e7al, Madeira\"], m:\"Full day wildlife tour.\", a:\"Swim at Desertas.\", e:\"Return.\", tip:\"Rare monk seals.\", insta:\"Remote island.\", img:img_boat, book:\"https:\/\/thisismadeiraisland.com\/things-to-do\/desertas-islands-full-day-catamaran-trip\"},\n      {t:\"Calhau Lapa\", stops:[\"Campan\u00e1rio\", \"Calhau da Lapa\", \"Ribeira Brava\"], m:\"Hike down to Calhau.\", a:\"Swim in clear water.\", e:\"Hike up.\", tip:\"Very steep path.\", insta:\"Vertical path.\", img:img_cliff},\n      {t:\"Porto Santo Bike\", stops:[\"Funchal Ferry Terminal\", \"Vila Baleira\", \"Calheta Porto Santo\"], m:\"Ferry.\", a:\"Bike around island.\", e:\"Return.\", tip:\"Flat and bike friendly.\", insta:\"Bike on sand.\", img:img_sand},\n      {t:\"Cani\u00e7al Hike\", stops:[\"Ponta de S\u00e3o Louren\u00e7o\", \"Cais do Sardinha\", \"Cani\u00e7al\"], m:\"Full hike to lighthouse.\", a:\"Swim at Cais.\", e:\"Boat back to Marina.\", tip:\"Hot and dry.\", insta:\"Dry colors.\", img:img_cliff},\n      {t:\"North Kayak\", stops:[\"Ponta Delgada, Madeira\", \"S\u00e3o Vicente\", \"Porto Moniz\"], m:\"Kayak tour North.\", a:\"S\u00e3o Vicente.\", e:\"Dinner.\", tip:\"Rougher seas usually.\", insta:\"Rough sea.\", img:img_pools},\n      {t:\"Sunset SUP\", stops:[\"Garajau Beach\", \"Reis Magos Beach\", \"Funchal\"], m:\"Beach time.\", a:\"Stand Up Paddle.\", e:\"Sunset on water.\", tip:\"Calm evenings.\", insta:\"Paddle silhouette.\", img:img_sunset}\n    ],\n    family_data: [\n      {t:\"Fun Funchal\", stops:[\"Funchal Cable Car\", \"3D Fun Art Museum Funchal\", \"Funchal Marina\"], m:\"Cable Car.\", a:\"3D Fun Art Museum.\", e:\"Ice Cream Marina.\", tip:\"3D museum needs charged phone.\", insta:\"Optical Illusion.\", img:img_funchal},\n      {t:\"Nature & Sand\", stops:[\"Ribeiro Frio\", \"Balc\u00f5es Viewpoint\", \"Machico Beach\"], m:\"Balc\u00f5es (Feed birds).\", a:\"Machico Beach (Sand).\", e:\"Pizza.\", tip:\"Bring seeds for birds.\", insta:\"Bird on hand.\", img:img_family},\n      {t:\"Aqua Park\", stops:[\"Santa Cruz Aqua Park\", \"Santana Theme Park\", \"Santana\"], m:\"Santa Cruz Aqua Park.\", a:\"Santana Theme Park.\", e:\"Easy Dinner.\", tip:\"Slides are great fun.\", insta:\"Splash.\", img:img_santana},\n      {t:\"Safe Pools\", stops:[\"Porto Moniz Pools\", \"Seixal Beach\", \"S\u00e3o Vicente\"], m:\"Porto Moniz Pools.\", a:\"Seixal Beach.\", e:\"S\u00e3o Vicente Caves.\", tip:\"Kids area in pools is safe.\", insta:\"Kids playing.\", img:img_pools},\n      {t:\"Friendly Cows\", stops:[\"Fanal Forestry Station\", \"Calheta Beach\", \"Marina Calheta\"], m:\"Fanal Cows.\", a:\"Calheta Beach.\", e:\"Marina.\", tip:\"Cows are friendly.\", insta:\"Cow Selfie.\", img:img_fanal},\n      {t:\"Dolphin Boat\", stops:[\"Funchal Marina\", \"Cabo Gir\u00e3o\"], m:\"Catamaran trip.\", a:\"Ice cream.\", e:\"Old Town.\", tip:\"High chance to see dolphins.\", insta:\"Dolphin Jump.\", img:img_boat, book:\"https:\/\/thisismadeiraisland.com\/things-to-do\/dolphin-and-whale-watching-with-catamaran\"},\n      {t:\"Farm Fun\", stops:[\"Prazeres Educational Farm\", \"Jardim do Mar\", \"Paul do Mar\"], m:\"Prazeres Educational Farm.\", a:\"Jardim do Mar walk.\", e:\"Sunset.\", tip:\"Petting zoo animals.\", insta:\"Llama.\", img:img_family},\n      {t:\"Off-Road Fun\", stops:[\"Funchal\", \"C\u00e2mara de Lobos\", \"Cabo Gir\u00e3o\"], m:\"Buggy Tour.\", a:\"Santa Catarina Park.\", e:\"Dinner.\", tip:\"Family friendly adventure.\", insta:\"Buggy.\", img:img_boat, book:\"https:\/\/thisismadeiraisland.com\/things-to-do\/buggy-tour\"},\n      {t:\"Porto Santo Island (Golden Isle)\", stops:[\"Funchal Ferry Terminal\", \"Vila Baleira\", \"Ponta da Calheta, Porto Santo\"], m:\"Ferry trip.\", a:\"Sand castle building.\", e:\"Ferry back.\", tip:\"Best beach for kids.\", insta:\"Sand Castle.\", img:img_sand},\n      {t:\"Trout & Trees\", stops:[\"Ribeiro Frio Trout Farm\", \"Balc\u00f5es Viewpoint\", \"Santana\"], m:\"Trout Farm.\", a:\"Short forest walk.\", e:\"Santana.\", tip:\"Feed the fish.\", insta:\"Trout.\", img:img_levada},\n      {t:\"Toboggan Ride\", stops:[\"Monte Cable Car\", \"Monte Toboggans\", \"Funchal\"], m:\"Cable car up.\", a:\"Sled ride down.\", e:\"Funchal.\", tip:\"Fun for all ages.\", insta:\"Sled.\", img:img_funchal},\n      {t:\"Whale Museum\", stops:[\"Whale Museum Cani\u00e7al\", \"Prainha Beach\", \"Cani\u00e7al\"], m:\"Whale Museum Cani\u00e7al.\", a:\"Playground nearby.\", e:\"Dinner.\", tip:\"Life size whale models.\", insta:\"Whale Model.\", img:img_boat},\n      {t:\"Caves\", stops:[\"S\u00e3o Vicente Caves\", \"Volcanism Center\", \"Seixal\"], m:\"Volcanic Caves tour.\", a:\"Volcano centre.\", e:\"North coast.\", tip:\"Go inside the earth.\", insta:\"Cave Lights.\", img:img_mountain},\n      {t:\"Picnic Day\", stops:[\"Montado do Pereiro\", \"Pico do Arieiro\", \"Funchal\"], m:\"Forest park picnic.\", a:\"Games.\", e:\"Return.\", tip:\"Safe spaces to run.\", insta:\"Picnic.\", img:img_family}\n    ]\n  };\n\n  \/\/ --- WINDOW FUNCTIONS ---\n  window.mpSetDays = function(n) { mpState.days = n; mpShowStep(2); }\n  window.mpSetPace = function(n) { mpState.pace = n; mpShowStep(3); }\n  \n  window.mpSetFocus = function(f) { \n    mpState.focus = f;\n    document.getElementById('mpStep3').classList.remove('active');\n    document.getElementById('mpLoader').style.display = 'block';\n    document.getElementById('mpBar').style.width = '90%';\n    setTimeout(() => {\n        document.getElementById('mpLoader').style.display = 'none';\n        mpGenerate();\n        mpShowStep('Result');\n        mpInitWidgets();\n        generatePackingList(); \n    }, 1500);\n  }\n\n  window.mpSetFamily = function() {\n    mpState.pace = 4; \n    document.getElementById('mpStep3').classList.remove('active');\n    document.getElementById('mpLoader').style.display = 'block';\n    document.getElementById('mpBar').style.width = '90%';\n    setTimeout(() => {\n        document.getElementById('mpLoader').style.display = 'none';\n        mpGenerate();\n        mpShowStep('Result');\n        mpInitWidgets();\n        generatePackingList();\n    }, 1500);\n  }\n\n  window.getMapLink = function(stops) {\n    if(!stops || stops.length === 0) return \"#\";\n    let formattedStops = stops.map(s => encodeURIComponent(s + \", Madeira\"));\n    let path = formattedStops.join(\"\/\");\n    return `https:\/\/www.google.com\/maps\/dir\/$${path}`;\n  }\n\n  \/\/ --- PACKING LIST ---\n  window.generatePackingList = function() {\n    const packs_list = [\"Sunscreen\", \"Sunglasses\", \"Power Bank\", \"Google Maps Offline\", \"Light Jacket\", \"Comfy Shoes\", \"Hiking Boots\", \"Raincoat\", \"Swimwear\", \"Water Shoes\"];\n    \n    \/\/ Select basics (First 6 items)\n    let packs = packs_list.slice(0, 6); \n\n    \/\/ Add dynamic items based on Pace\/Focus\n    if(mpState.pace == 3) {\n        packs.push(packs_list[6]); \/\/ Hiking Boots\n        packs.push(packs_list[7]); \/\/ Raincoat\n    }\n    if(mpState.focus == 'ocean' || mpState.pace == 4) { \n        packs.push(packs_list[8]); \/\/ Swimwear\n        packs.push(packs_list[9]); \/\/ Water Shoes\n    }\n    \n    let packHtml = \"\";\n    packs.forEach(p => {\n       packHtml += `<div class=\"mp-pack-item\"><span class=\"mp-check\">\u2714<\/span> ${p}<\/div>`;\n    });\n    document.getElementById('packingListContainer').innerHTML = packHtml;\n  }\n\n  window.mpGenerate = function() {\n    let langData = en_data; \/\/ Defaulting everything to the single English object\n    let pool = langData.relaxed_mix;\n    \n    if(mpState.pace == 4) pool = langData.family_data;\n    else if(mpState.pace == 3) {\n        if(mpState.focus == 'ocean') pool = langData.active_ocean;\n        else pool = langData.active_mix;\n    } \n    else if(mpState.focus == 'ocean') pool = langData.relaxed_ocean;\n    else if(mpState.focus == 'mountain') pool = langData.relaxed_mountain || langData.balanced_mix;\n    else pool = langData.balanced_mix;\n\n    let count = parseInt(mpState.days) || 3;\n    let limit = Math.min(count, pool.length);\n    let html = \"\";\n    let totalSavings = 0;\n\n    for(let i=0; i<limit; i++) {\n      let d = pool[i];\n      let realMapLink = getMapLink(d.stops);\n      let bookHtml = d.book ? `<a href=\"${d.book}\" target=\"_blank\" class=\"mp-book-btn\">\ud83c\udfab Book Activity<\/a>` : '';\n      \n      let dailySaving = 50; \n      let titleLower = d.t.toLowerCase();\n      if(titleLower.includes('peak') || titleLower.includes('mountain') || titleLower.includes('fanal')) dailySaving = 85;\n      else if(titleLower.includes('funchal')) dailySaving = 35;\n      else if(titleLower.includes('ocean')) dailySaving = 60;\n      \n      totalSavings += dailySaving;\n\n      html += `\n        <div class=\"mp-acc-item\" onclick=\"this.classList.toggle('open')\">\n          <div class=\"mp-acc-header\">\n            <div style=\"display:flex; align-items:center; gap:10px; flex-wrap:wrap;\">\n               <div style=\"background:#1e293b; color:white; width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700;\">${i+1}<\/div>\n               <strong>${d.t}<\/strong>\n               ${bookHtml}\n            <\/div>\n            <span>\u25bc<\/span>\n          <\/div>\n          <div class=\"mp-acc-body\">\n            <div class=\"mp-day-grid\">\n               <div class=\"mp-day-thumb\" style=\"background-image:url('${d.img}');\"><\/div>\n               <div>\n                  <p style=\"margin:0 0 5px;\">\ud83c\udf05 <strong>AM:<\/strong> ${d.m}<\/p>\n                  <p style=\"margin:0 0 5px;\">\u2600\ufe0f <strong>PM:<\/strong> ${d.a}<\/p>\n                  <p style=\"margin:0 0 5px;\">\ud83c\udf19 <strong>EVE:<\/strong> ${d.e}<\/p>\n                  <div class=\"mp-savings-badge\">\ud83d\ude97 Save ~\u20ac${dailySaving} today by renting a car<\/div>\n                  <div style=\"font-size:13px; color:#666; margin-top:10px;\">\ud83d\udca1 ${d.tip}<\/div>\n                  <div class=\"mp-insta-tip\">\ud83d\udcf8 Insta-Spot: ${d.insta}<\/div>\n${window.getInsiderBadge(d.t, d.stops)}\n${window.getSunsetTime(d.t)}\n${window.getRealityCheck(d.t, d.stops)}\n                  <a href=\"${realMapLink}\" target=\"_blank\" class=\"mp-map-btn\">\ud83d\uddfa\ufe0f View Route Map<\/a>\n               <\/div>\n            <\/div>\n          <\/div>\n        <\/div>`;\n    }\n    document.getElementById('guideContainer').innerHTML = html;\n    \n    \/\/ Stats\n    let km = count * 50;\n    let fuel = Math.round((km\/100)*7*1.8);\n    document.getElementById('statKm').innerText = km + \"km\";\n    document.getElementById('statFuel').innerText = \"\u20ac\" + fuel;\n    document.getElementById('statDays').innerText = count;\n    \n    mpState.savings = totalSavings;\n  }\n\n  window.mpInitWidgets = function() {\n     let month = new Date().getMonth(); \n     let isWinter = (month < 3 || month > 10);\n     let temp = isWinter ? \"19\u00b0C\" : \"26\u00b0C\";\n     let icon = isWinter ? '<i class=\"fa-solid fa-cloud-sun\"><\/i>' : '<i class=\"fa-solid fa-sun\"><\/i>';\n     let tip = isWinter ? \"Cloudy in Funchal? Head West!\" : \"Hot? Head North for cool forests!\";\n     \n     document.getElementById('mpWeatherTitle').innerHTML = `${icon} ${temp} Avg`;\n     document.getElementById('mpWeatherTip').innerText = tip;\n     document.getElementById('mpSavingsText').innerText = `Save ~\u20ac${mpState.savings}`;\n  }\n\n  window.mpSwitchTab = function(tab, btn) {\n    document.querySelectorAll('.mp-tab-content').forEach(el => el.style.display = 'none');\n    document.querySelectorAll('.mp-tab').forEach(el => el.classList.remove('active'));\n    document.getElementById('tab-'+tab).style.display = 'block';\n    btn.classList.add('active');\n  }\n\n  window.mpToggleInsta = function(el) {\n    if(el.checked) document.getElementById('mpResult').classList.add('mp-container-insta');\n    else document.getElementById('mpResult').classList.remove('mp-container-insta');\n  }\n\n  window.mpToggleAudio = function() {\n    let audio = document.getElementById('mpAudio');\n    let icon = document.getElementById('audioIcon');\n    if(audio.paused) { audio.play(); icon.innerText = \"\ud83d\udd0a\"; } \n    else { audio.pause(); icon.innerText = \"\ud83d\udd07\"; }\n  }\n\n  window.mpShareWhatsapp = function() {\n    let text = `Check out my ${mpState.days}-Day Madeira Itinerary! https:\/\/thisismadeiraisland.com\/rental-car\/`;\n    window.open(`https:\/\/wa.me\/?text=${encodeURIComponent(text)}`, '_blank');\n  }\n\n  \/\/ --- SMART CAR LOGIC ---\n  window.updateSmartCarSticky = function() {\n      var pace = window.mpState.pace;\n      var selected = { t: \"Need a car?\", d: \"Booking beforehand secures the best deals.\" };\n      \n      if (pace == 3) {\n          selected = { t: \"Going to the Mountains?\", d: \"We recommend a <strong>Turbo or SUV<\/strong> (e.g. Kia Stonic) for steep roads.\" };\n      } else if (pace == 1) {\n          selected = { t: \"Easy Parking & Fuel?\", d: \"A <strong>Hybrid or Compact<\/strong> (e.g. Fiat Panda) is perfect.\" };\n      } else if (pace == 4) {\n          selected = { t: \"Travelling Together?\", d: \"A <strong>7-Seater<\/strong> (e.g. Dacia Jogger) offers space for everyone.\" };\n      }\n      \n      var titleEl = document.querySelector('#stickyBar strong');\n      var descEl = document.querySelector('#stickyBar span');\n      \n      if(titleEl) titleEl.innerHTML = selected.t;\n      if(descEl) descEl.innerHTML = selected.d;\n  }\n\n  \/\/ --- SHOW STEP CONTROLLER ---\n  window.mpShowStep = function(id) {\n    document.querySelectorAll('.mp-step').forEach(el => el.classList.remove('active'));\n    if(id === 'Result') {\n      document.getElementById('mpResult').classList.add('active');\n      document.getElementById('stickyBar').classList.add('visible');\n      document.getElementById('mpBar').style.width = '100%';\n      if(window.updateSmartCarSticky) window.updateSmartCarSticky(); \n    } else {\n      document.getElementById('mpStep' + id).classList.add('active');\n      if(id === 1) document.getElementById('mpBar').style.width = '25%';\n      if(id === 2) document.getElementById('mpBar').style.width = '50%';\n      if(id === 3) document.getElementById('mpBar').style.width = '75%';\n    }\n  }\n\n  \/\/ --- REALITY CHECK ---\n  window.getRealityCheck = function(title, stops) {\n      const text = (title + \" \" + stops.join(\" \")).toLowerCase();\n      \n      const t = { \n          d_steep: \"Drive: Steep & Twisty\", d_wind: \"Drive: Winding Roads\", d_chill: \"Drive: Coastal Cruising\", \n          v_fog: \"Vibe: Mystic Fog\", v_sun: \"Vibe: Sunny & Warm\", v_lush: \"Vibe: Lush & Wild\", v_fresh: \"Vibe: Fresh Air\",\n          reward: \"Reward\" \n      };\n\n      \/\/ Analyze Road Intensity\n      let roadHTML = \"\";\n      if(text.includes('arieiro') || text.includes('curral') || text.includes('faj\u00e3') || text.includes('paul do mar') || text.includes('porto moniz') || text.includes('fanal')) {\n          roadHTML = `<div class=\"mp-reality-item\"><span class=\"mp-dot dot-red\"><\/span> ${t.d_steep}<\/div>`;\n      } else if(text.includes('encumeada') || text.includes('santana') || text.includes('s\u00e3o vicente') || text.includes('ribeiro frio')) {\n           roadHTML = `<div class=\"mp-reality-item\"><span class=\"mp-dot dot-yellow\"><\/span> ${t.d_wind}<\/div>`;\n      } else {\n           roadHTML = `<div class=\"mp-reality-item\"><span class=\"mp-dot dot-green\"><\/span> ${t.d_chill}<\/div>`;\n      }\n\n      \/\/ Analyze Microclimate\n      let weatherHTML = \"\";\n      if(text.includes('fanal') || text.includes('queimadas') || text.includes('ribeiro frio')) {\n          weatherHTML = `<div class=\"mp-reality-item\"><span class=\"mp-dot dot-blue\"><\/span> ${t.v_fog}<\/div>`;\n      } else if(text.includes('ponta do sol') || text.includes('calheta') || text.includes('funchal') || text.includes('madalena')) {\n          weatherHTML = `<div class=\"mp-reality-item\"><span class=\"mp-dot dot-yellow\"><\/span> ${t.v_sun}<\/div>`;\n      } else if(text.includes('seixal') || text.includes('s\u00e3o vicente') || text.includes('porto moniz')) {\n          weatherHTML = `<div class=\"mp-reality-item\"><span class=\"mp-dot dot-green\"><\/span> ${t.v_lush}<\/div>`;\n      } else {\n          weatherHTML = `<div class=\"mp-reality-item\"><span class=\"mp-dot dot-blue\"><\/span> ${t.v_fresh}<\/div>`;\n      }\n\n      \/\/ The \"Poncha Reward\" Calculator\n      let effort = 1;\n      if(text.includes('hike') || text.includes('walk') || text.includes('levada') || text.includes('trekking')) effort = 2;\n      if(text.includes('peak') || text.includes('pico') || text.includes('stairs') || text.includes('arieiro') || text.includes('ruivo')) effort = 3;\n      \n      let ponchaIcon = \"\ud83c\udf79\";\n      let rewardHTML = `<div class=\"mp-reality-item\">\ud83c\udfc6 ${t.reward}: ${ponchaIcon.repeat(effort)}<\/div>`;\n\n      return `\n        <div class=\"mp-reality-bar\">\n           ${roadHTML}\n           <div class=\"mp-separator\"><\/div>\n           ${weatherHTML}\n           <div class=\"mp-separator\"><\/div>\n           ${rewardHTML}\n        <\/div>\n      `;\n  }\n\n  \/\/ --- SMART INSIDER BADGES ---\n  window.getInsiderBadge = function(title, stops) {\n      let text = (title + \" \" + stops.join(\" \")).toLowerCase();\n      \n      if(text.includes('arieiro') || text.includes('ruivo') || text.includes('cabo gir\u00e3o') || text.includes('larano')) \n          return '<span class=\"mp-insider-badge vertigo\">\ud83d\ude28 Vertigo Alert<\/span>';\n      \n      if(text.includes('fanal')) \n          return '<span class=\"mp-insider-badge cow\">\ud83d\udc04 Cow Crossing<\/span>';\n          \n      if(text.includes('levada') || text.includes('caldeir\u00e3o') || text.includes('25 fontes')) \n          return '<span class=\"mp-insider-badge tunnel\">\ud83d\udd26 Torch Needed<\/span>';\n          \n      if(text.includes('poncha') || text.includes('c\u00e2mara de lobos') || text.includes('ribeiro frio')) \n          return '<span class=\"mp-insider-badge poncha\">\ud83c\udf79 Poncha Spot<\/span>';\n          \n      if(text.includes('ponta do sol') || text.includes('calheta') || text.includes('madalena')) \n          return '<span class=\"mp-insider-badge sun\">\u2600\ufe0f Sun Trap<\/span>';\n          \n      if(text.includes('seixal') || text.includes('porto moniz')) \n          return '<span class=\"mp-insider-badge swim\">\ud83c\udf0a Volcanic Swim<\/span>';\n\n      return '';\n  }\n\n  window.getSunsetTime = function(title) {\n      if(!title.toLowerCase().includes('sunset')) return '';\n      \n      let month = new Date().getMonth(); \n      let time = \"18:00\"; \n      \n      if(month >= 2 && month <= 4) time = \"20:00\"; \n      else if(month >= 5 && month <= 7) time = \"21:10\"; \n      else if(month >= 8 && month <= 9) time = \"19:30\"; \n      \n      return `<div class=\"mp-time-badge\">\ud83d\udd52 Est. Sunset: ${time}<\/div>`;\n  }\n\n  \/\/ Initialize the first step on load\n  window.mpShowStep(1);\n});\n<\/script>\n\n\n\n<div style=\"\n    text-align: center; \n    font-size: 11px; \n    color: #94a3b8; \n    padding: 20px; \n    border-top: 1px solid #e2e8f0; \n    margin-top: 20px;\n    opacity: 0.8;\">\n    \n    Madeira Trip Planner \u00a9 2026 <a href=\"https:\/\/thisismadeiraisland.com\/\" style=\"color: inherit; text-decoration: none; font-weight: 600;\">This is Madeira Island<\/a>. \n    <br>Unauthorized copying of this tool&#8217;s code or logic is prohibited.\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"\ud83d\udd07 Klik hier voor de gratis reisplanner en routeplanner van Island Mood voor Madeira. Stel binnen enkele seconden je eigen reisroute samen. Hoeveel dagen? 3 5 7 8 9 10 11 12 13 14 Reisstijl \ud83c\udf05 De zonsondergangjager. Ontspannen tempo. Mooie autoroutes en lekker eten. \ud83d\udcf8 De Ontdekkingsreiziger Een uitgebalanceerde mix van bezienswaardigheden en rust. \ud83e\udd7e Berggeit Actief. Bergtoppen beklimmen en sensatie. Wie gaat er op reis? \u2764\ufe0f Alleen \/ Koppel Klassieke hoogtepunten van Madeira\u2026.","protected":false},"author":63,"featured_media":35350,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-38810","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/thisismadeiraisland.com\/nl\/wp-json\/wp\/v2\/pages\/38810","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thisismadeiraisland.com\/nl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/thisismadeiraisland.com\/nl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/thisismadeiraisland.com\/nl\/wp-json\/wp\/v2\/users\/63"}],"replies":[{"embeddable":true,"href":"https:\/\/thisismadeiraisland.com\/nl\/wp-json\/wp\/v2\/comments?post=38810"}],"version-history":[{"count":1,"href":"https:\/\/thisismadeiraisland.com\/nl\/wp-json\/wp\/v2\/pages\/38810\/revisions"}],"predecessor-version":[{"id":41803,"href":"https:\/\/thisismadeiraisland.com\/nl\/wp-json\/wp\/v2\/pages\/38810\/revisions\/41803"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thisismadeiraisland.com\/nl\/wp-json\/wp\/v2\/media\/35350"}],"wp:attachment":[{"href":"https:\/\/thisismadeiraisland.com\/nl\/wp-json\/wp\/v2\/media?parent=38810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}