{"id":34596,"date":"2024-10-09T15:12:03","date_gmt":"2024-10-09T07:12:03","guid":{"rendered":"https:\/\/www.goglobalsafe.com\/?page_id=34596"},"modified":"2026-07-29T15:22:30","modified_gmt":"2026-07-29T07:22:30","slug":"ovhc","status":"publish","type":"page","link":"https:\/\/www.goglobalsafe.com\/zh\/ovhc\/","title":{"rendered":"\u5375\u5de2\u764c"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"34596\" class=\"elementor elementor-34596\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7e8ba15 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"7e8ba15\" data-element_type=\"section\" id=\"nz-price\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7595f24\" data-id=\"7595f24\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-22cc170 elementor-widget elementor-widget-shortcode\" data-id=\"22cc170\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><script src=\"\/wp-content\/static\/js\/vue.global.prod.js\"><\/script>\n<script src=\"\/wp-content\/static\/js\/axios.min.js\"><\/script>\n<link rel=\"stylesheet\" href=\"\/wp-content\/plugins\/elementor\/assets\/lib\/font-awesome\/css\/all.min.css\">\n<link rel=\"stylesheet\" href=\"\/wp-content\/themes\/astra\/css\/ggs-health-cover-v34.css?v=35.9\">\n\n<div id=\"ggs-ovhc-app\" class=\"ggs-health-cover\" v-cloak>\n    <section class=\"hc-hero\">\n        <div class=\"hc-container hc-hero-inner\">\n            <div class=\"hc-hero-eyebrow\"><i class=\"fas fa-shield-alt\" aria-hidden=\"true\"><\/i>{{ copy.heroEyebrow }}<\/div>\n            <h1>\n                <span>{{ copy.heroLead }}<\/span>&nbsp;\n                <span class=\"hc-hero-highlight\">{{ copy.heroFocus }}<\/span>&nbsp;\n                <span>{{ copy.heroTail }}<\/span>\n            <\/h1>\n            <p class=\"hc-hero-copy\">{{ copy.heroDescription }}<\/p>\n            <div class=\"hc-hero-actions\">\n                <a class=\"hc-hero-cta\" href=\"#compareAll\">{{ copy.comparePlans }}<\/a>\n                <div class=\"hc-trust-inline\">\n                    <span><i class=\"fas fa-shield-alt\" aria-hidden=\"true\"><\/i>{{ copy.conditionReady }}<\/span>\n                    <span><i class=\"fas fa-sliders-h\" aria-hidden=\"true\"><\/i>{{ copy.flexibleCover }}<\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/section>\n\n    <div id=\"compareAll\" class=\"hc-controls-wrap\">\n        <div class=\"hc-container\">\n            <div class=\"hc-control-card\">\n                <div class=\"hc-control-grid hc-ovhc-control\">\n                    <div class=\"hc-field\">\n                        <label>{{ copy.visaType }}<\/label>\n                        <div class=\"hc-segmented\" role=\"tablist\" :aria-label=\"copy.visaType\">\n                            <button type=\"button\" role=\"tab\" :aria-selected=\"visaType === 'work'\" :class=\"{active: visaType === 'work'}\" @click=\"setVisaType('work')\">{{ copy.working }}<\/button>\n                            <button type=\"button\" role=\"tab\" :aria-selected=\"visaType === 'visitor'\" :class=\"{active: visaType === 'visitor'}\" @click=\"setVisaType('visitor')\">{{ copy.visiting }}<\/button>\n                        <\/div>\n                        <div class=\"hc-status-note\">\n                            <span class=\"hc-status-icon\">{{ visaType === 'work' ? 'W' : 'V' }}<\/span>\n                            <span><strong>{{ visaType === 'work' ? copy.workingSelected : copy.visitingSelected }}<\/strong>{{ visaType === 'work' ? copy.workingStatus : copy.visitingStatus }}<\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <main>\n        <section class=\"hc-section\">\n            <div class=\"hc-container\">\n                <div class=\"hc-info-banner\"><i class=\"fas fa-shield-alt\" aria-hidden=\"true\"><\/i>{{ copy.pricingNotice }} <span v-if=\"aiaPriceLoading\">{{ copy.aiaPriceLoading }}<\/span><span v-else-if=\"aiaPricesLive\">{{ copy.aiaPriceLive }}<\/span><span v-else>{{ copy.aiaPriceFallback }}<\/span><\/div>\n                <div class=\"hc-ovhc-mixed\">\n                    <section class=\"hc-ovhc-intro\">\n                        <div>\n                            <div class=\"hc-kicker\">{{ copy.recommendedFlow }}<\/div>\n                            <h3>{{ copy.startWithPicks }}<\/h3>\n                            <p>{{ copy.recommendationHelp }}<\/p>\n                        <\/div>\n                        <div class=\"hc-filter-panel\">\n                            <div>\n                                <div class=\"hc-filter-title\">{{ copy.need }}<\/div>\n                                <div class=\"hc-chip-row\">\n                                    <button v-for=\"option in needOptions\" :key=\"option.value\" class=\"hc-chip\" :class=\"{active: need === option.value}\" type=\"button\" @click=\"need = option.value\">{{ option.label }}<\/button>\n                                <\/div>\n                            <\/div>\n                            <div>\n                                <div class=\"hc-filter-title\">{{ copy.provider }}<\/div>\n                                <div class=\"hc-chip-row\">\n                                    <button v-for=\"provider in availableProviders\" :key=\"provider.id\" class=\"hc-chip\" :class=\"{active: openProvider === provider.id}\" type=\"button\" @click=\"selectProvider(provider.id)\">{{ provider.name }}<\/button>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/section>\n\n                    <section class=\"hc-ovhc-shell\">\n                        <div class=\"hc-ovhc-head\">\n                            <div><h3>{{ copy.smartMatch }}<\/h3><p>{{ copy.smartHelp }}<\/p><\/div>\n                            <span class=\"hc-count\">{{ filteredPlans.length }} {{ copy.matchingPlans }}<\/span>\n                        <\/div>\n                        <div v-if=\"recommendations.length\" class=\"hc-rec-grid\">\n                            <article v-for=\"item in recommendations\" :key=\"item.plan.key\" class=\"hc-rec-card\" :class=\"{'hc-not-8501': !item.plan.compliant8501}\">\n                                <div class=\"hc-rec-label\">{{ item.label}}<\/div>\n                                <div class=\"hc-rec-copy\"><h4>{{ item.plan.provider }} {{ item.plan.name }}<\/h4><div class=\"hc-rec-sub\">{{ localized(item.plan.summary) }}<\/div><\/div>\n                                <div class=\"hc-warning-slot\" :class=\"{'is-empty': item.plan.compliant8501}\">\n                                    <div v-if=\"!item.plan.compliant8501\" class=\"hc-visa-warning\">\u26a0 {{ copy.not8501 }}<\/div>\n                                <\/div>\n                                <div class=\"hc-ovhc-price\"><strong>${{ planPrice(item.plan) }}<\/strong><span>AUD \/ {{ copy.month }}<\/span><\/div>\n                                <div class=\"hc-inline-tags\"><span v-for=\"tag in localizedList(item.plan.tags)\" :key=\"tag\">{{ tag }}<\/span><\/div>\n                                <div class=\"hc-metrics\"><span v-for=\"metric in localizedList(item.plan.metrics).slice(0,3)\" :key=\"metric\">{{ metric }}<\/span><\/div>\n                                <div class=\"hc-card-actions\">\n                                    <button class=\"hc-btn hc-ghost\" type=\"button\" @click=\"openDetails(item.plan)\">{{ copy.details }}<\/button>\n                                    <button class=\"hc-btn hc-primary\" type=\"button\" @click=\"selectPlan(item.plan)\">{{ copy.select }}<\/button>\n                                <\/div>\n                            <\/article>\n                        <\/div>\n                        <div v-else class=\"hc-empty\">{{ copy.noMatch }}<\/div>\n                    <\/section>\n\n                    <section class=\"hc-ovhc-shell\">\n                        <div class=\"hc-ovhc-head\">\n                            <div><h3>{{ copy.compareProvider }}<\/h3><p>{{ copy.providerHelp }}<\/p><\/div>\n                            <button class=\"hc-btn hc-ghost\" type=\"button\" @click=\"openComparison\">{{ copy.moreComparison }} <i class=\"fas fa-arrow-down\" aria-hidden=\"true\"><\/i><\/button>\n                        <\/div>\n                        <div class=\"hc-provider-stack\">\n                            <section v-for=\"group in providerGroups\" :key=\"group.id\" :id=\"'provider-' + group.id\" class=\"hc-provider-block\" :class=\"{'hc-collapsed': collapsedProviders.includes(group.id)}\">\n                                <div class=\"hc-provider-head\" @click=\"toggleProvider(group.id)\">\n                                    <div>\n                                        <div class=\"hc-provider-title\">\n                                            <span class=\"hc-provider-badge\" :class=\"group.id\">\n                                                <img v-if=\"providerLogo(group.id)\" :src=\"providerLogo(group.id)\" :alt=\"group.name + ' logo'\">\n                                                <span v-else>{{ group.name }}<\/span>\n                                            <\/span>\n                                            <span class=\"hc-provider-name\">{{ group.name }}<\/span>\n                                        <\/div>\n                                        <p class=\"hc-provider-copy\">{{ localized(group.description) }}<\/p>\n                                    <\/div>\n                                    <div class=\"hc-provider-side\">\n                                        <span class=\"hc-count\">{{ group.plans.length }} {{ copy.plans }}<\/span>\n                                        <button class=\"hc-provider-toggle\" type=\"button\" :aria-label=\"copy.toggleProvider\" :aria-expanded=\"!collapsedProviders.includes(group.id)\" @click.stop=\"toggleProvider(group.id)\">\n                                            <i class=\"fas fa-chevron-down\" aria-hidden=\"true\"><\/i>\n                                        <\/button>\n                                    <\/div>\n                                <\/div>\n                                <div class=\"hc-provider-grid\">\n                                    <article v-for=\"plan in group.plans\" :key=\"plan.key\" class=\"hc-mini-plan\" :class=\"{'hc-not-8501': !plan.compliant8501}\">\n                                        <div class=\"hc-mini-top\">\n                                            <div><div class=\"hc-mini-name\">{{ plan.name }}<\/div><div class=\"hc-mini-note\">{{ localized(plan.summary) }}<\/div><\/div>\n                                            <span v-if=\"plan.badge\" class=\"hc-plan-pill\">{{ localized(plan.badge) }}<\/span>\n                                        <\/div>\n                                        <div class=\"hc-ovhc-price\"><strong>${{ planPrice(plan) }}<\/strong><span>AUD \/ {{ copy.month }}<\/span><\/div>\n                                        <div class=\"hc-inline-tags\"><span v-for=\"tag in localizedList(plan.tags)\" :key=\"tag\">{{ tag }}<\/span><\/div>\n                                        <div v-if=\"group.plans.some(item => !item.compliant8501)\" class=\"hc-warning-slot\" :class=\"{'is-empty': plan.compliant8501}\">\n                                            <div v-if=\"!plan.compliant8501\" class=\"hc-visa-warning\">\u26a0 {{ copy.not8501 }}<\/div>\n                                        <\/div>\n                                        <div v-if=\"group.plans.some(item => item.excessOptions)\" class=\"hc-excess-slot\" :class=\"{'is-empty': !plan.excessOptions}\">\n                                            <div v-if=\"plan.excessOptions\" class=\"hc-excess-box\">\n                                                <div class=\"hc-excess-label\">{{ copy.priceExcess }}<\/div>\n                                                <div class=\"hc-excess-group\">\n                                                    <button v-for=\"option in plan.excessOptions\" :key=\"option\" class=\"hc-excess-btn\" :class=\"{active: selectedExcess[plan.key] === option}\" type=\"button\" @click=\"selectedExcess[plan.key] = option\">{{ option }}<\/button>\n                                                <\/div>\n                                            <\/div>\n                                        <\/div>\n                                        <div class=\"hc-mini-metrics\"><div v-for=\"metric in localizedList(plan.metrics)\" :key=\"metric\" class=\"hc-mini-metric\">{{ metric }}<\/div><\/div>\n                                        <div class=\"hc-card-actions\">\n                                            <button class=\"hc-btn hc-ghost\" type=\"button\" @click=\"openDetails(plan)\">{{ copy.details }}<\/button>\n                                            <button class=\"hc-btn hc-primary\" type=\"button\" @click=\"selectPlan(plan)\">{{ copy.select }}<\/button>\n                                        <\/div>\n                                    <\/article>\n                                <\/div>\n                            <\/section>\n                        <\/div>\n                    <\/section>\n                <\/div>\n            <\/div>\n        <\/section>\n\n        <section class=\"hc-module hc-alt\">\n            <div class=\"hc-container\">\n                <div class=\"hc-section-title\"><h2>{{ copy.coverTitle }}<\/h2><div class=\"hc-line\"><\/div><\/div>\n                <div class=\"hc-cover-grid\">\n                    <article v-for=\"item in coverItems\" :key=\"item.title\" class=\"hc-cover-card\"><div class=\"hc-icon-wrap\">{{ item.icon }}<\/div><h3>{{ item.title }}<\/h3><p>{{ item.description }}<\/p><\/article>\n                <\/div>\n            <\/div>\n        <\/section>\n\n        <section ref=\"comparisonSection\" class=\"hc-module\">\n            <div class=\"hc-container\">\n                <div class=\"hc-accordion\" :class=\"{open: comparisonOpen}\">\n                    <button class=\"hc-accordion-button\" type=\"button\" @click=\"comparisonOpen = !comparisonOpen\"><h3>{{ copy.fullComparisonTable }}<\/h3><span class=\"hc-accordion-circle\"><i class=\"fas fa-chevron-down\" aria-hidden=\"true\"><\/i><\/span><\/button>\n                    <div class=\"hc-accordion-panel\">\n                        <div class=\"hc-table-toolbar\">\n                            <p>{{ tableMode === 'simple' ? copy.simpleHelp : copy.fullHelp }}<\/p>\n                            <div class=\"hc-table-mode\">\n                                <button type=\"button\" :class=\"{active: tableMode === 'simple'}\" @click=\"tableMode = 'simple'\">{{ copy.simple }}<\/button>\n                                <button type=\"button\" :class=\"{active: tableMode === 'full'}\" @click=\"tableMode = 'full'\">{{ copy.full }}<\/button>\n                            <\/div>\n                        <\/div>\n                        <div class=\"hc-table-scroll\">\n                            <table class=\"hc-compare-table\">\n                                <thead>\n                                    <tr>\n                                        <th>{{ copy.feature }}<\/th>\n                                        <th v-for=\"plan in currentPlans\" :key=\"plan.key\">\n                                            <span class=\"hc-table-logo\" :class=\"plan.providerId\">\n                                                <img v-if=\"providerLogo(plan.providerId)\" :src=\"providerLogo(plan.providerId)\" :alt=\"plan.provider + ' logo'\">\n                                                <span v-else>{{ plan.provider }}<\/span>\n                                            <\/span>\n                                            <div style=\"margin-top:8px\">{{ plan.name }}<\/div>\n                                        <\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody>\n                                    <template v-for=\"(row,index) in visibleComparisonRows\" :key=\"index\">\n                                        <tr v-if=\"row.section\" class=\"hc-section-row\">\n                                            <td>{{ localized(row.section) }}<\/td>\n                                            <td :colspan=\"currentPlans.length\" aria-hidden=\"true\"><\/td>\n                                        <\/tr>\n                                        <tr v-else>\n                                            <td class=\"hc-row-label\">{{ localized(row.label) }}<\/td>\n                                            <td v-for=\"plan in currentPlans\" :key=\"plan.key\">\n                                                <button v-if=\"row.document\" class=\"hc-doc-link\" type=\"button\" @click=\"openDocument(plan)\">{{ copy.check }}<\/button>\n                                                <span v-else-if=\"comparisonValue(row,plan) === true\" class=\"hc-table-check\">\u2713<\/span>\n                                                <span v-else-if=\"comparisonValue(row,plan) === false\" class=\"hc-table-no\">\u00d7<\/span>\n                                                <span v-else>{{ comparisonValue(row,plan) }}<\/span>\n                                            <\/td>\n                                        <\/tr>\n                                    <\/template>\n                                <\/tbody>\n                            <\/table>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/section>\n\n        <section class=\"hc-module hc-alt\">\n            <div class=\"hc-container\">\n                <div class=\"hc-section-title\"><h2>{{ copy.whyChoose }}<\/h2><\/div>\n                <div class=\"hc-reason-grid\">\n                    <article v-for=\"(item,index) in reasonItems\" :key=\"item.title\" class=\"hc-reason-card\" :class=\"index < 2 ? 'hc-large' : 'hc-small'\"><div><div class=\"hc-reason-top\"><div class=\"hc-reason-icon\">{{ item.icon }}<\/div><div class=\"hc-reason-copy\"><h3>{{ item.title }}<\/h3><\/div><\/div><p class=\"hc-reason-desc\">{{ item.description }}<\/p><\/div><div class=\"hc-reason-chip-row\"><span class=\"hc-reason-chip\">\u2713 {{ item.chip }}<\/span><\/div><\/article>\n                <\/div>\n            <\/div>\n        <\/section>\n\n        <section class=\"hc-dark-band\">\n            <div class=\"hc-container\">\n                <div class=\"hc-section-title\"><h2>{{ copy.trusted }}<\/h2><div class=\"hc-rating\">\u2605\u2605\u2605\u2605\u2605<\/div><p>{{ copy.rating }}<\/p><\/div>\n                <div class=\"hc-testimonial-grid\">\n                    <article v-for=\"item in testimonials\" :key=\"item.name\" class=\"hc-testimonial\"><div class=\"hc-avatar\">\u265f<\/div><div class=\"hc-stars\">\u2605\u2605\u2605\u2605\u2605<\/div><p>\u201c{{ item.text }}\u201d<\/p><div class=\"hc-testimonial-meta\"><span>{{ item.name }}<\/span><span class=\"hc-school\">{{ item.school }}<\/span><\/div><\/article>\n                <\/div>\n            <\/div>\n        <\/section>\n    <\/main>\n\n    <div v-if=\"detailPlan\" class=\"hc-modal-mask\" @click.self=\"closeDetails\">\n        <div class=\"hc-modal hc-small hc-ovhc-detail-modal\" role=\"dialog\" aria-modal=\"true\">\n            <div class=\"hc-modal-header\"><button class=\"hc-modal-close\" type=\"button\" @click=\"closeDetails\">\u00d7<\/button><h3>{{ detailPlan.provider }} {{ detailPlan.name }}<\/h3><p>{{ localized(detailPlan.summary) }}<\/p><\/div>\n            <div class=\"hc-modal-body\">\n                <div class=\"hc-ovhc-price\" style=\"margin-bottom:16px\"><strong>${{ planPrice(detailPlan) }}<\/strong><span>AUD \/ {{ copy.month }}<\/span><\/div>\n                <div v-if=\"!detailPlan.compliant8501\" class=\"hc-visa-warning\" style=\"margin-bottom:14px\">\u26a0 {{ copy.not8501 }}<\/div>\n                <div class=\"hc-mini-metrics\" style=\"margin-bottom:18px\"><div v-for=\"metric in localizedList(detailPlan.metrics)\" :key=\"metric\" class=\"hc-mini-metric\">{{ metric }}<\/div><\/div>\n                <div class=\"hc-card-actions\">\n                    <button class=\"hc-btn hc-ghost\" type=\"button\" @click=\"openDocument(detailPlan)\">{{ copy.policyDocument }}<\/button>\n                    <button class=\"hc-btn hc-primary\" type=\"button\" @click=\"selectPlan(detailPlan)\">{{ copy.select }}<\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n<\/div>\n\n<script>\n(() => {\n    const { createApp, ref, reactive, computed, nextTick, onMounted } = Vue;\n\n    createApp({\n        setup() {\n            const isZh = window.location.pathname.includes('\/zh');\n            const text = (en, zh) => isZh ? zh : en;\n            const localized = value => typeof value === 'object' && value ? (isZh ? value.zh : value.en) : value;\n            const localizedList = values => (values || []).map(localized);\n\n            const copy = reactive({\n                heroEyebrow: text('Condition 8501 Visa Ready', '\u7b26\u5408\u7b7e\u8bc1\u6761\u4ef6 8501'),\n                heroLead: text('Overseas', '\u6d77\u5916'), heroFocus: text('Visitor', '\u8bbf\u5ba2'), heroTail: text('Health Cover', '\u5065\u5eb7\u4fdd\u9669'),\n                heroDescription: text('Compare premium OVHC policies for temporary workers and visitors. Review visa-ready options with clearer highlights and easier plan comparison.', '\u5bf9\u6bd4\u9002\u5408\u4e34\u65f6\u5de5\u4f5c\u4e0e\u8bbf\u5ba2\u7b7e\u8bc1\u7684\u4f18\u8d28 OVHC \u65b9\u6848\uff0c\u66f4\u6e05\u6670\u5730\u67e5\u770b\u7b7e\u8bc1\u5408\u89c4\u3001\u4ef7\u683c\u4e0e\u4fdd\u969c\u5dee\u5f02\u3002'),\n                comparePlans: text('Compare Plans', '\u5bf9\u6bd4\u65b9\u6848'), conditionReady: text('8501 Visa Ready', '\u7b26\u5408 8501 \u6761\u4ef6'), flexibleCover: text('Flexible Coverage', '\u7075\u6d3b\u4fdd\u969c'),\n                visaType: text('Visa Type', '\u7b7e\u8bc1\u7c7b\u578b'), working: text('Working', '\u5de5\u4f5c\u7b7e\u8bc1'), visiting: text('Visiting', '\u8bbf\u5ba2\u7b7e\u8bc1'),\n                single: text('Single', '\u5355\u4eba'), couple: text('Couple', '\u592b\u59bb'),\n                workingSelected: text('Working OVHC selected', '\u5df2\u9009\u62e9 Working OVHC'), visitingSelected: text('Visiting OVHC selected', '\u5df2\u9009\u62e9 Visiting OVHC'),\n                workingStatus: text('Showing all 13 AIA, Allianz, nib and Bupa working-visa plans from the reference page.', '\u5c55\u793a\u53c2\u8003\u9875\u9762\u4e2d\u7684 13 \u4e2a AIA\u3001Allianz\u3001nib \u4e0e Bupa \u5de5\u4f5c\u7b7e\u8bc1\u8ba1\u5212\u3002'),\n                visitingStatus: text('Showing all 6 Allianz and Bupa visitor plans. Plans that do not meet Condition 8501 are clearly marked.', '\u5c55\u793a 6 \u4e2a Allianz \u4e0e Bupa \u8bbf\u5ba2\u8ba1\u5212\uff1b\u4e0d\u7b26\u5408 8501 \u6761\u4ef6\u7684\u8ba1\u5212\u4f1a\u6e05\u695a\u6807\u6ce8\u3002'),\n                pricingNotice: text('Monthly prices and hospital excess options.', '\u6708\u8d39\u548c\u533b\u9662 Excess \u9009\u9879\u3002'),\n                aiaPriceLoading: text('Loading AIA prices...', '\u6b63\u5728\u83b7\u53d6 AIA \u5b9e\u65f6\u4ef7\u683c\u2026'),\n                aiaPriceLive: text('AIA prices updated from UAT.', 'AIA \u4ef7\u683c\u5df2\u4ece UAT \u5b9e\u65f6\u66f4\u65b0\u3002'),\n                aiaPriceFallback: text('AIA live prices unavailable; showing the saved fallback.', 'AIA \u5b9e\u65f6\u4ef7\u683c\u6682\u4e0d\u53ef\u7528\uff0c\u5f53\u524d\u663e\u793a\u5907\u7528\u4ef7\u683c\u3002'),\n                recommendedFlow: text('Recommended flow', '\u63a8\u8350\u6d4f\u89c8\u65b9\u5f0f'), startWithPicks: text('Start with 3 picks, then compare by provider.', '\u5148\u770b 3 \u4e2a\u63a8\u8350\u65b9\u6848\uff0c\u518d\u6309\u4fdd\u53f8\u6bd4\u8f83\u3002'),\n                recommendationHelp: text('Recommendations update by visa type, provider and your main priority.', '\u63a8\u8350\u4f1a\u6839\u636e\u7b7e\u8bc1\u7c7b\u578b\u3001\u4fdd\u53f8\u548c\u4e3b\u8981\u9700\u6c42\u5373\u65f6\u66f4\u65b0\u3002'),\n                need: text('Need', '\u9700\u6c42'), provider: text('Provider', '\u4fdd\u53f8'), smartMatch: text('Smart Match', '\u667a\u80fd\u5339\u914d'),\n                smartHelp: text('Use the current prices and benefits to narrow the original plans.', '\u6839\u636e\u73b0\u6709\u4ef7\u683c\u548c\u4fdd\u969c\u5feb\u901f\u7f29\u5c0f\u539f\u6709\u8ba1\u5212\u8303\u56f4\u3002'), matchingPlans: text('matching plans', '\u4e2a\u5339\u914d\u8ba1\u5212'), noMatch: text('No matching plan for this filter.', '\u5f53\u524d\u7b5b\u9009\u4e0b\u6ca1\u6709\u5339\u914d\u8ba1\u5212\u3002'),\n                compareProvider: text('Compare by provider', '\u6309\u4fdd\u53f8\u6bd4\u8f83'), providerHelp: text('Plans remain grouped under their original provider for easier tier comparison.', '\u8ba1\u5212\u6309\u539f\u4fdd\u53f8\u5206\u7ec4\uff0c\u65b9\u4fbf\u6bd4\u8f83\u4e0d\u540c\u5c42\u7ea7\u3002'),\n                moreComparison: text('More detailed comparison', '\u67e5\u770b\u66f4\u591a\u8be6\u7ec6\u5bf9\u6bd4'), plans: text('plans', '\u4e2a\u8ba1\u5212'), details: text('Details', '\u8be6\u60c5'), select: text('Select', '\u9009\u62e9'), month: text('month', '\u6708'), toggleProvider: text('Toggle provider', '\u5c55\u5f00\u6216\u6536\u8d77\u4fdd\u53f8'),\n                not8501: text('Not suitable for visa condition 8501', '\u4e0d\u9002\u7528\u4e8e\u7b7e\u8bc1\u6761\u4ef6 8501'), priceExcess: text('Price \/ Hospital Excess', '\u4ef7\u683c \/ \u533b\u9662 Excess'),\n                coverTitle: text('What does OVHC cover?', 'OVHC \u4fdd\u969c\u4ec0\u4e48\uff1f'), fullComparisonTable: text('View Full Detailed Comparison Table', '\u67e5\u770b\u5b8c\u6574\u8be6\u7ec6\u5bf9\u6bd4\u8868'),\n                simple: text('Simple', '\u7b80\u7248'), full: text('Full', '\u5b8c\u6574\u7248'), simpleHelp: text('Key decision points only: price, 8501, GP, hospital and extras.', '\u4ec5\u663e\u793a\u5173\u952e\u51b3\u7b56\u9879\uff1a\u4ef7\u683c\u30018501\u3001GP\u3001\u4f4f\u9662\u548c\u9644\u52a0\u4fdd\u969c\u3002'),\n                fullHelp: text('All available benefit rows and policy documents are shown.', '\u663e\u793a\u6240\u6709\u53ef\u7528\u4fdd\u969c\u9879\u76ee\u548c\u4fdd\u5355\u6587\u4ef6\u3002'), feature: text('Feature', '\u4fdd\u969c\u9879\u76ee'), check: text('Check', '\u67e5\u770b'), policyDocument: text('Policy Document', '\u4fdd\u5355\u6587\u4ef6'),\n                whyChoose: text('Why visitors choose GoGlobalSafe?', '\u4e3a\u4ec0\u4e48\u8bbf\u5ba2\u9009\u62e9 GoGlobalSafe\uff1f'), trusted: text('Trusted by 10,000+ Students & Visitors', '10,000+ \u5b66\u751f\u4e0e\u8bbf\u5ba2\u4fe1\u8d56'), rating: text('Rated 4.9\/5 by our verified customers.', '\u771f\u5b9e\u7528\u6237\u8bc4\u5206 4.9\/5\u3002')\n            });\n            const needOptions = computed(() => [\n                { value: 'budget', label: text('Budget first', '\u9884\u7b97\u4f18\u5148') },\n                { value: 'extras', label: text('Needs extras', '\u9700\u8981 Extras') },\n                { value: 'coverage', label: text('More coverage', '\u66f4\u5168\u9762\u4fdd\u969c') }\n            ]);\n\n            const purchaseAia = 'https:\/\/health.aia.com.au\/international\/quote?agencyid=IN00012';\n            const purchaseAllianz = 'https:\/\/payment.ovhcallianzassistance.com.au\/?agencyID=879219&groupCodeID=A600';\n            const purchaseNib = 'https:\/\/www.nib.com.au\/overseas-working-visitors?scale=Single';\n            const purchaseBupa = 'https:\/\/www.bupa.com.au\/int';\n            const docAiaBase = 'https:\/\/health.aia.com.au\/international\/documents\/aia-overseas-visitors-health-cover-base-cover-fact-sheet.pdf';\n            const docAiaStandard = 'https:\/\/health.aia.com.au\/international\/documents\/aia-overseas-visitors-health-cover-standard-cover-fact-sheet.pdf';\n            const docWorkers = 'https:\/\/www.allianzcare.com.au\/content\/dam\/onemarketing\/azpau\/allianzcare\/docs\/policy\/IMP3721-OVHC-Policy-Workers.pdf';\n            const docVisitors = 'https:\/\/www.allianzcare.com.au\/content\/dam\/onemarketing\/azpau\/allianzcare\/docs\/policy\/IMP3720-OVHC-Policy-Visitors.pdf';\n            const docValue = 'https:\/\/www.allianzcare.com.au\/content\/dam\/onemarketing\/azpau\/allianzcare\/docs\/policy\/IMP3722-OVHC-Policy-Value-Care.pdf';\n            const docNib = 'https:\/\/www.nib.com.au\/help\/health\/forms-and-brochures';\n            const docBupa = 'https:\/\/www.bupa.com.au\/-\/media\/dotcom\/files\/pdfs\/10746-visitors-important-information-guide.pdf';\n            const bi = (en, zh) => ({ en, zh });\n            const providerLogos = {\n                aia: '\/wp-content\/themes\/astra\/assets\/health-cover\/providers\/aia-health.svg',\n                allianz: '\/wp-content\/themes\/astra\/assets\/health-cover\/providers\/allianz-care.png',\n                nib: '\/wp-content\/themes\/astra\/assets\/health-cover\/providers\/nib.png',\n                bupa: '\/wp-content\/themes\/astra\/assets\/health-cover\/providers\/bupa.png'\n            };\n            const providerLogo = providerId => providerLogos[providerId] || '';\n            const AIA_API_BASE = 'https:\/\/agent.goglobalsafe.com\/api\/v1\/h5\/ovhc\/aia';\n\n            const plans = [\n                {\n                    key: 'aia-base', visa: 'work', provider: 'AIA', providerId: 'aia', name: 'Base', priceByExcess: { '500': '65.00', '750': '59.35' }, productCodeByExcess: { '500': 'BC5WA', '750': 'BC7WA' }, excessOptions: ['500','750'], defaultExcess: '750', compliant8501: true, purchase: purchaseAia, document: docAiaBase,\n                    badge: bi('Lowest Price', '\u6700\u4f4e\u4ef7\u683c'), tags: [bi('Hospital focused', '\u4f4f\u9662\u4f18\u5148'), bi('Budget', '\u9884\u7b97\u578b')], summary: bi('Entry AIA working cover focused on in-hospital treatment; out-of-hospital medical services are excluded.', 'AIA \u5165\u95e8\u5de5\u4f5c\u7b7e\u8ba1\u5212\uff0c\u91cd\u70b9\u4fdd\u969c\u4f4f\u9662\u6cbb\u7597\uff1b\u4e0d\u5305\u542b\u9662\u5916\u533b\u7597\u670d\u52a1\u3002'),\n                    metrics: [bi('500 or 750 AUD hospital excess', '500 \u6216 750 \u6fb3\u5143\u533b\u9662 Excess'), bi('100% MBS in-hospital medical services', '\u4f4f\u9662\u5185\u533b\u7597\u670d\u52a1 100% MBS'), bi('Out-of-hospital medical services excluded', '\u4e0d\u5305\u542b\u9662\u5916\u533b\u7597\u670d\u52a1')],\n                    benefits: { gp: false, specialist: false, prescription: false, hospital: '100% MBS', ambulance: true, extras: false, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'aia-standard', visa: 'work', provider: 'AIA', providerId: 'aia', name: 'Standard', priceByExcess: { '500': '107.00', '750': '99.29' }, productCodeByExcess: { '500': 'SC5WA', '750': 'SC7WA' }, excessOptions: ['500','750'], defaultExcess: '750', compliant8501: true, purchase: purchaseAia, document: docAiaStandard,\n                    badge: null, tags: [bi('100% MBS GP', 'GP 100% MBS'), bi('Balanced', '\u5747\u8861')], summary: bi('A stronger AIA working plan with the same excess-based pricing structure.', '\u4fdd\u969c\u66f4\u9ad8\u7684 AIA \u5de5\u4f5c\u7b7e\u8ba1\u5212\uff0c\u540c\u6837\u6309 Excess \u533a\u5206\u4ef7\u683c\u3002'),\n                    metrics: [bi('500 or 750 AUD hospital excess', '500 \u6216 750 \u6fb3\u5143\u533b\u9662 Excess'), bi('50 AUD per prescription item', '\u5904\u65b9\u836f\u6bcf\u9879 50 \u6fb3\u5143'), bi('100% MBS specialists', '\u4e13\u79d1 100% MBS')],\n                    benefits: { gp: '100% MBS', specialist: '100% MBS', prescription: '50 AUD \/ item', hospital: '100% MBS', ambulance: true, extras: false, waiting: '12 months', repatriation: false }\n                },\n                {\n                    key: 'allianz-hospital-workers', visa: 'work', provider: 'Allianz', providerId: 'allianz', name: 'Hospital Care Workers', priceByExcess: { '0': '80.60', '500': '72.50' }, excessOptions: ['0','500'], defaultExcess: '500', compliant8501: true, purchase: purchaseAllianz, document: docWorkers,\n                    badge: null, tags: [bi('Hospital first', '\u4f4f\u9662\u4f18\u5148'), bi('Budget', '\u9884\u7b97\u578b')], summary: bi('Lower-entry Allianz working cover focused on hospital protection.', 'Allianz \u5165\u95e8\u5de5\u4f5c\u7b7e\u8ba1\u5212\uff0c\u91cd\u70b9\u63d0\u4f9b\u4f4f\u9662\u4fdd\u969c\u3002'),\n                    metrics: [bi('0 or 500 AUD hospital excess', '0 \u6216 500 \u6fb3\u5143\u533b\u9662 Excess'), bi('100% MBS inpatient medical services', '\u4f4f\u9662\u533b\u7597\u670d\u52a1 100% MBS'), bi('Out-of-hospital medical services excluded', '\u4e0d\u5305\u542b\u9662\u5916\u533b\u7597\u670d\u52a1')],\n                    benefits: { gp: false, specialist: false, prescription: false, hospital: '100% MBS', ambulance: true, extras: false, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'allianz-everyday-workers', visa: 'work', provider: 'Allianz', providerId: 'allianz', name: 'Everyday Care Workers', priceByExcess: { '0': '112.80', '500': '93.00' }, excessOptions: ['0','500'], defaultExcess: '500', compliant8501: true, purchase: purchaseAllianz, document: docWorkers,\n                    badge: bi('Best Value', '\u6027\u4ef7\u6bd4\u6700\u9ad8'), tags: [bi('100% MBS GP', 'GP 100% MBS'), bi('Popular', '\u70ed\u95e8')], summary: bi('Allianz working cover with out-of-hospital GP benefits; other out-of-hospital medical services are excluded.', '\u5305\u542b\u9662\u5916 GP \u4fdd\u969c\u7684 Allianz \u5de5\u4f5c\u7b7e\u8ba1\u5212\uff1b\u5176\u4ed6\u9662\u5916\u533b\u7597\u670d\u52a1\u4e0d\u5305\u542b\u3002'),\n                    metrics: [bi('0 or 500 AUD hospital excess', '0 \u6216 500 \u6fb3\u5143\u533b\u9662 Excess'), bi('100% MBS out-of-hospital GP', '\u9662\u5916 GP 100% MBS'), bi('Out-of-hospital specialists excluded', '\u4e0d\u5305\u542b\u9662\u5916\u4e13\u79d1')],\n                    benefits: { gp: '100% MBS', specialist: false, prescription: false, hospital: '100% MBS', ambulance: true, extras: false, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'allianz-classic-workers', visa: 'work', provider: 'Allianz', providerId: 'allianz', name: 'Classic Care Workers', priceByExcess: { '0': '197.70', '500': '150.50' }, excessOptions: ['0','500'], defaultExcess: '500', compliant8501: true, purchase: purchaseAllianz, document: docWorkers,\n                    badge: bi('Medical', '\u533b\u7597'), tags: [bi('Prescription cover', '\u5904\u65b9\u836f\u4fdd\u969c'), bi('Broader cover', '\u66f4\u5e7f\u4fdd\u969c')], summary: bi('A broader Allianz plan with 85% MBS specialist cover.', '\u66f4\u5168\u9762\u7684 Allianz \u5de5\u4f5c\u7b7e\u8ba1\u5212\uff0c\u4e13\u79d1\u4fdd\u969c\u6309 85% MBS\u3002'),\n                    metrics: [bi('0 or 500 AUD hospital excess', '0 \u6216 500 \u6fb3\u5143\u533b\u9662 Excess'), bi('GP visits \u2014 100% of MBS fee', 'GP \u770b\u8bca \u2014 \u6309 MBS \u8d39\u7528 100% \u4fdd\u969c'), bi('85% MBS specialists', '\u4e13\u79d1 85% MBS')],\n                    benefits: { gp: '100% MBS', specialist: '85% MBS', prescription: '50 AUD \/ item', hospital: '100% MBS', ambulance: true, extras: false, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'allianz-premium-workers', visa: 'work', provider: 'Allianz', providerId: 'allianz', name: 'Premium Care Workers', priceByExcess: { '0': '285.60', '500': '222.30' }, excessOptions: ['0','500'], defaultExcess: '500', compliant8501: true, purchase: purchaseAllianz, document: docWorkers,\n                    badge: bi('Most Complete', '\u4fdd\u969c\u6700\u5168'), tags: [bi('Most complete', '\u4fdd\u969c\u6700\u5168'), bi('85% MBS specialists', '\u4e13\u79d1 85% MBS')], summary: bi('Top-tier Allianz working cover with broader medical benefits but no routine extras.', 'Allianz \u9ad8\u914d\u5de5\u4f5c\u7b7e\u8ba1\u5212\uff0c\u533b\u7597\u4fdd\u969c\u66f4\u5e7f\uff0c\u4f46\u4e0d\u5305\u542b\u5e38\u89c4 Extras\u3002'),\n                    metrics: [bi('0 or 500 AUD hospital excess', '0 \u6216 500 \u6fb3\u5143\u533b\u9662 Excess'), bi('50 AUD per prescription item', '\u5904\u65b9\u836f\u6bcf\u9879 50 \u6fb3\u5143'), bi('85% MBS specialists', '\u4e13\u79d1 85% MBS')],\n                    benefits: { gp: '100% MBS', specialist: '85% MBS', prescription: '50 AUD \/ item', hospital: '100% MBS', ambulance: true, extras: false, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'allianz-hospital-visitors', visa: 'visitor', provider: 'Allianz', providerId: 'allianz', name: 'Hospital Care Visitors', coverPricing: { Single: '180.00', Couple: '433.40' }, compliant8501: true, purchase: purchaseAllianz, document: docVisitors,\n                    badge: bi('8501 Fit', '\u9002\u7528 8501'), tags: [bi('Hospital focus', '\u4f4f\u9662\u4f18\u5148'), bi('Visitor', '\u8bbf\u5ba2')], summary: bi('8501-ready visitor cover focused on hospital treatment.', '\u7b26\u5408 8501 \u7684\u8bbf\u5ba2\u8ba1\u5212\uff0c\u91cd\u70b9\u4fdd\u969c\u4f4f\u9662\u6cbb\u7597\u3002'),\n                    metrics: [bi('500 AUD hospital excess', '500 \u6fb3\u5143\u533b\u9662 Excess'), bi('100% MBS hospital treatment', '\u4f4f\u9662\u6cbb\u7597 100% MBS'), bi('Emergency ambulance included', '\u542b\u7d27\u6025\u6551\u62a4\u8f66')],\n                    benefits: { gp: false, specialist: false, prescription: false, hospital: '100% MBS', excess: '500 AUD', ambulance: true, extras: false, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'allianz-classic-visitors', visa: 'visitor', provider: 'Allianz', providerId: 'allianz', name: 'Classic Care Visitors', coverPricing: { Single: '868.80', Couple: '2310.60' }, compliant8501: true, purchase: purchaseAllianz, document: docVisitors,\n                    badge: bi('More Coverage', '\u66f4\u591a\u4fdd\u969c'), tags: [bi('Broad cover', '\u5e7f\u6cdb\u4fdd\u969c'), bi('Visitor premium', '\u8bbf\u5ba2\u9ad8\u914d')], summary: bi('Allianz visitor cover with broader outpatient benefits.', '\u5305\u542b\u66f4\u5e7f\u95e8\u8bca\u4fdd\u969c\u7684 Allianz \u8bbf\u5ba2\u8ba1\u5212\u3002'),\n                    metrics: [bi('500 AUD hospital excess', '500 \u6fb3\u5143\u533b\u9662 Excess'), bi('100% MBS GP', 'GP 100% MBS'), bi('50 AUD per prescription item', '\u5904\u65b9\u836f\u6bcf\u9879 50 \u6fb3\u5143')],\n                    benefits: { gp: '100% MBS', specialist: '85% MBS', prescription: '50 AUD \/ item', hospital: '100% MBS', excess: '500 AUD', ambulance: true, extras: false, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'allianz-value-care', visa: 'visitor', provider: 'Allianz', providerId: 'allianz', name: 'Value Care', coverPricing: { Single: '53.00', Couple: '130.00' }, compliant8501: false, purchase: purchaseAllianz, document: docValue,\n                    badge: bi('Lowest Price', '\u6700\u4f4e\u4ef7\u683c'), tags: [bi('Under 50 only', '\u4ec5\u9650 50 \u5c81\u4ee5\u4e0b'), bi('Budget', '\u9884\u7b97\u578b')], summary: bi('Budget visitor cover for applicants under 50; not suitable for Condition 8501.', '\u9002\u5408 50 \u5c81\u4ee5\u4e0b\u8bbf\u5ba2\u7684\u9884\u7b97\u8ba1\u5212\uff0c\u4e0d\u9002\u7528\u4e8e 8501 \u6761\u4ef6\u3002'),\n                    metrics: [bi('500 AUD hospital excess', '500 \u6fb3\u5143\u533b\u9662 Excess'), bi('100% MBS GP', 'GP 100% MBS'), bi('85% MBS specialists', '\u4e13\u79d1 85% MBS')],\n                    benefits: { gp: '100% MBS', specialist: '85% MBS', prescription: false, hospital: text('Partly covered \u00b7 100% MBS', '\u90e8\u5206\u4fdd\u969c \u00b7 100% MBS'), excess: '500 AUD', ambulance: true, extras: false, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'nib-standard', visa: 'work', provider: 'nib', providerId: 'nib', name: 'Standard', fixedPrice: '107.03', compliant8501: true, purchase: purchaseNib, document: docNib,\n                    badge: null, tags: [bi('100% MBS GP', 'GP 100% MBS'), bi('Low excess', '\u4f4e Excess')], summary: bi('nib entry working cover with core medical benefits and a low hospital excess.', 'nib \u5165\u95e8\u5de5\u4f5c\u7b7e\u8ba1\u5212\uff0c\u8986\u76d6\u6838\u5fc3\u533b\u7597\u4fdd\u969c\u5e76\u63d0\u4f9b\u8f83\u4f4e\u4f4f\u9662 Excess\u3002'),\n                    metrics: [bi('500 AUD hospital excess', '500 \u6fb3\u5143\u533b\u9662 Excess'), bi('50 AUD per prescription item', '\u5904\u65b9\u836f\u6bcf\u9879 50 \u6fb3\u5143'), bi('85% MBS specialists', '\u4e13\u79d1 85% MBS')],\n                    benefits: { gp: '100% MBS', specialist: '85% MBS', prescription: '50 AUD \/ item', hospital: '100% cost', excess: '500 AUD', ambulance: true, extras: false, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'nib-standard-extras', visa: 'work', provider: 'nib', providerId: 'nib', name: 'Standard with extras', fixedPrice: '185.19', compliant8501: true, purchase: purchaseNib, document: docNib,\n                    badge: bi('Best Value', '\u6027\u4ef7\u6bd4\u4e4b\u9009'), tags: [bi('Extras included', '\u542b Extras'), bi('Popular', '\u70ed\u95e8')], summary: bi('Balanced nib working cover with routine extras included.', '\u5747\u8861\u7684 nib \u5de5\u4f5c\u7b7e\u8ba1\u5212\uff0c\u5305\u542b\u5e38\u89c4 Extras\u3002'),\n                    metrics: [bi('500 AUD hospital excess', '500 \u6fb3\u5143\u533b\u9662 Excess'), bi('50 AUD per prescription item', '\u5904\u65b9\u836f\u6bcf\u9879 50 \u6fb3\u5143'), bi('Routine extras included', '\u5305\u542b\u5e38\u89c4 Extras')],\n                    benefits: { gp: '100% MBS', specialist: '85% MBS', prescription: '50 AUD \/ item', hospital: '100% cost', excess: '500 AUD', ambulance: true, extras: true, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'nib-advantage-extras', visa: 'work', provider: 'nib', providerId: 'nib', name: 'Advantage with extras', fixedPrice: '330.02', compliant8501: true, purchase: purchaseNib, document: docNib,\n                    badge: bi('Broader Extras', '\u66f4\u5e7f Extras'), tags: [bi('Broader extras', '\u66f4\u5e7f Extras'), bi('High cover', '\u9ad8\u4fdd\u969c')], summary: bi('Higher-tier nib working cover with broader extras and medicine benefits.', '\u66f4\u9ad8\u5c42\u7ea7\u7684 nib \u5de5\u4f5c\u7b7e\u8ba1\u5212\uff0c\u63d0\u4f9b\u66f4\u5e7f Extras \u4e0e\u836f\u54c1\u4fdd\u969c\u3002'),\n                    metrics: [bi('500 AUD hospital excess', '500 \u6fb3\u5143\u533b\u9662 Excess'), bi('Prescription paid to annual limit', '\u5904\u65b9\u836f\u6309\u5e74\u5ea6\u9650\u989d\u4fdd\u969c'), bi('Routine extras included', '\u5305\u542b\u5e38\u89c4 Extras')],\n                    benefits: { gp: '100% MBS', specialist: '85% MBS', prescription: '100% until annual limit', hospital: '100% cost', excess: '500 AUD', ambulance: true, extras: true, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'bupa-essential-lite', visa: 'work', provider: 'Bupa', providerId: 'bupa', name: 'Essential Lite', fixedPrice: '99.88', compliant8501: true, purchase: purchaseBupa, document: docBupa,\n                    badge: null, tags: [bi('Bupa entry', 'Bupa \u5165\u95e8'), bi('100% MBS GP', 'GP 100% MBS')], summary: bi('Entry Bupa working cover with core medical benefits.', 'Bupa \u5165\u95e8\u5de5\u4f5c\u7b7e\u8ba1\u5212\uff0c\u8986\u76d6\u6838\u5fc3\u533b\u7597\u4fdd\u969c\u3002'),\n                    metrics: [bi('250 AUD hospital excess', '250 \u6fb3\u5143\u533b\u9662 Excess'), bi('60% back on prescriptions', '\u5904\u65b9\u836f\u62a5\u9500 60%'), bi('100% MBS specialists', '\u4e13\u79d1 100% MBS')],\n                    benefits: { gp: '100% MBS', specialist: '100% MBS', prescription: '60% back', hospital: '100% MBS', excess: '250 AUD', ambulance: true, extras: false, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'bupa-essential', visa: 'work', provider: 'Bupa', providerId: 'bupa', name: 'Essential', fixedPrice: '141.13', compliant8501: true, purchase: purchaseBupa, document: docBupa,\n                    badge: bi('Top Choice', '\u4f18\u9009\u8ba1\u5212'), tags: [bi('0 excess', '0 Excess'), bi('Popular', '\u70ed\u95e8')], summary: bi('Popular Bupa working cover with no hospital excess.', '\u70ed\u95e8 Bupa \u5de5\u4f5c\u7b7e\u8ba1\u5212\uff0c\u4f4f\u9662 Excess \u4e3a 0\u3002'),\n                    metrics: [bi('0 AUD hospital excess', '0 \u6fb3\u5143\u533b\u9662 Excess'), bi('60% back on prescriptions', '\u5904\u65b9\u836f\u62a5\u9500 60%'), bi('100% MBS specialists', '\u4e13\u79d1 100% MBS')],\n                    benefits: { gp: '100% MBS', specialist: '100% MBS', prescription: '60% back', hospital: '100% MBS', excess: '0 AUD', ambulance: true, extras: false, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'bupa-essential-50', visa: 'work', provider: 'Bupa', providerId: 'bupa', name: 'Essential 50', fixedPrice: '169.48', compliant8501: true, purchase: purchaseBupa, document: docBupa,\n                    badge: bi('Extras', '\u542b Extras'), tags: [bi('Extras included', '\u542b Extras'), bi('Mid tier', '\u4e2d\u6863\u4fdd\u969c')], summary: bi('Bupa working cover with routine extras included.', '\u5305\u542b\u5e38\u89c4 Extras \u7684 Bupa \u5de5\u4f5c\u7b7e\u8ba1\u5212\u3002'),\n                    metrics: [bi('0 AUD hospital excess', '0 \u6fb3\u5143\u533b\u9662 Excess'), bi('60% back on prescriptions', '\u5904\u65b9\u836f\u62a5\u9500 60%'), bi('Routine extras included', '\u5305\u542b\u5e38\u89c4 Extras')],\n                    benefits: { gp: '100% MBS', specialist: '100% MBS', prescription: '60% back', hospital: '100% MBS', excess: '0 AUD', ambulance: true, extras: true, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'bupa-mid-60', visa: 'work', provider: 'Bupa', providerId: 'bupa', name: 'Mid 60', fixedPrice: '360.07', compliant8501: true, purchase: purchaseBupa, document: docBupa,\n                    badge: bi('Most Complete', '\u4fdd\u969c\u6700\u5168'), tags: [bi('Most complete', '\u4fdd\u969c\u6700\u5168'), bi('Premium', '\u9ad8\u914d')], summary: bi('Premium Bupa working cover with the broadest extras in this range.', '\u672c\u7cfb\u5217\u4fdd\u969c\u66f4\u5168\u9762\u7684 Bupa \u9ad8\u914d\u5de5\u4f5c\u7b7e\u8ba1\u5212\u3002'),\n                    metrics: [bi('0 AUD hospital excess', '0 \u6fb3\u5143\u533b\u9662 Excess'), bi('60% back on prescriptions', '\u5904\u65b9\u836f\u62a5\u9500 60%'), bi('Dental, physio and optical', '\u542b\u7259\u79d1\u3001\u7406\u7597\u4e0e\u773c\u79d1')],\n                    benefits: { gp: '100% MBS', specialist: '100% MBS', prescription: '60% back', hospital: '100% MBS', excess: '0 AUD', ambulance: true, extras: true, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'bupa-short-stay', visa: 'visitor', provider: 'Bupa', providerId: 'bupa', name: 'Short Stay Visitors Cover', coverPricing: { Single: '53.13', Couple: '106.26' }, compliant8501: false, purchase: purchaseBupa, document: docBupa,\n                    badge: bi('Lowest Price', '\u6700\u4f4e\u4ef7\u683c'), tags: [bi('Age 50 or under', '50 \u5c81\u53ca\u4ee5\u4e0b'), bi('Short stay', '\u77ed\u671f\u8bbf\u5ba2')], summary: bi('Budget short-stay cover; it does not meet Condition 8501.', '\u9002\u5408\u77ed\u671f\u8bbf\u5ba2\u7684\u9884\u7b97\u8ba1\u5212\uff0c\u4e0d\u7b26\u5408 8501 \u6761\u4ef6\u3002'),\n                    metrics: [bi('250 AUD hospital excess', '250 \u6fb3\u5143\u533b\u9662 Excess'), bi('Pre-existing conditions excluded', '\u4e0d\u4fdd\u969c\u65e2\u5f80\u75be\u75c5'), bi('100% MBS GP and specialists', 'GP \u4e0e\u4e13\u79d1 100% MBS')],\n                    benefits: { gp: '100% MBS', specialist: '100% MBS', prescription: '50 AUD \/ item', hospital: '100% MBS', excess: '250 AUD', ambulance: true, extras: false, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'bupa-explorer', visa: 'visitor', provider: 'Bupa', providerId: 'bupa', name: 'Explorer Visitors cover', coverPricing: { Single: '215.99', Couple: '431.97' }, compliant8501: true, purchase: purchaseBupa, document: docBupa,\n                    badge: bi('8501 Fit', '\u9002\u7528 8501'), tags: [bi('Visitor', '\u8bbf\u5ba2'), bi('Core medical', '\u6838\u5fc3\u533b\u7597')], summary: bi('8501-ready Bupa visitor cover with core medical benefits.', '\u7b26\u5408 8501 \u7684 Bupa \u8bbf\u5ba2\u8ba1\u5212\uff0c\u8986\u76d6\u6838\u5fc3\u533b\u7597\u4fdd\u969c\u3002'),\n                    metrics: [bi('250 AUD hospital excess', '250 \u6fb3\u5143\u533b\u9662 Excess'), bi('60% back on prescriptions', '\u5904\u65b9\u836f\u62a5\u9500 60%'), bi('100% MBS GP and specialists', 'GP \u4e0e\u4e13\u79d1 100% MBS')],\n                    benefits: { gp: '100% MBS', specialist: '100% MBS', prescription: '60% back', hospital: '100% MBS', excess: '250 AUD', ambulance: true, extras: false, waiting: '12 months', repatriation: true }\n                },\n                {\n                    key: 'bupa-explorer-50', visa: 'visitor', provider: 'Bupa', providerId: 'bupa', name: 'Explorer 50 Visitors cover', coverPricing: { Single: '246.29', Couple: '492.57' }, compliant8501: true, purchase: purchaseBupa, document: docBupa,\n                    badge: bi('Extras', '\u542b Extras'), tags: [bi('8501 ready', '\u7b26\u5408 8501'), bi('Extras included', '\u542b Extras')], summary: bi('Bupa visitor cover with Condition 8501 compliance and routine extras.', '\u7b26\u5408 8501 \u5e76\u5305\u542b\u5e38\u89c4 Extras \u7684 Bupa \u8bbf\u5ba2\u8ba1\u5212\u3002'),\n                    metrics: [bi('250 AUD hospital excess', '250 \u6fb3\u5143\u533b\u9662 Excess'), bi('60% back on prescriptions', '\u5904\u65b9\u836f\u62a5\u9500 60%'), bi('Dental, optical and physio', '\u542b\u7259\u79d1\u3001\u773c\u79d1\u4e0e\u7406\u7597')],\n                    benefits: { gp: '100% MBS', specialist: '100% MBS', prescription: '60% back', hospital: '100% MBS', excess: '250 AUD', ambulance: true, extras: true, waiting: '12 months', repatriation: true }\n                }\n            ];\n\n            const visaType = ref('work');\n            const coverType = ref('Single');\n            const need = ref('budget');\n            const openProvider = ref('');\n            const collapsedProviders = ref(['aia', 'allianz', 'nib', 'bupa']);\n            const tableMode = ref('simple');\n            const comparisonOpen = ref(true);\n            const comparisonSection = ref(null);\n            const detailPlan = ref(null);\n            const selectedExcess = reactive(Object.fromEntries(plans.filter(plan => plan.defaultExcess).map(plan => [plan.key, plan.defaultExcess])));\n            const aiaLivePrices = reactive({});\n            const aiaPriceLoading = ref(true);\n            const aiaPricesLive = ref(false);\n            const aiaPriceError = ref('');\n\n            const planOrder = [\n                'aia-base', 'aia-standard',\n                'allianz-hospital-workers', 'allianz-everyday-workers', 'allianz-classic-workers', 'allianz-premium-workers',\n                'nib-standard', 'nib-standard-extras', 'nib-advantage-extras',\n                'bupa-essential-lite', 'bupa-essential', 'bupa-essential-50', 'bupa-mid-60',\n                'allianz-value-care', 'allianz-hospital-visitors', 'allianz-classic-visitors',\n                'bupa-short-stay', 'bupa-explorer', 'bupa-explorer-50'\n            ];\n            const currentPlans = computed(() => plans\n                .filter(plan => plan.visa === visaType.value)\n                .sort((a, b) => planOrder.indexOf(a.key) - planOrder.indexOf(b.key)));\n            const availableProviders = computed(() => {\n                const ids = [...new Set(currentPlans.value.map(plan => plan.providerId))];\n                return ids.map(id => ({ id, name: currentPlans.value.find(plan => plan.providerId === id).provider }));\n            });\n            const filteredPlans = computed(() => {\n                if (need.value !== 'extras') {\n                    return currentPlans.value;\n                }\n\n                return currentPlans.value.filter(plan => plan.key !== 'allianz-classic-workers');\n            });\n            const needScore = plan => {\n                const price = Number(planPrice(plan));\n                if (need.value === 'budget') return price;\n                if (need.value === 'extras') return plan.benefits.extras ? price - 1000 : price + 1000;\n                const coveragePoints = (plan.benefits.gp ? 2 : 0) + (plan.benefits.specialist ? 2 : 0) + (plan.benefits.extras ? 3 : 0) + (plan.benefits.repatriation ? 1 : 0);\n                return -coveragePoints * 1000 + price;\n            };\n            const recommendations = computed(() => filteredPlans.value.slice().sort((a, b) => needScore(a) - needScore(b)).slice(0, 3).map((plan, index) => ({\n                plan,\n                label: index === 0\n                    ? (need.value === 'budget' ? text('Lowest Price', '\u6700\u4f4e\u4ef7\u683c') : need.value === 'extras' ? text('Best Extras Fit', 'Extras \u6700\u5339\u914d') : text('More Coverage', '\u4fdd\u969c\u66f4\u5168'))\n                    : index === 1 ? text('Best Value', '\u6027\u4ef7\u6bd4') : text('Alternative', '\u5907\u9009\u65b9\u6848')\n            })));\n            const providerDescriptions = {\n                aia: bi('AIA working plans use two hospital-excess price points.', 'AIA \u5de5\u4f5c\u7b7e\u8ba1\u5212\u63d0\u4f9b\u4e24\u79cd\u533b\u9662 Excess \u4ef7\u683c\u9009\u9879\u3002'),\n                allianz: bi('Allianz offers working and visitor tiers with selectable prices where available.', 'Allianz \u63d0\u4f9b\u5de5\u4f5c\u7b7e\u4e0e\u8bbf\u5ba2\u8ba1\u5212\uff0c\u5e76\u663e\u793a\u53ef\u9009\u4ef7\u683c\u3002'),\n                nib: bi('nib offers three working tiers, including two plans with extras.', 'nib \u63d0\u4f9b\u4e09\u4e2a\u5de5\u4f5c\u7b7e\u5c42\u7ea7\uff0c\u5176\u4e2d\u4e24\u4e2a\u8ba1\u5212\u5305\u542b Extras\u3002'),\n                bupa: bi('Bupa provides four working tiers and three visitor options.', 'Bupa \u63d0\u4f9b\u56db\u4e2a\u5de5\u4f5c\u7b7e\u8ba1\u5212\u4e0e\u4e09\u4e2a\u8bbf\u5ba2\u8ba1\u5212\u3002')\n            };\n            const providerGroups = computed(() => availableProviders.value\n                .map(provider => ({\n                    ...provider,\n                    description: providerDescriptions[provider.id],\n                    plans: currentPlans.value.filter(plan => plan.providerId === provider.id)\n                })));\n\n            const planPriceForExcess = (plan, excess) => {\n                const fallback = plan.priceByExcess?.[excess] || plan.fixedPrice || '';\n                const productCode = plan.productCodeByExcess?.[excess];\n                return productCode && aiaLivePrices[productCode] ? aiaLivePrices[productCode] : fallback;\n            };\n            const planPrice = plan => plan.coverPricing\n                ? plan.coverPricing[coverType.value]\n                : plan.priceByExcess\n                    ? planPriceForExcess(plan, selectedExcess[plan.key] || plan.defaultExcess)\n                    : plan.fixedPrice;\n            const setVisaType = type => {\n                visaType.value = type;\n                coverType.value = 'Single';\n                openProvider.value = '';\n                collapsedProviders.value = ['aia', 'allianz', 'nib', 'bupa'];\n                need.value = 'budget';\n                tableMode.value = type === 'visitor' ? 'full' : 'simple';\n                detailPlan.value = null;\n            };\n            const selectProvider = async providerId => {\n                openProvider.value = providerId;\n                collapsedProviders.value = availableProviders.value.map(provider => provider.id).filter(id => id !== providerId);\n                await nextTick();\n                const target = document.getElementById(`provider-${providerId}`);\n                if (target) {\n                    target.scrollIntoView({ behavior: 'smooth', block: 'start' });\n                }\n            };\n            const toggleProvider = providerId => {\n                const isCollapsed = collapsedProviders.value.includes(providerId);\n                collapsedProviders.value = isCollapsed\n                    ? collapsedProviders.value.filter(id => id !== providerId)\n                    : [...collapsedProviders.value, providerId];\n                openProvider.value = isCollapsed ? providerId : (openProvider.value === providerId ? '' : openProvider.value);\n            };\n            const openDetails = plan => { detailPlan.value = plan; document.body.style.overflow = 'hidden'; };\n            const closeDetails = () => { detailPlan.value = null; document.body.style.overflow = ''; };\n            const isPublicProductionHost = ['www.goglobalsafe.com', 'goglobalsafe.com']\n                .includes(String(window.location.hostname || '').toLowerCase());\n            const selectPlan = plan => {\n                if (plan.providerId !== 'aia' || isPublicProductionHost) {\n                    window.open(plan.purchase, '_blank', 'noopener');\n                    return;\n                }\n\n                closeDetails();\n                const params = new URLSearchParams({\n                    plan: plan.key === 'aia-standard' ? 'standard' : 'base',\n                    excess: selectedExcess[plan.key] || plan.defaultExcess\n                });\n                window.location.assign(`\/ovhc\/apply\/?${params.toString()}`);\n            };\n            const openDocument = plan => { if (plan && plan.document) window.open(plan.document, '_blank', 'noopener'); };\n            const openComparison = async () => { comparisonOpen.value = true; await nextTick(); if (comparisonSection.value) comparisonSection.value.scrollIntoView({ behavior: 'smooth', block: 'start' }); };\n\n            const coverItems = computed(() => [\n                { icon: '\u2695', title: text('Doctor', '\u533b\u751f'), description: text('Selected OVHC plans cover eligible GP and specialist consultations.', '\u4e0d\u540c OVHC \u8ba1\u5212\u53ef\u4fdd\u969c\u7b26\u5408\u6761\u4ef6\u7684 GP \u548c\u4e13\u79d1\u770b\u8bca\u3002') },\n                { icon: '\u271a', title: text('Hospital', '\u533b\u9662'), description: text('Hospital accommodation and medical treatment according to the chosen tier.', '\u6839\u636e\u6240\u9009\u8ba1\u5212\u5c42\u7ea7\u4fdd\u969c\u4f4f\u9662\u4f4f\u5bbf\u548c\u533b\u7597\u6cbb\u7597\u3002') },\n                { icon: '\u25cf', title: text('Prescription', '\u5904\u65b9\u836f'), description: text('Prescription medicine benefits vary between the original plan tiers.', '\u5904\u65b9\u836f\u4fdd\u969c\u56e0\u539f\u6709\u8ba1\u5212\u5c42\u7ea7\u800c\u5f02\u3002') },\n                { icon: '\u2723', title: text('Ambulance', '\u6551\u62a4\u8f66'), description: text('Emergency ambulance benefits are included in the displayed plans.', '\u9875\u9762\u6240\u5217\u8ba1\u5212\u5305\u542b\u7d27\u6025\u6551\u62a4\u8f66\u4fdd\u969c\u3002') }\n            ]);\n            const reasonItems = computed(() => [\n                { icon: '$', title: text('Save More', '\u66f4\u7701\u94b1'), description: text('Compare the original monthly prices and excess options.', '\u6bd4\u8f83\u539f\u6709\u6708\u8d39\u548c Excess \u9009\u9879\u3002'), chip: text('Compare fast', '\u5feb\u901f\u5bf9\u6bd4') },\n                { icon: '\u25a3', title: text('Pay Easier', '\u652f\u4ed8\u66f4\u65b9\u4fbf'), description: text('Continue through each provider\u2019s original checkout.', '\u901a\u8fc7\u5404\u4fdd\u53f8\u539f\u6709\u7ed3\u8d26\u9875\u9762\u7ee7\u7eed\u3002'), chip: text('Direct checkout', '\u76f4\u63a5\u8d2d\u4e70') },\n                { icon: '\u2605', title: text('Official Partners', '\u5b98\u65b9\u5408\u4f5c'), description: text('Compare AIA, Allianz, nib and Bupa plan information in one place.', '\u96c6\u4e2d\u67e5\u770b AIA\u3001Allianz\u3001nib \u4e0e Bupa \u8ba1\u5212\u3002'), chip: text('Recognized', '\u8ba4\u53ef\u4fdd\u53f8') },\n                { icon: '\u2713', title: text('8501 Ready', '\u7b26\u5408 8501'), description: text('Suitability is clearly marked before selection.', '\u9009\u62e9\u524d\u6e05\u6670\u6807\u6ce8 8501 \u9002\u7528\u6027\u3002'), chip: '8501' },\n                { icon: '\u260f', title: text('Fast Support', '\u5feb\u901f\u652f\u6301'), description: text('WeChat and email assistance when you need it.', '\u9700\u8981\u65f6\u53ef\u83b7\u5f97\u5fae\u4fe1\u548c\u90ae\u4ef6\u534f\u52a9\u3002'), chip: text('Quick reply', '\u5feb\u901f\u56de\u590d') },\n                { icon: '\u2197', title: text('Policy Documents', '\u4fdd\u5355\u6587\u4ef6'), description: text('Open the original provider PDF for each plan.', '\u6253\u5f00\u6bcf\u4e2a\u8ba1\u5212\u7684\u539f\u59cb\u4fdd\u53f8 PDF\u3002'), chip: 'PDF' }\n            ]);\n            const testimonials = computed(() => [\n                { name: 'Yuxin', school: 'ANU', text: text('The visitor-plan differences were much easier to understand.', '\u8bbf\u5ba2\u8ba1\u5212\u4e4b\u95f4\u7684\u5dee\u5f02\u66f4\u5bb9\u6613\u7406\u89e3\u4e86\u3002') },\n                { name: 'James', school: 'USYD', text: text('I could compare excess and monthly price without switching sites.', '\u65e0\u9700\u5207\u6362\u7f51\u7ad9\u5c31\u80fd\u6bd4\u8f83 Excess \u548c\u6708\u8d39\u3002') },\n                { name: 'Sara', school: 'UQ', text: text('The 8501 warning helped me avoid selecting the wrong plan.', '8501 \u8b66\u793a\u5e2e\u52a9\u6211\u907f\u514d\u9009\u9519\u8ba1\u5212\u3002') }\n            ]);\n\n            const priceOption = (plan, index) => {\n                if (plan.coverPricing) {\n                    const type = index === 0 ? 'Single' : 'Couple';\n                    return `$${plan.coverPricing[type]} AUD \/ ${text('month', '\u6708')} (${type === 'Single' ? copy.single : copy.couple})`;\n                }\n                if (plan.priceByExcess) {\n                    const option = plan.excessOptions[index];\n                    return option ? `$${planPriceForExcess(plan, option)} AUD \/ ${text('month', '\u6708')} (${option} excess)` : '\u2014';\n                }\n                return index === 0 ? `$${plan.fixedPrice} AUD \/ ${text('month', '\u6708')}` : '\u2014';\n            };\n            const allRows = computed(() => [\n                { section: bi('Pricing & visa fit', '\u4ef7\u683c\u4e0e\u7b7e\u8bc1\u9002\u7528\u6027'), simple: true },\n                { label: visaType.value === 'visitor' ? bi('Single', '\u5355\u4eba\u4ef7\u683c') : bi('Price option A', '\u4ef7\u683c\u9009\u9879 A'), simple: true, value: plan => priceOption(plan, 0) },\n                { label: visaType.value === 'visitor' ? bi('Couple', '\u592b\u59bb\u4ef7\u683c') : bi('Price option B', '\u4ef7\u683c\u9009\u9879 B'), simple: true, value: plan => priceOption(plan, 1) },\n                { label: bi('Condition 8501 compliant', '\u7b26\u5408 8501 \u6761\u4ef6'), simple: true, value: plan => plan.compliant8501 },\n                { label: bi('Hospital excess', '\u533b\u9662 Excess'), simple: true, value: plan => plan.excessOptions ? `${plan.excessOptions.join('\/')} AUD` : (plan.benefits.excess || '\u2014') },\n                { section: bi('Core medical cover', '\u6838\u5fc3\u533b\u7597\u4fdd\u969c'), simple: true },\n                { label: bi('Out-of-hospital GP consultations', '\u9662\u5916 GP \u770b\u8bca'), simple: true, value: plan => plan.benefits.gp },\n                { label: bi('Hospital treatment', '\u4f4f\u9662\u6cbb\u7597'), simple: true, value: plan => plan.benefits.hospital },\n                { label: bi('Routine extras', '\u5e38\u89c4 Extras'), simple: true, value: plan => plan.benefits.extras },\n                { label: bi('Out-of-hospital specialists \/ pathology \/ radiology', '\u9662\u5916\u4e13\u79d1 \/ \u75c5\u7406 \/ \u653e\u5c04'), value: plan => plan.benefits.specialist },\n                { label: bi('Out-of-hospital prescription medicines', '\u9662\u5916\u5904\u65b9\u836f'), value: plan => plan.benefits.prescription },\n                { label: bi('Emergency ambulance', '\u7d27\u6025\u6551\u62a4\u8f66'), value: plan => plan.benefits.ambulance },\n                { section: bi('Waiting periods & services', '\u7b49\u5f85\u671f\u4e0e\u670d\u52a1') },\n                { label: bi('Pre-existing condition waiting period', '\u65e2\u5f80\u75be\u75c5\u7b49\u5f85\u671f'), value: plan => plan.benefits.waiting },\n                { label: bi('Repatriation', '\u9063\u8fd4\u4fdd\u969c'), value: plan => plan.benefits.repatriation },\n                { section: bi('Documents', '\u6587\u4ef6') },\n                { label: bi('Policy document', '\u4fdd\u5355\u6587\u4ef6'), document: true }\n            ]);\n            const visibleComparisonRows = computed(() => tableMode.value === 'full' ? allRows.value : allRows.value.filter(row => row.simple));\n            const comparisonValue = (row, plan) => row.value ? row.value(plan) : '\u2014';\n\n            const getClientId = () => {\n                const cookie = document.cookie.split(';').find(item => item.trim().startsWith('_ga='));\n                if (!cookie) return null;\n                const parts = cookie.split('.');\n                return parts.length >= 4 ? `${parts[2]}.${parts[3]}` : null;\n            };\n            const trackView = () => axios.post('https:\/\/agent.goglobalsafe.com\/api\/v1\/insurance\/baoxian\/viewPlan', { client_id: getClientId(), type: 'OVHC' }, {\n                headers: { 'X-Authentication-Key': ' HSxZK8nHniLzZtv0Qtfk87wvNvXpJZ5K' }\n            }).catch(error => console.warn('OVHC tracking unavailable', error));\n\n            const loadAiaPrices = async () => {\n                aiaPriceLoading.value = true;\n                aiaPriceError.value = '';\n                try {\n                    const response = await axios.get(`${AIA_API_BASE}\/prices`, { params: { cover_for: 'single' } });\n                    const products = response.data?.data?.products;\n                    if (!Array.isArray(products)) throw new Error('AIA price response is invalid.');\n                    let loaded = 0;\n                    products.forEach(item => {\n                        const productCode = String(item?.product || '').toUpperCase();\n                        const monthlyAmount = item?.rates?.monthlyNetAmount;\n                        if (productCode && monthlyAmount !== undefined && Number.isFinite(Number(monthlyAmount))) {\n                            aiaLivePrices[productCode] = Number(monthlyAmount).toFixed(2);\n                            loaded += 1;\n                        }\n                    });\n                    if (!loaded) throw new Error('AIA did not return any products.');\n                    aiaPricesLive.value = true;\n                } catch (error) {\n                    aiaPricesLive.value = false;\n                    aiaPriceError.value = error.response?.data?.error?.message || error.message || 'AIA price request failed.';\n                    console.warn('AIA live prices unavailable; using fallback prices', error);\n                } finally {\n                    aiaPriceLoading.value = false;\n                }\n            };\n            onMounted(() => {\n                trackView();\n                loadAiaPrices();\n            });\n\n            return {\n                copy, localized, localizedList, visaType, coverType, need, needOptions, openProvider, collapsedProviders, availableProviders, filteredPlans, recommendations,\n                providerGroups, currentPlans, selectedExcess, planPrice, setVisaType, detailPlan, openDetails, closeDetails, selectPlan, openDocument,\n                coverItems, reasonItems, testimonials, comparisonOpen, comparisonSection, openComparison, tableMode, visibleComparisonRows, comparisonValue,\n                providerLogo, selectProvider, toggleProvider, aiaPriceLoading, aiaPricesLive\n            };\n        }\n    }).mount('#ggs-ovhc-app');\n})();\n<\/script>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-global-header-display":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"enabled","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","footnotes":""},"class_list":["post-34596","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.6 (Yoast SEO v26.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>ovhc | GoGlobalsafe-\u7559\u5b66\u751f\u4fdd\u9669\u4e00\u7ad9\u5f0f\u89e3\u51b3\u65b9\u6848<\/title>\n<meta name=\"description\" content=\"All OVHC Plan, Plans we offerOverseas Visitor Health Cover (OVHC) for international visitors to Australia...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.goglobalsafe.com\/zh\/ovhc\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ovhc\" \/>\n<meta property=\"og:description\" content=\"All OVHC Plan, Plans we offerOverseas Visitor Health Cover (OVHC) for international visitors to Australia...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.goglobalsafe.com\/zh\/ovhc\/\" \/>\n<meta property=\"og:site_name\" content=\"GoGlobalsafe-\u7559\u5b66\u751f\u4fdd\u9669\u4e00\u7ad9\u5f0f\u89e3\u51b3\u65b9\u6848\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-29T07:22:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.goglobalsafe.com\/wp-content\/uploads\/2023\/04\/LOGO1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"1000\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.goglobalsafe.com\/ovhc\/\",\"url\":\"https:\/\/www.goglobalsafe.com\/ovhc\/\",\"name\":\"ovhc | GoGlobalsafe-\u7559\u5b66\u751f\u4fdd\u9669\u4e00\u7ad9\u5f0f\u89e3\u51b3\u65b9\u6848\",\"isPartOf\":{\"@id\":\"https:\/\/www.goglobalsafe.com\/#website\"},\"datePublished\":\"2024-10-09T07:12:03+00:00\",\"dateModified\":\"2026-07-29T07:22:30+00:00\",\"description\":\"All OVHC Plan, Plans we offerOverseas Visitor Health Cover (OVHC) for international visitors to Australia...\",\"breadcrumb\":{\"@id\":\"https:\/\/www.goglobalsafe.com\/ovhc\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.goglobalsafe.com\/ovhc\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.goglobalsafe.com\/ovhc\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.goglobalsafe.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ovhc\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.goglobalsafe.com\/#website\",\"url\":\"https:\/\/www.goglobalsafe.com\/\",\"name\":\"GoGlobalSafe Student Insurance\",\"description\":\"Your Health, Our Priority\",\"publisher\":{\"@id\":\"https:\/\/www.goglobalsafe.com\/#organization\"},\"alternateName\":\"GoGlobalSafe international student insurance\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.goglobalsafe.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.goglobalsafe.com\/#organization\",\"name\":\"Golobal student consulting limited\",\"alternateName\":\"GoGlobalSafe\",\"url\":\"https:\/\/www.goglobalsafe.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.goglobalsafe.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.goglobalsafe.com\/wp-content\/uploads\/2023\/04\/LOGO3.png\",\"contentUrl\":\"https:\/\/www.goglobalsafe.com\/wp-content\/uploads\/2023\/04\/LOGO3.png\",\"width\":500,\"height\":140,\"caption\":\"Golobal student consulting limited\"},\"image\":{\"@id\":\"https:\/\/www.goglobalsafe.com\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"ovhc | GoGlobalsafe-\u7559\u5b66\u751f\u4fdd\u9669\u4e00\u7ad9\u5f0f\u89e3\u51b3\u65b9\u6848","description":"All OVHC Plan, Plans we offerOverseas Visitor Health Cover (OVHC) for international visitors to Australia...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.goglobalsafe.com\/zh\/ovhc\/","og_locale":"zh_CN","og_type":"article","og_title":"ovhc","og_description":"All OVHC Plan, Plans we offerOverseas Visitor Health Cover (OVHC) for international visitors to Australia...","og_url":"https:\/\/www.goglobalsafe.com\/zh\/ovhc\/","og_site_name":"GoGlobalsafe-\u7559\u5b66\u751f\u4fdd\u9669\u4e00\u7ad9\u5f0f\u89e3\u51b3\u65b9\u6848","article_modified_time":"2026-07-29T07:22:30+00:00","og_image":[{"width":1000,"height":1000,"url":"https:\/\/www.goglobalsafe.com\/wp-content\/uploads\/2023\/04\/LOGO1.png","type":"image\/png"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.goglobalsafe.com\/ovhc\/","url":"https:\/\/www.goglobalsafe.com\/ovhc\/","name":"ovhc | GoGlobalsafe-\u7559\u5b66\u751f\u4fdd\u9669\u4e00\u7ad9\u5f0f\u89e3\u51b3\u65b9\u6848","isPartOf":{"@id":"https:\/\/www.goglobalsafe.com\/#website"},"datePublished":"2024-10-09T07:12:03+00:00","dateModified":"2026-07-29T07:22:30+00:00","description":"All OVHC Plan, Plans we offerOverseas Visitor Health Cover (OVHC) for international visitors to Australia...","breadcrumb":{"@id":"https:\/\/www.goglobalsafe.com\/ovhc\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.goglobalsafe.com\/ovhc\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.goglobalsafe.com\/ovhc\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.goglobalsafe.com\/"},{"@type":"ListItem","position":2,"name":"ovhc"}]},{"@type":"WebSite","@id":"https:\/\/www.goglobalsafe.com\/#website","url":"https:\/\/www.goglobalsafe.com\/","name":"GoGlobalSafe \u5b66\u751f\u4fdd\u9669","description":"\u60a8\u7684\u5065\u5eb7\uff0c\u6211\u4eec\u7684\u9996\u8981\u4efb\u52a1","publisher":{"@id":"https:\/\/www.goglobalsafe.com\/#organization"},"alternateName":"GoGlobalSafe international student insurance","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.goglobalsafe.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":"Organization","@id":"https:\/\/www.goglobalsafe.com\/#organization","name":"\u73af\u7403\u5b66\u751f\u54a8\u8be2\u6709\u9650\u516c\u53f8","alternateName":"GoGlobalSafe","url":"https:\/\/www.goglobalsafe.com\/","logo":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.goglobalsafe.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.goglobalsafe.com\/wp-content\/uploads\/2023\/04\/LOGO3.png","contentUrl":"https:\/\/www.goglobalsafe.com\/wp-content\/uploads\/2023\/04\/LOGO3.png","width":500,"height":140,"caption":"Golobal student consulting limited"},"image":{"@id":"https:\/\/www.goglobalsafe.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.goglobalsafe.com\/zh\/wp-json\/wp\/v2\/pages\/34596","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.goglobalsafe.com\/zh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.goglobalsafe.com\/zh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.goglobalsafe.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.goglobalsafe.com\/zh\/wp-json\/wp\/v2\/comments?post=34596"}],"version-history":[{"count":26,"href":"https:\/\/www.goglobalsafe.com\/zh\/wp-json\/wp\/v2\/pages\/34596\/revisions"}],"predecessor-version":[{"id":38035,"href":"https:\/\/www.goglobalsafe.com\/zh\/wp-json\/wp\/v2\/pages\/34596\/revisions\/38035"}],"wp:attachment":[{"href":"https:\/\/www.goglobalsafe.com\/zh\/wp-json\/wp\/v2\/media?parent=34596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}