{"id":514,"date":"2026-06-17T01:43:15","date_gmt":"2026-06-17T01:43:15","guid":{"rendered":"https:\/\/emotion-realestate.digitality-agency.com\/?page_id=514"},"modified":"2026-09-23T14:35:20","modified_gmt":"2026-09-23T14:35:20","slug":"concierge","status":"publish","type":"page","link":"https:\/\/emotion-realestate.digitality-agency.com\/fr\/concierge\/","title":{"rendered":"Concierge"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"514\" class=\"elementor elementor-514\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b251ae8 e-flex e-con-boxed e-con e-parent\" data-id=\"b251ae8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-303eb87 e-con-full e-flex e-con e-child\" data-id=\"303eb87\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5c4aadc elementor-widget elementor-widget-heading\" data-id=\"5c4aadc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Concierge<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-86a17ad elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"86a17ad\" 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>Provide the information below to help us find the best solution tailored to your specific needs and preferences<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-07e29b6 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-html\" data-id=\"07e29b6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script type=\"text\/javascript\" src=\"https:\/\/resx.octorate.com\/octobook\/resources\/widget\/js\/form.js\" data-sitekey=\"bdfcb0de753ac036a3205002e2970860\"><\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-88fea58 elementor-widget elementor-widget-html\" data-id=\"88fea58\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  Emotion Caribbean - Concierge booking bar (v8)\r\n\r\n  Same look as the client's Octorate widget, plus:\r\n  - full destination list (cities + individual properties), same values as the widget\r\n  - custom destination dropdown, native-looking, always opens downwards\r\n  - two-month range calendar: first click = check in, second click = check out\r\n  - filled dates shown like the widget: big day number, MONTH YEAR, weekday\r\n\r\n  Search goes straight to book.octorate.com (id 1290).\r\n  Paste ALL of this into ONE Elementor \"HTML\" widget on the Concierge page.\r\n-->\r\n\r\n<div class=\"lux-booking-wrap\">\r\n  <form class=\"lux-bar\">\r\n\r\n    <div class=\"lux-f lux-f-dest\">\r\n      <label>Destination<\/label>\r\n      <div class=\"lux-dd\" data-lux-dd>\r\n        <div class=\"lux-dd-value\" tabindex=\"0\">All accommodation<\/div>\r\n        <div class=\"lux-dd-panel\" hidden>\r\n          <div class=\"lux-dd-opt is-selected\" data-v=\"\">All accommodation<\/div>\r\n          <div class=\"lux-dd-group\">COSTA CARAIBES<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"COSTA CARAIBES\">COSTA CARAIBES (all properties)<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"601131\">Appartement 2 Chambres 47 Costa - Baie Orientale - DEVILLIERS<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"823441\">2L deux chambres<\/div>\r\n          <div class=\"lux-dd-group\">GRAND-CASE<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"GRAND-CASE\">GRAND-CASE (all properties)<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"444504\">2 BR (1er \u00e9tage) Cr\u00e9ole Beach SUALIGA<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"76643\">2 BR (2eme \u00e9tage) Cr\u00e9ole Beach SUALIGA<\/div>\r\n          <div class=\"lux-dd-group\">MARIGOT<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"421190\">Cozy apartment in Marigot<\/div>\r\n          <div class=\"lux-dd-group\">ORIENT BAY<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"512448\">Emotion Property Management<\/div>\r\n          <div class=\"lux-dd-group\">OYSTER POND<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"970070\">Seaside Elegance DUPRE<\/div>\r\n          <div class=\"lux-dd-group\">SAINT-MARTIN<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"SAINT-MARTIN\">SAINT-MARTIN (all properties)<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"161004\">Villa Aston<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"273824\">2 BR alamanda 112 MCNETT<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"469886\">Casita 86 Mango<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"653495\">Costa 1 chambre<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"794668\">Appartement 54 - 3 chambres Duplex face \u00e0 la mer<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"850663\">Duplex face \u00e0 la mer<\/div>\r\n          <div class=\"lux-dd-opt\" data-v=\"926891\">Villa Luminara<\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"lux-f lux-f-date\">\r\n      <label>Check in<\/label>\r\n      <div class=\"lux-date-box\" data-lux-box=\"in\">\r\n        <div class=\"lux-date-day\">\r\n          <span class=\"lux-date-icon\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 24 24\">\r\n              <rect x=\"4\" y=\"5\" width=\"16\" height=\"15\" rx=\"2\"><\/rect>\r\n              <path d=\"M8 3v4M16 3v4M4 10h16\"><\/path>\r\n            <\/svg>\r\n          <\/span>\r\n          <span class=\"lux-date-num\"><\/span>\r\n        <\/div>\r\n        <div class=\"lux-date-info\">\r\n          <span class=\"lux-date-my\"><\/span>\r\n          <span class=\"lux-date-wd\"><\/span>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"lux-f lux-f-date\">\r\n      <label>Check out<\/label>\r\n      <div class=\"lux-date-box\" data-lux-box=\"out\">\r\n        <div class=\"lux-date-day\">\r\n          <span class=\"lux-date-icon\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 24 24\">\r\n              <rect x=\"4\" y=\"5\" width=\"16\" height=\"15\" rx=\"2\"><\/rect>\r\n              <path d=\"M8 3v4M16 3v4M4 10h16\"><\/path>\r\n            <\/svg>\r\n          <\/span>\r\n          <span class=\"lux-date-num\"><\/span>\r\n        <\/div>\r\n        <div class=\"lux-date-info\">\r\n          <span class=\"lux-date-my\"><\/span>\r\n          <span class=\"lux-date-wd\"><\/span>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"lux-f lux-f-pax\">\r\n      <label>Adults<\/label>\r\n      <select data-lux-adults>\r\n        <option value=\"1\" selected>1<\/option>\r\n        <option value=\"2\">2<\/option>\r\n        <option value=\"3\">3<\/option>\r\n        <option value=\"4\">4<\/option>\r\n        <option value=\"5\">5<\/option>\r\n        <option value=\"6\">6<\/option>\r\n        <option value=\"7\">7<\/option>\r\n        <option value=\"8\">8<\/option>\r\n      <\/select>\r\n    <\/div>\r\n\r\n    <div class=\"lux-f lux-f-child\">\r\n      <label>Children<\/label>\r\n      <select data-lux-children>\r\n        <option value=\"0\" selected>0<\/option>\r\n        <option value=\"1\">1<\/option>\r\n        <option value=\"2\">2<\/option>\r\n        <option value=\"3\">3<\/option>\r\n        <option value=\"4\">4<\/option>\r\n        <option value=\"5\">5<\/option>\r\n      <\/select>\r\n    <\/div>\r\n\r\n    <div class=\"lux-f lux-submit\">\r\n      <button type=\"submit\">Search<\/button>\r\n    <\/div>\r\n\r\n  <\/form>\r\n\r\n  <div class=\"lux-cal\" hidden>\r\n    <div class=\"lux-cal-nav\">\r\n      <button type=\"button\" class=\"lux-cal-prev\" aria-label=\"Previous month\"><\/button>\r\n      <button type=\"button\" class=\"lux-cal-next\" aria-label=\"Next month\"><\/button>\r\n    <\/div>\r\n    <div class=\"lux-cal-months\"><\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n.lux-booking-wrap .lux-bar,\r\n.lux-booking-wrap .lux-bar *,\r\n.lux-booking-wrap .lux-cal,\r\n.lux-booking-wrap .lux-cal * {\r\n  box-sizing: border-box;\r\n}\r\n\r\n.lux-booking-wrap {\r\n  position: relative;\r\n}\r\n\r\n.lux-booking-wrap .lux-bar {\r\n  width: 100%;\r\n  max-width: 1137px;\r\n  margin: 0 auto;\r\n  padding: 0 !important;\r\n  background: transparent !important;\r\n  border: 0 !important;\r\n  border-radius: 0 !important;\r\n  box-shadow: none !important;\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  justify-content: center;\r\n  gap: 0;\r\n}\r\n\r\n.lux-booking-wrap .lux-f {\r\n  padding: 0 10px 10px 0;\r\n  display: block;\r\n}\r\n\r\n.lux-booking-wrap .lux-f label {\r\n  display: block;\r\n  font-family: 'Work Sans', sans-serif;\r\n  font-size: 16px;\r\n  line-height: 16px;\r\n  font-weight: 400;\r\n  color: #333;\r\n  margin: 0;\r\n  padding: 0 0 1px 0;\r\n  text-align: left;\r\n}\r\n\r\n\/* Destination *\/\r\n.lux-booking-wrap .lux-f-dest { width: 337px; }\r\n\r\n.lux-booking-wrap .lux-dd { position: relative; }\r\n\r\n.lux-booking-wrap .lux-dd-value {\r\n  width: 100%;\r\n  height: 55px;\r\n  display: flex;\r\n  align-items: center;\r\n  border: 1px solid #000;\r\n  border-radius: 16px;\r\n  background: transparent;\r\n  font-family: 'Poppins', sans-serif;\r\n  font-size: 15px;\r\n  font-weight: 400;\r\n  color: #505050;\r\n  text-align: left;\r\n  padding: 0 34px 0 20px;\r\n  cursor: pointer;\r\n  outline: none;\r\n  white-space: nowrap;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n}\r\n\r\n.lux-booking-wrap .lux-dd::after {\r\n  content: \"\";\r\n  position: absolute;\r\n  right: 18px;\r\n  top: 24px;\r\n  width: 8px;\r\n  height: 8px;\r\n  border-right: 1.6px solid #505050;\r\n  border-bottom: 1.6px solid #505050;\r\n  transform: rotate(45deg);\r\n  pointer-events: none;\r\n}\r\n\r\n\/* panel always opens downwards *\/\r\n\/* looks like the browser's own dropdown list, but always below the field *\/\r\n.lux-booking-wrap .lux-dd-panel {\r\n  position: absolute;\r\n  top: calc(100% + 1px);\r\n  left: 0;\r\n  right: 0;\r\n  z-index: 9998;\r\n  max-height: 320px;\r\n  overflow-y: auto;\r\n  background: #fff;\r\n  border: 1px solid #949494;\r\n  border-radius: 0;\r\n  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);\r\n  padding: 2px 0;\r\n}\r\n\r\n.lux-booking-wrap .lux-dd-panel[hidden] { display: none; }\r\n\r\n.lux-booking-wrap .lux-dd-group {\r\n  font-family: 'Poppins', sans-serif;\r\n  font-size: 13px;\r\n  font-weight: 700;\r\n  font-style: italic;\r\n  color: #000;\r\n  padding: 3px 6px 3px 6px;\r\n  white-space: nowrap;\r\n}\r\n\r\n.lux-booking-wrap .lux-dd-opt {\r\n  font-family: 'Poppins', sans-serif;\r\n  font-size: 13px;\r\n  font-weight: 400;\r\n  color: #000;\r\n  line-height: 18px;\r\n  padding: 2px 6px 2px 26px;\r\n  cursor: default;\r\n  white-space: nowrap;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n}\r\n\r\n.lux-booking-wrap .lux-dd-opt:hover,\r\n.lux-booking-wrap .lux-dd-opt.is-selected {\r\n  background: #0078d7;\r\n  color: #fff;\r\n}\r\n\r\n\/* Adults \/ Children *\/\r\n.lux-booking-wrap .lux-f-pax { width: 70px; }\r\n.lux-booking-wrap .lux-f-child { width: 75px; }\r\n\r\n.lux-booking-wrap .lux-f-pax select,\r\n.lux-booking-wrap .lux-f-child select {\r\n  width: 100%;\r\n  height: 55px;\r\n  border: 1px solid #000 !important;\r\n  border-radius: 16px !important;\r\n  background: transparent !important;\r\n  box-shadow: none !important;\r\n  outline: 0 !important;\r\n  font-family: verdana, sans-serif;\r\n  font-size: 19.2px;\r\n  font-weight: 400;\r\n  color: #000;\r\n  text-align: center;\r\n  text-align-last: center;\r\n  padding: 10px 9px;\r\n  cursor: pointer;\r\n  appearance: none;\r\n  -webkit-appearance: none;\r\n}\r\n\r\n\/* Dates *\/\r\n.lux-booking-wrap .lux-f-date { width: 245px; }\r\n\r\n.lux-booking-wrap .lux-date-box {\r\n  display: flex;\r\n  width: 100%;\r\n  height: 53px;\r\n  background: #fff;\r\n  border: 1px solid #000;\r\n  border-radius: 16px;\r\n  overflow: hidden;\r\n  cursor: pointer;\r\n}\r\n\r\n.lux-booking-wrap .lux-date-day {\r\n  flex: 0 0 77px;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  background: rgba(128, 128, 128, 0.07);\r\n  border-right: 1px solid rgba(128, 128, 128, 0.5);\r\n  font-family: verdana, sans-serif;\r\n  font-size: 32px;\r\n  line-height: 1;\r\n  color: #000;\r\n}\r\n\r\n.lux-booking-wrap .lux-date-info {\r\n  flex: 1 1 auto;\r\n  display: flex;\r\n  flex-direction: column;\r\n  background: rgba(128, 128, 128, 0.07);\r\n}\r\n\r\n.lux-booking-wrap .lux-date-box.has-value .lux-date-info {\r\n  background: transparent;\r\n}\r\n\r\n.lux-booking-wrap .lux-date-my {\r\n  height: 21px;\r\n  display: flex;\r\n  align-items: center;\r\n  padding: 0 6px;\r\n  background: rgba(128, 128, 128, 0.07);\r\n  border-bottom: 1px solid rgba(128, 128, 128, 0.5);\r\n  font-family: verdana, sans-serif;\r\n  font-size: 11.52px;\r\n  color: #333;\r\n  text-align: left;\r\n}\r\n\r\n.lux-booking-wrap .lux-date-wd {\r\n  flex: 1 1 auto;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  font-family: verdana, sans-serif;\r\n  font-size: 18px;\r\n  color: #000;\r\n}\r\n\r\n.lux-booking-wrap .lux-date-icon {\r\n  width: 15px;\r\n  height: 15px;\r\n  color: #444;\r\n}\r\n\r\n.lux-booking-wrap .lux-date-icon svg { width: 100%; height: 100%; display: block; }\r\n\r\n.lux-booking-wrap .lux-date-icon rect,\r\n.lux-booking-wrap .lux-date-icon path {\r\n  fill: none;\r\n  stroke: currentColor;\r\n  stroke-width: 1.7;\r\n  stroke-linecap: round;\r\n  stroke-linejoin: round;\r\n}\r\n\r\n.lux-booking-wrap .lux-date-box.has-value .lux-date-icon { display: none; }\r\n.lux-booking-wrap .lux-date-box:not(.has-value) .lux-date-my,\r\n.lux-booking-wrap .lux-date-box:not(.has-value) .lux-date-wd { visibility: hidden; }\r\n\r\n\/* Search *\/\r\n.lux-booking-wrap .lux-submit {\r\n  width: 159px;\r\n  margin-left: 24px;\r\n  padding: 0 0 10px 0;\r\n}\r\n\r\n.lux-booking-wrap .lux-submit button {\r\n  width: 117px;\r\n  max-width: 117px;\r\n  height: 56px;\r\n  min-height: 56px;\r\n  border: 0 !important;\r\n  border-radius: 50px !important;\r\n  background: #000 !important;\r\n  color: #fff !important;\r\n  font-family: verdana, sans-serif;\r\n  font-size: 16px;\r\n  font-weight: 400;\r\n  padding: 0 !important;\r\n  margin: 0 !important;\r\n  cursor: pointer;\r\n  box-shadow: none !important;\r\n  opacity: 1;\r\n}\r\n\r\n.lux-booking-wrap .lux-bar select:focus,\r\n.lux-booking-wrap .lux-bar button:focus,\r\n.lux-booking-wrap .lux-bar button:active {\r\n  outline: none !important;\r\n  box-shadow: none !important;\r\n}\r\n\r\n\/* Calendar *\/\r\n.lux-booking-wrap .lux-cal {\r\n  position: absolute;\r\n  z-index: 9999;\r\n  background: #fff;\r\n  border: 1px solid #ddd;\r\n  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);\r\n  padding: 10px 8px 8px;\r\n  font-family: verdana, sans-serif;\r\n  user-select: none;\r\n}\r\n\r\n.lux-booking-wrap .lux-cal[hidden] { display: none; }\r\n\r\n.lux-booking-wrap .lux-cal-nav {\r\n  position: relative;\r\n  height: 0;\r\n}\r\n\r\n.lux-booking-wrap .lux-cal-prev,\r\n.lux-booking-wrap .lux-cal-next {\r\n  position: absolute;\r\n  top: 2px;\r\n  width: 22px;\r\n  height: 22px;\r\n  border: 0 !important;\r\n  background: transparent !important;\r\n  color: #666 !important;\r\n  font-size: 11px;\r\n  line-height: 1;\r\n  padding: 0 !important;\r\n  margin: 0 !important;\r\n  cursor: pointer;\r\n  box-shadow: none !important;\r\n}\r\n\r\n.lux-booking-wrap .lux-cal-prev { left: 4px; }\r\n.lux-booking-wrap .lux-cal-next { right: 4px; }\r\n\r\n.lux-booking-wrap .lux-cal-prev::after,\r\n.lux-booking-wrap .lux-cal-next::after {\r\n  content: \"\";\r\n  display: block;\r\n  width: 0;\r\n  height: 0;\r\n  margin: 0 auto;\r\n  border-top: 5px solid transparent;\r\n  border-bottom: 5px solid transparent;\r\n}\r\n\r\n.lux-booking-wrap .lux-cal-prev::after { border-right: 6px solid #666; }\r\n.lux-booking-wrap .lux-cal-next::after { border-left: 6px solid #666; }\r\n\r\n.lux-booking-wrap .lux-cal-months {\r\n  display: flex;\r\n  gap: 18px;\r\n}\r\n\r\n.lux-booking-wrap .lux-cal-month { width: 150px; }\r\n\r\n.lux-booking-wrap .lux-cal-title {\r\n  text-align: center;\r\n  font-size: 13px;\r\n  color: #666;\r\n  padding: 2px 0 8px;\r\n}\r\n\r\n.lux-booking-wrap .lux-cal-grid {\r\n  display: grid;\r\n  grid-template-columns: repeat(7, 1fr);\r\n}\r\n\r\n.lux-booking-wrap .lux-cal-dow {\r\n  font-size: 10px;\r\n  color: #999;\r\n  text-align: center;\r\n  padding-bottom: 4px;\r\n}\r\n\r\n.lux-booking-wrap .lux-cal-day {\r\n  font-size: 11px;\r\n  color: #555;\r\n  text-align: center;\r\n  padding: 4px 0;\r\n  cursor: pointer;\r\n  border-radius: 2px;\r\n}\r\n\r\n.lux-booking-wrap .lux-cal-day.is-empty { cursor: default; }\r\n.lux-booking-wrap .lux-cal-day.is-off { color: #ccc; cursor: default; }\r\n.lux-booking-wrap .lux-cal-day.is-range { background: rgba(128, 128, 128, 0.15); }\r\n.lux-booking-wrap .lux-cal-day.is-end { background: #000; color: #fff; }\r\n.lux-booking-wrap .lux-cal-day:not(.is-off):not(.is-empty):hover { background: rgba(128, 128, 128, 0.25); }\r\n\r\n@media screen and (max-width: 992px) {\r\n  .lux-booking-wrap .lux-bar { flex-direction: column; }\r\n\r\n  .lux-booking-wrap .lux-f,\r\n  .lux-booking-wrap .lux-submit {\r\n    width: 100% !important;\r\n    max-width: 100%;\r\n    margin-left: 0;\r\n    padding-right: 0;\r\n  }\r\n\r\n  .lux-booking-wrap .lux-submit button { width: 100%; max-width: 100%; }\r\n\r\n  .lux-booking-wrap .lux-cal-months { flex-direction: column; gap: 10px; }\r\n  .lux-booking-wrap .lux-cal-month { width: 100%; }\r\n  .lux-booking-wrap .lux-cal { left: 0 !important; right: 0; }\r\n}\r\n<\/style>\r\n\r\n<script>\r\n(function () {\r\n\r\n  const CONFIG = {\r\n    ENGINE_URL       : 'https:\/\/book.octorate.com\/octobook\/site\/ota\/index.xhtml',\r\n    SITE_ID          : '1290',\r\n    LANG             : 'en',\r\n    DEFAULT_CHILD_AGE: 10,\r\n    OPEN_IN_NEW_TAB  : true\r\n  };\r\n\r\n  const MONTHS = ['JANUARY','FEBRUARY','MARCH','APRIL','MAY','JUNE','JULY',\r\n                  'AUGUST','SEPTEMBER','OCTOBER','NOVEMBER','DECEMBER'];\r\n  const MONTHS_TITLE = ['January','February','March','April','May','June','July',\r\n                        'August','September','October','November','December'];\r\n  const DOW  = ['Mo','Tu','We','Th','Fr','Sa','Su'];\r\n  const WDAY = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];\r\n\r\n  function ymd(d) {\r\n    return d.getFullYear() + '-' +\r\n           String(d.getMonth() + 1).padStart(2, '0') + '-' +\r\n           String(d.getDate()).padStart(2, '0');\r\n  }\r\n\r\n  document.querySelectorAll('.lux-booking-wrap').forEach(function (wrap) {\r\n    const form = wrap.querySelector('.lux-bar');\r\n    const cal  = wrap.querySelector('.lux-cal');\r\n    if (!form || !cal || wrap.dataset.luxReady) return;\r\n    wrap.dataset.luxReady = '1';\r\n\r\n    const dd       = wrap.querySelector('[data-lux-dd]');\r\n    const adults   = wrap.querySelector('[data-lux-adults]');\r\n    const children = wrap.querySelector('[data-lux-children]');\r\n    const boxIn    = wrap.querySelector('[data-lux-box=\"in\"]');\r\n    const boxOut   = wrap.querySelector('[data-lux-box=\"out\"]');\r\n    const monthsEl = cal.querySelector('.lux-cal-months');\r\n\r\n    const today = new Date(); today.setHours(0, 0, 0, 0);\r\n    let view  = new Date(today.getFullYear(), today.getMonth(), 1);\r\n    let start = null;\r\n    let end   = null;\r\n\r\n    function paint(box, date) {\r\n      const num = box.querySelector('.lux-date-num');\r\n      const my  = box.querySelector('.lux-date-my');\r\n      const wd  = box.querySelector('.lux-date-wd');\r\n      if (date) {\r\n        num.textContent = date.getDate();\r\n        my.textContent  = MONTHS[date.getMonth()] + ' ' + date.getFullYear();\r\n        wd.textContent  = WDAY[date.getDay()];\r\n        box.classList.add('has-value');\r\n      } else {\r\n        num.textContent = '';\r\n        my.textContent  = '';\r\n        wd.textContent  = '';\r\n        box.classList.remove('has-value');\r\n      }\r\n    }\r\n\r\n    function buildMonth(base) {\r\n      const first = new Date(base.getFullYear(), base.getMonth(), 1);\r\n      const days  = new Date(base.getFullYear(), base.getMonth() + 1, 0).getDate();\r\n      const lead  = (first.getDay() + 6) % 7;\r\n\r\n      let html = '<div class=\"lux-cal-month\"><div class=\"lux-cal-title\">' +\r\n                 MONTHS_TITLE[base.getMonth()] + ' ' + base.getFullYear() +\r\n                 '<\/div><div class=\"lux-cal-grid\">';\r\n\r\n      DOW.forEach(function (d) { html += '<div class=\"lux-cal-dow\">' + d + '<\/div>'; });\r\n      for (let i = 0; i < lead; i++) html += '<div class=\"lux-cal-day is-empty\"><\/div>';\r\n\r\n      for (let d = 1; d <= days; d++) {\r\n        const cur = new Date(base.getFullYear(), base.getMonth(), d);\r\n        const cls = ['lux-cal-day'];\r\n\r\n        if (cur < today) {\r\n          cls.push('is-off');\r\n        } else if (start && !end && cur <= start) {\r\n          if (cur.getTime() === start.getTime()) cls.push('is-end');\r\n        } else {\r\n          if (start && cur.getTime() === start.getTime()) cls.push('is-end');\r\n          if (end && cur.getTime() === end.getTime()) cls.push('is-end');\r\n          if (start && end && cur > start && cur < end) cls.push('is-range');\r\n        }\r\n\r\n        html += '<div class=\"' + cls.join(' ') + '\" data-d=\"' + ymd(cur) + '\">' + d + '<\/div>';\r\n      }\r\n\r\n      return html + '<\/div><\/div>';\r\n    }\r\n\r\n    function render() {\r\n      const next = new Date(view.getFullYear(), view.getMonth() + 1, 1);\r\n      monthsEl.innerHTML = buildMonth(view) + buildMonth(next);\r\n    }\r\n\r\n    function openCal(box) {\r\n      render();\r\n      cal.hidden = false;\r\n      const br = box.getBoundingClientRect();\r\n      const wr = wrap.getBoundingClientRect();\r\n      cal.style.top  = (br.bottom - wr.top + 6) + 'px';\r\n      cal.style.left = Math.max(0, br.left - wr.left) + 'px';\r\n    }\r\n\r\n    function closeCal() { cal.hidden = true; }\r\n\r\n    \/\/ ---- destination dropdown ----\r\n    let destValue = '';\r\n    const ddValue = dd.querySelector('.lux-dd-value');\r\n    const ddPanel = dd.querySelector('.lux-dd-panel');\r\n\r\n    function closeDd() { ddPanel.hidden = true; }\r\n\r\n    ddValue.addEventListener('click', function () {\r\n      closeCal();\r\n      ddPanel.hidden = !ddPanel.hidden;\r\n    });\r\n\r\n    ddPanel.addEventListener('click', function (e) {\r\n      const opt = e.target.closest('.lux-dd-opt');\r\n      if (!opt) return;\r\n      destValue = opt.dataset.v || '';\r\n      ddValue.textContent = opt.textContent;\r\n      ddPanel.querySelectorAll('.lux-dd-opt').forEach(function (o) {\r\n        o.classList.toggle('is-selected', o === opt);\r\n      });\r\n      closeDd();\r\n    });\r\n\r\n    boxIn.addEventListener('click', function () {\r\n      closeDd();\r\n      start = null; end = null;\r\n      paint(boxIn, null); paint(boxOut, null);\r\n      openCal(boxIn);\r\n    });\r\n\r\n    boxOut.addEventListener('click', function () {\r\n      closeDd();\r\n      if (!start) { boxIn.click(); return; }\r\n      end = null;\r\n      paint(boxOut, null);\r\n      openCal(boxOut);\r\n    });\r\n\r\n    cal.addEventListener('click', function (e) {\r\n      if (e.target.classList.contains('lux-cal-prev')) {\r\n        view = new Date(view.getFullYear(), view.getMonth() - 1, 1);\r\n        render();\r\n        return;\r\n      }\r\n      if (e.target.classList.contains('lux-cal-next')) {\r\n        view = new Date(view.getFullYear(), view.getMonth() + 1, 1);\r\n        render();\r\n        return;\r\n      }\r\n\r\n      const cell = e.target.closest('.lux-cal-day');\r\n      if (!cell || !cell.dataset.d || cell.classList.contains('is-off')) return;\r\n\r\n      const parts  = cell.dataset.d.split('-');\r\n      const picked = new Date(+parts[0], +parts[1] - 1, +parts[2]);\r\n\r\n      if (!start || (start && end)) {\r\n        start = picked; end = null;\r\n        paint(boxIn, start); paint(boxOut, null);\r\n        render();\r\n      } else if (picked <= start) {\r\n        start = picked;\r\n        paint(boxIn, start);\r\n        render();\r\n      } else {\r\n        end = picked;\r\n        paint(boxOut, end);\r\n        render();\r\n        closeCal();\r\n      }\r\n    });\r\n\r\n    document.addEventListener('click', function (e) {\r\n      if (!wrap.contains(e.target)) { closeCal(); closeDd(); }\r\n    });\r\n\r\n    form.addEventListener('submit', function (event) {\r\n      event.preventDefault();\r\n\r\n      const url = new URL(CONFIG.ENGINE_URL);\r\n      url.searchParams.set('id',   CONFIG.SITE_ID);\r\n      url.searchParams.set('lang', CONFIG.LANG);\r\n\r\n      if (start) url.searchParams.set('checkin',  ymd(start));\r\n      if (end)   url.searchParams.set('checkout', ymd(end));\r\n\r\n      url.searchParams.set('pax', adults.value || '1');\r\n\r\n      const kids = parseInt(children.value, 10) || 0;\r\n      url.searchParams.set(\r\n        'childrenAges',\r\n        kids > 0 ? new Array(kids).fill(CONFIG.DEFAULT_CHILD_AGE).join(',') : ''\r\n      );\r\n\r\n      if (destValue) url.searchParams.set('network', destValue);\r\n\r\n      if (CONFIG.OPEN_IN_NEW_TAB) {\r\n        window.open(url.toString(), '_blank', 'noopener');\r\n      } else {\r\n        window.location.href = url.toString();\r\n      }\r\n    });\r\n  });\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9e89af1 elementor-widget elementor-widget-image\" data-id=\"9e89af1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1275\" height=\"449\" src=\"https:\/\/emotion-realestate.digitality-agency.com\/wp-content\/uploads\/2026\/06\/Group-497.png\" class=\"attachment-full size-full wp-image-1066\" alt=\"\" srcset=\"https:\/\/emotion-realestate.digitality-agency.com\/wp-content\/uploads\/2026\/06\/Group-497.png 1275w, https:\/\/emotion-realestate.digitality-agency.com\/wp-content\/uploads\/2026\/06\/Group-497-300x106.png 300w, https:\/\/emotion-realestate.digitality-agency.com\/wp-content\/uploads\/2026\/06\/Group-497-1024x361.png 1024w, https:\/\/emotion-realestate.digitality-agency.com\/wp-content\/uploads\/2026\/06\/Group-497-768x270.png 768w\" sizes=\"(max-width: 1275px) 100vw, 1275px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Concierge Provide the information below to help us find the best solution tailored to your specific needs and preferences Destination All accommodation All accommodation COSTA CARAIBES COSTA CARAIBES (all properties) Appartement 2 Chambres 47 Costa &#8211; Baie Orientale &#8211; DEVILLIERS 2L deux chambres GRAND-CASE GRAND-CASE (all properties) 2 BR (1er \u00e9tage) Cr\u00e9ole Beach SUALIGA 2 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-514","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/emotion-realestate.digitality-agency.com\/fr\/wp-json\/wp\/v2\/pages\/514","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/emotion-realestate.digitality-agency.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/emotion-realestate.digitality-agency.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/emotion-realestate.digitality-agency.com\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/emotion-realestate.digitality-agency.com\/fr\/wp-json\/wp\/v2\/comments?post=514"}],"version-history":[{"count":55,"href":"https:\/\/emotion-realestate.digitality-agency.com\/fr\/wp-json\/wp\/v2\/pages\/514\/revisions"}],"predecessor-version":[{"id":3909,"href":"https:\/\/emotion-realestate.digitality-agency.com\/fr\/wp-json\/wp\/v2\/pages\/514\/revisions\/3909"}],"wp:attachment":[{"href":"https:\/\/emotion-realestate.digitality-agency.com\/fr\/wp-json\/wp\/v2\/media?parent=514"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}