        /* Plus Jakarta Sans, ospitato sul nostro server (nessuna chiamata a Google) */
        @font-face {
            font-family: 'Plus Jakarta Sans';
            font-style: normal;
            font-weight: 300;
            font-display: swap;
            src: url('fonts/plus-jakarta-sans-300.woff2') format('woff2');
        }
        @font-face {
            font-family: 'Plus Jakarta Sans';
            font-style: normal;
            font-weight: 400;
            font-display: swap;
            src: url('fonts/plus-jakarta-sans-400.woff2') format('woff2');
        }
        @font-face {
            font-family: 'Plus Jakarta Sans';
            font-style: normal;
            font-weight: 500;
            font-display: swap;
            src: url('fonts/plus-jakarta-sans-500.woff2') format('woff2');
        }
        @font-face {
            font-family: 'Plus Jakarta Sans';
            font-style: normal;
            font-weight: 600;
            font-display: swap;
            src: url('fonts/plus-jakarta-sans-600.woff2') format('woff2');
        }
        @font-face {
            font-family: 'Plus Jakarta Sans';
            font-style: normal;
            font-weight: 700;
            font-display: swap;
            src: url('fonts/plus-jakarta-sans-700.woff2') format('woff2');
        }

        html { scroll-behavior: smooth; }
        body { background-color: #F5F5F7; } /* Sfondo generale grigio chiarissimo */
        
        .hero-overlay { 
            background: linear-gradient(to bottom, rgba(11, 36, 71, 0.6), rgba(11, 36, 71, 0.2)); 
        }
        
        /* Animazione Modal */
        .modal-fade-enter { opacity: 0; transform: scale(0.95); }
        .modal-fade-enter-active { opacity: 1; transform: scale(1); transition: opacity 300ms cubic-bezier(0.16, 1, 0.3, 1), transform 300ms cubic-bezier(0.16, 1, 0.3, 1); }

        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }

        /* Stile Mappa Bianco e Nero */
        .bw-map {
            filter: grayscale(100%) contrast(1.1);
        }

        /* Stile Menu Navigazione Desktop - Minimalista */
        .nav-link {
            position: relative;
            color: #6e6e73; /* Grigio testo Apple */
            text-decoration: none;
            padding-bottom: 4px;
            font-weight: 500;
            transition: color 0.3s ease;
        }

        .nav-link:hover, .nav-link.active {
            color: #007AFF;
        }

        /* Linea animata dal centro */
        .nav-link::after {
            content: '';
            position: absolute;
            width: 100%;
            height: 2px;
            bottom: 0;
            left: 0;
            background-color: #007AFF;
            transform: scaleX(0);
            transform-origin: center;
            transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
            border-radius: 2px;
        }

        .nav-link:hover::after, .nav-link.active::after {
            transform: scaleX(1);
        }
        
        /* Safe area per iPhone recenti */
        .pb-safe {
            padding-bottom: env(safe-area-inset-bottom);
        }

        /* Animazione Menu Mobile Fullscreen */
        #mobile-menu {
            border-width: 0;
            transition: height 0.5s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s ease-in-out;
            height: 0;
            opacity: 0;
            overflow: hidden;
        }
        
        #mobile-menu.open {
            border-width: 1px;
            height: calc(100dvh - 160px); 
            opacity: 1;
        }
        
        /* Glassmorphism Classes */
        .glass {
            background: rgba(255, 255, 255, 0.85);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            border-bottom: 1px solid rgba(0,0,0,0.05);
        }

        /* Apple Style Card Hover */
        .apple-card {
            transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
        }
        .apple-card:hover {
            transform: translateY(-4px);
            box-shadow: 0 12px 40px rgba(0,0,0,0.1);
        }

        /* Animazione Hamburger Moderno CSS-only */
        .hamburger-line { 
            transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1); 
        }
        .menu-open .line-1 { transform: translateY(7px) rotate(45deg); }
        .menu-open .line-2 { opacity: 0; }
        .menu-open .line-3 { transform: translateY(-7px) rotate(-45deg); }

        /* Animazione Marquee Convenzioni */
        @keyframes marquee {
            0% { transform: translateX(0); }
            100% { transform: translateX(-50%); }
        }
        .marquee-track {
            animation: marquee 45s linear infinite;
        }
    

        /* Biglietti della promo (tacche laterali) */
        .ticket {
            border-radius: 24px;
            -webkit-mask: radial-gradient(circle 14px at 0 50%, #0000 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle 14px at 100% 50%, #0000 98%, #000) right / 51% 100% no-repeat;
            mask: radial-gradient(circle 14px at 0 50%, #0000 98%, #000) left / 51% 100% no-repeat, radial-gradient(circle 14px at 100% 50%, #0000 98%, #000) right / 51% 100% no-repeat;
        }
