https://www.thevistalux.com/

ID de exploración:
e861b48e-163d-4daa-b560-7f1c3fca2950Finalizado
URL enviada:
https://www.thevistalux.com/
Informe finalizado:

Enlaces: 0 encontrados

Los enlaces salientes identificados en la página

Variables JavaScript: 111 encontradas

Las variables JavaScript globales cargadas en el objeto de ventana de una página son variables declaradas fuera de las funciones y a las que se puede acceder desde cualquier lugar del código en el ámbito actual

NombreTipo
0object
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
_currentDevicestring
Parametersobject
toHashfunction
SystemIDstring
dmAPIobject
loadCSSfunction

Mensajes de registro de la consola: 3 encontrados

Mensajes registrados en la consola web

TipoCategoríaRegistrar
logother
URL
https://static.cdn-website.com/mnlt/production/4934/_dm/s/rt/dist/scripts/d-js-jquery-migrate.min.js
TEXTO
JQMIGRATE: Migrate is installed, version 3.3.2
errorother
TEXTO
A bad HTTP response code (403) was received when fetching the script.
logjavascript
URL
https://www.thevistalux.com/
TEXTO
ServiceWorker registration failed: JSHandle@error

HTML

El cuerpo HTML sin procesar de la página

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" lang="en" class="pointer skrollr skrollr-desktop"><head>
    <style id="customRules"></style><meta charset="utf-8">
    






































<script async="" src="//d32hwlnfiv2gyn.cloudfront.net/sp-2.0.0-dm-0.1.min.js"></script><script type="text/javascript">
    window._currentDevice = 'desktop';
    window.Parameters = window.Parameters || {
        HomeUrl: 'https://www.thevistalux.com/',
        AccountUUID: '6266ca0b90ca44ccb5dac0f72b36f569',
        SystemID: 'US_DIRECT_PRODUCTION',
        SiteAlias: 'd3db5db2',
        SiteType: atob('RFVEQU9ORQ=='),
        PublicationDate: 'Sun Nov 17 18:16:19 UTC 2024',
        ExternalUid: 'looka',
        IsSiteMultilingual: false,
        InitialPostAlias: '',
        InitialDynamicItem: '',
        DynamicPageInfo: {
            isDynamicPage: false,
            base64JsonRowData: 'null',
        },
        InitialPageAlias: 'home',
        InitialPageUuid: '062a05794f6740e184fa6619c384be5a',
        InitialPageId: '1164827626',
        InitialEncodedPageAlias: 'aG9tZQ==',
        CurrentPageUrl: '',
        IsCurrentHomePage: true,
        AllowAjax: false,
        AfterAjaxCommand: null,
        HomeLinkText: 'Back To Home',
        UseGalleryModule: false,
        CurrentThemeName: 'Layout Theme',
        ThemeVersion: '49340',
        DefaultPageAlias: '',
        RemoveDID: true,
        WidgetStyleID: null,
        IsHeaderFixed: false,
        IsHeaderSkinny: false,
        IsBfs: true,
        StorePageAlias: 'null',
        StorePagesUrls: 'e30=',
        IsNewStore: 'false',
        StorePath: '',
        StoreId: 'null',
        StoreVersion: 0,
        StoreBaseUrl: '',
        StoreCleanUrl: true,
        StoreDisableScrolling: true,
        IsStoreSuspended: false,
        NotificationSubDomain: 'thevistalux',
        HasCustomDomain: true,
        SimpleSite: false,
        showCookieNotification: false,
        cookiesNotificationMarkup: 'null',
        translatedPageUrl: '',
        isFastMigrationSite: false,
        sidebarPosition: 'NA',
        currentLanguage: 'en',
        currentLocale: 'en',
        NavItems: '{}',
        errors: {
            general: 'There was an error connecting to the page.<br/> Make sure you are not offline.',
            password: 'Incorrect name/password combination',
            tryAgain: 'Try again'
        },
        NavigationAreaParams: {
            ShowBackToHomeOnInnerPages: true,
            NavbarSize: -1,
            NavbarLiveHomePage: 'https://www.thevistalux.com/',
            BlockContainerSelector: '.dmBody',
            NavbarSelector: '#dmNav:has(a)',
            SubNavbarSelector: '#subnav_main'
        },
        hasCustomCode: false,
        planID: '7',
        customTemplateId: 'null',
        siteTemplateId: 'null',
        productId: 'DM_DIRECT',
        disableTracking: false,
        pageType: 'FROM_SCRATCH',
        isRuntimeServer: true,
        isInEditor: false,
        hasNativeStore: false,
        defaultLang: 'en',
        hamburgerMigration: null
    };

    window.Parameters.LayoutID = {};
    window.Parameters.LayoutID[window._currentDevice] = 6;
    window.Parameters.LayoutVariationID = {};
    window.Parameters.LayoutVariationID[window._currentDevice] = 5;
</script>





















<!-- Injecting site-wide to the head -->




<!-- End Injecting site-wide to the head -->

<!-- Inject secured cdn script -->


<!-- ========= Meta Tags ========= -->
<!-- PWA settings -->
<script>
    function toHash(str) {
        var hash = 5381, i = str.length;
        while (i) {
            hash = hash * 33 ^ str.charCodeAt(--i)
        }
        return hash >>> 0
    }
</script>
<script>
    (function (global) {
    //const cacheKey = global.cacheKey;
    const isOffline = 'onLine' in navigator && navigator.onLine === false;
    const hasServiceWorkerSupport = 'serviceWorker' in navigator;
    if (isOffline) {
        console.log('offline mode');
    }
    if (!hasServiceWorkerSupport) {
        console.log('service worker is not supported');
    }
    if (hasServiceWorkerSupport && !isOffline) {
        window.addEventListener('load', function () {
            const serviceWorkerPath = '/runtime-service-worker.js?v=3';
            navigator.serviceWorker
                .register(serviceWorkerPath, { scope: './' })
                .then(
                    function (registration) {
                        // Registration was successful
                        console.log(
                            'ServiceWorker registration successful with scope: ',
                            registration.scope
                        );
                    },
                    function (err) {
                        // registration failed :(
                        console.log('ServiceWorker registration failed: ', err);
                    }
                )
                .catch(function (err) {
                    console.log(err);
                });
        });

        // helper function to refresh the page
        var refreshPage = (function () {
            var refreshing;
            return function () {
                if (refreshing) return;
                // prevent multiple refreshes
                var refreshkey = 'refreshed' + location.href;
                var prevRefresh = localStorage.getItem(refreshkey);
                if (prevRefresh) {
                    localStorage.removeItem(refreshkey);
                    if (Date.now() - prevRefresh < 30000) {
                        return; // dont go into a refresh loop
                    }
                }
                refreshing = true;
                localStorage.setItem(refreshkey, Date.now());
                console.log('refereshing page');
                window.location.reload();
            };
        })();

        function messageServiceWorker(data) {
            return new Promise(function (resolve, reject) {
                if (navigator.serviceWorker.controller) {
                    var worker = navigator.serviceWorker.controller;
                    var messageChannel = new MessageChannel();
                    messageChannel.port1.onmessage = replyHandler;
                    worker.postMessage(data, [messageChannel.port2]);
                    function replyHandler(event) {
                        resolve(event.data);
                    }
                } else {
                    resolve();
                }
            });
        }
    }
})(window);
</script>
<!-- Add manifest -->
<!-- End PWA settings -->



<link rel="canonical" href="https://www.thevistalux.com/">

<meta id="view" name="viewport" content="initial-scale=1, minimum-scale=1, maximum-scale=5, viewport-fit=cover">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>Home
</title>

<!--Add favorites icons-->

<link rel="icon" type="image/x-icon" href="https://static.cdn-website.com/runtime/favicon_d1_res.ico">

<!-- End favorite icons -->
<link rel="preconnect" href="https://lirp.cdn-website.com/">



