{"id":188134,"date":"2026-07-28T13:23:54","date_gmt":"2026-07-28T05:23:54","guid":{"rendered":"https:\/\/www.grab.com\/vn\/?p=188134"},"modified":"2026-07-28T14:13:07","modified_gmt":"2026-07-28T06:13:07","slug":"188134-2","status":"publish","type":"page","link":"https:\/\/www.grab.com\/vn\/188134-2\/","title":{"rendered":"Elementor #188134"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"188134\" class=\"elementor elementor-188134\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-100eb4e4 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"100eb4e4\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-692e704c\" data-id=\"692e704c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-71d2b326 elementor-widget elementor-widget-text-editor\" data-id=\"71d2b326\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<style>\n  \/* --- PH\u1ea6N GIAO DI\u1ec6N (CSS) --- *\/<br \/>  .grab-mosaic-wrapper {<br \/>    position: relative;<br \/>    max-width: 100%; \/* Gi\u1edbi h\u1ea1n chi\u1ec1u r\u1ed9ng \u0111\u1ec3 th\u00e2n thi\u1ec7n v\u1edbi mobile *\/<br \/>    margin: 0 auto 30px auto;<br \/>    overflow: hidden;<br \/>    border-radius: 8px;<br \/>    box-shadow: 0 4px 12px rgba(0,0,0,0.1);<br \/>    background-color: #f7f7f7;<br \/>  }<\/p>\n<p>  \/* \u1ea2nh n\u1ec1n t\u1ed5ng h\u1ee3p chung *\/<br \/>  .grab-mosaic-bg {<br \/>    width: 100%;<br \/>    display: block;<br \/>    pointer-events: none; \/* Kh\u00f4ng c\u1ea3n tr\u1edf c\u00e1c s\u1ef1 ki\u1ec7n chu\u1ed9t c\u1ee7a l\u01b0\u1edbi *\/<br \/>  }<\/p>\n<p>  \/* L\u01b0\u1edbi v\u00f4 h\u00ecnh \u0111\u1ec3 b\u1eaft s\u1ef1 ki\u1ec7n lia chu\u1ed9t *\/<br \/>  .grab-mosaic-grid {<br \/>    position: absolute;<br \/>    top: 0;<br \/>    left: 0;<br \/>    width: 100%;<br \/>    height: 100%;<br \/>    display: grid;<br \/>    \/* B\u1ea1n c\u00f3 th\u1ec3 t\u0103ng gi\u1ea3m s\u1ed1 l\u01b0\u1ee3ng c\u1ed9t\/h\u00e0ng t\u00f9y theo s\u1ed1 l\u01b0\u1ee3ng feedback b\u1ea1n c\u00f3 *\/<br \/>    \/* V\u00ed d\u1ee5: 10 c\u1ed9t, 8 h\u00e0ng (ch\u1ee9a \u0111\u01b0\u1ee3c t\u1ed1i \u0111a 80 feedback) *\/<br \/>    grid-template-columns: repeat(10, 1fr);<br \/>    grid-template-rows: repeat(8, 1fr);<br \/>  }<\/p>\n<p>  \/* T\u1eebng \u00f4 nh\u1ecf (t\u01b0\u1ee3ng tr\u01b0ng cho 1 ng\u01b0\u1eddi\/1 feedback) *\/<br \/>  .grab-mosaic-cell {<br \/>    cursor: pointer;<br \/>    box-sizing: border-box;<br \/>    transition: background-color 0.2s ease, border 0.2s ease;<br \/>  }<\/p>\n<p>  \/* Hi\u1ec7u \u1ee9ng m\u1edd \u0111\u1ee5c ho\u1eb7c khung tr\u1eafng khi lia chu\u1ed9t v\u00e0o 1 \u00f4 *\/<br \/>  .grab-mosaic-cell:hover {<br \/>    background: rgba(255, 255, 255, 0.25);<br \/>    border: 2px solid #fff;<br \/>    box-shadow: inset 0 0 10px rgba(0, 177, 79, 0.5); \/* S\u1eafc xanh \u0111\u1eb7c tr\u01b0ng c\u1ee7a Grab *\/<br \/>  }<\/p>\n<p>  \/* H\u1ed9p tho\u1ea1i Pop-up hi\u1ec7n \u1ea3nh Feedback *\/<br \/>  .grab-mosaic-popup {<br \/>    position: absolute;<br \/>    background: #fff;<br \/>    padding: 8px;<br \/>    border: 1px solid #e0e0e0;<br \/>    border-radius: 8px;<br \/>    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.3);<br \/>    pointer-events: none; \/* Tr\u00e1nh c\u1ea3n chu\u1ed9t *\/<br \/>    opacity: 0;<br \/>    transform: scale(0.9);<br \/>    transition: opacity 0.2s ease, transform 0.2s ease;<br \/>    z-index: 99;<br \/>    max-width: 320px; \/* \u0110\u1ed9 r\u1ed9ng c\u1ee7a \u1ea3nh popup *\/<br \/>  }<\/p>\n<p>  .grab-mosaic-popup.active {<br \/>    opacity: 1;<br \/>    transform: scale(1);<br \/>  }<\/p>\n<p>  .grab-mosaic-popup img {<br \/>    width: 100%;<br \/>    height: auto;<br \/>    display: block;<br \/>    border-radius: 4px;<br \/>  }<\/p>\n<p>  @media (max-width: 768px) {<br \/>    \/* Tr\u00ean mobile, c\u00f3 th\u1ec3 gi\u1ea3m s\u1ed1 l\u01b0\u1edbi ho\u1eb7c hi\u1ec3n th\u1ecb popup \u1edf v\u1ecb tr\u00ed c\u1ed1 \u0111\u1ecbnh gi\u1eefa m\u00e0n h\u00ecnh *\/<br \/>    .grab-mosaic-grid {<br \/>      grid-template-columns: repeat(5, 1fr);<br \/>      grid-template-rows: repeat(16, 1fr);<br \/>    }<br \/>  }<br \/><\/style>\n<div class=\"grab-mosaic-wrapper\">\n\n<!-- H\u00ecnh n\u1ec1n chung c\u1ee7a c\u00f4ng ty\/chi\u1ebfn d\u1ecbch -->\n<img decoding=\"async\" class=\"grab-mosaic-bg\" src=\"https:\/\/assets.grab.com\/wp-content\/uploads\/sites\/11\/2026\/07\/22173014\/Doi-tac-co-hd-dep.png\" alt=\"Gia \u0110\u00ecnh Grab 2026\" \/>\n\n<!-- L\u01af\u1edaI \u1ea2NH FEEDBACK -->\n<!-- Copy paste c\u1ed9t \"group_feedbacks\" v\u00e0o data-image=\"\" c\u1ee7a m\u1ed7i d\u00f2ng div b\u00ean d\u01b0\u1edbi -->\n<div class=\"grab-mosaic-grid\">\n\n<!-- M\u1eaaU B\u1eaeT \u0110\u1ea6U: Copy d\u00f2ng n\u00e0y cho t\u1eebng link \u1ea3nh trong file Excel c\u1ee7a b\u1ea1n -->\n<div class=\"grab-mosaic-cell\" data-image=\"LINK_HINH_FEEDBACK_1\"><\/div>\n<div class=\"grab-mosaic-cell\" data-image=\"LINK_HINH_FEEDBACK_2\"><\/div>\n<div class=\"grab-mosaic-cell\" data-image=\"LINK_HINH_FEEDBACK_3\"><\/div>\n<div class=\"grab-mosaic-cell\" data-image=\"LINK_HINH_FEEDBACK_4\"><\/div>\n<!-- ... -->\n<!-- H\u00e3y d\u00e1n c\u00e1c feedback c\u1ee7a b\u1ea1n l\u1ea5p \u0111\u1ea7y c\u00e1c \u00f4 tr\u1ed1ng -->\n<!-- N\u1ebfu b\u1ea1n \u0111\u1ec3 tr\u1ed1ng data-image=\"\", \u00f4 \u0111\u00f3 khi lia chu\u1ed9t s\u1ebd kh\u00f4ng n\u1ed5i popup (d\u00f9ng \u0111\u1ec3 l\u00e0m kho\u1ea3ng \u0111\u1ec7m) -->\n<div class=\"grab-mosaic-cell\" data-image=\"\"><\/div>\n<\/div>\n<!-- V\u00f9ng ch\u1ee9a \u1ea3nh Pop-up -->\n<div id=\"grabMosaicPopup\" class=\"grab-mosaic-popup\"><img id=\"grabMosaicPopupImg\" alt=\"Feedback\" \/><\/div>\n<\/div>\n<script>\n  \/* --- PH\u1ea6N X\u1eec L\u00dd S\u1ef0 KI\u1ec6N (JAVASCRIPT) --- *\/\n  document.addEventListener(\"DOMContentLoaded\", function() {\n      const cells = document.querySelectorAll(\".grab-mosaic-cell\");\n      const popup = document.getElementById(\"grabMosaicPopup\");\n      const popupImg = document.getElementById(\"grabMosaicPopupImg\");\n      const wrapper = document.querySelector(\".grab-mosaic-wrapper\");\n\n      cells.forEach(cell => {\n          \/\/ Khi chu\u1ed9t di chuy\u1ec3n v\u00e0o 1 \u00f4 (cell)\n          cell.addEventListener(\"mouseenter\", function() {\n              const imgSrc = this.getAttribute(\"data-image\");\n              \/\/ N\u1ebfu \u00f4 \u0111\u00f3 c\u00f3 link \u1ea3nh feedback\n              if (imgSrc && imgSrc.trim() !== \"\") {\n                  popupImg.src = imgSrc;\n                  popup.classList.add(\"active\");\n              }\n          });\n          \n          \/\/ Khi chu\u1ed9t r\u1eddi kh\u1ecfi \u00f4\n          cell.addEventListener(\"mouseleave\", function() {\n              popup.classList.remove(\"active\");\n              \/\/ Clear source \u0111\u1ec3 tr\u00e1nh nh\u00e1y \u1ea3nh c\u0169 khi chuy\u1ec3n sang \u1ea3nh m\u1edbi\n              setTimeout(() => { if (!popup.classList.contains(\"active\")) popupImg.src = \"\"; }, 200);\n          });\n          \n          \/\/ L\u00e0m cho Pop-up \u0111i theo con tr\u1ecf chu\u1ed9t\n          cell.addEventListener(\"mousemove\", function(e) {\n              const wrapperRect = wrapper.getBoundingClientRect();\n              \n              \/\/ T\u1ecda \u0111\u1ed9 chu\u1ed9t t\u01b0\u01a1ng \u0111\u1ed1i so v\u1edbi container\n              let x = e.clientX - wrapperRect.left;\n              let y = e.clientY - wrapperRect.top;\n              \n              const popupWidth = popup.offsetWidth;\n              const popupHeight = popup.offsetHeight;\n\n              \/\/ \u0110i\u1ec1u ch\u1ec9nh v\u1ecb tr\u00ed \u0111\u1ec3 popup kh\u00f4ng b\u1ecb tr\u00e0n ra ngo\u00e0i vi\u1ec1n c\u1ee7a \u1ea3nh n\u1ec1n\n              let posX = x + 15; \/\/ L\u1ec7ch sang ph\u1ea3i 15px so v\u1edbi chu\u1ed9t\n              let posY = y + 15; \/\/ L\u1ec7ch xu\u1ed1ng d\u01b0\u1edbi 15px\n              \n              \/\/ N\u1ebfu popup tr\u00e0n l\u1ec1 ph\u1ea3i\n              if (posX + popupWidth > wrapperRect.width) {\n                  posX = x - popupWidth - 15;\n              }\n              \/\/ N\u1ebfu popup tr\u00e0n l\u1ec1 d\u01b0\u1edbi\n              if (posY + popupHeight > wrapperRect.height) {\n                  posY = y - popupHeight - 15;\n              }\n              \n              popup.style.left = posX + 'px';\n              popup.style.top = posY + 'px';\n          });\n      });\n  });\n<\/script>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5bd8f0d elementor-widget elementor-widget-text-editor\" data-id=\"5bd8f0d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<style>\n  \/* --- GRAB MOSAIC STYLES --- *\/<br \/>\n  .grab-mosaic-wrapper {<br \/>\n    position: relative;<br \/>\n    max-width: 1140px;<br \/>\n    margin: 0 auto 30px auto;<br \/>\n    overflow: hidden;<br \/>\n    border-radius: 12px;<br \/>\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);<br \/>\n    background-color: #f7f7f7;<br \/>\n    font-family: 'Inter', sans-serif;<br \/>\n  }<\/p>\n<p>  \/* Main background image *\/<br \/>\n  .grab-mosaic-bg {<br \/>\n    width: 100%;<br \/>\n    display: block;<br \/>\n    pointer-events: none;<br \/>\n    user-select: none;<br \/>\n  }<\/p>\n<p>  \/* Invisible grid to catch mouse events *\/<br \/>\n  .grab-mosaic-grid {<br \/>\n    position: absolute;<br \/>\n    top: 0;<br \/>\n    left: 0;<br \/>\n    width: 100%;<br \/>\n    height: 100%;<br \/>\n    display: grid;<br \/>\n    \/* 15 columns x 10 rows grid *\/<br \/>\n    grid-template-columns: repeat(15, 1fr);<br \/>\n    grid-template-rows: repeat(10, 1fr);<br \/>\n  }<\/p>\n<p>  \/* Individual grid cell *\/<br \/>\n  .grab-mosaic-cell {<br \/>\n    cursor: pointer;<br \/>\n    box-sizing: border-box;<br \/>\n    transition: background-color 0.2s ease, border 0.2s ease;<br \/>\n  }<\/p>\n<p>  .grab-mosaic-cell:hover {<br \/>\n    background: rgba(255, 255, 255, 0.15);<br \/>\n    border: 2px solid #fff;<br \/>\n    box-shadow: inset 0 0 15px rgba(0, 177, 79, 0.6);<br \/>\n  }<\/p>\n<p>  \/* Feedback Pop-up Card *\/<br \/>\n  .grab-mosaic-popup {<br \/>\n    position: absolute;<br \/>\n    background: #fff;<br \/>\n    padding: 16px;<br \/>\n    border-radius: 12px;<br \/>\n    box-shadow: 0 16px 40px rgba(0, 83, 57, 0.2);<br \/>\n    pointer-events: none;<br \/>\n    opacity: 0;<br \/>\n    transform: scale(0.95);<br \/>\n    transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);<br \/>\n    z-index: 999;<br \/>\n    max-width: 280px;<br \/>\n    width: max-content;<br \/>\n    border-top: 4px solid #00b14f;<br \/>\n  }<\/p>\n<p>  .grab-mosaic-popup.active {<br \/>\n    opacity: 1;<br \/>\n    transform: scale(1);<br \/>\n  }<\/p>\n<p>  .grab-popup-icon {<br \/>\n      font-size: 24px;<br \/>\n      margin-bottom: 8px;<br \/>\n      display: block;<br \/>\n  }<\/p>\n<p>  .grab-popup-text {<br \/>\n    font-size: 14px;<br \/>\n    line-height: 1.6;<br \/>\n    color: #333;<br \/>\n    margin: 0;<br \/>\n    font-weight: 500;<br \/>\n  }<\/p>\n<p>  .grab-popup-author {<br \/>\n      font-size: 12px;<br \/>\n      color: #777;<br \/>\n      margin-top: 10px;<br \/>\n      font-style: italic;<br \/>\n  }<\/p>\n<p>  @media (max-width: 768px) {<br \/>\n    .grab-mosaic-grid {<br \/>\n      grid-template-columns: repeat(8, 1fr);<br \/>\n      grid-template-rows: repeat(12, 1fr);<br \/>\n    }<br \/>\n    .grab-mosaic-popup {<br \/>\n        max-width: 220px;<br \/>\n    }<br \/>\n  }<br \/>\n<\/style>\n<div class=\"grab-mosaic-wrapper\" id=\"grabMosaicWrapper\">\n  <!-- The main company image --><br>\n  <img decoding=\"async\" src=\"https:\/\/assets.grab.com\/wp-content\/uploads\/sites\/11\/2026\/07\/22173014\/Doi-tac-co-hd-dep.png\" class=\"grab-mosaic-bg\" alt=\"Gia \u0110\u00ecnh Grab 2026\">\n<\/div>\n<p><script>\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n    const feedbacks = [\n        \"Ch\u00fa th\u00e2n thi\u1ec7n, ki\u00ean nh\u1eabn v\u1edbi KH. Ch\u00fa c\u00f3 chia s\u1ebb nguy\u00ean ng\u00e0y m\u1edbi nh\u1eadn \u0111c \u00edt \u0111\u01a1n th\u00f4i, n\u00ean con ch\u00fac ch\u00fa lu\u00f4n \u0111\u1ea7y \u0111\u1ee7 s\u1ee9c kh\u1ecfe, vui t\u01b0\u01a1i, v\u00e0 lu\u00f4n nhi\u1ec1u \u0111\u01a1n \u1ea1!\",\n        \"Ch\u00fa r\u1ea5t d\u1ec5 th\u01b0\u01a1ng v\u00e0 giao h\u00e0ng nhanh\",\n        \"Ch\u00fa d\u1ec5 th\u01b0\u01a1ng , \u0111th m\u00ecnh t\u1eaft ngu\u1ed3n ko nghe m\u00e1y k\u1ecbp ch\u00fa ch\u1edd 10p v\u1eabn ko c\u1ecdc\",\n        \"Ch\u00fa qu\u00e1 l\u00e0 d\u1ec5 th\u01b0\u01a1ng lu\u00f4n\",\n        \"ch\u00fa d\u1ec5 th\u01b0\u01a1ng, ch\u00fac kh\u00e1ch r\u1ea5t chu \u0111\u00e1o\",\n        \"Ch\u00fa r\u1ea5t d\u1ec5 th\u01b0\u01a1ng l\u1ea7n \u0111\u1ea7u ch\u00fa giao h\u00e0ng c\u00f2n ch\u00fac kh\u00e1ch c\u00f3 1 ng\u00e0y vui v\u1ebb\",\n        \"Con g\u1eedi th\u00eam cho ch\u00fa Ho\u00e0ng nha. Ch\u00fac ch\u00fa ship \u0111\u01b0\u1ee3c nhi\u1ec1u \u0111\u01a1n. V\u1ea1n d\u1eb7m b\u00ecnh an ch\u00fa nha.\",\n        \"Ch\u00fa d\u1ec5 th\u01b0\u01a1ng l\u1eafmmm, giao nhanh nhi\u1ec7t t\u00ecnh i love ch\u00fa. Ch\u00fa makes my day\",\n        \"T\u00e0i x\u1ebf r\u1ea5t nhi\u1ec7t t\u00ecnh th\u00e2n thi\u1ec7n\ud83d\ude0d\ud83d\ude0d\ud83d\ude0d\ud83d\ude0d\",\n        \"ch\u00fa giao h\u00e0ng d\u1ec5 th\u01b0\u01a1ng, vui v\u1ebb, nhi\u1ec7t t\u00ecnh. C\u00e1m \u01a1n ch\u00fa nhi\u1ec1u nhi\u1ec1u\ud83d\ude0d\ud83d\ude0d\ud83d\ude0d\",\n        \"ch\u00fa siu d\u1ec5 th\u01b0\u01a1ng lu\u00f4n ch\u1ea1y an to\u00e0n \u1ea1, mn book tr\u00fang ch\u00fa th\u00ec \u1ee7n h\u1ed9 cho ch\u00fa nhennn\",\n        \"Ch\u00fa t\u00e0i x\u1ebf th\u00e2n thi\u1ec7n, ch\u00fac kh\u00e1ch ngon mi\u1ec7ng, giao h\u00e0ng c\u1ea9n th\u1eadn\",\n        \"B\u00e1c Tx r\u1ea5t r\u1ea5t l\u1ecbch s\u1ef1, t\u1eb7ng b\u00e1c 5 sao\",\n        \"C\u00f4 ship 10000000 \u0111i\u1ec3m si\u00eau cute\",\n        \"ch\u1ecb vui v\u1ebb r\u1ea5t nhi\u1ec7t t\u00ecnh 20 sao lu\u00f4n nha\",\n        \"Ch\u1ecb shipper th\u00e2n thi\u1ec7n d\u1ec5 th\u01b0n l\u1eafm lunnn\ud83d\ude3b\ud83d\ude3b\ud83d\ude3b\",\n        \"T\u00e0i x\u1ebf tuy\u1ec7t v\u1eddi, tinh t\u1ebf, nh\u1eb9 nh\u00e0ng, chuy\u00ean nghi\u1ec7p. Ch\u00fac anh v\u1ea1n s\u1ef1 b\u00ecnh an tr\u00ean m\u1ecdi con \u0111\u01b0\u1eddng.\",\n        \"t\u00e0i x\u1ebf nhi\u1ec7t t\u00ecnh, tr\u00f2 chuy\u1ec7n vui v\u1ebb, \u0111i an to\u00e0n\",\n        \"r\u1ea5t t\u1ed1t, t\u00f4i \u0111\u1eb7t nhi\u1ec1u chuy\u1ebfn grab now v\u00e0 anh \u1ea5y s\u1eb5n s\u00e0ng ch\u1edd t\u00f4i\",\n        \"t\u00e0i x\u1ebf th\u00e2n thi\u1ec7n, nhi\u1ec7t t\u00ecnh, ch\u1ea1y xe an to\u00e0n\",\n        \"Th\u00e1i \u0111\u1ed9 t\u1ed1t, giao h\u00e0ng nhanh, n\u00ean t\u0103ng l\u01b0\u01a1ng cho shipper. 10\u0111\",\n        \"mik l\u1ee1 \u0111\u1eb7t sai \u0111\u1ecba ch\u1ec9 m\u00e0 \u1ea3nh v\u1eabn giao cho mik vui t\u00ednh th\u00e2n thi\u1ec7n l\u1eafm. 10\u0111 ko c\u00f3 nh\u01b0ng nho\",\n        \"This is my first time in Vietnam, and today is my family's last day before flying back. Thank you so much!\",\n        \"Tuy\u1ec7t v\u1eddi. t\u00e0i x\u1ebf ch\u1ea1y xe c\u1ea9n th\u1eadn an to\u00e0n nhi\u1ec7t t\u00ecnh yhaan thi\u1ec7t. 5* ch\u00e2n tiinhf\",\n        \"Anh si\u00eau vui t\u00ednh \u1ea1 \ud83d\ude06, nhi\u1ec7t t\u00ecnh h\u01b0\u1edbng d\u1eabn n\u1eefa\",\n        \"c\u1ea3m \u01a1n anh, m\u1ea5y l\u00e2u nay em ch\u1ec9 l\u00e0 c\u00e1i b\u00ecnh d\u1ed3n n\u00e9n c\u1ea3m x\u00fac... M\u1ed9t l\u1ea7n n\u1eefa, em c\u1ea3m \u01a1n anh v\u00ec anh \u0111\u00e3 c\u00f3 th\u1ec3 l\u00e0m cho em kh\u00f3c \u0111\u01b0\u1ee3c tr\u1edf l\u1ea1i. Ch\u00fac anh ng\u1ee7 ngon.\",\n        \"10\u20ab kh\u00f4ng c\u00f3 nh\u01b0ng. Anh ch\u1ea1y r\u1ea5t m\u01b0\u1ee3t kh\u00f4ng nhanh qu\u00e1, an to\u00e0n tuy\u1ec7t \u0111\u1ed1i l\u1ea1i c\u00f2n \u0111\u01b0\u1ee3c cho k\u1eb9o n\u1eefa.\ud83d\ude0b\ud83d\ude0b\ud83d\ude0b\",\n        \"Banh canh \u0111\u00e3 ngon r\u1ed3i m\u00e0 ch\u00fa grap r\u1ea5t r\u1ea5t l\u00e0 nhi\u1ec7t tinh v\u00e0 chuy\u00ean nghi\u1ec7p \u2764\ufe0f\",\n        \"Ch\u00fa giao \u0111\u1ed3 \u0103n d\u1ec5 th\u01b0\u01a1ng l\u1eafm \u1ea1, th\u00e2n thi\u1ec7n c\u1ef1c k\u1ef3 , ch\u00fa r\u1ea5t h\u00e0i h\u01b0\u1edbc nh\u00e9\ud83d\ude06 mong \u0111\u01b0\u1ee3c g\u1eb7p l\u1ea1i ch\u00fa n\u1eefa \u1ea1\ud83d\udc97\ud83d\ude06\",\n        \"B\u00e1c t\u00e0i si\u00eau l\u1ecbch s\u1ef1 v\u00e0 si\u00eau si\u00eau d\u1ec5 th\u01b0\u01a1ng. S\u00e1ng m\u00e0 g\u1eb7p b\u00e1c l\u00e0 y\u00eau \u0111\u1eddi c\u1ea3 ng\u00e0y.\",\n        \"Shipper nhi\u1ec7t t\u00ecnh, \u0111\u00e1ng y\u00eau l\u1eafm n\u00e8. 10 \u0111i\u1ec3m cho ch\u00fa\",\n        \"T\u00e0i x\u1ebf th\u00e2n thi\u1ec7n, vui t\u00ednh .r\u1ea5t c\u00f3 t\u00e2m v\u1edbi ngh\u1ec1\",\n        \"H\u00f4m nay l\u00e0 Ng\u00e0y Gia \u0110\u00ecnh Vi\u1ec7t Nam, h\u00e3y t\u00ecm c\u01a1 h\u1ed9i chung vui ho\u1eb7c nh\u1eafn g\u1eedi y\u00eau th\u01b0\u01a1ng \u0111\u1ebfn gia \u0111\u00ecnh m\u00ecnh \u0110\u1ed1i t\u00e1c nh\u00e9!\ud83d\udc9a\"\n    ];\n\n    const grid = document.getElementById(\"grabMosaicGrid\");\n    const popup = document.getElementById(\"grabMosaicPopup\");\n    const popupText = document.getElementById(\"grabMosaicPopupText\");\n    const wrapper = document.getElementById(\"grabMosaicWrapper\");\n    \n    \/\/ Create grid cells\n    const totalCells = 150; \/\/ 15 columns * 10 rows\n    for (let i = 0; i < totalCells; i++) { const cell = document.createElement(\"div\"); cell.className = \"grab-mosaic-cell\"; \/\/ Randomly assign a feedback to some cells if (Math.random() > 0.4) {\n            const randomFeedback = feedbacks[Math.floor(Math.random() * feedbacks.length)];\n            cell.setAttribute(\"data-feedback\", randomFeedback);\n        }\n        \n        grid.appendChild(cell);\n    }\n\n    const cells = document.querySelectorAll(\".grab-mosaic-cell\");\n\n    cells.forEach(cell => {\n        cell.addEventListener(\"mouseenter\", function() {\n            const feedback = this.getAttribute(\"data-feedback\");\n            if (feedback && feedback.trim() !== \"\") {\n                popupText.innerText = feedback;\n                popup.classList.add(\"active\");\n            }\n        });\n        \n        cell.addEventListener(\"mouseleave\", function() {\n            popup.classList.remove(\"active\");\n        });\n        \n        cell.addEventListener(\"mousemove\", function(e) {\n            const wrapperRect = wrapper.getBoundingClientRect();\n            let x = e.clientX - wrapperRect.left;\n            let y = e.clientY - wrapperRect.top;\n            \n            const popupWidth = popup.offsetWidth;\n            const popupHeight = popup.offsetHeight;\n\n            let posX = x + 15;\n            let posY = y + 15;\n            \n            \/\/ Adjust if popup goes out of wrapper bounds\n            if (posX + popupWidth > wrapperRect.width) {\n                posX = x - popupWidth - 15;\n            }\n            if (posY + popupHeight > wrapperRect.height) {\n                posY = y - popupHeight - 15;\n            }\n            \n            popup.style.left = posX + 'px';\n            popup.style.top = posY + 'px';\n        });\n    });\n});\n<\/script><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bf7035e elementor-widget elementor-widget-html\" data-id=\"bf7035e\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\r\n  \/* --- GRAB MOSAIC STYLES --- *\/\r\n  .grab-mosaic-wrapper {\r\n    position: relative;\r\n    max-width: 1140px;\r\n    margin: 0 auto 30px auto;\r\n    overflow: hidden;\r\n    border-radius: 12px;\r\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);\r\n    background-color: #f7f7f7;\r\n    font-family: 'Inter', sans-serif;\r\n  }\r\n\r\n  \/* Main background image *\/\r\n  .grab-mosaic-bg {\r\n    width: 100%;\r\n    display: block;\r\n    pointer-events: none;\r\n    user-select: none;\r\n  }\r\n\r\n  \/* Invisible grid to catch mouse events *\/\r\n  .grab-mosaic-grid {\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 100%;\r\n    display: grid;\r\n    \/* 15 columns x 10 rows grid *\/\r\n    grid-template-columns: repeat(15, 1fr);\r\n    grid-template-rows: repeat(10, 1fr);\r\n  }\r\n\r\n  \/* Individual grid cell *\/\r\n  .grab-mosaic-cell {\r\n    cursor: pointer;\r\n    box-sizing: border-box;\r\n    transition: background-color 0.2s ease, border 0.2s ease;\r\n  }\r\n\r\n  .grab-mosaic-cell:hover {\r\n    background: rgba(255, 255, 255, 0.15);\r\n    border: 2px solid #fff;\r\n    box-shadow: inset 0 0 15px rgba(0, 177, 79, 0.6);\r\n  }\r\n\r\n  \/* Feedback Pop-up Card *\/\r\n  .grab-mosaic-popup {\r\n    position: absolute;\r\n    background: #fff;\r\n    padding: 16px;\r\n    border-radius: 12px;\r\n    box-shadow: 0 16px 40px rgba(0, 83, 57, 0.2);\r\n    pointer-events: none;\r\n    opacity: 0;\r\n    transform: scale(0.95);\r\n    transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);\r\n    z-index: 999;\r\n    max-width: 280px;\r\n    width: max-content;\r\n    border-top: 4px solid #00b14f;\r\n  }\r\n\r\n  .grab-mosaic-popup.active {\r\n    opacity: 1;\r\n    transform: scale(1);\r\n  }\r\n  \r\n  .grab-popup-icon {\r\n      font-size: 24px;\r\n      margin-bottom: 8px;\r\n      display: block;\r\n  }\r\n\r\n  .grab-popup-text {\r\n    font-size: 14px;\r\n    line-height: 1.6;\r\n    color: #333;\r\n    margin: 0;\r\n    font-weight: 500;\r\n  }\r\n  \r\n  .grab-popup-author {\r\n      font-size: 12px;\r\n      color: #777;\r\n      margin-top: 10px;\r\n      font-style: italic;\r\n  }\r\n\r\n  @media (max-width: 768px) {\r\n    .grab-mosaic-grid {\r\n      grid-template-columns: repeat(8, 1fr);\r\n      grid-template-rows: repeat(12, 1fr);\r\n    }\r\n    .grab-mosaic-popup {\r\n        max-width: 220px;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<div class=\"grab-mosaic-wrapper\" id=\"grabMosaicWrapper\">\r\n  <!-- The main company image -->\r\n  <img decoding=\"async\" src=\"https:\/\/assets.grab.com\/wp-content\/uploads\/sites\/11\/2026\/07\/22173014\/Doi-tac-co-hd-dep.png\" class=\"grab-mosaic-bg\" alt=\"Gia \u0110\u00ecnh Grab 2026\" \/>\r\n  \r\n  <div class=\"grab-mosaic-grid\" id=\"grabMosaicGrid\">\r\n    <!-- Grid cells will be injected here by JS -->\r\n  <\/div>\r\n\r\n  <!-- Popup container -->\r\n  <div class=\"grab-mosaic-popup\" id=\"grabMosaicPopup\">\r\n      <span class=\"grab-popup-icon\">\ud83d\udc9a<\/span>\r\n      <p class=\"grab-popup-text\" id=\"grabMosaicPopupText\"><\/p>\r\n      <div class=\"grab-popup-author\">T\u1eeb Kh\u00e1ch h\u00e0ng g\u1eedi \u0110\u1ed1i t\u00e1c Grab<\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n    const feedbacks = [\r\n        \"Ch\u00fa th\u00e2n thi\u1ec7n, ki\u00ean nh\u1eabn v\u1edbi KH. Ch\u00fa c\u00f3 chia s\u1ebb nguy\u00ean ng\u00e0y m\u1edbi nh\u1eadn \u0111c \u00edt \u0111\u01a1n th\u00f4i, n\u00ean con ch\u00fac ch\u00fa lu\u00f4n \u0111\u1ea7y \u0111\u1ee7 s\u1ee9c kh\u1ecfe, vui t\u01b0\u01a1i, v\u00e0 lu\u00f4n nhi\u1ec1u \u0111\u01a1n \u1ea1!\",\r\n        \"Ch\u00fa r\u1ea5t d\u1ec5 th\u01b0\u01a1ng v\u00e0 giao h\u00e0ng nhanh\",\r\n        \"Ch\u00fa d\u1ec5 th\u01b0\u01a1ng , \u0111th m\u00ecnh t\u1eaft ngu\u1ed3n ko nghe m\u00e1y k\u1ecbp ch\u00fa ch\u1edd 10p v\u1eabn ko c\u1ecdc\",\r\n        \"Ch\u00fa qu\u00e1 l\u00e0 d\u1ec5 th\u01b0\u01a1ng lu\u00f4n\",\r\n        \"ch\u00fa d\u1ec5 th\u01b0\u01a1ng, ch\u00fac kh\u00e1ch r\u1ea5t chu \u0111\u00e1o\",\r\n        \"Ch\u00fa r\u1ea5t d\u1ec5 th\u01b0\u01a1ng l\u1ea7n \u0111\u1ea7u ch\u00fa giao h\u00e0ng c\u00f2n ch\u00fac kh\u00e1ch c\u00f3 1 ng\u00e0y vui v\u1ebb\",\r\n        \"Con g\u1eedi th\u00eam cho ch\u00fa Ho\u00e0ng nha. Ch\u00fac ch\u00fa ship \u0111\u01b0\u1ee3c nhi\u1ec1u \u0111\u01a1n. V\u1ea1n d\u1eb7m b\u00ecnh an ch\u00fa nha.\",\r\n        \"Ch\u00fa d\u1ec5 th\u01b0\u01a1ng l\u1eafmmm, giao nhanh nhi\u1ec7t t\u00ecnh i love ch\u00fa. Ch\u00fa makes my day\",\r\n        \"T\u00e0i x\u1ebf r\u1ea5t nhi\u1ec7t t\u00ecnh th\u00e2n thi\u1ec7n\ud83d\ude0d\ud83d\ude0d\ud83d\ude0d\ud83d\ude0d\",\r\n        \"ch\u00fa giao h\u00e0ng d\u1ec5 th\u01b0\u01a1ng, vui v\u1ebb, nhi\u1ec7t t\u00ecnh. C\u00e1m \u01a1n ch\u00fa nhi\u1ec1u nhi\u1ec1u\ud83d\ude0d\ud83d\ude0d\ud83d\ude0d\",\r\n        \"ch\u00fa siu d\u1ec5 th\u01b0\u01a1ng lu\u00f4n ch\u1ea1y an to\u00e0n \u1ea1, mn book tr\u00fang ch\u00fa th\u00ec \u1ee7n h\u1ed9 cho ch\u00fa nhennn\",\r\n        \"Ch\u00fa t\u00e0i x\u1ebf th\u00e2n thi\u1ec7n, ch\u00fac kh\u00e1ch ngon mi\u1ec7ng, giao h\u00e0ng c\u1ea9n th\u1eadn\",\r\n        \"B\u00e1c Tx r\u1ea5t r\u1ea5t l\u1ecbch s\u1ef1, t\u1eb7ng b\u00e1c 5 sao\",\r\n        \"C\u00f4 ship 10000000 \u0111i\u1ec3m si\u00eau cute\",\r\n        \"ch\u1ecb vui v\u1ebb r\u1ea5t nhi\u1ec7t t\u00ecnh 20 sao lu\u00f4n nha\",\r\n        \"Ch\u1ecb shipper th\u00e2n thi\u1ec7n d\u1ec5 th\u01b0n l\u1eafm lunnn\ud83d\ude3b\ud83d\ude3b\ud83d\ude3b\",\r\n        \"T\u00e0i x\u1ebf tuy\u1ec7t v\u1eddi, tinh t\u1ebf, nh\u1eb9 nh\u00e0ng, chuy\u00ean nghi\u1ec7p. Ch\u00fac anh v\u1ea1n s\u1ef1 b\u00ecnh an tr\u00ean m\u1ecdi con \u0111\u01b0\u1eddng.\",\r\n        \"t\u00e0i x\u1ebf nhi\u1ec7t t\u00ecnh, tr\u00f2 chuy\u1ec7n vui v\u1ebb, \u0111i an to\u00e0n\",\r\n        \"r\u1ea5t t\u1ed1t, t\u00f4i \u0111\u1eb7t nhi\u1ec1u chuy\u1ebfn grab now v\u00e0 anh \u1ea5y s\u1eb5n s\u00e0ng ch\u1edd t\u00f4i\",\r\n        \"t\u00e0i x\u1ebf th\u00e2n thi\u1ec7n, nhi\u1ec7t t\u00ecnh, ch\u1ea1y xe an to\u00e0n\",\r\n        \"Th\u00e1i \u0111\u1ed9 t\u1ed1t, giao h\u00e0ng nhanh, n\u00ean t\u0103ng l\u01b0\u01a1ng cho shipper. 10\u0111\",\r\n        \"mik l\u1ee1 \u0111\u1eb7t sai \u0111\u1ecba ch\u1ec9 m\u00e0 \u1ea3nh v\u1eabn giao cho mik vui t\u00ednh th\u00e2n thi\u1ec7n l\u1eafm. 10\u0111 ko c\u00f3 nh\u01b0ng nho\",\r\n        \"This is my first time in Vietnam, and today is my family's last day before flying back. Thank you so much!\",\r\n        \"Tuy\u1ec7t v\u1eddi. t\u00e0i x\u1ebf ch\u1ea1y xe c\u1ea9n th\u1eadn an to\u00e0n nhi\u1ec7t t\u00ecnh yhaan thi\u1ec7t. 5* ch\u00e2n tiinhf\",\r\n        \"Anh si\u00eau vui t\u00ednh \u1ea1 \ud83d\ude06, nhi\u1ec7t t\u00ecnh h\u01b0\u1edbng d\u1eabn n\u1eefa\",\r\n        \"c\u1ea3m \u01a1n anh, m\u1ea5y l\u00e2u nay em ch\u1ec9 l\u00e0 c\u00e1i b\u00ecnh d\u1ed3n n\u00e9n c\u1ea3m x\u00fac... M\u1ed9t l\u1ea7n n\u1eefa, em c\u1ea3m \u01a1n anh v\u00ec anh \u0111\u00e3 c\u00f3 th\u1ec3 l\u00e0m cho em kh\u00f3c \u0111\u01b0\u1ee3c tr\u1edf l\u1ea1i. Ch\u00fac anh ng\u1ee7 ngon.\",\r\n        \"10\u20ab kh\u00f4ng c\u00f3 nh\u01b0ng. Anh ch\u1ea1y r\u1ea5t m\u01b0\u1ee3t kh\u00f4ng nhanh qu\u00e1, an to\u00e0n tuy\u1ec7t \u0111\u1ed1i l\u1ea1i c\u00f2n \u0111\u01b0\u1ee3c cho k\u1eb9o n\u1eefa.\ud83d\ude0b\ud83d\ude0b\ud83d\ude0b\",\r\n        \"Banh canh \u0111\u00e3 ngon r\u1ed3i m\u00e0 ch\u00fa grap r\u1ea5t r\u1ea5t l\u00e0 nhi\u1ec7t tinh v\u00e0 chuy\u00ean nghi\u1ec7p \u2764\ufe0f\",\r\n        \"Ch\u00fa giao \u0111\u1ed3 \u0103n d\u1ec5 th\u01b0\u01a1ng l\u1eafm \u1ea1, th\u00e2n thi\u1ec7n c\u1ef1c k\u1ef3 , ch\u00fa r\u1ea5t h\u00e0i h\u01b0\u1edbc nh\u00e9\ud83d\ude06 mong \u0111\u01b0\u1ee3c g\u1eb7p l\u1ea1i ch\u00fa n\u1eefa \u1ea1\ud83d\udc97\ud83d\ude06\",\r\n        \"B\u00e1c t\u00e0i si\u00eau l\u1ecbch s\u1ef1 v\u00e0 si\u00eau si\u00eau d\u1ec5 th\u01b0\u01a1ng. S\u00e1ng m\u00e0 g\u1eb7p b\u00e1c l\u00e0 y\u00eau \u0111\u1eddi c\u1ea3 ng\u00e0y.\",\r\n        \"Shipper nhi\u1ec7t t\u00ecnh, \u0111\u00e1ng y\u00eau l\u1eafm n\u00e8. 10 \u0111i\u1ec3m cho ch\u00fa\",\r\n        \"T\u00e0i x\u1ebf th\u00e2n thi\u1ec7n, vui t\u00ednh .r\u1ea5t c\u00f3 t\u00e2m v\u1edbi ngh\u1ec1\",\r\n        \"H\u00f4m nay l\u00e0 Ng\u00e0y Gia \u0110\u00ecnh Vi\u1ec7t Nam, h\u00e3y t\u00ecm c\u01a1 h\u1ed9i chung vui ho\u1eb7c nh\u1eafn g\u1eedi y\u00eau th\u01b0\u01a1ng \u0111\u1ebfn gia \u0111\u00ecnh m\u00ecnh \u0110\u1ed1i t\u00e1c nh\u00e9!\ud83d\udc9a\"\r\n    ];\r\n\r\n    const grid = document.getElementById(\"grabMosaicGrid\");\r\n    const popup = document.getElementById(\"grabMosaicPopup\");\r\n    const popupText = document.getElementById(\"grabMosaicPopupText\");\r\n    const wrapper = document.getElementById(\"grabMosaicWrapper\");\r\n    \r\n    \/\/ Create grid cells\r\n    const totalCells = 150; \/\/ 15 columns * 10 rows\r\n    for (let i = 0; i < totalCells; i++) {\r\n        const cell = document.createElement(\"div\");\r\n        cell.className = \"grab-mosaic-cell\";\r\n        \r\n        \/\/ Randomly assign a feedback to some cells\r\n        if (Math.random() > 0.4) {\r\n            const randomFeedback = feedbacks[Math.floor(Math.random() * feedbacks.length)];\r\n            cell.setAttribute(\"data-feedback\", randomFeedback);\r\n        }\r\n        \r\n        grid.appendChild(cell);\r\n    }\r\n\r\n    const cells = document.querySelectorAll(\".grab-mosaic-cell\");\r\n\r\n    cells.forEach(cell => {\r\n        cell.addEventListener(\"mouseenter\", function() {\r\n            const feedback = this.getAttribute(\"data-feedback\");\r\n            if (feedback && feedback.trim() !== \"\") {\r\n                popupText.innerText = feedback;\r\n                popup.classList.add(\"active\");\r\n            }\r\n        });\r\n        \r\n        cell.addEventListener(\"mouseleave\", function() {\r\n            popup.classList.remove(\"active\");\r\n        });\r\n        \r\n        cell.addEventListener(\"mousemove\", function(e) {\r\n            const wrapperRect = wrapper.getBoundingClientRect();\r\n            let x = e.clientX - wrapperRect.left;\r\n            let y = e.clientY - wrapperRect.top;\r\n            \r\n            const popupWidth = popup.offsetWidth;\r\n            const popupHeight = popup.offsetHeight;\r\n\r\n            let posX = x + 15;\r\n            let posY = y + 15;\r\n            \r\n            \/\/ Adjust if popup goes out of wrapper bounds\r\n            if (posX + popupWidth > wrapperRect.width) {\r\n                posX = x - popupWidth - 15;\r\n            }\r\n            if (posY + popupHeight > wrapperRect.height) {\r\n                posY = y - popupHeight - 15;\r\n            }\r\n            \r\n            popup.style.left = posX + 'px';\r\n            popup.style.top = posY + 'px';\r\n        });\r\n    });\r\n});\r\n<\/script>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8776529 elementor-widget elementor-widget-text-editor\" data-id=\"8776529\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<style>\n  \/* --- KHUNG CH\u1ee8A MOSAIC --- *\/<br \/>\n  .grab-photo-mosaic {<br \/>\n    position: relative;<br \/>\n    max-width: 1140px;<br \/>\n    margin: 0 auto 30px auto;<br \/>\n    \/* B\u1ecf overflow: hidden \u0111\u1ec3 \u1ea3nh pop-up kh\u00f4ng b\u1ecb c\u1eaft x\u00e9n khi ra s\u00e1t m\u00e9p *\/<br \/>\n    font-family: 'Inter', sans-serif;<br \/>\n  }<\/p>\n<p>  \/* \u1ea2nh n\u1ec1n t\u1ed5ng (H\u00ecnh b\u1ee9c t\u01b0\u1eddng Mosaic) *\/<br \/>\n  .grab-mosaic-bg {<br \/>\n    width: 100%;<br \/>\n    display: block;<br \/>\n    user-select: none;<br \/>\n    border-radius: 8px;<br \/>\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);<br \/>\n  }<\/p>\n<p>  \/* L\u01b0\u1edbi v\u00f4 h\u00ecnh \u0111\u00e8 l\u00ean \u1ea3nh n\u1ec1n *\/<br \/>\n  .grab-mosaic-grid {<br \/>\n    position: absolute;<br \/>\n    top: 0;<br \/>\n    left: 0;<br \/>\n    width: 100%;<br \/>\n    height: 100%;<br \/>\n    display: grid;<br \/>\n    \/* Chia l\u00e0m 20 c\u1ed9t v\u00e0 12 h\u00e0ng (t\u01b0\u01a1ng \u0111\u01b0\u01a1ng 240 \u00f4 nh\u1ecf) *\/<br \/>\n    grid-template-columns: repeat(20, 1fr);<br \/>\n    grid-template-rows: repeat(12, 1fr);<br \/>\n  }<\/p>\n<p>  \/* T\u1eebng \u00f4 l\u01b0\u1edbi nh\u1ecf *\/<br \/>\n  .grab-mosaic-cell {<br \/>\n    cursor: pointer;<br \/>\n    box-sizing: border-box;<br \/>\n    transition: background-color 0.2s, border 0.2s;<br \/>\n  }<\/p>\n<p>  \/* Hi\u1ec7u \u1ee9ng m\u1edd \u0111\u1ee5c khi lia chu\u1ed9t v\u00e0o 1 \u00f4 *\/<br \/>\n  .grab-mosaic-cell:hover {<br \/>\n    background: rgba(255, 255, 255, 0.2);<br \/>\n    border: 1px solid rgba(255, 255, 255, 0.8);<br \/>\n  }<\/p>\n<p>  \/* --- \u1ea2NH POP-UP --- *\/<br \/>\n  .grab-photo-popup {<br \/>\n    position: absolute;<br \/>\n    pointer-events: none; \/* Kh\u00f4ng c\u1ea3n tr\u1edf tr\u1ecf chu\u1ed9t *\/<br \/>\n    opacity: 0;<br \/>\n    transform: scale(0.85); \/* H\u01a1i thu nh\u1ecf khi \u0111ang \u1ea9n *\/<br \/>\n    transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);<br \/>\n    z-index: 1000;<\/p>\n<p>    \/* Trang tr\u00ed gi\u1ed1ng Schaeffler (Vi\u1ec1n tr\u1eafng, b\u00f3ng \u0111\u1ed5) *\/<br \/>\n    background: #fff;<br \/>\n    padding: 6px;<br \/>\n    border-radius: 4px;<br \/>\n    box-shadow: 0 15px 35px rgba(0,0,0,0.3);<\/p>\n<p>    \/* K\u00edch th\u01b0\u1edbc \u1ea3nh pop-up m\u1eb7c \u0111\u1ecbnh *\/<br \/>\n    width: 250px;<br \/>\n  }<\/p>\n<p>  .grab-photo-popup.active {<br \/>\n    opacity: 1;<br \/>\n    transform: scale(1);<br \/>\n  }<\/p>\n<p>  .grab-photo-popup img {<br \/>\n    width: 100%;<br \/>\n    height: auto;<br \/>\n    display: block;<br \/>\n    border-radius: 2px;<br \/>\n  }<\/p>\n<p>  \/* Responsive cho \u0111i\u1ec7n tho\u1ea1i *\/<br \/>\n  @media (max-width: 768px) {<br \/>\n    .grab-mosaic-grid {<br \/>\n      grid-template-columns: repeat(10, 1fr);<br \/>\n      grid-template-rows: repeat(15, 1fr);<br \/>\n    }<br \/>\n    .grab-photo-popup {<br \/>\n        width: 180px; \/* Thu nh\u1ecf \u1ea3nh tr\u00ean mobile *\/<br \/>\n    }<br \/>\n  }<br \/>\n<\/style>\n\n<!-- KHU V\u1ef0C HI\u1ec2N TH\u1eca -->\n<div id=\"mosaicWrapper\" class=\"grab-photo-mosaic\"><!-- \u1ea2nh n\u1ec1n l\u1edbn -->\n<img decoding=\"async\" class=\"grab-mosaic-bg\" src=\"https:\/\/assets.grab.com\/wp-content\/uploads\/sites\/11\/2026\/07\/22173014\/Doi-tac-co-hd-dep.png\" alt=\"Gia \u0110\u00ecnh Grab 2026\" \/><!-- L\u01b0\u1edbi t\u01b0\u01a1ng t\u00e1c -->\n<div id=\"mosaicGrid\" class=\"grab-mosaic-grid\"><\/div>\n<!-- Pop-up hi\u1ec3n th\u1ecb \u1ea3nh -->\n<div id=\"photoPopup\" class=\"grab-photo-popup\"><img id=\"popupImg\" alt=\"Feedback Grab\" \/><\/div>\n<\/div>\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n    \/\/ 1. DANH S\u00c1CH LINK \u1ea2NH FEEDBACK C\u1ee6A B\u1ea0N\n    \/\/ B\u1ea1n h\u00e3y paste c\u00e1c link \u1ea3nh ch\u1ee9a feedback v\u00e0o \u0111\u00e2y, c\u00e1ch nhau b\u1edfi d\u1ea5u ph\u1ea9y\n    const feedbackImages = [\n        \"https:\/\/assets.grab.com\/wp-content\/uploads\/sites\/11\/2026\/07\/22170655\/Thang-6.png\",\n        \"https:\/\/assets.grab.com\/wp-content\/uploads\/sites\/11\/2026\/07\/22170648\/Thang-6-2.png\",\n        \"https:\/\/assets.grab.com\/wp-content\/uploads\/sites\/11\/2026\/07\/22170640\/Thang-5.png\",\n        \"https:\/\/assets.grab.com\/wp-content\/uploads\/sites\/11\/2026\/07\/22170633\/Thang-5-3.png\",\n        \"https:\/\/assets.grab.com\/wp-content\/uploads\/sites\/11\/2026\/07\/22170625\/Thang-5-2.png\",\n        \"https:\/\/assets.grab.com\/wp-content\/uploads\/sites\/11\/2026\/07\/22170617\/Thang-4.png\",\n        \"https:\/\/assets.grab.com\/wp-content\/uploads\/sites\/11\/2026\/07\/22170610\/Thang-4-3.png\"\n    ];\n\n    const grid = document.getElementById(\"mosaicGrid\");\n    const popup = document.getElementById(\"photoPopup\");\n    const popupImg = document.getElementById(\"popupImg\");\n    const wrapper = document.getElementById(\"mosaicWrapper\");\n    \n    \/\/ 2. T\u1ea0O L\u01af\u1edaI T\u1ef0 \u0110\u1ed8NG\n    \/\/ 20 c\u1ed9t x 12 h\u00e0ng = 240 \u00f4\n    const totalCells = 240; \n    \n    for (let i = 0; i < totalCells; i++) { const cell = document.createElement(\"div\"); cell.className = \"grab-mosaic-cell\"; \/\/ G\u1eafn ng\u1eabu nhi\u00ean 1 \u1ea3nh t\u1eeb danh s\u00e1ch v\u00e0o c\u00e1c \u00f4 (\u0111\u1ec3 demo) \/\/ N\u1ebfu b\u1ea1n mu\u1ed1n \u00f4 n\u00e0o c\u0169ng c\u00f3 \u1ea3nh, b\u1ecf \"if (Math.random() > 0.3)\"\n        if (Math.random() > 0.3) {\n            const randomImg = feedbackImages[Math.floor(Math.random() * feedbackImages.length)];\n            cell.setAttribute(\"data-img\", randomImg);\n        }\n        \n        grid.appendChild(cell);\n    }\n\n    const cells = document.querySelectorAll(\".grab-mosaic-cell\");\n\n    \/\/ 3. X\u1eec L\u00dd S\u1ef0 KI\u1ec6N LIA CHU\u1ed8T\n    cells.forEach(cell => {\n        \/\/ Khi chu\u1ed9t ch\u1ea1m v\u00e0o \u00f4 l\u01b0\u1edbi\n        cell.addEventListener(\"mouseenter\", function() {\n            const imgSrc = this.getAttribute(\"data-img\");\n            if (imgSrc) {\n                popupImg.src = imgSrc;\n                popup.classList.add(\"active\");\n            }\n        });\n        \n        \/\/ Khi chu\u1ed9t r\u1eddi kh\u1ecfi \u00f4\n        cell.addEventListener(\"mouseleave\", function() {\n            popup.classList.remove(\"active\");\n        });\n        \n        \/\/ Khi chu\u1ed9t di chuy\u1ec3n (l\u00e0m pop-up ch\u1ea1y theo con tr\u1ecf)\n        cell.addEventListener(\"mousemove\", function(e) {\n            const wrapperRect = wrapper.getBoundingClientRect();\n            \n            \/\/ T\u00ednh to\u00e1n v\u1ecb tr\u00ed chu\u1ed9t so v\u1edbi khung ch\u1ee9a\n            let mouseX = e.clientX - wrapperRect.left;\n            let mouseY = e.clientY - wrapperRect.top;\n            \n            const popupWidth = popup.offsetWidth;\n            const popupHeight = popup.offsetHeight;\n\n            \/\/ \u0110\u1eb7t pop-up n\u1eb1m l\u1ec7ch xu\u1ed1ng d\u01b0\u1edbi v\u00e0 qua ph\u1ea3i con tr\u1ecf m\u1ed9t ch\u00fat\n            let posX = mouseX + 15;\n            let posY = mouseY + 15;\n            \n            \/\/ Ch\u1ed1ng tr\u00e0n l\u1ec1 ph\u1ea3i\n            if (posX + popupWidth > wrapperRect.width) {\n                posX = mouseX - popupWidth - 15;\n            }\n            \n            \/\/ Ch\u1ed1ng tr\u00e0n l\u1ec1 d\u01b0\u1edbi\n            if (posY + popupHeight > wrapperRect.height) {\n                posY = mouseY - popupHeight - 15;\n            }\n            \n            \/\/ Ch\u1ed1ng tr\u00e0n l\u1ec1 tr\u00ean (ph\u00f2ng h\u1edd)\n            if (posY < 0) {\n                posY = 10; \n            }\n\n            popup.style.left = posX + 'px';\n            popup.style.top = posY + 'px';\n        });\n    });\n});\n<\/script>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"\ud83d\udc9a T\u1eeb Kh\u00e1ch h\u00e0ng g\u1eedi \u0110\u1ed1i t\u00e1c Grab","protected":false},"author":1969,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"_acf_changed":false,"footnotes":""},"acf":[],"_links":{"self":[{"href":"https:\/\/www.grab.com\/vn\/wp-json\/wp\/v2\/pages\/188134"}],"collection":[{"href":"https:\/\/www.grab.com\/vn\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.grab.com\/vn\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.grab.com\/vn\/wp-json\/wp\/v2\/users\/1969"}],"replies":[{"embeddable":true,"href":"https:\/\/www.grab.com\/vn\/wp-json\/wp\/v2\/comments?post=188134"}],"version-history":[{"count":18,"href":"https:\/\/www.grab.com\/vn\/wp-json\/wp\/v2\/pages\/188134\/revisions"}],"predecessor-version":[{"id":209836,"href":"https:\/\/www.grab.com\/vn\/wp-json\/wp\/v2\/pages\/188134\/revisions\/209836"}],"wp:attachment":[{"href":"https:\/\/www.grab.com\/vn\/wp-json\/wp\/v2\/media?parent=188134"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}