{"id":5703,"date":"2026-08-12T12:37:40","date_gmt":"2026-08-12T11:37:40","guid":{"rendered":"https:\/\/cozlystay.it\/mappa-delle-strutture\/"},"modified":"2026-08-13T14:28:10","modified_gmt":"2026-08-13T13:28:10","slug":"property-map","status":"publish","type":"page","link":"https:\/\/cozlystay.it\/en\/property-map\/","title":{"rendered":"Property Map"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5703\" class=\"elementor elementor-5703 elementor-5472\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bc4c8f4 e-flex e-con-boxed e-con e-parent\" data-id=\"bc4c8f4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-13bc8e0 e-con-full e-flex e-con e-child\" data-id=\"13bc8e0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f9af3da elementor-widget elementor-widget-heading\" data-id=\"f9af3da\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Property Map<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9c31fd1 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"9c31fd1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Choose the property that best suits your stay from the map.<\/p><p>Between hills, villages and the sea, Cozly Stay apartments, homes, rooms and farm stays offer different ways to experience Tuscany, with care, simplicity and a slower pace.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cb85714 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"cb85714\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"cozly-wrap\">\n  <div id=\"cozly-lista\"><\/div>\n  <div id=\"mappa-cozlystay\"><\/div>\n<\/div>\n\n<link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css\" \/>\n\n<style>\n  #cozly-wrap,\n  #cozly-wrap * {\n    font-family: 'Inter', sans-serif;\n    box-sizing: border-box;\n  }\n\n  \/* ===== Layout: 2-column list + map ===== *\/\n  #cozly-wrap {\n    display: flex;\n    gap: 24px;\n    align-items: stretch;\n  }\n  #cozly-lista {\n    flex: 0 0 35%;\n    max-width: 35%;\n    height: 560px;\n    overflow-y: auto;\n    padding-right: 4px;\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    grid-auto-rows: min-content;\n    gap: 12px;\n    align-content: start;\n  }\n\n  \/* Fade\/blur on list edges: indicates there are more cards above\/below *\/\n  .cozly-lista-fade {\n    grid-column: 1 \/ -1;\n    position: sticky;\n    left: 0;\n    right: 0;\n    height: 28px;\n    z-index: 3;\n    pointer-events: none;\n    opacity: 0;\n    transition: opacity .25s ease;\n    backdrop-filter: blur(4px);\n    -webkit-backdrop-filter: blur(4px);\n  }\n  .cozly-lista-fade.visibile { opacity: 1; }\n  .cozly-lista-fade.top {\n    top: 0;\n    margin-bottom: -28px;\n    background: linear-gradient(to bottom, rgba(250,250,247,.75), rgba(250,250,247,0));\n    mask-image: linear-gradient(to bottom, black, transparent);\n    -webkit-mask-image: linear-gradient(to bottom, black, transparent);\n  }\n  .cozly-lista-fade.bottom {\n    bottom: 0;\n    margin-top: -28px;\n    background: linear-gradient(to top, rgba(250,250,247,.75), rgba(250,250,247,0));\n    mask-image: linear-gradient(to top, black, transparent);\n    -webkit-mask-image: linear-gradient(to top, black, transparent);\n  }\n  #mappa-cozlystay {\n    flex: 0 0 65%;\n    max-width: 65%;\n    height: 560px;\n    border-radius: 14px;\n    overflow: hidden;\n    position: relative;\n    z-index: 0;\n    isolation: isolate;\n    box-shadow: 0 6px 24px rgba(0,0,0,0.08);\n  }\n  #mappa-cozlystay .leaflet-control-attribution {\n    font-size: 10px;\n    background: rgba(255,255,255,.7) !important;\n  }\n\n  \/* Subtle list scrollbar *\/\n  #cozly-lista::-webkit-scrollbar { width: 5px; }\n  #cozly-lista::-webkit-scrollbar-thumb { background: #ddd; border-radius: 20px; }\n\n  \/* ===== Property card in the list: photo above, text below ===== *\/\n  .cozly-card {\n    display: flex;\n    flex-direction: column;\n    padding: 0;\n    border-radius: 14px;\n    background: #fff;\n    cursor: pointer;\n    overflow: hidden;\n    transition: border-color .15s ease, background .15s ease;\n    border: 1px solid #EBE8E1;\n    border-left: 4px solid transparent;\n  }\n  .cozly-card:hover {\n    border-color: #D8D4C9;\n  }\n  .cozly-card.attiva {\n    border-color: #D8D4C9;\n    background: #FAFAF7;\n  }\n  \/* Category colors \u2014 official CozlyStay site palette *\/\n  .cozly-card.seaside    { border-left-color: #60AFBC; }\n  .cozly-card.country    { border-left-color: #A2523D; }\n  .cozly-card.slowliving { border-left-color: #1D5150; }\n\n  .cozly-card .cozly-thumb-wrap {\n    width: 100%;\n    height: 130px;\n    flex-shrink: 0;\n    position: relative;\n    overflow: hidden;\n    background: #EFEDE6;\n  }\n  .cozly-card .cozly-thumb {\n    position: absolute;\n    inset: 0;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    display: block;\n  }\n\n  .cozly-card .cozly-content {\n    flex: 1;\n    min-width: 0;\n    padding: 10px 12px;\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    gap: 5px;\n  }\n  .cozly-card .cozly-info { min-width: 0; }\n  #cozly-wrap .cozly-card .cozly-info .nome {\n    font-family: 'Crimson Pro', serif;\n    font-style: italic;\n    font-weight: 500;\n    font-size: 17px;\n    margin: 0 0 2px;\n    white-space: normal;\n    line-height: 1.2;\n  }\n  .cozly-card .cozly-info .sotto {\n    font-size: 11.5px;\n    color: #888;\n    margin: 0;\n  }\n  .cozly-card .badge-madre {\n    align-self: flex-start;\n    font-size: 10px;\n    font-weight: 600;\n    padding: 2px 7px;\n    border-radius: 6px;\n    background: #F2EFE9;\n    color: #7A7666;\n  }\n\n  \/* List section title *\/\n  .cozly-lista-titolo {\n    font-size: 13px;\n    font-weight: 600;\n    color: #9A9788;\n    margin: 4px 0 10px 4px;\n  }\n\n  \/* ===== Map pins ===== *\/\n  .pin-cozly {\n    width: 42px;\n    height: 52px;\n    position: relative;\n    transition: transform .2s ease;\n  }\n  @media (hover: hover) and (pointer: fine) {\n    .pin-cozly:hover { transform: translateY(-4px); }\n  }\n  .pin-cozly-body {\n    width: 42px;\n    height: 42px;\n    border-radius: 50% 50% 50% 0;\n    transform: rotate(-45deg);\n    position: absolute;\n    top: 0;\n    left: 0;\n    box-shadow: 0 3px 10px rgba(0,0,0,0.22);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    border: 2.5px solid #fff;\n  }\n  .pin-cozly-body svg { transform: rotate(45deg); width: 17px; height: 17px; }\n\n  .pin-cozly.seaside .pin-cozly-body    { background: #60AFBC; }\n  .pin-cozly.country .pin-cozly-body    { background: #A2523D; }\n  .pin-cozly.slowliving .pin-cozly-body { background: #1D5150; }\n\n  \/* White badge on the pin to identify parent properties (multi-unit) *\/\n  .pin-cozly.madre::after {\n    content: '';\n    position: absolute;\n    top: -3px; right: -1px;\n    width: 13px; height: 13px;\n    background: #fff;\n    border-radius: 50%;\n    box-shadow: 0 0 0 2px currentColor, 0 2px 6px rgba(0,0,0,.25);\n  }\n  .pin-cozly.seaside.madre::after    { color: #60AFBC; }\n  .pin-cozly.country.madre::after    { color: #A2523D; }\n  .pin-cozly.slowliving.madre::after { color: #1D5150; }\n\n  .pin-cozly.evidenziato .pin-cozly-body {\n    box-shadow: 0 0 0 5px rgba(0,0,0,.12), 0 4px 14px rgba(0,0,0,0.3);\n  }\n\n  \/* ===== Tooltip ===== *\/\n  .tip-cozly {\n    background: #2A2620 !important;\n    color: #fff;\n    border: none !important;\n    border-radius: 6px;\n    font-size: 12.5px;\n    font-weight: 600;\n    padding: 6px 10px !important;\n    white-space: nowrap;\n    box-shadow: 0 3px 10px rgba(0,0,0,.18);\n  }\n  .tip-cozly::before { border-top-color: #2A2620 !important; }\n\n  \/* ===== Popup ===== *\/\n  .leaflet-popup-content-wrapper {\n    border-radius: 14px;\n    padding: 0;\n    overflow: hidden;\n    box-shadow: 0 8px 28px rgba(0,0,0,.14);\n  }\n  .leaflet-popup-content { margin: 0; width: 260px !important; }\n  .leaflet-popup-tip { box-shadow: 0 4px 10px rgba(0,0,0,.1); }\n  .leaflet-popup-close-button {\n    color: #fff !important;\n    top: 8px !important;\n    right: 8px !important;\n    width: 22px !important;\n    height: 22px !important;\n    line-height: 20px !important;\n    font-size: 16px !important;\n    background: rgba(0,0,0,.38) !important;\n    border-radius: 50% !important;\n    text-align: center;\n  }\n\n  .popup-cozly .popup-photo {\n    height: 140px;\n    background-size: cover;\n    background-position: center;\n    background-color: #EFEDE6;\n    position: relative;\n  }\n  .popup-cozly .badge-tipo {\n    position: absolute;\n    top: 10px; left: 10px;\n    display: inline-block;\n    font-size: 10.5px;\n    font-weight: 600;\n    color: #fff;\n    padding: 3px 9px;\n    border-radius: 6px;\n  }\n  .popup-cozly.seaside .badge-tipo    { background: #4E96A1; }\n  .popup-cozly.country .badge-tipo    { background: #A2523D; }\n  .popup-cozly.slowliving .badge-tipo { background: #1D5150; }\n\n  .popup-cozly .popup-body { padding: 14px 18px 18px; background: #fff; }\n  .popup-cozly h4 { margin: 0 0 3px; font-size: 17px; line-height: 1.25; font-weight: 700; color: #1C1C1C; }\n  .popup-cozly .indirizzo { font-size: 12px; color: #888; margin: 0 0 14px; }\n\n  .popup-cozly .azioni { display: flex; gap: 8px; }\n  .popup-cozly .btn-prenota,\n  .popup-cozly .btn-maps {\n    flex: 1; text-align: center; padding: 10px 10px; border-radius: 8px;\n    font-size: 12.5px; font-weight: 700; text-decoration: none; display: inline-block;\n    transition: opacity .2s ease;\n  }\n  .popup-cozly .btn-prenota { color: #fff !important; }\n  .popup-cozly.seaside .btn-prenota    { background: #60AFBC; }\n  .popup-cozly.country .btn-prenota    { background: #A2523D; }\n  .popup-cozly.slowliving .btn-prenota { background: #1D5150; }\n  .popup-cozly .btn-maps { background: #F2EFE9; color: #333 !important; }\n  .popup-cozly .btn-prenota:hover,\n  .popup-cozly .btn-maps:hover { opacity: .85; }\n\n  \/* ===== Tablet \/ Mobile: stacked columns ===== *\/\n  @media (max-width: 900px) {\n    #cozly-wrap { flex-direction: column; gap: 16px; }\n    #cozly-lista {\n      flex: none;\n      max-width: 100%;\n      height: 420px;\n      order: 2;\n    }\n    #mappa-cozlystay {\n      flex: none;\n      width: 100%;\n      max-width: 100%;\n      height: 400px;\n      border-radius: 14px;\n      order: 1;\n    }\n    .tip-cozly {\n      padding: 4px 12px !important;\n      font-size: 13px;\n    }\n\n    \/* More compact horizontal popup: photo on the left, text on the right *\/\n    .leaflet-popup-content { width: 300px !important; }\n    .popup-cozly { display: flex; }\n    .popup-cozly .popup-photo { width: 42%; height: auto; flex-shrink: 0; }\n    .popup-cozly .popup-body { flex: 1; min-width: 0; padding: 12px 14px; }\n    .popup-cozly h4 { font-size: 15px; margin-bottom: 2px; }\n    .popup-cozly .indirizzo { font-size: 11px; margin: 0 0 10px; }\n    .popup-cozly .azioni { flex-direction: column; gap: 6px; }\n    .popup-cozly .btn-prenota,\n    .popup-cozly .btn-maps { padding: 8px 8px; font-size: 12px; }\n  }\n\n  \/* ===== Mobile: the 2-column grid becomes 1 column ===== *\/\n  @media (max-width: 640px) {\n    #cozly-lista { grid-template-columns: 1fr; }\n    #mappa-cozlystay { height: 400px; }\n    #cozly-lista { height: 360px; }\n    .leaflet-popup-content { width: 270px !important; }\n    .popup-cozly .popup-photo { width: 45%; }\n    .popup-cozly .popup-body { padding: 10px 12px; }\n  }\n<\/style>\n\n<script>\n(function () {\n\n  \/\/ OFFICIAL SITE CATEGORIES: seaside (By the Sea) | country (In the Countryside) | slowliving (Slow Living)\n  \/\/ type: \"singola\" (direct unit, Kross link) or \"madre\" (multi-unit parent property, hub page link)\n  \/\/ Coordinates marked \"APPROXIMATE\" are based on the town center, not the exact street address\n  \/\/    (street addresses are missing for the 4 parent properties other than L'Incrociata) \u2014 to be corrected\n  \/\/    as soon as the exact address is available.\n  \/\/ photo: 1 cover image per property, taken from the related page on cozlystay.it\n\n  var punti = [\n\n    \/\/ ===================== BY THE SEA \u2014 Single Units =====================\n    {\n      categoria: \"seaside\", tipo: \"singola\",\n      nome: \"A due passi dal mare\",\n      indirizzo: \"Via della Principessa 52\/A, San Vincenzo (LI)\",\n      lat: 43.0930, lng: 10.5380,\n      foto: \"https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/04\/A-due-passi-dal-mare-struttura-1.avif\",\n      fraseP: \"Space and freedom near the beach\",\n      ospiti: 6, camere: 3, bagni: 2, mq: 100,\n      link: \"https:\/\/cozlystay.kross.travel\/a-due-passi-dal-mare?lang=en\"\n    },\n    {\n      categoria: \"seaside\", tipo: \"singola\",\n      nome: \"Casa Bartoli\",\n      indirizzo: \"Via Etruria 19, San Vincenzo (LI)\",\n      lat: 43.088843, lng: 10.5378476,\n      foto: \"https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/04\/Casa-Bartoli-struttura-1.avif\",\n      fraseP: \"By the sea, surrounded by light and simplicity\",\n      ospiti: 4, camere: 2, bagni: 1, mq: 79,\n      link: \"https:\/\/cozlystay.kross.travel\/casa-bartoli?lang=en\"\n    },\n    {\n      categoria: \"seaside\", tipo: \"singola\",\n      nome: \"Casa Luigina\",\n      indirizzo: \"Via Piave 62, San Vincenzo (LI)\",\n      lat: 43.1015, lng: 10.5365,\n      foto: \"https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/04\/Casa-Luigina-struttura-1.avif\",\n      fraseP: \"Generous spaces and quiet moments steps from the sea\",\n      ospiti: 6, camere: 3, bagni: 2, mq: 150,\n      link: \"https:\/\/cozlystay.kross.travel\/casa-luigina?lang=en\"\n    },\n    {\n      categoria: \"seaside\", tipo: \"singola\",\n      nome: \"Casa Tirreno\",\n      indirizzo: \"Via del Tirreno 8, San Vincenzo (LI)\",\n      lat: 43.0940, lng: 10.5375,\n      foto: \"https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/04\/Casa-Tirreno-struttura-1.avif\",\n      fraseP: \"Space and freedom near the beach\",\n      ospiti: 4, camere: 3, bagni: 2, mq: 67,\n      link: \"https:\/\/cozlystay.kross.travel\/casa-tirreno?lang=en\"\n    },\n\n    \/\/ ===================== IN THE COUNTRYSIDE \u2014 Single Units =====================\n    {\n      categoria: \"country\", tipo: \"singola\",\n      nome: \"Casa nel Bosco\",\n      indirizzo: \"Via di Valcanina 17, Sassetta (LI)\",\n      lat: 43.1290, lng: 10.6280, \/\/ APPROXIMATE \u2014 Sassetta town center, verify street number\n      foto: \"https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/04\/Casa-nel-Bosco-struttura-1.avif\",\n      fraseP: \"An intimate retreat between woodland and valley\",\n      ospiti: 2, camere: 2, bagni: 1, mq: 75,\n      link: \"https:\/\/cozlystay.kross.travel\/casa-nel-bosco-con-spazioso-giardino-recintato?lang=en\"\n    },\n    {\n      categoria: \"country\", tipo: \"singola\",\n      nome: \"Casetta la Rossina\",\n      indirizzo: \"Via di Valcanina 17, Sassetta (LI)\",\n      lat: 43.1295, lng: 10.6285, \/\/ APPROXIMATE \u2014 same address as Casa nel Bosco, verify street number\n      foto: \"https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/08\/01-casetta-la-rossina-esterno-tra-alberi.webp\",\n      fraseP: \"A private oasis surrounded by greenery\",\n      ospiti: 4, camere: 2, bagni: 1, mq: 75,\n      link: \"https:\/\/cozlystay.kross.travel\/casetta-la-rossina?lang=en\"\n    },\n    {\n      categoria: \"country\", tipo: \"singola\",\n      nome: \"Casa Ginepro\",\n      indirizzo: \"Via di Perbono 5, Monteverdi Marittimo (PI)\",\n      lat: 43.1690, lng: 10.7100, \/\/ APPROXIMATE \u2014 Monteverdi Marittimo town center, verify street number\n      foto: \"https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/04\/Casa-Ginepro-struttura-1.avif\",\n      fraseP: \"Views, nature and moments to share\",\n      ospiti: 2, camere: 2, bagni: 1, mq: 149,\n      link: \"https:\/\/cozlystay.kross.travel\/casa-ginepro?lang=en\"\n    },\n    {\n      categoria: \"country\", tipo: \"singola\",\n      nome: \"Villa Liberty\",\n      indirizzo: \"Via San Martino 65, Parrana San Martino (LI)\",\n      lat: 43.5450, lng: 10.4530, \/\/ APPROXIMATE \u2014 Parrana San Martino center, verify street number\n      foto: \"https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/04\/Villa-Liberty-struttura-1.avif\",\n      fraseP: \"Historic elegance between hills and sea\",\n      ospiti: 5, camere: 3, bagni: 4, mq: 253,\n      link: \"https:\/\/cozlystay.kross.travel\/villa-liberty?lang=en\"\n    },\n\n    \/\/ ===================== IN THE COUNTRYSIDE \u2014 Parent Property =====================\n    {\n      categoria: \"country\", tipo: \"madre\",\n      nome: \"L'Incrociata\",\n      indirizzo: \"Via dell'Incrociata, SP Bocca di Valle, Sassetta (LI)\",\n      lat: 43.1450, lng: 10.6150,\n      foto: \"https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/04\/Villa-Incrociata-struttura-1.avif\",\n      fraseP: \"Nature and quiet with sea views\",\n      unitaLabel: \"Farm stay with 7 bedrooms, 4 bathrooms\",\n      link: \"https:\/\/cozlystay.it\/en\/property\/lincrociata\/\"\n    },\n\n    \/\/ ===================== SLOW LIVING \u2014 Parent Properties =====================\n    \/\/ Street addresses confirmed, but lat\/lng coordinates are still APPROXIMATE (town center)\n    \/\/    \u2014 update with precise geocoding as soon as possible.\n    {\n      categoria: \"slowliving\", tipo: \"madre\",\n      nome: \"Podere Bagnoli\",\n      indirizzo: \"Localit\u00e0 Bagnoli, 16, Castagneto Carducci (LI)\",\n      lat: 43.1850, lng: 10.5950, \/\/ APPROXIMATE \u2014 update based on the new address\n      foto: \"https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/04\/Podere-Bagnoli-struttura-1.avif\",\n      fraseP: \"Stillness and silence, with sea views\",\n      unitaLabel: \"7 Apartments\",\n      link: \"https:\/\/cozlystay.it\/en\/property\/podere-bagnoli\/\"\n    },\n    {\n      categoria: \"slowliving\", tipo: \"madre\",\n      nome: \"Locanda Degli Alberi\",\n      indirizzo: \"Via Fornaci 24, Sassetta (LI)\",\n      lat: 43.1330, lng: 10.6390, \/\/ APPROXIMATE \u2014 update based on the new address\n      foto: \"https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/04\/Locanda-degli-Alberi-struttura-1.avif\",\n      fraseP: \"Rest and renewal in the embrace of the woods\",\n      unitaLabel: \"7 Apartments - 1 Room\",\n      link: \"https:\/\/cozlystay.it\/en\/property\/locanda-degli-alberi\/\"\n    },\n    {\n      categoria: \"slowliving\", tipo: \"madre\",\n      nome: \"Pian delle More\",\n      indirizzo: \"Via del Dorsoio 9 (ex Via Campagna Sud 149), Sassetta (LI)\",\n      lat: 43.1370, lng: 10.6450, \/\/ APPROXIMATE \u2014 update based on the new address\n      foto: \"https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/08\/Pian-delle-More-struttura-1.png\",\n      fraseP: \"The harmony of the woods, between quiet and landscape\",\n      unitaLabel: \"4 Apartments\",\n      link: \"https:\/\/cozlystay.it\/en\/property\/pian-delle-more\/\"\n    },\n    {\n      categoria: \"slowliving\", tipo: \"madre\",\n      nome: \"Donna Tosca\",\n      indirizzo: \"Localit\u00e0 Prata, 39, Suvereto (LI)\",\n      lat: 43.1150, lng: 10.6700, \/\/ APPROXIMATE \u2014 update based on the new address\n      foto: \"https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/04\/Donna-Tosca-struttura-1.avif\",\n      fraseP: \"A place with character, between history and quiet\",\n      unitaLabel: \"3 Apartments\",\n      link: \"https:\/\/cozlystay.it\/en\/property\/donna-tosca\/\"\n    }\n  ];\n\n  var etichette = {\n    seaside: \"By the Sea\", country: \"In the Countryside\", slowliving: \"Slow Living\"\n  };\n\n  function initMappaCozly() {\n    var map = L.map('mappa-cozlystay', { scrollWheelZoom: false });\n\n    L.tileLayer('https:\/\/{s}.basemaps.cartocdn.com\/light_nolabels\/{z}\/{x}\/{y}{r}.png', {\n      attribution: '&copy; OpenStreetMap contributors &copy; CARTO',\n      subdomains: 'abcd',\n      maxZoom: 20\n    }).addTo(map);\n\n    function iconeMarker(p, evidenziato) {\n      var iconSvg = '<svg viewBox=\"0 0 24 24\" fill=\"#fff\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M12 2C7.6 2 4 5.6 4 10c0 5.4 7 12 7 12s.4.4.8.4.8-.4.8-.4c0 0 7-6.6 7-12 0-4.4-3.6-8-8-8zm0 5.5A2.5 2.5 0 1 1 12 12a2.5 2.5 0 0 1 0-4.5z\"\/><\/svg>';\n      var classi = 'pin-cozly ' + p.categoria + (p.tipo === 'madre' ? ' madre' : '') + (evidenziato ? ' evidenziato' : '');\n      return L.divIcon({\n        className: '',\n        html: '<div class=\"' + classi + '\"><div class=\"pin-cozly-body\">' + iconSvg + '<\/div><\/div>',\n        iconSize:   [42, 52],\n        iconAnchor: [21, 52],\n        tooltipAnchor: [0, -46],\n        popupAnchor: [0, -50]\n      });\n    }\n\n    var bounds = [];\n    var markers = [];\n\n    punti.forEach(function (p, i) {\n      var mapsUrl = \"https:\/\/www.google.com\/maps\/search\/?api=1&query=\" + encodeURIComponent(p.indirizzo);\n\n      var popupHtml =\n        '<div class=\"popup-cozly ' + p.categoria + '\">' +\n          '<div class=\"popup-photo\" style=\"background-image:url(\\'' + p.foto + '\\')\">' +\n            '<span class=\"badge-tipo\">' + etichette[p.categoria] + (p.tipo === 'madre' ? ' \u00b7 Multi-unit' : '') + '<\/span>' +\n          '<\/div>' +\n          '<div class=\"popup-body\">' +\n            '<h4>' + p.nome + '<\/h4>' +\n            '<p class=\"indirizzo\">' + p.indirizzo + '<\/p>' +\n            '<div class=\"azioni\">' +\n              '<a class=\"btn-prenota\" href=\"' + p.link + '\" target=\"_blank\" rel=\"noopener\">' + (p.tipo === 'madre' ? 'Discover units' : 'View property') + '<\/a>' +\n              '<a class=\"btn-maps\" href=\"' + mapsUrl + '\" target=\"_blank\" rel=\"noopener\">Maps<\/a>' +\n            '<\/div>' +\n          '<\/div>' +\n        '<\/div>';\n\n      var marker = L.marker([p.lat, p.lng], { icon: iconeMarker(p, false) }).addTo(map)\n        .bindTooltip(p.nome, { direction: 'top', className: 'tip-cozly', opacity: 1 })\n        .bindPopup(popupHtml);\n\n      markers.push(marker);\n      bounds.push([p.lat, p.lng]);\n    });\n\n    map.fitBounds(bounds, { padding: [70, 70] });\n\n    \/\/ Center the map by shifting the marker downward to leave room\n    \/\/ for the popup (which opens above the pin) and avoid clipping at the top.\n    function selezionaStruttura(p, i) {\n      document.querySelectorAll('.cozly-card').forEach(function (c) { c.classList.remove('attiva'); });\n      markers.forEach(function (m, idx) { m.setIcon(iconeMarker(punti[idx], false)); });\n\n      if (cardEls[i]) cardEls[i].classList.add('attiva');\n      markers[i].setIcon(iconeMarker(p, true));\n\n      var zoom = 14;\n      var offsetY = Math.round(map.getSize().y * 0.22);\n      var targetPoint = map.project([p.lat, p.lng], zoom).subtract([0, offsetY]);\n      var targetLatLng = map.unproject(targetPoint, zoom);\n      map.flyTo(targetLatLng, zoom, { duration: 0.6 });\n      markers[i].openPopup();\n    }\n\n    \/\/ ===== Build 2-column list =====\n    var listaEl = document.getElementById('cozly-lista');\n    var cardEls = [];\n\n    var fadeTop = document.createElement('div');\n    fadeTop.className = 'cozly-lista-fade top';\n    listaEl.appendChild(fadeTop);\n\n    punti.forEach(function (p, i) {\n      var card = document.createElement('div');\n      card.className = 'cozly-card ' + p.categoria;\n      card.innerHTML =\n        '<div class=\"cozly-thumb-wrap\"><img decoding=\"async\" class=\"cozly-thumb\" src=\"' + p.foto + '\" alt=\"\" loading=\"lazy\"><\/div>' +\n        '<div class=\"cozly-content\">' +\n          '<div class=\"cozly-info\">' +\n            '<p class=\"nome\">' + p.nome + '<\/p>' +\n            '<p class=\"sotto\">' + p.indirizzo + '<\/p>' +\n          '<\/div>' +\n          (p.tipo === 'madre' ? '<span class=\"badge-madre\">Multi-unit<\/span>' : '') +\n        '<\/div>';\n\n      card.addEventListener('click', function () {\n        selezionaStruttura(p, i);\n      });\n\n      cardEls.push(card);\n      listaEl.appendChild(card);\n    });\n\n    markers.forEach(function (m, idx) {\n      m.on('click', function () {\n        selezionaStruttura(punti[idx], idx);\n      });\n    });\n\n    var fadeBottom = document.createElement('div');\n    fadeBottom.className = 'cozly-lista-fade bottom';\n    listaEl.appendChild(fadeBottom);\n\n    function aggiornaFadeLista() {\n      var scorribile = listaEl.scrollHeight > listaEl.clientHeight + 2;\n      fadeTop.classList.toggle('visibile', scorribile && listaEl.scrollTop > 4);\n      fadeBottom.classList.toggle('visibile', scorribile &&\n        listaEl.scrollTop < listaEl.scrollHeight - listaEl.clientHeight - 4);\n    }\n    listaEl.addEventListener('scroll', aggiornaFadeLista);\n    window.addEventListener('resize', aggiornaFadeLista);\n    setTimeout(aggiornaFadeLista, 350);\n\n    setTimeout(function () { map.invalidateSize(); }, 300);\n  }\n\n  if (window.L) {\n    initMappaCozly();\n  } else {\n    var s = document.createElement('script');\n    s.src = 'https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js';\n    s.onload = initMappaCozly;\n    document.head.appendChild(s);\n  }\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3733e4b elementor-absolute elementor-widget elementor-widget-image\" data-id=\"3733e4b\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"2560\" height=\"977\" src=\"https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/03\/test-granaa-scaled.png\" class=\"attachment-full size-full wp-image-267\" alt=\"\" srcset=\"https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/03\/test-granaa-scaled.png 2560w, https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/03\/test-granaa-768x293.png 768w, https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/03\/test-granaa-1536x586.png 1536w, https:\/\/cozlystay.it\/wp-content\/uploads\/2026\/03\/test-granaa-2048x781.png 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" title=\"\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Property Map Choose the property that best suits your stay from the map. Between hills, villages and the sea, Cozly Stay apartments, homes, rooms and farm stays offer different ways to experience Tuscany, with care, simplicity and a slower pace.<\/p>\n","protected":false},"author":2,"featured_media":3107,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-5703","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/cozlystay.it\/en\/wp-json\/wp\/v2\/pages\/5703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cozlystay.it\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cozlystay.it\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cozlystay.it\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/cozlystay.it\/en\/wp-json\/wp\/v2\/comments?post=5703"}],"version-history":[{"count":0,"href":"https:\/\/cozlystay.it\/en\/wp-json\/wp\/v2\/pages\/5703\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cozlystay.it\/en\/wp-json\/wp\/v2\/media\/3107"}],"wp:attachment":[{"href":"https:\/\/cozlystay.it\/en\/wp-json\/wp\/v2\/media?parent=5703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}