<!-- render the required CSS and JS in the head section -->
<script>
    window.SystemID = 'US_DIRECT_PRODUCTION';

    if (!window.dmAPI) {
        window.dmAPI = {
            registerExternalRuntimeComponent: function () {
            },
            getCurrentDeviceType: function () {
                return window._currentDevice;
            },
            runOnReady: (ns, fn) => {
                const safeFn = dmAPI.toSafeFn(fn);
                ns = ns || 'global_' + Math.random().toString(36).slice(2, 11);
                const eventName = 'afterAjax.' + ns;

                if (document.readyState === 'complete') {
                    $.DM.events.off(eventName).on(eventName, safeFn);
                    setTimeout(function () {
                        safeFn({
                            isAjax: false,
                        });
                    }, 0);
                } else {
                    window?.waitForDeferred?.('dmAjax', () => {
                        $.DM.events.off(eventName).on(eventName, safeFn);
                        safeFn({
                            isAjax: false,
                        });
                    });
                }
            },
            toSafeFn: (fn) => {
                if (fn?.safe) {
                    return fn;
                }
                const safeFn = function (...args) {
                    try {
                        return fn?.apply(null, args);
                    } catch (e) {
                        console.log('function failed ' + e.message);
                    }
                };
                safeFn.safe = true;
                return safeFn;
            }
        };
    }

    if (!window.requestIdleCallback) {
        window.requestIdleCallback = function (fn) {
            setTimeout(fn, 0);
        }
    }
</script>

<!-- loadCSS function header.jsp-->






<script id="d-js-load-css">
/**
 * There are a few <link> tags with CSS resource in them that are preloaded in the page
 * in each of those there is a "onload" handler which invokes the loadCSS callback
 * defined here.
 * We are monitoring 3 main CSS files - the runtime, the global and the page.
 * When each load we check to see if we can append them all in a batch. If threre
 * is no page css (which may happen on inner pages) then we do not wait for it
 */
(function () {
  let cssLinks = {};
  function loadCssLink(link) {
    link.onload = null;
    link.rel = "stylesheet";
    link.type = "text/css";
  }
  
    function checkCss() {
      const pageCssLink = document.querySelector("[id*='CssLink']");
      const widgetCssLink = document.querySelector("[id*='widgetCSS']");

        if (cssLinks && cssLinks.runtime && cssLinks.global && (!pageCssLink || cssLinks.page) && (!widgetCssLink || cssLinks.widget)) {
            const storedRuntimeCssLink = cssLinks.runtime;
            const storedPageCssLink = cssLinks.page;
            const storedGlobalCssLink = cssLinks.global;
            const storedWidgetCssLink = cssLinks.widget;

            storedGlobalCssLink.disabled = true;
            loadCssLink(storedGlobalCssLink);

            if (storedPageCssLink) {
                storedPageCssLink.disabled = true;
                loadCssLink(storedPageCssLink);
            }

            if(storedWidgetCssLink) {
                storedWidgetCssLink.disabled = true;
                loadCssLink(storedWidgetCssLink);
            }

            storedRuntimeCssLink.disabled = true;
            loadCssLink(storedRuntimeCssLink);

            requestAnimationFrame(() => {
                setTimeout(() => {
                    storedRuntimeCssLink.disabled = false;
                    storedGlobalCssLink.disabled = false;
                    if (storedPageCssLink) {
                      storedPageCssLink.disabled = false;
                    }
                    if (storedWidgetCssLink) {
                      storedWidgetCssLink.disabled = false;
                    }
                    // (SUP-4179) Clear the accumulated cssLinks only when we're
                    // sure that the document has finished loading and the document 
                    // has been parsed.
                    if(document.readyState === 'interactive') {
                      cssLinks = null;
                    }
                }, 0);
            });
        }
    }
  

  function loadCSS(link) {
    try {
      var urlParams = new URLSearchParams(window.location.search);
      var noCSS = !!urlParams.get("nocss");
      var cssTimeout = urlParams.get("cssTimeout") || 0;

      if (noCSS) {
        return;
      }
      if (link.href && link.href.includes("d-css-runtime")) {
        cssLinks.runtime = link;
        checkCss();
      } else if (link.id === "siteGlobalCss") {
        cssLinks.global = link;
        checkCss();
      } 
      
      else if (link.id && link.id.includes("CssLink")) {
        cssLinks.page = link;
        checkCss();
      } else if (link.id && link.id.includes("widgetCSS")) {
        cssLinks.widget = link;
        checkCss();
      }
      
      else {
        requestIdleCallback(function () {
          window.setTimeout(function () {
            loadCssLink(link);
          }, parseInt(cssTimeout, 10));
        });
      }
    } catch (e) {
      throw e
    }
  }
  window.loadCSS = window.loadCSS || loadCSS;
})();
</script>



<script data-role="deferred-init" type="text/javascript">
    /* usage: window.getDeferred(<deferred name>).resolve() or window.getDeferred(<deferred name>).promise.then(...)*/
    function Def() {
        this.promise = new Promise((function (a, b) {
            this.resolve = a, this.reject = b
        }).bind(this))
    }

    const defs = {};
    window.getDeferred = function (a) {
        return null == defs[a] && (defs[a] = new Def), defs[a]
    }
    window.waitForDeferred = function (b, a, c) {
        let d = window?.getDeferred?.(b);
        d
            ? d.promise.then(a)
            : c && ["complete", "interactive"].includes(document.readyState)
                ? setTimeout(a, 1)
                : c
                    ? document.addEventListener("DOMContentLoaded", a)
                    : console.error(`Deferred  does not exist`);
    };
</script>
<style id="forceCssIncludes">
    /* This file is auto-generated from a `scss` file with the same name */

.videobgwrapper{overflow:hidden;position:absolute;z-index:0;width:100%;height:100%;top:0;left:0;pointer-events:none;border-radius:inherit}.videobgframe{position:absolute;width:101%;height:100%;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);object-fit:fill}#dm video.videobgframe{margin:0}@media (max-width:767px){.dmRoot .dmPhotoGallery.newPhotoGallery:not(.photo-gallery-done){min-height:80vh}}@media (min-width:1025px){.dmRoot .dmPhotoGallery.newPhotoGallery:not(.photo-gallery-done){min-height:45vh}}@media (min-width:768px) and (max-width:1024px){.responsiveTablet .dmPhotoGallery.newPhotoGallery:not(.photo-gallery-done){min-height:45vh}}#dm [data-show-on-page-only]{display:none!important}#dmRoot div.stickyHeaderFix div.site_content{margin-top:0!important}#dmRoot div.stickyHeaderFix div.hamburger-header-container{position:relative}
    

</style>
<style id="cssVariables" type="text/css">
    
</style>


<style id="hideAnimFix">
    .dmDesktopBody:not(.editGrid) [data-anim-desktop]:not([data-anim-desktop='none']), .dmDesktopBody:not(.editGrid) [data-anim-extended] {
        visibility: hidden;
    }

    .dmDesktopBody:not(.editGrid) .dmNewParagraph[data-anim-desktop]:not([data-anim-desktop='none']), .dmDesktopBody:not(.editGrid) .dmNewParagraph[data-anim-extended] {
        visibility: hidden !important;
    }
</style>



