{"id":12,"date":"2026-07-09T16:25:44","date_gmt":"2026-07-09T16:25:44","guid":{"rendered":"https:\/\/borgomortella.cambia-marketing.it\/?page_id=12"},"modified":"2026-09-04T09:37:37","modified_gmt":"2026-09-04T09:37:37","slug":"home","status":"publish","type":"page","link":"https:\/\/masseriaborgomortella.it\/en\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"12\" class=\"elementor elementor-12\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a0a27e8 e-con-full e-flex e-con e-parent\" data-id=\"a0a27e8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8c77657 elementor-widget elementor-widget-heading\" data-id=\"8c77657\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;motion_fx_translateX_effect&quot;:&quot;yes&quot;,&quot;motion_fx_translateX_direction&quot;:&quot;negative&quot;,&quot;motion_fx_translateX_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:80}},&quot;motion_fx_translateX_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:4,&quot;sizes&quot;:[]},&quot;motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;]}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Masseria<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cb15a3f elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"cb15a3f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Borgo<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08140b4 elementor-widget elementor-widget-heading\" data-id=\"08140b4\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;motion_fx_translateX_effect&quot;:&quot;yes&quot;,&quot;motion_fx_translateX_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:80}},&quot;motion_fx_translateX_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:4,&quot;sizes&quot;:[]},&quot;motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;]}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Mortella<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8d07f59 e-con-full e-flex e-con e-parent\" data-id=\"8d07f59\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-eacc15c e-con-full e-flex e-con e-child\" data-id=\"eacc15c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c5e1871 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"c5e1871\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Una masseria del Seicento, a pochi minuti da Lecce<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3197d6d e-con-full e-flex e-con e-child\" data-id=\"3197d6d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-05e374c elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"05e374c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Qui la campagna salentina entra in ogni momento del soggiorno: nelle corti, nella luce sulla pietra, negli spazi recuperati della Masseria e nel ritmo lento delle giornate all\u2019aperto.\n<\/h2>\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-b90513f e-con-full e-flex e-con e-parent\" data-id=\"b90513f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-5f08c33 e-con-full e-flex e-con e-child\" data-id=\"5f08c33\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-17a90bc elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"17a90bc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Tra ulivi, pietra leccese e quiete mediterranea, Borgo Mortella unisce il carattere di una dimora storica al comfort di un\u2019ospitalit\u00e0 essenziale e contemporanea.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c453166 elementor-align-right bottone-sylver2 elementor-widget elementor-widget-button\" data-id=\"c453166\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"\/masseria\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Scopri borgo mortella<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b8acc68 e-con-full e-flex e-con e-parent\" data-id=\"b8acc68\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-f10ba90 e-con-full e-flex e-con e-child\" data-id=\"f10ba90\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;motion_fx_translateY_effect&quot;:&quot;yes&quot;,&quot;motion_fx_translateY_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]},&quot;motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;tablet&quot;],&quot;motion_fx_translateY_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}}}\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-92d8e6a e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-parent\" data-id=\"92d8e6a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-f32ea45 e-con-full e-flex e-con e-child\" data-id=\"f32ea45\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-f0d9656 e-con-full e-flex e-con e-child\" data-id=\"f0d9656\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;motion_fx_translateY_effect&quot;:&quot;yes&quot;,&quot;motion_fx_translateY_direction&quot;:&quot;negative&quot;,&quot;motion_fx_translateY_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]},&quot;motion_fx_translateY_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;]}\">\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-71bee9f e-con-full e-flex e-con e-parent\" data-id=\"71bee9f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2384b62 carosello-camere-cursor elementor-arrows-position-inside elementor-widget elementor-widget-n-carousel\" data-id=\"2384b62\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;carousel_items&quot;:[{&quot;slide_title&quot;:&quot;Slide #1&quot;,&quot;_id&quot;:&quot;47d9a63&quot;},{&quot;slide_title&quot;:&quot;Slide #1&quot;,&quot;_id&quot;:&quot;5ce9458&quot;},{&quot;slide_title&quot;:&quot;Slide #1&quot;,&quot;_id&quot;:&quot;7776f46&quot;}],&quot;slides_to_show&quot;:&quot;1&quot;,&quot;autoplay_speed&quot;:3003,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;slides_to_show_tablet&quot;:&quot;2&quot;,&quot;slides_to_show_mobile&quot;:&quot;1&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;infinite&quot;:&quot;yes&quot;,&quot;speed&quot;:500,&quot;offset_sides&quot;:&quot;none&quot;,&quot;arrows&quot;:&quot;yes&quot;,&quot;image_spacing_custom_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"nested-carousel.default\">\n\t\t\t\t\t\t\t<div class=\"e-n-carousel swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Carosello\" dir=\"ltr\">\n\t\t\t<div class=\"swiper-wrapper\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" data-slide=\"1\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 of 3\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ab85ae0 e-con-full e-flex e-con e-child\" data-id=\"ab85ae0\" data-element_type=\"container\" data-e-type=\"container\" data-camera-url=\"\/suite\/#massaro\">\n\t\t<div class=\"elementor-element elementor-element-80d3c4e e-con-full e-flex e-con e-child\" data-id=\"80d3c4e\" 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-3b206a6 e-con-full e-flex e-con e-child\" data-id=\"3b206a6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f81d1c2 elementor-widget elementor-widget-heading\" data-id=\"f81d1c2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Master Suite<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-565870b elementor-widget elementor-widget-heading\" data-id=\"565870b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">72 MQ - 2 PERSONE<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0fe5145 e-con-full e-flex e-con e-child\" data-id=\"0fe5145\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3511557 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"3511557\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">La pi\u00f9 ampia di Borgo Mortella, negli antichi alloggi dei custodi: living, camino, seconda zona giorno e camera su soppalco.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" data-slide=\"2\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 of 3\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d737e9d e-con-full e-flex e-con e-child\" data-id=\"d737e9d\" data-element_type=\"container\" data-e-type=\"container\" data-camera-url=\"\/suite\/#ovili\">\n\t\t<div class=\"elementor-element elementor-element-36532b8 e-con-full e-flex e-con e-child\" data-id=\"36532b8\" 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-70855be e-con-full e-flex e-con e-child\" data-id=\"70855be\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fc72c1 elementor-widget elementor-widget-heading\" data-id=\"2fc72c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Suite<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bf3895f elementor-widget elementor-widget-heading\" data-id=\"bf3895f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">55 MQ - 2 PERSONE<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6127116 e-con-full e-flex e-con e-child\" data-id=\"6127116\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-52884da elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"52884da\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Spazi luminosi affacciati sulla corte e sul verde, con living, camera e un patio riservato da vivere all\u2019aperto.\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" data-slide=\"3\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"3 of 3\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0df5641 e-con-full e-flex e-con e-child\" data-id=\"0df5641\" data-element_type=\"container\" data-e-type=\"container\" data-camera-url=\"\/suite\/#stalla\">\n\t\t<div class=\"elementor-element elementor-element-2c2ea19 e-con-full e-flex e-con e-child\" data-id=\"2c2ea19\" 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-0045f23 e-con-full e-flex e-con e-child\" data-id=\"0045f23\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ab61b45 elementor-widget elementor-widget-heading\" data-id=\"ab61b45\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Junior Suite<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ca68b83 elementor-widget elementor-widget-heading\" data-id=\"ca68b83\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">30 MQ - 2 PERSONE<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d5cb239 e-con-full e-flex e-con e-child\" data-id=\"d5cb239\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-94e3c6e elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"94e3c6e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Ricavate dagli antichi ambienti della stalla, si sviluppano su due livelli, con living al piano terra e zona notte sul soppalco.\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\" aria-label=\"Previous\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-eicon-chevron-left\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M646 125C629 125 613 133 604 142L308 442C296 454 292 471 292 487 292 504 296 521 308 533L604 854C617 867 629 875 646 875 663 875 679 871 692 858 704 846 713 829 713 812 713 796 708 779 692 767L438 487 692 225C700 217 708 204 708 187 708 171 704 154 692 142 675 129 663 125 646 125Z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\" aria-label=\"Next\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-eicon-chevron-right\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M696 533C708 521 713 504 713 487 713 471 708 454 696 446L400 146C388 133 375 125 354 125 338 125 325 129 313 142 300 154 292 171 292 187 292 204 296 221 308 233L563 492 304 771C292 783 288 800 288 817 288 833 296 850 308 863 321 871 338 875 354 875 371 875 388 867 400 854L696 533Z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b07c403 elementor-widget elementor-widget-html\" data-id=\"b07c403\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* Nasconde il cursore normale solo nel carosello *\/\n@media (hover: hover) and (pointer: fine) {\n    .carosello-camere-cursor,\n    .carosello-camere-cursor * {\n        cursor: none !important;\n    }\n}\n\n\n\/* Cursore circolare *\/\n#cursor-carosello-camere {\n    position: fixed;\n    top: 0;\n    left: 0;\n    z-index: 999999;\n\n    width: 110px;\n    height: 110px;\n    border-radius: 50%;\n\n    background: rgba(225, 221, 211, 0.18);\n\n    -webkit-backdrop-filter: blur(12px);\n    backdrop-filter: blur(12px);\n\n    border: 1px solid rgba(255, 255, 255, 0.22);\n    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    pointer-events: none;\n\n    opacity: 0;\n    visibility: hidden;\n\n    transform: translate(-50%, -50%) scale(0.75);\n\n    transition:\n        opacity 0.2s ease,\n        visibility 0.2s ease,\n        transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n\n\/* Cursore visibile *\/\n#cursor-carosello-camere.is-visible {\n    opacity: 1;\n    visibility: visible;\n\n    transform: translate(-50%, -50%) scale(1);\n}\n\n\n\/* Effetto click *\/\n#cursor-carosello-camere.is-clicking {\n    transform: translate(-50%, -50%) scale(0.88);\n}\n\n\n\/* Freccia *\/\n#cursor-carosello-camere .cursor-camera-arrow {\n    display: block;\n\n    width: 30px;\n    height: 30px;\n\n    object-fit: contain;\n    pointer-events: none;\n\n    opacity: 1;\n    transform: scale(1);\n\n    transition:\n        opacity 0.18s ease,\n        transform 0.25s ease;\n}\n\n\n\/* Nasconde la freccia nella zona centrale *\/\n#cursor-carosello-camere.is-discover .cursor-camera-arrow {\n    opacity: 0;\n    transform: scale(0.6);\n}\n\n\n\/* Scritta Scopri *\/\n#cursor-carosello-camere .cursor-camera-discover {\n    position: absolute;\n\n    left: 50%;\n    top: 50%;\n\n    margin: 0;\n\n    color: #ffffff;\n\n    font-family: \"area-normal-light\", sans-serif;\n    font-size: 13px;\n    font-weight: 400;\n    line-height: 1;\n\n    letter-spacing: 0.06em;\n    text-transform: uppercase;\n    white-space: nowrap;\n\n    opacity: 0;\n\n    transform: translate(-50%, -50%) scale(0.7);\n\n    transition:\n        opacity 0.18s ease,\n        transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);\n}\n\n\n\/* Mostra \"Scopri\" al centro *\/\n#cursor-carosello-camere.is-discover .cursor-camera-discover {\n    opacity: 1;\n\n    transform: translate(-50%, -50%) scale(1);\n}\n\n\n\/* Mobile e tablet *\/\n@media (hover: none), (pointer: coarse), (max-width: 1024px) {\n\n    #cursor-carosello-camere {\n        display: none !important;\n    }\n\n    .carosello-camere-cursor,\n    .carosello-camere-cursor * {\n        cursor: auto !important;\n    }\n}\n<\/style>\n\n\n<script>\n(function () {\n    'use strict';\n\n\n    \/* =========================================================\n       FRECCE\n    ========================================================= *\/\n\n    const frecciaIndietro =\n        '\/wp-content\/uploads\/2026\/07\/freccia-a-sinistras.svg';\n\n    const frecciaAvanti =\n        '\/wp-content\/uploads\/2026\/07\/freccia-a-destras.svg';\n\n\n    \/* =========================================================\n       ZONE DEL CAROSELLO\n       \n       0%\u201335%  = slide precedente\n       35%\u201365% = scopri\n       65%\u2013100% = slide successiva\n    ========================================================= *\/\n\n    const limiteSinistro = 0.35;\n    const limiteDestro = 0.65;\n\n\n    \/* =========================================================\n       VARIABILI\n    ========================================================= *\/\n\n    let cursor = null;\n    let cursorImg = null;\n\n    let mouseX = 0;\n    let mouseY = 0;\n\n    let cursorX = 0;\n    let cursorY = 0;\n\n    let animazioneAvviata = false;\n\n\n    \/* =========================================================\n       CREA CURSORE\n    ========================================================= *\/\n\n    function creaCursor() {\n\n        cursor = document.getElementById(\n            'cursor-carosello-camere'\n        );\n\n\n        if (!cursor) {\n\n            cursor = document.createElement('div');\n\n            cursor.id = 'cursor-carosello-camere';\n\n\n            cursor.innerHTML = `\n                <img decoding=\"async\"\n                    class=\"cursor-camera-arrow\"\n                    src=\"${frecciaAvanti}\"\n                    alt=\"\"\n                    aria-hidden=\"true\"\n                >\n\n                <span\n                    class=\"cursor-camera-discover\"\n                    aria-hidden=\"true\"\n                >\n                    Scopri\n                <\/span>\n            `;\n\n\n            document.body.appendChild(cursor);\n        }\n\n\n        cursorImg = cursor.querySelector(\n            '.cursor-camera-arrow'\n        );\n    }\n\n\n    \/* =========================================================\n       ANIMAZIONE CURSORE\n    ========================================================= *\/\n\n    function animaCursor() {\n\n        cursorX += (mouseX - cursorX) * 0.22;\n        cursorY += (mouseY - cursorY) * 0.22;\n\n\n        cursor.style.left = cursorX + 'px';\n        cursor.style.top = cursorY + 'px';\n\n\n        requestAnimationFrame(animaCursor);\n    }\n\n\n    \/* =========================================================\n       TROVA ELEMENTO SWIPER\n    ========================================================= *\/\n\n    function trovaElementoSwiper(carousel) {\n\n        const possibiliElementi = [\n\n            carousel,\n\n            carousel.querySelector('.swiper'),\n\n            carousel.querySelector('.swiper-container'),\n\n            carousel.closest('.swiper'),\n\n            carousel.closest('.swiper-container'),\n\n            carousel.closest('.elementor-widget-loop-carousel'),\n\n            carousel.closest('.elementor-widget-nested-carousel'),\n\n            carousel.closest('.elementor-widget-media-carousel'),\n\n            carousel.closest('.elementor-widget-image-carousel'),\n\n            carousel.closest('.elementor-widget-slides')\n\n        ].filter(Boolean);\n\n\n        for (const elemento of possibiliElementi) {\n\n            if (elemento.swiper) {\n                return elemento;\n            }\n\n\n            const swiperInterno =\n                elemento.querySelector?.(\n                    '.swiper, .swiper-container'\n                );\n\n\n            if (\n                swiperInterno &&\n                swiperInterno.swiper\n            ) {\n                return swiperInterno;\n            }\n        }\n\n\n        return null;\n    }\n\n\n    \/* =========================================================\n       TROVA SWIPER\n    ========================================================= *\/\n\n    function trovaSwiper(carousel) {\n\n        const elementoSwiper =\n            trovaElementoSwiper(carousel);\n\n\n        return elementoSwiper?.swiper || null;\n    }\n\n\n    \/* =========================================================\n       TROVA WRAPPER ELEMENTOR\n    ========================================================= *\/\n\n    function trovaWrapperWidget(carousel) {\n\n        return (\n\n            carousel.closest(\n                '.elementor-widget-loop-carousel, ' +\n                '.elementor-widget-nested-carousel, ' +\n                '.elementor-widget-media-carousel, ' +\n                '.elementor-widget-image-carousel, ' +\n                '.elementor-widget-slides'\n            )\n\n            ||\n\n            carousel.parentElement\n\n            ||\n\n            carousel\n        );\n    }\n\n\n    \/* =========================================================\n       TROVA FRECCIA NATIVA\n    ========================================================= *\/\n\n    function trovaPulsanteNativo(\n        carousel,\n        direzione\n    ) {\n\n        const wrapper =\n            trovaWrapperWidget(carousel);\n\n\n        const selettori =\n            direzione === 'next'\n\n                ? [\n\n                    '.elementor-swiper-button-next',\n\n                    '.swiper-button-next',\n\n                    '[aria-label*=\"Next\"]',\n\n                    '[aria-label*=\"Successiva\"]',\n\n                    '[class*=\"button-next\"]'\n\n                ]\n\n                : [\n\n                    '.elementor-swiper-button-prev',\n\n                    '.swiper-button-prev',\n\n                    '[aria-label*=\"Previous\"]',\n\n                    '[aria-label*=\"Precedente\"]',\n\n                    '[class*=\"button-prev\"]'\n\n                ];\n\n\n        for (const selettore of selettori) {\n\n            const pulsante =\n                wrapper.querySelector(selettore)\n\n                ||\n\n                carousel.querySelector(selettore);\n\n\n            if (pulsante) {\n                return pulsante;\n            }\n        }\n\n\n        return null;\n    }\n\n\n    \/* =========================================================\n       CAMBIA SLIDE\n    ========================================================= *\/\n\n    function cambiaSlide(\n        carousel,\n        direzione\n    ) {\n\n        const swiper =\n            trovaSwiper(carousel);\n\n\n        if (swiper) {\n\n            \/*\n             * Riabilita lo scorrimento\n             *\/\n            swiper.allowSlideNext = true;\n            swiper.allowSlidePrev = true;\n\n\n            if (\n                direzione === 'next' &&\n                typeof swiper.slideNext === 'function'\n            ) {\n\n                swiper.slideNext();\n\n            }\n\n\n            else if (\n                direzione === 'prev' &&\n                typeof swiper.slidePrev === 'function'\n            ) {\n\n                swiper.slidePrev();\n\n            }\n\n\n            \/*\n             * Aggiorna Swiper\n             *\/\n            if (\n                typeof swiper.update === 'function'\n            ) {\n\n                swiper.update();\n            }\n\n\n            return true;\n        }\n\n\n        \/*\n         * Fallback: frecce native Elementor\n         *\/\n\n        const pulsante =\n            trovaPulsanteNativo(\n                carousel,\n                direzione\n            );\n\n\n        if (pulsante) {\n\n            pulsante.dispatchEvent(\n                new MouseEvent(\n                    'click',\n                    {\n                        bubbles: true,\n                        cancelable: true,\n                        view: window\n                    }\n                )\n            );\n\n\n            return true;\n        }\n\n\n        console.warn(\n            'Non \u00e8 stato possibile trovare lo Swiper o le frecce native del carosello.'\n        );\n\n\n        return false;\n    }\n\n\n    \/* =========================================================\n       TROVA SLIDE ATTIVA\n    ========================================================= *\/\n\n    function trovaSlideAttiva(carousel) {\n\n        const elementoSwiper =\n            trovaElementoSwiper(carousel);\n\n\n        const areaRicerca =\n            elementoSwiper\n\n            ||\n\n            trovaWrapperWidget(carousel);\n\n\n        const slideAttiva =\n            areaRicerca.querySelector?.(\n                '.swiper-slide-active'\n            );\n\n\n        if (slideAttiva) {\n            return slideAttiva;\n        }\n\n\n        const swiper =\n            trovaSwiper(carousel);\n\n\n        if (\n            swiper &&\n\n            swiper.slides &&\n\n            typeof swiper.activeIndex === 'number'\n        ) {\n\n            return (\n                swiper.slides[\n                    swiper.activeIndex\n                ]\n\n                ||\n\n                null\n            );\n        }\n\n\n        return null;\n    }\n\n\n    \/* =========================================================\n       RECUPERA URL CAMERA\n    ========================================================= *\/\n\n    function recuperaUrlCamera(carousel) {\n\n        const slideAttiva =\n            trovaSlideAttiva(carousel);\n\n\n        if (!slideAttiva) {\n            return null;\n        }\n\n\n        \/*\n         * Prima cerca data-camera-url\n         *\/\n\n        const urlSlide =\n            slideAttiva.getAttribute(\n                'data-camera-url'\n            );\n\n\n        if (urlSlide) {\n            return urlSlide;\n        }\n\n\n        \/*\n         * Cerca data-camera-url\n         * all'interno della slide\n         *\/\n\n        const elementoConUrl =\n            slideAttiva.querySelector(\n                '[data-camera-url]'\n            );\n\n\n        if (elementoConUrl) {\n\n            return elementoConUrl.getAttribute(\n                'data-camera-url'\n            );\n        }\n\n\n        \/*\n         * Fallback: cerca un link\n         *\/\n\n        const linkInterno =\n            slideAttiva.querySelector(\n                'a[href]'\n            );\n\n\n        if (linkInterno) {\n\n            return linkInterno.getAttribute(\n                'href'\n            );\n        }\n\n\n        return null;\n    }\n\n\n    \/* =========================================================\n       APRI CAMERA ATTIVA\n    ========================================================= *\/\n\n    function apriCameraAttiva(carousel) {\n\n        const urlCamera =\n            recuperaUrlCamera(carousel);\n\n\n        if (!urlCamera) {\n\n            console.warn(\n                'Inserisci data-camera-url nella slide attiva.'\n            );\n\n\n            return;\n        }\n\n\n        window.location.href =\n            urlCamera;\n    }\n\n\n    \/* =========================================================\n       STATO CURSORE\n    ========================================================= *\/\n\n    function impostaStatoCursor(stato) {\n\n        cursor.classList.remove(\n            'is-prev',\n            'is-next',\n            'is-discover'\n        );\n\n\n        \/*\n         * PRECEDENTE\n         *\/\n\n        if (stato === 'prev') {\n\n            cursor.classList.add(\n                'is-prev'\n            );\n\n\n            if (\n                cursorImg.getAttribute('src') !==\n                frecciaIndietro\n            ) {\n\n                cursorImg.src =\n                    frecciaIndietro;\n            }\n\n\n            return;\n        }\n\n\n        \/*\n         * SUCCESSIVA\n         *\/\n\n        if (stato === 'next') {\n\n            cursor.classList.add(\n                'is-next'\n            );\n\n\n            if (\n                cursorImg.getAttribute('src') !==\n                frecciaAvanti\n            ) {\n\n                cursorImg.src =\n                    frecciaAvanti;\n            }\n\n\n            return;\n        }\n\n\n        \/*\n         * CENTRO\n         *\/\n\n        cursor.classList.add(\n            'is-discover'\n        );\n    }\n\n\n    \/* =========================================================\n       INIZIALIZZA CAROSELLO\n    ========================================================= *\/\n\n    function inizializzaCarosello(carousel) {\n\n        if (\n            carousel.dataset.cursorCaroselloAttivo ===\n            'true'\n        ) {\n\n            return;\n        }\n\n\n        carousel.dataset.cursorCaroselloAttivo =\n            'true';\n\n\n        let azioneCorrente =\n            'discover';\n\n\n        \/* =====================================================\n           MOUSE ENTER\n        ===================================================== *\/\n\n        carousel.addEventListener(\n            'mouseenter',\n            function (event) {\n\n                mouseX =\n                    event.clientX;\n\n                mouseY =\n                    event.clientY;\n\n\n                cursorX =\n                    event.clientX;\n\n                cursorY =\n                    event.clientY;\n\n\n                cursor.classList.add(\n                    'is-visible'\n                );\n\n\n                impostaStatoCursor(\n                    'discover'\n                );\n            }\n        );\n\n\n        \/* =====================================================\n           MOUSE MOVE\n        ===================================================== *\/\n\n        carousel.addEventListener(\n            'mousemove',\n            function (event) {\n\n                mouseX =\n                    event.clientX;\n\n                mouseY =\n                    event.clientY;\n\n\n                const rect =\n                    carousel.getBoundingClientRect();\n\n\n                if (!rect.width) {\n                    return;\n                }\n\n\n                const posizioneX =\n                    event.clientX -\n                    rect.left;\n\n\n                const percentualeX =\n                    posizioneX \/\n                    rect.width;\n\n\n                \/*\n                 * ZONA SINISTRA\n                 *\/\n\n                if (\n                    percentualeX <\n                    limiteSinistro\n                ) {\n\n                    azioneCorrente =\n                        'prev';\n\n\n                    impostaStatoCursor(\n                        'prev'\n                    );\n                }\n\n\n                \/*\n                 * ZONA DESTRA\n                 *\/\n\n                else if (\n                    percentualeX >\n                    limiteDestro\n                ) {\n\n                    azioneCorrente =\n                        'next';\n\n\n                    impostaStatoCursor(\n                        'next'\n                    );\n                }\n\n\n                \/*\n                 * ZONA CENTRALE\n                 *\/\n\n                else {\n\n                    azioneCorrente =\n                        'discover';\n\n\n                    impostaStatoCursor(\n                        'discover'\n                    );\n                }\n            }\n        );\n\n\n        \/* =====================================================\n           MOUSE LEAVE\n        ===================================================== *\/\n\n        carousel.addEventListener(\n            'mouseleave',\n            function () {\n\n                cursor.classList.remove(\n                    'is-visible',\n                    'is-clicking',\n                    'is-prev',\n                    'is-next',\n                    'is-discover'\n                );\n            }\n        );\n\n\n        \/* =====================================================\n           MOUSE DOWN\n        ===================================================== *\/\n\n        carousel.addEventListener(\n            'mousedown',\n            function () {\n\n                cursor.classList.add(\n                    'is-clicking'\n                );\n            }\n        );\n\n\n        \/* =====================================================\n           MOUSE UP\n        ===================================================== *\/\n\n        carousel.addEventListener(\n            'mouseup',\n            function () {\n\n                cursor.classList.remove(\n                    'is-clicking'\n                );\n            }\n        );\n\n\n        \/* =====================================================\n           CLICK\n           \n           IMPORTANTE:\n           La posizione del CLICK viene calcolata direttamente.\n           Quindi tutta la colonna funziona come area cliccabile.\n        ===================================================== *\/\n\n        carousel.addEventListener(\n            'click',\n            function (event) {\n\n                \/*\n                 * Ignora le frecce native Elementor\n                 *\/\n\n                const controlloNativo =\n                    event.target.closest(\n                        '.swiper-button-next, ' +\n                        '.swiper-button-prev, ' +\n                        '.elementor-swiper-button-next, ' +\n                        '.elementor-swiper-button-prev'\n                    );\n\n\n                if (controlloNativo) {\n                    return;\n                }\n\n\n                \/*\n                 * Blocca il comportamento\n                 * standard del carosello\/link\n                 *\/\n\n                event.preventDefault();\n\n                event.stopPropagation();\n\n                event.stopImmediatePropagation();\n\n\n                \/*\n                 * Recupera dimensioni\n                 * del carosello\n                 *\/\n\n                const rect =\n                    carousel.getBoundingClientRect();\n\n\n                if (!rect.width) {\n                    return;\n                }\n\n\n                \/*\n                 * Posizione orizzontale\n                 * del click\n                 *\/\n\n                const posizioneX =\n                    event.clientX -\n                    rect.left;\n\n\n                \/*\n                 * Percentuale del click\n                 * rispetto alla larghezza\n                 *\/\n\n                const percentualeX =\n                    posizioneX \/\n                    rect.width;\n\n\n                \/* =============================================\n                   COLONNA SINISTRA\n                   ============================================= *\/\n\n                if (\n                    percentualeX <\n                    limiteSinistro\n                ) {\n\n                    cambiaSlide(\n                        carousel,\n                        'prev'\n                    );\n\n\n                    return;\n                }\n\n\n                \/* =============================================\n                   COLONNA DESTRA\n                   ============================================= *\/\n\n                if (\n                    percentualeX >\n                    limiteDestro\n                ) {\n\n                    cambiaSlide(\n                        carousel,\n                        'next'\n                    );\n\n\n                    return;\n                }\n\n\n                \/* =============================================\n                   ZONA CENTRALE\n                   ============================================= *\/\n\n                apriCameraAttiva(\n                    carousel\n                );\n            },\n\n            true\n        );\n    }\n\n\n    \/* =========================================================\n       INIZIALIZZA TUTTI I CAROSELLI\n    ========================================================= *\/\n\n    function inizializzaCaroselli() {\n\n        document\n            .querySelectorAll(\n                '.carosello-camere-cursor'\n            )\n            .forEach(\n                inizializzaCarosello\n            );\n\n\n        if (!animazioneAvviata) {\n\n            animazioneAvviata =\n                true;\n\n            animaCursor();\n        }\n    }\n\n\n    \/* =========================================================\n       AVVIO\n    ========================================================= *\/\n\n    function avvia() {\n\n        creaCursor();\n\n\n        inizializzaCaroselli();\n\n\n        \/*\n         * Elementor inizializza Swiper\n         * con un piccolo ritardo.\n         *\/\n\n        setTimeout(\n            inizializzaCaroselli,\n            500\n        );\n\n\n        setTimeout(\n            inizializzaCaroselli,\n            1500\n        );\n\n\n        \/*\n         * Controlla eventuali\n         * modifiche dinamiche Elementor\n         *\/\n\n        const observer =\n            new MutationObserver(\n                function () {\n\n                    inizializzaCaroselli();\n                }\n            );\n\n\n        observer.observe(\n            document.body,\n            {\n                childList: true,\n                subtree: true\n            }\n        );\n    }\n\n\n    \/* =========================================================\n       DOM READY\n    ========================================================= *\/\n\n    if (\n        document.readyState ===\n        'loading'\n    ) {\n\n        document.addEventListener(\n            'DOMContentLoaded',\n            avvia\n        );\n\n    }\n\n    else {\n\n        avvia();\n    }\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6efbf7e e-con-full e-flex e-con e-parent\" data-id=\"6efbf7e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-0a466bb e-con-full e-flex e-con e-child\" data-id=\"0a466bb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;motion_fx_translateY_effect&quot;:&quot;yes&quot;,&quot;motion_fx_translateY_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:2,&quot;sizes&quot;:[]},&quot;motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;tablet&quot;],&quot;motion_fx_translateY_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}}}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a2ac767 e-con-full e-flex e-con e-child\" data-id=\"a2ac767\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-56b0632 e-con-full e-flex e-con e-child\" data-id=\"56b0632\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-35b811f e-con-full e-flex e-con e-child\" data-id=\"35b811f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-391e240 e-con-full e-flex e-con e-child\" data-id=\"391e240\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-08851b3 e-con-full e-flex e-con e-child\" data-id=\"08851b3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b40b35e elementor-widget elementor-widget-heading\" data-id=\"b40b35e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">La Piscina<\/h2>\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-027847d e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-child\" data-id=\"027847d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;motion_fx_translateY_effect&quot;:&quot;yes&quot;,&quot;motion_fx_translateY_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:2,&quot;sizes&quot;:[]},&quot;motion_fx_translateY_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;]}\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-75bae43 e-con-full e-flex e-con e-parent\" data-id=\"75bae43\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-e9bc9a5 e-con-full e-flex e-con e-child\" data-id=\"e9bc9a5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-99d7695 e-con-full e-flex e-con e-child\" data-id=\"99d7695\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-003832a e-con-full e-flex e-con e-child\" data-id=\"003832a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9c7b4fa elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"9c7b4fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Affacciata sulla campagna, la piscina \u00e8 il cuore delle giornate a Borgo Mortella: il sole del Salento, il silenzio del verde e la libert\u00e0 di fermarsi senza fretta.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7f89ce9 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"7f89ce9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Intorno, ogni momento trova il proprio ritmo: una pausa all\u2019ombra, un momento di ristoro a bordo piscina, il piacere semplice di un tuffo.\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e465630 elementor-align-left bottone-sylver1 elementor-widget elementor-widget-button\" data-id=\"e465630\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"\/masseria#servizi\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Scopri i Servizi<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7a87444 e-con-full e-flex e-con e-parent\" data-id=\"7a87444\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a43702d elementor-widget elementor-widget-html\" data-id=\"a43702d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- 1. LENO SMOOTH SCROLL SCRIPTS & CSS -->\n<style>\nhtml.castor-lenis-active {\n  scroll-behavior: auto !important;\n}\nhtml.castor-lenis-active.lenis,\nhtml.castor-lenis-active.lenis body {\n  height: auto;\n}\nhtml.castor-lenis-active .lenis.lenis-smooth,\nhtml.castor-lenis-active.lenis.lenis-smooth {\n  scroll-behavior: auto !important;\n}\nhtml.castor-lenis-active.lenis.lenis-smooth [data-lenis-prevent] {\n  overscroll-behavior: contain;\n}\nhtml.castor-lenis-active.lenis.lenis-stopped {\n  overflow: hidden;\n}\n<\/style>\n\n<script src=\"https:\/\/unpkg.com\/lenis@1.1.20\/dist\/lenis.min.js\"><\/script>\n\n<script>\n(function () {\n  if (window.castorLenisStarted) return;\n\n  function isElementorBuilder() {\n    try {\n      if (window.self !== window.top) return true;\n    } catch (e) {\n      return true;\n    }\n    const href = window.location.href;\n    if (\n      href.indexOf(\"elementor-preview\") !== -1 ||\n      href.indexOf(\"action=elementor\") !== -1 ||\n      href.indexOf(\"elementor_library\") !== -1 ||\n      href.indexOf(\"wp-admin\") !== -1 ||\n      href.indexOf(\"customize.php\") !== -1\n    ) {\n      return true;\n    }\n    if (\n      document.body &&\n      (\n        document.body.classList.contains(\"elementor-editor-active\") ||\n        document.body.classList.contains(\"elementor-editor-preview\") ||\n        document.body.classList.contains(\"elementor-editor-wp-page\")\n      )\n    ) {\n      return true;\n    }\n    return false;\n  }\n\n  if (isElementorBuilder()) return;\n\n  window.castorLenisStarted = true;\n  document.documentElement.classList.add(\"castor-lenis-active\");\n\n  const lenis = new Lenis({\n    duration: 1.05,\n    easing: function (t) {\n      return Math.min(1, 1.001 - Math.pow(2, -10 * t));\n    },\n    smoothWheel: true,\n    wheelMultiplier: 0.85,\n    touchMultiplier: 1.15,\n    normalizeWheel: true\n  });\n\n  function raf(time) {\n    lenis.raf(time);\n    requestAnimationFrame(raf);\n  }\n\n  requestAnimationFrame(raf);\n\n  lenis.on(\"scroll\", function () {\n    window.dispatchEvent(new Event(\"scroll\"));\n  });\n\n  window.addEventListener(\"load\", function () {\n    setTimeout(function () {\n      lenis.resize();\n    }, 300);\n  });\n\n  window.addEventListener(\"resize\", function () {\n    lenis.resize();\n  });\n})();\n<\/script>\n\n\n<!-- 2. STRUTTURA HTML -->\n<div class=\"sezione-zoom-scroll\">\n    <div class=\"zoom-scroll-sticky-auto\">\n        <div class=\"immagine-zoom-scroll\">\n            <div class=\"zoom-scroll-content\">\n                <p class=\"zoom-scroll-kicker\">\n                    Events &amp; Weddings\n                <\/p>\n\n                <h2 class=\"zoom-scroll-title\">\nUna cornice autentica dove celebrare il vostro giorno pi\u00f9 bello, tra la natura del Salento e l'eleganza della Masseria.\n                <\/h2>\n\n                <a class=\"zoom-scroll-bottom\" href=\"https:\/\/wedding.masseriaborgomortella.it\" target=\"_blank\" aria-label=\"Scopri la sezione Wedding\">\n                    Immagina il tuo giorno\n                <\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n<!-- 3. STILI CSS PER LO ZOOM E FOTO DI SFONDO -->\n<style>\nhtml,\nbody {\n    overflow-x: clip !important;\n}\n\n.sezione-zoom-scroll {\n    position: relative !important;\n    width: 100% !important;\n    height: 400vh !important;\n    min-height: 400vh !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    overflow: visible !important;\n    transform: none !important;\n    --zoom-progress: 0;\n    --zoom-text-progress: 0;\n}\n\n.sezione-zoom-scroll > * {\n    overflow: visible !important;\n}\n\n.sezione-zoom-scroll .zoom-scroll-sticky-auto {\n    position: sticky !important;\n    position: -webkit-sticky !important;\n    top: 0 !important;\n    width: 100% !important;\n    max-width: none !important;\n    height: 100vh !important;\n    min-height: 100vh !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    display: flex !important;\n    align-items: center !important;\n    justify-content: center !important;\n    overflow: hidden !important;\n    transform: none !important;\n    transition: none !important;\n    animation: none !important;\n    z-index: 2;\n}\n\n.sezione-zoom-scroll .zoom-scroll-sticky-auto > .e-con-inner {\n    width: 100% !important;\n    max-width: none !important;\n    height: 100% !important;\n    min-height: 100% !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    display: flex !important;\n    align-items: center !important;\n    justify-content: center !important;\n    overflow: visible !important;\n}\n\n\/* =========================================================\n   CONTENITORE FOTO - IMPOSTA LA FOTO QUI SOTTO\n   ========================================================= *\/\n.sezione-zoom-scroll .immagine-zoom-scroll {\n    position: relative !important;\n    flex: 0 0 auto !important;\n\n    \/* ---> INSERISCI QUI L'URL DELLA TUA FOTO TRA LE VIRGOLETTE <--- *\/\n    background-image: url('\/wp-content\/uploads\/2026\/07\/IMGP6651-1-e1784618100745.jpg') !important;\n\n    width: calc(50vw + (50vw * var(--zoom-progress))) !important;\n    height: calc(50vh + (50vh * var(--zoom-progress))) !important;\n    min-height: 0 !important;\n    max-width: none !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    overflow: hidden !important;\n    background-size: cover !important;\n    background-position: center center !important;\n    background-repeat: no-repeat !important;\n    transform: none !important;\n    transform-origin: center center !important;\n    transition: none !important;\n    animation: none !important;\n    will-change: width, height;\n    isolation: isolate;\n}\n\n.sezione-zoom-scroll .immagine-zoom-scroll > .e-con-inner {\n    position: static !important;\n    width: 100% !important;\n    max-width: none !important;\n    height: 100% !important;\n    min-height: 100% !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n.sezione-zoom-scroll .immagine-zoom-scroll::before {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    z-index: 1;\n    background: linear-gradient(\n        90deg,\n        rgba(0, 0, 0, 0.62) 0%,\n        rgba(0, 0, 0, 0.30) 42%,\n        rgba(0, 0, 0, 0.08) 72%,\n        rgba(0, 0, 0, 0.18) 100%\n    );\n    opacity: calc(0.10 + (0.90 * var(--zoom-text-progress)));\n    pointer-events: none;\n    transition: none !important;\n    animation: none !important;\n}\n\n.zoom-scroll-content {\n    position: absolute;\n    inset: 0;\n    z-index: 3;\n    width: 100%;\n    height: 100%;\n    opacity: var(--zoom-text-progress);\n    pointer-events: none;\n    transition: none !important;\n    animation: none !important;\n    will-change: opacity;\n}\n\n.zoom-scroll-kicker {\n    position: absolute;\n    top: 17%;\n    left: 8%;\n    margin: 0;\n    color: #ffffff;\n    font-family: \"area-normal-light\", sans-serif !important;\n    font-size: 16px;\n    font-weight: 600;\n    font-style: normal;\n    line-height: 1.2;\n    letter-spacing: 0.09em;\n    text-transform: uppercase;\n    transform: translateY(calc(22px * (1 - var(--zoom-text-progress))));\n    transition: none !important;\n}\n\n.zoom-scroll-title {\n    position: absolute;\n    top: 24%;\n    left: 8%;\n    width: 55%;\n    max-width: 700px;\n    margin: 0;\n    color: #ffffff;\n    font-family: \"retros\", serif !important;\n    font-size: 50px;\n    font-weight: 400;\n    font-style: normal;\n    line-height: 1.05;\n    letter-spacing: 0;\n    transform: translateY(calc(32px * (1 - var(--zoom-text-progress))));\n    transition: none !important;\n}\n\n.zoom-scroll-bottom {\n    position: absolute;\n    left: 50%;\n    bottom: 16%;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: auto;\n    max-width: max-content;\n    margin: 0;\n    padding: 0 0 10px;\n    color: #ffffff !important;\n    background: transparent !important;\n    font-family: \"area-normal-light\", sans-serif !important;\n    font-size: 14px;\n    font-weight: 400;\n    font-style: normal;\n    line-height: 1.2;\n    letter-spacing: 0.06em;\n    text-transform: uppercase;\n    white-space: nowrap;\n    text-decoration: none !important;\n    pointer-events: auto;\n    cursor: pointer;\n    transform: translateX(-50%) translateY(calc(20px * (1 - var(--zoom-text-progress))));\n    transition: none !important;\n    z-index: 5;\n}\n\n.zoom-scroll-bottom::after {\n    content: \"\";\n    position: absolute;\n    left: 50%;\n    bottom: 0;\n    width: 34px;\n    height: 1px;\n    background-color: rgba(255, 255, 255, 0.85);\n    transform: translateX(-50%);\n    transition: width 0.45s cubic-bezier(0.25, 1, 0.5, 1);\n}\n\n.zoom-scroll-bottom:hover::after,\n.zoom-scroll-bottom:focus-visible::after {\n    width: 100%;\n}\n\n.zoom-scroll-bottom:hover,\n.zoom-scroll-bottom:focus,\n.zoom-scroll-bottom:visited,\n.zoom-scroll-bottom:active {\n    color: #ffffff !important;\n    text-decoration: none !important;\n}\n\n.zoom-scroll-bottom:focus {\n    outline: none;\n}\n\n.zoom-scroll-bottom:focus-visible {\n    outline: 1px solid rgba(255, 255, 255, 0.65);\n    outline-offset: 7px;\n}\n\n@media (max-width: 767px) {\n    .sezione-zoom-scroll {\n        height: 320svh !important;\n        min-height: 320svh !important;\n    }\n\n    .sezione-zoom-scroll .zoom-scroll-sticky-auto {\n        height: 100svh !important;\n        min-height: 100svh !important;\n    }\n\n    .sezione-zoom-scroll .immagine-zoom-scroll {\n        width: calc(84vw + (16vw * var(--zoom-progress))) !important;\n        height: calc(56svh + (44svh * var(--zoom-progress))) !important;\n    }\n\n    .zoom-scroll-kicker {\n        top: 15%;\n        left: 7%;\n        font-size: 14px;\n        letter-spacing: 0.08em;\n    }\n\n    .zoom-scroll-title {\n        top: 22%;\n        left: 7%;\n        width: 86%;\n        max-width: none;\n        font-size: 38px;\n        line-height: 1.06;\n    }\n\n    .zoom-scroll-bottom {\n        bottom: 11%;\n        font-size: 14px;\n        letter-spacing: 0.05em;\n        padding-bottom: 9px;\n    }\n\n    .zoom-scroll-bottom::after {\n        width: 28px;\n    }\n}\n<\/style>\n\n\n<!-- 4. JAVASCRIPT GESTIONE EFFETTI SCROLL -->\n<script>\n(function () {\n    'use strict';\n\n    const SECTION_SELECTOR = '.sezione-zoom-scroll';\n    const IMAGE_SELECTOR = '.immagine-zoom-scroll';\n    const STICKY_CLASS = 'zoom-scroll-sticky-auto';\n\n    let sezioni = [];\n    let frameRichiesto = false;\n\n    function limita(valore, minimo, massimo) {\n        return Math.min(Math.max(valore, minimo), massimo);\n    }\n\n    function trovaContenitoreSticky(sezione, immagine) {\n        let elemento = immagine.parentElement;\n        let candidato = immagine.parentElement;\n\n        while (\n            elemento &&\n            elemento !== sezione &&\n            elemento.parentElement !== sezione\n        ) {\n            candidato = elemento;\n            elemento = elemento.parentElement;\n        }\n\n        if (elemento && elemento !== sezione) {\n            candidato = elemento;\n        }\n\n        return candidato;\n    }\n\n    function preparaSezione(sezione) {\n        const immagine = sezione.querySelector(IMAGE_SELECTOR);\n        if (!immagine) return null;\n\n        const contenitoreSticky = trovaContenitoreSticky(sezione, immagine);\n        if (!contenitoreSticky) return null;\n\n        contenitoreSticky.classList.add(STICKY_CLASS);\n\n        let antenato = immagine.parentElement;\n        while (antenato && antenato !== sezione) {\n            if (antenato !== contenitoreSticky) {\n                antenato.style.setProperty('overflow', 'visible', 'important');\n                antenato.style.setProperty('transform', 'none', 'important');\n            }\n            antenato = antenato.parentElement;\n        }\n\n        return {\n            sezione: sezione,\n            immagine: immagine,\n            sticky: contenitoreSticky\n        };\n    }\n\n    function raccogliSezioni() {\n        sezioni = [];\n        document.querySelectorAll(SECTION_SELECTOR).forEach(function (sezione) {\n            const configurazione = preparaSezione(sezione);\n            if (configurazione) {\n                sezioni.push(configurazione);\n            }\n        });\n    }\n\n    function aggiornaEffetto() {\n        const altezzaViewport = window.innerHeight || document.documentElement.clientHeight;\n\n        sezioni.forEach(function (elemento) {\n            const sezione = elemento.sezione;\n            const rect = sezione.getBoundingClientRect();\n\n            const distanzaTotale = Math.max(sezione.offsetHeight - altezzaViewport, 1);\n            const distanzaPercorsa = limita(-rect.top, 0, distanzaTotale);\n            const progressoGenerale = limita(distanzaPercorsa \/ distanzaTotale, 0, 1);\n\n            const fineZoom = 0.72;\n            const progressoZoom = limita(progressoGenerale \/ fineZoom, 0, 1);\n\n            const inizioTesti = 0.68;\n            const fineTesti = 0.86;\n\n            const progressoTesti = limita(\n                (progressoGenerale - inizioTesti) \/ (fineTesti - inizioTesti),\n                0,\n                1\n            );\n\n            sezione.style.setProperty('--zoom-progress', progressoZoom.toFixed(5));\n            sezione.style.setProperty('--zoom-text-progress', progressoTesti.toFixed(5));\n        });\n\n        frameRichiesto = false;\n    }\n\n    function richiediAggiornamento() {\n        if (frameRichiesto) return;\n        frameRichiesto = true;\n        window.requestAnimationFrame(aggiornaEffetto);\n    }\n\n    function inizializza() {\n        raccogliSezioni();\n        aggiornaEffetto();\n\n        window.addEventListener('scroll', richiediAggiornamento, { passive: true });\n        window.addEventListener('resize', function () {\n            raccogliSezioni();\n            richiediAggiornamento();\n        });\n        window.addEventListener('load', function () {\n            raccogliSezioni();\n            richiediAggiornamento();\n        });\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', inizializza);\n    } else {\n        inizializza();\n    }\n\n    const observer = new MutationObserver(function () {\n        raccogliSezioni();\n        richiediAggiornamento();\n    });\n\n    observer.observe(document.body, { childList: true, subtree: true });\n})();\n<\/script>\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>Masseria Borgo Mortella Una masseria del Seicento, a pochi minuti da Lecce Qui la campagna salentina entra in ogni momento del soggiorno: nelle corti, nella luce sulla pietra, negli spazi recuperati della Masseria e nel ritmo lento delle giornate all\u2019aperto. Tra ulivi, pietra leccese e quiete mediterranea, Borgo Mortella unisce il carattere di una dimora [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-12","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/masseriaborgomortella.it\/en\/wp-json\/wp\/v2\/pages\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/masseriaborgomortella.it\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/masseriaborgomortella.it\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/masseriaborgomortella.it\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/masseriaborgomortella.it\/en\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":493,"href":"https:\/\/masseriaborgomortella.it\/en\/wp-json\/wp\/v2\/pages\/12\/revisions"}],"predecessor-version":[{"id":1595,"href":"https:\/\/masseriaborgomortella.it\/en\/wp-json\/wp\/v2\/pages\/12\/revisions\/1595"}],"wp:attachment":[{"href":"https:\/\/masseriaborgomortella.it\/en\/wp-json\/wp\/v2\/media?parent=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}