{"id":9967,"date":"2026-06-05T01:22:11","date_gmt":"2026-06-05T01:22:11","guid":{"rendered":"https:\/\/mokanaidev.wpenginepowered.com\/?page_id=9967"},"modified":"2026-09-01T22:20:09","modified_gmt":"2026-09-01T22:20:09","slug":"home","status":"publish","type":"page","link":"https:\/\/mo-residencesrivieramaya.com\/es\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"9967\" class=\"elementor elementor-9967\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0a402d3 e-con-full elementor-hidden-mobile e-flex e-con e-parent\" data-id=\"0a402d3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;video&quot;,&quot;background_video_link&quot;:&quot;\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/hero_aggressive.mp4&quot;,&quot;background_play_on_mobile&quot;:&quot;yes&quot;}\">\n\t\t<div class=\"elementor-background-video-container\">\n\t\t\t\t\t\t\t<video class=\"elementor-background-video-hosted\" role=\"presentation\" autoplay muted playsinline loop><\/video>\n\t\t\t\t\t<\/div><div class=\"elementor-element elementor-element-60549a7 e-con-full e-flex e-con e-child\" data-id=\"60549a7\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-44a4568 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"44a4568\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"#intro\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40.014\" height=\"21.414\" viewBox=\"0 0 40.014 21.414\"><g id=\"down\" transform=\"translate(0.007 0.007)\"><line id=\"Line_6\" data-name=\"Line 6\" x2=\"20\" y2=\"20\" transform=\"translate(0.7 0.7)\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\"><\/line><line id=\"Line_7\" data-name=\"Line 7\" y1=\"20\" x2=\"20\" transform=\"translate(19.3 0.7)\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\"><\/line><\/g><\/svg>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\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-eb32577 e-con-full elementor-hidden-desktop elementor-hidden-tablet e-flex e-con e-parent\" data-id=\"eb32577\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;video&quot;,&quot;background_video_link&quot;:&quot;\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/hero_mobile_720x1280_aggressive.mp4&quot;,&quot;background_play_on_mobile&quot;:&quot;yes&quot;}\">\n\t\t<div class=\"elementor-background-video-container\">\n\t\t\t\t\t\t\t<video class=\"elementor-background-video-hosted\" role=\"presentation\" autoplay muted playsinline loop><\/video>\n\t\t\t\t\t<\/div><div class=\"elementor-element elementor-element-ca94cd3 e-con-full e-flex e-con e-child\" data-id=\"ca94cd3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9a4954c elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"9a4954c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"#intro\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"40.014\" height=\"21.414\" viewBox=\"0 0 40.014 21.414\"><g id=\"down\" transform=\"translate(0.007 0.007)\"><line id=\"Line_6\" data-name=\"Line 6\" x2=\"20\" y2=\"20\" transform=\"translate(0.7 0.7)\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\"><\/line><line id=\"Line_7\" data-name=\"Line 7\" y1=\"20\" x2=\"20\" transform=\"translate(19.3 0.7)\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\"><\/line><\/g><\/svg>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\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-ef6a357 animated-slow full-width-text-block e-flex e-con-boxed elementor-invisible e-con e-parent\" data-id=\"ef6a357\" data-element_type=\"container\" data-e-type=\"container\" id=\"intro\" 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-6787af0 elementor-hidden-mobile elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"6787af0\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">WHERE <span>the<\/span> SKY <span>was<\/span>\n<br>\nBORN <span>and the <\/span>EARTH\n<br>\n<span>is filled with<\/span> DISCOVERY<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b6aadea elementor-hidden-desktop elementor-hidden-tablet elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"b6aadea\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">WHERE\n<br>\nTHE SKY <span>was<\/span>\n<br>\n<span>born and <\/span>THE\n<br> \nEARTH<span> is filled<\/span>\n<br>\n<span>with<\/span> DISCOVERY<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-96a331d elementor-widget__width-initial elementor-hidden-mobile elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"96a331d\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Bringing the service of Mandarin Oriental to the storied land\u00a0<br \/>of the Mayans, Mandarin Oriental Residences Kanai, Riviera Maya\u00a0<br \/>introduces a refined way of living within the natural wonders of Mexico.\u00a0<br \/>Floating above an ocean of mangroves just steps from the Caribbean Sea,\u00a0<br \/>four distinct collections of homes offer a rare sense of sanctuary<br \/>and intimacy in a setting that will be protected for generations to come.\u00a0<br \/>Kanai\u2019s enduring natural beauty, a Mandarin Oriental hotel lifestyle,\u00a0<br \/>and endless inspiration all come together in one gracious,\u00a0<br \/>thoughtfully envisioned offering.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bc8ed6d elementor-widget__width-initial elementor-hidden-desktop elementor-hidden-tablet elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"bc8ed6d\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Bringing the service of Mandarin Oriental to the storied land of the Mayans, Mandarin Oriental Residences Kanai, Riviera Maya introduces a refined way of living within the natural wonders of Mexico. Floating above an ocean of mangroves just steps from the Caribbean Sea, four distinct collections of homes offer a rare sense of sanctuary and intimacy in a setting that will be protected for generations to come. Kanai\u2019s enduring natural beauty, a Mandarin Oriental hotel lifestyle, and endless inspiration all come together in one gracious, thoughtfully envisioned offering.<\/p>\t\t\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<\/div>\n\t\t<script type=\"text\/javascript\" src=\"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/ac_assets\/parallax-background\/simple-parallax.js\"  id='ue_js_uc_ac_assets_file_simple_parallax_js_32610'><\/script>\n\t\t<div class=\"unlimited-elements-background-overlay\" data-forid=\"ef6a357\" data-location=\"back\" style=\"display:none\">\n\t\t\t<template>\n\t\t\t\n<!-- start Parallax Background -->\n<style>\/* widget: Parallax Background *\/\n\n#uc_parallax_background_bg_addon10594{\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  position: absolute;\n}\n\n#uc_parallax_background_bg_addon10594 .ue-parallax-item-wrapper{\n  position: absolute;\n}\n\n#uc_parallax_background_bg_addon10594 .simpleParallax{\n  height: 100%;\n}\n\/* parallax type background layer settings *\/\n\n  .elementor-repeater-item-ef0622a{\n\tleft: 50%;\n    top: 50%;\n    transform: translate(-50%, -50%);\n  }\n\n  .elementor-repeater-item-ef0622a,\n  .elementor-repeater-item-ef0622a .ue-parallax-item-inner,\n  .elementor-repeater-item-ef0622a .ue-parallax-item{\n\twidth: 100%;\n    height: 100%;\n  }\n\n\t\n\n\/* visibility settings *\/\n.elementor-repeater-item-ef0622a{\n  display: block;\n}\n\n@media only screen and (max-width: 1024px){\n\t.elementor-repeater-item-ef0622a{\n      display: block;\n    }\n}\n\n@media only screen and (max-width: 767px){\n\t.elementor-repeater-item-ef0622a{\n      display: none;\n    }\n}\n\/* parallax type background layer settings *\/\n\n  .elementor-repeater-item-3fe046e{\n\tleft: 50%;\n    top: 50%;\n    transform: translate(-50%, -50%);\n  }\n\n  .elementor-repeater-item-3fe046e,\n  .elementor-repeater-item-3fe046e .ue-parallax-item-inner,\n  .elementor-repeater-item-3fe046e .ue-parallax-item{\n\twidth: 100%;\n    height: 100%;\n  }\n\n\t\n\n\/* visibility settings *\/\n.elementor-repeater-item-3fe046e{\n  display: none;\n}\n\n@media only screen and (max-width: 1024px){\n\t.elementor-repeater-item-3fe046e{\n      display: none;\n    }\n}\n\n@media only screen and (max-width: 767px){\n\t.elementor-repeater-item-3fe046e{\n      display: block;\n    }\n}\n\n\n<\/style>\n\n<div id=\"uc_parallax_background_bg_addon10594\" class=\"ue-parallax\">\n  <div class=\"ue-parallax-wrapper\">    \n    <div class=\"ue-parallax-item-wrapper elementor-repeater-item-ef0622a\">\n  <div class=\"ue-parallax-item-inner\">\n  \n          <img decoding=\"async\" class=\"ue-parallax-item\" src=\"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/texture-background-1-1.jpg\" alt=\"Background with dappled light pattern and tree branch shadows on a white surface.\" \/>\n      \n  <\/div>  \n<\/div>\n<div class=\"ue-parallax-item-wrapper elementor-repeater-item-3fe046e\">\n  <div class=\"ue-parallax-item-inner\">\n  \n          <img decoding=\"async\" class=\"ue-parallax-item\" src=\"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/AdobeStock_892572093-1.jpg\" alt=\"AdobeStock_892572093\" \/>\n      \n  <\/div>  \n<\/div>\n\n  <\/div>  \n<\/div>\n<script type=\"text\/javascript\"  id=\"ue_script_parallax_background\">\n\n\/* Parallax Background scripts: *\/ \n\njQuery(document).ready(function(){\nfunction uc_parallax_background_bg_addon10594_start(){\n\t\t\t\n\n  var objParallaxWidget = jQuery(\"#uc_parallax_background_bg_addon10594\");\n  var objItems = objParallaxWidget.find(\".ue-parallax-item\");\n  \n  \/**\n  * get array of orientations\n  *\/\n  \n  var itemsOrientationArray = [\n        \"up\",\n        \"up\",\n      ]; \n\n  \/**\n  * get array of sensitivity\n  *\/\n  var itemsSensitivityArray = [\n        \"1.4\",\n        \"1.4\",\n      ]; \n   \n  \/**\n  * get array of overflows\n  *\/\n  var itemsOverflowArray = [\n        \"false\",\n        \"false\",\n      ]; \n   \n  \/**\n  * get array of delays\n  *\/\n  var itemsDelayArray = [\n        \"0\",\n        \"0\",\n      ];  \n   \n  \/**\n  * get array of transitions\n  *\/\n  var itemsTransitionArray = [\n        \"ease\",\n        \"ease\",\n      ];  \n   \n  \/**\n  * get array of scale directions\n  *\/\n  var itemSizeDirectionsArray = [\n        \"up\",\n        \"up\",\n      ];  \n   \n  \/**\n  * get array of scales\n  *\/\n  var itemSizeArray = [\n        \"0\",\n        \"0\",\n      ];  \n   \n  \/**\n  * get array of rotate directions\n  *\/\n  var itemRotateDirectionsArray = [\n        \"right\",\n        \"right\",\n      ];  \n   \n  \/**\n  * get array of rotates\n  *\/\n  var itemRotateArray = [\n        \"0\",\n        \"0\",\n      ];\n   \n  \/**\n  * get array of opacity directions\n  *\/\n  var itemOpacityDirectionsArray = [\n        \"fade-in\",\n        \"fade-in\",\n      ];  \n   \n  \/**\n  * get array of opacities\n  *\/\n  var itemOpacityArray = [\n        \"0\",\n        \"0\",\n      ];\n\n  \/**\n  * for each item set its own parallax settings\n  *\/\n  objItems.each(function(index, parallaxElement){\n  \n    new simpleParallax(parallaxElement, {\n      \n        delay: itemsDelayArray[index], \/\/delay before transition\n        orientation: itemsOrientationArray[index], \/\/the direction of the transition\n        scale: itemsSensitivityArray[index], \/\/how visible the transition is\n        overflow: itemsOverflowArray[index] === \"true\", \/\/itemsOverflowArray[index] returns string, so make sure it's a boolean value \/ makes overflow hiden for the image container\n        transition: itemsTransitionArray[index], \/\/css transition\n        sizeDirection: itemSizeDirectionsArray[index], \/\/whether element is getting bigger or smaller\n        sizeSpeed: Number(itemSizeArray[index]), \/\/adjust size of the element during scroll using transform scale(n) css property - the bigger number the faster is change \/ make sure you set a number\n      \trotateDirection: itemRotateDirectionsArray[index], \/\/to right or to left\n      \trotateSpeed: Number(itemRotateArray[index]), \/\/how fast is the rotate\n        opacityDirection: itemOpacityDirectionsArray[index], \/\/fade-in \/ fade-out\n        opacityLevel: Number(itemOpacityArray[index]) \/\/how transparent element is (the higher number the more transparent becomes element)\n      \n    });    \n  \n  });\n    \t\n}if(jQuery(\"#uc_parallax_background_bg_addon10594\").length && !jQuery(\"#uc_parallax_background_bg_addon10594\").parents('[data-elementor-type=\"popup\"]').length) uc_parallax_background_bg_addon10594_start();\n\tjQuery( document ).on( 'elementor\/popup\/show', (event, id, objPopup) => {\n\tif(objPopup.$element.has(jQuery(\"#uc_parallax_background_bg_addon10594\")).length) uc_parallax_background_bg_addon10594_start()});\n});\n\t\t\t\n<\/script>\n<!-- end Parallax Background -->\t\t\t<\/template>\n\t\t<\/div>\n\t\t\n\t\t<div class=\"elementor-element elementor-element-003d503 e-con-full animated-slow map-zoom-wrapper elementor-hidden-desktop elementor-hidden-tablet e-flex elementor-invisible e-con e-parent\" data-id=\"003d503\" 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-e7370fb elementor-absolute map-hint-widget elementor-widget elementor-widget-html\" data-id=\"e7370fb\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script src=\"https:\/\/unpkg.com\/@panzoom\/panzoom@4.6.1\/dist\/panzoom.min.js\"><\/script>\r\n\r\n<div class=\"map-gesture-hint\" aria-hidden=\"true\">\r\n  Use two fingers to move and zoom the map\r\n<\/div>\r\n\r\n<script>\r\n(function () {\r\n  const mobileQuery = window.matchMedia(\"(max-width: 767px)\");\r\n\r\n  const PINCH_THRESHOLD = 0.04;\r\n  const MIN_SCALE = 1;\r\n  const MAX_SCALE = 3;\r\n\r\n  function getDistance(touchA, touchB) {\r\n    return Math.hypot(\r\n      touchB.clientX - touchA.clientX,\r\n      touchB.clientY - touchA.clientY\r\n    );\r\n  }\r\n\r\n  function getMidpoint(touchA, touchB) {\r\n    return {\r\n      x: (touchA.clientX + touchB.clientX) \/ 2,\r\n      y: (touchA.clientY + touchB.clientY) \/ 2\r\n    };\r\n  }\r\n\r\n  function initMap(wrapper) {\r\n    if (\r\n      !wrapper ||\r\n      wrapper._mapInitialized ||\r\n      !mobileQuery.matches ||\r\n      typeof window.Panzoom !== \"function\"\r\n    ) {\r\n      return;\r\n    }\r\n\r\n    const stage = wrapper.querySelector(\".map-stage\");\r\n    const map = wrapper.querySelector(\".interactive-map\");\r\n    const hint = wrapper.querySelector(\".map-gesture-hint\");\r\n\r\n    if (!stage || !map) {\r\n      return;\r\n    }\r\n\r\n    const panzoom = window.Panzoom(map, {\r\n      minScale: MIN_SCALE,\r\n      maxScale: MAX_SCALE,\r\n      contain: \"outside\",\r\n      noBind: true,\r\n      touchAction: \"\"\r\n    });\r\n\r\n    wrapper._mapInitialized = true;\r\n    wrapper._mapPanzoom = panzoom;\r\n\r\n    let gestureActive = false;\r\n    let pinchActive = false;\r\n\r\n    let gestureStartDistance = 0;\r\n    let previousDistance = 0;\r\n    let previousCenter = null;\r\n\r\n    let oneFingerStart = null;\r\n    let oneFingerHintShown = false;\r\n    let hintTimer = null;\r\n\r\n    function hideHint() {\r\n      if (!hint) {\r\n        return;\r\n      }\r\n\r\n      hint.classList.remove(\"is-visible\");\r\n\r\n      if (hintTimer) {\r\n        window.clearTimeout(hintTimer);\r\n        hintTimer = null;\r\n      }\r\n    }\r\n\r\n    function showHint(duration) {\r\n      if (!hint || gestureActive) {\r\n        return;\r\n      }\r\n\r\n      hint.classList.add(\"is-visible\");\r\n\r\n      if (hintTimer) {\r\n        window.clearTimeout(hintTimer);\r\n      }\r\n\r\n      hintTimer = window.setTimeout(function () {\r\n        hint.classList.remove(\"is-visible\");\r\n        hintTimer = null;\r\n      }, duration || 1800);\r\n    }\r\n\r\n    function beginTwoFingerGesture(event) {\r\n      if (event.touches.length !== 2) {\r\n        return;\r\n      }\r\n\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n\r\n      const touchA = event.touches[0];\r\n      const touchB = event.touches[1];\r\n\r\n      gestureStartDistance = getDistance(\r\n        touchA,\r\n        touchB\r\n      );\r\n\r\n      previousDistance =\r\n        gestureStartDistance;\r\n\r\n      previousCenter = getMidpoint(\r\n        touchA,\r\n        touchB\r\n      );\r\n\r\n      gestureActive = true;\r\n      pinchActive = false;\r\n      oneFingerStart = null;\r\n\r\n      hideHint();\r\n      map.classList.add(\"is-panning\");\r\n    }\r\n\r\n    function updateTwoFingerGesture(event) {\r\n      if (\r\n        !gestureActive ||\r\n        event.touches.length !== 2\r\n      ) {\r\n        return;\r\n      }\r\n\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n\r\n      const touchA = event.touches[0];\r\n      const touchB = event.touches[1];\r\n\r\n      const currentDistance = getDistance(\r\n        touchA,\r\n        touchB\r\n      );\r\n\r\n      const currentCenter = getMidpoint(\r\n        touchA,\r\n        touchB\r\n      );\r\n\r\n      if (\r\n        !previousCenter ||\r\n        previousDistance <= 0 ||\r\n        gestureStartDistance <= 0\r\n      ) {\r\n        gestureStartDistance =\r\n          currentDistance;\r\n\r\n        previousDistance =\r\n          currentDistance;\r\n\r\n        previousCenter =\r\n          currentCenter;\r\n\r\n        return;\r\n      }\r\n\r\n      \/*\r\n       * Use the total spacing change from the start\r\n       * of the gesture only to determine whether the\r\n       * visitor has intentionally started pinching.\r\n       *\/\r\n      const totalScaleChange = Math.abs(\r\n        currentDistance \/\r\n          gestureStartDistance -\r\n          1\r\n      );\r\n\r\n      if (\r\n        !pinchActive &&\r\n        totalScaleChange >= PINCH_THRESHOLD\r\n      ) {\r\n        pinchActive = true;\r\n\r\n        \/*\r\n         * Reset the incremental reference so pinch\r\n         * mode begins without an initial jump.\r\n         *\/\r\n        previousDistance =\r\n          currentDistance;\r\n      }\r\n\r\n      \/*\r\n       * Once pinch mode is active, every small spacing\r\n       * change is processed, creating smooth zooming.\r\n       *\/\r\n      const frameScaleRatio =\r\n        previousDistance > 0\r\n          ? currentDistance \/\r\n            previousDistance\r\n          : 1;\r\n\r\n      const currentScale =\r\n        panzoom.getScale();\r\n\r\n      const nextScale = pinchActive\r\n        ? Math.min(\r\n            MAX_SCALE,\r\n            Math.max(\r\n              MIN_SCALE,\r\n              currentScale *\r\n                frameScaleRatio\r\n            )\r\n          )\r\n        : currentScale;\r\n\r\n      \/*\r\n       * Midpoint movement controls panning.\r\n       *\/\r\n      const deltaX =\r\n        currentCenter.x -\r\n        previousCenter.x;\r\n\r\n      const deltaY =\r\n        currentCenter.y -\r\n        previousCenter.y;\r\n\r\n      \/*\r\n       * Zoom only after the gesture has crossed the\r\n       * intentional pinch threshold.\r\n       *\/\r\n      if (pinchActive) {\r\n        panzoom.zoomToPoint(\r\n          nextScale,\r\n          {\r\n            clientX: currentCenter.x,\r\n            clientY: currentCenter.y\r\n          },\r\n          {\r\n            animate: false\r\n          }\r\n        );\r\n      }\r\n\r\n      \/*\r\n       * Two-finger movement continues to pan whether\r\n       * or not pinch mode is active.\r\n       *\/\r\n      if (\r\n        Math.abs(deltaX) > 0.35 ||\r\n        Math.abs(deltaY) > 0.35\r\n      ) {\r\n        const currentPan =\r\n          panzoom.getPan();\r\n\r\n        panzoom.pan(\r\n          currentPan.x +\r\n            deltaX \/ nextScale,\r\n          currentPan.y +\r\n            deltaY \/ nextScale,\r\n          {\r\n            animate: false,\r\n            force: true\r\n          }\r\n        );\r\n      }\r\n\r\n      \/*\r\n       * Update the frame reference continuously once\r\n       * pinch mode is active, keeping zoom smooth.\r\n       *\/\r\n      if (pinchActive) {\r\n        previousDistance =\r\n          currentDistance;\r\n      }\r\n\r\n      previousCenter =\r\n        currentCenter;\r\n    }\r\n\r\n    function endGesture(event) {\r\n      if (\r\n        gestureActive &&\r\n        event.touches.length < 2\r\n      ) {\r\n        gestureActive = false;\r\n        pinchActive = false;\r\n\r\n        gestureStartDistance = 0;\r\n        previousDistance = 0;\r\n        previousCenter = null;\r\n\r\n        map.classList.remove(\r\n          \"is-panning\"\r\n        );\r\n      }\r\n\r\n      if (event.touches.length === 0) {\r\n        oneFingerStart = null;\r\n      }\r\n    }\r\n\r\n    stage.addEventListener(\r\n      \"touchstart\",\r\n      function (event) {\r\n        if (event.touches.length === 2) {\r\n          beginTwoFingerGesture(event);\r\n          return;\r\n        }\r\n\r\n        \/*\r\n         * Preserve normal one-finger page scrolling.\r\n         *\/\r\n        if (event.touches.length === 1) {\r\n          oneFingerStart = {\r\n            x: event.touches[0].clientX,\r\n            y: event.touches[0].clientY\r\n          };\r\n\r\n          oneFingerHintShown = false;\r\n        }\r\n      },\r\n      {\r\n        passive: false\r\n      }\r\n    );\r\n\r\n    stage.addEventListener(\r\n      \"touchmove\",\r\n      function (event) {\r\n        if (\r\n          gestureActive &&\r\n          event.touches.length === 2\r\n        ) {\r\n          updateTwoFingerGesture(event);\r\n          return;\r\n        }\r\n\r\n        \/*\r\n         * Show the instruction after an attempted\r\n         * one-finger drag while still allowing the\r\n         * page itself to scroll.\r\n         *\/\r\n        if (\r\n          event.touches.length !== 1 ||\r\n          !oneFingerStart ||\r\n          gestureActive ||\r\n          oneFingerHintShown\r\n        ) {\r\n          return;\r\n        }\r\n\r\n        const deltaX =\r\n          event.touches[0].clientX -\r\n          oneFingerStart.x;\r\n\r\n        const deltaY =\r\n          event.touches[0].clientY -\r\n          oneFingerStart.y;\r\n\r\n        if (\r\n          Math.hypot(\r\n            deltaX,\r\n            deltaY\r\n          ) > 16\r\n        ) {\r\n          oneFingerHintShown = true;\r\n          showHint(1700);\r\n        }\r\n      },\r\n      {\r\n        passive: false\r\n      }\r\n    );\r\n\r\n    stage.addEventListener(\r\n      \"touchend\",\r\n      endGesture,\r\n      {\r\n        passive: true\r\n      }\r\n    );\r\n\r\n    stage.addEventListener(\r\n      \"touchcancel\",\r\n      endGesture,\r\n      {\r\n        passive: true\r\n      }\r\n    );\r\n\r\n    \/*\r\n     * Mobile hotspot captions.\r\n     *\/\r\n    wrapper\r\n      .querySelectorAll(\".map-icon\")\r\n      .forEach(function (icon) {\r\n        icon.addEventListener(\r\n          \"click\",\r\n          function (event) {\r\n            if (!mobileQuery.matches) {\r\n              return;\r\n            }\r\n\r\n            event.stopPropagation();\r\n\r\n            const shouldOpen =\r\n              !icon.classList.contains(\r\n                \"is-caption-open\"\r\n              );\r\n\r\n            wrapper\r\n              .querySelectorAll(\r\n                \".map-icon.is-caption-open\"\r\n              )\r\n              .forEach(function (\r\n                openIcon\r\n              ) {\r\n                openIcon.classList.remove(\r\n                  \"is-caption-open\"\r\n                );\r\n              });\r\n\r\n            if (shouldOpen) {\r\n              icon.classList.add(\r\n                \"is-caption-open\"\r\n              );\r\n            }\r\n          }\r\n        );\r\n      });\r\n\r\n    document.addEventListener(\r\n      \"click\",\r\n      function (event) {\r\n        if (\r\n          !mobileQuery.matches ||\r\n          wrapper.contains(event.target)\r\n        ) {\r\n          return;\r\n        }\r\n\r\n        wrapper\r\n          .querySelectorAll(\r\n            \".map-icon.is-caption-open\"\r\n          )\r\n          .forEach(function (icon) {\r\n            icon.classList.remove(\r\n              \"is-caption-open\"\r\n            );\r\n          });\r\n      }\r\n    );\r\n\r\n    \/*\r\n     * Show the full-map instruction overlay when\r\n     * the map first enters the viewport.\r\n     *\/\r\n    if (\r\n      hint &&\r\n      \"IntersectionObserver\" in window\r\n    ) {\r\n      const observer =\r\n        new IntersectionObserver(\r\n          function (entries) {\r\n            const entry = entries[0];\r\n\r\n            if (\r\n              entry.isIntersecting &&\r\n              entry.intersectionRatio >=\r\n                0.35\r\n            ) {\r\n              showHint(2000);\r\n              observer.disconnect();\r\n            }\r\n          },\r\n          {\r\n            threshold: 0.35\r\n          }\r\n        );\r\n\r\n      observer.observe(stage);\r\n      wrapper._mapHintObserver =\r\n        observer;\r\n    } else if (hint) {\r\n      window.setTimeout(function () {\r\n        showHint(2000);\r\n      }, 500);\r\n    }\r\n  }\r\n\r\n  function destroyMap(wrapper) {\r\n    if (\r\n      !wrapper ||\r\n      !wrapper._mapInitialized\r\n    ) {\r\n      return;\r\n    }\r\n\r\n    const map = wrapper.querySelector(\r\n      \".interactive-map\"\r\n    );\r\n\r\n    const hint = wrapper.querySelector(\r\n      \".map-gesture-hint\"\r\n    );\r\n\r\n    if (wrapper._mapHintObserver) {\r\n      wrapper._mapHintObserver.disconnect();\r\n      wrapper._mapHintObserver = null;\r\n    }\r\n\r\n    if (wrapper._mapPanzoom) {\r\n      wrapper._mapPanzoom.destroy();\r\n    }\r\n\r\n    if (map) {\r\n      map.style.removeProperty(\r\n        \"transform\"\r\n      );\r\n\r\n      map.style.removeProperty(\r\n        \"transition\"\r\n      );\r\n\r\n      map.style.removeProperty(\r\n        \"cursor\"\r\n      );\r\n\r\n      map.classList.remove(\r\n        \"is-panning\"\r\n      );\r\n    }\r\n\r\n    if (hint) {\r\n      hint.classList.remove(\r\n        \"is-visible\"\r\n      );\r\n    }\r\n\r\n    wrapper\r\n      .querySelectorAll(\r\n        \".map-icon.is-caption-open\"\r\n      )\r\n      .forEach(function (icon) {\r\n        icon.classList.remove(\r\n          \"is-caption-open\"\r\n        );\r\n      });\r\n\r\n    wrapper._mapInitialized = false;\r\n    wrapper._mapPanzoom = null;\r\n  }\r\n\r\n  function updateMaps() {\r\n    document\r\n      .querySelectorAll(\r\n        \".map-zoom-wrapper\"\r\n      )\r\n      .forEach(function (wrapper) {\r\n        if (mobileQuery.matches) {\r\n          initMap(wrapper);\r\n        } else {\r\n          destroyMap(wrapper);\r\n        }\r\n      });\r\n  }\r\n\r\n  function start(attempt) {\r\n    attempt = attempt || 0;\r\n\r\n    if (\r\n      typeof window.Panzoom ===\r\n      \"function\"\r\n    ) {\r\n      updateMaps();\r\n      return;\r\n    }\r\n\r\n    if (attempt >= 50) {\r\n      console.error(\r\n        \"Interactive map: Panzoom failed to load.\"\r\n      );\r\n      return;\r\n    }\r\n\r\n    window.setTimeout(function () {\r\n      start(attempt + 1);\r\n    }, 100);\r\n  }\r\n\r\n  if (\r\n    document.readyState === \"loading\"\r\n  ) {\r\n    document.addEventListener(\r\n      \"DOMContentLoaded\",\r\n      function () {\r\n        start();\r\n      },\r\n      {\r\n        once: true\r\n      }\r\n    );\r\n  } else {\r\n    window.setTimeout(start, 0);\r\n  }\r\n\r\n  if (\r\n    typeof mobileQuery.addEventListener ===\r\n    \"function\"\r\n  ) {\r\n    mobileQuery.addEventListener(\r\n      \"change\",\r\n      updateMaps\r\n    );\r\n  } else {\r\n    mobileQuery.addListener(\r\n      updateMaps\r\n    );\r\n  }\r\n\r\n  \/*\r\n   * Elementor may finish rendering after the\r\n   * HTML widget executes.\r\n   *\/\r\n  if (window.jQuery) {\r\n    jQuery(window).on(\r\n      \"elementor\/frontend\/init\",\r\n      function () {\r\n        window.setTimeout(\r\n          start,\r\n          100\r\n        );\r\n      }\r\n    );\r\n  }\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-086f382 e-con-full map-stage e-flex e-con e-child\" data-id=\"086f382\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-43e4390 e-con-full animated-slow interactive-map e-flex elementor-invisible e-con e-child\" data-id=\"43e4390\" 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-a357945 map-label elementor-widget elementor-widget-text-editor\" data-id=\"a357945\" data-element_type=\"widget\" data-e-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\t\t<p>THE<br \/>RESIDENCES<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e3c52d8 map-label elementor-widget elementor-widget-text-editor\" data-id=\"e3c52d8\" data-element_type=\"widget\" data-e-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\t\t<p>AIRE<br \/>Collection<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-91fdc5b map-label elementor-widget elementor-widget-text-editor\" data-id=\"91fdc5b\" data-element_type=\"widget\" data-e-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\t\t<p>THE<br \/>HOTEL<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c4479bf map-label elementor-widget elementor-widget-text-editor\" data-id=\"c4479bf\" data-element_type=\"widget\" data-e-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\t\t<p>AIR<br \/>Resident&#8217;s Club<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4e026eb map-label elementor-widget elementor-widget-text-editor\" data-id=\"4e026eb\" data-element_type=\"widget\" data-e-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\t\t<p>THE SPA<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-94c09a7 map-label elementor-widget elementor-widget-text-editor\" data-id=\"94c09a7\" data-element_type=\"widget\" data-e-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\t\t<p>MOKAN<br \/>Beach Club &amp; Restaurant<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-226aaaa map-label elementor-widget elementor-widget-text-editor\" data-id=\"226aaaa\" data-element_type=\"widget\" data-e-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\t\t<p>FUEGO<br \/>Collection<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-52173c4 map-label elementor-widget elementor-widget-text-editor\" data-id=\"52173c4\" data-element_type=\"widget\" data-e-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\t\t<p>AGUA<br \/>Collection<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dd8e206 map-label elementor-widget elementor-widget-text-editor\" data-id=\"dd8e206\" data-element_type=\"widget\" data-e-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\t\t<p>EARTH<br \/>Eatery<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f1442ed map-label elementor-widget elementor-widget-text-editor\" data-id=\"f1442ed\" data-element_type=\"widget\" data-e-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\t\t<p>WATER<br \/>Beach Club<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5e067fb map-label elementor-widget elementor-widget-text-editor\" data-id=\"5e067fb\" data-element_type=\"widget\" data-e-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\t\t<p>TIERRA<br \/>Collection<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fe9ea27 map-label elementor-widget elementor-widget-text-editor\" data-id=\"fe9ea27\" data-element_type=\"widget\" data-e-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\t\t<p>THE PIER<\/p>\t\t\t\t\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<div class=\"elementor-element elementor-element-f42e6a5 e-con-full animated-slow elementor-hidden-mobile e-flex elementor-invisible e-con e-parent\" data-id=\"f42e6a5\" 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-5db72cd map-label elementor-widget elementor-widget-text-editor\" data-id=\"5db72cd\" data-element_type=\"widget\" data-e-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\t\t<p>THE RESIDENCES<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1c965d0 map-label elementor-widget elementor-widget-text-editor\" data-id=\"1c965d0\" data-element_type=\"widget\" data-e-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\t\t<p>AIRE<br \/>Collection<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0685039 map-label elementor-widget elementor-widget-text-editor\" data-id=\"0685039\" data-element_type=\"widget\" data-e-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\t\t<p>THE HOTEL<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e5b1e09 map-label elementor-widget elementor-widget-text-editor\" data-id=\"e5b1e09\" data-element_type=\"widget\" data-e-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\t\t<p>AIR<br \/>Resident&#8217;s Club<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-61cc9cd map-label elementor-widget elementor-widget-text-editor\" data-id=\"61cc9cd\" data-element_type=\"widget\" data-e-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\t\t<p>THE SPA<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-088f25b map-label elementor-widget elementor-widget-text-editor\" data-id=\"088f25b\" data-element_type=\"widget\" data-e-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\t\t<p>MOKAN<br \/>Beach Club &amp; Restaurant<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9ac6863 map-label elementor-widget elementor-widget-text-editor\" data-id=\"9ac6863\" data-element_type=\"widget\" data-e-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\t\t<p>FUEGO<br \/>Collection<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7aaa02b map-label elementor-widget elementor-widget-text-editor\" data-id=\"7aaa02b\" data-element_type=\"widget\" data-e-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\t\t<p>AGUA<br \/>Collection<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f32d6b map-label elementor-widget elementor-widget-text-editor\" data-id=\"9f32d6b\" data-element_type=\"widget\" data-e-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\t\t<p>EARTH<br \/>Eatery<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6c2dc56 map-label elementor-widget elementor-widget-text-editor\" data-id=\"6c2dc56\" data-element_type=\"widget\" data-e-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\t\t<p>WATER<br \/>Beach Club<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2d15000 map-label elementor-widget elementor-widget-text-editor\" data-id=\"2d15000\" data-element_type=\"widget\" data-e-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\t\t<p>TIERRA<br \/>Collection<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aceaae1 map-label elementor-widget elementor-widget-text-editor\" data-id=\"aceaae1\" data-element_type=\"widget\" data-e-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\t\t<p>THE PIER<\/p>\t\t\t\t\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-49dff09 animated-slow full-width-text-block e-flex e-con-boxed elementor-invisible e-con e-parent\" data-id=\"49dff09\" 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-8d23a67 animated-slow elementor-hidden-mobile elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"8d23a67\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">A NEW WAY\n<br>\n<span>of<\/span> LIFE <span>in<\/span>\n<br>\nRIVIERA MAYA<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2f92592 animated-slow elementor-hidden-desktop elementor-hidden-tablet elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"2f92592\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">A NEW WAY\n<br>\n<span>of <\/span>LIFE <span>in the<\/span>\n<br>\nRIVIERA MAYA<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-331779d e-con-full animated-slow e-flex elementor-invisible e-con e-child\" data-id=\"331779d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;fadeInUp&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2f9de5a elementor-widget__width-initial elementor-hidden-mobile elementor-widget elementor-widget-text-editor\" data-id=\"2f9de5a\" data-element_type=\"widget\" data-e-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\t\t<p>Envisioned by leaders of their craft, Mandarin Oriental Residences Kanai, Riviera\u00a0<br \/>Maya offers four residential collections, each of them steps from the Caribbean Sea\u00a0<br \/>and each its own unique haven. These considered, sophisticated homes\u00a0<br \/>invite residents to slow down and embrace the moment. Owners will have\u00a0<br \/>a feeling of living in untouched beauty surrounded by mangroves, local flora\u00a0<br \/>and fauna, and shifting coastal light in spaces realized by Migdal Arquitectos\u00a0<br \/>and interior design studio Meyer Davis.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9dd7327 elementor-widget__width-initial elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-text-editor\" data-id=\"9dd7327\" data-element_type=\"widget\" data-e-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\t\t<p>Envisioned by leaders of their craft, Mandarin Oriental Residences Kanai, Riviera Maya offers four residential collections, each of them steps from the Caribbean Sea and each its own unique haven. These considered, sophisticated homes invite residents to slow down and embrace the moment. Owners will have a feeling of living in untouched beauty surrounded by mangroves, local flora and fauna, and shifting coastal light in spaces realized by Migdal Arquitectos and interior design studio Meyer Davis.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1332c31 elementor-widget elementor-widget-ucaddon_underline_link_hover_effect\" data-id=\"1332c31\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_underline_link_hover_effect.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Underline Link Hover Effect -->\n\t\t<link id='font-awesome-css' href='https:\/\/mo-residencesrivieramaya.com\/wp-content\/plugins\/unlimited-elements-for-elementor-premium\/assets_libraries\/font-awesome6\/fontawesome-all.min.css' type='text\/css' rel='stylesheet' >\n\t\t<link id='font-awesome-4-shim-css' href='https:\/\/mo-residencesrivieramaya.com\/wp-content\/plugins\/unlimited-elements-for-elementor-premium\/assets_libraries\/font-awesome6\/fontawesome-v4-shims.min.css' type='text\/css' rel='stylesheet' >\n\n<style>\/* widget: Underline Link Hover Effect *\/\n\n#uc_underline_link_hover_effect_elementor_1332c31{\n  display:flex;\n} \n\n#uc_underline_link_hover_effect_elementor_1332c31 a.ue-link{\n  display:flex;\n  position:relative;\n  align-items:center;\n  justify-content:center;\n  text-decoration:none;\n}\n\n#uc_underline_link_hover_effect_elementor_1332c31 a.ue-link:after{\n  content: \"\";\n    width:100%;\n    position:absolute;\n  bottom:0px;\n    left:0px;\n    display: block;\n  transition:1000ms;\n}\n\n#uc_underline_link_hover_effect_elementor_1332c31 a:hover:after{\n    width:0%;\n  }\n\n#uc_underline_link_hover_effect_elementor_1332c31 .ue-link-hover-effect-spacing{\n  transition:1000ms;\n}\n\n#uc_underline_link_hover_effect_elementor_1332c31 .ue-link-hover-effect-text{\n  padding:10px 0px;\n  transition:1000ms;\n}\n\n#uc_underline_link_hover_effect_elementor_1332c31 .ue-link-hover-effect-icon{\n  line-height:1em;\n  transition:1000ms;\n}\n\n#uc_underline_link_hover_effect_elementor_1332c31 .ue-link-hover-effect-icon svg{\n  height:1em;\n  width:1em;\n}\n\n<\/style>\n\n<div id=\"uc_underline_link_hover_effect_elementor_1332c31\" class=\"ue-link-wrap\">\n  <a class=\"ue-link\" href=\"\/residences\/\" >\n    <div class=\"ue-link-hover-effect-text\">DISCOVER OUR COLLECTIONS<\/div>\n    <div class=\"ue-link-hover-effect-spacing\"><\/div>\n    <div class=\"ue-link-hover-effect-icon\"><i class=''><\/i><\/div>\n  <\/a>\n<\/div>\n<!-- end Underline Link Hover Effect -->\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<\/div>\n\t\t\t\t<div class=\"unlimited-elements-background-overlay\" data-forid=\"49dff09\" data-location=\"back\" style=\"display:none\">\n\t\t\t<template>\n\t\t\t\n<!-- start Parallax Background -->\n<style>\/* widget: Parallax Background *\/\n\n#uc_parallax_background_bg_addon29593{\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  position: absolute;\n}\n\n#uc_parallax_background_bg_addon29593 .ue-parallax-item-wrapper{\n  position: absolute;\n}\n\n#uc_parallax_background_bg_addon29593 .simpleParallax{\n  height: 100%;\n}\n\/* parallax type background layer settings *\/\n\n  .elementor-repeater-item-9034abf{\n\tleft: 50%;\n    top: 50%;\n    transform: translate(-50%, -50%);\n  }\n\n  .elementor-repeater-item-9034abf,\n  .elementor-repeater-item-9034abf .ue-parallax-item-inner,\n  .elementor-repeater-item-9034abf .ue-parallax-item{\n\twidth: 100%;\n    height: 100%;\n  }\n\n\t\n\n\/* visibility settings *\/\n.elementor-repeater-item-9034abf{\n  display: block;\n}\n\n@media only screen and (max-width: 1024px){\n\t.elementor-repeater-item-9034abf{\n      display: block;\n    }\n}\n\n@media only screen and (max-width: 767px){\n\t.elementor-repeater-item-9034abf{\n      display: block;\n    }\n}\n\n\n<\/style>\n\n<div id=\"uc_parallax_background_bg_addon29593\" class=\"ue-parallax\">\n  <div class=\"ue-parallax-wrapper\">    \n    <div class=\"ue-parallax-item-wrapper elementor-repeater-item-9034abf\">\n  <div class=\"ue-parallax-item-inner\">\n  \n          <img decoding=\"async\" class=\"ue-parallax-item\" src=\"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/texture-background-2-1.jpg\" alt=\"Background with dappled light pattern and tree branch shadows on a white surface.\" \/>\n      \n  <\/div>  \n<\/div>\n\n  <\/div>  \n<\/div>\n<script type=\"text\/javascript\"  id=\"ue_script_parallax_background2\">\n\n\/* Parallax Background scripts: *\/ \n\njQuery(document).ready(function(){\nfunction uc_parallax_background_bg_addon29593_start(){\n\t\t\t\n\n  var objParallaxWidget = jQuery(\"#uc_parallax_background_bg_addon29593\");\n  var objItems = objParallaxWidget.find(\".ue-parallax-item\");\n  \n  \/**\n  * get array of orientations\n  *\/\n  \n  var itemsOrientationArray = [\n        \"up\",\n      ]; \n\n  \/**\n  * get array of sensitivity\n  *\/\n  var itemsSensitivityArray = [\n        \"1.4\",\n      ]; \n   \n  \/**\n  * get array of overflows\n  *\/\n  var itemsOverflowArray = [\n        \"false\",\n      ]; \n   \n  \/**\n  * get array of delays\n  *\/\n  var itemsDelayArray = [\n        \"0\",\n      ];  \n   \n  \/**\n  * get array of transitions\n  *\/\n  var itemsTransitionArray = [\n        \"ease\",\n      ];  \n   \n  \/**\n  * get array of scale directions\n  *\/\n  var itemSizeDirectionsArray = [\n        \"up\",\n      ];  \n   \n  \/**\n  * get array of scales\n  *\/\n  var itemSizeArray = [\n        \"0\",\n      ];  \n   \n  \/**\n  * get array of rotate directions\n  *\/\n  var itemRotateDirectionsArray = [\n        \"right\",\n      ];  \n   \n  \/**\n  * get array of rotates\n  *\/\n  var itemRotateArray = [\n        \"0\",\n      ];\n   \n  \/**\n  * get array of opacity directions\n  *\/\n  var itemOpacityDirectionsArray = [\n        \"fade-in\",\n      ];  \n   \n  \/**\n  * get array of opacities\n  *\/\n  var itemOpacityArray = [\n        \"0\",\n      ];\n\n  \/**\n  * for each item set its own parallax settings\n  *\/\n  objItems.each(function(index, parallaxElement){\n  \n    new simpleParallax(parallaxElement, {\n      \n        delay: itemsDelayArray[index], \/\/delay before transition\n        orientation: itemsOrientationArray[index], \/\/the direction of the transition\n        scale: itemsSensitivityArray[index], \/\/how visible the transition is\n        overflow: itemsOverflowArray[index] === \"true\", \/\/itemsOverflowArray[index] returns string, so make sure it's a boolean value \/ makes overflow hiden for the image container\n        transition: itemsTransitionArray[index], \/\/css transition\n        sizeDirection: itemSizeDirectionsArray[index], \/\/whether element is getting bigger or smaller\n        sizeSpeed: Number(itemSizeArray[index]), \/\/adjust size of the element during scroll using transform scale(n) css property - the bigger number the faster is change \/ make sure you set a number\n      \trotateDirection: itemRotateDirectionsArray[index], \/\/to right or to left\n      \trotateSpeed: Number(itemRotateArray[index]), \/\/how fast is the rotate\n        opacityDirection: itemOpacityDirectionsArray[index], \/\/fade-in \/ fade-out\n        opacityLevel: Number(itemOpacityArray[index]) \/\/how transparent element is (the higher number the more transparent becomes element)\n      \n    });    \n  \n  });\n    \t\n}if(jQuery(\"#uc_parallax_background_bg_addon29593\").length && !jQuery(\"#uc_parallax_background_bg_addon29593\").parents('[data-elementor-type=\"popup\"]').length) uc_parallax_background_bg_addon29593_start();\n\tjQuery( document ).on( 'elementor\/popup\/show', (event, id, objPopup) => {\n\tif(objPopup.$element.has(jQuery(\"#uc_parallax_background_bg_addon29593\")).length) uc_parallax_background_bg_addon29593_start()});\n});\n\t\t\t\n<\/script>\n<!-- end Parallax Background -->\t\t\t<\/template>\n\t\t<\/div>\n\t\t\n\t\t<div class=\"elementor-element elementor-element-7c2372e e-con-full animated-slow e-flex elementor-invisible e-con e-parent\" data-id=\"7c2372e\" 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<div class=\"elementor-element elementor-element-8fe2009 e-con-full animated-slow e-flex elementor-invisible e-con e-child\" data-id=\"8fe2009\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;fadeInUp&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-25f7dfe elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"25f7dfe\" data-element_type=\"widget\" data-e-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\t\t<p>Kanai\u2019s enduring natural beauty, a Mandarin Oriental hotel lifestyle, and endless inspiration all come together in one gracious, thoughtfully envisioned offering.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b736f99 elementor-hidden-mobile elementor-widget elementor-widget-button\" data-id=\"b736f99\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#inquire\">\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\">INQUIRE<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e7e9421 elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-button\" data-id=\"e7e9421\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#inquire\">\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\">INQUIRE TODAY<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\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-e656edd e-con-full animated-slow e-flex elementor-invisible e-con e-parent\" data-id=\"e656edd\" 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<div class=\"elementor-element elementor-element-a8ba6e4 e-con-full e-flex e-con e-child\" data-id=\"a8ba6e4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-df8fa7c elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"df8fa7c\" data-element_type=\"widget\" data-e-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\t\t<p>The Spa at Mandarin Oriental Kanai, Riviera Maya<\/p>\t\t\t\t\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-833ef0f animated-slow full-width-text-block e-flex e-con-boxed elementor-invisible e-con e-parent\" data-id=\"833ef0f\" 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-f0a816e animated-slow elementor-hidden-mobile elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"f0a816e\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">SENSORY <span>by<\/span> DESIGN\n<br>\nSERENE <span>by<\/span> NATURE<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-00fe71b animated-slow elementor-hidden-desktop elementor-hidden-tablet elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"00fe71b\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">SENSORY <span>by<\/span>\n<br>\nDESIGN. SERENE <span>by<\/span>\n<br>\nNATURE<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9c344f6 e-con-full animated-slow e-flex elementor-invisible e-con e-child\" data-id=\"9c344f6\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;fadeInUp&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-24fd850 elementor-widget__width-initial elementor-hidden-mobile elementor-widget elementor-widget-text-editor\" data-id=\"24fd850\" data-element_type=\"widget\" data-e-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\t\t<p>The Residential and Hotel Amenities at Mandarin Oriental Residences Kanai, Riviera Maya allow owners to shift their mindsets and lose themselves in inspiration. Whether they are spending time at the Water Beach Club, enjoying a Hotel Spa treatment or celebrating over a culinary feast, the opportunities to engage and indulge are endless.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6a188e4 elementor-widget__width-initial elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-text-editor\" data-id=\"6a188e4\" data-element_type=\"widget\" data-e-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\t\t<p>The Residential and Hotel Amenities at Mandarin Oriental Residences Kanai, Riviera Maya allow owners to shift their mindsets and lose themselves in inspiration. Whether they are spending time at the Water Beach Club, enjoying a Hotel Spa treatment or celebrating over a culinary feast, the opportunities to engage and indulge are endless.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ebc7799 elementor-widget elementor-widget-ucaddon_underline_link_hover_effect\" data-id=\"ebc7799\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_underline_link_hover_effect.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Underline Link Hover Effect -->\n\n<style>\/* widget: Underline Link Hover Effect *\/\n\n#uc_underline_link_hover_effect_elementor_ebc7799{\n  display:flex;\n} \n\n#uc_underline_link_hover_effect_elementor_ebc7799 a.ue-link{\n  display:flex;\n  position:relative;\n  align-items:center;\n  justify-content:center;\n  text-decoration:none;\n}\n\n#uc_underline_link_hover_effect_elementor_ebc7799 a.ue-link:after{\n  content: \"\";\n    width:100%;\n    position:absolute;\n  bottom:0px;\n    left:0px;\n    display: block;\n  transition:1000ms;\n}\n\n#uc_underline_link_hover_effect_elementor_ebc7799 a:hover:after{\n    width:0%;\n  }\n\n#uc_underline_link_hover_effect_elementor_ebc7799 .ue-link-hover-effect-spacing{\n  transition:1000ms;\n}\n\n#uc_underline_link_hover_effect_elementor_ebc7799 .ue-link-hover-effect-text{\n  padding:10px 0px;\n  transition:1000ms;\n}\n\n#uc_underline_link_hover_effect_elementor_ebc7799 .ue-link-hover-effect-icon{\n  line-height:1em;\n  transition:1000ms;\n}\n\n#uc_underline_link_hover_effect_elementor_ebc7799 .ue-link-hover-effect-icon svg{\n  height:1em;\n  width:1em;\n}\n\n<\/style>\n\n<div id=\"uc_underline_link_hover_effect_elementor_ebc7799\" class=\"ue-link-wrap\">\n  <a class=\"ue-link\" href=\"\/amenities\/\" >\n    <div class=\"ue-link-hover-effect-text\">DISCOVER THE AMENITIES<\/div>\n    <div class=\"ue-link-hover-effect-spacing\"><\/div>\n    <div class=\"ue-link-hover-effect-icon\"><i class=''><\/i><\/div>\n  <\/a>\n<\/div>\n<!-- end Underline Link Hover Effect -->\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<\/div>\n\t\t\t\t<div class=\"unlimited-elements-background-overlay\" data-forid=\"833ef0f\" data-location=\"back\" style=\"display:none\">\n\t\t\t<template>\n\t\t\t\n<!-- start Parallax Background -->\n<style>\/* widget: Parallax Background *\/\n\n#uc_parallax_background_bg_addon37009{\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  position: absolute;\n}\n\n#uc_parallax_background_bg_addon37009 .ue-parallax-item-wrapper{\n  position: absolute;\n}\n\n#uc_parallax_background_bg_addon37009 .simpleParallax{\n  height: 100%;\n}\n\/* parallax type background layer settings *\/\n\n  .elementor-repeater-item-0b77f9c{\n\tleft: 50%;\n    top: 50%;\n    transform: translate(-50%, -50%);\n  }\n\n  .elementor-repeater-item-0b77f9c,\n  .elementor-repeater-item-0b77f9c .ue-parallax-item-inner,\n  .elementor-repeater-item-0b77f9c .ue-parallax-item{\n\twidth: 100%;\n    height: 100%;\n  }\n\n\t\n\n\/* visibility settings *\/\n.elementor-repeater-item-0b77f9c{\n  display: block;\n}\n\n@media only screen and (max-width: 1024px){\n\t.elementor-repeater-item-0b77f9c{\n      display: block;\n    }\n}\n\n@media only screen and (max-width: 767px){\n\t.elementor-repeater-item-0b77f9c{\n      display: none;\n    }\n}\n\/* parallax type background layer settings *\/\n\n  .elementor-repeater-item-3138e4f{\n\tleft: 50%;\n    top: 50%;\n    transform: translate(-50%, -50%);\n  }\n\n  .elementor-repeater-item-3138e4f,\n  .elementor-repeater-item-3138e4f .ue-parallax-item-inner,\n  .elementor-repeater-item-3138e4f .ue-parallax-item{\n\twidth: 100%;\n    height: 100%;\n  }\n\n\t\n\n\/* visibility settings *\/\n.elementor-repeater-item-3138e4f{\n  display: none;\n}\n\n@media only screen and (max-width: 1024px){\n\t.elementor-repeater-item-3138e4f{\n      display: none;\n    }\n}\n\n@media only screen and (max-width: 767px){\n\t.elementor-repeater-item-3138e4f{\n      display: block;\n    }\n}\n\n\n<\/style>\n\n<div id=\"uc_parallax_background_bg_addon37009\" class=\"ue-parallax\">\n  <div class=\"ue-parallax-wrapper\">    \n    <div class=\"ue-parallax-item-wrapper elementor-repeater-item-0b77f9c\">\n  <div class=\"ue-parallax-item-inner\">\n  \n          <img decoding=\"async\" class=\"ue-parallax-item\" src=\"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/texture-background-1-1.jpg\" alt=\"Background with dappled light pattern and tree branch shadows on a white surface.\" \/>\n      \n  <\/div>  \n<\/div>\n<div class=\"ue-parallax-item-wrapper elementor-repeater-item-3138e4f\">\n  <div class=\"ue-parallax-item-inner\">\n  \n          <img decoding=\"async\" class=\"ue-parallax-item\" src=\"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/AdobeStock_892572093.jpg\" alt=\"AdobeStock_892572093\" \/>\n      \n  <\/div>  \n<\/div>\n\n  <\/div>  \n<\/div>\n<script type=\"text\/javascript\"  id=\"ue_script_parallax_background3\">\n\n\/* Parallax Background scripts: *\/ \n\njQuery(document).ready(function(){\nfunction uc_parallax_background_bg_addon37009_start(){\n\t\t\t\n\n  var objParallaxWidget = jQuery(\"#uc_parallax_background_bg_addon37009\");\n  var objItems = objParallaxWidget.find(\".ue-parallax-item\");\n  \n  \/**\n  * get array of orientations\n  *\/\n  \n  var itemsOrientationArray = [\n        \"up\",\n        \"up\",\n      ]; \n\n  \/**\n  * get array of sensitivity\n  *\/\n  var itemsSensitivityArray = [\n        \"1.4\",\n        \"1.4\",\n      ]; \n   \n  \/**\n  * get array of overflows\n  *\/\n  var itemsOverflowArray = [\n        \"false\",\n        \"false\",\n      ]; \n   \n  \/**\n  * get array of delays\n  *\/\n  var itemsDelayArray = [\n        \"0\",\n        \"0\",\n      ];  \n   \n  \/**\n  * get array of transitions\n  *\/\n  var itemsTransitionArray = [\n        \"ease\",\n        \"ease\",\n      ];  \n   \n  \/**\n  * get array of scale directions\n  *\/\n  var itemSizeDirectionsArray = [\n        \"up\",\n        \"up\",\n      ];  \n   \n  \/**\n  * get array of scales\n  *\/\n  var itemSizeArray = [\n        \"0\",\n        \"0\",\n      ];  \n   \n  \/**\n  * get array of rotate directions\n  *\/\n  var itemRotateDirectionsArray = [\n        \"right\",\n        \"right\",\n      ];  \n   \n  \/**\n  * get array of rotates\n  *\/\n  var itemRotateArray = [\n        \"0\",\n        \"0\",\n      ];\n   \n  \/**\n  * get array of opacity directions\n  *\/\n  var itemOpacityDirectionsArray = [\n        \"fade-in\",\n        \"fade-in\",\n      ];  \n   \n  \/**\n  * get array of opacities\n  *\/\n  var itemOpacityArray = [\n        \"0\",\n        \"0\",\n      ];\n\n  \/**\n  * for each item set its own parallax settings\n  *\/\n  objItems.each(function(index, parallaxElement){\n  \n    new simpleParallax(parallaxElement, {\n      \n        delay: itemsDelayArray[index], \/\/delay before transition\n        orientation: itemsOrientationArray[index], \/\/the direction of the transition\n        scale: itemsSensitivityArray[index], \/\/how visible the transition is\n        overflow: itemsOverflowArray[index] === \"true\", \/\/itemsOverflowArray[index] returns string, so make sure it's a boolean value \/ makes overflow hiden for the image container\n        transition: itemsTransitionArray[index], \/\/css transition\n        sizeDirection: itemSizeDirectionsArray[index], \/\/whether element is getting bigger or smaller\n        sizeSpeed: Number(itemSizeArray[index]), \/\/adjust size of the element during scroll using transform scale(n) css property - the bigger number the faster is change \/ make sure you set a number\n      \trotateDirection: itemRotateDirectionsArray[index], \/\/to right or to left\n      \trotateSpeed: Number(itemRotateArray[index]), \/\/how fast is the rotate\n        opacityDirection: itemOpacityDirectionsArray[index], \/\/fade-in \/ fade-out\n        opacityLevel: Number(itemOpacityArray[index]) \/\/how transparent element is (the higher number the more transparent becomes element)\n      \n    });    \n  \n  });\n    \t\n}if(jQuery(\"#uc_parallax_background_bg_addon37009\").length && !jQuery(\"#uc_parallax_background_bg_addon37009\").parents('[data-elementor-type=\"popup\"]').length) uc_parallax_background_bg_addon37009_start();\n\tjQuery( document ).on( 'elementor\/popup\/show', (event, id, objPopup) => {\n\tif(objPopup.$element.has(jQuery(\"#uc_parallax_background_bg_addon37009\")).length) uc_parallax_background_bg_addon37009_start()});\n});\n\t\t\t\n<\/script>\n<!-- end Parallax Background -->\t\t\t<\/template>\n\t\t<\/div>\n\t\t\n\t\t<div class=\"elementor-element elementor-element-9322ef5 e-con-full animated-slow e-flex elementor-invisible e-con e-parent\" data-id=\"9322ef5\" 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-4294124 elementor-hidden-mobile elementor-widget elementor-widget-image\" data-id=\"4294124\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"2560\" height=\"1439\" src=\"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/DSC01471-Edit-1-scaled.jpg\" class=\"attachment-full size-full wp-image-10001\" alt=\"Woman in brown one-piece swimsuit relaxing on a white hammock at Mandarin Oriental Residences and Resort at Kanai.\" srcset=\"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/DSC01471-Edit-1-scaled.jpg 2560w, https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/DSC01471-Edit-1-300x169.jpg 300w, https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/DSC01471-Edit-1-1024x576.jpg 1024w, https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/DSC01471-Edit-1-768x432.jpg 768w, https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/DSC01471-Edit-1-1536x864.jpg 1536w, https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/DSC01471-Edit-1-2048x1151.jpg 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-da5e793 elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-image\" data-id=\"da5e793\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"786\" height=\"660\" src=\"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/AdobeStock_746694675_Preview.jpg\" class=\"attachment-full size-full wp-image-10159\" alt=\"\" srcset=\"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/AdobeStock_746694675_Preview.jpg 786w, https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/AdobeStock_746694675_Preview-300x252.jpg 300w, https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/AdobeStock_746694675_Preview-768x645.jpg 768w\" sizes=\"(max-width: 786px) 100vw, 786px\" \/>\t\t\t\t\t\t\t\t\t\t\t\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-b194478 full-width-text-block e-flex e-con-boxed elementor-invisible e-con e-parent\" data-id=\"b194478\" 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-8ddcaa0 animated-slow elementor-hidden-mobile elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"8ddcaa0\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">A SANCTUARY <span>of<\/span>\n<br>\nBEAUTY, HISTORY\n<br>\n<span>and<\/span> CULTURE<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9745051 animated-slow elementor-hidden-desktop elementor-hidden-tablet elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"9745051\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">A SANCTUARY <span>of<\/span>\n<br>\nBEAUTY, HISTORY\n<br>\n<span>and<\/span> CULTURE<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9a44432 e-con-full animated-slow e-flex elementor-invisible e-con e-child\" data-id=\"9a44432\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;fadeInUp&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5ebfcb6 elementor-widget__width-initial elementor-hidden-mobile elementor-widget elementor-widget-text-editor\" data-id=\"5ebfcb6\" data-element_type=\"widget\" data-e-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\t\t<p>Owners enjoy dedicated Residential Amenities as well as a wide <br \/>array of Hotel Amenities at Mandarin Oriental Residences Kanai, Riviera Maya, which neighbors three more luxury resorts. While this location offers incredible privacy, owners are just a short drive away from a larger world of exploration.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ad6ca79 elementor-widget__width-initial elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-text-editor\" data-id=\"ad6ca79\" data-element_type=\"widget\" data-e-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\t\t<p>Owners enjoy dedicated Residential Amenities as well as a wide array of Hotel Amenities at Mandarin Oriental Kanai, Riviera Maya, which neighbors three more luxury resorts. While this location offers incredible privacy, owners are just a short drive away from a larger world of exploration.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a6a99db elementor-widget elementor-widget-ucaddon_underline_link_hover_effect\" data-id=\"a6a99db\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_underline_link_hover_effect.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Underline Link Hover Effect -->\n\n<style>\/* widget: Underline Link Hover Effect *\/\n\n#uc_underline_link_hover_effect_elementor_a6a99db{\n  display:flex;\n} \n\n#uc_underline_link_hover_effect_elementor_a6a99db a.ue-link{\n  display:flex;\n  position:relative;\n  align-items:center;\n  justify-content:center;\n  text-decoration:none;\n}\n\n#uc_underline_link_hover_effect_elementor_a6a99db a.ue-link:after{\n  content: \"\";\n    width:100%;\n    position:absolute;\n  bottom:0px;\n    left:0px;\n    display: block;\n  transition:1000ms;\n}\n\n#uc_underline_link_hover_effect_elementor_a6a99db a:hover:after{\n    width:0%;\n  }\n\n#uc_underline_link_hover_effect_elementor_a6a99db .ue-link-hover-effect-spacing{\n  transition:1000ms;\n}\n\n#uc_underline_link_hover_effect_elementor_a6a99db .ue-link-hover-effect-text{\n  padding:10px 0px;\n  transition:1000ms;\n}\n\n#uc_underline_link_hover_effect_elementor_a6a99db .ue-link-hover-effect-icon{\n  line-height:1em;\n  transition:1000ms;\n}\n\n#uc_underline_link_hover_effect_elementor_a6a99db .ue-link-hover-effect-icon svg{\n  height:1em;\n  width:1em;\n}\n\n<\/style>\n\n<div id=\"uc_underline_link_hover_effect_elementor_a6a99db\" class=\"ue-link-wrap\">\n  <a class=\"ue-link\" href=\"\/location\/\" >\n    <div class=\"ue-link-hover-effect-text\">DISCOVER THE LOCATION<\/div>\n    <div class=\"ue-link-hover-effect-spacing\"><\/div>\n    <div class=\"ue-link-hover-effect-icon\"><i class=''><\/i><\/div>\n  <\/a>\n<\/div>\n<!-- end Underline Link Hover Effect -->\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<\/div>\n\t\t\t\t<div class=\"unlimited-elements-background-overlay\" data-forid=\"b194478\" data-location=\"back\" style=\"display:none\">\n\t\t\t<template>\n\t\t\t\n<!-- start Parallax Background -->\n<style>\/* widget: Parallax Background *\/\n\n#uc_parallax_background_bg_addon41202{\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  position: absolute;\n}\n\n#uc_parallax_background_bg_addon41202 .ue-parallax-item-wrapper{\n  position: absolute;\n}\n\n#uc_parallax_background_bg_addon41202 .simpleParallax{\n  height: 100%;\n}\n\/* parallax type background layer settings *\/\n\n  .elementor-repeater-item-3caae5d{\n\tleft: 50%;\n    top: 50%;\n    transform: translate(-50%, -50%);\n  }\n\n  .elementor-repeater-item-3caae5d,\n  .elementor-repeater-item-3caae5d .ue-parallax-item-inner,\n  .elementor-repeater-item-3caae5d .ue-parallax-item{\n\twidth: 100%;\n    height: 100%;\n  }\n\n\t\n\n\/* visibility settings *\/\n.elementor-repeater-item-3caae5d{\n  display: block;\n}\n\n@media only screen and (max-width: 1024px){\n\t.elementor-repeater-item-3caae5d{\n      display: block;\n    }\n}\n\n@media only screen and (max-width: 767px){\n\t.elementor-repeater-item-3caae5d{\n      display: none;\n    }\n}\n\/* parallax type background layer settings *\/\n\n  .elementor-repeater-item-2631ab6{\n\tleft: 50%;\n    top: 50%;\n    transform: translate(-50%, -50%);\n  }\n\n  .elementor-repeater-item-2631ab6,\n  .elementor-repeater-item-2631ab6 .ue-parallax-item-inner,\n  .elementor-repeater-item-2631ab6 .ue-parallax-item{\n\twidth: 100%;\n    height: 100%;\n  }\n\n\t\n\n\/* visibility settings *\/\n.elementor-repeater-item-2631ab6{\n  display: none;\n}\n\n@media only screen and (max-width: 1024px){\n\t.elementor-repeater-item-2631ab6{\n      display: none;\n    }\n}\n\n@media only screen and (max-width: 767px){\n\t.elementor-repeater-item-2631ab6{\n      display: block;\n    }\n}\n\n\n<\/style>\n\n<div id=\"uc_parallax_background_bg_addon41202\" class=\"ue-parallax\">\n  <div class=\"ue-parallax-wrapper\">    \n    <div class=\"ue-parallax-item-wrapper elementor-repeater-item-3caae5d\">\n  <div class=\"ue-parallax-item-inner\">\n  \n          <img decoding=\"async\" class=\"ue-parallax-item\" src=\"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/texture-background-2-1.jpg\" alt=\"Background with dappled light pattern and tree branch shadows on a white surface.\" \/>\n      \n  <\/div>  \n<\/div>\n<div class=\"ue-parallax-item-wrapper elementor-repeater-item-2631ab6\">\n  <div class=\"ue-parallax-item-inner\">\n  \n          <img decoding=\"async\" class=\"ue-parallax-item\" src=\"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/AdobeStock_892572093-1.jpg\" alt=\"AdobeStock_892572093\" \/>\n      \n  <\/div>  \n<\/div>\n\n  <\/div>  \n<\/div>\n<script type=\"text\/javascript\"  id=\"ue_script_parallax_background4\">\n\n\/* Parallax Background scripts: *\/ \n\njQuery(document).ready(function(){\nfunction uc_parallax_background_bg_addon41202_start(){\n\t\t\t\n\n  var objParallaxWidget = jQuery(\"#uc_parallax_background_bg_addon41202\");\n  var objItems = objParallaxWidget.find(\".ue-parallax-item\");\n  \n  \/**\n  * get array of orientations\n  *\/\n  \n  var itemsOrientationArray = [\n        \"up\",\n        \"up\",\n      ]; \n\n  \/**\n  * get array of sensitivity\n  *\/\n  var itemsSensitivityArray = [\n        \"1.4\",\n        \"1.4\",\n      ]; \n   \n  \/**\n  * get array of overflows\n  *\/\n  var itemsOverflowArray = [\n        \"false\",\n        \"false\",\n      ]; \n   \n  \/**\n  * get array of delays\n  *\/\n  var itemsDelayArray = [\n        \"0\",\n        \"0\",\n      ];  \n   \n  \/**\n  * get array of transitions\n  *\/\n  var itemsTransitionArray = [\n        \"ease\",\n        \"ease\",\n      ];  \n   \n  \/**\n  * get array of scale directions\n  *\/\n  var itemSizeDirectionsArray = [\n        \"up\",\n        \"up\",\n      ];  \n   \n  \/**\n  * get array of scales\n  *\/\n  var itemSizeArray = [\n        \"0\",\n        \"0\",\n      ];  \n   \n  \/**\n  * get array of rotate directions\n  *\/\n  var itemRotateDirectionsArray = [\n        \"right\",\n        \"right\",\n      ];  \n   \n  \/**\n  * get array of rotates\n  *\/\n  var itemRotateArray = [\n        \"0\",\n        \"0\",\n      ];\n   \n  \/**\n  * get array of opacity directions\n  *\/\n  var itemOpacityDirectionsArray = [\n        \"fade-in\",\n        \"fade-in\",\n      ];  \n   \n  \/**\n  * get array of opacities\n  *\/\n  var itemOpacityArray = [\n        \"0\",\n        \"0\",\n      ];\n\n  \/**\n  * for each item set its own parallax settings\n  *\/\n  objItems.each(function(index, parallaxElement){\n  \n    new simpleParallax(parallaxElement, {\n      \n        delay: itemsDelayArray[index], \/\/delay before transition\n        orientation: itemsOrientationArray[index], \/\/the direction of the transition\n        scale: itemsSensitivityArray[index], \/\/how visible the transition is\n        overflow: itemsOverflowArray[index] === \"true\", \/\/itemsOverflowArray[index] returns string, so make sure it's a boolean value \/ makes overflow hiden for the image container\n        transition: itemsTransitionArray[index], \/\/css transition\n        sizeDirection: itemSizeDirectionsArray[index], \/\/whether element is getting bigger or smaller\n        sizeSpeed: Number(itemSizeArray[index]), \/\/adjust size of the element during scroll using transform scale(n) css property - the bigger number the faster is change \/ make sure you set a number\n      \trotateDirection: itemRotateDirectionsArray[index], \/\/to right or to left\n      \trotateSpeed: Number(itemRotateArray[index]), \/\/how fast is the rotate\n        opacityDirection: itemOpacityDirectionsArray[index], \/\/fade-in \/ fade-out\n        opacityLevel: Number(itemOpacityArray[index]) \/\/how transparent element is (the higher number the more transparent becomes element)\n      \n    });    \n  \n  });\n    \t\n}if(jQuery(\"#uc_parallax_background_bg_addon41202\").length && !jQuery(\"#uc_parallax_background_bg_addon41202\").parents('[data-elementor-type=\"popup\"]').length) uc_parallax_background_bg_addon41202_start();\n\tjQuery( document ).on( 'elementor\/popup\/show', (event, id, objPopup) => {\n\tif(objPopup.$element.has(jQuery(\"#uc_parallax_background_bg_addon41202\")).length) uc_parallax_background_bg_addon41202_start()});\n});\n\t\t\t\n<\/script>\n<!-- end Parallax Background -->\t\t\t<\/template>\n\t\t<\/div>\n\t\t\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>WHERE the SKY was BORN and the EARTH is filled with DISCOVERY WHERE THE SKY was born and THE EARTH is filled with DISCOVERY Bringing the service of Mandarin Oriental to the storied land\u00a0of the Mayans, Mandarin Oriental Residences Kanai, Riviera Maya\u00a0introduces a refined way of living within the natural wonders of Mexico.\u00a0Floating above an [&hellip;]<\/p>\n","protected":false},"author":30,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-9967","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mandarin Oriental Residences Kanai, Riviera Maya<\/title>\n<meta name=\"description\" content=\"Experience Mandarin Oriental Residences Kanai, Riviera Maya, with four private residence collections offering exceptional amenities &amp; Caribbean coastal living.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mo-residencesrivieramaya.com\/es\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mandarin Oriental Residences Kanai, Riviera Maya\" \/>\n<meta property=\"og:description\" content=\"Experience Mandarin Oriental Residences Kanai, Riviera Maya, with four private residence collections offering exceptional amenities &amp; Caribbean coastal living.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mo-residencesrivieramaya.com\/es\/\" \/>\n<meta property=\"og:site_name\" content=\"Mandarin Oriental Residences Kanai, Riviera Maya\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/YerbaBuenaIslandSF\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-01T22:20:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/07\/Group-745-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1572\" \/>\n\t<meta property=\"og:image:height\" content=\"1168\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Mandarin Oriental Residences Kanai, Riviera Maya\" \/>\n<meta name=\"twitter:description\" content=\"Experience Mandarin Oriental Residences Kanai, Riviera Maya, with four private residence collections offering exceptional amenities &amp; Caribbean coastal living.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/07\/Group-745-1.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/\",\"url\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/\",\"name\":\"Mandarin Oriental Residences Kanai, Riviera Maya\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/DSC01471-Edit-1-scaled.jpg\",\"datePublished\":\"2026-06-05T01:22:11+00:00\",\"dateModified\":\"2026-09-01T22:20:09+00:00\",\"description\":\"Experience Mandarin Oriental Residences Kanai, Riviera Maya, with four private residence collections offering exceptional amenities & Caribbean coastal living.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/#primaryimage\",\"url\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/DSC01471-Edit-1-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/DSC01471-Edit-1-scaled.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Home\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/#website\",\"url\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/\",\"name\":\"Mandarin Oriental Residences Kanai, Riviera Maya\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/#organization\",\"name\":\"Mandarin Oriental Residences Kanai, Riviera Maya\",\"url\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/mok-logo-white-1.svg\",\"contentUrl\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/mok-logo-white-1.svg\",\"width\":1344,\"height\":708,\"caption\":\"Mandarin Oriental Residences Kanai, Riviera Maya\"},\"image\":{\"@id\":\"https:\\\/\\\/mo-residencesrivieramaya.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/YerbaBuenaIslandSF\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mandarin Oriental Residences Kanai, Riviera Maya","description":"Experience Mandarin Oriental Residences Kanai, Riviera Maya, with four private residence collections offering exceptional amenities & Caribbean coastal living.","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:\/\/mo-residencesrivieramaya.com\/es\/","og_locale":"es_MX","og_type":"article","og_title":"Mandarin Oriental Residences Kanai, Riviera Maya","og_description":"Experience Mandarin Oriental Residences Kanai, Riviera Maya, with four private residence collections offering exceptional amenities & Caribbean coastal living.","og_url":"https:\/\/mo-residencesrivieramaya.com\/es\/","og_site_name":"Mandarin Oriental Residences Kanai, Riviera Maya","article_publisher":"https:\/\/www.facebook.com\/YerbaBuenaIslandSF","article_modified_time":"2026-09-01T22:20:09+00:00","og_image":[{"width":1572,"height":1168,"url":"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/07\/Group-745-1.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_title":"Mandarin Oriental Residences Kanai, Riviera Maya","twitter_description":"Experience Mandarin Oriental Residences Kanai, Riviera Maya, with four private residence collections offering exceptional amenities & Caribbean coastal living.","twitter_image":"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/07\/Group-745-1.jpg","twitter_misc":{"Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mo-residencesrivieramaya.com\/","url":"https:\/\/mo-residencesrivieramaya.com\/","name":"Mandarin Oriental Residences Kanai, Riviera Maya","isPartOf":{"@id":"https:\/\/mo-residencesrivieramaya.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mo-residencesrivieramaya.com\/#primaryimage"},"image":{"@id":"https:\/\/mo-residencesrivieramaya.com\/#primaryimage"},"thumbnailUrl":"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/DSC01471-Edit-1-scaled.jpg","datePublished":"2026-06-05T01:22:11+00:00","dateModified":"2026-09-01T22:20:09+00:00","description":"Experience Mandarin Oriental Residences Kanai, Riviera Maya, with four private residence collections offering exceptional amenities & Caribbean coastal living.","breadcrumb":{"@id":"https:\/\/mo-residencesrivieramaya.com\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mo-residencesrivieramaya.com\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/mo-residencesrivieramaya.com\/#primaryimage","url":"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/DSC01471-Edit-1-scaled.jpg","contentUrl":"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/DSC01471-Edit-1-scaled.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/mo-residencesrivieramaya.com\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mo-residencesrivieramaya.com\/"},{"@type":"ListItem","position":2,"name":"Home"}]},{"@type":"WebSite","@id":"https:\/\/mo-residencesrivieramaya.com\/#website","url":"https:\/\/mo-residencesrivieramaya.com\/","name":"Mandarin Oriental Residences Kanai, Riviera Maya","description":"","publisher":{"@id":"https:\/\/mo-residencesrivieramaya.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mo-residencesrivieramaya.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/mo-residencesrivieramaya.com\/#organization","name":"Mandarin Oriental Residences Kanai, Riviera Maya","url":"https:\/\/mo-residencesrivieramaya.com\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/mo-residencesrivieramaya.com\/#\/schema\/logo\/image\/","url":"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/mok-logo-white-1.svg","contentUrl":"https:\/\/mo-residencesrivieramaya.com\/wp-content\/uploads\/2026\/06\/mok-logo-white-1.svg","width":1344,"height":708,"caption":"Mandarin Oriental Residences Kanai, Riviera Maya"},"image":{"@id":"https:\/\/mo-residencesrivieramaya.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/YerbaBuenaIslandSF"]}]}},"_links":{"self":[{"href":"https:\/\/mo-residencesrivieramaya.com\/es\/wp-json\/wp\/v2\/pages\/9967","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mo-residencesrivieramaya.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mo-residencesrivieramaya.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mo-residencesrivieramaya.com\/es\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/mo-residencesrivieramaya.com\/es\/wp-json\/wp\/v2\/comments?post=9967"}],"version-history":[{"count":21,"href":"https:\/\/mo-residencesrivieramaya.com\/es\/wp-json\/wp\/v2\/pages\/9967\/revisions"}],"predecessor-version":[{"id":12124,"href":"https:\/\/mo-residencesrivieramaya.com\/es\/wp-json\/wp\/v2\/pages\/9967\/revisions\/12124"}],"wp:attachment":[{"href":"https:\/\/mo-residencesrivieramaya.com\/es\/wp-json\/wp\/v2\/media?parent=9967"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}