<style id="criticalCss">
    @charset "UTF-8";*,.dmPopup,:after,:before{box-sizing:border-box}@font-face{font-family:Poppins;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLDz8Z1xlFQ.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:italic;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/poppins/v21/pxiDyp8kv8JHgFVrJJLm21lVF9eO.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Alice;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/alice/v20/OpNCnoEEmtHa6GcOrg4.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.dmInner{min-height:100vh!important;position:relative}.dmPopup,.dmPopupMask{position:fixed;left:0}.display_None{display:none}.dmDisplay_None{display:none!important}.dmPopupMask{margin:0;display:none;width:10px;z-index:1000000999;top:0}#dmRoot .dmPopup{display:block}.dmPopup{text-align:left;top:10px;width:93%;z-index:1000009999!important;background:#f5f5f5;overflow-y:auto;height:100%;display:block}.dmPopup .dmPopupTitle{text-align:left;font:700 19px Helvetica,Arial;margin:20px 20px 35px;color:#999}.imageWidget a,.text-align-center{text-align:center}#dm div.dmRespCol>*,button{line-height:normal}#dmPopup{opacity:0}.dmPopupClose,.dmPopupClose:before{position:absolute;visibility:visible}.dmPopupClose{border-radius:25px;width:27px;height:27px;z-index:1;background-color:rgba(255,255,255,.4);top:12px;right:12px}.dmPopupClose:before{display:block;font-size:20px;color:#000;top:3px;right:3px}body.dmDesktopBody:not(.mac) .data::-webkit-scrollbar{width:5px;height:5px}body.dmDesktopBody:not(.mac) .data::-webkit-scrollbar-track{background:rgba(0,0,0,.1)}body.dmDesktopBody:not(.mac) .data::-webkit-scrollbar-thumb{background:#c8c8c8;box-shadow:inset 0 1px 2px #454545;border-radius:45px}.dmSpacer,A IMG,img{border:0}.dmRespRow.fullBleedMode>.dmRespColsWrapper{width:100%!important;max-width:100%!important}.dmRespRow.fullBleedMode{padding-left:0!important;padding-right:0!important}#dm .dmRespRow.dmRespRowNoPadding,.dmContent,.dmRespRow.dmRespRowNoPadding,DIV.dmBody{padding:0}#dm .dmRespRow .dmRespColsWrapper{display:flex}.align-center{margin-left:auto;margin-right:auto}body.fix-mobile-scrolling{overflow:initial}#dmRoot{text-decoration-skip-ink:none}@media (max-width:767px){#dmRoot.responsiveTablet #dm .dmInner .hide-for-small{display:none!important}}body{-webkit-overflow-scrolling:touch;width:100%;overflow:hidden;-webkit-text-size-adjust:100%!important;-ms-text-size-adjust:100%!important}@media (min-width:1025px){#dmRoot.responsiveTablet #dm .dmInner .hide-for-large{display:none!important}:root{--btn-text-font-size:16px}}@media (min-width:768px) and (max-width:1024px){#dmRoot.responsiveTablet #dm .dmInner .hide-for-medium{display:none!important}:root{--btn-text-font-size:16px}}html{font-family:Source Sans Pro;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}hr{box-sizing:content-box;height:0}.imageWidget img[width][height],img[width][height]{height:auto}img{max-width:100%;-ms-interpolation-mode:bicubic;display:inline-block}button{font-family:inherit;font-size:100%;margin:0;text-transform:none;-webkit-appearance:button}button::-moz-focus-inner{border:0;padding:0}.dmRespRow{padding-top:15px;padding-bottom:15px}.dmRespRow:after,.dmRespRow:before{content:' ';display:table}.dmRespRow:after{clear:both}.dmRespRow,.dmRespRow .dmRespColsWrapper{max-width:960px;position:relative;margin:0 auto;width:100%}@media screen and (min-width:1200px){.rows-1200 .dmRespRow:not(.fullBleedMode) .dmRespColsWrapper{max-width:1200px}}.dmHeader,.dmRespRow .dmRespCol>*{max-width:100%}.dmRespRow .dmRespCol{position:relative;width:100%;display:inline-block;vertical-align:top;float:left}.dmDesktopBody .dmRespRow .large-12{position:relative;width:100%}[class*=' dm-common-icons-']{speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:dm-common-icons!important}.dm-common-icons-close:before{content:'\e901'}.dmInner{min-width:768px!important;font-size:16px}html:not(.ios-preview) #dm .hasStickyHeader .dmInner div.dmHeaderContainer{position:fixed!important;z-index:101;width:100%;min-width:768px}#innerBar,#iscrollBody,#site_content,.dmHeader,.imageWidget{position:relative}.imageWidget a{font-style:italic}.dmNewParagraph[data-version]{line-height:initial}.dmNewParagraph[data-version] .text-align-left{text-align:left!important}.dmNewParagraph[data-version] .text-align-center{text-align:center!important}.dmNewParagraph[data-version] h2,.dmNewParagraph[data-version] h3,.dmNewParagraph[data-version] p{margin-top:0;margin-bottom:0}*{scrollbar-arrow-color:#fff;scrollbar-track-color:#f2f2f2;scrollbar-face-color:silver;scrollbar-highlight-color:silver;scrollbar-3dlight-color:silver;scrollbar-shadow-color:silver;scrollbar-darkshadow-color:silver;scrollbar-width:12px}h2,h3{margin-left:0;margin-right:0}.dmInner *{-webkit-font-smoothing:antialiased}a,img{vertical-align:top}.dmOuter{word-wrap:break-word}.dmDesktopBody .dmInner{min-width:960px}.dmHeader{text-align:center;width:100%}DIV.dmBody{clear:both}.dmContent{margin:0}#innerBar{height:36px;width:100%;font-size:20px;margin:0;z-index:80}.dmRespRowsWrapper{max-width:960px;margin:0 auto}.dmLargeBody .imageWidget:not(.displayNone){display:inline-block;max-width:100%}#dm .dmRespColsWrapper{display:block}.imageWidget:not(.displayNone) img{width:100%}.imageWidget:not(.displayNone) img[width][height]{height:auto}h3{font-weight:400;font-size:23px}.dmNewParagraph{text-align:left;margin:8px 0;padding:2px 0}.dmLargeBody .dmRespRowsWrapper>.dmRespRow .dmRespCol,.dmLargeBody .fHeader .dmRespRow .dmRespCol{padding-left:.75%;padding-right:.75%}.dmLargeBody .dmRespRowsWrapper>.dmRespRow .dmRespCol:first-child,.dmLargeBody .fHeader .dmRespRow .dmRespCol:first-child{padding-left:0;padding-right:1.5%}.dmLargeBody .dmRespRowsWrapper>.dmRespRow .dmRespCol:last-child,.dmLargeBody .fHeader .dmRespRow .dmRespCol:last-child{padding-right:0;padding-left:1.5%}.dmLargeBody .dmRespRowsWrapper>.dmRespRow .dmRespCol:only-child,.dmLargeBody .fHeader .dmRespRow .dmRespCol:only-child{padding-left:0;padding-right:0}#innerBar.lineInnerBar{display:table;width:100%;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;font-size:20px;margin-top:30px;margin-bottom:30px;background-color:transparent}#innerBar .titleLine{display:table-cell;vertical-align:middle;width:50%}.dmPageTitleRow:not(#innerBar){display:none}.titleLine hr{min-height:1px}.dmStandardDesktop{display:block;margin:0 auto}#dmFirstContainer .dmRespRowsWrapper:after,#dmFirstContainer .dmRespRowsWrapper:before{content:"";display:table}.dmInner a{outline:0;vertical-align:inherit}.standardHeaderLayout .dmHeader{float:none;display:block;height:auto}.dmSpacer{height:15px}body{background-color:#eee}#dm .dmBody .dmRespRowsWrapper{max-width:none;background-color:transparent}.dmLargeBody .dmRespRow{width:100%;max-width:none;margin-left:0;margin-right:0;padding-left:40px;padding-right:40px}.dmStandardDesktop .dmHeader{max-width:100%}#dm .dmInner div.u_hcontainer,#dm .p_hfcontainer div.u_1502095000{float:none!important;left:0!important;max-width:100%!important;min-width:0!important;position:relative!important}#dm div.dmInner{line-height:initial}#dm div.dmInner h2,#dm div.dmInner h3{font-family:Montserrat,"Montserrat Fallback"}#dm DIV.dmInner{background-repeat:no-repeat;background-image:url(https://irt-cdn.multiscreensite.com/ce0bb35f932b47bb809d0e37905542ba/dms3rep/multi/site_background_education-2087x1173.jpg);background-size:cover;background-position:50% 0}#dm div.dmOuter div.dmInner{background-position:center center;background-repeat:repeat;background-size:auto}#dm .d-page-1716942098 DIV.dmInner,#dm .dmBody div.u_1894291004,#dm .p_hfcontainer div.u_1732008166{background-repeat:no-repeat!important;background-size:cover!important}#dm div.dmInner,#dm div.dmInner .dmRespCol{font-weight:300;font-size:16px}.dmLargeBody .dmBody .dmRespRowsWrapper{background-color:transparent}#dm .dmRespCol div.dmNewParagraph,#dm div.dmInner,#dm div.dmInner .dmRespCol{color:rgba(0,0,0,1);font-family:Poppins,"Poppins Fallback";font-size:18px}#dm div.dmContent h2,#dm div.dmContent h3{font-family:"Bodoni Moda";color:#000;direction:ltr;font-weight:400;font-style:normal;text-decoration:none;line-height:initial}#dm div.dmContent .dmNewParagraph[data-version] h2{text-decoration:inherit}#dm div.dmContent .dmNewParagraph[data-version] h2 *{text-decoration:none}#dm div.dmContent .dmNewParagraph[data-version] h3{text-decoration:inherit}#dm div.dmContent .dmNewParagraph[data-version] h3 *{text-decoration:none}h2,h3{data-inject:titleFont;font-family:Alice!important}p{data-inject:bodyFont;font-family:Lato!important}#dm DIV.dmOuter DIV.dmInner{background-image:none;background-color:rgba(255,255,255,1)}#dm .dmContent .dmRespRow{margin:0;padding:57px}#dm .dmContent .dmRespRow .dmRespCol{margin:0;padding:0}#dm div.dmContent h2{font-size:57px}#dm div.dmContent h3{font-size:44px}@media all{:root{--btn-text-direction:ltr;--btn-border-r-color:var(--btn-border-color);--btn-border-l-color:var(--btn-border-color);--btn-border-b-width:var(--btn-border-width);--btn-border-width:1px;--btn-border-radius:0px;--btn-border-t-width:var(--btn-border-width);--btn-border-tl-radius:var(--btn-border-radius);--btn-border-br-radius:var(--btn-border-radius);--btn-border-bl-radius:var(--btn-border-radius);--btn-bg-color:rgb(48, 56, 65);--btn-border-color:rgba(0, 0, 0, 0);--btn-border-tr-radius:var(--btn-border-radius);--btn-border-r-width:var(--btn-border-width);--btn-bg-image:none;--btn-border-b-color:var(--btn-border-color);--btn-border-l-width:var(--btn-border-width);--btn-border-t-color:var(--btn-border-color);--btn-text-align:center;--btn-text-color:rgb(255, 255, 255);--btn-text-decoration:none;--btn-text-font-weight:400;--btn-icon-color:rgb(0, 0, 238);--btn-icon-fill:rgb(0, 0, 238);--btn-icon-wrpr-display:none;--btn-hover-border-b-color:var(--btn-hover-border-color);--btn-hover-bg:var(--btn-bg-color);--btn-hover-border-t-color:var(--btn-hover-border-color);--btn-hover-border-r-color:var(--btn-hover-border-color);--btn-hover-border-l-color:var(--btn-hover-border-color);--btn-hover-border-color:rgb(65, 67, 69);--btn-hover-text-color:var(--btn-text-color);--btn-hover-text-font-weight:var(--btn-text-font-weight);--btn-hover-text-decoration:var(--btn-text-decoration);--btn-hover-text-font-style:var(--btn-text-font-style)}}@media (min-width:0px) and (max-width:767px){:root{--btn-text-font-size:16px}}#dm .dmInner div.dmHeader,#dm .dmInner div.dmHeader.u_hcontainer,#dm .dmInner div.u_hcontainer{background-color:rgba(255,255,255,1)!important;box-shadow:none!important;-moz-box-shadow:none!important;-webkit-box-shadow:none!important}#dm .p_hfcontainer div.u_1502095000 img{border-radius:0!important;-moz-border-radius:0!important;-webkit-border-radius:0!important}#dm .p_hfcontainer .u_1502095000{width:100%!important}#dm .dmInner div.u_hcontainer{top:0!important;width:100%!important;height:auto!important;text-align:center!important;padding:25px 0 20px!important;margin:0 auto!important}#dm .dmInner div.dmHeader.u_hcontainer{padding-bottom:20px!important;padding-top:25px!important}.stickyHeaderSpacer{height:111.97px!important}#dm .dmInner div.fHeader .dmHeader[freeheader=true]{padding:15px 0!important}.fHeader #hcontainer.dmHeader[freeheader=true]{padding-top:initial!important;padding-bottom:initial!important}.responsiveTablet .stickyHeaderSpacer{height:196.38px!important}#dm .p_hfcontainer div.u_1012665047{width:auto!important;padding:34px 57px!important;margin:0!important}#dm .dmInner div.fHeader.dmHeaderContainer #hcontainer.dmHeader[freeheader=true]{margin:0!important;padding:18px 0!important}#dm .p_hfcontainer div.u_1732008166{border-style:solid!important;border-width:0!important;-webkit-box-shadow:none!important;box-shadow:none!important;-moz-box-shadow:none!important;background-image:url(https://lirp.cdn-website.com/d3db5db2/dms3rep/multi/opt/pexels-photo-2387793-1920w.jpeg),url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpUUqHSwo4pChOlkQFemoVShChVArtOpgcukXNGlIUlwcBdeCgx+LVQcXZ10dXAVB8APEzc1J0UVK/F9aaBHjwXE/3t173L0DhEaFaVbPBKDptplOJsRsblUMvEJAGEEMIi4zy5iTpBQ8x9c9fHy9i/Es73N/jn41bzHAJxLPMsO0iTeIZzZtg/M+cYSVZJX4nHjcpAsSP3JdafEb56LLAs+MmJn0PHGEWCx2sdLFrGRqxNPEUVXTKV/ItljlvMVZq9RY+578haG8vrLMdZojSGIRS5AgQkENZVRgI0arToqFNO0nPPzDrl8il0KuMhg5FlCFBtn1g//B726twtRkKymUAHpfHOdjFAjsAs2643wfO07zBPA/A1d6x19tAPFP0usdLXoEhLeBi+uOpuwBlzvA0JMhm7Ir+WkKhQLwfkbflAMGboG+tVZv7X2cPgAZ6ip1AxwcAmNFyl73eHewu7d/z7T7+wFwJnKmZ9+MiwAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+UCDwksLkLIPkkAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAC0lEQVQI12NgAAIAAAUAAeImBZsAAAAASUVORK5CYII=)!important;padding:0!important}@media (min-width:768px) and (max-width:1024px){.responsiveTablet .stickyHeaderSpacer{height:274px!important}}@media (min-width:1025px){.responsiveTablet .stickyHeaderSpacer{height:274px!important}}@media (min-width:768px) and (max-width:991px){#dm .p_hfcontainer div.u_1012665047{padding:34px 22px!important}#dm .p_hfcontainer div.u_1502095000{margin-top:14px!important}}#dm .p_hfcontainer div.u_1502095000.logo-image-widget{top:50%!important;transform:translateY(-50%)!important;position:relative!important}#dm .p_hfcontainer div.u_1502095000{top:262.06px!important;width:510px!important;text-align:center!important;display:block!important;height:170px!important;important:true!important;min-height:auto!important;padding:0!important;margin:0 auto 0 0!important}#dm .dmBody div.u_1324914430,#dm .dmBody div.u_1916290870{height:auto!important;max-width:100%!important;display:block!important;min-width:0!important;float:none!important;top:0!important;left:0!important}#dm .d-page-1716942098 DIV.dmInner{background-attachment:fixed!important;background-position:50% 50%!important}#dm .dmBody div.u_1121875171{margin:0!important;padding:0!important}#dm .dmBody div.u_1566518979{width:auto!important;margin:0!important;padding:57px!important}#dm .dmBody div.u_1324914430{width:100%!important;position:relative!important;padding:0!important;margin:0 0 32px!important}#dm .dmBody div.u_1658687009{width:auto!important;margin:0!important;padding:57px!important}#dm .dmBody div.u_1916290870{width:825px!important;position:relative!important;padding:0!important;margin:32px auto 0!important}@media screen and (max-width:1024px) and (min-width:768px){#dm div.dmContent h2{font-size:33px}#dm div.dmContent h3{font-size:27px}#dm .dmBody div.u_1916290870{max-width:340px!important}#dm .dmBody div.u_1268797603{height:175px!important}}#dm .dmBody div.u_1243667655{float:none!important;top:0!important;left:0!important;width:auto!important;position:relative!important;height:auto!important;max-width:none!important;min-width:0!important;text-align:center!important;margin:0!important;padding:63px 0 138px!important}#dm .dmBody div.u_1894291004{background-image:url(https://lirp.cdn-website.com/d3db5db2/dms3rep/multi/opt/Praia-dos-Caneiros1-1920w.jpg),url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpUUqHSwo4pChOlkQFemoVShChVArtOpgcukXNGlIUlwcBdeCgx+LVQcXZ10dXAVB8APEzc1J0UVK/F9aaBHjwXE/3t173L0DhEaFaVbPBKDptplOJsRsblUMvEJAGEEMIi4zy5iTpBQ8x9c9fHy9i/Es73N/jn41bzHAJxLPMsO0iTeIZzZtg/M+cYSVZJX4nHjcpAsSP3JdafEb56LLAs+MmJn0PHGEWCx2sdLFrGRqxNPEUVXTKV/ItljlvMVZq9RY+578haG8vrLMdZojSGIRS5AgQkENZVRgI0arToqFNO0nPPzDrl8il0KuMhg5FlCFBtn1g//B726twtRkKymUAHpfHOdjFAjsAs2643wfO07zBPA/A1d6x19tAPFP0usdLXoEhLeBi+uOpuwBlzvA0JMhm7Ir+WkKhQLwfkbflAMGboG+tVZv7X2cPgAZ6ip1AxwcAmNFyl73eHewu7d/z7T7+wFwJnKmZ9+MiwAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+UCDwksLkLIPkkAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAC0lEQVQI12NgAAIAAAUAAeImBZsAAAAASUVORK5CYII=)!important;background-position:50% 50%!important;margin:0!important;padding:0!important}#dm .dmBody div.u_1268797603{height:388px!important;float:none!important;top:0!important;left:0!important;width:calc(100% - 250px)!important;position:relative!important;min-height:auto!important;max-width:1070px!important;min-width:25px!important;text-align:start!important;padding:0!important;margin:0 auto!important}#\31 173148036,#\31 253858808,#\31 528391677,#\31 699502567,#\31 873486417,#\31 957779715{order:0;flex-direction:row} #dm .dmPhotoGallery.newPhotoGallery .dmPhotoGalleryHolder {display: none;} @media (max-width:767px){ [data-hidden-on-mobile] {display:none!important}}
    .dmDesktopBody [data-anim-desktop]:not([data-anim-desktop='none']) {
        visibility: hidden;
    }

    
</style>



<style id="fontFallbacks">
    @font-face {
  font-family: "Belgrano Fallback";
  src: local('Arial');
  ascent-override: 87.5736%;
  descent-override: 24.5914%;
  size-adjust: 113.0478%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Staatliches Fallback";
  src: local('Arial');
  ascent-override: 110.3516%;
  descent-override: 34.8479%;
  size-adjust: 86.0885%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Indie Flower Fallback";
  src: local('Arial');
  ascent-override: 101.0963%;
  descent-override: 50.8533%;
  size-adjust: 96.0177%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Roboto Fallback";
  src: local('Arial');
  ascent-override: 92.6709%;
  descent-override: 24.3871%;
  size-adjust: 100.1106%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Amiri Fallback";
  src: local('Arial');
  ascent-override: 123.7258%;
  descent-override: 69.7884%;
  size-adjust: 90.846%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Montserrat Fallback";
  src: local('Arial');
  ascent-override: 84.9466%;
  descent-override: 22.0264%;
  size-adjust: 113.954%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Poppins Fallback";
  src: local('Arial');
  ascent-override: 92.326%;
  descent-override: 30.7753%;
  line-gap-override: 8.793%;
  size-adjust: 113.7274%;
}@font-face {
  font-family: "Noto Sans Fallback";
  src: local('Arial');
  ascent-override: 100.1833%;
  descent-override: 27.459%;
  size-adjust: 106.7044%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Bebas Neue Fallback";
  src: local('Arial');
  ascent-override: 116.5002%;
  descent-override: 38.8334%;
  size-adjust: 77.2531%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Noto Serif Fallback";
  src: local('Arial');
  ascent-override: 98.7162%;
  descent-override: 27.0569%;
  size-adjust: 108.2903%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Roboto Slab Fallback";
  src: local('Arial');
  ascent-override: 97.7562%;
  descent-override: 25.2818%;
  size-adjust: 107.1903%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Ubuntu Fallback";
  src: local('Arial');
  ascent-override: 90.8147%;
  descent-override: 18.4163%;
  line-gap-override: 2.7283%;
  size-adjust: 102.6265%;
}@font-face {
  font-family: "Alata Fallback";
  src: local('Arial');
  ascent-override: 107.1847%;
  descent-override: 27.2834%;
  size-adjust: 102.6265%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Alice Fallback";
  src: local('Arial');
  ascent-override: 89.5621%;
  descent-override: 23.0556%;
  size-adjust: 101.4938%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Rock Salt Fallback";
  src: local('Arial');
  ascent-override: 112.6419%;
  descent-override: 54.69%;
  line-gap-override: 2.2209%;
  size-adjust: 140.708%;
}@font-face {
  font-family: "Cinzel Fallback";
  src: local('Arial');
  ascent-override: 76.7937%;
  descent-override: 29.2697%;
  size-adjust: 127.0938%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Overlock Fallback";
  src: local('Arial');
  ascent-override: 106.0693%;
  descent-override: 27.8898%;
  size-adjust: 91.0726%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Lato Fallback";
  src: local('Arial');
  ascent-override: 101.3181%;
  descent-override: 21.865%;
  size-adjust: 97.4159%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Lora Fallback";
  src: local('Arial');
  ascent-override: 95.2907%;
  descent-override: 25.9539%;
  size-adjust: 105.5717%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Delius Fallback";
  src: local('Arial');
  ascent-override: 97.1488%;
  descent-override: 26.6026%;
  size-adjust: 101.4938%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Rubik Fallback";
  src: local('Arial');
  ascent-override: 88.5654%;
  descent-override: 23.6806%;
  size-adjust: 105.5717%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Exo Fallback";
  src: local('Arial');
  ascent-override: 95.3209%;
  descent-override: 31.1077%;
  size-adjust: 105.1186%;
  line-gap-override: 0%;
 }@font-face {
  font-family: "Open Sans Fallback";
  src: local('Arial');
  ascent-override: 101.1768%;
  descent-override: 27.7323%;
  size-adjust: 105.6416%;
  line-gap-override: 0%;
 }
</style>


<!-- End render the required css and JS in the head section -->








<meta property="og:type" content="website">

  <meta name="twitter:card" content="summary">




<!-- SYS- VVNfRElSRUNUX1BST0RVQ1RJT04= -->
<script src="https://static.cdn-website.com/libs/bower-skrollr/skrollr.min.js"></script></head>





















<body id="dmRoot" data-page-alias="home" class="dmRoot dmDesktopBody fix-mobile-scrolling addCanvasBorder dmResellerSite dmLargeBody responsiveTablet pcCustomScrollbar d1SiteBody dmBodyNoIscroll" style="padding:0;margin:0;">
















<!-- ========= Site Content ========= -->
<div id="dm" class="dmwr">
    
    <div class="dm_wrapper standard-var5 widgetStyle-3 standard">
         <div dmwrapped="true" id="1901957768" class="dm-home-page" themewaschanged="true"> <div dmtemplateid="StandardLayoutMultiD" class="standardHeaderLayout dm-bfs dm-layout-home hasAnimations rows-1200 inMiniHeaderMode hasStickyHeader hamburger-reverse dmPageBody d-page-1716942098 dmFreeHeader runtime-module-container" id="dm-outer-wrapper" data-page-class="1716942098" data-soch="true" data-background-parallax-selector=".dmHomeSection1, .dmSectionParallex"> <div id="dmStyle_outerContainer" class="dmOuter"> <div id="dmStyle_innerContainer" class="dmInner"> <div class="dmLayoutWrapper standard-var dmStandardDesktop"> <div> <div id="iscrollBody"> <div id="site_content"> <div class="dmHeaderContainer fHeader d-header-wrapper"> <div id="hcontainer" class="u_hcontainer dmHeader p_hfcontainer" freeheader="true" headerlayout="b58ba5b5703b4cd7b5f5f7951565dc87===horizontal-layout-5" layout="7f3c1de367df47d5b45ab63d33101c7b===header" data-scrollable-target="body" data-scrollable-target-threshold="1" data-scroll-responder-id="1" logo-size-target="100%"> <div dm:templateorder="85" class="dmHeaderResp dmHeaderStack noSwitch" id="1709005236"> <div class="dmRespRow dmDefaultListContentRow u_1012665047 fullBleedChanged fullBleedMode" style="text-align:center" id="1012665047"> <div class="dmRespColsWrapper" id="1957779715"> <div class="u_1732008166 small-12 dmRespCol medium-12 large-12" id="1732008166"> <div class="u_1502095000 imageWidget logo-image-widget align-center" data-widget-type="image" id="1502095000" data-element-type="image" editablewidget="true"> <a href="/" id="1957864219" file="false"><img data-inject="logo_black" src="https://lirp.cdn-website.com/d3db5db2/dms3rep/multi/opt/Color+logo+-+no+background-612w.png" id="1514643432" class="" data-dm-image-path="https://irp.cdn-website.com/d3db5db2/dms3rep/multi/Color+logo+-+no+background.png" width="1920" height="641" onerror="handleImageLoadError(this)"></a> 
</div> 
</div> 
</div> 
</div> 
</div> 
</div> 
</div> 
 <div class="stickyHeaderSpacer" id="stickyHeaderSpacer" data-new="true"></div> 
 <div class="dmRespRow dmRespRowStable dmRespRowNoPadding dmPageTitleRow "> <div class="dmRespColsWrapper"> <div class="large-12 dmRespCol"> <div id="innerBar" class="innerBar lineInnerBar dmDisplay_None"> <div class="titleLine display_None"><hr></div> 
<!-- Page title is hidden in css for new responsive sites. It is left here only so we don't break old sites. Don't copy it to new layouts --> <div id="pageTitleText"></div> 
 <div class="titleLine display_None"><hr></div> 
</div> 
</div> 
</div> 
</div> 
 <div dmwrapped="true" id="dmFirstContainer" class="dmBody u_dmStyle_template_home dm-home-page" themewaschanged="true"> <div id="allWrapper" class="allWrapper"><!-- navigation placeholders --> <div id="dm_content" class="dmContent"> <div dm:templateorder="170" class="dmHomeRespTmpl mainBorder dmRespRowsWrapper dmFullRowRespTmpl dmRespRowsWrapperSize1" id="1716942098"> <div class="u_1243667655 dmRespRow fullBleedChanged fullBleedMode" style="text-align: center;" id="1243667655"> <div class="dmRespColsWrapper" id="1173148036"> <div class="dmRespCol small-12 u_1620106714 medium-12 large-12" id="1620106714"> <span id="1479169930"></span> 
 <div class="u_1916290870 dmNewParagraph" data-element-type="paragraph" data-version="5" id="1916290870" style="transition: none 0s ease 0s; text-align: left;"> <h2 class="text-align-center" style="line-height: 1.2992;"><span style="display: initial;">Coming soon...</span></h2> 
</div> 
</div> 
</div> 
</div> 
 <div class="u_1566518979 dmRespRow fullBleedChanged fullBleedMode" id="1566518979"> <div class="dmRespColsWrapper" id="1699502567"> <div class="dmRespCol small-12 u_1580830396 medium-12 large-12" id="1580830396"> <div class="u_1324914430 dmNewParagraph" data-element-type="paragraph" data-version="5" id="1324914430" style="transition: opacity 1s ease-in-out 0s;"> <h3 style="line-height: 1.3328;"><span style="display: initial;">Vacation properties</span></h3> 
</div> 
 <div class="dmNewParagraph u_1121875171" data-element-type="paragraph" data-version="5" id="1121875171" style="transition: opacity 1s ease-in-out 0s;"><p><span style="display: unset;">Caneiros Beach, Ferragudo - Algarve</span></p></div> 
</div> 
</div> 
</div> 
 <div class="dmRespRow fullBleedChanged fullBleedMode u_1658687009" id="1658687009"> <div class="dmRespColsWrapper" id="1528391677"> <div class="dmRespCol large-12 medium-12 small-12 u_1894291004" id="1894291004" data-inject="photo3" style="background-image: url('https://cdn.looka.com/assets-db/industry_photos/realestate/3.jpg');"> <div data-element-type="spacer" class="u_1268797603 dmSpacer" id="1268797603"></div> 
</div> 
</div> 
</div> 
</div> 
</div> 
</div> 
</div> 
 <div class="dmFooterContainer"> <div id="fcontainer" class="u_fcontainer f_hcontainer dmFooter p_hfcontainer"> <div dm:templateorder="250" class="dmFooterResp generalFooter" id="1943048428"> <div class="dmRespRow u_1632155419 fullBleedChanged fullBleedMode" style="text-align: center;" id="1632155419"> <div class="dmRespColsWrapper" id="1253858808"> <div class="u_1063824722 dmRespCol small-12 medium-12 large-12" id="1063824722"> <div class="u_1860689617 imageWidget align-center" data-widget-type="image" id="1860689617" data-element-type="image" editablewidget="true"> <a href="/" id="1792464634" file="false"><img data-inject="logo_black" src="https://lirp.cdn-website.com/d3db5db2/dms3rep/multi/opt/Black+logo+-+no+background-205w.png" id="1311291700" class="" data-dm-image-path="https://irp.cdn-website.com/d3db5db2/dms3rep/multi/Black+logo+-+no+background.png" width="1920" height="1429" onerror="handleImageLoadError(this)"></a> 
</div> 
 <div class="dmNewParagraph u_1270076613" data-element-type="paragraph" data-version="5" id="1270076613" style="transition: opacity 1s ease-in-out 0s;"><p><span style="display: unset;">Urb. Vale de Azinhaga</span></p><p><span style="display: unset;">Ferragudo</span></p></div> 
 <div class="dmNewParagraph u_1155367908" data-element-type="paragraph" data-version="5" id="1155367908" style="transition: opacity 1s ease-in-out 0s;"><p><span style="display: unset;">Portugal</span></p><p><span style="display: unset;">[email protected]</span></p></div> 
</div> 
</div> 
</div> 
</div> 
 <div id="1236746004" dmle_extension="powered_by" data-element-type="powered_by" icon="true" surround="false"></div> 
</div> 
</div> 
</div> 
</div> 
</div> 
</div> 
</div> 
</div> 
</div> 
</div> 

    </div>
</div>
<!--  Add full CSS and Javascript before the close tag of the body if needed -->





















<!-- Google Fonts Include -->













<!-- loadCSS function fonts.jsp-->



<link rel="preload" href="https://fonts.googleapis.com/css2?family=Belgrano:ital,wght@0,400&amp;family=Staatliches:ital,wght@0,400&amp;family=Indie+Flower:ital,wght@0,400&amp;family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&amp;family=Amiri:ital,wght@0,400;0,700;1,400;1,700&amp;family=Montserrat:ital,wght@0,100..900;1,100..900&amp;family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&amp;family=Noto+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&amp;family=Bebas+Neue:ital,wght@0,400&amp;family=Noto+Serif:ital,wght@0,100..900;1,100..900&amp;family=Roboto+Slab:ital,wght@0,100..900;1,100..900&amp;family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&amp;family=Bodoni+Moda:ital,wght@0,400..900;1,400..900&amp;family=Alata:ital,wght@0,400&amp;family=Alice:ital,wght@0,400&amp;family=Rock+Salt:ital,wght@0,400&amp;family=Cinzel:ital,wght@0,400..900;1,400..900&amp;family=Overlock:ital,wght@0,400;0,700;0,900;1,400;1,700;1,900&amp;family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&amp;family=Lora:ital,wght@0,400..700;1,400..700&amp;family=Delius:ital,wght@0,400&amp;family=Rubik:ital,wght@0,300..900;1,300..900&amp;family=Exo:ital,wght@0,100..900;1,100..900&amp;family=Open+Sans:ital,wght@0,300..800;1,300..800&amp;subset=latin-ext&amp;display=swap" as="style" fetchpriority="low" onload="loadCSS(this)">





<!-- RT CSS Include d-css-runtime-desktop-one-package-structured-global-->
<link rel="stylesheet" as="style" fetchpriority="low" onload="loadCSS(this)" href="https://static.cdn-website.com/mnlt/production/4934/_dm/s/rt/dist/css/d-css-runtime-desktop-one-package-structured-global.min.css" type="text/css">

<!-- End of RT CSS Include -->

<link rel="stylesheet" href="https://irp.cdn-website.com/WIDGET_CSS/f47ddf2ea9a92cbf04e612a96efeda53.css" id="widgetCSS" as="style" fetchpriority="low" onload="loadCSS(this)" type="text/css">

<!-- Support `img` size attributes -->
<style>img[width][height] {
    height: auto;
}</style>

<!-- Support showing sticky element on page only -->
<style>
    body[data-page-alias="home"] #dm [data-show-on-page-only="home"] {
        display: block !important;
    }
