{"id":24,"date":"2026-09-19T13:32:52","date_gmt":"2026-09-19T13:32:52","guid":{"rendered":"https:\/\/www.accademiagustavmahler.it\/home\/"},"modified":"2026-11-03T19:16:12","modified_gmt":"2026-11-03T19:16:12","slug":"home","status":"publish","type":"page","link":"https:\/\/www.accademiagustavmahler.it\/en\/","title":{"rendered":"Home"},"content":{"rendered":"\n<div class=\"wp-block-group alignfull ext-animate--on mahler-home-slider has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-cover alignfull has-custom-content-position is-position-center-left ext-animate--on mahler-new-hero mahler-home-slide mahler-home-slide-1\" style=\"min-height:680px;aspect-ratio:unset;\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" class=\"wp-block-cover__image-background wp-image-109 size-large\" alt=\"\" src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/accademia-gustav-mahler-home-1600x1200-1-1024x768.webp\" data-object-fit=\"cover\" srcset=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/accademia-gustav-mahler-home-1600x1200-1-1024x768.webp 1024w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/accademia-gustav-mahler-home-1600x1200-1-300x225.webp 300w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/accademia-gustav-mahler-home-1600x1200-1-768x576.webp 768w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/accademia-gustav-mahler-home-1600x1200-1-1536x1152.webp 1536w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/accademia-gustav-mahler-home-1600x1200-1-16x12.webp 16w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/accademia-gustav-mahler-home-1600x1200-1.webp 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-40 has-background-dim\" style=\"background-color:#102a43\"><\/span><div class=\"wp-block-cover__inner-container has-global-padding is-layout-constrained wp-block-cover-is-layout-constrained\">\n<p class=\"ext-animate--on mahler-home-slide-kicker wp-block-paragraph\">ACCADEMIA MUSICALE \u201cGUSTAV MAHLER\u201d<\/p>\n\n\n\n<h1 class=\"wp-block-heading has-text-align-left ext-animate--on mahler-hero-title\" style=\"font-size:clamp(35.2px, 2.2rem + ((1vw - 3.2px) * 1.8), 64px);\">La&nbsp;musica,&nbsp;<br>la&nbsp;nostra&nbsp;storia<\/h1>\n\n\n\n<p class=\"ext-animate--on mahler-hero-intro has-custom-css wp-custom-css-ada8c59a wp-block-paragraph\">Dal 1986, l\u2019Accademia Musicale \u201cGustav Mahler\u201d di Trebisacce promuove la formazione musicale, la crescita artistica e la cultura attraverso corsi, percorsi di perfezionamento, masterclass, concorsi ed eventi musicali.<\/p>\n\n\n\n<div class=\"wp-block-buttons ext-animate--on is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button mahler-hero-btn ext-animate--on\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/www.accademiagustavmahler.it\/accademia\/\" style=\"border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;background-color:#102a43\">Scopri l\u2019Accademia<\/a><\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-cover alignfull has-custom-content-position is-position-center-left ext-animate--on mahler-new-hero mahler-home-slide mahler-home-slide-2\" style=\"min-height:680px;aspect-ratio:unset;\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"684\" class=\"wp-block-cover__image-background wp-image-644 size-large\" alt=\"\" src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_HOME_02_Didattica_Pianoforte_Accademia-1024x684.png\" data-object-fit=\"cover\" srcset=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_HOME_02_Didattica_Pianoforte_Accademia-1024x684.png 1024w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_HOME_02_Didattica_Pianoforte_Accademia-300x200.png 300w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_HOME_02_Didattica_Pianoforte_Accademia-768x513.png 768w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_HOME_02_Didattica_Pianoforte_Accademia-18x12.png 18w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_HOME_02_Didattica_Pianoforte_Accademia.png 1535w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-40 has-background-dim\" style=\"background-color:#102a43\"><\/span><div class=\"wp-block-cover__inner-container has-global-padding is-layout-constrained wp-block-cover-is-layout-constrained\">\n<p class=\"ext-animate--on mahler-home-slide-kicker wp-block-paragraph\">DIDATTICA<\/p>\n\n\n\n<h1 class=\"wp-block-heading has-text-align-left ext-animate--on mahler-hero-title\" style=\"font-size:clamp(35.2px, 2.2rem + ((1vw - 3.2px) * 1.8), 64px);\">Dove il talento prende forma<\/h1>\n\n\n\n<p class=\"ext-animate--on mahler-hero-intro has-custom-css wp-custom-css-7dfde4f4 wp-block-paragraph\">Percorsi di formazione musicale, studio dello strumento, musica d\u2019insieme e perfezionamento: un\u2019esperienza costruita per accompagnare ogni musicista nella propria crescita.<\/p>\n\n\n\n<div class=\"wp-block-buttons ext-animate--on is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button mahler-hero-btn ext-animate--on\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/www.accademiagustavmahler.it\/didattica\/\" style=\"border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;background-color:#102a43\">Scopri la Didattica<\/a><\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-cover alignfull has-custom-content-position is-position-center-left ext-animate--on mahler-new-hero mahler-home-slide mahler-home-slide-3\" style=\"min-height:680px;aspect-ratio:unset;\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" class=\"wp-block-cover__image-background wp-image-650 size-large\" alt=\"\" src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/Ionio_Hero_01_Editoriale_Desktop_3840x2160-1024x576.webp\" data-object-fit=\"cover\" srcset=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/Ionio_Hero_01_Editoriale_Desktop_3840x2160-1024x576.webp 1024w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/Ionio_Hero_01_Editoriale_Desktop_3840x2160-300x169.webp 300w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/Ionio_Hero_01_Editoriale_Desktop_3840x2160-768x432.webp 768w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/Ionio_Hero_01_Editoriale_Desktop_3840x2160-1536x864.webp 1536w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/Ionio_Hero_01_Editoriale_Desktop_3840x2160-2048x1152.webp 2048w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/Ionio_Hero_01_Editoriale_Desktop_3840x2160-18x10.webp 18w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-40 has-background-dim\" style=\"background-color:#102a43\"><\/span><div class=\"wp-block-cover__inner-container has-global-padding is-layout-constrained wp-block-cover-is-layout-constrained\">\n<p class=\"ext-animate--on mahler-home-slide-kicker wp-block-paragraph\">IONIO INTERNATIONAL MUSIC FESTIVAL<\/p>\n\n\n\n<h1 class=\"wp-block-heading has-text-align-left ext-animate--on mahler-hero-title\" style=\"font-size:clamp(35.2px, 2.2rem + ((1vw - 3.2px) * 1.8), 64px);\">Musica oltre l\u2019orizzonte<\/h1>\n\n\n\n<p class=\"ext-animate--on mahler-hero-intro has-custom-css wp-custom-css-ee9d1b72 wp-block-paragraph\">L\u2019Ionio International Music Festival porta concerti, artisti e nuove esperienze musicali nei luoghi dell\u2019Alto Ionio e non solo, creando un incontro continuo tra musica, cultura e territorio.<\/p>\n\n\n\n<div class=\"wp-block-buttons ext-animate--on is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button mahler-hero-btn ext-animate--on\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/www.accademiagustavmahler.it\/ionio-international-music-festival\/\" style=\"border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;background-color:#102a43\">Scopri il Festival<\/a><\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-cover alignfull has-custom-content-position is-position-center-left ext-animate--on mahler-new-hero mahler-home-slide mahler-home-slide-4 mahler-slide-concorso\" style=\"min-height:680px;aspect-ratio:unset;\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" class=\"wp-block-cover__image-background wp-image-722 size-large\" alt=\"\" src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/Concorso_Mahler_Hero_01_Editoriale_Desktop_3840x2160-1024x576.webp\" data-object-fit=\"cover\" srcset=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/Concorso_Mahler_Hero_01_Editoriale_Desktop_3840x2160-1024x576.webp 1024w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/Concorso_Mahler_Hero_01_Editoriale_Desktop_3840x2160-300x169.webp 300w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/Concorso_Mahler_Hero_01_Editoriale_Desktop_3840x2160-768x432.webp 768w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/Concorso_Mahler_Hero_01_Editoriale_Desktop_3840x2160-1536x864.webp 1536w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/Concorso_Mahler_Hero_01_Editoriale_Desktop_3840x2160-2048x1152.webp 2048w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/Concorso_Mahler_Hero_01_Editoriale_Desktop_3840x2160-18x10.webp 18w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-40 has-background-dim\" style=\"background-color:#102a43\"><\/span><div class=\"wp-block-cover__inner-container has-global-padding is-layout-constrained wp-block-cover-is-layout-constrained\">\n<p class=\"ext-animate--on mahler-home-slide-kicker wp-block-paragraph\">CONCORSO INTERNAZIONALE DI MUSICA \u201cGUSTAV MAHLER\u201d<\/p>\n\n\n\n<h1 class=\"wp-block-heading has-text-align-left ext-animate--on mahler-hero-title\" style=\"font-size:clamp(35.2px, 2.2rem + ((1vw - 3.2px) * 1.8), 64px);\">Il talento incontra il palcoscenico<\/h1>\n\n\n\n<p class=\"ext-animate--on mahler-hero-intro has-custom-css wp-custom-css-687fc2fc wp-block-paragraph\">Il Concorso Internazionale di Musica \u201cGustav Mahler\u201d riunisce giovani musicisti, professionisti e istituzioni in un\u2019esperienza di confronto, crescita artistica e condivisione musicale.<\/p>\n\n\n\n<div class=\"wp-block-buttons ext-animate--on is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button mahler-hero-btn ext-animate--on\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/www.accademiagustavmahler.it\/concorso-internazionale-di-musica-gustav-mahler\/\" style=\"border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;background-color:#102a43\">Scopri il Concorso<\/a><\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-cover alignfull has-custom-content-position is-position-center-left ext-animate--on mahler-new-hero mahler-home-slide mahler-home-slide-5\" style=\"min-height:680px;aspect-ratio:unset;\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" class=\"wp-block-cover__image-background wp-image-655 size-large\" alt=\"\" src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_05_Campus_Percussioni_Ionio_alba-1024x576.png\" data-object-fit=\"cover\" srcset=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_05_Campus_Percussioni_Ionio_alba-1024x576.png 1024w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_05_Campus_Percussioni_Ionio_alba-300x169.png 300w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_05_Campus_Percussioni_Ionio_alba-768x432.png 768w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_05_Campus_Percussioni_Ionio_alba-1536x864.png 1536w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_05_Campus_Percussioni_Ionio_alba-18x10.png 18w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_05_Campus_Percussioni_Ionio_alba.png 1672w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-40 has-background-dim\" style=\"background-color:#102a43\"><\/span><div class=\"wp-block-cover__inner-container has-global-padding is-layout-constrained wp-block-cover-is-layout-constrained\">\n<p class=\"ext-animate--on mahler-home-slide-kicker wp-block-paragraph\">CAMPUS MUSICALE ESTIVO<\/p>\n\n\n\n<h1 class=\"wp-block-heading has-text-align-left ext-animate--on mahler-hero-title\" style=\"font-size:clamp(35.2px, 2.2rem + ((1vw - 3.2px) * 1.8), 64px);\">Dove la formazione diventa esperienza<\/h1>\n\n\n\n<p class=\"ext-animate--on mahler-hero-intro has-custom-css wp-custom-css-28912a8b wp-block-paragraph\">Masterclass, studio, incontri e concerti trasformano il Campus Estivo in un\u2019esperienza immersiva, dove giovani musicisti condividono formazione, palcoscenico e vita musicale.<\/p>\n\n\n\n<div class=\"wp-block-buttons ext-animate--on is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button mahler-hero-btn ext-animate--on\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/www.accademiagustavmahler.it\/campus-musicale-estivo\/\" style=\"border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;background-color:#102a43\">Scopri il Campus<\/a><\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-cover alignfull has-custom-content-position is-position-center-left ext-animate--on mahler-new-hero mahler-home-slide mahler-home-slide-6\" style=\"min-height:680px;aspect-ratio:unset;\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"461\" class=\"wp-block-cover__image-background wp-image-660 size-large\" alt=\"\" src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_06_Alta_Formazione_Masterclass_Batteria-1024x461.png\" data-object-fit=\"cover\" srcset=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_06_Alta_Formazione_Masterclass_Batteria-1024x461.png 1024w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_06_Alta_Formazione_Masterclass_Batteria-300x135.png 300w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_06_Alta_Formazione_Masterclass_Batteria-768x345.png 768w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_06_Alta_Formazione_Masterclass_Batteria-1536x691.png 1536w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_06_Alta_Formazione_Masterclass_Batteria-18x8.png 18w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/HERO_06_Alta_Formazione_Masterclass_Batteria.png 1870w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-40 has-background-dim\" style=\"background-color:#102a43\"><\/span><div class=\"wp-block-cover__inner-container has-global-padding is-layout-constrained wp-block-cover-is-layout-constrained\">\n<p class=\"ext-animate--on mahler-home-slide-kicker wp-block-paragraph\">ALTA FORMAZIONE<\/p>\n\n\n\n<h1 class=\"wp-block-heading has-text-align-left ext-animate--on mahler-hero-title\" style=\"font-size:clamp(35.2px, 2.2rem + ((1vw - 3.2px) * 1.8), 64px);\">Oltre lo studio<\/h1>\n\n\n\n<p class=\"ext-animate--on mahler-hero-intro has-custom-css wp-custom-css-feac6efe wp-block-paragraph\">L\u2019Accademia sviluppa corsi di perfezionamento, masterclass e percorsi di alta formazione rivolti a studenti e musicisti, favorendo approfondimento, confronto e crescita artistica. La convenzione con il Conservatorio Statale di Musica \u201cSaverio Arlia\u201d di Catanzaro arricchisce ulteriormente questa attivit\u00e0, creando nuove opportunit\u00e0 di collaborazione e formazione.<\/p>\n\n\n\n<div class=\"wp-block-buttons ext-animate--on is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button mahler-hero-btn ext-animate--on\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/www.accademiagustavmahler.it\/alta-formazione\/\" style=\"border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;background-color:#102a43\">Scopri l\u2019Alta Formazione<\/a><\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-cover alignfull has-custom-content-position is-position-center-left ext-animate--on mahler-new-hero mahler-home-slide mahler-home-slide-7\" style=\"min-height:680px;aspect-ratio:unset;\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" class=\"wp-block-cover__image-background wp-image-674 size-large\" alt=\"\" src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/VIDEO_HERO_08_Ensemble_Chitarre_1920x1080-1024x576.jpg\" data-object-fit=\"cover\" srcset=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/VIDEO_HERO_08_Ensemble_Chitarre_1920x1080-1024x576.jpg 1024w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/VIDEO_HERO_08_Ensemble_Chitarre_1920x1080-300x169.jpg 300w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/VIDEO_HERO_08_Ensemble_Chitarre_1920x1080-768x432.jpg 768w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/VIDEO_HERO_08_Ensemble_Chitarre_1920x1080-1536x864.jpg 1536w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/VIDEO_HERO_08_Ensemble_Chitarre_1920x1080-18x10.jpg 18w, https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/VIDEO_HERO_08_Ensemble_Chitarre_1920x1080.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-40 has-background-dim\" style=\"background-color:#102a43\"><\/span><div class=\"wp-block-cover__inner-container has-global-padding is-layout-constrained wp-block-cover-is-layout-constrained\">\n<p class=\"ext-animate--on mahler-home-slide-kicker wp-block-paragraph\">SAGGI &amp; EVENTI<\/p>\n\n\n\n<h1 class=\"wp-block-heading has-text-align-left ext-animate--on mahler-hero-title\" style=\"font-size:clamp(35.2px, 2.2rem + ((1vw - 3.2px) * 1.8), 64px);\">La musica prende vita<\/h1>\n\n\n\n<p class=\"ext-animate--on mahler-hero-intro has-custom-css wp-custom-css-49b49f6c wp-block-paragraph\">Saggi, concerti, iniziative e progetti speciali raccontano la vita dell\u2019Accademia oltre la lezione quotidiana. Momenti di condivisione, crescita e valorizzazione dei giovani musicisti, insieme a iniziative come la Borsa di Studio Sofia Castagnaro.<\/p>\n\n\n\n<div class=\"wp-block-buttons ext-animate--on is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button mahler-hero-btn ext-animate--on\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/www.accademiagustavmahler.it\/saggi-eventi\/\" style=\"border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;background-color:#102a43\">Scopri Saggi &amp; Eventi<\/a><\/div>\n<\/div>\n<\/div><\/div>\n<\/div>\n\n\n\n<section class=\"wp-block-group alignfull mahler-home-news is-layout-flow wp-block-group-is-layout-flow\" id=\"blog\">\n<div class=\"mahler-home-section-heading\"><h2>Dall\u2019Accademia<\/h2><a href=\"https:\/\/www.accademiagustavmahler.it\/news\/\">Tutte le news \u2192<\/a><\/div>\n\n<section class=\"mn-news-section\" aria-label=\"Ultime news\"><div class=\"mn-news-inner\"><div class=\"mn-news-grid\"><article class=\"mn-news-card\"><a class=\"mn-news-photo\" href=\"https:\/\/www.accademiagustavmahler.it\/en\/al-via-le-attivita-del-coro-dellaccademia-musicale-gustav-mahler\/\" aria-label=\"Al via le attivit\u00e0 del Coro dell\u2019Accademia Musicale \u201cGustav Mahler\u201d\"><img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/11\/Direttrice-dorchestra-in-concerto-corale.png\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/a><div class=\"mn-news-card-copy\"><time datetime=\"2026-11-08T11:52:03+00:00\">8 November 2026<\/time><h3><a href=\"https:\/\/www.accademiagustavmahler.it\/en\/al-via-le-attivita-del-coro-dellaccademia-musicale-gustav-mahler\/\">Al via le attivit\u00e0 del Coro dell\u2019Accademia Musicale \u201cGustav Mahler\u201d<\/a><\/h3><p>Gioved\u00ec 12 novembre prenderanno il via le lezioni del Coro dell\u2019Accademia Musicale \u201cGustav Mahler\u201d, composto da 20 elementi e guidato dalla M\u00b0 Valeria Mormandi. La formazione sar\u00e0 protagonista, nel mese di dicembre, di una serie di esibizioni in diversi centri della provincia di Cosenza.<\/p><a class=\"mn-news-read\" href=\"https:\/\/www.accademiagustavmahler.it\/en\/al-via-le-attivita-del-coro-dellaccademia-musicale-gustav-mahler\/\">Scopri di pi\u00f9 <span aria-hidden=\"true\">\u2192<\/span><span class=\"screen-reader-text\">: Al via le attivit\u00e0 del Coro dell\u2019Accademia Musicale \u201cGustav Mahler\u201d<\/span><\/a><\/div><\/article><article class=\"mn-news-card\"><a class=\"mn-news-photo\" href=\"https:\/\/www.accademiagustavmahler.it\/en\/note-contro-il-silenzio-concerto-pianistico-del-m-giuseppe-fusaro-e-incontro-di-sensibilizzazione\/\" aria-label=\"\u201cNote contro il silenzio\u201d \u2013 Concerto pianistico del M\u00b0 Giuseppe Fusaro e incontro di sensibilizzazione\"><img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/11\/19.-14-11-2026-LOCANDINA-GIUSEPPE-FUSARO.jpg\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/a><div class=\"mn-news-card-copy\"><time datetime=\"2026-11-02T18:40:16+00:00\">2 November 2026<\/time><h3><a href=\"https:\/\/www.accademiagustavmahler.it\/en\/note-contro-il-silenzio-concerto-pianistico-del-m-giuseppe-fusaro-e-incontro-di-sensibilizzazione\/\">\u201cNote contro il silenzio\u201d \u2013 Concerto pianistico del M\u00b0 Giuseppe Fusaro e incontro di sensibilizzazione<\/a><\/h3><p>L\u2019Accademia Musicale \u201cGustav Mahler\u201d, in collaborazione con la Rete Nazionale Forense \u2013 Sezione Calabria, presenta \u201cNote contro il silenzio\u201d, un concerto pianistico del M\u00b0 Giuseppe Fusaro accompagnato da un incontro di sensibilizzazione contro la violenza sulle donne. L\u2019iniziativa, inserita nel cartellone dell\u2019Ionio International Music Festival 2026, unisce musica, cultura e impegno sociale, con la partecipazione del Centro Antiviolenza Fabiana e dell\u2019Associazione MondiVersi ETS e il coinvolgimento del Comune di Trebisacce.<\/p><a class=\"mn-news-read\" href=\"https:\/\/www.accademiagustavmahler.it\/en\/note-contro-il-silenzio-concerto-pianistico-del-m-giuseppe-fusaro-e-incontro-di-sensibilizzazione\/\">Scopri di pi\u00f9 <span aria-hidden=\"true\">\u2192<\/span><span class=\"screen-reader-text\">: \u201cNote contro il silenzio\u201d \u2013 Concerto pianistico del M\u00b0 Giuseppe Fusaro e incontro di sensibilizzazione<\/span><\/a><\/div><\/article><article class=\"mn-news-card\"><a class=\"mn-news-photo\" href=\"https:\/\/www.accademiagustavmahler.it\/en\/nuovo-corso-di-accordatura-del-pianoforte\/\" aria-label=\"Nuovo corso di Accordatura del pianoforte\"><img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/10\/08-accordatura-pianoforte.png\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/a><div class=\"mn-news-card-copy\"><time datetime=\"2026-10-28T18:47:27+00:00\">28 October 2026<\/time><h3><a href=\"https:\/\/www.accademiagustavmahler.it\/en\/nuovo-corso-di-accordatura-del-pianoforte\/\">Nuovo corso di Accordatura del pianoforte<\/a><\/h3><p>L\u2019offerta formativa 2026\/27 si arricchisce di un percorso dedicato all\u2019accordatura del pianoforte: ascolto dell\u2019intonazione, cura dello strumento e competenze tecniche musicali.<\/p><a class=\"mn-news-read\" href=\"https:\/\/www.accademiagustavmahler.it\/en\/nuovo-corso-di-accordatura-del-pianoforte\/\">Scopri di pi\u00f9 <span aria-hidden=\"true\">\u2192<\/span><span class=\"screen-reader-text\">: Nuovo corso di Accordatura del pianoforte<\/span><\/a><\/div><\/article><article class=\"mn-news-card\"><a class=\"mn-news-photo\" href=\"https:\/\/www.accademiagustavmahler.it\/en\/nuovo-corso-di-musica-da-camera\/\" aria-label=\"Nuovo corso di Musica da camera\"><img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/10\/06-musica-insieme-ambientata-accademia-V1.png\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/a><div class=\"mn-news-card-copy\"><time datetime=\"2026-10-28T18:46:32+00:00\">28 October 2026<\/time><h3><a href=\"https:\/\/www.accademiagustavmahler.it\/en\/nuovo-corso-di-musica-da-camera\/\">Nuovo corso di Musica da camera<\/a><\/h3><p>Una nuova proposta per il 2026\/27: lo studio del repertorio in piccoli gruppi, tra ascolto reciproco, equilibrio degli strumenti e interpretazione condivisa.<\/p><a class=\"mn-news-read\" href=\"https:\/\/www.accademiagustavmahler.it\/en\/nuovo-corso-di-musica-da-camera\/\">Scopri di pi\u00f9 <span aria-hidden=\"true\">\u2192<\/span><span class=\"screen-reader-text\">: Nuovo corso di Musica da camera<\/span><\/a><\/div><\/article><article class=\"mn-news-card\"><a class=\"mn-news-photo\" href=\"https:\/\/www.accademiagustavmahler.it\/en\/iscrizioni-aperte-anno-accademico-2026-2027\/\" aria-label=\"Iscrizioni aperte \u2013 Anno Accademico 2026\/2027\"><img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/Immagine-Codex-20-set-2026-03_52_56-1024x576.png\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/a><div class=\"mn-news-card-copy\"><time datetime=\"2026-09-20T01:56:03+00:00\">20 September 2026<\/time><h3><a href=\"https:\/\/www.accademiagustavmahler.it\/en\/iscrizioni-aperte-anno-accademico-2026-2027\/\">Iscrizioni aperte \u2013 Anno Accademico 2026\/2027<\/a><\/h3><p>Sono aperte le iscrizioni all\u2019Anno Accademico 2026\/2027 dell\u2019Accademia Musicale \u201cGustav Mahler\u201d di Trebisacce.&nbsp; L\u2019Accademia propone un\u2019ampia offerta formativa dedicata allo studio degli strumenti, del canto e delle discipline musicali, con\u2026<\/p><a class=\"mn-news-read\" href=\"https:\/\/www.accademiagustavmahler.it\/en\/iscrizioni-aperte-anno-accademico-2026-2027\/\">Scopri di pi\u00f9 <span aria-hidden=\"true\">\u2192<\/span><span class=\"screen-reader-text\">: Iscrizioni aperte \u2013 Anno Accademico 2026\/2027<\/span><\/a><\/div><\/article><\/div><\/div><\/section>\n\n\n<div class=\"mh-news-controls mahler-upcoming__arrows\"><span class=\"mh-news-status\" aria-live=\"polite\"><\/span><button type=\"button\" data-prev aria-label=\"News precedenti\" aria-controls=\"mh-home-news-track\">\u2039<\/button><button type=\"button\" data-next aria-label=\"News successive\" aria-controls=\"mh-home-news-track\">\u203a<\/button><\/div>\n\n<style>\n#blog.mahler-home-news{padding:32px max(24px,calc((100% - 1180px)\/2)) 38px!important;background:#fff!important;margin:0!important;max-width:none!important;width:100%!important;color:#102a43;font-family:\"Avenir Next\",Avenir,Arial,sans-serif}\n#blog .mahler-home-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 22px!important}\n#blog .mahler-home-section-heading h2{font-size:28px!important;font-weight:400!important;line-height:1.25!important;margin:0!important;letter-spacing:-.02em}\n#blog .mahler-home-section-heading>a{font-size:13px;border-bottom:1px solid #c6a15b;text-decoration:none;color:#102a43;white-space:nowrap}\n#blog .mn-news-section{padding:0!important;background:transparent!important}#blog .mn-news-inner{width:100%!important;max-width:none!important}\n#blog .mn-news-grid{display:flex!important;gap:28px!important;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;align-items:stretch;padding:0 0 6px}#blog .mn-news-grid::-webkit-scrollbar{display:none}\n#blog .mn-news-card{flex:0 0 calc((100% - 56px)\/3);width:calc((100% - 56px)\/3);scroll-snap-align:start;border-top:1px solid #d9c49b!important;padding:14px 0 0!important;min-width:0;display:block!important}\n#blog .mn-news-photo{display:none!important}#blog .mn-news-card:has(.mn-news-photo img[src*=\"locandina\" i]),#blog .mn-news-card:has(h3 a[href*=\"concerto\"]){display:flex!important;flex-direction:row!important;gap:14px}\n#blog .mn-news-card:has(img[src*=\"locandina\" i]) .mn-news-photo,#blog .mn-news-card:has(h3 a[href*=\"concerto\"]) .mn-news-photo{display:block!important;flex:0 0 128px;width:128px;align-self:flex-start;height:auto!important;min-height:0!important;max-height:none!important;aspect-ratio:auto!important;background:transparent!important}\n#blog .mn-news-photo img{display:block;width:128px!important;height:auto!important;aspect-ratio:auto!important;object-fit:contain!important}\n#blog .mn-news-card-copy{padding:0!important;min-width:0;display:flex!important;flex-direction:column}\n#blog .mn-news-card time{font-size:10px!important;letter-spacing:.08em!important;color:#926d32}\n#blog .mn-news-card h3{font-size:18px!important;line-height:1.35!important;font-weight:500!important;margin:8px 0 10px!important;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}\n#blog .mn-news-card p{font-size:13px!important;line-height:1.6!important;margin:0 0 12px!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\n#blog .mn-news-read{font-size:12px!important;padding-bottom:4px!important;min-height:0!important;margin-top:auto!important}\n#blog .mh-news-controls{position:static;display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-top:16px}\n\n#blog .mh-news-status{font-size:11px;color:#63717c;margin-right:8px}\n@media(max-width:782px){#blog .mn-news-card{flex-basis:100%;width:100%}#blog.mahler-home-news{padding:28px 24px 32px!important}#blog .mahler-home-section-heading h2{font-size:24px!important}}\n<\/style>\n<script>\n(()=>{function init(){const root=document.getElementById('blog');if(!root)return;const grid=root.querySelector('.mn-news-grid');if(!grid||grid.dataset.carouselReady)return;grid.dataset.carouselReady='true';grid.id='mh-home-news-track';root.setAttribute('aria-label','Ultime news dell\u2019Accademia');grid.setAttribute('aria-label','News a scorrimento manuale');const controls=root.querySelector('.mh-news-controls'),prev=controls.querySelector('[data-prev]'),next=controls.querySelector('[data-next]'),status=controls.querySelector('.mh-news-status');const cards=Array.from(grid.children);function update(){const step=cards[0].getBoundingClientRect().width+28;const first=Math.round(grid.scrollLeft\/step);const visible=Math.max(1,Math.round((grid.clientWidth+28)\/step));prev.disabled=grid.scrollLeft<3;next.disabled=grid.scrollLeft>=grid.scrollWidth-grid.clientWidth-3;status.textContent=(first+1)+'\u2013'+Math.min(first+visible,cards.length)+' di '+cards.length;controls.hidden=cards.length<=visible;}function move(dir){grid.scrollBy({left:dir*(cards[0].getBoundingClientRect().width+28),behavior:matchMedia('(prefers-reduced-motion: reduce)').matches?'instant':'smooth'});}prev.addEventListener('click',()=>move(-1));next.addEventListener('click',()=>move(1));grid.addEventListener('scroll',update,{passive:true});grid.addEventListener('keydown',e=>{if(e.key==='ArrowRight'||e.key==='ArrowLeft'){e.preventDefault();move(e.key==='ArrowRight'?1:-1);}});new ResizeObserver(update).observe(grid);update();}if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init,{once:true});else init();})();\n<\/script>\n<\/section>\n\n\n\n<section class=\"alignfull mahler-home-editorial\" id=\"chi-siamo\" aria-labelledby=\"mahler-home-editorial-title\">\n  <div class=\"mahler-home-editorial-inner\">\n    <figure class=\"mahler-home-editorial-photo\">\n      <img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/518319641_10230710300487147_7482052662978648402_n.jpg\" alt=\"Lezione di fisarmonica all\u2019Accademia Musicale Gustav Mahler di Trebisacce\" loading=\"lazy\" decoding=\"async\" \/>\n    <\/figure>\n    <div class=\"mahler-home-editorial-copy\">\n      <p class=\"mahler-home-eyebrow\">DAL 1986 \u00b7 TREBISACCE<\/p>\n      <h2 id=\"mahler-home-editorial-title\">La cultura musicale,<br>un impegno condiviso.<\/h2>\n      <p>L\u2019Accademia Musicale \u201cGustav Mahler\u201d accompagna generazioni di musicisti attraverso la formazione, il perfezionamento e l\u2019esperienza artistica.<\/p>\n      <a class=\"mahler-home-text-link\" href=\"https:\/\/www.accademiagustavmahler.it\/accademia\/\">Scopri la nostra storia <span aria-hidden=\"true\">\u2192<\/span><\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n\n\n<section class=\"alignfull mahler-home-explore\" id=\"servizi\" aria-labelledby=\"mahler-home-explore-title\">\n  <div class=\"mahler-home-section-inner\">\n    <div class=\"mahler-home-section-heading\">\n      <p class=\"mahler-home-eyebrow\">FORMAZIONE \u00b7 MUSICA \u00b7 INCONTRI<\/p>\n      <h2 id=\"mahler-home-explore-title\">Esplora l\u2019Accademia.<\/h2>\n    <\/div>\n    <div class=\"mahler-home-paths\">\n    <article class=\"mahler-home-path mahler-home-path-featured\" aria-labelledby=\"mahler-home-path-1\">\n      <figure><img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/10\/Immagine-ChatGPT-4-ott-2026-23_47_20.png\" alt=\"Docente e allievi durante una lezione all\u2019Accademia Musicale Gustav Mahler\" loading=\"lazy\" decoding=\"async\" \/><\/figure>\n      <div class=\"mahler-home-path-copy\">\n        <p class=\"mahler-home-path-kicker\">FORMAZIONE<\/p>\n        <h3 id=\"mahler-home-path-1\">Didattica e<br>Alta Formazione<\/h3>\n        <p>Studio, perfezionamento e nuove prospettive musicali.<\/p>\n        <div class=\"mahler-home-path-links\"><a class=\"mahler-home-text-link\" href=\"https:\/\/www.accademiagustavmahler.it\/didattica\/\">Scopri la Didattica <span aria-hidden=\"true\">\u2192<\/span><\/a>\n<a class=\"mahler-home-text-link\" href=\"https:\/\/www.accademiagustavmahler.it\/alta-formazione\/\">Alta Formazione <span aria-hidden=\"true\">\u2192<\/span><\/a>\n<a class=\"mahler-home-text-link\" href=\"https:\/\/www.accademiagustavmahler.it\/alta-formazione\/masterclass\/\">Masterclass <span aria-hidden=\"true\">\u2192<\/span><\/a><\/div>\n      <\/div>\n    <\/article>\n    <article class=\"mahler-home-path mahler-home-path-festival\" aria-labelledby=\"mahler-home-path-2\">\n      <figure><img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/10\/615797215_10232973865754864_5017355335006735493_n.jpg\" alt=\"Attivit\u00e0 dell\u2019Ionio International Music Festival\" loading=\"lazy\" decoding=\"async\" \/><\/figure>\n      <div class=\"mahler-home-path-copy\">\n        <p class=\"mahler-home-path-kicker\">FESTIVAL<\/p>\n        <div class=\"mahler-home-path-brand\"><span class=\"mahler-home-path-symbol\"><img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/simbolo_negativa-scaled.png\" alt=\"\" loading=\"lazy\" decoding=\"async\" \/><\/span><h3 id=\"mahler-home-path-2\">Ionio International<br>Music Festival<\/h3><\/div>\n        <p>Artisti e concerti, tra musica e territorio.<\/p>\n        <div class=\"mahler-home-path-links\"><a class=\"mahler-home-text-link\" href=\"https:\/\/www.accademiagustavmahler.it\/ionio-international-music-festival\/\">Scopri il Festival <span aria-hidden=\"true\">\u2192<\/span><\/a><\/div>\n      <\/div>\n    <\/article>\n    <article class=\"mahler-home-path\" aria-labelledby=\"mahler-home-path-3\">\n      <figure><img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/701312342_26785307211119983_7861672158897420141_n-1.jpg\" alt=\"Attivit\u00e0 del Concorso Internazionale di Musica Gustav Mahler\" loading=\"lazy\" decoding=\"async\" \/><\/figure>\n      <div class=\"mahler-home-path-copy\">\n        <p class=\"mahler-home-path-kicker\">CONCORSO<\/p>\n        <div class=\"mahler-home-path-brand\"><span class=\"mahler-home-path-symbol mahler-home-path-symbol-concorso\"><img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/10\/CONCORSO_MAHLER_AVORIO_LUMINOSO_AVATAR_SIMBOLO-scaled.png\" alt=\"\" loading=\"lazy\" decoding=\"async\" \/><\/span><h3 id=\"mahler-home-path-3\">Concorso Internazionale<br>di Musica \u201cGustav Mahler\u201d<\/h3><\/div>\n        <p>Concorso internazionale di musica riservato ai giovani talenti, alle scuole secondarie di primo grado a indirizzo musicale e ai licei musicali.<\/p>\n        <div class=\"mahler-home-path-links\"><a class=\"mahler-home-text-link\" href=\"https:\/\/www.accademiagustavmahler.it\/concorso-internazionale-di-musica-gustav-mahler\/\">Scopri il Concorso <span aria-hidden=\"true\">\u2192<\/span><\/a><\/div>\n      <\/div>\n    <\/article>\n    <article class=\"mahler-home-path\" aria-labelledby=\"mahler-home-path-4\">\n      <figure><img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/10\/Immagine-Codex-20-set-2026-11_41_21.png\" alt=\"Musicisti sul palco durante un evento dell\u2019Accademia Musicale Gustav Mahler\" loading=\"lazy\" decoding=\"async\" \/><\/figure>\n      <div class=\"mahler-home-path-copy\">\n        <p class=\"mahler-home-path-kicker\">VITA DELL\u2019ACCADEMIA<\/p>\n        <h3 id=\"mahler-home-path-4\">Saggi &amp; Eventi<\/h3>\n        <p>Il palcoscenico, la condivisione, la vita dell\u2019Accademia.<\/p>\n        <div class=\"mahler-home-path-links\"><a class=\"mahler-home-text-link\" href=\"https:\/\/www.accademiagustavmahler.it\/saggi-eventi\/\">Scopri gli appuntamenti <span aria-hidden=\"true\">\u2192<\/span><\/a><\/div>\n      <\/div>\n    <\/article>\n    <article class=\"mahler-home-path mahler-home-path-campus\" aria-labelledby=\"mahler-home-path-5\">\n      <figure><img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/10\/489787820_10229130796760541_3004619975757366508_n.jpg\" alt=\"Attivit\u00e0 del Campus Musicale Estivo dell\u2019Accademia Gustav Mahler\" loading=\"lazy\" decoding=\"async\" \/><\/figure>\n      <div class=\"mahler-home-path-copy\">\n        <p class=\"mahler-home-path-kicker\">CAMPUS<\/p>\n        <h3 id=\"mahler-home-path-5\">Campus Musicale Estivo<\/h3>\n        <p>Lezioni di strumento, musica d\u2019insieme e concerti: un percorso estivo di crescita musicale, arricchito dall\u2019esperienza di vivere e condividere la musica insieme.<\/p>\n        <div class=\"mahler-home-path-links\"><a class=\"mahler-home-text-link\" href=\"https:\/\/www.accademiagustavmahler.it\/campus-musicale-estivo\/\">Scopri il Campus <span aria-hidden=\"true\">\u2192<\/span><\/a><\/div>\n      <\/div>\n    <\/article>\n    <\/div>\n  <\/div>\n<\/section>\n\n\n\n<section class=\"alignfull mahler-home-partnership\" id=\"convenzione\" aria-labelledby=\"mahler-home-partnership-title\">\n  <div class=\"mahler-home-partnership-inner\">\n    <figure class=\"mahler-home-partnership-photo\">\n      <img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/09\/504142345_10229813878797165_2264557067875757194_n.jpg\" alt=\"Valentina Currenti e M\u00b0 Francesco Martino alla firma della convenzione\" loading=\"lazy\" decoding=\"async\" \/>\n      <figcaption>La direttrice del Conservatorio Statale di Musica \u201cSaverio Arlia\u201d di Catanzaro, Valentina Currenti, e il presidente dell\u2019Accademia Musicale \u201cGustav Mahler\u201d, M\u00b0 Francesco Martino, alla firma della convenzione.<\/figcaption>\n    <\/figure>\n    <div class=\"mahler-home-partnership-copy\">\n      <p class=\"mahler-home-eyebrow\">RELAZIONI ISTITUZIONALI<\/p>\n      <h2 id=\"mahler-home-partnership-title\">Convenzioni accademiche<\/h2>\n      <div class=\"mahler-home-partner-logo\">\n        <img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/10\/673844623_1624472873018449_8422868674515204558_n-2.jpg\" alt=\"Conservatorio Statale di Musica Saverio Arlia\" loading=\"lazy\" decoding=\"async\" \/>\n      <\/div>\n      <h3 class=\"mahler-home-partner-primary-name\">Conservatorio Statale di Musica<br>\u201cSaverio Arlia\u201d di Catanzaro<\/h3>\n      <p>L\u2019Accademia Musicale \u201cGustav Mahler\u201d \u00e8 convenzionata con il Conservatorio Statale di Musica \u201cSaverio Arlia\u201d di Catanzaro. La collaborazione pone al centro lo studio, la crescita artistica e la cultura musicale.<\/p>\n    <\/div>\n    <div class=\"mahler-home-partners-additional\">\n      <p class=\"mahler-home-eyebrow\">L\u2019ACCADEMIA \u00c8 INOLTRE CONVENZIONATA CON<\/p>\n      <div class=\"mahler-home-partners-grid\">\n        <div class=\"mahler-home-partner-secondary\">\n          <img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/10\/87046716_109508763972718_7429271164028977152_n.jpg\" alt=\"Logo del Conservatorio Luca Marenzio\" loading=\"lazy\" decoding=\"async\" \/>\n          <h3>Conservatorio di Musica<br>\u201cLuca Marenzio\u201d<span>Brescia<\/span><\/h3>\n        <\/div>\n        <div class=\"mahler-home-partner-secondary\">\n          <img src=\"https:\/\/www.accademiagustavmahler.it\/wp-content\/uploads\/2026\/10\/440436386_1020498989659511_161895746843217000_n.jpg\" alt=\"Logo del Conservatorio Stanislao Giacomantonio\" loading=\"lazy\" decoding=\"async\" \/>\n          <h3>Conservatorio di Musica<br>\u201cStanislao Giacomantonio\u201d<span>Cosenza<\/span><\/h3>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n\n\n\n\n<script data-wp-block-html=\"js\">\n(() => {\n\n  const initMahlerHomeSlider = () => {\n\n    const slider = document.querySelector('.mahler-home-slider');\n    if (!slider || slider.dataset.mahlerSliderReady === 'true') return;\n    const slides = Array.from(\n\n      slider.querySelectorAll('.mahler-home-slide')\n\n    );\n    if (slides.length < 2) return;\n\n    slider.dataset.mahlerSliderReady = 'true';\n    slider.classList.add('is-initialized');\n\n    slider.setAttribute('role', 'region');\n    slider.setAttribute('aria-roledescription', 'carousel');\n    slider.setAttribute('aria-label', 'Contenuti in evidenza');\n    slider.setAttribute('tabindex', '0');\n\n    const reduceMotion =\n      window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n    const intervalMs = 6500;\n    const MOUSE_IDLE_RESUME_MS = 1000;\n\n    const DRAG_INTENT_PX = 7;\n    const DISTANCE_RATIO = 0.16;\n    const VELOCITY_THRESHOLD = 0.45;\n\n    let current = 0;\n    let timer = null;\n    let mouseIdleTimer = null;\n\n    let isAnimating = false;\n\n    let keyboardFocusPaused = false;\n    let lastInputWasKeyboard = false;\n\n    let activePointerId = null;\n    let dragAxis = null;\n    let isDragging = false;\n\n    let dragStartX = 0;\n    let dragStartY = 0;\n    let dragStartTime = 0;\n\n    let dragX = 0;\n    let lastX = 0;\n    let lastMoveTime = 0;\n    let velocityX = 0;\n\n    let dragPrevIndex = null;\n    let dragNextIndex = null;\n\n    let suppressClickUntil = 0;\n\n    const clamp = (min, value, max) =>\n\n      Math.max(min, Math.min(value, max));\n    \/* ==========================================\n\n       NAVIGAZIONE\n\n       ========================================== *\/\n    const nav = document.createElement('div');\n    nav.className = 'mahler-home-slider-nav';\n\n    nav.setAttribute('role', 'group');\n\n    nav.setAttribute('aria-label', 'Seleziona slide');\n    const status = document.createElement('span');\n    status.className = 'mahler-sr-only';\n\n    status.setAttribute('aria-live', 'polite');\n\n    status.setAttribute('aria-atomic', 'true');\n    slider.appendChild(status);\n    const dots = slides.map((slide, index) => {\n\n      slide.setAttribute('role', 'group');\n\n      slide.setAttribute('aria-roledescription', 'slide');\n\n      slide.setAttribute(\n\n        'aria-label',\n\n        `${index + 1} di ${slides.length}`\n\n      );\n      const image = slide.querySelector(\n\n        'img.wp-block-cover__image-background'\n\n      );\n      if (image && index === 0) {\n\n        image.loading = 'eager';\n        try {\n\n          image.fetchPriority = 'high';\n\n        } catch (e) {}\n\n      }\n      const button = document.createElement('button');\n      button.type = 'button';\n\n      button.className = 'mahler-home-slider-dot';\n      button.setAttribute(\n\n        'aria-label',\n\n        `Vai alla slide ${index + 1}`\n\n      );\n      button.addEventListener('click', () => {\n\n        lastInputWasKeyboard = false;\n        if (index === current) {\n\n          startTimer();\n\n          return;\n\n        }\n        if (isDragging || isAnimating) return;\n        const forwardDistance =\n\n          (index - current + slides.length) %\n\n          slides.length;\n        const backwardDistance =\n\n          (current - index + slides.length) %\n\n          slides.length;\n        const direction =\n\n          forwardDistance <= backwardDistance ? 1 : -1;\n\n        showSlide(\n          index,\n          true,\n          direction\n        );\n      });\n\n      nav.appendChild(button);\n\n      return button;\n    });\n\n    slider.appendChild(nav);\n\n    \/* ==========================================\n       DOTS\n       ========================================== *\/\n\n    const updateDots = (\n      index,\n      announce = false\n    ) => {\n\n      dots.forEach((dot, i) => {\n\n        const active = i === index;\n        dot.classList.toggle(\n\n          'is-active',\n\n          active\n\n        );\n        if (active) {\n\n          dot.setAttribute(\n\n            'aria-current',\n\n            'true'\n\n          );\n\n        } else {\n\n          dot.removeAttribute(\n\n            'aria-current'\n\n          );\n\n        }\n\n      });\n      if (announce) {\n\n        status.textContent =\n\n          `Slide ${index + 1} di ${slides.length}`;\n\n      }\n\n    };\n    \/* ==========================================\n\n       AUTOPLAY\n\n       ========================================== *\/\n    const stopTimer = () => {\n\n      if (timer) {\n\n        window.clearTimeout(timer);\n\n        timer = null;\n\n      }\n\n    };\n    const startTimer = () => {\n\n      stopTimer();\n      if (\n\n        reduceMotion ||\n\n        document.hidden ||\n\n        keyboardFocusPaused ||\n\n        isDragging ||\n\n        isAnimating\n\n      ) {\n\n        return;\n\n      }\n      timer = window.setTimeout(() => {\n\n        slider.classList.add(\n\n          'is-autoplaying'\n\n        );\n        showSlide(\n\n          (current + 1) % slides.length,\n\n          false,\n\n          1\n\n        );\n\n      }, intervalMs);\n\n    };\n    \/* ==========================================\n\n       UTILITY\n\n       ========================================== *\/\n    const cleanAnimationClasses = (slide) => {\n\n      slide.classList.remove(\n\n        'is-entering-right',\n\n        'is-entering-left',\n\n        'is-leaving-left',\n\n        'is-leaving-right'\n\n      );\n\n    };\n    const clearInlineMotion = (slide) => {\n\n      [\n\n        'transform',\n\n        'transition',\n\n        'visibility',\n\n        'pointer-events',\n\n        'z-index',\n\n        'will-change'\n\n      ].forEach((property) => {\n\n        slide.style.removeProperty(property);\n\n      });\n\n    };\n    const setInlineTransform = (\n\n      slide,\n\n      x\n\n    ) => {\n\n      slide.style.setProperty(\n\n        'transform',\n\n        `translate3d(${x}px, 0, 0)`,\n\n        'important'\n\n      );\n\n    };\n    const setInlineTransition = (\n\n      slide,\n\n      durationMs\n\n    ) => {\n\n      slide.style.setProperty(\n\n        'transition',\n\n        `transform ${durationMs}ms cubic-bezier(.18, .72, .20, 1)`,\n\n        'important'\n\n      );\n\n    };\n    const waitForTransformEnd = (\n\n      element,\n\n      callback,\n\n      fallbackMs = 1900\n\n    ) => {\n\n      let finished = false;\n      const finish = () => {\n\n        if (finished) return;\n        finished = true;\n        element.removeEventListener(\n\n          'transitionend',\n\n          onTransitionEnd\n\n        );\n        window.clearTimeout(fallback);\n        callback();\n\n      };\n      const onTransitionEnd = (event) => {\n\n        if (\n\n          event.target === element &&\n\n          event.propertyName === 'transform'\n\n        ) {\n\n          finish();\n\n        }\n\n      };\n      const fallback =\n\n        window.setTimeout(\n\n          finish,\n\n          fallbackMs\n\n        );\n      element.addEventListener(\n\n        'transitionend',\n\n        onTransitionEnd\n\n      );\n\n    };\n    \/* ==========================================\n\n       CAMBIO SLIDE\n\n       ========================================== *\/\n    function showSlide(\n\n      index,\n\n      manual = false,\n\n      direction = 1\n\n    ) {\n\n      if (index < 0) {\n        index = slides.length - 1;\n      }\n\n      if (index >= slides.length) {\n\n        index = 0;\n\n      }\n      if (\n\n        index === current ||\n\n        isAnimating ||\n\n        isDragging\n\n      ) {\n\n        return;\n\n      }\n      stopTimer();\n      if (manual) {\n\n        slider.classList.remove(\n\n          'is-autoplaying'\n\n        );\n\n      }\n      const fromSlide =\n\n        slides[current];\n      const toSlide =\n\n        slides[index];\n      if (reduceMotion) {\n\n        slides.forEach((slide, i) => {\n\n          cleanAnimationClasses(slide);\n\n          clearInlineMotion(slide);\n          slide.classList.toggle(\n\n            'is-active',\n\n            i === index\n\n          );\n          slide.setAttribute(\n\n            'aria-hidden',\n\n            i === index\n\n              ? 'false'\n\n              : 'true'\n\n          );\n\n        });\n        current = index;\n        updateDots(\n\n          current,\n\n          manual\n\n        );\n        slider.classList.remove(\n\n          'is-autoplaying'\n\n        );\n        startTimer();\n        return;\n\n      }\n      isAnimating = true;\n      cleanAnimationClasses(fromSlide);\n\n      cleanAnimationClasses(toSlide);\n      clearInlineMotion(fromSlide);\n\n      clearInlineMotion(toSlide);\n      toSlide.classList.remove(\n\n        'is-active'\n\n      );\n      toSlide.classList.add(\n\n        direction > 0\n\n          ? 'is-entering-right'\n\n          : 'is-entering-left'\n\n      );\n      toSlide.setAttribute(\n\n        'aria-hidden',\n\n        'false'\n\n      );\n      void toSlide.offsetWidth;\n      fromSlide.classList.add(\n\n        direction > 0\n\n          ? 'is-leaving-left'\n\n          : 'is-leaving-right'\n\n      );\n      toSlide.classList.add(\n\n        'is-active'\n\n      );\n      toSlide.classList.remove(\n\n        direction > 0\n\n          ? 'is-entering-right'\n\n          : 'is-entering-left'\n\n      );\n      current = index;\n      updateDots(\n\n        current,\n\n        manual\n\n      );\n      waitForTransformEnd(\n\n        toSlide,\n\n        () => {\n\n          fromSlide.classList.remove(\n\n            'is-active',\n\n            'is-leaving-left',\n\n            'is-leaving-right'\n\n          );\n          fromSlide.setAttribute(\n\n            'aria-hidden',\n\n            'true'\n\n          );\n          cleanAnimationClasses(toSlide);\n          slider.classList.remove(\n\n            'is-autoplaying'\n\n          );\n          isAnimating = false;\n          startTimer();\n\n        }\n\n      );\n\n    }\n    \/* ==========================================\n\n       STATO INIZIALE\n\n       ========================================== *\/\n    slides.forEach((slide, index) => {\n\n      cleanAnimationClasses(slide);\n\n      clearInlineMotion(slide);\n      slide.classList.toggle(\n\n        'is-active',\n\n        index === 0\n\n      );\n      slide.setAttribute(\n\n        'aria-hidden',\n\n        index === 0\n\n          ? 'false'\n\n          : 'true'\n\n      );\n\n    });\n    updateDots(0, false);\n    slider.classList.add(\n\n      'is-ready'\n\n    );\n    \/* ==========================================\n\n       PREPARAZIONE DRAG\n\n       ========================================== *\/\n    const prepareDrag = () => {\n\n      const width =\n\n        slider\n\n          .getBoundingClientRect()\n\n          .width;\n      if (!width) return false;\n      dragPrevIndex =\n\n        (\n\n          current -\n\n          1 +\n\n          slides.length\n\n        ) %\n\n        slides.length;\n      dragNextIndex =\n\n        (\n\n          current +\n\n          1\n\n        ) %\n\n        slides.length;\n      const currentSlide =\n\n        slides[current];\n      const prevSlide =\n\n        slides[dragPrevIndex];\n      const nextSlide =\n\n        slides[dragNextIndex];\n      [\n\n        currentSlide,\n\n        prevSlide,\n\n        nextSlide\n\n      ].forEach((slide) => {\n\n        cleanAnimationClasses(slide);\n        slide.style.setProperty(\n\n          'transition',\n\n          'none',\n\n          'important'\n\n        );\n        slide.style.setProperty(\n\n          'visibility',\n\n          'visible',\n\n          'important'\n\n        );\n        slide.style.setProperty(\n\n          'will-change',\n\n          'transform',\n\n          'important'\n\n        );\n\n      });\n      currentSlide.style.setProperty(\n\n        'z-index',\n\n        '5',\n\n        'important'\n\n      );\n      currentSlide.style.setProperty(\n\n        'pointer-events',\n\n        'auto',\n\n        'important'\n\n      );\n      prevSlide.style.setProperty(\n\n        'z-index',\n\n        '4',\n\n        'important'\n\n      );\n      prevSlide.style.setProperty(\n\n        'pointer-events',\n\n        'none',\n\n        'important'\n\n      );\n      nextSlide.style.setProperty(\n\n        'z-index',\n\n        '4',\n\n        'important'\n\n      );\n      nextSlide.style.setProperty(\n\n        'pointer-events',\n\n        'none',\n\n        'important'\n\n      );\n      setInlineTransform(\n\n        currentSlide,\n\n        0\n\n      );\n      setInlineTransform(\n\n        prevSlide,\n\n        -width\n\n      );\n      setInlineTransform(\n\n        nextSlide,\n\n        width\n\n      );\n      return true;\n\n    };\n    \/* ==========================================\n\n       DRAG 1:1 COL DITO\n\n       ========================================== *\/\n    const applyDrag = (x) => {\n\n      const width =\n\n        slider\n\n          .getBoundingClientRect()\n\n          .width;\n      if (!width) return;\n      const currentSlide =\n\n        slides[current];\n      const prevSlide =\n\n        slides[dragPrevIndex];\n      const nextSlide =\n\n        slides[dragNextIndex];\n      setInlineTransform(\n\n        currentSlide,\n\n        x\n\n      );\n      setInlineTransform(\n\n        prevSlide,\n\n        -width + x\n\n      );\n      setInlineTransform(\n\n        nextSlide,\n\n        width + x\n\n      );\n\n    };\n    const resetPointerState = () => {\n\n      activePointerId = null;\n\n      dragAxis = null;\n\n      isDragging = false;\n      dragX = 0;\n\n      velocityX = 0;\n      dragPrevIndex = null;\n\n      dragNextIndex = null;\n      slider.classList.remove(\n\n        'is-dragging'\n\n      );\n\n    };\n    const releasePointerCaptureSafely =\n\n      (pointerId) => {\n\n        if (pointerId === null) return;\n        try {\n\n          if (\n\n            slider.hasPointerCapture(\n\n              pointerId\n\n            )\n\n          ) {\n\n            slider.releasePointerCapture(\n\n              pointerId\n\n            );\n\n          }\n\n        } catch (e) {}\n\n      };\n    \/* ==========================================\n\n       SWIPE NON SUFFICIENTE\n\n       ========================================== *\/\n    const snapDragBack = (\n\n      pointerId\n\n    ) => {\n\n      const width =\n\n        slider\n\n          .getBoundingClientRect()\n\n          .width;\n      if (\n\n        !width ||\n\n        dragPrevIndex === null ||\n\n        dragNextIndex === null\n\n      ) {\n\n        resetPointerState();\n\n        startTimer();\n\n        return;\n\n      }\n      const currentSlide =\n\n        slides[current];\n      const prevSlide =\n\n        slides[dragPrevIndex];\n      const nextSlide =\n\n        slides[dragNextIndex];\n      const duration =\n\n        clamp(\n\n          420,\n\n          Math.round(\n\n            480 +\n\n            Math.abs(dragX) * 0.4\n\n          ),\n\n          650\n\n        );\n      [\n\n        currentSlide,\n\n        prevSlide,\n\n        nextSlide\n\n      ].forEach((slide) => {\n\n        setInlineTransition(\n\n          slide,\n\n          duration\n\n        );\n\n      });\n      setInlineTransform(\n\n        currentSlide,\n\n        0\n\n      );\n      setInlineTransform(\n\n        prevSlide,\n\n        -width\n\n      );\n      setInlineTransform(\n\n        nextSlide,\n\n        width\n\n      );\n      waitForTransformEnd(\n\n        currentSlide,\n\n        () => {\n\n          [\n\n            currentSlide,\n\n            prevSlide,\n\n            nextSlide\n\n          ].forEach(\n\n            clearInlineMotion\n\n          );\n          releasePointerCaptureSafely(\n\n            pointerId\n\n          );\n          resetPointerState();\n          startTimer();\n\n        },\n\n        duration + 180\n\n      );\n\n    };\n    \/* ==========================================\n\n       COMPLETAMENTO SWIPE\n\n       700\u2013900 ms\n\n       ========================================== *\/\n    const commitDrag = (\n\n      direction,\n\n      pointerId\n\n    ) => {\n\n      const width =\n\n        slider\n\n          .getBoundingClientRect()\n\n          .width;\n      if (\n\n        !width ||\n\n        dragPrevIndex === null ||\n\n        dragNextIndex === null\n\n      ) {\n\n        snapDragBack(pointerId);\n\n        return;\n\n      }\n      const fromIndex =\n\n        current;\n      const targetIndex =\n\n        direction > 0\n\n          ? dragNextIndex\n\n          : dragPrevIndex;\n      const fromSlide =\n\n        slides[fromIndex];\n      const targetSlide =\n\n        slides[targetIndex];\n      const oppositeSlide =\n\n        slides[\n\n          direction > 0\n\n            ? dragPrevIndex\n\n            : dragNextIndex\n\n        ];\n      const dragProgress =\n\n        clamp(\n\n          0,\n\n          Math.abs(dragX) \/ width,\n\n          1\n\n        );\n      const duration =\n\n        clamp(\n\n          700,\n\n          Math.round(\n\n            900 -\n\n            dragProgress * 200\n\n          ),\n\n          900\n\n        );\n      isAnimating = true;\n\n      isDragging = false;\n      slider.classList.remove(\n\n        'is-dragging'\n\n      );\n      targetSlide.classList.add(\n\n        'is-active'\n\n      );\n      targetSlide.setAttribute(\n\n        'aria-hidden',\n\n        'false'\n\n      );\n      [\n\n        fromSlide,\n\n        targetSlide,\n\n        oppositeSlide\n\n      ].forEach((slide) => {\n\n        setInlineTransition(\n\n          slide,\n\n          duration\n\n        );\n\n      });\n      setInlineTransform(\n\n        fromSlide,\n\n        direction > 0\n\n          ? -width\n\n          : width\n\n      );\n      setInlineTransform(\n\n        targetSlide,\n\n        0\n\n      );\n      setInlineTransform(\n\n        oppositeSlide,\n\n        direction > 0\n\n          ? -width\n\n          : width\n\n      );\n      current =\n\n        targetIndex;\n      updateDots(\n\n        current,\n\n        true\n\n      );\n      waitForTransformEnd(\n\n        targetSlide,\n\n        () => {\n\n          fromSlide.classList.remove(\n\n            'is-active'\n\n          );\n          fromSlide.setAttribute(\n\n            'aria-hidden',\n\n            'true'\n\n          );\n          slides.forEach(\n\n            (slide, index) => {\n\n              cleanAnimationClasses(slide);\n\n              clearInlineMotion(slide);\n              slide.classList.toggle(\n\n                'is-active',\n\n                index === current\n\n              );\n              slide.setAttribute(\n\n                'aria-hidden',\n\n                index === current\n\n                  ? 'false'\n\n                  : 'true'\n\n              );\n\n            }\n\n          );\n          releasePointerCaptureSafely(\n\n            pointerId\n\n          );\n          resetPointerState();\n          isAnimating = false;\n          startTimer();\n\n        },\n\n        duration + 180\n\n      );\n\n    };\n    \/* ==========================================\n\n       FINE GESTO TOUCH\n\n       ========================================== *\/\n    const finishPointerGesture = (\n\n      event,\n\n      cancelled = false\n\n    ) => {\n\n      if (\n\n        activePointerId === null ||\n\n        event.pointerId !== activePointerId\n\n      ) {\n\n        return;\n\n      }\n      const pointerId =\n\n        activePointerId;\n      if (\n\n        dragAxis !== 'horizontal' ||\n\n        !isDragging\n\n      ) {\n\n        releasePointerCaptureSafely(\n\n          pointerId\n\n        );\n        resetPointerState();\n        startTimer();\n        return;\n\n      }\n      if (cancelled) {\n\n        snapDragBack(pointerId);\n\n        return;\n\n      }\n      const width =\n\n        slider\n\n          .getBoundingClientRect()\n\n          .width || 1;\n      const elapsed =\n\n        Math.max(\n\n          1,\n\n          performance.now() -\n\n          dragStartTime\n\n        );\n      const averageVelocity =\n\n        dragX \/ elapsed;\n      const effectiveVelocity =\n\n        Math.abs(velocityX) > 0.08\n\n          ? velocityX\n\n          : averageVelocity;\n      \/*\n\n       * MODIFICA IPAD \/ TABLET:\n\n       *\n\n       * Prima il limite massimo era 110 px.\n\n       * Ora \u00e8 64 px.\n\n       *\n\n       * Questo rende tablet e iPad\n\n       * reattivi quasi quanto lo smartphone.\n\n       *\/\n\n      const distanceThreshold =\n\n        Math.min(\n\n          width * DISTANCE_RATIO,\n\n          64\n\n        );\n      const shouldChange =\n\n        Math.abs(dragX) >=\n\n          distanceThreshold ||\n\n        Math.abs(\n\n          effectiveVelocity\n\n        ) >=\n\n          VELOCITY_THRESHOLD;\n      if (!shouldChange) {\n\n        snapDragBack(pointerId);\n\n        return;\n\n      }\n      const direction =\n\n        dragX < 0 ? 1 : -1;\n\n      commitDrag(\n        direction,\n        pointerId\n      );\n    };\n\n    \/* ==========================================\n       TASTIERA\n       ========================================== *\/\n\n    slider.addEventListener(\n      'keydown',\n      (event) => {\n\n        lastInputWasKeyboard =\n\n          true;\n        if (\n\n          event.key === 'ArrowRight'\n\n        ) {\n\n          event.preventDefault();\n          showSlide(\n\n            (current + 1) %\n\n              slides.length,\n\n            true,\n\n            1\n\n          );\n\n        }\n        if (\n\n          event.key === 'ArrowLeft'\n\n        ) {\n\n          event.preventDefault();\n          showSlide(\n\n            (\n\n              current -\n\n              1 +\n\n              slides.length\n\n            ) %\n\n              slides.length,\n\n            true,\n\n            -1\n\n          );\n\n        }\n\n      }\n\n    );\n    \/* ==========================================\n\n       POINTER DOWN TOUCH \/ PEN\n\n       ========================================== *\/\n    slider.addEventListener(\n\n      'pointerdown',\n\n      (event) => {\n\n        lastInputWasKeyboard =\n\n          false;\n        if (\n\n          event.pointerType ===\n\n          'mouse'\n\n        ) {\n\n          return;\n\n        }\n        if (\n\n          event.isPrimary === false ||\n\n          isAnimating ||\n\n          activePointerId !== null\n\n        ) {\n\n          return;\n\n        }\n        slider.classList.remove(\n\n          'is-autoplaying'\n\n        );\n        activePointerId =\n\n          event.pointerId;\n        dragAxis = null;\n\n        isDragging = false;\n        dragStartX =\n\n          event.clientX;\n        dragStartY =\n\n          event.clientY;\n        dragStartTime =\n\n          performance.now();\n        dragX = 0;\n        lastX =\n\n          event.clientX;\n        lastMoveTime =\n\n          dragStartTime;\n        velocityX = 0;\n        stopTimer();\n\n      },\n\n      {\n\n        passive: true\n\n      }\n\n    );\n    \/* ==========================================\n\n       POINTER MOVE TOUCH \/ PEN\n\n       ========================================== *\/\n    slider.addEventListener(\n\n      'pointermove',\n\n      (event) => {\n\n        if (\n\n          activePointerId === null ||\n\n          event.pointerId !==\n\n            activePointerId\n\n        ) {\n\n          return;\n\n        }\n        const dx =\n\n          event.clientX -\n\n          dragStartX;\n        const dy =\n\n          event.clientY -\n\n          dragStartY;\n        const absX =\n\n          Math.abs(dx);\n        const absY =\n\n          Math.abs(dy);\n        if (dragAxis === null) {\n\n          if (\n\n            Math.max(\n\n              absX,\n\n              absY\n\n            ) <\n            DRAG_INTENT_PX\n          ) {\n            return;\n          }\n\n          if (\n            absY >\n\n            absX * 1.08\n\n          ) {\n\n            dragAxis =\n\n              'vertical';\n            return;\n\n          }\n          if (\n\n            absX >\n\n            absY * 1.05\n\n          ) {\n\n            dragAxis =\n\n              'horizontal';\n            isDragging =\n\n              prepareDrag();\n            if (!isDragging) {\n\n              dragAxis = null;\n\n              return;\n\n            }\n            slider.classList.add(\n\n              'is-dragging'\n\n            );\n            suppressClickUntil =\n\n              performance.now() +\n\n              450;\n            try {\n\n              slider.setPointerCapture(\n\n                event.pointerId\n\n              );\n\n            } catch (e) {}\n\n          } else {\n\n            return;\n\n          }\n\n        }\n        if (\n\n          dragAxis !== 'horizontal' ||\n\n          !isDragging\n\n        ) {\n\n          return;\n\n        }\n        if (event.cancelable) {\n\n          event.preventDefault();\n\n        }\n        const now =\n\n          performance.now();\n        const dt =\n\n          Math.max(\n\n            1,\n\n            now -\n\n            lastMoveTime\n\n          );\n        const segmentVelocity =\n\n          (\n\n            event.clientX -\n\n            lastX\n\n          ) \/\n\n          dt;\n        velocityX =\n\n          velocityX * 0.68 +\n\n          segmentVelocity * 0.32;\n        lastX =\n\n          event.clientX;\n        lastMoveTime =\n\n          now;\n        dragX = dx;\n        applyDrag(\n\n          dragX\n\n        );\n\n      },\n\n      {\n\n        passive: false\n\n      }\n\n    );\n    \/* ==========================================\n\n       POINTER UP \/ CANCEL\n\n       ========================================== *\/\n    slider.addEventListener(\n\n      'pointerup',\n\n      (event) => {\n\n        finishPointerGesture(\n\n          event,\n\n          false\n\n        );\n\n      },\n\n      {\n\n        passive: true\n\n      }\n\n    );\n    slider.addEventListener(\n\n      'pointercancel',\n\n      (event) => {\n\n        finishPointerGesture(\n\n          event,\n\n          true\n\n        );\n\n      },\n\n      {\n\n        passive: true\n\n      }\n\n    );\n    \/* ==========================================\n\n       BLOCCA CLICK ACCIDENTALE DOPO SWIPE\n\n       ========================================== *\/\n    slider.addEventListener(\n\n      'click',\n\n      (event) => {\n\n        if (\n\n          performance.now() <\n          suppressClickUntil\n        ) {\n          event.preventDefault();\n          event.stopPropagation();\n        }\n      },\n      true\n    );\n\n    \/* ==========================================\n       MOUSE DESKTOP\n       Pausa mentre si muove.\n       Riparte dopo 1 secondo di immobilit\u00e0.\n       ========================================== *\/\n\n    slider.addEventListener(\n      'pointermove',\n      (event) => {\n\n        if (\n\n          event.pointerType !==\n\n          'mouse'\n\n        ) {\n\n          return;\n\n        }\n        stopTimer();\n        if (mouseIdleTimer) {\n\n          window.clearTimeout(\n\n            mouseIdleTimer\n\n          );\n          mouseIdleTimer = null;\n\n        }\n        mouseIdleTimer =\n\n          window.setTimeout(\n\n            () => {\n\n              mouseIdleTimer = null;\n\n              startTimer();\n\n            },\n\n            MOUSE_IDLE_RESUME_MS\n\n          );\n\n      },\n\n      {\n\n        passive: true\n\n      }\n\n    );\n    slider.addEventListener(\n\n      'pointerleave',\n\n      (event) => {\n\n        if (\n\n          event.pointerType !==\n\n          'mouse'\n\n        ) {\n\n          return;\n\n        }\n        if (mouseIdleTimer) {\n\n          window.clearTimeout(\n\n            mouseIdleTimer\n\n          );\n          mouseIdleTimer = null;\n\n        }\n        startTimer();\n\n      }\n\n    );\n    \/* ==========================================\n\n       ACCESSIBILIT\u00c0\n\n       ========================================== *\/\n    document.addEventListener(\n\n      'keydown',\n\n      (event) => {\n\n        if (\n\n          event.key === 'Tab'\n\n        ) {\n\n          lastInputWasKeyboard =\n\n            true;\n\n        }\n\n      }\n\n    );\n    slider.addEventListener(\n\n      'focusin',\n\n      () => {\n\n        if (\n\n          !lastInputWasKeyboard\n\n        ) {\n\n          return;\n\n        }\n        keyboardFocusPaused =\n\n          true;\n        stopTimer();\n\n      }\n\n    );\n    slider.addEventListener(\n\n      'focusout',\n\n      (event) => {\n\n        if (\n\n          !slider.contains(\n\n            event.relatedTarget\n\n          )\n\n        ) {\n\n          keyboardFocusPaused =\n\n            false;\n          startTimer();\n\n        }\n\n      }\n\n    );\n    \/* ==========================================\n\n       VISIBILIT\u00c0 PAGINA\n\n       ========================================== *\/\n    document.addEventListener(\n\n      'visibilitychange',\n\n      () => {\n\n        if (document.hidden) {\n\n          stopTimer();\n          if (mouseIdleTimer) {\n\n            window.clearTimeout(\n\n              mouseIdleTimer\n\n            );\n            mouseIdleTimer = null;\n\n          }\n\n        } else {\n\n          startTimer();\n\n        }\n\n      }\n\n    );\n    \/* ==========================================\n\n       AVVIO\n\n       ========================================== *\/\n    startTimer();\n\n  };\n  if (\n\n    document.readyState ===\n\n    'loading'\n\n  ) {\n\n    document.addEventListener(\n\n      'DOMContentLoaded',\n\n      initMahlerHomeSlider,\n\n      {\n\n        once: true\n\n      }\n\n    );\n\n  } else {\n\n    initMahlerHomeSlider();\n\n  }\n\n})();\n\/* =========================================================\n\n   MAHLER \u2014 TRACKPAD DESKTOP\n\n   Modulo isolato: NON modifica il motore dello slider.\n\n   Safari + Chrome.\n\n   Un gesto orizzontale = una sola slide.\n\n   ========================================================= *\/\n(() => {\n\n  const initMahlerTrackpad = () => {\n\n    const slider = document.querySelector('.mahler-home-slider');\n    if (!slider) return;\n    \/*\n\n     * Evita doppia inizializzazione.\n\n     *\/\n\n    if (slider.dataset.mahlerTrackpadReady === 'true') {\n\n      return;\n\n    }\n    \/*\n\n     * Escludiamo esplicitamente iPad\/iPhone.\n\n     *\n\n     * Gli iPad moderni possono presentarsi anche\n\n     * come \"MacIntel\", quindi controlliamo\n\n     * anche maxTouchPoints.\n\n     *\/\n\n    const ua = navigator.userAgent || '';\n    const isIOS =\n\n      \/iPad|iPhone|iPod\/i.test(ua);\n    const isIPadDesktopMode =\n\n      navigator.platform === 'MacIntel' &&\n\n      navigator.maxTouchPoints > 1;\n    const hasDesktopPointer =\n\n      window.matchMedia(\n\n        '(hover: hover) and (pointer: fine)'\n\n      ).matches;\n    const isDesktop =\n\n      hasDesktopPointer &&\n\n      !isIOS &&\n\n      !isIPadDesktopMode;\n    if (!isDesktop) {\n\n      return;\n\n    }\n    slider.dataset.mahlerTrackpadReady = 'true';\n    \/*\n\n     * Sensibilit\u00e0 trackpad.\n\n     *\n\n     * Pi\u00f9 basso = gesto pi\u00f9 sensibile.\n\n     *\/\n\n    const SWIPE_THRESHOLD = 38;\n    \/*\n\n     * Dopo l'ultimo impulso aspettiamo questo tempo\n\n     * prima di considerare terminato il gesto.\n\n     *\n\n     * Serve soprattutto per assorbire l'inerzia\n\n     * del trackpad.\n\n     *\/\n\n    const GESTURE_END_DELAY = 280;\n    let accumulatedX = 0;\n\n    let gestureLocked = false;\n\n    let gestureEndTimer = null;\n    const resetGesture = () => {\n\n      accumulatedX = 0;\n\n      gestureLocked = false;\n      if (gestureEndTimer) {\n\n        window.clearTimeout(\n\n          gestureEndTimer\n\n        );\n        gestureEndTimer = null;\n\n      }\n\n    };\n    const scheduleGestureEnd = () => {\n\n      if (gestureEndTimer) {\n\n        window.clearTimeout(\n\n          gestureEndTimer\n\n        );\n\n      }\n      gestureEndTimer =\n\n        window.setTimeout(\n\n          resetGesture,\n\n          GESTURE_END_DELAY\n\n        );\n\n    };\n    slider.addEventListener(\n\n      'wheel',\n\n      (event) => {\n\n        \/*\n\n         * Trackpad moderni:\n\n         * deltaMode === 0 = movimento espresso in pixel.\n\n         *\n\n         * Ignoriamo wheel in righe\/pagine.\n\n         *\/\n\n        if (event.deltaMode !== 0) {\n\n          return;\n\n        }\n        const absX =\n\n          Math.abs(event.deltaX);\n        const absY =\n\n          Math.abs(event.deltaY);\n        \/*\n\n         * Deve essere chiaramente\n\n         * un gesto ORIZZONTALE.\n\n         *\n\n         * Se prevale il movimento verticale,\n\n         * lasciamo Safari\/Chrome completamente liberi\n\n         * di scorrere la pagina.\n\n         *\/\n\n        if (\n\n          absX < 1.5 ||\n          absX <= absY * 1.12\n        ) {\n          return;\n        }\n\n\n        \/*\n         * Il gesto appartiene allo slider.\n         * Evita anche lo spostamento laterale\n         * della pagina \/ navigazione accidentale\n         * mentre siamo sopra la hero.\n         *\/\n        if (event.cancelable) {\n          event.preventDefault();\n        }\n\n\n        scheduleGestureEnd();\n\n\n        \/*\n         * Una slide \u00e8 gi\u00e0 stata cambiata\n         * durante questo stesso gesto:\n         * assorbiamo tutta l'inerzia restante.\n         *\/\n        if (gestureLocked) {\n          return;\n        }\n\n\n        accumulatedX +=\n          event.deltaX;\n\n\n        if (\n          Math.abs(accumulatedX) <\n          SWIPE_THRESHOLD\n        ) {\n          return;\n        }\n\n\n        gestureLocked = true;\n\n\n        \/*\n         * Riutilizziamo il motore gi\u00e0 funzionante.\n         *\n         * Nessuna nuova animazione viene creata:\n         * inviamo semplicemente ArrowRight \/ ArrowLeft\n         * allo slider.\n         *\/\n        const key =\n          accumulatedX > 0\n\n            ? 'ArrowRight'\n\n            : 'ArrowLeft';\n        slider.dispatchEvent(\n\n          new KeyboardEvent(\n\n            'keydown',\n\n            {\n\n              key,\n\n              bubbles: true,\n\n              cancelable: true\n\n            }\n\n          )\n\n        );\n\n      },\n\n      {\n\n        passive: false\n\n      }\n\n    );\n\n  };\n  if (document.readyState === 'loading') {\n\n    document.addEventListener(\n\n      'DOMContentLoaded',\n\n      initMahlerTrackpad,\n\n      {\n\n        once: true\n\n      }\n\n    );\n\n  } else {\n\n    initMahlerTrackpad();\n\n  }\n\n})();\n\/* =========================================================\n\n   MAHLER \u2014 iPAD \/ TABLET TOUCH LOCK\n\n   Blocca solo lo slittamento orizzontale della pagina.\n\n   Il motore dello slider esistente resta invariato.\n\n   ========================================================= *\/\n(() => {\n\n  const slider = document.querySelector('.mahler-home-slider');\n  if (!slider) return;\n  if (slider.dataset.mahlerTabletTouchLock === 'true') {\n\n    return;\n\n  }\n  const isTouchDevice =\n\n    navigator.maxTouchPoints > 0;\n  const isTabletWidth =\n\n    window.matchMedia(\n\n      '(min-width: 601px) and (max-width: 1366px)'\n\n    ).matches;\n  if (!isTouchDevice || !isTabletWidth) {\n\n    return;\n\n  }\n  slider.dataset.mahlerTabletTouchLock = 'true';\n  let active = false;\n\n  let horizontal = false;\n  let startX = 0;\n\n  let startY = 0;\n  const INTENT_PX = 5;\n  const resetGesture = () => {\n\n    active = false;\n\n    horizontal = false;\n\n  };\n  slider.addEventListener(\n\n    'touchstart',\n\n    (event) => {\n\n      if (event.touches.length !== 1) {\n\n        resetGesture();\n\n        return;\n\n      }\n      const touch = event.touches[0];\n      startX = touch.clientX;\n\n      startY = touch.clientY;\n      active = true;\n\n      horizontal = false;\n\n    },\n\n    {\n\n      passive: true\n\n    }\n\n  );\n  slider.addEventListener(\n\n    'touchmove',\n\n    (event) => {\n\n      if (\n\n        !active ||\n\n        event.touches.length !== 1\n\n      ) {\n\n        return;\n\n      }\n      const touch = event.touches[0];\n      const dx =\n\n        touch.clientX - startX;\n      const dy =\n\n        touch.clientY - startY;\n      const absX =\n\n        Math.abs(dx);\n      const absY =\n\n        Math.abs(dy);\n      if (!horizontal) {\n\n        if (\n\n          Math.max(absX, absY) <\n          INTENT_PX\n        ) {\n          return;\n        }\n\n        \/*\n         * Se il gesto \u00e8 verticale,\n         * lasciamo Safari completamente libero.\n         *\/\n        if (\n          absY >\n\n          absX * 1.08\n\n        ) {\n\n          resetGesture();\n\n          return;\n\n        }\n        \/*\n\n         * Se \u00e8 orizzontale,\n\n         * lo assegniamo allo slider.\n\n         *\/\n\n        if (\n\n          absX >\n\n          absY * 1.03\n\n        ) {\n\n          horizontal = true;\n\n        } else {\n\n          return;\n\n        }\n\n      }\n      \/*\n\n       * Questo \u00e8 il punto fondamentale per iPad:\n\n       * impedisce al viewport\/pagina di seguire\n\n       * il dito verso destra e sinistra.\n\n       *\n\n       * Il Pointer Event dello slider continua\n\n       * comunque a gestire il movimento della slide.\n\n       *\/\n\n      if (\n\n        horizontal &&\n\n        event.cancelable\n\n      ) {\n\n        event.preventDefault();\n\n      }\n\n    },\n\n    {\n\n      passive: false\n\n    }\n\n  );\n  slider.addEventListener(\n\n    'touchend',\n\n    resetGesture,\n\n    {\n\n      passive: true\n\n    }\n\n  );\n  slider.addEventListener(\n\n    'touchcancel',\n\n    resetGesture,\n\n    {\n\n      passive: true\n\n    }\n\n  );\n\n})();\n\n<\/script>\n\n\n\n<style id=\"mahler-home-solo-prossimi-eventi\">body.home .mh-history{display:none!important}<\/style>\n\n","protected":false},"excerpt":{"rendered":"<p>Dall\u2019Accademia Tutte le news \u2192 \u2039\u203a DAL 1986 \u00b7 TREBISACCE La cultura musicale,un impegno condiviso. L\u2019Accademia Musicale \u201cGustav Mahler\u201d accompagna generazioni di musicisti attraverso la formazione, il perfezionamento e l\u2019esperienza artistica. Scopri la nostra storia \u2192 FORMAZIONE \u00b7 MUSICA \u00b7 INCONTRI Esplora l\u2019Accademia. FORMAZIONE Didattica eAlta Formazione Studio, perfezionamento e nuove prospettive musicali. Scopri la [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"no-title","meta":{"_acf_changed":false,"_monsterinsights_skip_tracking":false,"footnotes":""},"class_list":["post-24","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.accademiagustavmahler.it\/en\/wp-json\/wp\/v2\/pages\/24","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.accademiagustavmahler.it\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.accademiagustavmahler.it\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.accademiagustavmahler.it\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.accademiagustavmahler.it\/en\/wp-json\/wp\/v2\/comments?post=24"}],"version-history":[{"count":285,"href":"https:\/\/www.accademiagustavmahler.it\/en\/wp-json\/wp\/v2\/pages\/24\/revisions"}],"predecessor-version":[{"id":1970,"href":"https:\/\/www.accademiagustavmahler.it\/en\/wp-json\/wp\/v2\/pages\/24\/revisions\/1970"}],"wp:attachment":[{"href":"https:\/\/www.accademiagustavmahler.it\/en\/wp-json\/wp\/v2\/media?parent=24"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}