{"id":1436,"date":"2026-01-15T18:09:33","date_gmt":"2026-01-15T18:09:33","guid":{"rendered":"https:\/\/unexpectedmoncton.ca\/?page_id=1436"},"modified":"2026-05-27T17:13:26","modified_gmt":"2026-05-27T17:13:26","slug":"private-tours","status":"publish","type":"page","link":"https:\/\/unexpectedmoncton.ca\/index.php\/private-tours\/","title":{"rendered":"Private Tours"},"content":{"rendered":"<style>.wp-block-kadence-spacer.kt-block-spacer-1436_f8e4d6-08 .kt-block-spacer{height:100px;}.wp-block-kadence-spacer.kt-block-spacer-1436_f8e4d6-08 .kt-divider{border-top-width:1px;height:1px;border-top-color:var(--global-palette9, #ffffff);width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-1436_f8e4d6-08\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <style>\n        .title-image {\n            width: 180px;\n            display: block;\n            margin: 0 auto;\n        }\n\n        @media (max-width: 768px) {\n            .title-image {\n                width: 120px;\n            }\n        }\n    <\/style>\n<\/head>\n<body>\n    <img decoding=\"async\" src=\"https:\/\/unexpectedmoncton.ca\/wp-content\/uploads\/2026\/02\/Private-Tours.png\" alt=\"Title Image\" class=\"title-image\">\n<\/body>\n<\/html>\n\n\n\n<style data-wp-block-html=\"css\">\n<style>\n.private-tour-card {\n    max-width: 1400px;\n    margin: 40px auto;\n    background: #fefefe;\n    border-radius: 12px;\n    box-shadow: 0 8px 30px rgba(0,0,0,0.05);\n    padding: 40px;\n    border: 1px solid #d1e3f8;\n}\n\n.tour-tabs {\n    display: flex;\n    gap: 40px;\n    border-bottom: 1px solid #c8d9eb;\n    margin-bottom: 30px;\n}\n\n.tab-item {\n    background: none !important;\n    background-color: transparent !important;\n    border: none !important;\n    box-shadow: none !important;\n    padding: 15px 0 !important;\n    font-size: 16px;\n    font-weight: 600;\n    cursor: pointer;\n    color: #444 !important;\n    position: relative;\n    transition: color 0.2s ease;\n    outline: none !important;\n    z-index: 10;\n}\n\n.tab-item.active {\n    color: #003366 !important;\n}\n\n.tab-item.active::after {\n    content: '';\n    position: absolute;\n    bottom: -1px;\n    left: 0;\n    width: 100%;\n    height: 3px;\n    background-color: #003366;\n}\n\n.tab-item.disabled { color: #ccc !important; cursor: default; }\n\n.tour-note { font-style: italic; color: #666; margin-bottom: 15px; font-size: 0.95em; }\n\n.price-tiers { display: flex; gap: 20px; margin-bottom: 30px; }\n\n.tier { background: #ffffff; padding: 20px; border-radius: 6px; flex: 1; border: 1px solid #e1efff; }\n\n.label {\n    display: block;\n    font-weight: 700;\n    color: #003366;\n    margin-bottom: 5px;\n}\n\n\/* Red Asterisk Style *\/\n.required {\n    color: #ff4444;\n    margin-left: 3px;\n}\n\n.tax { display: block; font-size: 12px; color: #888; margin-top: 4px; }\n\n\/* MOBILE: Vertical Tabs *\/\n@media (max-width: 768px) {\n    .tour-tabs {\n        flex-direction: column;\n        gap: 5px;\n        border-bottom: none;\n    }\n    .tab-item {\n        text-align: left !important;\n        padding: 12px 15px !important;\n        border-left: 4px solid transparent !important;\n    }\n    .tab-item.active {\n        background: #e1efff !important;\n        border-left: 4px solid #003366 !important;\n    }\n    .tab-item.active::after { display: none; }\n    .price-tiers { flex-direction: column; }\n    .private-tour-card { padding: 20px; }\n}\n<\/style>\n<\/style>\n\n<script data-wp-block-html=\"js\">\nconst tourLibrary = {\n    'moncton': {\n        name: \"Downtown Food & Drink Tour\",\n        pSmall: \"$140 \/ person\",\n        pLarge: \"$130 \/ person\",\n        showNote: true\n    },\n    'petitcodiac': {\n        name: \"Petitcodiac River Walking Tour\",\n        pSmall: \"$45 \/ person\",\n        pLarge: \"$40 \/ person\",\n        showNote: false\n    }\n};\n\nfunction toggleTour(key) {\n    const tour = tourLibrary[key];\n    if (!tour) return;\n\n    \/\/ 1. Update Text UI Safely\n    const titleEl = document.getElementById('display-title');\n    if (titleEl) titleEl.innerText = tour.name;\n\n    const pSmallEl = document.getElementById('price-small');\n    if (pSmallEl) pSmallEl.innerText = tour.pSmall;\n\n    const pLargeEl = document.getElementById('price-large');\n    if (pLargeEl) pLargeEl.innerText = tour.pLarge;\n\n    \/\/ 2. Update Hidden Field Safely\n    const hiddenField = document.querySelector('input[name=\"tour_selection\"]');\n    if (hiddenField) {\n        hiddenField.value = tour.name;\n    }\n\n    \/\/ 3. Toggle Note Safely\n    const noteEl = document.getElementById('tour-note');\n    if (noteEl) noteEl.style.display = tour.showNote ? 'block' : 'none';\n\n    \/\/ 4. Update Active Tab Class Safely\n    const tabs = document.querySelectorAll('.tab-item');\n    if (tabs.length > 0) {\n        tabs.forEach(btn => {\n            if (btn) {\n                btn.classList.remove('active');\n                if (btn.getAttribute('data-tour') === key) {\n                    btn.classList.add('active');\n                }\n            }\n        });\n    }\n}\n\ndocument.addEventListener('DOMContentLoaded', function () {\n   \/\/ --- FORM SUBMIT LOADING SPIN PIECE ---\nconst form = document.querySelector('.private-tours-form'); \/\/ Changed from .wpforms-form\nif (form) {\n    const button = form.querySelector('.wpforms-submit');\n    \n    if (button) {\n        form.addEventListener('submit', function () {\n            button.classList.add('is-loading');\n            button.setAttribute('disabled', 'disabled');\n        });\n    }\n}\n\n    \/\/ --- SUCCESS SCROLL LOGIC ---\n    const success = document.getElementById('form-success');\n    if (success) {\n        success.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    }\n\n    \/\/ --- TAB CLICK LISTENER ---\n    document.addEventListener('click', function (event) {\n        if (event.target && event.target.classList.contains('tab-item') && !event.target.classList.contains('disabled')) {\n            const tourKey = event.target.getAttribute('data-tour');\n            toggleTour(tourKey);\n        }\n    });\n\n    \/\/ --- URL PARAMETER & INITIAL LOAD ---\n    const params = new URLSearchParams(window.location.search);\n    const tourQuery = params.get('tour');\n    \n    setTimeout(() => {\n        if (tourQuery && tourLibrary[tourQuery]) {\n            toggleTour(tourQuery);\n        } else {\n            toggleTour('moncton');\n        }\n    }, 200);\n});\n<\/script>\n\n<div class=\"private-tour-card\">\n    <div class=\"tour-tabs\" id=\"tourTabsContainer\">\n        <button class=\"tab-item active\" data-tour=\"moncton\">Downtown Food &amp; Drink Tour<\/button>\n        <button class=\"tab-item\" data-tour=\"petitcodiac\">Petitcodiac River Walking Tour<\/button>\n        <button class=\"tab-item disabled\">Coming Soon<\/button>\n    <\/div>\n\n    <div class=\"tour-details-box\">\n        <h2 id=\"display-title\">Downtown Food &amp; Drink Tour<\/h2>\n        <p id=\"tour-note\" class=\"tour-note\">Private food tours can begin between 12 pm and 3 pm<\/p>\n\n        <div class=\"price-tiers\">\n            <div class=\"tier\">\n                <span class=\"label\">Groups of 2\u20135 :<\/span>\n                <span class=\"amount\" id=\"price-small\">$140 \/ person<\/span>\n                <span class=\"tax\">+ 15% tax<\/span>\n            <\/div>\n            <div class=\"tier\">\n                <span class=\"label\">Groups of 6+ :<\/span>\n                <span class=\"amount\" id=\"price-large\">$130 \/ person<\/span>\n                <span class=\"tax\">+ 15% tax<\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"form-section\">\n            <div class=\"private-tours-form-wrapper\">\r\n        \r\n        <form method=\"post\" class=\"private-tours-form js-private-tours-form\">\r\n            <input type=\"hidden\" id=\"private_tours_nonce\" name=\"private_tours_nonce\" value=\"c3ad61a065\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/index.php\/wp-json\/wp\/v2\/pages\/1436\" \/>\r\n            <input type=\"hidden\" name=\"tour_selection\" id=\"tour-choice-hidden\" value=\"Downtown Food & Drink Tour\">\r\n\r\n            <div style=\"position:absolute; left:-9999px;\">\r\n                <label>Company<\/label>\r\n                <input type=\"text\" name=\"company_name\" tabindex=\"-1\" autocomplete=\"off\">\r\n            <\/div>\r\n\r\n            <div class=\"form-row two-col\">\r\n                <div class=\"wpforms-field\">\r\n                    <label>First name <span class=\"required\">*<\/span><\/label>\r\n                    <input type=\"text\" name=\"first_name\" required>\r\n                <\/div>\r\n                <div class=\"wpforms-field\">\r\n                    <label>Last name <span class=\"required\">*<\/span><\/label>\r\n                    <input type=\"text\" name=\"last_name\" required>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"form-row two-col small\">\r\n                <div class=\"wpforms-field\">\r\n                    <label>Email <span class=\"required\">*<\/span><\/label>\r\n                    <input type=\"email\" name=\"email\" required>\r\n                <\/div>\r\n                <div class=\"wpforms-field\">\r\n                    <label>Telephone<\/label>\r\n                    <input type=\"tel\" name=\"telephone\">\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"form-row three-col\">\r\n                <div class=\"wpforms-field\">\r\n                    <label>Guests <span class=\"required\">*<\/span><\/label>\r\n                    <input type=\"number\" name=\"guests\" min=\"1\" required>\r\n                <\/div>\r\n                <div class=\"wpforms-field\">\r\n                    <label>Date requested <span class=\"required\">*<\/span><\/label>\r\n                    <input type=\"date\" name=\"dates_requested\" required>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"wpforms-field\">\r\n                <label>Additional questions or comments<\/label>\r\n                <textarea name=\"comments\" rows=\"4\"><\/textarea>\r\n            <\/div>\r\n\r\n            <div class=\"wpforms-submit-container\">\r\n                <button type=\"submit\" name=\"private_tours_submit\" class=\"wpforms-submit\">\r\n                    <span class=\"btn-text\">Submit<\/span>\r\n                    <span class=\"btn-spinner\" aria-hidden=\"true\"><\/span>\r\n                <\/button>\r\n            <\/div>\r\n        <\/form>\r\n    <\/div>\r\n    \n    <\/div>\n<\/div>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-1436_3fcaef-0b .kt-block-spacer{height:60px;}.wp-block-kadence-spacer.kt-block-spacer-1436_3fcaef-0b .kt-divider{border-top-width:1px;height:1px;border-top-color:var(--global-palette9, #ffffff);width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-1436_3fcaef-0b\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Downtown Food &amp; Drink Tour Petitcodiac River Walking Tour Coming Soon Downtown Food &amp; Drink Tour Private food tours can begin between 12 pm and 3 pm Groups of 2\u20135 : $140 \/ person + 15% tax Groups of 6+ : $130 \/ person + 15% tax<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":8,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-1436","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/unexpectedmoncton.ca\/index.php\/wp-json\/wp\/v2\/pages\/1436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unexpectedmoncton.ca\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/unexpectedmoncton.ca\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/unexpectedmoncton.ca\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unexpectedmoncton.ca\/index.php\/wp-json\/wp\/v2\/comments?post=1436"}],"version-history":[{"count":68,"href":"https:\/\/unexpectedmoncton.ca\/index.php\/wp-json\/wp\/v2\/pages\/1436\/revisions"}],"predecessor-version":[{"id":2034,"href":"https:\/\/unexpectedmoncton.ca\/index.php\/wp-json\/wp\/v2\/pages\/1436\/revisions\/2034"}],"wp:attachment":[{"href":"https:\/\/unexpectedmoncton.ca\/index.php\/wp-json\/wp\/v2\/media?parent=1436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}