</style>

<!-- This is populated in Ajax navigation -->
<style id="pageAdditionalWidgetsCss" type="text/css">
</style>




<!-- Site CSS -->
<link rel="stylesheet" href="https://irp.cdn-website.com/d3db5db2/files/d3db5db2_withFlex_1.min.css?v=14" id="siteGlobalCss" as="style" fetchpriority="low" onload="loadCSS(this)" type="text/css">



<style id="customWidgetStyle" type="text/css">
    
</style>
<style id="innerPagesStyle" type="text/css">
    
</style>


<style id="additionalGlobalCss" type="text/css">
</style>

<!-- Page CSS -->
<link rel="stylesheet" href="https://irp.cdn-website.com/d3db5db2/files/d3db5db2_home_withFlex_1.min.css?v=14" id="homeCssLink" as="style" fetchpriority="low" onload="loadCSS(this)" type="text/css">

<style id="pagestyle" type="text/css">
    
</style>

<style id="pagestyleDevice" type="text/css">
    
</style>

<!-- Flex Sections CSS -->





<style id="globalFontSizeStyle" type="text/css">
    
</style>
<style id="pageFontSizeStyle" type="text/css">
</style>

<!-- ========= JS Section ========= -->
<script>
    var isWLR = true;

    window.customWidgetsFunctions = {};
    window.customWidgetsStrings = {};
    window.collections = {};
    window.currentLanguage = "ENGLISH"
    window.isSitePreview = false;
