<!DOCTYPE html><!-- Last Published: Fri Sep 12 2025 04:33:42 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="caribou.travel" data-wf-page="64d1f8d7c8eb554aa7393f21" data-wf-site="64d1f8d7c8eb554aa7393f33" lang="zh-HK"><head><meta charset="utf-8"/><title>Caribou Travel - 你的一對一旅遊預訂助手 - 輕鬆預訂 郵輪假期|精品酒店</title><link rel="alternate" hrefLang="x-default" href="https://caribou.travel/"/><link rel="alternate" hrefLang="zh-HK" href="https://caribou.travel/"/><link rel="alternate" hrefLang="en" href="https://caribou.travel/en"/><meta content="Caribou Travel 預訂助手讓客人透過單一對口,輕鬆接通世界各地旅遊資源,隨時隨地查詢及預訂旅程所需的相關項目,助你輕鬆安排每一個夢想旅程。 少一點煩惱,多一點感受" name="description"/><meta content="Caribou Travel - 你的一對一旅遊預訂助手 - 輕鬆預訂 郵輪假期|精品酒店" property="og:title"/><meta content="Caribou Travel 預訂助手讓客人透過單一對口,輕鬆接通世界各地旅遊資源,隨時隨地查詢及預訂旅程所需的相關項目,助你輕鬆安排每一個夢想旅程。 少一點煩惱,多一點感受" property="og:description"/><meta content="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/663ca3459494614aa385b3bc_Cover%20Image%20-%20Chinese.png" property="og:image"/><meta content="Caribou Travel - 你的一對一旅遊預訂助手 - 輕鬆預訂 郵輪假期|精品酒店" property="twitter:title"/><meta content="Caribou Travel 預訂助手讓客人透過單一對口,輕鬆接通世界各地旅遊資源,隨時隨地查詢及預訂旅程所需的相關項目,助你輕鬆安排每一個夢想旅程。 少一點煩惱,多一點感受" property="twitter:description"/><meta content="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/663ca3459494614aa385b3bc_Cover%20Image%20-%20Chinese.png" property="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><link href="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/css/caribou-staging.webflow.shared.18f24bd19.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com" rel="preconnect"/><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="anonymous"/><script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script><script type="text/javascript">WebFont.load({ google: { families: ["Noto Sans HK:regular,500,700","Poppins:regular,500,600,700","Manrope:regular,500,600,700"] }});</script><script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script><link href="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/64d1f8d7c8eb554aa7393f7a_Favicon.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/64d1f8d7c8eb554aa7393f7b_Webclip.png" rel="apple-touch-icon"/><!-- Google Tag Manager --><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-WKGC5B3');</script><!-- End Google Tag Manager --> <meta name="agd-partner-manual-verification" /> <!-- Meta Pixel Code --><script>!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init', '921638962188869'); </script><noscript><img height="1" width="1" style="display:none"src="https://www.facebook.com/tr?id=921638962188869&ev=PageView&noscript=1"/></noscript><!-- End Meta Pixel Code --> <!-- Custom Google Ad Tracking --><script>function setCookie(name, value, days) { var expires = ""; if (days) { var date = new Date(); date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000); // Set expiry to 30 days expires = "; expires=" + date.toUTCString(); } document.cookie = name + "=" + encodeURIComponent(value || "") + expires + "; path=/";} // Utility Functionsfunction getCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(";"); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == " ") c = c.substring(1, c.length); if (c.indexOf(nameEQ) == 0) { var cookieValue = c.substring(nameEQ.length, c.length); return decodeURIComponent(cookieValue); } } return null;} function getClientId() { var gaCookie = getCookie("_ga"); if (gaCookie) { var parts = gaCookie.split("."); if (parts.length >= 4) { return parts[2] + "." + parts[3]; } } return "";} function getSessionId() { var gaSessionCookie = getCookie("_ga_F643X6TL3D"); if (gaSessionCookie) { var parts = gaSessionCookie.split("."); if (parts.length >= 2) { return parts[2]; } } return "";} function triggerCustomDataReady(){ // Push the fetched data and a custom event to the dataLayer dataLayer.push({ 'event': 'data_ready', // Custom event name }); fbq('track', 'PageView');} async function fetchHashId(hashObject) { try { // Skip hashing for empty object if (!hashObject || Object.keys(hashObject).length === 0) { return; } const response = await fetch( "https://hub.caribou.travel/api/hash", { method: "POST", headers: { "Content-Type": "application/json", "Caribou-Token": "76776d2b7be55bac4de727bec1030657", }, body: JSON.stringify(hashObject), } ); const data = await response.json(); if (response.ok && data) { var hashID = data.uuid; setCookie("caribou_hashID", hashID, 30); } else { setCookie("caribou_hashID", '(no hashID)', 30); console.error("API error or invalid response"); } } catch (error) { console.error("Error: ", error); }} var urlParams = new URLSearchParams(window.location.search);var keys = [ "adUID", "network", "campaignid", "campaign_id", "adgroupid", "adset_id", "ad_id", "device", "creative", "keyword", "gclid", 'fbclid'];var hasParams = keys.some((key) => urlParams.has(key));var adTracking = {} if (hasParams) { adTracking = { adUID: urlParams.get("adUID") || "(no value)", network: urlParams.get("network") || "(no value)", campaignid: urlParams.get("campaignid") || urlParams.get("campaign_id") || "(no value)", // Google: campaignid; Facebook: campaign_id adgroupid: urlParams.get("adgroupid") || urlParams.get("adset_id") || "(no value)", // Google: adgroupid; Facebook: adset_id adid: urlParams.get("ad_id") || "(no value)", // Google: /; Facebook: ad_id device: urlParams.get("device") || "(no value)", creative: urlParams.get("creative") || "(no value)", keyword: urlParams.get("keyword") || "(no value)", gclid: urlParams.get("gclid") || "(no value)", fbclid: urlParams.get("fbclid") || "(no value)", timestamp: new Date().toISOString(), }; // Get the existing adTracking cookie var existingAdTracking = getCookie('adTracking') ? JSON.parse(getCookie('adTracking')) : null // Create copies of the adTracking objects without the timestamp var currentAdTrackingNoTimestamp = { ...adTracking } delete currentAdTrackingNoTimestamp.timestamp var existingAdTrackingNoTimestamp = existingAdTracking ? { ...existingAdTracking } : null if ( existingAdTrackingNoTimestamp ) delete existingAdTrackingNoTimestamp.timestamp // Compare the existing adTracking cookie with the new one if (!existingAdTrackingNoTimestamp || JSON.stringify(existingAdTrackingNoTimestamp) !== JSON.stringify(currentAdTrackingNoTimestamp)) { setCookie("adTracking", JSON.stringify(adTracking), 30); // Store in a cookie for 30 days setCookie("caribou_hashID", '(no_hashID)', 30) // Set the cookie 'caribou_hashID' so that it can request another hash }} </script><!-- End Custom Google Ad Tracking --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"/><script src="https://cdnjs.cloudflare.com/ajax/libs/typed.js/2.1.0/typed.umd.js"></script> <style> .homepage-body-wrapper { display: none;} </style> <script> async function checkLocationAndRedirect() { var currentPath = window.location.pathname; if (currentPath === "/") { try { // Check for existing 'caribou_language' cookie const userLanguage = getCookie('caribou_language') if (userLanguage) { // If cookie exists, redirect or display content accordingly var languagePathMap = { 'zh-Hant-HK': "/", 'en': '/en' } var targetPathFromCookie = languagePathMap[userLanguage] || null if (targetPathFromCookie && currentPath !== targetPathFromCookie) { window.location.pathname = targetPathFromCookie; return; // Early return to prevent further execution } else { // Show body when no redirect is needed document.querySelector(".homepage-body-wrapper").style.display = "block" } } else { // Call API to checking language when cookie does not exist const response = await fetch('https://advisor.caribou.travel/api/geo'); const data = await response.json(); var countryCode = data.data.country var urlMap = { 'HK': '/', // Hong Kong 'SG': '/en', // Singapore 'TW': '/', // Taiwan }; // Set cookie if not already set const languageToSet = countryCode === 'HK' ? 'zh-Hant-HK' : 'en' document.cookie = `caribou_language=${encodeURIComponent(languageToSet)}; path=/;` // Check if redirect is needed var targetPath = urlMap[countryCode] || '/en'; // default to english if countryCode not in urlMap if (currentPath !== targetPath){ window.location.pathname = targetPath } else { // No redirect is needed; show the body document.querySelector(".homepage-body-wrapper").style.display = "block" } } } catch (error) { console.error('Error fetching country code:', error); // API Error document.querySelector(".homepage-body-wrapper").style.display = "block"; } } else { // Not in root directory document.querySelector(".homepage-body-wrapper").style.display = "block"; }} window.onload = function() { checkLocationAndRedirect();} </script></head><body class="body"><div class="loading-wrapper"><div class="w-embed"><span class="loader"></span></div><div class="w-embed"><style>/* Loading Spinner */.loader { display: block; position: relative; height: 32px; width: 140px; border: 3px solid #fff; border-radius: 20px; box-sizing: border-box; animation: balancing 2s linear infinite alternate; transform-origin: center center;} .loader:before { content: ''; position: absolute; left: 0; bottom: 0; width: 52px; height: 26px; border-radius: 20px; background: #FF911F; animation: ballbns 2s linear infinite alternate;} @keyframes ballbns { 0% { left: 0; transform: translateX(0%); } 100% { left: 100%; transform: translateX(-100%); }} @keyframes balancing { 0% { transform: rotate(-25deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(25deg); }} </style></div></div><div class="embed-js-loading-spinner w-embed w-script"><script> // Show the loading wrapper by defaultdocument.querySelector(".loading-wrapper").style.display = "flex" </script></div><div data-animation="default" data-collapse="medium" data-duration="400" data-easing="ease" data-easing2="ease" role="banner" class="plain-navbar w-nav"><div class="plain-navbar-container w-container"><a href="/" aria-current="page" class="plain-navbar-brand w-nav-brand w--current"><img src="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/653a0cc1720f1634ea7c29e9_Caribou-Logo.svg" loading="lazy" alt="" class="plain-navbar-img"/></a><nav role="navigation" class="plain-nav-menu w-nav-menu"><div data-hover="false" data-delay="0" class="nav-dropdown w-dropdown"><div class="nav-dropdown-toggle w-dropdown-toggle"><div class="nav-dropdown-toggle-text">旅遊產品</div><div class="nav-dropdown-toggle-icon"></div></div><nav class="nav-dropdown-list w-dropdown-list"><div class="nav-menu-collection-wrapper w-dyn-list"><div role="list" class="nav-menu-collection-list w-dyn-items"><div role="listitem" class="nav-menu-collection-item w-dyn-item"><a href="#" class="nav-menu-link w-dropdown-link">所有產品</a><div class="nav-menu-hidden-link">/tour-products</div></div><div role="listitem" class="nav-menu-collection-item w-dyn-item"><a href="#" class="nav-menu-link w-dropdown-link">郵輪假期</a><div class="nav-menu-hidden-link">/tour-products?searchKeyword=郵輪</div></div><div role="listitem" class="nav-menu-collection-item w-dyn-item"><a href="#" class="nav-menu-link w-dropdown-link">精選酒店</a><div class="nav-menu-hidden-link">/tour-products?searchKeyword=酒店</div></div><div role="listitem" class="nav-menu-collection-item w-dyn-item"><a href="#" class="nav-menu-link w-dropdown-link">深度遊</a><div class="nav-menu-hidden-link">/tour-products?supplier=GLO%20Travel#</div></div><div role="listitem" class="nav-menu-collection-item w-dyn-item"><a href="#" class="nav-menu-link w-dropdown-link">包車遊</a><div class="nav-menu-hidden-link">/tour-products?searchKeyword=包車遊</div></div><div role="listitem" class="nav-menu-collection-item w-dyn-item"><a href="#" class="nav-menu-link w-dropdown-link">旅遊套票</a><div class="nav-menu-hidden-link">/tour-products?searchKeyword=旅遊套票</div></div></div></div></nav></div><a href="/advisors" class="nav-link w-nav-link">旅遊顧問</a><a href="/about-us" class="nav-link w-nav-link">關於我們</a><a href="#" class="nav-lang-dropdown-icon-wrapper w-inline-block"><div class="nav-lang-dropdown-icon w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path fill-rule="evenodd" clip-rule="evenodd" d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" stroke="#101820" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> <path d="M2 12H22" stroke="#101820" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> <path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C14.5013 4.73835 15.9228 8.29203 16 12C15.9228 15.708 14.5013 19.2616 12 22C9.49872 19.2616 8.07725 15.708 8 12C8.07725 8.29203 9.49872 4.73835 12 2V2Z" stroke="#101820" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></div><div class="locale-css w-embed"><style> .nav-lang-dropdown-icon-wrapper:hover .nav-lang-dropdown-icon path { stroke:white;} </style></div></a><a id="navbar-cta-button" href="/join-us" class="btn btn-primary btn-cta w-inline-block"><div>成為旅遊顧問</div></a><div class="mobile-menu-language-currency-wrapper"><a id="mobile-menu-btn-language" href="#" class="mobile-menu-icon-btn w-inline-block"><img src="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/64d1f8d7c8eb554aa7393f42_globe.svg" loading="lazy" alt="" class="mobile-menu-icon-btn-img"/><div class="mobile-menu-icon-btn-text mobile-menu-btn-text-language">繁體中文</div></a><a id="mobile-menu-btn-currency" href="#" class="mobile-menu-icon-btn w-inline-block"><div class="mobile-menu-icon-btn-img-text">$</div><div class="mobile-menu-icon-btn-text mobile-menu-btn-text-currency">HKD</div></a></div></nav><div class="navbar-menu-button plain-navbar-menu-button w-nav-button"><div class="w-icon-nav-menu"></div></div></div></div><div class="hero-section"><section class="section hero-section-slide-section"><div class="w-layout-blockcontainer container hp-container w-container"><div class="hero-section-content-wrapper"><div class="hero-section-content-left"><div class="hero-section-heading-wrapper"><h1 class="hero-section-heading">一對一旅遊預訂助手<br/>助你輕鬆預訂</h1><h1 class="hero-section-heading hero-section-heading-highlight">郵輪假期</h1><h1 class="hero-section-heading"> </h1></div><p class="hero-section-description">Caribou Travel 預訂助手讓客人透過單一對口,輕鬆接通世界各地旅遊資源,隨時隨地查詢及預訂旅程所需的相關項目,助你輕鬆安排每一個夢想旅程。<br/><strong>少一點煩惱,多一點感受</strong></p><a href="/tour-products" class="btn btn-primary w-button">發現更多旅遊體驗</a></div><div class="hero-section-content-right"><img src="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/663c82ee0cbf062b21a0eb90_Cruise%20Key%20Visual%20-%20Whatsapp.webp" loading="lazy" sizes="(max-width: 767px) 100vw, (max-width: 991px) 727.984375px, 939.984375px" srcset="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/663c82ee0cbf062b21a0eb90_Cruise%20Key%20Visual%20-%20Whatsapp-p-500.webp 500w, https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/663c82ee0cbf062b21a0eb90_Cruise%20Key%20Visual%20-%20Whatsapp-p-800.webp 800w, https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/663c82ee0cbf062b21a0eb90_Cruise%20Key%20Visual%20-%20Whatsapp-p-1080.webp 1080w, https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/663c82ee0cbf062b21a0eb90_Cruise%20Key%20Visual%20-%20Whatsapp.webp 1587w" alt="" class="hero-section-key-visual"/></div></div></div></section><div class="hero-section-slider-wrapper w-dyn-list"><div role="list" class="hero-section-slider swiper-wrapper w-dyn-items"><div slide-img-url="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/663c82ee0cbf062b21a0eb90_Cruise%20Key%20Visual%20-%20Whatsapp.webp" slide-name="郵輪假期" role="listitem" class="hero-section-slide swiper-slide w-dyn-item"><div class="hero-section-bg-img-cover"></div><div style="background-image:url("https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/663c97b73084ff499bf716e2_Cruise%20Desktop%20Image.jpg")" class="hero-section-bg-img-desktop"></div><div style="background-image:url("https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/663c97bcf17b22d17c1f2882_Cruise%20Mobile%20Image.jpg")" class="hero-section-bg-img-mobile"></div></div><div slide-img-url="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/663c82ec4f1c78bd3da4fbb8_Hotel%20Key%20Visual%20-%20Whatsapp.webp" slide-name="精品酒店" role="listitem" class="hero-section-slide swiper-slide w-dyn-item"><div class="hero-section-bg-img-cover"></div><div style="background-image:url("https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/663c97c80c82f2b76795bca7_Hotel%20Desktop%20Image.jpg")" class="hero-section-bg-img-desktop"></div><div style="background-image:url("https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/663c97cf6342ecf62b719f7a_Hotel%20Mobile%20Image.jpg")" class="hero-section-bg-img-mobile"></div></div></div></div><div class="hero-slider-control"><div class="hero-slider-previous"></div><div class="hero-slider-next"></div><div class="hero-slider-pagination"><div class="swiper-bullet-active"></div><div class="swiper-bullet"></div></div></div></div><section class="section homepage-section"><div class="w-layout-blockcontainer container hp-container w-container"><h2 class="section-heading">郵輪假期</h2><div class="hp-product-wrapper w-dyn-list"><div role="list" class="hp-product-list w-dyn-items"><div role="listitem" class="hp-product-item w-dyn-item"><a href="/tour-products/632" class="tp-listing-item w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/66c1b47c234911f96bd1a1c5_melaka%20(2).jpg")" class="tp-listing-item-img"></div><div class="tp-listing-item-content-wrapper hp-tp-listing-item"><h2 class="tp-listing-item-name">名勝世界郵輪|雲頂夢號 - 2晚 馬六甲(吉隆坡)海上遊</h2><div class="tp-listing-item-details-wrapper"><div class="tp-listing-item-price-wrapper"><div class="tp-listing-item-discounted-price-wrapper"><div class="tour-product-price">1240</div><div class="tour-product-price-supporting">/人</div></div><div class="tour-product-original-price w-dyn-bind-empty"></div></div><div class="tp-listing-item-tour-types-wrapper"><div class="tour-types-text">郵輪, 新加坡, 吉隆坡</div></div></div></div></a></div><div role="listitem" class="hp-product-item w-dyn-item"><a href="/tour-products/203" class="tp-listing-item w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/65aff514bacb5c6b0cecc21d_1%20(6).jpg")" class="tp-listing-item-img"></div><div class="tp-listing-item-content-wrapper hp-tp-listing-item"><h2 class="tp-listing-item-name">皇家加勒比國際遊輪 | 海洋光譜號 - 5 晚航遊日本(沖繩、石垣)</h2><div class="tp-listing-item-details-wrapper"><div class="tp-listing-item-price-wrapper"><div class="tp-listing-item-discounted-price-wrapper"><div class="tour-product-price">2619</div><div class="tour-product-price-supporting">/人</div></div><div class="tour-product-original-price w-dyn-bind-empty"></div></div><div class="tp-listing-item-tour-types-wrapper"><div class="tour-types-text">郵輪, 日本 </div></div></div></div></a></div><div role="listitem" class="hp-product-item w-dyn-item"><a href="/tour-products/207" class="tp-listing-item w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/65aff72358f7ce687d7fa1de_1%20(7).jpg")" class="tp-listing-item-img"></div><div class="tp-listing-item-content-wrapper hp-tp-listing-item"><h2 class="tp-listing-item-name">皇家加勒比國際遊輪 | 海洋光譜號 - 9 晚航遊日本九州 【聖誕精選】</h2><div class="tp-listing-item-details-wrapper"><div class="tp-listing-item-price-wrapper"><div class="tp-listing-item-discounted-price-wrapper"><div class="tour-product-price">10779</div><div class="tour-product-price-supporting">/人</div></div><div class="tour-product-original-price w-dyn-bind-empty"></div></div><div class="tp-listing-item-tour-types-wrapper"><div class="tour-types-text"> 郵輪, 日本, 聖誕節精選</div></div></div></div></a></div><div role="listitem" class="hp-product-item w-dyn-item"><a href="/tour-products/620" class="tp-listing-item w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/6605087e2f72a3d6c9550479_2.jpg")" class="tp-listing-item-img"></div><div class="tp-listing-item-content-wrapper hp-tp-listing-item"><h2 class="tp-listing-item-name">地中海郵輪|歐羅巴號 - 7 晚西班牙、法國、意大利、馬爾他 (2025年1-3月航次)</h2><div class="tp-listing-item-details-wrapper"><div class="tp-listing-item-price-wrapper"><div class="tp-listing-item-discounted-price-wrapper"><div class="tour-product-price">3498</div><div class="tour-product-price-supporting">/人</div></div><div class="tour-product-original-price w-dyn-bind-empty"></div></div><div class="tp-listing-item-tour-types-wrapper"><div class="tour-types-text">郵輪, 西班牙, 法國, 意大利, 馬爾他</div></div></div></div></a></div></div></div><a href="/tour-products" class="btn btn-primary w-button">查看更多</a></div><div id="themed-travel-guides" class="w-layout-blockcontainer container hp-container w-container"><h2 class="section-heading">各種主題旅遊攻略</h2><div class="hp-theme-wrapper w-dyn-list"><div role="list" class="hp-theme-list w-dyn-items"><div role="listitem" class="hp-theme-item w-dyn-item"><a href="/product-theme/esim-iphone-17-iphone-air-hong-kong-support" class="theme-page-link-wrapper w-inline-block"><img src="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/68c11926c76c96f8c8562e0c_iphone-17-hk-esim-optimized.jpg" loading="lazy" alt="" sizes="(max-width: 767px) 100vw, (max-width: 991px) 726.625px, 939.15625px" srcset="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/68c11926c76c96f8c8562e0c_iphone-17-hk-esim-optimized-p-500.jpg 500w, https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/68c11926c76c96f8c8562e0c_iphone-17-hk-esim-optimized-p-800.jpg 800w, https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/68c11926c76c96f8c8562e0c_iphone-17-hk-esim-optimized-p-1080.jpg 1080w, https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/68c11926c76c96f8c8562e0c_iphone-17-hk-esim-optimized.jpg 1200w" class="theme-page-link-img"/><div class="theme-page-content-wrapper"><h3 class="theme-page-title">【eSIM來了】iPhone 17 香港版確認支援 eSIM,旅行上網新選擇</h3></div></a></div><div role="listitem" class="hp-theme-item w-dyn-item"><a href="/product-theme/disney-cruise-disney-adventure" class="theme-page-link-wrapper w-inline-block"><img src="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/67405754cdd40c3812d0f141_OG-template%20%20(1).jpg" loading="lazy" alt="" sizes="(max-width: 767px) 100vw, (max-width: 991px) 726.625px, 939.15625px" srcset="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/67405754cdd40c3812d0f141_OG-template%20%20(1)-p-500.jpg 500w, https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/67405754cdd40c3812d0f141_OG-template%20%20(1)-p-800.jpg 800w, https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/67405754cdd40c3812d0f141_OG-template%20%20(1)-p-1080.jpg 1080w, https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/67405754cdd40c3812d0f141_OG-template%20%20(1).jpg 1200w" class="theme-page-link-img"/><div class="theme-page-content-wrapper"><h3 class="theme-page-title">【迪士尼郵輪】迪士尼探險號2025年新加坡啟航</h3></div></a></div><div role="listitem" class="hp-theme-item w-dyn-item"><a href="/product-theme/latest-cruise-promotion" class="theme-page-link-wrapper w-inline-block"><img src="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/670149745f6d846c260f2650_OG-template%20.png" loading="lazy" alt="" sizes="(max-width: 767px) 100vw, (max-width: 991px) 726.625px, 939.15625px" srcset="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/670149745f6d846c260f2650_OG-template%20-p-500.png 500w, https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/670149745f6d846c260f2650_OG-template%20-p-800.png 800w, https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/670149745f6d846c260f2650_OG-template%20-p-1080.png 1080w, https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/670149745f6d846c260f2650_OG-template%20.png 1200w" class="theme-page-link-img"/><div class="theme-page-content-wrapper"><h3 class="theme-page-title"> 【最新郵輪優惠】精選各地航程 超值優惠大合集</h3></div></a></div><div role="listitem" class="hp-theme-item w-dyn-item"><a href="/product-theme/cruise-tips-how-to-choose-cruise" class="theme-page-link-wrapper w-inline-block"><img src="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/66227b1b8a9b050b62d827ac_cruise.jpg" loading="lazy" alt="" sizes="(max-width: 767px) 100vw, (max-width: 991px) 726.625px, 939.15625px" srcset="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/66227b1b8a9b050b62d827ac_cruise-p-500.jpg 500w, https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/66227b1b8a9b050b62d827ac_cruise-p-800.jpg 800w, https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/66227b1b8a9b050b62d827ac_cruise-p-1080.jpg 1080w, https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/66227b1b8a9b050b62d827ac_cruise.jpg 1200w" class="theme-page-link-img"/><div class="theme-page-content-wrapper"><h3 class="theme-page-title">【精明旅遊小貼士】郵輪旅遊絕不能錯過的 7 大挑選秘訣</h3></div></a></div></div></div><a href="/product-themes/all" class="btn btn-primary w-button">查看更多</a></div></section><section id="seamless-replace" class="section bg-orange homepage-section"><div class="w-layout-blockcontainer container hp-container w-container"><div class="section-title"><div class="section-title-tag">旅遊達人</div><h2 class="section-title-heading">為您帶來有溫度、有深度旅遊體驗的旅遊達人</h2></div><div id="test" class="home-expert-wrapper w-dyn-list"><div role="list" class="home-expert-collection-list w-dyn-items"><div role="listitem" class="home-expert-collection-item w-dyn-item"><div style="background-image:url("https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/650705db62edbc114404d37a_CARIBOU%20Profile%20Pic.png")" class="expert-profile-image"></div><div class="expert-profile-info-wrapper home-expert-profile-info-wrapper"><div class="expert-name-wrapper"><h1 class="expert-name-heading">oija</h1><img src="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/64d1f8d7c8eb554aa7393f63_privacy-guard-success---filled(24x24)%401x%201.svg" loading="lazy" alt="" class="expert-badge-icon"/></div><div class="expert-number-wrapper"><div class="expert-number-item"><div class="expert-number-data">50</div><div class="expert-number-description">地點</div></div><div class="expert-number-item w-condition-invisible"><div class="expert-number-data w-dyn-bind-empty"></div><div class="expert-number-description">景點</div></div><div class="expert-number-item"><div class="expert-number-data">5</div><div class="expert-number-description">活動</div></div></div><div class="expert-activities-wrapper"><div class="activities-collection-list-wrapper w-dyn-list"><div role="list" class="activities-collection-list home-expert-activities-collection-list w-dyn-items"><div role="listitem" class="activities-collection-item w-dyn-item"><div>自駕遊</div></div><div role="listitem" class="activities-collection-item w-dyn-item"><div>自然景觀</div></div><div role="listitem" class="activities-collection-item w-dyn-item"><div>歷史</div></div><div role="listitem" class="activities-collection-item w-dyn-item"><div>藝術</div></div><div role="listitem" class="activities-collection-item w-dyn-item"><div>建築</div></div></div></div></div></div><a href="/expert/oija" class="home-expert-link w-inline-block"></a></div><div role="listitem" class="home-expert-collection-item w-dyn-item"><div style="background-image:url("https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/6506b2d0e3a78cfe0d51e41a_emily_profile.png")" class="expert-profile-image"></div><div class="expert-profile-info-wrapper home-expert-profile-info-wrapper"><div class="expert-name-wrapper"><h1 class="expert-name-heading">賞遊世界60國的Emily</h1><img src="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/64d1f8d7c8eb554aa7393f63_privacy-guard-success---filled(24x24)%401x%201.svg" loading="lazy" alt="" class="expert-badge-icon"/></div><div class="expert-number-wrapper"><div class="expert-number-item"><div class="expert-number-data">220</div><div class="expert-number-description">地點</div></div><div class="expert-number-item w-condition-invisible"><div class="expert-number-data w-dyn-bind-empty"></div><div class="expert-number-description">景點</div></div><div class="expert-number-item"><div class="expert-number-data">5</div><div class="expert-number-description">活動</div></div></div><div class="expert-activities-wrapper"><div class="activities-collection-list-wrapper w-dyn-list"><div role="list" class="activities-collection-list home-expert-activities-collection-list w-dyn-items"><div role="listitem" class="activities-collection-item w-dyn-item"><div>藝術</div></div><div role="listitem" class="activities-collection-item w-dyn-item"><div>冥想</div></div><div role="listitem" class="activities-collection-item w-dyn-item"><div>健康</div></div><div role="listitem" class="activities-collection-item w-dyn-item"><div>行山</div></div><div role="listitem" class="activities-collection-item w-dyn-item"><div>自然景觀</div></div></div></div></div></div><a href="/expert/emily-shake-to-win" class="home-expert-link w-inline-block"></a></div><div role="listitem" class="home-expert-collection-item w-dyn-item"><div style="background-image:url("https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f39/65970c8cb6ad289e89cae6ee_public.jpeg")" class="expert-profile-image"></div><div class="expert-profile-info-wrapper home-expert-profile-info-wrapper"><div class="expert-name-wrapper"><h1 class="expert-name-heading">Lionel</h1><img src="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/64d1f8d7c8eb554aa7393f63_privacy-guard-success---filled(24x24)%401x%201.svg" loading="lazy" alt="" class="expert-badge-icon"/></div><div class="expert-number-wrapper"><div class="expert-number-item"><div class="expert-number-data">7</div><div class="expert-number-description">地點</div></div><div class="expert-number-item"><div class="expert-number-data">21</div><div class="expert-number-description">景點</div></div><div class="expert-number-item"><div class="expert-number-data">3</div><div class="expert-number-description">活動</div></div></div><div class="expert-activities-wrapper"><div class="activities-collection-list-wrapper w-dyn-list"><div role="list" class="activities-collection-list home-expert-activities-collection-list w-dyn-items"><div role="listitem" class="activities-collection-item w-dyn-item"><div>單板滑雪</div></div><div role="listitem" class="activities-collection-item w-dyn-item"><div>藝術</div></div><div role="listitem" class="activities-collection-item w-dyn-item"><div>自駕遊</div></div><div role="listitem" class="activities-collection-item w-dyn-item"><div>歷史</div></div><div role="listitem" class="activities-collection-item w-dyn-item"><div>溫泉</div></div></div></div></div></div><a href="/expert/lionel" class="home-expert-link w-inline-block"></a></div></div></div><a href="/advisors" class="btn btn-primary w-button">查看更多</a></div><div class="w-layout-blockcontainer container hp-container w-container"><div class="hp-sub-wrapper"><h2 class="hp-sub-heading">追蹤最新資訊及優惠</h2><p class="hp-sub-paragraph">立即追蹤最新旅遊產品資訊及推廣優惠</p><a id="navbar-cta-button" href="https://whatsapp.com/channel/0029VaBPZ8cGpLHYCCURp10F" target="_blank" class="btn btn-primary btn-cta btn-subscribe w-inline-block"><img src="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/65e6b63063727f0971340f08_hotel-link-whatsapp.svg" loading="lazy" alt=""/><div>立即追蹤</div></a></div></div></section><div class="embed-product-price w-embed w-script"><script> // Function to format number as currency without decimal placesasync function formatCurrencyWithConversion(number) { const currencyCode = getCookie("caribou_currency"); // Assuming getCookie is a function defined elsewhere // Mapping of currency codes to their symbols and locale const currencyDetails = { HKD: { symbol: "HK$", locale: "en-HK" }, TWD: { symbol: "NT$", locale: "en-TW" }, SGD: { symbol: "S$", locale: "en-SG" }, USD: { symbol: "US$", locale: "en-US" }, }; // Fallback details in case the currency code is not recognized const fallbackDetails = { symbol: "$", locale: "en-US" }; // Retrieve the currency details or use fallback const { symbol, locale } = currencyDetails[currencyCode] || fallbackDetails; try { // Fetch currency conversion rates from the API const response = await fetch( "https://advisor.caribou.travel/api/currency-conversion" ); const result = await response.json(); // Get the conversion rate based on the currencyCode const conversionRate = result.data[currencyCode.toLowerCase()] || 1; // Default to 1 if no found // Calculate the converted amount const convertedAmount = number * conversionRate; // Use Intl.NumberFormat to format the converted amount with the correct locale and currency symbol const formattedConvertedAmount = new Intl.NumberFormat(locale, { minimumFractionDigits: 0, maximumFractionDigits: 0, }).format(convertedAmount); // Construct the formatted currency string const formattedCurrency = `${symbol}${formattedConvertedAmount}`; return formattedCurrency; } catch (error) { console.error("Error fetching currency conversion: ", error); // Fallback to formatting without conversion in case of error const formattedNumber = new Intl.NumberFormat(locale, { minimumFractionDigits: 0, maximumFractionDigits: 0, }).format(number); const formattedCurrency = `${symbol}${formattedNumber}`; return formattedCurrency; }} async function updateTourProductPrice() { // Convert and Format the discounted price const tourProductPriceElements = document.querySelectorAll(".tour-product-price") tourProductPriceElements.forEach(async (element) => { const numericValue = parseFloat(element.textContent); try { const formattedAmount = await formatCurrencyWithConversion(numericValue) + "+"; // Update the value of each "tour-product-price" element element.textContent = formattedAmount; } catch (error) { console.error('Error formatting currency: ', error) } }); // Convert and Format the original price const tourProductOriginalPriceElements = document.querySelectorAll(".tour-product-original-price") tourProductOriginalPriceElements.forEach(async (element) => { const numericValue = parseFloat(element.textContent) try { const formattedAmount = await formatCurrencyWithConversion(numericValue) + "+"; // Update the value of each "tour-product-price" element element.textContent = formattedAmount; } catch (error) { console.error('Error formatting currency: ', error) } })} </script></div><div class="embed-product-hashtags w-embed w-script"><script> // Function to process each advisor-tour-products-blockfunction processTourProductsBlocks() { // Find all blocks with class 'advisor-tour-products-block' const blocks = document.querySelectorAll('.advisor-tour-products-block'); blocks.forEach(block => { // Extract the value from 'tour-types-text' const tourTypesTextElement = block.querySelector('.tour-types-text'); if (tourTypesTextElement) { const tourTypesText = tourTypesTextElement.textContent.trim(); // Split into a comma-separated list const tourTypesList = tourTypesText.split(',').map(text => `#${text.trim()}`); // Find the 'tour-types-wrapper' element const tourTypesWrapper = block.querySelector('.tour-types-wrapper'); if (tourTypesWrapper) { // Clear existing content tourTypesWrapper.innerHTML = ''; // Append each item from the list tourTypesList.forEach(tourType => { const span = document.createElement('span'); span.textContent = tourType; tourTypesWrapper.appendChild(span); }); } } });} </script></div><div class="embed-js w-embed w-script"><script> function initHeroSectionSwiper() { // Hero Section Slider const heroSectionSlider = new Swiper(".hero-section-slider-wrapper", { loop: true, speed: 700, slidesPerView: 1, // Autoplay autoplay: { delay: 5000, }, // Navigation Arrows navigation: { nextEl: ".hero-slider-next", prevEl: ".hero-slider-previous", }, // Pagination: pagination: { el: ".hero-slider-pagination", bulletActiveClass: "swiper-bullet-active", bulletClass: "swiper-bullet", bulletElement: "button", clickable: true, }, }); // Function to update heading highlight and key visual based on the current slide function updateSliderContent(slideIndex){ const slides = heroSectionSlider.slides const currentSlide = slides[slideIndex] const slideName = currentSlide.getAttribute('slide-name') const slideImgUrl = currentSlide.getAttribute('slide-img-url') // Update heading highlight with slide name const highlightText = document.querySelector(".hero-section-heading-highlight") if (highlightText){ // Clear existing content highlightText.textContent = ''; // Determine the typing speed based on website language let typeSpeed = 200; // Default typing speed // Check website language and adjust typing speed accordingly if (websiteLanguage === "zh-Hant-HK") { typeSpeed = 200; // Typing speed for Traditional Chinese } else if (websiteLanguage === "en") { typeSpeed = 100; // Typing speed for English } // Initialize Typed.js for typing animation const typed = new Typed(highlightText, { strings: [slideName], typeSpeed: typeSpeed, // Set typing speed based on language showCursor: false, // Hide the cursor }); } // Create a new key visual element for the slide image const keyVisualContainer = document.querySelector('.hero-section-content-right'); if (keyVisualContainer) { // Clear existing content keyVisualContainer.innerHTML = ''; // Create a new <img> element const newKeyVisual = document.createElement('img'); newKeyVisual.src = slideImgUrl; newKeyVisual.classList.add("hero-section-key-visual") newKeyVisual.alt = ''; // Set alt text as needed // Append the new <img> element to the container keyVisualContainer.appendChild(newKeyVisual); } } // Initialize updateSliderContent(heroSectionSlider.activeIndex); heroSectionSlider.on("realIndexChange", function() { updateSliderContent(heroSectionSlider.activeIndex); });} function initPromotionSlider() { // Promotional Slider const promotionalSlider = new Swiper(".hp-promotion-wrapper", { loop: true, speed: 700, slidesPerView: 1, spaceBetween: 16, // Breakpoints breakpoints: { 479: { slidesPerView: 2, }, 991: { slidesPerView: 3, }, }, // Navigation Arrows navigation: { nextEl: ".hp-promotion-control .hp-swiper-next", prevEl: ".hp-promotion-control .hp-swiper-previous", }, // Pagination: pagination: { el: ".hp-promotion-control .hp-swiper-pagination", bulletActiveClass: "hp-swiper-bullet-active", bulletClass: "hp-swiper-bullet", bulletElement: "button", clickable: true, }, });} function updatePromotionLink() { // Get all anchor elements within the promotion-wrapper const anchorElements = document.querySelectorAll(".hp-promotion-wrapper a"); // Iterate through each anchor element anchorElements.forEach((anchor) => { // Get the value of the href attribute const href = anchor.getAttribute("href"); // Check if the href is not a relative path if (href && (href.startsWith('http') || href.startsWith('//'))) { // Change the href to open in a new tab anchor.setAttribute('target', '_blank'); } });} $(document).ready(async function () { try { initHeroSectionSwiper(); // initPromotionSlider(); // updatePromotionLink() // Hnadle the pricing await updateTourProductPrice() // Handle the hashtags processTourProductsBlocks(); // Hide theme section for english if (websiteLanguage == "en") { document.querySelector("#themed-travel-guides").style.display = "none" } document.querySelector(".loading-wrapper").style.display = "none" } catch (error){ console.error('Error:', error); document.querySelector(".loading-wrapper").style.display = "none" } }); </script></div><div class="embed-css w-embed"><style> .hero-slider-previous,.hero-slider-next { top: calc(50% - 24px);} @media screen and (max-width: 991px) { .hero-slider-previous, .hero-slider-next { top: auto; bottom: 8px } } .hp-swiper-pagination { width: auto !important;} .swiper-wrapper { margin: 0px !important;} /* Loading Spinner */.loader { display: block; position: relative; height: 32px; width: 140px; border: 3px solid #fff; border-radius: 20px; box-sizing: border-box; animation: balancing 2s linear infinite alternate; transform-origin: center center;} .loader:before { content: ''; position: absolute; left: 0; bottom: 0; width: 52px; height: 26px; border-radius: 20px; background: #FF911F; animation: ballbns 2s linear infinite alternate;} @keyframes ballbns { 0% { left: 0; transform: translateX(0%); } 100% { left: 100%; transform: translateX(-100%); }} @keyframes balancing { 0% { transform: rotate(-25deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(25deg); }} </style></div><section class="section section-footer"><div class="footer-line"></div><div class="footer-wrapper"><div id="footer-item-themePage" class="footer-item"><div class="footer-item-header">主題</div><div class="footer-link-wrapper"><div class="nav-menu-collection-wrapper w-dyn-list"><div role="list" class="nav-menu-collection-list footer-link-collection w-dyn-items"><div role="listitem" class="nav-menu-collection-item w-dyn-item"><a href="/product-theme/resorts-world-one-cruise" class="footer-link">所有主題</a><div class="nav-menu-hidden-link">/product-themes/all</div></div><div role="listitem" class="nav-menu-collection-item w-dyn-item"><a href="/product-theme/resorts-world-one-cruise" class="footer-link">酒店</a><div class="nav-menu-hidden-link">/product-themes/hotels</div></div><div role="listitem" class="nav-menu-collection-item w-dyn-item"><a href="/product-theme/resorts-world-one-cruise" class="footer-link">郵輪</a><div class="nav-menu-hidden-link">/product-themes/cruises</div></div><div role="listitem" class="nav-menu-collection-item w-dyn-item"><a href="/product-theme/resorts-world-one-cruise" class="footer-link">其他</a><div class="nav-menu-hidden-link">/product-themes/others</div></div></div></div></div></div><div class="footer-item"><div class="footer-item-header">旅遊產品</div><div class="footer-link-wrapper"><div class="nav-menu-collection-wrapper w-dyn-list"><div role="list" class="nav-menu-collection-list footer-link-collection w-dyn-items"><div role="listitem" class="nav-menu-collection-item w-dyn-item"><a href="/product-theme/resorts-world-one-cruise" class="footer-link">所有產品</a><div class="nav-menu-hidden-link">/tour-products</div></div><div role="listitem" class="nav-menu-collection-item w-dyn-item"><a href="/product-theme/resorts-world-one-cruise" class="footer-link">郵輪假期</a><div class="nav-menu-hidden-link">/tour-products?searchKeyword=郵輪</div></div><div role="listitem" class="nav-menu-collection-item w-dyn-item"><a href="/product-theme/resorts-world-one-cruise" class="footer-link">精選酒店</a><div class="nav-menu-hidden-link">/tour-products?searchKeyword=酒店</div></div><div role="listitem" class="nav-menu-collection-item w-dyn-item"><a href="/product-theme/resorts-world-one-cruise" class="footer-link">深度遊</a><div class="nav-menu-hidden-link">/tour-products?supplier=GLO%20Travel#</div></div><div role="listitem" class="nav-menu-collection-item w-dyn-item"><a href="/product-theme/resorts-world-one-cruise" class="footer-link">包車遊</a><div class="nav-menu-hidden-link">/tour-products?searchKeyword=包車遊</div></div><div role="listitem" class="nav-menu-collection-item w-dyn-item"><a href="/product-theme/resorts-world-one-cruise" class="footer-link">旅遊套票</a><div class="nav-menu-hidden-link">/tour-products?searchKeyword=旅遊套票</div></div></div></div></div></div><div class="footer-item"><div class="footer-item-header">公司</div><div class="footer-link-wrapper"><a href="/about-us" class="footer-link">關於我們</a><a href="/join-us" class="footer-link">成為旅遊顧問</a><a href="/about-us#contact-us" class="footer-link">聯絡我們</a><a href="/terms-and-conditions" class="footer-link">條款及細則</a><a href="/privacy-policy" class="footer-link">私隱政策</a></div></div></div><div class="footer-liccense-wrapper"><div class="footer-license-item-wrapper"><div class="footer-license-item-text-supportive">HK Travel Agent License: </div><div class="footer-license-item-text-primary">Hip Holiday Ltd 353151</div></div><div class="footer-license-item-wrapper"><div class="footer-license-item-text-supportive">SG Travel Agent License:</div><div class="footer-license-item-text-primary">DISCOVER THE WORLD MARKETING PTE LTD TA00687</div></div></div><div class="footer-bottom-wrapper"><div class="footer-copyright">© Caribou Technology Limited. All Rights Reserved.</div><div class="footer-bottom-right-wrapper"><div class="footer-language-currency-wrapper"><a id="footer-btn-language" href="#" class="footer-icon-btn w-inline-block"><img src="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/64d1f8d7c8eb554aa7393f42_globe.svg" loading="lazy" alt="" class="footer-icon-btn-img"/><div class="footer-icon-btn-text footer-btn-text-language">繁體中文</div></a><a id="footer-btn-currency" href="#" class="footer-icon-btn w-inline-block"><div class="footer-icon-btn-img-text">$</div><div class="footer-icon-btn-text footer-btn-text-currency">HKD</div></a></div><div class="footer-social-wrapper"><a href="https://www.facebook.com/enjoycaribou" target="_blank" class="footer-social-link w-inline-block"><img src="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/65e6d3a346de8ad47b23af7d_Facebook.svg" loading="lazy" alt="" class="footer-social-link-img"/></a><a href="https://www.instagram.com/enjoycaribou/" target="_blank" class="footer-social-link w-inline-block"><img src="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/65e6d3a30d65b5d2855d4ff7_Instagram.svg" loading="lazy" alt="" class="footer-social-link-img"/></a></div></div></div><div class="embed-utility-function w-embed w-script"><script> // Function to get a cookiefunction getCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) { var cookieValue = c.substring(nameEQ.length, c.length); return decodeURIComponent(cookieValue); } } return null;} </script></div><div class="language-popup-container"><div id="popup-language-currency" class="language-popup-wrapper"><div class="language-popup"><div class="language-popup-header"><a href="#" class="language-popup-close-btn w-inline-block"></a></div><div data-current="Tab 1" data-easing="ease" data-duration-in="300" data-duration-out="100" class="language-popup-tabs w-tabs"><div class="language-popup-tabs-menu w-tab-menu"><a data-w-tab="Tab 1" class="language-popup-tab-link w-inline-block w-tab-link w--current"><div>語言</div></a><a data-w-tab="Tab 2" class="language-popup-tab-link w-inline-block w-tab-link"><div>貨幣</div></a></div><div class="language-popup-tabs-content w-tab-content"><div data-w-tab="Tab 1" class="language-popup-tab-pane w-tab-pane w--tab-active"><div class="language-popup-tab-pane-wrapper"><div class="language-popup-header-text">選擇語言</div><div class="language-popup-locales-wrapper w-locales-list"><div role="list" class="language-popup-locales-list w-locales-items"><div role="listitem" class="language-popup-locale w-locales-item"><a hreflang="zh-HK" href="/" aria-current="page" class="language-popup-link w--current">繁體中文</a></div><div role="listitem" class="language-popup-locale w-locales-item"><a hreflang="en" href="/en" class="language-popup-link">English</a></div></div></div></div></div><div data-w-tab="Tab 2" class="language-popup-tab-pane w-tab-pane"><div class="language-popup-tab-pane-wrapper"><div class="language-popup-header-text">選擇貨幣</div><div class="language-popup-currency-wrapper"><div currency="HKD" class="language-popup-link">港幣 HKD - $</div><div currency="SGD" class="language-popup-link">新加坡幣 SGD - $</div><div currency="USD" class="language-popup-link">美元 USD - $</div></div></div></div></div></div></div></div><div id="popup-language" class="language-popup-wrapper"><div class="language-popup"><div class="language-popup-header"><a href="#" class="language-popup-close-btn w-inline-block"></a></div><div class="language-popup-tab-pane-wrapper"><div class="language-popup-header-text">選擇語言</div><div class="language-popup-locales-wrapper w-locales-list"><div role="list" class="language-popup-locales-list w-locales-items"><div role="listitem" class="language-popup-locale w-locales-item"><a hreflang="zh-HK" href="/" aria-current="page" class="language-popup-link w--current">繁體中文</a></div><div role="listitem" class="language-popup-locale w-locales-item"><a hreflang="en" href="/en" class="language-popup-link">English</a></div></div></div></div></div></div><div id="popup-currency" class="language-popup-wrapper"><div class="language-popup"><div class="language-popup-header"><a href="#" class="language-popup-close-btn w-inline-block"></a></div><div class="language-popup-tab-pane-wrapper"><div class="language-popup-header-text">選擇貨幣</div><div class="language-popup-currency-wrapper"><div currency="HKD" class="language-popup-link">港幣 HKD - $</div><div currency="SGD" class="language-popup-link">新加坡幣 SGD - $</div><div currency="USD" class="language-popup-link">美元 USD - $</div></div></div></div></div><div class="embed-language-currency w-embed w-script"><script> // Function to manage the active class and set cookiefunction setActiveCurrency(currencyCode, updateUrl = true ) { // Remove active class from all currency elements document.querySelectorAll('.language-popup-link').forEach(function(element) { element.classList.remove('active'); }); // Add active class to the selected currency document.querySelectorAll(`.language-popup-link[currency="${currencyCode}"]`).forEach(function(element) { element.classList.add('active'); }); // Set the currency in a cookie setCookie('caribou_currency',currencyCode, 30); // Expires in 7 days // Update the footer btn text const footerBtnTextCurrency = document.querySelector(".footer-btn-text-currency") if (footerBtnTextCurrency) { footerBtnTextCurrency.textContent = currencyCode } // Update the mobile menu btn text const mobileMenuBtnTextCurrency = document.querySelector(".mobile-menu-btn-text-currency") if (mobileMenuBtnTextCurrency) { mobileMenuBtnTextCurrency.textContent = currencyCode } // Set the currency parameter in the URL if updateUrl is true if (updateUrl) { setUrlParameter('curr', currencyCode); }} // Function to manage the active language and set cookiefunction setActiveLanguage(langCode) { // Mapping of hreflang to cookie values const langCookieMap = { 'zh-HK': 'zh-Hant-HK', 'en': 'en' } // Determine the cookie value using the mapping, default to the langCode if not found const cookieValue = langCookieMap[langCode] || langCode // Set the cookie for 30 days setCookie('caribou_language', cookieValue, 30)} // Initialize or set default active currency based on cookiefunction initCurrency() { const currencyParam = getUrlParameter('curr'); if (currencyParam) { setActiveCurrency(currencyParam); } else { var savedCurrency = getCookie('caribou_currency'); if (savedCurrency) { setActiveCurrency(savedCurrency, false); } else { const defaultCurrency = 'HKD'; // Default to HKD if no cookie is found setActiveCurrency(defaultCurrency, false); } }} // Function to get URL parametersfunction getUrlParameter(name) { name = name.replace(/[\[\]]/g, '\\$&'); const urlParams = new URLSearchParams(window.location.search); return urlParams.get(name);} // Function to set URL parametersfunction setUrlParameter(param, value) { const url = new URL(window.location.href); url.searchParams.set(param, value); window.history.replaceState(null, '', url.toString());} // Function to add event listenerfunction addPopupEventListener() { const navToggle = document.querySelector(".nav-lang-dropdown-icon-wrapper") const footerBtnLanguage = document.querySelector("#footer-btn-language") const footerBtnCurrency = document.querySelector("#footer-btn-currency") const mobileMenuBtnLanguage = document.querySelector("#mobile-menu-btn-language") const mobileMenuBtnCurrency = document.querySelector("#mobile-menu-btn-currency") // Show popup for both language and currency when nav toggle has been clicked if (navToggle) { navToggle.addEventListener("click", function() { document.querySelector("#popup-language-currency").style.display = "flex" }) } // Show popup for language when the footerBtnLanguage has been clicked if (footerBtnLanguage) { footerBtnLanguage.addEventListener("click", function() { document.querySelector("#popup-language").style.display = "flex" }) } // Show popup for currency when the footerBtnCurrency has been clicked if (footerBtnCurrency) { footerBtnCurrency.addEventListener("click", function() { document.querySelector("#popup-currency").style.display = "flex" }) } // Show popup for language when the mobileMenuBtnLanguage has been clicked if (mobileMenuBtnLanguage) { mobileMenuBtnLanguage.addEventListener("click", function() { document.querySelector("#popup-language").style.display = "flex" }) } // Show popup for currency when the mobileMenuBtnCurrency has been clicked if (mobileMenuBtnCurrency) { mobileMenuBtnCurrency.addEventListener("click", function(){ document.querySelector("#popup-currency").style.display = "flex" }) } } document.addEventListener('DOMContentLoaded', function() { initCurrency(); addPopupEventListener() // Close the popup document.querySelectorAll(".language-popup-close-btn").forEach(function(element) { element.addEventListener("click", function(){ // Find the cloest language-popup-wrapper and hide it let popupWrapper = this.closest(".language-popup-wrapper") if (popupWrapper) { popupWrapper.style.display = "none" } }) }) // Add click event listeners to all currency elements document.querySelectorAll('.language-popup-currency-wrapper .language-popup-link').forEach(function(element) { element.addEventListener('click', function() { const currentCurrencyCode = getCookie('caribou_currency') const targetCurrencyCode = this.getAttribute('currency') if (targetCurrencyCode !== currentCurrencyCode) { setActiveCurrency(targetCurrencyCode); // Reload the page to reflect changes window.location.reload() } }); }); // Add click event listener to all language elements document.querySelectorAll(".language-popup-locale .language-popup-link").forEach(function(element) { element.addEventListener("click", function() { // Get hreflang attribute of the clicked button let hreflang = this.getAttribute('hreflang') setActiveLanguage(hreflang) }) }) // Add click event listeners for the temporary language switcher document.querySelectorAll(".nav-locale .nav-menu-link").forEach(function(element) { element.addEventListener("click", function() { // Get hreflang attribute of the clicked button let hreflang = this.getAttribute('hreflang') setActiveLanguage(hreflang) }) }) // Update footer language text // Check for existing 'caribou_language' cookie const userLanguage = getCookie('caribou_language') if (userLanguage) { const footerLangMap = { "zh-Hant-HK": "繁體中文", "en": "English" } const footerLangText = footerLangMap[userLanguage] || '繁體中文' const footerBtnTextLang = document.querySelector(".footer-btn-text-language") if (footerBtnTextLang) { footerBtnTextLang.textContent = footerLangText } const mobileMenuBtnTextLang = document.querySelector(".mobile-menu-btn-text-language") if (mobileMenuBtnTextLang) { mobileMenuBtnTextLang.textContent = footerLangText } } }); </script></div></div></section><div class="homepage-body-wrapper"></div><script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=64d1f8d7c8eb554aa7393f33" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/js/webflow.schunk.abb66f7fd47fea19.js" type="text/javascript"></script><script src="https://cdn.prod.website-files.com/64d1f8d7c8eb554aa7393f33/js/webflow.650a3a35.bb6615ab678c7da3.js" type="text/javascript"></script><!-- Google Tag Manager (noscript) --><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WKGC5B3"height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><!-- End Google Tag Manager (noscript) --> <script> $(document).ready(function() { $('.language-switch-chi').click(function(e){ relativePath = location.href.replace(location.origin,''); if(relativePath == "/en/home") { window.location.href = "/"; } else if (!relativePath.includes("/en/")){ return } else { window.location.href = relativePath.replace("/en/", "/"); } }) $('.language-switch-eng').click(function(e){ relativePath = location.href.replace(location.origin,''); if(relativePath == "/") { window.location.href = "/en/home"; } else if (relativePath.includes("/en/")){ return } else { window.location.href = relativePath.replace("/", "/en/"); } }); }); </script> <!-- Render Nav Menu Dropdown --><script>// Select all list items in the nav-menu-collection-listconst listItems = document.querySelectorAll('.nav-menu-collection-list .nav-menu-collection-item'); // Loop through each list itemlistItems.forEach(item => { // Find the nav-menu-link and nav-menu-hidden-link elements within the current list item const navLink = item.querySelector('.nav-menu-link'); const footerLink = item.querySelector('.footer-link') const hiddenLink = item.querySelector('.nav-menu-hidden-link'); if (hiddenLink) { if (navLink) { // Set the href attribute of nav-menu-link to the text content of nav-menu-hidden-link navLink.setAttribute('href', hiddenLink.textContent.trim()); } else if (footerLink) { // Set the href attribute of footer-link to the text content of nav-menu-hidden-link footerLink.setAttribute('href', hiddenLink.textContent.trim()); } // Remove the nav-menu-hidden-link element from the DOM hiddenLink.remove(); } });</script><!-- End Render Nav Menu Dropdown --> <script>// Hide theme page menu for english const websiteLanguage = window.location.pathname.includes("/en/") || window.location.pathname === "/en" ? "en" : "zh-Hant-HK"const footerItemThemePage = document.querySelector("#footer-item-themePage")if (websiteLanguage == "en") { if (footerItemThemePage) { footerItemThemePage.style.display = "none" }} async function checkAndFetchHashID() { // Function to create custom fbc cookie if it does not exists const setCustomFbcCookie = () => { if ( !getCookie("_fbc") && adTracking.fbclid && adTracking.fbclid != "(no value)" ) { let timestamp = new Date(adTracking.timestamp).getTime() / 1000; let customFbc = `fb.1.${timestamp}.${adTracking.fbclid}`; setCookie("_fbc", customFbc, 90); } }; // Function to populate the cookie into hash object if the cookie exists const populateCookieToHashObject = (cookieName, hashKey) => { let cookieValue = getCookie(cookieName); if (cookieValue) hashObject[hashKey] = cookieValue; }; // Function to populate fbc & fbp into the forms const populateFormFields = (formPrefix) => { document.getElementById(`${formPrefix}-hash_id`).value =getCookie("caribou_hashID"); if (getCookie("_fbc")) document.getElementById(`${formPrefix}-fbc`).value = getCookie("_fbc"); if (getCookie("_fbp")) document.getElementById(`${formPrefix}-fbp`).value = getCookie("_fbp"); }; // Function to get theme page id const getThemePageTrackingId = () => { const firstHotelLink = document.querySelector(".hotel-link"); if (firstHotelLink) { const regex = /caribou-theme-\d+/; const match = firstHotelLink.href.match(regex); if (match) { return match[0]; } } return null; }; // Function to replace theme page id tracking with hash id const updateHotelLinksWithHashId = () => { const hashId = getCookie("caribou_hashID"); if (!hashId || hashId == "(no_hashID)") { console.error("Hash ID not found in cookies"); return; } const regex = /caribou-theme-\d+/; const hotelLinks = document.querySelectorAll(".hotel-link"); hotelLinks.forEach((link) => { link.href = link.href.replace(regex, `${hashId}`); }); }; // Check if the 'caribou_hashID' cookie exists. if not, fetch it if (adTracking && Object.keys(adTracking).length > 0) { // Proceed with hash request only if adTracking has data if ( !getCookie("caribou_hashID") || getCookie("caribou_hashID") == "(no_hashID)" ) { // Init hashObject var hashObject = {}; // Add client_id into hash object if (getClientId() != "") { hashObject.client_id = getClientId(); } // Add session_id into hash object if (getSessionId() != "") { hashObject.session_id = getSessionId(); } // Add adTracking into the hash object for (let key in adTracking) { if (adTracking[key] && adTracking[key] != "(no value)") { hashObject[key] = adTracking[key]; } } setCustomFbcCookie(); populateCookieToHashObject("_fbc", "fbc"); populateCookieToHashObject("_fbp", "fbp"); // Retrieve theme page id for hotel links tracking if (window.location.href.includes("/product-theme/")) { const themePageTrackingId = getThemePageTrackingId(); if (themePageTrackingId) { hashObject.themePage_TrackingId = themePageTrackingId; } } // Only fetch hash if adTracking has relevant data if (Object.keys(hashObject).length > 0) { await fetchHashId(hashObject); } } } if (getCookie("caribou_hashID") != "(no_hashID)") { // Populate the hash id, fbc & fbp into sales funnel tracking form if (window.location.href.includes("/tour-products/")) { populateFormFields("funnel-form"); } // Populate the hash id, fbc and fbp into product search form if ( window.location.href.includes("/tour-products") && !window.location.href.includes("/tour-products/") ) { populateFormFields("product-search"); } // Replace hotels link with hash id for theme page if (window.location.href.includes('/product-theme/')){ const themePageTrackingId = getThemePageTrackingId() if (themePageTrackingId) { updateHotelLinksWithHashId(themePageTrackingId) } } }} $(document).ready(async function () { if (!window.location.href.includes("/product-theme/") && !window.location.href.includes("/tour-products/")) { await checkAndFetchHashID(); } if ( !window.location.href.includes("/tour-products") && !window.location.href.includes("/product-theme/") ) { triggerCustomDataReady(); }}); </script> <script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> <!-- Start seamless-pagination custom code --> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.pjax/2.0.1/jquery.pjax.min.js"></script><script> var containerSelector = '#seamless-replace'; $(document).pjax( '.w-pagination-wrapper a', containerSelector, { container: containerSelector, fragment: containerSelector, scrollTo: false, timeout: 2500, } ); // These 3 lines should reinitialize interactions $(document).on('pjax:end', function() { Webflow.require('ix2').init(); });</script> <!-- End seamless-pagination custom code --></body></html>