{"id":7623,"date":"2026-05-26T11:09:13","date_gmt":"2026-05-26T11:09:13","guid":{"rendered":"https:\/\/vivamonte.vidor.pt\/?page_id=7"},"modified":"2026-10-28T15:44:15","modified_gmt":"2026-10-28T15:44:15","slug":"viva-monte","status":"publish","type":"page","link":"https:\/\/vivamonte.vidor.pt\/","title":{"rendered":"Viva Monte"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"7623\" class=\"elementor elementor-7623\">\n\t\t\t\t<div data-wpr-sticky-section=\"yes\" data-wpr-position-type=\"sticky\" data-wpr-position-offset=\"0\" data-wpr-position-location=\"top\" data-wpr-sticky-devices=\"desktop_sticky\" data-wpr-custom-breakpoints=\"\" data-wpr-active-breakpoints=\"mobile_sticky tablet_sticky desktop_sticky\" data-wpr-z-index=\"10\" data-wpr-sticky-hide=\"\" data-wpr-replace-header=\"\" data-wpr-animation-duration=\"\" data-wpr-sticky-type=\"sticky\" class=\"elementor-element elementor-element-db7d34c e-con-full wpr-sticky-section-yes e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"db7d34c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;position_offset&quot;:0,&quot;position_offset_tablet&quot;:0,&quot;position_offset_mobile&quot;:0}\">\n\t\t<div class=\"elementor-element elementor-element-1aa1e4c e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"1aa1e4c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2cca74f e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"2cca74f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-af6a7a4 elementor-widget elementor-widget-ucaddon_ue_side_menu\" data-id=\"af6a7a4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ucaddon_ue_side_menu.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- start Side Menu -->\n\t\t<link id='font-awesome-css' href='https:\/\/vivamonte.vidor.pt\/wp-content\/plugins\/unlimited-elements-for-elementor\/assets_libraries\/font-awesome6\/fontawesome-all.min.css' type='text\/css' rel='stylesheet' >\n\t\t<link id='font-awesome-4-shim-css' href='https:\/\/vivamonte.vidor.pt\/wp-content\/plugins\/unlimited-elements-for-elementor\/assets_libraries\/font-awesome6\/fontawesome-v4-shims.min.css' type='text\/css' rel='stylesheet' >\n\n<style>\/* widget: Side Menu *\/\n\n#uc_ue_side_menu_elementor_af6a7a4 *{\n  box-sizing:border-box;\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n}\n\nbody.uc-menu-push{\n  \ttransition: padding-left 1s, padding-right 1s;\n}\n\n.swiper-container{\n  transition: transform 1s;\n}\n\n\n#uc_ue_side_menu_elementor_af6a7a4 .uc-side-menu-wrapper{\n  position:relative;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .uc-menu-button-wrapper{\n  position: relative;\n  display: flex;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .menu-right-open {\n\twidth: 440px;\n\ttop: 0;\n\tright: 0;\n\tmargin-right: 0px;\n\tmargin-left: 0px;\n\ttransition: 1s;\n\tz-index: 999999;\n\tposition: fixed;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .menu-right-close {\n\twidth: 440px;\n\ttop: 0;\n\tright: 0;\n\tmargin-right: -440px;\n\ttransition: 1s;\n\tz-index: 1;\n\theight: 100%;\n\tposition: fixed;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .menu-left-open {\n\twidth: 440px;\n\ttop: 0;\n\tleft: 0;\n\tmargin-right: 0px;\n\tmargin-left: 0px;\n\ttransition: 1s;\n\tz-index: 999999;\n\theight: 100%;\n\tposition: fixed;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .menu-left-close {\n\twidth: 440px;\n\ttop: 0;\n\tleft: 0;\n\tmargin-left: -440px;\n\ttransition: 1s;\n\tz-index: 1;\n\theight: 100%;\n\tposition: fixed;\n}\n\t\n#uc_ue_side_menu_elementor_af6a7a4 .uc-menu-item-pointer,\n#uc_ue_side_menu_elementor_af6a7a4 .ue-back-link-icon{\n    display: inline-block;\n    margin:0px 15px;\n    vertical-align: middle;\n    transition: all 1s ease;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .uc-side-menu-items{\n  position:relative;\n  height:100vh;\n  overflow-x: hidden;\n  transition:1s;\n  display:flex;\n  flex-direction:column;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .open_side_menu{\n  cursor:pointer;\n  align-items:center;\n  justify-content:center;\n  transition: 0.4s ease;\n  position: relative;\n  line-height:1em;\n      \tdisplay: flex;\n  }\n\n#uc_ue_side_menu_elementor_af6a7a4 .open_side_menu svg{\n  height:1em;\n  width:1em;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .open_side_menu_toggle{\n  position: relative;\n  -webkit-box-flex: 0;\n  flex: none;\n  width: 100%;\n  height: 2px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  transition: all 0.4s ease;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .open_side_menu_toggle:before,\n#uc_ue_side_menu_elementor_af6a7a4 .open_side_menu_toggle:after {\n  content: '';\n  position: absolute;\n  z-index: 1;\n  top: -10px;\n  left: 0;\n  width: 100%;\n  height: 2px;\n  background: inherit;\n}\n\t\n#uc_ue_side_menu_elementor_af6a7a4 .open_side_menu_toggle:after {\n  top: 10px;\n}\n\n\t\n\n#uc_ue_side_menu_elementor_af6a7a4 .open_side_menu.uc-close-action .open_side_menu_toggle{\n  -webkit-transform: rotate(90deg);\n  transform: rotate(135deg);\n}\n#uc_ue_side_menu_elementor_af6a7a4 .open_side_menu.uc-close-action .open_side_menu_toggle:before,\n#uc_ue_side_menu_elementor_af6a7a4 .open_side_menu.uc-close-action .open_side_menu_toggle:after{\n  top: 0;\n  -webkit-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .open_side_menu.uc-close-action .open_side_menu_toggle:after{\n opacity: 0;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .open_side_menu.uc-close-action:hover .open_side_menu_toggle{\n  -webkit-transform: rotate(225deg);\n  transform: rotate(225deg);\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .uc-side-menu-title{\n  text-align:left;\n}\n\n.menu-left-open .uc-close-side-menu, .menu-right-open .uc-close-side-menu{\n  display:flex;\n  opacity:1;\n}\n\n.menu-left-close .uc-close-side-menu, .menu-right-close .uc-close-side-menu{\n  display:none;\n}\n\n.uc-close-side-menu{\n  line-height:1em;\n}\n\n.uc-close-side-menu svg{\n  height:1em;\n  width:1em;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .side-menu-before{\n    margin-right: auto;\n  }\n\n#uc_ue_side_menu_elementor_af6a7a4 .side-menu-after{\n  flex-grow:1;\n  display:flex;\n    margin-right: auto;\n  }\n  \n#uc_ue_side_menu_elementor_af6a7a4 .menu-left-open .ue_side_menu_overlay, \n#uc_ue_side_menu_elementor_af6a7a4 .menu-right-open .ue_side_menu_overlay{\n  display:block;\n  opacity:1;\n  transition:1s;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .menu-left-close .ue_side_menu_overlay, \n#uc_ue_side_menu_elementor_af6a7a4 .menu-right-close .ue_side_menu_overlay{\n  display:none;\n  opacity:0;\n  transition:1s;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .uc-close-side-menu{\n  position:absolute;\n  left:-40px;\n  cursor:pointer;\n  justify-content:center;\n  align-items:center;\n  z-index:1;\n}\n\n\n#uc_ue_side_menu_elementor_af6a7a4 .uc-side-menu-items ul{\n  padding:0px;\n  margin-left:0px;\n  margin-right: 0;\n  margin-bottom: 0;\n  list-style:none;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .uc-side-menu-items ul a{\n  display:flex;\n  align-items: center;\n  text-decoration:none;\n  position:relative;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .sub-menu {\n    overflow: hidden;\n    list-style: none;\n    height: auto;\n    transition: 0.5s;  \n}\n\n\/* open sub menus from side *\/\n\/* end open sub menus from side *\/\n\n#uc_ue_side_menu_elementor_af6a7a4 .side-menu-search-holder{\n  display:flex;\n  overflow:hidden;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .side-menu-search-holder input{\n  border:none;\n  border-radius:0px;\n  flex:1;\n  min-width: 0;  \n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .side-menu-search-holder button{\n  border:none;\n  display:flex;\n  cursor:pointer;\n  align-items:center;\n  justify-content:center;\n  border-radius:0px;\n  flex-grow: 0;\n  flex-shrink: 0;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .side-menu-buttons{\n  display:flex;\n}\n\n#uc_ue_side_menu_elementor_af6a7a4 .side-menu-button{\n  flex:1;\n  text-decoration:none;\n}\n\n.side-menu-button{\n  font-size:12px;\n}\n\n\n#uc_ue_side_menu_elementor_af6a7a4  .ue_side_menu_overlay{\n  position:fixed;\n  top:0;\n  bottom:0;\n  left:0;\n  right:0;\n  transition:1s;\n  opacity:0;\n}\n\n\t#uc_ue_side_menu_elementor_af6a7a4 .uc-side-menu-items ul a:hover:after {\n    content: \"\";\n    bottom: 0;\n    height: 3px;\n    width: 100%;\n    left: 0;\n    background-color: ;\n    z-index: 2;\n    position:absolute;\n    }  \n\t\n\n\n\n\n\n\n\/* On screens that are 1024px *\/\n@media screen and (max-width: 1024px) {\n  \n  #uc_ue_side_menu_elementor_af6a7a4 .menu-right-open {\n      width: ;\n  }\n\n  #uc_ue_side_menu_elementor_af6a7a4 .menu-right-close {\n      width: ;\n      margin-right: -;\n\n  }\n\n  #uc_ue_side_menu_elementor_af6a7a4 .menu-left-open {\n      width: ;\t\n  }\n\n  #uc_ue_side_menu_elementor_af6a7a4 .menu-left-close {\n      width: ;\n      margin-left: -;\n  }\n  \/* open sub menus from side *\/\n    \/* end open sub menus from side *\/\n}\n\n\/* On screens that are 768px *\/\n@media screen and (max-width: 768px) {  \n  #uc_ue_side_menu_elementor_af6a7a4 .menu-right-open {\n      width: 300px;\n  }\n\n  #uc_ue_side_menu_elementor_af6a7a4 .menu-right-close {\n      width: 300px;\n      margin-right: -300px;\n  }\n\n  #uc_ue_side_menu_elementor_af6a7a4 .menu-left-open {\n      width: 300px;\n  }\n\n  #uc_ue_side_menu_elementor_af6a7a4 .menu-left-close {\n      width: 300px;\n      margin-left: -300px;\n  }  \n  \/* open sub menus from side *\/\n    \/* end open sub menus from side *\/\n}\n\n<\/style>\n\n<div id=\"uc_ue_side_menu_elementor_af6a7a4\" class=\"uc-side-menu-main-wrapper\" \ndata-closeonbody=\"false\" \ndata-push=\"false\" \ndata-push-mobile=\"false\" \ndata-expand=\"false\" \ndata-first-expand=\"false\" \ndata-clickable=\"false\" \ndata-closeothers=\"false\" \ndata-push-method=\"padding\"\ndata-subs-from-side=\"false\"\ndata-backlink-text=\"Back\">\n     \n  <div class=\"uc-menu-button-wrapper\">          \n    <div class=\"open_side_menu\">\n              <i class='fas fa-bars'><\/i>\n          <\/div>       \n  <\/div>  \n      <div class=\"uc-side-menu-expand-icon\" style=\"display: none\"><i class='fas fa-angle-down'><\/i><\/div>\n    <div class=\"uc-side-menu-collapse-icon\" style=\"display: none\"><i class='fas fa-angle-up'><\/i><\/div>\n    \n    \n  <div class=\"uc-side-menu-wrapper menu-right-close\" data-name=\"\" data-openonload=\"false\" style=\"display: none;\">\n    <div class=\"ue_side_menu_overlay\"><\/div>        \n    <div class=\"uc-close-side-menu\"><i class='fas fa-times'><\/i><\/div>\n                    \n    <div class=\"side-menu-holder\">\n      <div class=\"uc-side-menu-items\">\n                \n        <div class=\"uc-header\">                      \n                  <\/div>                \n                        \n                        \n                          \n        <div class=\"side-menu-before\"><\/div>\n                                    \n        <ul id=\"menu-landing\" class=\"uc-list-menu\"><li id=\"menu-item-160\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-160\"><a href=\"https:\/\/vivamonte.vidor.pt\/\">Home<\/a><\/li>\n<li id=\"menu-item-3661\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-3661\"><a href=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/10\/VivaMonte_Brochura_Digital_pagebypage.pdf\">Download da Brochura<\/a><\/li>\n<li id=\"menu-item-3660\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-3660\"><a href=\"#contactos\">Contactos<\/a><\/li>\n<\/ul>                \n        <div class=\"side-menu-after\"><\/div>\n                \n        \t\t\n                \n      <\/div>    <\/div>  <\/div>  \n<\/div>\n<!-- end Side Menu -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8377d99 e-con e-atomic-element e-flexbox-base e-default-div e-376bf16 \" data-id=\"8377d99\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"8377d99\">\n    <div class=\"elementor-element elementor-element-beba5ca e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"beba5ca\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t\t  \t<video\n    data-id=\"ef82ecc\" data-interaction-id=\"ef82ecc\"\n    data-e-type=\"e-self-hosted-video\" data-interactions=\"null\"\n    class=\"e-bff6a19-019f4be e-self-hosted-video-base\"\n\t\tclass=\"e-self-hosted-video-base\"\n\t\t\t\tautoplay\t\tmuted\t\tloop\t\t\t\tplaysinline\t\tcontrolslist=\"nodownload\"\t\tpreload=\"auto\"\n\t>\n\t\t<source src=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/viva-monte.mp4#t=0\">\n\t<\/video>\n\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" class=\"e-image-base e-default-img e-186c532-37a1d5d\" data-interaction-id=\"186c532\" id=\"7657\" src=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/viva-monte-logo-1.png\" width=\"428\" height=\"201\" srcset=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/viva-monte-logo-1.png 428w, https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/viva-monte-logo-1-300x141.png 300w\" alt=\"\"\/>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1801b2d e-con-full elementor-hidden-desktop e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"1801b2d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<img decoding=\"async\" class=\"e-image-base e-default-img e-aa73024-0b36f9b\" data-interaction-id=\"aa73024\" id=\"8037\" src=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/vivamonte.gif\" width=\"800\" height=\"532\" srcset=\"\" alt=\"\"\/>\t\t\t\t\t<img decoding=\"async\" class=\"e-image-base e-default-img e-5ce84f0-3388e65\" data-interaction-id=\"5ce84f0\" id=\"7657\" src=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/viva-monte-logo-1.png\" width=\"428\" height=\"201\" srcset=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/viva-monte-logo-1.png 428w, https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/viva-monte-logo-1-300x141.png 300w\" alt=\"\"\/>\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-674ab14 e-con e-atomic-element e-flexbox-base e-default-div e-674ab14-4e8a2aa \" data-id=\"674ab14\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"674ab14\">\n    <div class=\"elementor-element elementor-element-022b83e e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"022b83e\" 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-f839600 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"f839600\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<p class=\"e-f14ffa9-f8a7f50 e-paragraph-base e-default-p\" data-interaction-id=\"f14ffa9\">O equil\u00edbrio perfeito entre a din\u00e2mica urbana e a qualidade de vida.<\/p>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f4b0eb0 e-con e-atomic-element e-flexbox-base e-default-div e-f4b0eb0-34478ad \" data-id=\"f4b0eb0\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"f4b0eb0\">\n    <div class=\"elementor-element elementor-element-cf5eca8 e-con e-atomic-element e-flexbox-base e-default-div e-cf5eca8-398c73f \" data-id=\"cf5eca8\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"cf5eca8\">\n    \t\t\t<img loading=\"lazy\" decoding=\"async\" class=\"e-image-base e-default-img \" data-interaction-id=\"553c695\" id=\"8050\" src=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/Camp.-VM-1080x1080-px-2.png\" width=\"1448\" height=\"1086\" srcset=\"\" alt=\"\"\/>\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-bb80e5f e-con e-atomic-element e-flexbox-base e-default-div e-bb80e5f-8483cef \" data-id=\"bb80e5f\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"bb80e5f\">\n    \t\t\t<img loading=\"lazy\" decoding=\"async\" class=\"e-image-base e-default-img \" data-interaction-id=\"385c1e4\" id=\"7648\" src=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/imagem-05-cozinha-2.png\" width=\"1080\" height=\"802\" srcset=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/imagem-05-cozinha-2.png 1080w, https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/imagem-05-cozinha-2-300x223.png 300w, https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/imagem-05-cozinha-2-1024x760.png 1024w, https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/imagem-05-cozinha-2-768x570.png 768w\" alt=\"\"\/>\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-8169625 e-con e-atomic-element e-flexbox-base e-default-div e-8169625-b1e14b0 \" data-id=\"8169625\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"8169625\">\n    \t\t\t<img loading=\"lazy\" decoding=\"async\" class=\"e-image-base e-default-img \" data-interaction-id=\"2470fa4\" id=\"7633\" src=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/chatgpt-image-9-de-jul.-de-2026-11_24_16-1.png\" width=\"1080\" height=\"720\" srcset=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/chatgpt-image-9-de-jul.-de-2026-11_24_16-1.png 1080w, https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/chatgpt-image-9-de-jul.-de-2026-11_24_16-1-300x200.png 300w, https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/chatgpt-image-9-de-jul.-de-2026-11_24_16-1-1024x683.png 1024w, https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/chatgpt-image-9-de-jul.-de-2026-11_24_16-1-768x512.png 768w\" alt=\"\"\/>\t\t\n<\/div>\n\n<\/div>\n\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-0b0694a e-con e-atomic-element e-flexbox-base e-default-div e-0b0694a-0ad6771 \" data-id=\"0b0694a\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"0b0694a\">\n    <div class=\"elementor-element elementor-element-08d7db1 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"08d7db1\" 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-cba0729 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"cba0729\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<p class=\"e-189aff0-3146bdd e-paragraph-base e-default-p\" data-interaction-id=\"189aff0\">Um verdadeiro ref\u00fagio de tranquilidade<\/p>\n\t\t\t\t\t<p class=\"e-a045b9e-c88bbf9 e-paragraph-base e-default-p\" data-interaction-id=\"a045b9e\">Aqui, o privil\u00e9gio de viver bem come\u00e7a antes mesmo de entrar em casa.<\/p>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7a0d4b9 e-con e-atomic-element e-flexbox-base e-default-div e-7a0d4b9-3ad22f5 \" data-id=\"7a0d4b9\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"7a0d4b9\">\n    <div class=\"elementor-element elementor-element-ad8431d e-con e-atomic-element e-flexbox-base e-default-div e-ad8431d-7b6c782 \" data-id=\"ad8431d\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"ad8431d\">\n    \t\t\t<img loading=\"lazy\" decoding=\"async\" class=\"e-image-base e-default-img \" data-interaction-id=\"c1fb5cf\" id=\"7719\" src=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/Imagem-15-WC.png\" width=\"1448\" height=\"1086\" srcset=\"\" alt=\"\"\/>\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-bc1831b e-con e-atomic-element e-flexbox-base e-default-div e-bc1831b-9c66caa \" data-id=\"bc1831b\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"bc1831b\">\n    \t\t\t<p class=\"e-04991d3-564595e e-paragraph-base e-default-p\" data-interaction-id=\"04991d3\">Cada apartamento reflete um compromisso com a funcionalidade, os acabamentos de excel\u00eancia e a valoriza\u00e7\u00e3o da luz natural, oferecendo ambientes pensados para acompanhar os diferentes momentos da vida.<\/p>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-6b263c5 e-con e-atomic-element e-flexbox-base e-default-div e-6b263c5-4882082 \" data-id=\"6b263c5\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"6b263c5\">\n    \t\t<div class=\"elementor-element elementor-element-264a591 elementor-widget-mobile__width-initial elementor-invisible elementor-widget elementor-widget-html\" data-id=\"264a591\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInRight&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"pt\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Image Hotspot<\/title>\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=Sulphur+Point:wght@300;400;700&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n  * {\r\n    margin: 0;\r\n    padding: 0;\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  .hotspot-wrapper {\r\n    position: relative;\r\n    width: 100%;\r\n    font-family: 'Sulphur Point', sans-serif;\r\n    overflow: hidden;\r\n  }\r\n\r\n  .hotspot-image {\r\n    display: block;\r\n    width: 100%;\r\n    height: auto;\r\n    object-fit: cover;\r\n  }\r\n\r\n  \/* \u2500\u2500\u2500 Hotspot: + \/ - branco, sem fundo \u2500\u2500\u2500 *\/\r\n  .hotspot {\r\n    position: absolute;\r\n    background: none;\r\n    border: none;\r\n    cursor: pointer;\r\n    z-index: 30;\r\n    outline: none;\r\n    \/* \u00c1rea de toque generosa para mobile *\/\r\n    padding: 12px;\r\n    top: 6%;\r\n    left: 5%;\r\n    \/* Compensa o padding para manter posi\u00e7\u00e3o visual *\/\r\n    transform: translate(-6px, -6px);\r\n    \/* Remove o tap highlight no iOS\/Android *\/\r\n    -webkit-tap-highlight-color: transparent;\r\n    touch-action: manipulation;\r\n    transition: background 0.35s ease;\r\n  }\r\n\r\n  .hotspot:hover {\r\n    background: rgba(15, 40, 80, 0.85);\r\n  }\r\n\r\n  .hotspot-icon {\r\n    position: relative;\r\n    width: 16px;\r\n    height: 16px;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n  }\r\n\r\n  .hotspot-icon::before,\r\n  .hotspot-icon::after {\r\n    content: '';\r\n    position: absolute;\r\n    background: #ffffff;\r\n    border-radius: 1px;\r\n    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),\r\n                opacity 0.35s ease;\r\n  }\r\n\r\n  .hotspot-icon::before {\r\n    width: 16px;\r\n    height: 1.5px;\r\n  }\r\n\r\n  .hotspot-icon::after {\r\n    width: 1.5px;\r\n    height: 16px;\r\n  }\r\n\r\n  \/* \u2212 : linha vertical desaparece *\/\r\n  .hotspot.is-open .hotspot-icon::after {\r\n    transform: rotate(90deg);\r\n    opacity: 0;\r\n  }\r\n\r\n  \/* \u2500\u2500\u2500 Overlay \u2500\u2500\u2500 *\/\r\n  .hotspot-overlay {\r\n    position: absolute;\r\n    top: calc(6% + 32px);\r\n    left: 5%;\r\n    width: 86%;\r\n    background: rgba(255, 255, 255, 0.93);\r\n    z-index: 20;\r\n    padding: 16px;\r\n    pointer-events: none;\r\n\r\n    opacity: 0;\r\n    transform: translateY(-4px);\r\n    transition: opacity 0.35s ease, transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);\r\n  }\r\n\r\n  .hotspot-overlay.is-visible {\r\n    opacity: 1;\r\n    transform: translateY(0);\r\n    pointer-events: auto;\r\n  }\r\n\r\n  .hotspot-overlay p {\r\n    font-size: 18px;\r\n    line-height: 1.75;\r\n    color: #1a1a1a;\r\n    font-family: 'Sulphur Point', sans-serif;\r\n  }\r\n\r\n  \/* \u2500\u2500\u2500 Mobile \u2500\u2500\u2500 *\/\r\n  @media (max-width: 767px) {\r\n    \/* \u00cdcone ligeiramente maior para facilitar o toque *\/\r\n    .hotspot-icon {\r\n      width: 20px;\r\n      height: 20px;\r\n    }\r\n\r\n    .hotspot-icon::before {\r\n      width: 20px;\r\n      height: 2px;\r\n    }\r\n\r\n    .hotspot-icon::after {\r\n      width: 2px;\r\n      height: 20px;\r\n    }\r\n\r\n    \/* Overlay ocupa quase toda a largura *\/\r\n    .hotspot-overlay {\r\n      top: calc(6% + 38px);\r\n      left: 4%;\r\n      width: 92%;\r\n      padding: 14px;\r\n    }\r\n\r\n    .hotspot-overlay p {\r\n      font-size: 13px;\r\n      line-height: 1.7;\r\n    }\r\n  }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n<div class=\"hotspot-wrapper\">\r\n\r\n  <img decoding=\"async\"\r\n    class=\"hotspot-image\"\r\n    src=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/Imagem-13-Quarto-02.png\"\r\n    alt=\"Imagem\"\r\n  \/>\r\n\r\n  <button\r\n    class=\"hotspot\"\r\n    aria-expanded=\"false\"\r\n    aria-controls=\"overlay-1\"\r\n    onclick=\"toggleHotspot(this, 'overlay-1')\"\r\n    title=\"Ver detalhes\"\r\n  >\r\n    <span class=\"hotspot-icon\" aria-hidden=\"true\"><\/span>\r\n  <\/button>\r\n\r\n  <div class=\"hotspot-overlay\" id=\"overlay-1\" role=\"region\" aria-label=\"Informa\u00e7\u00e3o\">\r\n    <p> A arquitetura contempor\u00e2nea do Viva Monte destaca-se pelas suas linhas elegantes, amplas varandas e uma identidade visual intemporal, pensada para valorizar a luz natural e a rela\u00e7\u00e3o com o exterior. <\/p>\r\n  <\/div>\r\n\r\n<\/div>\r\n\r\n<script>\r\n  function toggleHotspot(btn, overlayId) {\r\n    const overlay = document.getElementById(overlayId);\r\n    const isOpen  = btn.classList.contains('is-open');\r\n    btn.classList.toggle('is-open', !isOpen);\r\n    btn.setAttribute('aria-expanded', String(!isOpen));\r\n    overlay.classList.toggle('is-visible', !isOpen);\r\n  }\r\n<\/script>\r\n\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/div>\n\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-07108a8 e-con e-atomic-element e-flexbox-base e-default-div e-3769aad \" data-id=\"07108a8\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"07108a8\">\n    \t\t<div class=\"elementor-element elementor-element-1d1e0bb elementor-widget elementor-widget-html\" data-id=\"1d1e0bb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Jost:wght@300;400;500&display=swap\" rel=\"stylesheet\">\r\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/pannellum@2.5.6\/build\/pannellum.css\"\/>\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/pannellum@2.5.6\/build\/pannellum.js\"><\/script>\r\n\r\n<style>\r\n#vv360-wrapper *,\r\n#vv360-wrapper *::before,\r\n#vv360-wrapper *::after {\r\n  box-sizing: border-box;\r\n  margin: 0;\r\n  padding: 0;\r\n}\r\n\r\n#vv360-wrapper {\r\n  position: relative;\r\n  width: 100%;\r\n  height: 600px;\r\n  background: #16130f;\r\n  font-family: 'Jost', sans-serif;\r\n  overflow: hidden;\r\n  display: block;\r\n}\r\n\r\n#vv360-panorama {\r\n  position: absolute;\r\n  top: 0; left: 0; right: 0; bottom: 0;\r\n  width: 100%;\r\n  height: 100%;\r\n}\r\n\r\n#vv360-wrapper .pnlm-about-msg,\r\n#vv360-wrapper .pnlm-pannellum-logo { display: none !important; }\r\n\r\n\/* \u2500\u2500\u2500 FIX: remove ret\u00e2ngulo rosa\/highlight vindo do tema (Blocksy) ou do navegador \u2500\u2500\u2500 *\/\r\n#vv360-wrapper,\r\n#vv360-wrapper * {\r\n  -webkit-tap-highlight-color: transparent !important;\r\n  -webkit-touch-callout: none;\r\n}\r\n\r\n#vv360-wrapper button,\r\n#vv360-wrapper a,\r\n#vv360-wrapper img,\r\n#vv360-wrapper div,\r\n#vv360-wrapper span,\r\n#vv360-wrapper .pnlm-hotspot-base,\r\n#vv360-wrapper .pnlm-hotspot,\r\n#vv360-wrapper .pnlm-controls button,\r\n#vv360-wrapper .vv360-hs-dot,\r\n#vv360-wrapper .vv360-nav-btn,\r\n#vv360-wrapper .vv360-thumb-ring,\r\n#vv360-wrapper .vv360-hs-ring {\r\n  -webkit-tap-highlight-color: transparent !important;\r\n}\r\n\r\n#vv360-wrapper *:focus,\r\n#vv360-wrapper *:focus-visible {\r\n  outline: none !important;\r\n}\r\n\r\n#vv360-wrapper button:hover,\r\n#vv360-wrapper button:focus,\r\n#vv360-wrapper button:active,\r\n#vv360-wrapper a:hover,\r\n#vv360-wrapper a:focus,\r\n#vv360-wrapper a:active,\r\n#vv360-wrapper .pnlm-hotspot-base:hover,\r\n#vv360-wrapper .pnlm-hotspot-base:focus,\r\n#vv360-wrapper .pnlm-hotspot:hover,\r\n#vv360-wrapper .pnlm-hotspot:focus,\r\n#vv360-wrapper .vv360-nav-btn:hover,\r\n#vv360-wrapper .vv360-nav-btn:focus,\r\n#vv360-wrapper .vv360-nav-btn:active,\r\n#vv360-wrapper .vv360-hs-dot:hover,\r\n#vv360-wrapper .vv360-hs-dot:focus,\r\n#vv360-wrapper .vv360-hs-dot:active {\r\n  outline: none !important;\r\n  box-shadow: none !important;\r\n  filter: none !important;\r\n  background-color: transparent !important;\r\n  background-image: none !important;\r\n  border-color: inherit !important;\r\n}\r\n\r\n\/* Reaplica os estilos visuais que QUEREMOS manter no hover, depois do reset acima *\/\r\n#vv360-wrapper .vv360-hs-dot:hover .vv360-hs-ring,\r\n#vv360-wrapper .vv360-hs-ring:hover {\r\n  border-color: #fff !important;\r\n  box-shadow: 0 0 0 3px rgba(255,255,255,0.3), 0 4px 16px rgba(0,0,0,0.6) !important;\r\n}\r\n\r\n#vv360-wrapper .vv360-nav-btn.active .vv360-thumb-ring {\r\n  border-color: #fff !important;\r\n  box-shadow: 0 0 0 3px rgba(255,255,255,0.35) !important;\r\n}\r\n\r\n\/* \u2500\u2500\u2500 BOTTOM NAV BAR \u2500\u2500\u2500 *\/\r\n#vv360-bottom-bar {\r\n  position: absolute;\r\n  bottom: 0;\r\n  left: 0;\r\n  right: 0;\r\n  z-index: 60;\r\n  display: flex;\r\n  align-items: flex-end;\r\n  justify-content: center;\r\n  gap: 16px;\r\n  padding: 12px 20px 20px;\r\n  background: linear-gradient(to top, rgba(22,19,15,0.85) 0%, transparent 100%);\r\n  pointer-events: none;\r\n  overflow-x: auto;\r\n  scrollbar-width: none;\r\n}\r\n\r\n#vv360-bottom-bar::-webkit-scrollbar { display: none; }\r\n\r\n.vv360-nav-btn {\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: center;\r\n  gap: 5px;\r\n  cursor: pointer;\r\n  pointer-events: all;\r\n  background: none;\r\n  border: none;\r\n  outline: none;\r\n  padding: 0;\r\n  transition: transform 0.22s ease;\r\n  flex-shrink: 0;\r\n}\r\n\r\n.vv360-nav-btn:hover {\r\n  transform: translateY(-5px);\r\n}\r\n\r\n\/* \u2500\u2500\u2500 THUMB RING: tamanho base \u2500\u2500\u2500 *\/\r\n.vv360-thumb-ring {\r\n  width: 52px;\r\n  height: 52px;\r\n  border-radius: 50%;\r\n  border: 2px solid rgba(255,255,255,0.5);\r\n  overflow: hidden;\r\n  background: #2c2825;\r\n  transition: border-color 0.2s, box-shadow 0.2s, width 0.2s, height 0.2s;\r\n  flex-shrink: 0;\r\n}\r\n\r\n.vv360-thumb-ring img {\r\n  width: 100%;\r\n  height: 100%;\r\n  object-fit: cover;\r\n  display: block;\r\n  border-radius: 50%;\r\n}\r\n\r\n\/* \u2500\u2500\u2500 BOT\u00c3O ATIVO: anel maior + borda branca \u2500\u2500\u2500 *\/\r\n.vv360-nav-btn.active .vv360-thumb-ring {\r\n  width: 64px;\r\n  height: 64px;\r\n  border-color: #fff;\r\n  box-shadow: 0 0 0 3px rgba(255,255,255,0.35);\r\n}\r\n\r\n.vv360-nav-label {\r\n  font-family: 'Jost', sans-serif;\r\n  font-size: 9px;\r\n  font-weight: 400;\r\n  color: rgba(255,255,255,0.9);\r\n  text-align: center;\r\n  line-height: 1.3;\r\n  max-width: 64px;\r\n  text-shadow: 0 1px 4px rgba(0,0,0,0.7);\r\n  letter-spacing: 0.02em;\r\n  \/* Altura fixa para 2 linhas \u2014 todos os labels ocupam sempre o mesmo espa\u00e7o *\/\r\n  min-height: 2.6em;\r\n  display: flex;\r\n  align-items: flex-end;\r\n  justify-content: center;\r\n}\r\n\r\n\/* \u2500\u2500\u2500 PANORAMA HOTSPOT DOTS \u2500\u2500\u2500 *\/\r\n.vv360-hs-dot {\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: center;\r\n  gap: 4px;\r\n  cursor: pointer;\r\n  background: none;\r\n  border: none;\r\n  outline: none;\r\n  transition: transform 0.22s ease;\r\n  transform: translate(-50%, -50%);\r\n}\r\n\r\n.vv360-hs-dot:hover {\r\n  transform: translate(-50%, -50%) translateY(-4px);\r\n}\r\n\r\n.vv360-hs-ring {\r\n  width: 38px;\r\n  height: 38px;\r\n  border-radius: 50%;\r\n  border: 2px solid rgba(255,255,255,0.55);\r\n  overflow: hidden;\r\n  background: #2c2825;\r\n  box-shadow: 0 2px 12px rgba(0,0,0,0.55);\r\n  transition: border-color 0.2s, box-shadow 0.2s;\r\n  flex-shrink: 0;\r\n}\r\n\r\n.vv360-hs-dot:hover .vv360-hs-ring {\r\n  border-color: #fff;\r\n  box-shadow: 0 0 0 3px rgba(255,255,255,0.3), 0 4px 16px rgba(0,0,0,0.6);\r\n}\r\n\r\n.vv360-hs-ring img {\r\n  width: 100%;\r\n  height: 100%;\r\n  object-fit: cover;\r\n  display: block;\r\n  border-radius: 50%;\r\n}\r\n\r\n.vv360-hs-label {\r\n  font-family: 'Jost', sans-serif;\r\n  font-size: 9px;\r\n  font-weight: 400;\r\n  color: #fff;\r\n  text-align: center;\r\n  line-height: 1.3;\r\n  max-width: 60px;\r\n  text-shadow: 0 1px 4px rgba(0,0,0,0.8);\r\n  letter-spacing: 0.02em;\r\n  pointer-events: none;\r\n}\r\n\r\n\/* Fade overlay *\/\r\n#vv360-fade {\r\n  position: absolute;\r\n  inset: 0;\r\n  background: #16130f;\r\n  z-index: 80;\r\n  pointer-events: none;\r\n  opacity: 0;\r\n  transition: opacity 0.3s ease;\r\n}\r\n#vv360-fade.on { opacity: 1; }\r\n\r\n\/* \u2500\u2500\u2500 MOBILE \u2500\u2500\u2500 *\/\r\n@media (max-width: 600px) {\r\n  #vv360-bottom-bar {\r\n    gap: 6px 8px;\r\n    padding: 8px 10px 12px;\r\n    justify-content: center;\r\n    flex-wrap: wrap;\r\n    flex-direction: row;\r\n    align-items: flex-end;\r\n    \/* mostra no m\u00e1ximo 2 filas com 5 itens cada *\/\r\n    max-height: 180px;\r\n    overflow-y: hidden;\r\n    overflow-x: hidden;\r\n    padding-bottom: 32px;\r\n  }\r\n\r\n  .vv360-nav-btn {\r\n    gap: 3px;\r\n    \/* 5 bot\u00f5es por fila: (100% - 4*gap) \/ 5 *\/\r\n    width: calc(20% - 7px);\r\n    min-width: 0;\r\n  }\r\n\r\n  .vv360-thumb-ring {\r\n    width: 40px;\r\n    height: 40px;\r\n  }\r\n\r\n  .vv360-nav-btn.active .vv360-thumb-ring {\r\n    width: 48px;\r\n    height: 48px;\r\n  }\r\n\r\n  .vv360-nav-label {\r\n    font-size: 7.5px;\r\n    max-width: 100%;\r\n    min-height: 2.4em;\r\n  }\r\n}\r\n<\/style>\r\n\r\n<div id=\"vv360-wrapper\" style=\"position:relative;width:100%;height:600px;overflow:hidden;\">\r\n  <div id=\"vv360-panorama\"><\/div>\r\n  <div id=\"vv360-bottom-bar\"><\/div>\r\n  <div id=\"vv360-fade\"><\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function () {\r\n  var BASE = \"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/\";\r\n\r\n  var SCENES = {\r\n    entrada: {\r\n      title: \"Entrada\",\r\n      url: BASE + \"finalPano-01.png\",\r\n      hotspots: [\r\n        { scene: \"sala_jantar\", label: \"Sala de Jantar\", yaw: 0,  pitch: -5 },\r\n        { scene: \"cozinha\",      label: \"Cozinha\",       yaw: 40, pitch: -5 },\r\n        { scene: \"wc_servico\", label: \"Casa de Banho de Servi\u00e7o\",  yaw: 90,  pitch: -5 }\r\n      ]\r\n    },\r\n    sala_jantar: {\r\n      title: \"Sala de Jantar\",\r\n      url: BASE + \"finalPano-02.png\",\r\n      hotspots: [\r\n        { scene: \"wc_servico\", label: \"Casa de Banho de Servi\u00e7o\",  yaw: 270,  pitch: -5 },\r\n       { scene: \"cozinha\",      label: \"Cozinha\",       yaw: 160, pitch: -5 },\r\n        { scene: \"corredor\",     label: \"Corredor\",      yaw: -10, pitch: -5 }\r\n      ]\r\n    },\r\n    wc_servico: {\r\n      title: \"Casa de Banho de Servi\u00e7o\",\r\n      url: BASE + \"finalPano-02.2.png\",\r\n      hotspots: [\r\n        { scene: \"sala_jantar\", label: \"Sala de Jantar\", yaw: 210, pitch: -5 }\r\n      ]\r\n    },\r\n    cozinha: {\r\n      title: \"Cozinha\",\r\n      url: BASE + \"finalPano-03.png\",\r\n      hotspots: [\r\n        { scene: \"entrada\", label: \"Entrada\", yaw: 210, pitch: -5 }\r\n      ]\r\n    },\r\n        corredor: {\r\n      title: \"Corredor\",\r\n      url: BASE + \"finalPano-05.png\",\r\n      hotspots: [\r\n        { scene: \"sala_jantar\", label: \"Sala de Jantar\", yaw: 210, pitch: -5 },\r\n        { scene: \"quarto\",       label: \"Quarto\",          yaw: 240,   pitch: -5 },\r\n{ scene: \"suite\", label: \"Suite\", yaw: 5, pitch: -5 },\r\n        { scene: \"wc\",             label: \"Casa de Banho\",     yaw: -25,  pitch: -5 }\r\n      ]\r\n    },\r\n    quarto: {\r\n      title: \"Quarto\",\r\n      url: BASE + \"finalPano-06.png\",\r\n      hotspots: [\r\n        { scene: \"corredor\", label: \"Corredor\", yaw: 250, pitch: -5 }\r\n      ]\r\n    },\r\n    wc: {\r\n      title: \"Casa de Banho\",\r\n      url: BASE + \"finalPano-07.png\",\r\n      hotspots: [\r\n        { scene: \"corredor\", label: \"Corredor\", yaw: 195, pitch: -5 }\r\n      ]\r\n    },\r\n        suite: {\r\n      title: \"Suite\",\r\n      url: BASE + \"finalPano-10.png\",\r\n      hotspots: [\r\n         { scene: \"corredor\", label: \"Corredor\", yaw: 260, pitch: -5 },\r\n        { scene: \"wc_suite\",      label: \"WC Suite\",         yaw: 280,  pitch: -5 }\r\n      ]\r\n    },\r\n    wc_suite: {\r\n      title: \"WC Suite\",\r\n      url: BASE + \"finalPano-09.png\",\r\n      hotspots: [\r\n        { scene: \"suite\", label: \"Suite\", yaw: 70, pitch: -5 }\r\n      ]\r\n    }\r\n  };\r\n\r\n  var SCENE_ORDER = [\r\n    \"entrada\",\r\n    \"sala_jantar\",\r\n    \"wc_servico\",\r\n    \"cozinha\",\r\n    \"corredor\",\r\n    \"quarto\",\r\n    \"wc\",\r\n    \"suite\",\r\n    \"wc_suite\"\r\n  ];\r\n\r\n  var SCENE_LABELS = {\r\n    entrada:          \"Entrada\",\r\n    sala_jantar:  \"Sala de\\nJantar\",\r\n    wc_servico:    \"WC de\\nServi\u00e7o\",\r\n    cozinha:       \"Cozinha\",\r\n    corredor:      \"Corredor\",\r\n    quarto:      \"Quarto\",\r\n    wc:            \"Casa de\\nBanho\",\r\n    suite:         \"Suite\",\r\n    wc_suite:      \"WC\\nSuite\"\r\n  };\r\n\r\n  var FIRST = \"entrada\";\r\n\r\n  function initWithGlobals() {\r\n    if (typeof pannellum === 'undefined') { setTimeout(initWithGlobals, 200); return; }\r\n    var container = document.getElementById('vv360-panorama');\r\n    if (!container) { setTimeout(initWithGlobals, 200); return; }\r\n\r\n    var pScenes = {};\r\n    Object.keys(SCENES).forEach(function (id) {\r\n      pScenes[id] = {\r\n        panorama: SCENES[id].url,\r\n        autoLoad: true,\r\n        hotSpots: buildHotspots(id)\r\n      };\r\n    });\r\n\r\n    var viewer = pannellum.viewer('vv360-panorama', {\r\n      default: {\r\n        firstScene: FIRST,\r\n        sceneFadeDuration: 400,\r\n        autoLoad: true,\r\n        showControls: true,\r\n        showFullscreenCtrl: true,\r\n        showZoomCtrl: false,\r\n        mouseZoom: false,\r\n        compass: false,\r\n        hfov: 120,\r\n        minHfov: 120,\r\n        maxHfov: 120\r\n      },\r\n      scenes: pScenes\r\n    });\r\n\r\n    window._vv360viewer = viewer;\r\n    window._vv360currentScene = FIRST;\r\n\r\n    buildBottomBar(FIRST);\r\n\r\n    viewer.on('load', function () {\r\n      window._vv360currentScene = viewer.getScene();\r\n      buildBottomBar(viewer.getScene());\r\n    });\r\n  }\r\n\r\n  function buildHotspots(sceneId) {\r\n    var s = SCENES[sceneId];\r\n    return s.hotspots.filter(function (hs) {\r\n      return !!SCENES[hs.scene];\r\n    }).map(function (hs) {\r\n      return {\r\n        pitch: hs.pitch,\r\n        yaw:   hs.yaw,\r\n        type:  \"custom\",\r\n        text:  hs.label,\r\n        cssClass: \"vv360-hs-dot\",\r\n        createTooltipFunc: function (hotSpotDiv) {\r\n          var targetScene = SCENES[hs.scene];\r\n\r\n          var ring = document.createElement('div');\r\n          ring.className = 'vv360-hs-ring';\r\n          var img = document.createElement('img');\r\n          img.src = targetScene.url;\r\n          img.alt = hs.label;\r\n          ring.appendChild(img);\r\n\r\n          var lbl = document.createElement('span');\r\n          lbl.className = 'vv360-hs-label';\r\n          lbl.textContent = hs.label;\r\n\r\n          hotSpotDiv.appendChild(ring);\r\n          hotSpotDiv.appendChild(lbl);\r\n\r\n          hotSpotDiv.addEventListener('click', function () {\r\n            navigate(hs.scene);\r\n          });\r\n        }\r\n      };\r\n    });\r\n  }\r\n\r\n  function navigate(sceneId) {\r\n    var fadeEl = document.getElementById('vv360-fade');\r\n    fadeEl.classList.add('on');\r\n    setTimeout(function () {\r\n      if (window._vv360viewer) {\r\n        window._vv360viewer.loadScene(sceneId);\r\n      }\r\n      window._vv360currentScene = sceneId;\r\n      buildBottomBar(sceneId);\r\n      setTimeout(function () { fadeEl.classList.remove('on'); }, 300);\r\n    }, 280);\r\n  }\r\n\r\n  function buildBottomBar(activeId) {\r\n    var bar = document.getElementById('vv360-bottom-bar');\r\n    if (!bar) return;\r\n    bar.innerHTML = '';\r\n    SCENE_ORDER.forEach(function (id) {\r\n      var s = SCENES[id];\r\n      var btn = document.createElement('button');\r\n      btn.className = 'vv360-nav-btn' + (id === activeId ? ' active' : '');\r\n\r\n      var ring = document.createElement('div');\r\n      ring.className = 'vv360-thumb-ring';\r\n      var img = document.createElement('img');\r\n      img.src = s.url;\r\n      img.alt = SCENE_LABELS[id];\r\n      ring.appendChild(img);\r\n\r\n      var lbl = document.createElement('span');\r\n      lbl.className = 'vv360-nav-label';\r\n      lbl.textContent = SCENE_LABELS[id];\r\n\r\n      btn.appendChild(ring);\r\n      btn.appendChild(lbl);\r\n      btn.addEventListener('click', function () {\r\n        if (id !== window._vv360currentScene) navigate(id);\r\n      });\r\n      bar.appendChild(btn);\r\n    });\r\n  }\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', function () { setTimeout(initWithGlobals, 100); });\r\n  } else {\r\n    setTimeout(initWithGlobals, 100);\r\n  }\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-9b54903 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"9b54903\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4abe37f elementor-widget elementor-widget-html\" data-id=\"4abe37f\" 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=\"pt\">\r\n<head>\r\n  <meta charset=\"UTF-8\">\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n  <title>Vid\u00f3r \u2014 Hero Section<\/title>\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=Cormorant+Garamond:wght@600&family=Sulphur+Point:wght@300;400;600&display=swap\" rel=\"stylesheet\">\r\n\r\n  <style>\r\n    .vidor-hero-wrap {\r\n      width: 100%;\r\n      display: flex;\r\n      justify-content: center;\r\n      background: #0f2850;\r\n    }\r\n\r\n    .vidor-hero {\r\n      position: relative;\r\n      width: 100%;\r\n      max-width: 1920px;\r\n      aspect-ratio: 1900 \/ 525;\r\n      font-family: 'Sulphur Point', sans-serif;\r\n      overflow: hidden;\r\n    }\r\n\r\n    .vidor-hero__bg {\r\n      position: absolute;\r\n      inset: 0;\r\n      background-size: cover;\r\n      background-position: center center;\r\n    }\r\n\r\n    .vidor-hero__overlay {\r\n      position: absolute;\r\n      top: 15%;\r\n      left: 8%;\r\n      width: 42%;\r\n      height: 70%;\r\n      background: rgba(15, 40, 80, 0.78);\r\n      backdrop-filter: blur(1px);\r\n      display: flex;\r\n      flex-direction: column;\r\n      justify-content: center;\r\n      align-items: flex-start;\r\n      text-align: left;\r\n      padding: 2rem 2.5rem;\r\n      box-sizing: border-box;\r\n      z-index: 2;\r\n    }\r\n\r\n    .vidor-hero__title {\r\n      font-family: 'Cormorant Garamond', Georgia, serif;\r\n      font-size: clamp(1.5rem, 2.5vw, 2.1rem);\r\n      font-weight: 600;\r\n      color: #ffffff;\r\n      line-height: 1.25;\r\n      margin: 0 0 0.9rem;\r\n    }\r\n\r\n    .vidor-hero__sub {\r\n      font-family: 'Sulphur Point', sans-serif;\r\n      font-size: 1.2rem;\r\n      font-weight: 300;\r\n      color: rgba(255,255,255,0.82);\r\n      line-height: 1.6;\r\n      margin: 0 0 1.25rem;\r\n      letter-spacing: 0.01em;\r\n    }\r\n\r\n    .vidor-hero__content {\r\n      display: flex;\r\n      flex-direction: column;\r\n      align-items: flex-start;\r\n    }\r\n\r\n    .vidor-hero__buttons {\r\n      display: flex;\r\n      flex-direction: row;\r\n      align-items: center;\r\n      gap: 0.8rem;\r\n      flex-wrap: wrap;\r\n    }\r\n\r\n    .vidor-hero__cta,\r\n    .vidor-hero__cta:visited {\r\n      display: inline-flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      background: rgba(255,255,255,0.12);\r\n      color: #ffffff !important;\r\n      border: 1px solid rgba(255,255,255,0.55);\r\n      font-family: 'Sulphur Point', sans-serif;\r\n      font-size: 0.78rem;\r\n      font-weight: 400;\r\n      letter-spacing: 0.12em;\r\n      text-transform: uppercase;\r\n      text-decoration: none;\r\n      padding: 0.7rem 1.8rem;\r\n      cursor: pointer;\r\n      transition: background 0.25s, border-color 0.25s;\r\n      width: fit-content;\r\n      box-sizing: border-box;\r\n      white-space: nowrap;\r\n    }\r\n\r\n    .vidor-hero__cta:hover,\r\n    .vidor-hero__cta:focus,\r\n    .vidor-hero__cta:active {\r\n      background: #C3BEA6;\r\n      border-color: #C3BEA6;\r\n      color: #ffffff !important;\r\n      text-decoration: none;\r\n    }\r\n\r\n    \/* Mobile *\/\r\n    @media (max-width: 600px) {\r\n      .vidor-hero {\r\n        aspect-ratio: unset;\r\n        min-height: 480px;\r\n      }\r\n\r\n      .vidor-hero__overlay {\r\n        top: 8%;\r\n        left: 5%;\r\n        width: 90%;\r\n        height: 84%;\r\n        padding: 1.75rem 1.5rem;\r\n      }\r\n\r\n      .vidor-hero__title {\r\n        font-size: 1.8rem;\r\n      }\r\n\r\n      .vidor-hero__content {\r\n        width: 100%;\r\n      }\r\n\r\n      .vidor-hero__buttons {\r\n        flex-direction: column;\r\n        align-items: stretch;\r\n        gap: 0.8rem;\r\n        margin-top: 1.5rem;\r\n        width: 100%;\r\n      }\r\n\r\n      .vidor-hero__cta,\r\n      .vidor-hero__cta:visited {\r\n        width: 100%;\r\n        max-width: 100%;\r\n        margin-top: 0;\r\n        text-align: center;\r\n      }\r\n    }\r\n  <\/style>\r\n<\/head>\r\n\r\n<body>\r\n\r\n  <div class=\"vidor-hero-wrap\">\r\n    <section class=\"vidor-hero\">\r\n\r\n      <div\r\n        class=\"vidor-hero__bg\"\r\n        style=\"background-image: url('https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/Imagem-01-Sala-de-Estar.png');\">\r\n      <\/div>\r\n\r\n      <div class=\"vidor-hero__overlay\">\r\n\r\n        <p class=\"vidor-hero__title\">\r\n          O privil\u00e9gio de viver bem, tamb\u00e9m pode ser seu!\r\n        <\/p>\r\n\r\n        <div class=\"vidor-hero__content\">\r\n          <p class=\"vidor-hero__sub\">Quer saber mais?<\/p>\r\n\r\n          <div class=\"vidor-hero__buttons\">\r\n\r\n            <a class=\"vidor-hero__cta\" href=\"#contactos\">\r\n              Entre em contacto\r\n            <\/a>\r\n\r\n            <a\r\n              class=\"vidor-hero__cta\"\r\n              href=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/10\/VivaMonte_Brochura_Digital_pagebypage.pdf\"\r\n              target=\"_blank\"\r\n              rel=\"noopener\">\r\n              Fa\u00e7a Download da Brochura\r\n            <\/a>\r\n\r\n          <\/div>\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n    <\/section>\r\n  <\/div>\r\n\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c35d097 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"c35d097\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-580be00 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"580be00\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!doctype html>\n<html lang=\"pt-PT\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>Apartamentos \u2014 Viva Monte<\/title>\n<\/head>\n\n<body style=\"margin:0\">\n\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,400;1,400&family=DM+Sans:wght@400;500&display=swap');\n\n.vm-table {\n  --vm-text: #29382f;\n  --vm-muted: #686e66;\n  --vm-border: #d7d8cd;\n  --vm-green: #0f2850;\n  box-sizing: border-box;\n  width: 100%;\n  padding: 24px clamp(20px, 4vw, 64px) 48px;\n  background: var(--vm-bg);\n  color: var(--vm-text);\n  font: 16px\/1.6 \"DM Sans\", Arial, sans-serif;\n}\n\n.vm-table *,\n.vm-table *::before,\n.vm-table *::after {\n  box-sizing: border-box;\n}\n\n.vm-table button,\n.vm-table select {\n  font: inherit;\n  border-radius: 0;\n  box-shadow: none;\n  text-transform: none;\n}\n\n.vm-table button {\n  cursor: pointer;\n  color: inherit;\n}\n\n.vm-table a {\n  color: inherit;\n  text-decoration: none;\n}\n\n.vm-table button:focus-visible,\n.vm-table a:focus-visible,\n.vm-table select:focus-visible {\n  outline: 2px solid #0f2850;\n  outline-offset: 4px;\n}\n\n.vm-table h2,\n.vm-table h3,\n.vm-table h4,\n.vm-table p {\n  margin: 0;\n  color: inherit;\n}\n\n.vm-table [hidden] {\n  display: none !important;\n}\n\n\n\/* ==============================\n   TIPOLOGIAS\n============================== *\/\n\n.vm-types {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  border-block: 1px solid var(--vm-border);\n  margin-bottom: 54px;\n}\n\n.vm-table .vm-type {\n  display: block;\n  padding: 34px 30px;\n  text-align: left;\n  background: none;\n  border: 0;\n  border-right: 1px solid var(--vm-border);\n  transition:\n    background-color .2s ease,\n    color .2s ease;\n}\n\n.vm-table .vm-type:last-child {\n  border-right: 0;\n}\n\n\n\/* HOVER *\/\n\n.vm-table .vm-type:hover {\n  background-color: #0f2850;\n  color: #fff;\n}\n\n.vm-table .vm-type:hover p,\n.vm-table .vm-type:hover span,\n.vm-table .vm-type:hover strong,\n.vm-table .vm-type:hover b {\n  color: #fff;\n}\n\n.vm-type > span {\n  font-size: 12px;\n  letter-spacing: .14em;\n}\n\n.vm-type h3 {\n  font: 80px\/1 \"Cormorant Garamond\", Georgia, serif;\n  margin: 24px 0 18px;\n}\n\n.vm-type > p {\n  color: var(--vm-muted);\n  font-size: 14px;\n  min-height: 48px;\n}\n\n.vm-type > div {\n  display: flex;\n  align-items: center;\n  gap: 6px;\n  flex-wrap: wrap;\n  margin-top: 24px;\n  padding-top: 24px;\n  border-top: 1px solid var(--vm-border);\n  font-size: 14px;\n}\n\n.vm-type strong {\n  font-size: 20px;\n  font-weight: 500;\n}\n\n.vm-type b {\n  margin-left: auto;\n  font-weight: 400;\n  font-size: 23px;\n}\n\n\n\/* ==============================\n   DISPONIBILIDADE\n============================== *\/\n\n.vm-availability {\n  scroll-margin-top: 110px;\n}\n\n.vm-heading {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  gap: 24px;\n}\n\n.vm-heading h2 {\n  font: 30px\/1.25 \"Cormorant Garamond\", Georgia, serif;\n}\n\n.vm-heading p {\n  font-size: 12px;\n  color: var(--vm-muted);\n}\n\n\n\/* ==============================\n   FILTROS\n============================== *\/\n\n.vm-filters {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  gap: 20px;\n  margin: 28px 0;\n}\n\n.vm-filter-buttons {\n  display: flex;\n  gap: 8px;\n}\n\n.vm-table .vm-filter-buttons button {\n  min-height: 44px;\n  min-width: 60px;\n  padding: 10px 16px;\n  border: 1px solid var(--vm-border);\n  background: transparent;\n  font-size: 14px;\n  transition:\n    background-color .2s ease,\n    color .2s ease,\n    border-color .2s ease;\n}\n\n.vm-table .vm-filter-buttons button[aria-pressed=\"true\"] {\n  background: #0f2850;\n  color: #fff;\n  border-color: #0f2850;\n}\n\n.vm-table .vm-filter-buttons button:hover {\n  background-color: #0f2850;\n  color: #fff;\n  border-color: #0f2850;\n}\n\n.vm-filters label {\n  display: flex;\n  align-items: center;\n  gap: 16px;\n  font-size: 14px;\n}\n\n.vm-table .vm-filters select {\n  width: auto;\n  min-width: 150px;\n  padding: 12px 28px 12px 10px;\n  background: transparent;\n  color: var(--vm-text);\n  border: 0;\n  border-bottom: 1px solid var(--vm-border);\n  font-size: 14px;\n}\n\n\n\/* ==============================\n   APARTAMENTOS\n============================== *\/\n\n.vm-columns,\n.vm-unit {\n  display: grid;\n  grid-template-columns: 2fr 1fr 1fr 1.2fr .8fr;\n  gap: 18px;\n  align-items: center;\n}\n\n.vm-columns {\n  padding: 18px 0;\n  border-top: 1px solid var(--vm-border);\n  font-size: 12px;\n  letter-spacing: .08em;\n  color: var(--vm-muted);\n}\n\n.vm-unit {\n  padding: 24px 0;\n  border-bottom: 1px solid var(--vm-border);\n}\n\n.vm-unit h4 {\n  font: 22px\/1.3 \"DM Sans\", Arial, sans-serif;\n  margin-bottom: 5px;\n  font-weight: 400;\n}\n\n.vm-unit h4 span {\n  font-size: 12px;\n  color: var(--vm-muted);\n  margin-left: 12px;\n}\n\n.vm-unit small {\n  font-size: 12px;\n}\n\n.vm-unit-name > p {\n  font-size: 12px;\n  color: var(--vm-muted);\n  margin-top: 5px;\n}\n\n.vm-value small {\n  display: none;\n}\n\n.vm-value strong {\n  font-size: 14px;\n  font-weight: 500;\n}\n\n\n\/* ==============================\n   SABER MAIS\n============================== *\/\n\n.vm-unit a {\n  display: flex;\n  justify-content: space-between;\n  gap: 10px;\n  padding: 12px;\n  font-size: 14px;\n  transition:\n    background-color .2s ease,\n    color .2s ease;\n}\n\n.vm-unit a span {\n  font-size: 22px;\n}\n\n.vm-unit a:hover {\n  background-color: #0f2850;\n  color: #fff;\n}\n\n\n\/* ==============================\n   VER MAIS\n============================== *\/\n\n.vm-table .vm-more {\n  display: block;\n  padding: 10px 14px;\n  margin: 30px auto 0;\n  background: none;\n  border: 0;\n  border-bottom: 1px solid var(--vm-text);\n  font-size: 14px;\n  transition:\n    background-color .2s ease,\n    color .2s ease,\n    border-color .2s ease;\n}\n\n.vm-table .vm-more:hover {\n  background-color: #0f2850;\n  color: #fff;\n  border-color: #0f2850;\n}\n\n.vm-more span {\n  margin-left: 24px;\n  font-size: 20px;\n}\n\n.vm-table .vm-conditions {\n  max-width: 900px;\n  margin-top: 32px;\n  font-size: 12px;\n  line-height: 1.7;\n  color: var(--vm-muted);\n}\n\n.vm-empty {\n  padding: 25px 0;\n}\n\n\n\/* ==============================\n   TABLET\n============================== *\/\n\n@media (max-width: 850px) {\n\n  .vm-table .vm-type {\n    padding: 28px 20px;\n  }\n\n  .vm-type strong {\n    font-size: 17px;\n  }\n\n  .vm-columns {\n    display: none;\n  }\n\n  .vm-unit {\n    grid-template-columns: 1.4fr 1fr 1fr;\n    gap: 15px;\n  }\n\n  .vm-unit-name {\n    grid-row: span 2;\n  }\n\n  .vm-price {\n    grid-column: 2;\n  }\n\n  .vm-unit a {\n    grid-column: 3;\n  }\n\n  .vm-value small {\n    display: block;\n    color: var(--vm-muted);\n    margin-bottom: 4px;\n  }\n}\n\n\n\/* ==============================\n   MOBILE\n============================== *\/\n\n@media (max-width: 600px) {\n\n  .vm-table {\n    padding: 20px 6% 40px;\n  }\n\n  .vm-types {\n    grid-template-columns: 1fr;\n    margin-bottom: 40px;\n  }\n\n  .vm-table .vm-type {\n    display: grid;\n    grid-template-columns: 76px 1fr;\n    gap: 0 20px;\n    padding: 25px 20px;\n    border-right: 0;\n    border-bottom: 1px solid var(--vm-border);\n  }\n\n  .vm-table .vm-type:last-child {\n    border-bottom: 0;\n  }\n\n  .vm-type > span {\n    grid-column: 2;\n    align-self: end;\n    font-size: 12px;\n  }\n\n  .vm-type h3 {\n    grid-column: 1;\n    grid-row: 1 \/ 4;\n    align-self: center;\n    margin: 0;\n    font-size: 76px;\n  }\n\n  .vm-type > p {\n    grid-column: 2;\n    min-height: 0;\n    margin: 7px 0;\n  }\n\n  .vm-type > div {\n    grid-column: 2;\n    margin-top: 7px;\n    padding-top: 10px;\n  }\n\n  .vm-type strong {\n    font-size: 18px;\n  }\n\n  .vm-heading {\n    display: block;\n  }\n\n  .vm-heading p {\n    margin-top: 8px;\n  }\n\n  .vm-filters {\n    align-items: stretch;\n    flex-direction: column;\n    gap: 16px;\n  }\n\n  .vm-filter-buttons button {\n    flex: 1;\n  }\n\n  .vm-filters label {\n    justify-content: space-between;\n  }\n\n  .vm-unit {\n    grid-template-columns: 1fr .9fr 1.1fr;\n    gap: 14px 10px;\n  }\n\n  .vm-unit-name {\n    grid-row: auto;\n    grid-column: 1 \/ -1;\n  }\n\n  .vm-unit h4 {\n    font-size: 26px;\n  }\n\n  .vm-area {\n    grid-column: 1;\n  }\n\n  .vm-balcony {\n    grid-column: 2;\n  }\n\n  .vm-price {\n    grid-column: 3;\n    grid-row: 2;\n  }\n\n  .vm-unit a {\n    grid-column: 1 \/ -1;\n    justify-content: flex-end;\n    gap: 24px;\n    padding: 8px 12px;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .vm-table * {\n    transition: none !important;\n    scroll-behavior: auto !important;\n  }\n}\n\n\/* Alinhamento central das colunas da tabela *\/\n.vm-columns,.vm-unit{text-align:center}\n.vm-columns>*,.vm-unit>*{text-align:center}\n.vm-unit a{justify-self:center!important}\n\n\/* Colunas de \u00e1reas e alinhamento *\/\n.vm-columns,.vm-unit{grid-template-columns:minmax(165px,1.15fr) repeat(5,minmax(105px,.85fr)) minmax(110px,.8fr) minmax(105px,.8fr);gap:9px;text-align:center}\n.vm-columns{grid-template-rows:auto auto;min-width:1120px;overflow-x:auto}.vm-list{overflow-x:auto}.vm-unit{min-width:1120px}.vm-columns>*,.vm-unit>*{text-align:center}\n.vm-head-name{grid-column:1;grid-row:1\/3}.vm-head-private{grid-column:2;grid-row:1\/3}.vm-head-total{grid-column:3;grid-row:1\/3}.vm-dependent-head{grid-column:4\/7;grid-row:1\/3;display:grid;grid-template-rows:auto 1fr;align-items:center;font-size:10px}.vm-dependent-head strong{font-size:10px}.vm-dependent-head>div{display:grid;grid-template-columns:1fr 1.55fr .8fr;align-items:center;border-top:1px solid var(--vm-border)}.vm-dependent-head span{padding:4px 2px;font-size:9px;line-height:1.2}.vm-head-price{grid-column:7;grid-row:1\/3}.vm-head-info{grid-column:8;grid-row:1\/3}\n@media(max-width:700px){.vm-columns{display:none}.vm-list{overflow:visible}.vm-unit{min-width:0;grid-template-columns:1fr 1fr;gap:13px 10px}.vm-unit-name{grid-column:1\/-1}.vm-value small{display:block;margin-bottom:4px}.vm-price{grid-column:1\/-1}.vm-unit a{grid-column:1\/-1;justify-self:end}.vm-unit>*{text-align:center}}\n\n\n\/* \u00c1reas e alinhamento central *\/\n.vm-columns,.vm-unit{grid-template-columns:minmax(165px,1.15fr) repeat(5,minmax(105px,.85fr)) minmax(110px,.8fr) minmax(105px,.8fr);gap:9px;text-align:center}.vm-columns{grid-template-rows:auto auto;min-width:1120px;overflow-x:auto}.vm-list{overflow-x:auto}.vm-unit{min-width:1120px}.vm-columns>*,.vm-unit>*{text-align:center}.vm-head-name{grid-column:1;grid-row:1\/3}.vm-head-private{grid-column:2;grid-row:1\/3}.vm-head-total{grid-column:3;grid-row:1\/3}.vm-dependent-head{grid-column:4\/7;grid-row:1\/3;display:grid;grid-template-rows:auto 1fr;align-items:center;font-size:10px}.vm-dependent-head strong{font-size:10px}.vm-dependent-head>div{display:grid;grid-template-columns:1fr 1.55fr .8fr;align-items:center;border-top:1px solid var(--vm-border)}.vm-dependent-head span{padding:4px 2px;font-size:9px;line-height:1.2}.vm-head-price{grid-column:7;grid-row:1\/3}.vm-head-info{grid-column:8;grid-row:1\/3}\n@media(max-width:700px){.vm-columns{display:none}.vm-list{overflow:visible}.vm-unit{min-width:0;grid-template-columns:1fr 1fr;gap:13px 10px}.vm-unit-name{grid-column:1\/-1}.vm-value small{display:block;margin-bottom:4px}.vm-price{grid-column:1\/-1}.vm-unit a{grid-column:1\/-1;justify-self:end}.vm-unit>*{text-align:center}}\n\n<\/style>\n\n\n<section class=\"vm-table\" aria-label=\"Apartamentos Viva Monte\">\n\n  <div class=\"vm-types\">\n\n    <button class=\"vm-type\" type=\"button\" data-vm-type=\"T1\">\n      <span>01 \/ UM QUARTO<\/span>\n      <h3>T1<\/h3>\n      <p>O essencial, com espa\u00e7o para viver.<\/p>\n      <div>\n        Desde <strong>A atualizar\u2026<\/strong>\n        <b aria-hidden=\"true\">\u2197<\/b>\n      <\/div>\n    <\/button>\n\n    <button class=\"vm-type\" type=\"button\" data-vm-type=\"T2\">\n      <span>02 \/ DOIS QUARTOS<\/span>\n      <h3>T2<\/h3>\n      <p>Mais liberdade para o seu dia a dia.<\/p>\n      <div>\n        Desde <strong>A atualizar\u2026<\/strong>\n        <b aria-hidden=\"true\">\u2197<\/b>\n      <\/div>\n    <\/button>\n\n    <button class=\"vm-type\" type=\"button\" data-vm-type=\"T3\">\n      <span>03 \/ TR\u00caS QUARTOS<\/span>\n      <h3>T3<\/h3>\n      <p>Uma casa que acompanha a fam\u00edlia.<\/p>\n      <div>\n        Desde <strong>A atualizar\u2026<\/strong>\n        <b aria-hidden=\"true\">\u2197<\/b>\n      <\/div>\n    <\/button>\n\n  <\/div>\n\n\n  <div class=\"vm-availability\">\n\n    <div class=\"vm-heading\">\n      <h2>Explore os apartamentos<\/h2>\n      <p class=\"vm-count\" role=\"status\" aria-live=\"polite\"><\/p>\n    <\/div>\n\n    <div class=\"vm-filters\">\n\n      <div class=\"vm-filter-buttons\" role=\"group\" aria-label=\"Filtrar por tipologia\">\n        <button type=\"button\" data-vm-filter=\"all\" aria-pressed=\"false\">Todos<\/button>\n        <button type=\"button\" data-vm-filter=\"T1\" aria-pressed=\"true\">T1<\/button>\n        <button type=\"button\" data-vm-filter=\"T2\" aria-pressed=\"false\">T2<\/button>\n        <button type=\"button\" data-vm-filter=\"T3\" aria-pressed=\"false\">T3<\/button>\n      <\/div>\n\n      <label>\n        Piso\n        <select class=\"vm-floor\" aria-label=\"Filtrar por piso\">\n          <option value=\"all\">Todos os pisos<\/option>\n          <option value=\"0\">Piso 0<\/option>\n          <option value=\"1\">Piso 1<\/option>\n          <option value=\"2\">Piso 2<\/option>\n          <option value=\"3\">Piso 3<\/option>\n          <option value=\"4\">Piso 4<\/option>\n          <option value=\"5\">Piso 5<\/option>\n        <\/select>\n      <\/label>\n\n    <\/div>\n\n    <div class=\"vm-columns\" aria-hidden=\"true\">\n      <span class=\"vm-head-name\">FRA\u00c7\u00c3O \/ TIPOLOGIA<\/span><span class=\"vm-head-private\">\u00c1REA BRUTA PRIVATIVA<\/span><span class=\"vm-head-total\">\u00c1REA TOTAL<\/span>\n      <div class=\"vm-dependent-head\"><strong>\u00c1REAS DEPENDENTES<\/strong><div><span>ESTACIONAMENTO<\/span><span>VARANDAS, TERRA\u00c7OS E LOGRADOURO<\/span><span>ARRUMOS<\/span><\/div><\/div><span class=\"vm-head-price\">PRE\u00c7O<\/span><span class=\"vm-head-info\">INFORMA\u00c7\u00d5ES<\/span>\n    <\/div>\n\n    <div class=\"vm-list\"><\/div>\n\n    <button class=\"vm-more\" type=\"button\">\n      Ver mais apartamentos <span aria-hidden=\"true\">\uff0b<\/span>\n    <\/button>\n\n    <noscript>\n      Ative JavaScript para explorar as fra\u00e7\u00f5es ou contacte comercial@vidor.pt.\n    <\/noscript>\n\n    <p class=\"vm-conditions\">\n      * Condi\u00e7\u00f5es especiais para Habita\u00e7\u00e3o Pr\u00f3pria Permanente.\n    <\/p>\n\n  <\/div>\n\n<\/section>\n\n\n<script>\n(function () {\n  \"use strict\";\n\n  const CONTACT_URL = \"mailto:comercial@vidor.pt\";\n  const INITIAL_TYPE = \"T1\";\n  const INITIAL_LIMIT = 6;\n\n  \/\/ Refer\u00eancias e \u00e1reas conferidas com o separador \u201cFRA\u00c7\u00d5ES\u201d do Excel.\n  \/\/ A fra\u00e7\u00e3o do Excel est\u00e1 no \u00faltimo campo de cada registo e \u00e9 exibida junto da refer\u00eancia.\n  \/\/ O campo de \u00e1rea exterior usa \u201c\u00c1rea Exterior Total\u201d do quadro de \u00e1reas.\n  const UNITS = [\n    [\"00.PO.35.001\",\"0\",\"T3\",\"2\",\"Poente\/Sul\",\"321.81 m\u00b2\",\"92.25 m\u00b2\",\"Brevemente\",\"0.1\",139.4,321.81,25.0,92.25,0.0],\n    [\"00.PO.35.002\",\"0\",\"T2\",\"1\",\"Nascente\/Sul\",\"351.99 m\u00b2\",\"185.07 m\u00b2\",\"Brevemente\",\"0.2\",105.23,351.99,12.5,185.07,0.0],\n    [\"00.PO.35.003\",\"0\",\"T2\",\"1\",\"Nascente\",\"268.31 m\u00b2\",\"94.54 m\u00b2\",\"Brevemente\",\"0.3\",109.9,268.31,12.5,94.54,0.0],\n    [\"00.PO.35.004\",\"0\",\"T3\",\"2\",\"Nascente\/Norte\",\"331.86 m\u00b2\",\"110.62 m\u00b2\",\"360 000 \u20ac*\",\"0.4\",133.73,331.86,25.0,110.62,0.0],\n    [\"00.PO.35.005\",\"0\",\"T2\",\"1\",\"Norte\",\"163.03 m\u00b2\",\"12.00 m\u00b2\",\"256 000 \u20ac*\",\"0.5\",94.4,163.03,12.5,12.0,0.0],\n    [\"00.PO.35.006\",\"0\",\"T1\",\"1\",\"Norte\/Poente\",\"107.85 m\u00b2\",\"0.00 m\u00b2\",\"189 000 \u20ac*\",\"0.6\",64.98,107.85,12.5,0.0,0.0],\n    [\"00.PO.35.007\",\"0\",\"T1\",\"1\",\"Poente\/Sul\",\"134.91 m\u00b2\",\"18.81 m\u00b2\",\"Brevemente\",\"0.7\",70.6,134.91,12.5,18.81,0.0],\n    [\"00.PO.35.008\",\"1\",\"T3\",\"2\",\"Poente\/Sul\",\"225.45 m\u00b2\",\"16.12 m\u00b2\",\"Brevemente\",\"1.1\",125.61,225.45,25.0,16.12,0.0],\n    [\"00.PO.35.009\",\"1\",\"T2\",\"1\",\"Nascente\/Sul\",\"183.04 m\u00b2\",\"16.12 m\u00b2\",\"Brevemente\",\"1.2\",105.23,183.04,12.5,16.12,0.0],\n    [\"00.PO.35.010\",\"1\",\"T2\",\"1\",\"Nascente\",\"194.94 m\u00b2\",\"21.17 m\u00b2\",\"Brevemente\",\"1.3\",109.9,194.94,12.5,21.17,0.0],\n    [\"00.PO.35.011\",\"1\",\"T3\",\"2\",\"Nascente\/Norte\",\"237.32 m\u00b2\",\"16.08 m\u00b2\",\"332 000 \u20ac*\",\"1.4\",133.73,237.32,25.0,16.08,0.0],\n    [\"00.PO.35.012\",\"1\",\"T2\",\"1\",\"Norte\",\"163.03 m\u00b2\",\"12.00 m\u00b2\",\"256 000 \u20ac*\",\"1.5\",94.4,163.03,12.5,12.0,0.0],\n    [\"00.PO.35.013\",\"1\",\"T1\",\"1\",\"Norte\/Poente\",\"123.93 m\u00b2\",\"16.08 m\u00b2\",\"199 000 \u20ac*\",\"1.6\",64.98,123.93,12.5,16.08,0.0],\n    [\"00.PO.35.014\",\"1\",\"T1\",\"1\",\"Poente\/Sul\",\"130.00 m\u00b2\",\"13.90 m\u00b2\",\"Brevemente\",\"1.7\",70.6,130.0,12.5,13.9,0.0],\n    [\"00.PO.35.015\",\"1\",\"T1\",\"1\",\"Poente\",\"109.31 m\u00b2\",\"6.21 m\u00b2\",\"Brevemente\",\"1.8\",61.74,109.31,12.5,6.21,0.0],\n    [\"00.PO.35.016\",\"2\",\"T3\",\"2\",\"Poente\/Sul\",\"225.45 m\u00b2\",\"16.12 m\u00b2\",\"332 000 \u20ac*\",\"2.1\",125.61,225.45,25.0,16.12,0.0],\n    [\"00.PO.35.017\",\"2\",\"T2\",\"1\",\"Nascente\/Sul\",\"175.17 m\u00b2\",\"8.25 m\u00b2\",\"275 000 \u20ac*\",\"2.2\",105.23,175.17,12.5,8.25,0.0],\n    [\"00.PO.35.018\",\"2\",\"T2\",\"1\",\"Nascente\",\"182.02 m\u00b2\",\"8.25 m\u00b2\",\"Brevemente\",\"2.3\",109.9,182.02,12.5,8.25,0.0],\n    [\"00.PO.35.019\",\"2\",\"T3\",\"2\",\"Nascente\/Norte\",\"249.58 m\u00b2\",\"28.34 m\u00b2\",\"Brevemente\",\"2.4\",133.73,249.58,25.0,28.34,0.0],\n    [\"00.PO.35.020\",\"2\",\"T2\",\"1\",\"Norte\",\"163.03 m\u00b2\",\"12.00 m\u00b2\",\"Brevemente\",\"2.5\",94.4,163.03,12.5,12.0,0.0],\n    [\"00.PO.35.021\",\"2\",\"T1\",\"1\",\"Norte\/Poente\",\"116.02 m\u00b2\",\"8.17 m\u00b2\",\"Brevemente\",\"2.6\",64.98,116.02,12.5,8.17,0.0],\n    [\"00.PO.35.022\",\"2\",\"T1\",\"1\",\"Poente\/Sul\",\"127.20 m\u00b2\",\"11.10 m\u00b2\",\"Brevemente\",\"2.7\",70.6,127.2,12.5,11.1,0.0],\n    [\"00.PO.35.023\",\"2\",\"T1\",\"1\",\"Poente\",\"111.34 m\u00b2\",\"8.24 m\u00b2\",\"Vendido\",\"2.8\",61.74,111.34,12.5,8.24,0.0],\n    [\"00.PO.35.024\",\"3\",\"T3\",\"2\",\"Poente\/Sul\",\"225.45 m\u00b2\",\"16.12 m\u00b2\",\"Brevemente\",\"3.1\",125.61,225.45,25.0,16.12,0.0],\n    [\"00.PO.35.025\",\"3\",\"T2\",\"1\",\"Nascente\/Sul\",\"183.04 m\u00b2\",\"16.12 m\u00b2\",\"Vendido\",\"3.2\",105.23,183.04,12.5,16.12,0.0],\n    [\"00.PO.35.026\",\"3\",\"T2\",\"1\",\"Nascente\",\"194.94 m\u00b2\",\"21.17 m\u00b2\",\"Brevemente\",\"3.3\",109.9,194.94,12.5,21.17,0.0],\n    [\"00.PO.35.027\",\"3\",\"T3\",\"2\",\"Nascente\/Norte\",\"237.32 m\u00b2\",\"16.08 m\u00b2\",\"Brevemente\",\"3.4\",133.73,237.32,25.0,16.08,0.0],\n    [\"00.PO.35.028\",\"3\",\"T2\",\"1\",\"Norte\",\"163.03 m\u00b2\",\"12.00 m\u00b2\",\"265 000 \u20ac*\",\"3.5\",94.4,163.03,12.5,12.0,0.0],\n    [\"00.PO.35.029\",\"3\",\"T1\",\"1\",\"Norte\/Poente\",\"123.93 m\u00b2\",\"16.08 m\u00b2\",\"199 000 \u20ac*\",\"3.6\",64.98,123.93,12.5,16.08,0.0],\n    [\"00.PO.35.030\",\"3\",\"T1\",\"1\",\"Poente\/Sul\",\"130.00 m\u00b2\",\"13.90 m\u00b2\",\"Vendido\",\"3.7\",70.6,130.0,12.5,13.9,0.0],\n    [\"00.PO.35.031\",\"3\",\"T1\",\"1\",\"Poente\",\"109.31 m\u00b2\",\"6.21 m\u00b2\",\"Brevemente\",\"3.8\",61.74,109.31,12.5,6.21,0.0],\n    [\"00.PO.35.032\",\"4\",\"T3\",\"2\",\"Poente\/Sul\",\"225.45 m\u00b2\",\"16.12 m\u00b2\",\"Brevemente\",\"4.1\",125.61,225.45,25.0,16.12,0.0],\n    [\"00.PO.35.033\",\"4\",\"T2\",\"1\",\"Nascente\/Sul\",\"175.17 m\u00b2\",\"8.25 m\u00b2\",\"Brevemente\",\"4.2\",105.23,175.17,12.5,8.25,0.0],\n    [\"00.PO.35.034\",\"4\",\"T2\",\"1\",\"Nascente\",\"182.02 m\u00b2\",\"8.25 m\u00b2\",\"275 000 \u20ac*\",\"4.3\",109.9,182.02,12.5,8.25,0.0],\n    [\"00.PO.35.035\",\"4\",\"T3\",\"2\",\"Nascente\/Norte\",\"249.58 m\u00b2\",\"28.34 m\u00b2\",\"Brevemente\",\"4.4\",133.73,249.58,25.0,28.34,0.0],\n    [\"00.PO.35.036\",\"4\",\"T2\",\"1\",\"Norte\",\"163.03 m\u00b2\",\"12.00 m\u00b2\",\"Brevemente\",\"4.5\",94.4,163.03,12.5,12.0,0.0],\n    [\"00.PO.35.037\",\"4\",\"T1\",\"1\",\"Norte\/Poente\",\"116.02 m\u00b2\",\"8.17 m\u00b2\",\"208 000 \u20ac*\",\"4.6\",64.98,116.02,12.5,8.17,0.0],\n    [\"00.PO.35.038\",\"4\",\"T1\",\"1\",\"Poente\/Sul\",\"127.20 m\u00b2\",\"11.10 m\u00b2\",\"Brevemente\",\"4.7\",70.6,127.2,12.5,11.1,0.0],\n    [\"00.PO.35.039\",\"4\",\"T1\",\"1\",\"Poente\",\"111.34 m\u00b2\",\"8.24 m\u00b2\",\"Brevemente\",\"4.8\",61.74,111.34,12.5,8.24,0.0],\n    [\"00.PO.35.040\",\"5\",\"T3\",\"2\",\"Poente\/Sul\",\"225.45 m\u00b2\",\"16.12 m\u00b2\",\"Brevemente\",\"5.1\",125.61,225.45,25.0,16.12,0.0],\n    [\"00.PO.35.041\",\"5\",\"T2\",\"1\",\"Nascente\/Sul\",\"183.04 m\u00b2\",\"16.12 m\u00b2\",\"Brevemente\",\"5.2\",105.23,183.04,12.5,16.12,0.0],\n    [\"00.PO.35.042\",\"5\",\"T2\",\"1\",\"Nascente\",\"194.94 m\u00b2\",\"21.17 m\u00b2\",\"Brevemente\",\"5.3\",109.9,194.94,12.5,21.17,0.0],\n    [\"00.PO.35.043\",\"5\",\"T3\",\"2\",\"Nascente\/Norte\",\"237.32 m\u00b2\",\"16.08 m\u00b2\",\"Brevemente\",\"5.4\",133.73,237.32,25.0,16.08,0.0],\n    [\"00.PO.35.044\",\"5\",\"T2\",\"1\",\"Norte\",\"163.03 m\u00b2\",\"12.00 m\u00b2\",\"275 000 \u20ac*\",\"5.5\",94.4,163.03,12.5,12.0,0.0],\n    [\"00.PO.35.045\",\"5\",\"T1\",\"1\",\"Norte\/Poente\",\"123.93 m\u00b2\",\"16.08 m\u00b2\",\"Brevemente\",\"5.6\",64.98,123.93,12.5,16.08,0.0],\n    [\"00.PO.35.046\",\"5\",\"T1\",\"1\",\"Poente\/Sul\",\"130.00 m\u00b2\",\"13.90 m\u00b2\",\"Brevemente\",\"5.7\",70.6,130.0,12.5,13.9,0.0],\n    [\"00.PO.35.047\",\"5\",\"T1\",\"1\",\"Poente\",\"109.31 m\u00b2\",\"6.21 m\u00b2\",\"Brevemente\",\"5.8\",61.74,109.31,12.5,6.21,0.0],\n  ];\n\n  const API_URL = \"\/index.php?rest_route=\/vidor\/v1\/properties\";\n\n  const script = document.currentScript;\n  const root = script.previousElementSibling;\n\n  if (!root || !root.matches(\".vm-table\")) return;\n\n  const floor = root.querySelector(\".vm-floor\");\n  const list = root.querySelector(\".vm-list\");\n  const more = root.querySelector(\".vm-more\");\n\n  let type = INITIAL_TYPE;\n  let limit = INITIAL_LIMIT;\n  let units = UNITS;\n\n  const escapeHTML = value => String(value).replace(\/[&<>\"']\/g, c =>\n    ({\n      \"&\": \"&amp;\",\n      \"<\": \"&lt;\",\n      \">\": \"&gt;\",\n      '\"': \"&quot;\",\n      \"'\": \"&#39;\"\n    })[c]\n  );\n\n  const area = value =>\n    parseFloat(value).toLocaleString(\"pt-PT\", {\n      minimumFractionDigits: 2,\n      maximumFractionDigits: 2\n    }) + \" m\u00b2\";\n\n  function contactLink(unit) {\n    if (!CONTACT_URL.startsWith(\"mailto:\")) return CONTACT_URL;\n\n    const subject = \"Viva Monte \u2014 fra\u00e7\u00e3o \" + unit[0];\n\n    const body =\n      \"Ol\u00e1, equipa VID\u00d3R,\\n\\n\" +\n      \"Gostaria de receber a planta e confirmar o pre\u00e7o e a disponibilidade da fra\u00e7\u00e3o \" +\n      unit[0] +\n      \" (\" + unit[2] + \", piso \" + unit[1] + \").\\n\\nObrigado\/a.\";\n\n    return CONTACT_URL +\n      \"?subject=\" + encodeURIComponent(subject) +\n      \"&body=\" + encodeURIComponent(body);\n  }\n\n  function render() {\n\n    const matches = units.filter(unit =>\n      (type === \"all\" || unit[2] === type) &&\n      (floor.value === \"all\" || unit[1] === floor.value)\n    );\n\n    root.querySelector(\".vm-count\").textContent =\n      matches.length + \" fra\u00e7\u00f5es \u00b7 disponibilidade sob consulta\";\n\n    list.replaceChildren();\n\n    matches.slice(0, limit).forEach(unit => {\n\n      const row = document.createElement(\"article\");\n      row.className = \"vm-unit\";\n\n      row.innerHTML =\n        '<div class=\"vm-unit-name\">' +\n        '<h4>' + escapeHTML(unit[2]) +\n        ' <span>Piso ' + escapeHTML(unit[1]) + '<\/span><\/h4>' +\n        '<small>Ref. ' + escapeHTML(unit[0]) + ' \u00b7 Fra\u00e7\u00e3o ' + escapeHTML(unit[8]) + '<\/small>' +\n        '<p>' + escapeHTML(unit[3]) +\n        (unit[3] === \"1\" ? \" lugar\" : \" lugares\") +\n        ' de garagem \u00b7 ' + escapeHTML(unit[4]) + '<\/p>' +\n        '<\/div>' +\n\n        '<div class=\"vm-value vm-private-area\"><small>\u00c1rea Bruta Privativa<\/small><strong>' + area(unit[9]) + '<\/strong><\/div>' +\n        '<div class=\"vm-value vm-total-area\"><small>\u00c1rea Total<\/small><strong>' + area(unit[10]) + '<\/strong><\/div>' +\n        '<div class=\"vm-value vm-parking\"><small>Estacionamento<\/small><strong>' + area(unit[11]) + '<\/strong><\/div>' +\n        '<div class=\"vm-value vm-balcony\"><small>Varandas, Terra\u00e7os e Logradouro<\/small><strong>' + area(unit[12]) + '<\/strong><\/div>' +\n        '<div class=\"vm-value vm-storage\"><small>Arrumos<\/small><strong>' + area(unit[13]) + '<\/strong><\/div>' +\n\n        '<div class=\"vm-value vm-price\">' +\n        '<small>Pre\u00e7o<\/small>' +\n        '<strong>' + escapeHTML(unit[7]) + '<\/strong>' +\n        '<\/div>';\n\n      const link = document.createElement(\"a\");\n\n      link.href = contactLink(unit);\n\n      link.setAttribute(\n        \"aria-label\",\n        \"Pedir informa\u00e7\u00f5es da fra\u00e7\u00e3o \" + unit[0]\n      );\n\n      link.innerHTML =\n        'Saber mais <span aria-hidden=\"true\">\u2197<\/span>';\n\n      link.addEventListener(\"click\", () => {\n        root.dispatchEvent(\n          new CustomEvent(\"viva-monte:select-unit\", {\n            bubbles: true,\n            detail: {\n              reference: unit[0],\n              floor: unit[1],\n              type: unit[2]\n            }\n          })\n        );\n      });\n\n      row.append(link);\n      list.append(row);\n    });\n\n    if (!matches.length) {\n      const empty = document.createElement(\"p\");\n\n      empty.className = \"vm-empty\";\n      empty.textContent =\n        \"N\u00e3o existem fra\u00e7\u00f5es nesta combina\u00e7\u00e3o. Experimente outro piso ou tipologia.\";\n\n      list.append(empty);\n    }\n\n    more.hidden = matches.length <= limit;\n\n    root.querySelectorAll(\"[data-vm-filter]\").forEach(button => {\n      button.setAttribute(\n        \"aria-pressed\",\n        String(button.dataset.vmFilter === type)\n      );\n    });\n  }\n\n  root.querySelectorAll(\"[data-vm-filter]\").forEach(button => {\n    button.addEventListener(\"click\", () => {\n      type = button.dataset.vmFilter;\n      limit = INITIAL_LIMIT;\n      render();\n    });\n  });\n\n  root.querySelectorAll(\"[data-vm-type]\").forEach(button => {\n    button.addEventListener(\"click\", () => {\n\n      type = button.dataset.vmType;\n      floor.value = \"all\";\n      limit = INITIAL_LIMIT;\n\n      render();\n\n      root.querySelector(\".vm-availability\").scrollIntoView({\n        behavior: matchMedia(\"(prefers-reduced-motion: reduce)\").matches\n          ? \"auto\"\n          : \"smooth\"\n      });\n    });\n  });\n\n  floor.addEventListener(\"change\", () => {\n    limit = INITIAL_LIMIT;\n    render();\n  });\n\n  more.addEventListener(\"click\", () => {\n    limit += 8;\n    render();\n  });\n\n  function isSold(property) {\n    const estado = String(property.estado || \"\").trim();\n    return property.vendido === true ||\n      \/^(inactive|inativo|inativa)$\/i.test(estado) ||\n      \/vendid|sold\/i.test(estado);\n  }\n\n  function updateStartingPrices(byReference) {\n    root.querySelectorAll(\".vm-types .vm-type\").forEach(card => {\n      const cardType = card.dataset.vmType;\n      const prices = UNITS\n        .filter(unit => unit[2] === cardType)\n        .map(unit => byReference.get(unit[0]))\n        .filter(property =>\n          property &&\n          !isSold(property) &&\n          property.preco_visivel !== false &&\n          Number(property.preco) > 0\n        )\n        .map(property => Number(property.preco));\n\n      const priceElement = card.querySelector(\"strong\");\n      if (!priceElement) return;\n\n      if (!prices.length) {\n        priceElement.textContent = \"Sob consulta\";\n        return;\n      }\n\n      priceElement.textContent = Math.min(...prices).toLocaleString(\"pt-PT\", {\n        maximumFractionDigits: 0\n      }) + \" \u20ac*\";\n    });\n  }\n\n  async function updateUnitsFromCasafari() {\n    const url = new URL(API_URL, window.location.origin);\n    url.searchParams.set(\"numero\", \"500\");\n    url.searchParams.set(\"negocio\", \"Sale\");\n    url.searchParams.set(\"lang\", \"pt\");\n\n    const response = await fetch(url, {\n      cache: \"no-store\",\n      credentials: \"same-origin\"\n    });\n\n    if (!response.ok) {\n      throw new Error(\"A API VID\u00d3R devolveu o estado \" + response.status);\n    }\n\n    const data = await response.json();\n    if (!Array.isArray(data.properties)) {\n      throw new Error(\"A resposta da API n\u00e3o cont\u00e9m a lista de im\u00f3veis.\");\n    }\n\n    const byReference = new Map(\n      data.properties.map(property => [\n        String(property.ref || \"\").trim(),\n        property\n      ])\n    );\n\n    const matchedReferences = UNITS.filter(unit =>\n      byReference.has(unit[0])\n    ).length;\n\n    if (!matchedReferences) {\n      throw new Error(\"A API n\u00e3o devolveu nenhuma refer\u00eancia desta tabela.\");\n    }\n\n    \/\/ Preserva os 14 campos de cada fra\u00e7\u00e3o, incluindo as \u00e1reas originais.\n    \/\/ O Casafari atualiza apenas o pre\u00e7o e o estado comercial.\n    units = UNITS.map(unit => {\n      const updated = [...unit];\n      const property = byReference.get(String(unit[0]).trim());\n\n      if (!property) {\n        updated[7] = \"Vendido\";\n        return updated;\n      }\n\n      if (isSold(property)) {\n        updated[7] = \"Vendido\";\n      } else if (property.preco_visivel !== false && Number(property.preco) > 0) {\n        updated[7] = Number(property.preco).toLocaleString(\"pt-PT\", {\n          maximumFractionDigits: 0\n        }) + \" \u20ac*\";\n      } else {\n        updated[7] = \"Sob consulta\";\n      }\n\n      return updated;\n    });\n\n    updateStartingPrices(byReference);\n  }\n\n  root.querySelector(\".vm-count\").textContent = \"A atualizar fra\u00e7\u00f5es\u2026\";\n  list.innerHTML = '<p class=\"vm-empty\">A carregar disponibilidade atualizada\u2026<\/p>';\n\n  updateUnitsFromCasafari()\n    .then(render)\n    .catch(error => {\n      console.error(\"VID\u00d3R \u2014 atualiza\u00e7\u00e3o Casafari:\", error);\n\n      \/\/ Mant\u00e9m os pre\u00e7os j\u00e1 definidos na tabela se a API estiver indispon\u00edvel.\n      \/\/ O aviso deixa claro que esses valores n\u00e3o foram confirmados nesta visita.\n      units = UNITS;\n      root.querySelectorAll(\".vm-types .vm-type strong\").forEach(el => {\n        el.textContent = \"Sob consulta\";\n      });\n      render();\n      root.querySelector(\".vm-count\").textContent =\n        \"A mostrar os pre\u00e7os da tabela \u00b7 n\u00e3o foi poss\u00edvel confirmar a atualiza\u00e7\u00e3o do Casafari\";\n    });\n\n})();\n<\/script>\n\n<\/body>\n<\/html>\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-f52bb13 e-con e-atomic-element e-flexbox-base e-default-div e-5a25ab4 \" data-id=\"f52bb13\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"f52bb13\">\n    <div class=\"elementor-element elementor-element-161a463 e-con e-atomic-element e-flexbox-base e-default-div e-d0c7fe2 \" data-id=\"161a463\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"161a463\">\n    <div class=\"elementor-element elementor-element-1cd8d1f e-con e-atomic-element e-flexbox-base e-default-div e-1b5c759 \" data-id=\"1cd8d1f\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"1cd8d1f\">\n    \t\t\t<p class=\"e-9513087-bbc9eb5 e-paragraph-base e-default-p\" data-interaction-id=\"9513087\">Localiza\u00e7\u00e3o &amp; Acessos<\/p>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-375cd68 e-con e-atomic-element e-flexbox-base e-default-div e-60c8869 \" data-id=\"375cd68\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"375cd68\">\n    \t\t\t<p class=\"e-1725779-f4118b4 e-paragraph-base e-default-p\" data-interaction-id=\"1725779\"><strong>A liga\u00e7\u00e3o ao Porto<\/strong> faz-se de forma <strong>direta e eficiente<\/strong>, permitindo usufruir da din\u00e2mica metropolitana mantendo uma base residencial mais reservada.&nbsp;<br>\u00c9 uma localiza\u00e7\u00e3o que<strong> combina continuidade urbana<\/strong> <strong>com uma atmosfera mais serena<\/strong> \u2014 um ponto interm\u00e9dio entre a cidade intensa e o espa\u00e7o dom\u00e9stico est\u00e1vel.<\/p>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-6aa7627 e-con e-atomic-element e-flexbox-base e-default-div e-560ac8b \" data-id=\"6aa7627\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"6aa7627\">\n    \t\t<div class=\"elementor-element elementor-element-7675797 elementor-widget elementor-widget-html\" data-id=\"7675797\" 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=\"pt\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>Mapa de Localiza\u00e7\u00e3o - Viva Monte<\/title>\r\n\r\n    <!-- Sulphur Point -->\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=Sulphur+Point:wght@300;400;500;600;700&display=swap\" rel=\"stylesheet\">\r\n\r\n    <!-- Leaflet CSS -->\r\n    <link\r\n        rel=\"stylesheet\"\r\n        href=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css\"\r\n    \/>\r\n\r\n    <style>\r\n\r\n        * {\r\n            margin: 0;\r\n            padding: 0;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        html,\r\n        body {\r\n            width: 100%;\r\n            margin: 0;\r\n            padding: 0;\r\n            background: transparent;\r\n            font-family: 'Sulphur Point', sans-serif;\r\n        }\r\n\r\n        \/* =========================\r\n           ESTRUTURA\r\n        ========================== *\/\r\n\r\n        .location-section {\r\n            width: 100%;\r\n            display: grid;\r\n            grid-template-columns: 38% 62%;\r\n            min-height: 760px;\r\n            background: #ffffff;\r\n            overflow: hidden;\r\n        }\r\n\r\n        \/* =========================\r\n           COLUNA ESQUERDA\r\n        ========================== *\/\r\n\r\n        .locations-panel {\r\n            padding: 44px 46px;\r\n            background: #ffffff;\r\n            position: relative;\r\n            z-index: 2;\r\n        }\r\n\r\n        \/* =========================\r\n           GRUPOS\r\n        ========================== *\/\r\n\r\n        .location-group {\r\n            margin-top: 0;\r\n        }\r\n\r\n        .location-group + .location-group {\r\n            margin-top: 20px;\r\n        }\r\n\r\n        \/* =========================\r\n           LOCAIS\r\n        ========================== *\/\r\n\r\n        .location-item {\r\n            display: grid;\r\n            grid-template-columns: 54px 1fr;\r\n            align-items: center;\r\n            min-height: 48px;\r\n            padding: 5px 0;\r\n            border: none;\r\n        }\r\n\r\n        .location-number {\r\n            width: 37px;\r\n            height: 37px;\r\n\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n\r\n            border-radius: 50%;\r\n\r\n            background: #0f2850;\r\n            color: #ffffff;\r\n\r\n            font-family: 'Sulphur Point', sans-serif;\r\n            font-size: 13px;\r\n            font-weight: 600;\r\n        }\r\n\r\n        .location-name {\r\n            color: #0f2850;\r\n            font-family: 'Sulphur Point', sans-serif;\r\n            font-size: 15px;\r\n            line-height: 1.3;\r\n            font-weight: 400;\r\n        }\r\n\r\n        \/* =========================\r\n           MAPA\r\n        ========================== *\/\r\n\r\n        .map-panel {\r\n            position: relative;\r\n            min-height: 760px;\r\n            background: #eef1f3;\r\n            overflow: hidden;\r\n        }\r\n\r\n        #map {\r\n            position: absolute;\r\n            inset: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n        }\r\n\r\n        .leaflet-container {\r\n            font-family: 'Sulphur Point', sans-serif !important;\r\n        }\r\n\r\n        .leaflet-tile-pane {\r\n            filter:\r\n                grayscale(0.55)\r\n                saturate(0.55)\r\n                brightness(1.07)\r\n                contrast(0.9);\r\n        }\r\n\r\n        .leaflet-control-attribution {\r\n            font-family: 'Sulphur Point', sans-serif !important;\r\n            font-size: 8px !important;\r\n            opacity: 0.5;\r\n        }\r\n\r\n        \/* =========================\r\n           N\u00daMEROS NO MAPA\r\n        ========================== *\/\r\n\r\n        .numbered-marker {\r\n            background: transparent !important;\r\n            border: none !important;\r\n        }\r\n\r\n        .map-marker {\r\n            width: 37px;\r\n            height: 37px;\r\n\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n\r\n            border-radius: 50%;\r\n\r\n            background: #0f2850;\r\n            border: 2px solid #ffffff;\r\n\r\n            color: #ffffff;\r\n\r\n            font-family: 'Sulphur Point', sans-serif;\r\n            font-size: 13px;\r\n            font-weight: 600;\r\n\r\n            box-shadow:\r\n                0 3px 10px rgba(15, 40, 80, 0.25),\r\n                0 0 0 1px rgba(15, 40, 80, 0.10);\r\n        }\r\n\r\n        \/* =========================\r\n           VIVA MONTE\r\n        ========================== *\/\r\n\r\n        .main-marker {\r\n            background: transparent !important;\r\n            border: none !important;\r\n        }\r\n\r\n        .project-pin {\r\n            width: 46px;\r\n            height: 46px;\r\n\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n\r\n            border-radius: 50%;\r\n\r\n            background: #0f2850;\r\n            border: 4px solid #ffffff;\r\n\r\n            box-shadow:\r\n                0 5px 18px rgba(15, 40, 80, 0.35),\r\n                0 0 0 7px rgba(15, 40, 80, 0.12);\r\n        }\r\n\r\n        .project-pin::after {\r\n            content: \"\";\r\n            width: 9px;\r\n            height: 9px;\r\n            background: #ffffff;\r\n            border-radius: 50%;\r\n        }\r\n\r\n        \/* =========================\r\n           LABEL VIVA MONTE\r\n        ========================== *\/\r\n\r\n        .project-label {\r\n            background: transparent !important;\r\n            border: none !important;\r\n            box-shadow: none !important;\r\n        }\r\n\r\n        .project-label::before {\r\n            display: none !important;\r\n        }\r\n\r\n        .project-label-inner {\r\n            white-space: nowrap;\r\n\r\n            background: #0f2850;\r\n            color: #ffffff;\r\n\r\n            padding: 9px 15px;\r\n\r\n            font-family: 'Sulphur Point', sans-serif;\r\n            font-size: 13px;\r\n            font-weight: 600;\r\n\r\n            letter-spacing: 1.4px;\r\n            text-transform: uppercase;\r\n\r\n            box-shadow:\r\n                0 4px 15px rgba(15, 40, 80, 0.20);\r\n        }\r\n\r\n        \/* =========================\r\n           TABLET\r\n        ========================== *\/\r\n\r\n        @media (max-width: 1050px) {\r\n\r\n            .location-section {\r\n                grid-template-columns: 44% 56%;\r\n            }\r\n\r\n            .locations-panel {\r\n                padding: 36px 30px;\r\n            }\r\n\r\n            .location-name {\r\n                font-size: 14px;\r\n            }\r\n\r\n        }\r\n\r\n        \/* =========================\r\n           MOBILE\r\n        ========================== *\/\r\n\r\n        @media (max-width: 768px) {\r\n\r\n            .location-section {\r\n                display: flex;\r\n                flex-direction: column;\r\n                min-height: 0;\r\n            }\r\n\r\n            .locations-panel {\r\n                width: 100%;\r\n                padding: 22px 22px 24px;\r\n            }\r\n\r\n            .location-group + .location-group {\r\n                margin-top: 8px;\r\n            }\r\n\r\n            .location-item {\r\n                grid-template-columns: 37px 1fr;\r\n                min-height: 31px;\r\n                padding: 1px 0;\r\n            }\r\n\r\n            .location-number {\r\n                width: 24px;\r\n                height: 24px;\r\n                font-size: 9px;\r\n            }\r\n\r\n            .location-name {\r\n                font-size: 13px;\r\n                line-height: 1.15;\r\n            }\r\n\r\n            .map-panel {\r\n                width: 100%;\r\n                height: 560px;\r\n                min-height: 560px;\r\n            }\r\n\r\n            \/* marcadores mais pequenos no mapa *\/\r\n\r\n            .map-marker {\r\n                width: 23px;\r\n                height: 23px;\r\n\r\n                font-size: 8.5px;\r\n\r\n                border-width: 1.5px;\r\n\r\n                box-shadow:\r\n                    0 2px 6px rgba(15, 40, 80, 0.22);\r\n            }\r\n\r\n            .project-pin {\r\n                width: 34px;\r\n                height: 34px;\r\n                border-width: 3px;\r\n\r\n                box-shadow:\r\n                    0 4px 12px rgba(15, 40, 80, 0.28),\r\n                    0 0 0 4px rgba(15, 40, 80, 0.10);\r\n            }\r\n\r\n            .project-pin::after {\r\n                width: 6px;\r\n                height: 6px;\r\n            }\r\n\r\n            .project-label-inner {\r\n                padding: 6px 9px;\r\n                font-size: 10px;\r\n                letter-spacing: 1px;\r\n            }\r\n\r\n        }\r\n\r\n        \/* =========================\r\n           MOBILE PEQUENO\r\n        ========================== *\/\r\n\r\n        @media (max-width: 480px) {\r\n\r\n            .locations-panel {\r\n                padding: 18px 18px 20px;\r\n            }\r\n\r\n            .location-group + .location-group {\r\n                margin-top: 6px;\r\n            }\r\n\r\n            .location-item {\r\n                grid-template-columns: 34px 1fr;\r\n                min-height: 29px;\r\n                padding: 1px 0;\r\n            }\r\n\r\n            .location-number {\r\n                width: 22px;\r\n                height: 22px;\r\n                font-size: 8px;\r\n            }\r\n\r\n            .location-name {\r\n                font-size: 12px;\r\n                line-height: 1.1;\r\n            }\r\n\r\n            .map-panel {\r\n                height: 500px;\r\n                min-height: 500px;\r\n            }\r\n\r\n            .map-marker {\r\n                width: 22px;\r\n                height: 22px;\r\n                font-size: 8px;\r\n            }\r\n\r\n        }\r\n\r\n    <\/style>\r\n<\/head>\r\n\r\n<body>\r\n\r\n<section class=\"location-section\">\r\n\r\n    <!-- =========================\r\n         COLUNA ESQUERDA\r\n    ========================== -->\r\n\r\n    <div class=\"locations-panel\">\r\n\r\n        <div class=\"location-group\">\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">01<\/span>\r\n                <span class=\"location-name\">\r\n                    Centro Escolar da Boavista\/Lourinha\r\n                <\/span>\r\n            <\/div>\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">02<\/span>\r\n                <span class=\"location-name\">\r\n                    Escola B\u00e1sica Infanta Dona Mafalda\r\n                <\/span>\r\n            <\/div>\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">03<\/span>\r\n                <span class=\"location-name\">\r\n                    Escola B\u00e1sica da Boavista\r\n                <\/span>\r\n            <\/div>\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">04<\/span>\r\n                <span class=\"location-name\">\r\n                    Col\u00e9gio Cam\u00f5es\r\n                <\/span>\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n\r\n        <div class=\"location-group\">\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">05<\/span>\r\n                <span class=\"location-name\">\r\n                    Est\u00e1dio do Drag\u00e3o\r\n                <\/span>\r\n            <\/div>\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">06<\/span>\r\n                <span class=\"location-name\">\r\n                    Complexo Desportivo de Campanh\u00e3\r\n                <\/span>\r\n            <\/div>\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">07<\/span>\r\n                <span class=\"location-name\">\r\n                    Parque Oriental\r\n                <\/span>\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n\r\n        <div class=\"location-group\">\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">08<\/span>\r\n                <span class=\"location-name\">\r\n                    Alameda Shopping\r\n                <\/span>\r\n            <\/div>\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">09<\/span>\r\n                <span class=\"location-name\">\r\n                    Mercado Abastecedor\r\n                <\/span>\r\n            <\/div>\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">10<\/span>\r\n                <span class=\"location-name\">\r\n                    Mercadona\r\n                <\/span>\r\n            <\/div>\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">11<\/span>\r\n                <span class=\"location-name\">\r\n                    F\u00e1brica do Cobre\r\n                <\/span>\r\n            <\/div>\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">12<\/span>\r\n                <span class=\"location-name\">\r\n                    Parque Nascente\r\n                <\/span>\r\n            <\/div>\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">13<\/span>\r\n                <span class=\"location-name\">\r\n                    Continente Modelo\r\n                <\/span>\r\n            <\/div>\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">14<\/span>\r\n                <span class=\"location-name\">\r\n                    LIDL\r\n                <\/span>\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n\r\n        <div class=\"location-group\">\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">15<\/span>\r\n                <span class=\"location-name\">\r\n                    OMeuGin\u00e1sio - Venda Nova\r\n                <\/span>\r\n            <\/div>\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">16<\/span>\r\n                <span class=\"location-name\">\r\n                    Esta\u00e7\u00e3o de Campanh\u00e3\r\n                <\/span>\r\n            <\/div>\r\n\r\n            <div class=\"location-item\">\r\n                <span class=\"location-number\">17<\/span>\r\n                <span class=\"location-name\">\r\n                    USF Nascente\r\n                <\/span>\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n    <\/div>\r\n\r\n\r\n    <!-- =========================\r\n         MAPA\r\n    ========================== -->\r\n\r\n    <div class=\"map-panel\">\r\n        <div id=\"map\"><\/div>\r\n    <\/div>\r\n\r\n<\/section>\r\n\r\n\r\n<!-- Leaflet JS -->\r\n\r\n<script src=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js\"><\/script>\r\n\r\n\r\n<script>\r\n\r\n    \/* =========================\r\n       LOCAIS\r\n    ========================== *\/\r\n\r\n    const locations = [\r\n\r\n        {\r\n            name: \"Centro Escolar da Boavista\/Lourinha\",\r\n            lat: 41.182544204689144,\r\n            lng: -8.56102527169218\r\n        },\r\n\r\n        {\r\n            name: \"Escola B\u00e1sica Infanta Dona Mafalda\",\r\n            lat: 41.18289728254513,\r\n            lng: -8.552310174326779\r\n        },\r\n\r\n        {\r\n            name: \"Escola B\u00e1sica da Boavista\",\r\n            lat: 41.18041211728737,\r\n            lng: -8.555630211425003\r\n        },\r\n\r\n        {\r\n            name: \"Col\u00e9gio Cam\u00f5es\",\r\n            lat: 41.18306024092821,\r\n            lng: -8.559148729001608\r\n        },\r\n\r\n        {\r\n            name: \"Est\u00e1dio do Drag\u00e3o\",\r\n            lat: 41.16181360887842,\r\n            lng: -8.583686212403757\r\n        },\r\n\r\n        {\r\n            name: \"Complexo Desportivo de Campanh\u00e3\",\r\n            lat: 41.15899835151174,\r\n            lng: -8.572780164020783\r\n        },\r\n\r\n        {\r\n            name: \"Parque Oriental\",\r\n            lat: 41.160180221438644,\r\n            lng: -8.56520181862169\r\n        },\r\n\r\n        {\r\n            name: \"Alameda Shopping\",\r\n            lat: 41.163752625701505,\r\n            lng: -8.583974496848175\r\n        },\r\n\r\n        {\r\n            name: \"Mercado Abastecedor\",\r\n            lat: 41.164158812368306,\r\n            lng: -8.57777538354378\r\n        },\r\n\r\n        {\r\n            name: \"Mercadona\",\r\n            lat: 41.163093649043866,\r\n            lng: -8.573653187449462\r\n        },\r\n\r\n        {\r\n            name: \"F\u00e1brica do Cobre\",\r\n            lat: 41.17176508291056,\r\n            lng: -8.569598786631552\r\n        },\r\n\r\n        {\r\n            name: \"Parque Nascente\",\r\n            lat: 41.17497118353299,\r\n            lng: -8.565870516119514\r\n        },\r\n\r\n        {\r\n            name: \"Continente Modelo\",\r\n            lat: 41.17451860725548,\r\n            lng: -8.554849241499205\r\n        },\r\n\r\n        {\r\n            name: \"LIDL\",\r\n            lat: 41.175552285926834,\r\n            lng: -8.556608770635972\r\n        },\r\n\r\n        {\r\n            name: \"OMeuGin\u00e1sio - Venda Nova\",\r\n            lat: 41.17258851317643,\r\n            lng: -8.549804100415006\r\n        },\r\n\r\n        {\r\n            name: \"Esta\u00e7\u00e3o de Campanh\u00e3\",\r\n            lat: 41.1505208660794,\r\n            lng: -8.586349011217935\r\n        },\r\n\r\n        {\r\n            name: \"USF Nascente\",\r\n            lat: 41.17441396320196,\r\n            lng: -8.560865514075857\r\n        }\r\n\r\n    ];\r\n\r\n\r\n    \/* =========================\r\n       VIVA MONTE\r\n    ========================== *\/\r\n\r\n    const projectLocation = [\r\n        41.16491128644925,\r\n        -8.560684317993333\r\n    ];\r\n\r\n\r\n    \/* =========================\r\n       CRIAR MAPA\r\n    ========================== *\/\r\n\r\n    const map = L.map(\"map\", {\r\n\r\n        zoomControl: false,\r\n\r\n        attributionControl: true,\r\n\r\n        dragging: false,\r\n\r\n        scrollWheelZoom: false,\r\n\r\n        doubleClickZoom: false,\r\n\r\n        boxZoom: false,\r\n\r\n        keyboard: false,\r\n\r\n        touchZoom: false,\r\n\r\n        tap: false,\r\n\r\n        zoomSnap: 0.25,\r\n\r\n        zoomDelta: 0.25\r\n\r\n    });\r\n\r\n\r\n    \/* =========================\r\n       MAPA BASE\r\n    ========================== *\/\r\n\r\n    L.tileLayer(\r\n\r\n        \"https:\/\/{s}.tile.openstreetmap.org\/{z}\/{x}\/{y}.png\",\r\n\r\n        {\r\n            attribution: \"\u00a9 OpenStreetMap\",\r\n            maxZoom: 19\r\n        }\r\n\r\n    ).addTo(map);\r\n\r\n\r\n    \/* =========================\r\n       MARCADORES NUMERADOS\r\n    ========================== *\/\r\n\r\n    locations.forEach((location, index) => {\r\n\r\n        const number =\r\n            String(index + 1).padStart(2, \"0\");\r\n\r\n\r\n        const icon = L.divIcon({\r\n\r\n            className: \"numbered-marker\",\r\n\r\n            html: `\r\n                <div class=\"map-marker\">\r\n                    ${number}\r\n                <\/div>\r\n            `,\r\n\r\n            iconSize: [37, 37],\r\n\r\n            iconAnchor: [18.5, 18.5]\r\n\r\n        });\r\n\r\n\r\n        L.marker(\r\n\r\n            [\r\n                location.lat,\r\n                location.lng\r\n            ],\r\n\r\n            {\r\n                icon: icon,\r\n                interactive: false\r\n            }\r\n\r\n        ).addTo(map);\r\n\r\n    });\r\n\r\n\r\n    \/* =========================\r\n       VIVA MONTE\r\n    ========================== *\/\r\n\r\n    const projectIcon = L.divIcon({\r\n\r\n        className: \"main-marker\",\r\n\r\n        html: `\r\n            <div class=\"project-pin\"><\/div>\r\n        `,\r\n\r\n        iconSize: [46, 46],\r\n\r\n        iconAnchor: [23, 23]\r\n\r\n    });\r\n\r\n\r\n    const mainMarker = L.marker(\r\n\r\n        projectLocation,\r\n\r\n        {\r\n            icon: projectIcon,\r\n\r\n            zIndexOffset: 1000,\r\n\r\n            interactive: false\r\n        }\r\n\r\n    ).addTo(map);\r\n\r\n\r\n    \/* =========================\r\n       LABEL VIVA MONTE\r\n    ========================== *\/\r\n\r\n    mainMarker.bindTooltip(\r\n\r\n        `\r\n            <div class=\"project-label-inner\">\r\n                Viva Monte\r\n            <\/div>\r\n        `,\r\n\r\n        {\r\n            permanent: true,\r\n\r\n            direction: \"top\",\r\n\r\n            offset: [0, -29],\r\n\r\n            className: \"project-label\"\r\n        }\r\n\r\n    );\r\n\r\n\r\n    \/* =========================\r\n       ENQUADRAMENTO\r\n    ========================== *\/\r\n\r\n    const allCoordinates = locations.map(location => [\r\n        location.lat,\r\n        location.lng\r\n    ]);\r\n\r\n    allCoordinates.push(projectLocation);\r\n\r\n    const bounds = L.latLngBounds(allCoordinates);\r\n\r\n\r\n    function fitMap() {\r\n\r\n        map.invalidateSize();\r\n\r\n\r\n        \/* =========================\r\n           MOBILE\r\n        ========================== *\/\r\n\r\n        if (window.innerWidth <= 768) {\r\n\r\n            \/*\r\n             * No mobile usamos uma margem de seguran\u00e7a\r\n             * em todos os lados para nenhum c\u00edrculo\r\n             * ficar cortado.\r\n             *\/\r\n\r\n            map.fitBounds(bounds, {\r\n\r\n                paddingTopLeft: [32, 32],\r\n\r\n                paddingBottomRight: [32, 32],\r\n\r\n                maxZoom: 15,\r\n\r\n                animate: false\r\n\r\n            });\r\n\r\n        }\r\n\r\n\r\n        \/* =========================\r\n           DESKTOP \/ TABLET\r\n        ========================== *\/\r\n\r\n        else {\r\n\r\n            map.fitBounds(bounds, {\r\n\r\n                paddingTopLeft: [60, 10],\r\n\r\n                paddingBottomRight: [60, 10],\r\n\r\n                maxZoom: 15,\r\n\r\n                animate: false\r\n\r\n            });\r\n\r\n        }\r\n\r\n    }\r\n\r\n\r\n    \/* Primeiro enquadramento *\/\r\n\r\n    fitMap();\r\n\r\n\r\n    \/* =========================\r\n       ELEMENTOR \/ WORDPRESS\r\n    ========================== *\/\r\n\r\n    setTimeout(() => {\r\n\r\n        fitMap();\r\n\r\n    }, 300);\r\n\r\n\r\n    setTimeout(() => {\r\n\r\n        fitMap();\r\n\r\n    }, 1000);\r\n\r\n\r\n    window.addEventListener(\r\n        \"resize\",\r\n        fitMap\r\n    );\r\n\r\n<\/script>\r\n\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/div>\n\n<\/div>\n<div class=\"elementor-element elementor-element-6e721e9 e-con e-atomic-element e-flexbox-base e-default-div e-6e721e9-7a54426 \" data-id=\"6e721e9\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"6e721e9\">\n    <div class=\"elementor-element elementor-element-098c988 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"098c988\" 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-f4fcf92 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"f4fcf92\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<p class=\"e-c5a513d-3d26b32 e-c5a513d-3d26b32 e-paragraph-base e-default-p\" data-interaction-id=\"c5a513d\"><a href=\"http:\/\/www.vidor.pt\" target=\"_self\" class=\"e-paragraph-link-base e-default-a\">\n\t\tSobre a VID\u00d3R\n\t<\/a><\/p>\n\t\t\t\t\t<p class=\"e-0bbad99-09a597a e-0bbad99-09a597a e-paragraph-base e-default-p\" data-interaction-id=\"0bbad99\"><a href=\"http:\/\/www.vidor.pt\" target=\"_self\" class=\"e-paragraph-link-base e-default-a\">\n\t\tUma Empresa com Hist\u00f3ria\n\t<\/a><\/p>\n\t\t\t\t\t<p class=\"e-898a833-6fd5ba8 e-paragraph-base e-default-p\" data-interaction-id=\"898a833\"><a href=\"http:\/\/www.vidor.pt\" target=\"_self\" class=\"e-paragraph-link-base e-default-a\">\n\t\tSaiba Mais\n\t<\/a><\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d370b51 e-con e-atomic-element e-flexbox-base e-default-div e-d370b51-5b9a6d3 \" data-id=\"d370b51\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"d370b51\">\n    <div class=\"elementor-element elementor-element-0c2c928 e-con e-atomic-element e-flexbox-base e-default-div e-0c2c928-35d1550 \" data-id=\"0c2c928\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"0c2c928\">\n    \t\t\t<img loading=\"lazy\" decoding=\"async\" class=\"e-image-base e-default-img e-b59dbb0-878a0a1\" data-interaction-id=\"b59dbb0\" id=\"7718\" src=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/Imagem-18-Quarto-03.png\" width=\"1532\" height=\"1027\" srcset=\"\" alt=\"\"\/>\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-addb0a1 e-con e-atomic-element e-flexbox-base e-default-div e-addb0a1-74bf869 \" data-id=\"addb0a1\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"addb0a1\">\n    \t\t\t<p class=\"e-1f9a1fe-c1baabe e-paragraph-base e-default-p\" data-interaction-id=\"1f9a1fe\">A VID\u00d3R \u00e9 um grupo empresarial com mais de 80 anos de experi\u00eancia. Somos especialistas na aquisi\u00e7\u00e3o, conce\u00e7\u00e3o, constru\u00e7\u00e3o e comercializa\u00e7\u00e3o de im\u00f3veis, com atividade em Portugal e no Brasil.&nbsp;<\/p>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-2cb8428 e-con e-atomic-element e-flexbox-base e-default-div e-2cb8428-7e8b174 \" data-id=\"2cb8428\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"2cb8428\">\n    \t\t\t<img loading=\"lazy\" decoding=\"async\" class=\"e-image-base e-default-img e-cc82527-7add6f1\" data-interaction-id=\"cc82527\" id=\"7637\" src=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/Imagem-06-Cozinha.png\" width=\"1080\" height=\"724\" srcset=\"https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/Imagem-06-Cozinha.png 1080w, https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/Imagem-06-Cozinha-300x201.png 300w, https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/Imagem-06-Cozinha-1024x686.png 1024w, https:\/\/vivamonte.vidor.pt\/wp-content\/uploads\/2026\/09\/Imagem-06-Cozinha-768x515.png 768w\" alt=\"\"\/>\t\t\n<\/div>\n\n<\/div>\n\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-64a5d5c e-con e-atomic-element e-flexbox-base e-default-div e-fdc9957 \" data-id=\"64a5d5c\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"64a5d5c\">\n    <div class=\"elementor-element elementor-element-ef41f84 e-con e-atomic-element e-flexbox-base e-default-div e-2804393 \" data-id=\"ef41f84\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"ef41f84\" id=\"contactos\">\n    <div class=\"elementor-element elementor-element-fda2cb0 e-con e-atomic-element e-flexbox-base e-default-div e-fda2cb0-968848b \" data-id=\"fda2cb0\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"fda2cb0\">\n    \t\t\t<p class=\"e-07fef46-fbf173d e-paragraph-base e-default-p\" data-interaction-id=\"07fef46\">Quer saber mais sobre este projeto?<\/p>\n\t\t\t\t\t<p class=\"e-4d32dbd-6060c0a e-paragraph-base e-default-p\" data-interaction-id=\"4d32dbd\">Submeta o formul\u00e1rio sem compromisso.<br>A nossa equipa est\u00e1 dispon\u00edvel para o ajudar.<\/p>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-6d4f13a e-con e-atomic-element e-flexbox-base e-default-div e-5300eb8 \" data-id=\"6d4f13a\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"6d4f13a\">\n    \t\t<div class=\"elementor-element elementor-element-ad56e29 elementor-widget-mobile__width-auto elementor-widget elementor-widget-shortcode\" data-id=\"ad56e29\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f14-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"14\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/index.php?rest_route=%2Fwp%2Fv2%2Fpages%2F7623#wpcf7-f14-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"14\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.7\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f14-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<\/fieldset>\n<p><label> O seu nome<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" autocomplete=\"name\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"your-name\" \/><\/span> <\/label>\n<\/p>\n<p><label> O seu n\u00famero de telem\u00f3vel<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-phonenumber\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel\" autocomplete=\"tel\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"tel\" name=\"your-phonenumber\" \/><\/span><\/label>\n<\/p>\n<p><label> O seu email<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" autocomplete=\"email\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"email\" name=\"your-email\" \/><\/span> <\/label>\n<\/p>\n<p><label> Assunto<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-subject\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"your-subject\" \/><\/span> <\/label>\n<\/p>\n<p><label> A sua mensagem<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-message\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea\" aria-invalid=\"false\" name=\"your-message\"><\/textarea><\/span> <\/label>\n<\/p>\n<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner\" type=\"submit\" value=\"Submeter\" \/>\n<\/p><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/div>\n\n<\/div>\n<div class=\"elementor-element elementor-element-126fe1e e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"126fe1e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-726a1c1 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"726a1c1\" 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-b916c33 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"b916c33\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<p class=\"e-94cf5b2-f257e62 e-paragraph-base e-default-p\" data-interaction-id=\"94cf5b2\"><strong>\u00a9&nbsp;<\/strong>Copyright 2026 - VID\u00d3R&nbsp;<\/p>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-04a3a16 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"04a3a16\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<p class=\"e-f7cdd49-5344579 e-paragraph-base e-default-p\" data-interaction-id=\"e370aa0\"><a target=\"_blank\" href=\"https:\/\/www.livroreclamacoes.pt\/inicio\/\"><strong>Livro de Reclama\u00e7\u00f5es<\/strong><\/a><\/p>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f5bdf0e e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"f5bdf0e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<p class=\"e-51077b0-aa567b1 e-paragraph-base e-default-p\" data-interaction-id=\"8f3d3d5\"><a target=\"_blank\" href=\"https:\/\/santamarta.vidor.pt\/politica-de-cookies\/\"><strong>Pol\u00edtica de Cookies<\/strong><\/a><\/p>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4a5da60 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"4a5da60\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<p class=\"e-51077b0-aa567b1 e-paragraph-base e-default-p\" data-interaction-id=\"51077b0\"><a target=\"_blank\" href=\"https:\/\/santamarta.vidor.pt\/termos-condicoes\/\"><strong>Termos &amp; Condi\u00e7\u00f5es<\/strong><\/a><\/p>\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\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>skip render: ucaddon_ue_side_menu O equil\u00edbrio perfeito entre a din\u00e2mica urbana e a qualidade de vida. Um verdadeiro ref\u00fagio de tranquilidade Aqui, o privil\u00e9gio de viver bem come\u00e7a antes mesmo de entrar em casa. Cada apartamento reflete um compromisso com a funcionalidade, os acabamentos de excel\u00eancia e a valoriza\u00e7\u00e3o da luz natural, oferecendo ambientes pensados para acompanhar os diferentes momentos da vida. Image Hotspot A arquitetura contempor\u00e2nea do Viva Monte destaca-se pelas suas linhas elegantes, amplas varandas e uma identidade visual intemporal, pensada para valorizar a luz natural e a rela\u00e7\u00e3o com o exterior. Vid\u00f3r \u2014 Hero Section O privil\u00e9gio de viver bem, tamb\u00e9m pode ser seu! Quer saber mais? Entre em contacto Fa\u00e7a Download da Brochura Apartamentos \u2014 Viva Monte 01 \/ UM QUARTO T1 O essencial, com espa\u00e7o para viver. Desde A atualizar\u2026 \u2197 02 \/ DOIS QUARTOS T2 Mais liberdade para o seu dia a dia. Desde A atualizar\u2026 \u2197 03 \/ TR\u00caS QUARTOS T3 Uma casa que acompanha a fam\u00edlia. Desde A atualizar\u2026 \u2197 Explore os apartamentos Todos T1 T2 T3 Piso Todos os pisosPiso 0Piso 1Piso 2Piso 3Piso 4Piso 5 FRA\u00c7\u00c3O \/ TIPOLOGIA\u00c1REA BRUTA PRIVATIVA\u00c1REA TOTAL \u00c1REAS DEPENDENTESESTACIONAMENTOVARANDAS, TERRA\u00c7OS E LOGRADOUROARRUMOSPRE\u00c7OINFORMA\u00c7\u00d5ES Ver mais apartamentos \uff0b Ative JavaScript para explorar as fra\u00e7\u00f5es ou contacte comercial@vidor.pt. * Condi\u00e7\u00f5es especiais para Habita\u00e7\u00e3o Pr\u00f3pria Permanente. Localiza\u00e7\u00e3o &amp; Acessos A liga\u00e7\u00e3o ao Porto faz-se de forma direta e eficiente, permitindo usufruir da din\u00e2mica metropolitana mantendo uma base residencial mais reservada.&nbsp;\u00c9 uma localiza\u00e7\u00e3o que combina continuidade urbana com uma atmosfera mais serena \u2014 um ponto interm\u00e9dio entre a cidade intensa e o espa\u00e7o dom\u00e9stico est\u00e1vel. Mapa de Localiza\u00e7\u00e3o &#8211; Viva Monte 01 Centro Escolar da Boavista\/Lourinha 02 Escola B\u00e1sica Infanta Dona Mafalda 03 Escola B\u00e1sica da Boavista 04 Col\u00e9gio Cam\u00f5es 05 Est\u00e1dio do Drag\u00e3o 06 Complexo Desportivo de Campanh\u00e3 07 Parque Oriental 08 Alameda Shopping 09 Mercado Abastecedor 10 Mercadona 11 F\u00e1brica do Cobre 12 Parque Nascente 13 Continente Modelo 14 LIDL 15 OMeuGin\u00e1sio &#8211; Venda Nova 16 Esta\u00e7\u00e3o de Campanh\u00e3 17 USF Nascente Sobre a VID\u00d3R Uma Empresa com Hist\u00f3ria Saiba Mais A VID\u00d3R \u00e9 um grupo empresarial com mais de 80 anos de experi\u00eancia. Somos especialistas na aquisi\u00e7\u00e3o, conce\u00e7\u00e3o, constru\u00e7\u00e3o e comercializa\u00e7\u00e3o de im\u00f3veis, com atividade em Portugal e no Brasil.&nbsp; Quer saber mais sobre este projeto? Submeta o formul\u00e1rio sem compromisso.A nossa equipa est\u00e1 dispon\u00edvel para o ajudar. \u00a9&nbsp;Copyright 2026 &#8211; VID\u00d3R&nbsp; Livro de Reclama\u00e7\u00f5es Pol\u00edtica de Cookies Termos &amp; Condi\u00e7\u00f5es<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"class_list":["post-7623","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vivamonte.vidor.pt\/index.php?rest_route=\/wp\/v2\/pages\/7623","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vivamonte.vidor.pt\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vivamonte.vidor.pt\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vivamonte.vidor.pt\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vivamonte.vidor.pt\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7623"}],"version-history":[{"count":420,"href":"https:\/\/vivamonte.vidor.pt\/index.php?rest_route=\/wp\/v2\/pages\/7623\/revisions"}],"predecessor-version":[{"id":8122,"href":"https:\/\/vivamonte.vidor.pt\/index.php?rest_route=\/wp\/v2\/pages\/7623\/revisions\/8122"}],"wp:attachment":[{"href":"https:\/\/vivamonte.vidor.pt\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}