</script>
<script type="text/javascript">

    var d_version = "production_4934";
    var build = "2024-11-17T13_49_44";
    window['v' + 'ersion'] = d_version;

    function buildEditorParent() {
        window.isMultiScreen = true;
        window.editorParent = {};
        window.previewParent = {};
        window.assetsCacheQueryParam = "?version=2024-11-17T13_49_44";
        try {
            var _p = window.parent;
            if (_p && _p.document && _p.$ && _p.$.dmfw) {
                window.editorParent = _p;
            } else if (_p.isSitePreview) {
                window.previewParent = _p;
            }
        } catch (e) {

        }
    }

    buildEditorParent();
</script>

<!-- Load jQuery -->
<script type="text/javascript" id="d-js-jquery" src="https://static.cdn-website.com/libs/jquery/jquery-3.7.0.min.js"></script>
<!-- End Load jQuery -->
<!-- Injecting site-wide before scripts -->
<!-- End Injecting site-wide to the head -->


<script>
    var _jquery = window.$;

    var jqueryAliases = ['$', 'jquery', 'jQuery'];

    jqueryAliases.forEach((alias) => {
        Object.defineProperty(window, alias, {
            get() {
                return _jquery;
            },
            set() {
                console.warn("Trying to over-write the global jquery object!");
            }
        });
    });
    window.jQuery.migrateMute = true;
