{"id":17,"date":"2025-06-27T11:28:25","date_gmt":"2025-06-27T11:28:25","guid":{"rendered":"https:\/\/hopeful-mahavira.46-231-5-246.plesk.page\/?page_id=17"},"modified":"2026-09-01T10:33:08","modified_gmt":"2026-09-01T10:33:08","slug":"conciertos-2","status":"publish","type":"page","link":"https:\/\/fira.onda.es\/index.php\/conciertos-2\/","title":{"rendered":"Conciertos"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"17\" class=\"elementor elementor-17\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5b1031a e-con-full e-flex e-con e-parent\" data-id=\"5b1031a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-04b858a elementor-widget elementor-widget-html\" data-id=\"04b858a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"es\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>Eventos Musicales Fira d'Onda 2026<\/title>\r\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@700;800;900&family=Open+Sans:wght@400;600;700&display=swap\" rel=\"stylesheet\">\r\n    <style>\r\n        :root {\r\n            --blue-950: #07153f;\r\n            --blue-900: #052f76;\r\n            --blue-700: #007fbb;\r\n            --blue-500: #08b6dc;\r\n            --cyan: #10c9ec;\r\n            --yellow: #fff52e;\r\n            --pink: #f6008d;\r\n            --white: #ffffff;\r\n            --ink: #17304f;\r\n            --muted: #5d728c;\r\n            --radius: 8px;\r\n        }\r\n\r\n        * {\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        body {\r\n            margin: 0;\r\n            font-family: \"Open Sans\", Arial, sans-serif;\r\n            background: var(--blue-950);\r\n            color: var(--white);\r\n        }\r\n\r\n        a {\r\n            color: inherit;\r\n            text-decoration: none;\r\n        }\r\n\r\n        button {\r\n            font: inherit;\r\n        }\r\n\r\n        .mascot-actor {\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            z-index: 1;\r\n            width: clamp(86px, 10vw, 132px);\r\n            opacity: 0;\r\n            pointer-events: none;\r\n            user-select: none;\r\n            will-change: transform, opacity;\r\n            transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.2s ease;\r\n            filter: drop-shadow(0 12px 14px rgba(7, 21, 63, 0.28));\r\n        }\r\n\r\n        .mascot-actor.is-visible {\r\n            opacity: 1;\r\n        }\r\n\r\n        .mascot-image-wrap {\r\n            transition: transform 0.18s ease;\r\n        }\r\n\r\n        .mascot-actor.is-facing-left .mascot-image-wrap {\r\n            transform: scaleX(-1);\r\n        }\r\n\r\n        .mascot-actor img {\r\n            display: block;\r\n            width: 100%;\r\n            height: auto;\r\n            aspect-ratio: 1 \/ 1;\r\n            object-fit: contain;\r\n            transform-origin: 50% 82%;\r\n        }\r\n\r\n        .mascot-actor.is-peeking img {\r\n            animation: mascot-peek 0.85s ease-in-out infinite alternate;\r\n        }\r\n\r\n        .mascot-actor.is-peeking,\r\n        .mascot-actor.is-jumping,\r\n        .mascot-actor.is-celebrating {\r\n            z-index: 4;\r\n        }\r\n\r\n        .mascot-actor.is-jumping img {\r\n            animation: mascot-jump 0.72s ease-in-out;\r\n        }\r\n\r\n        .mascot-actor.is-celebrating img {\r\n            animation: mascot-celebrate 0.32s ease-in-out infinite alternate;\r\n        }\r\n\r\n        .mascot-message {\r\n            position: absolute;\r\n            left: 50%;\r\n            bottom: 88%;\r\n            min-width: 150px;\r\n            max-width: 190px;\r\n            padding: 9px 12px;\r\n            border: 2px solid var(--pink);\r\n            border-radius: 16px;\r\n            background: var(--yellow);\r\n            color: var(--pink);\r\n            font-size: 0.76rem;\r\n            font-weight: 900;\r\n            line-height: 1.25;\r\n            text-align: center;\r\n            opacity: 0;\r\n            transform: translate(-50%, 8px) scale(0.85);\r\n            transition: opacity 0.2s ease, transform 0.2s ease;\r\n            box-shadow: 4px 4px 0 var(--pink);\r\n            white-space: normal;\r\n        }\r\n\r\n        .mascot-message::after {\r\n            content: \"\";\r\n            position: absolute;\r\n            left: 50%;\r\n            bottom: -9px;\r\n            width: 14px;\r\n            height: 14px;\r\n            background: var(--yellow);\r\n            border-right: 2px solid var(--pink);\r\n            border-bottom: 2px solid var(--pink);\r\n            transform: translateX(-50%) rotate(45deg);\r\n        }\r\n\r\n        .mascot-actor.show-message .mascot-message {\r\n            opacity: 1;\r\n            transform: translate(-50%, 0) scale(1);\r\n        }\r\n\r\n        .mascot-confetti-piece {\r\n            position: absolute;\r\n            z-index: 6;\r\n            width: 9px;\r\n            height: 14px;\r\n            border-radius: 2px;\r\n            pointer-events: none;\r\n            animation: mascot-confetti 0.95s cubic-bezier(0.16, 0.84, 0.44, 1) forwards;\r\n        }\r\n\r\n        @keyframes mascot-peek {\r\n            0% {\r\n                transform: translateY(3px) rotate(-5deg);\r\n            }\r\n\r\n            100% {\r\n                transform: translateY(-5px) rotate(5deg);\r\n            }\r\n        }\r\n\r\n        @keyframes mascot-jump {\r\n            0%, 100% {\r\n                transform: rotate(0) scale(1);\r\n            }\r\n\r\n            50% {\r\n                transform: rotate(12deg) scale(1.12, 0.92);\r\n            }\r\n        }\r\n\r\n        @keyframes mascot-celebrate {\r\n            0% {\r\n                transform: translateY(0) rotate(-10deg) scale(1);\r\n            }\r\n\r\n            100% {\r\n                transform: translateY(-12px) rotate(10deg) scale(1.08, 0.94);\r\n            }\r\n        }\r\n\r\n        @keyframes mascot-confetti {\r\n            from {\r\n                opacity: 1;\r\n                transform: translate(0, 0) rotate(0deg);\r\n            }\r\n\r\n            to {\r\n                opacity: 0;\r\n                transform: translate(var(--confetti-x), var(--confetti-y)) rotate(var(--confetti-r));\r\n            }\r\n        }\r\n\r\n        @media (prefers-reduced-motion: reduce) {\r\n            .mascot-actor {\r\n                transition: none;\r\n            }\r\n\r\n            .mascot-actor img,\r\n            .mascot-confetti-piece {\r\n                animation: none !important;\r\n            }\r\n        }\r\n\r\n        .music-section {\r\n            position: relative;\r\n            min-height: 100vh;\r\n            padding: 72px 20px;\r\n            background:\r\n                radial-gradient(circle at 8% 18%, rgba(255, 245, 46, 0.2) 0 3px, transparent 4px) 0 0 \/ 28px 28px,\r\n                radial-gradient(circle at 88% 12%, rgba(255, 255, 255, 0.2), transparent 23%),\r\n                linear-gradient(145deg, #08b9df 0%, #029fd3 48%, #0569b4 100%);\r\n            overflow-x: hidden;\r\n            box-shadow: inset 0 10px 0 var(--yellow), inset 0 -10px 0 var(--pink);\r\n        }\r\n\r\n        .music-wrapper {\r\n            position: relative;\r\n            z-index: 1;\r\n            width: min(1120px, 100%);\r\n            margin: 0 auto;\r\n        }\r\n\r\n        .music-header {\r\n            display: grid;\r\n            grid-template-columns: minmax(0, 1fr) minmax(180px, 230px);\r\n            gap: clamp(28px, 5vw, 60px);\r\n            align-items: center;\r\n            margin-bottom: 34px;\r\n        }\r\n\r\n        .music-header-copy {\r\n            min-width: 0;\r\n        }\r\n\r\n        .music-kicker {\r\n            display: inline-flex;\r\n            width: fit-content;\r\n            margin-bottom: 14px;\r\n            padding: 8px 12px;\r\n            border-radius: 999px;\r\n            background: var(--yellow);\r\n            border: 2px solid var(--pink);\r\n            color: var(--pink);\r\n            font-size: 0.82rem;\r\n            font-weight: 900;\r\n            text-transform: uppercase;\r\n            box-shadow: 5px 5px 0 var(--pink);\r\n        }\r\n\r\n        .music-title {\r\n            margin: 0;\r\n            font-family: \"Montserrat\", Arial, sans-serif;\r\n            font-size: clamp(2.4rem, 6vw, 5.5rem);\r\n            line-height: 0.98;\r\n            color: var(--white);\r\n            text-transform: uppercase;\r\n            letter-spacing: 0;\r\n            text-shadow: 0 16px 38px rgba(6, 27, 69, 0.28);\r\n        }\r\n\r\n        .music-title span {\r\n            display: block;\r\n            color: transparent;\r\n            -webkit-text-stroke: 2px var(--yellow);\r\n            text-shadow: 4px 4px 0 var(--pink);\r\n        }\r\n\r\n        .music-subtitle {\r\n            max-width: 680px;\r\n            margin: 20px 0 0;\r\n            color: rgba(255, 255, 255, 0.82);\r\n            font-size: 1.08rem;\r\n            font-weight: 700;\r\n        }\r\n\r\n        .music-hero-poster {\r\n            width: min(100%, 230px);\r\n            margin: 0;\r\n            justify-self: end;\r\n            padding: 10px;\r\n            border-radius: var(--radius);\r\n            border: 3px solid var(--yellow);\r\n            background: rgba(7, 21, 63, 0.2);\r\n            box-shadow: 12px 12px 0 rgba(246, 0, 141, 0.82), 0 24px 48px rgba(7, 21, 63, 0.26);\r\n            backdrop-filter: blur(16px);\r\n        }\r\n\r\n        .music-hero-poster img {\r\n            display: block;\r\n            width: 100%;\r\n            max-height: 300px;\r\n            object-fit: contain;\r\n            border-radius: calc(var(--radius) - 2px);\r\n        }\r\n\r\n        .music-hero-poster figcaption {\r\n            padding: 9px 4px 2px;\r\n            color: var(--yellow);\r\n            font-size: 0.74rem;\r\n            font-weight: 800;\r\n            line-height: 1.3;\r\n            text-align: center;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.04em;\r\n        }\r\n\r\n        .concerts-grid {\r\n            position: relative;\r\n            display: grid;\r\n            grid-template-columns: repeat(3, minmax(0, 1fr));\r\n            gap: 16px;\r\n        }\r\n\r\n        .concert-card {\r\n            position: relative;\r\n            z-index: 2;\r\n            min-height: 248px;\r\n            display: flex;\r\n            flex-direction: column;\r\n            justify-content: space-between;\r\n            gap: 24px;\r\n            width: 100%;\r\n            padding: 22px;\r\n            overflow: hidden;\r\n            border-radius: var(--radius);\r\n            border: 2px solid rgba(255, 245, 46, 0.68);\r\n            background: rgba(7, 21, 63, 0.88);\r\n            color: var(--white);\r\n            box-shadow: 0 22px 44px rgba(6, 27, 69, 0.2);\r\n            backdrop-filter: blur(16px);\r\n            cursor: pointer;\r\n            text-align: left;\r\n            transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;\r\n        }\r\n\r\n        .concert-card::before {\r\n            content: \"\";\r\n            position: absolute;\r\n            inset: 0;\r\n            background: rgba(255, 245, 46, 0.04);\r\n            pointer-events: none;\r\n        }\r\n\r\n        .concert-card:nth-child(even) {\r\n            border-color: rgba(246, 0, 141, 0.78);\r\n            background: rgba(5, 47, 118, 0.9);\r\n        }\r\n\r\n        .concert-card:hover {\r\n            transform: translateY(-6px);\r\n            border-color: var(--yellow);\r\n            box-shadow: 8px 8px 0 var(--pink), 0 30px 64px rgba(7, 21, 63, 0.32);\r\n        }\r\n\r\n        .concert-date {\r\n            position: relative;\r\n            z-index: 1;\r\n            width: fit-content;\r\n            padding: 8px 12px;\r\n            border-radius: 999px;\r\n            background: var(--yellow);\r\n            border: 2px solid var(--pink);\r\n            color: var(--pink);\r\n            font-size: 0.8rem;\r\n            font-weight: 900;\r\n            text-transform: uppercase;\r\n        }\r\n\r\n        .artist-visual {\r\n            position: relative;\r\n            z-index: 1;\r\n            display: grid;\r\n            gap: 14px;\r\n            align-content: end;\r\n            min-height: 142px;\r\n        }\r\n\r\n        .artist-logo {\r\n            max-width: 190px;\r\n            max-height: 92px;\r\n            object-fit: contain;\r\n            filter: brightness(0) invert(1) drop-shadow(0 12px 20px rgba(0, 0, 0, 0.26));\r\n        }\r\n\r\n        .artist-logo.no-invert {\r\n            filter: drop-shadow(0 12px 20px rgba(0, 0, 0, 0.28));\r\n        }\r\n\r\n        .artist-logo.logo-la-tribu {\r\n            max-width: 220px;\r\n            max-height: 112px;\r\n            transform: scale(2.25);\r\n            transform-origin: left center;\r\n        }\r\n\r\n        .artist-logo.logo-marta-santos {\r\n            max-width: 220px;\r\n            max-height: 112px;\r\n            transform: scale(2.35);\r\n            transform-origin: left center;\r\n        }\r\n\r\n        .artist-name {\r\n            display: block;\r\n            font-family: \"Montserrat\", Arial, sans-serif;\r\n            font-size: 1.5rem;\r\n            font-weight: 900;\r\n            color: var(--white);\r\n            line-height: 1.05;\r\n        }\r\n\r\n        .artist-meta {\r\n            display: block;\r\n            margin-top: 5px;\r\n            color: var(--yellow);\r\n            font-size: 0.92rem;\r\n            font-weight: 700;\r\n        }\r\n\r\n        .info-card {\r\n            display: none;\r\n            position: relative;\r\n            margin: 22px auto 0;\r\n            max-width: 780px;\r\n            padding: 22px 58px 22px 22px;\r\n            border-radius: var(--radius);\r\n            background: rgba(255, 255, 255, 0.95);\r\n            color: var(--ink);\r\n            border: 4px solid var(--yellow);\r\n            box-shadow: 10px 10px 0 var(--pink), 0 24px 54px rgba(7, 21, 63, 0.24);\r\n        }\r\n\r\n        .info-card.show {\r\n            display: block;\r\n        }\r\n\r\n        .info-card p {\r\n            margin: 0;\r\n            color: var(--muted);\r\n            font-size: 1rem;\r\n            line-height: 1.65;\r\n        }\r\n\r\n        .info-card-layout {\r\n            display: grid;\r\n            grid-template-columns: minmax(0, 250px) minmax(0, 1fr);\r\n            gap: 24px;\r\n            align-items: center;\r\n        }\r\n\r\n        .info-card-layout.no-poster {\r\n            grid-template-columns: 1fr;\r\n        }\r\n\r\n        .info-card-poster {\r\n            display: block;\r\n            width: 100%;\r\n            max-height: 360px;\r\n            object-fit: contain;\r\n            border-radius: var(--radius);\r\n            box-shadow: 0 16px 34px rgba(6, 27, 69, 0.2);\r\n        }\r\n\r\n        .info-card-close {\r\n            position: absolute;\r\n            top: 14px;\r\n            right: 14px;\r\n            width: 34px;\r\n            height: 34px;\r\n            border: 0;\r\n            border-radius: 50%;\r\n            background: var(--pink);\r\n            color: var(--yellow);\r\n            font-size: 1.25rem;\r\n            line-height: 1;\r\n            cursor: pointer;\r\n        }\r\n\r\n        .button {\r\n            display: inline-flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: 10px;\r\n            min-height: 44px;\r\n            margin-top: 16px;\r\n            padding: 0 20px;\r\n            border-radius: 999px;\r\n            background: var(--yellow);\r\n            color: var(--pink);\r\n            font-weight: 900;\r\n            border: 2px solid var(--pink);\r\n            box-shadow: 5px 5px 0 var(--pink), 0 16px 32px rgba(7, 21, 63, 0.24);\r\n        }\r\n\r\n        .music-bottom {\r\n            display: grid;\r\n            grid-template-columns: minmax(0, 1fr) auto;\r\n            align-items: center;\r\n            gap: 18px;\r\n            margin-top: 26px;\r\n            padding: 18px;\r\n            border-radius: var(--radius);\r\n            background: rgba(7, 21, 63, 0.56);\r\n            border: 1px solid rgba(255, 255, 255, 0.24);\r\n            box-shadow: 0 16px 36px rgba(7, 21, 63, 0.18);\r\n            backdrop-filter: blur(12px);\r\n        }\r\n\r\n        .music-bottom p {\r\n            margin: 0;\r\n            color: rgba(255, 255, 255, 0.9);\r\n            font-weight: 600;\r\n        }\r\n\r\n        .music-bottom strong {\r\n            color: var(--yellow);\r\n        }\r\n\r\n        .music-bottom .button {\r\n            margin-top: 0;\r\n            background: rgba(255, 255, 255, 0.94);\r\n            color: var(--blue-900);\r\n            border: 0;\r\n            box-shadow: none;\r\n        }\r\n\r\n        @media (max-width: 960px) {\r\n            .music-header {\r\n                grid-template-columns: minmax(0, 1fr) minmax(160px, 200px);\r\n            }\r\n\r\n            .music-hero-poster {\r\n                width: min(100%, 200px);\r\n            }\r\n\r\n            .concerts-grid {\r\n                grid-template-columns: repeat(2, minmax(0, 1fr));\r\n            }\r\n        }\r\n\r\n        @media (max-width: 680px) {\r\n            .music-section {\r\n                padding: 44px 14px;\r\n            }\r\n\r\n            .music-title span {\r\n                -webkit-text-stroke-width: 1px;\r\n            }\r\n\r\n            .music-header {\r\n                grid-template-columns: 1fr;\r\n                gap: 26px;\r\n            }\r\n\r\n            .music-hero-poster {\r\n                width: min(68vw, 210px);\r\n                justify-self: center;\r\n            }\r\n\r\n            .concerts-grid,\r\n            .music-bottom {\r\n                grid-template-columns: 1fr;\r\n            }\r\n\r\n            .concert-card {\r\n                min-height: 190px;\r\n            }\r\n\r\n            .info-card {\r\n                width: 100%;\r\n                margin: 2px auto 10px;\r\n                padding: 18px 54px 18px 18px;\r\n            }\r\n\r\n            .info-card-layout {\r\n                grid-template-columns: 1fr;\r\n            }\r\n\r\n            .info-card-poster {\r\n                width: min(100%, 320px);\r\n                max-height: none;\r\n                margin: 0 auto;\r\n            }\r\n\r\n            .music-bottom .button {\r\n                width: 100%;\r\n            }\r\n        }\r\n    <\/style>\r\n<\/head>\r\n<body>\r\n    <section class=\"music-section\">\r\n        <div class=\"music-wrapper\">\r\n            <header class=\"music-header\">\r\n                <div class=\"music-header-copy\">\r\n                    <div class=\"music-kicker\">Programaci\u00f3n musical<\/div>\r\n                    <h1 class=\"music-title\">Eventos Musicales <span>Fira d'Onda 2026<\/span><\/h1>\r\n                    <p class=\"music-subtitle\">Seis grandes citas entre el 17 y el 24 de octubre con conciertos, orquestas y propuestas para todos los p\u00fablicos.<\/p>\r\n                <\/div>\r\n                <figure class=\"music-hero-poster\">\r\n                    <img decoding=\"async\" src=\"https:\/\/fira.onda.es\/wp-content\/uploads\/2026\/06\/Conciertos-Fira.png\" alt=\"Cartel de conciertos de la Fira d'Onda 2026\">\r\n                    <figcaption>Cartel de conciertos \u00b7 Fira d'Onda 2026<\/figcaption>\r\n                <\/figure>\r\n            <\/header>\r\n\r\n            <div class=\"concerts-grid\">\r\n                <div id=\"mascotActor\" class=\"mascot-actor\">\r\n                    <div id=\"mascotMessage\" class=\"mascot-message\" role=\"status\" aria-live=\"polite\"><\/div>\r\n                    <div class=\"mascot-image-wrap\">\r\n                        <img decoding=\"async\" src=\"https:\/\/fira.onda.es\/wp-content\/uploads\/2026\/09\/mascota-conciertos.png\" alt=\"\">\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <button class=\"concert-card\" type=\"button\"\r\n                    data-info=\"La Pegatina actuar\u00e1 el s\u00e1bado 17 de octubre en el Recinto Multiusos. Concierto gratuito con entrada libre hasta completar aforo y \u00fanico concierto del grupo en la provincia de Castell\u00f3n.\"\r\n                    data-href=\"#\"\r\n                    aria-label=\"Ver informaci\u00f3n de La Pegatina\">\r\n                    <span class=\"concert-date\">S\u00e1b 17 oct.<\/span>\r\n                    <span class=\"artist-visual\">\r\n                        <img decoding=\"async\" src=\"https:\/\/fira.onda.es\/wp-content\/uploads\/2026\/03\/la-pegatina-header-1.png\" alt=\"Logo La Pegatina\" class=\"artist-logo\">\r\n                        <span>\r\n                            <span class=\"artist-name\">La Pegatina<\/span>\r\n                            <span class=\"artist-meta\">Recinto Multiusos<\/span>\r\n                        <\/span>\r\n                    <\/span>\r\n                <\/button>\r\n\r\n                <button class=\"concert-card\" type=\"button\"\r\n                    data-info=\"Los Rebeldes Sinf\u00f3nico llegar\u00e1 el domingo 18 de octubre al Teatro M\u00f3naco junto a la Orquesta Sinf\u00f3nica de la SAMVO y la participaci\u00f3n especial del saxofonista Dani Nel\u00b7lo. La venta de entradas y horarios se anunciar\u00e1n pr\u00f3ximamente en los canales oficiales de la SAMVO y del Ayuntamiento.\"\r\n                    data-href=\"https:\/\/www.instagram.com\/samvo_onda\/\"\r\n                    aria-label=\"Ver informaci\u00f3n de Los Rebeldes Sinf\u00f3nico\">\r\n                    <span class=\"concert-date\">Dom 18 oct.<\/span>\r\n                    <span class=\"artist-visual\">\r\n                        <img decoding=\"async\" src=\"https:\/\/fira.onda.es\/wp-content\/uploads\/2026\/05\/los-rebeldes.png\" alt=\"Logo Los Rebeldes\" class=\"artist-logo\">\r\n                        <span>\r\n                            <span class=\"artist-name\">Los Rebeldes Sinf\u00f3nico<\/span>\r\n                            <span class=\"artist-meta\">Teatro M\u00f3naco<\/span>\r\n                        <\/span>\r\n                    <\/span>\r\n                <\/button>\r\n\r\n                <button class=\"concert-card\" type=\"button\"\r\n                    data-info=\"La Orquesta Panorama actuar\u00e1 el martes 20 de octubre en la plaza Miralpeix durante la noche del Sopar de Fira. Un espect\u00e1culo de gran formato con acceso gratuito.\"\r\n                    data-href=\"#\"\r\n                    aria-label=\"Ver informaci\u00f3n de la Orquesta Panorama\">\r\n                    <span class=\"concert-date\">Mar 20 oct.<\/span>\r\n                    <span class=\"artist-visual\">\r\n                        <img decoding=\"async\" src=\"https:\/\/fira.onda.es\/wp-content\/uploads\/2026\/04\/Logo-Panorama-1.png\" alt=\"Logo Orquesta Panorama\" class=\"artist-logo\">\r\n                        <span>\r\n                            <span class=\"artist-name\">Orquesta Panorama<\/span>\r\n                            <span class=\"artist-meta\">Plaza Miralpeix<\/span>\r\n                        <\/span>\r\n                    <\/span>\r\n                <\/button>\r\n\r\n                <button class=\"concert-card\" type=\"button\"\r\n                    data-info=\"La Orquesta La Tribu actuar\u00e1 el jueves 22 de octubre en la tradicional noche de disfraces. Reconocida por la espectacularidad de sus montajes y la calidad de sus directos, ofrecer\u00e1 una noche de m\u00fasica y entretenimiento para todos los p\u00fablicos.\"\r\n                    data-href=\"#\"\r\n                    aria-label=\"Ver informaci\u00f3n de la Orquesta La Tribu\">\r\n                    <span class=\"concert-date\">Jue 22 oct.<\/span>\r\n                    <span class=\"artist-visual\">\r\n                        <img decoding=\"async\" src=\"https:\/\/fira.onda.es\/wp-content\/uploads\/2026\/06\/LOGO-LA-TRIBU.png\" alt=\"Logo Orquesta La Tribu\" class=\"artist-logo no-invert logo-la-tribu\">\r\n                        <span>\r\n                            <span class=\"artist-name\">Orquesta La Tribu<\/span>\r\n                            <span class=\"artist-meta\">Noche de disfraces<\/span>\r\n                        <\/span>\r\n                    <\/span>\r\n                <\/button>\r\n\r\n                <button class=\"concert-card\" type=\"button\"\r\n                    data-info=\"\u00c1lvaro de Luna actuar\u00e1 el viernes 23 de octubre en el Recinto Multiusos de Onda. Las entradas para el p\u00fablico general ya est\u00e1n disponibles por 20 euros m\u00e1s gastos de gesti\u00f3n en entradascastellon.com. Las entradas para personas empadronadas en Onda estar\u00e1n disponibles a partir del martes 1 de septiembre, a las 9.00 h, a un precio simb\u00f3lico de 5 euros mediante el mismo sistema de venta online.\"\r\n                    data-href=\"https:\/\/www.entradascastellon.com\/2026\/10\/23\/concierto-de-alvaro-de-luna-en-onda?cs=tickets-castellon\"\r\n                    data-poster=\"https:\/\/fira.onda.es\/wp-content\/uploads\/2026\/08\/Alvaro-de-Luna-en-Onda.png\"\r\n                    data-poster-alt=\"Cartel del concierto de \u00c1lvaro de Luna en Onda\"\r\n                    data-link-label=\"Compra tus entradas\"\r\n                    aria-label=\"Ver informaci\u00f3n de \u00c1lvaro de Luna\">\r\n                    <span class=\"concert-date\">Vie 23 oct.<\/span>\r\n                    <span class=\"artist-visual\">\r\n                        <img decoding=\"async\" src=\"https:\/\/fira.onda.es\/wp-content\/uploads\/2026\/05\/CARTEL-ALVARO-DE-LUNA-ONDA-1.png\" alt=\"Cartel \u00c1lvaro de Luna\" class=\"artist-logo\">\r\n                        <span>\r\n                            <span class=\"artist-name\">\u00c1lvaro de Luna<\/span>\r\n                            <span class=\"artist-meta\">Recinto Multiusos<\/span>\r\n                        <\/span>\r\n                    <\/span>\r\n                <\/button>\r\n\r\n                <button class=\"concert-card\" type=\"button\"\r\n                    data-info=\"Marta Santos cerrar\u00e1 el cartel musical el s\u00e1bado 24 de octubre. La artista sevillana, con m\u00e1s de 2,3 millones de oyentes mensuales en Spotify, llega con una propuesta que combina flamenco, pop y m\u00fasica urbana. Las entradas generales est\u00e1n disponibles por 20 euros m\u00e1s gastos de gesti\u00f3n. Las entradas para personas empadronadas en Onda estar\u00e1n disponibles a partir del martes 1 de septiembre, a las 9.00 h, por 5 euros.\"\r\n                    data-href=\"https:\/\/www.entradascastellon.com\/2026\/10\/24\/concierto-marta-santos-en-onda?cs=tickets-castellon\"\r\n                    data-poster=\"https:\/\/fira.onda.es\/wp-content\/uploads\/2026\/08\/Marta-Santos-en-Onda.png\"\r\n                    data-poster-alt=\"Cartel del concierto de Marta Santos en Onda\"\r\n                    data-link-label=\"Compra tus entradas\"\r\n                    aria-label=\"Ver informaci\u00f3n de Marta Santos\">\r\n                    <span class=\"concert-date\">S\u00e1b 24 oct.<\/span>\r\n                    <span class=\"artist-visual\">\r\n                        <img decoding=\"async\" src=\"https:\/\/fira.onda.es\/wp-content\/uploads\/2026\/06\/Logo-Marta-Santos.png\" alt=\"Logo Marta Santos\" class=\"artist-logo no-invert logo-marta-santos\">\r\n                        <span>\r\n                            <span class=\"artist-name\">Marta Santos<\/span>\r\n                            <span class=\"artist-meta\">Recinto Multiusos<\/span>\r\n                        <\/span>\r\n                    <\/span>\r\n                <\/button>\r\n            <\/div>\r\n\r\n            <div id=\"infoCard\" class=\"info-card\" aria-live=\"polite\">\r\n                <button class=\"info-card-close\" type=\"button\" aria-label=\"Cerrar informaci\u00f3n\">\u00d7<\/button>\r\n                <div id=\"infoCardLayout\" class=\"info-card-layout no-poster\">\r\n                    <img decoding=\"async\" id=\"infoCardPoster\" class=\"info-card-poster\" src=\"\" alt=\"\" hidden>\r\n                    <div>\r\n                        <p id=\"infoCardText\"><\/p>\r\n                        <a id=\"infoCardLink\" href=\"#\" target=\"_blank\" rel=\"noopener\" class=\"button\" style=\"display:none;\">M\u00e1s informaci\u00f3n<\/a>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"music-bottom\">\r\n                <p><strong>Entradas:<\/strong> \u00c1lvaro de Luna y Marta Santos cuentan con venta general a 20 euros m\u00e1s gastos de gesti\u00f3n. Las entradas para personas empadronadas estar\u00e1n disponibles a partir del martes 1 de septiembre, a las 9.00 h, por 5 euros.<\/p>\r\n                <a href=\"https:\/\/fira.onda.es\" target=\"_blank\" rel=\"noopener\" class=\"button\">M\u00e1s info<\/a>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <script>\r\n        (function () {\r\n            var mascotController = null;\r\n\r\n            function startDancingMascot() {\r\n                var grid = document.querySelector(\".concerts-grid\");\r\n                var mascot = document.getElementById(\"mascotActor\");\r\n                var message = document.getElementById(\"mascotMessage\");\r\n                var cards = Array.prototype.slice.call(document.querySelectorAll(\".concert-card\"));\r\n                var reduceMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\r\n                var phrases = [\r\n                    \"\u00a1Nos vemos en la Fira!\",\r\n                    \"\u00a1P\u00e1salo genial en la Fira!\",\r\n                    \"\u00a1Nos vemos en Onda!\",\r\n                    \"\u00a1Que empiece la m\u00fasica!\",\r\n                    \"\u00a1A cantar y bailar!\",\r\n                    \"\u00a1Onda ya suena a fiesta!\",\r\n                    \"\u00a1Disfruta de cada concierto!\"\r\n                ];\r\n                var colors = [\"#fff52e\", \"#f6008d\", \"#10c9ec\", \"#ffffff\", \"#052f76\"];\r\n                var timers = [];\r\n                var messageTimer = null;\r\n                var activeAnimation = null;\r\n                var currentIndex = Math.floor(Math.random() * Math.max(cards.length, 1));\r\n                var currentX = 0;\r\n                var currentY = 0;\r\n                var state = \"hidden\";\r\n\r\n                if (!grid || !mascot || !message || !cards.length) {\r\n                    return null;\r\n                }\r\n\r\n                function schedule(callback, delay) {\r\n                    var timer = window.setTimeout(callback, delay);\r\n                    timers.push(timer);\r\n                    return timer;\r\n                }\r\n\r\n                function clearTimers() {\r\n                    timers.forEach(function (timer) {\r\n                        window.clearTimeout(timer);\r\n                    });\r\n                    timers = [];\r\n                }\r\n\r\n                function cancelAnimation() {\r\n                    if (activeAnimation) {\r\n                        activeAnimation.cancel();\r\n                        activeAnimation = null;\r\n                    }\r\n                }\r\n\r\n                function getPosition(index, mode) {\r\n                    var card = cards[index];\r\n                    var width = mascot.offsetWidth || 110;\r\n                    var height = mascot.offsetHeight || width;\r\n                    var x = card.offsetLeft + card.offsetWidth * 0.55 - width \/ 2;\r\n                    var y = mode === \"peek\"\r\n                        ? card.offsetTop - height * 0.58\r\n                        : card.offsetTop + Math.min(54, card.offsetHeight * 0.22);\r\n\r\n                    return {\r\n                        x: Math.max(4, Math.min(x, grid.clientWidth - width - 4)),\r\n                        y: y\r\n                    };\r\n                }\r\n\r\n                function moveTo(position) {\r\n                    currentX = position.x;\r\n                    currentY = position.y;\r\n                    mascot.style.transform = \"translate3d(\" + currentX + \"px,\" + currentY + \"px,0)\";\r\n                }\r\n\r\n                function setState(nextState) {\r\n                    mascot.classList.remove(\"is-peeking\", \"is-jumping\", \"is-celebrating\");\r\n                    if (nextState === \"peeking\") {\r\n                        mascot.classList.add(\"is-peeking\");\r\n                    } else if (nextState === \"jumping\") {\r\n                        mascot.classList.add(\"is-jumping\");\r\n                    } else if (nextState === \"celebrating\") {\r\n                        mascot.classList.add(\"is-celebrating\");\r\n                    }\r\n                    state = nextState;\r\n                }\r\n\r\n                function showMessage(text, duration) {\r\n                    window.clearTimeout(messageTimer);\r\n                    message.textContent = text;\r\n                    mascot.classList.add(\"show-message\");\r\n                    messageTimer = window.setTimeout(function () {\r\n                        mascot.classList.remove(\"show-message\");\r\n                    }, duration || 1800);\r\n                }\r\n\r\n                function chooseAnotherCard() {\r\n                    if (cards.length < 2) {\r\n                        return currentIndex;\r\n                    }\r\n\r\n                    var nextIndex = currentIndex;\r\n                    while (nextIndex === currentIndex) {\r\n                        nextIndex = Math.floor(Math.random() * cards.length);\r\n                    }\r\n                    return nextIndex;\r\n                }\r\n\r\n                function peekAt(index) {\r\n                    currentIndex = index;\r\n                    setState(\"peeking\");\r\n                    mascot.classList.add(\"is-visible\");\r\n                    moveTo(getPosition(index, \"peek\"));\r\n\r\n                    if (Math.random() > 0.42) {\r\n                        showMessage(phrases[Math.floor(Math.random() * phrases.length)], 1900);\r\n                    }\r\n\r\n                    if (!reduceMotion) {\r\n                        schedule(hideAndJump, 2800);\r\n                    }\r\n                }\r\n\r\n                function finishJump(index, target) {\r\n                    currentIndex = index;\r\n                    moveTo(target);\r\n                    setState(\"hidden\");\r\n                    activeAnimation = null;\r\n                    schedule(function () {\r\n                        peekAt(index);\r\n                    }, 260);\r\n                }\r\n\r\n                function jumpTo(index) {\r\n                    var target = getPosition(index, \"hidden\");\r\n                    var middleX = (currentX + target.x) \/ 2;\r\n                    var middleY = Math.min(currentY, target.y) - Math.min(150, grid.clientWidth * 0.14);\r\n\r\n                    setState(\"jumping\");\r\n                    mascot.classList.add(\"is-visible\");\r\n\r\n                    if (typeof mascot.animate !== \"function\") {\r\n                        moveTo(target);\r\n                        finishJump(index, target);\r\n                        return;\r\n                    }\r\n\r\n                    activeAnimation = mascot.animate([\r\n                        { transform: \"translate3d(\" + currentX + \"px,\" + currentY + \"px,0)\" },\r\n                        { transform: \"translate3d(\" + middleX + \"px,\" + middleY + \"px,0)\", offset: 0.5 },\r\n                        { transform: \"translate3d(\" + target.x + \"px,\" + target.y + \"px,0)\" }\r\n                    ], {\r\n                        duration: 820,\r\n                        easing: \"cubic-bezier(0.45, 0, 0.25, 1)\"\r\n                    });\r\n\r\n                    activeAnimation.onfinish = function () {\r\n                        finishJump(index, target);\r\n                    };\r\n                }\r\n\r\n                function hideAndJump() {\r\n                    if (reduceMotion || state === \"celebrating\" || state === \"jumping\") {\r\n                        return;\r\n                    }\r\n\r\n                    clearTimers();\r\n                    mascot.classList.remove(\"show-message\");\r\n                    setState(\"hidden\");\r\n                    moveTo(getPosition(currentIndex, \"hidden\"));\r\n                    schedule(function () {\r\n                        jumpTo(chooseAnotherCard());\r\n                    }, 480);\r\n                }\r\n\r\n                function throwConfetti() {\r\n                    if (reduceMotion) {\r\n                        return;\r\n                    }\r\n\r\n                    for (var i = 0; i < 28; i += 1) {\r\n                        var piece = document.createElement(\"span\");\r\n                        var angle = (Math.PI * 2 * i) \/ 28 + Math.random() * 0.28;\r\n                        var distance = 75 + Math.random() * 115;\r\n                        piece.className = \"mascot-confetti-piece\";\r\n                        piece.style.left = (currentX + mascot.offsetWidth \/ 2) + \"px\";\r\n                        piece.style.top = (currentY + mascot.offsetHeight * 0.42) + \"px\";\r\n                        piece.style.background = colors[i % colors.length];\r\n                        piece.style.setProperty(\"--confetti-x\", Math.cos(angle) * distance + \"px\");\r\n                        piece.style.setProperty(\"--confetti-y\", (Math.sin(angle) * distance + 45) + \"px\");\r\n                        piece.style.setProperty(\"--confetti-r\", (180 + Math.random() * 540) + \"deg\");\r\n                        grid.appendChild(piece);\r\n                        window.setTimeout(function (confetti) {\r\n                            confetti.remove();\r\n                        }, 1100, piece);\r\n                    }\r\n                }\r\n\r\n                function celebrate(card) {\r\n                    var index = cards.indexOf(card);\r\n                    var hiddenPosition;\r\n                    var peekPosition;\r\n                    var phrase;\r\n\r\n                    if (index < 0) {\r\n                        return;\r\n                    }\r\n\r\n                    if (state === \"hovered\" && currentIndex === index) {\r\n                        return;\r\n                    }\r\n\r\n                    clearTimers();\r\n                    cancelAnimation();\r\n                    currentIndex = index;\r\n                    hiddenPosition = getPosition(index, \"hidden\");\r\n                    peekPosition = getPosition(index, \"peek\");\r\n                    phrase = phrases[Math.floor(Math.random() * phrases.length)];\r\n\r\n                    mascot.classList.remove(\"show-message\", \"is-visible\", \"is-peeking\", \"is-jumping\", \"is-celebrating\");\r\n                    mascot.style.transition = \"none\";\r\n                    moveTo(hiddenPosition);\r\n                    mascot.offsetWidth;\r\n                    mascot.style.transition = \"\";\r\n                    mascot.classList.add(\"is-visible\");\r\n                    setState(\"peeking\");\r\n                    state = \"hovered\";\r\n                    showMessage(phrase, 2500);\r\n\r\n                    window.requestAnimationFrame(function () {\r\n                        moveTo(peekPosition);\r\n                    });\r\n\r\n                    schedule(function () {\r\n                        setState(\"hidden\");\r\n                        mascot.classList.remove(\"show-message\");\r\n                        moveTo(getPosition(currentIndex, \"hidden\"));\r\n                        schedule(function () {\r\n                            mascot.classList.remove(\"is-visible\");\r\n                        }, 520);\r\n                    }, 2850);\r\n                }\r\n\r\n                grid.addEventListener(\"pointermove\", function (event) {\r\n                    var gridRect;\r\n                    var centerX;\r\n                    var centerY;\r\n                    var distance;\r\n\r\n                    if (state !== \"peeking\") {\r\n                        return;\r\n                    }\r\n\r\n                    gridRect = grid.getBoundingClientRect();\r\n                    centerX = gridRect.left + currentX + mascot.offsetWidth \/ 2;\r\n                    centerY = gridRect.top + currentY + mascot.offsetHeight \/ 2;\r\n                    mascot.classList.toggle(\"is-facing-left\", event.clientX < centerX);\r\n                    distance = Math.hypot(event.clientX - centerX, event.clientY - centerY);\r\n\r\n                    if (!reduceMotion && distance < 135) {\r\n                        hideAndJump();\r\n                    }\r\n                });\r\n\r\n                window.addEventListener(\"resize\", function () {\r\n                    if (state === \"peeking\" || state === \"hovered\") {\r\n                        moveTo(getPosition(currentIndex, \"peek\"));\r\n                    } else if (state !== \"celebrating\" && state !== \"jumping\") {\r\n                        moveTo(getPosition(currentIndex, \"hidden\"));\r\n                    }\r\n                });\r\n\r\n                moveTo(getPosition(currentIndex, \"hidden\"));\r\n\r\n                return {\r\n                    celebrate: celebrate\r\n                };\r\n            }\r\n\r\n            function startMusicCards() {\r\n                var infoCard = document.getElementById(\"infoCard\");\r\n                var infoCardLayout = document.getElementById(\"infoCardLayout\");\r\n                var infoCardPoster = document.getElementById(\"infoCardPoster\");\r\n                var infoCardText = document.getElementById(\"infoCardText\");\r\n                var infoCardLink = document.getElementById(\"infoCardLink\");\r\n                var closeButton = infoCard ? infoCard.querySelector(\".info-card-close\") : null;\r\n                var concertItems = document.querySelectorAll(\".concert-card[data-info]\");\r\n                var infoCardHome = document.createComment(\"Ubicaci\u00f3n original de la ficha de informaci\u00f3n\");\r\n                var activeItem = null;\r\n\r\n                if (!infoCard || !infoCardLayout || !infoCardPoster || !infoCardText || !infoCardLink || !concertItems.length) {\r\n                    return;\r\n                }\r\n\r\n                infoCard.parentNode.insertBefore(infoCardHome, infoCard);\r\n\r\n                function positionInfoCard(item) {\r\n                    if (window.matchMedia(\"(max-width: 680px)\").matches && item) {\r\n                        item.insertAdjacentElement(\"afterend\", infoCard);\r\n                    } else if (infoCardHome.parentNode) {\r\n                        infoCardHome.parentNode.insertBefore(infoCard, infoCardHome.nextSibling);\r\n                    }\r\n                }\r\n\r\n                function showInfoCard(message, externalHref, posterSrc, posterAlt, linkLabel, sourceItem) {\r\n                    activeItem = sourceItem;\r\n                    positionInfoCard(activeItem);\r\n                    infoCardText.textContent = message;\r\n\r\n                    if (posterSrc) {\r\n                        infoCardPoster.src = posterSrc;\r\n                        infoCardPoster.alt = posterAlt || \"Cartel del concierto\";\r\n                        infoCardPoster.hidden = false;\r\n                        infoCardLayout.classList.remove(\"no-poster\");\r\n                    } else {\r\n                        infoCardPoster.hidden = true;\r\n                        infoCardPoster.removeAttribute(\"src\");\r\n                        infoCardPoster.alt = \"\";\r\n                        infoCardLayout.classList.add(\"no-poster\");\r\n                    }\r\n\r\n                    if (externalHref && externalHref !== \"#\") {\r\n                        infoCardLink.href = externalHref;\r\n                        infoCardLink.textContent = linkLabel || \"M\u00e1s informaci\u00f3n\";\r\n                        infoCardLink.style.display = \"inline-flex\";\r\n                    } else {\r\n                        infoCardLink.style.display = \"none\";\r\n                    }\r\n\r\n                    infoCard.classList.add(\"show\");\r\n                }\r\n\r\n                function hideInfoCard() {\r\n                    infoCard.classList.remove(\"show\");\r\n                    infoCardText.textContent = \"\";\r\n                    infoCardPoster.hidden = true;\r\n                    infoCardPoster.removeAttribute(\"src\");\r\n                    infoCardPoster.alt = \"\";\r\n                    infoCardLayout.classList.add(\"no-poster\");\r\n                    infoCardLink.style.display = \"none\";\r\n                }\r\n\r\n                concertItems.forEach(function (item) {\r\n                    item.addEventListener(\"click\", function () {\r\n                        showInfoCard(\r\n                            item.getAttribute(\"data-info\"),\r\n                            item.getAttribute(\"data-href\"),\r\n                            item.getAttribute(\"data-poster\"),\r\n                            item.getAttribute(\"data-poster-alt\"),\r\n                            item.getAttribute(\"data-link-label\"),\r\n                            item\r\n                        );\r\n\r\n                    });\r\n\r\n                    item.addEventListener(\"mouseenter\", function () {\r\n                        if (mascotController) {\r\n                            mascotController.celebrate(item);\r\n                        }\r\n                    });\r\n\r\n                    item.addEventListener(\"focus\", function () {\r\n                        if (mascotController) {\r\n                            mascotController.celebrate(item);\r\n                        }\r\n                    });\r\n                });\r\n\r\n                if (closeButton) {\r\n                    closeButton.addEventListener(\"click\", hideInfoCard);\r\n                }\r\n\r\n                window.addEventListener(\"resize\", function () {\r\n                    if (activeItem && infoCard.classList.contains(\"show\")) {\r\n                        positionInfoCard(activeItem);\r\n                    }\r\n                });\r\n            }\r\n\r\n            if (document.readyState === \"loading\") {\r\n                document.addEventListener(\"DOMContentLoaded\", function () {\r\n                    mascotController = startDancingMascot();\r\n                    startMusicCards();\r\n                });\r\n            } else {\r\n                mascotController = startDancingMascot();\r\n                startMusicCards();\r\n            }\r\n        })();\r\n    <\/script>\r\n<\/body>\r\n<\/html>\r\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","protected":false},"excerpt":{"rendered":"<p>Eventos Musicales Fira d&#8217;Onda 2026 Programaci\u00f3n musical Eventos Musicales Fira d&#8217;Onda 2026 Seis grandes citas entre el 17 y el 24 de octubre con conciertos, orquestas y propuestas para todos los p\u00fablicos. Cartel de conciertos \u00b7 Fira d&#8217;Onda 2026 S\u00e1b 17 oct. La Pegatina Recinto Multiusos Dom 18 oct. Los Rebeldes Sinf\u00f3nico Teatro M\u00f3naco Mar&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_theme","meta":{"_kad_post_transparent":"","_kad_post_title":"hide","_kad_post_layout":"fullwidth","_kad_post_sidebar_id":"","_kad_post_content_style":"unboxed","_kad_post_vertical_padding":"hide","_kad_post_feature":"hide","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-17","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Conciertos - Fira d&#039;Onda 2026<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fira.onda.es\/index.php\/conciertos-2\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Conciertos - Fira d&#039;Onda 2026\" \/>\n<meta property=\"og:description\" content=\"Eventos Musicales Fira d&#8217;Onda 2026 Programaci\u00f3n musical Eventos Musicales Fira d&#8217;Onda 2026 Seis grandes citas entre el 17 y el 24 de octubre con conciertos, orquestas y propuestas para todos los p\u00fablicos. Cartel de conciertos \u00b7 Fira d&#8217;Onda 2026 S\u00e1b 17 oct. La Pegatina Recinto Multiusos Dom 18 oct. Los Rebeldes Sinf\u00f3nico Teatro M\u00f3naco Mar...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fira.onda.es\/index.php\/conciertos-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Fira d&#039;Onda 2026\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-01T10:33:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fira.onda.es\/wp-content\/uploads\/2026\/06\/Conciertos-Fira.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fira.onda.es\\\/index.php\\\/conciertos-2\\\/\",\"url\":\"https:\\\/\\\/fira.onda.es\\\/index.php\\\/conciertos-2\\\/\",\"name\":\"Conciertos - Fira d&#039;Onda 2026\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fira.onda.es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/fira.onda.es\\\/index.php\\\/conciertos-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/fira.onda.es\\\/index.php\\\/conciertos-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fira.onda.es\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Conciertos-Fira.png\",\"datePublished\":\"2025-06-27T11:28:25+00:00\",\"dateModified\":\"2026-09-01T10:33:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fira.onda.es\\\/index.php\\\/conciertos-2\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fira.onda.es\\\/index.php\\\/conciertos-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/fira.onda.es\\\/index.php\\\/conciertos-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/fira.onda.es\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Conciertos-Fira.png\",\"contentUrl\":\"https:\\\/\\\/fira.onda.es\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Conciertos-Fira.png\",\"width\":1414,\"height\":2000},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fira.onda.es\\\/index.php\\\/conciertos-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/fira.onda.es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Conciertos\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/fira.onda.es\\\/#website\",\"url\":\"https:\\\/\\\/fira.onda.es\\\/\",\"name\":\"Fira d&#039;Onda 2026\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/fira.onda.es\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/fira.onda.es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/fira.onda.es\\\/#organization\",\"name\":\"Fira d&#039;Onda 2026\",\"url\":\"https:\\\/\\\/fira.onda.es\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/fira.onda.es\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/fira.onda.es\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/cropped-AJUNTAMENT-ONDA-NEGRE.png\",\"contentUrl\":\"https:\\\/\\\/fira.onda.es\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/cropped-AJUNTAMENT-ONDA-NEGRE.png\",\"width\":888,\"height\":402,\"caption\":\"Fira d&#039;Onda 2026\"},\"image\":{\"@id\":\"https:\\\/\\\/fira.onda.es\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Conciertos - Fira d&#039;Onda 2026","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fira.onda.es\/index.php\/conciertos-2\/","og_locale":"es_ES","og_type":"article","og_title":"Conciertos - Fira d&#039;Onda 2026","og_description":"Eventos Musicales Fira d&#8217;Onda 2026 Programaci\u00f3n musical Eventos Musicales Fira d&#8217;Onda 2026 Seis grandes citas entre el 17 y el 24 de octubre con conciertos, orquestas y propuestas para todos los p\u00fablicos. Cartel de conciertos \u00b7 Fira d&#8217;Onda 2026 S\u00e1b 17 oct. La Pegatina Recinto Multiusos Dom 18 oct. Los Rebeldes Sinf\u00f3nico Teatro M\u00f3naco Mar...","og_url":"https:\/\/fira.onda.es\/index.php\/conciertos-2\/","og_site_name":"Fira d&#039;Onda 2026","article_modified_time":"2026-09-01T10:33:08+00:00","og_image":[{"url":"https:\/\/fira.onda.es\/wp-content\/uploads\/2026\/06\/Conciertos-Fira.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/fira.onda.es\/index.php\/conciertos-2\/","url":"https:\/\/fira.onda.es\/index.php\/conciertos-2\/","name":"Conciertos - Fira d&#039;Onda 2026","isPartOf":{"@id":"https:\/\/fira.onda.es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fira.onda.es\/index.php\/conciertos-2\/#primaryimage"},"image":{"@id":"https:\/\/fira.onda.es\/index.php\/conciertos-2\/#primaryimage"},"thumbnailUrl":"https:\/\/fira.onda.es\/wp-content\/uploads\/2026\/06\/Conciertos-Fira.png","datePublished":"2025-06-27T11:28:25+00:00","dateModified":"2026-09-01T10:33:08+00:00","breadcrumb":{"@id":"https:\/\/fira.onda.es\/index.php\/conciertos-2\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fira.onda.es\/index.php\/conciertos-2\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/fira.onda.es\/index.php\/conciertos-2\/#primaryimage","url":"https:\/\/fira.onda.es\/wp-content\/uploads\/2026\/06\/Conciertos-Fira.png","contentUrl":"https:\/\/fira.onda.es\/wp-content\/uploads\/2026\/06\/Conciertos-Fira.png","width":1414,"height":2000},{"@type":"BreadcrumbList","@id":"https:\/\/fira.onda.es\/index.php\/conciertos-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/fira.onda.es\/"},{"@type":"ListItem","position":2,"name":"Conciertos"}]},{"@type":"WebSite","@id":"https:\/\/fira.onda.es\/#website","url":"https:\/\/fira.onda.es\/","name":"Fira d&#039;Onda 2026","description":"","publisher":{"@id":"https:\/\/fira.onda.es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fira.onda.es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/fira.onda.es\/#organization","name":"Fira d&#039;Onda 2026","url":"https:\/\/fira.onda.es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/fira.onda.es\/#\/schema\/logo\/image\/","url":"https:\/\/fira.onda.es\/wp-content\/uploads\/2025\/07\/cropped-AJUNTAMENT-ONDA-NEGRE.png","contentUrl":"https:\/\/fira.onda.es\/wp-content\/uploads\/2025\/07\/cropped-AJUNTAMENT-ONDA-NEGRE.png","width":888,"height":402,"caption":"Fira d&#039;Onda 2026"},"image":{"@id":"https:\/\/fira.onda.es\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/fira.onda.es\/index.php\/wp-json\/wp\/v2\/pages\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fira.onda.es\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fira.onda.es\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fira.onda.es\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fira.onda.es\/index.php\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":118,"href":"https:\/\/fira.onda.es\/index.php\/wp-json\/wp\/v2\/pages\/17\/revisions"}],"predecessor-version":[{"id":1407,"href":"https:\/\/fira.onda.es\/index.php\/wp-json\/wp\/v2\/pages\/17\/revisions\/1407"}],"wp:attachment":[{"href":"https:\/\/fira.onda.es\/index.php\/wp-json\/wp\/v2\/media?parent=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}