{"path":"/public_html/china.html","name":"china.html","size":209944,"extension":".html","modified":"2026-10-14T14:14:21.840804772Z","mode":420,"isDir":false,"isSymlink":false,"type":"text","content":"\u003c!doctype html\u003e\n\u003chtml lang=\"en\"\u003e\n\u003chead\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1, viewport-fit=cover\"\u003e\n\u003ctitle\u003eTaigolf China — Golf trips to Haikou for Malaysian golfers\u003c/title\u003e\n\u003cmeta name=\"description\" content=\"Golf trips to Mission Hills Haikou, China for Malaysian golfers. Courses, hotel, travel help and a price calculator. Licensed Thai travel agency (TAT 14/03879). Plan it on WhatsApp.\"\u003e\n\u003clink rel=\"canonical\" href=\"https://www.taigolf.com/china\"\u003e\n\u003cmeta property=\"og:type\" content=\"website\"\u003e\u003cmeta property=\"og:title\" content=\"Taigolf China — Golf trips to Haikou for Malaysian golfers\"\u003e\u003cmeta property=\"og:description\" content=\"Golf trips to Mission Hills Haikou, China for Malaysian golfers. Courses, hotel, travel help and a price calculator. Licensed Thai travel agency (TAT 14/03879). Plan it on WhatsApp.\"\u003e\u003cmeta property=\"og:url\" content=\"https://www.taigolf.com/china\"\u003e\u003cmeta property=\"og:site_name\" content=\"taigolf.com\"\u003e\u003cmeta property=\"og:image\" content=\"https://www.taigolf.com/images/china/china-01-6a86daabf8.jpg\"\u003e\n\u003cmeta name=\"twitter:card\" content=\"summary_large_image\"\u003e\u003cmeta name=\"twitter:title\" content=\"Taigolf China — Golf trips to Haikou for Malaysian golfers\"\u003e\u003cmeta name=\"twitter:description\" content=\"Golf trips to Mission Hills Haikou, China for Malaysian golfers. Courses, hotel, travel help and a price calculator. Licensed Thai travel agency (TAT 14/03879). Plan it on WhatsApp.\"\u003e\u003cmeta name=\"twitter:image\" content=\"https://www.taigolf.com/images/china/china-01-6a86daabf8.jpg\"\u003e\n\u003cmeta name=\"google-site-verification\" content=\"cvTR_CUdZFZNNzbwFT97IRlqX-GP3txAgHtXvYtE3gA\"\u003e\n\u003clink rel=\"icon\" href=\"/favicon.png\"\u003e\n\u003c!-- Google Tag Manager --\u003e\n\u003cscript\u003e(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'?'\u0026l='+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-5QPMCD6F');\u003c/script\u003e\n\u003c!-- End Google Tag Manager --\u003e\n\u003c!-- Google tag (gtag.js) --\u003e\n\u003cscript async src=\"https://www.googletagmanager.com/gtag/js?id=G-SXM10B0DR3\"\u003e\u003c/script\u003e\n\u003cscript\u003ewindow.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','G-SXM10B0DR3');\u003c/script\u003e\n\u003c!-- Meta Pixel --\u003e\n\u003cscript\u003e!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','2234432016903394');fbq('track','PageView');\u003c/script\u003e\n\n\u003clink rel=\"preconnect\" href=\"https://fonts.googleapis.com\"\u003e\n\u003clink rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin\u003e\n\u003clink href=\"https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@700;800;900\u0026family=Figtree:wght@400;500;600;700;800\u0026family=Noto+Sans+SC:wght@500;700;900\u0026display=swap\" rel=\"stylesheet\"\u003e\n\u003cstyle\u003e\n:root{\n --fairway:#0E5132; --rough:#093B25; --deep:#062A1A; --bright:#019934; --teal:#018264;\n --chalk:#F5F8F0; --paper:#FFFFFF; --mist:#E4EEDD;\n --sun:#F2D43D; --flag:#FF5A45; --flagdark:#E8442F;\n --lava:#1E211F; --lava2:#2A2E2B; --sky:#CFE6F2;\n --ink:#0F2419; --muted:#557062; --line:#D5E2CF;\n --display:'Big Shoulders Display', 'Noto Sans SC', 'Arial Narrow', Impact, sans-serif;\n --body:'Figtree', 'Noto Sans SC', 'Segoe UI', system-ui, sans-serif;\n box-sizing:border-box;\n padding-top:env(safe-area-inset-top,0px);\n padding-bottom:env(safe-area-inset-bottom,0px);\n}\nhtml{scroll-padding-top:env(safe-area-inset-top,0px);scroll-behavior:smooth}\n*,*::before,*::after{box-sizing:inherit}\nbody{margin:0;background:var(--chalk);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}\nimg{max-width:100%;display:block}\nbutton{font-family:inherit}\na{color:inherit}\n:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:6px}\n.wrap{width:min(1200px,100% - 48px);margin-inline:auto}\n.display{font-family:var(--display);font-weight:900;text-transform:uppercase;line-height:.92;letter-spacing:.005em;margin:0}\n.h2{font-size:clamp(44px,6.4vw,84px)}\n.h3{font-size:clamp(28px,3vw,38px);font-weight:800}\n.lede{font-size:clamp(17px,1.5vw,19px);color:var(--muted);max-width:56ch}\n.kicker{font-weight:700;color:var(--flag);font-size:15px;margin:0 0 14px}\n.btn{display:inline-flex;align-items:center;gap:10px;border:0;cursor:pointer;border-radius:999px;font-weight:800;font-size:16px;padding:16px 28px;text-decoration:none;transition:transform .15s ease,background .15s ease}\n.btn:active{transform:scale(.97)}\n.btn-flag{background:var(--flag);color:#fff}\n.btn-flag:hover{background:var(--flagdark)}\n.btn-sun{background:var(--sun);color:var(--deep)}\n.btn-ghost{background:transparent;color:inherit;box-shadow:inset 0 0 0 2px currentColor}\n.btn svg{width:18px;height:18px}\n\n/* ---------- NAV ---------- */\n.nav{position:fixed;top:0;left:0;right:0;z-index:60;padding-top:env(safe-area-inset-top,0px);transition:background .25s ease, box-shadow .25s ease}\n.nav-in{display:flex;align-items:center;justify-content:space-between;gap:20px;height:72px}\n.logo{font-family:var(--display);font-weight:900;font-size:28px;letter-spacing:.01em;text-decoration:none;color:var(--deep);display:flex;align-items:center;gap:10px;background:none;border:0;cursor:pointer;padding:0}\n.logo-img{height:46px;width:auto}\n.logo span{color:var(--fairway)}\n.nav-links{display:flex;gap:6px;align-items:center;background:rgba(255,255,255,.82);backdrop-filter:blur(10px);border-radius:999px;padding:6px}\n.nav-links button{background:none;border:0;cursor:pointer;font-weight:700;font-size:14px;padding:9px 14px;border-radius:999px;color:var(--ink);white-space:nowrap}\n.nav .btn{white-space:nowrap}\n.nav-links button:hover,.nav-links button[aria-current=\"page\"]{background:var(--mist)}\n.nav.solid{background:rgba(245,248,240,.94);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line)}\n.nav .btn{padding:12px 22px;font-size:14px}\n.menu-btn{display:none}\n.langs{display:inline-flex;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);border-radius:999px;padding:4px;gap:2px}\n.langs button{border:0;background:none;cursor:pointer;font-weight:800;font-size:13px;padding:8px 11px;border-radius:999px;color:var(--ink)}\n.langs button[aria-pressed=\"true\"]{background:var(--fairway);color:#fff}\n\n/* ---------- HERO (airplane window) ---------- */\n.hero{position:relative;height:320vh;background:var(--deep)}\n.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}\n.layer{position:absolute;inset:0}\n.golf{background:center/cover no-repeat;transform:scale(calc(1.25 - .25 * var(--g,0)));opacity:var(--g,0)}\n.golf::after{content:\"\";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,42,26,.15) 0%,rgba(6,42,26,.05) 40%,rgba(6,42,26,.72) 100%)}\n.sky{top:-30%;bottom:-30%;background:#8DB9DD url(/images/china/china-01-6a86daabf8.jpg) 50% 0%/cover no-repeat;will-change:transform;opacity:calc(1 - var(--g,0))}\n.sun-glow{position:absolute;right:18%;top:22%;width:40vmin;height:40vmin;border-radius:50%;background:radial-gradient(circle,rgba(255,244,200,.9),rgba(255,244,200,0) 65%)}\n.cloud{position:absolute;border-radius:50%;background:#fff;filter:blur(18px);opacity:.9}\n.cloudbank .cloud{will-change:transform}\n.cloud-pass{opacity:var(--c,0);pointer-events:none}\n.cloud-pass .cloud{filter:blur(34px)}\n.cabin{position:absolute;transform-origin:var(--ox,50%) var(--oy,50%);will-change:transform;pointer-events:none}\n.cabin img{width:100%;height:100%;display:block}\n.cabin-copy{position:absolute;left:0;right:0;top:0;padding-top:calc(96px + env(safe-area-inset-top,0px));text-align:center;pointer-events:none;opacity:calc(1 - var(--p,0) * 5);z-index:2}\n.hero-kick{margin:0 0 10px}\n.hero-q{font-size:clamp(40px,4.6vw,70px);color:var(--deep);max-width:20ch;margin:0 auto}\n.hero-sub{color:#2E4A3B;font-weight:600;font-size:clamp(15px,1.4vw,18px);max-width:52ch;margin:14px auto 0}\n.scroll-hint{position:absolute;left:0;right:0;bottom:calc(28px + env(safe-area-inset-bottom,0px));text-align:center;font-weight:700;font-size:14px;color:var(--muted);opacity:calc(1 - var(--p,0) * 8)}\n.scroll-hint svg{display:block;margin:6px auto 0;animation:bob 1.6s ease-in-out infinite}\n@keyframes bob{50%{transform:translateY(5px)}}\n.arrive{position:absolute;inset:0;display:flex;align-items:flex-end;opacity:var(--a,0);pointer-events:none}\n.arrive.on{pointer-events:auto}\n.arrive .wrap{padding-bottom:calc(9vh + env(safe-area-inset-bottom,0px));color:#fff}\n.arrive h1{font-size:clamp(58px,10vw,150px);max-width:11ch;transform:translateY(calc((1 - var(--a,0)) * 40px))}\n.arrive p{font-size:clamp(17px,1.6vw,20px);max-width:48ch;margin:18px 0 28px;color:#E6F0E6}\n.arrive .row{display:flex;gap:14px;flex-wrap:wrap}\n.arrive .btn-ghost{color:#fff}\n\n/* ---------- WAVES ---------- */\n.wave{display:block;width:100%;height:60px}\n.wave-top{margin-top:-59px;position:relative;z-index:2}\n\n/* ---------- SERVICE STRIP ---------- */\n.strip{background:var(--fairway);color:#fff;padding:26px 0 70px}\n.strip ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}\n.strip li{display:flex;gap:14px;align-items:center;font-weight:700;font-size:16px}\n.strip li span{display:block;font-weight:500;font-size:14px;color:#BFD8C6}\n.strip .ic{flex:0 0 46px;height:46px;border-radius:50%;background:rgba(255,255,255,.1);display:grid;place-items:center}\n.strip .ic svg{width:22px;height:22px;stroke:var(--sun)}\n\n/* ---------- WHY HAIKOU ---------- */\n.why{padding:110px 0 120px;position:relative}\n.why-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center}\n.photo-stack{position:relative;aspect-ratio:1/1.02}\n.photo-stack img{position:absolute;border-radius:28px;object-fit:cover;box-shadow:0 24px 50px rgba(15,36,25,.22)}\n.ps1{inset:0 18% 22% 0;width:82%;height:78%}\n.ps2{right:0;bottom:0;width:56%;height:48%;border:8px solid var(--chalk);transform:rotate(3deg)}\n.squiggle{position:absolute;left:-40px;bottom:-30px;width:260px;pointer-events:none}\n.facts{display:grid;grid-template-columns:1fr 1fr;gap:28px 32px;margin-top:40px}\n.fact b{display:block;font-family:var(--display);font-weight:900;font-size:56px;line-height:.9;color:var(--fairway)}\n.fact span{font-size:15px;color:var(--muted);font-weight:600}\n\n/* ---------- COURSE EXPLORER ---------- */\n.courses{background:var(--lava);color:#EDEFEA;padding:110px 0 120px;position:relative;overflow:hidden}\n.courses::before{content:\"\";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.05) 1.2px,transparent 1.3px);background-size:16px 16px;pointer-events:none}\n.courses .lede{color:#AEB5AE}\n.courses .kicker{color:var(--sun)}\n.explorer{display:grid;grid-template-columns:1.15fr .85fr;gap:36px;margin-top:48px;align-items:start;position:relative}\n.map-card{background:#2F3430;border-radius:32px;padding:14px;position:relative}\n.map-card svg{border-radius:22px;overflow:hidden}\n.map-card svg{width:100%;height:auto;display:block}\n.pin{cursor:pointer}\n.pin circle.dot{fill:#fff;stroke:var(--deep);stroke-width:3;transition:r .15s ease, fill .15s ease}\n.pin text{font-family:var(--display);font-weight:900;font-size:17px;fill:var(--deep);pointer-events:none}\n.pin.dim circle.dot{fill:#8C948D}\n.pin:hover circle.dot,.pin:focus circle.dot{fill:var(--sun)}\n.pin.active circle.dot{fill:var(--sun);stroke:#fff}\n.pin.active text{fill:var(--deep)}\n.pin:focus{outline:none}\n.pin:focus-visible circle.ring{stroke:var(--sun)}\n.course-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:14px 4px 4px}\n.course-tabs button{border:0;cursor:pointer;border-radius:999px;background:rgba(255,255,255,.08);color:#EDEFEA;font-weight:700;font-size:13.5px;padding:8px 13px;display:inline-flex;gap:7px;align-items:center}\n.course-tabs button b{font-family:var(--display);font-size:16px;color:var(--sun)}\n.course-tabs button.dim{color:#9AA39B}\n.course-tabs button[aria-pressed=\"true\"]{background:var(--sun);color:var(--deep)}\n.course-tabs button[aria-pressed=\"true\"] b{color:var(--deep)}\n.map-note{font-size:13px;color:#8F978F;margin:12px 6px 2px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}\n.legend{display:flex;gap:14px;align-items:center}\n.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}\n.course-card{background:var(--paper);color:var(--ink);border-radius:28px;overflow:hidden;position:sticky;top:96px}\n.cc-photo{position:relative;aspect-ratio:16/10;background:#253}\n.cc-photo img{width:100%;height:100%;object-fit:cover;transition:opacity .25s ease}\n.cc-dots{position:absolute;left:0;right:0;bottom:12px;display:flex;justify-content:center;gap:8px}\n.cc-dots button{width:10px;height:10px;border-radius:50%;border:0;background:rgba(255,255,255,.55);cursor:pointer;padding:0}\n.cc-dots button[aria-pressed=\"true\"]{background:#fff;width:26px;border-radius:6px}\n.cc-fly{position:absolute;right:16px;top:16px;background:rgba(6,42,26,.8);color:#fff;font-weight:700;font-size:13px;border-radius:999px;padding:6px 12px}\n.cc-num{position:absolute;left:16px;top:16px;background:var(--sun);color:var(--deep);font-family:var(--display);font-weight:900;font-size:20px;border-radius:999px;padding:4px 14px}\n.cc-body{padding:24px 26px 26px}\n.cc-body .display{font-size:40px;color:var(--deep)}\n.cc-tag{margin:8px 0 0;color:var(--muted);font-weight:600;font-size:15px}\n.cc-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:20px 0;border-radius:16px;background:var(--mist)}\n.cc-stats div{padding:12px 14px}\n.cc-stats div+div{border-left:1px solid #CBDCC4}\n.cc-stats b{display:block;font-family:var(--display);font-weight:900;font-size:28px;line-height:1;color:var(--fairway)}\n.cc-stats span{font-size:12.5px;color:var(--muted);font-weight:600}\n.cc-desc{font-size:15.5px;margin:0 0 20px}\n.cc-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}\n.surcharge{font-size:14px;font-weight:700;color:var(--fairway)}\n.surcharge.plus{color:var(--flagdark)}\n\n/* ---------- PACKAGES ---------- */\n.packages{padding:110px 0 110px}\n.pk-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}\n.pk-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:48px}\n.pk{background:var(--paper);border-radius:32px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 0 var(--line)}\n.pk-img{position:relative;aspect-ratio:16/9}\n.pk-img img{width:100%;height:100%;object-fit:cover}\n.pk-badge{position:absolute;left:18px;top:18px;background:var(--fairway);color:#fff;font-weight:800;font-size:13px;padding:7px 14px;border-radius:999px}\n.pk-price{position:absolute;right:18px;bottom:-30px;background:var(--sun);color:var(--deep);border-radius:22px;padding:12px 18px;text-align:right;box-shadow:0 12px 28px rgba(15,36,25,.18)}\n.pk-price small{display:block;font-weight:700;font-size:12.5px}\n.pk-price b{font-family:var(--display);font-weight:900;font-size:40px;line-height:1}\n.pk-body{padding:30px 28px 28px;display:flex;flex-direction:column;flex:1}\n.pk-body .display{font-size:40px;color:var(--deep);max-width:12ch}\n.days{list-style:none;margin:22px 0 22px;padding:0;border-top:1px solid var(--line)}\n.days li{display:grid;grid-template-columns:62px 1fr;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);font-size:15.5px}\n.days li b{font-family:var(--display);font-weight:800;font-size:19px;color:var(--fairway)}\n.days li em{font-style:normal;color:var(--muted);font-size:14px;display:block}\n.pk-body .row{margin-top:auto;display:flex;gap:12px;flex-wrap:wrap;align-items:center}\n.pk-note{font-size:13.5px;color:var(--muted);margin-top:14px}\n.incl{margin-top:36px;display:grid;grid-template-columns:1fr 1fr;gap:28px;background:var(--mist);border-radius:28px;padding:30px 32px}\n.incl h3{font-size:18px;margin:0 0 10px}\n.incl ul{margin:0;padding-left:20px;font-size:15.5px}\n.incl li{margin:4px 0}\n\n/* ---------- HOTEL ---------- */\n.hotel{background:var(--fairway);color:#fff;padding:110px 0 120px;position:relative}\n.hotel .lede{color:#CFE2D4}\n.hotel .kicker{color:var(--sun)}\n.hotel-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}\n.hotel-photos{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:1fr 1fr;gap:14px;aspect-ratio:4/3}\n.hotel-photos img{width:100%;height:100%;object-fit:cover;border-radius:22px;image-rendering:auto}\n.hotel-photos img:first-child{grid-row:1/3}\n.perks{list-style:none;padding:0;margin:30px 0 0;display:grid;gap:16px}\n.perks li{display:flex;gap:14px;align-items:flex-start}\n.perks svg{flex:0 0 26px;width:26px;height:26px;stroke:var(--sun);margin-top:2px}\n.perks b{display:block}\n.perks span{color:#CFE2D4;font-size:15.5px}\n\n/* ---------- WHY TAIGOLF ---------- */\n.trust{padding:110px 0}\n.trust-top{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:end}\n.stats{display:flex;gap:14px;flex-wrap:wrap;margin-top:44px}\n.stat{border-radius:999px;background:var(--paper);padding:14px 26px;display:flex;align-items:baseline;gap:10px;box-shadow:inset 0 0 0 1.5px var(--line)}\n.stat b{font-family:var(--display);font-weight:900;font-size:40px;line-height:1;color:var(--fairway)}\n.stat span{font-weight:700;font-size:14px;color:var(--muted)}\n.reasons{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px}\n.reason{border-radius:26px;padding:26px 24px 28px;background:var(--paper)}\n.reason:nth-child(2){background:var(--sun)}\n.reason:nth-child(3){background:var(--mist)}\n.reason:nth-child(4){background:var(--deep);color:#fff}\n.reason:nth-child(4) p{color:#BFD8C6}\n.reason .display{font-size:30px;font-weight:800;margin:28px 0 10px}\n.reason p{margin:0;font-size:15.5px;color:var(--muted)}\n.reason:nth-child(2) p{color:#4A4417}\n.reason svg{width:34px;height:34px}\n.license{margin-top:26px;font-size:14.5px;color:var(--muted);font-weight:600}\n\n/* ---------- REVIEWS ---------- */\n.reviews{background:var(--chalk);padding:60px 0 110px;text-align:center}\n.faces{display:flex;justify-content:center;margin-bottom:28px}\n.faces{margin-bottom:34px}\n.faces button{width:72px;height:72px;border-radius:50%;border:4px solid var(--chalk);margin-left:-12px;display:grid;place-items:center;font-family:var(--display);font-weight:900;font-size:22px;color:#fff;cursor:pointer;padding:0;overflow:hidden;transition:transform .2s ease;background:#3E7C55}\n.faces button img{width:100%;height:100%;object-fit:cover}\n.faces button[aria-pressed=\"true\"]{transform:scale(1.3);z-index:1;border-color:var(--sun);position:relative}\n.quote{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(30px,4vw,52px);line-height:1.02;max-width:22ch;margin:0 auto;color:var(--deep)}\n.who{margin-top:22px;font-weight:700}\n.who span{display:block;color:var(--muted);font-weight:600;font-size:15px}\n.rv-nav{display:flex;gap:10px;justify-content:center;margin-top:28px}\n.rv-nav button{width:10px;height:10px;border-radius:50%;border:0;background:#A9BFA6;cursor:pointer;padding:0}\n.rv-nav button[aria-pressed=\"true\"]{background:var(--fairway);width:28px;border-radius:6px}\n\n/* ---------- FAQ ---------- */\n.faq{padding:110px 0}\n.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}\n.faq details{background:var(--paper);border-radius:20px;margin-bottom:12px;padding:0 22px;box-shadow:inset 0 0 0 1.5px var(--line)}\n.faq summary{cursor:pointer;list-style:none;padding:20px 0;font-weight:700;display:flex;justify-content:space-between;gap:16px;align-items:center}\n.faq summary::-webkit-details-marker{display:none}\n.faq summary i{flex:0 0 28px;height:28px;border-radius:50%;background:var(--fairway);color:#fff;display:grid;place-items:center;font-style:normal;font-weight:800;transition:transform .2s ease}\n.faq details[open] summary i{transform:rotate(45deg);background:var(--flag)}\n.faq details p{margin:0 0 20px;color:var(--muted);font-size:15.5px}\n\n/* ---------- CTA + FOOTER ---------- */\n.cta{background:var(--deep);color:#fff;padding:100px 0 110px;text-align:center;position:relative;overflow:hidden}\n.cta .display{font-size:clamp(52px,8vw,112px)}\n.cta p{color:#BFD8C6;max-width:46ch;margin:18px auto 30px}\n.cta .row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}\n.cta .btn-ghost{color:#fff}\nfooter{background:#041C11;color:#9DB5A4;padding:48px 0 calc(40px + env(safe-area-inset-bottom,0px));font-size:14.5px}\n.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}\nfooter b{color:#fff}\nfooter a{text-decoration:none}\nfooter a:hover{color:#fff}\nfooter ul{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:6px}\n\n/* ---------- CALCULATOR PAGE ---------- */\n#page-calc{padding:120px 0 100px;min-height:100vh}\n.calc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:40px}\n.calc-head .display{font-size:clamp(52px,7vw,96px);color:var(--deep)}\n.calc{display:grid;grid-template-columns:1.25fr .75fr;gap:32px;align-items:start}\n.step{background:var(--paper);border-radius:28px;padding:28px 28px 30px;margin-bottom:18px}\n.step-h{display:flex;align-items:center;gap:14px;margin-bottom:18px}\n.step-n{flex:0 0 38px;height:38px;border-radius:50%;background:var(--fairway);color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:900;font-size:20px}\n.step-h h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:28px;line-height:1;margin:0}\n.step-h p{margin:2px 0 0;font-size:14px;color:var(--muted)}\n.hotel-opt{display:flex;gap:16px;align-items:center;border-radius:20px;padding:12px;box-shadow:inset 0 0 0 2.5px var(--fairway);background:#F4FAF1}\n.hotel-opt img{width:96px;height:72px;border-radius:14px;object-fit:cover}\n.hotel-opt b{display:block}\n.hotel-opt span{font-size:14px;color:var(--muted)}\n.hotel-opt .tick{margin-left:auto;width:30px;height:30px;border-radius:50%;background:var(--fairway);display:grid;place-items:center;flex:0 0 30px}\n.soon{margin-top:10px;font-size:14px;color:var(--muted)}\n.counters{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}\n.counter{background:var(--chalk);border-radius:20px;padding:16px 16px 14px}\n.counter label{display:block;font-size:14px;font-weight:700;color:var(--muted);margin-bottom:8px}\n.ctrl{display:flex;align-items:center;justify-content:space-between;gap:8px}\n.ctrl button{width:40px;height:40px;border-radius:50%;border:0;background:var(--paper);box-shadow:inset 0 0 0 1.5px var(--line);font-size:22px;font-weight:700;cursor:pointer;color:var(--fairway);display:grid;place-items:center}\n.ctrl button:disabled{opacity:.35;cursor:not-allowed}\n.ctrl output{font-family:var(--display);font-weight:900;font-size:42px;line-height:1;color:var(--deep)}\n.counter small{display:block;font-size:12.5px;color:var(--muted);margin-top:6px}\n.seg{display:inline-flex;background:var(--chalk);border-radius:999px;padding:5px;gap:4px;margin-top:16px}\n.seg button{border:0;background:none;border-radius:999px;padding:10px 18px;font-weight:700;font-size:14.5px;cursor:pointer;color:var(--ink)}\n.seg button[aria-pressed=\"true\"]{background:var(--fairway);color:#fff}\n.round{border-top:1px solid var(--line);padding:16px 0 14px}\n.round:first-of-type{border-top:0;padding-top:4px}\n.round-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}\n.round-h b{font-family:var(--display);font-weight:800;font-size:22px;text-transform:uppercase}\n.round-h span{font-size:13.5px;color:var(--muted);font-weight:600}\n.chips{display:flex;flex-wrap:wrap;gap:8px}\n.chip{border:0;cursor:pointer;border-radius:999px;background:var(--chalk);padding:9px 14px 9px 9px;display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:14px;color:var(--ink);box-shadow:inset 0 0 0 1.5px transparent}\n.chip img{width:30px;height:30px;border-radius:50%;object-fit:cover}\n.chip small{font-weight:700;color:var(--flagdark);font-size:12px}\n.chip[aria-pressed=\"true\"]{background:var(--fairway);color:#fff}\n.chip[aria-pressed=\"true\"] small{color:var(--sun)}\n.addon{display:flex;align-items:center;gap:14px;cursor:pointer;border-radius:18px;background:var(--chalk);padding:14px 16px;margin-top:10px}\n.addon input{width:22px;height:22px;accent-color:var(--fairway)}\n.addon b{display:block;font-size:15.5px}\n.addon span{font-size:13.5px;color:var(--muted)}\n.addon em{margin-left:auto;font-style:normal;font-weight:800;color:var(--fairway);white-space:nowrap}\n.summary{position:sticky;top:96px;background:var(--deep);color:#fff;border-radius:32px;padding:28px 28px 26px;overflow:hidden}\n.sum-top{display:flex;justify-content:space-between;align-items:center;gap:10px}\n.sum-top h2{font-family:var(--display);text-transform:uppercase;font-weight:800;font-size:26px;margin:0}\n.cur{display:inline-flex;background:rgba(255,255,255,.1);border-radius:999px;padding:4px}\n.cur button{border:0;background:none;color:#fff;font-weight:800;font-size:13px;padding:7px 12px;border-radius:999px;cursor:pointer}\n.cur button[aria-pressed=\"true\"]{background:var(--sun);color:var(--deep)}\n.big{margin:22px 0 4px}\n.big small{display:block;color:#BFD8C6;font-weight:600;font-size:14px}\n.big b{font-family:var(--display);font-weight:900;font-size:clamp(60px,6vw,82px);line-height:.95;color:var(--sun)}\n.alt{color:#BFD8C6;font-size:14.5px;font-weight:600}\n.lines{list-style:none;margin:22px 0 0;padding:16px 0 0;border-top:1px solid rgba(255,255,255,.14);display:grid;gap:9px;font-size:14.5px}\n.lines li{display:flex;justify-content:space-between;gap:14px}\n.lines li span:first-child{color:#CFE2D4}\n.lines li.total{border-top:1px solid rgba(255,255,255,.14);padding-top:12px;margin-top:4px;font-weight:800;font-size:16px}\n.lines li.total span:first-child{color:#fff}\n.sum-trip{margin-top:18px;background:rgba(255,255,255,.07);border-radius:18px;padding:14px 16px;font-size:14px;color:#CFE2D4}\n.sum-trip b{color:#fff}\n.summary .btn{width:100%;justify-content:center;margin-top:18px}\n.fine{font-size:12.5px;color:#8FAE99;margin:14px 0 0;line-height:1.5}\n\n\n/* ---------- VERIFY ---------- */\n.verify{padding:0 0 120px}\n.verify .h2{font-size:clamp(40px,5vw,68px)}\n.qrbox{align-self:start}\n.verify-head{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:end;margin-bottom:40px}\n.vcard{display:grid;grid-template-columns:1.35fr .9fr;gap:28px;background:var(--paper);border-radius:36px;padding:36px;box-shadow:inset 0 0 0 1.5px var(--line)}\n.rec{margin:0}\n.rec\u003ediv{display:grid;grid-template-columns:170px 1fr;gap:18px;padding:18px 0;border-top:1px solid var(--line)}\n.rec\u003ediv:first-child{border-top:0;padding-top:4px}\n.rec dt{font-weight:700;font-size:14px;color:var(--muted);padding-top:2px}\n.rec dd{margin:0;font-weight:600}\n.rec dd small{display:block;font-weight:500;color:var(--muted);font-size:14.5px;margin-top:2px}\n.rec dd a{color:var(--fairway);font-weight:700;font-size:14.5px}\n.lic{font-family:var(--display);font-weight:900;font-size:44px;line-height:1;color:var(--deep);display:block}\n.valid{display:inline-flex;align-items:center;gap:8px;margin-top:8px;background:var(--mist);color:var(--fairway);font-weight:700;font-size:13.5px;padding:5px 12px;border-radius:999px}\n.valid i{width:8px;height:8px;border-radius:50%;background:#2BA560}\n.qrbox{background:var(--deep);color:#fff;border-radius:28px;padding:26px;display:flex;flex-direction:column;gap:14px}\n.qrbox h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:30px;line-height:1;margin:0}\n.qrbox p{margin:0;color:#BFD8C6;font-size:15px}\n.qr{background:#fff;border-radius:20px;padding:14px;width:min(210px,100%);aspect-ratio:1;align-self:center}\n.qrbox .btn{justify-content:center}\n.team{margin-top:22px}\n.team h3{font-size:15px;margin:0 0 12px;color:var(--muted)}\n.people{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}\n.person{display:flex;gap:10px;align-items:center;background:var(--chalk);border-radius:18px;padding:12px;text-decoration:none}\n.person span{flex:0 0 38px;height:38px;border-radius:50%;background:var(--fairway);color:#fff;display:grid;place-items:center;font-weight:800}\n.person b{display:block;font-size:15px}\n.person small{color:var(--muted);font-weight:600;font-size:13px;white-space:nowrap}\n.person:hover{background:var(--mist)}\n@media (max-width:980px){.verify-head,.vcard{grid-template-columns:1fr}}\n@media (max-width:1100px){\n .nav-links{display:none;position:absolute;top:72px;left:16px;right:16px;flex-direction:column;align-items:stretch;border-radius:24px;padding:10px;box-shadow:0 16px 40px rgba(15,36,25,.18);background:#fff}\n .nav-links.open{display:flex}\n .nav-links button{text-align:left;font-size:16px;padding:14px 16px}\n .menu-btn{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:0;background:#fff;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.08)}\n}\n@media (max-width:720px){.vcard{padding:22px}.rec\u003ediv{grid-template-columns:1fr;gap:4px}.people{grid-template-columns:1fr}}\n\n\n/* ---------- REAL GOLFERS GALLERY ---------- */\n.real{padding:110px 0 40px;overflow:hidden}\n.real-head{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:end;margin-bottom:44px}\n.marquee{display:flex;flex-direction:column;gap:16px}\n.track{display:flex;gap:16px;width:max-content;animation:slide 70s linear infinite}\n.track.rev{animation-direction:reverse;animation-duration:85s}\n.marquee:hover .track{animation-play-state:paused}\n.track figure{margin:0;height:280px;flex:0 0 auto;border-radius:24px;overflow:hidden;position:relative}\n.track img{height:100%;width:auto;object-fit:cover}\n.track figure.tall img{width:210px}\n.track figure.wide img{width:374px}\n.track figure.sq img{width:280px}\n.track figcaption{position:absolute;left:12px;right:12px;bottom:12px;background:rgba(6,42,26,.82);color:#fff;font-size:13.5px;font-weight:700;padding:8px 12px;border-radius:14px}\n@keyframes slide{to{transform:translateX(-50%)}}\n.real-note{margin-top:22px;text-align:center;color:var(--muted);font-weight:600;font-size:15px}\n.cta{background:linear-gradient(rgba(6,42,26,.86),rgba(6,42,26,.92)),url(/images/china/china-02-0bfca9f287.jpg) center/cover no-repeat}\n@media (max-width:980px){.real-head{grid-template-columns:1fr}}\n@media (max-width:720px){.track figure{height:200px}.track figure.tall img{width:150px}.track figure.wide img{width:267px}.track figure.sq img{width:200px}}\n@media (prefers-reduced-motion:reduce){.track{animation:none}.marquee{overflow-x:auto}}\n\n\n/* ---------- MEMBERS + PARTNERS ---------- */\n.members{margin-top:44px;background:var(--paper);border-radius:32px;padding:30px 32px;display:grid;grid-template-columns:auto 1fr;gap:32px;align-items:center;box-shadow:inset 0 0 0 1.5px var(--line)}\n.members h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:28px;line-height:1;margin:0;max-width:9ch}\n.logos{display:flex;align-items:center;justify-content:space-around;gap:28px;flex-wrap:wrap}\n.logos figure{margin:0;text-align:center}\n.logos img{height:92px;width:auto;margin:0 auto}\n.logos figcaption{font-size:13px;color:var(--muted);font-weight:600;margin-top:8px;max-width:22ch}\n.partners{margin-top:18px;background:var(--deep);color:#fff;border-radius:32px;padding:28px 0 26px;overflow:hidden}\n.partners-top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;padding:0 32px 20px}\n.partners-top b{font-family:var(--display);font-weight:900;font-size:64px;line-height:.9;color:var(--sun)}\n.partners-top span{display:block;font-weight:700;color:#CFE2D4;margin-top:6px}\n.partners-top p{margin:0;color:#BFD8C6;font-size:15px;max-width:40ch}\n.names{list-style:none;margin:0;padding:0;display:flex;gap:10px;width:max-content;animation:slide 60s linear infinite}\n.partners:hover .names{animation-play-state:paused}\n.names li{white-space:nowrap;background:rgba(255,255,255,.08);border-radius:999px;padding:10px 18px;font-weight:700;font-size:14.5px;color:#EAF3EC}\n@media (max-width:720px){.members{grid-template-columns:1fr;padding:24px}.logos img{height:72px}.partners-top{padding:0 22px 18px}}\n@media (prefers-reduced-motion:reduce){.names{animation:none;flex-wrap:wrap;width:auto;padding:0 32px}}\n\n\n/* ---------- TRAVEL INFO (visual tiles) ---------- */\n.travel{padding:100px 0}\n.travel-top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;flex-wrap:wrap}\n.tap-hint{margin:0;font-weight:700;color:var(--muted);font-size:15px}\n.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:start}\n.tile{border-radius:30px;overflow:hidden;position:relative}\n.tile summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:24px 24px 26px;min-height:360px;position:relative}\n.tile summary::-webkit-details-marker{display:none}\n.t-label{font-weight:800;font-size:13px;letter-spacing:.08em;text-transform:uppercase;opacity:.7}\n.t-big{font-family:var(--display);font-weight:900;font-size:38px;line-height:.95;text-transform:uppercase;margin-top:auto}\n.t-sub{font-weight:600;font-size:15px;opacity:.8}\n.t-more{position:absolute;right:18px;top:18px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:20px;background:rgba(255,255,255,.2);transition:transform .2s ease}\n.tile[open] .t-more{transform:rotate(45deg)}\n.t-detail{padding:0 24px 22px;font-size:15px;line-height:1.5}\n.t-detail p{margin:0;padding:10px 0;border-top:1px solid rgba(255,255,255,.18)}\n.t-fly{background:var(--deep);color:#fff}\n.route{width:100%;height:auto;margin:6px 0 4px}\n.route .city{font-family:var(--display);font-weight:900;font-size:22px;fill:#fff}\n.t-fly .t-big{color:var(--sun);font-size:58px}\n.t-sky{background:linear-gradient(180deg,#CFE6F5,#EAF5FB);color:var(--deep)}\n.t-sky .t-more,.t-halal .t-more{background:rgba(6,42,26,.08)}\n.t-sky .t-detail p,.t-halal .t-detail p{border-top-color:rgba(6,42,26,.12)}\n.wx{list-style:none;margin:10px 0 12px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}\n.wx li{background:rgba(255,255,255,.5);border-radius:14px;padding:6px 2px 4px;text-align:center;opacity:.55}\n.wx li.best{opacity:1;background:#fff;box-shadow:inset 0 0 0 2.5px #2BA560}\n.wx .wi svg{width:32px;height:32px;display:block;margin:0 auto}\n.wx small{font-weight:800;font-size:11.5px}\n.t-pay{background:var(--sun);color:var(--deep)}\n.t-pay .t-more{background:rgba(6,42,26,.1)}\n.t-pay .t-detail p{border-top-color:rgba(6,42,26,.15)}\n.paybar{display:flex;height:70px;border-radius:18px;overflow:hidden;margin-top:22px;box-shadow:0 8px 20px rgba(6,42,26,.14)}\n.paybar span{flex:1;display:grid;place-items:center;font-family:var(--display);font-weight:900;font-size:32px}\n.paybar .p1{background:var(--deep);color:var(--sun)}\n.paybar .p2{background:#fff;color:var(--deep);background-image:repeating-linear-gradient(135deg,transparent 0 10px,rgba(6,42,26,.07) 10px 20px)}\n.paycap{display:flex;justify-content:space-between;font-weight:700;font-size:13px;margin-top:8px}\n.t-halal{background:#FFF1E6;color:var(--deep)}\n.halal-ic svg{width:130px;height:130px;display:block;margin:10px auto 0;animation:float 3.5s ease-in-out infinite}\n@keyframes float{50%{transform:translateY(-6px)}}\nhtml[lang=zh-Hans] .t-big,html[lang=zh-Hans] .t-fly .t-big{font-size:34px;line-height:1.1}\n@media (max-width:1100px){.tiles{grid-template-columns:1fr 1fr}}\n@media (max-width:600px){.tiles{grid-template-columns:1fr}.tile summary{min-height:0}}\n@media (prefers-reduced-motion:reduce){.halal-ic svg{animation:none}}\n\nhtml[lang=zh-Hans] .display{letter-spacing:0;line-height:1.08}\n@media (max-width:720px){.langs button{padding:7px 8px;font-size:12px}}\n\n/* ---------- PHOTO OBJECTS ---------- */\n.t-fly summary{overflow:hidden}\n.t-fly .t-big,.t-fly .t-sub{position:relative;z-index:1}\n.t-obj.passport{position:absolute;right:-16px;top:150px;width:108px;transform:rotate(-12deg);filter:drop-shadow(0 12px 18px rgba(0,0,0,.35));pointer-events:none}\n.halal-ic{position:relative;display:block;margin:6px auto 0;width:210px}\n.halal-ic img{width:100%;height:auto;display:block;filter:drop-shadow(0 14px 18px rgba(6,42,26,.18));animation:float 3.5s ease-in-out infinite}\n.halal-ic b{position:absolute;right:4px;top:6px;background:var(--fairway);color:#fff;font-size:12px;font-weight:800;letter-spacing:.06em;padding:6px 10px;border-radius:999px;box-shadow:0 4px 10px rgba(6,42,26,.2)}\n.photo-stack img.lava-obj{box-shadow:none;border-radius:0;object-fit:contain;height:auto;position:absolute;left:-30px;bottom:-40px;width:150px;filter:drop-shadow(0 16px 20px rgba(0,0,0,.25));z-index:2}\n.pk-head{position:relative}\n.pk-head .lede{margin-right:130px}\n.bag-obj{position:absolute;right:0;top:-30px;width:110px;height:auto;filter:drop-shadow(0 14px 18px rgba(6,42,26,.2));transform:rotate(6deg)}\n.cta{position:relative}\n.cta .wrap{position:relative;z-index:1}\n.cheer{position:absolute;right:max(24px,calc(50% - 640px));bottom:0;height:88%;max-height:560px;width:auto;z-index:0;filter:drop-shadow(0 20px 40px rgba(0,0,0,.35))}\n@media (min-width:1100px){.cta{text-align:left}.cta .wrap{padding-right:34%}.cta p{margin-left:0}.cta .row{justify-content:flex-start}}\n@media (max-width:1099px){.cheer{position:relative;display:block;height:auto;width:min(360px,80%);margin:0 auto -110px;right:auto}}\n.calc-head{position:relative}\n.calc-head .lede{margin-right:190px}\n.calc-golfer{position:absolute;right:0;bottom:-44px;height:250px;width:auto;filter:drop-shadow(0 16px 24px rgba(6,42,26,.2))}\n.ball-obj{width:34px;height:34px;vertical-align:middle;margin-right:10px;animation:roll 6s ease-in-out infinite}\n@keyframes roll{50%{transform:translateX(-14px) rotate(-200deg)}}\n@media (max-width:720px){.bag-obj,.calc-golfer{display:none}.pk-head .lede,.calc-head .lede{margin-right:0}.lava-obj{width:110px;left:-10px}.t-obj.passport{width:96px;bottom:auto;top:120px}}\n@media (prefers-reduced-motion:reduce){.halal-ic img,.ball-obj{animation:none}}\n\n\n/* ---------- HUMAN BANDS ---------- */\n.band{display:block;position:relative;overflow:hidden;color:#fff;background:linear-gradient(90deg,rgba(6,42,26,.94) 0%,rgba(6,42,26,.82) 45%,rgba(6,42,26,.55) 100%),var(--bg) center/cover no-repeat;min-height:520px}\n.band .wrap{margin:0 auto;position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;min-height:520px}\n.band-copy{padding:70px 0}\n.band-copy .kicker{color:var(--sun)}\n.band h2{font-size:clamp(46px,6vw,88px)}\n.band p.sub{color:#D7E7DC;font-size:clamp(16px,1.5vw,19px);max-width:40ch;margin:18px 0 26px}\n.band .band-person{position:absolute;right:max(0px,calc(50% - 640px));bottom:0;height:96%;max-height:600px;width:auto;filter:drop-shadow(0 24px 40px rgba(0,0,0,.4));pointer-events:none}\n.band.flip{background:linear-gradient(270deg,rgba(6,42,26,.94) 0%,rgba(6,42,26,.82) 45%,rgba(6,42,26,.55) 100%),var(--bg) center/cover no-repeat}\n.band.flip .wrap{grid-template-columns:.9fr 1.1fr}\n.band.flip .band-copy{grid-column:2}\n.band.flip .band-person{right:auto;left:max(0px,calc(50% - 640px));height:auto;max-height:560px;width:54%;max-width:720px}\n.hotel-photos{position:relative}\n.drink{position:absolute;left:-60px;bottom:-60px;width:250px;filter:drop-shadow(0 20px 30px rgba(0,0,0,.35));z-index:2;pointer-events:none}\n.glove{display:block;width:170px;margin-top:26px;transform:rotate(-8deg);filter:drop-shadow(0 16px 20px rgba(6,42,26,.2))}\n@media (max-width:900px){\n .band,.band .wrap{min-height:0}\n .band .wrap,.band.flip .wrap{grid-template-columns:1fr}\n .band.flip .band-copy{grid-column:1}\n .band-copy{padding:60px 0 0}\n .band .band-person,.band.flip .band-person{position:relative;left:auto;right:auto;display:block;height:auto;width:min(420px,90%);margin:10px auto 0}\n .drink{width:160px;left:-10px;bottom:-40px}\n}\n\n\n/* ---------- CHAT MOCK ---------- */\n.chat{margin-top:30px;max-width:340px;background:#ECE5DD;border-radius:24px;overflow:hidden;box-shadow:0 20px 40px rgba(6,42,26,.14)}\n.chat-top{display:flex;gap:12px;align-items:center;background:#075E54;color:#fff;padding:12px 16px}\n.chat-top b{display:block;font-size:15px}\n.chat-top small{font-size:12px;color:#CDE8E2}\n.chat-av{width:36px;height:36px;border-radius:50%;background:var(--sun);color:var(--deep);display:grid;place-items:center;font-weight:900}\n.chat-body{padding:14px;display:flex;flex-direction:column;gap:8px;min-height:190px}\n.msg{margin:0;max-width:82%;padding:9px 12px;border-radius:14px;font-size:14.5px;line-height:1.4;box-shadow:0 1px 1px rgba(0,0,0,.08)}\n.msg.me{align-self:flex-end;background:#DCF8C6;border-bottom-right-radius:4px}\n.msg.them{align-self:flex-start;background:#fff;border-bottom-left-radius:4px}\n.msg.typing{align-self:flex-start;background:#fff;display:flex;gap:4px;padding:12px 14px}\n.msg.typing i{width:7px;height:7px;border-radius:50%;background:#9AA;animation:dot 1s infinite}\n.msg.typing i:nth-child(2){animation-delay:.15s}.msg.typing i:nth-child(3){animation-delay:.3s}\n@keyframes dot{50%{transform:translateY(-4px);opacity:.5}}\n.js .chat .msg{opacity:0;transform:translateY(8px);transition:opacity .35s ease,transform .35s ease}\n.js .chat.play .me{opacity:1;transform:none;transition-delay:.2s}\n.js .chat.play .typing{opacity:1;transform:none;transition-delay:.9s}\n.js .chat.play.done .typing{display:none}\n.js .chat.play.done .them{opacity:1;transform:none}\n\n\n/* ---------- SCROLL REVEAL (gentle, once, skipped for reduced motion) ---------- */\n.js .rv{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}\n.js .rv.rv-up{transform:translateY(60px)}\n.js .rv.rv-zoom{transform:scale(.94)}\n.js .rv.in{opacity:1;transform:none}\n@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}}\n\n\n/* ---------- TOUCH TARGETS ---------- */\n.cc-dots button,.rv-nav button{position:relative}\n.cc-dots button::after,.rv-nav button::after{content:\"\";position:absolute;inset:-14px}\n.langs button{min-height:40px;min-width:40px}\nfooter a,footer button,.rec dd a,.license button{display:inline-block;padding:10px 0}\nfooter ul{gap:0}\n\n\n/* ---------- TEAM ---------- */\n.team{padding:40px 0 110px}\n.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}\n.team-photos{position:relative;aspect-ratio:1/0.9}\n.team-photos img{position:absolute;object-fit:cover;border-radius:28px;box-shadow:0 24px 50px rgba(15,36,25,.2)}\n.tp1{left:0;top:0;width:74%;height:82%}\n.tp2{right:0;bottom:0;width:40%;height:62%;border:8px solid var(--chalk);transform:rotate(3deg)}\n.tp-tag{position:absolute;left:18px;bottom:22%;background:var(--sun);color:var(--deep);font-weight:800;font-size:14px;padding:8px 14px;border-radius:999px;transform:rotate(-3deg)}\n@media (max-width:900px){.team-grid{grid-template-columns:1fr;gap:36px}}\n\n\n/* ---------- EVENTS STRIP ---------- */\n.ev-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-top:80px;margin-bottom:22px}\n.ev-head .display{font-size:clamp(28px,3vw,40px);font-weight:800;color:var(--deep)}\n.ev-nav{display:flex;gap:10px}\n.ev-btn{width:48px;height:48px;border-radius:50%;border:0;background:var(--deep);color:#fff;font-size:20px;font-weight:800;cursor:pointer}\n.ev-btn:disabled{opacity:.3;cursor:default}\n.ev-row{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:max(24px,calc(50% - 600px));scroll-behavior:smooth;padding:4px max(24px,calc(50% - 600px)) 18px;scrollbar-width:none;-webkit-overflow-scrolling:touch}\n.ev-row::-webkit-scrollbar{display:none}\n.ev{flex:0 0 min(78vw,340px);margin:0;scroll-snap-align:start;scroll-margin-left:max(24px,calc(50% - 600px));background:var(--paper);border-radius:24px;overflow:hidden;box-shadow:0 1px 0 var(--line)}\n.ev img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}\n.ev figcaption{padding:14px 16px 16px}\n.ev figcaption b{display:block;font-size:15.5px;line-height:1.3}\n.ev figcaption span{font-size:14px;color:var(--muted);font-weight:600}\n@media (max-width:720px){.ev-nav{display:none}.ev-head{margin-top:56px}}\n@media (prefers-reduced-motion:reduce){.ev-row{scroll-behavior:auto}}\n\n\n/* ---------- LEGAL PAGE ---------- */\n#page-privacy{padding:120px 0 90px}\n.legal{max-width:760px}\n.legal h1{font-size:clamp(48px,7vw,84px);color:var(--deep)}\n.legal-date{color:var(--muted);font-weight:600;margin:10px 0 28px}\n.legal h2{font-size:22px;margin:34px 0 10px;color:var(--deep)}\n.legal p,.legal li{font-size:16.5px;line-height:1.7}\n.legal ul{padding-left:22px}\n.legal a{color:var(--fairway);font-weight:700}\n\n\n/* ---------- COURSE CARD NAV ---------- */\n.cc-step{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-6px 0 12px}\n.cc-step span{font-weight:700;font-size:14px;color:var(--muted)}\n.cc-arrow{width:44px;height:44px;border-radius:50%;border:0;background:var(--mist);color:var(--deep);font-size:20px;font-weight:800;cursor:pointer}\n.cc-arrow:hover{background:var(--sun)}\n.course-card.flash{animation:cardflash .9s ease}\n@keyframes cardflash{0%{box-shadow:0 0 0 0 rgba(242,212,61,.9)}40%{box-shadow:0 0 0 8px rgba(242,212,61,.7)}100%{box-shadow:0 0 0 0 rgba(242,212,61,0)}}\n.map-hint{display:none}\n@media (max-width:979px){.map-hint{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--sun);font-weight:700;font-size:14px;margin:10px 0 0}}\n@media (prefers-reduced-motion:reduce){.course-card.flash{animation:none}}\n\n[hidden]{display:none!important}\n\n/* ---------- RESPONSIVE ---------- */\n@media (max-width:980px){\n .why-grid,.explorer,.hotel-grid,.trust-top,.faq-grid,.calc{grid-template-columns:1fr}\n .course-card,.summary{position:static}\n .reasons{grid-template-columns:1fr 1fr}\n .strip ul{grid-template-columns:1fr 1fr}\n .pk-grid{grid-template-columns:1fr}\n .foot{grid-template-columns:1fr 1fr}\n}\n@media (max-width:720px){\n body{font-size:16px}\n .hero-q{font-size:40px}\n .hero-sub{font-size:14.5px;padding:0 8px}\n .nav-links{display:none;position:absolute;top:72px;left:16px;right:16px;flex-direction:column;align-items:stretch;border-radius:24px;padding:10px;box-shadow:0 16px 40px rgba(15,36,25,.18);background:#fff}\n .nav-links.open{display:flex}\n .nav-links button{text-align:left;font-size:16px;padding:14px 16px}\n .menu-btn{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:0;background:#fff;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.08)}\n .nav .btn-flag.nav-cta{display:none}\n .reasons,.incl,.counters,.facts{grid-template-columns:1fr}\n .strip ul{grid-template-columns:1fr}\n .foot{grid-template-columns:1fr}\n .cc-stats b{font-size:24px}\n .days li{grid-template-columns:52px 1fr}\n .pk-body .display{font-size:34px}\n}\n@media (prefers-reduced-motion:reduce){\n html{scroll-behavior:auto}\n .hero{height:100vh}\n .scroll-hint svg{animation:none}\n}\n\u003c/style\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003c!-- Google Tag Manager (noscript) --\u003e\n\u003cnoscript\u003e\u003ciframe src=\"https://www.googletagmanager.com/ns.html?id=GTM-5QPMCD6F\" height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"\u003e\u003c/iframe\u003e\u003c/noscript\u003e\n\u003cnoscript\u003e\u003cimg height=\"1\" width=\"1\" style=\"display:none\" src=\"https://www.facebook.com/tr?id=2234432016903394\u0026amp;ev=PageView\u0026amp;noscript=1\" alt=\"\"\u003e\u003c/noscript\u003e\n\n\u003cscript\u003edocument.documentElement.classList.add(\"js\")\u003c/script\u003e\n\n\u003c!-- ================= NAV ================= --\u003e\n\u003cheader class=\"nav\" id=\"nav\"\u003e\n \u003cdiv class=\"wrap nav-in\"\u003e\n \u003cbutton class=\"logo\" data-go=\"home\" aria-label=\"Taigolf China home\"\u003e\u003cimg src=\"/images/china/china-03-d509eaa36d.png\" alt=\"Taigolf\" class=\"logo-img\"\u003e\u003cspan\u003eCHINA\u003c/span\u003e\u003c/button\u003e\n \u003cnav class=\"nav-links\" id=\"navLinks\" aria-label=\"Main\"\u003e\n \u003cbutton data-go=\"home\" data-scroll=\"courses\"\u003eCourses\u003c/button\u003e\n \u003cbutton data-go=\"home\" data-scroll=\"packages\"\u003ePackages\u003c/button\u003e\n \u003cbutton data-go=\"home\" data-scroll=\"travel\"\u003eTravel info\u003c/button\u003e\n \u003cbutton data-go=\"home\" data-scroll=\"faq\"\u003eFAQ\u003c/button\u003e\n \u003cbutton data-go=\"home\" data-scroll=\"verify\"\u003eCheck us\u003c/button\u003e\n \u003cbutton data-go=\"calculator\" id=\"navCalc\"\u003ePrice calculator\u003c/button\u003e\n \u003c/nav\u003e\n \u003cdiv style=\"display:flex;gap:10px;align-items:center\"\u003e\n \u003cdiv class=\"langs\" role=\"group\" aria-label=\"Language\"\u003e\u003cbutton data-lang=\"en\" aria-pressed=\"true\"\u003eEN\u003c/button\u003e\u003cbutton data-lang=\"ms\" aria-pressed=\"false\"\u003eBM\u003c/button\u003e\u003cbutton data-lang=\"zh\" aria-pressed=\"false\"\u003e中文\u003c/button\u003e\u003c/div\u003e\n \u003ca class=\"btn btn-flag nav-cta\" href=\"https://wa.me/66611823596\" target=\"_blank\" rel=\"noopener\"\u003eWhatsApp us\u003c/a\u003e\n \u003cbutton class=\"menu-btn\" id=\"menuBtn\" aria-label=\"Open menu\" aria-expanded=\"false\" aria-controls=\"navLinks\"\u003e\u003csvg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#0F2419\" stroke-width=\"2.4\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M4 7h16M4 12h16M4 17h16\"/\u003e\u003c/svg\u003e\u003c/button\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n\u003c/header\u003e\n\n\u003c!-- ================= HOME PAGE ================= --\u003e\n\u003cmain id=\"page-home\"\u003e\n\n \u003csection class=\"hero\" id=\"hero\" aria-label=\"Flying to Haikou\"\u003e\n \u003cdiv class=\"stage\" id=\"stage\"\u003e\n \u003cdiv class=\"layer\" id=\"view\"\u003e\n \u003cdiv class=\"layer golf\" style=\"background-image:url(/images/china/china-04-50142ff138.jpg)\" role=\"img\" aria-label=\"Blackstone Course fairway at Mission Hills Haikou\"\u003e\u003c/div\u003e\n \u003cdiv class=\"layer sky\"\u003e\n \u003c/div\u003e\n \u003cdiv class=\"layer cloud-pass\" id=\"cloudpass\"\u003e\n \u003cdiv class=\"cloud\" style=\"left:-20%;top:-10%;width:90vmax;height:60vmax\"\u003e\u003c/div\u003e\n \u003cdiv class=\"cloud\" style=\"left:30%;top:20%;width:90vmax;height:70vmax\"\u003e\u003c/div\u003e\n \u003cdiv class=\"cloud\" style=\"left:-10%;top:50%;width:80vmax;height:60vmax\"\u003e\u003c/div\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n\n \u003cdiv class=\"cabin\" id=\"win\"\u003e\u003cpicture\u003e\u003csource media=\"(max-width:720px)\" srcset=\"/images/china/china-05-740101b3b4.webp\"\u003e\u003cimg src=\"/images/china/china-06-9aaa167568.webp\" alt=\"\"\u003e\u003c/picture\u003e\u003c/div\u003e\n\n \u003cdiv class=\"cabin-copy\"\u003e\n \u003cdiv class=\"wrap\"\u003e\n \u003cp class=\"kicker hero-kick\"\u003eGolf trips for Malaysian golfers\u003c/p\u003e\n \u003ch2 class=\"display hero-q\"\u003eGolf in China? Complicated?\u003c/h2\u003e\n \u003cp class=\"hero-sub\"\u003eNot with us. Direct 3.5-hour flight from KL, an English-speaking team, and everything booked. You just play.\u003c/p\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003cdiv class=\"scroll-hint\"\u003eScroll to land\n \u003csvg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M6 9l6 6 6-6\"/\u003e\u003c/svg\u003e\n \u003c/div\u003e\n\n \u003cdiv class=\"arrive\" id=\"arrive\"\u003e\n \u003cdiv class=\"wrap\"\u003e\n \u003ch1 class=\"display\"\u003eNo stress. Just 18 holes.\u003c/h1\u003e\n \u003cp\u003eGolf holidays at Mission Hills Haikou, planned from start to finish by Taigolf — the golf tour team trusted by golfers across Asia for 7+ years.\u003c/p\u003e\n \u003cdiv class=\"row\"\u003e\n \u003cbutton class=\"btn btn-flag\" data-go=\"home\" data-scroll=\"packages\"\u003eSee Haikou packages\u003c/button\u003e\n \u003cbutton class=\"btn btn-ghost\" data-go=\"calculator\"\u003ePrice my trip\u003c/button\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/section\u003e\n\n \u003csection class=\"strip\" aria-label=\"What we arrange\"\u003e\n \u003csvg class=\"wave wave-top\" viewBox=\"0 0 1440 60\" preserveAspectRatio=\"none\" aria-hidden=\"true\"\u003e\u003cpath d=\"M0 60V28C180 4 360 0 540 16s360 40 540 30 270-34 360-40v66z\" fill=\"#0E5132\"/\u003e\u003c/svg\u003e\n \u003cdiv class=\"wrap\"\u003e\n \u003cul\u003e\n \u003cli\u003e\u003cspan class=\"ic\"\u003e\u003csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M8 21V3l10 4-10 4\"/\u003e\u003cpath d=\"M4 21h14\"/\u003e\u003c/svg\u003e\u003c/span\u003e\u003cdiv\u003eTee times\u003cspan\u003eGreen fees, cart and caddie booked\u003c/span\u003e\u003c/div\u003e\u003c/li\u003e\n \u003cli\u003e\u003cspan class=\"ic\"\u003e\u003csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M3 20V9l9-5 9 5v11\"/\u003e\u003cpath d=\"M9 20v-6h6v6\"/\u003e\u003c/svg\u003e\u003c/span\u003e\u003cdiv\u003eResort stay\u003cspan\u003eBreakfast included every day\u003c/span\u003e\u003c/div\u003e\u003c/li\u003e\n \u003cli\u003e\u003cspan class=\"ic\"\u003e\u003csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"10\" rx=\"3\"/\u003e\u003ccircle cx=\"7.5\" cy=\"17.5\" r=\"1.5\"/\u003e\u003ccircle cx=\"16.5\" cy=\"17.5\" r=\"1.5\"/\u003e\u003c/svg\u003e\u003c/span\u003e\u003cdiv\u003eAirport transfers\u003cspan\u003ePrivate pick-up and drop-off\u003c/span\u003e\u003c/div\u003e\u003c/li\u003e\n \u003cli\u003e\u003cspan class=\"ic\"\u003e\u003csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M21 12a8 8 0 1 1-3.2-6.4L21 4v5h-5\"/\u003e\u003c/svg\u003e\u003c/span\u003e\u003cdiv\u003e24-hour support\u003cspan\u003eOn WhatsApp, the whole trip\u003c/span\u003e\u003c/div\u003e\u003c/li\u003e\n \u003c/ul\u003e\n \u003c/div\u003e\n \u003c/section\u003e\n\n \u003csection class=\"why\" aria-labelledby=\"why-h\"\u003e\n \u003cdiv class=\"wrap why-grid\"\u003e\n \u003cdiv class=\"photo-stack\"\u003e\n \u003cimg class=\"ps1\" src=\"/images/china/china-07-147314cf67.jpg\" alt=\"Lava Fields Course with black volcanic rock beside the fairway\"\u003e\n \u003cimg class=\"ps2\" src=\"/images/china/china-08-58a8b9ea42.jpg\" alt=\"Panda-shaped bunkers at Meadow Links Course\"\u003e\n \u003cimg class=\"lava-obj\" src=\"/images/china/china-09-03ff18ad60.webp\" alt=\"\" aria-hidden=\"true\"\u003e\n \u003c/div\u003e\n \u003cdiv\u003e\n \u003cp class=\"kicker\"\u003eWhy Haikou\u003c/p\u003e\n \u003ch2 class=\"display h2\" id=\"why-h\"\u003eGolf that looks like nowhere else\u003c/h2\u003e\n \u003cp class=\"lede\" style=\"margin-top:20px\"\u003eMission Hills Haikou is built on ancient lava fields. Black volcanic rock, old lychee trees and stone walls line the fairways — it feels like playing on the moon. After your round, you soak in hot springs drawn from 800 metres underground.\u003c/p\u003e\n \u003cdiv class=\"facts\"\u003e\n \u003cdiv class=\"fact\"\u003e\u003cb\u003e10\u003c/b\u003e\u003cspan\u003e18-hole courses in one resort\u003c/span\u003e\u003c/div\u003e\n \u003cdiv class=\"fact\"\u003e\u003cb\u003e168\u003c/b\u003e\u003cspan\u003eHot-spring pools — a Guinness World Record\u003c/span\u003e\u003c/div\u003e\n \u003cdiv class=\"fact\"\u003e\u003cb\u003e7,808\u003c/b\u003e\u003cspan\u003eYards at Blackstone, the flagship course\u003c/span\u003e\u003c/div\u003e\n \u003cdiv class=\"fact\"\u003e\u003cb\u003e2027\u003c/b\u003e\u003cspan\u003eDP World Tour returns to Blackstone\u003c/span\u003e\u003c/div\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/section\u003e\n\n\n \u003csection class=\"band\" style=\"--bg:url(/images/china/china-10-6b5ec5bc6e.jpg)\" aria-labelledby=\"bandA-h\"\u003e\n \u003cdiv class=\"wrap\"\u003e\n \u003cdiv class=\"band-copy\"\u003e\n \u003cp class=\"kicker\"\u003eYour job on this trip\u003c/p\u003e\n \u003ch2 class=\"display\" id=\"bandA-h\"\u003eEnjoy the game. That's it.\u003c/h2\u003e\n \u003cp class=\"sub\"\u003eTee times, transfers, caddies and hot springs — all booked before you land.\u003c/p\u003e\n \u003cbutton class=\"btn btn-flag\" data-go=\"home\" data-scroll=\"packages\"\u003eSee the packages\u003c/button\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003cimg class=\"band-person\" src=\"/images/china/china-11-e659e755b9.webp\" alt=\"A smiling golfer holding a golf ball\"\u003e\n \u003c/section\u003e\n \u003csection class=\"courses\" id=\"courses\" aria-labelledby=\"courses-h\"\u003e\n \u003cdiv class=\"wrap\"\u003e\n \u003cp class=\"kicker\"\u003eExplore the courses\u003c/p\u003e\n \u003ch2 class=\"display h2\" id=\"courses-h\"\u003ePick your ten\u003c/h2\u003e\n \u003cp class=\"lede\" style=\"margin-top:18px\"\u003eTap a number on the map to see each course. Six courses are in our packages today — the others can be added on request.\u003c/p\u003e\n \u003cdiv class=\"explorer\"\u003e\n \u003cdiv class=\"map-card\"\u003e\n \u003csvg id=\"map\" viewBox=\"0 0 640 478\" role=\"group\" aria-label=\"Illustrated map of Mission Hills Haikou courses\"\u003e\n \u003cimage href=\"/images/china/china-12-b2aff01058.jpg\" x=\"0\" y=\"0\" width=\"640\" height=\"478\" preserveAspectRatio=\"xMidYMid slice\"/\u003e\n \u003cg id=\"pins\"\u003e\u003c/g\u003e\n \u003c/svg\u003e\n \u003cdiv class=\"course-tabs\" id=\"courseTabs\" role=\"group\" aria-label=\"Choose a course\"\u003e\u003c/div\u003e\n \u003cp class=\"map-hint\"\u003eTap a number — the course details open below ↓\u003c/p\u003e\n \u003cdiv class=\"map-note\"\u003e\u003cspan\u003eIllustration only — not to scale.\u003c/span\u003e\u003cspan class=\"legend\"\u003e\u003cspan\u003e\u003ci style=\"background:#fff\"\u003e\u003c/i\u003eIn packages\u003c/span\u003e\u003cspan\u003e\u003ci style=\"background:#8C948D\"\u003e\u003c/i\u003eOn request\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\n \u003c/div\u003e\n \u003carticle class=\"course-card\" aria-live=\"polite\"\u003e\n \u003cdiv class=\"cc-photo\"\u003e\n \u003cimg id=\"ccImg\" src=\"\" alt=\"\"\u003e\n \u003cspan class=\"cc-num\" id=\"ccNum\"\u003eNo. 1\u003c/span\u003e\u003cspan class=\"cc-fly\" id=\"ccFly\" hidden\u003eFlyover video\u003c/span\u003e\n \u003cdiv class=\"cc-dots\" id=\"ccDots\"\u003e\u003c/div\u003e\n \u003c/div\u003e\n \u003cdiv class=\"cc-body\"\u003e\n \u003cdiv class=\"cc-step\"\u003e\u003cbutton type=\"button\" class=\"cc-arrow\" id=\"ccPrev\" aria-label=\"Previous course\"\u003e←\u003c/button\u003e\u003cspan id=\"ccCount\"\u003eCourse 1 of 10\u003c/span\u003e\u003cbutton type=\"button\" class=\"cc-arrow\" id=\"ccNext\" aria-label=\"Next course\"\u003e→\u003c/button\u003e\u003c/div\u003e\n \u003ch3 class=\"display\" id=\"ccName\"\u003eBlackstone\u003c/h3\u003e\n \u003cp class=\"cc-tag\" id=\"ccTag\"\u003e\u003c/p\u003e\n \u003cdiv class=\"cc-stats\"\u003e\n \u003cdiv\u003e\u003cb id=\"ccPar\"\u003e73\u003c/b\u003e\u003cspan\u003ePar\u003c/span\u003e\u003c/div\u003e\n \u003cdiv\u003e\u003cb id=\"ccYds\"\u003e7,808\u003c/b\u003e\u003cspan\u003eYards\u003c/span\u003e\u003c/div\u003e\n \u003cdiv\u003e\u003cb id=\"ccHoles\"\u003e18\u003c/b\u003e\u003cspan\u003eHoles\u003c/span\u003e\u003c/div\u003e\n \u003c/div\u003e\n \u003cp class=\"cc-desc\" id=\"ccDesc\"\u003e\u003c/p\u003e\n \u003cdiv class=\"cc-foot\"\u003e\n \u003cspan class=\"surcharge\" id=\"ccSur\"\u003e\u003c/span\u003e\n \u003cbutton class=\"btn btn-flag\" id=\"ccAdd\"\u003eAdd to my trip\u003c/button\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/article\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/section\u003e\n\n \u003csection class=\"packages\" id=\"packages\" aria-labelledby=\"pk-h\"\u003e\n \u003cdiv class=\"wrap\"\u003e\n \u003cdiv class=\"pk-head\"\u003e\n \u003cdiv\u003e\n \u003cp class=\"kicker\"\u003eReady-made packages\u003c/p\u003e\n \u003ch2 class=\"display h2\" id=\"pk-h\"\u003e5 days, 4 nights, 3 rounds\u003c/h2\u003e\n \u003c/div\u003e\n \u003cimg class=\"bag-obj\" src=\"/images/china/china-13-aefbc6e13a.webp\" alt=\"\" aria-hidden=\"true\"\u003e\n \u003cp class=\"lede\"\u003eTwo ways to play Haikou. Prices are per person, sharing a twin room, for groups of 4 or 8 golfers.\u003c/p\u003e\n \u003c/div\u003e\n \u003cdiv class=\"pk-grid\"\u003e\n \u003carticle class=\"pk\"\u003e\n \u003cdiv class=\"pk-img\"\u003e\u003cimg src=\"/images/china/china-14-9e60b79410.jpg\" alt=\"Blackstone Course, host of the DP World Tour\"\u003e\u003cspan class=\"pk-badge\"\u003ePackage A\u003c/span\u003e\n \u003cdiv class=\"pk-price\"\u003e\u003csmall\u003eFrom, per person\u003c/small\u003e\u003cb data-price=\"6890\"\u003eRM 4,130\u003c/b\u003e\u003c/div\u003e\u003c/div\u003e\n \u003cdiv class=\"pk-body\"\u003e\n \u003ch3 class=\"display\"\u003eChampionship Trail\u003c/h3\u003e\n \u003cul class=\"days\"\u003e\n \u003cli\u003e\u003cb\u003eDay 1\u003c/b\u003e\u003cdiv\u003eArrive in Haikou\u003cem\u003eAirport pick-up, check in, evening at the hot springs\u003c/em\u003e\u003c/div\u003e\u003c/li\u003e\n \u003cli\u003e\u003cb\u003eDay 2\u003c/b\u003e\u003cdiv\u003eThe Vintage (No. 3)\u003cem\u003eClassic tree-lined layout, par 72\u003c/em\u003e\u003c/div\u003e\u003c/li\u003e\n \u003cli\u003e\u003cb\u003eDay 3\u003c/b\u003e\u003cdiv\u003eLava Fields (No. 5)\u003cem\u003eVolcanic championship course, plus a free 60-min spa\u003c/em\u003e\u003c/div\u003e\u003c/li\u003e\n \u003cli\u003e\u003cb\u003eDay 4\u003c/b\u003e\u003cdiv\u003eBlackstone (No. 1)\u003cem\u003eThe flagship — World Cup and DP World Tour venue\u003c/em\u003e\u003c/div\u003e\u003c/li\u003e\n \u003cli\u003e\u003cb\u003eDay 5\u003c/b\u003e\u003cdiv\u003eFly home\u003cem\u003eBreakfast, then airport drop-off\u003c/em\u003e\u003c/div\u003e\u003c/li\u003e\n \u003c/ul\u003e\n \u003cdiv class=\"row\"\u003e\n \u003cbutton class=\"btn btn-flag\" data-preset=\"A\"\u003ePrice this package\u003c/button\u003e\n \u003cspan class=\"pk-note\" style=\"margin:0\"\u003eSingle room: \u003cb data-price=\"8290\"\u003eRM 4,970\u003c/b\u003e\u003c/span\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/article\u003e\n \u003carticle class=\"pk\"\u003e\n \u003cdiv class=\"pk-img\"\u003e\u003cimg src=\"/images/china/china-15-5bb703fcef.jpg\" alt=\"Palm-lined fairway at Stone Quarry Course\"\u003e\u003cspan class=\"pk-badge\"\u003ePackage B\u003c/span\u003e\n \u003cdiv class=\"pk-price\"\u003e\u003csmall\u003eFrom, per person\u003c/small\u003e\u003cb data-price=\"4950\"\u003eRM 2,970\u003c/b\u003e\u003c/div\u003e\u003c/div\u003e\n \u003cdiv class=\"pk-body\"\u003e\n \u003ch3 class=\"display\"\u003eExplorer Trail\u003c/h3\u003e\n \u003cul class=\"days\"\u003e\n \u003cli\u003e\u003cb\u003eDay 1\u003c/b\u003e\u003cdiv\u003eArrive in Haikou\u003cem\u003eAirport pick-up, check in, evening at the hot springs\u003c/em\u003e\u003c/div\u003e\u003c/li\u003e\n \u003cli\u003e\u003cb\u003eDay 2\u003c/b\u003e\u003cdiv\u003eSandbelt Trails (No. 2)\u003cem\u003eWide fairways and big rolling greens, par 72\u003c/em\u003e\u003c/div\u003e\u003c/li\u003e\n \u003cli\u003e\u003cb\u003eDay 3\u003c/b\u003e\u003cdiv\u003eThe Vintage (No. 3)\u003cem\u003eClassic tree-lined layout, plus a free 60-min spa\u003c/em\u003e\u003c/div\u003e\u003c/li\u003e\n \u003cli\u003e\u003cb\u003eDay 4\u003c/b\u003e\u003cdiv\u003eMeadow Links (No. 6) or Stone Quarry (No. 7)\u003cem\u003ePanda bunkers, or old railway and quarry holes\u003c/em\u003e\u003c/div\u003e\u003c/li\u003e\n \u003cli\u003e\u003cb\u003eDay 5\u003c/b\u003e\u003cdiv\u003eFly home\u003cem\u003eBreakfast, then airport drop-off\u003c/em\u003e\u003c/div\u003e\u003c/li\u003e\n \u003c/ul\u003e\n \u003cdiv class=\"row\"\u003e\n \u003cbutton class=\"btn btn-flag\" data-preset=\"B\"\u003ePrice this package\u003c/button\u003e\n \u003cspan class=\"pk-note\" style=\"margin:0\"\u003eSingle room: \u003cb data-price=\"6350\"\u003eRM 3,810\u003c/b\u003e\u003c/span\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/article\u003e\n \u003c/div\u003e\n \u003cdiv class=\"incl\"\u003e\n \u003cdiv\u003e\n \u003ch3\u003eIncluded\u003c/h3\u003e\n \u003cul\u003e\n \u003cli\u003eAirport pick-up and drop-off\u003c/li\u003e\n \u003cli\u003e4 nights at Mission Hills Resort Haikou, with breakfast\u003c/li\u003e\n \u003cli\u003e3 weekday rounds: green fee, cart and caddie\u003c/li\u003e\n \u003cli\u003eHot-spring valley access and a 60-minute spa\u003c/li\u003e\n \u003cli\u003e24-hour support and travel accident insurance\u003c/li\u003e\n \u003c/ul\u003e\n \u003c/div\u003e\n \u003cdiv\u003e\n \u003ch3\u003eNot included\u003c/h3\u003e\n \u003cul\u003e\n \u003cli\u003eReturn flights\u003c/li\u003e\n \u003cli\u003eCaddie tip — about ¥200 per 18 holes\u003c/li\u003e\n \u003cli\u003eLunch, dinner and personal spending\u003c/li\u003e\n \u003cli\u003eChanges you ask for during the trip\u003c/li\u003e\n \u003c/ul\u003e\n \u003cp class=\"pk-note\"\u003eRM prices are estimates at ¥1 ≈ RM \u003cspan class=\"rate\"\u003e0.60\u003c/span\u003e. We confirm the final price in your quote.\u003c/p\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/section\u003e\n\n \u003csection class=\"hotel\" id=\"hotel\" aria-labelledby=\"hotel-h\"\u003e\n \u003csvg class=\"wave wave-top\" viewBox=\"0 0 1440 60\" preserveAspectRatio=\"none\" aria-hidden=\"true\"\u003e\u003cpath d=\"M0 60V20c200 30 420 40 640 20S1100 0 1440 26v34z\" fill=\"#0E5132\"/\u003e\u003c/svg\u003e\n \u003cdiv class=\"wrap hotel-grid\"\u003e\n \u003cdiv\u003e\n \u003cp class=\"kicker\"\u003eWhere you stay\u003c/p\u003e\n \u003ch2 class=\"display h2\" id=\"hotel-h\"\u003eSleep on the course\u003c/h2\u003e\n \u003cp class=\"lede\" style=\"margin-top:20px\"\u003eMission Hills Resort Haikou sits right among the volcanic courses, with balcony views over the fairways. Everything is on site, so there are no long drives between golf, dinner and bed.\u003c/p\u003e\n \u003cul class=\"perks\"\u003e\n \u003cli\u003e\u003csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M4 18c2-2 4-2 6 0s4 2 6 0 4-2 4-2\"/\u003e\u003cpath d=\"M8 13V6a2 2 0 0 1 4 0M14 13V6a2 2 0 0 1 4 0\"/\u003e\u003c/svg\u003e\u003cdiv\u003e\u003cb\u003eVolcanic hot-spring valley\u003c/b\u003e\u003cspan\u003e168 hot and cold pools — free for hotel guests. Perfect after 18 holes.\u003c/span\u003e\u003c/div\u003e\u003c/li\u003e\n \u003cli\u003e\u003csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M4 11h16M6 11V6h12v5M5 11l1 9h12l1-9\"/\u003e\u003c/svg\u003e\u003cdiv\u003e\u003cb\u003eAsian and international restaurants\u003c/b\u003e\u003cspan\u003eSeveral restaurants inside the resort. Tell us about any dietary needs and we'll plan around them.\u003c/span\u003e\u003c/div\u003e\u003c/li\u003e\n \u003cli\u003e\u003csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"8\"/\u003e\u003cpath d=\"M8 14c1.5 2 6.5 2 8 0\"/\u003e\u003c/svg\u003e\u003cdiv\u003e\u003cb\u003eFun for non-golfers too\u003c/b\u003e\u003cspan\u003eWater park, beach area, and a film town and museums nearby.\u003c/span\u003e\u003c/div\u003e\u003c/li\u003e\n \u003c/ul\u003e\n \u003c/div\u003e\n \u003cdiv class=\"hotel-photos\"\u003e\n \u003cimg src=\"/images/china/china-16-50c32ab9ce.jpg\" alt=\"View from Mission Hills Resort Haikou over the pools and golf courses\"\u003e\n \u003cimg src=\"/images/china/china-17-1191695a23.jpg\" alt=\"Hotel room with a king bed and garden view\"\u003e\n \u003cimg src=\"/images/china/china-18-17f561ce50.jpg\" alt=\"Hotel bathroom with a round bathtub\"\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/section\u003e\n\n\n \u003csection class=\"travel\" id=\"travel\" aria-labelledby=\"travel-h\"\u003e\n \u003cdiv class=\"wrap\"\u003e\n \u003cdiv class=\"travel-top\"\u003e\n \u003ch2 class=\"display h2\" id=\"travel-h\"\u003eBefore you go\u003c/h2\u003e\n \u003cp class=\"tap-hint\"\u003e\u003cimg class=\"ball-obj\" src=\"/images/china/china-19-4a7c4d76d1.webp\" alt=\"\" aria-hidden=\"true\"\u003eTap a card for details\u003c/p\u003e\n \u003c/div\u003e\n \u003cdiv class=\"tiles\"\u003e\n \u003cdetails class=\"tile t-fly\"\u003e\n \u003csummary\u003e\n \u003cspan class=\"t-label\"\u003eFlights\u003c/span\u003e\n \u003csvg class=\"route\" viewBox=\"0 0 400 220\" aria-hidden=\"true\"\u003e\n \u003cpath id=\"flyPath\" d=\"M60 180 C 140 60, 260 40, 340 50\" fill=\"none\" stroke=\"rgba(255,255,255,.35)\" stroke-width=\"3\" stroke-dasharray=\"2 10\" stroke-linecap=\"round\"/\u003e\n \u003ccircle cx=\"60\" cy=\"180\" r=\"9\" fill=\"#F2D43D\"/\u003e\u003ccircle cx=\"60\" cy=\"180\" r=\"18\" fill=\"none\" stroke=\"#F2D43D\" stroke-opacity=\".4\" stroke-width=\"2\"/\u003e\n \u003ccircle cx=\"340\" cy=\"50\" r=\"9\" fill=\"#FF5A45\"/\u003e\u003ccircle cx=\"340\" cy=\"50\" r=\"18\" fill=\"none\" stroke=\"#FF5A45\" stroke-opacity=\".45\" stroke-width=\"2\"/\u003e\n \u003ctext x=\"60\" y=\"214\" text-anchor=\"middle\" class=\"city\"\u003eKUL\u003c/text\u003e\n \u003ctext x=\"340\" y=\"24\" text-anchor=\"middle\" class=\"city\"\u003eHAK\u003c/text\u003e\n \u003cg\u003e\u003cpath d=\"M-14 0 L14 0 M4 0 L-6 -11 M4 0 L-6 11 M-12 0 L-16 -5 M-12 0 L-16 5\" stroke=\"#fff\" stroke-width=\"3.2\" stroke-linecap=\"round\" fill=\"none\"/\u003e\n \u003canimateMotion dur=\"4s\" repeatCount=\"indefinite\" rotate=\"auto\" keyPoints=\"0;1\" keyTimes=\"0;1\" calcMode=\"spline\" keySplines=\".45 0 .55 1\"\u003e\u003cmpath href=\"#flyPath\"/\u003e\u003c/animateMotion\u003e\u003c/g\u003e\n \u003c/svg\u003e\n \u003cimg class=\"t-obj passport\" src=\"/images/china/china-20-196ebc8c45.webp\" alt=\"\" aria-hidden=\"true\"\u003e\n \u003cspan class=\"t-big\"\u003e3h 30m\u003c/span\u003e\n \u003cspan class=\"t-sub\"\u003eDirect from KLIA · no time difference\u003c/span\u003e\n \u003cspan class=\"t-more\" aria-hidden=\"true\"\u003e+\u003c/span\u003e\n \u003c/summary\u003e\n \u003cdiv class=\"t-detail\"\u003e\n \u003cp\u003eDirect flights: Hainan Airlines and Batik Air Malaysia (KUL → HAK).\u003c/p\u003e\n \u003cp\u003eBook about 6 weeks ahead for better fares.\u003c/p\u003e\n \u003cp\u003eGolf bag rules differ by airline — we check yours before you book.\u003c/p\u003e\n \u003cp\u003eWe meet you at Haikou airport.\u003c/p\u003e\n \u003c/div\u003e\n \u003c/details\u003e\n \u003cdetails class=\"tile t-sky\"\u003e\n \u003csummary\u003e\n \u003cspan class=\"t-label\"\u003eWeather\u003c/span\u003e\n \u003cul class=\"wx\" aria-label=\"Weather by month\"\u003e\u003cli class=\"best\"\u003e\u003cspan class=\"wi\"\u003e\u003csvg viewBox=\"0 0 48 48\"\u003e\u003ccircle cx=\"24\" cy=\"24\" r=\"10\" fill=\"#F2B705\"/\u003e\u003cg stroke=\"#F2B705\" stroke-width=\"3.5\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M24 4v6M24 38v6M4 24h6M38 24h6M9.9 9.9l4.2 4.2M33.9 33.9l4.2 4.2M9.9 38.1l4.2-4.2M33.9 14.1l4.2-4.2\"/\u003e\u003c/g\u003e\u003c/svg\u003e\u003c/span\u003e\u003csmall\u003eJan\u003c/small\u003e\u003c/li\u003e\u003cli class=\"best\"\u003e\u003cspan class=\"wi\"\u003e\u003csvg viewBox=\"0 0 48 48\"\u003e\u003ccircle cx=\"24\" cy=\"24\" r=\"10\" fill=\"#F2B705\"/\u003e\u003cg stroke=\"#F2B705\" stroke-width=\"3.5\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M24 4v6M24 38v6M4 24h6M38 24h6M9.9 9.9l4.2 4.2M33.9 33.9l4.2 4.2M9.9 38.1l4.2-4.2M33.9 14.1l4.2-4.2\"/\u003e\u003c/g\u003e\u003c/svg\u003e\u003c/span\u003e\u003csmall\u003eFeb\u003c/small\u003e\u003c/li\u003e\u003cli class=\"best\"\u003e\u003cspan class=\"wi\"\u003e\u003csvg viewBox=\"0 0 48 48\"\u003e\u003ccircle cx=\"24\" cy=\"24\" r=\"10\" fill=\"#F2B705\"/\u003e\u003cg stroke=\"#F2B705\" stroke-width=\"3.5\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M24 4v6M24 38v6M4 24h6M38 24h6M9.9 9.9l4.2 4.2M33.9 33.9l4.2 4.2M9.9 38.1l4.2-4.2M33.9 14.1l4.2-4.2\"/\u003e\u003c/g\u003e\u003c/svg\u003e\u003c/span\u003e\u003csmall\u003eMar\u003c/small\u003e\u003c/li\u003e\u003cli class=\"best\"\u003e\u003cspan class=\"wi\"\u003e\u003csvg viewBox=\"0 0 48 48\"\u003e\u003ccircle cx=\"18\" cy=\"18\" r=\"9\" fill=\"#F2B705\"/\u003e\u003cg stroke=\"#F2B705\" stroke-width=\"3\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M18 3v4M3 18h4M7.4 7.4l2.8 2.8M28.6 7.4l-2.8 2.8\"/\u003e\u003c/g\u003e\u003cpath d=\"M16 40h22a8 8 0 0 0 0-16 11 11 0 0 0-21 3 6.5 6.5 0 0 0-1 13z\" fill=\"#fff\" stroke=\"#B9C9D6\" stroke-width=\"2\"/\u003e\u003c/svg\u003e\u003c/span\u003e\u003csmall\u003eApr\u003c/small\u003e\u003c/li\u003e\u003cli class=\"\"\u003e\u003cspan class=\"wi\"\u003e\u003csvg viewBox=\"0 0 48 48\"\u003e\u003cpath d=\"M13 30h24a8 8 0 0 0 0-16 11 11 0 0 0-21 3 6.5 6.5 0 0 0-3 13z\" fill=\"#fff\" stroke=\"#9FB3C4\" stroke-width=\"2\"/\u003e\u003cg stroke=\"#4C8DC2\" stroke-width=\"3\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M17 35l-2 6M25 35l-2 6M33 35l-2 6\"/\u003e\u003c/g\u003e\u003c/svg\u003e\u003c/span\u003e\u003csmall\u003eMay\u003c/small\u003e\u003c/li\u003e\u003cli class=\"\"\u003e\u003cspan class=\"wi\"\u003e\u003csvg viewBox=\"0 0 48 48\"\u003e\u003cpath d=\"M13 30h24a8 8 0 0 0 0-16 11 11 0 0 0-21 3 6.5 6.5 0 0 0-3 13z\" fill=\"#fff\" stroke=\"#9FB3C4\" stroke-width=\"2\"/\u003e\u003cg stroke=\"#4C8DC2\" stroke-width=\"3\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M17 35l-2 6M25 35l-2 6M33 35l-2 6\"/\u003e\u003c/g\u003e\u003c/svg\u003e\u003c/span\u003e\u003csmall\u003eJun\u003c/small\u003e\u003c/li\u003e\u003cli class=\"\"\u003e\u003cspan class=\"wi\"\u003e\u003csvg viewBox=\"0 0 48 48\"\u003e\u003cpath d=\"M13 28h24a8 8 0 0 0 0-16 11 11 0 0 0-21 3 6.5 6.5 0 0 0-3 13z\" fill=\"#DCE3EA\" stroke=\"#8193A3\" stroke-width=\"2\"/\u003e\u003cpath d=\"M26 28l-6 9h6l-3 8 9-12h-6l3-5z\" fill=\"#F2B705\"/\u003e\u003cg stroke=\"#4C8DC2\" stroke-width=\"3\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M15 33l-2 5M36 33l-2 5\"/\u003e\u003c/g\u003e\u003c/svg\u003e\u003c/span\u003e\u003csmall\u003eJul\u003c/small\u003e\u003c/li\u003e\u003cli class=\"\"\u003e\u003cspan class=\"wi\"\u003e\u003csvg viewBox=\"0 0 48 48\"\u003e\u003cpath d=\"M13 28h24a8 8 0 0 0 0-16 11 11 0 0 0-21 3 6.5 6.5 0 0 0-3 13z\" fill=\"#DCE3EA\" stroke=\"#8193A3\" stroke-width=\"2\"/\u003e\u003cpath d=\"M26 28l-6 9h6l-3 8 9-12h-6l3-5z\" fill=\"#F2B705\"/\u003e\u003cg stroke=\"#4C8DC2\" stroke-width=\"3\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M15 33l-2 5M36 33l-2 5\"/\u003e\u003c/g\u003e\u003c/svg\u003e\u003c/span\u003e\u003csmall\u003eAug\u003c/small\u003e\u003c/li\u003e\u003cli class=\"\"\u003e\u003cspan class=\"wi\"\u003e\u003csvg viewBox=\"0 0 48 48\"\u003e\u003cpath d=\"M13 28h24a8 8 0 0 0 0-16 11 11 0 0 0-21 3 6.5 6.5 0 0 0-3 13z\" fill=\"#DCE3EA\" stroke=\"#8193A3\" stroke-width=\"2\"/\u003e\u003cpath d=\"M26 28l-6 9h6l-3 8 9-12h-6l3-5z\" fill=\"#F2B705\"/\u003e\u003cg stroke=\"#4C8DC2\" stroke-width=\"3\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M15 33l-2 5M36 33l-2 5\"/\u003e\u003c/g\u003e\u003c/svg\u003e\u003c/span\u003e\u003csmall\u003eSep\u003c/small\u003e\u003c/li\u003e\u003cli class=\"\"\u003e\u003cspan class=\"wi\"\u003e\u003csvg viewBox=\"0 0 48 48\"\u003e\u003cpath d=\"M13 28h24a8 8 0 0 0 0-16 11 11 0 0 0-21 3 6.5 6.5 0 0 0-3 13z\" fill=\"#DCE3EA\" stroke=\"#8193A3\" stroke-width=\"2\"/\u003e\u003cpath d=\"M26 28l-6 9h6l-3 8 9-12h-6l3-5z\" fill=\"#F2B705\"/\u003e\u003cg stroke=\"#4C8DC2\" stroke-width=\"3\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M15 33l-2 5M36 33l-2 5\"/\u003e\u003c/g\u003e\u003c/svg\u003e\u003c/span\u003e\u003csmall\u003eOct\u003c/small\u003e\u003c/li\u003e\u003cli class=\"best\"\u003e\u003cspan class=\"wi\"\u003e\u003csvg viewBox=\"0 0 48 48\"\u003e\u003ccircle cx=\"18\" cy=\"18\" r=\"9\" fill=\"#F2B705\"/\u003e\u003cg stroke=\"#F2B705\" stroke-width=\"3\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M18 3v4M3 18h4M7.4 7.4l2.8 2.8M28.6 7.4l-2.8 2.8\"/\u003e\u003c/g\u003e\u003cpath d=\"M16 40h22a8 8 0 0 0 0-16 11 11 0 0 0-21 3 6.5 6.5 0 0 0-1 13z\" fill=\"#fff\" stroke=\"#B9C9D6\" stroke-width=\"2\"/\u003e\u003c/svg\u003e\u003c/span\u003e\u003csmall\u003eNov\u003c/small\u003e\u003c/li\u003e\u003cli class=\"best\"\u003e\u003cspan class=\"wi\"\u003e\u003csvg viewBox=\"0 0 48 48\"\u003e\u003ccircle cx=\"24\" cy=\"24\" r=\"10\" fill=\"#F2B705\"/\u003e\u003cg stroke=\"#F2B705\" stroke-width=\"3.5\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M24 4v6M24 38v6M4 24h6M38 24h6M9.9 9.9l4.2 4.2M33.9 33.9l4.2 4.2M9.9 38.1l4.2-4.2M33.9 14.1l4.2-4.2\"/\u003e\u003c/g\u003e\u003c/svg\u003e\u003c/span\u003e\u003csmall\u003eDec\u003c/small\u003e\u003c/li\u003e\u003c/ul\u003e\n \u003cspan class=\"t-big\"\u003eBest: Nov – Apr\u003c/span\u003e\n \u003cspan class=\"t-sub\"\u003eCooler days, less rain\u003c/span\u003e\n \u003cspan class=\"t-more\" aria-hidden=\"true\"\u003e+\u003c/span\u003e\n \u003c/summary\u003e\n \u003cdiv class=\"t-detail\"\u003e\n \u003cp\u003eMay to October is hot and rainy. Typhoons are possible from July to October.\u003c/p\u003e\n \u003cp\u003ePrices change by season. Chinese New Year is the busiest and most expensive time.\u003c/p\u003e\n \u003cp\u003eMarch, April and November often give the best value.\u003c/p\u003e\n \u003c/div\u003e\n \u003c/details\u003e\n \u003cdetails class=\"tile t-pay\"\u003e\n \u003csummary\u003e\n \u003cspan class=\"t-label\"\u003ePayment\u003c/span\u003e\n \u003cdiv class=\"paybar\" aria-hidden=\"true\"\u003e\u003cspan class=\"p1\"\u003e50%\u003c/span\u003e\u003cspan class=\"p2\"\u003e50%\u003c/span\u003e\u003c/div\u003e\n \u003cdiv class=\"paycap\"\u003e\u003cspan\u003eNow, to confirm\u003c/span\u003e\u003cspan\u003eOn arrival\u003c/span\u003e\u003c/div\u003e\n \u003cspan class=\"t-big\"\u003eHalf now, half later\u003c/span\u003e\n \u003cspan class=\"t-sub\"\u003eCash or bank transfer\u003c/span\u003e\n \u003cspan class=\"t-more\" aria-hidden=\"true\"\u003e+\u003c/span\u003e\n \u003c/summary\u003e\n \u003cdiv class=\"t-detail\"\u003e\n \u003cp\u003ePay 50% to confirm. Pay the rest when you arrive.\u003c/p\u003e\n \u003cp\u003eCredit card payments have a 3.5% fee.\u003c/p\u003e\n \u003cp\u003eTee times and rooms are held once your booking is confirmed.\u003c/p\u003e\n \u003cp\u003eYour written quote shows the cancellation terms before you pay.\u003c/p\u003e\n \u003c/div\u003e\n \u003c/details\u003e\n \u003cdetails class=\"tile t-halal\"\u003e\n \u003csummary\u003e\n \u003cspan class=\"t-label\"\u003eFood\u003c/span\u003e\n \u003cspan class=\"halal-ic\" aria-hidden=\"true\"\u003e\u003cimg src=\"/images/china/china-21-2f26965355.webp\" alt=\"\"\u003e\u003cb\u003eHALAL\u003c/b\u003e\u003c/span\u003e\n \u003cspan class=\"t-big\"\u003eHalal? Sorted.\u003c/span\u003e\n \u003cspan class=\"t-sub\"\u003eWe book halal restaurants for you\u003c/span\u003e\n \u003cspan class=\"t-more\" aria-hidden=\"true\"\u003e+\u003c/span\u003e\n \u003c/summary\u003e\n \u003cdiv class=\"t-detail\"\u003e\n \u003cp\u003eHaikou has halal restaurants, including Turkish and Xinjiang ones in Longhua District.\u003c/p\u003e\n \u003cp\u003eWe confirm they are open for your dates and arrange transport.\u003c/p\u003e\n \u003cp\u003eWe ask the resort about pork-free and alcohol-free meals, and can plan around prayer times.\u003c/p\u003e\n \u003c/div\u003e\n \u003c/details\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/section\u003e\n\n \u003csection class=\"band flip\" style=\"--bg:url(/images/china/china-22-cfcbc31101.jpg)\" aria-labelledby=\"bandB-h\"\u003e\n \u003cdiv class=\"wrap\"\u003e\n \u003cdiv class=\"band-copy\"\u003e\n \u003cp class=\"kicker\"\u003eMade for golf groups\u003c/p\u003e\n \u003ch2 class=\"display\" id=\"bandB-h\"\u003eBring the whole gang.\u003c/h2\u003e\n \u003cp class=\"sub\"\u003eGroups of 4, 8, 16 or more. We plan every tee time, room and ride around your crew.\u003c/p\u003e\n \u003cbutton class=\"btn btn-sun\" data-go=\"calculator\"\u003ePrice our group trip\u003c/button\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003cimg class=\"band-person\" src=\"/images/china/china-23-a543066bce.webp\" alt=\"Three golf friends doing a high-five\"\u003e\n \u003c/section\u003e\n \u003csection class=\"trust\" aria-labelledby=\"trust-h\"\u003e\n \u003cdiv class=\"wrap\"\u003e\n \u003cdiv class=\"trust-top\"\u003e\n \u003cdiv\u003e\n \u003cp class=\"kicker\"\u003eWhy Taigolf\u003c/p\u003e\n \u003ch2 class=\"display h2\" id=\"trust-h\"\u003eThe golf tour team golfers come back to\u003c/h2\u003e\n \u003c/div\u003e\n \u003cp class=\"lede\"\u003eFrom tee times at top courses to moments beyond the green, we handle every detail so your golf trip is smooth and memorable. Now we're bringing the same service to China.\u003c/p\u003e\n \u003c/div\u003e\n \u003cdiv class=\"stats\"\u003e\n \u003cdiv class=\"stat\"\u003e\u003cb\u003e7+\u003c/b\u003e\u003cspan\u003eyears in golf tourism\u003c/span\u003e\u003c/div\u003e\n \u003cdiv class=\"stat\"\u003e\u003cb\u003e100+\u003c/b\u003e\u003cspan\u003epartner golf courses\u003c/span\u003e\u003c/div\u003e\n \u003cdiv class=\"stat\"\u003e\u003cb\u003e4.7\u003c/b\u003e\u003cspan\u003eaverage guest rating\u003c/span\u003e\u003c/div\u003e\n \u003c/div\u003e\n \u003cdiv class=\"reasons\"\u003e\n \u003cdiv class=\"reason\"\u003e\n \u003csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#0E5132\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M20 12l-8 8-9-9V3h8z\"/\u003e\u003ccircle cx=\"7.5\" cy=\"7.5\" r=\"1.5\"/\u003e\u003c/svg\u003e\n \u003ch3 class=\"display\"\u003eFair prices\u003c/h3\u003e\n \u003cp\u003eWorried about overpriced golf tours? Our packages are built to give you great golf at an honest price.\u003c/p\u003e\n \u003c/div\u003e\n \u003cdiv class=\"reason\"\u003e\n \u003csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#062A1A\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M8 21V3l10 4-10 4\"/\u003e\u003c/svg\u003e\n \u003ch3 class=\"display\"\u003eCourses you choose\u003c/h3\u003e\n \u003cp\u003eMix and match the courses you want to play. We shape the trip around your group.\u003c/p\u003e\n \u003c/div\u003e\n \u003cdiv class=\"reason\"\u003e\n \u003csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#0E5132\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.5A8 8 0 1 1 21 12z\"/\u003e\u003c/svg\u003e\n \u003ch3 class=\"display\"\u003eFree planning help\u003c/h3\u003e\n \u003cp\u003eTalk to us before you book. We'll help plan the dates, courses and budget — no charge.\u003c/p\u003e\n \u003c/div\u003e\n \u003cdiv class=\"reason\"\u003e\n \u003csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#F2D43D\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M12 21s-8-5-8-11a4.5 4.5 0 0 1 8-2.8A4.5 4.5 0 0 1 20 10c0 6-8 11-8 11z\"/\u003e\u003c/svg\u003e\n \u003ch3 class=\"display\"\u003eYou come first\u003c/h3\u003e\n \u003cp\u003eWe don't just plan. We stay with you on WhatsApp and take care of details during the trip.\u003c/p\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n\n \u003cdiv class=\"members\"\u003e\n \u003ch3\u003eProud member of\u003c/h3\u003e\n \u003cdiv class=\"logos\"\u003e\n \u003cfigure\u003e\u003cimg src=\"/images/china/china-24-d28807385a.webp\" alt=\"IAGTO member logo\"\u003e\u003cfigcaption\u003eInternational Association of Golf Tour Operators\u003c/figcaption\u003e\u003c/figure\u003e\n \u003cfigure\u003e\u003cimg src=\"/images/china/china-25-78e759c705.webp\" alt=\"ATTA logo\"\u003e\u003cfigcaption\u003eAssociation of Thai Travel Agents, member 04998\u003c/figcaption\u003e\u003c/figure\u003e\n \u003cfigure\u003e\u003cimg src=\"/images/china/china-26-bd6e09ff93.webp\" alt=\"Tourism Authority of Thailand logo\"\u003e\u003cfigcaption\u003eTourism Authority of Thailand\u003c/figcaption\u003e\u003c/figure\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003cdiv class=\"partners\"\u003e\n \u003cdiv class=\"partners-top\"\u003e\n \u003cdiv\u003e\u003cb\u003e100+\u003c/b\u003e\u003cspan\u003epartner golf courses\u003c/span\u003e\u003c/div\u003e\n \u003cp\u003eOur partner network now reaches China. Start with all 10 courses at Mission Hills Haikou — more China destinations coming soon.\u003c/p\u003e\n \u003c/div\u003e\n \u003cul class=\"names\" id=\"partnerNames\"\u003e\u003cli\u003eMission Hills Haikou · Blackstone 黑石\u003c/li\u003e\u003cli\u003eMission Hills Haikou · Sandbelt Trails 沙带\u003c/li\u003e\u003cli\u003eMission Hills Haikou · The Vintage 老墙\u003c/li\u003e\u003cli\u003eMission Hills Haikou · Lava Fields 熔岩\u003c/li\u003e\u003cli\u003eMission Hills Haikou · Meadow Links 草甸\u003c/li\u003e\u003cli\u003eMission Hills Haikou · Stone Quarry 矿迹\u003c/li\u003e\u003cli\u003eMission Hills Haikou · Course No. 4 步石\u003c/li\u003e\u003cli\u003eMission Hills Haikou · Course No. 8 双杯\u003c/li\u003e\u003cli\u003eMission Hills Haikou · Course No. 9 棕榈\u003c/li\u003e\u003cli\u003eMission Hills Haikou · Course No. 10 沙浪\u003c/li\u003e\u003c/ul\u003e\n \u003c/div\u003e\n \u003cp class=\"license\"\u003eOperated by Happy Tour International Co., Ltd., licensed tour operator no. 11/13206. \u003cbutton data-go=\"home\" data-scroll=\"verify\" style=\"background:none;border:0;padding:0;font:inherit;color:var(--fairway);text-decoration:underline;cursor:pointer\"\u003eCheck our licence\u003c/button\u003e\u003c/p\u003e\n \u003c/div\u003e\n \u003c/section\u003e\n\n\n\n \u003csection class=\"team\" aria-labelledby=\"team-h\"\u003e\n \u003cdiv class=\"wrap team-grid\"\u003e\n \u003cdiv class=\"team-photos\"\u003e\n \u003cimg class=\"tp1\" src=\"/images/china/china-27-f44228e21b.jpg\" alt=\"Three Taigolf team members in green team shirts at a golf club\"\u003e\n \u003cimg class=\"tp2\" src=\"/images/china/china-28-3c284b919c.jpg\" alt=\"A Taigolf guide giving a thumbs up on the course\"\u003e\n \u003cspan class=\"tp-tag\"\u003eOur team, on the course\u003c/span\u003e\n \u003c/div\u003e\n \u003cdiv\u003e\n \u003cp class=\"kicker\"\u003eMeet the team\u003c/p\u003e\n \u003ch2 class=\"display h2\" id=\"team-h\"\u003eReal people. Green shirts. On your side.\u003c/h2\u003e\n \u003cp class=\"lede\" style=\"margin-top:18px\"\u003eOur team meets you at the airport, checks in with you at every course, and answers WhatsApp 24 hours a day. Look for the green shirts.\u003c/p\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n\n \u003cdiv class=\"wrap ev-head\"\u003e\n \u003ch3 class=\"display\"\u003eOn the ground in golf and travel\u003c/h3\u003e\n \u003cdiv class=\"ev-nav\"\u003e\u003cbutton type=\"button\" class=\"ev-btn\" data-dir=\"-1\" aria-label=\"Previous photos\"\u003e←\u003c/button\u003e\u003cbutton type=\"button\" class=\"ev-btn\" data-dir=\"1\" aria-label=\"Next photos\"\u003e→\u003c/button\u003e\u003c/div\u003e\n \u003c/div\u003e\n \u003cdiv class=\"ev-row\" id=\"evRow\" tabindex=\"0\" aria-label=\"Events we sponsor and join\"\u003e\u003cfigure class=\"ev\"\u003e\u003cimg src=\"/images/china/china-29-9fe163140a.jpg\" alt=\"Universal Tourism Exhibition, Beijing 2025\" loading=\"lazy\" style=\"object-position:50% 30%\"\u003e\u003cfigcaption\u003e\u003cb\u003eUniversal Tourism Exhibition, Beijing 2025\u003c/b\u003e\u003cspan\u003eMeeting China travel partners\u003c/span\u003e\u003c/figcaption\u003e\u003c/figure\u003e\u003cfigure class=\"ev\"\u003e\u003cimg src=\"/images/china/china-30-828c543b9f.jpg\" alt=\"Sponsor at a Siam Country Club golf event\" loading=\"lazy\" style=\"object-position:50% 30%\"\u003e\u003cfigcaption\u003e\u003cb\u003eSponsor at a Siam Country Club golf event\u003c/b\u003e\u003cspan\u003eOur logo on the sponsor wall\u003c/span\u003e\u003c/figcaption\u003e\u003c/figure\u003e\u003cfigure class=\"ev\"\u003e\u003cimg src=\"/images/china/china-31-84a0056df5.jpg\" alt=\"Proud sponsor at a travel industry event\" loading=\"lazy\" style=\"object-position:50% 60%\"\u003e\u003cfigcaption\u003e\u003cb\u003eProud sponsor at a travel industry event\u003c/b\u003e\u003cspan\u003eTaigolf among the sponsors\u003c/span\u003e\u003c/figcaption\u003e\u003c/figure\u003e\u003cfigure class=\"ev\"\u003e\u003cimg src=\"/images/china/china-32-d36c4e574c.jpg\" alt=\"International golf tourism convention\" loading=\"lazy\" style=\"object-position:50% 30%\"\u003e\u003cfigcaption\u003e\u003cb\u003eInternational golf tourism convention\u003c/b\u003e\u003cspan\u003eWhere golf trips are planned\u003c/span\u003e\u003c/figcaption\u003e\u003c/figure\u003e\u003cfigure class=\"ev\"\u003e\u003cimg src=\"/images/china/china-33-e4822e74b5.jpg\" alt=\"Meeting golf and travel partners\" loading=\"lazy\" style=\"object-position:50% 40%\"\u003e\u003cfigcaption\u003e\u003cb\u003eMeeting golf and travel partners\u003c/b\u003e\u003cspan\u003eBooking the best tee times for you\u003c/span\u003e\u003c/figcaption\u003e\u003c/figure\u003e\u003cfigure class=\"ev\"\u003e\u003cimg src=\"/images/china/china-34-d75bfd3fd9.jpg\" alt=\"Our team at a golf club event\" loading=\"lazy\" style=\"object-position:50% 30%\"\u003e\u003cfigcaption\u003e\u003cb\u003eOur team at a golf club event\u003c/b\u003e\u003cspan\u003eAlways in the green and white\u003c/span\u003e\u003c/figcaption\u003e\u003c/figure\u003e\u003c/div\u003e\n \u003c/section\u003e\n \u003csection class=\"verify\" id=\"verify\" aria-labelledby=\"verify-h\"\u003e\n \u003cdiv class=\"wrap\"\u003e\n \u003cdiv class=\"verify-head\"\u003e\n \u003cdiv\u003e\n \u003cp class=\"kicker\"\u003eCheck us first\u003c/p\u003e\n \u003ch2 class=\"display h2\" id=\"verify-h\"\u003eCheck us before you pay a single ringgit\u003c/h2\u003e\n \u003c/div\u003e\n \u003cp class=\"lede\"\u003eAnyone can build a nice website. Nobody can fake a government licence record. Here is ours, in full, so you can check it yourself.\u003c/p\u003e\n \u003c/div\u003e\n \u003cdiv class=\"vcard\"\u003e\n \u003cdiv\u003e\n \u003cdl class=\"rec\"\u003e\n \u003cdiv\u003e\u003cdt\u003eCompany\u003c/dt\u003e\u003cdd\u003eHappy Tour International Co., Ltd.\u003csmall\u003eCompany registration no. 0105566043282\u003c/small\u003e\u003c/dd\u003e\u003c/div\u003e\n \u003cdiv\u003e\u003cdt\u003eTour licence no.\u003c/dt\u003e\u003cdd\u003e\u003cspan class=\"lic\"\u003e11/13206\u003c/span\u003e\u003csmall\u003eGeneral category, issued by the Department of Tourism, Ministry of Tourism and Sports, Thailand\u003c/small\u003e\u003cspan class=\"valid\"\u003e\u003ci\u003e\u003c/i\u003eValid until 6 August 2027\u003c/span\u003e\u003c/dd\u003e\u003c/div\u003e\n \u003cdiv\u003e\u003cdt\u003eCompany registered\u003c/dt\u003e\u003cdd\u003e27 February 2023\u003c/dd\u003e\u003c/div\u003e\n \u003cdiv\u003e\u003cdt\u003eOffice\u003c/dt\u003e\u003cdd\u003e118/81 Pradya BisHome Onnut-Suvarnabhumi Townhome, Lat Krabang, Bangkok 10520\u003csmall\u003e\u003ca href=\"https://www.google.com/maps/search/?api=1\u0026query=118%2F81+Pradya+BisHome+Onnut-Suvarnabhumi+Townhome+Lat+Krabang+Bangkok+10520\" target=\"_blank\" rel=\"noopener\"\u003eOpen in Google Maps\u003c/a\u003e\u003c/small\u003e\u003c/dd\u003e\u003c/div\u003e\n \u003cdiv\u003e\u003cdt\u003eOfficial channels\u003c/dt\u003e\u003cdd\u003eWhatsApp +66 61 182 3596\u003csmall\u003eLINE @happytourofficial · sales01@taigolf.com · happytour.out@gmail.com\u003c/small\u003e\u003c/dd\u003e\u003c/div\u003e\n \u003cdiv\u003e\u003cdt\u003eAssociation\u003c/dt\u003e\u003cdd\u003eMember, Association of Thai Travel Agents (ATTA)\u003csmall\u003eMember code 04998, member since 2023 · also a member of IAGTO\u003c/small\u003e\u003csmall\u003e\u003ca href=\"https://www.atta.or.th/member-directory-2/\" target=\"_blank\" rel=\"noopener\"\u003eSearch \u0026ldquo;Happy Tour International\u0026rdquo; in the ATTA directory\u003c/a\u003e\u003c/small\u003e\u003c/dd\u003e\u003c/div\u003e\n \u003c/dl\u003e\n \u003c/div\u003e\n \u003cdiv class=\"qrbox\"\u003e\n \u003ch3\u003eScan to see the official record\u003c/h3\u003e\n \u003cp\u003eThis QR code is printed on our licence. It opens the Thai Department of Tourism's own page about us — not a page on this website.\u003c/p\u003e\n \u003cdiv class=\"qr\"\u003e\u003csvg width=\"100%\" height=\"100%\" role=\"img\" aria-label=\"QR code to the official licence record\" version=\"1.1\" viewBox=\"0 0 39 39\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cpath fill=\"#062A1A\" d=\"M1,1H2V2H1zM2,1H3V2H2zM3,1H4V2H3zM4,1H5V2H4zM5,1H6V2H5zM6,1H7V2H6zM7,1H8V2H7zM10,1H11V2H10zM13,1H14V2H13zM14,1H15V2H14zM17,1H18V2H17zM18,1H19V2H18zM19,1H20V2H19zM21,1H22V2H21zM22,1H23V2H22zM23,1H24V2H23zM24,1H25V2H24zM25,1H26V2H25zM26,1H27V2H26zM29,1H30V2H29zM31,1H32V2H31zM32,1H33V2H32zM33,1H34V2H33zM34,1H35V2H34zM35,1H36V2H35zM36,1H37V2H36zM37,1H38V2H37zM1,2H2V3H1zM7,2H8V3H7zM10,2H11V3H10zM11,2H12V3H11zM15,2H16V3H15zM16,2H17V3H16zM18,2H19V3H18zM20,2H21V3H20zM22,2H23V3H22zM23,2H24V3H23zM26,2H27V3H26zM27,2H28V3H27zM28,2H29V3H28zM31,2H32V3H31zM37,2H38V3H37zM1,3H2V4H1zM3,3H4V4H3zM4,3H5V4H4zM5,3H6V4H5zM7,3H8V4H7zM9,3H10V4H9zM12,3H13V4H12zM14,3H15V4H14zM20,3H21V4H20zM21,3H22V4H21zM22,3H23V4H22zM23,3H24V4H23zM27,3H28V4H27zM28,3H29V4H28zM29,3H30V4H29zM31,3H32V4H31zM33,3H34V4H33zM34,3H35V4H34zM35,3H36V4H35zM37,3H38V4H37zM1,4H2V5H1zM3,4H4V5H3zM4,4H5V5H4zM5,4H6V5H5zM7,4H8V5H7zM9,4H10V5H9zM11,4H12V5H11zM12,4H13V5H12zM14,4H15V5H14zM15,4H16V5H15zM16,4H17V5H16zM17,4H18V5H17zM20,4H21V5H20zM25,4H26V5H25zM26,4H27V5H26zM27,4H28V5H27zM28,4H29V5H28zM31,4H32V5H31zM33,4H34V5H33zM34,4H35V5H34zM35,4H36V5H35zM37,4H38V5H37zM1,5H2V6H1zM3,5H4V6H3zM4,5H5V6H4zM5,5H6V6H5zM7,5H8V6H7zM9,5H10V6H9zM11,5H12V6H11zM12,5H13V6H12zM13,5H14V6H13zM16,5H17V6H16zM17,5H18V6H17zM19,5H20V6H19zM20,5H21V6H20zM22,5H23V6H22zM24,5H25V6H24zM27,5H28V6H27zM29,5H30V6H29zM31,5H32V6H31zM33,5H34V6H33zM34,5H35V6H34zM35,5H36V6H35zM37,5H38V6H37zM1,6H2V7H1zM7,6H8V7H7zM9,6H10V7H9zM10,6H11V7H10zM13,6H14V7H13zM19,6H20V7H19zM21,6H22V7H21zM22,6H23V7H22zM23,6H24V7H23zM26,6H27V7H26zM28,6H29V7H28zM31,6H32V7H31zM37,6H38V7H37zM1,7H2V8H1zM2,7H3V8H2zM3,7H4V8H3zM4,7H5V8H4zM5,7H6V8H5zM6,7H7V8H6zM7,7H8V8H7zM9,7H10V8H9zM11,7H12V8H11zM13,7H14V8H13zM15,7H16V8H15zM17,7H18V8H17zM19,7H20V8H19zM21,7H22V8H21zM23,7H24V8H23zM25,7H26V8H25zM27,7H28V8H27zM29,7H30V8H29zM31,7H32V8H31zM32,7H33V8H32zM33,7H34V8H33zM34,7H35V8H34zM35,7H36V8H35zM36,7H37V8H36zM37,7H38V8H37zM9,8H10V9H9zM11,8H12V9H11zM12,8H13V9H12zM13,8H14V9H13zM14,8H15V9H14zM16,8H17V9H16zM21,8H22V9H21zM22,8H23V9H22zM23,8H24V9H23zM24,8H25V9H24zM28,8H29V9H28zM29,8H30V9H29zM1,9H2V10H1zM3,9H4V10H3zM4,9H5V10H4zM5,9H6V10H5zM6,9H7V10H6zM7,9H8V10H7zM11,9H12V10H11zM12,9H13V10H12zM15,9H16V10H15zM19,9H20V10H19zM21,9H22V10H21zM24,9H25V10H24zM26,9H27V10H26zM27,9H28V10H27zM28,9H29V10H28zM29,9H30V10H29zM31,9H32V10H31zM32,9H33V10H32zM33,9H34V10H33zM34,9H35V10H34zM35,9H36V10H35zM1,10H2V11H1zM2,10H3V11H2zM3,10H4V11H3zM5,10H6V11H5zM8,10H9V11H8zM10,10H11V11H10zM13,10H14V11H13zM15,10H16V11H15zM16,10H17V11H16zM17,10H18V11H17zM18,10H19V11H18zM23,10H24V11H23zM24,10H25V11H24zM25,10H26V11H25zM29,10H30V11H29zM32,10H33V11H32zM35,10H36V11H35zM36,10H37V11H36zM1,11H2V12H1zM2,11H3V12H2zM3,11H4V12H3zM7,11H8V12H7zM8,11H9V12H8zM10,11H11V12H10zM13,11H14V12H13zM15,11H16V12H15zM21,11H22V12H21zM22,11H23V12H22zM23,11H24V12H23zM25,11H26V12H25zM27,11H28V12H27zM28,11H29V12H28zM29,11H30V12H29zM30,11H31V12H30zM31,11H32V12H31zM32,11H33V12H32zM33,11H34V12H33zM35,11H36V12H35zM36,11H37V12H36zM37,11H38V12H37zM2,12H3V13H2zM3,12H4V13H3zM4,12H5V13H4zM6,12H7V13H6zM10,12H11V13H10zM12,12H13V13H12zM14,12H15V13H14zM15,12H16V13H15zM17,12H18V13H17zM19,12H20V13H19zM22,12H23V13H22zM23,12H24V13H23zM29,12H30V13H29zM30,12H31V13H30zM31,12H32V13H31zM32,12H33V13H32zM33,12H34V13H33zM37,12H38V13H37zM1,13H2V14H1zM3,13H4V14H3zM4,13H5V14H4zM5,13H6V14H5zM6,13H7V14H6zM7,13H8V14H7zM9,13H10V14H9zM11,13H12V14H11zM12,13H13V14H12zM15,13H16V14H15zM18,13H19V14H18zM23,13H24V14H23zM25,13H26V14H25zM26,13H27V14H26zM30,13H31V14H30zM31,13H32V14H31zM33,13H34V14H33zM35,13H36V14H35zM36,13H37V14H36zM37,13H38V14H37zM2,14H3V15H2zM8,14H9V15H8zM12,14H13V15H12zM14,14H15V15H14zM16,14H17V15H16zM17,14H18V15H17zM18,14H19V15H18zM19,14H20V15H19zM20,14H21V15H20zM21,14H22V15H21zM22,14H23V15H22zM23,14H24V15H23zM24,14H25V15H24zM25,14H26V15H25zM26,14H27V15H26zM29,14H30V15H29zM30,14H31V15H30zM32,14H33V15H32zM1,15H2V16H1zM3,15H4V16H3zM5,15H6V16H5zM6,15H7V16H6zM7,15H8V16H7zM9,15H10V16H9zM10,15H11V16H10zM12,15H13V16H12zM14,15H15V16H14zM15,15H16V16H15zM16,15H17V16H16zM17,15H18V16H17zM18,15H19V16H18zM21,15H22V16H21zM22,15H23V16H22zM25,15H26V16H25zM27,15H28V16H27zM28,15H29V16H28zM30,15H31V16H30zM32,15H33V16H32zM33,15H34V16H33zM34,15H35V16H34zM36,15H37V16H36zM37,15H38V16H37zM1,16H2V17H1zM2,16H3V17H2zM4,16H5V17H4zM8,16H9V17H8zM12,16H13V17H12zM14,16H15V17H14zM15,16H16V17H15zM16,16H17V17H16zM17,16H18V17H17zM18,16H19V17H18zM19,16H20V17H19zM20,16H21V17H20zM22,16H23V17H22zM23,16H24V17H23zM25,16H26V17H25zM29,16H30V17H29zM32,16H33V17H32zM33,16H34V17H33zM1,17H2V18H1zM2,17H3V18H2zM4,17H5V18H4zM7,17H8V18H7zM8,17H9V18H8zM9,17H10V18H9zM11,17H12V18H11zM13,17H14V18H13zM14,17H15V18H14zM16,17H17V18H16zM17,17H18V18H17zM22,17H23V18H22zM24,17H25V18H24zM26,17H27V18H26zM27,17H28V18H27zM29,17H30V18H29zM30,17H31V18H30zM31,17H32V18H31zM33,17H34V18H33zM35,17H36V18H35zM36,17H37V18H36zM37,17H38V18H37zM1,18H2V19H1zM4,18H5V19H4zM6,18H7V19H6zM8,18H9V19H8zM10,18H11V19H10zM11,18H12V19H11zM12,18H13V19H12zM13,18H14V19H13zM16,18H17V19H16zM18,18H19V19H18zM19,18H20V19H19zM21,18H22V19H21zM22,18H23V19H22zM24,18H25V19H24zM25,18H26V19H25zM26,18H27V19H26zM30,18H31V19H30zM31,18H32V19H31zM32,18H33V19H32zM34,18H35V19H34zM36,18H37V19H36zM2,19H3V20H2zM3,19H4V20H3zM4,19H5V20H4zM6,19H7V20H6zM7,19H8V20H7zM9,19H10V20H9zM10,19H11V20H10zM12,19H13V20H12zM13,19H14V20H13zM14,19H15V20H14zM16,19H17V20H16zM17,19H18V20H17zM19,19H20V20H19zM20,19H21V20H20zM25,19H26V20H25zM26,19H27V20H26zM27,19H28V20H27zM28,19H29V20H28zM29,19H30V20H29zM31,19H32V20H31zM32,19H33V20H32zM34,19H35V20H34zM35,19H36V20H35zM36,19H37V20H36zM37,19H38V20H37zM2,20H3V21H2zM4,20H5V21H4zM9,20H10V21H9zM13,20H14V21H13zM14,20H15V21H14zM15,20H16V21H15zM16,20H17V21H16zM20,20H21V21H20zM21,20H22V21H21zM22,20H23V21H22zM23,20H24V21H23zM24,20H25V21H24zM25,20H26V21H25zM28,20H29V21H28zM29,20H30V21H29zM30,20H31V21H30zM33,20H34V21H33zM37,20H38V21H37zM2,21H3V22H2zM5,21H6V22H5zM6,21H7V22H6zM7,21H8V22H7zM10,21H11V22H10zM11,21H12V22H11zM12,21H13V22H12zM15,21H16V22H15zM16,21H17V22H16zM18,21H19V22H18zM20,21H21V22H20zM23,21H24V22H23zM25,21H26V22H25zM26,21H27V22H26zM27,21H28V22H27zM28,21H29V22H28zM30,21H31V22H30zM31,21H32V22H31zM33,21H34V22H33zM34,21H35V22H34zM35,21H36V22H35zM2,22H3V23H2zM5,22H6V23H5zM8,22H9V23H8zM10,22H11V23H10zM12,22H13V23H12zM14,22H15V23H14zM17,22H18V23H17zM19,22H20V23H19zM20,22H21V23H20zM21,22H22V23H21zM24,22H25V23H24zM26,22H27V23H26zM30,22H31V23H30zM34,22H35V23H34zM1,23H2V24H1zM2,23H3V24H2zM3,23H4V24H3zM4,23H5V24H4zM5,23H6V24H5zM7,23H8V24H7zM8,23H9V24H8zM9,23H10V24H9zM10,23H11V24H10zM11,23H12V24H11zM12,23H13V24H12zM13,23H14V24H13zM14,23H15V24H14zM16,23H17V24H16zM17,23H18V24H17zM19,23H20V24H19zM21,23H22V24H21zM23,23H24V24H23zM25,23H26V24H25zM26,23H27V24H26zM27,23H28V24H27zM28,23H29V24H28zM29,23H30V24H29zM31,23H32V24H31zM32,23H33V24H32zM33,23H34V24H33zM34,23H35V24H34zM36,23H37V24H36zM37,23H38V24H37zM1,24H2V25H1zM2,24H3V25H2zM3,24H4V25H3zM4,24H5V25H4zM6,24H7V25H6zM8,24H9V25H8zM9,24H10V25H9zM11,24H12V25H11zM31,24H32V25H31zM32,24H33V25H32zM33,24H34V25H33zM4,25H5V26H4zM5,25H6V26H5zM7,25H8V26H7zM10,25H11V26H10zM11,25H12V26H11zM13,25H14V26H13zM15,25H16V26H15zM16,25H17V26H16zM19,25H20V26H19zM20,25H21V26H20zM21,25H22V26H21zM22,25H23V26H22zM23,25H24V26H23zM26,25H27V26H26zM28,25H29V26H28zM30,25H31V26H30zM31,25H32V26H31zM33,25H34V26H33zM35,25H36V26H35zM36,25H37V26H36zM1,26H2V27H1zM4,26H5V27H4zM5,26H6V27H5zM11,26H12V27H11zM12,26H13V27H12zM14,26H15V27H14zM16,26H17V27H16zM17,26H18V27H17zM22,26H23V27H22zM24,26H25V27H24zM25,26H26V27H25zM27,26H28V27H27zM29,26H30V27H29zM32,26H33V27H32zM35,26H36V27H35zM1,27H2V28H1zM5,27H6V28H5zM6,27H7V28H6zM7,27H8V28H7zM8,27H9V28H8zM11,27H12V28H11zM12,27H13V28H12zM13,27H14V28H13zM14,27H15V28H14zM15,27H16V28H15zM18,27H19V28H18zM19,27H20V28H19zM21,27H22V28H21zM22,27H23V28H22zM23,27H24V28H23zM25,27H26V28H25zM26,27H27V28H26zM27,27H28V28H27zM28,27H29V28H28zM29,27H30V28H29zM30,27H31V28H30zM31,27H32V28H31zM36,27H37V28H36zM37,27H38V28H37zM1,28H2V29H1zM4,28H5V29H4zM8,28H9V29H8zM9,28H10V29H9zM10,28H11V29H10zM11,28H12V29H11zM12,28H13V29H12zM13,28H14V29H13zM15,28H16V29H15zM17,28H18V29H17zM22,28H23V29H22zM23,28H24V29H23zM25,28H26V29H25zM27,28H28V29H27zM29,28H30V29H29zM32,28H33V29H32zM36,28H37V29H36zM37,28H38V29H37zM1,29H2V30H1zM3,29H4V30H3zM4,29H5V30H4zM6,29H7V30H6zM7,29H8V30H7zM9,29H10V30H9zM11,29H12V30H11zM17,29H18V30H17zM18,29H19V30H18zM23,29H24V30H23zM26,29H27V30H26zM27,29H28V30H27zM28,29H29V30H28zM29,29H30V30H29zM30,29H31V30H30zM31,29H32V30H31zM32,29H33V30H32zM33,29H34V30H33zM34,29H35V30H34zM35,29H36V30H35zM36,29H37V30H36zM37,29H38V30H37zM9,30H10V31H9zM11,30H12V31H11zM12,30H13V31H12zM14,30H15V31H14zM17,30H18V31H17zM18,30H19V31H18zM19,30H20V31H19zM20,30H21V31H20zM21,30H22V31H21zM22,30H23V31H22zM23,30H24V31H23zM24,30H25V31H24zM26,30H27V31H26zM29,30H30V31H29zM33,30H34V31H33zM34,30H35V31H34zM1,31H2V32H1zM2,31H3V32H2zM3,31H4V32H3zM4,31H5V32H4zM5,31H6V32H5zM6,31H7V32H6zM7,31H8V32H7zM11,31H12V32H11zM13,31H14V32H13zM14,31H15V32H14zM15,31H16V32H15zM16,31H17V32H16zM18,31H19V32H18zM22,31H23V32H22zM25,31H26V32H25zM27,31H28V32H27zM29,31H30V32H29zM31,31H32V32H31zM33,31H34V32H33zM35,31H36V32H35zM36,31H37V32H36zM37,31H38V32H37zM1,32H2V33H1zM7,32H8V33H7zM9,32H10V33H9zM13,32H14V33H13zM17,32H18V33H17zM18,32H19V33H18zM19,32H20V33H19zM20,32H21V33H20zM21,32H22V33H21zM22,32H23V33H22zM23,32H24V33H23zM24,32H25V33H24zM27,32H28V33H27zM29,32H30V33H29zM33,32H34V33H33zM34,32H35V33H34zM36,32H37V33H36zM37,32H38V33H37zM1,33H2V34H1zM3,33H4V34H3zM4,33H5V34H4zM5,33H6V34H5zM7,33H8V34H7zM9,33H10V34H9zM10,33H11V34H10zM11,33H12V34H11zM12,33H13V34H12zM14,33H15V34H14zM15,33H16V34H15zM17,33H18V34H17zM22,33H23V34H22zM24,33H25V34H24zM26,33H27V34H26zM28,33H29V34H28zM29,33H30V34H29zM30,33H31V34H30zM31,33H32V34H31zM32,33H33V34H32zM33,33H34V34H33zM35,33H36V34H35zM1,34H2V35H1zM3,34H4V35H3zM4,34H5V35H4zM5,34H6V35H5zM7,34H8V35H7zM9,34H10V35H9zM10,34H11V35H10zM16,34H17V35H16zM19,34H20V35H19zM21,34H22V35H21zM22,34H23V35H22zM23,34H24V35H23zM24,34H25V35H24zM25,34H26V35H25zM26,34H27V35H26zM27,34H28V35H27zM29,34H30V35H29zM30,34H31V35H30zM31,34H32V35H31zM33,34H34V35H33zM34,34H35V35H34zM37,34H38V35H37zM1,35H2V36H1zM3,35H4V36H3zM4,35H5V36H4zM5,35H6V36H5zM7,35H8V36H7zM9,35H10V36H9zM10,35H11V36H10zM11,35H12V36H11zM13,35H14V36H13zM14,35H15V36H14zM15,35H16V36H15zM16,35H17V36H16zM17,35H18V36H17zM20,35H21V36H20zM26,35H27V36H26zM27,35H28V36H27zM28,35H29V36H28zM36,35H37V36H36zM37,35H38V36H37zM1,36H2V37H1zM7,36H8V37H7zM12,36H13V37H12zM16,36H17V37H16zM20,36H21V37H20zM21,36H22V37H21zM22,36H23V37H22zM25,36H26V37H25zM27,36H28V37H27zM28,36H29V37H28zM29,36H30V37H29zM31,36H32V37H31zM33,36H34V37H33zM37,36H38V37H37zM1,37H2V38H1zM2,37H3V38H2zM3,37H4V38H3zM4,37H5V38H4zM5,37H6V38H5zM6,37H7V38H6zM7,37H8V38H7zM9,37H10V38H9zM10,37H11V38H10zM12,37H13V38H12zM13,37H14V38H13zM14,37H15V38H14zM15,37H16V38H15zM16,37H17V38H16zM18,37H19V38H18zM20,37H21V38H20zM21,37H22V38H21zM23,37H24V38H23zM25,37H26V38H25zM26,37H27V38H26zM30,37H31V38H30zM31,37H32V38H31zM33,37H34V38H33zM35,37H36V38H35zM36,37H37V38H36zM37,37H38V38H37z\" id=\"qr-path\" fill=\"#000000\" fill-opacity=\"1\" fill-rule=\"nonzero\" stroke=\"none\"/\u003e\u003c/svg\u003e\u003c/div\u003e\n \u003ca class=\"btn btn-sun\" href=\"https://esvcs.dot.go.th/e-service/LicenseInformationPage?tbln=1024551\" target=\"_blank\" rel=\"noopener\"\u003eOpen the official record\u003c/a\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/section\u003e\n\n \u003csection class=\"real\" aria-labelledby=\"real-h\"\u003e\n \u003cdiv class=\"wrap real-head\"\u003e\n \u003cdiv\u003e\n \u003cp class=\"kicker\"\u003eReal golfers, real trips\u003c/p\u003e\n \u003ch2 class=\"display h2\" id=\"real-h\"\u003eGroups who flew with us\u003c/h2\u003e\n \u003c/div\u003e\n \u003cp class=\"lede\"\u003eThese are real Taigolf groups on our Thailand trips — met at the airport, looked after on every course. Haikou is our next destination, with the same team.\u003c/p\u003e\n \u003c/div\u003e\n \u003cdiv class=\"marquee\"\u003e\u003cdiv class=\"track\"\u003e\u003cfigure class=\"wide\"\u003e\u003cimg src=\"/images/china/china-35-08fcfae95c.jpg\" alt=\"Golf group with a Taigolf welcome sign at Bangkok airport\" loading=\"lazy\"\u003e\u003cfigcaption\u003eMohd Badrul Hisyam \u0026amp; friends, just landed\u003c/figcaption\u003e\u003c/figure\u003e\u003cfigure class=\"tall\"\u003e\u003cimg src=\"/images/china/china-36-7618f7c2aa.jpg\" alt=\"Three golfers giving a thumbs up on a wooden bridge over a lake\" loading=\"lazy\"\u003e\u003c/figure\u003e\u003cfigure class=\"sq\"\u003e\u003cimg src=\"/images/china/china-37-0a0d5459fd.jpg\" alt=\"A large group of golfers waving on a hilltop course\" loading=\"lazy\"\u003e\u003c/figure\u003e\u003cfigure class=\"tall\"\u003e\u003cimg src=\"/images/china/china-38-e3ace51660.jpg\" alt=\"Four golfers with a Taigolf guide on a fairway\" loading=\"lazy\"\u003e\u003c/figure\u003e\u003cfigure class=\"wide\"\u003e\u003cimg src=\"/images/china/china-39-b154cdab45.jpg\" alt=\"A large golf group posing on a green\" loading=\"lazy\"\u003e\u003cfigcaption\u003eBig group, one smooth trip\u003c/figcaption\u003e\u003c/figure\u003e\u003cfigure class=\"tall\"\u003e\u003cimg src=\"/images/china/china-40-3ae72c61d0.jpg\" alt=\"Two golfers in front of a lake fountain\" loading=\"lazy\"\u003e\u003c/figure\u003e\u003cfigure class=\"wide\"\u003e\u003cimg src=\"/images/china/china-41-74b4a043fb.jpg\" alt=\"A large golf group with a Taigolf banner outside a clubhouse\" loading=\"lazy\"\u003e\u003cfigcaption\u003eA 30-golfer group trip\u003c/figcaption\u003e\u003c/figure\u003e\u003cfigure class=\"tall\"\u003e\u003cimg src=\"/images/china/china-42-0d4e812f3d.jpg\" alt=\"Four golfers with a Taigolf guide on the course\" loading=\"lazy\"\u003e\u003c/figure\u003e\u003cfigure class=\"wide\"\u003e\u003cimg src=\"/images/china/china-43-b517de12ab.jpg\" alt=\"Seven golfers in front of a topiary garden\" loading=\"lazy\"\u003e\u003c/figure\u003e\u003cfigure class=\"sq\"\u003e\u003cimg src=\"/images/china/china-44-0a151a430a.jpg\" alt=\"Two golfers met at the airport with a Taigolf welcome sign\" loading=\"lazy\"\u003e\u003c/figure\u003e\u003c/div\u003e\u003cdiv class=\"track rev\"\u003e\u003cfigure class=\"wide\"\u003e\u003cimg src=\"/images/china/china-45-d2f0a8940b.jpg\" alt=\"A golf group with luggage and a Taigolf sign at the airport\" loading=\"lazy\"\u003e\u003cfigcaption\u003eMet at the airport by our team\u003c/figcaption\u003e\u003c/figure\u003e\u003cfigure class=\"wide\"\u003e\u003cimg src=\"/images/china/china-46-2d2272e2f2.jpg\" alt=\"Five golfers in team shirts on a fairway\" loading=\"lazy\"\u003e\u003c/figure\u003e\u003cfigure class=\"tall\"\u003e\u003cimg src=\"/images/china/china-47-321df49fa6.jpg\" alt=\"Golfers posing on a stone sculpture at a course\" loading=\"lazy\"\u003e\u003c/figure\u003e\u003cfigure class=\"wide\"\u003e\u003cimg src=\"/images/china/china-48-90cac6a907.jpg\" alt=\"Four golfers holding their drivers\" loading=\"lazy\"\u003e\u003c/figure\u003e\u003cfigure class=\"sq\"\u003e\u003cimg src=\"/images/china/china-49-37d682688f.jpg\" alt=\"Five golfers in front of a clubhouse stone wall\" loading=\"lazy\"\u003e\u003c/figure\u003e\u003cfigure class=\"tall\"\u003e\u003cimg src=\"/images/china/china-50-6659486bf4.jpg\" alt=\"Seven golfers under a big blue sky\" loading=\"lazy\"\u003e\u003c/figure\u003e\u003cfigure class=\"wide\"\u003e\u003cimg src=\"/images/china/china-51-40474044b7.jpg\" alt=\"Five golfers with a Taigolf guide giving thumbs up\" loading=\"lazy\"\u003e\u003c/figure\u003e\u003cfigure class=\"tall\"\u003e\u003cimg src=\"/images/china/china-52-3348d3e24c.jpg\" alt=\"Eight golfers on a course on a cloudy day\" loading=\"lazy\"\u003e\u003c/figure\u003e\u003cfigure class=\"sq\"\u003e\u003cimg src=\"/images/china/china-53-7ee8a74dce.jpg\" alt=\"Golfers relaxing with a Taigolf guide at a café\" loading=\"lazy\"\u003e\u003c/figure\u003e\u003cfigure class=\"sq\"\u003e\u003cimg src=\"/images/china/china-54-8b156d9404.jpg\" alt=\"Golfers with golf bags and a Taigolf welcome sign at the airport\" loading=\"lazy\"\u003e\u003c/figure\u003e\u003c/div\u003e\u003c/div\u003e\n \u003cp class=\"real-note wrap\"\u003eHover to pause.\u003c/p\u003e\n \u003c/section\u003e\n \u003csection class=\"reviews\" aria-labelledby=\"rv-h\"\u003e\n \u003cdiv class=\"wrap\"\u003e\n \u003ch2 class=\"kicker\" id=\"rv-h\" style=\"color:var(--fairway)\"\u003eWhat golfers say\u003c/h2\u003e\n \u003cdiv class=\"faces\" id=\"faces\" role=\"group\" aria-label=\"Choose a review\"\u003e\u003c/div\u003e\n \u003cblockquote style=\"margin:0\"\u003e\n \u003cp class=\"quote\" id=\"rvText\"\u003e\u003c/p\u003e\n \u003cp class=\"who\" id=\"rvWho\"\u003e\u003c/p\u003e\n \u003c/blockquote\u003e\n \u003cdiv class=\"rv-nav\" id=\"rvNav\"\u003e\u003c/div\u003e\n \u003c/div\u003e\n \u003c/section\u003e\n\n \u003csection class=\"faq\" id=\"faq\" aria-labelledby=\"faq-h\"\u003e\n \u003cdiv class=\"wrap faq-grid\"\u003e\n \u003cdiv\u003e\n \u003cp class=\"kicker\"\u003eBefore you book\u003c/p\u003e\n \u003ch2 class=\"display h2\" id=\"faq-h\"\u003eGood questions\u003c/h2\u003e\n \u003cp class=\"lede\" style=\"margin-top:18px\"\u003eStill unsure? Send us a message and a real person on our team will answer.\u003c/p\u003e\n \u003ca class=\"btn btn-flag\" style=\"margin-top:24px\" href=\"https://wa.me/66611823596\" target=\"_blank\" rel=\"noopener\"\u003eAsk on WhatsApp\u003c/a\u003e\n \u003cdiv class=\"chat\" aria-label=\"Example WhatsApp chat with the Taigolf team\"\u003e\n \u003cdiv class=\"chat-top\"\u003e\u003cspan class=\"chat-av\"\u003eT\u003c/span\u003e\u003cdiv\u003e\u003cb\u003eTaigolf Team\u003c/b\u003e\u003csmall\u003eonline · usually replies in minutes\u003c/small\u003e\u003c/div\u003e\u003c/div\u003e\n \u003cdiv class=\"chat-body\"\u003e\n \u003cp class=\"msg me\"\u003eHi! 8 of us want to golf in Haikou in March. Possible?\u003c/p\u003e\n \u003cp class=\"msg typing\" aria-hidden=\"true\"\u003e\u003ci\u003e\u003c/i\u003e\u003ci\u003e\u003c/i\u003e\u003ci\u003e\u003c/i\u003e\u003c/p\u003e\n \u003cp class=\"msg them\"\u003eHi! Yes, March is a great month 😊 Which courses would your group like to play?\u003c/p\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003cdiv\u003e\n \u003cdetails open\u003e\u003csummary\u003eAre flights included?\u003ci\u003e+\u003c/i\u003e\u003c/summary\u003e\u003cp\u003eNo. Packages start from your arrival at Haikou airport. Book the flight that suits your group, and we'll meet you at the airport.\u003c/p\u003e\u003c/details\u003e\n \u003cdetails\u003e\u003csummary\u003eHow big does our group need to be?\u003ci\u003e+\u003c/i\u003e\u003c/summary\u003e\u003cp\u003eOur prices are based on groups of 4 or 8 golfers. Smaller or bigger groups are welcome — use the price calculator, then we'll confirm the exact price.\u003c/p\u003e\u003c/details\u003e\n \u003cdetails\u003e\u003csummary\u003eCan we change the courses?\u003ci\u003e+\u003c/i\u003e\u003c/summary\u003e\u003cp\u003eYes. You can swap any round for another Mission Hills course. Some courses, like Blackstone and Lava Fields, cost a little more to play.\u003c/p\u003e\u003c/details\u003e\n \u003cdetails\u003e\u003csummary\u003eWe have dietary needs. Can you help?\u003ci\u003e+\u003c/i\u003e\u003c/summary\u003e\u003cp\u003eYes. Tell us what your group needs when you enquire, and we'll check restaurant options at the resort and nearby before you travel.\u003c/p\u003e\u003c/details\u003e\n \u003cdetails\u003e\u003csummary\u003eDo Malaysians need a visa for China?\u003ci\u003e+\u003c/i\u003e\u003c/summary\u003e\u003cp\u003eIn recent years, Malaysian passport holders have been able to visit China visa-free for short trips. Rules can change, so we check the latest entry rules for your travel dates before you book.\u003c/p\u003e\u003c/details\u003e\n \u003cdetails\u003e\u003csummary\u003eDoes the team speak English?\u003ci\u003e+\u003c/i\u003e\u003c/summary\u003e\u003cp\u003eYes. Our team supports you in English and Chinese, 24 hours a day during your trip.\u003c/p\u003e\u003c/details\u003e\n \u003cdetails\u003e\u003csummary\u003eHow do we pay?\u003ci\u003e+\u003c/i\u003e\u003c/summary\u003e\u003cp\u003ePay 50% to confirm your booking. Pay the rest when you arrive, by cash or bank transfer. Card payments have a 3.5% fee. Nothing is booked until you say yes.\u003c/p\u003e\u003c/details\u003e\n \u003cdetails\u003e\u003csummary\u003eWhat if we need to cancel?\u003ci\u003e+\u003c/i\u003e\u003c/summary\u003e\u003cp\u003eYour written quote shows the cancellation terms clearly before you pay anything. Ask us any time if something is not clear.\u003c/p\u003e\u003c/details\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/section\u003e\n\n \u003csection class=\"cta\" aria-labelledby=\"cta-h\"\u003e\n \u003cimg class=\"cheer\" src=\"/images/china/china-55-43f0271d7c.webp\" alt=\"A golfer celebrating a great shot\"\u003e\n \u003cdiv class=\"wrap\"\u003e\n \u003ch2 class=\"display\" id=\"cta-h\"\u003eYour crew. Haikou. Ten courses.\u003c/h2\u003e\n \u003cp\u003eTell us how many golfers and when you want to go. We'll send a trip plan and price, with no obligation.\u003c/p\u003e\n \u003cdiv class=\"row\"\u003e\n \u003ca class=\"btn btn-sun\" href=\"https://wa.me/66611823596\" target=\"_blank\" rel=\"noopener\"\u003ePlan my trip on WhatsApp\u003c/a\u003e\n \u003cbutton class=\"btn btn-ghost\" data-go=\"calculator\"\u003eTry the price calculator\u003c/button\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003c/section\u003e\n\u003c/main\u003e\n\n\u003c!-- ================= CALCULATOR PAGE ================= --\u003e\n\u003cmain id=\"page-calc\" hidden\u003e\n \u003cdiv class=\"wrap\"\u003e\n \u003cdiv class=\"calc-head\"\u003e\n \u003cdiv\u003e\n \u003cp class=\"kicker\"\u003ePrice calculator\u003c/p\u003e\n \u003ch1 class=\"display\"\u003eBuild your Haikou trip\u003c/h1\u003e\n \u003c/div\u003e\n \u003cimg class=\"calc-golfer\" src=\"/images/china/china-56-0802e5905e.webp\" alt=\"A smiling golfer with his golf bag\"\u003e\n \u003cp class=\"lede\"\u003eChoose your hotel, group size, days and courses. You'll see an estimated price per golfer right away.\u003c/p\u003e\n \u003c/div\u003e\n\n \u003cdiv class=\"calc\"\u003e\n \u003cdiv\u003e\n \u003csection class=\"step\" aria-labelledby=\"s1\"\u003e\n \u003cdiv class=\"step-h\"\u003e\u003cspan class=\"step-n\"\u003e1\u003c/span\u003e\u003cdiv\u003e\u003ch2 id=\"s1\"\u003eHotel\u003c/h2\u003e\u003cp\u003eWhere your group will stay\u003c/p\u003e\u003c/div\u003e\u003c/div\u003e\n \u003cdiv class=\"hotel-opt\" role=\"radio\" aria-checked=\"true\" tabindex=\"0\"\u003e\n \u003cimg src=\"/images/china/china-16-50c32ab9ce.jpg\" alt=\"\"\u003e\n \u003cdiv\u003e\u003cb\u003eMission Hills Resort Haikou\u003c/b\u003e\u003cspan\u003eBreakfast and hot-spring valley included\u003c/span\u003e\u003c/div\u003e\n \u003cspan class=\"tick\"\u003e\u003csvg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"3\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M5 12l5 5 9-10\"/\u003e\u003c/svg\u003e\u003c/span\u003e\n \u003c/div\u003e\n \u003cp class=\"soon\"\u003eMore hotels coming soon. Ask us if you want a different hotel.\u003c/p\u003e\n \u003c/section\u003e\n\n \u003csection class=\"step\" aria-labelledby=\"s2\"\u003e\n \u003cdiv class=\"step-h\"\u003e\u003cspan class=\"step-n\"\u003e2\u003c/span\u003e\u003cdiv\u003e\u003ch2 id=\"s2\"\u003eGolfers and days\u003c/h2\u003e\u003cp\u003eHow many people and how long\u003c/p\u003e\u003c/div\u003e\u003c/div\u003e\n \u003cdiv class=\"counters\"\u003e\n \u003cdiv class=\"counter\"\u003e\n \u003clabel id=\"lg\"\u003eGolfers\u003c/label\u003e\n \u003cdiv class=\"ctrl\"\u003e\u003cbutton data-step=\"golfers\" data-d=\"-1\" aria-label=\"Fewer golfers\"\u003e−\u003c/button\u003e\u003coutput id=\"oGolfers\" aria-labelledby=\"lg\"\u003e4\u003c/output\u003e\u003cbutton data-step=\"golfers\" data-d=\"1\" aria-label=\"More golfers\"\u003e+\u003c/button\u003e\u003c/div\u003e\n \u003csmall\u003eBest price for 4 or 8\u003c/small\u003e\n \u003c/div\u003e\n \u003cdiv class=\"counter\"\u003e\n \u003clabel id=\"ln\"\u003eNights\u003c/label\u003e\n \u003cdiv class=\"ctrl\"\u003e\u003cbutton data-step=\"nights\" data-d=\"-1\" aria-label=\"Fewer nights\"\u003e−\u003c/button\u003e\u003coutput id=\"oNights\" aria-labelledby=\"ln\"\u003e4\u003c/output\u003e\u003cbutton data-step=\"nights\" data-d=\"1\" aria-label=\"More nights\"\u003e+\u003c/button\u003e\u003c/div\u003e\n \u003csmall id=\"daysLbl\"\u003e5 days in Haikou\u003c/small\u003e\n \u003c/div\u003e\n \u003cdiv class=\"counter\"\u003e\n \u003clabel id=\"lr\"\u003eRounds of golf\u003c/label\u003e\n \u003cdiv class=\"ctrl\"\u003e\u003cbutton data-step=\"rounds\" data-d=\"-1\" aria-label=\"Fewer rounds\"\u003e−\u003c/button\u003e\u003coutput id=\"oRounds\" aria-labelledby=\"lr\"\u003e3\u003c/output\u003e\u003cbutton data-step=\"rounds\" data-d=\"1\" aria-label=\"More rounds\"\u003e+\u003c/button\u003e\u003c/div\u003e\n \u003csmall\u003eUp to one per night\u003c/small\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003cdiv class=\"seg\" role=\"group\" aria-label=\"Room type\"\u003e\n \u003cbutton data-room=\"twin\" aria-pressed=\"true\"\u003eTwin share\u003c/button\u003e\n \u003cbutton data-room=\"single\" aria-pressed=\"false\"\u003eSingle room\u003c/button\u003e\n \u003c/div\u003e\n \u003c/section\u003e\n\n \u003csection class=\"step\" aria-labelledby=\"s3\"\u003e\n \u003cdiv class=\"step-h\"\u003e\u003cspan class=\"step-n\"\u003e3\u003c/span\u003e\u003cdiv\u003e\u003ch2 id=\"s3\"\u003eCourses\u003c/h2\u003e\u003cp\u003eChoose a course for each round\u003c/p\u003e\u003c/div\u003e\u003c/div\u003e\n \u003cdiv id=\"rounds\"\u003e\u003c/div\u003e\n \u003c/section\u003e\n\n \u003csection class=\"step\" aria-labelledby=\"s4\"\u003e\n \u003cdiv class=\"step-h\"\u003e\u003cspan class=\"step-n\"\u003e4\u003c/span\u003e\u003cdiv\u003e\u003ch2 id=\"s4\"\u003eExtras\u003c/h2\u003e\u003cp\u003eNice to have\u003c/p\u003e\u003c/div\u003e\u003c/div\u003e\n \u003clabel class=\"addon\"\u003e\u003cinput type=\"checkbox\" id=\"spa\" checked\u003e\u003cdiv\u003e\u003cb\u003e60-minute spa\u003c/b\u003e\u003cspan\u003eFoot massage, Chinese acupressure, aroma or deep-tissue\u003c/span\u003e\u003c/div\u003e\u003cem id=\"spaPrice\"\u003e+ RM 230\u003c/em\u003e\u003c/label\u003e\n \u003c/section\u003e\n \u003c/div\u003e\n\n \u003caside class=\"summary\" aria-labelledby=\"sumh\"\u003e\n \u003cdiv class=\"sum-top\"\u003e\n \u003ch2 id=\"sumh\"\u003eYour estimate\u003c/h2\u003e\n \u003cdiv class=\"cur\" role=\"group\" aria-label=\"Currency\"\u003e\n \u003cbutton data-cur=\"MYR\" aria-pressed=\"true\"\u003eRM\u003c/button\u003e\n \u003cbutton data-cur=\"CNY\" aria-pressed=\"false\"\u003e¥ CNY\u003c/button\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003cdiv class=\"big\" aria-live=\"polite\"\u003e\n \u003csmall\u003ePer golfer, \u003cspan id=\"roomLbl\"\u003etwin share\u003c/span\u003e\u003c/small\u003e\n \u003cb id=\"perPerson\"\u003eRM 0\u003c/b\u003e\n \u003cdiv class=\"alt\" id=\"altPrice\"\u003e\u003c/div\u003e\n \u003c/div\u003e\n \u003cul class=\"lines\" id=\"lines\"\u003e\u003c/ul\u003e\n \u003cdiv class=\"sum-trip\" id=\"tripText\"\u003e\u003c/div\u003e\n \u003ca class=\"btn btn-sun\" id=\"sendQuote\" href=\"#\" target=\"_blank\" rel=\"noopener\"\u003eSend this to Taigolf on WhatsApp\u003c/a\u003e\n \u003cp class=\"fine\"\u003eEstimate only, for weekday rounds. Flights and caddie tips (about ¥200 per round) are not included. Final price depends on dates and availability. RM shown at ¥1 ≈ RM \u003cspan class=\"rate\"\u003e0.60\u003c/span\u003e.\u003c/p\u003e\n \u003c/aside\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n\u003c/main\u003e\n\n\n\u003c!-- ================= PRIVACY PAGE ================= --\u003e\n\u003cmain id=\"page-privacy\" hidden\u003e\n \u003cdiv class=\"wrap legal\"\u003e\n \u003cp class=\"kicker\"\u003eLegal\u003c/p\u003e\n \u003ch1 class=\"display\"\u003ePrivacy Policy\u003c/h1\u003e\n \u003cp class=\"legal-date\"\u003eLast updated: September 2026\u003c/p\u003e\n \u003cp\u003eHAPPY TOUR INTERNATIONAL CO., LTD. (\"we\", \"us\", \"our\") runs Taigolf and this Taigolf China website, and the Taigolf Facebook Page. This Privacy Policy explains what information we collect from you, why we collect it, and how we protect it.\u003c/p\u003e\n \u003ch2\u003e1. Information we collect\u003c/h2\u003e\n \u003cp\u003eWhen you contact us through this website, WhatsApp, Facebook, Facebook Messenger, LINE or email, we may collect:\u003c/p\u003e\n \u003cul\u003e\n \u003cli\u003eYour name\u003c/li\u003e\n \u003cli\u003eYour phone number and/or email address\u003c/li\u003e\n \u003cli\u003eMessages you send us, for example questions about golf packages, courses, dates or bookings\u003c/li\u003e\n \u003cli\u003eDetails of your trip request, such as group size, dates and chosen courses\u003c/li\u003e\n \u003cli\u003eBasic information about how you found us, for example if you clicked an online ad\u003c/li\u003e\n \u003c/ul\u003e\n \u003cp\u003eWe do not collect payment card details, passwords or government ID numbers through these channels.\u003c/p\u003e\n \u003ch2\u003e2. The price calculator\u003c/h2\u003e\n \u003cp\u003eThe price calculator runs in your browser. Your choices are saved only on your own device, so they are still there next time. They are sent to us only if you tap \"Send this to Taigolf on WhatsApp\".\u003c/p\u003e\n \u003ch2\u003e3. How we use your information\u003c/h2\u003e\n \u003cul\u003e\n \u003cli\u003eTo answer your questions about our golf trips\u003c/li\u003e\n \u003cli\u003eTo prepare quotes and trip plans\u003c/li\u003e\n \u003cli\u003eTo follow up about bookings you are interested in\u003c/li\u003e\n \u003cli\u003eTo improve our customer service\u003c/li\u003e\n \u003c/ul\u003e\n \u003cp\u003eWe do not sell, rent or trade your personal information to anyone.\u003c/p\u003e\n \u003ch2\u003e4. How we store your information\u003c/h2\u003e\n \u003cp\u003eInformation you share with us is stored securely in our internal customer records, which only our sales and customer service staff can access. We keep it only as long as we need it to help you, or as required by law.\u003c/p\u003e\n \u003ch2\u003e5. Facebook and online ads\u003c/h2\u003e\n \u003cp\u003eIf you message our Facebook Page, we may use Facebook's Messenger Platform and Conversions API to receive your message and, where relevant, to understand which ad led you to contact us. This helps us reply faster and understand which of our marketing is useful. We only use this information for the purposes above.\u003c/p\u003e\n \u003ch2\u003e6. Your rights\u003c/h2\u003e\n \u003cp\u003eYou can contact us at any time to:\u003c/p\u003e\n \u003cul\u003e\n \u003cli\u003eAsk what information we have about you\u003c/li\u003e\n \u003cli\u003eAsk us to correct or delete your information\u003c/li\u003e\n \u003cli\u003eWithdraw your consent for us to contact you\u003c/li\u003e\n \u003c/ul\u003e\n \u003cp\u003eTo do this, email \u003ca href=\"mailto:happytour.out@gmail.com\"\u003ehappytour.out@gmail.com\u003c/a\u003e or message us on WhatsApp.\u003c/p\u003e\n \u003ch2\u003e7. Changes to this policy\u003c/h2\u003e\n \u003cp\u003eWe may update this Privacy Policy from time to time. Changes will be posted on this page with a new date.\u003c/p\u003e\n \u003ch2\u003e8. Contact us\u003c/h2\u003e\n \u003cp\u003e\u003cb\u003eHAPPY TOUR INTERNATIONAL CO., LTD.\u003c/b\u003e\u003cbr\u003e118/81 Pradya BisHome Onnut-Suvarnabhumi Townhome, Lat Krabang, Bangkok 10520, Thailand\u003cbr\u003eEmail: \u003ca href=\"mailto:happytour.out@gmail.com\"\u003ehappytour.out@gmail.com\u003c/a\u003e\u003cbr\u003eWhatsApp: \u003ca href=\"https://wa.me/66611823596\" target=\"_blank\" rel=\"noopener\"\u003e+66 61 182 3596\u003c/a\u003e\u003c/p\u003e\n \u003cbutton class=\"btn btn-flag\" data-go=\"home\" style=\"margin-top:20px\"\u003eBack to home\u003c/button\u003e\n \u003c/div\u003e\n\u003c/main\u003e\n\n\u003cfooter\u003e\n \u003cdiv class=\"wrap foot\"\u003e\n \u003cdiv\u003e\n \u003cspan style=\"display:inline-flex;align-items:center;gap:12px\"\u003e\u003cspan style=\"background:#fff;border-radius:14px;padding:6px 8px;display:inline-flex\"\u003e\u003cimg src=\"/images/china/china-03-d509eaa36d.png\" alt=\"Taigolf\" style=\"height:44px;width:auto\"\u003e\u003c/span\u003e\u003cb style=\"font-family:var(--display);font-size:26px\"\u003eCHINA\u003c/b\u003e\u003c/span\u003e\n \u003cp style=\"margin:10px 0 0\"\u003eHappy Tour International Co., Ltd.\u003cbr\u003e118/81 Pradya BisHome Onnut-Suvarnabhumi Townhome, Lat Krabang, Bangkok 10520\u003cbr\u003eTour licence no. 11/13206 · Company reg. 0105566043282\u003c/p\u003e\n \u003c/div\u003e\n \u003cdiv\u003e\n \u003cb\u003eContact\u003c/b\u003e\n \u003cul\u003e\n \u003cli\u003e\u003ca href=\"https://wa.me/66611823596\" target=\"_blank\" rel=\"noopener\"\u003eWhatsApp +66 61 182 3596\u003c/a\u003e\u003c/li\u003e\n \u003cli\u003e\u003ca href=\"mailto:sales01@taigolf.com\"\u003esales01@taigolf.com\u003c/a\u003e\u003c/li\u003e\n \u003cli\u003e\u003ca href=\"https://www.facebook.com/TaiGolf8/\" target=\"_blank\" rel=\"noopener\"\u003eFacebook\u003c/a\u003e\u003c/li\u003e\n \u003c/ul\u003e\n \u003c/div\u003e\n \u003cdiv\u003e\n \u003cb\u003eMore from Taigolf\u003c/b\u003e\n \u003cul\u003e\n \u003cli\u003e\u003ca href=\"https://www.taigolf.com\" target=\"_blank\" rel=\"noopener\"\u003eThailand golf tours\u003c/a\u003e\u003c/li\u003e\n \u003cli\u003e\u003ca href=\"https://packages.taigolf.com\" target=\"_blank\" rel=\"noopener\"\u003eThailand packages\u003c/a\u003e\u003c/li\u003e\n \u003cli\u003e\u003cbutton data-go=\"calculator\" style=\"background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer\"\u003eChina price calculator\u003c/button\u003e\u003c/li\u003e\n \u003cli\u003e\u003cbutton data-go=\"privacy\" style=\"background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer\"\u003ePrivacy Policy\u003c/button\u003e\u003c/li\u003e\n \u003c/ul\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n\u003c/footer\u003e\n\n\u003cscript\u003e\n/* ============ DATA — edit prices here ============ */\nvar RATE = 0.60; // 1 CNY = RM 0.60 (update when needed)\nvar PRICING = {\n golfNight: 1150, // per person, twin share: 1 hotel night + 1 round (package: ¥3,450 for 3)\n extraNight: 350, // per person, twin share, night without golf\n singleSupp: 350, // extra per person per night for a single room\n transferPerCar: 450, // per car, per airport trip (1 car per 4 golfers, 2 trips)\n spa: 380, // per person\n service: 500 // per person: planning and 24-hour support\n};\nvar COURSES = [\n {no:1,id:'blackstone',name:'Blackstone',tag:'The flagship. World Cup and DP World Tour venue.',par:73,yds:'7,808',sur:1000,imgs:['black2','black3','hero'],\n desc:'The most famous course at Mission Hills Haikou. Black lava rock, jungle, 100-year-old lychee trees, lakes and wetlands. The closing holes are all about risk and reward.'},\n {no:2,id:'sandbelt',name:'Sandbelt Trails',tag:'Inspired by Australia\\u2019s famous sandbelt courses.',par:72,yds:'7,297',sur:0,imgs:['sand1','sand2','sand3'],\n desc:'Wide fairways, big rolling greens, tall bunkers and eucalyptus trees. Many ways to attack each hole, with a relaxed, open feel.'},\n {no:3,id:'vintage',name:'The Vintage',tag:'Classic style, with old stone walls.',par:72,yds:'7,363',sur:0,imgs:['vint1','vint2'],\n desc:'Keeps the natural land and thick trees. Tree-lined fairways, deep pot bunkers and blind shots. Narrow fairways reward accurate driving.'},\n {no:4,id:'c4',name:'Course No. 4',tag:'A dramatic short course.',par:null,yds:null,sur:null,imgs:[],desc:'Available on request. Ask our team for details.'},\n {no:5,id:'lava',name:'Lava Fields',tag:'Big bunkers and bare volcanic rock.',par:72,yds:'7,475',sur:1000,imgs:['lava1','lava2','lava3'],\n desc:'A championship course that shows off Hainan\\u2019s volcanic land. Open views and fairly wide fairways, but big bunkers and lava rock decide your line into each green.'},\n {no:6,id:'meadow',name:'Meadow Links',tag:'Home of the famous panda bunkers.',par:70,yds:'6,673',sur:0,imgs:['mead1','mead2'],\n desc:'Classic US east-coast style with open meadows, long grass and \\u201Cchurch pew\\u201D bunkers. The panda-face bunker and paw-print tee make it the most photographed course here.'},\n {no:7,id:'quarry',name:'Stone Quarry',tag:'Old quarry and railway, Wild West feel.',par:70,yds:'6,029',sur:0,imgs:['stone1','stone2','stone3'],\n desc:'Built around an old volcanic quarry and railway. Rock walls, rail tracks, mine carts and a rail bridge. Six par-3s make accuracy more important than distance.'},\n {no:8,id:'c8',name:'Course No. 8',tag:'A fun short course.',par:null,yds:null,sur:null,imgs:[],desc:'Available on request. Ask our team for details.'},\n {no:9,id:'c9',name:'Course No. 9',tag:'Modern and elegant.',par:null,yds:null,sur:null,imgs:[],desc:'Available on request. Ask our team for details.'},\n {no:10,id:'c10',name:'Course No. 10',tag:'Wide open green views.',par:null,yds:null,sur:null,imgs:[],desc:'Available on request. Ask our team for details.'}\n];\nvar PIN_POS = {1:[122,132],2:[292,44],3:[432,82],4:[540,214],5:[84,290],6:[300,146],7:[562,372],8:[238,362],9:[392,352],10:[352,266]};\nvar IMGS = {\"r_mike\": \"/images/china/china-57-2d543ad292.jpg\", \"sand1\": \"/images/china/china-58-cead3a38b0.jpg\", \"vint1\": \"/images/china/china-59-07268ab3a5.jpg\", \"sand3\": \"/images/china/china-60-3166f59e34.jpg\", \"vint2\": \"/images/china/china-61-a7db5b409d.jpg\", \"black3\": \"/images/china/china-14-9e60b79410.jpg\", \"hero\": \"/images/china/china-04-50142ff138.jpg\", \"lava2\": \"/images/china/china-10-6b5ec5bc6e.jpg\", \"mead2\": \"/images/china/china-62-24e356293f.jpg\", \"lava1\": \"/images/china/china-07-147314cf67.jpg\", \"hotel2\": \"/images/china/china-17-1191695a23.jpg\", \"sand2\": \"/images/china/china-63-8c4ab6615c.jpg\", \"hotel1\": \"/images/china/china-16-50c32ab9ce.jpg\", \"hotel3\": \"/images/china/china-18-17f561ce50.jpg\", \"mead1\": \"/images/china/china-08-58a8b9ea42.jpg\", \"lava3\": \"/images/china/china-64-7e3875d8d4.jpg\", \"stone1\": \"/images/china/china-15-5bb703fcef.jpg\", \"r_john\": \"/images/china/china-65-1f8d523439.jpg\", \"r_theo\": \"/images/china/china-66-e8877de799.jpg\", \"black2\": \"/images/china/china-67-7022ca9171.jpg\", \"stone2\": \"/images/china/china-22-cfcbc31101.jpg\", \"r_hiro\": \"/images/china/china-68-006119f79f.jpg\", \"stone3\": \"/images/china/china-69-8fc1f54b1a.jpg\"};\nvar REVIEWS = [\n {t:'Choosing Taigolf was the best decision. The courses were breathtaking and the price was right.',w:'John Sio',f:'Malaysia',photo:'r_john'},\n {t:'Hailey and the team arranged everything from the moment we landed. We will come back again.',w:'Theo Dashun',f:'Hong Kong',photo:'r_theo'},\n {t:'Best golf tour operator — very good service, friendly staff and a fair price.',w:'Mike Mangio',f:'Philippines',photo:'r_mike'},\n {t:'The attention to detail and the quality of the courses made my trip unforgettable.',w:'Hiroshi Tanaka',f:'Japan',photo:'r_hiro'}\n];\n\n/* ============ HELPERS ============ */\nfunction $(s,r){return (r||document).querySelector(s)}\nfunction $$(s,r){return Array.prototype.slice.call((r||document).querySelectorAll(s))}\nfunction fmt(n){return Math.round(n).toLocaleString('en-US')}\nfunction money(cny,cur){return cur==='CNY' ? '\\u00A5' + fmt(Math.round(cny/10)*10) : 'RM ' + fmt(Math.round(cny*RATE/10)*10)}\nfunction byId(id){for(var i=0;i\u003cCOURSES.length;i++){if(COURSES[i].id===id)return COURSES[i]}return null}\nfunction store(k,v){try{ if(v===undefined){return localStorage.getItem(k)} localStorage.setItem(k,v)}catch(e){return null}}\n$$('.rate').forEach(function(el){el.textContent=RATE.toFixed(2)});\n/* ============ LANGUAGES (EN / BM / 中文) ============ */\nvar DICT = {\"ms\": {\"Courses\": \"Padang\", \"Packages\": \"Pakej\", \"Travel info\": \"Info perjalanan\", \"FAQ\": \"Soalan lazim\", \"Check us\": \"Semak kami\", \"Price calculator\": \"Kalkulator harga\", \"WhatsApp us\": \"WhatsApp kami\", \"Golf trips for Malaysian golfers\": \"Percutian golf untuk golfer Malaysia\", \"Next stop: Haikou, China\": \"Destinasi seterusnya: Haikou, China\", \"Ten volcanic golf courses. One hot-spring resort. Every detail handled by Taigolf.\": \"Sepuluh padang golf gunung berapi. Satu resort mata air panas. Semua urusan dijaga oleh Taigolf.\", \"From\": \"Dari\", \"To\": \"Ke\", \"Seat: window, obviously\": \"Tempat duduk: tepi tingkap, semestinya\", \"Scroll to land\": \"Tatal untuk mendarat\", \"Tee off on volcanic ground\": \"Mula bermain di tanah gunung berapi\", \"Golf holidays at Mission Hills Haikou, planned from start to finish by Taigolf — the golf tour team trusted by golfers across Asia for 7+ years.\": \"Percutian golf di Mission Hills Haikou, dirancang dari mula hingga akhir oleh Taigolf — pasukan pelancongan golf yang dipercayai golfer seluruh Asia selama lebih 7 tahun.\", \"See Haikou packages\": \"Lihat pakej Haikou\", \"Price my trip\": \"Kira harga trip saya\", \"Tee times\": \"Masa tee\", \"Green fees, cart and caddie booked\": \"Yuran padang, kereta golf dan kedi ditempah\", \"Resort stay\": \"Penginapan resort\", \"Breakfast included every day\": \"Sarapan setiap hari\", \"Airport transfers\": \"Pengangkutan lapangan terbang\", \"Private pick-up and drop-off\": \"Jemput dan hantar persendirian\", \"24-hour support\": \"Sokongan 24 jam\", \"On WhatsApp, the whole trip\": \"Melalui WhatsApp, sepanjang perjalanan\", \"Why Haikou\": \"Kenapa Haikou\", \"Golf that looks like nowhere else\": \"Golf yang tiada tandingan\", \"Mission Hills Haikou is built on ancient lava fields. Black volcanic rock, old lychee trees and stone walls line the fairways — it feels like playing on the moon. After your round, you soak in hot springs drawn from 800 metres underground.\": \"Mission Hills Haikou dibina di atas padang lava purba. Batu gunung berapi hitam, pokok laici tua dan tembok batu di sepanjang fairway — rasa seperti bermain di bulan. Selepas bermain, berendam dalam mata air panas dari 800 meter bawah tanah.\", \"18-hole courses in one resort\": \"Padang 18 lubang dalam satu resort\", \"Hot-spring pools — a Guinness World Record\": \"Kolam mata air panas — Rekod Dunia Guinness\", \"Yards at Blackstone, the flagship course\": \"Ela di Blackstone, padang utama\", \"DP World Tour returns to Blackstone\": \"DP World Tour kembali ke Blackstone\", \"Explore the courses\": \"Terokai padang\", \"Pick your ten\": \"Pilih daripada sepuluh\", \"Tap a pin on the resort map to see each course. Six courses are in our packages today — the others can be added on request.\": \"Tekan pin pada peta resort untuk melihat setiap padang. Enam padang ada dalam pakej kami sekarang — yang lain boleh ditambah atas permintaan.\", \"Illustration only — not to scale.\": \"Ilustrasi sahaja — bukan mengikut skala.\", \"In packages\": \"Dalam pakej\", \"On request\": \"Atas permintaan\", \"Flyover video\": \"Video udara\", \"Yards\": \"Ela\", \"Holes\": \"Lubang\", \"Add to my trip\": \"Tambah ke trip saya\", \"Ready-made packages\": \"Pakej sedia ada\", \"5 days, 4 nights, 3 rounds\": \"5 hari, 4 malam, 3 pusingan\", \"Two ways to play Haikou. Prices are per person, sharing a twin room, for groups of 4 or 8 golfers.\": \"Dua cara bermain di Haikou. Harga seorang, berkongsi bilik kembar, untuk kumpulan 4 atau 8 golfer.\", \"Package A\": \"Pakej A\", \"Package B\": \"Pakej B\", \"From, per person\": \"Dari, seorang\", \"Championship Trail\": \"Laluan Kejohanan\", \"Explorer Trail\": \"Laluan Penjelajah\", \"Day 1\": \"Hari 1\", \"Day 2\": \"Hari 2\", \"Day 3\": \"Hari 3\", \"Day 4\": \"Hari 4\", \"Day 5\": \"Hari 5\", \"Arrive in Haikou\": \"Tiba di Haikou\", \"Airport pick-up, check in, evening at the hot springs\": \"Dijemput di lapangan terbang, daftar masuk, malam di mata air panas\", \"Classic tree-lined layout, par 72\": \"Susun atur klasik diapit pokok, par 72\", \"Volcanic championship course, plus a free 60-min spa\": \"Padang kejohanan gunung berapi, dengan spa 60 minit percuma\", \"The flagship — World Cup and DP World Tour venue\": \"Padang utama — lokasi Piala Dunia dan DP World Tour\", \"Fly home\": \"Pulang\", \"Breakfast, then airport drop-off\": \"Sarapan, kemudian dihantar ke lapangan terbang\", \"Price this package\": \"Kira harga pakej ini\", \"Single room:\": \"Bilik bujang:\", \"Wide fairways and big rolling greens, par 72\": \"Fairway luas dan green besar beralun, par 72\", \"Classic tree-lined layout, plus a free 60-min spa\": \"Susun atur klasik diapit pokok, dengan spa 60 minit percuma\", \"Meadow Links (No. 6) or Stone Quarry (No. 7)\": \"Meadow Links (No. 6) atau Stone Quarry (No. 7)\", \"Panda bunkers, or old railway and quarry holes\": \"Bunker panda, atau lubang kuari dan landasan kereta api lama\", \"Included\": \"Termasuk\", \"Airport pick-up and drop-off\": \"Jemput dan hantar di lapangan terbang\", \"4 nights at Mission Hills Resort Haikou, with breakfast\": \"4 malam di Mission Hills Resort Haikou, dengan sarapan\", \"3 weekday rounds: green fee, cart and caddie\": \"3 pusingan hari biasa: yuran padang, kereta golf dan kedi\", \"Hot-spring valley access and a 60-minute spa\": \"Akses lembah mata air panas dan spa 60 minit\", \"24-hour support and travel accident insurance\": \"Sokongan 24 jam dan insurans kemalangan perjalanan\", \"Not included\": \"Tidak termasuk\", \"Return flights\": \"Tiket penerbangan pergi balik\", \"Caddie tip — about ¥200 per 18 holes\": \"Tip kedi — kira-kira ¥200 bagi 18 lubang\", \"Lunch, dinner and personal spending\": \"Makan tengah hari, makan malam dan perbelanjaan peribadi\", \"Changes you ask for during the trip\": \"Perubahan yang anda minta semasa perjalanan\", \"RM prices are estimates at ¥1 ≈ RM\": \"Harga RM ialah anggaran pada ¥1 ≈ RM\", \". We confirm the final price in your quote.\": \". Harga akhir disahkan dalam sebut harga anda.\", \"Where you stay\": \"Tempat penginapan\", \"Sleep on the course\": \"Tidur di tepi padang\", \"Mission Hills Resort Haikou sits right among the volcanic courses, with balcony views over the fairways. Everything is on site, so there are no long drives between golf, dinner and bed.\": \"Mission Hills Resort Haikou terletak di tengah-tengah padang gunung berapi, dengan pemandangan fairway dari balkoni. Semuanya di dalam resort, jadi tiada perjalanan jauh antara golf, makan malam dan tidur.\", \"Volcanic hot-spring valley\": \"Lembah mata air panas gunung berapi\", \"168 hot and cold pools — free for hotel guests. Perfect after 18 holes.\": \"168 kolam panas dan sejuk — percuma untuk tetamu hotel. Sesuai selepas 18 lubang.\", \"Asian and international restaurants\": \"Restoran Asia dan antarabangsa\", \"Several restaurants inside the resort. Tell us about any dietary needs and we'll plan around them.\": \"Beberapa restoran di dalam resort. Beritahu kami keperluan pemakanan anda dan kami akan merancangnya.\", \"Fun for non-golfers too\": \"Seronok juga untuk bukan golfer\", \"Water park, beach area, and a film town and museums nearby.\": \"Taman air, kawasan pantai, serta bandar filem dan muzium berdekatan.\", \"Plan your trip\": \"Rancang perjalanan anda\", \"Good to know before you go\": \"Perlu tahu sebelum pergi\", \"Flights, weather, food and payment — the questions Malaysian golf groups ask us most.\": \"Penerbangan, cuaca, makanan dan bayaran — soalan yang paling kerap ditanya oleh kumpulan golf Malaysia.\", \"Getting there\": \"Cara ke sana\", \"3.5 hrs\": \"3.5 jam\", \"Direct from KLIA\": \"Terus dari KLIA\", \"0 hrs\": \"0 jam\", \"Time difference\": \"Perbezaan waktu\", \"Direct flights from Kuala Lumpur (KUL) to Haikou Meilan Airport (HAK) with Hainan Airlines and Batik Air Malaysia.\": \"Penerbangan terus dari Kuala Lumpur (KUL) ke Lapangan Terbang Haikou Meilan (HAK) dengan Hainan Airlines dan Batik Air Malaysia.\", \"Fares are usually better if you book about 6 weeks before you fly.\": \"Tambang biasanya lebih murah jika ditempah kira-kira 6 minggu sebelum terbang.\", \"Golf bag rules are different for each airline and ticket type. We check your airline's golf bag allowance with you before you book.\": \"Peraturan beg golf berbeza mengikut syarikat penerbangan dan jenis tiket. Kami semak had beg golf bersama anda sebelum anda menempah.\", \"We meet you at Haikou airport and drive you to the resort.\": \"Kami menyambut anda di lapangan terbang Haikou dan menghantar anda ke resort.\", \"Halal and Muslim-friendly\": \"Halal dan mesra Muslim\", \"Haikou city has halal restaurants, including Turkish and Xinjiang (Uyghur) halal restaurants in Longhua District.\": \"Bandar Haikou mempunyai restoran halal, termasuk restoran halal Turki dan Xinjiang (Uyghur) di Daerah Longhua.\", \"Tell us when you book. We confirm which halal restaurants are open for your dates and arrange your transport there.\": \"Beritahu kami semasa menempah. Kami sahkan restoran halal yang dibuka pada tarikh anda dan uruskan pengangkutan ke sana.\", \"We ask the resort in advance about pork-free and alcohol-free meal options for your group.\": \"Kami bertanya kepada resort lebih awal tentang pilihan makanan tanpa babi dan tanpa alkohol untuk kumpulan anda.\", \"Need prayer times or a quiet place to pray? Tell us, and we will plan around it.\": \"Perlukan waktu solat atau tempat yang tenang untuk solat? Beritahu kami, dan kami akan merancangnya.\", \"Best time to go\": \"Masa terbaik untuk pergi\", \"We recommend\": \"Kami cadangkan\", \"November to April\": \"November hingga April\", \": less rain and cooler days for golf. May to October is hot and rainy, with typhoons possible from July to October.\": \": kurang hujan dan cuaca lebih sejuk untuk golf. Mei hingga Oktober panas dan kerap hujan, dengan kemungkinan taufan dari Julai hingga Oktober.\", \"Mar\": \"Mac\", \"May\": \"Mei\", \"Aug\": \"Ogo\", \"Oct\": \"Okt\", \"Dec\": \"Dis\", \"Best for golf\": \"Terbaik untuk golf\", \"Busy season (Chinese New Year)\": \"Musim sibuk (Tahun Baru Cina)\", \"Hot and rainy\": \"Panas dan hujan\", \"Rain\": \"Hujan\", \"° = average high, °C\": \"° = purata suhu tertinggi, °C\", \"Prices change by season. December to February, and especially Chinese New Year, is the busiest and most expensive time. March, April and November often give the best value.\": \"Harga berubah mengikut musim. Disember hingga Februari, terutamanya Tahun Baru Cina, ialah waktu paling sibuk dan paling mahal. Mac, April dan November selalunya paling berbaloi.\", \"Booking and payment\": \"Tempahan dan bayaran\", \"Pay 50% to confirm your booking.\": \"Bayar 50% untuk mengesahkan tempahan.\", \"Pay the rest when you arrive, by cash or bank transfer.\": \"Baki dibayar semasa tiba, secara tunai atau pindahan bank.\", \"Credit card payments have a 3.5% fee.\": \"Bayaran kad kredit dikenakan caj 3.5%.\", \"Tee times and rooms are held only after your booking is confirmed, so book early for busy dates.\": \"Masa tee dan bilik hanya dipegang selepas tempahan disahkan, jadi tempah awal untuk tarikh sibuk.\", \"Your written quote shows the cancellation terms clearly before you pay.\": \"Sebut harga bertulis anda menunjukkan syarat pembatalan dengan jelas sebelum anda membayar.\", \"Why Taigolf\": \"Kenapa Taigolf\", \"The golf tour team golfers come back to\": \"Pasukan pelancongan golf yang golfer kembali semula\", \"From tee times at top courses to moments beyond the green, we handle every detail so your golf trip is smooth and memorable. Now we're bringing the same service to China.\": \"Dari masa tee di padang terbaik hingga pengalaman di luar green, kami uruskan setiap perincian supaya trip golf anda lancar dan tidak dilupakan. Kini kami membawa servis yang sama ke China.\", \"years in golf tourism\": \"tahun dalam pelancongan golf\", \"partner golf courses\": \"padang golf rakan kongsi\", \"average guest rating\": \"purata penilaian tetamu\", \"Fair prices\": \"Harga berpatutan\", \"Worried about overpriced golf tours? Our packages are built to give you great golf at an honest price.\": \"Risau pakej golf terlalu mahal? Pakej kami direka untuk memberi golf terbaik pada harga yang jujur.\", \"Courses you choose\": \"Padang pilihan anda\", \"Mix and match the courses you want to play. We shape the trip around your group.\": \"Pilih padang yang anda mahu. Kami susun trip mengikut kumpulan anda.\", \"Free planning help\": \"Bantuan perancangan percuma\", \"Talk to us before you book. We'll help plan the dates, courses and budget — no charge.\": \"Berbincang dengan kami sebelum menempah. Kami bantu rancang tarikh, padang dan bajet — percuma.\", \"You come first\": \"Anda keutamaan kami\", \"We don't just plan. We stay with you on WhatsApp and take care of details during the trip.\": \"Kami bukan sekadar merancang. Kami bersama anda di WhatsApp dan menjaga setiap perincian sepanjang perjalanan.\", \"Proud member of\": \"Ahli rasmi\", \"International Association of Golf Tour Operators\": \"Persatuan Antarabangsa Pengendali Pelancongan Golf\", \"Association of Thai Travel Agents, member 04998\": \"Persatuan Agensi Pelancongan Thai, ahli 04998\", \"Tourism Authority of Thailand\": \"Pihak Berkuasa Pelancongan Thailand\", \"Our partner network now reaches China. Start with all 10 courses at Mission Hills Haikou — more China destinations coming soon.\": \"Rangkaian rakan kongsi kami kini sampai ke China. Mulakan dengan kesemua 10 padang di Mission Hills Haikou — lebih banyak destinasi China akan datang.\", \"Operated by Happy Tour International Co., Ltd., licensed tour operator no. 11/13206.\": \"Dikendalikan oleh Happy Tour International Co., Ltd., pengendali pelancongan berlesen no. 11/13206.\", \"Check our licence\": \"Semak lesen kami\", \"Check us first\": \"Semak kami dahulu\", \"Check us before you pay a single ringgit\": \"Semak kami sebelum bayar walau seringgit\", \"Anyone can build a nice website. Nobody can fake a government licence record. Here is ours, in full, so you can check it yourself.\": \"Sesiapa pun boleh bina laman web yang cantik. Tiada siapa boleh memalsukan rekod lesen kerajaan. Ini rekod kami, lengkap, supaya anda boleh semak sendiri.\", \"Company\": \"Syarikat\", \"Company registration no. 0105566043282\": \"No. pendaftaran syarikat 0105566043282\", \"Tour licence no.\": \"No. lesen pelancongan\", \"General category, issued by the Department of Tourism, Ministry of Tourism and Sports, Thailand\": \"Kategori am, dikeluarkan oleh Jabatan Pelancongan, Kementerian Pelancongan dan Sukan, Thailand\", \"Valid until 6 August 2027\": \"Sah sehingga 6 Ogos 2027\", \"Company registered\": \"Syarikat didaftarkan\", \"27 February 2023\": \"27 Februari 2023\", \"Office\": \"Pejabat\", \"Open in Google Maps\": \"Buka dalam Google Maps\", \"Official channels\": \"Saluran rasmi\", \"Association\": \"Persatuan\", \"Member, Association of Thai Travel Agents (ATTA)\": \"Ahli, Persatuan Agensi Pelancongan Thai (ATTA)\", \"Member code 04998, member since 2023 · also a member of IAGTO\": \"Kod ahli 04998, ahli sejak 2023 · juga ahli IAGTO\", \"Search “Happy Tour International” in the ATTA directory\": \"Cari “Happy Tour International” dalam direktori ATTA\", \"Call our team directly\": \"Hubungi pasukan kami terus\", \"Scan to see the official record\": \"Imbas untuk melihat rekod rasmi\", \"This QR code is printed on our licence. It opens the Thai Department of Tourism's own page about us — not a page on this website.\": \"Kod QR ini dicetak pada lesen kami. Ia membuka halaman rasmi Jabatan Pelancongan Thailand tentang kami — bukan halaman di laman web ini.\", \"Open the official record\": \"Buka rekod rasmi\", \"Real golfers, real trips\": \"Golfer sebenar, trip sebenar\", \"Groups who flew with us\": \"Kumpulan yang pernah bersama kami\", \"These are real Taigolf groups on our Thailand trips — met at the airport, looked after on every course. Haikou is our next destination, with the same team.\": \"Ini kumpulan Taigolf sebenar dalam trip Thailand kami — disambut di lapangan terbang, dijaga di setiap padang. Haikou destinasi seterusnya, dengan pasukan yang sama.\", \"Mohd Badrul Hisyam \u0026 friends, just landed\": \"Mohd Badrul Hisyam \u0026 rakan-rakan, baru mendarat\", \"Big group, one smooth trip\": \"Kumpulan besar, trip yang lancar\", \"A 30-golfer group trip\": \"Trip kumpulan 30 golfer\", \"Met at the airport by our team\": \"Disambut di lapangan terbang oleh pasukan kami\", \"Hover to pause.\": \"Letak tetikus untuk berhenti.\", \"What golfers say\": \"Kata golfer\", \"Before you book\": \"Sebelum menempah\", \"Good questions\": \"Soalan yang bagus\", \"Still unsure? Send us a message and a real person on our team will answer.\": \"Masih ragu? Hantar mesej dan pasukan kami sendiri akan menjawab.\", \"Ask on WhatsApp\": \"Tanya di WhatsApp\", \"Are flights included?\": \"Adakah tiket penerbangan termasuk?\", \"No. Packages start from your arrival at Haikou airport. Book the flight that suits your group, and we'll meet you at the airport.\": \"Tidak. Pakej bermula dari ketibaan anda di lapangan terbang Haikou. Tempah penerbangan yang sesuai untuk kumpulan anda, dan kami akan sambut anda di lapangan terbang.\", \"How big does our group need to be?\": \"Berapa ramai kumpulan kami perlu?\", \"Our prices are based on groups of 4 or 8 golfers. Smaller or bigger groups are welcome — use the price calculator, then we'll confirm the exact price.\": \"Harga kami berdasarkan kumpulan 4 atau 8 golfer. Kumpulan lebih kecil atau besar dialu-alukan — gunakan kalkulator harga, kemudian kami sahkan harga sebenar.\", \"Can we change the courses?\": \"Bolehkah kami tukar padang?\", \"Yes. You can swap any round for another Mission Hills course. Some courses, like Blackstone and Lava Fields, cost a little more to play.\": \"Boleh. Anda boleh tukar mana-mana pusingan ke padang Mission Hills yang lain. Sesetengah padang seperti Blackstone dan Lava Fields dikenakan sedikit caj tambahan.\", \"We have dietary needs. Can you help?\": \"Kami ada keperluan pemakanan. Boleh bantu?\", \"Yes. Tell us what your group needs when you enquire, and we'll check restaurant options at the resort and nearby before you travel.\": \"Boleh. Beritahu keperluan kumpulan anda semasa bertanya, dan kami akan semak pilihan restoran di resort dan berdekatan sebelum anda pergi.\", \"Do Malaysians need a visa for China?\": \"Adakah rakyat Malaysia perlu visa ke China?\", \"In recent years, Malaysian passport holders have been able to visit China visa-free for short trips. Rules can change, so we check the latest entry rules for your travel dates before you book.\": \"Sejak beberapa tahun kebelakangan ini, pemegang pasport Malaysia boleh melawat China tanpa visa untuk lawatan singkat. Peraturan boleh berubah, jadi kami semak peraturan terkini untuk tarikh perjalanan anda sebelum menempah.\", \"Does the team speak English?\": \"Adakah pasukan boleh berbahasa Inggeris?\", \"Yes. Our team supports you in English and Chinese, 24 hours a day during your trip.\": \"Ya. Pasukan kami membantu anda dalam bahasa Inggeris dan Cina, 24 jam sehari sepanjang perjalanan.\", \"How do we pay?\": \"Bagaimana cara membayar?\", \"Pay 50% to confirm your booking. Pay the rest when you arrive, by cash or bank transfer. Card payments have a 3.5% fee. Nothing is booked until you say yes.\": \"Bayar 50% untuk mengesahkan tempahan. Baki dibayar semasa tiba, secara tunai atau pindahan bank. Bayaran kad dikenakan caj 3.5%. Tiada apa-apa ditempah sehingga anda bersetuju.\", \"What if we need to cancel?\": \"Bagaimana jika kami perlu batal?\", \"Your written quote shows the cancellation terms clearly before you pay anything. Ask us any time if something is not clear.\": \"Sebut harga bertulis anda menunjukkan syarat pembatalan dengan jelas sebelum anda membayar. Tanya kami bila-bila masa jika ada yang kurang jelas.\", \"Your crew. Haikou. Ten courses.\": \"Geng anda. Haikou. Sepuluh padang.\", \"Tell us how many golfers and when you want to go. We'll send a trip plan and price, with no obligation.\": \"Beritahu kami berapa ramai golfer dan bila anda mahu pergi. Kami akan hantar pelan trip dan harga, tanpa sebarang komitmen.\", \"Plan my trip on WhatsApp\": \"Rancang trip saya di WhatsApp\", \"Try the price calculator\": \"Cuba kalkulator harga\", \"Build your Haikou trip\": \"Bina trip Haikou anda\", \"Choose your hotel, group size, days and courses. You'll see an estimated price per golfer right away.\": \"Pilih hotel, saiz kumpulan, hari dan padang. Anda akan terus melihat anggaran harga seorang golfer.\", \"Where your group will stay\": \"Tempat kumpulan anda menginap\", \"Breakfast and hot-spring valley included\": \"Termasuk sarapan dan lembah mata air panas\", \"More hotels coming soon. Ask us if you want a different hotel.\": \"Lebih banyak hotel akan datang. Tanya kami jika mahu hotel lain.\", \"Golfers and days\": \"Golfer dan hari\", \"How many people and how long\": \"Berapa ramai dan berapa lama\", \"Golfers\": \"Golfer\", \"Best price for 4 or 8\": \"Harga terbaik untuk 4 atau 8\", \"Nights\": \"Malam\", \"Rounds of golf\": \"Pusingan golf\", \"Up to one per night\": \"Maksimum satu setiap malam\", \"Twin share\": \"Kongsi bilik\", \"Single room\": \"Bilik bujang\", \"Choose a course for each round\": \"Pilih padang untuk setiap pusingan\", \"Extras\": \"Tambahan\", \"Nice to have\": \"Bagus untuk ada\", \"60-minute spa\": \"Spa 60 minit\", \"Foot massage, Chinese acupressure, aroma or deep-tissue\": \"Urutan kaki, akupresur Cina, aroma atau urutan tisu dalam\", \"Your estimate\": \"Anggaran anda\", \"Per golfer,\": \"Seorang golfer,\", \"twin share\": \"kongsi bilik\", \"single room\": \"bilik bujang\", \"Send this to Taigolf on WhatsApp\": \"Hantar kepada Taigolf melalui WhatsApp\", \"Estimate only, for weekday rounds. Flights and caddie tips (about ¥200 per round) are not included. Final price depends on dates and availability. RM shown at ¥1 ≈ RM\": \"Anggaran sahaja, untuk pusingan hari biasa. Tidak termasuk tiket penerbangan dan tip kedi (kira-kira ¥200 setiap pusingan). Harga akhir bergantung pada tarikh dan kekosongan. RM dikira pada ¥1 ≈ RM\", \"Tour licence no. 11/13206 · Company reg. 0105566043282\": \"No. lesen pelancongan 11/13206 · No. syarikat 0105566043282\", \"Contact\": \"Hubungi\", \"More from Taigolf\": \"Lagi dari Taigolf\", \"Thailand golf tours\": \"Pelancongan golf Thailand\", \"Thailand packages\": \"Pakej Thailand\", \"China price calculator\": \"Kalkulator harga China\", \"Mission Hills Haikou · Course No. 4 步石\": \"Mission Hills Haikou · Padang No. 4 步石\", \"Mission Hills Haikou · Course No. 8 双杯\": \"Mission Hills Haikou · Padang No. 8 双杯\", \"Mission Hills Haikou · Course No. 9 棕榈\": \"Mission Hills Haikou · Padang No. 9 棕榈\", \"Mission Hills Haikou · Course No. 10 沙浪\": \"Mission Hills Haikou · Padang No. 10 沙浪\", \"Before you go\": \"Sebelum anda pergi\", \"Tap a card for details\": \"Tekan kad untuk butiran\", \"Flights\": \"Penerbangan\", \"3h 30m\": \"3j 30m\", \"Direct from KLIA · no time difference\": \"Terus dari KLIA · tiada perbezaan waktu\", \"Direct flights: Hainan Airlines and Batik Air Malaysia (KUL → HAK).\": \"Penerbangan terus: Hainan Airlines dan Batik Air Malaysia (KUL → HAK).\", \"Book about 6 weeks ahead for better fares.\": \"Tempah kira-kira 6 minggu lebih awal untuk tambang lebih murah.\", \"Golf bag rules differ by airline — we check yours before you book.\": \"Peraturan beg golf berbeza mengikut syarikat penerbangan — kami semak untuk anda sebelum menempah.\", \"We meet you at Haikou airport.\": \"Kami sambut anda di lapangan terbang Haikou.\", \"Weather\": \"Cuaca\", \"Best: Nov – Apr\": \"Terbaik: Nov – Apr\", \"Cooler days, less rain\": \"Lebih sejuk, kurang hujan\", \"May to October is hot and rainy. Typhoons are possible from July to October.\": \"Mei hingga Oktober panas dan kerap hujan. Taufan mungkin berlaku dari Julai hingga Oktober.\", \"Prices change by season. Chinese New Year is the busiest and most expensive time.\": \"Harga berubah mengikut musim. Tahun Baru Cina ialah waktu paling sibuk dan paling mahal.\", \"March, April and November often give the best value.\": \"Mac, April dan November selalunya paling berbaloi.\", \"Payment\": \"Bayaran\", \"Now, to confirm\": \"Sekarang, untuk sahkan\", \"On arrival\": \"Semasa tiba\", \"Half now, half later\": \"Separuh sekarang, separuh kemudian\", \"Cash or bank transfer\": \"Tunai atau pindahan bank\", \"Pay 50% to confirm. Pay the rest when you arrive.\": \"Bayar 50% untuk sahkan. Baki dibayar semasa tiba.\", \"Tee times and rooms are held once your booking is confirmed.\": \"Masa tee dan bilik dipegang selepas tempahan disahkan.\", \"Your written quote shows the cancellation terms before you pay.\": \"Sebut harga bertulis menunjukkan syarat pembatalan sebelum anda membayar.\", \"Food\": \"Makanan\", \"Halal? Sorted.\": \"Halal? Beres.\", \"We book halal restaurants for you\": \"Kami tempah restoran halal untuk anda\", \"Haikou has halal restaurants, including Turkish and Xinjiang ones in Longhua District.\": \"Haikou ada restoran halal, termasuk restoran Turki dan Xinjiang di Daerah Longhua.\", \"We confirm they are open for your dates and arrange transport.\": \"Kami sahkan ia dibuka pada tarikh anda dan uruskan pengangkutan.\", \"We ask the resort about pork-free and alcohol-free meals, and can plan around prayer times.\": \"Kami bertanya kepada resort tentang makanan tanpa babi dan alkohol, dan boleh merancang mengikut waktu solat.\", \"Golf in China? Complicated?\": \"Golf di China? Rumit?\", \"Not with us. Direct 3.5-hour flight from KL, an English-speaking team, and everything booked. You just play.\": \"Tidak dengan kami. Penerbangan terus 3.5 jam dari KL, pasukan berbahasa Inggeris, dan semuanya ditempah. Anda hanya perlu bermain.\", \"No stress. Just 18 holes.\": \"Tiada tekanan. Hanya 18 lubang.\", \"Your job on this trip\": \"Tugas anda dalam trip ini\", \"Enjoy the game. That's it.\": \"Nikmati permainan. Itu sahaja.\", \"Tee times, transfers, caddies and hot springs — all booked before you land.\": \"Masa tee, pengangkutan, kedi dan mata air panas — semuanya ditempah sebelum anda mendarat.\", \"See the packages\": \"Lihat pakej\", \"Made for golf groups\": \"Direka untuk kumpulan golf\", \"Bring the whole gang.\": \"Bawa seluruh geng.\", \"Groups of 4, 8, 16 or more. We plan every tee time, room and ride around your crew.\": \"Kumpulan 4, 8, 16 orang atau lebih. Kami rancang setiap masa tee, bilik dan perjalanan untuk geng anda.\", \"Price our group trip\": \"Kira harga trip kumpulan kami\", \"Taigolf Team\": \"Pasukan Taigolf\", \"online · usually replies in minutes\": \"dalam talian · biasanya membalas dalam beberapa minit\", \"Hi! 8 of us want to golf in Haikou in March. Possible?\": \"Hai! Kami 8 orang mahu main golf di Haikou pada bulan Mac. Boleh?\", \"Hi! Yes, March is a great month 😊 Which courses would your group like to play?\": \"Hai! Boleh, Mac bulan yang bagus 😊 Padang mana yang kumpulan anda mahu main?\", \"Meet the team\": \"Kenali pasukan kami\", \"Real people. Green shirts. On your side.\": \"Orang sebenar. Baju hijau. Sentiasa bersama anda.\", \"Our team meets you at the airport, checks in with you at every course, and answers WhatsApp 24 hours a day. Look for the green shirts.\": \"Pasukan kami menyambut anda di lapangan terbang, memeriksa keadaan anda di setiap padang, dan menjawab WhatsApp 24 jam sehari. Cari baju hijau.\", \"Our team, on the course\": \"Pasukan kami, di padang\", \"On the ground in golf and travel\": \"Aktif dalam industri golf dan pelancongan\", \"Universal Tourism Exhibition, Beijing 2025\": \"Pameran Pelancongan Universal, Beijing 2025\", \"Meeting China travel partners\": \"Bertemu rakan pelancongan China\", \"Sponsor at a Siam Country Club golf event\": \"Penaja acara golf Siam Country Club\", \"Our logo on the sponsor wall\": \"Logo kami di dinding penaja\", \"Proud sponsor at a travel industry event\": \"Penaja bangga di acara industri pelancongan\", \"Taigolf among the sponsors\": \"Taigolf antara penaja\", \"International golf tourism convention\": \"Konvensyen pelancongan golf antarabangsa\", \"Where golf trips are planned\": \"Tempat trip golf dirancang\", \"Meeting golf and travel partners\": \"Bertemu rakan golf dan pelancongan\", \"Booking the best tee times for you\": \"Menempah masa tee terbaik untuk anda\", \"Our team at a golf club event\": \"Pasukan kami di acara kelab golf\", \"Always in the green and white\": \"Sentiasa berbaju hijau putih\", \"Course No. 4\": \"Padang No. 4\", \"Course No. 8\": \"Padang No. 8\", \"Course No. 9\": \"Padang No. 9\", \"Course No. 10\": \"Padang No. 10\", \"The flagship. World Cup and DP World Tour venue.\": \"Padang utama. Lokasi Piala Dunia dan DP World Tour.\", \"The most famous course at Mission Hills Haikou. Black lava rock, jungle, 100-year-old lychee trees, lakes and wetlands. The closing holes are all about risk and reward.\": \"Padang paling terkenal di Mission Hills Haikou. Batu lava hitam, hutan, pokok laici berusia 100 tahun, tasik dan tanah lembap. Lubang-lubang terakhir penuh risiko dan ganjaran.\", \"Inspired by Australia’s famous sandbelt courses.\": \"Diilhamkan oleh padang sandbelt terkenal di Australia.\", \"Wide fairways, big rolling greens, tall bunkers and eucalyptus trees. Many ways to attack each hole, with a relaxed, open feel.\": \"Fairway luas, green besar beralun, bunker tinggi dan pokok kayu putih. Banyak cara untuk menyerang setiap lubang, dengan suasana santai dan terbuka.\", \"Classic style, with old stone walls.\": \"Gaya klasik, dengan tembok batu lama.\", \"Keeps the natural land and thick trees. Tree-lined fairways, deep pot bunkers and blind shots. Narrow fairways reward accurate driving.\": \"Mengekalkan tanah semula jadi dan pokok yang lebat. Fairway diapit pokok, bunker dalam dan pukulan buta. Fairway sempit memberi ganjaran kepada pukulan tepat.\", \"A dramatic short course.\": \"Padang pendek yang dramatik.\", \"Big bunkers and bare volcanic rock.\": \"Bunker besar dan batu gunung berapi.\", \"A championship course that shows off Hainan’s volcanic land. Open views and fairly wide fairways, but big bunkers and lava rock decide your line into each green.\": \"Padang kejohanan yang mempamerkan tanah gunung berapi Hainan. Pemandangan terbuka dan fairway agak luas, tetapi bunker besar dan batu lava menentukan laluan anda ke setiap green.\", \"Home of the famous panda bunkers.\": \"Rumah bunker panda yang terkenal.\", \"Classic US east-coast style with open meadows, long grass and “church pew” bunkers. The panda-face bunker and paw-print tee make it the most photographed course here.\": \"Gaya klasik pantai timur AS dengan padang rumput terbuka, rumput panjang dan bunker “bangku gereja”. Bunker muka panda dan tee tapak kaki menjadikannya padang paling banyak digambar di sini.\", \"Old quarry and railway, Wild West feel.\": \"Kuari dan landasan kereta api lama, suasana Wild West.\", \"Built around an old volcanic quarry and railway. Rock walls, rail tracks, mine carts and a rail bridge. Six par-3s make accuracy more important than distance.\": \"Dibina di sekitar kuari gunung berapi dan landasan kereta api lama. Tembok batu, landasan, kereta lombong dan jambatan kereta api. Enam lubang par-3 menjadikan ketepatan lebih penting daripada jarak.\", \"A fun short course.\": \"Padang pendek yang menyeronokkan.\", \"Modern and elegant.\": \"Moden dan elegan.\", \"Wide open green views.\": \"Pemandangan hijau yang luas.\", \"Available on request. Ask our team for details.\": \"Boleh diatur atas permintaan. Tanya pasukan kami untuk butiran.\", \"Price on request\": \"Harga atas permintaan\", \"Included in package price\": \"Termasuk dalam harga pakej\", \"Ask about this course\": \"Tanya tentang padang ini\", \"per golfer\": \"setiap golfer\", \"Choosing Taigolf was the best decision. The courses were breathtaking and the price was right.\": \"Memilih Taigolf ialah keputusan terbaik. Padangnya menakjubkan dan harganya berpatutan.\", \"Hailey and the team arranged everything from the moment we landed. We will come back again.\": \"Hailey dan pasukan menguruskan segalanya sejak kami mendarat. Kami pasti akan kembali.\", \"Best golf tour operator — very good service, friendly staff and a fair price.\": \"Pengendali pelancongan golf terbaik — servis sangat baik, staf mesra dan harga berpatutan.\", \"The attention to detail and the quality of the courses made my trip unforgettable.\": \"Perhatian terhadap perincian dan kualiti padang menjadikan trip saya tidak dilupakan.\", \"Golfer from\": \"Golfer dari\", \"Philippines\": \"Filipina\", \"Japan\": \"Jepun\", \"Premium course fees\": \"Caj padang premium\", \"Planning and 24-hour support\": \"Perancangan dan sokongan 24 jam\", \"Per golfer\": \"Seorang golfer\", \"About\": \"Kira-kira\", \"group total\": \"jumlah kumpulan\", \"Legal\": \"Undang-undang\", \"Privacy Policy\": \"Dasar Privasi\", \"Last updated: September 2026\": \"Kemas kini terakhir: September 2026\", \"HAPPY TOUR INTERNATIONAL CO., LTD. (\\\"we\\\", \\\"us\\\", \\\"our\\\") runs Taigolf and this Taigolf China website, and the Taigolf Facebook Page. This Privacy Policy explains what information we collect from you, why we collect it, and how we protect it.\": \"HAPPY TOUR INTERNATIONAL CO., LTD. (\\\"kami\\\") mengendalikan Taigolf, laman web Taigolf China ini dan Halaman Facebook Taigolf. Dasar Privasi ini menerangkan maklumat yang kami kumpul, sebab kami mengumpulnya, dan cara kami melindunginya.\", \"1. Information we collect\": \"1. Maklumat yang kami kumpul\", \"When you contact us through this website, WhatsApp, Facebook, Facebook Messenger, LINE or email, we may collect:\": \"Apabila anda menghubungi kami melalui laman web ini, WhatsApp, Facebook, Facebook Messenger, LINE atau e-mel, kami mungkin mengumpul:\", \"Your name\": \"Nama anda\", \"Your phone number and/or email address\": \"Nombor telefon dan/atau alamat e-mel anda\", \"Messages you send us, for example questions about golf packages, courses, dates or bookings\": \"Mesej yang anda hantar, contohnya soalan tentang pakej golf, padang, tarikh atau tempahan\", \"Details of your trip request, such as group size, dates and chosen courses\": \"Butiran permintaan trip anda, seperti saiz kumpulan, tarikh dan padang pilihan\", \"Basic information about how you found us, for example if you clicked an online ad\": \"Maklumat asas tentang cara anda menemui kami, contohnya jika anda klik iklan dalam talian\", \"We do not collect payment card details, passwords or government ID numbers through these channels.\": \"Kami tidak mengumpul butiran kad pembayaran, kata laluan atau nombor pengenalan kerajaan melalui saluran ini.\", \"2. The price calculator\": \"2. Kalkulator harga\", \"The price calculator runs in your browser. Your choices are saved only on your own device, so they are still there next time. They are sent to us only if you tap \\\"Send this to Taigolf on WhatsApp\\\".\": \"Kalkulator harga berjalan dalam pelayar anda. Pilihan anda disimpan hanya pada peranti anda sendiri. Ia dihantar kepada kami hanya jika anda menekan \\\"Hantar kepada Taigolf melalui WhatsApp\\\".\", \"3. How we use your information\": \"3. Cara kami menggunakan maklumat anda\", \"To answer your questions about our golf trips\": \"Untuk menjawab soalan anda tentang trip golf kami\", \"To prepare quotes and trip plans\": \"Untuk menyediakan sebut harga dan pelan trip\", \"To follow up about bookings you are interested in\": \"Untuk membuat susulan tentang tempahan yang anda minati\", \"To improve our customer service\": \"Untuk menambah baik servis pelanggan kami\", \"We do not sell, rent or trade your personal information to anyone.\": \"Kami tidak menjual, menyewa atau memperdagangkan maklumat peribadi anda kepada sesiapa.\", \"4. How we store your information\": \"4. Cara kami menyimpan maklumat anda\", \"Information you share with us is stored securely in our internal customer records, which only our sales and customer service staff can access. We keep it only as long as we need it to help you, or as required by law.\": \"Maklumat yang anda kongsi disimpan dengan selamat dalam rekod pelanggan dalaman kami, yang hanya boleh diakses oleh staf jualan dan khidmat pelanggan. Kami menyimpannya hanya selama diperlukan untuk membantu anda, atau seperti yang dikehendaki oleh undang-undang.\", \"5. Facebook and online ads\": \"5. Facebook dan iklan dalam talian\", \"If you message our Facebook Page, we may use Facebook's Messenger Platform and Conversions API to receive your message and, where relevant, to understand which ad led you to contact us. This helps us reply faster and understand which of our marketing is useful. We only use this information for the purposes above.\": \"Jika anda menghantar mesej ke Halaman Facebook kami, kami mungkin menggunakan Messenger Platform dan Conversions API Facebook untuk menerima mesej anda dan, jika berkaitan, memahami iklan mana yang membawa anda menghubungi kami. Ini membantu kami membalas lebih cepat. Kami hanya menggunakan maklumat ini untuk tujuan di atas.\", \"6. Your rights\": \"6. Hak anda\", \"You can contact us at any time to:\": \"Anda boleh menghubungi kami bila-bila masa untuk:\", \"Ask what information we have about you\": \"Bertanya maklumat apa yang kami ada tentang anda\", \"Ask us to correct or delete your information\": \"Meminta kami membetulkan atau memadam maklumat anda\", \"Withdraw your consent for us to contact you\": \"Menarik balik persetujuan untuk kami menghubungi anda\", \"To do this, email\": \"Untuk berbuat demikian, e-mel\", \"or message us on WhatsApp.\": \"atau hantar mesej kepada kami di WhatsApp.\", \"7. Changes to this policy\": \"7. Perubahan kepada dasar ini\", \"We may update this Privacy Policy from time to time. Changes will be posted on this page with a new date.\": \"Kami mungkin mengemas kini Dasar Privasi ini dari semasa ke semasa. Perubahan akan disiarkan di halaman ini dengan tarikh baharu.\", \"8. Contact us\": \"8. Hubungi kami\", \"Back to home\": \"Kembali ke laman utama\", \"Tap a number on the map to see each course. Six courses are in our packages today — the others can be added on request.\": \"Tekan nombor pada peta untuk melihat setiap padang. Enam padang ada dalam pakej kami sekarang — yang lain boleh ditambah atas permintaan.\", \"Tap a number — the course details open below ↓\": \"Tekan nombor — butiran padang dibuka di bawah ↓\"}, \"zh\": {\"Courses\": \"球场\", \"Packages\": \"套餐\", \"Travel info\": \"出行须知\", \"FAQ\": \"常见问题\", \"Check us\": \"查证我们\", \"Price calculator\": \"价格计算器\", \"WhatsApp us\": \"WhatsApp 联系\", \"Golf trips for Malaysian golfers\": \"专为马来西亚球友打造的高尔夫之旅\", \"Next stop: Haikou, China\": \"下一站:中国海口\", \"Ten volcanic golf courses. One hot-spring resort. Every detail handled by Taigolf.\": \"十座火山岩球场,一座温泉度假村,每个细节由 Taigolf 为您安排。\", \"From\": \"出发\", \"To\": \"到达\", \"Seat: window, obviously\": \"座位:当然是靠窗\", \"Scroll to land\": \"向下滑动降落\", \"Tee off on volcanic ground\": \"在火山岩上开球\", \"Golf holidays at Mission Hills Haikou, planned from start to finish by Taigolf — the golf tour team trusted by golfers across Asia for 7+ years.\": \"海口观澜湖高尔夫假期,由 Taigolf 全程安排——7年多来深受亚洲球友信赖的高尔夫旅游团队。\", \"See Haikou packages\": \"查看海口套餐\", \"Price my trip\": \"计算我的行程价格\", \"Tee times\": \"开球时间\", \"Green fees, cart and caddie booked\": \"果岭费、球车、球童全部预订\", \"Resort stay\": \"度假村住宿\", \"Breakfast included every day\": \"每天含早餐\", \"Airport transfers\": \"机场接送\", \"Private pick-up and drop-off\": \"专车接送\", \"24-hour support\": \"24小时服务\", \"On WhatsApp, the whole trip\": \"全程 WhatsApp 在线\", \"Why Haikou\": \"为什么选海口\", \"Golf that looks like nowhere else\": \"独一无二的球场风景\", \"Mission Hills Haikou is built on ancient lava fields. Black volcanic rock, old lychee trees and stone walls line the fairways — it feels like playing on the moon. After your round, you soak in hot springs drawn from 800 metres underground.\": \"海口观澜湖建在古老的火山熔岩地上。黑色火山岩、古荔枝树和石墙环绕球道,仿佛在月球上打球。打完球,再泡一泡取自地下800米的温泉。\", \"18-hole courses in one resort\": \"一座度假村内的18洞球场\", \"Hot-spring pools — a Guinness World Record\": \"个温泉池——吉尼斯世界纪录\", \"Yards at Blackstone, the flagship course\": \"码——旗舰黑石球场全长\", \"DP World Tour returns to Blackstone\": \"DP世界巡回赛重返黑石球场\", \"Explore the courses\": \"探索球场\", \"Pick your ten\": \"十场任你选\", \"Tap a pin on the resort map to see each course. Six courses are in our packages today — the others can be added on request.\": \"点击地图上的标记查看每个球场。目前套餐包含六个球场,其余球场可按需安排。\", \"Illustration only — not to scale.\": \"仅为示意图,非实际比例。\", \"In packages\": \"套餐内\", \"On request\": \"可按需安排\", \"Flyover video\": \"航拍视频\", \"Par\": \"标准杆\", \"Yards\": \"码\", \"Holes\": \"洞\", \"Add to my trip\": \"加入我的行程\", \"Ready-made packages\": \"精选套餐\", \"5 days, 4 nights, 3 rounds\": \"5天4晚3场球\", \"Two ways to play Haikou. Prices are per person, sharing a twin room, for groups of 4 or 8 golfers.\": \"两种海口玩法。价格为每人价格,双人同住,按4人或8人团计算。\", \"Package A\": \"套餐 A\", \"Package B\": \"套餐 B\", \"From, per person\": \"每人起\", \"Championship Trail\": \"锦标赛之旅\", \"Explorer Trail\": \"探索之旅\", \"Day 1\": \"第1天\", \"Day 2\": \"第2天\", \"Day 3\": \"第3天\", \"Day 4\": \"第4天\", \"Day 5\": \"第5天\", \"Arrive in Haikou\": \"抵达海口\", \"Airport pick-up, check in, evening at the hot springs\": \"接机、入住,晚上泡温泉\", \"The Vintage (No. 3)\": \"3号 老墙球场\", \"Classic tree-lined layout, par 72\": \"经典林间球道,标准杆72\", \"Lava Fields (No. 5)\": \"5号 熔岩球场\", \"Volcanic championship course, plus a free 60-min spa\": \"火山岩锦标赛球场,另送60分钟水疗\", \"Blackstone (No. 1)\": \"1号 黑石球场\", \"The flagship — World Cup and DP World Tour venue\": \"旗舰球场——世界杯及DP世界巡回赛场地\", \"Fly home\": \"返程\", \"Breakfast, then airport drop-off\": \"早餐后送机\", \"Price this package\": \"计算此套餐价格\", \"Single room:\": \"单人房:\", \"Sandbelt Trails (No. 2)\": \"2号 沙带球场\", \"Wide fairways and big rolling greens, par 72\": \"宽阔球道和起伏大果岭,标准杆72\", \"Classic tree-lined layout, plus a free 60-min spa\": \"经典林间球道,另送60分钟水疗\", \"Meadow Links (No. 6) or Stone Quarry (No. 7)\": \"6号 草甸球场 或 7号 矿迹球场\", \"Panda bunkers, or old railway and quarry holes\": \"熊猫沙坑,或旧铁路矿场球洞\", \"Included\": \"费用包含\", \"Airport pick-up and drop-off\": \"接送机\", \"4 nights at Mission Hills Resort Haikou, with breakfast\": \"海口观澜湖度假酒店4晚,含早餐\", \"3 weekday rounds: green fee, cart and caddie\": \"3场平日球:果岭费、球车、球童\", \"Hot-spring valley access and a 60-minute spa\": \"温泉谷畅泡及60分钟水疗\", \"24-hour support and travel accident insurance\": \"24小时服务及旅游意外险\", \"Not included\": \"费用不含\", \"Return flights\": \"往返机票\", \"Caddie tip — about ¥200 per 18 holes\": \"球童小费——每18洞约¥200\", \"Lunch, dinner and personal spending\": \"午餐、晚餐及个人消费\", \"Changes you ask for during the trip\": \"行程中您要求的变更\", \"RM prices are estimates at ¥1 ≈ RM\": \"令吉价格按 ¥1 ≈ RM\", \". We confirm the final price in your quote.\": \"估算,最终价格以报价单为准。\", \"Where you stay\": \"住宿\", \"Sleep on the course\": \"住在球场里\", \"Mission Hills Resort Haikou sits right among the volcanic courses, with balcony views over the fairways. Everything is on site, so there are no long drives between golf, dinner and bed.\": \"海口观澜湖度假酒店就在火山岩球场之中,阳台可俯瞰球道。一切都在度假村内,打球、吃饭、休息无需长途奔波。\", \"Volcanic hot-spring valley\": \"火山温泉谷\", \"168 hot and cold pools — free for hotel guests. Perfect after 18 holes.\": \"168个冷热泉池——住店客人免费。打完18洞后最适合。\", \"Asian and international restaurants\": \"亚洲及国际餐厅\", \"Several restaurants inside the resort. Tell us about any dietary needs and we'll plan around them.\": \"度假村内有多家餐厅。如有饮食需求请告诉我们,我们会提前安排。\", \"Fun for non-golfers too\": \"不打球的家人也好玩\", \"Water park, beach area, and a film town and museums nearby.\": \"水上乐园、沙滩区,附近还有电影公社和博物馆。\", \"Plan your trip\": \"行程规划\", \"Good to know before you go\": \"出发前须知\", \"Flights, weather, food and payment — the questions Malaysian golf groups ask us most.\": \"航班、天气、饮食和付款——马来西亚球友最常问的问题。\", \"Getting there\": \"如何抵达\", \"3.5 hrs\": \"3.5小时\", \"Direct from KLIA\": \"吉隆坡直飞\", \"0 hrs\": \"0小时\", \"Time difference\": \"时差\", \"Direct flights from Kuala Lumpur (KUL) to Haikou Meilan Airport (HAK) with Hainan Airlines and Batik Air Malaysia.\": \"海南航空和马来西亚峇迪航空提供吉隆坡(KUL)直飞海口美兰机场(HAK)航班。\", \"Fares are usually better if you book about 6 weeks before you fly.\": \"提前约6周订票,价格通常更划算。\", \"Golf bag rules are different for each airline and ticket type. We check your airline's golf bag allowance with you before you book.\": \"各航空公司和票种的球包规定不同。订票前我们会和您一起确认球包托运额度。\", \"We meet you at Haikou airport and drive you to the resort.\": \"我们在海口机场迎接您,并送您到度假村。\", \"Halal and Muslim-friendly\": \"清真及穆斯林友好\", \"Haikou city has halal restaurants, including Turkish and Xinjiang (Uyghur) halal restaurants in Longhua District.\": \"海口市区有清真餐厅,包括龙华区的土耳其和新疆清真餐厅。\", \"Tell us when you book. We confirm which halal restaurants are open for your dates and arrange your transport there.\": \"预订时告诉我们。我们会确认您出行期间营业的清真餐厅,并安排交通。\", \"We ask the resort in advance about pork-free and alcohol-free meal options for your group.\": \"我们会提前向度假村询问无猪肉、无酒精的餐食选择。\", \"Need prayer times or a quiet place to pray? Tell us, and we will plan around it.\": \"需要礼拜时间或安静的礼拜场所?告诉我们,我们会安排。\", \"Best time to go\": \"最佳出行时间\", \"We recommend\": \"我们推荐\", \"November to April\": \"11月至次年4月\", \": less rain and cooler days for golf. May to October is hot and rainy, with typhoons possible from July to October.\": \":雨少、天气凉爽,适合打球。5月至10月炎热多雨,7月至10月可能有台风。\", \"Jan\": \"1月\", \"Feb\": \"2月\", \"Mar\": \"3月\", \"Apr\": \"4月\", \"May\": \"5月\", \"Jun\": \"6月\", \"Jul\": \"7月\", \"Aug\": \"8月\", \"Sep\": \"9月\", \"Oct\": \"10月\", \"Nov\": \"11月\", \"Dec\": \"12月\", \"Best for golf\": \"最适合打球\", \"Busy season (Chinese New Year)\": \"旺季(春节)\", \"Hot and rainy\": \"炎热多雨\", \"Rain\": \"降雨\", \"° = average high, °C\": \"° = 平均最高气温,°C\", \"Prices change by season. December to February, and especially Chinese New Year, is the busiest and most expensive time. March, April and November often give the best value.\": \"价格随季节变化。12月至2月,尤其春节期间,是最忙、价格最高的时候。3月、4月和11月通常最划算。\", \"Booking and payment\": \"预订与付款\", \"Pay 50% to confirm your booking.\": \"支付50%即可确认预订。\", \"Pay the rest when you arrive, by cash or bank transfer.\": \"余款抵达时以现金或银行转账支付。\", \"Credit card payments have a 3.5% fee.\": \"信用卡付款需加收3.5%手续费。\", \"Tee times and rooms are held only after your booking is confirmed, so book early for busy dates.\": \"开球时间和房间在确认预订后才会保留,旺季请尽早预订。\", \"Your written quote shows the cancellation terms clearly before you pay.\": \"付款前,书面报价会清楚列明取消条款。\", \"Why Taigolf\": \"为什么选 Taigolf\", \"The golf tour team golfers come back to\": \"球友一再回头选择的高尔夫旅游团队\", \"From tee times at top courses to moments beyond the green, we handle every detail so your golf trip is smooth and memorable. Now we're bringing the same service to China.\": \"从顶级球场的开球时间到球场外的美好时光,我们打理每个细节,让您的高尔夫之旅顺利难忘。现在,我们把同样的服务带到中国。\", \"years in golf tourism\": \"年高尔夫旅游经验\", \"partner golf courses\": \"家合作球场\", \"average guest rating\": \"客户平均评分\", \"Fair prices\": \"价格公道\", \"Worried about overpriced golf tours? Our packages are built to give you great golf at an honest price.\": \"担心高尔夫团太贵?我们的套餐让您以实在的价格打好球。\", \"Courses you choose\": \"球场由您选\", \"Mix and match the courses you want to play. We shape the trip around your group.\": \"自由搭配想打的球场,我们按您的球队安排行程。\", \"Free planning help\": \"免费行程咨询\", \"Talk to us before you book. We'll help plan the dates, courses and budget — no charge.\": \"预订前先和我们聊聊。我们免费帮您规划日期、球场和预算。\", \"You come first\": \"客户至上\", \"We don't just plan. We stay with you on WhatsApp and take care of details during the trip.\": \"我们不只做规划,旅途中也全程在 WhatsApp 陪伴,照顾好每个细节。\", \"Proud member of\": \"荣誉会员\", \"International Association of Golf Tour Operators\": \"国际高尔夫旅游经营者协会\", \"Association of Thai Travel Agents, member 04998\": \"泰国旅行社协会,会员编号 04998\", \"Tourism Authority of Thailand\": \"泰国国家旅游局\", \"Our partner network now reaches China. Start with all 10 courses at Mission Hills Haikou — more China destinations coming soon.\": \"我们的合作网络已拓展到中国。从海口观澜湖全部10个球场开始,更多中国目的地即将推出。\", \"Operated by Happy Tour International Co., Ltd., licensed tour operator no. 11/13206.\": \"由 Happy Tour International Co., Ltd. 运营,旅游经营许可证号 11/13206。\", \"Check our licence\": \"查验我们的执照\", \"Check us first\": \"先查证我们\", \"Check us before you pay a single ringgit\": \"付款前,先查证我们\", \"Anyone can build a nice website. Nobody can fake a government licence record. Here is ours, in full, so you can check it yourself.\": \"谁都能做漂亮的网站,但政府执照记录做不了假。这是我们的完整资料,您可以亲自查证。\", \"Company\": \"公司\", \"Company registration no. 0105566043282\": \"公司注册号 0105566043282\", \"Tour licence no.\": \"旅游许可证号\", \"General category, issued by the Department of Tourism, Ministry of Tourism and Sports, Thailand\": \"综合类,由泰国旅游与体育部旅游厅颁发\", \"Valid until 6 August 2027\": \"有效期至2027年8月6日\", \"Company registered\": \"公司注册日期\", \"27 February 2023\": \"2023年2月27日\", \"Office\": \"办公地址\", \"Open in Google Maps\": \"在谷歌地图中打开\", \"Official channels\": \"官方渠道\", \"Association\": \"协会\", \"Member, Association of Thai Travel Agents (ATTA)\": \"泰国旅行社协会(ATTA)会员\", \"Member code 04998, member since 2023 · also a member of IAGTO\": \"会员编号 04998,2023年入会 · 同时为 IAGTO 会员\", \"Search “Happy Tour International” in the ATTA directory\": \"在 ATTA 名录中搜索 “Happy Tour International”\", \"Call our team directly\": \"直接致电我们的团队\", \"Scan to see the official record\": \"扫码查看官方记录\", \"This QR code is printed on our licence. It opens the Thai Department of Tourism's own page about us — not a page on this website.\": \"此二维码印在我们的执照上,打开的是泰国旅游厅官方网站上关于我们的页面,而不是本网站的页面。\", \"Open the official record\": \"打开官方记录\", \"Real golfers, real trips\": \"真实球友,真实行程\", \"Groups who flew with us\": \"与我们同行的球队\", \"These are real Taigolf groups on our Thailand trips — met at the airport, looked after on every course. Haikou is our next destination, with the same team.\": \"这些是参加我们泰国行程的真实 Taigolf 球队——机场接机,每个球场都有人照顾。海口是我们的下一站,同一支团队为您服务。\", \"Mohd Badrul Hisyam \u0026 friends, just landed\": \"Mohd Badrul Hisyam 与球友,刚刚落地\", \"Big group, one smooth trip\": \"大团队,顺畅旅程\", \"A 30-golfer group trip\": \"30人球队之旅\", \"Met at the airport by our team\": \"我们的团队机场接机\", \"Hover to pause.\": \"鼠标悬停可暂停。\", \"What golfers say\": \"球友评价\", \"Before you book\": \"预订前\", \"Good questions\": \"您可能想问\", \"Still unsure? Send us a message and a real person on our team will answer.\": \"还有疑问?给我们留言,会有真人为您解答。\", \"Ask on WhatsApp\": \"WhatsApp 咨询\", \"Are flights included?\": \"含机票吗?\", \"No. Packages start from your arrival at Haikou airport. Book the flight that suits your group, and we'll meet you at the airport.\": \"不含。套餐从您抵达海口机场开始。请预订适合您球队的航班,我们在机场迎接您。\", \"How big does our group need to be?\": \"球队需要多少人?\", \"Our prices are based on groups of 4 or 8 golfers. Smaller or bigger groups are welcome — use the price calculator, then we'll confirm the exact price.\": \"价格按4人或8人团计算。人数多少都欢迎——先用价格计算器估算,我们再确认准确价格。\", \"Can we change the courses?\": \"可以换球场吗?\", \"Yes. You can swap any round for another Mission Hills course. Some courses, like Blackstone and Lava Fields, cost a little more to play.\": \"可以。任何一场都可以换成观澜湖其他球场。部分球场如黑石、熔岩需要加一点费用。\", \"We have dietary needs. Can you help?\": \"我们有饮食需求,可以帮忙吗?\", \"Yes. Tell us what your group needs when you enquire, and we'll check restaurant options at the resort and nearby before you travel.\": \"可以。咨询时告诉我们您的需求,出发前我们会确认度假村及附近的餐厅选择。\", \"Do Malaysians need a visa for China?\": \"马来西亚人去中国需要签证吗?\", \"In recent years, Malaysian passport holders have been able to visit China visa-free for short trips. Rules can change, so we check the latest entry rules for your travel dates before you book.\": \"近年来,马来西亚护照持有人短期访华可免签。政策可能变化,预订前我们会为您确认出行日期的最新入境规定。\", \"Does the team speak English?\": \"团队会说英语吗?\", \"Yes. Our team supports you in English and Chinese, 24 hours a day during your trip.\": \"会。旅途中我们的团队24小时以英语和中文为您服务。\", \"How do we pay?\": \"如何付款?\", \"Pay 50% to confirm your booking. Pay the rest when you arrive, by cash or bank transfer. Card payments have a 3.5% fee. Nothing is booked until you say yes.\": \"支付50%确认预订,余款抵达时以现金或银行转账支付。刷卡需加收3.5%手续费。您确认之前,我们不会预订任何项目。\", \"What if we need to cancel?\": \"如果需要取消怎么办?\", \"Your written quote shows the cancellation terms clearly before you pay anything. Ask us any time if something is not clear.\": \"付款前,书面报价会清楚列明取消条款。如有不清楚,随时问我们。\", \"Your crew. Haikou. Ten courses.\": \"你的球队,海口,十个球场。\", \"Tell us how many golfers and when you want to go. We'll send a trip plan and price, with no obligation.\": \"告诉我们人数和出行时间,我们免费发送行程和报价,无任何义务。\", \"Plan my trip on WhatsApp\": \"WhatsApp 规划我的行程\", \"Try the price calculator\": \"试试价格计算器\", \"Build your Haikou trip\": \"定制您的海口行程\", \"Choose your hotel, group size, days and courses. You'll see an estimated price per golfer right away.\": \"选择酒店、人数、天数和球场,马上看到每位球友的估算价格。\", \"Hotel\": \"酒店\", \"Where your group will stay\": \"球队入住地点\", \"Mission Hills Resort Haikou\": \"海口观澜湖度假酒店\", \"Breakfast and hot-spring valley included\": \"含早餐及温泉谷\", \"More hotels coming soon. Ask us if you want a different hotel.\": \"更多酒店即将推出。如需其他酒店请联系我们。\", \"Golfers and days\": \"人数与天数\", \"How many people and how long\": \"多少人、玩几天\", \"Golfers\": \"球友人数\", \"Best price for 4 or 8\": \"4人或8人最优惠\", \"Nights\": \"晚数\", \"Rounds of golf\": \"打球场数\", \"Up to one per night\": \"每晚最多一场\", \"Twin share\": \"双人同住\", \"Single room\": \"单人房\", \"Choose a course for each round\": \"每场选择一个球场\", \"Extras\": \"加购项目\", \"Nice to have\": \"锦上添花\", \"60-minute spa\": \"60分钟水疗\", \"Foot massage, Chinese acupressure, aroma or deep-tissue\": \"足疗、中式穴位按摩、香薰或深层肌肉按摩\", \"Your estimate\": \"您的估价\", \"Per golfer,\": \"每位球友,\", \"twin share\": \"双人同住\", \"single room\": \"单人房\", \"Send this to Taigolf on WhatsApp\": \"通过 WhatsApp 发送给 Taigolf\", \"Estimate only, for weekday rounds. Flights and caddie tips (about ¥200 per round) are not included. Final price depends on dates and availability. RM shown at ¥1 ≈ RM\": \"仅为平日打球估价,不含机票和球童小费(每场约¥200)。最终价格视日期和空位而定。令吉按 ¥1 ≈ RM\", \"Tour licence no. 11/13206 · Company reg. 0105566043282\": \"旅游许可证号 11/13206 · 公司注册号 0105566043282\", \"Contact\": \"联系我们\", \"More from Taigolf\": \"更多 Taigolf 服务\", \"Thailand golf tours\": \"泰国高尔夫之旅\", \"Thailand packages\": \"泰国套餐\", \"China price calculator\": \"中国行程价格计算器\", \"Mission Hills Haikou · Blackstone 黑石\": \"海口观澜湖 · 黑石球场\", \"Mission Hills Haikou · Sandbelt Trails 沙带\": \"海口观澜湖 · 沙带球场\", \"Mission Hills Haikou · The Vintage 老墙\": \"海口观澜湖 · 老墙球场\", \"Mission Hills Haikou · Lava Fields 熔岩\": \"海口观澜湖 · 熔岩球场\", \"Mission Hills Haikou · Meadow Links 草甸\": \"海口观澜湖 · 草甸球场\", \"Mission Hills Haikou · Stone Quarry 矿迹\": \"海口观澜湖 · 矿迹球场\", \"Mission Hills Haikou · Course No. 4 步石\": \"海口观澜湖 · 4号 步石球场\", \"Mission Hills Haikou · Course No. 8 双杯\": \"海口观澜湖 · 8号 双杯球场\", \"Mission Hills Haikou · Course No. 9 棕榈\": \"海口观澜湖 · 9号 棕榈球场\", \"Mission Hills Haikou · Course No. 10 沙浪\": \"海口观澜湖 · 10号 沙浪球场\", \"Before you go\": \"出发前须知\", \"Tap a card for details\": \"点击卡片查看详情\", \"Flights\": \"航班\", \"3h 30m\": \"3小时30分\", \"Direct from KLIA · no time difference\": \"吉隆坡直飞 · 无时差\", \"Direct flights: Hainan Airlines and Batik Air Malaysia (KUL → HAK).\": \"直飞航班:海南航空、马来西亚峇迪航空(KUL → HAK)。\", \"Book about 6 weeks ahead for better fares.\": \"提前约6周订票更划算。\", \"Golf bag rules differ by airline — we check yours before you book.\": \"各航空公司球包规定不同——订票前我们帮您确认。\", \"We meet you at Haikou airport.\": \"我们在海口机场接您。\", \"Weather\": \"天气\", \"Best: Nov – Apr\": \"最佳:11月–4月\", \"Cooler days, less rain\": \"凉爽少雨\", \"May to October is hot and rainy. Typhoons are possible from July to October.\": \"5月至10月炎热多雨,7月至10月可能有台风。\", \"Prices change by season. Chinese New Year is the busiest and most expensive time.\": \"价格随季节变化,春节是最忙、最贵的时候。\", \"March, April and November often give the best value.\": \"3月、4月和11月通常最划算。\", \"Payment\": \"付款\", \"Now, to confirm\": \"现在,确认预订\", \"On arrival\": \"抵达时\", \"Half now, half later\": \"先付一半,余款后付\", \"Cash or bank transfer\": \"现金或银行转账\", \"Pay 50% to confirm. Pay the rest when you arrive.\": \"支付50%确认,余款抵达时支付。\", \"Tee times and rooms are held once your booking is confirmed.\": \"确认预订后即保留开球时间和房间。\", \"Your written quote shows the cancellation terms before you pay.\": \"付款前,书面报价会列明取消条款。\", \"Food\": \"餐饮\", \"Halal? Sorted.\": \"清真?放心。\", \"We book halal restaurants for you\": \"我们为您预订清真餐厅\", \"Haikou has halal restaurants, including Turkish and Xinjiang ones in Longhua District.\": \"海口有清真餐厅,包括龙华区的土耳其和新疆餐厅。\", \"We confirm they are open for your dates and arrange transport.\": \"我们确认您出行期间营业,并安排交通。\", \"We ask the resort about pork-free and alcohol-free meals, and can plan around prayer times.\": \"我们会向度假村询问无猪肉、无酒精餐食,并可配合礼拜时间安排行程。\", \"Golf in China? Complicated?\": \"去中国打球?很麻烦?\", \"Not with us. Direct 3.5-hour flight from KL, an English-speaking team, and everything booked. You just play.\": \"有我们就不麻烦。吉隆坡直飞3.5小时,英语团队全程服务,一切都已订好。您只管打球。\", \"No stress. Just 18 holes.\": \"没有烦恼,只有18洞。\", \"Your job on this trip\": \"这趟旅程,你只需要\", \"Enjoy the game. That's it.\": \"享受打球,就这么简单。\", \"Tee times, transfers, caddies and hot springs — all booked before you land.\": \"开球时间、接送、球童和温泉——落地前全部订好。\", \"See the packages\": \"查看套餐\", \"Made for golf groups\": \"专为球队设计\", \"Bring the whole gang.\": \"带上整个球队。\", \"Groups of 4, 8, 16 or more. We plan every tee time, room and ride around your crew.\": \"4人、8人、16人甚至更多。每个开球时间、房间和接送,都按您的球队安排。\", \"Price our group trip\": \"计算我们球队的价格\", \"Taigolf Team\": \"Taigolf 团队\", \"online · usually replies in minutes\": \"在线 · 通常几分钟内回复\", \"Hi! 8 of us want to golf in Haikou in March. Possible?\": \"你好!我们8个人想3月去海口打球,可以吗?\", \"Hi! Yes, March is a great month 😊 Which courses would your group like to play?\": \"你好!可以,3月是很好的季节 😊 你们想打哪些球场呢?\", \"Meet the team\": \"认识我们的团队\", \"Real people. Green shirts. On your side.\": \"真实的人,绿色球衫,始终在您身边。\", \"Our team meets you at the airport, checks in with you at every course, and answers WhatsApp 24 hours a day. Look for the green shirts.\": \"我们的团队在机场接您,在每个球场关照您,24小时回复 WhatsApp。认准绿色球衫。\", \"Our team, on the course\": \"我们的团队,就在球场\", \"On the ground in golf and travel\": \"活跃在高尔夫与旅游一线\", \"Universal Tourism Exhibition, Beijing 2025\": \"2025北京环球旅游展览会\", \"Meeting China travel partners\": \"拜访中国旅游合作伙伴\", \"Sponsor at a Siam Country Club golf event\": \"赞助暹罗乡村俱乐部高尔夫活动\", \"Our logo on the sponsor wall\": \"我们的标志在赞助墙上\", \"Proud sponsor at a travel industry event\": \"荣幸赞助旅游行业活动\", \"Taigolf among the sponsors\": \"Taigolf 位列赞助商\", \"International golf tourism convention\": \"国际高尔夫旅游大会\", \"Where golf trips are planned\": \"高尔夫行程在这里规划\", \"Meeting golf and travel partners\": \"与高尔夫及旅游伙伴洽谈\", \"Booking the best tee times for you\": \"为您预订最好的开球时间\", \"Our team at a golf club event\": \"我们的团队在高尔夫俱乐部活动\", \"Always in the green and white\": \"永远的绿白色\", \"Blackstone\": \"黑石球场\", \"Sandbelt Trails\": \"沙带球场\", \"The Vintage\": \"老墙球场\", \"Lava Fields\": \"熔岩球场\", \"Meadow Links\": \"草甸球场\", \"Stone Quarry\": \"矿迹球场\", \"Course No. 4\": \"4号 步石球场\", \"Course No. 8\": \"8号 双杯球场\", \"Course No. 9\": \"9号 棕榈球场\", \"Course No. 10\": \"10号 沙浪球场\", \"The flagship. World Cup and DP World Tour venue.\": \"旗舰球场。世界杯及DP世界巡回赛场地。\", \"The most famous course at Mission Hills Haikou. Black lava rock, jungle, 100-year-old lychee trees, lakes and wetlands. The closing holes are all about risk and reward.\": \"海口观澜湖最著名的球场。黑色熔岩、原始丛林、百年荔枝树、湖泊和湿地。收官几洞充满风险与回报。\", \"Inspired by Australia’s famous sandbelt courses.\": \"灵感来自澳大利亚著名的沙带球场。\", \"Wide fairways, big rolling greens, tall bunkers and eucalyptus trees. Many ways to attack each hole, with a relaxed, open feel.\": \"宽阔球道、起伏大果岭、高耸沙坑和桉树林。每洞都有多种进攻路线,打起来开阔轻松。\", \"Classic style, with old stone walls.\": \"复古经典风格,古老石墙。\", \"Keeps the natural land and thick trees. Tree-lined fairways, deep pot bunkers and blind shots. Narrow fairways reward accurate driving.\": \"保留原始地形和茂密植被。林间球道、深锅形沙坑和盲打设计,窄球道考验开球精准度。\", \"A dramatic short course.\": \"充满戏剧性的短杆球场。\", \"Big bunkers and bare volcanic rock.\": \"大沙坑与裸露火山岩。\", \"A championship course that shows off Hainan’s volcanic land. Open views and fairly wide fairways, but big bunkers and lava rock decide your line into each green.\": \"展现海南火山地貌的锦标赛球场。视野开阔、球道较宽,但大沙坑和熔岩决定您攻果岭的路线。\", \"Home of the famous panda bunkers.\": \"著名熊猫沙坑所在地。\", \"Classic US east-coast style with open meadows, long grass and “church pew” bunkers. The panda-face bunker and paw-print tee make it the most photographed course here.\": \"经典美国东部风格,开阔草原、天然长草和“教堂长椅”沙坑。熊猫脸沙坑和熊掌发球台,让这里成为最受欢迎的拍照球场。\", \"Old quarry and railway, Wild West feel.\": \"旧矿场与铁路,西部怀旧风情。\", \"Built around an old volcanic quarry and railway. Rock walls, rail tracks, mine carts and a rail bridge. Six par-3s make accuracy more important than distance.\": \"围绕古老火山采石场和铁路而建。岩壁、铁轨、矿车和铁路桥。六个三杆洞,精准比距离更重要。\", \"A fun short course.\": \"趣味十足的短杆球场。\", \"Modern and elegant.\": \"舒适优雅的现代风格。\", \"Wide open green views.\": \"与无边绿意完美结合。\", \"Available on request. Ask our team for details.\": \"可按需安排,详情请咨询我们的团队。\", \"Price on request\": \"价格请咨询\", \"Included in package price\": \"已含在套餐价格内\", \"Ask about this course\": \"咨询此球场\", \"per golfer\": \"每人\", \"Choosing Taigolf was the best decision. The courses were breathtaking and the price was right.\": \"选择 Taigolf 是最好的决定。球场美得令人惊叹,价格也合理。\", \"Hailey and the team arranged everything from the moment we landed. We will come back again.\": \"从落地那一刻起,Hailey 和团队就安排好了一切。我们一定会再来。\", \"Best golf tour operator — very good service, friendly staff and a fair price.\": \"最好的高尔夫旅游公司——服务好、员工友善、价格公道。\", \"The attention to detail and the quality of the courses made my trip unforgettable.\": \"对细节的用心和球场的品质,让我的旅程难以忘怀。\", \"Golfer from\": \"球友来自\", \"Malaysia\": \"马来西亚\", \"Hong Kong\": \"香港\", \"Philippines\": \"菲律宾\", \"Japan\": \"日本\", \"Premium course fees\": \"精品球场附加费\", \"Planning and 24-hour support\": \"行程规划及24小时服务\", \"Per golfer\": \"每位球友\", \"About\": \"约\", \"group total\": \"团队总价\", \"Legal\": \"法律条款\", \"Privacy Policy\": \"隐私政策\", \"Last updated: September 2026\": \"最后更新:2026年9月\", \"HAPPY TOUR INTERNATIONAL CO., LTD. (\\\"we\\\", \\\"us\\\", \\\"our\\\") runs Taigolf and this Taigolf China website, and the Taigolf Facebook Page. This Privacy Policy explains what information we collect from you, why we collect it, and how we protect it.\": \"HAPPY TOUR INTERNATIONAL CO., LTD.(“我们”)运营 Taigolf、本 Taigolf 中国网站及 Taigolf 脸书专页。本隐私政策说明我们收集哪些信息、为何收集以及如何保护这些信息。\", \"1. Information we collect\": \"1. 我们收集的信息\", \"When you contact us through this website, WhatsApp, Facebook, Facebook Messenger, LINE or email, we may collect:\": \"当您通过本网站、WhatsApp、脸书、Messenger、LINE 或电邮联系我们时,我们可能收集:\", \"Your name\": \"您的姓名\", \"Your phone number and/or email address\": \"您的电话号码和/或电邮地址\", \"Messages you send us, for example questions about golf packages, courses, dates or bookings\": \"您发送给我们的信息,例如关于高尔夫套餐、球场、日期或预订的问题\", \"Details of your trip request, such as group size, dates and chosen courses\": \"您的行程需求,例如人数、日期和所选球场\", \"Basic information about how you found us, for example if you clicked an online ad\": \"您如何找到我们的基本信息,例如是否点击了网络广告\", \"We do not collect payment card details, passwords or government ID numbers through these channels.\": \"我们不会通过这些渠道收集银行卡资料、密码或身份证件号码。\", \"2. The price calculator\": \"2. 价格计算器\", \"The price calculator runs in your browser. Your choices are saved only on your own device, so they are still there next time. They are sent to us only if you tap \\\"Send this to Taigolf on WhatsApp\\\".\": \"价格计算器在您的浏览器中运行,您的选择只保存在您自己的设备上。只有当您点击“通过 WhatsApp 发送给 Taigolf”时,信息才会发送给我们。\", \"3. How we use your information\": \"3. 我们如何使用您的信息\", \"To answer your questions about our golf trips\": \"回答您关于高尔夫行程的问题\", \"To prepare quotes and trip plans\": \"准备报价和行程安排\", \"To follow up about bookings you are interested in\": \"跟进您感兴趣的预订\", \"To improve our customer service\": \"改善我们的客户服务\", \"We do not sell, rent or trade your personal information to anyone.\": \"我们不会向任何人出售、出租或交易您的个人信息。\", \"4. How we store your information\": \"4. 我们如何保存您的信息\", \"Information you share with us is stored securely in our internal customer records, which only our sales and customer service staff can access. We keep it only as long as we need it to help you, or as required by law.\": \"您分享的信息安全保存在我们的内部客户记录中,只有销售和客服人员可以查看。我们只在帮助您所需的期间或法律要求的期间保存这些信息。\", \"5. Facebook and online ads\": \"5. 脸书及网络广告\", \"If you message our Facebook Page, we may use Facebook's Messenger Platform and Conversions API to receive your message and, where relevant, to understand which ad led you to contact us. This helps us reply faster and understand which of our marketing is useful. We only use this information for the purposes above.\": \"如果您给我们的脸书专页发信息,我们可能使用脸书的 Messenger 平台和转化 API 接收您的信息,并在相关时了解是哪则广告让您联系我们。这有助于我们更快回复。我们只将这些信息用于上述目的。\", \"6. Your rights\": \"6. 您的权利\", \"You can contact us at any time to:\": \"您可以随时联系我们:\", \"Ask what information we have about you\": \"询问我们持有您哪些信息\", \"Ask us to correct or delete your information\": \"要求我们更正或删除您的信息\", \"Withdraw your consent for us to contact you\": \"撤回同意我们联系您\", \"To do this, email\": \"如需办理,请发电邮至\", \"or message us on WhatsApp.\": \"或通过 WhatsApp 联系我们。\", \"7. Changes to this policy\": \"7. 政策变更\", \"We may update this Privacy Policy from time to time. Changes will be posted on this page with a new date.\": \"我们可能不时更新本隐私政策,更新内容将在本页面公布并注明新日期。\", \"8. Contact us\": \"8. 联系我们\", \"Back to home\": \"返回首页\", \"Tap a number on the map to see each course. Six courses are in our packages today — the others can be added on request.\": \"点击地图上的数字查看每个球场。目前套餐包含六个球场,其余球场可按需安排。\", \"Tap a number — the course details open below ↓\": \"点击数字——球场详情在下方显示 ↓\"}};\nvar TPLS = {\"round\": {\"en\": \"Round {n}\", \"ms\": \"Pusingan {n}\", \"zh\": \"第{n}场\"}, \"day\": {\"en\": \"Day {n}\", \"ms\": \"Hari {n}\", \"zh\": \"第{n}天\"}, \"days\": {\"en\": \"{n} days in Haikou\", \"ms\": \"{n} hari di Haikou\", \"zh\": \"海口{n}天\"}, \"no\": {\"en\": \"No. {n}\", \"ms\": \"No. {n}\", \"zh\": \"{n}号\"}, \"golfhotel\": {\"en\": \"Golf + hotel ({n} rounds)\", \"ms\": \"Golf + hotel ({n} pusingan)\", \"zh\": \"球场+酒店({n}场)\"}, \"golfhotel1\": {\"en\": \"Golf + hotel (1 round)\", \"ms\": \"Golf + hotel (1 pusingan)\", \"zh\": \"球场+酒店(1场)\"}, \"extra\": {\"en\": \"Extra nights ({n})\", \"ms\": \"Malam tambahan ({n})\", \"zh\": \"加住({n}晚)\"}, \"trip\": {\"en\": \"\u003cb\u003e{g} golfer{s}\u003c/b\u003e, {d} days / {n} nights at Mission Hills Resort Haikou. Courses: {c}.\", \"ms\": \"\u003cb\u003e{g} golfer\u003c/b\u003e, {d} hari / {n} malam di Mission Hills Resort Haikou. Padang: {c}.\", \"zh\": \"\u003cb\u003e{g}位球友\u003c/b\u003e,海口观澜湖度假酒店 {d}天{n}晚。球场:{c}。\"}, \"roundlbl\": {\"en\": \"Course for round {n}\", \"ms\": \"Padang untuk pusingan {n}\", \"zh\": \"第{n}场球场\"}, \"count\": {\"en\": \"Course {n} of {t}\", \"ms\": \"Padang {n} daripada {t}\", \"zh\": \"第{n}个球场,共{t}个\"}};\nvar LANG = 'en';\ntry{ var sl=localStorage.getItem('tgc-lang'); if(sl==='ms'||sl==='zh') LANG=sl }catch(e){}\nfunction t(s){ if(LANG==='en'||!s) return s; var d=DICT[LANG]||{}; return d[s]||s }\nfunction tp(k,v){ var s=(TPLS[k]||{})[LANG]||(TPLS[k]||{}).en||''; return s.replace(/\\{(\\w+)\\}/g,function(_,x){return v[x]!==undefined?v[x]:''}) }\nfunction applyLang(root){\n root=root||document.body;\n var w=document.createTreeWalker(root,NodeFilter.SHOW_TEXT,{acceptNode:function(n){var p=n.parentNode;return (p\u0026\u0026/^(SCRIPT|STYLE)$/.test(p.nodeName))?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}});\n var n,list=[]; while((n=w.nextNode())) list.push(n);\n list.forEach(function(n){\n if(n.__en===undefined) n.__en=n.nodeValue;\n var en=n.__en, key=en.replace(/\\s+/g,' ').trim(); if(!key) return;\n var tr = LANG==='en' ? null : (DICT[LANG]||{})[key];\n if(tr){ n.nodeValue=(en.match(/^\\s*/)[0])+tr+(en.match(/\\s*$/)[0]) } else if(n.nodeValue!==en \u0026\u0026 (DICT.ms[key]||DICT.zh[key])) { n.nodeValue=en }\n });\n}\nvar TITLES={en:'Taigolf China — Golf trips to Haikou for Malaysian golfers',ms:'Taigolf China — Percutian golf ke Haikou untuk golfer Malaysia',zh:'Taigolf 中国 — 马来西亚球友的海口高尔夫之旅'};\nfunction setLang(l){\n LANG=l; try{localStorage.setItem('tgc-lang',l)}catch(e){}\n document.documentElement.lang = l==='zh'?'zh-Hans':(l==='ms'?'ms':'en');\n $$('[data-lang]').forEach(function(b){b.setAttribute('aria-pressed',b.dataset.lang===l)});\n drawTabs(); showCourse(); showReview(); renderCalc();\n applyLang(document.body);\n if(location.hash.indexOf('#calculator')!==0) document.title=TITLES[l];\n}\n$$('[data-lang]').forEach(function(b){b.addEventListener('click',function(){setLang(b.dataset.lang)})});\n\n$$('[data-price]').forEach(function(el){el.textContent=money(+el.dataset.price,'MYR')});\n\n/* ============ ROUTING ============ */\nvar reduced = window.matchMedia \u0026\u0026 window.matchMedia('(prefers-reduced-motion: reduce)').matches;\nfunction route(){\n var calc = location.hash.indexOf('#calculator')===0, priv = location.hash.indexOf('#privacy')===0;\n $('#page-home').hidden = calc||priv; $('#page-calc').hidden = !calc; $('#page-privacy').hidden = !priv;\n if(priv){ document.title='Privacy Policy — Taigolf China'; window.scrollTo(0,0); onScroll(); return }\n $('#navCalc').setAttribute('aria-current', calc ? 'page' : 'false');\n document.title = calc ? 'Price calculator — Taigolf China' : 'Taigolf China — Golf trips to Haikou for Malaysian golfers';\n onScroll();\n if(calc){ window.scrollTo(0,0); renderCalc(); }\n}\nfunction go(where,section){\n $('#navLinks').classList.remove('open'); $('#menuBtn').setAttribute('aria-expanded','false');\n if(where==='calculator'){ if(location.hash!=='#calculator'){location.hash='#calculator'} else {route()} return }\n if(where==='privacy'){ if(location.hash!=='#privacy'){location.hash='#privacy'} else {route()} return }\n if(location.hash.indexOf('#calculator')===0||location.hash.indexOf('#privacy')===0){ history.pushState('',document.title,location.pathname+location.search); route(); }\n if(section){ var el=document.getElementById(section); if(el){ setTimeout(function(){el.scrollIntoView({behavior: reduced?'auto':'smooth'})},30)} }\n else window.scrollTo({top:0,behavior:reduced?'auto':'smooth'});\n}\ndocument.addEventListener('click',function(e){\n var b=e.target.closest('[data-go]'); if(b){ e.preventDefault(); go(b.dataset.go,b.dataset.scroll); }\n});\nwindow.addEventListener('hashchange',route);\n$('#menuBtn').addEventListener('click',function(){var o=$('#navLinks').classList.toggle('open');this.setAttribute('aria-expanded',o)});\n\n/* ============ HERO SCROLL ============ */\nvar hero=$('#hero'), stage=$('#stage'), nav=$('#nav'), ticking=false, _copyB=null;\nfunction heroCopyBottom(){ if(_copyB===null){ var w=$('.cabin-copy .wrap'); _copyB = w ? w.getBoundingClientRect().bottom - stage.getBoundingClientRect().top : 300 } return _copyB }\nwindow.addEventListener('resize',function(){_copyB=null});\nif(document.fonts\u0026\u0026document.fonts.ready){document.fonts.ready.then(function(){_copyB=null;onScroll()})}\nfunction onScroll(){\n if(ticking) return; ticking=true;\n requestAnimationFrame(function(){\n ticking=false;\n var homeVisible = !$('#page-home').hidden;\n var y = window.scrollY || 0;\n if(homeVisible){\n var range = hero.offsetHeight - window.innerHeight;\n var p = reduced ? 1 : Math.max(0,Math.min(1, y / Math.max(1,range)));\n var vw=window.innerWidth, vh=window.innerHeight, mob=vw\u003c=720;\n var ar=mob?614/1100:1376/768, hole=mob?[.421,.4288,.5781,.5632]:[.4651,.4119,.5346,.5885];\n var cw=Math.max(vw,vh*ar), ch=cw/ar;\n var hx=(hole[0]+hole[2])/2, hy=(hole[1]+hole[3])/2;\n var zoom = Math.pow(Math.min(1,p/0.62), 2.2);\n var copyB = heroCopyBottom();\n var avail = (vh-84) - (copyB+14);\n var holeTarget = Math.max(0.12*vh, Math.min((mob?0.3:0.31)*vh, avail/1.7));\n var s0 = Math.max(1, holeTarget/((hole[3]-hole[1])*ch));\n var need = Math.max(1.5*vw/((hole[2]-hole[0])*cw), 1.5*vh/((hole[3]-hole[1])*ch));\n var s = s0 + (need-s0) * zoom;\n var hH=(hole[3]-hole[1])*ch*s0, cy0 = Math.max(copyB+14+0.3*hH+hH/2, vh*0.5), cy = cy0 + (vh/2-cy0)*zoom;\n var win=$('#win');\n win.style.width=cw+'px'; win.style.height=ch+'px';\n win.style.left=(vw/2)+'px'; win.style.top=cy+'px';\n win.style.marginLeft=(-cw*hx)+'px'; win.style.marginTop=(-ch*hy)+'px';\n win.style.setProperty('--ox',(hx*100)+'%'); win.style.setProperty('--oy',(hy*100)+'%');\n win.style.transform='scale('+s+')';\n var T=cy+(hole[1]-hy)*ch*s, B=cy+(hole[3]-hy)*ch*s, bh=Math.max(1.6*vh, vw*1400/1800);\n var ty=(T+0.28*(B-T)) - (-0.3*vh + 0.46*bh); ty=Math.max(-0.3*vh, Math.min(0.3*vh, ty));\n $('.sky').style.transform='translate3d(0,'+ty+'px,0)';\n var c = p\u003c0.28 ? 0 : p\u003c0.5 ? (p-0.28)/0.22 : Math.max(0,1-(p-0.5)/0.2);\n var g = Math.max(0,Math.min(1,(p-0.46)/0.2));\n var a = Math.max(0,Math.min(1,(p-0.7)/0.16));\n stage.style.setProperty('--p',p);\n stage.style.setProperty('--c',c); stage.style.setProperty('--g',g); stage.style.setProperty('--a',a);\n $('#win').style.visibility = p\u003e0.63 ? 'hidden' : 'visible';\n $('#arrive').classList.toggle('on', a\u003e0.6);\n $$('#cloudbank .cloud').forEach(function(el,i){ el.style.transform='translate3d('+(i%2?-1:1)*p*120+'px,'+(-p*260)+'px,0) scale('+(1+p*1.2)+')' });\n nav.classList.toggle('solid', y \u003e hero.offsetHeight - window.innerHeight*0.6);\n } else nav.classList.add('solid');\n });\n}\nwindow.addEventListener('scroll',onScroll,{passive:true});\nwindow.addEventListener('resize',onScroll);\n\n/* ============ COURSE EXPLORER ============ */\nvar activeCourse=1, activeImg=0;\nfunction drawPins(){\n var g=$('#pins'), ns='http://www.w3.org/2000/svg'; g.innerHTML='';\n COURSES.forEach(function(c){\n var p=PIN_POS[c.no], el=document.createElementNS(ns,'g');\n el.setAttribute('class','pin'+(c.par?'':' dim')+(c.no===activeCourse?' active':''));\n el.setAttribute('tabindex','0'); el.setAttribute('role','button');\n el.setAttribute('aria-label','Course '+c.no+': '+c.name); el.setAttribute('transform','translate('+p[0]+' '+p[1]+')');\n el.innerHTML='\u003ccircle class=\"ring\" r=\"22\" fill=\"none\" stroke=\"transparent\" stroke-width=\"3\"/\u003e\u003cpath d=\"M0 16 L-6 6 L6 6z\" fill=\"'+(c.no===activeCourse?'#F2D43D':'#fff')+'\"/\u003e\u003ccircle class=\"dot\" r=\"16\"/\u003e\u003ctext text-anchor=\"middle\" dy=\"6\"\u003e'+c.no+'\u003c/text\u003e';\n el.addEventListener('click',function(){pickCourse(c.no,true)});\n el.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();pickCourse(c.no)}});\n g.appendChild(el);\n });\n}\nfunction drawTabs(){var box=$('#courseTabs');box.innerHTML='';COURSES.forEach(function(c){var b=document.createElement('button');b.type='button';if(!c.par)b.className='dim';b.setAttribute('aria-pressed',c.no===activeCourse);b.innerHTML='\u003cb\u003e'+c.no+'\u003c/b\u003e\u003cspan\u003e'+t(c.name)+'\u003c/span\u003e';b.onclick=function(){pickCourse(c.no,true)};box.appendChild(b)});if(window.applyLang)applyLang(box)}\nfunction pickCourse(no,user){activeCourse=no;activeImg=0;drawPins();drawTabs();showCourse();\n if(!user) return;\n var card=$('.course-card'); card.classList.remove('flash'); void card.offsetWidth; card.classList.add('flash');\n if(window.innerWidth\u003c980){ var y=card.getBoundingClientRect().top+window.scrollY-84; window.scrollTo({top:y,behavior:reduced?'auto':'smooth'}) }\n}\n$('#ccPrev').addEventListener('click',function(){pickCourse(activeCourse===1?COURSES.length:activeCourse-1,false);$('.course-card').classList.remove('flash');void $('.course-card').offsetWidth;$('.course-card').classList.add('flash')});\n$('#ccNext').addEventListener('click',function(){pickCourse(activeCourse===COURSES.length?1:activeCourse+1,false);$('.course-card').classList.remove('flash');void $('.course-card').offsetWidth;$('.course-card').classList.add('flash')});\nfunction showCourse(){\n var c=COURSES[activeCourse-1];\n var imgs=c.imgs.length?c.imgs:['hero'];\n $('#ccImg').src=IMGS[imgs[activeImg]]; $('#ccImg').alt=c.name+' course photo';\n $('#ccFly').hidden = imgs[activeImg].indexOf('vid_')!==0;\n $('#ccNum').textContent=tp('no',{n:c.no}); $('#ccCount').textContent=tp('count',{n:c.no,t:COURSES.length}); $('#ccName').textContent=t(c.name); $('#ccTag').textContent=t(c.tag);\n $('#ccPar').textContent=c.par||'—'; $('#ccYds').textContent=c.yds||'—'; $('#ccHoles').textContent='18';\n $('#ccDesc').textContent=t(c.desc);\n var sur=$('#ccSur');\n if(c.sur===null){sur.textContent=t('Price on request');sur.className='surcharge'}\n else if(c.sur\u003e0){sur.textContent='+ '+money(c.sur,'MYR')+' '+t('per golfer');sur.className='surcharge plus'}\n else {sur.textContent=t('Included in package price');sur.className='surcharge'}\n $('#ccAdd').textContent = t(c.par ? 'Add to my trip' : 'Ask about this course');\n var d=$('#ccDots'); d.innerHTML='';\n if(c.imgs.length\u003e1) c.imgs.forEach(function(k,i){var b=document.createElement('button');b.setAttribute('aria-label','Photo '+(i+1));b.setAttribute('aria-pressed',i===activeImg);b.onclick=function(){activeImg=i;showCourse()};d.appendChild(b)});\n}\n$('#ccAdd').addEventListener('click',function(){\n var c=COURSES[activeCourse-1];\n if(!c.par){window.open('https://wa.me/66611823596?text='+encodeURIComponent('Hi Taigolf, I would like to know more about '+c.name+' at Mission Hills Haikou.'),'_blank','noopener');return}\n if(state.picks.indexOf(c.id)===-1){ state.picks[0]=c.id; }\n go('calculator');\n});\ndrawPins(); drawTabs(); showCourse();\n\n/* ============ REVIEWS ============ */\nvar rv=0;\nfunction showReview(){var r=REVIEWS[rv];$('#rvText').textContent='\\u201C'+t(r.t)+'\\u201D';$('#rvWho').innerHTML=r.w+'\u003cspan\u003e'+t('Golfer from')+' '+t(r.f)+'\u003c/span\u003e';\n var fc=$('#faces');fc.innerHTML='';var cols=['#6FA37A','#3E7C55','#0E5132','#019934'];REVIEWS.forEach(function(x,i){var b=document.createElement('button');b.type='button';b.setAttribute('aria-label',x.w);b.setAttribute('aria-pressed',i===rv);b.style.background=cols[i%4];b.innerHTML=x.photo?'\u003cimg src=\"'+IMGS[x.photo]+'\" alt=\"\"\u003e':x.w.charAt(0);b.onclick=function(){rv=i;showReview()};fc.appendChild(b)});\n var n=$('#rvNav');n.innerHTML='';REVIEWS.forEach(function(_,i){var b=document.createElement('button');b.setAttribute('aria-label','Review '+(i+1));b.setAttribute('aria-pressed',i===rv);b.onclick=function(){rv=i;showReview()};n.appendChild(b)})}\nshowReview();\n\n/* ============ CALCULATOR ============ */\nvar state={golfers:4,nights:4,rounds:3,room:'twin',spa:true,cur:'MYR',picks:['vintage','lava','blackstone']};\ntry{var saved=JSON.parse(store('tgc-calc')||'null'); if(saved\u0026\u0026saved.picks) state=Object.assign(state,saved)}catch(e){}\nvar PLAYABLE=COURSES.filter(function(c){return c.par});\n$$('[data-preset]').forEach(function(b){b.addEventListener('click',function(){\n state.nights=4;state.rounds=3;state.spa=true;\n state.picks = b.dataset.preset==='A' ? ['vintage','lava','blackstone'] : ['sandbelt','vintage','meadow'];\n go('calculator');\n})});\n$$('[data-step]').forEach(function(b){b.addEventListener('click',function(){\n var k=b.dataset.step,d=+b.dataset.d, lim={golfers:[1,24],nights:[2,10],rounds:[1,10]}[k];\n state[k]=Math.max(lim[0],Math.min(lim[1],state[k]+d));\n if(state.rounds\u003estate.nights) state.rounds=state.nights;\n renderCalc();\n})});\n$$('[data-room]').forEach(function(b){b.addEventListener('click',function(){state.room=b.dataset.room;renderCalc()})});\n$$('[data-cur]').forEach(function(b){b.addEventListener('click',function(){state.cur=b.dataset.cur;renderCalc()})});\n$('#spa').addEventListener('change',function(){state.spa=this.checked;renderCalc()});\n\nfunction calc(){\n var P=PRICING, g=state.golfers, n=state.nights, r=state.rounds;\n var golf = r*P.golfNight;\n var extra = (n-r)*P.extraNight;\n var sur=0; for(var i=0;i\u003cr;i++){var c=byId(state.picks[i]); sur += c\u0026\u0026c.sur ? c.sur : 0}\n var cars=Math.ceil(g/4), transfer = cars*P.transferPerCar*2/g;\n var spa = state.spa ? P.spa : 0;\n var single = state.room==='single' ? n*P.singleSupp : 0;\n var per = golf+extra+sur+transfer+spa+P.service+single;\n return {golf:golf,extra:extra,sur:sur,transfer:transfer,spa:spa,service:P.service,single:single,per:per,total:per*g};\n}\nfunction renderCalc(){\n while(state.picks.length\u003cstate.rounds) state.picks.push(PLAYABLE[state.picks.length % PLAYABLE.length].id);\n $('#oGolfers').textContent=state.golfers; $('#oNights').textContent=state.nights; $('#oRounds').textContent=state.rounds;\n $('#daysLbl').textContent=tp('days',{n:state.nights+1});\n $$('[data-step]').forEach(function(b){var k=b.dataset.step,d=+b.dataset.d;var lim={golfers:[1,24],nights:[2,10],rounds:[1,Math.min(10,state.nights)]}[k];b.disabled = d\u003c0 ? state[k]\u003c=lim[0] : state[k]\u003e=lim[1]});\n $$('[data-room]').forEach(function(b){b.setAttribute('aria-pressed',b.dataset.room===state.room)});\n $$('[data-cur]').forEach(function(b){b.setAttribute('aria-pressed',b.dataset.cur===state.cur)});\n $('#spa').checked=state.spa; $('#spaPrice').textContent='+ '+money(PRICING.spa,state.cur);\n\n var box=$('#rounds'); box.innerHTML='';\n for(var i=0;i\u003cstate.rounds;i++){\n var row=document.createElement('div'); row.className='round';\n row.innerHTML='\u003cdiv class=\"round-h\"\u003e\u003cb\u003e'+tp('round',{n:i+1})+'\u003c/b\u003e\u003cspan\u003e'+tp('day',{n:i+2})+'\u003c/span\u003e\u003c/div\u003e\u003cdiv class=\"chips\" role=\"group\" aria-label=\"'+tp('roundlbl',{n:i+1})+'\"\u003e\u003c/div\u003e';\n var chips=row.querySelector('.chips');\n PLAYABLE.forEach(function(c){(function(idx){\n var b=document.createElement('button'); b.className='chip'; b.type='button';\n b.setAttribute('aria-pressed',state.picks[idx]===c.id);\n b.innerHTML='\u003cimg src=\"'+IMGS[c.imgs.filter(function(k){return k.indexOf('vid_')!==0})[0]]+'\" alt=\"\"\u003e'+t(c.name)+(c.sur?' \u003csmall\u003e+'+money(c.sur,state.cur)+'\u003c/small\u003e':'');\n b.onclick=function(){state.picks[idx]=c.id;renderCalc()};\n chips.appendChild(b);\n })(i)});\n box.appendChild(row);\n }\n\n var r=calc(), cur=state.cur, other=cur==='MYR'?'CNY':'MYR';\n $('#roomLbl').textContent = t(state.room==='twin' ? 'twin share' : 'single room');\n $('#perPerson').textContent=money(r.per,cur);\n $('#altPrice').textContent=t('About')+' '+money(r.per,other)+' \\u00B7 '+t('group total')+' '+money(r.total,cur);\n var L=[[state.rounds\u003e1?tp('golfhotel',{n:state.rounds}):tp('golfhotel1',{}),r.golf]];\n if(r.extra) L.push([tp('extra',{n:state.nights-state.rounds}),r.extra]);\n if(r.sur) L.push([t('Premium course fees'),r.sur]);\n L.push([t('Airport transfers'),r.transfer]);\n if(r.spa) L.push([t('60-minute spa'),r.spa]);\n L.push([t('Planning and 24-hour support'),r.service]);\n if(r.single) L.push([t('Single room'),r.single]);\n $('#lines').innerHTML=L.map(function(l){return '\u003cli\u003e\u003cspan\u003e'+l[0]+'\u003c/span\u003e\u003cspan\u003e'+money(l[1],cur)+'\u003c/span\u003e\u003c/li\u003e'}).join('')+'\u003cli class=\"total\"\u003e\u003cspan\u003e'+t('Per golfer')+'\u003c/span\u003e\u003cspan\u003e'+money(r.per,cur)+'\u003c/span\u003e\u003c/li\u003e';\n var names=state.picks.slice(0,state.rounds).map(function(id){return byId(id).name});\n $('#tripText').innerHTML=tp('trip',{g:state.golfers,s:state.golfers\u003e1?'s':'',d:state.nights+1,n:state.nights,c:names.map(t).join(LANG==='zh'?'、':', ')});\n var msg='Hi Taigolf! I used the China price calculator:\\n- Hotel: Mission Hills Resort Haikou\\n- Golfers: '+state.golfers+'\\n- '+(state.nights+1)+' days / '+state.nights+' nights, '+(state.room==='twin'?'twin share':'single room')+'\\n- Courses: '+names.join(', ')+'\\n- Spa: '+(state.spa?'yes':'no')+'\\n- Estimate: '+money(r.per,'MYR')+' ('+money(r.per,'CNY')+') per golfer\\nPlease send me a quote.';\n $('#sendQuote').href='https://wa.me/66611823596?text='+encodeURIComponent(msg);\n store('tgc-calc',JSON.stringify(state));\n}\n\n\n$$('.track').forEach(function(t){Array.prototype.slice.call(t.children).forEach(function(f){var c=f.cloneNode(true);c.setAttribute('aria-hidden','true');c.querySelector('img').alt='';t.appendChild(c)})});\n(function(u){if(!u)return;Array.prototype.slice.call(u.children).forEach(function(li){var c=li.cloneNode(true);c.setAttribute('aria-hidden','true');u.appendChild(c)})})(document.getElementById('partnerNames'));\n\n/* ============ SCROLL REVEAL ============ */\n(function(){\n var groups=[\n ['.why .display.h2, .why .lede, .photo-stack',''],\n ['.fact',''],\n ['.band-copy',''],['.band-person','rv-up'],\n ['.courses .display.h2, .courses .lede',''],['.map-card, .course-card',''],\n ['.pk-head .display.h2, .pk-head .lede',''],['.pk',''],['.incl',''],\n ['.hotel .display.h2, .hotel .lede, .perks li',''],['.hotel-photos','rv-zoom'],\n ['.travel .display.h2',''],['.tile',''],\n ['.trust .display.h2, .trust .lede',''],['.stat',''],['.reason',''],['.members, .partners',''],\n ['.team .display.h2, .team .lede',''],['.ev','rv'],['.team-photos','rv-zoom'],\n ['.verify .display.h2, .verify .lede',''],['.vcard','rv-zoom'],\n ['.real .display.h2, .real .lede',''],\n ['.reviews .faces, .reviews blockquote',''],\n ['.faq .display.h2, .faq .lede, .faq details',''],['.chat',''],\n ['.cta .display, .cta p, .cta .row',''],['.cheer','rv-up'],\n ['.step',''],['.summary','rv-zoom']\n ];\n var els=[];\n groups.forEach(function(g){ $$(g[0]).forEach(function(el,i){ el.classList.add('rv'); if(g[1]) el.classList.add(g[1]); el.style.transitionDelay=Math.min(i,5)*80+'ms'; els.push(el) }) });\n function show(el){ el.classList.add('in'); if(el.classList.contains('chat')){ el.classList.add('play'); setTimeout(function(){el.classList.add('done')},2300) } if(el.classList.contains('fact')) countUp(el) }\n function countUp(el){ var b=el.querySelector('b'); if(!b||b.dataset.done) return; var txt=b.textContent.trim(); var n=parseInt(txt.replace(/,/g,''),10); if(!n||n\u003e=2000\u0026\u0026n\u003c2100||reduced) return; b.dataset.done=1; var t0=null; function step(t){ if(!t0)t0=t; var k=Math.min(1,(t-t0)/1100); var v=Math.round(n*(1-Math.pow(1-k,3))); b.textContent=v.toLocaleString('en-US'); if(k\u003c1) requestAnimationFrame(step) } requestAnimationFrame(step) }\n if(reduced || !('IntersectionObserver' in window)){ els.forEach(show); return }\n var io=new IntersectionObserver(function(ents){ ents.forEach(function(e){ if(e.isIntersecting){ show(e.target); io.unobserve(e.target) } }) },{threshold:0.12,rootMargin:'0px 0px -8% 0px'});\n els.forEach(function(el){ io.observe(el) });\n})();\n\n\n/* events strip arrows */\n(function(){var row=$('#evRow');if(!row)return;var btns=$$('.ev-btn');\nfunction upd(){btns[0].disabled=row.scrollLeft\u003c8;btns[1].disabled=row.scrollLeft+row.clientWidth\u003e=row.scrollWidth-8}\nbtns.forEach(function(b){b.addEventListener('click',function(){var card=row.querySelector('.ev');var step=card?card.getBoundingClientRect().width+16:320;row.scrollBy({left:+b.dataset.dir*step,behavior:reduced?'auto':'smooth'})})});\nrow.addEventListener('scroll',upd,{passive:true});window.addEventListener('resize',upd);upd();})();\n\nif(reduced){$$('animateMotion').forEach(function(a){a.remove()})}\nroute(); onScroll();\nsetLang(LANG);\n\u003c/script\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n","link":""}