</script>
<script>
    window.cookiesNotificationMarkupPreview = 'null';
</script>

<!-- HEAD RT JS Include -->
<script id="d-js-params">
    window.INSITE = window.INSITE || {};
    window.INSITE.device = "desktop";

    window.rtCommonProps = {};
    rtCommonProps["rt.ajax.ajaxScriptsFix"] =true;
    rtCommonProps["rt.pushnotifs.sslframe.encoded"] = 'aHR0cHM6Ly97c3ViZG9tYWlufS5wdXNoLW5vdGlmcy5jb20=';
    rtCommonProps["runtimecollector.url"] = 'https://rtc.multiscreensite.com';
    rtCommonProps["performance.tabletPreview.removeScroll"] = 'false';
    rtCommonProps["inlineEditGrid.snap"] =true;
    rtCommonProps["popup.insite.cookie.ttl"] = '0.5';
    rtCommonProps["rt.pushnotifs.force.button"] =true;
    rtCommonProps["common.mapbox.token"] = 'pk.eyJ1IjoiZGFubnliMTIzIiwiYSI6ImNqMGljZ256dzAwMDAycXBkdWxwbDgzeXYifQ.Ck5P-0NKPVKAZ6SH98gxxw';
    rtCommonProps["common.mapbox.js.override"] =false;
    rtCommonProps["common.here.appId"] = 'iYvDjIQ2quyEu0rg0hLo';
    rtCommonProps["common.here.appCode"] = '1hcIxLJcbybmtBYTD9Z1UA';
    rtCommonProps["isCoverage.test"] =false;
    rtCommonProps["ecommerce.ecwid.script"] = 'https://app.multiscreenstore.com/script.js';
    rtCommonProps["feature.flag.mappy.kml"] =false;
    rtCommonProps["common.resources.dist.cdn"] =true;
    rtCommonProps["common.build.dist.folder"] = 'production/4934';
    rtCommonProps["common.resources.cdn.host"] = 'https://static.cdn-website.com';
    rtCommonProps["common.resources.folder"] = 'https://static.cdn-website.com/mnlt/production/4934';
    rtCommonProps["feature.flag.runtime.backgroundSlider.preload.slowly"] =true;
    rtCommonProps["feature.flag.runtime.newAnimation.enabled"] =true;
    rtCommonProps["feature.flag.runtime.newAnimation.respectCssAnimationProps.enabled"] =true;
    rtCommonProps["feature.flag.runtime.newAnimation.jitAnimation.enabled"] =true;
    rtCommonProps["feature.flag.sites.google.analytics.gtag"] =true;
    rtCommonProps["feature.flag.runOnReadyNewTask"] =true;
    rtCommonProps["isAutomation.test"] =false;

    
    rtCommonProps['common.mapsProvider'] = 'mapbox';
    
    rtCommonProps['common.mapsProvider.version'] = '0.52.0';
    rtCommonProps['common.geocodeProvider'] = 'mapbox';
    rtCommonProps['common.map.defaults.radiusSize'] = '1500';
    rtCommonProps['common.map.defaults.radiusBg'] = 'rgba(255, 255, 255, 0.4)';
    rtCommonProps['common.map.defaults.strokeColor'] = 'rgba(255, 255, 255, 1)';
    rtCommonProps['common.map.defaults.strokeSize'] = '2';
    rtCommonProps['server.for.resources'] = '';
    rtCommonProps['feature.flag.lazy.widgets'] = true;
    rtCommonProps['feature.flag.single.wow'] = false;
    rtCommonProps['feature.flag.disallowPopupsInEditor'] = true;
    rtCommonProps['feature.flag.mark.anchors'] = true;
    rtCommonProps['captcha.public.key'] = '6LffcBsUAAAAAMU-MYacU-6QHY4iDtUEYv_Ppwlz';
    rtCommonProps['captcha.invisible.public.key'] = '6LeiWB8UAAAAAHYnVJM7_-7ap6bXCUNGiv7bBPME';
    rtCommonProps["images.sizes.small"] =160;
    rtCommonProps["images.sizes.mobile"] =640;
    rtCommonProps["images.sizes.tablet"] =1280;
    rtCommonProps["images.sizes.desktop"] =1920;
    rtCommonProps["modules.resources.cdn"] =true;
    rtCommonProps["import.images.storage.imageCDN"] = 'https://lirp.cdn-website.com/';
    rtCommonProps["facebook.api.version"] = '7.0';
    rtCommonProps["feature.flag.runtime.inp.threshold"] =150;
    rtCommonProps["feature.flag.performance.logs"] =true;
    rtCommonProps["site.widget.form.captcha.type"] = 'g_recaptcha';
    rtCommonProps["friendly.captcha.site.key"] = 'FCMGSQG9GVNMFS8K';
    rtCommonProps["cookiebot.mapbox.consent.category"] = 'marketing';
    rtCommonProps["platform.monolith.personalization.dateTimeCondition.popupMsgAction.moveToclient.enabled"] =true;

    // feature flags that's used out of runtime module (in  legacy files)
    rtCommonProps["site.runtime.video.background.ssr"] =true;

    window.rtFlags = {};
    rtFlags["unsuspendEcwidStoreOnRuntime.enabled"] =true;
    rtFlags["scripts.widgetCount.enabled"] =true;
    rtFlags["ecom.ecwid.categoryPage.modifyLinks"] = true;
    rtFlags["ecom.ecwid.delegateNavigationToEcwid.enabled"] = false;
    rtFlags["ecom.ecwidNewUrlStructure.enabled"] = false;
    rtFlags["ecom.ecwid.old.store.fix.scrolling.enabled"] = true;
    rtFlags["ecom.ecwid.old.store.fix.facebook.share"] = true;
    rtFlags["ecom.ecwid.fallBackInCaseLinksNotFound.enabled"] = true;
    rtFlags["feature.flag.photo.gallery.exact.size"] =true;
    rtFlags["new.store.fix.ecwid.back.bug"] =true;
    rtFlags["facebook.runtime.widgets.upgrade"] =true;
    rtFlags["ecom.ecwid.solve.url.modifications"] = true;
    rtFlags["ecom.ecwid.configOptions"] = true;
    rtFlags["geocode.search.localize"] =false;
    rtFlags["feature.flag.runtime.newAnimation.asyncInit.setTimeout.enabled"] =false;
    rtFlags["site.contact.form.fix.for.attribute"] =true;
    rtFlags["contact.form.date.format.enabled"] = true;
    rtFlags["twitter.heightLimit.enabled"] = true;
    rtFlags["ecom.ecwid.fixTranslations.enabled"] = true;
    rtFlags["runtime.load.script.native"] =true;
    rtFlags["editor.classicHybrid.photogallery.fix"] =true;
    rtFlags["runtime.lottieOverflow"] =false;
    rtFlags["runtime.monitoring.sentry.ignoreErrors"] = "";
    rtFlags["ecom.ecwid.old.store.fix.scrolling.detect.enable"] =true;
    rtFlags["contact.form.browserValidation.enabled"] =true;
