{"id":20171,"date":"2026-05-16T10:32:58","date_gmt":"2026-05-16T03:32:58","guid":{"rendered":"https:\/\/staging.vietnamdetox.com\/trang-chu-2\/"},"modified":"2026-09-04T10:44:24","modified_gmt":"2026-09-04T03:44:24","slug":"trang-chu-2","status":"publish","type":"page","link":"https:\/\/staging.vietnamdetox.com\/vi\/","title":{"rendered":"Trang ch\u1ee7"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"20171\" class=\"elementor elementor-20171 elementor-14\" data-elementor-post-type=\"page\">\n\t\t\t\t<section data-dce-background-color=\"#FEFAF2\" class=\"elementor-element elementor-element-2f0a2ac e-con-full e-flex elementor-invisible e-con e-parent\" data-id=\"2f0a2ac\" data-element_type=\"container\" data-e-type=\"container\" id=\"intro\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;fadeIn&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-afa851d elementor-widget elementor-widget-html\" data-id=\"afa851d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Copy this entire file into ONE Elementor HTML widget.\r\n  Put elementor-hero.css into the same widget's Advanced > Custom CSS field.\r\n\r\n  The two video sources are root-relative URLs for staging.vietnamdetox.com.\r\n  See README.md before using this widget on another host.\r\n-->\r\n\r\n<section class=\"vdh\" data-vdh-hero=\"\" aria-labelledby=\"vdh-title\">\r\n  <div class=\"vdh__background\" aria-hidden=\"true\">\r\n    <video class=\"vdh__background-video\" data-vdh-background-video=\"\" autoplay=\"\" muted=\"\" loop=\"\" playsinline=\"\" preload=\"metadata\">\r\n      <source src=\"\/wp-content\/uploads\/2026\/08\/hero-video-vietnam-detox-fasting-retreats.mp4\" type=\"video\/mp4\">\r\n    <\/source><\/video>\r\n  <\/div>\r\n\r\n  <div class=\"vdh__overlay\" aria-hidden=\"true\"><\/div>\r\n\r\n  <div class=\"vdh__inner\">\r\n    <div class=\"vdh__left\">\r\n      <div class=\"vdh__panel\" data-vdh-panel=\"\">\r\n        <button class=\"vdh__panel-toggle\" data-vdh-panel-toggle=\"\" type=\"button\" aria-label=\"Hide introduction\" aria-expanded=\"true\">\r\n          <span class=\"vdh__panel-toggle-label\" data-vdh-toggle-label=\"\">\u1ea8n h\u1ed9p<\/span>\r\n<span class=\"vdh__panel-toggle-icon\" data-vdh-toggle-icon=\"\" aria-hidden=\"true\">\u00d7<\/span>\r\n        <\/button>\r\n\r\n        <div class=\"vdh__panel-surface\" data-vdh-panel-surface=\"\">\r\n          <div class=\"vdh__panel-body\">\r\n            <p class=\"vdh__tagline\">Ph\u1ee5c h\u1ed3i tr\u01b0\u1edbc khi ki\u1ec7t s\u1ee9c tr\u1edf th\u00e0nh tr\u1ea1ng th\u00e1i quen thu\u1ed9c.<\/p>\r\n\r\n            <h1 class=\"vdh__title\" id=\"vdh-title\">\r\n              <span class=\"vdh__title-line\"><em>Ph\u01b0\u01a1ng ph\u00e1p nh\u1ecbn \u0103n Buchinger c\u1ee7a \u0110\u1ee9c.<\/em><\/span>\r\n              <span class=\"vdh__title-line\"><span class=\"vdh__title-accent\">Tinh hoa ch\u1eefa l\u00e0nh Vi\u1ec7t Nam.<\/span><\/span>\r\n            <\/h1>\r\n\r\n            <div class=\"vdh__divider\" aria-hidden=\"true\"><\/div>\r\n\r\n            <div class=\"vdh__mobile-video\">\r\n              <div class=\"vdh__mobile-video-inner\">\r\n                <video data-vdh-mobile-video=\"\" controls=\"\" playsinline=\"\" preload=\"metadata\">\r\n                  <source src=\"\/redesign-clickdummy-2026\/assets\/video\/hero-video-vietnam-detox-fasting-retreats.mp4\" type=\"video\/mp4\">\r\n Tr\u00ecnh duy\u1ec7t c\u1ee7a b\u1ea1n kh\u00f4ng h\u1ed7 tr\u1ee3 video.\r\n                <\/source><\/video>\r\n              <\/div>\r\n            <\/div>\r\n\r\n            <p class=\"vdh__summary\">\r\n              <strong>Nh\u1eefng k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng nh\u1ecbn \u0103n t\u0129nh t\u1ea1i, c\u00f3 l\u1ed9 tr\u00ecnh<\/strong>, d\u00e0nh cho ng\u01b0\u1eddi \u0111ang qu\u00e1 t\u1ea3i tinh th\u1ea7n, c\u1ea1n ki\u1ec7t th\u1ec3 ch\u1ea5t ho\u1eb7c \u0111\u00e3 m\u1ea5t k\u1ebft n\u1ed1i v\u1edbi kh\u1ea3 n\u0103ng ph\u1ee5c h\u1ed3i th\u1ef1c s\u1ef1.\r\n            <\/p>\r\n\r\n            <div class=\"vdh__actions\">\r\n              <a href=\"#retreats\" class=\"vdh__button vdh__button--primary\">Kh\u00e1m ph\u00e1 c\u00e1c k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng<\/a>\r\n<a href=\"#method\" class=\"vdh__button vdh__button--outline\">T\u00ecm hi\u1ec3u ph\u01b0\u01a1ng ph\u00e1p<\/a>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"vdh__right\" aria-hidden=\"true\"><\/div>\r\n  <\/div>\r\n\r\n  <a href=\"#why\" class=\"vdh__scroll\">Cu\u1ed9n<\/a>\r\n<\/section>\r\n\r\n<script>\r\n(function() {\r\n  'use strict';\r\n\r\n  var roots = document.querySelectorAll('[data-vdh-hero]');\r\n\r\n  roots.forEach(function(root) {\r\n    if (root.dataset.vdhReady === 'true') return;\r\n    root.dataset.vdhReady = 'true';\r\n\r\n    var panel = root.querySelector('[data-vdh-panel]');\r\n    var surface = root.querySelector('[data-vdh-panel-surface]');\r\n    var toggle = root.querySelector('[data-vdh-panel-toggle]');\r\n    var toggleLabel = root.querySelector('[data-vdh-toggle-label]');\r\n    var toggleIcon = root.querySelector('[data-vdh-toggle-icon]');\r\n    var backgroundVideo = root.querySelector('[data-vdh-background-video]');\r\n    var mobileVideo = root.querySelector('[data-vdh-mobile-video]');\r\n    var mobileQuery = window.matchMedia('(max-width: 767px)');\r\n    var reducedMotionQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\r\n\r\n    function syncPanel() {\r\n      if (!panel || !surface || !toggle || !toggleLabel || !toggleIcon) return;\r\n\r\n      var isCollapsed = panel.classList.contains('is-collapsed');\r\n      toggleLabel.textContent = isCollapsed ? 'Show info' : 'Hide box';\r\n      toggleIcon.textContent = isCollapsed ? '+' : '\\u00d7';\r\n      toggle.setAttribute('aria-label', isCollapsed ? 'Show introduction' : 'Hide introduction');\r\n      toggle.setAttribute('aria-expanded', String(!isCollapsed));\r\n      surface.setAttribute('aria-hidden', String(isCollapsed));\r\n    }\r\n\r\n    function syncVideos() {\r\n      var useInlineVideo = mobileQuery.matches;\r\n\r\n      if (backgroundVideo) {\r\n        if (useInlineVideo || reducedMotionQuery.matches) {\r\n          backgroundVideo.pause();\r\n        } else {\r\n          var playAttempt = backgroundVideo.play();\r\n          if (playAttempt && typeof playAttempt.catch === 'function') {\r\n            playAttempt.catch(function() {});\r\n          }\r\n        }\r\n      }\r\n\r\n      if (!useInlineVideo && mobileVideo) mobileVideo.pause();\r\n    }\r\n\r\n    if (toggle) {\r\n      toggle.addEventListener('click', function() {\r\n        panel.classList.toggle('is-collapsed');\r\n        syncPanel();\r\n      });\r\n    }\r\n\r\n    if (typeof mobileQuery.addEventListener === 'function') {\r\n      mobileQuery.addEventListener('change', syncVideos);\r\n      reducedMotionQuery.addEventListener('change', syncVideos);\r\n    } else {\r\n      mobileQuery.addListener(syncVideos);\r\n      reducedMotionQuery.addListener(syncVideos);\r\n    }\r\n\r\n    syncPanel();\r\n    syncVideos();\r\n  });\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section data-dce-background-color=\"#FEFAF2\" class=\"elementor-element elementor-element-232a149 e-con-full e-flex elementor-invisible e-con e-parent\" data-id=\"232a149\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;fadeIn&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-984f892 elementor-widget elementor-widget-html\" data-id=\"984f892\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Copy this entire file into ONE Elementor HTML widget.\r\n  Put elementor-reassurance-strip.css into the same widget's\r\n  Advanced > Custom CSS field.\r\n\r\n  This section has no JavaScript behavior, so no script is required.\r\n  Image URLs are configured for staging.vietnamdetox.com.\r\n-->\r\n\r\n<section class=\"vdr\" aria-labelledby=\"vdr-title\">\r\n  <div class=\"vdr__shell\">\r\n    <header class=\"vdr__header\">\r\n      <span class=\"vdr__eyebrow\">M\u1ed9t c\u1ea3m gi\u00e1c \u00e2m th\u1ea7m m\u00e0 nhi\u1ec1u v\u1ecb kh\u00e1ch t\u1eebng tr\u1ea3i qua<\/span>\r\n      <span class=\"vdr__clue\" aria-hidden=\"true\"><\/span>\r\n\r\n      <h2 class=\"vdr__headline\" id=\"vdr-title\">\r\n L\u1ea7n g\u1ea7n nh\u1ea5t b\u1ea1n th\u1ef1c s\u1ef1 c\u1ea3m th\u1ea5y <em>\u0111\u1ea7u \u00f3c minh m\u1eabn<\/em>, <em>c\u01a1 th\u1ec3 nh\u1eb9 nh\u00f5m<\/em> v\u00e0 <em>\u0111\u01b0\u1ee3c ngh\u1ec9 ng\u01a1i tr\u1ecdn v\u1eb9n<\/em> l\u00e0 khi n\u00e0o?\r\n      <\/h2>\r\n\r\n      <p class=\"vdr__description\">\r\n H\u1ea7u h\u1ebft kh\u00e1ch t\u00ecm \u0111\u1ebfn kh\u00f4ng ph\u1ea3i v\u00ec c\u00f3 \u0111i\u1ec1u g\u00ec nghi\u00eam tr\u1ecdng. H\u1ecd \u0111\u1ebfn v\u00ec c\u1ea3m th\u1ea5y c\u00f3 \u0111i\u1ec1u g\u00ec \u0111\u00f3 kh\u00f4ng c\u00f2n \u1ed5n. \r\n      <\/p>\r\n    <\/header>\r\n\r\n    <div class=\"vdr__gallery\" role=\"group\" aria-label=\"Scenes from Vietnam Detox retreats\">\r\n      <figure class=\"vdr__photo\">\r\n        <img src=\"\/wp-content\/uploads\/2026\/08\/Vietnam-detox-wellness-retreat-healthy-lifestyle-song-khoe-thai-doc-70.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n      <\/figure>\r\n\r\n      <figure class=\"vdr__photo\">\r\n        <img src=\"\/wp-content\/uploads\/2026\/08\/Vietnam-detox-wellness-retreat-healthy-lifestyle-song-khoe-thai-doc-16.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n      <\/figure>\r\n\r\n      <figure class=\"vdr__photo\">\r\n        <img src=\"\/wp-content\/uploads\/2026\/08\/Vietnam-detox-fasting-wellness-retreats-Paddle-board-yoga.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n      <\/figure>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-49ad905 e-flex e-con-boxed elementor-invisible e-con e-parent\" data-id=\"49ad905\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;fadeIn&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-73aa551 elementor-widget elementor-widget-html\" data-id=\"73aa551\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Copy this entire file into ONE Elementor HTML widget.\r\n  Put elementor-buchinger-quote.css into the same widget's\r\n  Advanced > Custom CSS field.\r\n-->\r\n\r\n<section class=\"vdq\" data-vdq-section=\"\" aria-label=\"Quote by Otto Buchinger\">\r\n  <div class=\"vdq__shell\">\r\n    <figure class=\"vdq__card vdq__reveal\" data-vdq-reveal=\"\">\r\n      <span class=\"vdq__mark vdq__mark--open\" aria-hidden=\"true\">\u201c<\/span>\r\nNh\u1ecbn \u0103n, kh\u00f4ng ch\u00fat nghi ng\u1edd, l\u00e0 ph\u01b0\u01a1ng ph\u00e1p \u0111i\u1ec1u tr\u1ecb sinh h\u1ecdc hi\u1ec7u qu\u1ea3 nh\u1ea5t.\r\n<blockquote class=\"vdq__quote\"><strong>\u0110\u00f3 l\u00e0 m\u1ed9t cu\u1ed9c ph\u1eabu thu\u1eadt kh\u00f4ng c\u1ea7n dao m\u1ed5.<\/strong><\/blockquote>\r\n<span class=\"vdq__mark vdq__mark--close\" aria-hidden=\"true\">\u201d<\/span>\r\n\r\n\r\nOtto Buchinger\r\n\r\n \r\n\r\n      <span class=\"vdq__rule\" aria-hidden=\"true\"><\/span>\r\n    <\/figure>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function() {\r\n  'use strict';\r\n\r\n  var sections = document.querySelectorAll('[data-vdq-section]');\r\n\r\n  sections.forEach(function(section) {\r\n    if (section.dataset.vdqReady === 'true') return;\r\n    section.dataset.vdqReady = 'true';\r\n\r\n    var quote = section.querySelector('[data-vdq-reveal]');\r\n    var reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n\r\n    if (!quote) return;\r\n\r\n    if (reducedMotion || !('IntersectionObserver' in window)) {\r\n      quote.classList.add('is-visible');\r\n      return;\r\n    }\r\n\r\n    var observer = new IntersectionObserver(function(entries) {\r\n      entries.forEach(function(entry) {\r\n        if (!entry.isIntersecting) return;\r\n        entry.target.classList.add('is-visible');\r\n        observer.unobserve(entry.target);\r\n      });\r\n    }, {\r\n      threshold: 0.12,\r\n      rootMargin: '0px 0px -40px 0px'\r\n    });\r\n\r\n    observer.observe(quote);\r\n  });\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-6861989 e-con-full e-flex elementor-invisible e-con e-parent\" data-id=\"6861989\" 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-da6ac4f elementor-widget elementor-widget-html\" data-id=\"da6ac4f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Copy this entire file into ONE Elementor HTML widget.\r\n  Put elementor-why-section.css into the same widget's\r\n  Advanced > Custom CSS field.\r\n\r\n  Asset URLs are configured for staging.vietnamdetox.com.\r\n  See README.md before using this widget on another host.\r\n-->\r\n\r\n<section class=\"vdw\" id=\"why\" data-vdw-section=\"\" aria-labelledby=\"vdw-title\">\r\n\r\n  <div class=\"vdw__shell\">\r\n    <header class=\"vdw__header\">\r\n      <span class=\"vdw__eyebrow\">\u0110i\u1ec1u nhi\u1ec1u v\u1ecb kh\u00e1ch b\u1eaft \u0111\u1ea7u nh\u1eadn th\u1ea5y<\/span>\r\n      <span class=\"vdw__clue\" aria-hidden=\"true\"><\/span>\r\n\r\n      <h2 class=\"vdw__headline\" id=\"vdw-title\">\r\n C\u01a1 th\u1ec3 b\u1ea1n s\u1ebd c\u1ea3m th\u1ea5y th\u1ebf n\u00e0o khi cu\u1ed1i c\u00f9ng c\u0169ng <em>ch\u1eadm l\u1ea1i<\/em>.\r\n      <\/h2>\r\n\r\n      <p class=\"vdw__intro\">\r\n Ban \u0111\u1ea7u, nhi\u1ec1u kh\u00e1ch t\u00ecm \u0111\u1ebfn \u0111\u1ec3 <em>gi\u1ea3m c\u00e2n<\/em> v\u00e0 <em>c\u1ea3m th\u1ea5y d\u1ec5 ch\u1ecbu h\u01a1n trong c\u01a1 th\u1ec3 m\u00ecnh<\/em>. R\u1ed3i h\u1ecd nh\u1eadn ra m\u00ecnh c\u0169ng \u0111ang bu\u00f4ng b\u1ecf <em>c\u0103ng th\u1eb3ng t\u00edch t\u1ee5<\/em>, nh\u1eefng n\u1ebfp s\u1ed1ng kh\u00f4ng l\u00e0nh m\u1ea1nh, <em>s\u1ef1 r\u1ed1i b\u1eddi trong t\u00e2m tr\u00ed<\/em> v\u00e0 c\u1ea3m gi\u00e1c l\u00fac n\u00e0o c\u0169ng ph\u1ea3i \u201cb\u1eadt\u201d. Nh\u1eefng thay \u0111\u1ed5i h\u1ecd c\u1ea3m nh\u1eadn th\u01b0\u1eddng di\u1ec5n ra c\u1ea3 v\u1ec1 <em>th\u1ec3 ch\u1ea5t l\u1eabn c\u1ea3m x\u00fac<\/em>.  \r\n      <\/p>\r\n    <\/header>\r\n\r\n    <div class=\"vdw__video-intro\">\r\n      <figure class=\"vdw__video-frame\">\r\n         <figcaption>Ph\u1ecfng v\u1ea5n kh\u00e1ch <span aria-hidden=\"true\">\u00b7<\/span> Paul chia s\u1ebb tr\u1ea3i nghi\u1ec7m t\u1ea1i Vietnam Detox.<\/figcaption>\r\n<video controls=\"\" preload=\"metadata\" playsinline=\"\"><source src=\"\/wp-content\/uploads\/2026\/06\/Interview-Vietnam-detox-guest-opinion-Paul.mp4\" type=\"video\/mp4\">Tr\u00ecnh duy\u1ec7t c\u1ee7a b\u1ea1n kh\u00f4ng h\u1ed7 tr\u1ee3 video.<\/source><\/video>\r\n  \r\n      <\/figure>\r\n    <\/div>\r\n\r\n    <div class=\"vdw__grid\">\r\n      <article class=\"vdw__card vdw__reveal vdw__delay-1\" data-vdw-reveal=\"\">\r\n        <div class=\"vdw__visual\">\r\n          <img src=\"\/wp-content\/uploads\/2026\/08\/blood-sugar.png\" alt=\"Minh h\u1ecda s\u1ef1 minh m\u1eabn\" loading=\"lazy\" decoding=\"async\">\r\n        <\/div>\r\n\r\n        <div class=\"vdw__copy\">\r\n          <h3>N\u0103ng l\u01b0\u1ee3ng \u1ed5n \u0111\u1ecbnh h\u01a1n<\/h3>\r\n          <p class=\"vdw__primary\">\r\n Nhi\u1ec1u kh\u00e1ch \u0111\u1ebfn d\u00f9 \u0111\u00e3 ng\u1ee7 v\u1eabn c\u1ea3m th\u1ea5y ki\u1ec7t s\u1ee9c.\r\n          <\/p>\r\n        <\/div>\r\n\r\n        <p class=\"vdw__supporting\">\r\n T\u00ecnh tr\u1ea1ng t\u1ee5t n\u0103ng l\u01b0\u1ee3ng v\u00e0o bu\u1ed5i chi\u1ec1u, m\u1ec7t m\u1ecfi k\u00e9o d\u00e0i v\u00e0 c\u1ea3m gi\u00e1c c\u1ea1n ki\u1ec7t th\u01b0\u1eddng d\u1ecbu d\u1ea7n khi c\u01a1 th\u1ec3 tr\u1edf v\u1ec1 nh\u1ecbp \u0111i\u1ec7u th\u01b0 th\u00e1i h\u01a1n.\r\n        <\/p>\r\n      <\/article>\r\n\r\n      <article class=\"vdw__card vdw__reveal vdw__delay-2\" data-vdw-reveal=\"\">\r\n        <div class=\"vdw__visual\">\r\n          <img src=\"\/wp-content\/uploads\/2026\/08\/blood-pressure-2.png\" alt=\"Minh h\u1ecda tr\u1ea1ng th\u00e1i th\u01b0 th\u00e1i s\u00e2u\" loading=\"lazy\" decoding=\"async\">\r\n        <\/div>\r\n\r\n        <div class=\"vdw__copy\">\r\n          <h3>M\u1ed1i quan h\u1ec7 nh\u1eb9 nh\u00e0ng h\u01a1n v\u1edbi th\u1ee9c \u0103n<\/h3>\r\n          <p class=\"vdw__primary\">\r\n M\u1ed9t s\u1ed1 kh\u00e1ch \u0111\u1ebfn v\u1edbi nh\u1eefng c\u01a1n th\u00e8m \u0103n li\u00ean t\u1ee5c, th\u00f3i quen \u0103n theo c\u1ea3m x\u00fac ho\u1eb7c t\u00e2m tr\u00ed lu\u00f4n qu\u1ea9n quanh chuy\u1ec7n \u0103n u\u1ed1ng.\r\n          <\/p>\r\n        <\/div>\r\n\r\n        <p class=\"vdw__supporting\">\r\n Khi c\u01a1 th\u1ec3 ch\u1eadm l\u1ea1i v\u00e0 vi\u1ec7c \u0103n u\u1ed1ng tr\u1edf n\u00ean \u0111\u01a1n gi\u1ea3n h\u01a1n, nhi\u1ec1u kh\u00e1ch d\u1ea7n b\u00ecnh t\u00e2m v\u00e0 l\u00e0m ch\u1ee7 c\u1ea3m gi\u00e1c \u0111\u00f3i t\u1ed1t h\u01a1n.\r\n        <\/p>\r\n      <\/article>\r\n\r\n      <article class=\"vdw__card vdw__reveal vdw__delay-3\" data-vdw-reveal=\"\">\r\n        <div class=\"vdw__visual\">\r\n          <img src=\"\/wp-content\/uploads\/2026\/08\/fewer-cravings-2.png\" alt=\"Minh h\u1ecda c\u1ea3m gi\u00e1c th\u00e8m \u0103n \u1ed5n \u0111\u1ecbnh\" loading=\"lazy\" decoding=\"async\">\r\n        <\/div>\r\n\r\n        <div class=\"vdw__copy\">\r\n          <h3>C\u01a1 th\u1ec3 nh\u1eb9 nh\u00f5m tr\u1edf l\u1ea1i<\/h3>\r\n          <p class=\"vdw__primary\">\r\n Nhi\u1ec1u kh\u00e1ch \u0111\u1ebfn v\u1edbi c\u1ea3m gi\u00e1c n\u1eb7ng n\u1ec1, \u0111\u1ea7y b\u1ee5ng ho\u1eb7c c\u01a1 th\u1ec3 qu\u00e1 t\u1ea3i.\r\n          <\/p>\r\n        <\/div>\r\n\r\n        <p class=\"vdw__supporting\">\r\n Sau v\u00e0i ng\u00e0y cho h\u1ec7 ti\u00eau h\u00f3a ngh\u1ec9 ng\u01a1i, c\u01a1 th\u1ec3 th\u01b0\u1eddng nh\u1eb9 nh\u00f5m, th\u01b0 th\u00e1i v\u00e0 b\u1edbt n\u1eb7ng n\u1ec1 h\u01a1n.\r\n        <\/p>\r\n      <\/article>\r\n\r\n      <article class=\"vdw__card vdw__card--offset-left vdw__reveal vdw__delay-4\" data-vdw-reveal=\"\">\r\n        <div class=\"vdw__visual\">\r\n          <img src=\"\/wp-content\/uploads\/2026\/08\/lighter-digestion-2.png\" alt=\"Minh h\u1ecda h\u1ec7 ti\u00eau h\u00f3a nh\u1eb9 nh\u00f5m\" loading=\"lazy\" decoding=\"async\">\r\n        <\/div>\r\n\r\n        <div class=\"vdw__copy\">\r\n          <h3>Suy ngh\u0129 s\u00e1ng r\u00f5 h\u01a1n<\/h3>\r\n          <p class=\"vdw__primary\">\r\n Qu\u00e1 t\u1ea3i tinh th\u1ea7n th\u01b0\u1eddng bi\u1ec3u hi\u1ec7n qua nh\u1eefng suy ngh\u0129 kh\u00f4ng ng\u1eebng, ti\u1ebfng \u1ed3n trong t\u00e2m tr\u00ed v\u00e0 kh\u00f3 t\u1eadp trung.\r\n          <\/p>\r\n        <\/div>\r\n\r\n        <p class=\"vdw__supporting\">\r\n Khi nh\u1ecbp s\u1ed1ng ch\u1eadm l\u1ea1i, nhi\u1ec1u kh\u00e1ch th\u1ea5y suy ngh\u0129 s\u00e1ng r\u00f5 h\u01a1n, d\u1ec5 t\u1eadp trung h\u01a1n v\u00e0 t\u00e2m tr\u00ed c\u0169ng r\u1ed9ng tho\u00e1ng tr\u1edf l\u1ea1i.\r\n        <\/p>\r\n      <\/article>\r\n\r\n      <article class=\"vdw__card vdw__card--offset-right vdw__reveal vdw__delay-5\" data-vdw-reveal=\"\">\r\n        <div class=\"vdw__visual\">\r\n          <img src=\"\/wp-content\/uploads\/2026\/08\/metabolic-reset-2.png\" alt=\"Minh h\u1ecda qu\u00e1 tr\u00ecnh t\u00e1i thi\u1ebft l\u1eadp chuy\u1ec3n h\u00f3a\" loading=\"lazy\" decoding=\"async\">\r\n        <\/div>\r\n\r\n        <div class=\"vdw__copy\">\r\n          <h3>Tr\u1edf l\u1ea1i l\u00e0 ch\u00ednh m\u00ecnh<\/h3>\r\n          <p class=\"vdw__primary\">\r\n M\u1ed9t s\u1ed1 kh\u00e1ch \u0111\u1ebfn trong tr\u1ea1ng th\u00e1i xa r\u1eddi ch\u00ednh m\u00ecnh, m\u1ec7t m\u1ecfi c\u1ea3m x\u00fac ho\u1eb7c m\u1eafc k\u1eb9t trong gu\u1ed3ng c\u0103ng th\u1eb3ng.\r\n          <\/p>\r\n        <\/div>\r\n\r\n        <p class=\"vdw__supporting\">\r\n Khi d\u1ea7n h\u00f2a v\u00e0o nh\u1ecbp ngh\u1ec9 d\u01b0\u1ee1ng, nhi\u1ec1u ng\u01b0\u1eddi c\u1ea3m th\u1ea5y b\u00ecnh t\u00e2m, v\u1eefng v\u00e0ng v\u00e0 hi\u1ec7n di\u1ec7n tr\u1ecdn v\u1eb9n h\u01a1n.\r\n        <\/p>\r\n      <\/article>\r\n    <\/div>\r\n\r\n    <p class=\"vdw__closing\">\r\n Nhi\u1ec1u kh\u00e1ch t\u00ecm \u0111\u1ebfn kh\u00f4ng ph\u1ea3i v\u00ec c\u00f3 \u0111i\u1ec1u g\u00ec nghi\u00eam tr\u1ecdng, m\u00e0 v\u00ec h\u1ecd kh\u00f4ng c\u00f2n c\u1ea3m th\u1ea5y d\u1ec5 ch\u1ecbu trong c\u01a1 th\u1ec3, ngu\u1ed3n n\u0103ng l\u01b0\u1ee3ng hay nh\u1ecbp s\u1ed1ng h\u1eb1ng ng\u00e0y c\u1ee7a m\u00ecnh. \r\n    <\/p>\r\n\r\n    <div class=\"vdw__cta\">\r\n      <a class=\"vdw__button\" href=\"#retreats\">Kh\u00e1m ph\u00e1 c\u00e1c k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng<\/a>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function() {\r\n  'use strict';\r\n\r\n  var sections = document.querySelectorAll('[data-vdw-section]');\r\n\r\n  sections.forEach(function(section) {\r\n    if (section.dataset.vdwReady === 'true') return;\r\n    section.dataset.vdwReady = 'true';\r\n\r\n    var items = section.querySelectorAll('[data-vdw-reveal]');\r\n    var reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n\r\n    function revealAll() {\r\n      items.forEach(function(item) {\r\n        item.classList.add('is-visible');\r\n      });\r\n    }\r\n\r\n    if (!items.length || reducedMotion || !('IntersectionObserver' in window)) {\r\n      revealAll();\r\n      return;\r\n    }\r\n\r\n    var observer = new IntersectionObserver(function(entries) {\r\n      entries.forEach(function(entry) {\r\n        if (!entry.isIntersecting) return;\r\n        entry.target.classList.add('is-visible');\r\n        observer.unobserve(entry.target);\r\n      });\r\n    }, {\r\n      threshold: 0.12,\r\n      rootMargin: '0px 0px -40px 0px'\r\n    });\r\n\r\n    items.forEach(function(item) {\r\n      observer.observe(item);\r\n    });\r\n  });\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<section class=\"elementor-element elementor-element-749e46b e-con-full e-flex elementor-invisible e-con e-parent\" data-id=\"749e46b\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;fadeIn&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d98bcad elementor-widget elementor-widget-html\" data-id=\"d98bcad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Copy this entire file into ONE Elementor HTML widget.\r\n  Put elementor-retreat-atmosphere-gallery.css into the same widget's\r\n  Advanced > Custom CSS field.\r\n\r\n  This gallery has no JavaScript behavior, so no script is required.\r\n  Image URLs are configured for staging.vietnamdetox.com.\r\n-->\r\n\r\n<section class=\"vda\" aria-labelledby=\"vda-title\">\r\n  <header class=\"vda__intro\">\r\n    <span class=\"vda__eyebrow\">Kh\u00f4ng kh\u00ed ngh\u1ec9 d\u01b0\u1ee1ng<\/span>\r\n    <h2 class=\"vda__title\" id=\"vda-title\">Nh\u1eefng h\u00ecnh \u1ea3nh t\u1eeb h\u00e0nh tr\u00ecnh<\/h2>\r\n  <\/header>\r\n\r\n  <div class=\"vda__gallery\">\r\n    <figure class=\"vda__frame vda__frame--tall\">\r\n      <img src=\"\/wp-content\/uploads\/2026\/08\/Yoga-Class-flamingo-retreat.webp\" alt=\"C\u00e1c v\u1ecb kh\u00e1ch c\u00f9ng c\u01b0\u1eddi vui b\u00ean b\u1edd s\u00f4ng v\u00e0o bu\u1ed5i s\u00e1ng\" loading=\"lazy\" decoding=\"async\">\r\n    <\/figure>\r\n\r\n    <figure class=\"vda__frame\">\r\n      <img src=\"\/wp-content\/uploads\/2026\/08\/Pouring-green-juice-into-glass.webp\" alt=\"N\u01b0\u1edbc \u00e9p xanh t\u01b0\u01a1i \u0111\u01b0\u1ee3c r\u00f3t cho kh\u00e1ch \u0111ang nh\u1ecbn \u0103n\" loading=\"lazy\" decoding=\"async\">\r\n    <\/figure>\r\n\r\n    <figure class=\"vda__frame vda__frame--short\">\r\n      <img src=\"\/wp-content\/uploads\/2026\/08\/Vietnam-detox-wellness-retreat-healthy-lifestyle-song-khoe-thai-doc-31.webp\" alt=\"Chi ti\u1ebft ki\u1ebfn tr\u00fac c\u1ee7a s\u00e2n trong t\u1ea1i m\u1ed9t khu ngh\u1ec9 d\u01b0\u1ee1ng Vi\u1ec7t Nam\" loading=\"lazy\" decoding=\"async\">\r\n    <\/figure>\r\n\r\n    <figure class=\"vda__frame\">\r\n      <img src=\"\/wp-content\/uploads\/2026\/08\/Vietnam-detox-wellness-retreat-healthy-lifestyle-song-khoe-thai-doc-30.webp\" alt=\"C\u00e1c v\u1ecb kh\u00e1ch c\u00f9ng gi\u00e3n c\u01a1 ngo\u00e0i tr\u1eddi\" loading=\"lazy\" decoding=\"async\">\r\n    <\/figure>\r\n\r\n    <figure class=\"vda__frame\">\r\n      <img src=\"\/wp-content\/uploads\/2026\/05\/guests-relaxing-in-hot-spring.webp\" alt=\"C\u00e1c v\u1ecb kh\u00e1ch th\u01b0 gi\u00e3n trong h\u1ed3 kho\u00e1ng n\u00f3ng\" loading=\"lazy\" decoding=\"async\">\r\n    <\/figure>\r\n  <\/div>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-6416ebb e-con-full reassurance-strip e-flex e-con e-parent\" data-id=\"6416ebb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-92df250 elementor-widget elementor-widget-html\" data-id=\"92df250\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Copy this entire file into ONE Elementor HTML widget.\r\n  Put elementor-reassurance-cards.css into the same widget's\r\n  Advanced > Custom CSS field.\r\n-->\r\n\r\n<section class=\"vrc\" data-vrc-section=\"\" aria-label=\"Why guests choose Vietnam Detox\">\r\n  <div class=\"vrc__grid\">\r\n    <article class=\"vrc__card vrc__card--forest vrc__reveal vrc__delay-1\" data-vrc-reveal=\"\">\r\n      <span class=\"vrc__eyebrow\">H\u01a1n 10 n\u0103m kinh nghi\u1ec7m<\/span>\r\n      <h3 class=\"vrc__title\">Nh\u1ecbn \u0103n Buchinger v\u1edbi s\u1ef1 ch\u0103m s\u00f3c chu \u0111\u00e1o v\u00e0 l\u1ed9 tr\u00ecnh r\u00f5 r\u00e0ng<\/h3>\r\n      <p class=\"vrc__copy\">\r\n D\u01b0\u1edbi s\u1ef1 d\u1eabn d\u1eaft c\u1ee7a Dieter Buchner v\u00e0 Tr\u01b0\u01a1ng T\u1ea5n Ho\u00e0n, Vietnam Detox k\u1ebft h\u1ee3p truy\u1ec1n th\u1ed1ng nh\u1ecbn \u0103n Buchinger c\u1ee7a \u0110\u1ee9c v\u1edbi l\u00f2ng hi\u1ebfu kh\u00e1ch ch\u00e2n th\u00e0nh c\u1ee7a ng\u01b0\u1eddi Vi\u1ec7t, t\u1ea1o n\u00ean nh\u1eefng k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng mang l\u1ea1i c\u1ea3m gi\u00e1c b\u00ecnh y\u00ean, b\u00e0i b\u1ea3n v\u00e0 th\u1ea5m \u0111\u1eabm t\u00ecnh ng\u01b0\u1eddi.\r\n      <\/p>\r\n    <\/article>\r\n\r\n    <article class=\"vrc__card vrc__card--panna vrc__reveal vrc__delay-2\" data-vrc-reveal=\"\">\r\n      <span class=\"vrc__eyebrow\">\u0110\u1ed3ng h\u00e0nh xuy\u00ean su\u1ed1t<\/span>\r\n      <h3 class=\"vrc__title\">H\u1ed7 tr\u1ee3 t\u1eeb l\u00fac b\u1ea1n \u0111\u1ebfn cho \u0111\u1ebfn khi r\u1eddi \u0111i<\/h3>\r\n      <p class=\"vrc__copy\">\r\n Trong su\u1ed1t k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng, kh\u00e1ch lu\u00f4n \u0111\u01b0\u1ee3c h\u01b0\u1edbng d\u1eabn t\u1eadn t\u00ecnh, chia s\u1ebb ki\u1ebfn th\u1ee9c th\u1ef1c t\u1ebf v\u00e0 c\u00f3 \u0111\u1ee7 kh\u00f4ng gian \u0111\u1ec3 th\u1eadt s\u1ef1 ch\u1eadm l\u1ea1i, tr\u1edf v\u1ec1 v\u1edbi nh\u1ecbp s\u1ed1ng l\u00e0nh m\u1ea1nh h\u01a1n.\r\n      <\/p>\r\n    <\/article>\r\n\r\n    <article class=\"vrc__card vrc__card--ivory vrc__reveal vrc__delay-3\" data-vrc-reveal=\"\">\r\n      <span class=\"vrc__eyebrow\">Nh\u00f3m ngh\u1ec9 d\u01b0\u1ee1ng nh\u1ecf<\/span>\r\n      <h3 class=\"vrc__title\">T\u1ed1i \u0111a 14 kh\u00e1ch trong m\u1ed7i k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng<\/h3>\r\n      <p class=\"vrc__copy\">\r\n Nh\u00f3m nh\u1ecf t\u1ea1o n\u00ean tr\u1ea3i nghi\u1ec7m ngh\u1ec9 d\u01b0\u1ee1ng th\u01b0 th\u00e1i h\u01a1n, v\u1edbi s\u1ef1 quan t\u00e2m s\u00e1t sao \u0111\u1ebfn t\u1eebng ng\u01b0\u1eddi, kh\u00f4ng gian y\u00ean t\u0129nh v\u00e0 b\u1ea7u kh\u00f4ng kh\u00ed kh\u00f4ng bao gi\u1edd \u0111\u00f4ng \u0111\u00fac hay xa c\u00e1ch.\r\n      <\/p>\r\n    <\/article>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function() {\r\n  'use strict';\r\n\r\n  var sections = document.querySelectorAll('[data-vrc-section]');\r\n\r\n  sections.forEach(function(section) {\r\n    if (section.dataset.vrcReady === 'true') return;\r\n    section.dataset.vrcReady = 'true';\r\n\r\n    var cards = section.querySelectorAll('[data-vrc-reveal]');\r\n    var reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n\r\n    function revealAll() {\r\n      cards.forEach(function(card) {\r\n        card.classList.add('is-visible');\r\n      });\r\n    }\r\n\r\n    if (!cards.length || reducedMotion || !('IntersectionObserver' in window)) {\r\n      revealAll();\r\n      return;\r\n    }\r\n\r\n    var observer = new IntersectionObserver(function(entries) {\r\n      entries.forEach(function(entry) {\r\n        if (!entry.isIntersecting) return;\r\n        entry.target.classList.add('is-visible');\r\n        observer.unobserve(entry.target);\r\n      });\r\n    }, {\r\n      threshold: 0.12,\r\n      rootMargin: '0px 0px -40px 0px'\r\n    });\r\n\r\n    cards.forEach(function(card) {\r\n      observer.observe(card);\r\n    });\r\n  });\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-f8ca32e e-flex e-con-boxed elementor-invisible e-con e-parent\" data-id=\"f8ca32e\" data-element_type=\"container\" data-e-type=\"container\" id=\"method\" data-settings=\"{&quot;animation&quot;:&quot;fadeIn&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-053d89d elementor-widget elementor-widget-html\" data-id=\"053d89d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\n  Vietnam Detox \u2014 Elementor Five Method Principles Section\n  Paste this entire file into one Elementor HTML widget.\n  Add method-principles.css separately as described in README.md.\n-->\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&family=Be+Vietnam+Pro:wght@300;400;500;600;700&display=swap\" rel=\"stylesheet\">\n\n<section id=\"method\" class=\"vnd-principles\" data-vnd-principles=\"\">\n  <div class=\"vnd-principles__inner\">\n    <div class=\"vnd-principles__layout\">\n      <div class=\"vnd-principles__left\">\n        <header class=\"vnd-principles__header\">\n          <span class=\"vnd-principles__eyebrow\">C\u00e1ch th\u1ee9c ho\u1ea1t \u0111\u1ed9ng<\/span>\n          <span class=\"vnd-principles__rule\" aria-hidden=\"true\"><\/span>\n\n          <h2 class=\"vnd-principles__headline\">\n N\u0103m nguy\u00ean t\u1eafc c\u1ed1t l\u00f5i t\u1ea1o n\u00ean\n<span>s\u1ef1 ph\u1ee5c h\u1ed3i b\u1ec1n v\u1eefng<\/span>\n          <\/h2>\n\n          <div class=\"vnd-principles__introduction\">\n            <p>\n M\u1ed7i k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng Vietnam Detox di\u1ec5n ra theo m\u1ed9t nh\u1ecbp \u0111i\u1ec7u th\u01b0 th\u00e1i, c\u00f3 l\u1ed9 tr\u00ecnh, xoay quanh nh\u1ecbn \u0103n, ngh\u1ec9 ng\u01a1i, v\u1eadn \u0111\u1ed9ng v\u00e0 \u0103n l\u1ea1i c\u1ea9n tr\u1ecdng.\n            <\/p>\n\n            <p>\n N\u0103m nguy\u00ean t\u1eafc n\u00e0y t\u1ea1o n\u00ean m\u1ed9t tr\u1ea3i nghi\u1ec7m n\u00e2ng \u0111\u1ee1, d\u1ec5 hi\u1ec3u v\u00e0 b\u1ec1n v\u1eefng, kh\u00f4ng c\u1ef1c \u0111oan hay qu\u00e1 s\u1ee9c.\n            <\/p>\n\n            <p>\n M\u1ee5c ti\u00eau kh\u00f4ng ph\u1ea3i c\u01b0\u1eddng \u0111\u1ed9 hay th\u00e0nh t\u00edch, m\u00e0 l\u00e0 gi\u00fap c\u01a1 th\u1ec3 ch\u1eadm l\u1ea1i, ph\u1ee5c h\u1ed3i v\u00e0 d\u1ea7n l\u1ea5y l\u1ea1i s\u1ef1 \u1ed5n \u0111\u1ecbnh. \n            <\/p>\n          <\/div>\n        <\/header>\n\n        <figure class=\"vnd-principles__visual\">\n          <img decoding=\"async\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/gallery\/guest-sitting-on-mountain-vietnam-16-9.webp\" alt=\"Du kh\u00e1ch l\u1eb7ng l\u1ebd d\u1eebng ch\u00e2n t\u1ea1i m\u1ed9t \u0111i\u1ec3m ng\u1eafm c\u1ea3nh tr\u00ean n\u00fai.\" loading=\"lazy\">\n        <\/figure>\n      <\/div>\n\n      <div class=\"vnd-principles__cards\">\n        <article class=\"vnd-principle-card\" data-principle-reveal=\"\">\n          <h3>Th\u1ea5u hi\u1ec3u c\u01a1 th\u1ec3 b\u1ea1n<\/h3>\n          <p>\n Ch\u00fang t\u00f4i gi\u1ea3i th\u00edch nh\u1eefng g\u00ec \u0111ang di\u1ec5n ra b\u00ean trong c\u01a1 th\u1ec3 b\u1ea1n, gi\u00fap qu\u00e1 tr\u00ecnh nh\u1ecbn \u0103n tr\u1edf n\u00ean r\u00f5 r\u00e0ng v\u00e0 d\u1ec5 n\u1eafm b\u1eaft thay v\u00ec g\u00e2y c\u1ea3m gi\u00e1c cho\u00e1ng ng\u1ee3p.\n          <\/p>\n          <p>\n Nhi\u1ec1u kh\u00e1ch ra v\u1ec1 v\u1edbi hi\u1ec3u bi\u1ebft r\u00f5 h\u01a1n v\u1ec1 n\u0103ng l\u01b0\u1ee3ng, c\u1ea3m gi\u00e1c \u0111\u00f3i, gi\u1ea5c ng\u1ee7 v\u00e0 nh\u1ecbp ph\u1ee5c h\u1ed3i c\u1ee7a ch\u00ednh m\u00ecnh.\n          <\/p>\n        <\/article>\n\n        <article class=\"vnd-principle-card\" data-principle-reveal=\"\">\n          <h3>Nh\u00f3m nh\u1ecf & h\u1ed7 tr\u1ee3 ch\u00e2n th\u00e0nh<\/h3>\n          <p>\n Quy m\u00f4 m\u1ed7i nh\u00f3m \u0111\u01b0\u1ee3c ch\u1ee7 \u0111\u1ed9ng gi\u1edbi h\u1ea1n \u1edf t\u1ed1i \u0111a 14 kh\u00e1ch.\n          <\/p>\n          <p>\n Nhi\u1ec1u ng\u01b0\u1eddi c\u1ea3m th\u1ea5y nh\u1eb9 nh\u00f5m khi c\u00f3 m\u1ed9t kho\u1ea3ng th\u1eddi gian kh\u00f4ng ph\u1ea3i t\u1ef1 m\u00ecnh g\u00e1nh h\u1ebft c\u0103ng th\u1eb3ng, \u00e1p l\u1ef1c v\u00e0 ki\u1ec7t s\u1ee9c.\n          <\/p>\n        <\/article>\n\n        <article class=\"vnd-principle-card\" data-principle-reveal=\"\">\n          <h3>Ngh\u1ec9 ng\u01a1i & gi\u1ea5c ng\u1ee7<\/h3>\n          <p>\n H\u1ea7u h\u1ebft kh\u00e1ch \u0111\u1ebfn trong tr\u1ea1ng th\u00e1i tinh th\u1ea7n qu\u00e1 t\u1ea3i v\u00ec k\u00edch th\u00edch v\u00e0 c\u01a1 th\u1ec3 ki\u1ec7t s\u1ee9c.\n          <\/p>\n          <p>\n Nh\u1ecbp s\u1ed1ng nh\u1eb9 nh\u00e0ng h\u01a1n, \u00edt b\u1ecb k\u00edch th\u00edch h\u01a1n v\u00e0 \u0111\u01b0\u1ee3c ngh\u1ec9 ng\u01a1i nhi\u1ec1u h\u01a1n th\u01b0\u1eddng gi\u00fap c\u01a1 th\u1ec3 th\u01b0 gi\u00e3n v\u00e0 ng\u1ee7 s\u00e2u h\u01a1n tr\u1edf l\u1ea1i.\n          <\/p>\n        <\/article>\n\n        <article class=\"vnd-principle-card\" data-principle-reveal=\"\">\n          <h3>V\u1eadn \u0111\u1ed9ng nh\u1eb9 nh\u00e0ng & thi\u00ean nhi\u00ean<\/h3>\n          <p>V\u1eadn \u0111\u1ed9ng nh\u1eb1m n\u00e2ng \u0111\u1ee1 c\u01a1 th\u1ec3, kh\u00f4ng t\u1ea1o th\u00eam \u00e1p l\u1ef1c.<\/p>\n          <p>\n \u0110i b\u1ed9, gi\u00e3n c\u01a1 v\u00e0 \u1edf ngo\u00e0i tr\u1eddi gi\u00fap nhi\u1ec1u kh\u00e1ch t\u00ecm l\u1ea1i c\u1ea3m gi\u00e1c n\u0103ng \u0111\u1ed9ng m\u00e0 kh\u00f4ng ch\u1ecbu \u00e1p l\u1ef1c th\u00e0nh t\u00edch hay ki\u1ec7t s\u1ee9c.\n          <\/p>\n        <\/article>\n\n        <article class=\"vnd-principle-card vnd-principle-card--centered\" data-principle-reveal=\"\">\n          <h3>H\u01b0\u1edbng d\u1eabn an to\u00e0n & b\u00e0i b\u1ea3n<\/h3>\n          <p>\n Qu\u00e1 tr\u00ecnh nh\u1ecbn \u0103n \u0111\u01b0\u1ee3c h\u01b0\u1edbng d\u1eabn m\u1ed9t c\u00e1ch c\u1ea9n tr\u1ecdng, th\u1ef1c t\u1ebf v\u00e0 ch\u00fa tr\u1ecdng \u0111\u1ebfn s\u1ee9c kh\u1ecfe l\u00e2u d\u00e0i.\n          <\/p>\n          <p>\n Kh\u00f4ng h\u1ee9a h\u1eb9n c\u1ef1c \u0111oan. Kh\u00f4ng g\u00e2y \u00e1p l\u1ef1c ph\u1ea3i t\u1ed1i \u01b0u m\u1ecdi th\u1ee9. Ch\u1ec9 c\u00f3 m\u1ed9t l\u1ed9 tr\u00ecnh th\u01b0 th\u00e1i, ki\u1ebfn th\u1ee9c r\u00f5 r\u00e0ng v\u00e0 s\u1ef1 h\u1ed7 tr\u1ee3 c\u00f3 tr\u00e1ch nhi\u1ec7m.  \n          <\/p>\n        <\/article>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<script>\n(function () {\n  \"use strict\";\n\n  var sections = document.querySelectorAll(\n    \"[data-vnd-principles]:not([data-vnd-principles-ready])\"\n  );\n\n  sections.forEach(function (section) {\n    section.setAttribute(\"data-vnd-principles-ready\", \"true\");\n\n    var cards = section.querySelectorAll(\"[data-principle-reveal]\");\n    if (!cards.length) return;\n\n    Array.prototype.forEach.call(cards, function (card, index) {\n      card.style.setProperty(\"--vnd-reveal-delay\", index * 0.12 + \"s\");\n    });\n\n    var reducedMotion = window.matchMedia(\n      \"(prefers-reduced-motion: reduce)\"\n    ).matches;\n\n    function showAllCards() {\n      Array.prototype.forEach.call(cards, function (card) {\n        card.classList.add(\"is-visible\");\n      });\n    }\n\n    if (reducedMotion || !(\"IntersectionObserver\" in window)) {\n      showAllCards();\n      return;\n    }\n\n    var observer = new IntersectionObserver(function (entries) {\n      entries.forEach(function (entry) {\n        if (!entry.isIntersecting) return;\n\n        entry.target.classList.add(\"is-visible\");\n        observer.unobserve(entry.target);\n      });\n    }, {\n      threshold: 0.12,\n      rootMargin: \"0px 0px -30px 0px\"\n    });\n\n    Array.prototype.forEach.call(cards, function (card) {\n      observer.observe(card);\n    });\n  });\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-c42df70 e-con-full e-flex elementor-invisible e-con e-parent\" data-id=\"c42df70\" data-element_type=\"container\" data-e-type=\"container\" id=\"retreats\" 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-28118b3 eyebrow eyebrow-forest elementor-widget elementor-widget-heading\" data-id=\"28118b3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">C\u00e1c k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng s\u1eafp t\u1edbi<\/span>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8da86fc elementor-widget__width-initial elementor-widget-mobile__width-initial elementor-widget elementor-widget-heading\" data-id=\"8da86fc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><h2 class=\"s-headline\" style=\"font-size:clamp(40px,5vw,60px);font-weight:300;font-style:italic\">M\u1ed7i d\u1ea1ng <span style=\"color:var(--ember);font-style:italic\">ki\u1ec7t s\u1ee9c<\/span> c\u1ea7n m\u1ed9t c\u00e1ch ph\u1ee5c h\u1ed3i kh\u00e1c nhau.<\/h2><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div data-dce-text-color=\"#1E3D20\" class=\"elementor-element elementor-element-c1fe6fe elementor-widget elementor-widget-text-editor\" data-id=\"c1fe6fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"s-desc\" style=\"margin-bottom: 0px;\">C\u00f3 ng\u01b0\u1eddi c\u1ea7n ngh\u1ec9 ng\u01a1i s\u00e2u; ng\u01b0\u1eddi kh\u00e1c c\u1ea7n m\u1ed9t nh\u1ecbp s\u1ed1ng nh\u1eb9 nh\u00e0ng, c\u00f3 c\u1ea5u tr\u00fac h\u01a1n ho\u1eb7c s\u1ef1 h\u1ed7 tr\u1ee3 v\u1ec1 \u0103n u\u1ed1ng v\u00e0 n\u0103ng l\u01b0\u1ee3ng. M\u1ed7i ng\u01b0\u1eddi c\u00f3 m\u1ed9t con \u0111\u01b0\u1eddng ph\u1ee5c h\u1ed3i kh\u00e1c nhau. <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1d26aa7 elementor-widget elementor-widget-html\" data-id=\"1d26aa7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--This is the html content for the retreat calendar widget-->\n<div data-retreat-section=\"\" data-api=\"\/wp-json\/retreats\/v1\/all\">\n\n  <!-- CALENDAR -->\n  <div class=\"retreat-calendar\" aria-labelledby=\"retreat-calendar-title\">\n    <div class=\"retreat-calendar-header\">\n      <div>\n        <span class=\"retreat-calendar-eyebrow\">L\u1ecaCH K\u1ef2 NGH\u1ec8 D\u01af\u1ee0NG<\/span>\n\n        <h3 class=\"retreat-calendar-title\" id=\"retreat-calendar-title\">\n Ch\u1ecdn th\u00e1ng b\u1ea1n mu\u1ed1n \u0111i\n        <\/h3>\n\n        <p class=\"retreat-calendar-copy\">\n Xem c\u00e1c k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng di\u1ec5n ra trong th\u00e1ng ph\u00f9 h\u1ee3p v\u1edbi k\u1ebf ho\u1ea1ch c\u1ee7a b\u1ea1n.\n        <\/p>\n      <\/div>\n\n      <p class=\"retreat-calendar-note\">\n L\u1ecbch c\u00f3 th\u1ec3 thay \u0111\u1ed5i. Vui l\u00f2ng x\u00e1c nh\u1eadn tr\u01b0\u1edbc khi \u0111\u1eb7t ch\u1ed7. \n      <\/p>\n    <\/div>\n\n    <div class=\"retreat-calendar-divider\" aria-hidden=\"true\"><\/div>\n\n    <div class=\"retreat-calendar-months\" id=\"retreat-calendar-months\" aria-label=\"Choose a travel month\">\n    <\/div>\n\n    <div class=\"retreat-calendar-results\">\n      <h4 class=\"retreat-calendar-results-title\" id=\"retreat-calendar-results-title\">\n K\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng hi\u1ec7n c\u00f3\n      <\/h4>\n\n      <div class=\"retreat-calendar-list\" id=\"retreat-calendar-list\" aria-live=\"polite\">\n      <\/div>\n\n      <p class=\"retreat-calendar-empty is-visible\" id=\"retreat-calendar-empty\">\n \u0110ang t\u1ea3i l\u1ecbch k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng\u2026\n      <\/p>\n\n      <a href=\"#retreat-options\" class=\"retreat-calendar-action\">\n Xem c\u00e1c l\u1ef1a ch\u1ecdn ngh\u1ec9 d\u01b0\u1ee1ng\n      <\/a>\n\n      <p class=\"retreat-calendar-planning-note\">\n H\u1ea7u h\u1ebft k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng k\u00e9o d\u00e0i 5\u20137 \u0111\u00eam. N\u1ebfu c\u00f3 th\u1ec3, b\u1ea1n n\u00ean \u0111\u1ebfn s\u1edbm m\u1ed9t ng\u00e0y. \n      <\/p>\n    <\/div>\n  <\/div>\n\n  <!-- ORIENTATION GRID -->\n  <div class=\"retreat-orientation-grid\">\n\n    <div class=\"retreat-orientation-item\">\n      <div class=\"retreat-orientation-icon\" aria-hidden=\"true\">\n        <svg viewbox=\"0 0 24 24\" role=\"presentation\" focusable=\"false\">\n          <path d=\"M12 3a8.5 8.5 0 1 0 9 9 7 7 0 0 1-9-9Z\"><\/path>\n        <\/path><\/svg>\n      <\/div>\n\n      <div class=\"retreat-orientation-title\">\n Ngh\u1ec9 ng\u01a1i\n<span style=\"color:var(--ember);font-style:italic;\">S\u00e2u<\/span>\n      <\/div>\n\n      <p class=\"retreat-orientation-copy\">\n Kh\u1ea3 n\u0103ng l\u00e0m ch\u1eadm d\u00f2ng suy ngh\u0129 v\u00e0 th\u1eadt s\u1ef1 t\u1eaft h\u1ebft m\u1ecdi b\u1eadn t\u00e2m.\n      <\/p>\n    <\/div>\n\n    <div class=\"retreat-orientation-item\">\n      <div class=\"retreat-orientation-icon\" aria-hidden=\"true\">\n        <svg viewbox=\"0 0 24 24\" role=\"presentation\" focusable=\"false\">\n          <circle cx=\"12\" cy=\"12\" r=\"8\"><\/circle>\n          <path d=\"M12 7v5l3 2\"><\/path>\n        <\/path><\/svg>\n      <\/div>\n\n      <div class=\"retreat-orientation-title\">\n T\u00e1i thi\u1ebft l\u1eadp\n<span style=\"color:var(--ember);font-style:italic;\">C\u00f3 l\u1ed9 tr\u00ecnh<\/span>\n      <\/div>\n\n      <p class=\"retreat-orientation-copy\">\n Nh\u1ecbp sinh ho\u1ea1t nh\u1eb9 nh\u00e0ng h\u01a1n, khu\u00f4n kh\u1ed5 \u1ed5n \u0111\u1ecbnh h\u01a1n v\u00e0 s\u1ef1 \u0111\u1ed3ng h\u00e0nh trong qu\u00e1 tr\u00ecnh ph\u1ee5c h\u1ed3i.\n      <\/p>\n    <\/div>\n\n    <div class=\"retreat-orientation-item\">\n      <div class=\"retreat-orientation-icon\" aria-hidden=\"true\">\n        <svg viewbox=\"0 0 24 24\" role=\"presentation\" focusable=\"false\">\n          <path d=\"M6 15c3-6 9-8 12-8-1 4-3 10-9 12-2-1-3-2-3-4z\"><\/path>\n          <path d=\"M9 13c1 0 3-1 5-3\"><\/path>\n        <\/path><\/path><\/svg>\n      <\/div>\n\n      <div class=\"retreat-orientation-title\">\n \u0102n u\u1ed1ng &\n<span style=\"color:var(--ember);font-style:italic;\">Nh\u1ecbp \u0111i\u1ec7u c\u01a1 th\u1ec3<\/span>\n      <\/div>\n\n      <p class=\"retreat-orientation-copy\">\n M\u1ed1i quan h\u1ec7 nh\u1eb9 nh\u00e0ng h\u01a1n v\u1edbi th\u1ee9c \u0103n, ti\u00eau h\u00f3a v\u00e0 ngu\u1ed3n n\u0103ng l\u01b0\u1ee3ng h\u1eb1ng ng\u00e0y.\n      <\/p>\n    <\/div>\n\n  <\/div>\n\n  <!-- DYNAMIC RETREAT CARDS -->\n  <div class=\"cards-grid retreat-main-grid\" id=\"retreat-options\" data-retreat-cards=\"\">\n\n    <p class=\"retreat-calendar-empty is-visible\" style=\"grid-column:1\/-1;text-align:center;\">\n \u0110ang t\u1ea3i c\u00e1c k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng\u2026\n    <\/p>\n  <\/div>\n\n<\/div>\n\n<script>\n(function () {\n  const root = document.querySelector(\"[data-retreat-section]\");\n\n  if (!root || root.dataset.retreatReady === \"true\") return;\n  root.dataset.retreatReady = \"true\";\n\n  const TEXT = {\n    en: {\n      locale: \"en-GB\",\n      date: \"date\",\n      dates: \"dates\",\n      noDates: \"No dates yet\",\n      loading: \"Loading retreat dates\u2026\",\n      noMonth: \"No upcoming retreats are available for this month.\",\n      noRetreats: \"No retreats are currently available.\",\n      error: \"Could not load retreat information. Please try again later.\",\n      limited: \"Limited places\",\n      available: \"Available retreats\",\n      multipleDates: \"Multiple dates available\",\n      oneDate: \"1 date available\",\n      byRequest: \"By request\",\n      nextDate: \"Next date\",\n      viewOther: \"View other dates\",\n      hideOther: \"Hide other dates\",\n      startingFrom: \"Starting from\",\n      contactPrice: \"Contact for pricing\",\n      details: \"View Retreat Details\",\n      earlyBooking: \"Early booking\"\n    },\n\n    vi: {\n      locale: \"vi-VN\",\n      date: \"l\u1ecbch\",\n      dates: \"l\u1ecbch\",\n      noDates: \"Ch\u01b0a c\u00f3 l\u1ecbch\",\n      loading: \"\u0110ang t\u1ea3i l\u1ecbch retreat\u2026\",\n      noMonth: \"Kh\u00f4ng c\u00f3 l\u1ecbch retreat trong th\u00e1ng n\u00e0y.\",\n      noRetreats: \"Hi\u1ec7n t\u1ea1i ch\u01b0a c\u00f3 retreat.\",\n      error: \"Kh\u00f4ng th\u1ec3 t\u1ea3i th\u00f4ng tin retreat. Vui l\u00f2ng th\u1eed l\u1ea1i sau.\",\n      limited: \"S\u1ed1 ch\u1ed7 c\u00f3 h\u1ea1n\",\n      available: \"Retreat hi\u1ec7n c\u00f3\",\n      multipleDates: \"C\u00f3 nhi\u1ec1u l\u1ecbch\",\n      oneDate: \"C\u00f3 1 l\u1ecbch\",\n      byRequest: \"Theo y\u00eau c\u1ea7u\",\n      nextDate: \"L\u1ecbch ti\u1ebfp theo\",\n      viewOther: \"Xem c\u00e1c l\u1ecbch kh\u00e1c\",\n      hideOther: \"\u1ea8n c\u00e1c l\u1ecbch kh\u00e1c\",\n      startingFrom: \"Gi\u00e1 t\u1eeb\",\n      contactPrice: \"Li\u00ean h\u1ec7 \u0111\u1ec3 bi\u1ebft gi\u00e1\",\n      details: \"Xem chi ti\u1ebft Retreat\",\n      earlyBooking: \"\u01afu \u0111\u00e3i \u0111\u1eb7t s\u1edbm\"\n    },\n\n    de: {\n      locale: \"de-DE\",\n      date: \"Termin\",\n      dates: \"Termine\",\n      noDates: \"Noch keine Termine\",\n      loading: \"Retreat-Termine werden geladen\u2026\",\n      noMonth: \"In diesem Monat sind keine Retreats verf\u00fcgbar.\",\n      noRetreats: \"Derzeit sind keine Retreats verf\u00fcgbar.\",\n      error: \"Die Retreat-Informationen konnten nicht geladen werden.\",\n      limited: \"Begrenzte Pl\u00e4tze\",\n      available: \"Verf\u00fcgbare Retreats\",\n      multipleDates: \"Mehrere Termine verf\u00fcgbar\",\n      oneDate: \"1 Termin verf\u00fcgbar\",\n      byRequest: \"Auf Anfrage\",\n      nextDate: \"N\u00e4chster Termin\",\n      viewOther: \"Weitere Termine\",\n      hideOther: \"Termine ausblenden\",\n      startingFrom: \"Ab\",\n      contactPrice: \"Preis auf Anfrage\",\n      details: \"Retreat ansehen\",\n      earlyBooking: \"Fr\u00fchbuchung\"\n    }\n  };\n\n  const detectedLanguage = (\n    document.documentElement.lang || \"en\"\n  ).toLowerCase().split(\/[-_]\/)[0];\n\n  const language = TEXT[detectedLanguage] ? detectedLanguage : \"en\";\n  const text = TEXT[language];\n  const locale = text.locale;\n\n  const monthStrip = root.querySelector(\"#retreat-calendar-months\");\n  const calendarList = root.querySelector(\"#retreat-calendar-list\");\n  const calendarTitle = root.querySelector(\n    \"#retreat-calendar-results-title\"\n  );\n  const calendarMessage = root.querySelector(\"#retreat-calendar-empty\");\n  const cardsGrid = root.querySelector(\"[data-retreat-cards]\");\n\n  const today = new Date();\n  today.setHours(0, 0, 0, 0);\n\n  function parseApiDate(value) {\n    if (!value) return null;\n\n    let match = String(value).match(\n      \/^(\\d{1,2})\\\/(\\d{1,2})\\\/(\\d{4})$\/\n    );\n\n    if (match) {\n      const month = Number(match[1]);\n      const day = Number(match[2]);\n      const year = Number(match[3]);\n      const result = new Date(year, month - 1, day);\n\n      if (\n        result.getFullYear() === year &&\n        result.getMonth() === month - 1 &&\n        result.getDate() === day\n      ) {\n        return result;\n      }\n\n      return null;\n    }\n\n    match = String(value).match(\n      \/^(\\d{4})-(\\d{2})-(\\d{2})$\/\n    );\n\n    if (match) {\n      return new Date(\n        Number(match[1]),\n        Number(match[2]) - 1,\n        Number(match[3])\n      );\n    }\n\n    return null;\n  }\n\n  function monthKey(date) {\n    return date.getFullYear() + \"-\" +\n      String(date.getMonth() + 1).padStart(2, \"0\");\n  }\n\n  function safeUrl(value) {\n    if (!value || typeof value !== \"string\") return null;\n\n    try {\n      const url = new URL(value, window.location.origin);\n\n      return [\"http:\", \"https:\"].includes(url.protocol)\n        ? url.href\n        : null;\n    } catch (error) {\n      return null;\n    }\n  }\n\n  function escapeHtml(value) {\n    const element = document.createElement(\"div\");\n    element.textContent = value == null ? \"\" : String(value);\n    return element.innerHTML;\n  }\n\n  function plainText(value) {\n    const parsed = new DOMParser().parseFromString(\n      String(value || \"\"),\n      \"text\/html\"\n    );\n\n    return parsed.body.textContent.trim();\n  }\n\n  function getUpcomingDates(retreat) {\n    if (!Array.isArray(retreat.dates)) return [];\n\n    return retreat.dates\n      .map(function (schedule) {\n        const start = parseApiDate(schedule.start);\n        const end = parseApiDate(schedule.end) || start;\n\n        return {\n          schedule: schedule,\n          start: start,\n          end: end\n        };\n      })\n      .filter(function (item) {\n        return item.start && item.end && item.end >= today;\n      })\n      .sort(function (a, b) {\n        return a.start - b.start;\n      });\n  }\n\n  function formatDateRange(item) {\n    const formatter = new Intl.DateTimeFormat(locale, {\n      day: \"2-digit\",\n      month: \"short\",\n      year: \"numeric\"\n    });\n\n    if (\n      item.end &&\n      typeof formatter.formatRange === \"function\"\n    ) {\n      return formatter.formatRange(item.start, item.end);\n    }\n\n    if (item.end) {\n      return formatter.format(item.start) +\n        \" \u2013 \" +\n        formatter.format(item.end);\n    }\n\n    return formatter.format(item.start);\n  }\n\n  function showCalendarMessage(message) {\n    calendarMessage.textContent = message;\n    calendarMessage.classList.toggle(\n      \"is-visible\",\n      Boolean(message)\n    );\n  }\n\n  function renderCalendar(retreats) {\n    const schedules = [];\n\n    retreats.forEach(function (retreat) {\n      getUpcomingDates(retreat).forEach(function (item) {\n        schedules.push({\n          retreatId: retreat.id,\n          name: retreat.name || \"\",\n          location: retreat.location || \"\",\n          url: retreat.url || \"\",\n          start: item.start,\n          end: item.end,\n          limited: item.schedule.limited === true\n        });\n      });\n    });\n\n    schedules.sort(function (a, b) {\n      return a.start - b.start;\n    });\n\n    const planningMonths = Array.from(\n      { length: 9 },\n      function (_, index) {\n        return monthKey(\n          new Date(\n            today.getFullYear(),\n            today.getMonth() + index,\n            1\n          )\n        );\n      }\n    );\n\n    const counts = {};\n\n    schedules.forEach(function (schedule) {\n      const key = monthKey(schedule.start);\n      counts[key] = (counts[key] || 0) + 1;\n    });\n\n    let selectedMonth = planningMonths.find(function (key) {\n      return counts[key] > 0;\n    }) || null;\n\n    const monthFormatter = new Intl.DateTimeFormat(locale, {\n      month: \"long\",\n      year: \"numeric\"\n    });\n\n    const shortMonthFormatter = new Intl.DateTimeFormat(locale, {\n      month: \"short\"\n    });\n\n    function renderMonthButtons() {\n      monthStrip.replaceChildren();\n\n      planningMonths.forEach(function (key) {\n        const count = counts[key] || 0;\n        const parts = key.split(\"-\");\n\n        const monthDate = new Date(\n          Number(parts[0]),\n          Number(parts[1]) - 1,\n          1\n        );\n\n        const button = document.createElement(\"button\");\n        button.type = \"button\";\n        button.className = \"retreat-calendar-month-button\";\n        button.disabled = count === 0;\n        button.setAttribute(\n          \"aria-pressed\",\n          String(selectedMonth === key)\n        );\n\n        if (selectedMonth === key) {\n          button.classList.add(\"is-active\");\n        }\n\n        const monthName = document.createElement(\"span\");\n        monthName.className = \"retreat-calendar-month-name\";\n        monthName.textContent = shortMonthFormatter\n          .format(monthDate)\n          .toLocaleUpperCase(locale);\n\n        const year = document.createElement(\"span\");\n        year.className = \"retreat-calendar-month-year\";\n        year.textContent = parts[0];\n\n        const countElement = document.createElement(\"span\");\n        countElement.className = \"retreat-calendar-month-count\";\n\n        countElement.textContent = count\n          ? count + \" \" + (count === 1 ? text.date : text.dates)\n          : text.noDates;\n\n        button.append(monthName, year, countElement);\n\n        if (count) {\n          button.addEventListener(\"click\", function () {\n            selectedMonth = key;\n            renderMonthButtons();\n            renderCalendarRows();\n          });\n        }\n\n        monthStrip.appendChild(button);\n      });\n    }\n\n    function renderCalendarRows() {\n      calendarList.replaceChildren();\n\n      if (!selectedMonth) {\n        calendarTitle.textContent =\n          text.available.toLocaleUpperCase(locale);\n\n        showCalendarMessage(text.noMonth);\n        return;\n      }\n\n      const matches = schedules.filter(function (schedule) {\n        return monthKey(schedule.start) === selectedMonth;\n      });\n\n      const parts = selectedMonth.split(\"-\");\n\n      const monthDate = new Date(\n        Number(parts[0]),\n        Number(parts[1]) - 1,\n        1\n      );\n\n      calendarTitle.textContent = monthFormatter\n        .format(monthDate)\n        .toLocaleUpperCase(locale);\n\n      showCalendarMessage(matches.length ? \"\" : text.noMonth);\n\n      matches.forEach(function (schedule) {\n        const row = document.createElement(\"article\");\n        row.className = \"retreat-calendar-item\";\n\n        const date = document.createElement(\"span\");\n        date.className = \"retreat-calendar-date\";\n\n        const day = document.createElement(\"span\");\n        day.className = \"retreat-calendar-day\";\n\n        day.textContent = new Intl.DateTimeFormat(locale, {\n          day: \"2-digit\"\n        }).format(schedule.start);\n\n        const month = document.createElement(\"span\");\n        month.className = \"retreat-calendar-item-month\";\n\n        month.textContent = shortMonthFormatter\n          .format(schedule.start)\n          .toLocaleUpperCase(locale);\n\n        date.append(day, month);\n\n        const retreatUrl = safeUrl(schedule.url);\n\n        const name = document.createElement(\n          retreatUrl ? \"a\" : \"span\"\n        );\n\n        name.className = \"retreat-calendar-name\";\n        name.textContent = schedule.name;\n\n        if (retreatUrl) {\n          name.href = retreatUrl;\n        }\n\n        const location = document.createElement(\"span\");\n        location.className = \"retreat-calendar-location\";\n        location.textContent = schedule.location;\n\n        row.append(date, name, location);\n\n        if (schedule.limited) {\n          const badge = document.createElement(\"span\");\n          badge.className = \"retreat-calendar-status\";\n          badge.textContent = text.limited;\n          row.appendChild(badge);\n        }\n\n        calendarList.appendChild(row);\n      });\n    }\n\n    renderMonthButtons();\n    renderCalendarRows();\n  }\n\n  function renderCards(retreats) {\n    if (!retreats.length) {\n      cardsGrid.innerHTML =\n        '<p class=\"retreat-calendar-empty is-visible\" ' + 'style=\"grid-column:1\/-1;text-align:center;\">' +\n        escapeHtml(text.noRetreats) +\n        \"<\/p>\";\n\n      return;\n    }\n\n    const cards = retreats.map(function (retreat, index) {\n      const upcomingDates = getUpcomingDates(retreat);\n      const retreatUrl = safeUrl(retreat.url);\n      const imageUrl = safeUrl(retreat.image);\n\n      const name = retreat.name || \"Retreat\";\n      const location = retreat.location || \"Retreat\";\n      const description = plainText(retreat.description);\n\n      const prices = Array.isArray(retreat.packages)\n        ? retreat.packages\n            .map(function (item) {\n              return Number(item.price);\n            })\n            .filter(function (price) {\n              return Number.isFinite(price) && price > 0;\n            })\n        : [];\n\n      const minimumPrice = prices.length\n        ? Math.min.apply(null, prices)\n        : null;\n\n      const priceText = minimumPrice\n        ? text.startingFrom + \" \" +\n          new Intl.NumberFormat(locale, {\n            style: \"currency\",\n            currency: \"VND\",\n            maximumFractionDigits: 0\n          }).format(minimumPrice)\n        : text.contactPrice;\n\n      const uniqueId =\n        \"retreat-extra-dates-\" +\n        String(retreat.id || index).replace(\n          \/[^a-zA-Z0-9_-]\/g,\n          \"\"\n        );\n\n      let badge = text.byRequest;\n\n      if (upcomingDates.length > 1) {\n        badge = text.multipleDates;\n      } else if (upcomingDates.length === 1) {\n        badge = text.oneDate;\n      }\n\n      let datesMarkup = \"\";\n\n      if (upcomingDates.length) {\n        const nextDate = formatDateRange(upcomingDates[0]);\n\n        const additionalDates = upcomingDates\n          .slice(1)\n          .map(function (item) {\n            return \"<li>\" +\n              escapeHtml(formatDateRange(item)) +\n              \"<\/li>\";\n          })\n          .join(\"\");\n\n        datesMarkup = `\n          <div class=\"retreat-date-line\">\n            <span class=\"retreat-meta-label\">\n              ${escapeHtml(text.nextDate)}\n            <\/span>\n\n            <span class=\"retreat-date-value\">\n              ${escapeHtml(nextDate)}\n            <\/span>\n          <\/div>\n\n          ${additionalDates ? `\n            <div class=\"retreat-extra-dates is-collapsed\" id=\"${escapeHtml(uniqueId)}\">\n              <ul>${additionalDates}<\/ul>\n            <\/div>\n\n            <button class=\"retreat-dates-toggle\" type=\"button\" data-card-dates-toggle aria-controls=\"${escapeHtml(uniqueId)}\" aria-expanded=\"false\" data-open-label=\"${escapeHtml(text.viewOther)}\" data-close-label=\"${escapeHtml(text.hideOther)}\">\n              ${escapeHtml(text.viewOther)}\n            <\/button>\n          ` : \"\"}\n        `;\n      } else {\n        datesMarkup = `\n          <div class=\"retreat-date-line\">\n            <span class=\"retreat-date-value\">\n              ${escapeHtml(text.byRequest)}\n            <\/span>\n          <\/div>\n        `;\n      }\n\n      const imageMarkup = imageUrl\n        ? `\n          <img src=\"${escapeHtml(imageUrl)}\" alt=\"${escapeHtml(name)}\" loading=\"lazy\" decoding=\"async\" style=\" position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; transition:filter 0.5s ease; \">\n        `\n        : \"\";\n\n      const imageStart = retreatUrl\n        ? `\n          <a href=\"${escapeHtml(retreatUrl)}\" class=\"retreat-card-img\" aria-label=\"${escapeHtml(name)}\" style=\"background:none;position:relative;overflow:hidden;\">\n        `\n        : `\n          <div class=\"retreat-card-img\" style=\"position:relative;overflow:hidden;\">\n        `;\n\n      const imageEnd = retreatUrl ? \"<\/a>\" : \"<\/div>\";\n\n      const title = retreatUrl\n        ? `\n          <a href=\"${escapeHtml(retreatUrl)}\">\n            ${escapeHtml(name)}\n          <\/a>\n        `\n        : escapeHtml(name);\n\n      const earlyBirdMarkup = retreat.earlyBirdNote\n        ? `\n          <div class=\"retreat-meta-block\">\n            <span class=\"retreat-meta-label\">\n              ${escapeHtml(text.earlyBooking)}\n            <\/span>\n\n            <p class=\"retreat-meta-value\">\n              ${escapeHtml(plainText(retreat.earlyBirdNote))}\n            <\/p>\n          <\/div>\n        `\n        : \"\";\n\n      const detailButton = retreatUrl\n        ? `\n          <a href=\"${escapeHtml(retreatUrl)}\" class=\"retreat-btn\">\n            ${escapeHtml(text.details)}\n          <\/a>\n        `\n        : \"\";\n\n      return `\n        <article class=\"retreat-card\">\n\n          ${imageStart}\n            ${imageMarkup}\n\n            <span class=\"dates-badge\" style=\"position:relative;z-index:2;\">\n              ${escapeHtml(badge)}\n            <\/span>\n          ${imageEnd}\n\n          <div style=\" height:6px; width:100%; display:block; background:var(--ember); flex-shrink:0; \">\n          <\/div>\n\n          <div class=\"retreat-card-body\">\n\n            <div class=\"retreat-card-top\">\n              <span class=\"tag\">\n                ${escapeHtml(location)}\n              <\/span>\n\n              <h4>${title}<\/h4>\n            <\/div>\n\n            ${description ? `\n              <div class=\"retreat-card-summary\">\n                <p>${escapeHtml(description)}<\/p>\n              <\/div>\n            ` : \"\"}\n\n            ${earlyBirdMarkup}\n\n            <div class=\"retreat-date-block\">\n              ${datesMarkup}\n            <\/div>\n\n            <div class=\"retreat-card-footer\">\n              <div class=\"price\">\n                ${escapeHtml(priceText)}\n              <\/div>\n\n              ${detailButton}\n            <\/div>\n\n          <\/div>\n        <\/article>\n      `;\n    });\n\n    cardsGrid.innerHTML = cards.join(\"\");\n\n    cardsGrid\n      .querySelectorAll(\"[data-card-dates-toggle]\")\n      .forEach(function (button) {\n        button.addEventListener(\"click\", function () {\n          const target = document.getElementById(\n            button.getAttribute(\"aria-controls\")\n          );\n\n          if (!target) return;\n\n          const collapsed = target.classList.toggle(\n            \"is-collapsed\"\n          );\n\n          button.setAttribute(\n            \"aria-expanded\",\n            String(!collapsed)\n          );\n\n          button.textContent = collapsed\n            ? button.dataset.openLabel\n            : button.dataset.closeLabel;\n        });\n      });\n  }\n\n  async function loadRetreats() {\n    try {\n      const retreats = await getSharedRetreatApi().load(\n        root.dataset.api || \"\/wp-json\/retreats\/v1\/all\",\n        language\n      );\n\n      renderCalendar(retreats);\n      renderCards(retreats);\n\n    } catch (error) {\n      console.error(\"Retreat API:\", error);\n\n      monthStrip.replaceChildren();\n      calendarList.replaceChildren();\n\n      showCalendarMessage(text.error);\n\n      cardsGrid.innerHTML =\n        '<p class=\"retreat-calendar-empty is-visible\" ' + 'style=\"grid-column:1\/-1;text-align:center;\">' +\n        escapeHtml(text.error) +\n        \"<\/p>\";\n    }\n  }\n\nfunction getSharedRetreatApi() {\n  if (window.VietnamDetoxRetreatAPI) {\n    return window.VietnamDetoxRetreatAPI;\n  }\n\n  window.VietnamDetoxRetreatAPI = {\n    requests: {},\n\n    load: function(apiPath, requestedLanguage) {\n      var apiUrl = new URL(\n        apiPath || '\/wp-json\/retreats\/v1\/all',\n        window.location.origin\n      );\n\n      apiUrl.searchParams.set(\n        'lang',\n        requestedLanguage || 'en'\n      );\n\n      var cacheKey = apiUrl.href;\n\n      if (!this.requests[cacheKey]) {\n        this.requests[cacheKey] = fetch(cacheKey, {\n          headers: { Accept: 'application\/json' }\n        })\n          .then(function(response) {\n            if (!response.ok) {\n              throw new Error(\n                'Retreat API returned HTTP ' + response.status\n              );\n            }\n\n            return response.json();\n          })\n          .then(function(retreats) {\n            if (!Array.isArray(retreats)) {\n              throw new Error('Unexpected retreat API response');\n            }\n\n            return retreats;\n          })\n          .catch(function(error) {\n            delete window.VietnamDetoxRetreatAPI.requests[cacheKey];\n            throw error;\n          });\n      }\n\n      return this.requests[cacheKey];\n    }\n  };\n\n  return window.VietnamDetoxRetreatAPI;\n}\n\n  loadRetreats();\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8be7e55 elementor-widget elementor-widget-html\" data-id=\"8be7e55\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\n  Copy this entire file into ONE Elementor HTML widget.\n  Put retreat-quiz.css into that widget's Advanced > Custom CSS field.\n-->\n\n<div class=\"rdq\" data-retreat-quiz=\"\" data-api=\"\/wp-json\/retreats\/v1\/all\">\n  <div class=\"rdq-transition\">Ch\u01b0a bi\u1ebft k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng n\u00e0o ph\u00f9 h\u1ee3p?<\/div>\n\n  <section class=\"rdq-intro\" aria-labelledby=\"rdq-intro-title\">\n    <div class=\"rdq-intro-grid\">\n      <div class=\"rdq-intro-copy\">\n        <span class=\"rdq-eyebrow\">B\u00c0I TR\u1eaeC NGHI\u1ec6M \u0110\u1ecaNH H\u01af\u1edaNG K\u1ef2 NGH\u1ec8 D\u01af\u1ee0NG<\/span>\n        <h3 id=\"rdq-intro-title\">\n T\u00ecm k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng <em>ph\u00f9 h\u1ee3p v\u1edbi b\u1ea1n l\u00fac n\u00e0y.<\/em>\n        <\/h3>\n        <p>\n Tr\u1ea3 l\u1eddi v\u00e0i c\u00e2u h\u1ecfi nh\u1eb9 nh\u00e0ng v\u1ec1 s\u1edf th\u00edch hi\u1ec7n t\u1ea1i, nh\u1ecbp ngh\u1ec9 d\u01b0\u1ee1ng mong mu\u1ed1n v\u00e0 h\u00ecnh th\u1ee9c h\u1ed7 tr\u1ee3 ph\u00f9 h\u1ee3p v\u1edbi b\u1ea1n.\n        <\/p>\n        <p class=\"rdq-intro-note\">\n Ch\u1ec9 m\u1ea5t kho\u1ea3ng hai ph\u00fat. Kh\u00f4ng ch\u1ea9n \u0111o\u00e1n \u2014 ch\u1ec9 gi\u00fap b\u1ea1n \u0111\u1ecbnh h\u01b0\u1edbng.  \n        <\/p>\n      <\/div>\n\n      <div class=\"rdq-intro-divider\" aria-hidden=\"true\"><\/div>\n\n      <div class=\"rdq-intro-side\">\n        <span class=\"rdq-kicker\">TRONG HAI PH\u00daT<\/span>\n        <ul class=\"rdq-list\">\n          <li><span class=\"rdq-bullet\" aria-hidden=\"true\"><\/span><span>Tr\u1ea3 l\u1eddi 8 c\u00e2u h\u1ecfi v\u1ec1 nhu c\u1ea7u v\u00e0 s\u1edf th\u00edch<\/span><\/li>\n          <li><span class=\"rdq-bullet\" aria-hidden=\"true\"><\/span><span>So s\u00e1nh c\u00e1c ch\u01b0\u01a1ng tr\u00ecnh<\/span><\/li>\n          <li><span class=\"rdq-bullet\" aria-hidden=\"true\"><\/span><span>Xem l\u1ecbch, \u0111\u1ecba \u0111i\u1ec3m v\u00e0 m\u1ee9c gi\u00e1 hi\u1ec7n c\u00f3<\/span><\/li>\n        <\/ul>\n\n        <button class=\"rdq-btn rdq-btn-ember\" type=\"button\" data-rdq-open=\"\" aria-haspopup=\"dialog\" aria-controls=\"rdq-modal\" aria-expanded=\"false\">\n L\u00e0m b\u00e0i tr\u1eafc nghi\u1ec7m ngh\u1ec9 d\u01b0\u1ee1ng\n        <\/button>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <div class=\"rdq-modal\" id=\"rdq-modal\" data-rdq-modal=\"\" aria-hidden=\"true\" hidden=\"\">\n\n    <div class=\"rdq-backdrop\" data-rdq-close=\"\" aria-hidden=\"true\"><\/div>\n\n    <section class=\"rdq-dialog\" data-rdq-dialog=\"\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"rdq-modal-title\" aria-describedby=\"rdq-modal-note\" tabindex=\"-1\">\n\n      <header class=\"rdq-topbar\">\n        <div>\n          <span class=\"rdq-modal-eyebrow\">B\u00c0I TR\u1eaeC NGHI\u1ec6M K\u1ef2 NGH\u1ec8 D\u01af\u1ee0NG<\/span>\n          <h3 class=\"rdq-modal-title\" id=\"rdq-modal-title\">T\u00ecm k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng ph\u00f9 h\u1ee3p nh\u1ea5t v\u1edbi b\u1ea1n<\/h3>\n          <p class=\"rdq-modal-note\" id=\"rdq-modal-note\">V\u00e0i c\u00e2u h\u1ecfi nh\u1eb9 nh\u00e0ng \u0111\u1ec3 gi\u00fap b\u1ea1n l\u1ef1a ch\u1ecdn r\u00f5 r\u00e0ng h\u01a1n.<\/p>\n        <\/div>\n\n        <button type=\"button\" class=\"rdq-close\" data-rdq-close=\"\" aria-label=\"Close quiz\">\n \u00d7\n        <\/button>\n      <\/header>\n\n      <div class=\"rdq-main\">\n        <div class=\"rdq-progress\" data-rdq-progress=\"\" aria-live=\"polite\">\n          <div class=\"rdq-progress-text\" data-rdq-progress-text=\"\">C\u00e2u h\u1ecfi 1\/8<\/div>\n          <div class=\"rdq-progress-track\" aria-hidden=\"true\">\n            <div class=\"rdq-progress-fill\" data-rdq-progress-fill=\"\"><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"rdq-stage\" data-rdq-stage=\"\"><\/div>\n        <div class=\"rdq-result\" data-rdq-result=\"\" hidden=\"\"><\/div>\n      <\/div>\n    <\/section>\n  <\/div>\n<\/div>\n\n<script>\n(function() {\n  'use strict';\n\n  var root = document.querySelector('[data-retreat-quiz]');\n  if (!root || root.dataset.rdqReady === 'true') return;\n  root.dataset.rdqReady = 'true';\n\n  var questions = [\n    {\n      question: 'What are you mainly looking for right now?',\n      answers: [\n        { label: 'Inner clarity, reflection and time to reconnect with myself', scores: { an: 4, buong: 0, herbal: 1, yen: 1, private: 1 } },\n        { label: 'A guided reset with practical structure and creative reflection', scores: { an: 1, buong: 4, herbal: 1, yen: 1, private: 0 } },\n        { label: 'A refined renewal experience rooted in Vietnamese herbal wisdom', scores: { an: 1, buong: 0, herbal: 4, yen: 2, private: 0 } },\n        { label: 'A gentle first step supported by hot springs and a serene resort', scores: { an: 1, buong: 1, herbal: 2, yen: 4, private: 0 } },\n        { label: 'A retreat shaped privately around my own needs or group', scores: { an: 1, buong: 0, herbal: 0, yen: 0, private: 4 } }\n      ]\n    },\n    {\n      question: 'Which atmosphere feels most attractive to you?',\n      answers: [\n        { label: 'Quiet mountains, spiritual heritage and contemplative space', scores: { an: 4, buong: 0, herbal: 1, yen: 1, private: 0 } },\n        { label: 'Art, nature, creativity and a shared retreat journey', scores: { an: 0, buong: 4, herbal: 1, yen: 0, private: 0 } },\n        { label: 'A refined riverside setting with Vietnamese herbal rituals', scores: { an: 0, buong: 1, herbal: 4, yen: 1, private: 0 } },\n        { label: 'Natural hot springs, herbal baths and calm resort comfort', scores: { an: 0, buong: 0, herbal: 2, yen: 4, private: 0 } },\n        { label: 'A discreet setting chosen around me, my partner or my group', scores: { an: 0, buong: 0, herbal: 0, yen: 0, private: 4 } }\n      ]\n    },\n    {\n      question: 'What kind of support would feel most comfortable?',\n      answers: [\n        { label: 'Enough guidance, with generous space for silence and reflection', scores: { an: 4, buong: 1, herbal: 1, yen: 1, private: 0 } },\n        { label: 'A supportive shared program with clear daily structure', scores: { an: 1, buong: 4, herbal: 1, yen: 1, private: 0 } },\n        { label: 'Nurturing rituals and an immersive sense of care and renewal', scores: { an: 1, buong: 1, herbal: 4, yen: 2, private: 0 } },\n        { label: 'A gentle, approachable program in a comfortable wellness setting', scores: { an: 1, buong: 2, herbal: 2, yen: 4, private: 0 } },\n        { label: 'Individual attention and a format adapted to my circumstances', scores: { an: 0, buong: 0, herbal: 0, yen: 0, private: 4 } }\n      ]\n    },\n    {\n      question: 'What kind of retreat rhythm feels best for you?',\n      answers: [\n        { label: 'Spacious, calm and inward-focused', scores: { an: 4, buong: 0, herbal: 1, yen: 1, private: 0 } },\n        { label: 'Structured, engaging and gently motivating', scores: { an: 0, buong: 4, herbal: 1, yen: 1, private: 0 } },\n        { label: 'Restorative and immersive, with time for herbal rituals', scores: { an: 1, buong: 0, herbal: 4, yen: 2, private: 0 } },\n        { label: 'Gentle, flowing and low-pressure', scores: { an: 1, buong: 1, herbal: 2, yen: 4, private: 0 } },\n        { label: 'Flexible and designed around my preferred pace', scores: { an: 0, buong: 0, herbal: 0, yen: 0, private: 4 } }\n      ]\n    },\n    {\n      question: 'How would you prefer to experience the retreat?',\n      answers: [\n        { label: 'As a personal inward journey in a spiritually meaningful destination', scores: { an: 4, buong: 1, herbal: 1, yen: 1, private: 0 } },\n        { label: 'Alongside others, with room for learning and creative reflection', scores: { an: 1, buong: 4, herbal: 1, yen: 1, private: 0 } },\n        { label: 'As a premium cultural and herbal renewal experience', scores: { an: 1, buong: 1, herbal: 4, yen: 1, private: 0 } },\n        { label: 'As a gentle wellness break with hot springs and resort comfort', scores: { an: 1, buong: 1, herbal: 2, yen: 4, private: 0 } },\n        { label: 'Privately, as an individual, couple, family or small group', scores: { an: 0, buong: 0, herbal: 0, yen: 0, private: 4 } }\n      ]\n    },\n    {\n      question: 'Have you fasted before?',\n      answers: [\n        { label: 'Yes, and I am drawn to a deeper contemplative experience', scores: { an: 4, buong: 1, herbal: 1, yen: 0, private: 1 } },\n        { label: 'Once or twice, and I value a clearly guided shared program', scores: { an: 1, buong: 4, herbal: 1, yen: 2, private: 0 } },\n        { label: 'Yes, and I am looking for a refined herbal renewal experience', scores: { an: 1, buong: 1, herbal: 4, yen: 1, private: 0 } },\n        { label: 'No, I would prefer a gentle and approachable first experience', scores: { an: 0, buong: 2, herbal: 1, yen: 4, private: 1 } },\n        { label: 'I would prefer to discuss a tailored approach first', scores: { an: 0, buong: 0, herbal: 0, yen: 1, private: 4 } }\n      ]\n    },\n    {\n      question: 'What matters most when comparing the retreat options?',\n      answers: [\n        { label: 'A destination that supports stillness and inner perspective', scores: { an: 4, buong: 0, herbal: 1, yen: 1, private: 0 } },\n        { label: 'A shared program with structure, nature and creative energy', scores: { an: 0, buong: 4, herbal: 1, yen: 1, private: 0 } },\n        { label: 'A distinctive premium experience rooted in Vietnamese herbal culture', scores: { an: 0, buong: 1, herbal: 4, yen: 1, private: 0 } },\n        { label: 'A gentle resort environment with natural hot-spring therapies', scores: { an: 0, buong: 0, herbal: 2, yen: 4, private: 0 } },\n        { label: 'Privacy, flexible dates and a format designed around me', scores: { an: 0, buong: 0, herbal: 0, yen: 0, private: 4 } }\n      ]\n    },\n    {\n      question: 'Which sentence feels closest to where you are now?',\n      answers: [\n        { label: 'I need space to hear myself again', scores: { an: 4, buong: 0, herbal: 1, yen: 1, private: 0 } },\n        { label: 'I want a reset supported by structure, nature and creativity', scores: { an: 0, buong: 4, herbal: 1, yen: 1, private: 0 } },\n        { label: 'I want to feel restored through herbal wisdom and thoughtful care', scores: { an: 1, buong: 0, herbal: 4, yen: 2, private: 0 } },\n        { label: 'I want a gentle reset that feels comfortable and manageable', scores: { an: 1, buong: 1, herbal: 2, yen: 4, private: 0 } },\n        { label: 'I want a retreat designed around my specific situation', scores: { an: 0, buong: 0, herbal: 0, yen: 0, private: 4 } }\n      ]\n    }\n  ];\n\n  var vietnameseQuestions = [\n    {\n      question: '\u0110i\u1ec1u b\u1ea1n \u0111ang t\u00ecm ki\u1ebfm nh\u1ea5t l\u00fac n\u00e0y l\u00e0 g\u00ec?',\n      answers: [\n        { label: 'S\u1ef1 s\u00e1ng r\u00f5 n\u1ed9i t\u00e2m, th\u1eddi gian chi\u00eam nghi\u1ec7m v\u00e0 k\u1ebft n\u1ed1i l\u1ea1i v\u1edbi ch\u00ednh m\u00ecnh', scores: { an: 4, buong: 0, herbal: 1, yen: 1, private: 1 } },\n        { label: 'M\u1ed9t h\u00e0nh tr\u00ecnh t\u00e1i t\u1ea1o c\u00f3 h\u01b0\u1edbng d\u1eabn, c\u1ea5u tr\u00fac th\u1ef1c t\u1ebf v\u00e0 kh\u00f4ng gian ph\u1ea3n t\u01b0 s\u00e1ng t\u1ea1o', scores: { an: 1, buong: 4, herbal: 1, yen: 1, private: 0 } },\n        { label: 'M\u1ed9t tr\u1ea3i nghi\u1ec7m ph\u1ee5c h\u1ed3i tinh t\u1ebf d\u1ef1a tr\u00ean tr\u00ed tu\u1ec7 th\u1ea3o d\u01b0\u1ee3c Vi\u1ec7t Nam', scores: { an: 1, buong: 0, herbal: 4, yen: 2, private: 0 } },\n        { label: 'M\u1ed9t b\u01b0\u1edbc kh\u1edfi \u0111\u1ea7u nh\u1eb9 nh\u00e0ng v\u1edbi su\u1ed1i kho\u00e1ng n\u00f3ng v\u00e0 khu ngh\u1ec9 d\u01b0\u1ee1ng thanh b\u00ecnh', scores: { an: 1, buong: 1, herbal: 2, yen: 4, private: 0 } },\n        { label: 'M\u1ed9t k\u1ef3 ngh\u1ec9 ri\u00eang t\u01b0 \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf theo nhu c\u1ea7u c\u1ee7a t\u00f4i ho\u1eb7c nh\u00f3m c\u1ee7a t\u00f4i', scores: { an: 1, buong: 0, herbal: 0, yen: 0, private: 4 } }\n      ]\n    },\n    {\n      question: 'B\u1ea7u kh\u00f4ng kh\u00ed n\u00e0o h\u1ea5p d\u1eabn b\u1ea1n nh\u1ea5t?',\n      answers: [\n        { label: 'N\u00fai non t\u0129nh l\u1eb7ng, di s\u1ea3n t\u00e2m linh v\u00e0 kh\u00f4ng gian chi\u00eam nghi\u1ec7m', scores: { an: 4, buong: 0, herbal: 1, yen: 1, private: 0 } },\n        { label: 'Ngh\u1ec7 thu\u1eadt, thi\u00ean nhi\u00ean, s\u00e1ng t\u1ea1o v\u00e0 m\u1ed9t h\u00e0nh tr\u00ecnh ngh\u1ec9 d\u01b0\u1ee1ng s\u1ebb chia', scores: { an: 0, buong: 4, herbal: 1, yen: 0, private: 0 } },\n        { label: 'Kh\u00f4ng gian ven s\u00f4ng tinh t\u1ebf c\u00f9ng c\u00e1c nghi th\u1ee9c th\u1ea3o d\u01b0\u1ee3c Vi\u1ec7t Nam', scores: { an: 0, buong: 1, herbal: 4, yen: 1, private: 0 } },\n        { label: 'Su\u1ed1i kho\u00e1ng n\u00f3ng t\u1ef1 nhi\u00ean, t\u1eafm th\u1ea3o d\u01b0\u1ee3c v\u00e0 ti\u1ec7n nghi ngh\u1ec9 d\u01b0\u1ee1ng y\u00ean b\u00ecnh', scores: { an: 0, buong: 0, herbal: 2, yen: 4, private: 0 } },\n        { label: 'M\u1ed9t kh\u00f4ng gian k\u00edn \u0111\u00e1o \u0111\u01b0\u1ee3c l\u1ef1a ch\u1ecdn ri\u00eang cho t\u00f4i, ng\u01b0\u1eddi \u0111\u1ed3ng h\u00e0nh ho\u1eb7c nh\u00f3m c\u1ee7a t\u00f4i', scores: { an: 0, buong: 0, herbal: 0, yen: 0, private: 4 } }\n      ]\n    },\n    {\n      question: 'H\u00ecnh th\u1ee9c h\u1ed7 tr\u1ee3 n\u00e0o s\u1ebd khi\u1ebfn b\u1ea1n c\u1ea3m th\u1ea5y tho\u1ea3i m\u00e1i nh\u1ea5t?',\n      answers: [\n        { label: 'V\u1eeba \u0111\u1ee7 h\u01b0\u1edbng d\u1eabn, v\u1edbi nhi\u1ec1u kho\u1ea3ng l\u1eb7ng \u0111\u1ec3 t\u0129nh t\u00e2m v\u00e0 chi\u00eam nghi\u1ec7m', scores: { an: 4, buong: 1, herbal: 1, yen: 1, private: 0 } },\n        { label: 'M\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh chung \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 t\u1eadn t\u00e2m v\u1edbi l\u1ecbch tr\u00ecnh m\u1ed7i ng\u00e0y r\u00f5 r\u00e0ng', scores: { an: 1, buong: 4, herbal: 1, yen: 1, private: 0 } },\n        { label: 'C\u00e1c nghi th\u1ee9c nu\u00f4i d\u01b0\u1ee1ng c\u00f9ng c\u1ea3m gi\u00e1c \u0111\u01b0\u1ee3c ch\u0103m s\u00f3c v\u00e0 ph\u1ee5c h\u1ed3i tr\u1ecdn v\u1eb9n', scores: { an: 1, buong: 1, herbal: 4, yen: 2, private: 0 } },\n        { label: 'M\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh nh\u1eb9 nh\u00e0ng, d\u1ec5 ti\u1ebfp c\u1eadn trong kh\u00f4ng gian ch\u0103m s\u00f3c s\u1ee9c kh\u1ecfe ti\u1ec7n nghi', scores: { an: 1, buong: 2, herbal: 2, yen: 4, private: 0 } },\n        { label: 'S\u1ef1 quan t\u00e2m ri\u00eang v\u00e0 m\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh \u0111\u01b0\u1ee3c \u0111i\u1ec1u ch\u1ec9nh theo ho\u00e0n c\u1ea3nh c\u1ee7a t\u00f4i', scores: { an: 0, buong: 0, herbal: 0, yen: 0, private: 4 } }\n      ]\n    },\n    {\n      question: 'Nh\u1ecbp \u0111i\u1ec7u ngh\u1ec9 d\u01b0\u1ee1ng n\u00e0o ph\u00f9 h\u1ee3p nh\u1ea5t v\u1edbi b\u1ea1n?',\n      answers: [\n        { label: 'Thong th\u1ea3, t\u0129nh t\u1ea1i v\u00e0 h\u01b0\u1edbng v\u00e0o b\u00ean trong', scores: { an: 4, buong: 0, herbal: 1, yen: 1, private: 0 } },\n        { label: 'C\u00f3 c\u1ea5u tr\u00fac, cu\u1ed1n h\u00fat v\u00e0 kh\u00edch l\u1ec7 nh\u1eb9 nh\u00e0ng', scores: { an: 0, buong: 4, herbal: 1, yen: 1, private: 0 } },\n        { label: 'Ph\u1ee5c h\u1ed3i s\u00e2u v\u00e0 tr\u1ecdn v\u1eb9n, v\u1edbi th\u1eddi gian d\u00e0nh cho c\u00e1c nghi th\u1ee9c th\u1ea3o d\u01b0\u1ee3c', scores: { an: 1, buong: 0, herbal: 4, yen: 2, private: 0 } },\n        { label: 'Nh\u1eb9 nh\u00e0ng, t\u1ef1 nhi\u00ean v\u00e0 kh\u00f4ng \u00e1p l\u1ef1c', scores: { an: 1, buong: 1, herbal: 2, yen: 4, private: 0 } },\n        { label: 'Linh ho\u1ea1t v\u00e0 \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf theo nh\u1ecbp \u0111\u1ed9 t\u00f4i mong mu\u1ed1n', scores: { an: 0, buong: 0, herbal: 0, yen: 0, private: 4 } }\n      ]\n    },\n    {\n      question: 'B\u1ea1n mu\u1ed1n tr\u1ea3i nghi\u1ec7m k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng theo c\u00e1ch n\u00e0o?',\n      answers: [\n        { label: 'Nh\u01b0 m\u1ed9t h\u00e0nh tr\u00ecnh h\u01b0\u1edbng n\u1ed9i c\u00e1 nh\u00e2n t\u1ea1i \u0111i\u1ec3m \u0111\u1ebfn gi\u00e0u \u00fd ngh\u0129a t\u00e2m linh', scores: { an: 4, buong: 1, herbal: 1, yen: 1, private: 0 } },\n        { label: '\u0110\u1ed3ng h\u00e0nh c\u00f9ng nh\u1eefng ng\u01b0\u1eddi kh\u00e1c, v\u1edbi kh\u00f4ng gian \u0111\u1ec3 h\u1ecdc h\u1ecfi v\u00e0 ph\u1ea3n t\u01b0 s\u00e1ng t\u1ea1o', scores: { an: 1, buong: 4, herbal: 1, yen: 1, private: 0 } },\n        { label: 'Nh\u01b0 m\u1ed9t tr\u1ea3i nghi\u1ec7m ph\u1ee5c h\u1ed3i cao c\u1ea5p k\u1ebft h\u1ee3p v\u0103n h\u00f3a v\u00e0 th\u1ea3o d\u01b0\u1ee3c', scores: { an: 1, buong: 1, herbal: 4, yen: 1, private: 0 } },\n        { label: 'Nh\u01b0 m\u1ed9t k\u1ef3 ngh\u1ec9 ch\u0103m s\u00f3c s\u1ee9c kh\u1ecfe nh\u1eb9 nh\u00e0ng v\u1edbi su\u1ed1i kho\u00e1ng n\u00f3ng v\u00e0 ti\u1ec7n nghi ngh\u1ec9 d\u01b0\u1ee1ng', scores: { an: 1, buong: 1, herbal: 2, yen: 4, private: 0 } },\n        { label: 'Ri\u00eang t\u01b0, d\u00e0nh cho c\u00e1 nh\u00e2n, c\u1eb7p \u0111\u00f4i, gia \u0111\u00ecnh ho\u1eb7c nh\u00f3m nh\u1ecf', scores: { an: 0, buong: 0, herbal: 0, yen: 0, private: 4 } }\n      ]\n    },\n    {\n      question: 'B\u1ea1n \u0111\u00e3 t\u1eebng nh\u1ecbn \u0103n tr\u01b0\u1edbc \u0111\u00e2y ch\u01b0a?',\n      answers: [\n        { label: 'C\u00f3, v\u00e0 t\u00f4i mong mu\u1ed1n m\u1ed9t tr\u1ea3i nghi\u1ec7m chi\u00eam nghi\u1ec7m s\u00e2u h\u01a1n', scores: { an: 4, buong: 1, herbal: 1, yen: 0, private: 1 } },\n        { label: 'M\u1ed9t ho\u1eb7c hai l\u1ea7n, v\u00e0 t\u00f4i coi tr\u1ecdng m\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh chung \u0111\u01b0\u1ee3c h\u01b0\u1edbng d\u1eabn r\u00f5 r\u00e0ng', scores: { an: 1, buong: 4, herbal: 1, yen: 2, private: 0 } },\n        { label: 'C\u00f3, v\u00e0 t\u00f4i \u0111ang t\u00ecm ki\u1ebfm m\u1ed9t tr\u1ea3i nghi\u1ec7m ph\u1ee5c h\u1ed3i th\u1ea3o d\u01b0\u1ee3c tinh t\u1ebf', scores: { an: 1, buong: 1, herbal: 4, yen: 1, private: 0 } },\n        { label: 'Ch\u01b0a, t\u00f4i mu\u1ed1n tr\u1ea3i nghi\u1ec7m \u0111\u1ea7u ti\u00ean th\u1eadt nh\u1eb9 nh\u00e0ng v\u00e0 d\u1ec5 ti\u1ebfp c\u1eadn', scores: { an: 0, buong: 2, herbal: 1, yen: 4, private: 1 } },\n        { label: 'T\u00f4i mu\u1ed1n trao \u0111\u1ed5i tr\u01b0\u1edbc v\u1ec1 m\u1ed9t ph\u01b0\u01a1ng \u00e1n \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf ri\u00eang', scores: { an: 0, buong: 0, herbal: 0, yen: 1, private: 4 } }\n      ]\n    },\n    {\n      question: '\u0110i\u1ec1u g\u00ec quan tr\u1ecdng nh\u1ea5t khi b\u1ea1n so s\u00e1nh c\u00e1c l\u1ef1a ch\u1ecdn ngh\u1ec9 d\u01b0\u1ee1ng?',\n      answers: [\n        { label: 'M\u1ed9t \u0111i\u1ec3m \u0111\u1ebfn nu\u00f4i d\u01b0\u1ee1ng s\u1ef1 t\u0129nh l\u1eb7ng v\u00e0 g\u00f3c nh\u00ecn n\u1ed9i t\u00e2m', scores: { an: 4, buong: 0, herbal: 1, yen: 1, private: 0 } },\n        { label: 'M\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh chung c\u00f3 c\u1ea5u tr\u00fac, thi\u00ean nhi\u00ean v\u00e0 n\u0103ng l\u01b0\u1ee3ng s\u00e1ng t\u1ea1o', scores: { an: 0, buong: 4, herbal: 1, yen: 1, private: 0 } },\n        { label: 'M\u1ed9t tr\u1ea3i nghi\u1ec7m cao c\u1ea5p kh\u00e1c bi\u1ec7t, b\u1eaft ngu\u1ed3n t\u1eeb v\u0103n h\u00f3a th\u1ea3o d\u01b0\u1ee3c Vi\u1ec7t Nam', scores: { an: 0, buong: 1, herbal: 4, yen: 1, private: 0 } },\n        { label: 'M\u1ed9t kh\u00f4ng gian ngh\u1ec9 d\u01b0\u1ee1ng nh\u1eb9 nh\u00e0ng v\u1edbi li\u1ec7u ph\u00e1p su\u1ed1i kho\u00e1ng n\u00f3ng t\u1ef1 nhi\u00ean', scores: { an: 0, buong: 0, herbal: 2, yen: 4, private: 0 } },\n        { label: 'S\u1ef1 ri\u00eang t\u01b0, l\u1ecbch tr\u00ecnh linh ho\u1ea1t v\u00e0 ch\u01b0\u01a1ng tr\u00ecnh \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf quanh nhu c\u1ea7u c\u1ee7a t\u00f4i', scores: { an: 0, buong: 0, herbal: 0, yen: 0, private: 4 } }\n      ]\n    },\n    {\n      question: 'C\u00e2u n\u00e0o g\u1ea7n nh\u1ea5t v\u1edbi tr\u1ea1ng th\u00e1i hi\u1ec7n t\u1ea1i c\u1ee7a b\u1ea1n?',\n      answers: [\n        { label: 'T\u00f4i c\u1ea7n kho\u1ea3ng l\u1eb7ng \u0111\u1ec3 l\u1eafng nghe ch\u00ednh m\u00ecnh m\u1ed9t l\u1ea7n n\u1eefa', scores: { an: 4, buong: 0, herbal: 1, yen: 1, private: 0 } },\n        { label: 'T\u00f4i mu\u1ed1n t\u00e1i t\u1ea1o v\u1edbi s\u1ef1 h\u1ed7 tr\u1ee3 c\u1ee7a c\u1ea5u tr\u00fac, thi\u00ean nhi\u00ean v\u00e0 s\u00e1ng t\u1ea1o', scores: { an: 0, buong: 4, herbal: 1, yen: 1, private: 0 } },\n        { label: 'T\u00f4i mu\u1ed1n \u0111\u01b0\u1ee3c ph\u1ee5c h\u1ed3i qua tr\u00ed tu\u1ec7 th\u1ea3o d\u01b0\u1ee3c v\u00e0 s\u1ef1 ch\u0103m s\u00f3c chu \u0111\u00e1o', scores: { an: 1, buong: 0, herbal: 4, yen: 2, private: 0 } },\n        { label: 'T\u00f4i mu\u1ed1n m\u1ed9t h\u00e0nh tr\u00ecnh t\u00e1i t\u1ea1o nh\u1eb9 nh\u00e0ng, tho\u1ea3i m\u00e1i v\u00e0 v\u1eeba s\u1ee9c', scores: { an: 1, buong: 1, herbal: 2, yen: 4, private: 0 } },\n        { label: 'T\u00f4i mu\u1ed1n m\u1ed9t k\u1ef3 ngh\u1ec9 \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf theo ho\u00e0n c\u1ea3nh c\u1ee5 th\u1ec3 c\u1ee7a m\u00ecnh', scores: { an: 0, buong: 0, herbal: 0, yen: 0, private: 4 } }\n      ]\n    }\n  ];\n\n  \/\/ These keys describe the quiz's scoring directions. The retreats shown in\n  \/\/ results are populated separately from the live API response.\n  var profileOrder = ['an', 'buong', 'herbal', 'yen', 'private'];\n  var activeProfileOrder = [];\n  var profiles = {\n    an: {\n      id: 13045,\n      sku: 'ANLYT',\n      name: '\u201cAn\u201d Retreat at Legacy Y\u00ean T\u1eed MGallery',\n      reason: 'Your answers point toward stillness, reflection and inner realignment. This retreat direction may suit you if you want to step away from daily noise and experience a guided reset in a contemplative mountain setting.',\n      url: '#retreat-options',\n      api: null\n    },\n    buong: {\n      id: 10067,\n      sku: 'LBD-BR',\n      name: 'Bu\u00f4ng Retreat at L\u00ea B\u00e1 \u0110\u1ea3ng Memory Space',\n      reason: 'Your answers point toward a guided retreat with structure, nature and creative reflection. This direction may suit you if you value a shared journey and a supportive daily rhythm in an inspiring setting.',\n      url: '#retreat-options',\n      api: null\n    },\n    herbal: {\n      id: 15396,\n      sku: 'VHD',\n      name: 'Vietnamese Herbal Detox at Namia River Retreat Hoi An',\n      reason: 'Your answers point toward an immersive and refined form of renewal rooted in Vietnamese herbal wisdom. This retreat direction may suit you if cultural rituals, riverside calm and a premium restorative setting feel especially meaningful.',\n      url: '#retreat-options',\n      api: null\n    },\n    yen: {\n      id: 2244,\n      sku: 'AWVH',\n      name: 'Y\u00ean Retreat \u2013 A gentle fast by Vietnam Detox',\n      reason: 'Your answers point toward a gentler and more approachable reset in a serene resort environment. This retreat direction may suit you if natural hot springs, herbal baths and a comfortable first step into fasting appeal to you.',\n      url: '#retreat-options',\n      api: null\n    },\n    private: {\n      id: 8905,\n      sku: '',\n      name: 'Private & Corporate Retreats',\n      reason: 'Your answers point toward privacy, flexibility and a retreat shaped around your circumstances. A private format may suit you if timing, group composition or individual attention matters more than joining a fixed public date.',\n      url: '#retreat-options',\n      api: null\n    }\n  };\n\n  var modal = root.querySelector('[data-rdq-modal]');\n  var dialog = root.querySelector('[data-rdq-dialog]');\n  var openButton = root.querySelector('[data-rdq-open]');\n  var progress = root.querySelector('[data-rdq-progress]');\n  var progressText = root.querySelector('[data-rdq-progress-text]');\n  var progressFill = root.querySelector('[data-rdq-progress-fill]');\n  var stage = root.querySelector('[data-rdq-stage]');\n  var result = root.querySelector('[data-rdq-result]');\n\n  var selectedAnswers = new Array(questions.length).fill(null);\n  var currentStep = 0;\n  var mode = 'question';\n  var lastFocused = null;\n  var previousBodyOverflow = '';\n\n  function escapeHtml(value) {\n    var node = document.createElement('div');\n    node.textContent = value == null ? '' : String(value);\n    return node.innerHTML;\n  }\n\n  function safeUrl(value) {\n    if (!value || typeof value !== 'string') return '';\n    if (value.charAt(0) === '#') return value;\n    try {\n      var url = new URL(value, window.location.origin);\n      return url.protocol === 'http:' || url.protocol === 'https:' ? url.href : '';\n    } catch (error) {\n      return '';\n    }\n  }\n\n  function parseApiDate(value) {\n    var usDate = String(value || '').match(\/^(\\d{1,2})\\\/(\\d{1,2})\\\/(\\d{4})$\/);\n    var isoDate = String(value || '').match(\/^(\\d{4})-(\\d{2})-(\\d{2})$\/);\n    var parsed;\n\n    if (usDate) parsed = new Date(Number(usDate[3]), Number(usDate[1]) - 1, Number(usDate[2]));\n    else if (isoDate) parsed = new Date(Number(isoDate[1]), Number(isoDate[2]) - 1, Number(isoDate[3]));\n    else return null;\n\n    return Number.isNaN(parsed.getTime()) ? null : parsed;\n  }\n\n  function getLanguage() {\n    var detected = String(document.documentElement.lang || 'en')\n      .toLowerCase()\n      .split(\/[-_]\/)[0];\n\n    return ['en', 'vi', 'de'].indexOf(detected) !== -1\n      ? detected\n      : 'en';\n  }\n\n  var language = getLanguage();\n  var locales = { en: 'en-GB', vi: 'vi-VN', de: 'de-DE' };\n  var locale = locales[language] || 'en-GB';\n\n  var copyByLanguage = {\n    en: {\n      transition: 'Not sure which retreat fits?',\n      introEyebrow: 'RETREAT ORIENTATION QUIZ',\n      introTitle: 'Find the retreat that <em>fits where you are now<\/em>.',\n      introCopy: 'Answer a few quiet questions about your current preferences, desired retreat rhythm and the kind of support that feels right for you.',\n      introNote: 'Takes about two minutes. No diagnosis. Just orientation.',\n      introKicker: 'IN TWO MINUTES',\n      introList1: 'Answer 8 preference questions',\n      introList2: 'Compare the available retreat options',\n      introList2Count: function(count) { return 'Compare all ' + count + ' retreat options'; },\n      introList3: 'See live dates, locations and prices',\n      openQuiz: 'Take the Retreat Quiz',\n      modalEyebrow: 'RETREAT QUIZ',\n      modalTitle: 'Find your best-fitting retreat',\n      modalNote: 'A few quiet questions to help you choose with more clarity.',\n      closeQuiz: 'Close quiz',\n      questionProgress: function(current, total) { return 'Question ' + current + ' of ' + total; },\n      chooseAnswer: 'Choose the answer that feels closest.',\n      back: 'Back',\n      next: 'Next',\n      seeResults: 'See my results',\n      byRequest: 'By request',\n      detailsOnRequest: 'Details on request',\n      priceOnRequest: 'Price on request',\n      nextDateBadge: 'Next:',\n      strongestEyebrow: 'YOUR STRONGEST MATCH',\n      strongestTitle: 'Your strongest match is ',\n      secondaryMatch: function(name) { return 'You may also resonate with <strong>' + escapeHtml(name) + '<\/strong>, because some of your preferences point in that direction too.'; },\n      location: 'Location',\n      nextAvailability: 'Next availability',\n      startingPrice: 'Starting price',\n      resultNote: 'This compares retreat style and preferences only. It is not medical advice or a fasting-suitability assessment; health eligibility must be confirmed separately with the retreat team.',\n      percentagesLabel: 'Retreat match percentages',\n      explore: 'Explore ',\n      exploreAll: 'Explore all retreat dates',\n      restart: 'Restart quiz',\n      noRetreatsTitle: 'Retreat results are temporarily unavailable',\n      noRetreatsCopy: 'We could not load the current retreat list. Please close the quiz and try again shortly.'\n    },\n    vi: {\n      transition: 'Ch\u01b0a ch\u1eafc k\u1ef3 ngh\u1ec9 n\u00e0o ph\u00f9 h\u1ee3p v\u1edbi b\u1ea1n?',\n      introEyebrow: 'B\u00c0I TR\u1eaeC NGHI\u1ec6M \u0110\u1ecaNH H\u01af\u1edaNG K\u1ef2 NGH\u1ec8',\n      introTitle: 'T\u00ecm k\u1ef3 ngh\u1ec9 <em>ph\u00f9 h\u1ee3p v\u1edbi b\u1ea1n l\u00fac n\u00e0y<\/em>.',\n      introCopy: 'H\u00e3y tr\u1ea3 l\u1eddi v\u00e0i c\u00e2u h\u1ecfi nh\u1eb9 nh\u00e0ng v\u1ec1 s\u1edf th\u00edch hi\u1ec7n t\u1ea1i, nh\u1ecbp \u0111i\u1ec7u ngh\u1ec9 d\u01b0\u1ee1ng mong mu\u1ed1n v\u00e0 h\u00ecnh th\u1ee9c h\u1ed7 tr\u1ee3 ph\u00f9 h\u1ee3p v\u1edbi b\u1ea1n.',\n      introNote: 'Ch\u1ec9 m\u1ea5t kho\u1ea3ng hai ph\u00fat. Kh\u00f4ng ch\u1ea9n \u0111o\u00e1n. Ch\u1ec9 \u0111\u1ec3 \u0111\u1ecbnh h\u01b0\u1edbng.',\n      introKicker: 'TRONG HAI PH\u00daT',\n      introList1: 'Tr\u1ea3 l\u1eddi 8 c\u00e2u h\u1ecfi v\u1ec1 s\u1edf th\u00edch',\n      introList2: 'So s\u00e1nh c\u00e1c l\u1ef1a ch\u1ecdn ngh\u1ec9 d\u01b0\u1ee1ng hi\u1ec7n c\u00f3',\n      introList2Count: function(count) { return 'So s\u00e1nh t\u1ea5t c\u1ea3 ' + count + ' l\u1ef1a ch\u1ecdn ngh\u1ec9 d\u01b0\u1ee1ng'; },\n      introList3: 'Xem l\u1ecbch, \u0111\u1ecba \u0111i\u1ec3m v\u00e0 m\u1ee9c gi\u00e1 hi\u1ec7n t\u1ea1i',\n      openQuiz: 'L\u00e0m b\u00e0i tr\u1eafc nghi\u1ec7m',\n      modalEyebrow: 'TR\u1eaeC NGHI\u1ec6M K\u1ef2 NGH\u1ec8',\n      modalTitle: 'T\u00ecm k\u1ef3 ngh\u1ec9 ph\u00f9 h\u1ee3p nh\u1ea5t v\u1edbi b\u1ea1n',\n      modalNote: 'V\u00e0i c\u00e2u h\u1ecfi nh\u1eb9 nh\u00e0ng gi\u00fap b\u1ea1n l\u1ef1a ch\u1ecdn r\u00f5 r\u00e0ng h\u01a1n.',\n      closeQuiz: '\u0110\u00f3ng b\u00e0i tr\u1eafc nghi\u1ec7m',\n      questionProgress: function(current, total) { return 'C\u00e2u h\u1ecfi ' + current + '\/' + total; },\n      chooseAnswer: 'Ch\u1ecdn c\u00e2u tr\u1ea3 l\u1eddi g\u1ea7n nh\u1ea5t v\u1edbi c\u1ea3m nh\u1eadn c\u1ee7a b\u1ea1n.',\n      back: 'Quay l\u1ea1i',\n      next: 'Ti\u1ebfp theo',\n      seeResults: 'Xem k\u1ebft qu\u1ea3',\n      byRequest: 'Theo y\u00eau c\u1ea7u',\n      detailsOnRequest: 'Chi ti\u1ebft theo y\u00eau c\u1ea7u',\n      priceOnRequest: 'Gi\u00e1 theo y\u00eau c\u1ea7u',\n      nextDateBadge: 'L\u1ecbch g\u1ea7n nh\u1ea5t:',\n      strongestEyebrow: 'G\u1ee2I \u00dd PH\u00d9 H\u1ee2P NH\u1ea4T',\n      strongestTitle: 'K\u1ef3 ngh\u1ec9 ph\u00f9 h\u1ee3p nh\u1ea5t v\u1edbi b\u1ea1n l\u00e0 ',\n      secondaryMatch: function(name) { return 'B\u1ea1n c\u0169ng c\u00f3 th\u1ec3 ph\u00f9 h\u1ee3p v\u1edbi <strong>' + escapeHtml(name) + '<\/strong>, v\u00ec m\u1ed9t s\u1ed1 s\u1edf th\u00edch c\u1ee7a b\u1ea1n c\u0169ng h\u01b0\u1edbng \u0111\u1ebfn l\u1ef1a ch\u1ecdn n\u00e0y.'; },\n      location: '\u0110\u1ecba \u0111i\u1ec3m',\n      nextAvailability: 'L\u1ecbch g\u1ea7n nh\u1ea5t',\n      startingPrice: 'Gi\u00e1 t\u1eeb',\n      resultNote: 'K\u1ebft qu\u1ea3 n\u00e0y ch\u1ec9 so s\u00e1nh phong c\u00e1ch ngh\u1ec9 d\u01b0\u1ee1ng v\u00e0 s\u1edf th\u00edch c\u1ee7a b\u1ea1n. \u0110\u00e2y kh\u00f4ng ph\u1ea3i t\u01b0 v\u1ea5n y t\u1ebf hay \u0111\u00e1nh gi\u00e1 m\u1ee9c \u0111\u1ed9 ph\u00f9 h\u1ee3p v\u1edbi nh\u1ecbn \u0103n; \u0111i\u1ec1u ki\u1ec7n s\u1ee9c kh\u1ecfe c\u1ea7n \u0111\u01b0\u1ee3c x\u00e1c nh\u1eadn ri\u00eang v\u1edbi \u0111\u1ed9i ng\u0169 ch\u01b0\u01a1ng tr\u00ecnh.',\n      percentagesLabel: 'T\u1ef7 l\u1ec7 ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c k\u1ef3 ngh\u1ec9',\n      explore: 'Kh\u00e1m ph\u00e1 ',\n      exploreAll: 'Xem t\u1ea5t c\u1ea3 l\u1ecbch ngh\u1ec9 d\u01b0\u1ee1ng',\n      restart: 'L\u00e0m l\u1ea1i b\u00e0i tr\u1eafc nghi\u1ec7m',\n      noRetreatsTitle: 'K\u1ebft qu\u1ea3 ngh\u1ec9 d\u01b0\u1ee1ng t\u1ea1m th\u1eddi ch\u01b0a kh\u1ea3 d\u1ee5ng',\n      noRetreatsCopy: 'Ch\u00fang t\u00f4i ch\u01b0a th\u1ec3 t\u1ea3i danh s\u00e1ch ngh\u1ec9 d\u01b0\u1ee1ng hi\u1ec7n t\u1ea1i. Vui l\u00f2ng \u0111\u00f3ng b\u00e0i tr\u1eafc nghi\u1ec7m v\u00e0 th\u1eed l\u1ea1i sau \u00edt ph\u00fat.'\n    }\n  };\n\n  var copy = copyByLanguage[language] || copyByLanguage.en;\n\n  var vietnameseProfiles = {\n    an: {\n      name: 'K\u1ef3 ngh\u1ec9 \u201cAn\u201d t\u1ea1i Legacy Y\u00ean T\u1eed MGallery',\n      reason: 'C\u00e2u tr\u1ea3 l\u1eddi c\u1ee7a b\u1ea1n h\u01b0\u1edbng \u0111\u1ebfn s\u1ef1 t\u0129nh l\u1eb7ng, chi\u00eam nghi\u1ec7m v\u00e0 c\u00e2n b\u1eb1ng l\u1ea1i n\u1ed9i t\u00e2m. L\u1ef1a ch\u1ecdn n\u00e0y c\u00f3 th\u1ec3 ph\u00f9 h\u1ee3p n\u1ebfu b\u1ea1n mu\u1ed1n t\u1ea1m r\u1eddi nh\u1ecbp s\u1ed1ng th\u01b0\u1eddng ng\u00e0y v\u00e0 tr\u1ea3i nghi\u1ec7m m\u1ed9t h\u00e0nh tr\u00ecnh t\u00e1i t\u1ea1o c\u00f3 h\u01b0\u1edbng d\u1eabn gi\u1eefa kh\u00f4ng gian n\u00fai non t\u0129nh t\u1ea1i.'\n    },\n    buong: {\n      name: 'K\u1ef3 ngh\u1ec9 Bu\u00f4ng t\u1ea1i Kh\u00f4ng gian L\u01b0u ni\u1ec7m L\u00ea B\u00e1 \u0110\u1ea3ng',\n      reason: 'C\u00e2u tr\u1ea3 l\u1eddi c\u1ee7a b\u1ea1n h\u01b0\u1edbng \u0111\u1ebfn m\u1ed9t k\u1ef3 ngh\u1ec9 c\u00f3 h\u01b0\u1edbng d\u1eabn, c\u1ea5u tr\u00fac, thi\u00ean nhi\u00ean v\u00e0 ph\u1ea3n t\u01b0 s\u00e1ng t\u1ea1o. L\u1ef1a ch\u1ecdn n\u00e0y c\u00f3 th\u1ec3 ph\u00f9 h\u1ee3p n\u1ebfu b\u1ea1n coi tr\u1ecdng h\u00e0nh tr\u00ecnh s\u1ebb chia v\u00e0 m\u1ed9t nh\u1ecbp sinh ho\u1ea1t h\u1eb1ng ng\u00e0y h\u1ed7 tr\u1ee3 trong kh\u00f4ng gian truy\u1ec1n c\u1ea3m h\u1ee9ng.'\n    },\n    herbal: {\n      name: 'Th\u1ea3i \u0111\u1ed9c th\u1ea3o d\u01b0\u1ee3c Vi\u1ec7t Nam t\u1ea1i Namia River Retreat H\u1ed9i An',\n      reason: 'C\u00e2u tr\u1ea3 l\u1eddi c\u1ee7a b\u1ea1n h\u01b0\u1edbng \u0111\u1ebfn m\u1ed9t tr\u1ea3i nghi\u1ec7m ph\u1ee5c h\u1ed3i s\u00e2u s\u1eafc v\u00e0 tinh t\u1ebf, b\u1eaft ngu\u1ed3n t\u1eeb tr\u00ed tu\u1ec7 th\u1ea3o d\u01b0\u1ee3c Vi\u1ec7t Nam. L\u1ef1a ch\u1ecdn n\u00e0y c\u00f3 th\u1ec3 ph\u00f9 h\u1ee3p n\u1ebfu c\u00e1c nghi th\u1ee9c v\u0103n h\u00f3a, s\u1ef1 y\u00ean b\u00ecnh ven s\u00f4ng v\u00e0 kh\u00f4ng gian ph\u1ee5c h\u1ed3i cao c\u1ea5p c\u00f3 \u00fd ngh\u0129a \u0111\u1eb7c bi\u1ec7t v\u1edbi b\u1ea1n.'\n    },\n    yen: {\n      name: 'K\u1ef3 ngh\u1ec9 Y\u00ean \u2013 Nh\u1ecbn \u0103n nh\u1eb9 nh\u00e0ng c\u00f9ng Vietnam Detox',\n      reason: 'C\u00e2u tr\u1ea3 l\u1eddi c\u1ee7a b\u1ea1n h\u01b0\u1edbng \u0111\u1ebfn m\u1ed9t h\u00e0nh tr\u00ecnh t\u00e1i t\u1ea1o nh\u1eb9 nh\u00e0ng, d\u1ec5 ti\u1ebfp c\u1eadn trong kh\u00f4ng gian ngh\u1ec9 d\u01b0\u1ee1ng thanh b\u00ecnh. L\u1ef1a ch\u1ecdn n\u00e0y c\u00f3 th\u1ec3 ph\u00f9 h\u1ee3p n\u1ebfu su\u1ed1i kho\u00e1ng n\u00f3ng t\u1ef1 nhi\u00ean, t\u1eafm th\u1ea3o d\u01b0\u1ee3c v\u00e0 b\u01b0\u1edbc kh\u1edfi \u0111\u1ea7u tho\u1ea3i m\u00e1i v\u1edbi nh\u1ecbn \u0103n h\u1ea5p d\u1eabn b\u1ea1n.'\n    },\n    private: {\n      name: 'K\u1ef3 ngh\u1ec9 ri\u00eang t\u01b0 & doanh nghi\u1ec7p',\n      reason: 'C\u00e2u tr\u1ea3 l\u1eddi c\u1ee7a b\u1ea1n h\u01b0\u1edbng \u0111\u1ebfn s\u1ef1 ri\u00eang t\u01b0, linh ho\u1ea1t v\u00e0 m\u1ed9t k\u1ef3 ngh\u1ec9 \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf theo ho\u00e0n c\u1ea3nh c\u1ee7a m\u00ecnh. H\u00ecnh th\u1ee9c ri\u00eang t\u01b0 c\u00f3 th\u1ec3 ph\u00f9 h\u1ee3p n\u1ebfu th\u1eddi gian, th\u00e0nh ph\u1ea7n nh\u00f3m ho\u1eb7c s\u1ef1 quan t\u00e2m c\u00e1 nh\u00e2n quan tr\u1ecdng v\u1edbi b\u1ea1n h\u01a1n vi\u1ec7c tham gia m\u1ed9t l\u1ecbch c\u00f4ng khai c\u1ed1 \u0111\u1ecbnh.'\n    }\n  };\n\n  if (language === 'vi') {\n    questions = vietnameseQuestions;\n    profileOrder.forEach(function(key) {\n      profiles[key].name = vietnameseProfiles[key].name;\n      profiles[key].reason = vietnameseProfiles[key].reason;\n    });\n  }\n\n  function applyStaticCopy() {\n    var textSelectors = {\n      '.rdq-transition': 'transition',\n      '.rdq-eyebrow': 'introEyebrow',\n      '.rdq-intro-copy > p:not(.rdq-intro-note)': 'introCopy',\n      '.rdq-intro-note': 'introNote',\n      '.rdq-kicker': 'introKicker',\n      '.rdq-list li:nth-child(1) span:last-child': 'introList1',\n      '.rdq-list li:nth-child(2) span:last-child': 'introList2',\n      '.rdq-list li:nth-child(3) span:last-child': 'introList3',\n      '[data-rdq-open]': 'openQuiz',\n      '.rdq-modal-eyebrow': 'modalEyebrow',\n      '.rdq-modal-title': 'modalTitle',\n      '.rdq-modal-note': 'modalNote'\n    };\n\n    Object.keys(textSelectors).forEach(function(selector) {\n      var element = root.querySelector(selector);\n      if (element) element.textContent = copy[textSelectors[selector]];\n    });\n\n    var introTitle = root.querySelector('#rdq-intro-title');\n    if (introTitle) introTitle.innerHTML = copy.introTitle;\n\n    var closeButton = root.querySelector('.rdq-close');\n    if (closeButton) closeButton.setAttribute('aria-label', copy.closeQuiz);\n  }\n\n  function getUpcomingDates(retreat) {\n    var today = new Date();\n    today.setHours(0, 0, 0, 0);\n    if (!retreat || !Array.isArray(retreat.dates)) return [];\n\n    return retreat.dates.map(function(schedule) {\n      return {\n        schedule: schedule,\n        start: parseApiDate(schedule.start),\n        end: parseApiDate(schedule.end) || parseApiDate(schedule.start)\n      };\n    }).filter(function(item) {\n      return item.start && item.end && item.end >= today;\n    }).sort(function(a, b) {\n      return a.start - b.start;\n    });\n  }\n\n  function formatDateRange(item) {\n    if (!item || !item.start) return copy.byRequest;\n    var formatter = new Intl.DateTimeFormat(locale, {\n      day: '2-digit',\n      month: 'short',\n      year: 'numeric'\n    });\n\n    if (item.end && typeof formatter.formatRange === 'function') {\n      return formatter.formatRange(item.start, item.end);\n    }\n\n    return item.end\n      ? formatter.format(item.start) + ' \u2013 ' + formatter.format(item.end)\n      : formatter.format(item.start);\n  }\n\n  function enrichProfiles(retreats) {\n    var availableProfiles = [];\n\n    retreats.forEach(function(retreat) {\n      var key = profileOrder.find(function(profileKey) {\n        var profile = profiles[profileKey];\n        return (profile.sku && retreat.retreat_sku === profile.sku) ||\n          Number(retreat.id) === Number(profile.id);\n      });\n\n      if (!key || availableProfiles.indexOf(key) !== -1) return;\n\n      var profile = profiles[key];\n      profile.api = retreat;\n      profile.name = retreat.name || profile.name;\n      profile.url = safeUrl(retreat.url) || profile.url;\n      availableProfiles.push(key);\n    });\n\n    \/\/ Preserve the API order and expose only retreats returned by this request.\n    activeProfileOrder = availableProfiles;\n\n    var comparisonLabel = root.querySelector('.rdq-list li:nth-child(2) span:last-child');\n    if (comparisonLabel) {\n      comparisonLabel.textContent = copy.introList2Count(activeProfileOrder.length);\n    }\n  }\n\n  function getSharedRetreatApi() {\n    if (window.VietnamDetoxRetreatAPI) {\n      return window.VietnamDetoxRetreatAPI;\n    }\n\n    window.VietnamDetoxRetreatAPI = {\n      requests: {},\n\n      load: function(apiPath, requestedLanguage) {\n        var apiUrl = new URL(apiPath || '\/wp-json\/retreats\/v1\/all', window.location.origin);\n        apiUrl.searchParams.set('lang', requestedLanguage || 'en');\n\n        var cacheKey = apiUrl.href;\n\n        if (!this.requests[cacheKey]) {\n          this.requests[cacheKey] = fetch(cacheKey, {\n            headers: { Accept: 'application\/json' }\n          }).then(function(response) {\n            if (!response.ok) {\n              throw new Error('Retreat API returned HTTP ' + response.status);\n            }\n            return response.json();\n          }).then(function(retreats) {\n            if (!Array.isArray(retreats)) {\n              throw new Error('Unexpected retreat API response');\n            }\n            return retreats;\n          }).catch(function(error) {\n            delete window.VietnamDetoxRetreatAPI.requests[cacheKey];\n            throw error;\n          });\n        }\n\n        return this.requests[cacheKey];\n      }\n    };\n\n    return window.VietnamDetoxRetreatAPI;\n  }\n\n  function loadRetreats() {\n    return getSharedRetreatApi()\n      .load(root.dataset.api || '\/wp-json\/retreats\/v1\/all', language)\n      .then(function(retreats) {\n        enrichProfiles(retreats);\n        return retreats;\n      })\n      .catch(function(error) {\n        console.warn('Retreat quiz is using fallback content:', error);\n        return [];\n      });\n  }\n\n  function currentSelection() {\n    return selectedAnswers[currentStep];\n  }\n\n  function canContinue() {\n    return currentSelection() !== null && currentSelection() !== undefined;\n  }\n\n  function scoreTotals() {\n    var totals = {};\n    activeProfileOrder.forEach(function(key) { totals[key] = 0; });\n\n    selectedAnswers.forEach(function(answerIndex, questionIndex) {\n      if (answerIndex === null || answerIndex === undefined) return;\n      var answer = questions[questionIndex].answers[answerIndex];\n      activeProfileOrder.forEach(function(key) {\n        totals[key] += answer.scores[key] || 0;\n      });\n    });\n\n    return totals;\n  }\n\n  function normalizedScores() {\n    var totals = scoreTotals();\n    var total = activeProfileOrder.reduce(function(sum, key) { return sum + totals[key]; }, 0);\n    var items = activeProfileOrder.map(function(key) {\n      return {\n        key: key,\n        name: profiles[key].name,\n        score: totals[key],\n        percent: total ? Math.round((totals[key] \/ total) * 100) : 0\n      };\n    });\n\n    var percentageTotal = items.reduce(function(sum, item) { return sum + item.percent; }, 0);\n    if (percentageTotal !== 100 && items.length) {\n      items.slice().sort(function(a, b) { return b.score - a.score; })[0].percent += 100 - percentageTotal;\n    }\n\n    return items.sort(function(a, b) {\n      return b.percent !== a.percent ? b.percent - a.percent : b.score - a.score;\n    });\n  }\n\n  function renderQuestion() {\n    var question = questions[currentStep];\n    mode = 'question';\n    progress.hidden = false;\n    progressText.textContent = copy.questionProgress(currentStep + 1, questions.length);\n    progressFill.style.width = (((currentStep + 1) \/ questions.length) * 100) + '%';\n    stage.hidden = false;\n    result.hidden = true;\n    result.innerHTML = '';\n\n    stage.innerHTML = [\n      '<article class=\"rdq-question-card\">',\n        '<h2 class=\"rdq-question\">' + escapeHtml(question.question) + '<\/h2>',\n        '<p class=\"rdq-question-note\">' + escapeHtml(copy.chooseAnswer) + '<\/p>',\n        '<div class=\"rdq-answers\" role=\"radiogroup\" aria-label=\"' + escapeHtml(question.question) + '\">',\n          question.answers.map(function(answer, index) {\n            var selected = currentSelection() === index;\n            return '<button type=\"button\" class=\"rdq-answer' + (selected ? ' is-selected' : '') + '\" data-rdq-answer=\"' + index + '\" aria-pressed=\"' + selected + '\">' +\n              '<span class=\"rdq-answer-mark\" aria-hidden=\"true\"><\/span>' +\n              '<span class=\"rdq-answer-text\">' + escapeHtml(answer.label) + '<\/span>' +\n            '<\/button>';\n          }).join(''),\n        '<\/div>',\n        '<div class=\"rdq-nav\">',\n          '<button type=\"button\" class=\"rdq-btn rdq-btn-outline\" data-rdq-back ' + (currentStep === 0 ? 'hidden' : '') + '>' + escapeHtml(copy.back) + '<\/button>',\n          '<button type=\"button\" class=\"rdq-btn rdq-btn-ember\" data-rdq-next ' + (canContinue() ? '' : 'disabled') + '>' +\n            escapeHtml(currentStep === questions.length - 1 ? copy.seeResults : copy.next) +\n          '<\/button>',\n        '<\/div>',\n      '<\/article>'\n    ].join('');\n\n    bindQuestionEvents();\n  }\n\n  function resultFacts(profile) {\n    var retreat = profile.api;\n    var dates = getUpcomingDates(retreat);\n    var packages = retreat && Array.isArray(retreat.packages) ? retreat.packages : [];\n    var prices = packages.map(function(item) { return Number(item.price); }).filter(function(price) {\n      return Number.isFinite(price) && price > 0;\n    });\n    var lowestPrice = prices.length ? Math.min.apply(null, prices) : null;\n\n    return {\n      image: retreat ? safeUrl(retreat.image) : '',\n      location: retreat && retreat.location ? retreat.location : copy.detailsOnRequest,\n      nextDate: dates.length ? formatDateRange(dates[0]) : copy.byRequest,\n      price: lowestPrice\n        ? new Intl.NumberFormat(locale, {\n            style: 'currency',\n            currency: 'VND',\n            maximumFractionDigits: 0\n          }).format(lowestPrice)\n        : copy.priceOnRequest\n    };\n  }\n\n  function renderResult() {\n    var scores = normalizedScores();\n\n    if (!scores.length) {\n      mode = 'result';\n      progress.hidden = true;\n      stage.hidden = true;\n      stage.innerHTML = '';\n      result.hidden = false;\n      result.innerHTML = [\n        '<article class=\"rdq-result-card\">',\n          '<span class=\"rdq-result-eyebrow\">' + escapeHtml(copy.strongestEyebrow) + '<\/span>',\n          '<h2 class=\"rdq-result-title\">' + escapeHtml(copy.noRetreatsTitle) + '<\/h2>',\n          '<p class=\"rdq-result-copy\">' + escapeHtml(copy.noRetreatsCopy) + '<\/p>',\n          '<div class=\"rdq-result-actions\">',\n            '<button type=\"button\" class=\"rdq-btn rdq-btn-outline\" data-rdq-restart>' + escapeHtml(copy.restart) + '<\/button>',\n          '<\/div>',\n        '<\/article>'\n      ].join('');\n      result.querySelector('[data-rdq-restart]').addEventListener('click', restartQuiz);\n      return;\n    }\n\n    var primary = scores[0];\n    var secondary = scores[1];\n    var profile = profiles[primary.key];\n    var secondaryProfile = secondary ? profiles[secondary.key] : null;\n    var facts = resultFacts(profile);\n    var url = safeUrl(profile.url) || '#retreat-options';\n    var closeMatch = secondary && primary.percent - secondary.percent <= 5 && secondary.percent > 0;\n\n    var hero = facts.image\n      ? '<a class=\"rdq-result-hero\" href=\"' + escapeHtml(url) + '\" data-rdq-link=\"' + escapeHtml(url) + '\">' +\n          '<img decoding=\"async\" src=\"' + escapeHtml(facts.image) + '\" alt=\"' + escapeHtml(profile.name) + '\">' +\n          '<span class=\"rdq-result-badge\">' + escapeHtml(copy.nextDateBadge) + ' ' + escapeHtml(facts.nextDate) + '<\/span>' +\n        '<\/a>'\n      : '';\n\n    mode = 'result';\n    progress.hidden = true;\n    stage.hidden = true;\n    stage.innerHTML = '';\n    result.hidden = false;\n\n    result.innerHTML = [\n      '<article class=\"rdq-result-card\">',\n        '<span class=\"rdq-result-eyebrow\">' + escapeHtml(copy.strongestEyebrow) + '<\/span>',\n        hero,\n        '<h2 class=\"rdq-result-title\">' + escapeHtml(copy.strongestTitle) + escapeHtml(profile.name) + '<\/h2>',\n        '<p class=\"rdq-result-copy\">' + escapeHtml(profile.reason) + '<\/p>',\n        closeMatch && secondaryProfile\n          ? '<p class=\"rdq-result-secondary\">' + copy.secondaryMatch(secondaryProfile.name) + '<\/p>'\n          : '',\n        '<div class=\"rdq-result-facts\">',\n          '<div class=\"rdq-result-fact\"><strong>' + escapeHtml(copy.location) + '<\/strong>' + escapeHtml(facts.location) + '<\/div>',\n          '<div class=\"rdq-result-fact\"><strong>' + escapeHtml(copy.nextAvailability) + '<\/strong>' + escapeHtml(facts.nextDate) + '<\/div>',\n          '<div class=\"rdq-result-fact\"><strong>' + escapeHtml(copy.startingPrice) + '<\/strong>' + escapeHtml(facts.price) + '<\/div>',\n        '<\/div>',\n        '<p class=\"rdq-result-note\">' + escapeHtml(copy.resultNote) + '<\/p>',\n        '<div class=\"rdq-result-bars\" aria-label=\"' + escapeHtml(copy.percentagesLabel) + '\">',\n          scores.map(function(item) {\n            return '<div class=\"rdq-result-bar\">' +\n              '<div class=\"rdq-result-bar-head\"><span>' + escapeHtml(item.name) + '<\/span><strong>' + item.percent + '%<\/strong><\/div>' +\n              '<div class=\"rdq-result-track\"><div class=\"rdq-result-fill ' + item.key + '\" style=\"width:' + item.percent + '%\"><\/div><\/div>' +\n            '<\/div>';\n          }).join(''),\n        '<\/div>',\n        '<div class=\"rdq-result-actions\">',\n          '<a class=\"rdq-btn rdq-btn-ember\" href=\"' + escapeHtml(url) + '\" data-rdq-link=\"' + escapeHtml(url) + '\">' + escapeHtml(copy.explore) + escapeHtml(profile.name) + '<\/a>',\n          '<a class=\"rdq-btn rdq-btn-outline\" href=\"https:\/\/staging.vietnamdetox.com\/vi\/tong-quan-ve-khoa-nghi-duong\/\" data-rdq-link=\"\/retreat-overview\">' + escapeHtml(copy.exploreAll) + '<\/a>',\n          '<button type=\"button\" class=\"rdq-btn rdq-btn-outline\" data-rdq-restart>' + escapeHtml(copy.restart) + '<\/button>',\n        '<\/div>',\n      '<\/article>'\n    ].join('');\n\n    result.querySelector('[data-rdq-restart]').addEventListener('click', restartQuiz);\n  }\n\n  function render() {\n    if (mode === 'result') renderResult();\n    else renderQuestion();\n  }\n\n  function bindQuestionEvents() {\n    var answerButtons = stage.querySelectorAll('[data-rdq-answer]');\n    var backButton = stage.querySelector('[data-rdq-back]');\n    var nextButton = stage.querySelector('[data-rdq-next]');\n\n    answerButtons.forEach(function(button) {\n      button.addEventListener('click', function() {\n        selectedAnswers[currentStep] = Number(button.dataset.rdqAnswer);\n        answerButtons.forEach(function(other) {\n          var selected = other === button;\n          other.classList.toggle('is-selected', selected);\n          other.setAttribute('aria-pressed', selected ? 'true' : 'false');\n        });\n        nextButton.disabled = false;\n      });\n    });\n\n    if (backButton) {\n      backButton.addEventListener('click', function() {\n        if (currentStep > 0) {\n          currentStep -= 1;\n          render();\n        }\n      });\n    }\n\n    nextButton.addEventListener('click', function() {\n      if (!canContinue()) return;\n      if (currentStep < questions.length - 1) currentStep += 1;\n      else mode = 'result';\n      render();\n    });\n  }\n\n  function restartQuiz() {\n    selectedAnswers = new Array(questions.length).fill(null);\n    currentStep = 0;\n    mode = 'question';\n    render();\n  }\n\n  function openModal() {\n    lastFocused = document.activeElement;\n    previousBodyOverflow = document.body.style.overflow;\n    document.body.style.overflow = 'hidden';\n    modal.hidden = false;\n    modal.setAttribute('aria-hidden', 'false');\n    openButton.setAttribute('aria-expanded', 'true');\n    window.requestAnimationFrame(function() {\n      modal.classList.add('is-open');\n      var closeButton = modal.querySelector('[data-rdq-close].rdq-close');\n      (closeButton || dialog).focus();\n    });\n  }\n\n  function closeModal() {\n    modal.classList.remove('is-open');\n    modal.setAttribute('aria-hidden', 'true');\n    openButton.setAttribute('aria-expanded', 'false');\n    document.body.style.overflow = previousBodyOverflow;\n    window.setTimeout(function() { modal.hidden = true; }, 220);\n    if (lastFocused && typeof lastFocused.focus === 'function') lastFocused.focus();\n  }\n\n  function navigate(href) {\n    if (!href) return;\n    if (href.charAt(0) === '#') {\n      closeModal();\n      window.setTimeout(function() {\n        var target = document.querySelector(href);\n        if (target) target.scrollIntoView({ behavior: 'smooth', block: 'start' });\n      }, 240);\n      return;\n    }\n    window.location.href = href;\n  }\n\n  openButton.addEventListener('click', openModal);\n  root.querySelectorAll('[data-rdq-close]').forEach(function(button) {\n    button.addEventListener('click', closeModal);\n  });\n\n  root.addEventListener('click', function(event) {\n    var link = event.target.closest('[data-rdq-link]');\n    if (!link) return;\n    event.preventDefault();\n    navigate(link.getAttribute('data-rdq-link'));\n  });\n\n  dialog.addEventListener('keydown', function(event) {\n    if (event.key !== 'Tab') return;\n    var focusable = Array.prototype.slice.call(dialog.querySelectorAll(\n      'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=&quot;-1&quot;])'\n    )).filter(function(element) { return !element.hidden && element.offsetParent !== null; });\n    if (!focusable.length) return;\n    var first = focusable[0];\n    var last = focusable[focusable.length - 1];\n    if (event.shiftKey && document.activeElement === first) {\n      event.preventDefault();\n      last.focus();\n    } else if (!event.shiftKey && document.activeElement === last) {\n      event.preventDefault();\n      first.focus();\n    }\n  });\n\n  document.addEventListener('keydown', function(event) {\n    if (event.key === 'Escape' && !modal.hidden) closeModal();\n  });\n\n  applyStaticCopy();\n\n  loadRetreats().then(function() {\n    if (mode === 'result') renderResult();\n  });\n\n  render();\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section data-dce-background-overlay-color=\"#F2EAD8\" class=\"elementor-element elementor-element-e14f13c e-flex e-con-boxed elementor-invisible e-con e-parent\" data-id=\"e14f13c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;fadeIn&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fece9fd elementor-widget elementor-widget-html\" data-id=\"fece9fd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Copy this entire file into ONE Elementor HTML widget.\r\n  Put elementor-guest-reviews.css into the same widget's\r\n  Advanced > Custom CSS field.\r\n\r\n  Image URLs are configured for staging.vietnamdetox.com.\r\n-->\r\n\r\n<section class=\"vdg\" data-vdg-section=\"\" aria-labelledby=\"vdg-title\">\r\n  <div class=\"vdg__shell\">\r\n    <header class=\"vdg__header\">\r\n      <span class=\"vdg__eyebrow\">Nh\u1eefng thay \u0111\u1ed5i kh\u00e1ch c\u1ea3m nh\u1eadn sau h\u00e0nh tr\u00ecnh t\u00e1i thi\u1ebft l\u1eadp<\/span>\r\n      <span class=\"vdg__clue\" aria-hidden=\"true\"><\/span>\r\n\r\n      <h2 class=\"vdg__headline\" id=\"vdg-title\">\r\n T\u1eeb c\u1ea3m gi\u00e1c qu\u00e1 t\u1ea3i<br\/>\u0111\u1ebfn <em>nh\u1eb9 nh\u00f5m, s\u00e1ng r\u00f5 v\u00e0 v\u1eefng v\u00e0ng h\u01a1n.<\/em>\r\n      <\/h2>\r\n\r\n      <p class=\"vdg__introduction\">\r\n Nhi\u1ec1u kh\u00e1ch t\u00ecm \u0111\u1ebfn khi ch\u1ec9 ngh\u1ec9 ng\u01a1i th\u00f4i \u0111\u00e3 kh\u00f4ng c\u00f2n \u0111\u1ee7. L\u1eddi k\u1ec3 c\u1ee7a h\u1ecd cho th\u1ea5y \u0111i\u1ec1u g\u00ec c\u00f3 th\u1ec3 d\u1ea7n thay \u0111\u1ed5i khi c\u01a1 th\u1ec3, t\u00e2m tr\u00ed v\u00e0 nh\u1ecbp s\u1ed1ng h\u1eb1ng ng\u00e0y c\u00f3 kh\u00f4ng gian \u0111\u1ec3 t\u00e1i thi\u1ebft l\u1eadp. \r\n      <\/p>\r\n    <\/header>\r\n\r\n    <div class=\"vdg__grid\">\r\n      <article class=\"vdg__card vdg__reveal\" data-vdg-reveal=\"\" data-vdg-card=\"\">\r\n        <header class=\"vdg__review-head\">\r\n          <div class=\"vdg__avatar\">\r\n            <img src=\"\/wp-content\/uploads\/2026\/05\/ms-bich-thuy.webp\" alt=\"Ch\u1ecb B\u00edch Th\u1ee7y\" loading=\"lazy\" decoding=\"async\">\r\n          <\/div>\r\n\r\n          <div class=\"vdg__guest\">\r\n            <h3 class=\"vdg__name\">Ch\u1ecb B\u00edch Th\u1ee7y<\/h3>\r\n            <div class=\"vdg__meta\">Chia s\u1ebb c\u1ee7a kh\u00e1ch<\/div>\r\n            <div class=\"vdg__stars\" role=\"img\" aria-label=\"5 out of 5 stars\">\r\n              <span aria-hidden=\"true\">\u2605\u2605\u2605\u2605\u2605<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/header>\r\n\r\n        <p class=\"vdg__review\" data-vdg-review=\"\">\r\n \u201cT\u00f4i v\u00f4 c\u00f9ng h\u00e0i l\u00f2ng v\u1edbi nh\u1eefng ki\u1ebfn th\u1ee9c m\u00e0 hu\u1ea5n luy\u1ec7n vi\u00ean nh\u1ecbn \u0103n Dieter truy\u1ec1n \u0111\u1ea1t v\u00e0 \u0111\u00e3 h\u1ecdc \u0111\u01b0\u1ee3c r\u1ea5t nhi\u1ec1u \u0111i\u1ec1u m\u1edbi, ch\u1eb3ng h\u1ea1n nh\u01b0 ph\u00e1c h\u1ecda tranh Mandala v\u00e0 thi\u1ebft k\u1ebf b\u1ea3ng t\u1ea7m nh\u00ecn c\u1ee7a ri\u00eang m\u00ecnh \u0111\u1ec3 th\u1ec3 hi\u1ec7n t\u01b0\u01a1ng lai c\u00f9ng nh\u1eefng m\u1ee5c ti\u00eau t\u00f4i mu\u1ed1n \u0111\u1ea1t \u0111\u01b0\u1ee3c. M\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh thanh l\u1ecdc tuy\u1ec7t v\u1eddi.\u201d \r\n        <\/p>\r\n\r\n        <button class=\"vdg__toggle\" type=\"button\" data-vdg-toggle=\"\" hidden=\"\">\r\n \u0110\u1ecdc th\u00eam\r\n        <\/button>\r\n      <\/article>\r\n\r\n      <article class=\"vdg__card vdg__reveal vdg__delay-1\" data-vdg-reveal=\"\" data-vdg-card=\"\">\r\n        <header class=\"vdg__review-head\">\r\n          <div class=\"vdg__avatar\">\r\n            <img src=\"\/wp-content\/uploads\/2026\/05\/ms-hana-dang.webp\" alt=\"Ch\u1ecb Hana \u0110\u1eb7ng\" loading=\"lazy\" decoding=\"async\">\r\n          <\/div>\r\n\r\n          <div class=\"vdg__guest\">\r\n            <h3 class=\"vdg__name\">Ch\u1ecb Hana \u0110\u1eb7ng<\/h3>\r\n            <div class=\"vdg__meta\">Chia s\u1ebb c\u1ee7a kh\u00e1ch<\/div>\r\n            <div class=\"vdg__stars\" role=\"img\" aria-label=\"5 out of 5 stars\">\r\n              <span aria-hidden=\"true\">\u2605\u2605\u2605\u2605\u2605<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/header>\r\n\r\n        <p class=\"vdg__review\" data-vdg-review=\"\">\r\n \u201cK\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng cung c\u1ea5p n\u1ed9i dung r\u1ea5t r\u00f5 r\u00e0ng v\u00e0 khoa h\u1ecdc, gi\u1ea3i th\u00edch v\u00f4 c\u00f9ng chi ti\u1ebft v\u1ec1 ph\u01b0\u01a1ng ph\u00e1p nh\u1ecbn \u0103n c\u00f3 c\u01a1 s\u1edf khoa h\u1ecdc. D\u00f9 tham gia nhi\u1ec1u ho\u1ea1t \u0111\u1ed9ng th\u1ec3 ch\u1ea5t nh\u01b0 yoga, thi\u1ec1n v\u00e0 h\u00f2a m\u00ecnh v\u00e0o thi\u00ean nhi\u00ean, t\u00f4i ho\u00e0n to\u00e0n kh\u00f4ng c\u1ea3m th\u1ea5y \u0111\u00f3i. S\u1ef1 k\u1ebft h\u1ee3p gi\u1eefa thanh l\u1ecdc c\u01a1 th\u1ec3 v\u00e0 ch\u00e1nh ni\u1ec7m \u0111\u1eb7c bi\u1ec7t cu\u1ed1n h\u00fat.\u201d  \r\n        <\/p>\r\n\r\n        <button class=\"vdg__toggle\" type=\"button\" data-vdg-toggle=\"\" hidden=\"\">\r\n \u0110\u1ecdc th\u00eam\r\n        <\/button>\r\n      <\/article>\r\n\r\n      <article class=\"vdg__card vdg__reveal vdg__delay-2\" data-vdg-reveal=\"\" data-vdg-card=\"\">\r\n        <header class=\"vdg__review-head\">\r\n          <div class=\"vdg__avatar\">\r\n            <img src=\"\/wp-content\/uploads\/2026\/05\/ms-thu-loan.webp\" alt=\"Ch\u1ecb Thu Loan\" loading=\"lazy\" decoding=\"async\">\r\n          <\/div>\r\n\r\n          <div class=\"vdg__guest\">\r\n            <h3 class=\"vdg__name\">Ch\u1ecb Thu Loan<\/h3>\r\n            <div class=\"vdg__meta\">Chia s\u1ebb c\u1ee7a kh\u00e1ch<\/div>\r\n            <div class=\"vdg__stars\" role=\"img\" aria-label=\"5 out of 5 stars\">\r\n              <span aria-hidden=\"true\">\u2605\u2605\u2605\u2605\u2605<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/header>\r\n\r\n        <p class=\"vdg__review\" data-vdg-review=\"\">\r\n \u201cT\u00f4i v\u00f4 c\u00f9ng h\u1ea1nh ph\u00fac khi \u0111\u01b0\u1ee3c tham gia k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng thanh l\u1ecdc n\u00e0y; ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e3 mang \u0111\u1ebfn cho t\u00f4i s\u1ee9c kh\u1ecfe tuy\u1ec7t v\u1eddi v\u00e0 m\u1ed9t tr\u1ea3i nghi\u1ec7m \u0111\u00e1ng nh\u1edb. T\u00f4i tr\u00e2n tr\u1ecdng s\u1ef1 quan t\u00e2m m\u00e0 ban t\u1ed5 ch\u1ee9c d\u00e0nh cho c\u1ea3 nh\u00f3m c\u0169ng nh\u01b0 t\u1eebng c\u00e1 nh\u00e2n. C\u00e1c b\u00e0i t\u1eadp trong ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e3 truy\u1ec1n c\u1ea3m h\u1ee9ng v\u00e0 mang \u0111\u1ebfn lu\u1ed3ng sinh kh\u00ed m\u1edbi cho t\u00e2m h\u1ed3n t\u00f4i. M\u1ecdi ng\u01b0\u1eddi \u0111\u1ec1u th\u1eadt tuy\u1ec7t v\u1eddi\u2026\u201d   \r\n        <\/p>\r\n\r\n        <button class=\"vdg__toggle\" type=\"button\" data-vdg-toggle=\"\" hidden=\"\">\r\n \u0110\u1ecdc th\u00eam\r\n        <\/button>\r\n      <\/article>\r\n    <\/div>\r\n\r\n    <div class=\"vdg__cta\">\r\n      <p>Ch\u01b0a bi\u1ebft n\u00ean b\u1eaft \u0111\u1ea7u t\u1eeb \u0111\u00e2u?<\/p>\r\n      <a class=\"vdg__button\" href=\"#retreats\">Kh\u00e1m ph\u00e1 c\u00e1c k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng<\/a>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function() {\r\n  'use strict';\r\n\r\n  var sections = document.querySelectorAll('[data-vdg-section]');\r\n\r\n  sections.forEach(function(section, sectionIndex) {\r\n    if (section.dataset.vdgReady === 'true') return;\r\n    section.dataset.vdgReady = 'true';\r\n\r\n    var cards = section.querySelectorAll('[data-vdg-card]');\r\n    var revealItems = section.querySelectorAll('[data-vdg-reveal]');\r\n    var reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n    var resizeTimer = null;\r\n\r\n    cards.forEach(function(card, cardIndex) {\r\n      var review = card.querySelector('[data-vdg-review]');\r\n      var toggle = card.querySelector('[data-vdg-toggle]');\r\n\r\n      if (!review || !toggle) return;\r\n\r\n      var reviewId = 'vdg-review-' + sectionIndex + '-' + cardIndex;\r\n      review.id = reviewId;\r\n      toggle.setAttribute('aria-controls', reviewId);\r\n      toggle.setAttribute('aria-expanded', 'false');\r\n\r\n      toggle.addEventListener('click', function() {\r\n        var expanded = review.classList.toggle('is-expanded');\r\n        toggle.textContent = expanded ? 'Read less' : 'Read more';\r\n        toggle.setAttribute('aria-expanded', String(expanded));\r\n      });\r\n    });\r\n\r\n    function syncToggles() {\r\n      cards.forEach(function(card) {\r\n        var review = card.querySelector('[data-vdg-review]');\r\n        var toggle = card.querySelector('[data-vdg-toggle]');\r\n\r\n        if (!review || !toggle) return;\r\n\r\n        var wasExpanded = review.classList.contains('is-expanded');\r\n        review.classList.remove('is-expanded');\r\n        var isClipped = review.scrollHeight > review.clientHeight + 1;\r\n\r\n        if (isClipped) {\r\n          toggle.hidden = false;\r\n          if (wasExpanded) review.classList.add('is-expanded');\r\n        } else {\r\n          toggle.hidden = true;\r\n          toggle.textContent = 'Read more';\r\n          toggle.setAttribute('aria-expanded', 'false');\r\n        }\r\n      });\r\n    }\r\n\r\n    function revealAll() {\r\n      revealItems.forEach(function(item) {\r\n        item.classList.add('is-visible');\r\n      });\r\n    }\r\n\r\n    if (reducedMotion || !('IntersectionObserver' in window)) {\r\n      revealAll();\r\n    } else {\r\n      var observer = new IntersectionObserver(function(entries) {\r\n        entries.forEach(function(entry) {\r\n          if (!entry.isIntersecting) return;\r\n          entry.target.classList.add('is-visible');\r\n          observer.unobserve(entry.target);\r\n        });\r\n      }, {\r\n        threshold: 0.12,\r\n        rootMargin: '0px 0px -40px 0px'\r\n      });\r\n\r\n      revealItems.forEach(function(item) {\r\n        observer.observe(item);\r\n      });\r\n    }\r\n\r\n    window.requestAnimationFrame(syncToggles);\r\n\r\n    if (document.fonts && document.fonts.ready) {\r\n      document.fonts.ready.then(syncToggles);\r\n    }\r\n\r\n    window.addEventListener('resize', function() {\r\n      window.clearTimeout(resizeTimer);\r\n      resizeTimer = window.setTimeout(syncToggles, 120);\r\n    }, { passive: true });\r\n  });\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-d3eb3c9 e-flex e-con-boxed elementor-invisible e-con e-parent\" data-id=\"d3eb3c9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;fadeIn&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-97023b1 elementor-widget elementor-widget-html\" data-id=\"97023b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Copy this entire file into ONE Elementor HTML widget.\r\n  Put elementor-team-guidance.css into the same widget's\r\n  Advanced > Custom CSS field.\r\n\r\n  Image URLs are configured for staging.vietnamdetox.com.\r\n-->\r\n\r\n<section class=\"vdt\" id=\"about\" data-vdt-section=\"\" aria-labelledby=\"vdt-title\">\r\n  <div class=\"vdt__shell\">\r\n    <header class=\"vdt__header\">\r\n      <span class=\"vdt__eyebrow\">\u0110\u1ed3ng h\u00e0nh trong su\u1ed1t k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng<\/span>\r\n      <span class=\"vdt__rule vdt__rule--gold\" aria-hidden=\"true\"><\/span>\r\n\r\n      <h2 class=\"vdt__headline\" id=\"vdt-title\">\r\n \u0110\u1ed3ng h\u00e0nh gi\u00e0u kinh nghi\u1ec7m trong <em>h\u00e0nh tr\u00ecnh t\u00e1i thi\u1ebft l\u1eadp c\u1ee7a b\u1ea1n.<\/em>\r\n      <\/h2>\r\n\r\n      <p class=\"vdt__introduction\">\r\n Nh\u1ecbn \u0103n ban \u0111\u1ea7u c\u00f3 th\u1ec3 kh\u00e1 l\u1ea1 l\u1eabm. Trong su\u1ed1t qu\u00e1 tr\u00ecnh, b\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c nh\u1eefng ng\u01b0\u1eddi h\u01b0\u1edbng d\u1eabn gi\u00e0u kinh nghi\u1ec7m \u0111\u1ed3ng h\u00e0nh m\u1ed9t c\u00e1ch b\u00ecnh t\u0129nh v\u00e0 t\u1eadn t\u00e2m. \r\n      <\/p>\r\n    <\/header>\r\n\r\n    <div class=\"vdt__grid\">\r\n      <article class=\"vdt__card vdt__card--first vdt__reveal vdt__delay-1\" data-vdt-reveal=\"\">\r\n        <div class=\"vdt__photo\">\r\n          <img src=\"\/wp-content\/uploads\/2026\/08\/Dieter-Buchner-Co-Founder-and-Retreat-Leader-vietnam-detox.png\" alt=\"Dieter Buchner\" loading=\"lazy\" decoding=\"async\">\r\n        <\/div>\r\n\r\n        <div class=\"vdt__content\">\r\n          <h3 class=\"vdt__name\">Dieter Buchner<\/h3>\r\n          <p class=\"vdt__role\">Hu\u1ea5n luy\u1ec7n vi\u00ean nh\u1ecbn \u0103n \u0111\u01b0\u1ee3c ch\u1ee9ng nh\u1eadn & Gi\u00e1m \u0111\u1ed1c k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng<\/p>\r\n          <p class=\"vdt__subrole\">Chuy\u00ean gia th\u1ef1c h\u00e0nh nh\u1ecbn \u0103n Buchinger ng\u01b0\u1eddi \u0110\u1ee9c<\/p>\r\n          <span class=\"vdt__ember-rule\" aria-hidden=\"true\"><\/span>\r\n\r\n          <p class=\"vdt__bio\">\r\n Dieter ti\u00ean phong \u0111\u01b0a ph\u01b0\u01a1ng ph\u00e1p nh\u1ecbn \u0103n Buchinger v\u00e0o Vi\u1ec7t Nam t\u1eeb n\u0103m 2016. \u00d4ng \u0111\u01b0\u1ee3c \u0111\u00e0o t\u1ea1o t\u1ea1i \u0110\u1ee9c v\u00e0 \u0111\u00e3 \u0111\u1ed3ng h\u00e0nh c\u00f9ng h\u00e0ng tr\u0103m kh\u00e1ch trong l\u1ea7n nh\u1ecbn \u0103n \u0111\u1ea7u ti\u00ean. Ph\u01b0\u01a1ng ph\u00e1p c\u1ee7a \u00f4ng \u1ea5m \u00e1p, d\u1ef1a tr\u00ean b\u1eb1ng ch\u1ee9ng khoa h\u1ecdc v\u00e0 ch\u00fa tr\u1ecdng t\u1eebng c\u00e1 nh\u00e2n.  \r\n          <\/p>\r\n\r\n          <p class=\"vdt__support\">\r\n Kh\u00e1ch th\u01b0\u1eddng c\u1ea3m th\u1ea5y v\u1eefng t\u00e2m nh\u1edd m\u1ed9t l\u1ed9 tr\u00ecnh th\u01b0 th\u00e1i v\u00e0 s\u1ef1 quan t\u00e2m ri\u00eang d\u00e0nh cho t\u1eebng ng\u01b0\u1eddi.\r\n          <\/p>\r\n\r\n          <a href=\"#contact\" class=\"vdt__profile-link\">T\u00ecm hi\u1ec3u th\u00eam v\u1ec1 Dieter<\/a>\r\n        <\/div>\r\n      <\/article>\r\n\r\n      <article class=\"vdt__card vdt__reveal vdt__delay-2\" data-vdt-reveal=\"\">\r\n        <div class=\"vdt__photo\">\r\n          <img src=\"\/wp-content\/uploads\/2026\/08\/vietnamdetox-Truong-Tan-Hoan-Retreatleader-Cofounder-vietnam-detox.png\" alt=\"Tr\u01b0\u01a1ng T\u1ea5n Ho\u00e0n\" loading=\"lazy\" decoding=\"async\">\r\n        <\/div>\r\n\r\n        <div class=\"vdt__content\">\r\n          <h3 class=\"vdt__name\">Tr\u01b0\u01a1ng T\u1ea5n Ho\u00e0n<\/h3>\r\n          <p class=\"vdt__role\">\u0110\u1ed3ng s\u00e1ng l\u1eadp & \u0110i\u1ec1u ph\u1ed1i ch\u01b0\u01a1ng tr\u00ecnh<\/p>\r\n          <p class=\"vdt__subrole\">Ng\u01b0\u1eddi \u0111\u1ed3ng h\u00e0nh Vi\u1ec7t Nam v\u1ec1 ch\u0103m s\u00f3c s\u1ee9c kh\u1ecfe & ph\u1ee5c h\u1ed3i<\/p>\r\n          <span class=\"vdt__ember-rule\" aria-hidden=\"true\"><\/span>\r\n\r\n          <p class=\"vdt__bio\">\r\n Ho\u00e0n k\u1ebft n\u1ed1i ki\u1ebfn th\u1ee9c \u0111\u1ecba ph\u01b0\u01a1ng, c\u00e1c m\u1ed1i quan h\u1ec7 v\u00e0 s\u1ef1 ch\u0103m s\u00f3c, gi\u00fap tr\u1ea3i nghi\u1ec7m Vietnam Detox mang \u0111\u1eadm d\u1ea5u \u1ea5n b\u1ea3n \u0111\u1ecba. Anh b\u1ea3o \u0111\u1ea3m m\u1ecdi chi ti\u1ebft trong k\u1ef3 ngh\u1ec9 c\u1ee7a b\u1ea1n \u0111\u1ec1u \u0111\u01b0\u1ee3c c\u00e2n nh\u1eafc \u0111\u1ec3 m\u1ed7i v\u1ecb kh\u00e1ch \u0111\u1ec1u c\u1ea3m th\u1ea5y nh\u01b0 \u1edf nh\u00e0.\r\n          <\/p>\r\n\r\n          <p class=\"vdt__support\">\r\n Kh\u00e1ch th\u01b0\u1eddng c\u1ea3m nh\u1eadn m\u00ecnh \u0111\u01b0\u1ee3c ch\u0103m s\u00f3c t\u1eadn t\u00ecnh qua s\u1ef1 h\u1ed7 tr\u1ee3 nh\u1eb9 nh\u00e0ng, chu \u0111\u00e1o.\r\n          <\/p>\r\n\r\n          <a href=\"#contact\" class=\"vdt__profile-link\">T\u00ecm hi\u1ec3u th\u00eam v\u1ec1 Ho\u00e0n<\/a>\r\n        <\/div>\r\n      <\/article>\r\n    <\/div>\r\n\r\n    <p class=\"vdt__closing\">\r\n Trong su\u1ed1t m\u1ed7i k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng, s\u1ef1 h\u01b0\u1edbng d\u1eabn lu\u00f4n nh\u1eb9 nh\u00e0ng, g\u1ea7n g\u0169i v\u00e0 d\u1ef1a tr\u00ean kinh nghi\u1ec7m th\u1ef1c t\u1ebf.\r\n    <\/p>\r\n\r\n    <div class=\"vdt__cta\">\r\n      <a href=\"#retreats\" class=\"vdt__button\">Kh\u00e1m ph\u00e1 c\u00e1c k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng s\u1eafp t\u1edbi<\/a>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function() {\r\n  'use strict';\r\n\r\n  var sections = document.querySelectorAll('[data-vdt-section]');\r\n\r\n  sections.forEach(function(section) {\r\n    if (section.dataset.vdtReady === 'true') return;\r\n    section.dataset.vdtReady = 'true';\r\n\r\n    var cards = section.querySelectorAll('[data-vdt-reveal]');\r\n    var reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n\r\n    function revealAll() {\r\n      cards.forEach(function(card) {\r\n        card.classList.add('is-visible');\r\n      });\r\n    }\r\n\r\n    if (!cards.length || reducedMotion || !('IntersectionObserver' in window)) {\r\n      revealAll();\r\n      return;\r\n    }\r\n\r\n    var observer = new IntersectionObserver(function(entries) {\r\n      entries.forEach(function(entry) {\r\n        if (!entry.isIntersecting) return;\r\n        entry.target.classList.add('is-visible');\r\n        observer.unobserve(entry.target);\r\n      });\r\n    }, {\r\n      threshold: 0.12,\r\n      rootMargin: '0px 0px -40px 0px'\r\n    });\r\n\r\n    cards.forEach(function(card) {\r\n      observer.observe(card);\r\n    });\r\n  });\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-d0109dd e-flex e-con-boxed e-con e-parent\" data-id=\"d0109dd\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e89d6c5 elementor-widget elementor-widget-html\" data-id=\"e89d6c5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Copy this entire file into ONE Elementor HTML widget.\r\n  Put elementor-retreat-process.css into the same widget's\r\n  Advanced > Custom CSS field.\r\n-->\r\n\r\n<section class=\"vdp\" data-vdp-section=\"\" aria-labelledby=\"vdp-title\">\r\n  <div class=\"vdp__shell\">\r\n    <header class=\"vdp__header\">\r\n      <span class=\"vdp__eyebrow\">Quy tr\u00ecnh<\/span>\r\n      <span class=\"vdp__rule\" aria-hidden=\"true\"><\/span>\r\n\r\n      <h2 class=\"vdp__headline\" id=\"vdp-title\">\r\n K\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng \u0111\u01b0\u1ee3c t\u1ed5 ch\u1ee9c th\u1ebf n\u00e0o\r\n<span class=\"vdp__headline-subtitle\">tr\u01b0\u1edbc, trong v\u00e0 sau th\u1eddi gian l\u01b0u tr\u00fa<\/span>\r\n      <\/h2>\r\n\r\n      <p class=\"vdp__introduction\">\r\n B\u1ea1n \u0111\u01b0\u1ee3c h\u01b0\u1edbng d\u1eabn t\u1eebng b\u01b0\u1edbc tr\u01b0\u1edbc, trong v\u00e0 sau m\u1ed7i k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng.\r\n      <\/p>\r\n      <p class=\"vdp__introduction\">\r\n M\u1ecdi kh\u00eda c\u1ea1nh c\u1ee7a tr\u1ea3i nghi\u1ec7m \u0111\u1ec1u \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 vi\u1ec7c nh\u1ecbn \u0103n c\u00f3 l\u1ed9 tr\u00ecnh r\u00f5 r\u00e0ng, \u0111\u01b0\u1ee3c n\u00e2ng \u0111\u1ee1 v\u00e0 d\u1ec5 th\u1ef1c hi\u1ec7n, thay v\u00ec qu\u00e1 s\u1ee9c hay c\u1ef1c \u0111oan.\r\n      <\/p>\r\n    <\/header>\r\n\r\n    <ol class=\"vdp__steps\" role=\"list\">\r\n      <li class=\"vdp__step vdp__reveal vdp__delay-1\" data-vdp-reveal=\"\">\r\n        <span class=\"vdp__number\" aria-hidden=\"true\">01<\/span>\r\n        <div class=\"vdp__step-content\">\r\n          <h3>T\u00ecm k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng ph\u00f9 h\u1ee3p v\u1edbi b\u1ea1n<\/h3>\r\n          <p>\r\n Ch\u00fang t\u00f4i gi\u00fap b\u1ea1n ch\u1ecdn k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng ph\u00f9 h\u1ee3p nh\u1ea5t v\u1edbi ho\u00e0n c\u1ea3nh, m\u1ee5c ti\u00eau v\u00e0 kinh nghi\u1ec7m hi\u1ec7n t\u1ea1i.\r\n          <\/p>\r\n          <p>\r\n Sau khi gi\u1eef ch\u1ed7, b\u1ea1n s\u1ebd nh\u1eadn \u0111\u01b0\u1ee3c h\u01b0\u1edbng d\u1eabn r\u00f5 r\u00e0ng v\u1ec1 c\u00e1c b\u01b0\u1edbc ti\u1ebfp theo v\u00e0 c\u00e1ch chu\u1ea9n b\u1ecb.\r\n          <\/p>\r\n        <\/div>\r\n      <\/li>\r\n\r\n      <li class=\"vdp__step vdp__reveal vdp__delay-2\" data-vdp-reveal=\"\">\r\n        <span class=\"vdp__number\" aria-hidden=\"true\">02<\/span>\r\n        <div class=\"vdp__step-content\">\r\n          <h3>Chu\u1ea9n b\u1ecb & r\u00e0 so\u00e1t s\u1ee9c kh\u1ecfe<\/h3>\r\n          <p>\r\n Tr\u01b0\u1edbc khi \u0111\u1ebfn, b\u1ea1n ho\u00e0n th\u00e0nh m\u1ed9t b\u1ea3ng c\u00e2u h\u1ecfi s\u1ee9c kh\u1ecfe ng\u1eafn v\u00e0 tham gia cu\u1ed9c g\u1ecdi chu\u1ea9n b\u1ecb v\u1edbi Dieter ho\u1eb7c Ho\u00e0n.\r\n          <\/p>\r\n          <p>\r\n Nh\u1edd \u0111\u00f3, ch\u00fang t\u00f4i hi\u1ec3u t\u00ecnh tr\u1ea1ng c\u1ee7a b\u1ea1n, gi\u1ea3i \u0111\u00e1p c\u00e2u h\u1ecfi v\u00e0 gi\u00fap b\u1ea1n chu\u1ea9n b\u1ecb chu \u0111\u00e1o tr\u01b0\u1edbc khi b\u1eaft \u0111\u1ea7u nh\u1ecbn \u0103n.\r\n          <\/p>\r\n        <\/div>\r\n      <\/li>\r\n\r\n      <li class=\"vdp__step vdp__reveal vdp__delay-3\" data-vdp-reveal=\"\">\r\n        <span class=\"vdp__number\" aria-hidden=\"true\">03<\/span>\r\n        <div class=\"vdp__step-content\">\r\n          <h3>Tr\u1ea3i nghi\u1ec7m k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng<br\/>c\u1ee7a b\u1ea1n<\/h3>\r\n          <p>\r\n M\u1ed7i ng\u00e0y \u0111an xen nh\u1ecbn \u0103n, v\u1eadn \u0111\u1ed9ng, h\u1ecdc h\u1ecfi v\u00e0 ngh\u1ec9 ng\u01a1i theo m\u1ed9t nh\u1ecbp \u0111i\u1ec7u th\u01b0 th\u00e1i, c\u00f3 l\u1ed9 tr\u00ecnh.\r\n          <\/p>\r\n          <p>\r\n B\u1ea1n \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 trong su\u1ed1t qu\u00e1 tr\u00ecnh, \u0111\u1ed3ng th\u1eddi v\u1eabn c\u00f3 \u0111\u1ee7 kh\u00f4ng gian \u0111\u1ec3 s\u1ed1ng ch\u1eadm l\u1ea1i, chi\u00eam nghi\u1ec7m v\u00e0 k\u1ebft n\u1ed1i l\u1ea1i v\u1edbi ch\u00ednh m\u00ecnh.\r\n          <\/p>\r\n        <\/div>\r\n      <\/li>\r\n\r\n      <li class=\"vdp__step vdp__reveal vdp__delay-4\" data-vdp-reveal=\"\">\r\n        <span class=\"vdp__number\" aria-hidden=\"true\">04<\/span>\r\n        <div class=\"vdp__step-content\">\r\n          <h3>\u0110\u01b0a tr\u1ea3i nghi\u1ec7m v\u00e0o cu\u1ed9c s\u1ed1ng h\u1eb1ng ng\u00e0y<\/h3>\r\n          <p>\r\n Khi r\u1eddi k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng, b\u1ea1n c\u00f3 h\u01b0\u1edbng d\u1eabn \u0103n l\u1ea1i r\u00f5 r\u00e0ng, nh\u1eefng c\u00f4ng c\u1ee5 th\u1ef1c t\u1ebf v\u00e0 m\u1ed9t bu\u1ed5i theo d\u00f5i sau ch\u01b0\u01a1ng tr\u00ecnh.\r\n          <\/p>\r\n          <p>\r\n M\u1ee5c ti\u00eau l\u00e0 gi\u00fap b\u1ea1n tr\u1edf v\u1ec1 nh\u00e0 v\u1edbi nh\u1ecbp s\u1ed1ng l\u00e0nh m\u1ea1nh h\u01a1n v\u00e0 s\u1ef1 s\u00e1ng r\u00f5 h\u01a1n trong \u0111\u1eddi s\u1ed1ng h\u1eb1ng ng\u00e0y.\r\n          <\/p>\r\n        <\/div>\r\n      <\/li>\r\n    <\/ol>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function() {\r\n  'use strict';\r\n\r\n  var sections = document.querySelectorAll('[data-vdp-section]');\r\n\r\n  sections.forEach(function(section) {\r\n    if (section.dataset.vdpReady === 'true') return;\r\n    section.dataset.vdpReady = 'true';\r\n\r\n    var steps = section.querySelectorAll('[data-vdp-reveal]');\r\n    var reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n\r\n    function revealAll() {\r\n      steps.forEach(function(step) {\r\n        step.classList.add('is-visible');\r\n      });\r\n    }\r\n\r\n    if (!steps.length || reducedMotion || !('IntersectionObserver' in window)) {\r\n      revealAll();\r\n      return;\r\n    }\r\n\r\n    var observer = new IntersectionObserver(function(entries) {\r\n      entries.forEach(function(entry) {\r\n        if (!entry.isIntersecting) return;\r\n        entry.target.classList.add('is-visible');\r\n        observer.unobserve(entry.target);\r\n      });\r\n    }, {\r\n      threshold: 0.1,\r\n      rootMargin: '0px 0px -40px 0px'\r\n    });\r\n\r\n    steps.forEach(function(step) {\r\n      observer.observe(step);\r\n    });\r\n  });\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-1aeaeba e-flex e-con-boxed e-con e-parent\" data-id=\"1aeaeba\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ec5beb9 elementor-widget elementor-widget-html\" data-id=\"ec5beb9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&family=Be+Vietnam+Pro:wght@300;400;500;600;700&display=swap\" rel=\"stylesheet\">\n\n<section class=\"vnd-dbd\" data-vnd-dbd=\"\">\n  <div class=\"vnd-dbd__inner\">\n\n    <header class=\"vnd-dbd__header\">\n      <span class=\"vnd-dbd__eyebrow\">Ph\u01b0\u01a1ng ph\u00e1p Buchinger<\/span>\n      <span class=\"vnd-dbd__rule\"><\/span>\n\n      <h2 class=\"vnd-dbd__headline\">\n Nh\u1eefng thay \u0111\u1ed5i b\u1eaft \u0111\u1ea7u,\n<span>t\u1eebng ng\u00e0y m\u1ed9t.<\/span>\n      <\/h2>\n\n      <p class=\"vnd-dbd__description\">\n M\u1ed7i giai \u0111o\u1ea1n c\u1ee7a k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng nh\u1eb9 nh\u00e0ng h\u1ed7 tr\u1ee3 m\u1ed9t ti\u1ebfn tr\u00ecnh kh\u00e1c nhau trong c\u01a1 th\u1ec3 v\u00e0 t\u00e2m tr\u00ed.\n      <\/p>\n    <\/header>\n\n    <div class=\"vnd-dbd__slider\">\n\n      <div class=\"vnd-dbd__cards\" data-vnd-dbd-cards=\"\" tabindex=\"0\" aria-label=\"Day-by-day retreat experience\">\n\n        <article class=\"vnd-dbd__card is-active\">\n          <img decoding=\"async\" class=\"vnd-dbd__icon\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/homepage\/day-by-day\/SVG\/prepday.svg\" alt=\"\">\n          <span class=\"vnd-dbd__label\">Chu\u1ea9n b\u1ecb<\/span>\n          <h3>Chu\u1ea9n b\u1ecb c\u01a1 th\u1ec3<\/h3>\n          <p>\n Trong nh\u1eefng ng\u00e0y tr\u01b0\u1edbc k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng, b\u1eefa \u0103n tr\u1edf n\u00ean nh\u1eb9 v\u00e0 \u0111\u01a1n gi\u1ea3n h\u01a1n. H\u1ec7 ti\u00eau h\u00f3a ch\u1eadm l\u1ea1i, c\u00e1c k\u00edch th\u00edch \u0111\u01b0\u1ee3c gi\u1ea3m b\u1edbt v\u00e0 c\u01a1 th\u1ec3 b\u1eaft \u0111\u1ea7u chu\u1ea9n b\u1ecb \u0111\u1ec3 ngh\u1ec9 ng\u01a1i.\n          <\/p>\n          <p>\n Giai \u0111o\u1ea1n chuy\u1ec3n ti\u1ebfp \u00eam d\u1ecbu n\u00e0y gi\u00fap vi\u1ec7c nh\u1ecbn \u0103n b\u1edbt \u0111\u1ed9t ng\u1ed9t v\u00e0 d\u1ec5 th\u00edch nghi h\u01a1n ngay t\u1eeb \u0111\u1ea7u.\n          <\/p>\n        <\/article>\n\n        <article class=\"vnd-dbd__card\">\n          <img decoding=\"async\" class=\"vnd-dbd__icon\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/homepage\/day-by-day\/SVG\/day-o.svg\" alt=\"\">\n          <span class=\"vnd-dbd__label\">\u0110\u1ebfn n\u01a1i<\/span>\n          <h3>Ch\u1eadm l\u1ea1i v\u00e0 \u1ed5n \u0111\u1ecbnh<\/h3>\n          <p>\n Sau khi \u0111\u1ebfn, tr\u1ecdng t\u00e2m chuy\u1ec3n sang s\u1ed1ng ch\u1eadm l\u1ea1i. V\u1eadn \u0111\u1ed9ng nh\u1eb9 nh\u00e0ng, ki\u1ec3m tra s\u1ee9c kh\u1ecfe, s\u00fap b\u1ed5 d\u01b0\u1ee1ng v\u00e0 nh\u1ecbp sinh ho\u1ea1t y\u00ean t\u0129nh gi\u00fap c\u01a1 th\u1ec3 d\u1ea7n \u1ed5n \u0111\u1ecbnh. \n          <\/p>\n          <p>\n Ng\u00e0y \u0111\u1ea7u ti\u00ean l\u00e0 \u0111\u1ec3 b\u1ea1n \u1ed5n \u0111\u1ecbnh, c\u1ea3m th\u1ea5y an to\u00e0n v\u00e0 cho ph\u00e9p nh\u1ecbp s\u1ed1ng chuy\u1ec3n ch\u1eadm l\u1ea1i.\n          <\/p>\n        <\/article>\n\n        <article class=\"vnd-dbd__card\">\n          <img decoding=\"async\" class=\"vnd-dbd__icon\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/homepage\/day-by-day\/SVG\/Day%201.svg\" alt=\"\">\n          <span class=\"vnd-dbd__label\">Chuy\u1ec3n ti\u1ebfp<\/span>\n          <h3>C\u01a1 th\u1ec3 b\u1eaft \u0111\u1ea7u chuy\u1ec3n bi\u1ebfn<\/h3>\n          <p>\n Khi h\u1ec7 ti\u00eau h\u00f3a t\u1ea1m ngh\u1ec9, c\u01a1 th\u1ec3 d\u1ea7n chuy\u1ec3n sang c\u01a1 ch\u1ebf chuy\u1ec3n h\u00f3a khi nh\u1ecbn \u0103n. Nhi\u1ec1u kh\u00e1ch nh\u1eadn th\u1ea5y \u0111\u1ea7u \u00f3c minh m\u1eabn h\u01a1n, n\u0103ng l\u01b0\u1ee3ng \u1ed5n \u0111\u1ecbnh h\u01a1n v\u00e0 t\u00e2m tr\u00ed t\u0129nh h\u01a1n. \n          <\/p>\n          <p>\n \u0110\u00e2y th\u01b0\u1eddng l\u00e0 l\u00fac nh\u1ecbp ngh\u1ec9 d\u01b0\u1ee1ng b\u1eaft \u0111\u1ea7u tr\u1edf n\u00ean t\u1ef1 nhi\u00ean h\u01a1n.\n          <\/p>\n        <\/article>\n\n        <article class=\"vnd-dbd__card\">\n          <img decoding=\"async\" class=\"vnd-dbd__icon\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/homepage\/day-by-day\/SVG\/Day1to2.svg\" alt=\"\">\n          <span class=\"vnd-dbd__label\">T\u00e1i thi\u1ebft l\u1eadp s\u00e2u<\/span>\n          <h3>D\u1ea7n quen v\u1edbi nh\u1ecbp nh\u1ecbn \u0103n<\/h3>\n          <p>\n \u1ede giai \u0111o\u1ea1n n\u00e0y, nhi\u1ec1u kh\u00e1ch c\u1ea3m nh\u1eadn nh\u1ecbp \u0111i\u1ec7u r\u00f5 r\u00e0ng h\u01a1n. C\u01a1n \u0111\u00f3i th\u01b0\u1eddng d\u1ecbu \u0111i v\u00e0 m\u1ed7i ng\u00e0y tr\u00f4i qua nh\u1eb9 nh\u00e0ng h\u01a1n. \n          <\/p>\n          <p>\n C\u01a1 th\u1ec3 c\u00f3 th\u00eam kh\u00f4ng gian \u0111\u1ec3 ch\u1eadm l\u1ea1i, ngh\u1ec9 ng\u01a1i v\u00e0 ph\u1ee5c h\u1ed3i.\n          <\/p>\n        <\/article>\n\n        <article class=\"vnd-dbd__card\">\n          <img decoding=\"async\" class=\"vnd-dbd__icon\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/homepage\/day-by-day\/SVG\/Days%202%20and%203.svg\" alt=\"\">\n          <span class=\"vnd-dbd__label\">T\u00e1i t\u1ea1o<\/span>\n          <h3>Kh\u00f4i ph\u1ee5c c\u00e2n b\u1eb1ng<\/h3>\n          <p>\n Khi giai \u0111o\u1ea1n nh\u1ecbn \u0103n \u0111i s\u00e2u h\u01a1n, c\u01a1 th\u1ec3 ho\u1ea1t \u0111\u1ed9ng hi\u1ec7u qu\u1ea3 h\u01a1n; nhi\u1ec1u kh\u00e1ch c\u1ea3m th\u1ea5y nh\u1eb9 nh\u00f5m v\u00e0 n\u0103ng l\u01b0\u1ee3ng \u00eam d\u1ecbu h\u01a1n.\n          <\/p>\n          <p>\n S\u1ef1 v\u1eadn \u0111\u1ed9ng v\u00e0 ngh\u1ec9 ng\u01a1i b\u1eaft \u0111\u1ea7u ph\u1ed1i h\u1ee3p v\u1edbi nhau m\u1ed9t c\u00e1ch t\u1ef1 nhi\u00ean h\u01a1n.\n          <\/p>\n        <\/article>\n\n        <article class=\"vnd-dbd__card\">\n          <img decoding=\"async\" class=\"vnd-dbd__icon\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/homepage\/day-by-day\/SVG\/Day%204.svg\" alt=\"\">\n          <span class=\"vnd-dbd__label\">H\u00f2a nh\u1eadp<\/span>\n          <h3>Nh\u1ecbp n\u1ed9i t\u1ea1i t\u0129nh l\u1eb7ng h\u01a1n<\/h3>\n          <p>\n \u0110\u1ebfn giai \u0111o\u1ea1n n\u00e0y, tr\u1ea3i nghi\u1ec7m th\u01b0\u1eddng tr\u1edf n\u00ean \u00eam d\u1ecbu v\u00e0 h\u01b0\u1edbng v\u00e0o b\u00ean trong h\u01a1n. Kh\u00e1ch th\u01b0\u1eddng th\u1ea5y c\u01a1 th\u1ec3 d\u1ec5 ch\u1ecbu h\u01a1n, c\u1ea3m gi\u00e1c th\u00e8m \u0103n \u1ed5n \u0111\u1ecbnh h\u01a1n v\u00e0 t\u00e2m tr\u00ed r\u1ed9ng tho\u00e1ng h\u01a1n. \n          <\/p>\n          <p>\n Nh\u1ecbp ngh\u1ec9 d\u01b0\u1ee1ng l\u00fac n\u00e0y \u0111\u00e3 \u0111\u1ee7 quen thu\u1ed9c \u0111\u1ec3 b\u1ea1n th\u1ea3 m\u00ecnh v\u00e0o \u0111\u00f3.\n          <\/p>\n        <\/article>\n\n        <article class=\"vnd-dbd__card\">\n          <img decoding=\"async\" class=\"vnd-dbd__icon\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/homepage\/day-by-day\/SVG\/day-5.svg\" alt=\"\">\n          <span class=\"vnd-dbd__label\">Qu\u1ea3 t\u00e1o \u0111\u1ea7u ti\u00ean<\/span>\n          <h3>Tr\u1edf l\u1ea1i v\u1edbi vi\u1ec7c \u0103n u\u1ed1ng<\/h3>\n          <p>\n Qu\u1ea3 t\u00e1o \u0111\u1ea7u ti\u00ean \u0111\u00e1nh d\u1ea5u l\u00fac tr\u1edf l\u1ea1i v\u1edbi vi\u1ec7c \u0103n u\u1ed1ng. B\u1ea1n th\u01b0\u1edfng th\u1ee9c th\u1eadt ch\u1eadm v\u00e0 ch\u00fa t\u00e2m \u0111\u1ec3 c\u01a1 th\u1ec3 ti\u1ebfp nh\u1eadn th\u1ee9c \u0103n tr\u1edf l\u1ea1i m\u1ed9t c\u00e1ch nh\u1eb9 nh\u00e0ng. \n          <\/p>\n          <p>\n Kho\u1ea3nh kh\u1eafc n\u00e0y m\u1edf \u0111\u1ea7u cho chuy\u1ec3n ti\u1ebfp t\u1eeb nh\u1ecbn \u0103n sang t\u00e1i t\u1ea1o.\n          <\/p>\n        <\/article>\n\n        <article class=\"vnd-dbd__card\">\n          <img decoding=\"async\" class=\"vnd-dbd__icon\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/homepage\/day-by-day\/SVG\/Days%20%2B1%20to%20%2B3.svg\" alt=\"\">\n          <span class=\"vnd-dbd__label\">\u0102n l\u1ea1i<\/span>\n          <h3>Ti\u1ebfp b\u01b0\u1edbc<\/h3>\n          <p>\n Nh\u1eefng ng\u00e0y \u0103n l\u1ea1i cu\u1ed1i c\u00f9ng gi\u00fap h\u1ec7 ti\u00eau h\u00f3a tr\u1edf v\u1ec1 nh\u1ecbp ho\u1ea1t \u0111\u1ed9ng m\u1ed9t c\u00e1ch nh\u1eb9 nh\u00e0ng. Th\u1ee9c \u0103n \u0111\u01a1n gi\u1ea3n, h\u01b0\u1edbng d\u1eabn r\u00f5 r\u00e0ng v\u00e0 nh\u1ecbp \u0111\u1ed9 c\u1ea9n tr\u1ecdng gi\u00fap qu\u00e1 tr\u00ecnh chuy\u1ec3n ti\u1ebfp di\u1ec5n ra \u00eam \u00e1i. \n          <\/p>\n          <p>\n \u0110\u00e2y l\u00e0 l\u00fac tr\u1ea3i nghi\u1ec7m d\u1ea7n b\u00e9n r\u1ec5 v\u00e0o nh\u1ecbp s\u1ed1ng v\u00e0 nh\u1eefng th\u00f3i quen th\u1ef1c t\u1ebf h\u1eb1ng ng\u00e0y.\n          <\/p>\n        <\/article>\n\n      <\/div>\n\n      <div class=\"vnd-dbd__dots\" data-vnd-dbd-dots=\"\" aria-label=\"Choose a retreat phase\">\n        <button type=\"button\" class=\"vnd-dbd__dot is-active\" aria-label=\"Show Preparation\" aria-current=\"true\"><\/button>\n        <button type=\"button\" class=\"vnd-dbd__dot\" aria-label=\"Show Arrival\"><\/button>\n        <button type=\"button\" class=\"vnd-dbd__dot\" aria-label=\"Show Transition\"><\/button>\n        <button type=\"button\" class=\"vnd-dbd__dot\" aria-label=\"Show Deep Reset\"><\/button>\n        <button type=\"button\" class=\"vnd-dbd__dot\" aria-label=\"Show Rebuilding\"><\/button>\n        <button type=\"button\" class=\"vnd-dbd__dot\" aria-label=\"Show Integration\"><\/button>\n        <button type=\"button\" class=\"vnd-dbd__dot\" aria-label=\"Show The First Apple\"><\/button>\n        <button type=\"button\" class=\"vnd-dbd__dot\" aria-label=\"Show Refeeding\"><\/button>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/section>\n\n<script>\n(function () {\n  function initializeDayByDay() {\n    document.querySelectorAll('[data-vnd-dbd]').forEach(function (section) {\n      if (section.hasAttribute('data-vnd-dbd-ready')) return;\n\n      section.setAttribute('data-vnd-dbd-ready', 'true');\n\n      var row = section.querySelector('[data-vnd-dbd-cards]');\n      var cards = Array.prototype.slice.call(\n        section.querySelectorAll('.vnd-dbd__card')\n      );\n      var dots = Array.prototype.slice.call(\n        section.querySelectorAll('.vnd-dbd__dot')\n      );\n\n      if (!row || !cards.length) return;\n\n      var scrollFrame = null;\n      var isDragging = false;\n      var dragStartX = 0;\n      var dragStartScroll = 0;\n\n      function getRowPadding() {\n        return parseFloat(window.getComputedStyle(row).paddingLeft) || 0;\n      }\n\n      function getCardPosition(card) {\n        return card.offsetLeft - getRowPadding();\n      }\n\n      function activateCard(index) {\n        index = Math.max(0, Math.min(index, cards.length - 1));\n\n        cards.forEach(function (card, cardIndex) {\n          card.classList.toggle('is-active', cardIndex === index);\n        });\n\n        dots.forEach(function (dot, dotIndex) {\n          var active = dotIndex === index;\n          dot.classList.toggle('is-active', active);\n\n          if (active) {\n            dot.setAttribute('aria-current', 'true');\n          } else {\n            dot.removeAttribute('aria-current');\n          }\n        });\n      }\n\n      function findNearestCard() {\n        var closestIndex = 0;\n        var closestDistance = Infinity;\n\n        cards.forEach(function (card, index) {\n          var distance = Math.abs(\n            getCardPosition(card) - row.scrollLeft\n          );\n\n          if (distance < closestDistance) {\n            closestDistance = distance;\n            closestIndex = index;\n          }\n        });\n\n        activateCard(closestIndex);\n      }\n\n      row.addEventListener('scroll', function () {\n        if (scrollFrame) {\n          window.cancelAnimationFrame(scrollFrame);\n        }\n\n        scrollFrame = window.requestAnimationFrame(function () {\n          findNearestCard();\n          scrollFrame = null;\n        });\n      }, { passive: true });\n\n      dots.forEach(function (dot, index) {\n        dot.addEventListener('click', function () {\n          activateCard(index);\n\n          row.scrollTo({\n            left: getCardPosition(cards[index]),\n            behavior: 'smooth'\n          });\n        });\n      });\n\n      \/*\n       * Convert vertical mouse-wheel movement into horizontal movement while\n       * the cursor is over the cards. Normal page scrolling resumes at the\n       * beginning and end of the slider.\n       *\/\n      row.addEventListener('wheel', function (event) {\n        if (Math.abs(event.deltaY) <= Math.abs(event.deltaX)) return;\n\n        var maximum = row.scrollWidth - row.clientWidth;\n        var atBeginning = row.scrollLeft <= 1;\n        var atEnd = row.scrollLeft >= maximum - 1;\n\n        if (\n          (event.deltaY < 0 && atBeginning) ||\n          (event.deltaY > 0 && atEnd)\n        ) {\n          return;\n        }\n\n        event.preventDefault();\n\n        row.scrollBy({\n          left: event.deltaY * 0.8,\n          behavior: 'smooth'\n        });\n      }, { passive: false });\n\n      \/*\n       * Desktop click-and-drag support.\n       * Touch devices continue to use native horizontal swiping.\n       *\/\n      row.addEventListener('mousedown', function (event) {\n        isDragging = true;\n        dragStartX = event.pageX;\n        dragStartScroll = row.scrollLeft;\n        row.classList.add('is-dragging');\n      });\n\n      document.addEventListener('mousemove', function (event) {\n        if (!isDragging) return;\n\n        event.preventDefault();\n        row.scrollLeft = dragStartScroll - (event.pageX - dragStartX);\n      });\n\n      document.addEventListener('mouseup', function () {\n        if (!isDragging) return;\n\n        isDragging = false;\n        row.classList.remove('is-dragging');\n      });\n\n      row.addEventListener('mouseleave', function () {\n        if (!isDragging) return;\n\n        isDragging = false;\n        row.classList.remove('is-dragging');\n      });\n\n      window.addEventListener('resize', findNearestCard, { passive: true });\n      activateCard(0);\n    });\n  }\n\n  initializeDayByDay();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-ada3f49 e-con-full e-flex e-con e-parent\" data-id=\"ada3f49\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fea35e7 dce_masking-none elementor-widget elementor-widget-image\" data-id=\"fea35e7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"532\" src=\"https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/SLH_Namia_Lumina-Wellbeing-06-1024x681.webp\" class=\"attachment-large size-large wp-image-1638\" alt=\"\" srcset=\"https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/SLH_Namia_Lumina-Wellbeing-06-1024x681.webp 1024w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/SLH_Namia_Lumina-Wellbeing-06-300x200.webp 300w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/SLH_Namia_Lumina-Wellbeing-06-768x511.webp 768w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/SLH_Namia_Lumina-Wellbeing-06.webp 1200w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-9dde1a6 e-flex e-con-boxed elementor-invisible e-con e-parent\" data-id=\"9dde1a6\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;fadeIn&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6d27d95 elementor-widget elementor-widget-html\" data-id=\"6d27d95\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Copy this entire file into ONE Elementor HTML widget.\r\n  Put elementor-buchinger-quote.css into the same widget's\r\n  Advanced > Custom CSS field.\r\n-->\r\n\r\n<section class=\"vdq\" data-vdq-section=\"\" aria-label=\"Quote by Otto Buchinger\">\r\n  <div class=\"vdq__shell\">\r\n    <figure class=\"vdq__card vdq__reveal\" data-vdq-reveal=\"\">\r\n      <span class=\"vdq__mark vdq__mark--open\" aria-hidden=\"true\">\u201c<\/span>\r\n<span class=\"eyebrow eyebrow-forest\" style=\"letter-spacing:0.24em;display:block;margin-bottom:18px;\">G\u00f3c nh\u00ecn v\u01b0\u1ee3t th\u1eddi gian<\/span>\r\nM\u1ed9t \u0111\u1ee3t nh\u1ecbn \u0103n \u0111\u00fang ngh\u0129a thanh l\u1ecdc c\u01a1 th\u1ec3, t\u00e2m tr\u00ed v\u00e0 t\u00e2m h\u1ed3n.\r\n<blockquote class=\"vdq__quote\"><span class=\"vdq__mark vdq__mark--close\" aria-hidden=\"true\">\u201d<\/span><\/blockquote>\r\n<figcaption class=\"vdq__attribution\">Mahatma <\/figcaption><br\/>Gandhi\r\n \r\n \r\n \r\n \r\n <br\/> \r\n\r\n      <span class=\"vdq__rule\" aria-hidden=\"true\"><\/span>\r\n    <\/figure>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function() {\r\n  'use strict';\r\n\r\n  var sections = document.querySelectorAll('[data-vdq-section]');\r\n\r\n  sections.forEach(function(section) {\r\n    if (section.dataset.vdqReady === 'true') return;\r\n    section.dataset.vdqReady = 'true';\r\n\r\n    var quote = section.querySelector('[data-vdq-reveal]');\r\n    var reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n\r\n    if (!quote) return;\r\n\r\n    if (reducedMotion || !('IntersectionObserver' in window)) {\r\n      quote.classList.add('is-visible');\r\n      return;\r\n    }\r\n\r\n    var observer = new IntersectionObserver(function(entries) {\r\n      entries.forEach(function(entry) {\r\n        if (!entry.isIntersecting) return;\r\n        entry.target.classList.add('is-visible');\r\n        observer.unobserve(entry.target);\r\n      });\r\n    }, {\r\n      threshold: 0.12,\r\n      rootMargin: '0px 0px -40px 0px'\r\n    });\r\n\r\n    observer.observe(quote);\r\n  });\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-802e335 e-flex e-con-boxed e-con e-parent\" data-id=\"802e335\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-93f88bc elementor-widget elementor-widget-html\" data-id=\"93f88bc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\n  Vietnam Detox \u2014 Elementor Method Section\n  Paste this entire file into one Elementor HTML widget.\n  Add method-section.css separately as described in README.md.\n-->\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&family=Be+Vietnam+Pro:wght@300;400;500;600;700&display=swap\" rel=\"stylesheet\">\n\n<section class=\"vnd-method\" data-vnd-method=\"\">\n  <div class=\"vnd-method__inner\">\n    <header class=\"vnd-method__header\">\n      <span class=\"vnd-method__eyebrow\">Ph\u01b0\u01a1ng ph\u00e1p<\/span>\n      <span class=\"vnd-method__rule\" aria-hidden=\"true\"><\/span>\n\n      <h2 class=\"vnd-method__headline\">\n Nh\u1eefng k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng nh\u1ecbn \u0103n \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 gi\u00fap b\u1ea1n\n<span>ph\u1ee5c h\u1ed3i.<\/span>\n      <\/h2>\n\n      <p class=\"vnd-method__introduction\">\n Nh\u1ecbn \u0103n c\u00f3 l\u1ed9 tr\u00ecnh, \u0111\u1ed3ng h\u00e0nh h\u1eb1ng ng\u00e0y v\u00e0 c\u00e1c th\u1ef1c h\u00e0nh ph\u1ee5c h\u1ed3i gi\u00fap c\u01a1 th\u1ec3 l\u1eabn t\u00e2m tr\u00ed ch\u1eadm l\u1ea1i.\n      <\/p>\n    <\/header>\n\n    <div class=\"vnd-method__cards\" data-method-reveal=\"\">\n      <article class=\"vnd-method-card vnd-method-card--structure\">\n        <div class=\"vnd-method-card__icon\" aria-hidden=\"true\">\n          <img decoding=\"async\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/root-purpose\/SVG\/german-methodology.svg\" alt=\"\">\n        <\/div>\n\n        <span class=\"vnd-method-card__label vnd-method-card__label--forest\">\n Ph\u01b0\u01a1ng ph\u00e1p nh\u1ecbn \u0103n c\u00f3 l\u1ed9 tr\u00ecnh\n        <\/span>\n\n        <h3>M\u1ed9t l\u1ed9 tr\u00ecnh nh\u1ecbn \u0103n r\u00f5 r\u00e0ng, c\u00f3 ng\u01b0\u1eddi \u0111\u1ed3ng h\u00e0nh<\/h3>\n\n        <p>\n L\u1ea5y c\u1ea3m h\u1ee9ng t\u1eeb truy\u1ec1n th\u1ed1ng nh\u1ecbn \u0103n Buchinger h\u00ecnh th\u00e0nh t\u1ea1i \u0110\u1ee9c, m\u1ed7i k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng \u0111i theo m\u1ed9t nh\u1ecbp \u0111i\u1ec7u b\u00e0i b\u1ea3n g\u1ed3m chu\u1ea9n b\u1ecb, nh\u1ecbn \u0103n, v\u1eadn \u0111\u1ed9ng, h\u1ecdc h\u1ecfi v\u00e0 t\u00e1i h\u00f2a nh\u1eadp c\u1ea9n tr\u1ecdng.\n        <\/p>\n      <\/article>\n\n      <article class=\"vnd-method-card vnd-method-card--restorative\">\n        <div class=\"vnd-method-card__icon\" aria-hidden=\"true\">\n          <img decoding=\"async\" class=\"vnd-method-card__icon--green\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/root-purpose\/SVG\/vietnamese-wisdom.svg\" alt=\"\">\n        <\/div>\n\n        <span class=\"vnd-method-card__label vnd-method-card__label--ember\">\n C\u00e1c th\u1ef1c h\u00e0nh ph\u1ee5c h\u1ed3i\n        <\/span>\n\n        <h3>Nh\u1eefng th\u1ef1c h\u00e0nh gi\u00fap c\u01a1 th\u1ec3 b\u1ea1n ch\u1eadm l\u1ea1i<\/h3>\n\n        <p>\n Tr\u00e0 th\u1ea3o m\u1ed9c, v\u1eadn \u0111\u1ed9ng ch\u00e1nh ni\u1ec7m, n\u01b0\u1edbc d\u00f9ng \u1ea5m, massage v\u00e0 nh\u1ecbp sinh ho\u1ea1t y\u00ean t\u0129nh gi\u00fap b\u1ea1n ngh\u1ec9 ng\u01a1i, ph\u1ee5c h\u1ed3i h\u1ec7 th\u1ea7n kinh v\u00e0 k\u1ebft n\u1ed1i l\u1ea1i v\u1edbi ch\u00ednh m\u00ecnh trong su\u1ed1t k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng.\n        <\/p>\n      <\/article>\n\n      <article class=\"vnd-method-card vnd-method-card--guided\">\n        <div class=\"vnd-method-card__icon\" aria-hidden=\"true\">\n          <img decoding=\"async\" class=\"vnd-method-card__icon--green\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/root-purpose\/SVG\/guided-process.svg\" alt=\"\">\n        <\/div>\n\n        <span class=\"vnd-method-card__label vnd-method-card__label--gold\">\n Tr\u1ea3i nghi\u1ec7m c\u00f3 h\u01b0\u1edbng d\u1eabn\n        <\/span>\n\n        <h3>B\u1ea1n kh\u00f4ng ph\u1ea3i tr\u1ea3i qua qu\u00e1 tr\u00ecnh n\u00e0y m\u1ed9t m\u00ecnh<\/h3>\n\n        <p>\n T\u1eeb kh\u00e2u chu\u1ea9n b\u1ecb tr\u01b0\u1edbc khi \u0111\u1ebfn cho t\u1edbi h\u01b0\u1edbng d\u1eabn \u0103n l\u1ea1i sau k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng, m\u1ed7i b\u01b0\u1edbc \u0111\u1ec1u \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 b\u1ea1n c\u1ea3m th\u1ea5y \u0111\u01b0\u1ee3c n\u00e2ng \u0111\u1ee1, d\u1ec5 th\u00edch nghi v\u00e0 lu\u00f4n c\u00f3 ng\u01b0\u1eddi \u0111\u1ed3ng h\u00e0nh.\n        <\/p>\n      <\/article>\n    <\/div>\n\n    <p class=\"vnd-method__closing\">\n C\u00e1c y\u1ebfu t\u1ed1 n\u00e0y k\u1ebft h\u1ee3p th\u00e0nh m\u1ed9t k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng nh\u1ecbn \u0103n \u0111\u1ee7 b\u00e0i b\u1ea3n \u0111\u1ec3 b\u1ea1n an t\u00e2m v\u00e0 \u0111\u1ee7 nh\u1eb9 nh\u00e0ng \u0111\u1ec3 th\u1eadt s\u1ef1 th\u1ea3 l\u1ecfng.\n    <\/p>\n\n    <div class=\"vnd-method__action\">\n      <a class=\"vnd-method__button\" href=\"https:\/\/staging.vietnamdetox.com\/vi\/phuong-phap\/\">\n Kh\u00e1m ph\u00e1 ph\u01b0\u01a1ng ph\u00e1p\n      <\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<script>\n(function () {\n  \"use strict\";\n\n  var sections = document.querySelectorAll(\n    \"[data-vnd-method]:not([data-vnd-method-ready])\"\n  );\n\n  sections.forEach(function (section) {\n    section.setAttribute(\"data-vnd-method-ready\", \"true\");\n\n    var revealElement = section.querySelector(\"[data-method-reveal]\");\n    if (!revealElement) return;\n\n    var reducedMotion = window.matchMedia(\n      \"(prefers-reduced-motion: reduce)\"\n    ).matches;\n\n    if (reducedMotion || !(\"IntersectionObserver\" in window)) {\n      revealElement.classList.add(\"is-visible\");\n      return;\n    }\n\n    var observer = new IntersectionObserver(function (entries) {\n      entries.forEach(function (entry) {\n        if (!entry.isIntersecting) return;\n\n        entry.target.classList.add(\"is-visible\");\n        observer.unobserve(entry.target);\n      });\n    }, {\n      threshold: 0.12,\n      rootMargin: \"0px 0px -40px 0px\"\n    });\n\n    observer.observe(revealElement);\n  });\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-bf503c4 e-flex e-con-boxed e-con e-parent\" data-id=\"bf503c4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-66b3399 elementor-widget elementor-widget-html\" data-id=\"66b3399\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Copy this entire file into ONE Elementor HTML widget.\r\n  Put elementor-retreat-cta.css into the same widget's\r\n  Advanced > Custom CSS field.\r\n-->\r\n\r\n<section class=\"vcta\" data-vcta-section=\"\" aria-labelledby=\"vcta-title\">\r\n  <div class=\"vcta__shell\">\r\n    <div class=\"vcta__card vcta__reveal\" data-vcta-reveal=\"\">\r\n      <div class=\"vcta__content\">\r\n        <header class=\"vcta__header\">\r\n          <span class=\"vcta__eyebrow\">Khi b\u1ea1n s\u1eb5n s\u00e0ng<\/span>\r\n          <span class=\"vcta__rule\" aria-hidden=\"true\"><\/span>\r\n          <h2 class=\"vcta__headline\" id=\"vcta-title\">\r\n Gi\u1eef ch\u1ed7 t\u1ea1i m\u1ed9t trong nh\u1eefng\r\n<em>k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng s\u1eafp t\u1edbi.<\/em>\r\n          <\/h2>\r\n        <\/header>\r\n\r\n        <figure class=\"vcta__visual\">\r\n          <img src=\"\/wp-content\/uploads\/2026\/05\/happy-guest-during-hike.webp\" alt=\"V\u1ecb kh\u00e1ch t\u1eadn h\u01b0\u1edfng chuy\u1ebfn \u0111i b\u1ed9 ch\u00e1nh ni\u1ec7m tr\u00ean n\u00fai\" loading=\"lazy\" decoding=\"async\">\r\n        <\/figure>\r\n\r\n        <div class=\"vcta__body\">\r\n          <p class=\"vcta__copy\">\r\n N\u1ebfu \u0111\u00e3 th\u1ea5y m\u1ed9t \u0111\u1ecba \u0111i\u1ec3m ho\u1eb7c th\u1eddi gian ph\u00f9 h\u1ee3p, b\u1ea1n c\u00f3 th\u1ec3 gi\u1eef ch\u1ed7 ngay. V\u1eabn c\u00f2n ph\u00e2n v\u00e2n? Ch\u00fang t\u00f4i s\u1eb5n l\u00f2ng c\u00f9ng b\u1ea1n t\u00ecm hi\u1ec3u kh\u00f4ng gian, quy tr\u00ecnh s\u00e0ng l\u1ecdc v\u00e0 l\u1ecbch tr\u00ecnh trong m\u1ed9t cu\u1ed9c g\u1ecdi t\u01b0 v\u1ea5n nh\u1eb9 nh\u00e0ng.  \r\n          <\/p>\r\n          <p class=\"vcta__note\">\r\n C\u00f3 ng\u01b0\u1eddi b\u1eaft \u0111\u1ea7u b\u1eb1ng m\u1ed9t cu\u1ed9c t\u01b0 v\u1ea5n. Ng\u01b0\u1eddi kh\u00e1c \u0111\u00e3 bi\u1ebft m\u00ecnh mu\u1ed1n kh\u00e1m ph\u00e1 c\u00e1c k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng. \r\n          <\/p>\r\n\r\n          <div class=\"vcta__buttons\">\r\n            <a class=\"vcta__button vcta__button--forest\" href=\"#retreats\">T\u00ecm k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng ph\u00f9 h\u1ee3p v\u1edbi b\u1ea1n<\/a>\r\n<a class=\"vcta__button vcta__button--outline\" href=\"https:\/\/staging.vietnamdetox.com\/vi\/tong-quan-ve-khoa-nghi-duong\/\">Kh\u00e1m ph\u00e1 c\u00e1c k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng<\/a>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function() {\r\n  'use strict';\r\n\r\n  var sections = document.querySelectorAll('[data-vcta-section]');\r\n\r\n  sections.forEach(function(section) {\r\n    if (section.dataset.vctaReady === 'true') return;\r\n    section.dataset.vctaReady = 'true';\r\n\r\n    var card = section.querySelector('[data-vcta-reveal]');\r\n    var reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n\r\n    function reveal() {\r\n      if (card) card.classList.add('is-visible');\r\n    }\r\n\r\n    if (!card || reducedMotion || !('IntersectionObserver' in window)) {\r\n      reveal();\r\n      return;\r\n    }\r\n\r\n    var observer = new IntersectionObserver(function(entries) {\r\n      entries.forEach(function(entry) {\r\n        if (!entry.isIntersecting) return;\r\n        entry.target.classList.add('is-visible');\r\n        observer.unobserve(entry.target);\r\n      });\r\n    }, {\r\n      threshold: 0.1,\r\n      rootMargin: '0px 0px -40px 0px'\r\n    });\r\n\r\n    observer.observe(card);\r\n  });\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-809b002 e-flex e-con-boxed e-con e-parent\" data-id=\"809b002\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-278d3b1 elementor-widget elementor-widget-html\" data-id=\"278d3b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\n  Vietnam Detox \u2014 Elementor Locations Slider\n  Paste this entire file into one Elementor HTML widget.\n  Add locations-slider.css separately as described in README.md.\n-->\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&family=Be+Vietnam+Pro:wght@300;400;500;600;700&display=swap\" rel=\"stylesheet\">\n\n<section class=\"vnd-locations\" data-vnd-locations=\"\" data-api-url=\"\/wp-json\/retreats\/v1\/all\">\n  <div class=\"vnd-locations__heading\">\n    <span class=\"vnd-locations__eyebrow\">\u0110\u1ecba \u0111i\u1ec3m c\u1ee7a ch\u00fang t\u00f4i<\/span>\n    <span class=\"vnd-locations__rule\"><\/span>\n\n    <h2 class=\"vnd-locations__headline\">\n Nh\u1eefng n\u01a1i gi\u00fap b\u1ea1n d\u1ec5 d\u00e0ng\n<span>s\u1ed1ng ch\u1eadm l\u1ea1i.<\/span>\n    <\/h2>\n\n    <p class=\"vnd-locations__intro\">\n M\u1ed7i \u0111\u1ecba \u0111i\u1ec3m ngh\u1ec9 d\u01b0\u1ee1ng \u0111\u1ec1u \u0111\u01b0\u1ee3c l\u1ef1a ch\u1ecdn \u0111\u1ec3 gi\u1ea3m ti\u1ebfng \u1ed3n, \u00e1p l\u1ef1c v\u00e0 k\u00edch th\u00edch qu\u00e1 m\u1ee9c, gi\u00fap c\u01a1 th\u1ec3 v\u00e0 t\u00e2m tr\u00ed b\u1ea1n d\u1ea7n \u1ed5n \u0111\u1ecbnh tr\u1edf l\u1ea1i.\n    <\/p>\n  <\/div>\n\n  <div class=\"vnd-locations__slider\">\n    <div class=\"vnd-locations__viewport\" data-location-viewport=\"\" tabindex=\"0\" aria-label=\"Available retreat locations\">\n      <button type=\"button\" class=\"vnd-locations__arrow vnd-locations__arrow--previous\" data-location-previous=\"\" aria-label=\"Previous location\"><\/button>\n\n      <div class=\"vnd-locations__track\" data-location-track=\"\" aria-live=\"polite\"><\/div>\n\n      <button type=\"button\" class=\"vnd-locations__arrow vnd-locations__arrow--next\" data-location-next=\"\" aria-label=\"Next location\"><\/button>\n    <\/div>\n\n    <div class=\"vnd-locations__controls\">\n      <div class=\"vnd-locations__dots\" data-location-dots=\"\" aria-label=\"Choose a location\"><\/div>\n    <\/div>\n\n    <p class=\"vnd-locations__status\" data-location-status=\"\">\n \u0110ang t\u1ea3i c\u00e1c \u0111\u1ecba \u0111i\u1ec3m ngh\u1ec9 d\u01b0\u1ee1ng hi\u1ec7n c\u00f3\u2026\n    <\/p>\n  <\/div>\n<\/section>\n\n<script>\n(function () {\n  \"use strict\";\n\n  function getLanguage() {\n    var detected = String(document.documentElement.lang || \"en\")\n      .toLowerCase()\n      .split(\/[-_]\/)[0];\n\n    return [\"en\", \"vi\", \"de\"].indexOf(detected) !== -1\n      ? detected\n      : \"en\";\n  }\n\n  function getSharedRetreatApi() {\n    if (window.VietnamDetoxRetreatAPI) {\n      return window.VietnamDetoxRetreatAPI;\n    }\n\n    window.VietnamDetoxRetreatAPI = {\n      requests: {},\n\n      load: function (apiPath, requestedLanguage) {\n        var apiUrl = new URL(\n          apiPath || \"\/wp-json\/retreats\/v1\/all\",\n          window.location.origin\n        );\n\n        apiUrl.searchParams.set(\n          \"lang\",\n          requestedLanguage || \"en\"\n        );\n\n        var cacheKey = apiUrl.href;\n\n        if (!this.requests[cacheKey]) {\n          this.requests[cacheKey] = fetch(cacheKey, {\n            headers: { Accept: \"application\/json\" }\n          })\n            .then(function (response) {\n              if (!response.ok) {\n                throw new Error(\n                  \"Retreat API returned HTTP \" + response.status\n                );\n              }\n\n              return response.json();\n            })\n            .then(function (retreats) {\n              if (!Array.isArray(retreats)) {\n                throw new Error(\"Unexpected retreat API response\");\n              }\n\n              return retreats;\n            })\n            .catch(function (error) {\n              delete window.VietnamDetoxRetreatAPI.requests[cacheKey];\n              throw error;\n            });\n        }\n\n        return this.requests[cacheKey];\n      }\n    };\n\n    return window.VietnamDetoxRetreatAPI;\n  }\n\n  var language = getLanguage();\n  var sections = document.querySelectorAll(\n    \"[data-vnd-locations]:not([data-vnd-locations-ready])\"\n  );\n\n  sections.forEach(function (section) {\n    section.setAttribute(\"data-vnd-locations-ready\", \"true\");\n\n    var apiUrl = section.getAttribute(\"data-api-url\");\n    var viewport = section.querySelector(\"[data-location-viewport]\");\n    var track = section.querySelector(\"[data-location-track]\");\n    var previousButton = section.querySelector(\"[data-location-previous]\");\n    var nextButton = section.querySelector(\"[data-location-next]\");\n    var dotsContainer = section.querySelector(\"[data-location-dots]\");\n    var status = section.querySelector(\"[data-location-status]\");\n\n    if (!apiUrl || !viewport || !track) return;\n\n    var retreatRequest = getSharedRetreatApi().load(apiUrl, language);\n\n    function extractRetreats(response) {\n      if (Array.isArray(response)) return response;\n      if (response && Array.isArray(response.data)) return response.data;\n      if (response && Array.isArray(response.retreats)) return response.retreats;\n      if (\n        response &&\n        response.data &&\n        Array.isArray(response.data.retreats)\n      ) {\n        return response.data.retreats;\n      }\n      return [];\n    }\n\n    \/* Supports both YYYY-MM-DD and the API's current MM\/DD\/YYYY values. *\/\n    function parseApiDate(value) {\n      if (!value) return null;\n\n      var cleanValue = String(value).trim();\n      var match = cleanValue.match(\/^(\\d{4})-(\\d{1,2})-(\\d{1,2})\/);\n\n      if (match) {\n        return new Date(Date.UTC(\n          Number(match[1]),\n          Number(match[2]) - 1,\n          Number(match[3])\n        ));\n      }\n\n      match = cleanValue.match(\/^(\\d{1,2})\\\/(\\d{1,2})\\\/(\\d{4})\/);\n\n      if (match) {\n        return new Date(Date.UTC(\n          Number(match[3]),\n          Number(match[1]) - 1,\n          Number(match[2])\n        ));\n      }\n\n      var fallback = new Date(cleanValue);\n      return isNaN(fallback.getTime()) ? null : fallback;\n    }\n\n    function getTodayTimestamp() {\n      var today = new Date();\n      return Date.UTC(\n        today.getFullYear(),\n        today.getMonth(),\n        today.getDate()\n      );\n    }\n\n    function cleanText(value) {\n      var temporary = document.createElement(\"div\");\n      temporary.innerHTML = value || \"\";\n      return (temporary.textContent || \"\").replace(\/\\s+\/g, \" \").trim();\n    }\n\n    function shortenText(value, maximumLength) {\n      var text = cleanText(value);\n      if (text.length <= maximumLength) return text;\n      return text.slice(0, maximumLength).replace(\/\\s+\\S*$\/, \"\") + \"\u2026\";\n    }\n\n    function createElement(tag, className, text) {\n      var element = document.createElement(tag);\n      if (className) element.className = className;\n      if (typeof text !== \"undefined\") element.textContent = text;\n      return element;\n    }\n\n    function formatDate(date) {\n      return new Intl.DateTimeFormat(\"en\", {\n        day: \"2-digit\",\n        month: \"short\",\n        year: \"numeric\",\n        timeZone: \"UTC\"\n      }).format(date);\n    }\n\n    function formatDateRange(startDate, endDate) {\n      if (!startDate) return \"\";\n      if (!endDate) return formatDate(startDate);\n\n      var sameYear =\n        startDate.getUTCFullYear() === endDate.getUTCFullYear();\n      var sameMonth =\n        sameYear && startDate.getUTCMonth() === endDate.getUTCMonth();\n\n      if (sameMonth) {\n        return (\n          String(startDate.getUTCDate()).padStart(2, \"0\") +\n          \"\u2013\" +\n          String(endDate.getUTCDate()).padStart(2, \"0\") +\n          \" \" +\n          new Intl.DateTimeFormat(\"en\", {\n            month: \"short\",\n            year: \"numeric\",\n            timeZone: \"UTC\"\n          }).format(endDate)\n        );\n      }\n\n      return formatDate(startDate) + \" \u2013 \" + formatDate(endDate);\n    }\n\n    function getDisplayLocation(location) {\n      var locationNames = {\n        \"M Gallery Legacy Yen Tu\": \"Legacy Yen Tu MGallery\"\n      };\n      return locationNames[location] || location;\n    }\n\n    function groupAvailableLocations(retreats) {\n      var todayTimestamp = getTodayTimestamp();\n      var locationMap = {};\n\n      retreats.forEach(function (retreat) {\n        var location = cleanText(retreat.location);\n        if (!location) return;\n\n        var dates = Array.isArray(retreat.dates) ? retreat.dates : [];\n        var availableDates = dates\n          .map(function (date) {\n            var startDate = parseApiDate(\n              date.start || date.start_date || date.date\n            );\n            var endDate = parseApiDate(\n              date.end || date.end_date || date.start || date.date\n            );\n\n            return {\n              startDate: startDate,\n              endDate: endDate,\n              label: date.label || \"\",\n              limited: Boolean(date.limited),\n              retreatName: cleanText(\n                retreat.name || retreat.title || \"Retreat\"\n              ),\n              retreatUrl: retreat.url || \"#retreats\"\n            };\n          })\n          .filter(function (date) {\n            return (\n              date.startDate &&\n              date.endDate &&\n              date.endDate.getTime() >= todayTimestamp\n            );\n          });\n\n        if (!availableDates.length) return;\n\n        availableDates.sort(function (first, second) {\n          return first.startDate - second.startDate;\n        });\n\n        if (!locationMap[location]) {\n          locationMap[location] = {\n            location: location,\n            displayLocation: getDisplayLocation(location),\n            image: retreat.image || \"\",\n            description: retreat.description || \"\",\n            retreats: [],\n            dates: []\n          };\n        }\n\n        var group = locationMap[location];\n        if (!group.image && retreat.image) group.image = retreat.image;\n        if (!group.description && retreat.description) {\n          group.description = retreat.description;\n        }\n\n        group.retreats.push({\n          name: cleanText(retreat.name || retreat.title || \"Retreat\"),\n          url: retreat.url || \"#retreats\"\n        });\n        group.dates = group.dates.concat(availableDates);\n      });\n\n      return Object.keys(locationMap)\n        .map(function (location) {\n          var group = locationMap[location];\n\n          group.dates.sort(function (first, second) {\n            return first.startDate - second.startDate;\n          });\n\n          group.retreats = group.retreats.filter(function (\n            retreat,\n            index,\n            allRetreats\n          ) {\n            return allRetreats.findIndex(function (item) {\n              return item.name === retreat.name;\n            }) === index;\n          });\n\n          return group;\n        })\n        .sort(function (first, second) {\n          return first.dates[0].startDate - second.dates[0].startDate;\n        });\n    }\n\n    function createLocationCard(location) {\n      var card = createElement(\"article\", \"vnd-location-card\");\n      var figure = createElement(\"figure\", \"vnd-location-card__image\");\n\n      if (location.image) {\n        var image = document.createElement(\"img\");\n        image.src = location.image;\n        image.alt = location.displayLocation;\n        image.loading = \"lazy\";\n        image.decoding = \"async\";\n        figure.appendChild(image);\n      } else {\n        figure.classList.add(\"is-empty\");\n      }\n\n      var information = createElement(\"div\", \"vnd-location-card__content\");\n      var title = createElement(\n        \"h3\",\n        \"vnd-location-card__title\",\n        location.displayLocation\n      );\n      var description = createElement(\n        \"p\",\n        \"vnd-location-card__description\",\n        shortenText(\n          location.description ||\n            \"A peaceful setting selected for rest, reflection and supported fasting.\",\n          190\n        )\n      );\n      var retreatTags = createElement(\"ul\", \"vnd-location-card__tags\");\n\n      location.retreats.slice(0, 3).forEach(function (retreat) {\n        retreatTags.appendChild(createElement(\"li\", \"\", retreat.name));\n      });\n\n      var availability = createElement(\n        \"div\",\n        \"vnd-location-card__availability\"\n      );\n      var availabilityEyebrow = createElement(\n        \"span\",\n        \"vnd-location-card__availability-label\",\n        \"Next available retreat\"\n      );\n      var nextDate = location.dates[0];\n      var dateText = createElement(\n        \"strong\",\n        \"vnd-location-card__date\",\n        formatDateRange(nextDate.startDate, nextDate.endDate)\n      );\n      var retreatName = createElement(\n        \"span\",\n        \"vnd-location-card__retreat-name\",\n        nextDate.retreatName\n      );\n\n      availability.appendChild(availabilityEyebrow);\n      availability.appendChild(dateText);\n      availability.appendChild(retreatName);\n\n      if (location.dates.length > 1) {\n        var remainingDateCount = location.dates.length - 1;\n        availability.appendChild(\n          createElement(\n            \"span\",\n            \"vnd-location-card__more-dates\",\n            \"+\" +\n              remainingDateCount +\n              \" more available \" +\n              (remainingDateCount === 1 ? \"date\" : \"dates\")\n          )\n        );\n      }\n\n      var links = createElement(\"div\", \"vnd-location-card__links\");\n      var retreatLink = createElement(\n        \"a\",\n        \"vnd-location-card__primary-link\",\n        \"View available retreat\"\n      );\n      retreatLink.href = nextDate.retreatUrl || \"#retreats\";\n\n      var mapLink = createElement(\n        \"a\",\n        \"vnd-location-card__map-link\",\n        \"View on Google\"\n      );\n      mapLink.href =\n        \"https:\/\/www.google.com\/maps\/search\/?api=1&query=\" +\n        encodeURIComponent(location.location);\n      mapLink.target = \"_blank\";\n      mapLink.rel = \"noopener\";\n\n      links.appendChild(retreatLink);\n      links.appendChild(mapLink);\n      information.appendChild(title);\n      information.appendChild(description);\n      information.appendChild(retreatTags);\n      information.appendChild(availability);\n      information.appendChild(links);\n      card.appendChild(figure);\n      card.appendChild(information);\n\n      return card;\n    }\n\n    function initializeSlider() {\n      var cards = Array.prototype.slice.call(\n        track.querySelectorAll(\".vnd-location-card\")\n      );\n      if (!cards.length) return;\n\n      var dots = [];\n      var currentIndex = 0;\n      var touchStartX = null;\n      var resizeTimer = null;\n\n      dotsContainer.innerHTML = \"\";\n\n      cards.forEach(function (card, index) {\n        var dot = createElement(\"button\", \"vnd-locations__dot\");\n        dot.type = \"button\";\n        dot.setAttribute(\"aria-label\", \"Show location \" + (index + 1));\n        dot.addEventListener(\"click\", function () {\n          goTo(index);\n        });\n        dotsContainer.appendChild(dot);\n        dots.push(dot);\n      });\n\n      function updateDots() {\n        dots.forEach(function (dot, index) {\n          var active = index === currentIndex;\n          dot.classList.toggle(\"is-active\", active);\n          if (active) dot.setAttribute(\"aria-current\", \"true\");\n          else dot.removeAttribute(\"aria-current\");\n        });\n      }\n\n      function goTo(index, instant) {\n        currentIndex = (index + cards.length) % cards.length;\n\n        var card = cards[currentIndex];\n        var viewportStyles = window.getComputedStyle(viewport);\n        var paddingLeft = parseFloat(viewportStyles.paddingLeft) || 0;\n        var paddingRight = parseFloat(viewportStyles.paddingRight) || 0;\n        var availableWidth =\n          viewport.clientWidth - paddingLeft - paddingRight;\n        var viewportCenter = paddingLeft + availableWidth \/ 2;\n        var cardCenter =\n          paddingLeft + card.offsetLeft + card.offsetWidth \/ 2;\n        var offset = cardCenter - viewportCenter;\n\n        if (instant) track.style.transition = \"none\";\n        track.style.transform = \"translate3d(\" + -offset + \"px, 0, 0)\";\n\n        if (instant) {\n          window.requestAnimationFrame(function () {\n            track.style.transition = \"\";\n          });\n        }\n\n        updateDots();\n      }\n\n      previousButton.addEventListener(\"click\", function () {\n        goTo(currentIndex - 1);\n      });\n\n      nextButton.addEventListener(\"click\", function () {\n        goTo(currentIndex + 1);\n      });\n\n      viewport.addEventListener(\"keydown\", function (event) {\n        if (event.key === \"ArrowLeft\") {\n          event.preventDefault();\n          goTo(currentIndex - 1);\n        }\n        if (event.key === \"ArrowRight\") {\n          event.preventDefault();\n          goTo(currentIndex + 1);\n        }\n      });\n\n      viewport.addEventListener(\"touchstart\", function (event) {\n        if (!event.touches.length) return;\n        touchStartX = event.touches[0].clientX;\n      }, { passive: true });\n\n      viewport.addEventListener(\"touchend\", function (event) {\n        if (touchStartX === null || !event.changedTouches.length) return;\n\n        var difference = event.changedTouches[0].clientX - touchStartX;\n        touchStartX = null;\n        if (Math.abs(difference) < 40) return;\n        goTo(difference > 0 ? currentIndex - 1 : currentIndex + 1);\n      }, { passive: true });\n\n      window.addEventListener(\"resize\", function () {\n        window.clearTimeout(resizeTimer);\n        resizeTimer = window.setTimeout(function () {\n          goTo(currentIndex, true);\n        }, 100);\n      });\n\n      if (cards.length === 1) section.classList.add(\"has-one-location\");\n      goTo(0, true);\n    }\n\n    function renderLocations(response) {\n      var retreats = extractRetreats(response);\n      var locations = groupAvailableLocations(retreats);\n      track.innerHTML = \"\";\n\n      if (!locations.length) {\n        status.textContent =\n          \"No retreat locations currently have upcoming dates.\";\n        section.classList.add(\"has-no-locations\");\n        return;\n      }\n\n      locations.forEach(function (location) {\n        track.appendChild(createLocationCard(location));\n      });\n\n      status.hidden = true;\n      initializeSlider();\n    }\n\n    retreatRequest\n      .then(renderLocations)\n      .catch(function (error) {\n        console.error(\"Location carousel error:\", error);\n        status.textContent =\n          \"The available retreat locations could not be loaded. Please try again later.\";\n        section.classList.add(\"has-api-error\");\n      });\n  });\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0bc222a e-flex e-con-boxed e-con e-parent\" data-id=\"0bc222a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-89187cb elementor-widget elementor-widget-html\" data-id=\"89187cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Copy this entire file into ONE Elementor HTML widget.\r\n  Put elementor-retreat-fit.css into the same widget's\r\n  Advanced > Custom CSS field.\r\n\r\n  This source section has no interactive JavaScript dependency.\r\n-->\r\n\r\n<section class=\"vfit\" aria-labelledby=\"vfit-title\">\r\n  <div class=\"vfit__shell\">\r\n    <header class=\"vfit__header\">\r\n      <span class=\"vfit__eyebrow\">D\u00e0nh cho b\u1ea1n<\/span>\r\n      <span class=\"vfit__rule\" aria-hidden=\"true\"><\/span>\r\n      <h2 class=\"vfit__headline\" id=\"vfit-title\">\r\n D\u00e0nh cho nh\u1eefng <em>t\u00e2m tr\u00ed qu\u00e1 t\u1ea3i<\/em> v\u00e0 c\u01a1 th\u1ec3 c\u1ea1n ki\u1ec7t.\r\n      <\/h2>\r\n      <p class=\"vfit__introduction\">\r\n Vietnam Detox \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf cho nh\u1eefng ng\u01b0\u1eddi c\u1ea3m th\u1ea5y qu\u00e1 t\u1ea3i tinh th\u1ea7n, c\u1ea1n ki\u1ec7t th\u1ec3 ch\u1ea5t ho\u1eb7c m\u1ea5t nh\u1ecbp s\u1ed1ng v\u00e0 mong mu\u1ed1n c\u00f3 s\u1ef1 h\u1ed7 tr\u1ee3 b\u00e0i b\u1ea3n \u0111\u1ec3 th\u1ef1c s\u1ef1 s\u1ed1ng ch\u1eadm l\u1ea1i. Ch\u01b0\u01a1ng tr\u00ecnh kh\u00f4ng d\u00e0nh cho t\u1ea5t c\u1ea3 m\u1ecdi ng\u01b0\u1eddi, v\u00e0 \u0111\u00f3 l\u00e0 ch\u1ee7 \u00fd c\u1ee7a ch\u00fang t\u00f4i. \r\n      <\/p>\r\n    <\/header>\r\n\r\n    <div class=\"vfit__layout\">\r\n      <div class=\"vfit__grid\">\r\n        <article class=\"vfit__card vfit__card--green\">\r\n          <h3>C\u00e1c k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng c\u1ee7a ch\u00fang t\u00f4i th\u01b0\u1eddng ph\u00f9 h\u1ee3p v\u1edbi nh\u1eefng ng\u01b0\u1eddi\u2026<\/h3>\r\n          <ul class=\"vfit__list\" role=\"list\">\r\n            <li class=\"vfit__bullet\">\r\n              <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/Asset-11@3x.webp\" alt=\"\" class=\"vfit__bullet-icon\" aria-hidden=\"true\">\r\n              <span>c\u1ea3m th\u1ea5y qu\u00e1 t\u1ea3i tinh th\u1ea7n ho\u1eb7c lu\u00f4n ph\u1ea3i \u201cb\u1eadt\u201d<\/span>\r\n            <\/li>\r\n            <li class=\"vfit__bullet\">\r\n              <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/Asset-11@3x.webp\" alt=\"\" class=\"vfit__bullet-icon\" aria-hidden=\"true\">\r\n              <span>mu\u1ed1n m\u1ed9t l\u1ed9 tr\u00ecnh th\u01b0 th\u00e1i thay v\u00ec c\u00e1c xu h\u01b0\u1edbng ch\u0103m s\u00f3c s\u1ee9c kh\u1ecfe c\u1ef1c \u0111oan<\/span>\r\n            <\/li>\r\n            <li class=\"vfit__bullet\">\r\n              <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/Asset-11@3x.webp\" alt=\"\" class=\"vfit__bullet-icon\" aria-hidden=\"true\">\r\n              <span>s\u1eb5n s\u00e0ng th\u1ef1c s\u1ef1 s\u1ed1ng ch\u1eadm l\u1ea1i<\/span>\r\n            <\/li>\r\n            <li class=\"vfit__bullet\">\r\n              <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/Asset-12@3x.webp\" alt=\"\" class=\"vfit__bullet-icon\" aria-hidden=\"true\">\r\n              <span>mu\u1ed1n hi\u1ec3u c\u01a1 th\u1ec3 m\u00ecnh, kh\u00f4ng ch\u1ec9 l\u00e0m theo h\u01b0\u1edbng d\u1eabn<\/span>\r\n            <\/li>\r\n          <\/ul>\r\n        <\/article>\r\n\r\n        <article class=\"vfit__card vfit__card--warm\">\r\n          <h3>C\u00e1c k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng c\u1ee7a ch\u00fang t\u00f4i c\u00f3 th\u1ec3 kh\u00f4ng ph\u00f9 h\u1ee3p n\u1ebfu\u2026<\/h3>\r\n          <ul class=\"vfit__list\" role=\"list\">\r\n            <li class=\"vfit__bullet\">\r\n              <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/Asset-12@3x.webp\" alt=\"\" class=\"vfit__bullet-icon\" aria-hidden=\"true\">\r\n              <span>b\u1ea1n \u0111ang t\u00ecm ki\u1ebfm m\u1ed9t k\u1ef3 ngh\u1ec9 xa hoa m\u00e0 kh\u00f4ng mu\u1ed1n thay \u0111\u1ed5i \u0111i\u1ec1u g\u00ec trong cu\u1ed9c s\u1ed1ng h\u1eb1ng ng\u00e0y<\/span>\r\n            <\/li>\r\n            <li class=\"vfit__bullet\">\r\n              <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/Asset-12@3x.webp\" alt=\"\" class=\"vfit__bullet-icon\" aria-hidden=\"true\">\r\n              <span>b\u1ea1n \u0111ang mang thai ho\u1eb7c c\u00f3 t\u00ecnh tr\u1ea1ng s\u1ee9c kh\u1ecfe c\u00f3 th\u1ec3 kh\u00f4ng ph\u00f9 h\u1ee3p v\u1edbi vi\u1ec7c nh\u1ecbn \u0103n<\/span>\r\n            <\/li>\r\n            <li class=\"vfit__bullet\">\r\n              <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/Asset-12@3x.webp\" alt=\"\" class=\"vfit__bullet-icon\" aria-hidden=\"true\">\r\n              <span>b\u1ea1n kh\u00f4ng s\u1eb5n l\u00f2ng ch\u1eadm l\u1ea1i, ngh\u1ec9 ng\u01a1i ho\u1eb7c t\u1ea1m r\u1eddi nh\u1eefng k\u00edch th\u00edch li\u00ean t\u1ee5c trong v\u00e0i ng\u00e0y<\/span>\r\n            <\/li>\r\n            <li class=\"vfit__bullet\">\r\n              <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/Asset-12@3x.webp\" alt=\"\" class=\"vfit__bullet-icon\" aria-hidden=\"true\">\r\n              <span>b\u1ea1n mu\u1ed1n th\u1ea5y k\u1ebft qu\u1ea3 nhanh m\u00e0 kh\u00f4ng chi\u00eam nghi\u1ec7m, theo l\u1ed9 tr\u00ecnh hay t\u1ef1 ch\u1ecbu tr\u00e1ch nhi\u1ec7m<\/span>\r\n            <\/li>\r\n          <\/ul>\r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"vfit__gallery\">\r\n      <figure>\r\n        <img src=\"\/wp-content\/uploads\/2026\/05\/Vietnam-detox-wellness-retreat-healthy-lifestyle-song-khoe-thai-doc-18.webp\" alt=\"V\u1ecb kh\u00e1ch l\u1eb7ng l\u1ebd vi\u1ebft nh\u1eadt k\u00fd b\u00ean t\u00e1ch tr\u00e0, nh\u00ecn ra khu v\u01b0\u1eddn\" loading=\"lazy\" decoding=\"async\">\r\n        <figcaption>Kho\u1ea3nh kh\u1eafc t\u0129nh l\u1eb7ng gi\u1eefa c\u00e1c ho\u1ea1t \u0111\u1ed9ng ngh\u1ec9 d\u01b0\u1ee1ng<\/figcaption>\r\n      <\/figure>\r\n      <figure>\r\n        <img src=\"\/wp-content\/uploads\/2026\/05\/Vietnam-detox-wellness-retreat-healthy-lifestyle-song-khoe-thai-doc-25.webp\" alt=\"Hu\u1ea5n luy\u1ec7n vi\u00ean h\u01b0\u1edbng d\u1eabn m\u1ed9t nghi th\u1ee9c th\u1ea3o d\u01b0\u1ee3c nh\u1eb9 nh\u00e0ng c\u00f9ng v\u1ecb kh\u00e1ch\" loading=\"lazy\" decoding=\"async\">\r\n        <figcaption>Nh\u1eefng kho\u1ea3nh kh\u1eafc ngh\u1ec9 ng\u01a1i v\u00e0 k\u1ebft n\u1ed1i l\u1ea1i trong su\u1ed1t k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng<\/figcaption>\r\n      <\/figure>\r\n      <figure>\r\n        <img src=\"\/wp-content\/uploads\/2026\/08\/Hoan-and-Dieter-standing-smiling.webp\" alt=\"\u0110\u1ed9i ng\u0169 Vietnam Detox\" loading=\"lazy\" decoding=\"async\">\r\n        <figcaption>\u0110\u1ed3ng h\u00e0nh ri\u00eang v\u00e0 nh\u1eefng nghi th\u1ee9c h\u1eb1ng ng\u00e0y gi\u00fap an \u0111\u1ecbnh<\/figcaption>\r\n      <\/figure>\r\n    <\/div>\r\n\r\n    <p class=\"vfit__note\">\r\n Ch\u00fang t\u00f4i tr\u00f2 chuy\u1ec7n v\u1edbi t\u1eebng kh\u00e1ch tr\u01b0\u1edbc khi x\u00e1c nh\u1eadn ch\u1ed7 \u0111\u1ec3 ngay t\u1eeb \u0111\u1ea7u b\u1ea1n bi\u1ebft tr\u1ea3i nghi\u1ec7m n\u00e0o ph\u00f9 h\u1ee3p. N\u1ebfu ch\u01b0a ch\u1eafc nh\u1ecbn \u0103n c\u00f3 d\u00e0nh cho m\u00ecnh hay kh\u00f4ng, b\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c t\u01b0 v\u1ea5n ri\u00eang tr\u01b0\u1edbc khi \u0111\u1eb7t ch\u1ed7. \r\n    <\/p>\r\n  <\/div>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<section class=\"elementor-element elementor-element-ce260c7 e-flex e-con-boxed e-con e-parent\" data-id=\"ce260c7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-819e563 elementor-widget elementor-widget-html\" data-id=\"819e563\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Copy this entire file into ONE Elementor HTML widget.\r\n  Put elementor-free-guide.css into the same widget's\r\n  Advanced > Custom CSS field.\r\n-->\r\n\r\n<div class=\"vgd\" data-vgd-component=\"\">\r\n  <section class=\"vgd__section\" aria-labelledby=\"vgd-title\">\r\n    <div class=\"vgd__shell\">\r\n      <div class=\"vgd__grid\">\r\n        <div class=\"vgd__left\">\r\n          <header class=\"vgd__header\">\r\n            <span class=\"vgd__eyebrow\">T\u1ea3i xu\u1ed1ng mi\u1ec5n ph\u00ed<\/span>\r\n            <span class=\"vgd__rule\" aria-hidden=\"true\"><\/span>\r\n            <h2 class=\"vgd__headline\" id=\"vgd-title\">\r\n B\u1ea1n t\u00f2 m\u00f2 v\u1ec1 vi\u1ec7c nh\u1ecbn \u0103n?<br>              <em>T\u1ea3i xu\u1ed1ng C\u1ea9m nang Vietnam Detox.<\/em>\r\n            <\/h2>\r\n          <\/header>\r\n\r\n          <figure class=\"vgd__visual\">\r\n            <img src=\"\/wp-content\/uploads\/2026\/05\/template-mockup-paper-wellness.webp\" alt=\"H\u00ecnh \u1ea3nh gi\u1edbi thi\u1ec7u c\u1ea9m nang nh\u1ecbn \u0103n Buchinger\" loading=\"lazy\" decoding=\"async\">\r\n          <\/figure>\r\n        <\/div>\r\n\r\n        <aside class=\"vgd__card\" aria-label=\"Free guide contents\">\r\n          <figure class=\"vgd__preview\">\r\n            <img src=\"\/wp-content\/uploads\/2026\/05\/free-pdf-cover.webp\" alt=\"Xem tr\u01b0\u1edbc b\u00eca c\u1ea9m nang nh\u1ecbn \u0103n Buchinger\" loading=\"lazy\" decoding=\"async\">\r\n          <\/figure>\r\n\r\n          <ul class=\"vgd__benefits\" role=\"list\">\r\n            <li class=\"vgd__benefit\">\r\n              <svg viewbox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\r\n                <path d=\"M2 8 L6 12 L14 4\"><\/path>\r\n              <\/path><\/svg>\r\n              <span>\u0110i\u1ec1u th\u1ef1c s\u1ef1 di\u1ec5n ra b\u00ean trong c\u01a1 th\u1ec3 khi b\u1ea1n nh\u1ecbn \u0103n<\/span>\r\n            <\/li>\r\n            <li class=\"vgd__benefit\">\r\n              <svg viewbox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\r\n                <path d=\"M2 8 L6 12 L14 4\"><\/path>\r\n              <\/path><\/svg>\r\n              <span>M\u1ed9t ng\u00e0y trong k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng di\u1ec5n ra nh\u01b0 th\u1ebf n\u00e0o<\/span>\r\n            <\/li>\r\n            <li class=\"vgd__benefit\">\r\n              <svg viewbox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\r\n                <path d=\"M2 8 L6 12 L14 4\"><\/path>\r\n              <\/path><\/svg>\r\n              <span>V\u00ec sao nhi\u1ec1u v\u1ecb kh\u00e1ch b\u1eaft \u0111\u1ea7u c\u1ea3m th\u1ea5y b\u00ecnh an, s\u00e1ng r\u00f5 v\u00e0 nh\u1eb9 nh\u00f5m h\u01a1n<\/span>\r\n            <\/li>\r\n            <li class=\"vgd__benefit\">\r\n              <svg viewbox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\r\n                <path d=\"M2 8 L6 12 L14 4\"><\/path>\r\n              <\/path><\/svg>\r\n              <span>Li\u1ec7u m\u1ed9t trong nh\u1eefng k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng c\u1ee7a ch\u00fang t\u00f4i c\u00f3 th\u1ef1c s\u1ef1 ph\u00f9 h\u1ee3p v\u1edbi b\u1ea1n hay kh\u00f4ng<\/span>\r\n            <\/li>\r\n          <\/ul>\r\n\r\n          <button class=\"vgd__button vgd__button--forest\" type=\"button\" data-vgd-open=\"\" aria-haspopup=\"dialog\" aria-controls=\"vgd-modal\" aria-expanded=\"false\">\r\n            <svg viewbox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\r\n              <path d=\"M7 1 L7 9 M4 6 L7 9 L10 6\"><\/path>\r\n              <path d=\"M2 11 L12 11\"><\/path>\r\n            <\/path><\/path><\/svg>\r\n            <span>Nh\u1eadn c\u1ea9m nang mi\u1ec5n ph\u00ed<\/span>\r\n          <\/button>\r\n\r\n          <p class=\"vgd__reading-time\">Ch\u1ec9 m\u1ea5t kho\u1ea3ng 5 ph\u00fat \u0111\u1ec3 \u0111\u1ecdc.<\/p>\r\n        <\/aside>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <div class=\"vgd__modal\" id=\"vgd-modal\" data-vgd-modal=\"\" aria-hidden=\"true\" hidden=\"\">\r\n    <div class=\"vgd__backdrop\" data-vgd-close=\"\" aria-hidden=\"true\"><\/div>\r\n\r\n    <div class=\"vgd__dialog\" data-vgd-dialog=\"\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"vgd-modal-title\" aria-describedby=\"vgd-modal-copy\" tabindex=\"-1\">\r\n      <button type=\"button\" class=\"vgd__close\" data-vgd-close=\"\" aria-label=\"Close popup\">\u00d7<\/button>\r\n\r\n      <header class=\"vgd__modal-header\">\r\n        <div class=\"vgd__modal-logo-wrap\">\r\n          <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/05\/logo-icon-color_cutout.svg\" alt=\"Vietnam Detox\" class=\"vgd__modal-logo\">\r\n        <\/div>\r\n        <h3 class=\"vgd__modal-headline\" id=\"vgd-modal-title\">Nh\u1eadn c\u1ea9m nang mi\u1ec5n ph\u00ed<\/h3>\r\n        <p class=\"vgd__modal-copy\" id=\"vgd-modal-copy\">\r\n Nh\u1eadp email \u0111\u1ec3 nh\u1eadn C\u1ea9m nang nh\u1ecbn \u0103n Buchinger.\r\n        <\/p>\r\n      <\/header>\r\n\r\n      <form class=\"vgd__form\" data-vgd-form=\"\" novalidate=\"\">\r\n        <label for=\"vgd-email\" class=\"vgd__label\">\u0110\u1ecba ch\u1ec9 email<\/label>\r\n        <input type=\"email\" id=\"vgd-email\" class=\"vgd__input\" name=\"email\" placeholder=\"you@example.com\" autocomplete=\"email\" inputmode=\"email\" required=\"\" data-vgd-email=\"\">\r\n\r\n        <div class=\"vgd__actions\">\r\n          <button type=\"submit\" class=\"vgd__button vgd__button--ember\">\r\n G\u1eedi c\u1ea9m nang cho t\u00f4i\r\n          <\/button>\r\n        <\/div>\r\n\r\n        <p class=\"vgd__status\" data-vgd-status=\"\" role=\"status\" aria-live=\"polite\">\r\n C\u1ea3m \u01a1n b\u1ea1n. Bi\u1ec3u m\u1eabu minh h\u1ecda n\u00e0y \u0111\u00e3 s\u1eb5n s\u00e0ng \u0111\u1ec3 k\u1ebft n\u1ed1i v\u1edbi d\u1ecbch v\u1ee5 g\u1eedi email c\u1ee7a b\u1ea1n. \r\n        <\/p>\r\n      <\/form>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function() {\r\n  'use strict';\r\n\r\n  var components = document.querySelectorAll('[data-vgd-component]');\r\n\r\n  components.forEach(function(root) {\r\n    if (root.dataset.vgdReady === 'true') return;\r\n    root.dataset.vgdReady = 'true';\r\n\r\n    var openButton = root.querySelector('[data-vgd-open]');\r\n    var modal = root.querySelector('[data-vgd-modal]');\r\n    var dialog = root.querySelector('[data-vgd-dialog]');\r\n    var form = root.querySelector('[data-vgd-form]');\r\n    var emailInput = root.querySelector('[data-vgd-email]');\r\n    var status = root.querySelector('[data-vgd-status]');\r\n    var closeButtons = root.querySelectorAll('[data-vgd-close]');\r\n\r\n    if (!openButton || !modal || !dialog || !form || !emailInput || !status) return;\r\n\r\n    var lastFocused = null;\r\n    var previousBodyOverflow = '';\r\n    var closeTimer = null;\r\n\r\n    function openModal() {\r\n      if (closeTimer) window.clearTimeout(closeTimer);\r\n      lastFocused = document.activeElement;\r\n      previousBodyOverflow = document.body.style.overflow;\r\n      document.body.style.overflow = 'hidden';\r\n      form.reset();\r\n      status.classList.remove('is-visible');\r\n      modal.hidden = false;\r\n      modal.setAttribute('aria-hidden', 'false');\r\n      openButton.setAttribute('aria-expanded', 'true');\r\n\r\n      window.requestAnimationFrame(function() {\r\n        modal.classList.add('is-open');\r\n        window.setTimeout(function() { emailInput.focus(); }, 30);\r\n      });\r\n    }\r\n\r\n    function closeModal() {\r\n      if (modal.hidden) return;\r\n      modal.classList.remove('is-open');\r\n      modal.setAttribute('aria-hidden', 'true');\r\n      openButton.setAttribute('aria-expanded', 'false');\r\n      document.body.style.overflow = previousBodyOverflow;\r\n\r\n      closeTimer = window.setTimeout(function() {\r\n        modal.hidden = true;\r\n      }, 220);\r\n\r\n      if (lastFocused && typeof lastFocused.focus === 'function') {\r\n        lastFocused.focus();\r\n      }\r\n    }\r\n\r\n    openButton.addEventListener('click', openModal);\r\n\r\n    closeButtons.forEach(function(button) {\r\n      button.addEventListener('click', closeModal);\r\n    });\r\n\r\n    dialog.addEventListener('keydown', function(event) {\r\n      if (event.key !== 'Tab') return;\r\n\r\n      var focusable = Array.prototype.slice.call(dialog.querySelectorAll(\r\n        'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\r\n      )).filter(function(element) {\r\n        return !element.hidden && element.offsetParent !== null;\r\n      });\r\n\r\n      if (!focusable.length) return;\r\n      var first = focusable[0];\r\n      var last = focusable[focusable.length - 1];\r\n\r\n      if (event.shiftKey && document.activeElement === first) {\r\n        event.preventDefault();\r\n        last.focus();\r\n      } else if (!event.shiftKey && document.activeElement === last) {\r\n        event.preventDefault();\r\n        first.focus();\r\n      }\r\n    });\r\n\r\n    document.addEventListener('keydown', function(event) {\r\n      if (event.key === 'Escape' && !modal.hidden) closeModal();\r\n    });\r\n\r\n    form.addEventListener('submit', function(event) {\r\n      event.preventDefault();\r\n\r\n      if (!emailInput.checkValidity()) {\r\n        emailInput.reportValidity();\r\n        return;\r\n      }\r\n\r\n      status.classList.add('is-visible');\r\n    });\r\n  });\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-3fd4e08 e-flex e-con-boxed e-con e-parent\" data-id=\"3fd4e08\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2ed1a56 elementor-widget elementor-widget-html\" data-id=\"2ed1a56\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Paste this markup into the FIRST HTML widget inside the outer discovery-call\r\n  Elementor container. The real Bookly form must be added as a separate Bookly\r\n  \"Booking form\" widget or Elementor Shortcode widget below this HTML widget.\r\n\r\n  See README.md for the required Elementor structure and Bookly settings.\r\n-->\r\n\r\n<header class=\"vbook__header\">\r\n  <span class=\"vbook__eyebrow\">B\u1eaft \u0111\u1ea7u t\u1ea1i \u0111\u00e2y<\/span>\r\n  <span class=\"vbook__rule\" aria-hidden=\"true\"><\/span>\r\n  <h2 class=\"vbook__headline\" id=\"vbook-title\">\r\n Tr\u00f2 chuy\u1ec7n v\u1edbi Dieter tr\u01b0\u1edbc khi quy\u1ebft \u0111\u1ecbnh\r\n  <\/h2>\r\n  <p class=\"vbook__introduction\">\r\n M\u1ed9t cu\u1ed9c tr\u00f2 chuy\u1ec7n mi\u1ec5n ph\u00ed k\u00e9o d\u00e0i 30 ph\u00fat. Kh\u00f4ng b\u00e1n h\u00e0ng, kh\u00f4ng g\u00e2y \u00e1p l\u1ef1c. Ch\u1ec9 l\u00e0 m\u1ed9t cu\u1ed9c trao \u0111\u1ed5i ch\u00e2n th\u00e0nh v\u1ec1 vi\u1ec7c li\u1ec7u m\u1ed9t trong c\u00e1c k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng c\u1ee7a ch\u00fang t\u00f4i c\u00f3 ph\u00f9 h\u1ee3p v\u1edbi b\u1ea1n hay kh\u00f4ng v\u00e0 li\u1ec7u b\u1ea1n \u0111\u00e3 s\u1eb5n s\u00e0ng ch\u01b0a.  \r\n  <\/p>\r\n<\/header>\r\n\r\n<ol class=\"vbook__steps\" role=\"list\">\r\n  <li class=\"vbook__step\">\r\n    <span class=\"vbook__number\" aria-hidden=\"true\">01<\/span>\r\n    <h3>Tr\u01b0\u1edbc ti\u00ean, ch\u00fang t\u00f4i l\u1eafng nghe<\/h3>\r\n    <p>\r\n B\u1ea1n chia s\u1ebb m\u00ecnh \u0111ang \u1edf \u0111\u00e2u tr\u00ean h\u00e0nh tr\u00ecnh s\u1ee9c kh\u1ecfe v\u00e0 \u0111i\u1ec1u m\u00ecnh mong mu\u1ed1n t\u00ecm th\u1ea5y.\r\n    <\/p>\r\n  <\/li>\r\n\r\n  <li class=\"vbook__step vbook__step--middle\">\r\n    <span class=\"vbook__number\" aria-hidden=\"true\">02<\/span>\r\n    <h3>Ch\u00fang t\u00f4i trao \u0111\u1ed5i th\u1eb3ng th\u1eafn<\/h3>\r\n    <p>\r\n N\u1ebfu ch\u00fang t\u00f4i th\u1ea5y vi\u1ec7c nh\u1ecbn \u0103n kh\u00f4ng ph\u00f9 h\u1ee3p v\u1edbi b\u1ea1n v\u00e0o l\u00fac n\u00e0y, ch\u00fang t\u00f4i s\u1ebd n\u00f3i r\u00f5 \u0111i\u1ec1u \u0111\u00f3.\r\n    <\/p>\r\n  <\/li>\r\n\r\n  <li class=\"vbook__step vbook__step--last\">\r\n    <span class=\"vbook__number\" aria-hidden=\"true\">03<\/span>\r\n    <h3>Kh\u00f4ng r\u00e0ng bu\u1ed9c<\/h3>\r\n    <p>\r\n Cu\u1ed9c g\u1ecdi n\u00e0y kh\u00f4ng r\u00e0ng bu\u1ed9c b\u1ea1n ph\u1ea3i cam k\u1ebft \u0111i\u1ec1u g\u00ec. \u0110\u00e2y \u0111\u01a1n gi\u1ea3n l\u00e0 n\u01a1i ph\u00f9 h\u1ee3p \u0111\u1ec3 b\u1eaft \u0111\u1ea7u. \r\n    <\/p>\r\n  <\/li>\r\n<\/ol>\r\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d90c9d6 e-con-full vbook__booking-card e-flex e-con e-child\" data-id=\"d90c9d6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f5793d7 elementor-widget elementor-widget-shortcode\" data-id=\"f5793d7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><!--\nPlugin Name: Bookly - Responsive WordPress Appointment Booking and Scheduling Plugin\nPlugin URI: https:\/\/www.booking-wp-plugin.com\/?utm_source=bookly_admin&utm_medium=plugins_page&utm_campaign=plugins_page\nVersion: 27.9-->\n<style type=\"text\/css\">\n    :root {\n        --bookly-main-color: #f4662f !important;\n        --bookly-color: #f4662f !important;\n    }\n\n    <\/style><div class=\"bookly-css-root\">\n    <div id=\"bookly-form-container-6a9a733e3305e\" class=\"bookly-form\" data-form_id=\"\" aria-live=\"polite\">\n        <div style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/staging.vietnamdetox.com\/wp-includes\/js\/tinymce\/skins\/lightgray\/img\/loader.gif\" alt=\"Loading...\"\/><\/div>\n    <\/div>\n<\/div>\n    <div class=\"powered-by-bookly\">Powered by        <a href=\"https:\/\/www.booking-wp-plugin.com\/?utm_source=referral&utm_medium=booking_widget\" target=\"_blank\">Bookly<\/a> \u2014\n        <a href=\"https:\/\/www.booking-wp-plugin.com\/?utm_source=referral&utm_medium=booking_widget\" target=\"_blank\">WordPress Booking Plugin<\/a>\n    <\/div>\n<script type=\"text\/javascript\">\n    (function (win, fn) {\n        var done = false, top = true,\n            doc = win.document,\n            root = doc.documentElement,\n            modern = doc.addEventListener,\n            add = modern ? 'addEventListener' : 'attachEvent',\n            rem = modern ? 'removeEventListener' : 'detachEvent',\n            pre = modern ? '' : 'on',\n            init = function (e) {\n                if (e.type == 'readystatechange') if (doc.readyState != 'complete') return;\n                (e.type == 'load' ? win : doc)[rem](pre + e.type, init, false);\n                if (!done) {\n                    done = true;\n                    fn.call(win, e.type || e);\n                }\n            },\n            poll = function () {\n                try {\n                    root.doScroll('left');\n                } catch (e) {\n                    setTimeout(poll, 50);\n                    return;\n                }\n                init('poll');\n            };\n        if (doc.readyState == 'complete') fn.call(win, 'lazy');\n        else {\n            if (!modern) if (root.doScroll) {\n                try {\n                    top = !win.frameElement;\n                } catch (e) {\n                }\n                if (top) poll();\n            }\n            doc[add](pre + 'DOMContentLoaded', init, false);\n            doc[add](pre + 'readystatechange', init, false);\n            win[add](pre + 'load', init, false);\n        }\n    })(window, function () {\n        window.bookly( {\"form_id\":\"6a9a733e3305e\",\"form_data\":{\"skip_service_step\":1,\"hide_service_part1\":1,\"hide_service_part2\":1,\"defaults\":{\"service_id\":2,\"staff_id\":2,\"location_id\":0,\"category_id\":0,\"units\":0,\"date_from\":0,\"time_from\":0,\"time_to\":0}},\"status\":{\"booking\":\"new\"},\"form_token\":null,\"skip_steps\":{\"service_part1\":1,\"service_part2\":1,\"extras\":1,\"time\":0,\"repeat\":1,\"cart\":1},\"errors\":{\"session_error\":\"Session error.\",\"form_id_error\":\"Form ID error.\",\"cart_item_not_available\":\"The selected time is not available anymore. Please, choose another time slot.\",\"pay_locally_not_available\":\"Pay locally is not available.\",\"invalid_gateway\":\"Invalid gateway.\",\"payment_error\":\"Error.\",\"incorrect_username_password\":\"T\\u00ean ng\\u01b0\\u1eddi d\\u00f9ng ho\\u1eb7c m\\u1eadt kh\\u1ea9u kh\\u00f4ng \\u0111\\u00fang.\"},\"form_attributes\":{\"hide_categories\":true,\"hide_services\":true,\"hide_staff_members\":true,\"show_number_of_persons\":false,\"hide_service_duration\":true,\"hide_locations\":true,\"hide_quantity\":true,\"hide_date\":true,\"hide_week_days\":true,\"hide_time_range\":true},\"use_client_time_zone\":0,\"defaults\":{\"service_id\":2,\"staff_id\":2,\"location_id\":0,\"category_id\":0},\"datepicker_mode\":\"text-accent\",\"facebook\":{\"enabled\":0,\"appId\":\"\"}} );\n    });\n<\/script><\/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\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-43d5e64 e-flex e-con-boxed e-con e-parent\" data-id=\"43d5e64\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bf99e11 elementor-widget elementor-widget-html\" data-id=\"bf99e11\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Copy this entire file into ONE Elementor HTML widget.\r\n  Put elementor-wellness-coaching.css into the same widget's\r\n  Advanced > Custom CSS field.\r\n\r\n  This source section has no interactive JavaScript dependency.\r\n-->\r\n\r\n<section class=\"vcoach\" aria-labelledby=\"vcoach-title\">\r\n  <div class=\"vcoach__shell\">\r\n    <div class=\"vcoach__grid\">\r\n      <div class=\"vcoach__content\">\r\n        <header class=\"vcoach__header\">\r\n          <span class=\"vcoach__eyebrow\">Sau k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng<\/span>\r\n          <span class=\"vcoach__rule\" aria-hidden=\"true\"><\/span>\r\n          <h2 class=\"vcoach__headline\" id=\"vcoach-title\">\r\n Ti\u1ebfp t\u1ee5c h\u00e0nh tr\u00ecnh chuy\u1ec3n h\u00f3a t\u1ea1i nh\u00e0\r\n          <\/h2>\r\n        <\/header>\r\n\r\n        <p class=\"vcoach__introduction\">\r\n M\u1ed7i k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng m\u1edf ra m\u1ed9t c\u00e1nh c\u1eeda. Hu\u1ea5n luy\u1ec7n s\u1ee9c kh\u1ecfe c\u00e1 nh\u00e2n gi\u00fap b\u1ea1n b\u01b0\u1edbc ti\u1ebfp qua c\u00e1nh c\u1eeda \u1ea5y. Ch\u00fang t\u00f4i \u0111\u1ed3ng h\u00e0nh ri\u00eang \u0111\u1ec3 h\u1ed7 tr\u1ee3 thay \u0111\u1ed5i th\u00f3i quen l\u00e2u d\u00e0i, dinh d\u01b0\u1ee1ng v\u00e0 qu\u00e1 tr\u00ecnh h\u00f2a nh\u1eadp sau k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng.  \r\n        <\/p>\r\n\r\n        <ul class=\"vcoach__benefits\" role=\"list\">\r\n          <li>\r\n            <svg viewbox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\r\n              <circle cx=\"8\" cy=\"8\" r=\"6\"><\/circle>\r\n              <path d=\"M5.5 8 L7 9.5 L10.5 6\"><\/path>\r\n            <\/svg>\r\n            <span>C\u00e1c bu\u1ed5i t\u01b0 v\u1ea5n video ri\u00eang v\u1edbi Dieter m\u1ed7i tu\u1ea7n<\/span>\r\n          <\/li>\r\n          <li>\r\n            <svg viewbox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\r\n              <circle cx=\"8\" cy=\"8\" r=\"6\"><\/circle>\r\n              <path d=\"M5.5 8 L7 9.5 L10.5 6\"><\/path>\r\n            <\/svg>\r\n            <span>L\u1eadp k\u1ebf ho\u1ea1ch dinh d\u01b0\u1ee1ng c\u00e1 nh\u00e2n v\u00e0 nh\u1ecbp s\u1ed1ng h\u1eb1ng ng\u00e0y<\/span>\r\n          <\/li>\r\n          <li>\r\n            <svg viewbox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\r\n              <circle cx=\"8\" cy=\"8\" r=\"6\"><\/circle>\r\n              <path d=\"M5.5 8 L7 9.5 L10.5 6\"><\/path>\r\n            <\/svg>\r\n            <span>H\u1ed7 tr\u1ee3 h\u00f2a nh\u1eadp sau k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng \u0111\u1ec3 duy tr\u00ec thay \u0111\u1ed5i l\u00e2u d\u00e0i<\/span>\r\n          <\/li>\r\n        <\/ul>\r\n\r\n        <a href=\"#contact\" class=\"vcoach__button\">T\u00ecm hi\u1ec3u v\u1ec1 d\u1ecbch v\u1ee5 hu\u1ea5n luy\u1ec7n<\/a>\r\n      <\/div>\r\n\r\n      <figure class=\"vcoach__portrait\">\r\n        <img src=\"\/wp-content\/uploads\/2026\/08\/Dieter-Buchner-Co-Founder-and-Retreat-Leader-vietnam-detox.webp\" alt=\"Dieter Buchner\" loading=\"lazy\" decoding=\"async\">\r\n      <\/figure>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-d7b0458 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"d7b0458\" data-element_type=\"container\" data-e-type=\"container\" id=\"journal\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div data-dce-title-color=\"#1E3D20\" class=\"elementor-element elementor-element-54f66e1 eyebrow eyebrow-forest elementor-widget elementor-widget-heading\" data-id=\"54f66e1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Ghi ch\u00e9p nghi th\u1ee9c<\/span>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8d9ddda elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"8d9ddda\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a9d19e2 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"a9d19e2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2 class=\"s-headline\" style=\"font-size:66px;\">Nh\u1eadt k\u00fd v\u1ec1 nh\u1ecbn \u0103n, nghi th\u1ee9c &#038; ch\u1ed1n d\u1eebng ch\u00e2n.<\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a0badeb elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"a0badeb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Nh\u1eefng ghi ch\u00e9p th\u1ef1c t\u1ebf v\u1ec1 nu\u00f4i d\u01b0\u1ee1ng ch\u00e1nh ni\u1ec7m, tri th\u1ee9c th\u1ea3o m\u1ed9c Vi\u1ec7t Nam v\u00e0 c\u00e1c th\u00f3i quen ph\u00f2ng ng\u1eeba \u0111\u01b0\u1ee3c chia s\u1ebb trong m\u1ed7i k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c42e66e e-grid e-con-full e-con e-child\" data-id=\"c42e66e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-3f58ae9 e-con-full e-flex e-con e-child\" data-id=\"3f58ae9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5f2c146 dce_masking-none elementor-widget elementor-widget-image\" data-id=\"5f2c146\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"491\" src=\"https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/thanhnamnguyen-huong-river-1979373-1024x628.webp\" class=\"attachment-large size-large wp-image-2108\" alt=\"\" srcset=\"https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/thanhnamnguyen-huong-river-1979373-1024x628.webp 1024w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/thanhnamnguyen-huong-river-1979373-300x184.webp 300w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/thanhnamnguyen-huong-river-1979373-768x471.webp 768w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/thanhnamnguyen-huong-river-1979373-1536x943.webp 1536w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/thanhnamnguyen-huong-river-1979373-scaled.webp 1920w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-acdcad8 e-flex e-con-boxed e-con e-child\" data-id=\"acdcad8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a87b2ca elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"a87b2ca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">S\u1ed1ng kh\u1ecfe<\/span>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9439260 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"9439260\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">5 ph\u00fat \u0111\u1ecdc<\/span>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bfd5f70 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"bfd5f70\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Th\u00e1ng 3 n\u0103m 2026<\/span>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-961a81d elementor-widget elementor-widget-heading\" data-id=\"961a81d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">C\u00e1ch chu\u1ea9n b\u1ecb cho l\u1ea7n nh\u1ecbn \u0103n Buchinger \u0111\u1ea7u ti\u00ean c\u1ee7a b\u1ea1n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4e71783 elementor-widget elementor-widget-text-editor\" data-id=\"4e71783\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Danh s\u00e1ch chu\u1ea9n b\u1ecb th\u1ef1c t\u1ebf, t\u1eeb s\u00e0ng l\u1ecdc y t\u1ebf, gi\u1ea3m d\u1ea7n caffeine v\u00e0 h\u00e0nh l\u00fd c\u1ea7n mang \u0111\u1ebfn g\u1ee3i \u00fd vi\u1ebft nh\u1eadt k\u00fd v\u00e0 c\u00e1ch trao \u0111\u1ed5i v\u1edbi gia \u0111\u00ecnh tr\u01b0\u1edbc ng\u00e0y l\u00ean \u0111\u01b0\u1eddng.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div data-dce-background-color=\"#FFFFFF\" class=\"elementor-element elementor-element-11b1c6f elementor-align-center elementor-widget elementor-widget-button\" data-id=\"11b1c6f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u0110\u1ecdc th\u00eam<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\n<hr class=\"e-ac12451-15f8d55 e-divider-base\" data-interaction-id=\"ac12451\"  data-e-type=\"widget\" data-id=\"ac12451\" \/>\n\t\t<div class=\"elementor-element elementor-element-ef22a19 e-con-full e-flex e-con e-child\" data-id=\"ef22a19\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7e6b135 dce_masking-none elementor-widget elementor-widget-image\" data-id=\"7e6b135\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"998\" src=\"https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/Dieter-Buchner-Co-Founder-and-Retreat-Leader-vietnam-detox.webp\" class=\"attachment-large size-large wp-image-1466\" alt=\"\" srcset=\"https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/Dieter-Buchner-Co-Founder-and-Retreat-Leader-vietnam-detox.webp 802w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/Dieter-Buchner-Co-Founder-and-Retreat-Leader-vietnam-detox-241x300.webp 241w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/Dieter-Buchner-Co-Founder-and-Retreat-Leader-vietnam-detox-768x958.webp 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6171a25 e-con-full e-flex e-con e-child\" data-id=\"6171a25\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0587502 elementor-widget elementor-widget-heading\" data-id=\"0587502\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">Dieter Buchner<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b5e153d elementor-widget elementor-widget-heading\" data-id=\"b5e153d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Hu\u1ea5n luy\u1ec7n vi\u00ean nh\u1ecbn \u0103n \u0111\u01b0\u1ee3c ch\u1ee9ng nh\u1eadn<\/p>\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<div class=\"elementor-element elementor-element-b95679c e-con-full e-flex e-con e-child\" data-id=\"b95679c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9e003e0 dce_masking-none elementor-widget elementor-widget-image\" data-id=\"9e003e0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1280\" src=\"https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/herbal-thumbnail-blog.webp\" class=\"attachment-full size-full wp-image-2106\" alt=\"\" srcset=\"https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/herbal-thumbnail-blog.webp 1920w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/herbal-thumbnail-blog-300x200.webp 300w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/herbal-thumbnail-blog-1024x683.webp 1024w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/herbal-thumbnail-blog-768x512.webp 768w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/herbal-thumbnail-blog-1536x1024.webp 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-57e4f11 e-flex e-con-boxed e-con e-child\" data-id=\"57e4f11\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c990b62 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"c990b62\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Khoa h\u1ecdc nh\u1ecbn \u0103n<\/span>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6704f22 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"6704f22\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">6 ph\u00fat \u0111\u1ecdc<\/span>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5ff5587 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"5ff5587\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Th\u00e1ng 2 n\u0103m 2026<\/span>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-13fe2dc elementor-widget elementor-widget-heading\" data-id=\"13fe2dc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">N\u00ean \u0103n g\u00ec tr\u01b0\u1edbc v\u00e0 sau k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8bf3101 elementor-widget elementor-widget-text-editor\" data-id=\"8bf3101\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>C\u00e1c b\u1eefa \u0103n c\u1ee5 th\u1ec3, n\u01b0\u1edbc d\u00f9ng v\u00e0 th\u1eddi \u0111i\u1ec3m \u0111\u1ec3 gi\u1ea3m d\u1ea7n tr\u01b0\u1edbc khi nh\u1ecbn \u0103n v\u00e0 giai \u0111o\u1ea1n \u0103n l\u1ea1i trong ba ng\u00e0y, c\u00f9ng v\u1edbi c\u00e1ch tr\u00e1nh c\u00e1c v\u1ea5n \u0111\u1ec1 ti\u00eau h\u00f3a th\u01b0\u1eddng g\u1eb7p.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div data-dce-background-color=\"#FFFFFF\" class=\"elementor-element elementor-element-4e56266 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"4e56266\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u0110\u1ecdc th\u00eam<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\n<hr class=\"e-96a2d16-f7ceef3 e-divider-base\" data-interaction-id=\"96a2d16\"  data-e-type=\"widget\" data-id=\"96a2d16\" \/>\n\t\t<div class=\"elementor-element elementor-element-d1fb951 e-con-full e-flex e-con e-child\" data-id=\"d1fb951\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ba7e750 dce_masking-none elementor-widget elementor-widget-image\" data-id=\"ba7e750\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"779\" height=\"914\" src=\"https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/vietnamdetox-Truong-Tan-Hoan-Retreatleader-Cofounder-vietnam-detox.webp\" class=\"attachment-large size-large wp-image-1467\" alt=\"\" srcset=\"https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/vietnamdetox-Truong-Tan-Hoan-Retreatleader-Cofounder-vietnam-detox.webp 779w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/vietnamdetox-Truong-Tan-Hoan-Retreatleader-Cofounder-vietnam-detox-256x300.webp 256w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/vietnamdetox-Truong-Tan-Hoan-Retreatleader-Cofounder-vietnam-detox-768x901.webp 768w\" sizes=\"(max-width: 779px) 100vw, 779px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5ac62b0 e-con-full e-flex e-con e-child\" data-id=\"5ac62b0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-780cca5 elementor-widget elementor-widget-heading\" data-id=\"780cca5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">Tr\u01b0\u01a1ng T\u1ea5n Ho\u00e0n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1348a9f elementor-widget elementor-widget-heading\" data-id=\"1348a9f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Gi\u00e1m \u0111\u1ed1c ch\u01b0\u01a1ng tr\u00ecnh<\/p>\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<div class=\"elementor-element elementor-element-abead9d e-con-full e-flex e-con e-child\" data-id=\"abead9d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-83b6b1a dce_masking-none elementor-widget elementor-widget-image\" data-id=\"83b6b1a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"780\" height=\"437\" src=\"https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/Legacy-Yen-Tu-MGallery-Other.webp\" class=\"attachment-full size-full wp-image-2105\" alt=\"\" srcset=\"https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/Legacy-Yen-Tu-MGallery-Other.webp 780w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/Legacy-Yen-Tu-MGallery-Other-300x168.webp 300w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/Legacy-Yen-Tu-MGallery-Other-768x430.webp 768w\" sizes=\"(max-width: 780px) 100vw, 780px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c82c9a2 e-flex e-con-boxed e-con e-child\" data-id=\"c82c9a2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d8261b9 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"d8261b9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Nh\u1ecbp s\u1ed1ng ngh\u1ec9 d\u01b0\u1ee1ng<\/span>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d5caae7 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"d5caae7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">4 ph\u00fat \u0111\u1ecdc<\/span>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c96db69 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"c96db69\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">Th\u00e1ng 1 n\u0103m 2026<\/span>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-67489d1 elementor-widget elementor-widget-heading\" data-id=\"67489d1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">Nh\u1ecbn \u0103n theo nh\u00f3m nh\u1ecf: M\u1ed7i ng\u00e0y c\u00f3 g\u00ec?<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7151b5d elementor-widget elementor-widget-text-editor\" data-id=\"7151b5d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>T\u1eeb ki\u1ec3m tra s\u1ee9c kh\u1ecfe bu\u1ed5i s\u00e1ng v\u00e0 c\u00e1c bu\u1ed5i chia s\u1ebb ki\u1ebfn th\u1ee9c \u0111\u1ebfn v\u00f2ng tr\u00f2n tr\u00f2 chuy\u1ec7n bu\u1ed5i t\u1ed1i, b\u00e0i vi\u1ebft gi\u1edbi thi\u1ec7u c\u00e1ch h\u1ecdc h\u1ecfi, v\u1eadn \u0111\u1ed9ng v\u00e0 ngh\u1ec9 ng\u01a1i \u0111\u01b0\u1ee3c \u0111an xen trong m\u1ed7i nh\u00f3m.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div data-dce-background-color=\"#FFFFFF\" class=\"elementor-element elementor-element-de09048 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"de09048\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u0110\u1ecdc th\u00eam<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\n<hr class=\"e-94f7842-b82ba99 e-divider-base\" data-interaction-id=\"94f7842\"  data-e-type=\"widget\" data-id=\"94f7842\" \/>\n\t\t<div class=\"elementor-element elementor-element-7316d26 e-con-full e-flex e-con e-child\" data-id=\"7316d26\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6380aaf dce_masking-none elementor-widget elementor-widget-image\" data-id=\"6380aaf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"779\" height=\"914\" src=\"https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/vietnamdetox-Truong-Tan-Hoan-Retreatleader-Cofounder-vietnam-detox.webp\" class=\"attachment-large size-large wp-image-1467\" alt=\"\" srcset=\"https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/vietnamdetox-Truong-Tan-Hoan-Retreatleader-Cofounder-vietnam-detox.webp 779w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/vietnamdetox-Truong-Tan-Hoan-Retreatleader-Cofounder-vietnam-detox-256x300.webp 256w, https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/vietnamdetox-Truong-Tan-Hoan-Retreatleader-Cofounder-vietnam-detox-768x901.webp 768w\" sizes=\"(max-width: 779px) 100vw, 779px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-57cf14a e-con-full e-flex e-con e-child\" data-id=\"57cf14a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-20a9f84 elementor-widget elementor-widget-heading\" data-id=\"20a9f84\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">Tr\u01b0\u01a1ng T\u1ea5n Ho\u00e0n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f14ced elementor-widget elementor-widget-heading\" data-id=\"9f14ced\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Gi\u00e1m \u0111\u1ed1c ch\u01b0\u01a1ng tr\u00ecnh<\/p>\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\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-8baad31 newsletter e-flex e-con-boxed e-con e-parent\" data-id=\"8baad31\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-de42b92 e-con-full vnls__shell e-flex e-con e-child\" data-id=\"de42b92\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-81aef3e e-con-full vnls__card e-flex e-con e-child\" data-id=\"81aef3e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cd50fb1 elementor-widget elementor-widget-html\" data-id=\"cd50fb1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Paste this markup into the FIRST HTML widget inside the native Elementor\r\n  container with class `vnls__card`.\r\n\r\n  The real Fluent Form must be a separate Fluent Forms\/Shortcode widget below\r\n  this HTML widget. See README.md for the complete Elementor structure.\r\n-->\r\n\r\n<div class=\"vnls__content\">\r\n  <span class=\"vnls__eyebrow\">Gi\u1eef k\u1ebft n\u1ed1i<\/span>\r\n  <span class=\"vnls__rule\" aria-hidden=\"true\"><\/span>\r\n\r\n  <figure class=\"vnls__visual vnls__visual--inline\">\r\n    <img src=\"\/wp-content\/uploads\/2026\/05\/Hoan-Dieter-in-herb-garden-dieter-showing-leaves.webp\" alt=\"Ho\u00e0n v\u00e0 Dieter chia s\u1ebb ki\u1ebfn th\u1ee9c trong v\u01b0\u1eddn th\u1ea3o d\u01b0\u1ee3c\" loading=\"lazy\" decoding=\"async\">\r\n  <\/figure>\r\n\r\n  <h2 class=\"vnls__headline\" id=\"vnls-title\">\r\n Nh\u1eadn <em>l\u1ecbch k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng<\/em>,\r\n<span class=\"vnls__headline-sub\">m\u1eb9o nh\u1ecbn \u0103n, c\u00e2u chuy\u1ec7n t\u1eeb kh\u00e1ch v\u00e0 quy\u1ec1n \u0111\u0103ng k\u00fd s\u1edbm cho nh\u1eefng su\u1ea5t gi\u1edbi h\u1ea1n.<\/span> \r\n  <\/h2>\r\n\r\n  <p class=\"vnls__description\">\r\n Email h\u1eb1ng qu\u00fd n\u00e0y c\u1eadp nh\u1eadt th\u1eddi gian s\u00e0ng l\u1ecdc, ki\u1ebfn th\u1ee9c v\u1ec1 Buchinger, c\u00e1ch kh\u00e1ch c\u0169 chu\u1ea9n b\u1ecb t\u1ea1i nh\u00e0 v\u00e0 l\u1ecbch m\u1edf c\u00e1c k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng ti\u1ebfp theo.\r\n  <\/p>\r\n<\/div>\r\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-611f309 e-con-full vnls__form-wrap e-flex e-con e-child\" data-id=\"611f309\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6da923c elementor-widget elementor-widget-shortcode\" data-id=\"6da923c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div class='fluentform ff-default fluentform_wrapper_4 ffs_default_wrap'><form data-form_id=\"4\" id=\"fluentform_4\" class=\"frm-fluent-form fluent_form_4 ff-el-form-top ff_form_instance_4_1 ff-form-loading ffs_default\" data-form_instance=\"ff_form_instance_4_1\" method=\"POST\" ><fieldset  style=\"border: none!important;margin: 0!important;padding: 0!important;background-color: transparent!important;box-shadow: none!important;outline: none!important; min-inline-size: 100%;\">\n                    <legend class=\"ff_screen_reader_title\" style=\"display: block; margin: 0!important;padding: 0!important;height: 0!important;text-indent: -999999px;width: 0!important;overflow:hidden;\">Homepage Newsletter<\/legend><input type='hidden' name='__fluent_form_embded_post_id' value='20171' \/><input type=\"hidden\" id=\"_fluentform_4_fluentformnonce\" name=\"_fluentform_4_fluentformnonce\" value=\"ffb56c2cbe\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/vi\/wp-json\/wp\/v2\/pages\/20171\" \/><div class='ff-el-group ff-el-form-top'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label for='ff_4_email' id='label_ff_4_email' aria-label=\"Email address\">Email address<\/label><\/div><div class='ff-el-input--content'><input type=\"email\" name=\"email\" id=\"ff_4_email\" class=\"ff-el-form-control\" placeholder=\"Your email address\" data-name=\"email\"  aria-invalid=\"false\" aria-required=true><\/div><\/div><div class='ff-el-group ff-text-left ff_submit_btn_wrapper'><button type=\"submit\" class=\"ff-btn ff-btn-submit ff-btn-md ff_btn_style\"  aria-label=\"Join the List\">Join the List<\/button><\/div><\/fieldset><\/form><div id='fluentform_4_errors' class='ff-errors-in-stack ff_form_instance_4_1 ff-form-loading_errors ff_form_instance_4_1_errors'><\/div><\/div>            <script type=\"text\/javascript\">\n                window.fluent_form_ff_form_instance_4_1 = {\"id\":\"4\",\"ajaxUrl\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/wp-admin\\\/admin-ajax.php\",\"settings\":{\"layout\":{\"labelPlacement\":\"top\",\"asteriskPlacement\":\"asterisk-right\",\"helpMessagePlacement\":\"with_label\",\"errorMessagePlacement\":\"inline\",\"cssClassName\":\"\"},\"restrictions\":{\"denyEmptySubmission\":{\"enabled\":false}}},\"form_instance\":\"ff_form_instance_4_1\",\"form_id_selector\":\"fluentform_4\",\"rules\":{\"email\":{\"required\":{\"value\":true,\"message\":\"Tr\\u01b0\\u1eddng n\\u00e0y l\\u00e0 b\\u1eaft bu\\u1ed9c\",\"global_message\":\"This field is required\",\"global\":true},\"email\":{\"value\":true,\"message\":\"Tr\\u01b0\\u1eddng n\\u00e0y ph\\u1ea3i ch\\u1ee9a m\\u1ed9t email h\\u1ee3p l\\u1ec7\",\"global_message\":\"This field must contain a valid email\",\"global\":true}}},\"debounce_time\":300,\"file_upload_settings\":[]};\n                            <\/script>\n            <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-670ffe7 elementor-widget elementor-widget-html\" data-id=\"670ffe7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<p class=\"vnls__privacy\">\r\n Ch\u00fang t\u00f4i t\u00f4n tr\u1ecdng quy\u1ec1n ri\u00eang t\u01b0 c\u1ee7a b\u1ea1n. Kh\u00f4ng g\u1eedi th\u01b0 r\u00e1c. H\u1ee7y \u0111\u0103ng k\u00fd b\u1ea5t c\u1ee9 l\u00fac n\u00e0o.\r\nXem <a href=\"\/privacy-policy\/\">ch\u00ednh s\u00e1ch quy\u1ec1n ri\u00eang t\u01b0<\/a> c\u1ee7a ch\u00fang t\u00f4i.  \r\n<\/p>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ab50ffc vnls__visual-widget elementor-widget elementor-widget-html\" data-id=\"ab50ffc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Paste into the second HTML widget inside `vnls__shell`.\r\n  Give that HTML widget the CSS class `vnls__visual-widget`.\r\n-->\r\n\r\n<figure class=\"vnls__visual vnls__visual--outer\">\r\n  <img src=\"\/wp-content\/uploads\/2026\/05\/Hoan-Dieter-in-herb-garden-dieter-showing-leaves.webp\" alt=\"Ho\u00e0n v\u00e0 Dieter chia s\u1ebb ki\u1ebfn th\u1ee9c trong v\u01b0\u1eddn th\u1ea3o d\u01b0\u1ee3c\" loading=\"lazy\" decoding=\"async\">\r\n<\/figure>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-8207162 partners-section e-flex e-con-boxed e-con e-parent\" data-id=\"8207162\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ea82935 elementor-widget elementor-widget-html\" data-id=\"ea82935\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\n  Vietnam Detox \u2014 Elementor Partners Section\n  Paste this entire file into one Elementor HTML widget.\n  Add partners-section.css separately as described in README.md.\n-->\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&family=Be+Vietnam+Pro:wght@300;400;500;600;700&display=swap\" rel=\"stylesheet\">\n\n<section class=\"vnd-partners\" data-vnd-partners=\"\">\n  <div class=\"vnd-partners__shell\">\n    <header class=\"vnd-partners__heading\">\n      <span class=\"vnd-partners__eyebrow\">\u0110\u1ed1i t\u00e1c chi\u1ebfn l\u01b0\u1ee3c c\u1ee7a ch\u00fang t\u00f4i<\/span>\n      <span class=\"vnd-partners__rule\" aria-hidden=\"true\"><\/span>\n    <\/header>\n\n    <div class=\"vnd-partners__carousel\">\n      <button class=\"vnd-partners__arrow vnd-partners__arrow--previous\" type=\"button\" data-partners-previous=\"\" aria-label=\"View previous partners\">\n        <span aria-hidden=\"true\">\u2039<\/span>\n      <\/button>\n\n      <div class=\"vnd-partners__viewport\" data-partners-viewport=\"\">\n        <div class=\"vnd-partners__track\" data-partners-track=\"\">\n          <button class=\"vnd-partner-card\" type=\"button\" data-partner-name=\"Namia River Retreat Hoi An\" data-partner-logo=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/partners\/namia-river-retreat.png\" data-partner-link=\"https:\/\/namiariverretreat.com\/\" aria-label=\"Learn more about Namia River Retreat Hoi An\">\n            <img decoding=\"async\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/partners\/namia-river-retreat.png\" alt=\"Logo Namia River Retreat H\u1ed9i An\" loading=\"lazy\">\n          <\/button>\n\n          <button class=\"vnd-partner-card\" type=\"button\" data-partner-name=\"Legacy Yen Tu MGallery\" data-partner-logo=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/partners\/legacy-yen-tu.png\" data-partner-link=\"https:\/\/mgallery.accor.com\/en\/hotels\/B1Y7\/wellness.html\" aria-label=\"Learn more about Legacy Yen Tu MGallery\">\n            <img decoding=\"async\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/partners\/legacy-yen-tu.png\" alt=\"Logo Legacy Y\u00ean T\u1eed MGallery\" loading=\"lazy\">\n          <\/button>\n\n          <button class=\"vnd-partner-card\" type=\"button\" data-partner-name=\"Azerai La Residence Hue\" data-partner-logo=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/partners\/azerai-la-residence-hue-logo.webp\" data-partner-link=\"https:\/\/azerai.com\/azerai-la-residence-hue\/\" aria-label=\"Learn more about Azerai La Residence Hue\">\n            <img decoding=\"async\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/partners\/azerai-la-residence-hue-logo.webp\" alt=\"Logo Azerai La Residence Hu\u1ebf\" loading=\"lazy\">\n          <\/button>\n\n          <button class=\"vnd-partner-card\" type=\"button\" data-partner-name=\"Alba Wellness Valley Hue\" data-partner-logo=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/partners\/AlbaWellnessValley.webp\" data-partner-link=\"https:\/\/fusion-collection.com\/albawellnessvalleyhue\/en\/homepage\/\" aria-label=\"Learn more about Alba Wellness Valley Hue\">\n            <img decoding=\"async\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/partners\/AlbaWellnessValley.webp\" alt=\"Logo Alba Wellness Valley Hu\u1ebf\" loading=\"lazy\">\n          <\/button>\n\n          <button class=\"vnd-partner-card\" type=\"button\" data-partner-name=\"Deutsche Fastenakademie (dfa)\" data-partner-logo=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/partners\/dfa-logo-2012_1024.webp\" data-partner-link=\"https:\/\/fastenakademie.de\/\" aria-label=\"Learn more about Deutsche Fastenakademie\">\n            <img decoding=\"async\" src=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/partners\/dfa-logo-2012_1024.webp\" alt=\"Logo Deutsche Fastenakademie\" loading=\"lazy\">\n          <\/button>\n        <\/div>\n      <\/div>\n\n      <button class=\"vnd-partners__arrow vnd-partners__arrow--next\" type=\"button\" data-partners-next=\"\" aria-label=\"View next partners\">\n        <span aria-hidden=\"true\">\u203a<\/span>\n      <\/button>\n    <\/div>\n  <\/div>\n\n  <div class=\"vnd-partner-modal\" data-partner-modal=\"\" aria-hidden=\"true\">\n    <div class=\"vnd-partner-modal__dialog\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Partner details\">\n      <button type=\"button\" class=\"vnd-partner-modal__close\" data-partner-modal-close=\"\" aria-label=\"Close partner details\">\n \u00d7\n      <\/button>\n\n      <div class=\"vnd-partner-modal__logo\">\n        <img decoding=\"async\" data-partner-modal-logo=\"\" src=\"\" alt=\"\">\n      <\/div>\n\n      <h3 class=\"vnd-partner-modal__name\" data-partner-modal-name=\"\">\n \u0110\u1ed1i t\u00e1c\n      <\/h3>\n\n      <p class=\"vnd-partner-modal__copy\" data-partner-modal-copy=\"\">\n Th\u00f4ng tin th\u00eam v\u1ec1 \u0111\u1ed1i t\u00e1c n\u00e0y s\u1ebd s\u1edbm \u0111\u01b0\u1ee3c b\u1ed5 sung.\n      <\/p>\n\n      <a class=\"vnd-partner-modal__link\" data-partner-modal-link=\"\" href=\"#\" target=\"_blank\" rel=\"noopener\">\n Truy c\u1eadp trang web c\u1ee7a \u0111\u1ed1i t\u00e1c\n      <\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<script>\n(function () {\n  \"use strict\";\n\n  var sections = document.querySelectorAll(\n    \"[data-vnd-partners]:not([data-vnd-partners-ready])\"\n  );\n\n  sections.forEach(function (section) {\n    section.setAttribute(\"data-vnd-partners-ready\", \"true\");\n\n    var viewport = section.querySelector(\"[data-partners-viewport]\");\n    var track = section.querySelector(\"[data-partners-track]\");\n    var previousButton = section.querySelector(\"[data-partners-previous]\");\n    var nextButton = section.querySelector(\"[data-partners-next]\");\n    var cards = section.querySelectorAll(\".vnd-partner-card\");\n    var modal = section.querySelector(\"[data-partner-modal]\");\n    var modalDialog = modal\n      ? modal.querySelector(\".vnd-partner-modal__dialog\")\n      : null;\n    var closeButton = section.querySelector(\"[data-partner-modal-close]\");\n    var modalLogo = section.querySelector(\"[data-partner-modal-logo]\");\n    var modalName = section.querySelector(\"[data-partner-modal-name]\");\n    var modalCopy = section.querySelector(\"[data-partner-modal-copy]\");\n    var modalLink = section.querySelector(\"[data-partner-modal-link]\");\n\n    if (!viewport || !track || !cards.length) return;\n\n    var animating = false;\n    var autoTimer = null;\n    var touchStartX = null;\n    var lastFocusedElement = null;\n    var transitionValue =\n      \"transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94)\";\n    var reducedMotion = window.matchMedia(\n      \"(prefers-reduced-motion: reduce)\"\n    ).matches;\n\n    function getGap() {\n      var styles = window.getComputedStyle(track);\n      var gap = parseFloat(\n        styles.columnGap || styles.gap || styles.rowGap || 0\n      );\n      return isNaN(gap) ? 0 : gap;\n    }\n\n    function stepForward() {\n      if (animating || track.children.length < 2) return;\n\n      animating = true;\n      var first = track.firstElementChild;\n      var width = first.getBoundingClientRect().width + getGap();\n\n      track.style.transition = transitionValue;\n      track.style.transform = \"translate3d(\" + -width + \"px, 0, 0)\";\n\n      window.setTimeout(function () {\n        track.style.transition = \"none\";\n        track.appendChild(first);\n        track.style.transform = \"translate3d(0, 0, 0)\";\n        animating = false;\n      }, 650);\n    }\n\n    function stepBackward() {\n      if (animating || track.children.length < 2) return;\n\n      animating = true;\n      var last = track.lastElementChild;\n      var width = last.getBoundingClientRect().width + getGap();\n\n      track.style.transition = \"none\";\n      track.insertBefore(last, track.firstElementChild);\n      track.style.transform = \"translate3d(\" + -width + \"px, 0, 0)\";\n\n      window.requestAnimationFrame(function () {\n        track.style.transition = transitionValue;\n        track.style.transform = \"translate3d(0, 0, 0)\";\n\n        window.setTimeout(function () {\n          track.style.transition = \"none\";\n          animating = false;\n        }, 650);\n      });\n    }\n\n    function stopAutoPlay() {\n      if (!autoTimer) return;\n      window.clearInterval(autoTimer);\n      autoTimer = null;\n    }\n\n    function startAutoPlay() {\n      stopAutoPlay();\n\n      if (\n        reducedMotion ||\n        document.hidden ||\n        track.children.length < 2 ||\n        (modal && modal.classList.contains(\"is-open\"))\n      ) {\n        return;\n      }\n\n      autoTimer = window.setInterval(stepForward, 3500);\n    }\n\n    function moveAndRestart(direction) {\n      stopAutoPlay();\n      if (direction === \"previous\") stepBackward();\n      else stepForward();\n      startAutoPlay();\n    }\n\n    if (previousButton) {\n      previousButton.addEventListener(\"click\", function () {\n        moveAndRestart(\"previous\");\n      });\n    }\n\n    if (nextButton) {\n      nextButton.addEventListener(\"click\", function () {\n        moveAndRestart(\"next\");\n      });\n    }\n\n    viewport.addEventListener(\"touchstart\", function (event) {\n      if (!event.touches.length) return;\n      touchStartX = event.touches[0].clientX;\n      stopAutoPlay();\n    }, { passive: true });\n\n    viewport.addEventListener(\"touchend\", function (event) {\n      if (touchStartX === null || !event.changedTouches.length) {\n        startAutoPlay();\n        return;\n      }\n\n      var difference = event.changedTouches[0].clientX - touchStartX;\n      touchStartX = null;\n\n      if (Math.abs(difference) >= 40) {\n        if (difference > 0) stepBackward();\n        else stepForward();\n      }\n\n      startAutoPlay();\n    }, { passive: true });\n\n    section.addEventListener(\"mouseenter\", stopAutoPlay);\n    section.addEventListener(\"mouseleave\", startAutoPlay);\n\n    section.addEventListener(\"focusin\", stopAutoPlay);\n    section.addEventListener(\"focusout\", function (event) {\n      if (!section.contains(event.relatedTarget)) startAutoPlay();\n    });\n\n    document.addEventListener(\"visibilitychange\", function () {\n      if (document.hidden) stopAutoPlay();\n      else startAutoPlay();\n    });\n\n    function setModal(open) {\n      if (!modal) return;\n\n      modal.classList.toggle(\"is-open\", open);\n      modal.setAttribute(\"aria-hidden\", String(!open));\n      document.body.classList.toggle(\"vnd-partner-modal-open\", open);\n\n      if (open) {\n        stopAutoPlay();\n        window.setTimeout(function () {\n          if (closeButton) closeButton.focus();\n        }, 20);\n      } else {\n        startAutoPlay();\n        if (\n          lastFocusedElement &&\n          typeof lastFocusedElement.focus === \"function\"\n        ) {\n          lastFocusedElement.focus();\n        }\n      }\n    }\n\n    function openPartnerModal(card) {\n      if (\n        !modal ||\n        !modalLogo ||\n        !modalName ||\n        !modalCopy ||\n        !modalLink\n      ) {\n        return;\n      }\n\n      var name = card.getAttribute(\"data-partner-name\") || \"Partner\";\n      var logo = card.getAttribute(\"data-partner-logo\") || \"\";\n      var link = card.getAttribute(\"data-partner-link\") || \"#\";\n      var description = card.getAttribute(\"data-partner-description\") ||\n        \"More information about this partner will be added soon.\";\n\n      lastFocusedElement = card;\n      modalName.textContent = name;\n      modalLogo.src = logo;\n      modalLogo.alt = name + \" logo\";\n      modalCopy.textContent = description;\n      modalLink.href = link;\n      setModal(true);\n    }\n\n    Array.prototype.forEach.call(cards, function (card) {\n      card.addEventListener(\"click\", function () {\n        openPartnerModal(card);\n      });\n    });\n\n    if (closeButton) {\n      closeButton.addEventListener(\"click\", function () {\n        setModal(false);\n      });\n    }\n\n    if (modal) {\n      modal.addEventListener(\"click\", function (event) {\n        if (event.target === modal) setModal(false);\n      });\n    }\n\n    document.addEventListener(\"keydown\", function (event) {\n      if (!modal || !modal.classList.contains(\"is-open\")) return;\n\n      if (event.key === \"Escape\") {\n        event.preventDefault();\n        setModal(false);\n        return;\n      }\n\n      if (event.key === \"Tab\" && modalDialog) {\n        var focusable = modalDialog.querySelectorAll(\n          \"button:not([disabled]), a[href], [tabindex]:not([tabindex='-1'])\"\n        );\n\n        if (!focusable.length) return;\n\n        var firstFocusable = focusable[0];\n        var lastFocusable = focusable[focusable.length - 1];\n\n        if (event.shiftKey && document.activeElement === firstFocusable) {\n          event.preventDefault();\n          lastFocusable.focus();\n        } else if (\n          !event.shiftKey &&\n          document.activeElement === lastFocusable\n        ) {\n          event.preventDefault();\n          firstFocusable.focus();\n        }\n      }\n    });\n\n    if (track.children.length < 2) {\n      section.classList.add(\"has-one-partner\");\n    }\n\n    startAutoPlay();\n  });\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div data-dce-background-color=\"#F5E8D0\" class=\"elementor-element elementor-element-6f73f92 e-flex e-con-boxed e-con e-parent\" data-id=\"6f73f92\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1bc70c5 elementor-widget elementor-widget-html\" data-id=\"1bc70c5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Elementor setup\r\n  1. Add an HTML widget where the CTA card should appear.\r\n  2. Paste this entire file into the widget.\r\n  3. Add the companion CSS from elementor-footer-retreat-cta.css to the widget's\r\n     Advanced > Custom CSS field (Elementor Pro).\r\n\r\n  This component is static, so no JavaScript is required.\r\n-->\r\n\r\n<section class=\"vrcta\" aria-labelledby=\"vrcta-title\">\r\n  <span class=\"vrcta__eyebrow\">Khi b\u1ea1n s\u1eb5n s\u00e0ng<\/span>\r\n\r\n  <h2 class=\"vrcta__headline\" id=\"vrcta-title\">\r\n Gi\u1eef ch\u1ed7 t\u1ea1i m\u1ed9t trong nh\u1eefng <em>k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng s\u1eafp t\u1edbi.<\/em>\r\n  <\/h2>\r\n\r\n  <p class=\"vrcta__description\">\r\n N\u1ebfu m\u1ed9t k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng c\u1ee5 th\u1ec3 \u0111\u00e3 thu h\u00fat b\u1ea1n, b\u1ea1n c\u00f3 th\u1ec3 gi\u1eef ch\u1ed7 ngay. V\u1eabn ch\u01b0a ch\u1eafc l\u1ef1a ch\u1ecdn n\u00e0o ph\u00f9 h\u1ee3p nh\u1ea5t? Ch\u00fang t\u00f4i s\u1eb5n l\u00f2ng c\u00f9ng b\u1ea1n t\u00ecm hi\u1ec3u \u0111\u1ecba \u0111i\u1ec3m, kh\u00f4ng kh\u00ed, th\u1eddi gian v\u00e0 ph\u01b0\u01a1ng ph\u00e1p nh\u1ecbn \u0103n trong m\u1ed9t cu\u1ed9c g\u1ecdi t\u01b0 v\u1ea5n nh\u1eb9 nh\u00e0ng.  \r\n  <\/p>\r\n\r\n  <div class=\"vrcta__buttons\">\r\n    <a class=\"vrcta__button vrcta__button--ember\" href=\"https:\/\/staging.vietnamdetox.com\/vi\/tong-quan-ve-khoa-nghi-duong\/\">Kh\u00e1m ph\u00e1 c\u00e1c k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng<\/a>\r\n<a class=\"vrcta__button vrcta__button--outline\" href=\"https:\/\/staging.vietnamdetox.com\/vi\/phuong-phap\/\">T\u00ecm hi\u1ec3u ph\u01b0\u01a1ng ph\u00e1p<\/a>\r\n  <\/div>\r\n\r\n  <p class=\"vrcta__description vrcta__closing\">\r\n C\u00f3 ng\u01b0\u1eddi b\u1eaft \u0111\u1ea7u b\u1eb1ng nh\u1eefng c\u00e2u h\u1ecfi. Ng\u01b0\u1eddi kh\u00e1c \u0111\u00e3 bi\u1ebft m\u00ecnh c\u1ea7n m\u1ed9t h\u00e0nh tr\u00ecnh t\u00e1i thi\u1ebft l\u1eadp. \r\n  <\/p>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\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>\u1ea8n h\u1ed9p \u00d7 Ph\u1ee5c h\u1ed3i tr\u01b0\u1edbc khi ki\u1ec7t s\u1ee9c tr\u1edf th\u00e0nh tr\u1ea1ng th\u00e1i quen thu\u1ed9c. Ph\u01b0\u01a1ng ph\u00e1p nh\u1ecbn \u0103n Buchinger c\u1ee7a \u0110\u1ee9c. Tinh hoa ch\u1eefa l\u00e0nh Vi\u1ec7t Nam. Tr\u00ecnh duy\u1ec7t c\u1ee7a b\u1ea1n kh\u00f4ng h\u1ed7 tr\u1ee3 video. Nh\u1eefng k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng nh\u1ecbn \u0103n t\u0129nh t\u1ea1i, c\u00f3 l\u1ed9 tr\u00ecnh, d\u00e0nh cho ng\u01b0\u1eddi \u0111ang qu\u00e1 t\u1ea3i tinh th\u1ea7n, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-20171","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Trang ch\u1ee7 - Staging Vietnamdetox<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/staging.vietnamdetox.com\/vi\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Trang ch\u1ee7 - Staging Vietnamdetox\" \/>\n<meta property=\"og:description\" content=\"\u1ea8n h\u1ed9p \u00d7 Ph\u1ee5c h\u1ed3i tr\u01b0\u1edbc khi ki\u1ec7t s\u1ee9c tr\u1edf th\u00e0nh tr\u1ea1ng th\u00e1i quen thu\u1ed9c. Ph\u01b0\u01a1ng ph\u00e1p nh\u1ecbn \u0103n Buchinger c\u1ee7a \u0110\u1ee9c. Tinh hoa ch\u1eefa l\u00e0nh Vi\u1ec7t Nam. Tr\u00ecnh duy\u1ec7t c\u1ee7a b\u1ea1n kh\u00f4ng h\u1ed7 tr\u1ee3 video. Nh\u1eefng k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng nh\u1ecbn \u0103n t\u0129nh t\u1ea1i, c\u00f3 l\u1ed9 tr\u00ecnh, d\u00e0nh cho ng\u01b0\u1eddi \u0111ang qu\u00e1 t\u1ea3i tinh th\u1ea7n, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/staging.vietnamdetox.com\/vi\/\" \/>\n<meta property=\"og:site_name\" content=\"Staging Vietnamdetox\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-04T03:44:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/gallery\/guest-sitting-on-mountain-vietnam-16-9.webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data1\" content=\"35 ph\u00fat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/\",\"url\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/\",\"name\":\"Trang ch\u1ee7 - Staging Vietnamdetox\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vietnamdetox.com\\\/staging\\\/redesign-clickdummy-2026\\\/assets\\\/gallery\\\/guest-sitting-on-mountain-vietnam-16-9.webp\",\"datePublished\":\"2026-05-16T03:32:58+00:00\",\"dateModified\":\"2026-09-04T03:44:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/#breadcrumb\"},\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vietnamdetox.com\\\/staging\\\/redesign-clickdummy-2026\\\/assets\\\/gallery\\\/guest-sitting-on-mountain-vietnam-16-9.webp\",\"contentUrl\":\"https:\\\/\\\/vietnamdetox.com\\\/staging\\\/redesign-clickdummy-2026\\\/assets\\\/gallery\\\/guest-sitting-on-mountain-vietnam-16-9.webp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/trang-chu-2\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Trang ch\u1ee7\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/#website\",\"url\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/\",\"name\":\"Staging Vietnamdetox\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"vi\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/#organization\",\"name\":\"Staging Vietnamdetox\",\"url\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/logo-icon-color_cutout.svg\",\"contentUrl\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/logo-icon-color_cutout.svg\",\"width\":314,\"height\":435,\"caption\":\"Staging Vietnamdetox\"},\"image\":{\"@id\":\"https:\\\/\\\/staging.vietnamdetox.com\\\/vi\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Trang ch\u1ee7 - Staging Vietnamdetox","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:\/\/staging.vietnamdetox.com\/vi\/","og_locale":"vi_VN","og_type":"article","og_title":"Trang ch\u1ee7 - Staging Vietnamdetox","og_description":"\u1ea8n h\u1ed9p \u00d7 Ph\u1ee5c h\u1ed3i tr\u01b0\u1edbc khi ki\u1ec7t s\u1ee9c tr\u1edf th\u00e0nh tr\u1ea1ng th\u00e1i quen thu\u1ed9c. Ph\u01b0\u01a1ng ph\u00e1p nh\u1ecbn \u0103n Buchinger c\u1ee7a \u0110\u1ee9c. Tinh hoa ch\u1eefa l\u00e0nh Vi\u1ec7t Nam. Tr\u00ecnh duy\u1ec7t c\u1ee7a b\u1ea1n kh\u00f4ng h\u1ed7 tr\u1ee3 video. Nh\u1eefng k\u1ef3 ngh\u1ec9 d\u01b0\u1ee1ng nh\u1ecbn \u0103n t\u0129nh t\u1ea1i, c\u00f3 l\u1ed9 tr\u00ecnh, d\u00e0nh cho ng\u01b0\u1eddi \u0111ang qu\u00e1 t\u1ea3i tinh th\u1ea7n, [&hellip;]","og_url":"https:\/\/staging.vietnamdetox.com\/vi\/","og_site_name":"Staging Vietnamdetox","article_modified_time":"2026-09-04T03:44:24+00:00","og_image":[{"url":"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/gallery\/guest-sitting-on-mountain-vietnam-16-9.webp","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"35 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/staging.vietnamdetox.com\/vi\/","url":"https:\/\/staging.vietnamdetox.com\/vi\/","name":"Trang ch\u1ee7 - Staging Vietnamdetox","isPartOf":{"@id":"https:\/\/staging.vietnamdetox.com\/vi\/#website"},"primaryImageOfPage":{"@id":"https:\/\/staging.vietnamdetox.com\/vi\/#primaryimage"},"image":{"@id":"https:\/\/staging.vietnamdetox.com\/vi\/#primaryimage"},"thumbnailUrl":"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/gallery\/guest-sitting-on-mountain-vietnam-16-9.webp","datePublished":"2026-05-16T03:32:58+00:00","dateModified":"2026-09-04T03:44:24+00:00","breadcrumb":{"@id":"https:\/\/staging.vietnamdetox.com\/vi\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/staging.vietnamdetox.com\/vi\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/staging.vietnamdetox.com\/vi\/#primaryimage","url":"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/gallery\/guest-sitting-on-mountain-vietnam-16-9.webp","contentUrl":"https:\/\/vietnamdetox.com\/staging\/redesign-clickdummy-2026\/assets\/gallery\/guest-sitting-on-mountain-vietnam-16-9.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/staging.vietnamdetox.com\/vi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/staging.vietnamdetox.com\/vi\/trang-chu-2\/"},{"@type":"ListItem","position":2,"name":"Trang ch\u1ee7"}]},{"@type":"WebSite","@id":"https:\/\/staging.vietnamdetox.com\/vi\/#website","url":"https:\/\/staging.vietnamdetox.com\/vi\/","name":"Staging Vietnamdetox","description":"","publisher":{"@id":"https:\/\/staging.vietnamdetox.com\/vi\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/staging.vietnamdetox.com\/vi\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/staging.vietnamdetox.com\/vi\/#organization","name":"Staging Vietnamdetox","url":"https:\/\/staging.vietnamdetox.com\/vi\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/staging.vietnamdetox.com\/vi\/#\/schema\/logo\/image\/","url":"https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/logo-icon-color_cutout.svg","contentUrl":"https:\/\/staging.vietnamdetox.com\/wp-content\/uploads\/2026\/05\/logo-icon-color_cutout.svg","width":314,"height":435,"caption":"Staging Vietnamdetox"},"image":{"@id":"https:\/\/staging.vietnamdetox.com\/vi\/#\/schema\/logo\/image\/"}}]}},"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/staging.vietnamdetox.com\/vi\/wp-json\/wp\/v2\/pages\/20171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staging.vietnamdetox.com\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/staging.vietnamdetox.com\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/staging.vietnamdetox.com\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/staging.vietnamdetox.com\/vi\/wp-json\/wp\/v2\/comments?post=20171"}],"version-history":[{"count":10,"href":"https:\/\/staging.vietnamdetox.com\/vi\/wp-json\/wp\/v2\/pages\/20171\/revisions"}],"predecessor-version":[{"id":20677,"href":"https:\/\/staging.vietnamdetox.com\/vi\/wp-json\/wp\/v2\/pages\/20171\/revisions\/20677"}],"wp:attachment":[{"href":"https:\/\/staging.vietnamdetox.com\/vi\/wp-json\/wp\/v2\/media?parent=20171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}