{"id":107,"date":"2025-08-05T17:28:35","date_gmt":"2025-08-05T15:28:35","guid":{"rendered":"https:\/\/aviglianabasket.it\/?page_id=107"},"modified":"2026-03-21T23:54:01","modified_gmt":"2026-03-21T22:54:01","slug":"prossimi-incontri","status":"publish","type":"page","link":"https:\/\/www.aviglianabasket.it\/?page_id=107","title":{"rendered":"Prossimi Incontri"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"107\" class=\"elementor elementor-107\">\n\t\t\t\t<div class=\"elementor-element elementor-element-29f8e03 e-con-full e-flex e-con e-parent\" data-id=\"29f8e03\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cfeb0d8 elementor-widget elementor-widget-spacer\" data-id=\"cfeb0d8\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-da08ef6 e-grid e-con-full e-con e-child\" data-id=\"da08ef6\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-07d13d1 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"07d13d1\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.aviglianabasket.it\/?page_id=2192\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Vai a : CALENDARIO GENERALE INCONTRI<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-485e438 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"485e438\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#STATISTICHE\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-arrow-alt-circle-down\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">SCENDI a : STATISTICHE<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1bd9f70 e-con-full e-flex e-con e-child\" data-id=\"1bd9f70\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-973642d e-con-full e-flex e-con e-child\" data-id=\"973642d\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-a20eedf e-con-full e-flex e-con e-child\" data-id=\"a20eedf\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c3321db elementor-widget elementor-widget-html\" data-id=\"c3321db\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"it\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Timeline Partite Filtrata<\/title>\n    \n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Urbanist:wght@300;400;600;700;800&display=swap\" rel=\"stylesheet\">\n    \n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n\n    <script src=\"https:\/\/apis.google.com\/js\/api.js\"><\/script>\n\n    <script>\n        tailwind.config = {\n            theme: {\n                extend: {\n                    fontFamily: {\n                        sans: ['Urbanist', 'sans-serif'],\n                    },\n                    colors: {\n                        dark: {\n                            900: '#0f172a',\n                            800: '#1e293b',\n                            700: '#334155',\n                        },\n                        casa: {\n                            DEFAULT: '#10b981', \/\/ Emerald 500\n                            glow: 'rgba(16, 185, 129, 0.5)'\n                        },\n                        trasferta: {\n                            DEFAULT: '#f59e0b', \/\/ Amber 500\n                            glow: 'rgba(245, 158, 11, 0.5)'\n                        }\n                    },\n                    animation: {\n                        'fade-in-up': 'fadeInUp 0.5s ease-out forwards',\n                    },\n                    keyframes: {\n                        fadeInUp: {\n                            '0%': { opacity: '0', transform: 'translateY(20px)' },\n                            '100%': { opacity: '1', transform: 'translateY(0)' },\n                        }\n                    }\n                }\n            }\n        }\n    <\/script>\n\n    <style>\n        body {\n            background-color: #0f172a;\n            background-image: \n                radial-gradient(at 0% 0%, rgba(16, 185, 129, 0.15) 0px, transparent 50%),\n                radial-gradient(at 100% 100%, rgba(245, 158, 11, 0.15) 0px, transparent 50%);\n            background-attachment: fixed;\n            color: #f8fafc;\n        }\n\n        \/* Glassmorphism Utilities *\/\n        .glass-panel {\n            background: rgba(30, 41, 59, 0.6);\n            backdrop-filter: blur(12px);\n            -webkit-backdrop-filter: blur(12px);\n            border: 1px solid rgba(255, 255, 255, 0.08);\n        }\n\n        .glass-input {\n            background: rgba(15, 23, 42, 0.6);\n            border: 1px solid rgba(255, 255, 255, 0.1);\n            color: white;\n            transition: all 0.3s ease;\n        }\n        .glass-input:focus {\n            outline: none;\n            border-color: #10b981;\n            box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.2);\n        }\n\n        \/* Scrollbar *\/\n        ::-webkit-scrollbar { width: 8px; }\n        ::-webkit-scrollbar-track { background: #0f172a; }\n        ::-webkit-scrollbar-thumb { background: #334155; border-radius: 4px; }\n        ::-webkit-scrollbar-thumb:hover { background: #475569; }\n\n        \/* Timeline Line *\/\n        .timeline-line {\n            position: absolute;\n            left: 50%;\n            transform: translateX(-50%);\n            width: 2px;\n            height: 100%;\n            background: linear-gradient(to bottom, transparent, #334155 10%, #334155 90%, transparent);\n            z-index: 0;\n        }\n\n        \/* Responsive adjustments for mobile timeline *\/\n        @media (max-width: 768px) {\n            .timeline-line { left: 20px; }\n        }\n    <\/style>\n<\/head>\n<body class=\"min-h-screen p-4 md:p-8 antialiased\">\n\n    <div class=\"max-w-5xl mx-auto\">\n        \n        <header class=\"text-center mb-10 animate-fade-in-up\">\n            <h1 class=\"text-3xl md:text-5xl font-extrabold text-transparent bg-clip-text bg-gradient-to-r from-emerald-400 via-white to-amber-400 mb-2\">\n                PROSSIMI INCONTRI\n            <\/h1>\n            <div id=\"date-range-display\" class=\"text-slate-400 font-mono text-sm uppercase tracking-widest\">\n                Caricamento date...\n            <\/div>\n        <\/header>\n\n        <div class=\"glass-panel rounded-2xl p-6 mb-12 shadow-2xl animate-fade-in-up\" style=\"animation-delay: 0.1s;\">\n            <div class=\"flex flex-col md:flex-row gap-6 justify-center items-center\">\n                \n                <div class=\"w-full md:w-auto flex flex-col gap-2\">\n                    <label class=\"text-xs font-bold text-slate-500 uppercase tracking-wider ml-1\">Periodo<\/label>\n                    <div class=\"relative\">\n                        <select id=\"days-select\" class=\"glass-input w-full md:w-64 rounded-xl px-4 py-3 appearance-none cursor-pointer font-bold text-emerald-400\">\n                            <option value=\"7\">Prossimi 7 giorni<\/option>\n                            <option value=\"15\">Prossimi 15 giorni<\/option>\n                            <option value=\"30\">Prossimi 30 giorni<\/option>\n                        <\/select>\n                        <div class=\"absolute right-4 top-1\/2 -translate-y-1\/2 pointer-events-none text-slate-400\">\n                            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" viewBox=\"0 0 16 16\"><path d=\"M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z\"\/><\/svg>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"w-full md:w-auto flex flex-col gap-2\">\n                    <label class=\"text-xs font-bold text-slate-500 uppercase tracking-wider ml-1\">Filtra Squadre (Multiplo)<\/label>\n                    <select id=\"category-select\" multiple class=\"glass-input w-full md:w-80 rounded-xl px-4 py-2 h-32 text-sm custom-scrollbar\" size=\"4\">\n                        <option value=\"Tutte le Squadre\" selected class=\"font-bold text-white mb-1\">\u2b50 Tutte le Squadre<\/option>\n                        <option value=\"C Femminile\">C Femminile<\/option>\n                        <option value=\"3 Divisione M\">3 Divisione M<\/option>\n                        <option value=\"UISP M\">UISP M<\/option>\n                        <option value=\"U19 Maschile\">U19 Maschile<\/option>\n                        <option value=\"U17 Femminile\">U17 Femminile<\/option>\n                        <option value=\"U17 Maschile\">U17 Maschile<\/option>\n                        <option value=\"U15 Maschile\">U15 Maschile<\/option>\n                        <option value=\"U14 Maschile\">U14 Maschile<\/option>\n                        <option value=\"U13 Maschile\">U13 Maschile<\/option>\n                        <option value=\"U13-15 Femminile\">U13-15 Femminile<\/option>\n                        <option value=\"Juniores CSI\">Juniores CSI<\/option>\n                        <option value=\"Ragazzi CSI\">Ragazzi CSI<\/option>\n                    <\/select>\n                    <p class=\"text-[10px] text-slate-500 text-center md:text-right italic\">Tieni premuto CTRL o CMD per selezionare pi\u00f9 voci<\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"relative min-h-[400px]\" id=\"events-timeline\">\n            <div class=\"timeline-line\"><\/div>\n            \n            <div id=\"events-list-all\" class=\"relative z-10 space-y-8 pb-20\">\n                <div class=\"flex flex-col items-center justify-center py-20 text-slate-500 gap-4\">\n                    <div class=\"w-10 h-10 border-4 border-emerald-500\/30 border-t-emerald-500 rounded-full animate-spin\"><\/div>\n                    <p class=\"font-mono text-sm uppercase\">Sincronizzazione Calendari...<\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n\n    <\/div>\n\n    <script>\n        const API_KEY = 'AIzaSyDVNulAR9V16JXIK2RSRXCv6uk6AO2Nk1I'; \n        const ORIGIN_ADDRESS = 'Via Drubiaglio 1 Avigliana'; \n\n        const CALENDAR_IDS = [\n            { id: '0cd5fa89ab3f8bbd58fe500d95e9df8d2c04692dfdd11fed8a04889380049052@group.calendar.google.com', name: 'Partite IN CASA', type: 'casa', color: '#10b981' },\n            { id: 'eda6118d425bd15e8b5ec8defdb2ca2a99b94ef6be7b0ffa943fc371f48cf3d8@group.calendar.google.com', name: 'Partite IN TRASFERTA', type: 'trasferta', color: '#f59e0b' }\n        ];\n\n        const MAX_EVENTS_MAP = { '7': 40, '15': 100, '30': 196 };\n        const dateFormatter = new Intl.DateTimeFormat('it-IT', { day: 'numeric', month: 'long', year: 'numeric' });\n\n        \/\/ --- Utility Functions ---\n\n        function updateDateRangeDisplay() {\n            const days = document.getElementById('days-select').value;\n            const now = new Date(); \n            const futureDate = new Date(now);\n            futureDate.setDate(now.getDate() + parseInt(days));\n            const rangeDiv = document.getElementById('date-range-display');\n            rangeDiv.innerHTML = `Dal <span class=\"text-white font-bold\">${dateFormatter.format(now)}<\/span> al <span class=\"text-white font-bold\">${dateFormatter.format(futureDate)}<\/span>`;\n        }\n\n        function openDirections(destination) {\n            const encodedOrigin = encodeURIComponent(ORIGIN_ADDRESS);\n            const encodedDestination = encodeURIComponent(destination);\n            \/\/ Correzione URL Google Maps \n            const mapsUrl = `https:\/\/www.google.com\/maps\/dir\/${encodedOrigin}\/${encodedDestination}`; \n            window.open(mapsUrl, '_blank');\n        }\n\n        \/\/ --- Google API Logic ---\n\n        function handleClientLoad() { gapi.load('client', initClient); }\n\n        async function initClient() {\n            try {\n                await gapi.client.init({\n                    apiKey: API_KEY,\n                    discoveryDocs: [\"https:\/\/www.googleapis.com\/discovery\/v1\/apis\/calendar\/v3\/rest\"]\n                });\n                \n                listUpcomingEvents();\n                document.getElementById('days-select').addEventListener('change', listUpcomingEvents);\n                document.getElementById('category-select').addEventListener('change', listUpcomingEvents);\n            } catch (error) {\n                console.error(\"API Error:\", error);\n                document.getElementById('events-list-all').innerHTML = `\n                    <div class=\"glass-panel p-6 rounded-xl text-center border-red-500\/50 text-red-300\">\n                        <p class=\"font-bold\">Errore di connessione ai calendari Google.<\/p>\n                        <p class=\"text-sm mt-2 opacity-70\">${error.message || 'Controlla la console per i dettagli'}<\/p>\n                    <\/div>`;\n            }\n        }\n\n        async function fetchEventsForCalendar(calendar) {\n            const days = document.getElementById('days-select').value;\n            const maxResults = MAX_EVENTS_MAP[days];\n            const now = new Date(); \n            const timeMin = now.toISOString(); \n            const futureDate = new Date(now);\n            futureDate.setDate(now.getDate() + parseInt(days));\n            const timeMax = futureDate.toISOString(); \n\n            try {\n                const response = await gapi.client.calendar.events.list({\n                    'calendarId': calendar.id,\n                    'timeMin': timeMin,\n                    'timeMax': timeMax, \n                    'showDeleted': false,\n                    'singleEvents': true,\n                    'maxResults': maxResults,\n                    'orderBy': 'startTime'\n                });\n\n                return response.result.items.map(event => ({\n                    ...event,\n                    calendarName: calendar.name,\n                    calendarColor: calendar.color,\n                    eventType: calendar.type \n                }));\n\n            } catch (error) {\n                console.warn(`Error loading calendar: ${calendar.name}`, error);\n                return [];\n            }\n        }\n\n        \/\/ --- Render Logic ---\n\n        async function listUpcomingEvents() {\n            updateDateRangeDisplay();\n            const eventsListDiv = document.getElementById('events-list-all');\n            eventsListDiv.innerHTML = `\n                <div class=\"flex flex-col items-center justify-center py-20 text-slate-500 gap-4\">\n                    <div class=\"w-10 h-10 border-4 border-emerald-500\/30 border-t-emerald-500 rounded-full animate-spin\"><\/div>\n                    <p class=\"font-mono text-sm uppercase\">Lettura dati...<\/p>\n                <\/div>\n            `;\n            \n            const categorySelect = document.getElementById('category-select');\n            const selectedCategories = Array.from(categorySelect.selectedOptions).map(opt => opt.value);\n\n            const allEventsArrays = await Promise.all(CALENDAR_IDS.map(fetchEventsForCalendar));\n            let allEvents = allEventsArrays.flat();\n\n            \/\/ Filter\n            if (!(selectedCategories.length === 1 && selectedCategories.includes('Tutte le Squadre'))) {\n                const filterValues = selectedCategories.map(v => v.toUpperCase());\n                allEvents = allEvents.filter(event => \n                    event.summary && filterValues.some(fv => event.summary.toUpperCase().includes(fv))\n                );\n            }\n\n            \/\/ Sort\n            allEvents.sort((a, b) => new Date(a.start.dateTime || a.start.date) - new Date(b.start.dateTime || b.start.date));\n            const days = document.getElementById('days-select').value;\n            allEvents = allEvents.slice(0, MAX_EVENTS_MAP[days]);\n\n            displayEvents(allEvents);\n        }\n\n        function displayEvents(events) {\n            const eventsListDiv = document.getElementById('events-list-all');\n            eventsListDiv.innerHTML = ''; \n\n            if (events.length === 0) {\n                eventsListDiv.innerHTML = `\n                    <div class=\"glass-panel p-8 rounded-2xl text-center mx-auto max-w-md mt-10\">\n                        <p class=\"text-xl text-slate-300 font-bold mb-2\">Nessuna partita trovata<\/p>\n                        <p class=\"text-slate-500\">Prova a cambiare i filtri o estendere il periodo.<\/p>\n                    <\/div>`;\n                return;\n            }\n\n            const dayFormatter = new Intl.DateTimeFormat('it-IT', { day: 'numeric' });\n            const monthFormatter = new Intl.DateTimeFormat('it-IT', { month: 'short' });\n            const timeFormatter = new Intl.DateTimeFormat('it-IT', { hour: '2-digit', minute: '2-digit' });\n            \n            const now = new Date(); \n            const todayISO = now.toISOString().split('T')[0];\n            const NINETY_MINUTES_IN_MS = 90 * 60 * 1000; \n\n            events.forEach((event, index) => {\n                const start = new Date(event.start.dateTime || event.start.date);\n                const eventDateISO = start.toISOString().split('T')[0];\n                const isToday = eventDateISO === todayISO;\n                const isAllDay = !event.start.dateTime; \n                const isTrasferta = event.eventType === 'trasferta';\n                \n                const day = dayFormatter.format(start);\n                const month = monthFormatter.format(start).replace('.', '').toUpperCase();\n                const timeStr = isAllDay ? 'Tutto il Giorno' : timeFormatter.format(start);\n                \n                \/\/ Check for unconfirmed event (starting with '.')\n                const isUnconfirmed = event.summary && event.summary.trim().startsWith('.');\n                let displaySummary = isUnconfirmed ? event.summary.trim().substring(1).trim() : event.summary;\n                if (!displaySummary) {\n                    displaySummary = \"Evento senza titolo\"; \n                }\n                \n                let unconfirmedBadge = '';\n                if (isUnconfirmed) {\n                    \/\/ Badge con ICONA DI PERICOLO e allineamento in-linea\n                    unconfirmedBadge = `\n                        <div class=\"flex items-center gap-1 bg-red-500\/20 border border-red-500\/50 px-2 py-1 rounded-md text-red-400 font-bold text-xs uppercase tracking-wider\">\n                            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"text-red-400\">\n                                <path d=\"M10.29 3.86L1.87 19.14C1.55 19.6 1.55 20.4 1.87 20.86C2.19 21.32 2.62 21.5 3.09 21.5H20.91C21.38 21.5 21.81 21.32 22.13 20.86C22.45 20.4 22.45 19.6 22.13 19.14L13.71 3.86C13.39 3.4 12.8 3.4 12.38 3.86L10.29 3.86Z\"\/>\n                                <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"\/>\n                                <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"\/>\n                            <\/svg>\n                            NON CONFERMATA\n                        <\/div>\n                    `;\n                }\n\n                \/\/ Status Logic\n                let statusBadge = '';\n                const ninetyMinutesAgo = new Date(now.getTime() - NINETY_MINUTES_IN_MS);\n\n                if (isToday && !isAllDay && !isUnconfirmed) { \n                    if (start <= now && start >= ninetyMinutesAgo) {\n                        statusBadge = `<div class=\"flex items-center gap-1 bg-amber-500\/20 border border-amber-500\/50 px-2 py-1 rounded-md text-amber-400 font-bold text-xs uppercase tracking-wider animate-pulse\">IN CORSO<\/div>`;\n                    } else if (start < ninetyMinutesAgo) {\n                        statusBadge = `<div class=\"flex items-center gap-1 bg-red-500\/20 border border-red-500\/50 px-2 py-1 rounded-md text-red-400 font-bold text-xs uppercase tracking-wider\">TERMINATA<\/div>`;\n                    }\n                }\n                \n                const finalBadge = unconfirmedBadge || statusBadge; \n\n                \/\/ Layout Config\n                const cardBorderClass = isTrasferta\n                    ? 'border-l-4 md:border-l-0 md:border-r-4 border-amber-500'\n                    : 'border-l-4 border-emerald-500';\n                \n                const locationClick = (event.location) ? `onclick=\"openDirections('${event.location.replace(\/'\/g, \"\\\\'\")}')\"` : '';\n                const cursorClass = (event.location) ? 'cursor-pointer hover:bg-slate-700\/50' : '';\n                \n                const mapLinkHtml = event.location ? `\n                    <div class=\"flex items-center gap-1 bg-slate-800\/80 px-2 py-1 rounded-md text-blue-300 group-hover:text-blue-200 transition-colors\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"\/><circle cx=\"12\" cy=\"10\" r=\"3\"\/><\/svg>\n                        Mappa\n                    <\/div>` : '';\n\n                const timeHtml = `\n                    <div class=\"flex items-center gap-1 bg-slate-800\/80 px-2 py-1 rounded-md\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg>\n                        ${timeStr}\n                    <\/div>`;\n\n\n                \/\/ Structure for in-line elements\n                const infoRowAlignment = isTrasferta ? '' : 'md:justify-end'; \/\/ Align right for Home matches on desktop\n\n                const cardHTML = `\n                    <div class=\"group relative w-full md:w-[calc(50%-40px)] mb-8 md:mb-0 ${isTrasferta ? 'md:ml-auto' : 'md:mr-auto'} animate-fade-in-up\" style=\"animation-delay: ${index * 50}ms\">\n                        \n                        <div class=\"hidden md:block absolute top-6 ${isTrasferta ? '-left-[51px]' : '-right-[51px]'} w-5 h-5 rounded-full border-4 border-slate-900 ${isTrasferta ? 'bg-amber-500' : 'bg-emerald-500'} shadow-[0_0_15px_rgba(255,255,255,0.3)] z-20\"><\/div>\n\n                        <div class=\"glass-panel p-5 rounded-2xl shadow-lg transition-all duration-300 hover:-translate-y-1 hover:shadow-2xl ${cardBorderClass} ${cursorClass}\" ${locationClick}>\n                            \n                            <div class=\"flex items-start justify-between gap-4 ${isTrasferta ? '' : 'md:flex-row-reverse'}\">\n                                \n                                <div class=\"flex-1 overflow-hidden\">\n                                    <h3 class=\"font-bold text-lg md:text-xl text-white truncate leading-tight mb-1\" title=\"${displaySummary}\">${displaySummary}<\/h3>\n                                    \n                                    ${event.description ? `<p class=\"text-sm text-slate-400 mb-3 line-clamp-2\">${event.description}<\/p>` : ''}\n                                    \n                                    <div class=\"flex flex-wrap items-center gap-3 text-sm font-mono text-slate-300 mt-2 ${infoRowAlignment}\">\n                                        ${timeHtml}\n                                        ${mapLinkHtml}\n                                        ${finalBadge}\n                                    <\/div>\n                                    \n                                <\/div>\n\n                                <div class=\"flex-shrink-0 flex flex-col items-center justify-center bg-slate-800\/80 border border-white\/5 rounded-xl p-2 w-16 h-16 shadow-inner ${isToday ? 'ring-2 ring-emerald-500 ring-offset-2 ring-offset-slate-900' : ''}\">\n                                    <span class=\"text-xs font-bold text-slate-400 uppercase\">${month}<\/span>\n                                    <span class=\"text-2xl font-black text-white leading-none\">${day}<\/span>\n                                <\/div>\n\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                `;\n\n                eventsListDiv.insertAdjacentHTML('beforeend', cardHTML);\n            });\n        }\n\n        handleClientLoad();\n    <\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c65df09 e-con-full e-flex e-con e-parent\" data-id=\"c65df09\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dff63e0 elementor-widget elementor-widget-menu-anchor\" data-id=\"dff63e0\" data-element_type=\"widget\" data-widget_type=\"menu-anchor.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-menu-anchor\" id=\"STATISTICHE\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c151087 e-con-full e-flex e-con e-parent\" data-id=\"c151087\" data-element_type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Vai a : CALENDARIO GENERALE INCONTRI SCENDI a : STATISTICHE Timeline Partite Filtrata PROSSIMI INCONTRI Caricamento date&#8230; Periodo Prossimi 7 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-107","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.aviglianabasket.it\/index.php?rest_route=\/wp\/v2\/pages\/107","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aviglianabasket.it\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.aviglianabasket.it\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.aviglianabasket.it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aviglianabasket.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=107"}],"version-history":[{"count":989,"href":"https:\/\/www.aviglianabasket.it\/index.php?rest_route=\/wp\/v2\/pages\/107\/revisions"}],"predecessor-version":[{"id":5970,"href":"https:\/\/www.aviglianabasket.it\/index.php?rest_route=\/wp\/v2\/pages\/107\/revisions\/5970"}],"wp:attachment":[{"href":"https:\/\/www.aviglianabasket.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}