</script>
<script src="https://static.cdn-website.com/mnlt/production/4934/_dm/s/rt/dist/scripts/d-js-one-runtime-unified-desktop.min.js" id="d-js-core"></script>
<!-- End of HEAD RT JS Include -->
<script src="https://static.cdn-website.com/mnlt/production/4934/_dm/s/rt/dist/scripts/d-js-jquery-migrate.min.js"></script>
<script>
    
    $(window).bind("orientationchange", function (e) {
        $.layoutManager.initLayout();
        
    });
    $(document).resize(function () {
        
    });
</script>
<script type="text/javascript" id="d_track_campaign">
(function() {
	const queryParams = new URLSearchParams(window.location.search);

	const expires = 'expires=' + new Date().getTime() + 24 * 60 * 60 * 1000;
	const domain = 'domain=' + window.location.hostname;
	const path = "path=/";

	queryParams.forEach((value, key) => {
		if (key.startsWith('utm_')) {
			const cookieName = "_dm_rt_" + key.substring(4);
			const cookie = cookieName + "=" + value;
			const joined = [cookie, expires, domain, path].join(";");
			document.cookie = joined;
		}
	});
}());
</script>
<script type="text/javascript">
  var _dm_gaq = {};
  var _gaq = _gaq || [];
  var _dm_insite = [];
