{"id":9,"date":"2026-04-07T11:00:43","date_gmt":"2026-04-07T11:00:43","guid":{"rendered":"https:\/\/levanteoutdoor.it\/?page_id=9"},"modified":"2026-07-21T17:17:24","modified_gmt":"2026-07-21T15:17:24","slug":"outdoor-levante-ligure","status":"publish","type":"page","link":"https:\/\/levanteoutdoor.it\/en\/","title":{"rendered":"Homepage"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"9\" class=\"elementor elementor-9\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c39e223 e-con-full e-flex e-con e-parent\" data-id=\"c39e223\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-537cd7a elementor-widget elementor-widget-html\" data-id=\"537cd7a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- HOMEPAGE \u2014 Widget HTML Elementor | levanteoutdoor.it -->\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     1. HERO\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n     <section class=\"lop-hero lop-hero--home\" style=\"background-image: url('https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/experience_sup_drone_group_sea_01-1-scaled.jpg')\">\n      <div class=\"lop-hero__overlay\"><\/div>\n      <div class=\"lop-hero__content\" data-reveal>\n        <img decoding=\"async\" src=\"https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/Logo-Levante-Background-Black-e1775728088688.png\" alt=\"Levante Outdoor Paradise\" class=\"lop-hero__brand\">\n        <span class=\"lop-hero__label\">Outdoor Paradise<\/span>\n        <h1 class=\"lop-hero__title\">Scopri il Levante Ligure<\/h1>\n        <p class=\"lop-hero__subtitle\">Esperienze outdoor, itinerari autentici e avventura<br>tra mare cristallino e sentieri d'Appennino<\/p>\n        <a href=\"#spotmap-section\" class=\"lop-btn lop-btn--primary lop-btn--lg\">Esplora la mappa<\/a>\n      <\/div>\n      <div class=\"lop-hero__scroll\" aria-hidden=\"true\">\n        <span><\/span>\n      <\/div>\n    <\/section>\n    \n    <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n         2. INTRO\n         \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n    <section class=\"lop-intro\">\n      <div class=\"lop-container\">\n        <div class=\"lop-intro__inner\" data-reveal>\n          <img decoding=\"async\" src=\"https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/Logo-3-Linee-colori-e1775728176300.png\" alt=\"Levante Outdoor Paradise\" class=\"lop-intro__logo\">\n          <span class=\"lop-section-label\">Chi siamo<\/span>\n          <h2>Il Levante Ligure autentico<\/h2>\n          <p>Siamo un collettivo di guide ed operatori locali che trasformano il territorio del Levante Ligure in un'esperienza completa. Dal mare alle cime, costruiamo avventure su misura per chi vuole scoprire questa terra in profondit\u00e0.<\/p>\n          <a href=\"https:\/\/levanteoutdoor.it\/progetto\/\" class=\"lop-link-arrow\">Scopri il progetto<\/a>\n        <\/div>\n      <\/div>\n    <\/section>\n    \n    <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n         3. SPOTMAP\n         \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n    <section class=\"lop-spotmap-section\" id=\"spotmap-section\">\n      <div class=\"lop-container\">\n        <div class=\"lop-spotmap-section__header\" data-reveal>\n          <span class=\"lop-section-label lop-section-label--light\">Mappa interattiva<\/span>\n          <h2 class=\"lop-spotmap-section__title\">Tutto il territorio, a portata di mappa<\/h2>\n          <p class=\"lop-spotmap-section__desc\">Esplora esperienze e itinerari direttamente sulla mappa. Clicca su un pin per scoprire i dettagli.<\/p>\n        <\/div>\n        <div class=\"lop-spotmap-filters\">\n          <div class=\"lop-spotmap-filters__group\">\n            <button class=\"lop-spotmap-filter\" data-tipo=\"tutti\">Tutti<\/button>\n            <button class=\"lop-spotmap-filter\" data-tipo=\"experience\">Experience<\/button>\n            <button class=\"lop-spotmap-filter\" data-tipo=\"itinerario\">Itinerari<\/button>\n          <\/div>\n          <div class=\"lop-spotmap-filters__group\">\n            <button class=\"lop-spotmap-category\" data-category=\"sea\" style=\"--badge-color: #10a1be\">Mare<\/button>\n            <button class=\"lop-spotmap-category\" data-category=\"hiking\" style=\"--badge-color: #5db777\">Trekking<\/button>\n            <button class=\"lop-spotmap-category\" data-category=\"mtb\" style=\"--badge-color: #2d6a4f\">MTB<\/button>\n            <button class=\"lop-spotmap-category\" data-category=\"climbing\" style=\"--badge-color: #584D3D\">Arrampicata<\/button>\n            <button class=\"lop-spotmap-category\" data-category=\"wellness\" style=\"--badge-color: #d64f91\">Wellness<\/button>\n            <button class=\"lop-spotmap-category\" data-category=\"enogastronomia\" style=\"--badge-color: #e9e21c\">Enogastronomia<\/button>\n          <\/div>\n        <\/div>\n        <div id=\"lop-spotmap\" class=\"lop-spotmap__map\"><\/div>\n      <\/div>\n    <\/section>\n    \n    <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n         4. CATEGORIE\n         \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n    <section class=\"lop-categories\">\n      <div class=\"lop-container\">\n        <div class=\"lop-section-header\" data-reveal>\n          <span class=\"lop-section-label\">Cosa vuoi fare<\/span>\n          <h2>Scegli la tua avventura<\/h2>\n        <\/div>\n        <div class=\"lop-categories__grid\">\n          <a href=\"https:\/\/levanteoutdoor.it\/experience\/?categoria=sea\" class=\"lop-category-tile\" style=\"background-image: url('https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/sea_beach_pebbles_texture_01_vertical-scaled.jpg')\">\n            <div class=\"lop-category-tile__overlay\"><\/div>\n            <div class=\"lop-category-tile__content\">\n              <h3>Mare<\/h3>\n              <span class=\"lop-category-tile__sub\">Kayak \u00b7 SUP \u00b7 Snorkeling<\/span>\n            <\/div>\n          <\/a>\n          <a href=\"https:\/\/levanteoutdoor.it\/experience\/?categoria=hiking\" class=\"lop-category-tile\" style=\"background-image: url('https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/exp_hiking_goldenhour_group_01-scaled.jpg')\">\n            <div class=\"lop-category-tile__overlay\"><\/div>\n            <div class=\"lop-category-tile__content\">\n              <h3>Trekking<\/h3>\n              <span class=\"lop-category-tile__sub\">Escursioni guidate<\/span>\n            <\/div>\n          <\/a>\n          <a href=\"https:\/\/levanteoutdoor.it\/experience\/?categoria=mtb\" class=\"lop-category-tile\" style=\"background-image: url('https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/experience_mtb_rider_viewpoint_coast_01-scaled.jpg')\">\n            <div class=\"lop-category-tile__overlay\"><\/div>\n            <div class=\"lop-category-tile__content\">\n              <h3>MTB \/ E-MTB<\/h3>\n              <span class=\"lop-category-tile__sub\">Mountain bike \u00b7 E-Bike<\/span>\n            <\/div>\n          <\/a>\n          <a href=\"https:\/\/levanteoutdoor.it\/experience\/?categoria=climbing\" class=\"lop-category-tile\" style=\"background-image: url('https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/experience_climbing_action_dynamic_01-scaled.jpg')\">\n            <div class=\"lop-category-tile__overlay\"><\/div>\n            <div class=\"lop-category-tile__content\">\n              <h3>Arrampicata<\/h3>\n              <span class=\"lop-category-tile__sub\">Climbing guidato<\/span>\n            <\/div>\n          <\/a>\n          <a href=\"https:\/\/levanteoutdoor.it\/experience\/?categoria=wellness\" class=\"lop-category-tile\" style=\"background-image: url('https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/experience_yoga_sup_stretch_detail_01_vertical-scaled.jpg')\">\n            <div class=\"lop-category-tile__overlay\"><\/div>\n            <div class=\"lop-category-tile__content\">\n              <h3>Wellness<\/h3>\n              <span class=\"lop-category-tile__sub\">Benessere nel verde<\/span>\n            <\/div>\n          <\/a>\n          <a href=\"https:\/\/levanteoutdoor.it\/experience\/?categoria=enogastronomia\" class=\"lop-category-tile\" style=\"background-image: url('https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/Card-5.-Food-experience_food_pesto_detail_wine_01.png')\">\n            <div class=\"lop-category-tile__overlay\"><\/div>\n            <div class=\"lop-category-tile__content\">\n              <h3>Enogastronomia<\/h3>\n              <span class=\"lop-category-tile__sub\">Borghi \u00b7 Vino \u00b7 Sapori<\/span>\n            <\/div>\n          <\/a>\n        <\/div>\n      <\/div>\n    <\/section>\n    \n    <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n         5. EXPERIENCE SHOWCASE\n         \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n    <section class=\"lop-showcase lop-showcase--experience\">\n      <div class=\"lop-container\">\n        <div class=\"lop-section-header lop-section-header--split\" data-reveal>\n          <div>\n            <span class=\"lop-section-label\">Attivit\u00e0 guidate<\/span>\n            <h2>Le nostre Experience<\/h2>\n          <\/div>\n          <a href=\"https:\/\/levanteoutdoor.it\/experience\/\" class=\"lop-link-arrow\">Vedi tutte<\/a>\n        <\/div>\n        <div class=\"lop-showcase__grid is-hydrating\">\n    \n          <article class=\"lop-card\" data-reveal data-delay=\"1\">\n            <div class=\"lop-card__media\" style=\"background-image: url('https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/experience_sup_drone_group_sea_01-1-scaled.jpg')\">\n              <span class=\"lop-badge lop-badge--sea\">Sea<\/span>\n            <\/div>\n            <div class=\"lop-card__body\">\n              <div class=\"lop-card__meta\">\n                <span>3 ore<\/span>\n                <span>Facile<\/span>\n              <\/div>\n              <h3 class=\"lop-card__title\">Kayak Tour \u2013 Baia dell'Oro<\/h3>\n              <a href=\"https:\/\/levanteoutdoor.it\/experience\/kayak-tour-baia-delloro\/\" class=\"lop-card__cta\">\n                Scopri <span aria-hidden=\"true\">\u2192<\/span>\n              <\/a>\n            <\/div>\n          <\/article>\n    \n          <article class=\"lop-card\" data-reveal data-delay=\"2\">\n            <div class=\"lop-card__media\" style=\"background-image: url('https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/experience_sup_drone_group_sea_01-1-scaled.jpg')\">\n              <span class=\"lop-badge lop-badge--hiking\">Hiking<\/span>\n            <\/div>\n            <div class=\"lop-card__body\">\n              <div class=\"lop-card__meta\">\n                <span>3 ore<\/span>\n                <span>Medio<\/span>\n              <\/div>\n              <h3 class=\"lop-card__title\">Trekking Punta Manara<\/h3>\n              <a href=\"https:\/\/levanteoutdoor.it\/experience\/trekking-punta-manara\/\" class=\"lop-card__cta\">\n                Scopri <span aria-hidden=\"true\">\u2192<\/span>\n              <\/a>\n            <\/div>\n          <\/article>\n    \n          <article class=\"lop-card\" data-reveal data-delay=\"3\">\n            <div class=\"lop-card__media\" style=\"background-image: url('https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/experience_sup_drone_group_sea_01-1-scaled.jpg')\">\n              <span class=\"lop-badge lop-badge--mtb\">MTB<\/span>\n            <\/div>\n            <div class=\"lop-card__body\">\n              <div class=\"lop-card__meta\">\n                <span>4 ore<\/span>\n                <span>Medio<\/span>\n              <\/div>\n              <h3 class=\"lop-card__title\">E-Bike Adventure \u2013 Tour Guidato<\/h3>\n              <a href=\"https:\/\/levanteoutdoor.it\/experience\/e-bike-adventure-tour-guidato\/\" class=\"lop-card__cta\">\n                Scopri <span aria-hidden=\"true\">\u2192<\/span>\n              <\/a>\n            <\/div>\n          <\/article>\n    \n        <\/div>\n      <\/div>\n    <\/section>\n    \n    <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n         6. TERRITORIO \u2014 sezione narrativa\n         \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n    <section class=\"lop-territory\">\n      <div class=\"lop-container\">\n        <div class=\"lop-territory__layout\">\n          <div class=\"lop-territory__text\" data-reveal>\n            <span class=\"lop-section-label lop-section-label--light\">Il territorio<\/span>\n            <h2>Un mosaico di paesaggi da esplorare<\/h2>\n            <p>Tra il Mar Ligure e i monti dell'Appennino, il Levante Ligure \u00e8 un territorio unico: borghi pittoreschi affacciati sul mare, sentieri millenari, spiagge nascoste e vigneti terrazzati.<\/p>\n            <p>Qui la cultura enogastronomica si fonde con l'avventura all'aperto. Ogni angolo rivela una scoperta nuova.<\/p>\n            <a href=\"https:\/\/levanteoutdoor.it\/progetto\/\" class=\"lop-btn lop-btn--primary lop-btn--lg\">Scopri la nostra storia<\/a>\n          <\/div>\n          <div class=\"lop-territory__visual\" data-reveal data-delay=\"2\">\n            <div class=\"lop-territory__img\" style=\"background-image: url('https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/hero_hiking_sunset_peak_01-scaled.jpg')\"><\/div>\n            <div class=\"lop-territory__stat-block\">\n              <div class=\"lop-territory__stat\">\n                <strong>12<\/strong>\n                <span>Experience<\/span>\n              <\/div>\n              <div class=\"lop-territory__stat\">\n                <strong>5<\/strong>\n                <span>Itinerari<\/span>\n              <\/div>\n              <div class=\"lop-territory__stat\">\n                <strong>6<\/strong>\n                <span>Categorie<\/span>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n    \n    <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n         7. ITINERARI SHOWCASE\n         \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n    <section class=\"lop-showcase lop-showcase--itinerari\">\n      <div class=\"lop-container\">\n        <div class=\"lop-section-header lop-section-header--split\" data-reveal>\n          <div>\n            <span class=\"lop-section-label\">Self-guided &amp; guidati<\/span>\n            <h2>Itinerari nel territorio<\/h2>\n          <\/div>\n          <a href=\"https:\/\/levanteoutdoor.it\/itinerari\/\" class=\"lop-link-arrow\">Vedi tutti<\/a>\n        <\/div>\n        <div class=\"lop-showcase__grid is-hydrating\">\n    \n          <article class=\"lop-card lop-card--itinerario\" data-reveal data-delay=\"1\">\n            <div class=\"lop-card__media\" style=\"background-image: url('https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/experience_sup_drone_group_sea_01-1-scaled.jpg')\">\n              <span class=\"lop-badge lop-badge--sea\">Sea<\/span>\n              <span class=\"lop-card__tipo\">Self-guided<\/span>\n            <\/div>\n            <div class=\"lop-card__body\">\n              <div class=\"lop-card__meta\">\n                <span>2\u20133 ore<\/span>\n                <span>Facile<\/span>\n              <\/div>\n              <h3 class=\"lop-card__title\">Sea Trail \u2013 Baia dell'Oro & Punta Manara<\/h3>\n              <a href=\"https:\/\/levanteoutdoor.it\/itinerario\/itinerario-test\/\" class=\"lop-card__cta\">\n                Scopri <span aria-hidden=\"true\">\u2192<\/span>\n              <\/a>\n            <\/div>\n          <\/article>\n    \n          <article class=\"lop-card lop-card--itinerario\" data-reveal data-delay=\"2\">\n            <div class=\"lop-card__media\" style=\"background-image: url('https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/experience_sup_drone_group_sea_01-1-scaled.jpg')\">\n              <span class=\"lop-badge lop-badge--hiking\">Hiking<\/span>\n              <span class=\"lop-card__tipo\">Self-guided<\/span>\n            <\/div>\n            <div class=\"lop-card__body\">\n              <div class=\"lop-card__meta\">\n                <span>2\u20133 ore<\/span>\n                <span>Facile<\/span>\n              <\/div>\n              <h3 class=\"lop-card__title\">Sestri Panorama Trail<\/h3>\n              <a href=\"https:\/\/levanteoutdoor.it\/itinerario\/hiking-trail-sestri-panorama-trail\/\" class=\"lop-card__cta\">\n                Scopri <span aria-hidden=\"true\">\u2192<\/span>\n              <\/a>\n            <\/div>\n          <\/article>\n    \n          <article class=\"lop-card lop-card--itinerario\" data-reveal data-delay=\"3\">\n            <div class=\"lop-card__media\" style=\"background-image: url('https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/experience_sup_drone_group_sea_01-1-scaled.jpg')\">\n              <span class=\"lop-badge lop-badge--mtb\">MTB<\/span>\n              <span class=\"lop-card__tipo\">Self-guided<\/span>\n            <\/div>\n            <div class=\"lop-card__body\">\n              <div class=\"lop-card__meta\">\n                <span>3.5\u20135 ore<\/span>\n                <span>Media<\/span>\n              <\/div>\n              <h3 class=\"lop-card__title\">Ridge to Sea E-Bike Adventure<\/h3>\n              <a href=\"https:\/\/levanteoutdoor.it\/itinerario\/bike-trail-ridge-to-sea-e-bike-adventure\/\" class=\"lop-card__cta\">\n                Scopri <span aria-hidden=\"true\">\u2192<\/span>\n              <\/a>\n            <\/div>\n          <\/article>\n    \n        <\/div>\n      <\/div>\n    <\/section>\n    \n    <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n         8. CTA FINALE\n         \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n    <section class=\"lop-cta-final\" style=\"background-image: url('https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/hero_territorio_sunset_mountains_02-scaled.jpg')\">\n      <div class=\"lop-cta-final__overlay\"><\/div>\n      <div class=\"lop-container\">\n        <div class=\"lop-cta-final__inner\" data-reveal>\n          <h2>Pronto ad esplorare?<\/h2>\n          <p>Torna alla mappa e trova l'avventura che fa per te<\/p>\n          <a href=\"#spotmap-section\" class=\"lop-btn lop-btn--primary lop-btn--lg\">Esplora la mappa<\/a>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <a href=\"https:\/\/levanteoutdoor.it\/experience\/\" class=\"lop-btn lop-btn--primary lop-floating-booking\" data-lop-floating-booking>Prenota ora<\/a>\n    \n    \t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-07a8984 elementor-widget elementor-widget-html\" data-id=\"07a8984\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\n\/\/ ============================================================================\/\/ ============================================================================\n\/\/ LEVANTE OUTDOOR PARADISE - HOME PAGE JAVASCRIPT\n\/\/ Nota: menu mobile e header scroll sono gestiti in global.js.\n\/\/ Questo file gestisce solo la logica specifica della homepage.\n\/\/ ============================================================================\n\n(function() {\n  'use strict';\n\n  var FALLBACK_CARD_IMAGE = 'https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/experience_sup_drone_group_sea_01-1-scaled.jpg';\n  var EXPERIENCE_IMAGE_OVERRIDES = {\n    'kayak-degustazione-locale': 'https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/experience_kayak_group_top_view_01-scaled.jpg',\n    'kayak-snorkeling-experience': 'https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/hero_sea_kayak_drone_cliff_01-scaled.jpg',\n    'kayak-tour-baia-delloro': 'https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/experience_kayak_group_line_sea_02-scaled.jpg'\n  };\n\n  function isUsableImage(value) {\n    if (!value) return false;\n    if (typeof value !== 'string') return false;\n    var normalized = value.trim().toLowerCase();\n    return normalized !== '' && normalized !== 'undefined' && normalized !== 'null';\n  }\n\n  function imageUrlFromField(field) {\n    if (!field) return '';\n    if (typeof field === 'string') return isUsableImage(field) ? field : '';\n    if (field.url && isUsableImage(field.url)) return field.url;\n    if (field.sizes && isUsableImage(field.sizes.large)) return field.sizes.large;\n    if (field.sizes && isUsableImage(field.sizes.medium_large)) return field.sizes.medium_large;\n    return '';\n  }\n\n  \/\/ ========================================================================\n  \/\/ PARALLAX EFFECT \u2014 hero background\n  \/\/ ========================================================================\n\n  function initParallax() {\n    var hero = document.querySelector('.lop-hero--home');\n    if (!hero) return;\n\n    \/\/ Disabilita su dispositivi touch (performance)\n    if ('ontouchstart' in window) return;\n\n    \/\/ Crea un layer dedicato per il parallax (solo immagine bg)\n    var bgLayer = document.createElement('div');\n    bgLayer.className = 'lop-hero__parallax-bg';\n    bgLayer.style.cssText = 'position:absolute;inset:-20% 0;width:100%;height:140%;' +\n      'background-image:' + (hero.style.backgroundImage || 'none') + ';' +\n      'background-size:cover;background-position:center;' +\n      'will-change:transform;z-index:0;pointer-events:none;';\n    hero.insertBefore(bgLayer, hero.firstChild);\n\n    \/\/ Rimuovi il bg dalla hero (ora \u00e8 nel layer)\n    hero.style.backgroundImage = 'none';\n\n    var ticking = false;\n\n    window.addEventListener('scroll', function() {\n      if (!ticking) {\n        requestAnimationFrame(function() {\n          var scrollTop = window.scrollY;\n          var heroHeight = hero.offsetHeight;\n\n          if (scrollTop <= heroHeight) {\n            bgLayer.style.transform = 'translate3d(0, ' + (scrollTop * 0.25) + 'px, 0)';\n          }\n          ticking = false;\n        });\n        ticking = true;\n      }\n    }, { passive: true });\n  }\n\n  \/\/ ========================================================================\n  \/\/ SCROLL REVEAL CON INTERSECTION OBSERVER\n  \/\/ ========================================================================\n\n  function initScrollReveal() {\n    var revealElements = document.querySelectorAll('[data-reveal]:not(.is-visible):not(.lop-hero__content)');\n    if (revealElements.length === 0) return;\n\n    if (!('IntersectionObserver' in window)) {\n      revealElements.forEach(function(el) {\n        el.classList.add('is-visible');\n      });\n      return;\n    }\n\n    var observer = new IntersectionObserver(function(entries) {\n      entries.forEach(function(entry) {\n        if (entry.isIntersecting) {\n          entry.target.classList.add('is-visible');\n          observer.unobserve(entry.target);\n        }\n      });\n    }, {\n      threshold: 0.1,\n      rootMargin: '0px 0px -80px 0px'\n    });\n\n    revealElements.forEach(function(el) {\n      observer.observe(el);\n    });\n  }\n\n  \/\/ ========================================================================\n  \/\/ SMOOTH SCROLL PER ANCHOR LINK INTERNI\n  \/\/ ========================================================================\n\n  function initSmoothScroll() {\n    document.addEventListener('click', function(e) {\n      var target = e.target.closest('a[href^=\"#\"]');\n      if (!target) return;\n\n      var href = target.getAttribute('href');\n      if (href === '#') return;\n\n      var section = document.querySelector(href);\n      if (!section) return;\n\n      e.preventDefault();\n      var headerHeight = 80; \/\/ altezza header fixed\n      var top = section.getBoundingClientRect().top + window.scrollY - headerHeight;\n      window.scrollTo({ top: top, behavior: 'smooth' });\n    });\n  }\n\n  function initHomepageHeaderLogo() {\n    var headerLogo = document.querySelector('.lop-header__logo img');\n    if (!headerLogo) return;\n    headerLogo.src = 'https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/Logo-3-Linee-colori-e1775728176300.png';\n    headerLogo.alt = 'Levante Outdoor Paradise';\n  }\n\n  \/\/ ========================================================================\n  \/\/ SEGNALAZIONI \u2014 auth gate\n  \/\/ ========================================================================\n\n  function initSegnalazioni() {\n    var authGate = document.querySelector('[data-segnalazioni-auth-gate]');\n    var form = document.querySelector('[data-segnalazioni-form]');\n    var successMsg = document.querySelector('[data-segnalazioni-success]');\n\n    if (!authGate || !form) return;\n\n    var isAuthenticated = document.body.classList.contains('is-authenticated') ||\n                          document.body.classList.contains('logged-in');\n\n    if (isAuthenticated) {\n      authGate.style.display = 'none';\n      form.style.display = 'block';\n    } else {\n      authGate.style.display = 'block';\n      form.style.display = 'none';\n    }\n\n    form.addEventListener('submit', function(e) {\n      e.preventDefault();\n\n      var submitBtn = form.querySelector('[type=\"submit\"]');\n      if (submitBtn) {\n        submitBtn.disabled = true;\n        submitBtn.textContent = 'Invio in corso...';\n      }\n\n      var formData = new FormData(form);\n      formData.append('action', 'lop_segnalazione');\n      formData.append('nonce', (window.lopAjax && window.lopAjax.nonce) || '');\n\n      fetch((window.lopAjax && window.lopAjax.url) || '\/wp-admin\/admin-ajax.php', {\n        method: 'POST',\n        body: formData\n      })\n      .then(function(res) { return res.json(); })\n      .then(function(data) {\n        form.style.display = 'none';\n        if (successMsg) successMsg.style.display = 'block';\n      })\n      .catch(function() {\n        if (submitBtn) {\n          submitBtn.disabled = false;\n          submitBtn.textContent = 'Invia Segnalazione';\n        }\n        alert('Errore nell\\'invio. Riprova pi\u00f9 tardi.');\n      });\n    });\n  }\n\n  \/\/ ========================================================================\n  \/\/ UTILITIES\n  \/\/ ========================================================================\n\n  function decodeHtml(value) {\n    var txt = document.createElement('textarea');\n    txt.innerHTML = value || '';\n    return txt.value;\n  }\n\n  function imageFrom(post, acf) {\n    var slug = post && post.slug ? post.slug : '';\n    if (slug && EXPERIENCE_IMAGE_OVERRIDES[slug]) {\n      return EXPERIENCE_IMAGE_OVERRIDES[slug];\n    }\n\n    if (acf) {\n      var fromCover = imageUrlFromField(acf.cover_image);\n      if (fromCover) return fromCover;\n\n      var fromGallery = imageUrlFromField(acf.gallery_image_1);\n      if (fromGallery) return fromGallery;\n\n      if (Array.isArray(acf.experience_gallery) && acf.experience_gallery.length) {\n        var firstExperienceGallery = imageUrlFromField(acf.experience_gallery[0]);\n        if (firstExperienceGallery) return firstExperienceGallery;\n      }\n\n      if (Array.isArray(acf.itinerario_gallery) && acf.itinerario_gallery.length) {\n        var firstItineraryGallery = imageUrlFromField(acf.itinerario_gallery[0]);\n        if (firstItineraryGallery) return firstItineraryGallery;\n      }\n    }\n    if (post && post._embedded && post._embedded['wp:featuredmedia'] && post._embedded['wp:featuredmedia'][0]) {\n      var featured = post._embedded['wp:featuredmedia'][0].source_url;\n      if (isUsableImage(featured)) return featured;\n    }\n    return FALLBACK_CARD_IMAGE;\n  }\n\n  \/\/ ========================================================================\n  \/\/ FETCH CPT \u2014 prova pi\u00f9 endpoint, ritorna solo se ci sono post reali\n  \/\/ ========================================================================\n\n  async function fetchCpt(slugs, limit) {\n    for (var i = 0; i < slugs.length; i++) {\n      try {\n        var res = await fetch('\/wp-json\/wp\/v2\/' + slugs[i] + '?per_page=' + limit + '&_embed');\n        if (!res.ok) continue;\n        var data = await res.json();\n        if (Array.isArray(data) && data.length > 0) return data;\n      } catch (e) {\n        \/\/ endpoint non disponibile, prova il prossimo\n      }\n    }\n    return [];\n  }\n\n  function isFeaturedInHome(acf) {\n    if (!acf || typeof acf !== 'object') return false;\n    var raw = acf.in_evidenza_home;\n    if (raw == null) raw = acf.in_home_featured;\n    if (raw == null) raw = acf.featured_in_home;\n    if (raw == null) raw = acf.home_featured;\n    if (raw == null) return false;\n\n    if (typeof raw === 'boolean') return raw;\n    if (typeof raw === 'number') return raw === 1;\n    if (typeof raw === 'string') {\n      var normalized = raw.trim().toLowerCase();\n      return normalized === '1' || normalized === 'true' || normalized === 'yes' || normalized === 'si' || normalized === 's\u00ec' || normalized === 'on';\n    }\n    return false;\n  }\n\n  \/\/ ========================================================================\n  \/\/ CARD BUILDERS\n  \/\/ ========================================================================\n\n  function normalizeCat(value) {\n    var v = (value || '').toString().toLowerCase();\n    if (v.indexOf('sea') > -1 || v.indexOf('mare') > -1 || v.indexOf('kayak') > -1 || v.indexOf('sup') > -1) return 'sea';\n    if (v.indexOf('hiking') > -1 || v.indexOf('trek') > -1) return 'hiking';\n    if (v.indexOf('mtb') > -1 || v.indexOf('bike') > -1) return 'mtb';\n    if (v.indexOf('climb') > -1 || v.indexOf('arrampic') > -1) return 'climbing';\n    if (v.indexOf('well') > -1 || v.indexOf('yoga') > -1) return 'wellness';\n    if (v.indexOf('enog') > -1) return 'enogastronomia';\n    return 'experience';\n  }\n\n  function badgeClass(cat) {\n    return 'lop-badge lop-badge--' + cat;\n  }\n\n  function badgeLabel(cat) {\n    var labels = { sea: 'Sea', hiking: 'Hiking', mtb: 'MTB', climbing: 'Climbing', wellness: 'Wellness', enogastronomia: 'Enogastronomia' };\n    return labels[cat] || 'Experience';\n  }\n\n  function detectCategory(post) {\n    var acf = post.acf || {};\n    var title = (post.title && post.title.rendered ? post.title.rendered : '').toLowerCase();\n    var slug = post.slug || '';\n\n    \/\/ 1. Prova dalle tassonomie embedded (wp:term)\n    if (post._embedded && post._embedded['wp:term']) {\n      var allTerms = [].concat.apply([], post._embedded['wp:term']);\n      for (var i = 0; i < allTerms.length; i++) {\n        var termSlug = (allTerms[i].slug || '').toLowerCase();\n        var cat = normalizeCat(termSlug);\n        if (cat !== 'experience') return cat;\n      }\n    }\n\n    \/\/ 2. Prova dal campo experience_id (es. \"SEA-01\", \"MTB-02\")\n    if (acf.experience_id) {\n      var prefix = acf.experience_id.split('-')[0];\n      var cat = normalizeCat(prefix);\n      if (cat !== 'experience') return cat;\n    }\n\n    \/\/ 3. Prova dal titolo o slug\n    var fromTitle = normalizeCat(title + ' ' + slug);\n    if (fromTitle !== 'experience') return fromTitle;\n\n    \/\/ 4. Fallback: status o level\n    return normalizeCat(acf.status || acf.level || '');\n  }\n\n  function buildExperienceCard(post) {\n    var acf = post.acf || {};\n    var image = imageFrom(post, acf);\n    var title = decodeHtml(post.title && post.title.rendered ? post.title.rendered : '');\n    var cat = detectCategory(post);\n    var shortDesc = getShortDesc(post);\n    var duration = cleanMeta(acf.duration || '');\n    var level = acf.livello || acf.level || acf.difficulty || '';\n\n    return '<article class=\"lop-card lop-card--cat-' + cat + '\" data-reveal>' +\n      '<div class=\"lop-card__media\" style=\"background-image: url(\\'' + image + '\\')\">' +\n        '<span class=\"' + badgeClass(cat) + '\">' + badgeLabel(cat) + '<\/span>' +\n      '<\/div>' +\n      '<div class=\"lop-card__body\">' +\n        '<div class=\"lop-card__meta\">' +\n          (duration ? '<span>' + duration + '<\/span>' : '') +\n          difficultyHtml(level) +\n        '<\/div>' +\n        '<h3 class=\"lop-card__title\">' + title + '<\/h3>' +\n        (shortDesc ? '<p class=\"lop-card__desc\">' + shortDesc + '<\/p>' : '') +\n        '<a href=\"' + (post.link || '#') + '\" class=\"lop-card__cta\">Scopri <span aria-hidden=\"true\">&rarr;<\/span><\/a>' +\n      '<\/div>' +\n    '<\/article>';\n  }\n\n  function cleanMeta(value) {\n    if (!value) return '';\n    \/\/ Rimuovi contenuto tra parentesi e \"multi-day\"\/\"multiday\"\n    return value\n      .replace(\/\\s*\\([^)]*\\)\/g, '')\n      .replace(\/\\s*\\\/\\s*multi-?day\/gi, '')\n      .replace(\/multi-?day\\s*\\\/?\\s*\/gi, '')\n      .trim();\n  }\n\n  function difficultyHtml(diff) {\n    var clean = cleanLevel(diff);\n    if (!clean) return '';\n    var d = clean.toLowerCase();\n    var color = '#5db777'; \/\/ default verde\n    if (d.indexOf('media') > -1 || d.indexOf('medio') > -1 || d.indexOf('intermediate') > -1) color = '#e9a800';\n    if (d.indexOf('difficile') > -1 || d.indexOf('hard') > -1 || d.indexOf('expert') > -1) color = '#d64f91';\n    return '<span class=\"lop-card__difficulty\" style=\"color:' + color + '\">' + clean + '<\/span>';\n  }\n\n  function cleanLevel(value) {\n    if (!value) return '';\n    var text = String(value).trim();\n    if (!text) return '';\n    if (text.indexOf(':') > -1) {\n      var parts = text.split(':');\n      var last = parts[parts.length - 1].trim();\n      if (last) text = last;\n    }\n    return text;\n  }\n\n  function getShortDesc(post) {\n    var acf = post.acf || {};\n    if (acf.short_description) return acf.short_description;\n    \/\/ Fallback: excerpt\n    if (post.excerpt && post.excerpt.rendered) {\n      return post.excerpt.rendered.replace(\/<[^>]*>\/g, '').trim().substring(0, 200);\n    }\n    \/\/ Fallback: contenuto troncato\n    if (post.content && post.content.rendered) {\n      return post.content.rendered.replace(\/<[^>]*>\/g, '').trim().substring(0, 200);\n    }\n    return '';\n  }\n\n  function buildItinerarioCard(post) {\n    var acf = post.acf || {};\n    var image = imageFrom(post, acf);\n    var title = decodeHtml(post.title && post.title.rendered ? post.title.rendered : '');\n    var cat = detectCategory(post);\n    var shortDesc = getShortDesc(post);\n    var duration = cleanMeta(acf.duration || '');\n    var distance = cleanMeta(acf.distance || '');\n    var difficulty = acf.difficulty || '';\n\n    var metaParts = [duration, distance].filter(Boolean);\n\n    return '<article class=\"lop-card lop-card--itinerario lop-card--cat-' + cat + '\" data-reveal>' +\n      '<div class=\"lop-card__media\" style=\"background-image: url(\\'' + image + '\\')\">' +\n        '<span class=\"' + badgeClass(cat) + '\">' + badgeLabel(cat) + '<\/span>' +\n      '<\/div>' +\n      '<div class=\"lop-card__body\">' +\n        '<div class=\"lop-card__meta\">' +\n          metaParts.map(function(p) { return '<span>' + p + '<\/span>'; }).join('') +\n          difficultyHtml(difficulty) +\n        '<\/div>' +\n        '<h3 class=\"lop-card__title\">' + title + '<\/h3>' +\n        (shortDesc ? '<p class=\"lop-card__desc\">' + shortDesc + '<\/p>' : '') +\n        '<a href=\"' + (post.link || '#') + '\" class=\"lop-card__cta\">Scopri <span aria-hidden=\"true\">&rarr;<\/span><\/a>' +\n      '<\/div>' +\n    '<\/article>';\n  }\n\n  \/\/ ========================================================================\n  \/\/ DYNAMIC HOMEPAGE SHOWCASE \u2014 sostituisce i placeholder solo se l'API\n  \/\/ restituisce dati reali, altrimenti lascia l'HTML statico\n  \/\/ ========================================================================\n\n  function renderShowcaseMoreLink(grid, href, text) {\n    if (!grid || !grid.parentNode) return;\n    var existing = grid.parentNode.querySelector('.lop-showcase__more');\n    if (existing) existing.remove();\n\n    var wrap = document.createElement('div');\n    wrap.className = 'lop-showcase__more';\n    wrap.innerHTML = '<a href=\"' + href + '\" class=\"lop-btn lop-btn--secondary\">' + text + '<\/a>';\n    grid.insertAdjacentElement('afterend', wrap);\n  }\n\n  async function initDynamicHomepageShowcase() {\n    var showcases = document.querySelectorAll('.lop-showcase__grid');\n\n    \/\/ ---- EXPERIENCE (prima griglia trovata) ----\n    var expGrid = showcases[0] || null;\n    if (expGrid) {\n      expGrid.classList.add('is-hydrating');\n      try {\n        var allExp = await fetchCpt(['experience'], 100);\n        if (allExp.length) {\n          var featuredExp = allExp.filter(function(post) {\n            return isFeaturedInHome(post.acf || {});\n          });\n          var homepageExp = featuredExp.slice(0, 3);\n\n          if (homepageExp.length) {\n            expGrid.innerHTML = homepageExp.map(buildExperienceCard).join('');\n          } else {\n            expGrid.innerHTML = '<p class=\"lop-showcase__empty\">Nessuna experience in evidenza al momento.<\/p>';\n          }\n\n          renderShowcaseMoreLink(expGrid, '\/experience\/', 'Tutte le experience');\n        }\n      } finally {\n        expGrid.classList.remove('is-hydrating');\n      }\n    }\n\n    \/\/ ---- ITINERARI (seconda griglia trovata) ----\n    var itinGrid = showcases[1] || null;\n    if (itinGrid) {\n      itinGrid.classList.add('is-hydrating');\n      try {\n        var allItin = await fetchCpt(['itinerario'], 100);\n        if (allItin.length) {\n          var featuredItin = allItin.filter(function(post) {\n            return isFeaturedInHome(post.acf || {});\n          });\n          var homepageItin = featuredItin.slice(0, 3);\n\n          if (homepageItin.length) {\n            itinGrid.innerHTML = homepageItin.map(buildItinerarioCard).join('');\n          } else {\n            itinGrid.innerHTML = '<p class=\"lop-showcase__empty\">Nessun itinerario in evidenza al momento.<\/p>';\n          }\n\n          renderShowcaseMoreLink(itinGrid, '\/itinerari\/', 'Tutti gli itinerari');\n        }\n      } finally {\n        itinGrid.classList.remove('is-hydrating');\n      }\n    }\n\n    \/\/ Aggiorna i contatori nella sezione territorio\n    updateTerritoryStats();\n\n    \/\/ Re-init scroll reveal per le nuove card dinamiche\n    initScrollReveal();\n  }\n\n  \/\/ ========================================================================\n  \/\/ TERRITORY STATS \u2014 conta experience e itinerari reali\n  \/\/ ========================================================================\n\n  function animateCounter(el, target, duration) {\n    var startTime = null;\n    function step(timestamp) {\n      if (!startTime) startTime = timestamp;\n      var progress = Math.min((timestamp - startTime) \/ duration, 1);\n      var eased = 1 - Math.pow(1 - progress, 3); \/\/ ease-out cubic\n      el.textContent = Math.round(eased * target);\n      if (progress < 1) requestAnimationFrame(step);\n    }\n    requestAnimationFrame(step);\n  }\n\n  function initCounterAnimation() {\n    var statBlock = document.querySelector('.lop-territory__stat-block');\n    if (!statBlock) return;\n\n    var observed = false;\n    var observer = new IntersectionObserver(function(entries) {\n      if (entries[0].isIntersecting && !observed) {\n        observed = true;\n        statBlock.querySelectorAll('.lop-territory__stat strong').forEach(function(el) {\n          var target = parseInt(el.textContent, 10);\n          if (!isNaN(target) && target > 0) {\n            animateCounter(el, target, 3500);\n          }\n        });\n        observer.disconnect();\n      }\n    }, { threshold: 0.3 });\n    observer.observe(statBlock);\n  }\n\n  async function updateTerritoryStats() {\n    var statEls = document.querySelectorAll('.lop-territory__stat strong');\n    if (statEls.length < 2) return;\n\n    try {\n      var expCount = 0;\n      var itinCount = 0;\n      var endpoints = [\n        { slugs: ['experience'], idx: 0 },\n        { slugs: ['itinerario'], idx: 1 }\n      ];\n\n      for (var e = 0; e < endpoints.length; e++) {\n        for (var s = 0; s < endpoints[e].slugs.length; s++) {\n          try {\n            var res = await fetch('\/wp-json\/wp\/v2\/' + endpoints[e].slugs[s] + '?per_page=1');\n            if (!res.ok) continue;\n            var total = res.headers.get('X-WP-Total');\n            if (total) {\n              if (endpoints[e].idx === 0) expCount = parseInt(total, 10);\n              else itinCount = parseInt(total, 10);\n              break;\n            }\n          } catch (err) {}\n        }\n      }\n\n      if (expCount > 0) statEls[0].textContent = expCount;\n      if (itinCount > 0 && statEls[1]) statEls[1].textContent = itinCount;\n\n      \/\/ Avvia animazione contatore quando visibile\n      initCounterAnimation();\n    } catch (e) {}\n  }\n\n  \/\/ ========================================================================\n  \/\/ INIT\n  \/\/ ========================================================================\n\n  function init() {\n    initHomepageHeaderLogo();\n    \/\/ Hero parallax is handled globally for all pages.\n    initScrollReveal();\n    initSmoothScroll();\n    initSegnalazioni();\n    \/\/ Il showcase dinamico parte per ultimo: quando arriva, fa re-init del reveal\n    initDynamicHomepageShowcase();\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n\n})()\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-62f42d8 elementor-widget elementor-widget-html\" data-id=\"62f42d8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\n\/**\n * SpotMap Component\n * Interactive Leaflet.js map for Levante Outdoor Paradise\n * Carica i pin direttamente dalla WP REST API (experiences + itinerari)\n *\/\n\n\/* ========================================\n   CONSTANTS\n   ======================================== *\/\n\nvar MAP_CENTER = [44.27, 9.38]; \/\/ Sestri Levante\nvar MAP_ZOOM = 12;\n\nvar CATEGORIES = {\n  TUTTI: 'tutti',\n  EXPERIENCE: 'experience',\n  ITINERARIO: 'itinerario',\n};\n\nvar HIDDEN_FILTERS_ITINERARIO = ['climbing', 'wellness'];\n\n\/* ========================================\n   KNOWN PINS \u2014 sorgente di verit\u00e0 per coordinate e categoria\n   ========================================\n   I pin elencati qui appaiono SEMPRE sulla mappa con le coordinate e la\n   categoria definite. Se la WP REST API restituisce un post con titolo\n   corrispondente (match normalizzato), i suoi dati vengono usati per\n   arricchire il pin (immagine, link, durata, livello). I post REST che\n   non corrispondono a nessun known pin vengono comunque mostrati se hanno\n   coordinate ACF valide. *\/\n\/\/ Override immagini: alcuni post WP non restituiscono cover_image\/featured media\n\/\/ utilizzabili via REST. Stessi URL usati in homepage.js \u2192 EXPERIENCE_IMAGE_OVERRIDES.\nvar KNOWN_PINS = [\n  \/\/ EXPERIENCES\n  { title: \"Kayak Tour \u2013 Baia dell'Oro\",                                lat: 44.27546697300988,  lng: 9.381099767488072, tipo: 'experience', categoria: 'sea',\n    image: 'https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/experience_kayak_group_line_sea_02-scaled.jpg' },\n  { title: \"Kayak & Snorkeling Experience\",                             lat: 44.25103889759732,  lng: 9.40416810332227,  tipo: 'experience', categoria: 'sea',\n    image: 'https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/hero_sea_kayak_drone_cliff_01-scaled.jpg' },\n  { title: \"Kayak & Degustazione Locale\",                               lat: 44.2688620467443,   lng: 9.39383410687676,  tipo: 'experience', categoria: 'sea',\n    image: 'https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/experience_kayak_group_top_view_01-scaled.jpg' },\n  { title: \"Stand Up Paddle \u2013 Falesie & Acque Cristalline\",             lat: 44.26610392110658,  lng: 9.395368330344446, tipo: 'experience', categoria: 'sea' },\n  { title: \"SUP & Snorkeling Experience\",                               lat: 44.25334433747694,  lng: 9.399576161754652, tipo: 'experience', categoria: 'sea' },\n  { title: \"Trekking Punta Manara\",                                     lat: 44.25255518996659,  lng: 9.404305362370929, tipo: 'experience', categoria: 'hiking' },\n  { title: \"Trekking Punta Baffe\",                                      lat: 44.242627564178676, lng: 9.443115775352553, tipo: 'experience', categoria: 'hiking' },\n  { title: \"E-Bike Adventure \u2013 Tour Guidato\",                           lat: 44.309188407012265, lng: 9.478598268245584, tipo: 'experience', categoria: 'mtb' },\n  { title: \"Shuttle MTB \u2013 Accesso ai Trail\",                            lat: 44.32363216482459,  lng: 9.502658824430231, tipo: 'experience', categoria: 'mtb' },\n  { title: \"Noleggio E-MTB Focus Jam\",                                  lat: 44.26022794528161,  lng: 9.420648808762275, tipo: 'experience', categoria: 'mtb' },\n  { title: \"Noleggio City E-Bike\",                                      lat: 44.25248916732953,  lng: 9.43460770342634,  tipo: 'experience', categoria: 'mtb' },\n  \/\/ ITINERARI\n  { title: \"SEA TRAIL \u2013 La Baia dell'Oro & Punta Manara Sea Experience\",lat: 44.25365172263256,  lng: 9.41034791253477,  tipo: 'itinerario', categoria: 'sea' },\n  { title: \"HIKING TRAIL - Sestri Panorama Trail\",                      lat: 44.256817696235665, lng: 9.405412648233122, tipo: 'itinerario', categoria: 'hiking' },\n  { title: \"BIKE TRAIL - Ridge to Sea E-Bike Adventure\",                lat: 44.30804447099892,  lng: 9.480733306497818, tipo: 'itinerario', categoria: 'mtb' },\n  { title: \"CULTURE & TASTE \u2013 Borghi, Ulivi e Tradizioni\",              lat: 44.28020142200612,  lng: 9.411021900775939, tipo: 'itinerario', categoria: 'enogastronomia' },\n  { title: \"RELIGIOUS ROUTES \u2013 Percorsi Religiosi & Luoghi Votivi\",     lat: 44.28339441190588,  lng: 9.387639622018941, tipo: 'itinerario', categoria: 'hiking' },\n];\n\n\/\/ Decodifica entit\u00e0 HTML come &#038; (\u2192 &), &#8211; (\u2192 \u2013), &#8217; (\u2192 '), &amp;\n\/\/ WP REST restituisce post.title.rendered con queste entit\u00e0, e senza decodifica\n\/\/ la normalizzazione produce chiavi sbagliate (\"kayak 038 snorkeling\" invece di\n\/\/ \"kayak snorkeling\"), facendo fallire il merge con i KNOWN_PINS.\nfunction decodeHtmlEntities(value) {\n  if (!value) return '';\n  var txt = document.createElement('textarea');\n  txt.innerHTML = value;\n  return txt.value;\n}\n\nfunction normalizeTitle(s) {\n  return decodeHtmlEntities((s || '').toString())\n    .toLowerCase()\n    .normalize('NFD').replace(\/[\\u0300-\\u036f]\/g, '') \/\/ strip accents\n    .replace(\/[\\u2018\\u2019\\u201A\\u201B'`]\/g, '')     \/\/ strip apostrofi tipografici\/dritti\n    .replace(\/[\\u201C\\u201D\\u201E\\u201F\"]\/g, '')      \/\/ strip virgolette tipografiche\n    .replace(\/[^a-z0-9]+\/g, ' ')                       \/\/ non-alfanum \u2192 spazio\n    .trim();\n}\n\n\/* ========================================\n   SPOTMAP STATE\n   ======================================== *\/\n\nvar spotmapState = {\n  map: null,\n  pins: [],\n  markers: [],\n  hasAutoFitted: false,\n  userInteracted: false,\n  activeFilters: {\n    tipo: CATEGORIES.TUTTI,\n    categoria: [],\n  },\n};\n\n\/* ========================================\n   INITIALIZATION\n   ======================================== *\/\n\ndocument.addEventListener('DOMContentLoaded', function() {\n  var mapContainer = document.querySelector('#lop-spotmap, .lop-spotmap__map');\n  if (!mapContainer) return;\n\n  if (typeof L !== 'undefined') {\n    initSpotmap();\n  } else {\n    loadLeaflet(initSpotmap);\n  }\n});\n\nfunction loadLeaflet(callback) {\n  if (!document.querySelector('link[href*=\"leaflet\"]')) {\n    var css = document.createElement('link');\n    css.rel = 'stylesheet';\n    css.href = 'https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css';\n    document.head.appendChild(css);\n  }\n  var script = document.createElement('script');\n  script.src = 'https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js';\n  script.onload = callback;\n  document.head.appendChild(script);\n}\n\nfunction initSpotmap() {\n  var mapContainer = document.querySelector('#lop-spotmap, .lop-spotmap__map');\n  if (!mapContainer || typeof L === 'undefined') return;\n\n  initMap(mapContainer.id || 'lop-spotmap');\n  initFilters();\n  fetchPinsFromREST();\n}\n\n\/* ========================================\n   MAP INITIALIZATION\n   ======================================== *\/\n\nfunction initMap(containerId) {\n  spotmapState.map = L.map(containerId, {\n    center: MAP_CENTER,\n    zoom: MAP_ZOOM,\n    \/\/ Lo scroll della pagina NON deve fare zoom sulla mappa: lo zoom desktop\n    \/\/ si fa con i pulsanti +\/- (leaflet zoom control). Su mobile resta attivo\n    \/\/ il pinch-to-zoom, che \u00e8 gi\u00e0 controllato da `touchZoom` (default: true).\n    scrollWheelZoom: false,\n    attributionControl: true,\n  });\n\n  L.tileLayer('https:\/\/{s}.tile.openstreetmap.org\/{z}\/{x}\/{y}.png', {\n    attribution: '&copy; <a href=\"https:\/\/www.openstreetmap.org\/copyright\">OpenStreetMap<\/a> contributors',\n    maxZoom: 19,\n  }).addTo(spotmapState.map);\n\n  \/\/ Se l'utente muove\/zooma manualmente, non facciamo piu' recenter automatici.\n  spotmapState.map.on('dragstart zoomstart', function(e) {\n    if (e && e.originalEvent) {\n      spotmapState.userInteracted = true;\n    }\n  });\n}\n\n\/* ========================================\n   FETCH PINS \u2014 dalla WP REST API standard\n   Usa i CPT experiences + itinerari con campi ACF\n   ======================================== *\/\n\nasync function fetchPinsFromREST() {\n  \/\/ 1. Inizializza i pin dal known list \u2014 sono la sorgente di verit\u00e0 per\n  \/\/    coordinate e categoria. Vengono mostrati anche se il post WP non esiste.\n  var pinsByKey = {};\n  KNOWN_PINS.forEach(function(p) {\n    pinsByKey[normalizeTitle(p.title)] = {\n      lat: p.lat,\n      lng: p.lng,\n      tipo: p.tipo,\n      categoria: p.categoria,\n      title: p.title,\n      image: p.image || '',\n      duration: p.duration || '',\n      level: p.level || '',\n      url: p.url || '',\n    };\n  });\n\n  \/\/ Render immediato dei pin noti: evita il \"salto\" visivo quando la REST risponde in ritardo.\n  var initialPins = Object.keys(pinsByKey).map(function(k) { return pinsByKey[k]; });\n  spotmapState.pins = initialPins;\n  renderAllPins();\n  fitMapToPins(initialPins);\n\n  \/\/ 2. Arricchisci con i dati REST quando il titolo combacia\n  var expPosts = await fetchCptPosts(['experience']);\n  expPosts.forEach(function(post) { mergePostIntoPins(pinsByKey, post, 'experience'); });\n\n  var itinPosts = await fetchCptPosts(['itinerario']);\n  itinPosts.forEach(function(post) { mergePostIntoPins(pinsByKey, post, 'itinerario'); });\n\n  \/\/ 3. Render\n  var allPins = Object.keys(pinsByKey).map(function(k) { return pinsByKey[k]; });\n  spotmapState.pins = allPins;\n  renderAllPins();\n  fitMapToPins(allPins);\n}\n\nfunction fitMapToPins(pins) {\n  if (!spotmapState.map || !Array.isArray(pins) || pins.length === 0) return;\n  if (spotmapState.hasAutoFitted || spotmapState.userInteracted) return;\n\n  var bounds = pins.map(function(p) { return [p.lat, p.lng]; });\n  spotmapState.map.fitBounds(bounds, {\n    padding: [40, 40],\n    maxZoom: 14,\n    animate: false,\n  });\n  spotmapState.hasAutoFitted = true;\n}\n\nfunction mergePostIntoPins(pinsByKey, post, tipo) {\n  var rawTitle = post.title && post.title.rendered\n    ? decodeHtmlEntities(post.title.rendered.replace(\/<[^>]*>\/g, ''))\n    : '';\n  var key = normalizeTitle(rawTitle);\n  var data = extractPostData(post);\n  var existing = pinsByKey[key];\n\n  if (existing) {\n    \/\/ Merge: i dati REST non sovrascrivono coordinate\/categoria\/tipo del known pin.\n    if (data.image && !existing.image) existing.image = data.image;\n    if (data.url && !existing.url) existing.url = data.url;\n    if (data.duration && !existing.duration) existing.duration = data.duration;\n    if (data.level && !existing.level) existing.level = data.level;\n    return;\n  }\n\n  \/\/ Post non noto: lo aggiungiamo SOLO se ha coordinate ACF reali.\n  \/\/ (Niente pi\u00f9 fallback random vicino a Sestri.)\n  var coords = extractCoords(post);\n  if (!coords) return;\n\n  pinsByKey[key] = {\n    lat: coords.lat,\n    lng: coords.lng,\n    tipo: tipo,\n    categoria: data.categoria || normalizeCategory(rawTitle),\n    title: rawTitle,\n    image: data.image,\n    duration: data.duration,\n    level: data.level,\n    url: data.url,\n  };\n}\n\nfunction extractCoords(post) {\n  var acf = post.acf || {};\n  if (acf.start_lat && acf.start_lng) {\n    var la = parseFloat(acf.start_lat);\n    var ln = parseFloat(acf.start_lng);\n    if (!isNaN(la) && !isNaN(ln)) return { lat: la, lng: ln };\n  }\n  if (acf.coordinates) {\n    var parts = acf.coordinates.split(',').map(function(s) { return parseFloat(s.trim()); });\n    if (parts.length === 2 && !isNaN(parts[0]) && !isNaN(parts[1])) {\n      return { lat: parts[0], lng: parts[1] };\n    }\n  }\n  return null;\n}\n\nfunction isUsableImage(value) {\n  if (!value || typeof value !== 'string') return false;\n  var normalized = value.trim().toLowerCase();\n  return normalized !== '' && normalized !== 'undefined' && normalized !== 'null';\n}\n\n\/\/ Estrae un URL da un campo ACF che pu\u00f2 essere una stringa o un oggetto attachment\n\/\/ con .url e .sizes.{large,medium_large}. Allineato a homepage.js \u2192 imageUrlFromField.\nfunction imageUrlFromAcfField(field) {\n  if (!field) return '';\n  if (typeof field === 'string') return isUsableImage(field) ? field : '';\n  if (field.url && isUsableImage(field.url)) return field.url;\n  if (field.sizes && isUsableImage(field.sizes.large)) return field.sizes.large;\n  if (field.sizes && isUsableImage(field.sizes.medium_large)) return field.sizes.medium_large;\n  return '';\n}\n\nfunction extractImageFromPost(post) {\n  var acf = post.acf || {};\n\n  \/\/ 1. cover_image (campo ACF diretto)\n  var fromCover = imageUrlFromAcfField(acf.cover_image);\n  if (fromCover) return fromCover;\n\n  \/\/ 2. gallery_image_1 (campo ACF diretto)\n  var fromGallery = imageUrlFromAcfField(acf.gallery_image_1);\n  if (fromGallery) return fromGallery;\n\n  \/\/ 3. Prima immagine della experience_gallery (repeater\/array ACF)\n  if (Array.isArray(acf.experience_gallery) && acf.experience_gallery.length) {\n    var firstExp = imageUrlFromAcfField(acf.experience_gallery[0]);\n    if (firstExp) return firstExp;\n  }\n\n  \/\/ 4. Prima immagine della itinerario_gallery (repeater\/array ACF)\n  if (Array.isArray(acf.itinerario_gallery) && acf.itinerario_gallery.length) {\n    var firstItin = imageUrlFromAcfField(acf.itinerario_gallery[0]);\n    if (firstItin) return firstItin;\n  }\n\n  \/\/ 5. Featured media WP (richiede ?_embed sulla request REST)\n  if (post._embedded && post._embedded['wp:featuredmedia'] && post._embedded['wp:featuredmedia'][0]) {\n    var featured = post._embedded['wp:featuredmedia'][0].source_url;\n    if (isUsableImage(featured)) return featured;\n  }\n\n  return '';\n}\n\nfunction extractPostData(post) {\n  var acf = post.acf || {};\n  return {\n    image: extractImageFromPost(post),\n    duration: acf.duration || '',\n    level: acf.difficulty || acf.level || '',\n    url: post.link || '',\n    categoria: normalizeCategory(acf.level || acf.status || acf.mode || ''),\n  };\n}\n\nasync function fetchCptPosts(slugs) {\n  for (var i = 0; i < slugs.length; i++) {\n    try {\n      var res = await fetch('\/wp-json\/wp\/v2\/' + slugs[i] + '?per_page=100&_embed');\n      if (!res.ok) continue;\n      var data = await res.json();\n      if (Array.isArray(data) && data.length > 0) return data;\n    } catch (e) {}\n  }\n  return [];\n}\n\nfunction normalizeCategory(value) {\n  var v = (value || '').toString().toLowerCase();\n  if (v.indexOf('sea') > -1 || v.indexOf('mare') > -1 || v.indexOf('kayak') > -1 || v.indexOf('sup') > -1) return 'sea';\n  if (v.indexOf('hiking') > -1 || v.indexOf('trek') > -1) return 'hiking';\n  if (v.indexOf('mtb') > -1 || v.indexOf('bike') > -1) return 'mtb';\n  if (v.indexOf('climb') > -1 || v.indexOf('arrampic') > -1) return 'climbing';\n  if (v.indexOf('well') > -1) return 'wellness';\n  if (v.indexOf('enog') > -1) return 'enogastronomia';\n  return 'hiking'; \/\/ default\n}\n\n\/* ========================================\n   PIN RENDERING\n   ======================================== *\/\n\nfunction renderAllPins() {\n  clearMarkers();\n\n  spotmapState.pins.forEach(function(pin) {\n    if (shouldShowPin(pin)) {\n      addPinToMap(pin);\n    }\n  });\n}\n\nfunction shouldShowPin(pin) {\n  if (spotmapState.activeFilters.tipo !== CATEGORIES.TUTTI && pin.tipo !== spotmapState.activeFilters.tipo) {\n    return false;\n  }\n  if (spotmapState.activeFilters.categoria.length > 0) {\n    if (!spotmapState.activeFilters.categoria.includes(pin.categoria)) {\n      return false;\n    }\n  }\n  return true;\n}\n\nfunction addPinToMap(pin) {\n  var iconClass = 'lop-pin lop-pin--' + pin.tipo;\n  if (pin.categoria) iconClass += ' lop-pin--cat-' + pin.categoria;\n  var icon = L.divIcon({\n    className: iconClass,\n    html: '<div class=\"lop-pin__dot\"><\/div>',\n    iconSize: [32, 32],\n    iconAnchor: [16, 16],\n    popupAnchor: [0, -16],\n  });\n\n  var marker = L.marker([pin.lat, pin.lng], { icon: icon });\n  marker.bindPopup(buildPopupHTML(pin), { maxWidth: 300, className: 'lop-popup' });\n  marker.addTo(spotmapState.map);\n  spotmapState.markers.push(marker);\n}\n\nfunction buildPopupHTML(pin) {\n  var imageSrc = pin.image || 'data:image\/svg+xml,%3Csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"280\" height=\"160\"%3E%3Crect fill=\"%23e5e5e5\" width=\"280\" height=\"160\"\/%3E%3C\/svg%3E';\n\n  var metaHTML = '';\n  if (pin.duration || pin.level) {\n    metaHTML = '<div class=\"lop-popup__meta\">';\n    if (pin.duration) metaHTML += '<span class=\"lop-popup__meta-item\">' + pin.duration + '<\/span>';\n    if (pin.level) metaHTML += '<span class=\"lop-popup__meta-item\">' + pin.level + '<\/span>';\n    metaHTML += '<\/div>';\n  }\n\n  var buttonHTML = pin.url\n    ? '<a href=\"' + pin.url + '\" class=\"lop-popup__button\">Scopri<\/a>'\n    : '';\n\n  return '<div class=\"lop-popup__inner\">' +\n    '<img decoding=\"async\" src=\"' + imageSrc + '\" alt=\"' + escapeHtml(pin.title) + '\" class=\"lop-popup__image\" \/>' +\n    '<div class=\"lop-popup__content\">' +\n      '<h3 class=\"lop-popup__title\">' + escapeHtml(pin.title) + '<\/h3>' +\n      metaHTML +\n      buttonHTML +\n    '<\/div>' +\n  '<\/div>';\n}\n\nfunction escapeHtml(text) {\n  var div = document.createElement('div');\n  div.textContent = text || '';\n  return div.innerHTML;\n}\n\nfunction clearMarkers() {\n  spotmapState.markers.forEach(function(marker) {\n    spotmapState.map.removeLayer(marker);\n  });\n  spotmapState.markers = [];\n}\n\n\/* ========================================\n   FILTER SYSTEM\n   ======================================== *\/\n\nfunction initFilters() {\n  var tipoButtons = document.querySelectorAll('[data-tipo]');\n  var categoryButtons = document.querySelectorAll('[data-category]');\n\n  tipoButtons.forEach(function(btn) {\n    btn.addEventListener('click', function(e) {\n      e.preventDefault();\n      setTipoFilter(btn.dataset.tipo);\n    });\n  });\n\n  categoryButtons.forEach(function(btn) {\n    btn.addEventListener('click', function(e) {\n      e.preventDefault();\n      toggleCategoryFilter(btn.dataset.category);\n    });\n  });\n\n  updateFilterUI();\n}\n\nfunction setTipoFilter(tipo) {\n  spotmapState.activeFilters.tipo = tipo;\n  spotmapState.activeFilters.categoria = [];\n  updateFilterUI();\n  renderAllPins();\n}\n\nfunction toggleCategoryFilter(categoria) {\n  var index = spotmapState.activeFilters.categoria.indexOf(categoria);\n  if (index > -1) {\n    spotmapState.activeFilters.categoria.splice(index, 1);\n  } else {\n    spotmapState.activeFilters.categoria.push(categoria);\n  }\n  updateFilterUI();\n  renderAllPins();\n}\n\nfunction updateFilterUI() {\n  document.querySelectorAll('[data-tipo]').forEach(function(btn) {\n    btn.classList.toggle('is-active', btn.dataset.tipo === spotmapState.activeFilters.tipo);\n  });\n\n  document.querySelectorAll('[data-category]').forEach(function(btn) {\n    var cat = btn.dataset.category;\n    var shouldHide = spotmapState.activeFilters.tipo === CATEGORIES.ITINERARIO && HIDDEN_FILTERS_ITINERARIO.includes(cat);\n    btn.classList.toggle('lop-filter--hidden', shouldHide);\n    btn.classList.toggle('is-active', spotmapState.activeFilters.categoria.includes(cat));\n  });\n}\n\n\/* ========================================\n   PUBLIC API\n   ======================================== *\/\n\nwindow.SpotMap = {\n  state: spotmapState,\n  renderAllPins: renderAllPins,\n  setTipoFilter: setTipoFilter,\n  toggleCategoryFilter: toggleCategoryFilter,\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>Levante Outdoor Paradise e il punto di riferimento per scoprire il Levante Ligure in chiave outdoor. Dalla homepage accedi a experience, itinerari e contenuti utili per pianificare attivita tra costa, entroterra e borghi, con proposte adatte a diversi livelli ed esigenze.<\/p>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-9","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Levante Outdoor Paradise - Experience e itinerari nel Levante Ligure<\/title>\n<meta name=\"description\" content=\"Vivi il Levante Ligure all aria aperta: experience outdoor, itinerari self-guided, mare, sentieri, borghi e natura.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/levanteoutdoor.it\/en\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Levante Outdoor Paradise - Experience e itinerari nel Levante Ligure\" \/>\n<meta property=\"og:description\" content=\"Vivi il Levante Ligure all aria aperta: experience outdoor, itinerari self-guided, mare, sentieri, borghi e natura.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/levanteoutdoor.it\/en\/\" \/>\n<meta property=\"og:site_name\" content=\"Levante Outdoor Paradise\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/levanteoutdoor\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-21T15:17:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/Logo-Levante-Background-Black-e1775728088688.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/levanteoutdoor.it\\\/\",\"url\":\"https:\\\/\\\/levanteoutdoor.it\\\/\",\"name\":\"Levante Outdoor Paradise - Experience e itinerari nel Levante Ligure\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/levanteoutdoor.it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/levanteoutdoor.it\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/levanteoutdoor.it\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/levanteoutdoor.it\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Logo-Levante-Background-Black-e1775728088688.png\",\"datePublished\":\"2026-04-07T11:00:43+00:00\",\"dateModified\":\"2026-07-21T15:17:24+00:00\",\"description\":\"Vivi il Levante Ligure all aria aperta: experience outdoor, itinerari self-guided, mare, sentieri, borghi e natura.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/levanteoutdoor.it\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/levanteoutdoor.it\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/levanteoutdoor.it\\\/#primaryimage\",\"url\":\"https:\\\/\\\/levanteoutdoor.it\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Logo-Levante-Background-Black-e1775728088688.png\",\"contentUrl\":\"https:\\\/\\\/levanteoutdoor.it\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Logo-Levante-Background-Black-e1775728088688.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/levanteoutdoor.it\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/levanteoutdoor.it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Homepage\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/levanteoutdoor.it\\\/#website\",\"url\":\"https:\\\/\\\/levanteoutdoor.it\\\/\",\"name\":\"Levante Outdoor Paradise\",\"description\":\"Il levante a portata di click\",\"publisher\":{\"@id\":\"https:\\\/\\\/levanteoutdoor.it\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/levanteoutdoor.it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/levanteoutdoor.it\\\/#organization\",\"name\":\"Levante Outdoor Paradise\",\"url\":\"https:\\\/\\\/levanteoutdoor.it\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/levanteoutdoor.it\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/levanteoutdoor.it\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Logo-Levante-e1775727722786.png\",\"contentUrl\":\"https:\\\/\\\/levanteoutdoor.it\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Logo-Levante-e1775727722786.png\",\"width\":535,\"height\":119,\"caption\":\"Levante Outdoor Paradise\"},\"image\":{\"@id\":\"https:\\\/\\\/levanteoutdoor.it\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/levanteoutdoor\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Levante Outdoor Paradise - Experience e itinerari nel Levante Ligure","description":"Vivi il Levante Ligure all aria aperta: experience outdoor, itinerari self-guided, mare, sentieri, borghi e natura.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/levanteoutdoor.it\/en\/","og_locale":"en_US","og_type":"article","og_title":"Levante Outdoor Paradise - Experience e itinerari nel Levante Ligure","og_description":"Vivi il Levante Ligure all aria aperta: experience outdoor, itinerari self-guided, mare, sentieri, borghi e natura.","og_url":"https:\/\/levanteoutdoor.it\/en\/","og_site_name":"Levante Outdoor Paradise","article_publisher":"https:\/\/www.facebook.com\/levanteoutdoor\/","article_modified_time":"2026-07-21T15:17:24+00:00","og_image":[{"url":"https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/Logo-Levante-Background-Black-e1775728088688.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/levanteoutdoor.it\/","url":"https:\/\/levanteoutdoor.it\/","name":"Levante Outdoor Paradise - Experience e itinerari nel Levante Ligure","isPartOf":{"@id":"https:\/\/levanteoutdoor.it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/levanteoutdoor.it\/#primaryimage"},"image":{"@id":"https:\/\/levanteoutdoor.it\/#primaryimage"},"thumbnailUrl":"https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/Logo-Levante-Background-Black-e1775728088688.png","datePublished":"2026-04-07T11:00:43+00:00","dateModified":"2026-07-21T15:17:24+00:00","description":"Vivi il Levante Ligure all aria aperta: experience outdoor, itinerari self-guided, mare, sentieri, borghi e natura.","breadcrumb":{"@id":"https:\/\/levanteoutdoor.it\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/levanteoutdoor.it\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/levanteoutdoor.it\/#primaryimage","url":"https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/Logo-Levante-Background-Black-e1775728088688.png","contentUrl":"https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/Logo-Levante-Background-Black-e1775728088688.png"},{"@type":"BreadcrumbList","@id":"https:\/\/levanteoutdoor.it\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/levanteoutdoor.it\/"},{"@type":"ListItem","position":2,"name":"Homepage"}]},{"@type":"WebSite","@id":"https:\/\/levanteoutdoor.it\/#website","url":"https:\/\/levanteoutdoor.it\/","name":"Levante Outdoor Paradise","description":"Il levante a portata di click","publisher":{"@id":"https:\/\/levanteoutdoor.it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/levanteoutdoor.it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/levanteoutdoor.it\/#organization","name":"Levante Outdoor Paradise","url":"https:\/\/levanteoutdoor.it\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/levanteoutdoor.it\/#\/schema\/logo\/image\/","url":"https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/Logo-Levante-e1775727722786.png","contentUrl":"https:\/\/levanteoutdoor.it\/wp-content\/uploads\/2026\/04\/Logo-Levante-e1775727722786.png","width":535,"height":119,"caption":"Levante Outdoor Paradise"},"image":{"@id":"https:\/\/levanteoutdoor.it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/levanteoutdoor\/"]}]}},"_links":{"self":[{"href":"https:\/\/levanteoutdoor.it\/en\/wp-json\/wp\/v2\/pages\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/levanteoutdoor.it\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/levanteoutdoor.it\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/levanteoutdoor.it\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/levanteoutdoor.it\/en\/wp-json\/wp\/v2\/comments?post=9"}],"version-history":[{"count":268,"href":"https:\/\/levanteoutdoor.it\/en\/wp-json\/wp\/v2\/pages\/9\/revisions"}],"predecessor-version":[{"id":1883,"href":"https:\/\/levanteoutdoor.it\/en\/wp-json\/wp\/v2\/pages\/9\/revisions\/1883"}],"wp:attachment":[{"href":"https:\/\/levanteoutdoor.it\/en\/wp-json\/wp\/v2\/media?parent=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}