{"id":5839,"date":"2025-08-29T17:44:47","date_gmt":"2025-08-29T17:44:47","guid":{"rendered":"https:\/\/bbrivieradevelopment.com\/?page_id=5839"},"modified":"2025-12-22T03:30:52","modified_gmt":"2025-12-22T03:30:52","slug":"xacan","status":"publish","type":"page","link":"https:\/\/bbrivieradevelopment.com\/","title":{"rendered":"XACAN"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5839\" class=\"elementor elementor-5839\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b84e004 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b84e004\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-dfbc987 elementor-hidden-mobile elementor-hidden-tablet\" data-id=\"dfbc987\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c69b0eb elementor-icon-list--layout-inline elementor-align-start elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"c69b0eb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items elementor-inline-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.google.com\/maps\/@20.193839,-87.4587711,19z?entry=ttu&#038;g_ep=EgoyMDI1MDgxMy4wIKXMDSoASAFQAw%3D%3D\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-map-marker-alt\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">XACAN, Playa del Carmen<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"http:\/\/contact.sales@bbrivieradevelopment.com\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"far fa-envelope\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Contact.sales<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/wa.me\/529993602517?text=Hola%20me%20interesa%20adquirir%20una%20propiedad,%20vi%20la%20informaci%C3%B3n%20en%20su%20p%C3%A1gina%20de%20internet\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-phone-volume\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">+52 999 360 2517<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-a750775\" data-id=\"a750775\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-53a37b5 elementor-widget elementor-widget-html\" data-id=\"53a37b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!doctype html>\r\n<html lang=\"es\">\r\n<head>\r\n  <meta charset=\"utf-8\" \/>\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\r\n  <title>BB Riviera Development \u2014 Iconos Sociales<\/title>\r\n  <style>\r\n    \/* ===== Estilos m\u00ednimos para que se vean bonitos ===== *\/\r\n    body{\r\n      margin:0; padding:24px;\r\n      background:#0e0e0f; color:#eee;\r\n      font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;\r\n    }\r\n    .social{\r\n      display:flex;                 \/* antes: inline-flex *\/\r\n      justify-content:flex-end;     \/* \ud83d\udc49 a la derecha *\/\r\n      align-items:center;\r\n      gap:14px;\r\n      width:100%;                   \/* ocupa todo el ancho para poder alinear *\/\r\n    }\r\n    .social a{\r\n      display:inline-flex;\r\n      align-items:center;\r\n      justify-content:center;\r\n      text-decoration:none;\r\n      transition: transform .2s ease, box-shadow .2s ease;\r\n    }\r\n    .social a:hover{\r\n      transform: translateY(-2px);\r\n      box-shadow: 0 10px 22px rgba(0,0,0,.35);\r\n    }\r\n    \/* Iconos exactamente 55x55 *\/\r\n    .social img{\r\n      width:55px; height:55px;\r\n      display:block;\r\n      object-fit:contain;\r\n    }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n\r\n  <div class=\"social\">\r\n    <!-- Instagram -->\r\n    <a href=\"https:\/\/www.instagram.com\/bb_riviera_development\/\"\r\n       target=\"_blank\" rel=\"noopener\" aria-label=\"Instagram BB Riviera Development\">\r\n      <img loading=\"lazy\" decoding=\"async\"\r\n        src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/v982-d3-04-removebg-preview.png\"\r\n        alt=\"Instagram\" width=\"55\" height=\"55\" loading=\"lazy\">\r\n    <\/a>\r\n\r\n    <!-- Facebook -->\r\n    <a href=\"https:\/\/www.facebook.com\/bbrivieradevelopment\/\"\r\n       target=\"_blank\" rel=\"noopener\" aria-label=\"Facebook BB Riviera Development\">\r\n      <img loading=\"lazy\" decoding=\"async\"\r\n        src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/10464408.png\"\r\n        alt=\"Facebook\" width=\"55\" height=\"55\" loading=\"lazy\">\r\n    <\/a>\r\n  <\/div>\r\n\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-abb5308 elementor-section-height-min-height elementor-section-boxed elementor-section-height-default elementor-section-items-middle\" data-id=\"abb5308\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-18682e0\" data-id=\"18682e0\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2f56696 elementor-widget elementor-widget-eli-logo\" data-id=\"2f56696\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eli-logo.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"widget-eli eli-logo\" id=\"eli_49637014\">\r\n    <div class=\"eli_container\">\r\n                    <a href=\"https:\/\/bbrivieradevelopment.com\/\"  class=\"custom-logo-link\">\r\n                <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/BB_Riviera_invertido-removebg-preview.png\" alt=\"portada\">\r\n            <\/a>\r\n            <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-1715325\" data-id=\"1715325\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-329c1c8 elementor-widget__width-auto wl-nav-menu--indicator-classic wl-nav-menu--dropdown-tablet wl-nav-menu__text-align-aside wl-nav-menu--toggle wl-nav-menu--burger elementor-widget elementor-widget-eli-menu\" data-id=\"329c1c8\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;layout&quot;:&quot;horizontal&quot;,&quot;toggle&quot;:&quot;burger&quot;}\" data-widget_type=\"eli-menu.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n        <div class=\"widget-eli elementinvader-addons-for-elementor eli-menu elementor-clickable\" id=\"eli_53068232\">\r\n    <div class=\"eli-container\">\r\n        <div class=\"wl_nav_mask\"><\/div>\r\n                    <nav role=\"navigation\" class=\"wl-nav-menu--main wl-nav-menu__container wl-nav-menu--layout-horizontal\"><div class=\"menu-menu-footer-container\"><ul id=\"menu-1-329c1c8\" class=\"wl-nav-menu wl-nav-menu\"><li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-6008\"><a href=\"https:\/\/bbrivieradevelopment.com\/\" class=\"wl-item\">XACAN<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-6009\"><a href=\"https:\/\/bbrivieradevelopment.com\/?page_id=5584\" class=\"wl-item\">Luar<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-5037\"><a href=\"https:\/\/bbrivieradevelopment.com\/?page_id=3509\" class=\"wl-item\">Home<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-6007\"><a href=\"https:\/\/bbrivieradevelopment.com\/?page_id=6002\" class=\"wl-item\">Blog<\/a>\n<ul class=\"sub-menu wl-nav-menu--dropdown\">\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-6139\"><a href=\"https:\/\/bbrivieradevelopment.com\/?page_id=6113\" class=\"wl-sub-item\">OPTIONS MAPS<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-6292\"><a href=\"https:\/\/bbrivieradevelopment.com\/?page_id=6268\" class=\"wl-sub-item\">Festivals &amp; Cultural Pulse Tulum<\/a><\/li>\n<\/ul>\n<\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-6216\"><a href=\"https:\/\/bbrivieradevelopment.com\/?page_id=6211\" class=\"wl-item\">Contact<\/a>\n<ul class=\"sub-menu wl-nav-menu--dropdown\">\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-7000\"><a href=\"https:\/\/bbrivieradevelopment.com\/?page_id=6995\" class=\"wl-sub-item\">FOLLETO ILUSTRATIVO XACAN<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-7001\"><a href=\"https:\/\/bbrivieradevelopment.com\/?page_id=6987\" class=\"wl-sub-item\">FOLLETO ILUSTRATIVO LUAR<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul><\/div><\/nav>\r\n                    <div class=\"wl-menu-toggle\" role=\"button\" tabindex=\"0\" aria-label=\"Menu Toggle\" aria-expanded=\"false\">\r\n            <i class=\"eicon-menu-bar\"><\/i>                    <\/div>\r\n        <nav class=\"wl-nav-menu--dropdown wl-nav-menu__container\" role=\"navigation\" aria-hidden=\"true\">\r\n            <a href=\"#\" class=\"wl_close-menu\">\r\n                <span class=\"bar1\"><\/span>\r\n                <span class=\"bar3\"><\/span>\r\n            <\/a>\r\n            <div class=\"menu-menu-footer-container\"><ul id=\"menu-1-329c1c8\" class=\"wl-nav-menu wl-nav-menu\"><li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-6008\"><a href=\"https:\/\/bbrivieradevelopment.com\/\" class=\"wl-item\">XACAN<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-6009\"><a href=\"https:\/\/bbrivieradevelopment.com\/?page_id=5584\" class=\"wl-item\">Luar<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-5037\"><a href=\"https:\/\/bbrivieradevelopment.com\/?page_id=3509\" class=\"wl-item\">Home<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-6007\"><a href=\"https:\/\/bbrivieradevelopment.com\/?page_id=6002\" class=\"wl-item\">Blog<\/a>\n<ul class=\"sub-menu wl-nav-menu--dropdown\">\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-6139\"><a href=\"https:\/\/bbrivieradevelopment.com\/?page_id=6113\" class=\"wl-sub-item\">OPTIONS MAPS<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-6292\"><a href=\"https:\/\/bbrivieradevelopment.com\/?page_id=6268\" class=\"wl-sub-item\">Festivals &amp; Cultural Pulse Tulum<\/a><\/li>\n<\/ul>\n<\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-6216\"><a href=\"https:\/\/bbrivieradevelopment.com\/?page_id=6211\" class=\"wl-item\">Contact<\/a>\n<ul class=\"sub-menu wl-nav-menu--dropdown\">\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-7000\"><a href=\"https:\/\/bbrivieradevelopment.com\/?page_id=6995\" class=\"wl-sub-item\">FOLLETO ILUSTRATIVO XACAN<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-7001\"><a href=\"https:\/\/bbrivieradevelopment.com\/?page_id=6987\" class=\"wl-sub-item\">FOLLETO ILUSTRATIVO LUAR<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul><\/div>        <\/nav>\r\n    <\/div>\r\n    \r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-bfd3325 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"bfd3325\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0f4296c\" data-id=\"0f4296c\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-075a606 elementor-widget elementor-widget-video\" data-id=\"075a606\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/www.youtube.com\\\/watch?v=8YMWCf9krFs&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;play_on_mobile&quot;:&quot;yes&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-b9c5236 e-flex e-con-boxed e-con e-parent\" data-id=\"b9c5236\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c49f080 elementor-widget elementor-widget-html\" data-id=\"c49f080\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"utf-8\"\/>\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"\/>\r\n<title>XACAN \u2014 A Sanctuary in the Cenote Zone \u00b7 Riviera Maya (Km 10, Carretera 109)<\/title>\r\n<meta name=\"description\" content=\"XACAN \u2014 Private residential sanctuary in the Riviera Maya's Cenote Zone (Km 10, Federal Hwy 109). Signature design, comfort and sustainability wrapped in jungle and cenotes. Minutes to beaches, Maya Train and Tulum International Airport.\"\/>\r\n\r\n<!-- Geo\/SEO helpers -->\r\n<meta name=\"geo.placename\" content=\"Zona Cenotes, Riviera Maya, Quintana Roo, M\u00e9xico\"\/>\r\n<meta name=\"geo.region\" content=\"MX-ROO\"\/>\r\n\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@300;400;600;800&display=swap\" rel=\"stylesheet\">\r\n\r\n<style>\r\n  :root{\r\n    \/* NOTA: dejamos variables por si usas cards, pero el body ya no pinta fondo *\/\r\n    --bg:#0a1110; --paper:#0f1714; --paper2:#0b1512;\r\n    --line:rgba(255,255,255,.14); --text:#fff; --muted:#cfeee2;\r\n    --accent:#72E0B6; --accent2:#49C49A; --gold:#C7A35A;\r\n    --shadow:0 24px 80px rgba(0,0,0,.55); --radius:18px; --maxw:1200px;\r\n    --frost:rgba(15,23,20,.55);\r\n  }\r\n\r\n  *{box-sizing:border-box}\r\n  html,body{margin:0;height:100%}\r\n\r\n  \/* \u2705 SIN BACKGROUND GENERAL *\/\r\n  body{\r\n    font-family:Poppins,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;\r\n    background:transparent;\r\n    color:var(--text);\r\n  }\r\n\r\n  img{max-width:100%;height:auto;display:block;border-radius:14px;box-shadow:var(--shadow)}\r\n  a{color:var(--accent);text-decoration:none}\r\n  .wrap{max-width:var(--maxw);margin:0 auto;padding:24px}\r\n\r\n  \/* Centered copy (no justify) *\/\r\n  p, li, .lead, .card__meta, blockquote, .feature p, .cols p{ text-align:center; hyphens:none; }\r\n\r\n  \/* Frosted *\/\r\n  .frost{\r\n    background:var(--frost);\r\n    backdrop-filter: blur(8px);\r\n    -webkit-backdrop-filter: blur(8px);\r\n    border:1px solid var(--line);\r\n    border-radius:14px;\r\n    box-shadow:0 10px 40px rgba(0,0,0,.35);\r\n    padding:12px 14px;\r\n  }\r\n  .frost.tight{padding:8px 12px}\r\n  .hero .frost{display:inline-block; margin-inline:auto}\r\n\r\n  \/* \u2705 HERO SIN BACKGROUND (sin imagen, sin overlay) *\/\r\n  .hero{\r\n    position:relative;\r\n    min-height:74vh;\r\n    display:grid;\r\n    place-items:center;\r\n    overflow:hidden;\r\n    background:transparent;\r\n  }\r\n  \/* eliminamos reglas del bg image porque ya no existe *\/\r\n  \/* .hero img.bg{...} *\/\r\n\r\n  \/* eliminamos overlay *\/\r\n  \/* .hero::after{...} *\/\r\n\r\n  .hero__inner{position:relative;z-index:2;max-width:var(--maxw);padding:24px;text-align:center}\r\n  .hero__inner > *{margin-left:auto;margin-right:auto}\r\n  .kicker{display:inline-block;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.06);font-weight:800}\r\n  h1.title{font-size:clamp(34px,6vw,70px);line-height:1.06;margin:12px 0 6px;text-align:center}\r\n  .sub{font-size:clamp(18px,2.2vw,22px);max-width:980px;opacity:.95;margin-inline:auto}\r\n  .tagline{margin-top:10px;font-weight:600;opacity:.95}\r\n\r\n  \/* Buttons *\/\r\n  .btn{display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border-radius:999px;border:0;cursor:pointer;font-weight:800;box-shadow:var(--shadow)}\r\n  .btn.primary{background:linear-gradient(90deg,var(--accent),var(--accent2));color:#05251b}\r\n  .btn.ghost{background:rgba(255,255,255,.06);color:#fff;border:2px solid rgba(255,255,255,.7)}\r\n  .btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}\r\n\r\n  .cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px;justify-content:center}\r\n\r\n  \/* Sections *\/\r\n  section{padding:48px 0}\r\n  h2.section-title{font-size:clamp(26px,3.8vw,44px);margin:0 0 10px;text-align:center}\r\n  .lead{font-size:clamp(16px,2.1vw,20px);color:#eafff6;opacity:.95}\r\n\r\n  .grid{display:grid;gap:18px}\r\n  .cols-2{grid-template-columns:1.1fr .9fr}\r\n  .cols-3{grid-template-columns:repeat(3,1fr)}\r\n  .cols-4{grid-template-columns:repeat(4,1fr)}\r\n  @media (max-width:980px){.cols-2,.cols-3,.cols-4{grid-template-columns:1fr}}\r\n\r\n  .card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}\r\n  .card__body{padding:16px}\r\n\r\n  \/* Feature rows *\/\r\n  .feature{display:grid;grid-template-columns:1fr;gap:20px;align-items:start}\r\n  .quote{background:linear-gradient(90deg,rgba(114,224,182,.08),rgba(199,163,90,.08));border:1px solid var(--line);border-radius:18px;padding:16px}\r\n\r\n  \/* Image polish *\/\r\n  .card > img{aspect-ratio:16\/10;object-fit:cover;transition:transform .35s ease, filter .35s ease}\r\n  .card:hover > img{transform:scale(1.03);filter:contrast(1.03) saturate(1.03)}\r\n\r\n  .gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}\r\n  @media (max-width:980px){.gallery{grid-template-columns:1fr 1fr}}\r\n  @media (max-width:600px){.gallery{grid-template-columns:1fr}}\r\n  .gallery img{aspect-ratio:4\/3;object-fit:cover;border:1px solid var(--line);transition:transform .35s ease, filter .35s ease, box-shadow .35s ease}\r\n  .gallery img:hover{transform:translateY(-2px) scale(1.02);filter:contrast(1.04) saturate(1.04);box-shadow:0 20px 60px rgba(0,0,0,.45)}\r\n\r\n  .cols{display:grid;gap:18px;grid-template-columns:repeat(2,1fr)}\r\n  @media (max-width:900px){.cols{grid-template-columns:1fr}}\r\n\r\n  \/* Footer CTA *\/\r\n  .cta-band{background:var(--paper2);border:1px solid var(--line);border-radius:18px;padding:18px;display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:center}\r\n  @media (max-width:980px){.cta-band{grid-template-columns:1fr}}\r\n  .cta-band .lead{text-align:center}\r\n\r\n  footer{padding:36px 0 60px;opacity:.9}\r\n\r\n  \/* Villas grid *\/\r\n  .villa-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}\r\n  @media (max-width:900px){.villa-grid{grid-template-columns:1fr}}\r\n  .villa-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);cursor:pointer;transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease}\r\n  .villa-card:hover{transform:translateY(-2px);box-shadow:0 28px 80px rgba(0,0,0,.55);border-color:rgba(255,255,255,.22)}\r\n  .villa-media{ position:relative; }\r\n  .villa-media img{width:100%;aspect-ratio:5\/3;object-fit:cover;border-radius:0}\r\n  .villa-bar{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:2px;padding:12px 14px;background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.55) 70%, rgba(0,0,0,.75) 100%);color:#fff;text-align:left}\r\n  .villa-bar strong{ font-weight:800; letter-spacing:.2px; }\r\n  .villa-bar span{ font-weight:600; font-size:.95rem; color:#d7fff0; opacity:.95; }\r\n\r\n  \/* Lightbox *\/\r\n  .xacan-lightbox{position:fixed; inset:0; background:rgba(0,0,0,.9); display:none; align-items:center; justify-content:center; z-index:9999;}\r\n  .xacan-lightbox.open{ display:flex; }\r\n  .xacan-lightbox .frame{max-width:min(92vw,1200px); width:100%; position:relative; padding:10px 38px;}\r\n  .xacan-lightbox img{width:100%; height:auto; border-radius:10px; box-shadow:0 10px 40px rgba(0,0,0,.6);}\r\n  .xcl-nav, .xcl-close{position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25); padding:10px 14px; border-radius:999px; cursor:pointer; user-select:none; backdrop-filter: blur(4px); color:#fff; font-size:24px; line-height:1;}\r\n  .xcl-close{ top:14px; right:14px; transform:none; font-size:20px }\r\n  .xcl-prev{ left:0; } .xcl-next{ right:0; }\r\n  @media (max-width:768px){.xcl-prev{ left:6px; } .xcl-next{ right:6px; }}\r\n\r\n  \/* Currency toggle *\/\r\n  .toolbar{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;margin:12px 0}\r\n  .chip{border:1px solid var(--line);background:rgba(255,255,255,.06);padding:6px 10px;border-radius:999px;font-weight:700;font-size:.9rem;cursor:pointer}\r\n  .chip.active{background:linear-gradient(90deg,var(--accent),var(--accent2));color:#05251b;border-color:transparent}\r\n  .toolbar input{width:82px;background:transparent;border:1px solid var(--line);color:#fff;border-radius:8px;padding:6px 8px;text-align:center}\r\n  .note{font-size:.9rem;opacity:.85;text-align:center}\r\n\r\n  \/* Mobile polish for hero *\/\r\n  @media (max-width:640px){\r\n    .hero{min-height:68vh;padding-block:16px}\r\n    .kicker{font-size:.9rem}\r\n    h1.title{font-size:clamp(28px,9vw,42px)}\r\n    .sub{font-size:clamp(16px,4.2vw,18px)}\r\n    .tagline{font-size:.95rem}\r\n  }\r\n\r\n  \/* =========================================================\r\n     \ud83d\udd25 SWITCH OPCIONAL:\r\n     Si quieres TODO transparente (cards y frost tambi\u00e9n),\r\n     descomenta este bloque.\r\n  ========================================================= *\/\r\n  \/*\r\n  .frost, .card, .cta-band, .villa-card, .quote{\r\n    background: transparent !important;\r\n    box-shadow: none !important;\r\n    border-color: transparent !important;\r\n    backdrop-filter: none !important;\r\n    -webkit-backdrop-filter: none !important;\r\n  }\r\n  *\/\r\n<\/style>\r\n<\/head>\r\n\r\n<body>\r\n\r\n  <!-- HERO -->\r\n  <section class=\"hero\" aria-label=\"Hero\">\r\n    <!-- \u2705 BG IMAGE REMOVED -->\r\n    <div class=\"hero__inner\">\r\n      <span class=\"kicker frost tight\">XACAN \u00b7 Riviera Maya \u2014 Zona Cenotes (Km 10, Carretera 109)<\/span>\r\n      <h1 class=\"title frost\">A Sanctuary in the Heart of the Riviera Maya<\/h1>\r\n      <p class=\"sub frost\">Design. Comfort. Sustainability \u2014 wrapped in jungle and cenotes.<\/p>\r\n      <p class=\"tagline frost\"><em>Not a project \u2014 your next smart investment.<\/em><\/p>\r\n      <div class=\"cta-row\">\r\n        <a class=\"btn primary\" href=\"https:\/\/wa.me\/529993602517?text=I%20want%20XACAN%20information%20and%20availability\" target=\"_blank\" rel=\"noopener\">WhatsApp \u00b7 Talk to a Specialist<\/a>\r\n        <a class=\"btn ghost\" href=\"#about\">Discover More<\/a>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <main class=\"wrap\">\r\n    <!-- ABOUT -->\r\n    <section id=\"about\" aria-label=\"About XACAN\">\r\n      <div class=\"frost\">\r\n        <h2 class=\"section-title\" style=\"margin-top:0\">XACAN: the new way to live the Riviera Maya \u2014 Cenote Zone<\/h2>\r\n        <p class=\"lead\" style=\"margin-bottom:0\">\r\n          For those who want more than a property: a lifestyle. Exclusive area, easy access, and minutes to beaches,\r\n          cenotes, the Maya Train and Tulum International Airport.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"feature\" style=\"margin-top:12px\">\r\n        <div class=\"card\">\r\n          <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/cenote-atik-imagen.jpg\" alt=\"Cenote near XACAN\" loading=\"lazy\">\r\n        <\/div>\r\n        <div class=\"frost\">\r\n          <div class=\"quote\" style=\"margin-bottom:10px\">\r\n            <p style=\"margin:0\">\r\n              Signature villas that breathe with the jungle \u2014 generous space, modern comfort, and real returns.\r\n            <\/p>\r\n          <\/div>\r\n          <ul class=\"meta\" style=\"margin:10px 0 0 0; padding-left:0; list-style:none\">\r\n            <li>Only <strong>31 lots<\/strong> \u2014 privacy built-in.<\/li>\r\n            <li>Surrounded by living nature \u2014 the mystique of the Riviera Maya\u2019s cenote ring.<\/li>\r\n          <\/ul>\r\n        <\/div>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- LOCATION -->\r\n    <section aria-label=\"Location\">\r\n      <div class=\"frost\">\r\n        <h2 class=\"section-title\" style=\"margin-top:0\">Prime & Unbeatable Location<\/h2>\r\n        <p class=\"lead\" style=\"margin-bottom:0\">\r\n          Km <strong>10<\/strong> (Federal Hwy 109) \u00b7 ~250 m from the highway. Low-density area within the Riviera Maya\u2019s Cenote Zone \u2014 effortless connection to everything.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"grid cols-3\" style=\"margin-top:14px\">\r\n        <div class=\"card\">\r\n          <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/ubicacion-xacan.jpg\" alt=\"Connectivity map for XACAN\" loading=\"lazy\">\r\n          <div class=\"card__body frost\">\r\n            <div class=\"card__title\" style=\"text-align:center\">Effortless Connectivity<\/div>\r\n            <p class=\"card__meta\">Minutes to beaches, Maya Train and TQO Airport.<\/p>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"card\">\r\n          <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/Brochure-Xacan-LotesyVillas_-folletos-usar-esto_page-0007.jpg\" alt=\"Jungle gym render\" loading=\"lazy\">\r\n          <div class=\"card__body frost\">\r\n            <div class=\"card__title\" style=\"text-align:center\">Well-Being Amenities<\/div>\r\n            <p class=\"card__meta\">Fire Pit \u00b7 Temazcal \u00b7 Paddle \u00b7 Jungle Gym \u00b7 Kids \u00b7 Yoga \u00b7 Pet Park \u00b7 Mini Golf \u00b7 Path to Cenote Atik.<\/p>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"card\">\r\n          <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/XACAN-DISPONIBILIDAD-09-AGO-2025_page-0001.jpg\" alt=\"XACAN masterplan\" loading=\"lazy\">\r\n          <div class=\"card__body frost\">\r\n            <div class=\"card__title\" style=\"text-align:center\">Masterplan \u00b7 31 Lots<\/div>\r\n            <p class=\"card__meta\">Low density, privacy and preserved green corridors.<\/p>\r\n            <a class=\"btn ghost\" href=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/XACAN-DISPONIBILIDAD-09-AGO-2025.pdf\">Discover More<\/a>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- LIVING & INVESTMENT -->\r\n    <section aria-label=\"Living and Investment\">\r\n      <div class=\"frost\">\r\n        <h2 class=\"section-title\" style=\"margin-top:0\">Privacy, Design & Capital Appreciation<\/h2>\r\n        <p class=\"lead\" style=\"margin-bottom:0\">\r\n          A private environment with real amenities and generous landscaping. Live, vacation or rent \u2014 value that compounds.\r\n        <\/p>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- VILLAS & FINISHES -->\r\n    <section aria-label=\"Villas & Finishes\">\r\n      <div class=\"frost\">\r\n        <h2 class=\"section-title\" style=\"margin-top:0\">XACAN Villas: design, nature & sophistication<\/h2>\r\n        <p class=\"lead\" style=\"margin-top:0\">Crafted for the jungle. Built for comfort. Ready for ROI.<\/p>\r\n        <div class=\"cols\">\r\n          <div>\r\n            <h3 class=\"frost tight\" style=\"margin:6px 0 6px; text-align:center;\">Premium finishes<\/h3>\r\n            <ul style=\"margin:0 0 10px 0; list-style:none; padding-left:0\">\r\n              <li>Natural <strong>chukum<\/strong> walls and finishes.<\/li>\r\n              <li>Doors & closets in <strong>local woods<\/strong>.<\/li>\r\n              <li><strong>Designer kitchens<\/strong> with granite & electric cooktop.<\/li>\r\n              <li><strong>Luxury bathrooms<\/strong> with tempered glass & matte-black fixtures.<\/li>\r\n            <\/ul>\r\n          <\/div>\r\n          <div>\r\n            <h3 class=\"frost tight\" style=\"margin:6px 0 6px; text-align:center;\">Comfort & eco-tech<\/h3>\r\n            <ul style=\"margin:0 0 10px 0; list-style:none; padding-left:0\">\r\n              <li>Architectural <strong>reinforced-concrete pool<\/strong>.<\/li>\r\n              <li><strong>Inverter A\/C<\/strong> + ceiling fans.<\/li>\r\n              <li>Smart-lock ready & laundry provision.<\/li>\r\n              <li><strong>LED lighting<\/strong> + <strong>biodigester<\/strong>.<\/li>\r\n            <\/ul>\r\n          <\/div>\r\n        <\/div>\r\n        <p class=\"lead\" style=\"margin-bottom:0\">Serenity of the jungle. Minimalist design. Lasting value.<\/p>\r\n      <\/div>\r\n\r\n      <!-- Currency toggle (interactive) -->\r\n      <div class=\"toolbar\">\r\n        <span class=\"note\">Currency:<\/span>\r\n        <button class=\"chip active\" id=\"mxnBtn\">MXN<\/button>\r\n        <button class=\"chip\" id=\"usdBtn\">USD<\/button>\r\n        <span class=\"note\">Rate<\/span>\r\n        <input id=\"rate\" type=\"number\" step=\"0.01\" value=\"18.00\" title=\"Exchange rate MXN\u2192USD\"\/>\r\n      <\/div>\r\n      <p class=\"note\">* Villa price shown. Add your selected lot value to get the total.<\/p>\r\n\r\n      <!-- Villas gallery -->\r\n      <div class=\"villa-grid\" style=\"margin-top:14px\">\r\n        <article class=\"villa-card\" data-type=\"single\" data-price-mxn=\"5670000\"\r\n                 data-full=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/Brochure-Xacan-LotesyVillas_-folletos-usar-esto_page-0034.jpg\">\r\n          <div class=\"villa-media\">\r\n            <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/Brochure-Xacan-LotesyVillas_-folletos-usar-esto_page-0033.jpg\" alt=\"Villa Ha\u00b4na render\" loading=\"lazy\">\r\n            <div class=\"villa-bar\">\r\n              <strong>Villa Ha\u00b4na<\/strong>\r\n              <span class=\"price\">From 5,670,000 MXN \u00b7 Plus lot value<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/article>\r\n\r\n        <article class=\"villa-card\" data-type=\"single\" data-price-mxn=\"7950000\"\r\n                 data-full=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/imagen-toh-plano.jpg\">\r\n          <div class=\"villa-media\">\r\n            <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/imahen-toh-promocional.jpg\" alt=\"Villa TOH render\" loading=\"lazy\">\r\n            <div class=\"villa-bar\">\r\n              <strong>Villa TOH<\/strong>\r\n              <span class=\"price\">From 7,950,000 MXN \u00b7 Plus lot value<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/article>\r\n\r\n        <article class=\"villa-card\" data-type=\"single\" data-price-mxn=\"3780000\"\r\n                 data-full=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/imagen-kek-plano.jpg\">\r\n          <div class=\"villa-media\">\r\n            <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/imagen-kek-promo.jpg\" alt=\"Villa KEK render\" loading=\"lazy\">\r\n            <div class=\"villa-bar\">\r\n              <strong>Villa KEK<\/strong>\r\n              <span class=\"price\">From 3,780,000 MXN \u00b7 Plus lot value<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/article>\r\n\r\n        <article class=\"villa-card\" data-type=\"single\" data-price-mxn=\"9480000\"\r\n                 data-full=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/imagen-plano-kaan.jpg\">\r\n          <div class=\"villa-media\">\r\n            <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/imagen-kaan-prmo.jpg\" alt=\"Villa KAAN render\" loading=\"lazy\">\r\n            <div class=\"villa-bar\">\r\n              <strong>Villa KAAN<\/strong>\r\n              <span class=\"price\">From 9,480,000 MXN \u00b7 Plus lot value<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/article>\r\n\r\n        <article class=\"villa-card\" data-type=\"single\" data-price-mxn=\"9880000\"\r\n                 data-full=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/imagen-plano-chaak.jpg\">\r\n          <div class=\"villa-media\">\r\n            <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/imagen-chaak.jpg\" alt=\"Villa CHAAK render\" loading=\"lazy\">\r\n            <div class=\"villa-bar\">\r\n              <strong>Villa CHAAK<\/strong>\r\n              <span class=\"price\">From 9,880,000 MXN \u00b7 Plus lot value<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/article>\r\n\r\n        <article class=\"villa-card\" data-type=\"single\" data-price-mxn=\"10790000\"\r\n                 data-full=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/plano-chaak-3-recamaras.jpg\">\r\n          <div class=\"villa-media\">\r\n            <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/imagen-chaak-promo.jpg\" alt=\"Villa CHAAK Roof render\" loading=\"lazy\">\r\n            <div class=\"villa-bar\">\r\n              <strong>Villa CHAAK Roof<\/strong>\r\n              <span class=\"price\">From 10,790,000 MXN \u00b7 Plus lot value<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/article>\r\n\r\n        <article class=\"villa-card\" data-type=\"single\" data-price-mxn=\"12150000\"\r\n                 data-full=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/plano-balam.jpg\">\r\n          <div class=\"villa-media\">\r\n            <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/imagen-balam.jpg\" alt=\"Villa BALAM render\" loading=\"lazy\">\r\n            <div class=\"villa-bar\">\r\n              <strong>Villa BALAM<\/strong>\r\n              <span class=\"price\">From 12,150,000 MXN \u00b7 Plus lot value<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/article>\r\n\r\n        <article class=\"villa-card\" data-type=\"group\" data-price-mxn=\"18790000\"\r\n                 data-group='[\r\n                   \"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/plano-ankaa.jpg\",\r\n                   \"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/plano-ankaa-3.jpg\",\r\n                   \"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/plano-ankaa-2.jpg\"\r\n                 ]'>\r\n          <div class=\"villa-media\">\r\n            <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/imagen-kaan-prmo.jpg\" alt=\"Villa ANKAA render\" loading=\"lazy\">\r\n            <div class=\"villa-bar\">\r\n              <strong>Villa ANKAA<\/strong>\r\n              <span class=\"price\">From 18,790,000 MXN \u00b7 Plus lot value<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/article>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- CTA BAND -->\r\n    <section aria-label=\"Call to action\">\r\n      <div class=\"cta-band frost\">\r\n        <div>\r\n          <h2 class=\"section-title\" style=\"margin:0 0 8px\">Luxury, nature & gain \u2014 in harmony<\/h2>\r\n          <p class=\"lead\" style=\"margin:0\">Check live availability, models and investment options today.<\/p>\r\n        <\/div>\r\n        <div style=\"display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center\">\r\n          <a class=\"btn primary\" href=\"https:\/\/bbrivieradevelopment.com\/?page_id=6113\" target=\"_blank\" rel=\"noopener\">See Live Availability<\/a>\r\n          <a class=\"btn ghost\" href=\"https:\/\/wa.me\/529993602517?text=I'm%20interested%20in%20XACAN%20villas%20and%20lots\" target=\"_blank\" rel=\"noopener\">WhatsApp \u00b7 Get Details<\/a>\r\n        <\/div>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- FINAL STATEMENT -->\r\n    <section aria-label=\"Final\">\r\n      <div class=\"card frost\" style=\"background:linear-gradient(90deg,rgba(114,224,182,.10),rgba(199,163,90,.10));border:1px solid var(--line)\">\r\n        <div class=\"card__body\">\r\n          <h2 class=\"section-title\" style=\"margin:0 0 6px\">Not just a project \u2014 a life upgrade<\/h2>\r\n          <p class=\"lead\" style=\"margin:0\">Jungle energy, Caribbean calm, and a smart, long-term asset.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n    <\/section>\r\n  <\/main>\r\n\r\n  <!-- FOOTER -->\r\n  <footer class=\"wrap\" aria-label=\"Footer\">\r\n    <div class=\"grid cols-2 frost\" style=\"align-items:center\">\r\n      <div style=\"text-align:center\">\r\n        <p class=\"meta\" style=\"margin:0\">Direct contact<\/p>\r\n        <h3 style=\"margin:6px 0 6px\">+52 999 360 2517<\/h3>\r\n        <p class=\"meta\">We\u2019ll share updated masterplans, regulations and price lists.<\/p>\r\n      <\/div>\r\n      <div style=\"display:flex;gap:10px;justify-content:center;flex-wrap:wrap\">\r\n        <a class=\"btn primary\" href=\"https:\/\/wa.me\/529993602517?text=Hello%20XACAN%20team%2C%20I'd%20like%20to%20learn%20more\" target=\"_blank\" rel=\"noopener\">Chat on WhatsApp<\/a>\r\n        <a class=\"btn ghost\" href=\"#top\">Back to top<\/a>\r\n      <\/div>\r\n    <\/div>\r\n  <\/footer>\r\n\r\n  <!-- JS: lightbox + currency toggle + auto-rate -->\r\n  <script>\r\n    (function(){\r\n      \/\/ ===== Lightbox =====\r\n      const grid = document.querySelector('.villa-grid');\r\n      if(grid){\r\n        const lb = document.createElement('div');\r\n        lb.className = 'xacan-lightbox';\r\n        lb.innerHTML = `\r\n          <div class=\"frame\">\r\n            <button class=\"xcl-close\" aria-label=\"Close\">\u2715<\/button>\r\n            <button class=\"xcl-nav xcl-prev\" aria-label=\"Previous\">\u2039<\/button>\r\n            <img alt=\"Villa plan\"\/>\r\n            <button class=\"xcl-nav xcl-next\" aria-label=\"Next\">\u203a<\/button>\r\n          <\/div>`;\r\n        document.body.appendChild(lb);\r\n\r\n        const imgEl   = lb.querySelector('img');\r\n        const btnPrev = lb.querySelector('.xcl-prev');\r\n        const btnNext = lb.querySelector('.xcl-next');\r\n        const btnClose= lb.querySelector('.xcl-close');\r\n\r\n        let group = [], index = 0;\r\n\r\n        function openLightbox(arr, start=0){\r\n          group = arr; index = start;\r\n          updateImage();\r\n          lb.classList.add('open');\r\n          document.body.style.overflow = 'hidden';\r\n        }\r\n        function closeLightbox(){\r\n          lb.classList.remove('open');\r\n          document.body.style.overflow = '';\r\n        }\r\n        function updateImage(){\r\n          imgEl.src = group[index];\r\n          btnPrev.style.display = group.length > 1 ? 'block' : 'none';\r\n          btnNext.style.display = group.length > 1 ? 'block' : 'none';\r\n        }\r\n        function next(){ index = (index+1) % group.length; updateImage(); }\r\n        function prev(){ index = (index-1+group.length) % group.length; updateImage(); }\r\n\r\n        grid.addEventListener('click', (e)=>{\r\n          const card = e.target.closest('.villa-card'); if(!card) return;\r\n          const type = card.dataset.type;\r\n          if(type === 'group'){\r\n            const arr = JSON.parse(card.dataset.group);\r\n            openLightbox(arr, 0);\r\n          } else {\r\n            const url = card.dataset.full;\r\n            openLightbox([url], 0);\r\n          }\r\n        });\r\n\r\n        btnClose.addEventListener('click', closeLightbox);\r\n        btnNext.addEventListener('click', next);\r\n        btnPrev.addEventListener('click', prev);\r\n        lb.addEventListener('click', (e)=>{ if(e.target === lb) closeLightbox(); });\r\n        document.addEventListener('keydown', (e)=>{\r\n          if(!lb.classList.contains('open')) return;\r\n          if(e.key === 'Escape') closeLightbox();\r\n          if(e.key === 'ArrowRight') next();\r\n          if(e.key === 'ArrowLeft')  prev();\r\n        });\r\n      }\r\n\r\n      \/\/ ===== Currency toggle =====\r\n      const mxnBtn = document.getElementById('mxnBtn');\r\n      const usdBtn = document.getElementById('usdBtn');\r\n      const rateEl = document.getElementById('rate');\r\n      let mode = 'MXN';\r\n\r\n      function formatMXN(v){ return v.toLocaleString('es-MX',{style:'currency',currency:'MXN',maximumFractionDigits:0}); }\r\n      function formatUSD(v){ return v.toLocaleString('en-US',{style:'currency',currency:'USD',maximumFractionDigits:0}); }\r\n\r\n      function paintPrices(){\r\n        document.querySelectorAll('.villa-card').forEach(card=>{\r\n          const p = Number(card.dataset.priceMxn || card.getAttribute('data-price-mxn'));\r\n          const el = card.querySelector('.price');\r\n          if(!el || !p) return;\r\n          if(mode==='MXN'){\r\n            el.textContent = `From ${formatMXN(p)} \u00b7 Plus lot value`;\r\n          }else{\r\n            const rate = Math.max(0.01, Number(rateEl?.value||18));\r\n            el.textContent = `From ${formatUSD(p\/rate)} \u00b7 Plus lot value`;\r\n          }\r\n        });\r\n      }\r\n\r\n      mxnBtn?.addEventListener('click',()=>{ mode='MXN'; mxnBtn.classList.add('active'); usdBtn.classList.remove('active'); paintPrices(); });\r\n      usdBtn?.addEventListener('click',()=>{ mode='USD'; usdBtn.classList.add('active'); mxnBtn.classList.remove('active'); paintPrices(); });\r\n      rateEl?.addEventListener('input', paintPrices);\r\n\r\n      \/\/ ===== Auto-rate del d\u00eda (USD\u2192MXN) =====\r\n      const CACHE_KEY = 'usd_mxn_rate';\r\n      const CACHE_TTL_MS = 12 * 60 * 60 * 1000; \/\/ 12h\r\n\r\n      async function fetchWithTimeout(url, ms=5000){\r\n        const ctrl = new AbortController();\r\n        const id = setTimeout(()=>ctrl.abort(), ms);\r\n        try{\r\n          const res = await fetch(url, {signal: ctrl.signal});\r\n          if(!res.ok) throw new Error('HTTP '+res.status);\r\n          return await res.json();\r\n        } finally { clearTimeout(id); }\r\n      }\r\n\r\n      async function getLiveRateUSDToMXN(){\r\n        try{\r\n          const j = await fetchWithTimeout('https:\/\/api.exchangerate.host\/latest?base=USD&symbols=MXN');\r\n          if(j && j.rates && j.rates.MXN) return j.rates.MXN;\r\n        }catch(e){}\r\n        try{\r\n          const j = await fetchWithTimeout('https:\/\/api.frankfurter.app\/latest?from=USD&to=MXN');\r\n          if(j && j.rates && j.rates.MXN) return j.rates.MXN;\r\n        }catch(e){}\r\n        try{\r\n          const j = await fetchWithTimeout('https:\/\/open.er-api.com\/v6\/latest\/USD');\r\n          if(j && j.result==='success' && j.rates && j.rates.MXN) return j.rates.MXN;\r\n        }catch(e){}\r\n        throw new Error('No se pudo obtener el tipo de cambio.');\r\n      }\r\n\r\n      function readCachedRate(){\r\n        try{\r\n          const raw = localStorage.getItem(CACHE_KEY);\r\n          if(!raw) return null;\r\n          const {v, t} = JSON.parse(raw);\r\n          if(Date.now() - t < CACHE_TTL_MS) return Number(v);\r\n        }catch(e){}\r\n        return null;\r\n      }\r\n\r\n      function writeCachedRate(v){\r\n        try{ localStorage.setItem(CACHE_KEY, JSON.stringify({v, t: Date.now()})); }catch(e){}\r\n      }\r\n\r\n      async function updateRate(auto=true){\r\n        const cached = readCachedRate();\r\n        if(cached && auto){\r\n          rateEl.value = cached.toFixed(2);\r\n          paintPrices();\r\n          return;\r\n        }\r\n        try{\r\n          const v = await getLiveRateUSDToMXN();\r\n          rateEl.value = Number(v).toFixed(2);\r\n          writeCachedRate(v);\r\n          paintPrices();\r\n        }catch(e){\r\n          if(!rateEl.value) rateEl.value = '18.00';\r\n          paintPrices();\r\n          console.warn('Tipo de cambio no disponible, usando fallback:', e);\r\n        }\r\n      }\r\n\r\n      \/\/ Bot\u00f3n manual \"Actualizar\" junto al input\r\n      (function addRefreshButton(){\r\n        if(!rateEl) return;\r\n        const btn = document.createElement('button');\r\n        btn.type = 'button';\r\n        btn.className = 'chip';\r\n        btn.textContent = 'Actualizar';\r\n        btn.style.marginLeft = '6px';\r\n        btn.addEventListener('click', ()=>updateRate(false));\r\n        rateEl.insertAdjacentElement('afterend', btn);\r\n      })();\r\n\r\n      \/\/ Init\r\n      function init(){\r\n        paintPrices();\r\n        updateRate(true);\r\n      }\r\n      init();\r\n    })();\r\n  <\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f424665 e-flex e-con-boxed e-con e-parent\" data-id=\"f424665\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-525a41b elementor-widget elementor-widget-html\" data-id=\"525a41b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"utf-8\"\/>\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"\/>\r\n<title>XACAN \u2013 Live Availability \u00b7 Lots \u00b7 Macrolots | Riviera Maya \u2014 Cenote Zone (Km 10, Carretera 109)<\/title>\r\n<meta name=\"description\" content=\"XACAN \u2014 Live availability in the Riviera Maya's Cenote Zone (Km 10, Federal Hwy 109). Clean map, responsive, mobile-first. Minutes to beaches, Maya Train and Tulum International Airport.\"\/>\r\n\r\n<!-- Geo\/SEO helpers -->\r\n<meta name=\"geo.placename\" content=\"Zona Cenotes, Riviera Maya, Quintana Roo, M\u00e9xico\"\/>\r\n<meta name=\"geo.region\" content=\"MX-ROO\"\/>\r\n\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@300;400;600;800&display=swap\" rel=\"stylesheet\">\r\n\r\n<style>\r\n  :root{\r\n    --green:#72E0B6; --green-2:#49C49A; --accent:#C7A35A;\r\n    --bg:#0b0f0e; --white:#FFFFFF; --ink:#FFFFFF; --muted:#eaf7f2;\r\n    --paper:rgba(16,20,19,.85); --paper-2:rgba(16,20,19,.96);\r\n    --line:rgba(255,255,255,.14); --shadow:0 24px 70px rgba(0,0,0,.45);\r\n    --radius:16px; --maxw:1200px;\r\n    --pin-size:34px;\r\n  }\r\n\r\n  *,*::before,*::after{box-sizing:border-box}\r\n  html,body{margin:0;height:100%;scroll-behavior:smooth}\r\n\r\n  \/* \u2705 BACKGROUND REMOVED *\/\r\n  body{\r\n    font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;\r\n    color:var(--ink);\r\n    background:transparent;\r\n    overflow-x:hidden;\r\n  }\r\n\r\n  :where(p,li,blockquote,figcaption,small,label,.lead,.card__meta){\r\n    text-align:justify; text-justify:inter-word;\r\n  }\r\n  h1,h2,h3,.section-title,.card__title,.hero__title,.hero__subtitle{\r\n    text-align:center !important;\r\n  }\r\n\r\n  a{color:var(--green);text-decoration:none}\r\n  img{max-width:100%;height:auto;display:block;border-radius:12px;box-shadow:var(--shadow)}\r\n  h1,h2,h3{font-family:Poppins,sans-serif}\r\n  .container{max-width:var(--maxw);margin:0 auto;padding:24px}\r\n  .row{display:flex;flex-wrap:wrap;gap:10px}\r\n\r\n  .btn{display:inline-flex;gap:10px;align-items:center;background:var(--green);color:#06231a;padding:12px 18px;border-radius:999px;border:0;cursor:pointer;box-shadow:var(--shadow);font-weight:800;white-space:nowrap}\r\n  .btn:hover{filter:brightness(1.06);transform:translateY(-1px)}\r\n  .btn.outline{background:transparent;color:var(--white);border:2px solid var(--white)}\r\n  .btn.pulse{animation:pulse 1.8s ease-in-out infinite}\r\n  @keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(114,224,182,.44)}50%{box-shadow:0 0 0 14px rgba(114,224,182,0)}}\r\n  .badge{display:inline-block;padding:6px 10px;border-radius:999px;background:rgba(114,224,182,.18);color:#fff;font-weight:800;font-size:12px;letter-spacing:.2px}\r\n\r\n  \/* \u2705 BACKGROUND VIDEO\/OVERLAY REMOVED *\/\r\n  .page-bg{display:none !important}\r\n\r\n  header, main, footer{position:relative; z-index:2}\r\n\r\n  \/* \u2705 GLASS BACKGROUND REMOVED *\/\r\n  .glass{\r\n    background: transparent !important;\r\n    backdrop-filter: none !important;\r\n    -webkit-backdrop-filter: none !important;\r\n    border: 1px solid rgba(255,255,255,.24);\r\n    box-shadow: none !important;\r\n    border-radius: 18px;\r\n  }\r\n  .glass.pad{padding:16px}\r\n  .glass strong{color:#fff}\r\n\r\n  :where(.hero__title,.hero__subtitle,.section-title,.lead){\r\n    text-shadow: 0 6px 22px rgba(0,0,0,.66), 0 1px 2px rgba(0,0,0,.6);\r\n  }\r\n  header :where(.hero__title,.hero__subtitle){ text-shadow:none !important; }\r\n  header .glass{ box-shadow:none !important; }\r\n\r\n  .hero{position:relative;overflow:hidden;padding:72px 0 28px}\r\n  .hero__grid{display:grid;grid-template-columns:1.15fr .95fr;gap:30px;align-items:center}\r\n  .hero__title{font-size:clamp(36px,4.8vw,64px);line-height:1.06;margin:0 0 12px;font-weight:800;color:#fff;letter-spacing:.4px}\r\n  .hero__subtitle{font-size:clamp(18px,2.2vw,24px);color:#f7fffb;margin:0 0 10px;opacity:.96}\r\n  .hero__kicker{font-size:14px;color:#e9fff7;opacity:.9;margin:0 0 22px}\r\n  .hero__media{position:relative;border-radius:16px;overflow:hidden;box-shadow:none !important}\r\n  .hero__media img{width:100%;height:540px;object-fit:cover;display:block;background:transparent;border-radius:16px;box-shadow:none !important}\r\n  @media (max-width:980px){ .hero__grid{grid-template-columns:1fr;gap:18px} .hero__media img{height:320px} }\r\n  .tagrow{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 16px;justify-content:center}\r\n\r\n  section{padding:48px 0}\r\n  h2.section-title{font-size:clamp(26px,3.8vw,44px);margin:0 0 12px;color:#fff}\r\n  p.lead{color:#f3fff9;font-size:20px;max-width:980px;opacity:.95;margin-left:auto;margin-right:auto}\r\n\r\n  .grid{display:grid;gap:20px}\r\n  .grid.cols-3{grid-template-columns:repeat(3,1fr)}\r\n  .grid.cols-2{grid-template-columns:repeat(2,1fr)}\r\n  @media (max-width:980px){ .grid.cols-3,.grid.cols-2{grid-template-columns:1fr} }\r\n\r\n  \/* \u2705 CARD BACKGROUND REMOVED *\/\r\n  .card{\r\n    background: transparent !important;\r\n    backdrop-filter:none !important;\r\n    -webkit-backdrop-filter:none !important;\r\n    border-radius:18px;\r\n    box-shadow:none !important;\r\n    overflow:hidden;\r\n    display:flex;\r\n    flex-direction:column;\r\n    border:1px solid rgba(255,255,255,.24)\r\n  }\r\n  .card__body{padding:16px 16px 18px}\r\n  .card__title{margin:6px 0 8px;font-size:20px;color:#fff;font-weight:800}\r\n  .card__meta{display:flex;flex-wrap:wrap;gap:10px;color:#e6fff7;font-size:14px;justify-content:center}\r\n\r\n  .map-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0 12px}\r\n  .legend{display:flex;gap:12px;align-items:center;flex-wrap:wrap}\r\n  .legend span{display:inline-flex;align-items:center;gap:8px}\r\n  .dot{width:14px;height:14px;border-radius:50%}\r\n  .red{background:#e74c3c}.yellow{background:#f1c40f}.green{background:#2ecc71}\r\n  @media (max-width:680px){\r\n    .map-toolbar{position:sticky;top:10px;z-index:5;flex-direction:column;align-items:stretch}\r\n    .legend{justify-content:space-between}\r\n  }\r\n\r\n  .live-map{position:relative;max-width:1100px;margin:12px auto}\r\n  .live-map img{width:100%;height:auto;border-radius:14px;display:block}\r\n\r\n  .pin{\r\n    position:absolute; transform:translate(-50%,-50%);\r\n    width:var(--pin-size); height:var(--pin-size);\r\n    display:flex; align-items:center; justify-content:center;\r\n    border-radius:999px; user-select:none; cursor:pointer;\r\n    font-weight:900; line-height:1;\r\n    font-size:calc(var(--pin-size) * .42);\r\n    color:#fff;\r\n    background:radial-gradient(70% 70% at 30% 30%, rgba(255,255,255,.18), rgba(0,0,0,.65));\r\n    border:calc(var(--pin-size) * .06) solid rgba(255,255,255,.9);\r\n    box-shadow:0 10px 20px rgba(0,0,0,.45);\r\n    transition:transform .15s ease, filter .15s ease;\r\n    -webkit-tap-highlight-color: transparent;\r\n  }\r\n  .pin:hover{ transform:translate(-50%,-50%) scale(1.07); filter:brightness(1.12); }\r\n  .pin:focus{ outline:3px solid rgba(114,224,182,.9); outline-offset:2px }\r\n  @media (max-width:680px){ :root{ --pin-size:24px; } }\r\n\r\n  body.editpins .pin{cursor:grab; filter:brightness(1.2)}\r\n  body.editpins .pin:active{cursor:grabbing}\r\n  .edit-hint{\r\n    position:fixed;right:14px;bottom:14px;z-index:9999;\r\n    background:rgba(0,0,0,.7);border:1px solid rgba(255,255,255,.6);\r\n    color:#fff;padding:10px 12px;border-radius:12px;box-shadow:var(--shadow);\r\n    font-size:13px;display:none\r\n  }\r\n  body.editpins .edit-hint{display:block}\r\n\r\n  \/* \u2705 CAROUSEL BACKGROUND REMOVED *\/\r\n  .carousel{\r\n    position:relative;\r\n    overflow:hidden;\r\n    border-radius:18px;\r\n    border:1px solid var(--line);\r\n    background: transparent !important;\r\n    backdrop-filter:none !important;\r\n    -webkit-backdrop-filter:none !important;\r\n  }\r\n  .carousel-track{display:flex;gap:12px;transition:transform .6s ease;touch-action:pan-y}\r\n  .slide{min-width:100%;padding:12px}\r\n  .slide img{width:100%;height:clamp(220px, 42vw, 540px);object-fit:cover;border-radius:14px;aspect-ratio:16\/9}\r\n  .c-ctrl{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.55);border:2px solid rgba(255,255,255,.75);color:#fff;width:46px;height:46px;border-radius:999px;display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow)}\r\n  .c-prev{left:12px} .c-next{right:12px}\r\n  .dots{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;gap:8px}\r\n  .dotb{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.4);border:1px solid rgba(255,255,255,.8);cursor:pointer}\r\n  .dotb.active{background:#fff}\r\n  @media (max-width:680px){\r\n    .c-ctrl{top:auto;bottom:12px;transform:none;width:40px;height:40px}\r\n  }\r\n\r\n  .contact{padding:48px 0}\r\n  .contact .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}\r\n  @media (max-width:980px){ .contact .wrap{grid-template-columns:1fr} }\r\n\r\n  \/* \u2705 FORM CARD BACKGROUND REMOVED *\/\r\n  .form-card{\r\n    background: transparent !important;\r\n    backdrop-filter:none !important;\r\n    -webkit-backdrop-filter:none !important;\r\n    border:1px solid rgba(255,255,255,.24);\r\n    border-radius:18px;\r\n    padding:18px;\r\n    box-shadow:none !important\r\n  }\r\n\r\n  .input, .textarea{\r\n    width:100%;\r\n    padding:14px 16px;\r\n    border:2px solid rgba(255,255,255,.25);\r\n    border-radius:12px;\r\n    font-size:16px;\r\n    background:rgba(255,255,255,.06);\r\n    color:#fff;\r\n    outline:none\r\n  }\r\n  .input:focus, .textarea:focus{border-color:var(--green);box-shadow:0 0 0 4px rgba(114,224,182,.18)}\r\n  .textarea{min-height:160px;resize:vertical}\r\n  .checks{display:flex;flex-direction:column;gap:8px;color:#ecfff9;font-size:14px;margin:10px 0}\r\n  .alert{margin-top:12px;padding:12px 14px;border-radius:12px;display:none}\r\n  .alert.ok{display:block;background:#E8FFF5;border:2px solid #BFF0DA;color:#11533f}\r\n  .alert.err{display:block;background:#FFF2F2;border:2px solid #FFC9C9;color:#7a1c1c}\r\n\r\n  \/* footer helper you referenced but didn\u2019t define *\/\r\n  .footer-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:center}\r\n  @media (max-width:980px){ .footer-grid{grid-template-columns:1fr} }\r\n\r\n  \/* modal styles (you had markup but no CSS) *\/\r\n  .modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:9999;padding:18px}\r\n  .modal-body{max-width:980px;margin:0 auto}\r\n<\/style>\r\n<\/head>\r\n\r\n<body>\r\n  <!-- \u2705 Background video removed (entire block removed) -->\r\n\r\n  <!-- \ud83c\udfb5 Background music (kept). If you also want this removed, delete this tag. -->\r\n  <audio id=\"bgm\"\r\n    src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/Musica-Chamanica-y-417-Hz-para-Limpiar-Energias-Negativas-Atraer-Prosperidad-y-Abrir-Caminos-M-y-HrZBKPI.mp3\"\r\n    preload=\"auto\" loop autoplay playsinline><\/audio>\r\n\r\n  <!-- HERO -->\r\n  <header class=\"container hero\" aria-label=\"Header\">\r\n    <div class=\"hero__grid\">\r\n      <div class=\"glass pad\">\r\n        <div class=\"tagrow\">\r\n          <span class=\"badge\">Riviera Maya \u00b7 Zona Cenotes (Km 10, Carretera 109)<\/span>\r\n          <span class=\"badge\">A sanctuary in the heart of the Riviera Maya<\/span>\r\n          <span class=\"badge\">Privacy \u00b7 Amenities \u00b7 Nature<\/span>\r\n        <\/div>\r\n        <h1 class=\"hero__title\">XACAN \u2014 A Sanctuary in the Heart of the Riviera Maya<\/h1>\r\n        <p class=\"hero__subtitle\">Live in balance with nature \u2014 design, comfort & sustainability.<\/p>\r\n        <p class=\"hero__kicker\"><em>More than property: a lifestyle surrounded by pristine jungle and unique cenotes.<\/em><\/p>\r\n        <div class=\"row\" style=\"justify-content:center\">\r\n          <a class=\"btn pulse\" href=\"https:\/\/wa.me\/529993602517?text=Hi%2C%20I%20want%20more%20information%20about%20XACAN\" target=\"_blank\" rel=\"noopener\">Request info<\/a>\r\n          <a class=\"btn outline\" href=\"#availability\">See availability<\/a>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"hero__media\" aria-label=\"XACAN hero image\">\r\n        <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/Brochure-Xacan-LotesyVillas_-folletos-usar-esto_page-0001.jpg\" alt=\"XACAN \u2014 Jungle living hero image in the Riviera Maya Cenote Zone\"\/>\r\n      <\/div>\r\n    <\/div>\r\n  <\/header>\r\n\r\n  <main>\r\n    <!-- LOCATION -->\r\n    <section id=\"location\" class=\"container\" aria-label=\"Location\">\r\n      <h2 class=\"section-title\">Prime Location<\/h2>\r\n      <p class=\"lead glass pad\">\r\n        Urbanized access. Minutes to dream beaches, sacred cenotes, the Maya Train and Tulum International Airport. Everything connects \u2014 the jungle remains yours.\r\n      <\/p>\r\n      <div class=\"grid cols-2\" style=\"margin-top:16px\">\r\n        <div class=\"card\">\r\n          <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/ubicacion-xacan.jpg\" alt=\"XACAN location map in the Riviera Maya\">\r\n          <div class=\"card__body\">\r\n            <h3 class=\"card__title\">Connectivity<\/h3>\r\n            <p class=\"card__meta\">Close to services, nature and mobility hubs, yet fully private and immersed in mature jungle.<\/p>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"card\">\r\n          <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/cenote-atik-imagen.jpg\" alt=\"Cenote Atik entrance\">\r\n          <div class=\"card__body\">\r\n            <h3 class=\"card__title\">Cenote Atik (Next to XACAN)<\/h3>\r\n            <p class=\"card__meta\">Atik is <strong>adjacent to XACAN<\/strong>. One amenity is the <strong>Path to Cenote Atik<\/strong>: a pedestrian route that exits XACAN and, after ~20 meters, leads you to the Atik entrance.<\/p>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- AVAILABILITY -->\r\n    <section id=\"availability\" class=\"container\" aria-label=\"Availability\">\r\n      <h2 class=\"section-title\">Availability \u2014 Live Map<\/h2>\r\n\r\n      <div class=\"map-toolbar glass pad\">\r\n        <div class=\"legend\">\r\n          <span><i class=\"dot red\"><\/i> Sold<\/span>\r\n          <span><i class=\"dot yellow\"><\/i> Reserved<\/span>\r\n          <span><i class=\"dot green\"><\/i> Available<\/span>\r\n        <\/div>\r\n        <div class=\"row\" style=\"margin-left:auto\">\r\n          <a class=\"btn\" href=\"https:\/\/bbrivieradevelopment.com\/?page_id=6113\" rel=\"noopener\">Open Lot Combinations & Calculator<\/a>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"live-map\" id=\"liveMap\" data-pinpct=\"2.0\" data-pinmin=\"12\" data-pinmax=\"34\">\r\n        <img decoding=\"async\" id=\"liveMapImg\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/XACAN-DISPONIBILIDAD-09-AGO-2025_page-0001.jpg\" alt=\"XACAN Availability Map \u2014 Cenote Zone, Riviera Maya\">\r\n        <!-- Pins injected by JS -->\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- LOTS -->\r\n    <section id=\"lots\" class=\"container\" aria-label=\"Lots\">\r\n      <h2 class=\"section-title\">Residential Lots<\/h2>\r\n      <p class=\"lead glass pad\">\r\n        31 exclusive lots (\u2248615\u20131,835 m\u00b2). Single-family villas (2\u20136 BR). COS 0.35 \u00b7 CUS 0.80 \u00b7 \u226570% green preserved \u00b7 Max height 9 m. Live well; invest wisely.\r\n      <\/p>\r\n      <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/plano-de-metrso-cuadrados.jpg\" alt=\"XACAN lotting plan \u2014 Riviera Maya\" style=\"margin-top:16px\">\r\n      <ul class=\"glass pad\" style=\"margin-top:12px; padding-left:18px; color:#e6fff7\">\r\n        <li><strong>Use:<\/strong> single-family residential per private lot.<\/li>\r\n        <li><strong>Urban image:<\/strong> contemporary-rustic architecture; matte light colors; regional stone and wood.<\/li>\r\n        <li><strong>Services:<\/strong> cistern, biodigester, hydropneumatic system; hidden installations; controlled access.<\/li>\r\n      <\/ul>\r\n    <\/section>\r\n\r\n    <!-- INTEGRATIONS -->\r\n    <section id=\"integrations\" class=\"container\" aria-label=\"Integrations\">\r\n      <h2 class=\"section-title\">Integrations \u2014 Smart Multi-Unit Combinations<\/h2>\r\n      <p class=\"lead glass pad\">\r\n        Three curated configurations to maximize capacity and rental flexibility while keeping a low footprint and the jungle essence intact.\r\n      <\/p>\r\n\r\n      <div class=\"grid cols-3\" style=\"margin-top:16px\">\r\n        <article class=\"card\">\r\n          <a href=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/Brochure-Xacan-LotesyVillas_2025-3-39-41-1.pdf\" target=\"_blank\" rel=\"noopener\">\r\n            <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/integracion-1.jpg\" alt=\"Integration 1 \u2014 KEK Bungalow + TOH Loft scheme\">\r\n          <\/a>\r\n          <div class=\"card__body\">\r\n            <div class=\"badge\">Integration 1<\/div>\r\n            <h3 class=\"card__title\">Range ~615\u20131,835 m\u00b2 \u00b7 Flexible 1\u20132 BR modules<\/h3>\r\n            <p>\r\n              Combine <em>KEK<\/em> Bungalow (1 BR, 2\u20134 guests) with <em>TOH<\/em> Loft (2 BR, 4\u20136 guests) to scale capacity per lot while keeping low footprint masses.\r\n              Applicable for lots <strong>1\u201316 & 25\u201331<\/strong>.\r\n            <\/p>\r\n            <div class=\"row\" style=\"justify-content:center\">\r\n              <a class=\"btn\" href=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/Brochure-Xacan-LotesyVillas_2025-3-39-41-1.pdf\" target=\"_blank\" rel=\"noopener\">Open PDF<\/a>\r\n              <a class=\"btn outline\" href=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/integracion-1.jpg\" target=\"_blank\" rel=\"noopener\">Open Image<\/a>\r\n            <\/div>\r\n            <small class=\"card__meta\">Source brochure confirms range and applicable lots.<\/small>\r\n          <\/div>\r\n        <\/article>\r\n\r\n        <article class=\"card\">\r\n          <a href=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/Brochure-Xacan-LotesyVillas_2025-3-39-41-2.pdf\" target=\"_blank\" rel=\"noopener\">\r\n            <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/integracion-2.jpg\" alt=\"Integration 2 \u2014 KEK Bungalow + TOH Loft + CHAK Villa\">\r\n          <\/a>\r\n          <div class=\"card__body\">\r\n            <div class=\"badge\">Integration 2<\/div>\r\n            <h3 class=\"card__title\">Range ~743\u20131,835 m\u00b2 \u00b7 Add a 3-BR Villa<\/h3>\r\n            <p>\r\n              A step up in capacity by pairing several <em>KEK<\/em> Bungalows with a <em>TOH<\/em> Loft and a <em>CHAK<\/em> 3-Bedroom Villa \u2014 owner\u2019s residence + rental keys.\r\n              Applicable for lots <strong>8, 9, 10, 12, 15, 16, 25\u201331<\/strong>.\r\n            <\/p>\r\n            <div class=\"row\" style=\"justify-content:center\">\r\n              <a class=\"btn\" href=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/Brochure-Xacan-LotesyVillas_2025-3-39-41-2.pdf\" target=\"_blank\" rel=\"noopener\">Open PDF<\/a>\r\n              <a class=\"btn outline\" href=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/integracion-2.jpg\" target=\"_blank\" rel=\"noopener\">Open Image<\/a>\r\n            <\/div>\r\n            <small class=\"card__meta\">Source brochure confirms range and applicable lots.<\/small>\r\n          <\/div>\r\n        <\/article>\r\n\r\n        <article class=\"card\">\r\n          <a href=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/Brochure-Xacan-LotesyVillas_2025-3-39-41-3.pdf\" target=\"_blank\" rel=\"noopener\">\r\n            <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/integracion-3.jpg\" alt=\"Integration 3 \u2014 CHAK + BALAM + multiple TOH lofts\">\r\n          <\/a>\r\n          <div class=\"card__body\">\r\n            <div class=\"badge\">Integration 3<\/div>\r\n            <h3 class=\"card__title\">Range ~881\u20131,835 m\u00b2 \u00b7 Full Compound Setup<\/h3>\r\n            <p>\r\n              Highest-capacity layout: <em>CHAK<\/em> 3-BR Villa + <em>BALAM<\/em> 4-BR Villa plus multiple <em>TOH<\/em> Lofts \u2014 a boutique compound feel.\r\n              Applicable for lots <strong>8, 9, 10, 15, 16, 30, 31<\/strong>.\r\n            <\/p>\r\n            <div class=\"row\" style=\"justify-content:center\">\r\n              <a class=\"btn\" href=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/Brochure-Xacan-LotesyVillas_2025-3-39-41-3.pdf\" target=\"_blank\" rel=\"noopener\">Open PDF<\/a>\r\n              <a class=\"btn outline\" href=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/integracion-3.jpg\" target=\"_blank\" rel=\"noopener\">Open Image<\/a>\r\n            <\/div>\r\n            <small class=\"card__meta\">Source brochure confirms range and applicable lots.<\/small>\r\n          <\/div>\r\n        <\/article>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- MACROLOTS -->\r\n    <section id=\"macrolots\" class=\"container\" aria-label=\"Macrolots\">\r\n      <h2 class=\"section-title\">Exclusive Macrolots<\/h2>\r\n      <p class=\"lead glass pad\">For larger visions: 4 macrolots \u22481,800\u20132,200 m\u00b2 (9, 15, 16 & 31). Build a boutique concept that respects the jungle and elevates value.<\/p>\r\n      <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/imagen-macrolotes.jpg\" alt=\"Macrolots plan\" style=\"margin-top:14px\">\r\n      <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/imagen-promo-villas.jpg\" alt=\"Lifestyle imagery\" style=\"margin-top:14px\">\r\n      <p class=\"lead glass pad\"><strong>All macrolots are available for sale.<\/strong> Your compound, your rules \u2014 within XACAN\u2019s design guidelines.<\/p>\r\n    <\/section>\r\n\r\n    <!-- AMENITIES -->\r\n    <section class=\"container\" aria-label=\"Amenities\">\r\n      <h2 class=\"section-title\">Amenities (Development)<\/h2>\r\n      <p class=\"lead glass pad\">Fire Pit \u00b7 Temazcal \u00b7 Paddle Court \u00b7 Jungle Gym \u00b7 Kids Zone \u00b7 Yoga & Meditation \u00b7 Pet Park \u00b7 Mini Golf \u00b7 Path to Cenote Atik (\u2192 24\/7 Controlled Access)<\/p>\r\n\r\n      <div class=\"carousel\" id=\"amenCarousel\" aria-roledescription=\"carousel\">\r\n        <button class=\"c-ctrl c-prev\" aria-label=\"Previous slide\">\u2039<\/button>\r\n        <div class=\"carousel-track\" id=\"amenTrack\">\r\n          <div class=\"slide\"><img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/4-JUNGLE-GYM-scaled.jpg\" alt=\"Jungle gym\"><\/div>\r\n          <div class=\"slide\"><img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/1-FACHADA-scaled.jpg\" alt=\"Fachada\"><\/div>\r\n          <div class=\"slide\"><img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/2-FIRE-PIT-scaled.jpg\" alt=\"Fire Pit\"><\/div>\r\n          <div class=\"slide\"><img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/7-PET-PARK-scaled.jpg\" alt=\"Pet Park\"><\/div>\r\n          <div class=\"slide\"><img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/3-YOGA-scaled.jpg\" alt=\"Yoga & Meditation\"><\/div>\r\n          <div class=\"slide\"><img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/5-KID-ZONE-scaled.jpg\" alt=\"Kids zone & Treehouse\"><\/div>\r\n          <div class=\"slide\"><img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/8-TEMAZCAL-scaled.jpg\" alt=\"Temazcal\"><\/div>\r\n          <div class=\"slide\"><img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/10-PADEL.jpg\" alt=\"Paddle court\"><\/div>\r\n          <div class=\"slide\"><img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/PHOTO-2023-03-24-12-08-36.jpg\" alt=\"Paddle night\"><\/div>\r\n          <div class=\"slide\"><img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/79e0a306-8950-44de-a04e-3f717c533a6a.jpeg\" alt=\"Mini Golf\"><\/div>\r\n        <\/div>\r\n        <button class=\"c-ctrl c-next\" aria-label=\"Next slide\">\u203a<\/button>\r\n        <div class=\"dots\" id=\"amenDots\" aria-hidden=\"true\"><\/div>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- CONTACT -->\r\n    <section id=\"contact\" class=\"container contact\" aria-label=\"Get in touch\">\r\n      <h2 class=\"section-title\">Get In Touch Now<\/h2>\r\n      <div class=\"wrap\">\r\n        <div class=\"form-card\">\r\n          <p class=\"lead\" style=\"margin:0 0 12px\">Tell us what you\u2019re looking for (lot surface, integration, or macrolot project) and a specialist will reach you shortly.<\/p>\r\n          <form id=\"leadForm\" action=\"contact.php\" method=\"POST\" novalidate>\r\n            <div class=\"row\">\r\n              <input class=\"input\" type=\"text\" name=\"name\" placeholder=\"Name\" required>\r\n              <input class=\"input\" type=\"email\" name=\"email\" placeholder=\"Email\" required>\r\n            <\/div>\r\n            <div class=\"row\">\r\n              <input class=\"input\" type=\"tel\" name=\"phone\" placeholder=\"Phone\" required>\r\n              <input class=\"input\" type=\"text\" name=\"subject\" placeholder=\"Subject\" value=\"XACAN Inquiry\">\r\n            <\/div>\r\n            <textarea class=\"textarea\" name=\"message\" placeholder=\"Message\" required><\/textarea>\r\n            <div class=\"checks\">\r\n              <label><input type=\"checkbox\" name=\"consent\"> I consent to the processing of my personal data for tailored offers.<\/label>\r\n              <label><input type=\"checkbox\" name=\"privacy\" required> I accept the privacy policy *<\/label>\r\n            <\/div>\r\n            <button class=\"btn\" type=\"submit\">CONTACT NOW<\/button>\r\n            <div id=\"formAlert\" class=\"alert\" role=\"status\"><\/div>\r\n          <\/form>\r\n        <\/div>\r\n\r\n        <div class=\"card\" style=\"align-self:stretch\">\r\n          <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/08\/imagen-de-descripcion-de-villa.jpg\" alt=\"Contact visual\">\r\n          <div class=\"card__body\">\r\n            <h3 class=\"card__title\">Direct Contact \u2014 Lic. Mayra In\u00e9s L\u00f3pez<\/h3>\r\n            <p class=\"card__meta\">\ud83d\udcf2 WhatsApp <strong>+52 999 360 2517<\/strong><br\/>We can share updated masterplans, regulations and price lists.<\/p>\r\n            <div class=\"row\" style=\"margin-top:6px;justify-content:center\">\r\n              <a class=\"btn\" href=\"https:\/\/wa.me\/529993602517?text=Hello%20XACAN%20team%2C%20I%20want%20to%20schedule%20a%20visit\" target=\"_blank\" rel=\"noopener\">Contact via WhatsApp<\/a>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/section>\r\n  <\/main>\r\n\r\n  <!-- FOOTER -->\r\n  <footer class=\"container\" aria-label=\"Contact & CTA\">\r\n    <div class=\"footer-grid\">\r\n      <div class=\"glass pad\">\r\n        <h2 class=\"section-title\">Ready to choose your Lot or Macrolot?<\/h2>\r\n        <p class=\"lead\">At <strong>XACAN<\/strong>, <u>everything is for sale<\/u>. Explore residential lots, smart integrations and exclusive macrolots with full transparency \u2014 updated plans, guidelines and price lists.<\/p>\r\n        <p class=\"lead\" style=\"margin-top:8px\"><em>XACAN isn\u2019t a project \u2014 it\u2019s your next great investment.<\/em><\/p>\r\n        <div class=\"row\" style=\"justify-content:center\">\r\n          <a class=\"btn pulse\" href=\"https:\/\/wa.me\/529993602517?text=Hello%20XACAN%20team%2C%20I%20want%20to%20schedule%20a%20visit\" target=\"_blank\" rel=\"noopener\">\ud83d\udcf2 Contact via WhatsApp<\/a>\r\n          <a class=\"btn outline\" href=\"#\" onclick=\"window.scrollTo({top:0,behavior:'smooth'})\">Back to top<\/a>\r\n        <\/div>\r\n        <p style=\"margin-top:10px\" class=\"badge\">Direct Contact: <strong>+52 999 360 2517<\/strong><\/p>\r\n      <\/div>\r\n      <div>\r\n        <img decoding=\"async\" src=\"https:\/\/bbrivieradevelopment.com\/wp-content\/uploads\/2025\/09\/imagen-de-descripcion-de-villa.jpg\" alt=\"Footer visual\">\r\n      <\/div>\r\n    <\/div>\r\n  <\/footer>\r\n\r\n  <!-- Modal for carousel enlarge -->\r\n  <div class=\"modal\" id=\"modal\">\r\n    <div class=\"modal-body\">\r\n      <div class=\"card\"><img decoding=\"async\" id=\"modalImg\" src=\"\" alt=\"\"><\/div>\r\n      <div style=\"margin-top:10px;display:flex;justify-content:flex-end\">\r\n        <button class=\"btn outline\" id=\"modalClose\">Close<\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- Hint edit mode -->\r\n  <div class=\"edit-hint\" id=\"editHint\">\ud83d\udee0\ufe0f Edit pins ON \u2014 drag the circles. On release, I copy coords and print them to console. Shift+E to toggle.<\/div>\r\n\r\n<script>\r\n  \/* ===== Scroll reveal ===== *\/\r\n  const observer = new IntersectionObserver((entries)=>{\r\n    entries.forEach(e=>{\r\n      if(e.isIntersecting){ e.target.style.transform='translateY(0)'; e.target.style.opacity='1'; observer.unobserve(e.target); }\r\n    });\r\n  },{threshold:.12});\r\n  document.querySelectorAll('.card, .gallery img, section .section-title, .lead').forEach(el=>{\r\n    el.style.opacity='0'; el.style.transform='translateY(16px)'; el.style.transition='opacity .6s, transform .6s';\r\n    observer.observe(el);\r\n  });\r\n\r\n  (function killStrayArrows(){\r\n    const junk = document.querySelectorAll('.arrow, .slick-arrow, .swiper-button-prev, .swiper-button-next');\r\n    junk.forEach(el=>{ el.style.display='none'; el.setAttribute('aria-hidden','true'); el.setAttribute('tabindex','-1'); });\r\n  })();\r\n\r\n  \/* Background video removed; keep music behavior simple *\/\r\n  const bgm = document.getElementById('bgm');\r\n  async function tryPlay(){ try{ await bgm.play(); } catch(e){} }\r\n  document.addEventListener('DOMContentLoaded', tryPlay);\r\n  window.addEventListener('pointerdown', tryPlay, { once:true });\r\n  document.addEventListener('visibilitychange', ()=>{ if(document.visibilityState==='visible'){ tryPlay(); } });\r\n\r\n  \/* PIN LINKS on map *\/\r\n  const COORDS = {\r\n    1:{x:11.50,y:18.80},5:{x:16.96,y:40.15},6:{x:17.32,y:46.33},7:{x:17.50,y:51.67},\r\n    9:{x:25.14,y:80.19},11:{x:35.32,y:79.77},12:{x:39.41,y:79.49},13:{x:43.87,y:79.49},\r\n    14:{x:47.87,y:79.35},15:{x:53.05,y:78.09},16:{x:52.32,y:60.24},17:{x:46.68,y:62.63},\r\n    18:{x:46.41,y:57.71},19:{x:42.05,y:62.77},20:{x:42.05,y:57.57},21:{x:38.23,y:62.77},\r\n    22:{x:37.96,y:57.71},23:{x:33.68,y:62.77},24:{x:33.50,y:58.00},26:{x:25.77,y:60.24}\r\n  };\r\n  const PINS = Object.entries(COORDS).map(([n,pt])=>({ n:Number(n), x:pt.x, y:pt.y }));\r\n  const baseURL = \"https:\/\/bbrivieradevelopment.com\/?page_id=6113#lot-\";\r\n  const map = document.getElementById('liveMap');\r\n\r\n  let editMode = false;\r\n  function setEditMode(on){\r\n    editMode = !!on;\r\n    document.body.classList.toggle('editpins', editMode);\r\n    document.getElementById('editHint').style.display = editMode ? 'block' : 'none';\r\n    console.log('Edit pins:', editMode ? 'ON' : 'OFF');\r\n  }\r\n  function checkHash(){ if(location.hash === '#editpins') setEditMode(true); }\r\n  window.addEventListener('hashchange', checkHash); checkHash();\r\n  window.addEventListener('keydown', (e)=>{\r\n    if(e.key.toLowerCase()==='e' && e.shiftKey){ e.preventDefault(); setEditMode(!editMode); }\r\n  });\r\n\r\n  PINS.forEach(p=>{\r\n    const b = document.createElement('a');\r\n    b.className='pin';\r\n    b.textContent = p.n;\r\n    b.href = baseURL + p.n;\r\n    b.style.left = p.x + '%';\r\n    b.style.top  = p.y + '%';\r\n    b.dataset.n = p.n;\r\n    b.setAttribute('aria-label','Open Lot ' + p.n);\r\n    b.target = '_blank'; b.rel='noopener';\r\n    b.addEventListener('click', (ev)=>{ if(editMode || b.__dragged) { ev.preventDefault(); b.__dragged=false; } });\r\n    makeDraggable(b);\r\n    map.appendChild(b);\r\n  });\r\n\r\n  function makeDraggable(el){\r\n    let dragging=false;\r\n    const onDown = (ev)=>{\r\n      if(!editMode) return;\r\n      ev.preventDefault();\r\n      dragging=true;\r\n      el.__dragged=false;\r\n      const move = (e)=>{\r\n        if(!dragging) return;\r\n        el.__dragged=true;\r\n        const pt = getPointer(e);\r\n        const r = map.getBoundingClientRect();\r\n        const x = Math.max(0, Math.min(r.width,  pt.x - r.left));\r\n        const y = Math.max(0, Math.min(r.height, pt.y - r.top));\r\n        const xp = (x \/ r.width ) * 100;\r\n        const yp = (y \/ r.height) * 100;\r\n        el.style.left = xp + '%';\r\n        el.style.top  = yp + '%';\r\n      };\r\n      const up = ()=>{\r\n        if(!dragging) return;\r\n        dragging=false;\r\n        window.removeEventListener('mousemove', move);\r\n        window.removeEventListener('touchmove', move);\r\n        window.removeEventListener('mouseup', up);\r\n        window.removeEventListener('touchend', up);\r\n        const xp = parseFloat(el.style.left);\r\n        const yp = parseFloat(el.style.top);\r\n        const n  = el.dataset.n;\r\n        const line = `  ${n}: { x:${xp.toFixed(2)}, y:${yp.toFixed(2)} },`;\r\n        console.log(line);\r\n        if(navigator.clipboard){ navigator.clipboard.writeText(line).catch(()=>{}); }\r\n      };\r\n      window.addEventListener('mousemove', move);\r\n      window.addEventListener('touchmove', move, {passive:false});\r\n      window.addEventListener('mouseup', up);\r\n      window.addEventListener('touchend', up);\r\n    };\r\n    el.addEventListener('mousedown', onDown);\r\n    el.addEventListener('touchstart', onDown, {passive:false});\r\n  }\r\n  function getPointer(e){\r\n    if(e.touches && e.touches[0]) return {x:e.touches[0].clientX, y:e.touches[0].clientY};\r\n    return {x:e.clientX, y:e.clientY};\r\n  }\r\n\r\n  function setPinSize(){\r\n    const img = document.getElementById('liveMapImg');\r\n    const wrap = document.getElementById('liveMap');\r\n    if(!img || !wrap) return;\r\n    const pct  = parseFloat(wrap.dataset.pinpct || (window.innerWidth <= 680 ? 2.3 : 3.2));\r\n    const minP = parseFloat(wrap.dataset.pinmin || 18);\r\n    const maxP = parseFloat(wrap.dataset.pinmax || 38);\r\n    const w = img.clientWidth || img.width || 360;\r\n    const size = Math.round(Math.max(minP, Math.min(maxP, w * (pct\/100))));\r\n    document.documentElement.style.setProperty('--pin-size', size + 'px');\r\n  }\r\n  window.addEventListener('load', setPinSize);\r\n  window.addEventListener('resize', setPinSize);\r\n  (window.ResizeObserver ? new ResizeObserver(setPinSize).observe(document.getElementById('liveMap')) : null);\r\n\r\n  document.getElementById('liveMap').addEventListener('click', (e)=>{\r\n    const p = e.target.closest('.pin'); if(!p) return;\r\n    p.style.transition = 'transform .12s ease';\r\n    p.style.zIndex = 10;\r\n    p.style.transform = 'translate(-50%,-50%) scale(1.3)';\r\n    setTimeout(()=>{ p.style.transform = 'translate(-50%,-50%)'; p.style.zIndex = ''; }, 120);\r\n  }, { passive:true });\r\n\r\n  (function(){\r\n    const track = document.getElementById('amenTrack');\r\n    const dots  = document.getElementById('amenDots');\r\n    if(!track || !dots) return;\r\n    const slides= [...track.children];\r\n    let idx=0, timer=null;\r\n\r\n    slides.forEach((_,i)=>{\r\n      const d=document.createElement('button');\r\n      d.className='dotb' + (i===0?' active':'');\r\n      d.addEventListener('click', ()=>go(i,true));\r\n      dots.appendChild(d);\r\n    });\r\n    const dotEls=[...dots.children];\r\n\r\n    function go(i,manual=false){\r\n      idx=(i+slides.length)%slides.length;\r\n      track.style.transform=`translateX(-${idx*100}%)`;\r\n      dotEls.forEach((d,j)=>d.classList.toggle('active', j===idx));\r\n      if(manual) restart();\r\n    }\r\n    function next(){ go(idx+1); }\r\n    function prev(){ go(idx-1); }\r\n    function restart(){ clearInterval(timer); timer=setInterval(next, 4500); }\r\n\r\n    document.querySelector('.c-next').addEventListener('click', ()=>{ next(); restart(); });\r\n    document.querySelector('.c-prev').addEventListener('click', ()=>{ prev(); restart(); });\r\n    restart();\r\n\r\n    let sx=0;\r\n    track.addEventListener('touchstart', e=>{ sx = e.touches[0].clientX; }, {passive:true});\r\n    track.addEventListener('touchend',   e=>{\r\n      const dx = e.changedTouches[0].clientX - sx;\r\n      if(Math.abs(dx)>40){ dx<0 ? next() : prev(); restart(); }\r\n    }, {passive:true});\r\n\r\n    const modal=document.getElementById('modal');\r\n    const modalImg=document.getElementById('modalImg');\r\n    document.getElementById('modalClose').addEventListener('click', ()=> modal.style.display='none');\r\n    modal.addEventListener('click', e=>{ if(e.target===modal) modal.style.display='none'; });\r\n    slides.forEach(s=>{\r\n      const img=s.querySelector('img');\r\n      img.addEventListener('click', ()=>{\r\n        modalImg.src=img.src;\r\n        modal.style.display='block';\r\n      });\r\n    });\r\n  })();\r\n\r\n  \/* Contact form AJAX *\/\r\n  const leadForm = document.getElementById('leadForm');\r\n  const formAlert = document.getElementById('formAlert');\r\n  if(leadForm){\r\n    leadForm.addEventListener('submit', async (e)=>{\r\n      e.preventDefault();\r\n      formAlert.className='alert'; formAlert.style.display='none'; formAlert.textContent='';\r\n      const fd = new FormData(leadForm);\r\n      if(!fd.get('privacy')){ formAlert.className='alert err'; formAlert.textContent='Please accept the privacy policy to continue.'; formAlert.style.display='block'; return; }\r\n      try{\r\n        const res = await fetch(leadForm.action, { method:'POST', body: fd });\r\n        const ok = res.ok; const txt = await res.text();\r\n        if(ok){\r\n          formAlert.className='alert ok';\r\n          formAlert.textContent='Thank you! Your message was sent. We will contact you shortly.';\r\n          formAlert.style.display='block';\r\n          leadForm.reset();\r\n        }else{ throw new Error(txt || 'Server error'); }\r\n      }catch(err){\r\n        formAlert.className='alert err';\r\n        formAlert.textContent='We could not send your message. Please write to contact.sales@bbrivieradevelopment.com or WhatsApp +52 999 360 2517.';\r\n        formAlert.style.display='block';\r\n      }\r\n    });\r\n  }\r\n<\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6085337 e-flex e-con-boxed e-con e-parent\" data-id=\"6085337\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-754fdd2 elementor-widget elementor-widget-google_maps\" data-id=\"754fdd2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"google_maps.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-custom-embed\">\n\t\t\t<iframe loading=\"lazy\"\n\t\t\t\t\tsrc=\"https:\/\/maps.google.com\/maps?q=xacan&#038;t=m&#038;z=15&#038;output=embed&#038;iwloc=near\"\n\t\t\t\t\ttitle=\"xacan\"\n\t\t\t\t\taria-label=\"xacan\"\n\t\t\t><\/iframe>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-section elementor-top-section elementor-element elementor-element-3fe738a elementor-section-content-middle elementor-section-height-min-height elementor-section-boxed elementor-section-height-default elementor-section-items-middle\" data-id=\"3fe738a\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5ff164f\" data-id=\"5ff164f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-b0de22c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b0de22c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-c13a773\" data-id=\"c13a773\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a97e924 elementor-view-stacked elementor-position-inline-start elementor-mobile-position-inline-start elementor-shape-circle elementor-invisible elementor-widget elementor-widget-icon-box\" data-id=\"a97e924\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInLeft&quot;}\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<a href=\"https:\/\/www.google.com\/maps\/place\/LUAR\/@20.1937989,-87.4610756,17z\/data=!3m1!4b1!4m6!3m5!1s0x8f4fd7007ef35557:0x20d6b3e5639dbbad!8m2!3d20.1937989!4d-87.4610756!16s%2Fg%2F11xdrl9szp?entry=ttu&#038;g_ep=EgoyMDI1MDgxNy4wIKXMDSoASAFQAw%3D%3D\" class=\"elementor-icon\" tabindex=\"-1\" aria-label=\"Xacan\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-map-marker-alt\"><\/i>\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<a href=\"https:\/\/www.google.com\/maps\/place\/LUAR\/@20.1937989,-87.4610756,17z\/data=!3m1!4b1!4m6!3m5!1s0x8f4fd7007ef35557:0x20d6b3e5639dbbad!8m2!3d20.1937989!4d-87.4610756!16s%2Fg%2F11xdrl9szp?entry=ttu&#038;g_ep=EgoyMDI1MDgxNy4wIKXMDSoASAFQAw%3D%3D\" >\n\t\t\t\t\t\t\tXacan\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tPLaya del Carmen\n\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-00fcda3\" data-id=\"00fcda3\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-383b739 elementor-view-stacked elementor-position-inline-start elementor-mobile-position-inline-start elementor-shape-square elementor-widget__width-initial elementor-invisible elementor-widget elementor-widget-icon-box\" data-id=\"383b739\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;zoomIn&quot;}\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<a href=\"mailto:Contact.sales@bbrivieradevelopment.com\" class=\"elementor-icon\" tabindex=\"-1\" aria-label=\"E-mail\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"far fa-envelope\"><\/i>\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<a href=\"mailto:Contact.sales@bbrivieradevelopment.com\" >\n\t\t\t\t\t\t\tE-mail\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tContact.sales@\nbbrivieradevelopment.com\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-9089b09\" data-id=\"9089b09\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2dde533 elementor-view-stacked elementor-position-inline-start elementor-mobile-position-inline-start elementor-widget-tablet__width-initial elementor-shape-circle elementor-invisible elementor-widget elementor-widget-icon-box\" data-id=\"2dde533\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInRight&quot;}\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<a href=\"tel:+52%20999%20360%202517\" class=\"elementor-icon\" tabindex=\"-1\" aria-label=\"Phone\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-phone-alt\"><\/i>\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<a href=\"tel:+52%20999%20360%202517\" >\n\t\t\t\t\t\t\tPhone\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\t+52 999 360 2517\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-10eeb22 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"10eeb22\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-129b6445\" data-id=\"129b6445\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-540ab5c6 elementor-widget elementor-widget-text-editor\" data-id=\"540ab5c6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><a href=\"https:\/\/wpdirectorykit.com\/themes\/real-estate-dark-house.html\">Single Property Intivex Systems<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>XACAN, Playa del Carmen Contact.sales +52 999 360 2517 BB [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_eb_attr":"","footnotes":""},"class_list":["post-5839","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/bbrivieradevelopment.com\/index.php?rest_route=\/wp\/v2\/pages\/5839","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bbrivieradevelopment.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bbrivieradevelopment.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bbrivieradevelopment.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bbrivieradevelopment.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5839"}],"version-history":[{"count":332,"href":"https:\/\/bbrivieradevelopment.com\/index.php?rest_route=\/wp\/v2\/pages\/5839\/revisions"}],"predecessor-version":[{"id":7013,"href":"https:\/\/bbrivieradevelopment.com\/index.php?rest_route=\/wp\/v2\/pages\/5839\/revisions\/7013"}],"wp:attachment":[{"href":"https:\/\/bbrivieradevelopment.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}