</script>

<script type="text/javascript" id="d_track_sp">
;(function(p,l,o,w,i,n,g){if(!p[i]){p.GlobalSnowplowNamespace=p.GlobalSnowplowNamespace||[];
p.GlobalSnowplowNamespace.push(i);p[i]=function(){(p[i].q=p[i].q||[]).push(arguments)
};p[i].q=p[i].q||[];n=l.createElement(o);g=l.getElementsByTagName(o)[0];n.async=1;
n.src=w;g.parentNode.insertBefore(n,g)}}(window,document,"script","//d32hwlnfiv2gyn.cloudfront.net/sp-2.0.0-dm-0.1.min.js","snowplow"));
window.dmsnowplow  = window.snowplow;

dmsnowplow('newTracker', 'cf', 'd32hwlnfiv2gyn.cloudfront.net', { // Initialise a tracker
  appId: 'd3db5db2'
});

// snowplow queries element styles so we wait until CSS calculations are done.
requestAnimationFrame(() => {
	dmsnowplow('trackPageView');
	_dm_insite.forEach((rule) => {
		// Specifically in popup only the client knows if it is shown or not so we don't always want to track its impression here
		// the tracking is in popup.js
		if (rule.actionName !== "popup") {
			dmsnowplow('trackStructEvent', 'insite', 'impression', rule.ruleType, rule.ruleId);
		}
		window?.waitForDeferred?.('dmAjax', () => {
			$.DM.events.trigger('event-ruleTriggered', {value: rule});
		});
	});
});
</script>
   <div style="display:none;" id="P6iryBW0Wu"></div>

<!-- photoswipe markup -->









<!-- Root element of PhotoSwipe. Must have class pswp. -->
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">

    <!-- Background of PhotoSwipe. 
         It's a separate element as animating opacity is faster than rgba(). -->
    <div class="pswp__bg"></div>

    <!-- Slides wrapper with overflow:hidden. -->
    <div class="pswp__scroll-wrap">

        <!-- Container that holds slides. 
            PhotoSwipe keeps only 3 of them in the DOM to save memory.
            Don't modify these 3 pswp__item elements, data is added later on. -->
        <div class="pswp__container">
            <div class="pswp__item"></div>
            <div class="pswp__item"></div>
            <div class="pswp__item"></div>
        </div>

        <!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->
        <div class="pswp__ui pswp__ui--hidden">

            <div class="pswp__top-bar">

                <!--  Controls are self-explanatory. Order can be changed. -->

                <div class="pswp__counter"></div>

                <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>

                <button class="pswp__button pswp__button--share" title="Share"></button>

                <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>

                <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>

                <!-- Preloader demo http://codepen.io/dimsemenov/pen/yyBWoR -->
                <!-- element will get class pswp__preloader--active when preloader is running -->
                <div class="pswp__preloader">
                    <div class="pswp__preloader__icn">
                      <div class="pswp__preloader__cut">
                        <div class="pswp__preloader__donut"></div>
                      </div>
                    </div>
                </div>
            </div>

            <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
                <div class="pswp__share-tooltip"></div> 
            </div>

            <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
            </button>

            <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
            </button>

            <div class="pswp__caption">
                <div class="pswp__caption__center"></div>
            </div>

        </div>

    </div>

</div>
<div id="fb-root" data-locale="en"></div>
<!-- Alias: d3db5db2 -->
<div class="dmPopupMask" id="dmPopupMask"></div>
<div id="dmPopup" class="dmPopup">
	<div class="dmPopupCloseWrapper"> <div class="dmPopupClose dm-common-icons-close oneIcon" onclick="dmHidePopup(event);"></div> </div>
 	<div class="dmPopupTitle"> <span></span> Share by:</div> 
	<div class="data"></div>
</div><script id="d_track_personalization">
	window?.waitForDeferred?.('dmAjax', () => {
		// Collects client data and updates cookies used by smart sites
		window.expireDays = 365;
		window.visitLength = 30 * 60000;
		$.setCookie("dm_timezone_offset", (new Date()).getTimezoneOffset(), window.expireDays);
			setSmartSiteCookiesInternal("dm_this_page_view","dm_last_page_view","dm_total_visits","dm_last_visit");
	});
</script>
<script type="text/javascript">
    
    Parameters.NavigationAreaParams.MoreButtonText = 'MORE';
    
    Parameters.NavigationAreaParams.LessButtonText = 'LESS';
    Parameters.HomeLinkText = 'Home';
    </script>
<!--  End Script tags -->
<!--  Site Wide Html Markup -->
<!--  Site Wide Html Markup -->
<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8e49bc104f423833',t:'MTczMTk1MTUxMS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script><iframe height="1" width="1" style="position: absolute; top: 0px; left: 0px; border: none; visibility: hidden;"></iframe>

</body></html>