{"id":126,"date":"2025-04-21T00:40:49","date_gmt":"2025-04-21T00:40:49","guid":{"rendered":"http:\/\/finetourkorea.com\/about\/"},"modified":"2026-02-02T00:37:59","modified_gmt":"2026-02-02T00:37:59","slug":"about","status":"publish","type":"page","link":"https:\/\/finetourkorea.com\/zh\/about\/","title":{"rendered":"\u516c\u53f8\u7b80\u4ecb"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"126\" class=\"elementor elementor-126\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cbcf082 e-con-full e-flex elementor-invisible e-con e-parent\" data-id=\"cbcf082\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;fadeIn&quot;,&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-70a672b elementor-widget__width-inherit elementor-widget-tablet__width-initial elementor-widget elementor-widget-html\" data-id=\"70a672b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n\r\n<head>\r\n    <meta charset=\"utf-8\" \/>\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\r\n    <title>Company Intro \u2014 Scroll Interaction<\/title>\r\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Lexend:wght@300;400;500;700&display=swap\" rel=\"stylesheet\">\r\n    <style>\r\n        :root {\r\n            --brand: #e63e63;\r\n            --text-1: #000;\r\n            --text-2: #333;\r\n            --text-3: #888;\r\n            --line-1: #ccc;\r\n            --surface-1: #fff;\r\n            --surface-2: #f1f1f1;\r\n            --brand-600: color-mix(in srgb, var(--brand) 88%, #000 12%);\r\n            --brand-700: color-mix(in srgb, var(--brand) 78%, #000 22%);\r\n            --brand-050: color-mix(in srgb, var(--brand) 8%, #fff 92%);\r\n            --focus-ring: color-mix(in srgb, var(--brand) 30%, #fff 70%);\r\n            --ease: cubic-bezier(.22, 1, .36, 1);\r\n            --maxw: 1200px;\r\n            --hdr-h: 0px;\r\n            --map-tx: 80px;\r\n            --map-ty: -150px;\r\n            --map-zoom: 2.2;\r\n        }\r\n\r\n        * {\r\n            margin: 0;\r\n            padding: 0;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        html {\r\n            scroll-snap-type: y proximity;\r\n            scroll-behavior: smooth;\r\n            overflow-y: scroll;\r\n            overflow-x: hidden;\r\n            height: 100%;\r\n        }\r\n\r\n        body {\r\n            margin: 0;\r\n            font-family: 'Lexend', sans-serif;\r\n            overflow-x: hidden;\r\n            height: 100%;\r\n        }\r\n\r\n        img {\r\n            display: block;\r\n        }\r\n\r\n        .section {\r\n            min-height: 100vh;\r\n            height: 100vh;\r\n            display: flex;\r\n            flex-direction: column;\r\n            justify-content: center;\r\n            padding: 60px 20px;\r\n            box-sizing: border-box;\r\n            scroll-snap-align: center;\r\n            background: #fff;\r\n            position: relative;\r\n        }\r\n\r\n        .section.map-section {\r\n            min-height: 100vh;\r\n            height: 100vh;\r\n        }\r\n\r\n        .section.hero {\r\n            scroll-snap-align: center;\r\n            padding-top: 10px;\r\n        }\r\n\r\n        .section.reviews {\r\n            height: auto;\r\n            min-height: 100vh;\r\n        }\r\n\r\n        .section-head {\r\n            width: min(var(--maxw), 92vw);\r\n            margin: 0 auto 40px;\r\n            text-align: center;\r\n        }\r\n\r\n        .section-head.left {\r\n            text-align: left;\r\n        }\r\n\r\n        .section-head .promo-title {\r\n            margin: 0;\r\n        }\r\n\r\n        .section-head .promo-sub {\r\n            margin: .35rem 0 0;\r\n        }\r\n\r\n        .hero-inner,\r\n        .insights-inner,\r\n        .reviews-inner,\r\n        .cta-card {\r\n            width: min(var(--maxw), 92vw);\r\n            margin-inline: auto;\r\n            display: block;\r\n        }\r\n\r\n        .btn {\r\n            display: inline-flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: .5rem;\r\n            padding: .9rem 1.2rem;\r\n            border-radius: 999px;\r\n            border: 1px solid transparent;\r\n            font-weight: 700;\r\n            background: #888;\r\n            color: #fff;\r\n            text-decoration: none;\r\n            transition: all .2s var(--ease);\r\n        }\r\n\r\n        .btn:hover {\r\n            background: #000;\r\n            color: #e63e62;\r\n            transform: translateY(-1px);\r\n        }\r\n\r\n        .btn.alt {\r\n            background: #fff;\r\n            color: var(--text-1);\r\n            border-color: var(--line-1);\r\n        }\r\n\r\n        .btn.alt:hover {\r\n            border-color: var(--brand);\r\n            color: var(--brand);\r\n        }\r\n\r\n        .hero {\r\n            text-align: center;\r\n        }\r\n\r\n        .logo {\r\n            width: min(220px, 42vw);\r\n            height: auto;\r\n            margin: 6px auto 16px;\r\n            display: block;\r\n            transform-style: preserve-3d;\r\n            will-change: transform, filter;\r\n            opacity: 1 !important;\r\n            visibility: visible !important;\r\n        }\r\n\r\n        .logoFx {\r\n            animation: logo-bounce-in 1.2s var(--ease) .1s forwards;\r\n        }\r\n\r\n        @keyframes logo-bounce-in {\r\n            0% {\r\n                transform: scale(0.85);\r\n                opacity: 0;\r\n            }\r\n\r\n            60% {\r\n                transform: scale(1.05);\r\n                opacity: 1;\r\n            }\r\n\r\n            100% {\r\n                transform: scale(1);\r\n            }\r\n        }\r\n\r\n        @media (prefers-reduced-motion:reduce) {\r\n            .logoFx {\r\n                animation: none;\r\n            }\r\n        }\r\n\r\n        .kicker {\r\n            color: var(--brand);\r\n            font-weight: 700;\r\n            letter-spacing: .02em;\r\n            margin-top: 20px;\r\n            margin-bottom: 10px;\r\n        }\r\n\r\n        .title {\r\n            font-size: clamp(1.8rem, 5vw, 3rem);\r\n            line-height: 1.1;\r\n            margin-top: 0;\r\n            font-weight: 700;\r\n        }\r\n\r\n        .lead {\r\n            max-width: 880px;\r\n            margin-top: 30px;\r\n            color: var(--text-2);\r\n            line-height: 2;\r\n            margin-left: auto;\r\n            margin-right: auto;\r\n            text-align: center;\r\n        }\r\n\r\n        .hero-cta {\r\n            display: flex;\r\n            gap: 1.5rem;\r\n            margin-top: 40px;\r\n            justify-content: center;\r\n            flex-wrap: wrap;\r\n        }\r\n\r\n        .map-section {\r\n            background: #fff;\r\n        }\r\n\r\n        .section.map-section {\r\n            padding-block: clamp(4px, 1.6vw, 12px);\r\n        }\r\n\r\n        .map-promo {\r\n            width: min(var(--maxw), 80vw);\r\n            margin: 2px auto 6px;\r\n            text-align: center;\r\n        }\r\n\r\n        .promo-title {\r\n            font-weight: 700;\r\n            letter-spacing: -.01em;\r\n            line-height: 1.12;\r\n            font-size: clamp(1.8rem, 4.8vw, 2.8rem);\r\n            color: var(--text-1);\r\n        }\r\n\r\n        .promo-sub {\r\n            margin-top: .45rem;\r\n            color: #888;\r\n            font-size: clamp(1rem, 2.2vw, 1.2rem);\r\n        }\r\n\r\n        \/* \uc9c0\ub3c4 *\/\r\n\r\n        .map-wrap {\r\n            width: 100%;\r\n            max-width: 1200px;\r\n            height: 600px;\r\n            margin: 40px auto;\r\n            background: #f8f8f8;\r\n            border: 1px solid var(--line-1);\r\n            border-radius: 20px;\r\n            overflow: hidden;\r\n            position: relative;\r\n            display: flex;\r\n            justify-content: center;\r\n            align-items: center;\r\n        }\r\n\r\n        .map-stage {\r\n            width: 100%;\r\n            height: 100%;\r\n            position: relative;\r\n            overflow: hidden;\r\n            transform-origin: 50% 50%;\r\n            will-change: transform;\r\n            transform: translate(var(--map-tx), var(--map-ty)) scale(var(--map-zoom));\r\n        }\r\n\r\n        .map-stage picture,\r\n        .map-stage .map-img,\r\n        .map-stage .routes {\r\n            position: absolute;\r\n            inset: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n        }\r\n\r\n        .map-stage picture {\r\n            display: block;\r\n        }\r\n\r\n        .map-stage .map-img {\r\n            object-fit: contain;\r\n            z-index: 1;\r\n        }\r\n\r\n        .map-stage .routes {\r\n            z-index: 2;\r\n            pointer-events: none;\r\n            transform: none !important;\r\n        }\r\n\r\n        .route {\r\n            stroke-width: var(--route-w, 1px);\r\n            fill: none;\r\n            stroke-linecap: round;\r\n            stroke-linejoin: round;\r\n            stroke-dasharray: var(--len);\r\n            stroke-dashoffset: var(--len);\r\n            opacity: 0;\r\n            transition: stroke-dashoffset 1.6s var(--ease), opacity .6s var(--ease);\r\n        }\r\n\r\n        .map-wrap.is-visible .route {\r\n            stroke-dashoffset: 0;\r\n            opacity: 1;\r\n        }\r\n\r\n        .route.fade {\r\n            opacity: 0;\r\n        }\r\n\r\n        .map-wrap.is-visible .route.fade {\r\n            opacity: 1;\r\n            transition-delay: .15s;\r\n        }\r\n\r\n        .pin {\r\n            fill: var(--brand);\r\n        }\r\n\r\n        .pin-dot {\r\n            fill: #fff;\r\n        }\r\n\r\n        .pulse {\r\n            fill: var(--brand);\r\n            opacity: .18;\r\n        }\r\n\r\n        .map-wrap.is-visible .pulse {\r\n            animation: hub-pulse 1.8s ease-out .4s 2;\r\n        }\r\n\r\n        @keyframes hub-pulse {\r\n            0% {\r\n                r: 0;\r\n                opacity: .28\r\n            }\r\n\r\n            80% {\r\n                r: 34;\r\n                opacity: 0\r\n            }\r\n\r\n            100% {\r\n                r: 34;\r\n                opacity: 0\r\n            }\r\n        }\r\n\r\n        .note {\r\n            position: absolute;\r\n            right: 14px;\r\n            bottom: 10px;\r\n            background: rgba(255, 255, 255, .9);\r\n            border: 1px solid var(--line-1);\r\n            padding: .35rem .6rem;\r\n            border-radius: 999px;\r\n            font-size: .8rem;\r\n            color: var(--text-3);\r\n            backdrop-filter: blur(6px);\r\n        }\r\n\r\n        .insights-inner {\r\n            width: min(var(--maxw), 92vw);\r\n            display: grid;\r\n            gap: clamp(18px, 3vw, 28px);\r\n        }\r\n\r\n        .mix-row {\r\n            display: grid;\r\n            gap: clamp(16px, 2.6vw, 24px);\r\n            grid-template-columns: repeat(3, 1fr);\r\n        }\r\n\r\n        .insights-inner .mix-card {\r\n            max-width: none;\r\n            width: 100%;\r\n        }\r\n\r\n        .mix-card {\r\n            flex: 1 1 250px;\r\n            min-height: unset;\r\n            height: auto;\r\n            background: #fff;\r\n            border: 1px solid var(--line-1);\r\n            border-radius: 16px;\r\n            padding: 20px;\r\n            justify-items: center;\r\n            display: flex;\r\n            flex-direction: column;\r\n            align-items: center;\r\n            text-align: center;\r\n            gap: 6px;\r\n            box-shadow: 0 8px 20px rgba(0, 0, 0, .05);\r\n\r\n        }\r\n\r\n        .mix-card h4 {\r\n            margin-top: 12px;\r\n            margin-bottom: 6px;\r\n            font-size: 1.4rem;\r\n            font-weight: 500;\r\n            line-height: 1.4;\r\n        }\r\n\r\n        .mix-card p {\r\n            margin: 0;\r\n            font-size: 0.95rem;\r\n            line-height: 1.5;\r\n            color: #888;\r\n        }\r\n\r\n        .dial {\r\n            --p: 0;\r\n            --size: 150px;\r\n            --ring-thickness: 1px;\r\n            --icon: none;\r\n            width: var(--size);\r\n            height: var(--size);\r\n            border-radius: 50%;\r\n            position: relative;\r\n            display: grid;\r\n            place-items: center;\r\n        }\r\n\r\n        .dial::before {\r\n            content: \"\";\r\n            position: absolute;\r\n            inset: 0;\r\n            border-radius: 50%;\r\n            background: conic-gradient(var(--brand) calc(var(--p)*1%), var(--brand) 0);\r\n            -webkit-mask: radial-gradient(circle,\r\n                    transparent calc(50% - var(--ring-thickness)),\r\n                    #000 calc(50% - var(--ring-thickness) + var(--ring-thickness)));\r\n            mask: radial-gradient(circle,\r\n                    transparent calc(50% - var(--ring-thickness)),\r\n                    #000 calc(50% - var(--ring-thickness) + var(--ring-thickness)));\r\n            transition: background .2s linear;\r\n        }\r\n\r\n        .dial::after {\r\n            content: \"\";\r\n            width: 58%;\r\n            height: 58%;\r\n            background-image: var(--icon);\r\n            background-size: contain;\r\n            background-repeat: no-repeat;\r\n            background-position: center;\r\n            border-radius: 14%;\r\n            transform: scale(1);\r\n        }\r\n\r\n        .dial.pop {\r\n            animation: dial-bounce .5s var(--ease);\r\n        }\r\n\r\n        .dial.pop::after {\r\n            animation: icon-pop .55s var(--ease);\r\n        }\r\n\r\n        .dial.pop::before {\r\n            box-shadow: 0 0 0 0 rgba(230, 62, 99, .35);\r\n            animation: halo .7s ease-out;\r\n        }\r\n\r\n        @keyframes dial-bounce {\r\n            0% {\r\n                transform: scale(1)\r\n            }\r\n\r\n            45% {\r\n                transform: scale(1.08)\r\n            }\r\n\r\n            70% {\r\n                transform: scale(.98)\r\n            }\r\n\r\n            100% {\r\n                transform: scale(1)\r\n            }\r\n        }\r\n\r\n        @keyframes icon-pop {\r\n            0% {\r\n                transform: scale(.9)\r\n            }\r\n\r\n            60% {\r\n                transform: scale(1.16)\r\n            }\r\n\r\n            100% {\r\n                transform: scale(1)\r\n            }\r\n        }\r\n\r\n        @keyframes halo {\r\n            0% {\r\n                box-shadow: 0 0 0 0 rgba(230, 62, 99, .35)\r\n            }\r\n\r\n            100% {\r\n                box-shadow: 0 0 0 22px rgba(230, 62, 99, 0)\r\n            }\r\n        }\r\n\r\n        .kpi-row {\r\n            display: grid;\r\n            gap: clamp(16px, 2.6vw, 24px);\r\n            grid-template-columns: repeat(3, 1fr);\r\n        }\r\n\r\n        .kpi {\r\n            background: #e63e62;\r\n            border: 1px solid var(--line-1);\r\n            border-radius: 16px;\r\n            padding: 24px 20px;\r\n            text-align: center;\r\n            box-shadow: 0 8px 20px rgba(0, 0, 0, .05);\r\n        }\r\n\r\n        .kpi-num {\r\n            font-size: clamp(1.8rem, 5.4vw, 2.6rem);\r\n            font-weight: 800;\r\n            color: #fff;\r\n            line-height: 1;\r\n            margin-bottom: .25rem;\r\n        }\r\n\r\n        .kpi-label {\r\n            color: #fff;\r\n        }\r\n\r\n        .insight-footnote {\r\n            color: var(--text-3);\r\n            font-size: .9rem;\r\n            margin: .2rem auto 0;\r\n            text-align: center;\r\n        }\r\n\r\n        .section.reviews {\r\n            max-width: 1200px;\r\n            position: relative;\r\n            min-height: 100vh;\r\n            height: auto;\r\n            display: flex;\r\n            flex-direction: column;\r\n            justify-content: center;\r\n            margin: 0 auto;\r\n            overflow: hidden;\r\n            padding: 40px 20px;\r\n            text-align: center;\r\n        }\r\n\r\n        .reviews .tracks {\r\n            width: 100%;\r\n            max-width: 1200px;\r\n            height: auto;\r\n            margin: 0 auto;\r\n            position: relative;\r\n            display: flex;\r\n            flex-direction: column;\r\n            overflow: hidden;\r\n            gap: 10px;\r\n        }\r\n\r\n        .reviews .track {\r\n            position: relative;\r\n            overflow: hidden;\r\n            width: 100%;\r\n            max-width: 1200px;\r\n            height: 250px;\r\n            display: block;\r\n            -webkit-mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%);\r\n            mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%);\r\n        }\r\n\r\n        .reviews .ticker {\r\n            position: absolute;\r\n            left: 0;\r\n            top: 0;\r\n            height: 100%;\r\n            display: flex;\r\n            will-change: transform;\r\n        }\r\n\r\n        .reviews .track-inner {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 10px;\r\n            height: 100%;\r\n        }\r\n\r\n        .reviews .track-inner img {\r\n            height: 100%;\r\n            width: auto;\r\n            min-width: 280px;\r\n            max-width: 400px;\r\n            object-fit: cover;\r\n            flex-shrink: 0;\r\n            border-radius: 10px;\r\n            margin-right: 12px;\r\n            filter: grayscale(100%);\r\n            transition: filter 0.4s ease, transform 0.4s ease;\r\n            aspect-ratio: auto 4 \/ 3;\r\n        }\r\n\r\n        .track-inner img:hover {\r\n            filter: grayscale(0%);\r\n            transform: scale(1.1);\r\n        }\r\n\r\n        .track-inner img:nth-child(3n) {\r\n            min-width: 220px;\r\n        }\r\n\r\n        .track-inner img:nth-child(3n+1) {\r\n            min-width: 260px;\r\n        }\r\n\r\n        .track-inner img:nth-child(3n+2) {\r\n            min-width: 300px;\r\n        }\r\n\r\n        .track-inner img:nth-child(4n) {\r\n            aspect-ratio: 3 \/ 4;\r\n        }\r\n\r\n        .track-inner img:nth-child(5n) {\r\n            aspect-ratio: 16 \/ 9;\r\n        }\r\n\r\n        .reviews .track1 {\r\n            --speed: 40s;\r\n        }\r\n\r\n        .reviews .track2 {\r\n            --speed: 40s;\r\n        }\r\n\r\n        .reviews .track3 {\r\n            --speed: 40s;\r\n        }\r\n\r\n        .marquee-right .ticker {\r\n            animation: marquee-right var(--speed, 40s) linear infinite;\r\n        }\r\n\r\n        .marquee-left .ticker {\r\n            animation: marquee-left var(--speed, 40s) linear infinite;\r\n        }\r\n\r\n        @keyframes marquee-right {\r\n            from {\r\n                transform: translateX(0);\r\n            }\r\n\r\n            to {\r\n                transform: translateX(-50%);\r\n            }\r\n        }\r\n\r\n        @keyframes marquee-left {\r\n            from {\r\n                transform: translateX(-50%);\r\n            }\r\n\r\n            to {\r\n                transform: translateX(0);\r\n            }\r\n        }\r\n\r\n        .reviews,\r\n        .reviews .tracks,\r\n        .reviews .track,\r\n        .reviews .ticker {\r\n            overflow-x: hidden;\r\n            contain: layout paint;\r\n        }\r\n\r\n        .cta {\r\n            background: transparent;\r\n            color: var(--text-1);\r\n        }\r\n\r\n        .cta-card {\r\n            width: min(var(--maxw), 92vw);\r\n            background: #e63e62;\r\n            color: var(--text-1);\r\n            text-align: center;\r\n            padding: clamp(24px, 5vw, 48px);\r\n            border: 1px solid var(--line-1);\r\n            border-radius: 16px;\r\n            box-shadow: 0 10px 30px rgba(0, 0, 0, .06);\r\n        }\r\n\r\n        .cta-card h2 {\r\n            font-size: clamp(1.4rem, 3.4vw, 2.2rem);\r\n            color: #fff;\r\n        }\r\n\r\n        .cta-card p {\r\n            color: var(--text-2);\r\n            margin-bottom: 1.1rem;\r\n        }\r\n\r\n        .cta .hero-cta {\r\n            justify-content: center;\r\n        }\r\n\r\n        .cta .btn {\r\n            background: #888;\r\n            color: #fff;\r\n            border-color: #888\r\n        }\r\n\r\n        .cta .btn:hover {\r\n            background: #000;\r\n            border-color: #000;\r\n            color: #e63e62;\r\n        }\r\n\r\n        .cta .btn.alt {\r\n            background: #fff;\r\n            color: #000;\r\n            border-color: #fff;\r\n        }\r\n\r\n        .cta .btn.alt:hover {\r\n            color: #e63e62;\r\n        }\r\n\r\n        input,\r\n        select,\r\n        textarea {\r\n            background: #fff;\r\n            border: 1px solid var(--line-1);\r\n            color: var(--text-2);\r\n            border-radius: 10px;\r\n            padding: .8rem 1rem;\r\n        }\r\n\r\n        input:focus,\r\n        select:focus,\r\n        textarea:focus {\r\n            outline: 0;\r\n            border-color: var(--brand);\r\n            box-shadow: 0 0 0 4px var(--focus-ring);\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            :root {\r\n                --map-zoom: 1.8;\r\n                --map-tx: 0px;\r\n                --map-ty: -80px;\r\n            }\r\n\r\n            .section {\r\n                min-height: 100vh;\r\n                height: auto;\r\n                scroll-snap-align: center;\r\n            }\r\n\r\n            .section.cta {\r\n                min-height: 100vh;\r\n                padding-block: 60px;\r\n            }\r\n\r\n            .cta-card {\r\n                padding: clamp(24px, 5vw, 48px);\r\n            }\r\n\r\n            .section.hero {\r\n                padding-bottom: 60px;\r\n            }\r\n\r\n            .section.map-section {\r\n                padding-top: 12px;\r\n                min-height: 100vh;\r\n            }\r\n\r\n            .mix-row {\r\n                display: flex;\r\n                flex-direction: column;\r\n                gap: 16px;\r\n            }\r\n\r\n            .mix-card {\r\n                display: grid !important;\r\n                grid-template-columns: 80px 1fr;\r\n                align-items: center;\r\n                padding: 14px 16px;\r\n                gap: 4px 10px;\r\n                flex: 0 1 auto !important;\r\n                height: auto !important;\r\n                min-height: auto !important;\r\n            }\r\n\r\n            .mix-card .dial {\r\n                grid-column: 1;\r\n                grid-row: 1 \/ span 2;\r\n                width: 70px;\r\n                height: 70px;\r\n                place-self: center;\r\n            }\r\n\r\n            .mix-card .dial::before {\r\n                border-radius: 50% !important;\r\n            }\r\n\r\n            .mix-card h4 {\r\n                grid-column: 2;\r\n                margin: 0;\r\n                line-height: 1.2;\r\n                justify-self: center;\r\n            }\r\n\r\n            .mix-card p {\r\n                grid-column: 2;\r\n                margin: 2px 0 0;\r\n                line-height: 1.3;\r\n                justify-self: center;\r\n            }\r\n\r\n            .mix-card {\r\n                align-items: center !important;\r\n            }\r\n\r\n            .kpi-row h2,\r\n            .mix-row h2 {\r\n                font-size: 1.4rem;\r\n            }\r\n\r\n            .kpi-row p,\r\n            .mix-row p {\r\n                font-size: 0.85rem;\r\n                margin: 0;\r\n                color: #555;\r\n            }\r\n\r\n            .kpi-num {\r\n                font-size: 1.8rem;\r\n            }\r\n\r\n            .kpi-row {\r\n                display: grid;\r\n                grid-template-columns: repeat(2, 1fr);\r\n                gap: 12px;\r\n                margin-top: 12px;\r\n            }\r\n\r\n            .kpi {\r\n                aspect-ratio: 1 \/ 1;\r\n                border-radius: 18px;\r\n                background: #e63e63;\r\n                color: #fff;\r\n                display: flex;\r\n                flex-direction: column;\r\n                justify-content: center;\r\n                align-items: center;\r\n            }\r\n\r\n            .kpi-num {\r\n                font-size: 1.8rem;\r\n                font-weight: 700;\r\n                line-height: 1.2;\r\n            }\r\n\r\n            .kpi-label {\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            .kpi-row::after {\r\n                content: \"* 3-year rolling average.\\A Audited quarterly.\";\r\n                white-space: pre-line;\r\n                font-size: 12px;\r\n                color: #555;\r\n                display: flex;\r\n                align-items: center;\r\n                justify-content: center;\r\n                border: 0;\r\n            }\r\n\r\n            .insight-footnote {\r\n                display: none;\r\n            }\r\n\r\n            .map-wrap {\r\n                width: 100%;\r\n                height: auto;\r\n                aspect-ratio: 4 \/ 3;\r\n                margin-top: 10px;\r\n            }\r\n\r\n            .map-stage {\r\n                transform: translate(0, var(--map-ty)) scale(var(--map-zoom));\r\n                max-width: 100%;\r\n            }\r\n\r\n            .map-img {\r\n                width: 100%;\r\n                height: auto;\r\n                object-fit: contain;\r\n            }\r\n\r\n            .route {\r\n                stroke-width: 4px !important;\r\n            }\r\n\r\n            .pin {\r\n                r: 3;\r\n            }\r\n\r\n            .pin-dot {\r\n                r: 2;\r\n            }\r\n\r\n            .section.reviews {\r\n                min-height: 100vh;\r\n                height: auto;\r\n            }\r\n\r\n            .reviews .tracks {\r\n                display: grid;\r\n                grid-template-columns: 1fr;\r\n                gap: 12px;\r\n                overflow: visible;\r\n            }\r\n\r\n            .reviews .track {\r\n                height: 180px;\r\n                min-height: 180px;\r\n                overflow: hidden;\r\n                white-space: nowrap;\r\n                -webkit-mask-image: none;\r\n                mask-image: none;\r\n                --speed: 60s;\r\n            }\r\n\r\n            .reviews .track-inner {\r\n                display: flex;\r\n                gap: 8px;\r\n                position: relative;\r\n            }\r\n\r\n            .reviews .track-inner img {\r\n                height: 100%;\r\n                width: auto;\r\n                min-width: 120px;\r\n                max-width: 240px;\r\n                object-fit: cover;\r\n                flex-shrink: 0;\r\n                border-radius: 8px;\r\n                aspect-ratio: auto 4\/3;\r\n            }\r\n\r\n            .marquee-right .track-inner,\r\n            .marquee-left .track-inner {\r\n                animation: none !important;\r\n            }\r\n\r\n            .reviews .track-inner img:nth-child(3n),\r\n            .reviews .track-inner img:nth-child(3n+1),\r\n            .reviews .track-inner img:nth-child(3n+2) {\r\n                min-width: 0 !important;\r\n            }\r\n        }\r\n\r\n        @supports not (color: color-mix(in srgb, red 50%, white 50%)) {\r\n            :root {\r\n                --brand-600: #cc3858;\r\n                --brand-700: #b2314e;\r\n                --brand-050: #fde8ee;\r\n                --focus-ring: rgba(230, 62, 99, .28);\r\n            }\r\n        }\r\n    <\/style>\r\n<\/head>\r\n\r\n<body>\r\n    <section class=\"section hero\" id=\"intro\">\r\n        <div class=\"hero-inner\">\r\n            <img decoding=\"async\" class=\"logo logoFx js-logo\" loading=\"eager\" src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/06\/cropped-%EB%8C%80%EC%A7%80-1.png\" alt=\"Company logo\" \/>\r\n            <div class=\"kicker\">INBOUND \u2022 GROUP TOUR \u2022 MICE \u2022 FIT<\/div>\r\n            <h1 class=\"title\">Fine Tour Korea<\/h1>\r\n            <p class=\"lead\">Since 1999, Fine Tour Korea has been a leading inbound travel agency, specializing in Greater China and Southeast Asia. <\/p>\r\n            <div class=\"hero-cta\">\r\n                <a class=\"btn\" href=\"https:\/\/drive.google.com\/file\/d\/1c3e4uLjF8yNdq---oNHIrPn9DYpLjzsA\/view?usp=drive_link\" target=\"_blank\" rel=\"noopener\">\r\n                    Company Profile (EN)\r\n                <\/a>\r\n                <a class=\"btn\" href=\"https:\/\/drive.google.com\/file\/d\/1Oaim_lXR2jjknFN-ZcgcXgxpJ1YcM10x\/view?usp=drive_link\" target=\"_blank\" rel=\"noopener\">\r\n                    \u516c\u53f8\u7b80\u4ecb (ZH)\r\n                <\/a>\r\n                <a href=\"#contact\" class=\"btn alt\">Request a proposal<\/a>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- Map -->\r\n    <section class=\"section map-section\" id=\"map\">\r\n        <div class=\"map-promo\" aria-label=\"Regional coverage statement\">\r\n            <h2 class=\"promo-title\">Partnerships with Major Clients<\/h2>\r\n            <p class=\"promo-sub\">We have built strong partnerships with major clients in China, the Philippines, Indonesia, and Taiwan, operating local offices and staff for swift, reliable service.<\/p>\r\n        <\/div>\r\n\r\n        <div class=\"map-wrap\" data-observe>\r\n            <div class=\"map-stage\">\r\n                <picture>\r\n                    <source srcset=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/08\/map-asia.webp\" type=\"image\/webp\">\r\n                    <img fetchpriority=\"high\" class=\"map-img js-map skip-lazy no-lazyload\" src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/08\/map-asia.webp\" alt=\"Asia map\" width=\"1600\" height=\"900\" loading=\"eager\" fetchpriority=\"high\" decoding=\"async\" data-skip-lazy=\"true\">\r\n                <\/picture>\r\n\r\n                <svg class=\"routes\" viewBox=\"0 0 1600 900\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" aria-label=\"Connections from Korea to regional hubs\">\r\n                    <defs>\r\n                        <g id=\"defsRoutes\"><\/g>\r\n                        <radialGradient id=\"krGlow\" cx=\"50%\" cy=\"50%\" r=\"50%\">\r\n                            <stop offset=\"0%\" stop-color=\"#e63e63\" stop-opacity=\".28\" \/>\r\n                            <stop offset=\"100%\" stop-color=\"#e63e63\" stop-opacity=\"0\" \/>\r\n                        <\/radialGradient>\r\n                    <\/defs>\r\n                    <g id=\"pins\"><\/g>\r\n                    <g id=\"lines\"><\/g>\r\n                    <circle id=\"kr-highlight\" cx=\"0\" cy=\"0\" r=\"88\" fill=\"url(#krGlow)\" pointer-events=\"none\" \/>\r\n                <\/svg>\r\n            <\/div>\r\n\r\n            <div class=\"note\">Click \/ Tap the map to re-draw routes<\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- Insights -->\r\n    <section class=\"section insights\" id=\"insight\">\r\n        <div class=\"section-head\">\r\n            <h2 class=\"promo-title\">Our expertise covers<\/h2>\r\n            <p class=\"promo-sub\">Group Tours, MICE, and FIT programs, all tailored to meet diverse client needs.<\/p>\r\n        <\/div>\r\n        <div class=\"insights-inner\">\r\n            <div class=\"mix-row\">\r\n                <article class=\"mix-card\">\r\n                    <div class=\"dial\" data-target=\"100\" style=\"--icon:url('https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/08\/ic1.webp');\"><\/div>\r\n                    <h4>Group Tour<\/h4>\r\n                    <p>Tailored Group Itineraries<\/p>\r\n                <\/article>\r\n                <article class=\"mix-card\">\r\n                    <div class=\"dial\" data-target=\"100\" style=\"--icon:url('https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/08\/ic2.webp');\"><\/div>\r\n                    <h4>MICE<\/h4>\r\n                    <p>Business Events<\/p>\r\n                <\/article>\r\n                <article class=\"mix-card\">\r\n                    <div class=\"dial\" data-target=\"100\" style=\"--icon:url('https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/08\/ic3.webp');\"><\/div>\r\n                    <h4>FIT \/ VIP<\/h4>\r\n                    <p>Private & Purpose-built Travel<\/p>\r\n                <\/article>\r\n            <\/div>\r\n\r\n            <div class=\"kpi-row\">\r\n                <div class=\"kpi\">\r\n                    <div class=\"kpi-num\" data-count=\"588\">0<\/div>\r\n                    <div class=\"kpi-label\">Groups handled<\/div>\r\n                <\/div>\r\n                <div class=\"kpi\">\r\n                    <div class=\"kpi-num\" data-count=\"16681\">0<\/div>\r\n                    <div class=\"kpi-label\">Total participants<\/div>\r\n                <\/div>\r\n                <div class=\"kpi\">\r\n                    <div class=\"kpi-num\" data-count=\"3.76\" data-unit=\"$M\">0<\/div>\r\n                    <div class=\"kpi-label\">Revenue (approx.)<\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <p class=\"insight-footnote\">* Key achievements during the two years prior to COVID-19. <\/p>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <section class=\"section reviews\" id=\"reviews\">\r\n        <div class=\"section-head\">\r\n            <h2 class=\"promo-title\">Your inbound partner<\/h2>\r\n            <p class=\"promo-sub\">\r\n                With an extensive network, deep market knowledge, and a commitment to excellence,\r\n                we guarantee efficient communication and fast execution.\r\n            <\/p>\r\n        <\/div>\r\n\r\n        <div class=\"tracks\">\r\n            <div class=\"track track1\">\r\n                <div class=\"track-inner\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/08\/b10.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/08\/p16-Edit-scaled.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/08\/p12-Edit.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/09\/rp1.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/09\/rp9.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/09\/rp6.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/09\/rp10-scaled.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"track track2\">\r\n                <div class=\"track-inner\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/08\/p4-Edit-scaled.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/08\/\uc81c\ubaa9-\uc5c6\uc74c-3.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/08\/p5-Edit.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/09\/rp2.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/09\/rp3.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/09\/rp7.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/09\/rp11-scaled.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"track track3\">\r\n                <div class=\"track-inner\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/08\/p7-Edit-scaled.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/08\/\uc81c\ubaa9-\uc5c6\uc74c-2.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/08\/p8-Edit.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/09\/rp4.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/09\/rp5.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                    <img src=\"https:\/\/finetourkorea.com\/wp-content\/uploads\/2025\/09\/rp8.webp\" loading=\"lazy\" decoding=\"async\" alt=\"\">\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <section class=\"section cta\" id=\"contact\">\r\n        <div class=\"cta-card\">\r\n            <h2>Contact Us<\/h2>\r\n            <p>Responding to every request within 24 hours.<\/p>\r\n            <div class=\"hero-cta\">\r\n                <a class=\"btn\" href=\"mailto:hello@example.com?subject=Project%20Inquiry\">Email us<\/a>\r\n                <a class=\"btn alt\" href=\"#intro\">Back to top<\/a>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <script>\r\n        (() => {\r\n            'use strict';\r\n\r\n            const $ = (s, r) => (r || document).querySelector(s);\r\n            const $$ = (s, r) => (r || document).querySelectorAll(s);\r\n\r\n            const gPins = $('#pins');\r\n            const gLines = $('#lines');\r\n            const gDefs = $('#defsRoutes');\r\n            const svg = $('.routes');\r\n            const mapImgEl = $('.map-img');\r\n            const mapWrap = $('.map-wrap');\r\n            let MAP_W = 1600,\r\n                MAP_H = 900;\r\n\r\n            const HUB = {\r\n                xpct: .635,\r\n                ypct: .54,\r\n                off: {\r\n                    x: 0,\r\n                    y: 0\r\n                }\r\n            };\r\n\r\n            const LOCS = [{\r\n                    name: 'China',\r\n                    xpct: .565,\r\n                    ypct: .52\r\n                },\r\n                {\r\n                    name: 'Hong Kong',\r\n                    xpct: .55,\r\n                    ypct: 0.635\r\n                },\r\n                {\r\n                    name: 'Taiwan',\r\n                    xpct: 0.595,\r\n                    ypct: 0.63\r\n                },\r\n                {\r\n                    name: 'Philippines',\r\n                    xpct: 0.595,\r\n                    ypct: 0.68\r\n                },\r\n                {\r\n                    name: 'Indonesia',\r\n                    xpct: .51,\r\n                    ypct: 0.81\r\n                }\r\n            ];\r\n\r\n            function hubXY() {\r\n                return {\r\n                    x: HUB.xpct * MAP_W + HUB.off.x,\r\n                    y: HUB.ypct * MAP_H + HUB.off.y\r\n                };\r\n            }\r\n\r\n            function cityXY(c) {\r\n                return {\r\n                    x: c.xpct * MAP_W,\r\n                    y: c.ypct * MAP_H\r\n                };\r\n            }\r\n\r\n            function qArcPath(x1, y1, x2, y2) {\r\n                const dx = x2 - x1,\r\n                    dy = y2 - y1,\r\n                    dist = Math.hypot(dx, dy);\r\n                const lift = Math.min(380, Math.max(90, dist * 0.32));\r\n                const cx = x1 + dx * 0.5,\r\n                    cy = y1 + dy * 0.5 - lift;\r\n                return `M ${x1} ${y1} Q ${cx} ${cy} ${x2} ${y2}`;\r\n            }\r\n\r\n            function pathLength(d) {\r\n                const p = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'path');\r\n                p.setAttribute('d', d);\r\n                return p.getTotalLength();\r\n            }\r\n\r\n            function computeStrokeWidth() {\r\n                const w = svg ? svg.clientWidth : 900;\r\n                const base = (w \/ 900) * 9;\r\n                return Math.max(3, Math.min(5, base));\r\n            }\r\n\r\n            function drawRoutesFixed() {\r\n                if (!gPins || !gLines || !gDefs) return;\r\n                gPins.innerHTML = '';\r\n                gLines.innerHTML = '';\r\n                gDefs.innerHTML = '';\r\n\r\n                const HUBPX = hubXY();\r\n\r\n                const hubG = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'g');\r\n                hubG.innerHTML = `\r\n                    <circle class=\"pin-dot\" cx=\"${HUBPX.x}\" cy=\"${HUBPX.y}\" r=\"5\"><\/circle>\r\n                    <circle class=\"pin\"     cx=\"${HUBPX.x}\" cy=\"${HUBPX.y}\" r=\"7\"><\/circle>\r\n                    <circle class=\"pulse\"   cx=\"${HUBPX.x}\" cy=\"${HUBPX.y}\" r=\"0\"><\/circle>`;\r\n                gPins.appendChild(hubG);\r\n\r\n                LOCS.forEach((c, i) => {\r\n                    const P = cityXY(c);\r\n                    const g = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'g');\r\n                    g.innerHTML = `\r\n                        <circle class=\"pin-dot\" cx=\"${P.x}\" cy=\"${P.y}\" r=\"4\"><\/circle>\r\n                        <circle class=\"pin\"     cx=\"${P.x}\" cy=\"${P.y}\" r=\"6\"><\/circle>`;\r\n                    gPins.appendChild(g);\r\n\r\n                    const d = qArcPath(P.x, P.y, HUBPX.x, HUBPX.y);\r\n                    const L = pathLength(d).toFixed(1);\r\n\r\n                    const gid = `routeGrad-${i}`;\r\n                    const grad = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'linearGradient');\r\n                    grad.setAttribute('id', gid);\r\n                    grad.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n                    grad.setAttribute('x1', P.x);\r\n                    grad.setAttribute('y1', P.y);\r\n                    grad.setAttribute('x2', HUBPX.x);\r\n                    grad.setAttribute('y2', HUBPX.y);\r\n\r\n                    [{\r\n                            off: '0%',\r\n                            op: '0.3'\r\n                        },\r\n                        {\r\n                            off: '40%',\r\n                            op: '0.5'\r\n                        },\r\n                        {\r\n                            off: '72%',\r\n                            op: '0.7'\r\n                        },\r\n                        {\r\n                            off: '100%',\r\n                            op: '1.0'\r\n                        }\r\n                    ].forEach(s => {\r\n                        const st = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'stop');\r\n                        st.setAttribute('offset', s.off);\r\n                        st.setAttribute('stop-color', '#e63e63');\r\n                        st.setAttribute('stop-opacity', s.op);\r\n                        grad.appendChild(st);\r\n                    });\r\n                    gDefs.appendChild(grad);\r\n\r\n                    const path = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'path');\r\n                    path.setAttribute('class', 'route');\r\n                    path.setAttribute('d', d);\r\n                    path.style.stroke = `url(#${gid})`;\r\n                    path.setAttribute('stroke-linecap', 'round');\r\n                    path.setAttribute('vector-effect', 'non-scaling-stroke');\r\n                    path.style.setProperty('--len', L);\r\n                    path.style.setProperty('--route-w', computeStrokeWidth() + 'px');\r\n                    path.style.transitionDelay = `${i*120}ms`;\r\n                    gLines.appendChild(path);\r\n                });\r\n\r\n                const glow = $('#kr-highlight');\r\n                if (glow) {\r\n                    glow.setAttribute('cx', HUBPX.x);\r\n                    glow.setAttribute('cy', HUBPX.y);\r\n                }\r\n            }\r\n\r\n            function initMapGeometry() {\r\n                if (!mapImgEl) {\r\n                    drawRoutesFixed();\r\n                    return;\r\n                }\r\n                MAP_W = mapImgEl.naturalWidth || mapImgEl.width || 1600;\r\n                MAP_H = mapImgEl.naturalHeight || mapImgEl.height || 900;\r\n                if (svg) svg.setAttribute('viewBox', `0 0 ${MAP_W} ${MAP_H}`);\r\n                if (svg) svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\r\n                drawRoutesFixed();\r\n            }\r\n\r\n            function bootMap() {\r\n                if (mapImgEl) {\r\n                    if (mapImgEl.complete && mapImgEl.naturalWidth > 0) {\r\n                        initMapGeometry();\r\n                    } else {\r\n                        mapImgEl.addEventListener('load', initMapGeometry, {\r\n                            once: true\r\n                        });\r\n                        mapImgEl.addEventListener('error', () => initMapGeometry(), {\r\n                            once: true\r\n                        });\r\n                    }\r\n                } else initMapGeometry();\r\n\r\n                if (mapWrap) {\r\n                    const ioMap = new IntersectionObserver(ents => {\r\n                        ents.forEach(ent => {\r\n                            if (ent.isIntersecting) ent.target.classList.add('is-visible');\r\n                        });\r\n                    }, {\r\n                        threshold: .35\r\n                    });\r\n                    ioMap.observe(mapWrap);\r\n\r\n                    mapWrap.addEventListener('click', () => {\r\n                        mapWrap.classList.remove('is-visible');\r\n                        requestAnimationFrame(() => {\r\n                            drawRoutesFixed();\r\n                            requestAnimationFrame(() => mapWrap.classList.add('is-visible'));\r\n                        });\r\n                    });\r\n\r\n                    window.addEventListener('resize', () => drawRoutesFixed(), {\r\n                        passive: true\r\n                    });\r\n                }\r\n            }\r\n\r\n            function animateDial(el) {\r\n                const target = +el.getAttribute('data-target') || 0;\r\n                const t0 = performance.now(),\r\n                    dur = 1100;\r\n                (function tick(t) {\r\n                    const k = Math.min(1, (t - t0) \/ dur);\r\n                    const e = 1 - Math.pow(1 - k, 3);\r\n                    const v = Math.round(target * e);\r\n                    el.style.setProperty('--p', v);\r\n                    if (k < 1) requestAnimationFrame(tick);\r\n                    else {\r\n                        el.classList.add('pop');\r\n                        el.addEventListener('animationend', () => el.classList.remove('pop'), {\r\n                            once: true\r\n                        });\r\n                    }\r\n                })(t0);\r\n            }\r\n\r\n            function animateCount(el) {\r\n                const target = parseFloat(el.getAttribute('data-count')) || 0;\r\n                const unit = el.getAttribute('data-unit') || '';\r\n                const t0 = performance.now(),\r\n                    dur = 1400;\r\n\r\n                const fmt = n => {\r\n                    if (unit === '$M') {\r\n                        return \"$\" + n.toFixed(2) + \"M\";\r\n                    } else if (unit === '$') {\r\n                        return \"$\" + n.toLocaleString();\r\n                    } else {\r\n                        return n.toLocaleString();\r\n                    }\r\n                };\r\n\r\n                (function tick(t) {\r\n                    const k = Math.min(1, (t - t0) \/ dur);\r\n                    const e = 1 - Math.pow(1 - k, 3);\r\n                    let v = target * e;\r\n\r\n                    if (unit === '$M') {\r\n                        el.textContent = fmt(v);\r\n                    } else {\r\n                        el.textContent = fmt(Math.floor(v));\r\n                    }\r\n\r\n                    if (k < 1) {\r\n                        requestAnimationFrame(tick);\r\n                    } else {\r\n                        el.textContent = fmt(target);\r\n                    }\r\n                })(t0);\r\n            }\r\n\r\n            function onceInView(selector, cb, threshold = .5) {\r\n                const els = $$(selector);\r\n                if (!els.length) return;\r\n                const io = new IntersectionObserver((ents) => {\r\n                    ents.forEach(ent => {\r\n                        if (ent.isIntersecting) {\r\n                            cb(ent.target);\r\n                            io.unobserve(ent.target);\r\n                        }\r\n                    });\r\n                }, {\r\n                    threshold\r\n                });\r\n                els.forEach(el => io.observe(el));\r\n            }\r\n\r\n            function cleanupLazy() {\r\n                const img = document.querySelector('.map-img.js-map');\r\n                if (!img) return;\r\n\r\n                img.removeAttribute('data-src');\r\n                img.classList.remove('lazyload', 'lazyloaded', 'ls-is-cached');\r\n                img.removeAttribute('data-sizes');\r\n                img.style.removeProperty('--smush-placeholder-width');\r\n                img.style.removeProperty('--smush-placeholder-aspect-ratio');\r\n\r\n                if (img.complete && img.naturalWidth > 0) initMapGeometry?.();\r\n                img.addEventListener('load', () => initMapGeometry?.(), {\r\n                    once: true\r\n                });\r\n            }\r\n\r\n            function setupTracks() {\r\n                document.querySelectorAll('.track').forEach((track, i) => {\r\n                    if (track.dataset.marqueeReady === '1') return;\r\n\r\n                    const inner = track.querySelector('.track-inner');\r\n                    if (!inner) return;\r\n\r\n                    const ticker = document.createElement('div');\r\n                    ticker.className = 'ticker';\r\n\r\n                    const clone = inner.cloneNode(true);\r\n                    ticker.appendChild(inner);\r\n                    ticker.appendChild(clone);\r\n                    track.appendChild(ticker);\r\n\r\n                    track.classList.add(i % 2 === 0 ? 'marquee-right' : 'marquee-left');\r\n\r\n                    ticker.querySelectorAll('img').forEach(img => {\r\n                        try {\r\n                            img.loading = 'eager';\r\n                            img.decoding = 'async';\r\n                            if (img.dataset.src && !img.src) img.src = img.dataset.src;\r\n                            if (img.dataset.lazySrc && !img.src) img.src = img.dataset.lazySrc;\r\n                            if (img.dataset.srcset && !img.srcset) img.srcset = img.dataset.srcset;\r\n                            if (img.dataset.lazySrcset && !img.srcset) img.srcset = img.dataset.lazySrcset;\r\n                        } catch (_) {}\r\n                    });\r\n\r\n                    track.dataset.marqueeReady = '1';\r\n                });\r\n            }\r\n\r\n            const boot = () => {\r\n                cleanupLazy();\r\n                bootMap();\r\n                drawRoutesFixed();\r\n                setupTracks();\r\n                onceInView('.dial', animateDial, .5);\r\n                onceInView('.kpi-num', animateCount, .6);\r\n            };\r\n\r\n            if (document.readyState === 'loading') {\r\n                document.addEventListener('DOMContentLoaded', boot);\r\n            } else {\r\n                boot();\r\n            }\r\n        })();\r\n    <\/script>\r\n<\/body>\r\n\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Company Intro \u2014 Scroll Interaction INBOUND \u2022 GROUP TOUR \u2022 MICE \u2022 FIT Fine Tour Korea Since 1999, Fine Tour Korea has been a leading inbound travel agency, specializing in Greater China and Southeast Asia. Company Profile (EN) \u516c\u53f8\u7b80\u4ecb (ZH) Request a proposal Partnerships with Major Clients We have built strong partnerships with major clients [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"unboxed","site-sidebar-style":"unboxed","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"enabled","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-126","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/finetourkorea.com\/zh\/wp-json\/wp\/v2\/pages\/126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/finetourkorea.com\/zh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/finetourkorea.com\/zh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/finetourkorea.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/finetourkorea.com\/zh\/wp-json\/wp\/v2\/comments?post=126"}],"version-history":[{"count":636,"href":"https:\/\/finetourkorea.com\/zh\/wp-json\/wp\/v2\/pages\/126\/revisions"}],"predecessor-version":[{"id":20049,"href":"https:\/\/finetourkorea.com\/zh\/wp-json\/wp\/v2\/pages\/126\/revisions\/20049"}],"wp:attachment":[{"href":"https:\/\/finetourkorea.com\/zh\/wp-json\/wp\/v2\/media?parent=126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}