{"id":850,"date":"2025-10-09T16:19:36","date_gmt":"2025-10-09T14:19:36","guid":{"rendered":"https:\/\/happynessradio.fr\/amiens\/?page_id=850"},"modified":"2026-01-12T21:59:25","modified_gmt":"2026-01-12T20:59:25","slug":"le-micro-aux-initiatives","status":"publish","type":"page","link":"https:\/\/happynessradio.fr\/amiens\/podcasts\/le-micro-aux-initiatives\/","title":{"rendered":"Le Micro aux Initiatives"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"850\" class=\"elementor elementor-850\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f695976 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-id=\"f695976\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-00d708f elementor-widget elementor-widget-html\" data-id=\"00d708f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2261\" class=\"elementor elementor-2261\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f984528 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-id=\"f984528\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0e2d65f elementor-widget elementor-widget-html\" data-id=\"0e2d65f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, viewport-fit=cover, maximum-scale=1.0, user-scalable=no\">\n    <title>Happyness Radio - Le Son du Bonheur<\/title>\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;600;800&display=swap\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\n\n    <link rel=\"icon\" href=\"https:\/\/happynessradio.fr\/wp-content\/uploads\/2025\/12\/Mention-HappynessAmiens@2x.webp\" type=\"image\/webp\">\n\n    <style>\n        :root {\n            --primary-color: #C10000;\n            --text-color: #ffffff;\n            --bar-height: 80px;\n            --nav-height: 80px;\n            --safe-area-bottom: env(safe-area-inset-bottom);\n            --header-height: 60px;\n        }\n        \n        body {\n            margin: 0; font-family: 'Inter', sans-serif;\n            background-color: #121212; color: white;\n            -webkit-tap-highlight-color: transparent;\n            overscroll-behavior: none;\n        }\n\n        \/* --- 1. MINI PLAYER (Banni\u00e8re) --- *\/\n        .radio-player {\n            position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%);\n            background: rgba(193, 0, 0, 0.95); backdrop-filter: blur(10px);\n            color: var(--text-color); display: flex; align-items: center;\n            padding: 10px 15px; border-radius: 16px;\n            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);\n            width: 95%; max-width: 800px; \n            height: var(--bar-height);\n            z-index: 9999; \n            cursor: pointer; box-sizing: border-box;\n            transition: transform 0.3s ease;\n        }\n        .radio-player img { width: 50px; height: 50px; border-radius: 8px; margin-right: 15px; object-fit: cover; }\n        .song-details { flex-grow: 1; display: flex; flex-direction: column; overflow: hidden; white-space: nowrap; }\n        .song-details span { overflow: hidden; text-overflow: ellipsis; }\n        #song-title { font-weight: 800; font-size: 15px; }\n        #song-artist { font-size: 13px; opacity: 0.9; }\n        .btn-icon {\n            background: none; border: none; color: white; cursor: pointer;\n            font-size: 18px; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center;\n            border-radius: 50%; transition: background 0.2s;\n        }\n        .btn-icon:hover { background: rgba(255,255,255,0.1); }\n        .btn-play-mini { background: white; color: var(--primary-color); width: 40px; height: 40px; margin-right: 10px; border-radius: 50%; }\n\n        \/* --- 2. FULLSCREEN OVERLAY --- *\/\n        .fullscreen-overlay {\n            position: fixed; top: 100%; left: 0; width: 100%; height: 100%;\n            background-color: #121212; z-index: 10000; \n            transition: top 0.4s cubic-bezier(0.22, 1, 0.36, 1);\n            display: flex; flex-direction: column;\n        }\n        .fullscreen-overlay.open { top: 0; }\n        \n        .fullscreen-bg {\n            position: absolute; top: 0; left: 0; width: 100%; height: 100%;\n            background-size: cover; background-position: center;\n            filter: blur(60px) brightness(0.2); z-index: -1; transition: background-image 0.5s;\n        }\n\n        .fs-header {\n            display: flex; justify-content: space-between; align-items: center;\n            padding: 10px 20px; padding-top: calc(10px + env(safe-area-inset-top));\n            flex-shrink: 0; background: linear-gradient(to bottom, rgba(0,0,0,0.3), transparent);\n            z-index: 10;\n            height: var(--header-height); box-sizing: content-box;\n        }\n        .fs-header img.logo { height: 28px; }\n\n        \/* --- SCROLL WRAPPER --- *\/\n        .scrollable-content-wrapper {\n            flex: 1; \n            overflow-y: auto; \n            overflow-x: hidden;\n            -webkit-overflow-scrolling: touch; \n            display: flex;\n            flex-direction: column;\n            width: 100%;\n            scroll-behavior: smooth; \n        }\n\n        \/* --- ZONE LECTEUR (MOBILE) --- *\/\n        .player-section {\n            flex-shrink: 0;\n            height: auto; \n            max-height: 75vh; \n            min-height: auto; \n            padding: 0px 20px 10px 20px; \n            display: flex; flex-direction: column; align-items: center; text-align: center;\n            justify-content: flex-end; \n            box-sizing: border-box;\n        }\n\n        .artwork-container {\n            width: 55vw; \n            max-width: 250px; \n            height: auto; \n            aspect-ratio: 1\/1;\n            margin-bottom: 15px; \n            position: relative;\n            flex-shrink: 0;\n            margin-top: 5px;\n        }\n        \n        .artwork-img {\n            width: 100%; height: 100%; border-radius: 20px;\n            box-shadow: 0 10px 40px rgba(0,0,0,0.5); object-fit: cover;\n            transition: transform 0.5s ease;\n        }\n        .artwork-container.playing .artwork-img { transform: scale(1); }\n        .artwork-container.paused .artwork-img { transform: scale(0.9); opacity: 0.8; }\n\n        .btn-return-overlay {\n            position: absolute; top: 10px; right: 10px;\n            background: rgba(0,0,0,0.7); backdrop-filter: blur(5px);\n            border: 1px solid var(--primary-color);\n            color: white;\n            padding: 6px 12px; border-radius: 20px;\n            font-size: 10px; font-weight: bold;\n            cursor: pointer; z-index: 10;\n            display: none; align-items: center; gap: 5px;\n            box-shadow: 0 4px 10px rgba(0,0,0,0.5); transition: transform 0.2s;\n        }\n        .btn-return-overlay:active { transform: scale(0.95); }\n        .btn-return-overlay.visible { display: flex; }\n\n        .fs-info { width: 100%; padding: 0 10px; box-sizing: border-box; margin-bottom: 10px; }\n        .fs-info h2 { font-size: 20px; margin: 0 0 5px; font-weight: bold; line-height: 1.2; }\n        .fs-info h3 { font-size: 14px; margin: 0; color: rgba(255,255,255,0.7); font-weight: 400; }\n        \n        .fs-controls { width: 100%; max-width: 400px; margin-top: 0; }\n        \n        .progress-container { width: 100%; margin-bottom: 5px; padding: 0 5px; box-sizing: border-box; }\n        \n        input[type=range].seek-slider {\n            -webkit-appearance: none; width: 100%; height: 4px;\n            background: rgba(255,255,255,0.2); border-radius: 5px; outline: none; margin: 0; cursor: pointer;\n        }\n        input[type=range].seek-slider::-webkit-slider-thumb {\n            -webkit-appearance: none; appearance: none;\n            width: 14px; height: 14px; border-radius: 50%; \n            background: #ffffff; cursor: pointer;\n            box-shadow: 0 0 10px rgba(0,0,0,0.5);\n            transition: transform 0.1s;\n        }\n        input[type=range].seek-slider::-webkit-slider-thumb:active { transform: scale(1.3); }\n\n        .time-row {\n            display: flex; justify-content: space-between; \n            font-size: 11px; color: #aaa; margin-top: 8px; font-weight: 500;\n        }\n        \n        .control-buttons { \n            display: flex; justify-content: space-between; align-items: center; \n            margin-top: 5px; width: 100%; padding: 0 10px; box-sizing: border-box;\n        }\n        \n        .btn-fs-play {\n            width: 65px; height: 65px; background: white; color: black; border-radius: 50%;\n            font-size: 24px; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center;\n            transition: transform 0.2s; box-shadow: 0 5px 15px rgba(0,0,0,0.2);\n        }\n        .btn-fs-play:active { transform: scale(0.95); }\n\n        .btn-skip {\n            background: none; border: none; color: white; font-size: 22px; cursor: pointer;\n            display: flex; flex-direction: column; align-items: center; opacity: 0.8; width: 50px;\n            transition: opacity 0.2s;\n        }\n        .btn-skip span { font-size: 9px; margin-top: 2px; font-weight: bold; }\n        .btn-skip:active { opacity: 0.5; }\n\n        .btn-speed {\n            background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2); \n            color: white; border-radius: 8px; padding: 5px 10px; font-size: 11px; font-weight: bold; cursor: pointer;\n            width: 40px; text-align: center;\n        }\n\n        .volume-control-area { display: none; width: 100%; margin-top: 20px; align-items: center; gap: 10px; justify-content: center; }\n        #volumeContainerMobile { display: none; }\n\n        \/* --- CONTENU & LISTE (S'AFFICHE TOUJOURS APR\u00c8S LE PLAYER) --- *\/\n        .content-section {\n            flex: 1; \n            width: 100%;\n            background: rgba(0,0,0,0.4); \n            backdrop-filter: blur(20px);\n            border-top-left-radius: 24px;\n            border-top-right-radius: 24px; \n            padding-bottom: 120px; \n            margin-top: 0;\n            position: relative;\n            min-height: 200px; \n        }\n\n        .tab-view {\n            display: none; padding: 20px 20px 20px 20px; \n            animation: fadeIn 0.3s ease;\n        }\n        .tab-view.active { display: block; }\n        @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }\n\n        \/* --- GLOBAL SEARCH STYLES --- *\/\n        .search-wrapper { position: relative; margin-bottom: 20px; z-index: 50; margin-top: 0px; }\n        .search-box {\n            width: 100%; background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.1);\n            border-radius: 12px; padding: 12px 15px; padding-left: 15px; color: white;\n            font-size: 16px; font-family: 'Inter', sans-serif; outline: none; transition: all 0.3s ease;\n            box-sizing: border-box; backdrop-filter: blur(5px);\n        }\n        .search-box:focus { background: rgba(255, 255, 255, 0.15); border-color: var(--primary-color); box-shadow: 0 0 15px rgba(193, 0, 0, 0.3); }\n        .search-clear { position: absolute; right: 15px; top: 50%; transform: translateY(-50%); color: rgba(255, 255, 255, 0.5); cursor: pointer; display: none; padding: 5px; }\n        \n        #searchResultsView { display: none; padding-bottom: 20px; }\n        #searchResultsView.active { display: block; }\n\n        .search-section-title {\n            color: white; font-size: 11px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase;\n            margin-top: 20px; margin-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 5px;\n        }\n\n        .browsing-container { transition: opacity 0.3s; }\n        .browsing-container.hidden { display: none; }\n\n        \/* LISTES ET GRILLES *\/\n        .history-list, .episode-list { list-style: none; padding: 0; margin: 0; }\n        .history-list li, .episode-list li { display: flex; align-items: center; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,0.05); cursor: pointer; }\n        .history-list img, .episode-list img { width: 45px; height: 45px; border-radius: 8px; margin-right: 15px; object-fit: cover; flex-shrink: 0; }\n        .h-info { flex: 1; overflow: hidden; }\n        .h-title { display: block; font-size: 14px; font-weight: 600; margin-bottom: -2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n        .h-artist { font-size: 12px; color: #aaa; }\n        .h-time { font-size: 11px; color: #666; white-space: nowrap; margin-left: 10px;}\n\n        .podcasts-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; }\n        .podcast-card {\n            background: rgba(255,255,255,0.05); border-radius: 12px; padding: 10px;\n            display: flex; flex-direction: column; cursor: pointer; transition: transform 0.2s;\n        }\n        .podcast-card:active { transform: scale(0.96); background: rgba(255,255,255,0.1); }\n        .pc-img { width: 100%; aspect-ratio: 1\/1; border-radius: 8px; margin-bottom: 10px; object-fit: cover; background: #333; }\n        .pc-title { font-size: 12px; font-weight: bold; margin-bottom: 0; text-align: center; line-height: 1.3; }\n\n        \/* --- NAVIGATION BAR --- *\/\n        .nav-bar {\n            height: var(--nav-height); background: rgba(0,0,0,0.95); backdrop-filter: blur(20px);\n            display: flex; justify-content: center; align-items: center; gap: 60px; flex-shrink: 0; \n            border-top: 1px solid rgba(255,255,255,0.1); padding-bottom: var(--safe-area-bottom);\n            position: relative; z-index: 20; width: 100%;\n        }\n        .nav-btn {\n            background: transparent; border: none; color: rgba(255,255,255,0.5); font-size: 12px; \n            display: flex; flex-direction: column; align-items: center; padding: 0; margin: 0;\n            cursor: pointer; width: 70px; transition: color 0.3s ease, transform 0.2s ease; outline: none; \n        }\n        .nav-btn:hover { color: var(--primary-color); background: transparent; transform: scale(1.05); }\n        .nav-btn.active { color: var(--primary-color); background: transparent; }\n        .nav-btn i { font-size: 20px; margin-bottom: 6px; }\n\n        .source-badge {\n            background: var(--primary-color); color: white; font-size: 10px; font-weight: bold;\n            padding: 4px 10px; border-radius: 12px; margin-bottom: 10px; display: inline-block;\n            text-transform: uppercase; letter-spacing: 1px;\n        }\n        .source-badge.podcast-mode { background: #6c5ce7; }\n\n        #episodesView { display: none; }\n        .back-btn { background: none; border: none; color: white; display: flex; align-items: center; font-size: 14px; font-weight: 600; margin-bottom: 20px; cursor: pointer; padding: 0; }\n        .back-btn i { margin-right: 8px; color: var(--primary-color); }\n\n        .loading-spinner { text-align: center; padding: 40px; color: #aaa; font-size: 14px; }\n        .loading-hint { font-size: 10px; color: #666; margin-left: 10px; font-weight: normal; }\n        \n        .load-more-container { display: flex; justify-content: center; padding: 20px 0; width: 100%; }\n        .btn-load-more {\n            background-color: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2);\n            color: white; padding: 12px 25px; border-radius: 30px; font-size: 13px; font-weight: 600;\n            cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; gap: 10px;\n        }\n        .btn-load-more:hover { background-color: var(--primary-color); border-color: var(--primary-color); transform: translateY(-2px); }\n\n        \/* --- OPTIMISATION PETITS \u00c9CRANS --- *\/\n        @media (max-height: 700px) {\n            .player-section { padding: 5px 20px 5px 20px; }\n            .artwork-container { width: 45vw; max-width: 180px; margin-bottom: 10px; margin-top: 5px; }\n            .fs-info h2 { font-size: 18px; }\n            .btn-fs-play { width: 55px; height: 55px; font-size: 22px; }\n        }\n\n        \/* --- RESPONSIVE DESKTOP & TABLETTE --- *\/\n        @media (min-width: 900px) {\n            .scrollable-content-wrapper { flex-direction: row; overflow: hidden; max-width: 100%; margin: 0 auto; }\n            \n            \/* Player \u00e0 gauche *\/\n            .player-section { \n                width: 35%; height: 100%; overflow-y: auto; border-right: 1px solid rgba(255,255,255,0.1); \n                padding: 20px; justify-content: center; min-height: auto; max-height: none; \n            }\n\n            .artwork-container { width: 260px; max-width: none; height: 260px; margin-bottom: 20px; margin-top: 0; }\n            .fs-info h2 { font-size: 24px; margin-bottom: 4px; }\n            .fs-info h3 { font-size: 16px; }\n\n            .fs-controls { width: 100%; max-width: 300px; margin-top: 15px; }\n            .btn-fs-play { width: 55px; height: 55px; font-size: 20px; }\n            #volumeContainerMobile { display: flex; margin-top: 15px; }\n\n            \/* Contenu \u00e0 droite *\/\n            .content-section { \n                width: 65%; height: 100%; overflow-y: auto; background: transparent; border-radius: 0; padding-bottom: 0; margin-top: 0;\n            }\n            .tab-view { padding: 30px; }\n            .nav-bar { width: 100%; max-width: 100%; gap: 100px; }\n            .podcasts-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 20px; }\n        }\n    <\/style>\n<\/head>\n<body>\n\n    <audio id=\"audioElement\" preload=\"none\"><\/audio>\n\n    <div class=\"radio-player\" id=\"miniPlayer\">\n        <img decoding=\"async\" id=\"miniCover\" src=\"\" alt=\"Cover\">\n        <div class=\"song-details\">\n            <span id=\"miniTitle\" style=\"font-weight: bold;\">Chargement...<\/span>\n            <span id=\"miniArtist\">Happyness Radio<\/span>\n        <\/div>\n        <button id=\"miniPlayBtn\" class=\"btn-icon btn-play-mini\"><i class=\"fas fa-play\"><\/i><\/button>\n        <button id=\"expandBtn\" class=\"btn-icon\"><i class=\"fas fa-chevron-up\"><\/i><\/button>\n    <\/div>\n\n    <div class=\"fullscreen-overlay\" id=\"fullscreenOverlay\">\n        <div class=\"fullscreen-bg\" id=\"fsBg\"><\/div>\n\n        <div class=\"fs-header\">\n            <button class=\"btn-icon\" id=\"closeFsBtn\"><i class=\"fas fa-chevron-down\"><\/i><\/button>\n            <img decoding=\"async\" class=\"logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Mention-HappynessAmiens.webp\" alt=\"Happyness\">\n            <button class=\"btn-icon\" id=\"chatBtn\"><i class=\"fas fa-comments\"><\/i><\/button>\n        <\/div>\n\n        <div class=\"scrollable-content-wrapper\" id=\"scrollWrapper\">\n            \n            <div class=\"player-section\">\n                <div id=\"sourceBadge\" class=\"source-badge\">DIRECT<\/div>\n                \n                <div class=\"artwork-container paused\" id=\"artworkContainer\">\n                    <div id=\"btnReturnOverlay\" class=\"btn-return-overlay\">\n                        <i class=\"fas fa-broadcast-tower\"><\/i> RETOUR DIRECT\n                    <\/div>\n                    <img decoding=\"async\" id=\"fsCover\" class=\"artwork-img\" src=\"\" alt=\"Album Art\">\n                <\/div>\n\n                <div class=\"fs-info\">\n                    <h2 id=\"fsTitle\">Happyness Radio<\/h2>\n                    <h3 id=\"fsArtist\">Le Son du Bonheur<\/h3>\n                <\/div>\n\n                <div class=\"fs-controls\">\n                    \n                    <div class=\"progress-container\">\n                        <input type=\"range\" id=\"seekSlider\" class=\"seek-slider\" min=\"0\" max=\"100\" value=\"0\" step=\"0.1\">\n                        <div class=\"time-row\">\n                            <span id=\"currentTime\">00:00<\/span>\n                            <span id=\"totalTime\">LIVE<\/span>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"control-buttons\">\n                        <button class=\"btn-speed\" id=\"speedBtn\">1x<\/button>\n\n                        <button class=\"btn-skip\" id=\"btnRewind\">\n                            <i class=\"fas fa-rotate-left\"><\/i>\n                            <span>-10<\/span>\n                        <\/button>\n                        \n                        <button id=\"fsPlayBtn\" class=\"btn-fs-play\"><i class=\"fas fa-play\"><\/i><\/button>\n                        \n                        <button class=\"btn-skip\" id=\"btnForward\">\n                            <i class=\"fas fa-rotate-right\"><\/i>\n                            <span>+10<\/span>\n                        <\/button>\n\n                        <button class=\"btn-icon\" style=\"opacity:0; pointer-events:none;\"><i class=\"fas fa-ellipsis\"><\/i><\/button>\n                    <\/div>\n                    \n                    <div id=\"volumeContainerMobile\" class=\"volume-control-area\">\n                        <i class=\"fas fa-volume-low\" style=\"font-size:12px; opacity:0.7\"><\/i>\n                        <input type=\"range\" id=\"volumeSlider\" min=\"0\" max=\"1\" step=\"0.05\" value=\"0.5\" style=\"width:100%; accent-color: white; height: 3px; cursor: pointer;\">\n                        <i class=\"fas fa-volume-high\" style=\"font-size:12px; opacity:0.7\"><\/i>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"content-section\">\n                \n                <div id=\"tab-live\" class=\"tab-view active\">\n                    <h4 style=\"margin-top:0; margin-bottom:15px; color:#aaa; text-transform:uppercase; font-size:11px; letter-spacing:1px; border-bottom:1px solid rgba(255,255,255,0.1); padding-bottom:10px;\">Derni\u00e8rement diffus\u00e9<\/h4>\n                    <ul class=\"history-list\" id=\"historyList\"><\/ul>\n                <\/div>\n\n                <div id=\"tab-podcasts\" class=\"tab-view\">\n                    \n                    <div class=\"search-wrapper\">\n                        <input type=\"text\" id=\"globalSearchInput\" class=\"search-box\" placeholder=\"Rechercher une \u00e9mission ou un \u00e9pisode...\">\n                        <i class=\"fas fa-times search-clear\" id=\"clearSearchBtn\"><\/i>\n                    <\/div>\n\n                    <div id=\"searchResultsView\">\n                        <div class=\"search-section-title\">\u00c9MISSIONS<\/div>\n                        <div class=\"podcasts-grid\" id=\"searchResultShows\"><\/div>\n                        \n                        <div class=\"search-section-title\">\u00c9PISODES <span id=\"indexingHint\" class=\"loading-hint\"><\/span><\/div>\n                        <ul class=\"episode-list\" id=\"searchResultEpisodes\"><\/ul>\n                        <div id=\"searchNoResults\" class=\"no-results\">Aucun r\u00e9sultat trouv\u00e9.<\/div>\n                    <\/div>\n\n                    <div id=\"browsingContainer\" class=\"browsing-container\">\n                        <div id=\"showsView\">\n                            <h4 style=\"margin-top:0; margin-bottom:15px; color:#aaa; text-transform:uppercase; font-size:11px; letter-spacing:1px; border-bottom:1px solid rgba(255,255,255,0.1); padding-bottom:10px;\">Nos \u00c9missions<\/h4>\n                            <div class=\"podcasts-grid\" id=\"podcastsGrid\"><\/div>\n                        <\/div>\n\n                        <div id=\"episodesView\">\n                            <button class=\"back-btn\" id=\"backToShowsBtn\"><i class=\"fas fa-arrow-left\"><\/i> Retour aux \u00e9missions<\/button>\n                            <div id=\"selectedShowHeader\" style=\"display:flex; align-items:center; margin-bottom:20px;\">\n                                <img decoding=\"async\" id=\"selectedShowImg\" src=\"\" style=\"width:60px; height:60px; border-radius:8px; margin-right:15px; object-fit:cover;\">\n                                <div>\n                                    <h3 id=\"selectedShowTitle\" style=\"margin:0; font-size:16px;\">Titre<\/h3>\n                                    <span style=\"font-size:12px; color:#aaa;\">Liste des \u00e9pisodes<\/span>\n                                <\/div>\n                            <\/div>\n                            <ul class=\"episode-list\" id=\"episodesList\"><\/ul>\n                            \n                            <div id=\"loadMoreContainer\" class=\"load-more-container\" style=\"display: none;\">\n                                <button id=\"loadMoreBtn\" class=\"btn-load-more\">\n                                    <i class=\"fas fa-plus\"><\/i> Charger les \u00e9pisodes suivants\n                                <\/button>\n                            <\/div>\n                            <\/div>\n                    <\/div>\n\n                <\/div>\n\n            <\/div>\n        <\/div>\n\n        <div class=\"nav-bar\">\n            <button class=\"nav-btn active\" id=\"navLive\">\n                <i class=\"fas fa-broadcast-tower\"><\/i>\n                Direct\n            <\/button>\n            <button class=\"nav-btn\" id=\"navPodcasts\">\n                <i class=\"fas fa-podcast\"><\/i>\n                Podcasts\n            <\/button>\n        <\/div>\n    <\/div>\n\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/fuse.js\/dist\/fuse.min.js\"><\/script>\n\n    <script>\n        \/\/ --- CONFIGURATION ---\n        const CONFIG = {\n            liveStreamUrl: \"https:\/\/azuracast-scrs-2.foxoud.synology.me\/listen\/happyness_amiens\/player\",\n            liveApiUrl: \"https:\/\/azuracast-scrs-2.foxoud.synology.me\/api\/nowplaying\/happyness_amiens\",\n            defaultCover: \"https:\/\/scontent-cdg4-2.xx.fbcdn.net\/v\/t39.30808-6\/546621562_1568129641039264_7460438818059504658_n.jpg?_nc_cat=107&ccb=1-7&_nc_sid=6ee11a&_nc_ohc=wO-O9jQ18FkQ7kNvwHa0Ugj&_nc_oc=AdkxPCcQmnLJ1oh4bBaqmuC_BXHzDvRgpp3uzggBaWkZG_ZN6gKaACso9uNS_TCPh4Pg1qAEAb5_-6WgKbaNuJm&_nc_zt=23&_nc_ht=scontent-cdg4-2.xx&_nc_gid=pUKDzKdabin9jPhV7p_v2g&oh=00_AflB6KUeFDXucjAIw9HTvpqgVOALkit_MnfS6fGE89_hfA&oe=69361F80\",\n            chatUrl: \"https:\/\/1343.3cx.cloud\/callus\/#LiveChat928433\"\n        };\n\n        \/\/ --- DATA PODCASTS ---\n        const PODCAST_SHOWS = [\n            { id: 1, title: \"Happyness Interview\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Visuel-Happyness-Interview.webp\", rss: \"https:\/\/castopod.happynessradio.fr\/@happynessinterview\/feed.xml\" },\n            { id: 2, title: \"Le R\u00e9veil Happyness\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/LRH-Visuel-Podcast-site-25-26-avec-logo.webp\", rss: \"https:\/\/castopod.happynessradio.fr\/@lereveilhappyness\/feed.xml\" },\n            { id: 3, title: \"L'Antre du Geek\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/ADG-visuel-podcst-site-25-26-avec-logo-2.webp\", rss: \"https:\/\/castopod.happynessradio.fr\/@lantredugeek\/feed.xml\" },\n            { id: 4, title: \"Riff and Jack\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/RAJ-visuel-podcst-site-25-26-sans-logo.webp\", rss: \"https:\/\/castopod.happynessradio.fr\/@riffandjack\/feed.xml\" },\n            { id: 7, title: \"Les chroniques du JDR\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/JDR-visuel-podcast-site-25-26-avec-logo.webp\", rss: \"https:\/\/castopod.happynessradio.fr\/@les_chroniques_du_jdr\/feed.xml\" },\n            { id: 8, title: \"Quoi d'neuf ? Compi\u00e8gne\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2026\/02\/QDN-Compiegne-Visuel-Player.webp\", rss: \"https:\/\/castopod.happynessradio.fr\/@qdncmp\/feed.xml\" },\n            { id: 9, title: \"Quoi d'neuf ? Amiens\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2026\/02\/QDN-Amiens-Visuel-Player.webp\", rss: \"https:\/\/castopod.happynessradio.fr\/@qdnamiens\/feed.xml\" },\n            { id: 10, title: \"\u00c7a vient du coeur\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/CVC-visuel-podcst-site-25-26-sans-logo.webp\", rss: \"https:\/\/www.castopod.happynessradio.fr\/@cvc\/feed.xml\" },\n            { id: 11, title: \"point.\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/PNT-visuel-podcast-avec-logo-25-26-sans-logo-2.webp\", rss: \"https:\/\/www.castopod.happynessradio.fr\/@point\/feed.xml\" },\n            { id: 12, title: \"Nos Entrepreneurs avec BGE Picardie\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/NES-visuel-podcst-site-25-26.webp\", rss: \"https:\/\/www.castopod.happynessradio.fr\/@nos_entrepreneurs_BGE_Somme\/feed.xml\" },\n            { id: 13, title: \"Le Micro aux Initiatives\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/MAI-visuel-podcst-sans-logo-V2.webp\", rss: \"https:\/\/www.castopod.happynessradio.fr\/@microinitiaves\/feed.xml\" },\n            { id: 15, title: \"Saveurs et confidences\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/SEC-visuel-podcst-site-25-26-sans-logo-V2.webp\", rss: \"https:\/\/www.castopod.happynessradio.fr\/@saveursetconfidences\/feed.xml\" },\n            { id: 16, title: \"P\u00e8li Clap\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/PCL-visuel-podcast-site-25-26-avec-logo.webp\", rss: \"https:\/\/www.castopod.happynessradio.fr\/@peliclap\/feed.xml\" },\n            { id: 17, title: \"Quoi d'neuf ? Chambly\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2026\/02\/QDN-Chambly-Visuel-Player.webp\", rss: \"https:\/\/www.castopod.happynessradio.fr\/@qdnchambly\/feed.xml\" },\n            { id: 18, title: \"Rencontre & Vous\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/REV-visuel-podcst-site-25-26-avec-logo-V2.webp\", rss: \"https:\/\/www.castopod.happynessradio.fr\/@rencontrevous\/feed.xml\" },\n            { id: 19, title: \"Sam'Culture\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/SCE-visuel-podcst-site-25-26.webp\", rss: \"https:\/\/www.castopod.happynessradio.fr\/@samculture\/feed.xml\" },\n            { id: 20, title: \"Temps Additionnel\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/TAD-visuel-podcast-site-25-26-sans-logo.webp\", rss: \"https:\/\/www.castopod.happynessradio.fr\/@tempsadditionnel\/feed.xml\" },\n            { id: 21, title: \"Cin\u00e9matique Sans Toc\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/CST-visuel-podcst-site-25-26-avec-logo.webp\", rss: \"https:\/\/www.castopod.happynessradio.fr\/@cinematiquesanstoc\/feed.xml\" },\n            { id: 22, title: \"Recueils Oniriques\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/RON-visuel-avec-logo.webp\", rss: \"https:\/\/www.castopod.happynessradio.fr\/@RO\/feed.xml\" },\n            { id: 23, title: \"Les Hors Studio d'Happyness\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/LHS-Happyness-sans-logo.webp\", rss: \"https:\/\/www.castopod.happynessradio.fr\/@happynessdeloc\/feed.xml\" },\n            { id: 24, title: \"La Plume et le Sabre\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/LPS-visuel-podcst-site-25-26-sans-logo.webp\", rss: \"https:\/\/www.castopod.happynessradio.fr\/@laplumeetlesabre\/feed.xml\" },\n            { id: 25, title: \"La playlist d'Alex\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/PLA-visuel-podcst-site-25-26-avec-logo.webp\", rss: \"https:\/\/www.castopod.happynessradio.fr\/@laplaylistdalex\/feed.xml\" },\n            { id: 26, title: \"100% Lifestyle\", image: \"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/100Lifestyle-25-26-sans-logo.webp\", rss: \"https:\/\/www.castopod.happynessradio.fr\/@100lifestyle\/feed.xml\" },            \n        ];\n\n        \/\/ --- VARIABLES D'ETAT ---\n        let isPlayingPodcast = false;\n        let currentLiveMetadata = { title: \"Happyness\", artist: \"Radio\", cover: CONFIG.defaultCover };\n        let audio = document.getElementById('audioElement');\n        let currentSpeedIndex = 0;\n        const speedOptions = [1, 1.25, 1.5, 2, 0.5];\n\n        \/\/ VARIABLES PAGINATION\n        let currentPodcastEpisodes = []; \n        let displayedEpisodeCount = 0;   \n        const EPISODES_PER_BATCH = 50;   \n        let currentContext = {};        \n\n        \/\/ GLOBAL SEARCH CACHE & FUSE\n        let globalEpisodeIndex = [];\n        let isIndexing = false;\n        let fuseShows;\n        let fuseEpisodes;\n\n        \/\/ Options Fuse.js pour la tol\u00e9rance aux fautes\n        const fuseOptionsBase = {\n            includeScore: true,\n            threshold: 0.4, \n            ignoreLocation: true,\n            ignoreDiacritics: true,\n            minMatchCharLength: 2\n        };\n\n        const ui = {\n            miniPlayer: document.getElementById('miniPlayer'),\n            overlay: document.getElementById('fullscreenOverlay'),\n            playBtns: [document.getElementById('miniPlayBtn'), document.getElementById('fsPlayBtn')],\n            miniTitle: document.getElementById('miniTitle'),\n            miniArtist: document.getElementById('miniArtist'),\n            miniCover: document.getElementById('miniCover'),\n            fsTitle: document.getElementById('fsTitle'),\n            fsArtist: document.getElementById('fsArtist'),\n            fsCover: document.getElementById('fsCover'),\n            fsBg: document.getElementById('fsBg'),\n            artworkContainer: document.getElementById('artworkContainer'),\n            \n            scrollWrapper: document.getElementById('scrollWrapper'),\n\n            \/\/ New Controls\n            seekSlider: document.getElementById('seekSlider'),\n            currTime: document.getElementById('currentTime'),\n            totTime: document.getElementById('totalTime'),\n            speedBtn: document.getElementById('speedBtn'),\n            btnRewind: document.getElementById('btnRewind'),\n            btnForward: document.getElementById('btnForward'),\n            \n            btnReturnOverlay: document.getElementById('btnReturnOverlay'),\n            \n            loadMoreBtn: document.getElementById('loadMoreBtn'),\n            loadMoreContainer: document.getElementById('loadMoreContainer'),\n\n            sourceBadge: document.getElementById('sourceBadge'),\n            historyList: document.getElementById('historyList'),\n            podcastsGrid: document.getElementById('podcastsGrid'),\n            showsView: document.getElementById('showsView'),\n            episodesView: document.getElementById('episodesView'),\n            episodesList: document.getElementById('episodesList'),\n            backToShowsBtn: document.getElementById('backToShowsBtn'),\n            selectedShowTitle: document.getElementById('selectedShowTitle'),\n            selectedShowImg: document.getElementById('selectedShowImg'),\n            \n            \/\/ SEARCH UI\n            searchInput: document.getElementById('globalSearchInput'),\n            clearSearchBtn: document.getElementById('clearSearchBtn'),\n            browsingContainer: document.getElementById('browsingContainer'),\n            searchResultsView: document.getElementById('searchResultsView'),\n            searchResultShows: document.getElementById('searchResultShows'),\n            searchResultEpisodes: document.getElementById('searchResultEpisodes'),\n            searchNoResults: document.getElementById('searchNoResults'),\n            indexingHint: document.getElementById('indexingHint'),\n\n            \/\/ Nav\n            navLive: document.getElementById('navLive'),\n            navPodcasts: document.getElementById('navPodcasts'),\n            tabLive: document.getElementById('tab-live'),\n            tabPodcasts: document.getElementById('tab-podcasts')\n        };\n\n        \/\/ --- FORMAT TIME FUNCTION ---\n        \/\/ G\u00e8re les Heures, Minutes, Secondes selon la dur\u00e9e\n        function formatTime(s) {\n            if (isNaN(s) || s === null) return \"00:00\";\n            \n            const hours = Math.floor(s \/ 3600);\n            const minutes = Math.floor((s % 3600) \/ 60);\n            const seconds = Math.floor(s % 60);\n\n            const formatNum = (num) => (num < 10 ? '0' : '') + num;\n\n            if (hours > 0) {\n                return `${hours}:${formatNum(minutes)}:${formatNum(seconds)}`;\n            } else {\n                return `${formatNum(minutes)}:${formatNum(seconds)}`;\n            }\n        }\n\n        \/\/ --- INIT SEARCH (Shows) ---\n        function initShowSearch() {\n            fuseShows = new Fuse(PODCAST_SHOWS, {\n                ...fuseOptionsBase,\n                keys: ['title']\n            });\n        }\n        initShowSearch();\n\n        \/\/ --- AUDIO ---\n        function playStream(url, isPodcast = false, meta = null) {\n            if (audio.src !== url) {\n                updatePlayButtons('loading');\n                \n                audio.src = url;\n                audio.load();\n                isPlayingPodcast = isPodcast;\n                audio.playbackRate = 1; \n                currentSpeedIndex = 0;\n                ui.speedBtn.textContent = \"1x\";\n\n                if (isPodcast && meta) {\n                    updateDisplay(meta.title, meta.artist, meta.cover, true);\n                    ui.sourceBadge.textContent = \"PODCAST\";\n                    ui.sourceBadge.classList.add('podcast-mode');\n                    \n                    ui.btnReturnOverlay.classList.add('visible');\n                    ui.seekSlider.disabled = false;\n                    ui.seekSlider.style.opacity = \"1\";\n                    ui.btnRewind.style.opacity = \"1\"; ui.btnRewind.style.pointerEvents = \"auto\";\n                    ui.btnForward.style.opacity = \"1\"; ui.btnForward.style.pointerEvents = \"auto\";\n                    ui.speedBtn.style.opacity = \"1\"; ui.speedBtn.style.pointerEvents = \"auto\";\n                } else {\n                    updateDisplay(currentLiveMetadata.title, currentLiveMetadata.artist, currentLiveMetadata.cover, false);\n                    ui.sourceBadge.textContent = \"DIRECT\";\n                    ui.sourceBadge.classList.remove('podcast-mode');\n                    \n                    ui.btnReturnOverlay.classList.remove('visible');\n                    ui.seekSlider.disabled = true;\n                    ui.seekSlider.value = 100;\n                    ui.seekSlider.style.background = \"var(--primary-color)\";\n                    ui.btnRewind.style.opacity = \"0.3\"; ui.btnRewind.style.pointerEvents = \"none\";\n                    ui.btnForward.style.opacity = \"0.3\"; ui.btnForward.style.pointerEvents = \"none\";\n                    ui.speedBtn.style.opacity = \"0.3\"; ui.speedBtn.style.pointerEvents = \"none\";\n                }\n            }\n            \n            var playPromise = audio.play();\n            if (playPromise !== undefined) {\n                playPromise.then(_ => {}).catch(error => { updatePlayButtons('paused'); });\n            }\n        }\n\n        \/\/ --- FONCTION TOGGLE PLAY ---\n        function togglePlay() {\n            if (audio.paused) {\n                if (!isPlayingPodcast) {\n                    playStream(CONFIG.liveStreamUrl + '?t=' + Date.now(), false);\n                } else {\n                    if (!audio.src) {\n                        playStream(CONFIG.liveStreamUrl + '?t=' + Date.now(), false);\n                    } else {\n                        updatePlayButtons('loading');\n                        audio.play();\n                    }\n                }\n            } else {\n                audio.pause();\n                updatePlayButtons('paused');\n                \n                if (!isPlayingPodcast) {\n                    audio.src = \"\"; \n                    audio.load(); \n                }\n            }\n        }\n\n        function updatePlayButtons(state) {\n            let iconHtml = '';\n            let isPlayingBool = false;\n\n            if (state === 'loading') {\n                iconHtml = '<i class=\"fas fa-circle-notch fa-spin\"><\/i>';\n                isPlayingBool = true;\n            } else if (state === 'playing') {\n                if (isPlayingPodcast) {\n                    iconHtml = '<i class=\"fas fa-pause\"><\/i>';\n                } else {\n                    iconHtml = '<i class=\"fas fa-stop\"><\/i>';\n                }\n                isPlayingBool = true;\n            } else {\n                iconHtml = '<i class=\"fas fa-play\"><\/i>';\n                isPlayingBool = false;\n            }\n\n            ui.playBtns.forEach(btn => btn.innerHTML = iconHtml);\n            \n            updateEpisodeListIcons(state);\n\n            if(isPlayingBool) {\n                ui.artworkContainer.classList.add('playing');\n                ui.artworkContainer.classList.remove('paused');\n                if ('mediaSession' in navigator) navigator.mediaSession.playbackState = \"playing\";\n            } else {\n                ui.artworkContainer.classList.remove('playing');\n                ui.artworkContainer.classList.add('paused');\n                if ('mediaSession' in navigator) navigator.mediaSession.playbackState = \"paused\";\n            }\n        }\n        \n        function updateEpisodeListIcons(state) {\n            const icons = document.querySelectorAll('.episode-action-icon');\n            icons.forEach(icon => {\n                if(icon.dataset.url && icon.dataset.url === audio.src) {\n                      if(state === 'playing') {\n                        icon.className = \"fas fa-pause-circle episode-action-icon\";\n                      } else if (state === 'loading') {\n                        icon.className = \"fas fa-circle-notch fa-spin episode-action-icon\";\n                      } else {\n                        icon.className = \"fas fa-play-circle episode-action-icon\";\n                      }\n                } else {\n                    icon.className = \"fas fa-play-circle episode-action-icon\";\n                }\n            });\n        }\n\n        audio.addEventListener('playing', () => updatePlayButtons('playing'));\n        audio.addEventListener('waiting', () => updatePlayButtons('loading'));\n        audio.addEventListener('pause', () => updatePlayButtons('paused'));\n        audio.addEventListener('timeupdate', updateProgress);\n        \n        \/\/ --- CONTROL EVENTS ---\n        ui.btnReturnOverlay.onclick = (e) => {\n            e.stopPropagation();\n            playStream(CONFIG.liveStreamUrl + '?t=' + Date.now(), false);\n            ui.navLive.click();\n        };\n\n        let isSeeking = false;\n        ui.seekSlider.addEventListener('input', () => {\n            isSeeking = true;\n            const time = (ui.seekSlider.value \/ 100) * audio.duration;\n            ui.currTime.textContent = formatTime(time);\n            updateSliderStyle(ui.seekSlider.value);\n        });\n        ui.seekSlider.addEventListener('change', () => {\n            if(audio.duration) {\n                const time = (ui.seekSlider.value \/ 100) * audio.duration;\n                audio.currentTime = time;\n            }\n            isSeeking = false;\n        });\n\n        const doRewind = () => { if(audio.duration) audio.currentTime = Math.max(0, audio.currentTime - 10); };\n        const doForward = () => { if(audio.duration) audio.currentTime = Math.min(audio.duration, audio.currentTime + 10); };\n\n        ui.btnRewind.onclick = doRewind;\n        ui.btnForward.onclick = doForward;\n\n        ui.speedBtn.onclick = () => {\n            currentSpeedIndex = (currentSpeedIndex + 1) % speedOptions.length;\n            const newSpeed = speedOptions[currentSpeedIndex];\n            audio.playbackRate = newSpeed;\n            ui.speedBtn.textContent = newSpeed + \"x\";\n        };\n\n        \/\/ --- MEDIA SESSION & METADATA ---\n        function updateDisplay(title, artist, cover, isPodcastMode) {\n            if (isPlayingPodcast && !isPodcastMode) return;\n            \n            ui.miniTitle.textContent = title;\n            ui.miniArtist.textContent = artist;\n            ui.fsTitle.textContent = title;\n            ui.fsArtist.textContent = artist;\n            if (ui.miniCover.src !== cover) {\n                ui.miniCover.src = cover;\n                ui.fsCover.src = cover;\n                ui.fsBg.style.backgroundImage = `url('${cover}')`;\n            }\n\n            if ('mediaSession' in navigator) {\n                navigator.mediaSession.metadata = new MediaMetadata({\n                    title: title,\n                    artist: artist,\n                    album: isPodcastMode ? \"Happyness Podcast\" : \"Happyness Radio\",\n                    artwork: [\n                        { src: cover, sizes: '96x96', type: 'image\/png' },\n                        { src: cover, sizes: '128x128', type: 'image\/png' },\n                        { src: cover, sizes: '192x192', type: 'image\/png' },\n                        { src: cover, sizes: '256x256', type: 'image\/png' },\n                        { src: cover, sizes: '384x384', type: 'image\/png' },\n                        { src: cover, sizes: '512x512', type: 'image\/png' },\n                    ]\n                });\n            }\n        }\n\n        if ('mediaSession' in navigator) {\n            navigator.mediaSession.setActionHandler('play', togglePlay);\n            navigator.mediaSession.setActionHandler('pause', togglePlay);\n            navigator.mediaSession.setActionHandler('seekbackward', doRewind);\n            navigator.mediaSession.setActionHandler('seekforward', doForward);\n            navigator.mediaSession.setActionHandler('previoustrack', doRewind);\n            navigator.mediaSession.setActionHandler('nexttrack', doForward);\n        }\n\n        async function fetchLiveMetadata() {\n            try {\n                const res = await fetch(CONFIG.liveApiUrl);\n                const data = await res.json();\n                if (data && data.now_playing) {\n                    const track = data.now_playing.song;\n                    currentLiveMetadata = { title: track.title, artist: track.artist, cover: track.art || CONFIG.defaultCover };\n                    if (!isPlayingPodcast) updateDisplay(currentLiveMetadata.title, currentLiveMetadata.artist, currentLiveMetadata.cover, false);\n                    renderHistory(data.song_history);\n                }\n            } catch (e) { console.error(\"Live API Error\", e); }\n        }\n\n        function renderHistory(history) {\n            ui.historyList.innerHTML = '';\n            history.slice(0, 15).forEach(item => {\n                const li = document.createElement('li');\n                li.innerHTML = `<img decoding=\"async\" src=\"${item.song.art || CONFIG.defaultCover}\"><div class=\"h-info\"><span class=\"h-title\">${item.song.title}<\/span><span class=\"h-artist\">${item.song.artist}<\/span><\/div><span class=\"h-time\">${new Date(item.played_at * 1000).toLocaleTimeString([], {hour:'2-digit', minute:'2-digit'})}<\/span>`;\n                ui.historyList.appendChild(li);\n            });\n        }\n\n        \/\/ --- PODCASTS LOGIC ---\n        function renderShows() {\n            ui.podcastsGrid.innerHTML = '';\n            \n            let shuffledShows = [...PODCAST_SHOWS];\n            for (let i = shuffledShows.length - 1; i > 0; i--) {\n                const j = Math.floor(Math.random() * (i + 1));\n                [shuffledShows[i], shuffledShows[j]] = [shuffledShows[j], shuffledShows[i]];\n            }\n\n            shuffledShows.forEach(show => {\n                const card = document.createElement('div');\n                card.className = 'podcast-card';\n                card.onclick = () => openShowEpisodes(show);\n                card.innerHTML = `<img decoding=\"async\" src=\"${show.image}\" class=\"pc-img\"><div class=\"pc-title\">${show.title}<\/div>`;\n                ui.podcastsGrid.appendChild(card);\n            });\n        }\n\n        function openShowEpisodes(show) {\n            ui.showsView.style.display = 'none';\n            ui.episodesView.style.display = 'block';\n            ui.selectedShowTitle.textContent = show.title;\n            ui.selectedShowImg.src = show.image;\n            \n            ui.episodesList.innerHTML = '<div class=\"loading-spinner\"><i class=\"fas fa-circle-notch fa-spin\"><\/i> R\u00e9cup\u00e9ration des \u00e9pisodes...<\/div>';\n            ui.loadMoreContainer.style.display = 'none';\n            \n            fetchRSS_Robust(show.rss, show.image, show.title, (items) => {\n                setupPodcastView(items, show.image, show.title);\n            });\n        }\n\n        function setupPodcastView(items, showImage, showTitle) {\n            currentPodcastEpisodes = items;\n            currentContext = { image: showImage, title: showTitle };\n            displayedEpisodeCount = 0;\n            \n            ui.episodesList.innerHTML = '';\n            ui.loadMoreContainer.style.display = 'none';\n\n            if (items.length === 0) {\n                ui.episodesList.innerHTML = '<li style=\"padding:20px; text-align:center;\">Aucun \u00e9pisode trouv\u00e9.<\/li>';\n                return;\n            }\n\n            loadNextBatch();\n        }\n\n        function loadNextBatch() {\n            const start = displayedEpisodeCount;\n            const end = start + EPISODES_PER_BATCH;\n            \n            const batch = currentPodcastEpisodes.slice(start, end); \n            \n            renderEpisodesList(batch, currentContext.image, currentContext.title, ui.episodesList, true);\n            \n            displayedEpisodeCount += batch.length;\n\n            if (displayedEpisodeCount < currentPodcastEpisodes.length) {\n                ui.loadMoreContainer.style.display = 'flex';\n                const remaining = currentPodcastEpisodes.length - displayedEpisodeCount;\n                ui.loadMoreBtn.innerHTML = `<i class=\"fas fa-plus\"><\/i> Charger les \u00e9pisodes suivants (${remaining})`;\n            } else {\n                ui.loadMoreContainer.style.display = 'none';\n            }\n        }\n        \n        ui.loadMoreBtn.onclick = loadNextBatch;\n        \n        ui.backToShowsBtn.onclick = () => {\n            ui.episodesView.style.display = 'none';\n            ui.showsView.style.display = 'block';\n        };\n\n        \/\/ --- FETCH RSS WITH RSS2JSON ---\n        async function fetchRSS_Robust(url, showImage, showTitle, callback) {\n            try {\n                const res = await fetch('https:\/\/api.rss2json.com\/v1\/api.json?rss_url=' + encodeURIComponent(url));\n                const data = await res.json();\n                \n                if (data.status === 'ok') {\n                    const parsedItems = data.items.map(item => {\n                        const audioUrl = item.enclosure ? item.enclosure.link : null;\n                        if (!audioUrl) return null;\n                        \n                        const title = item.title || \"\u00c9pisode\";\n                        let dateStr = \"\";\n                        if (item.pubDate) {\n                            try { dateStr = new Date(item.pubDate).toLocaleDateString('fr-FR', {day: 'numeric', month: 'short'}); } catch(e){}\n                        }\n                        \n                        let epImage = item.thumbnail || showImage;\n                        \n                        \/\/ Traitement de la dur\u00e9e format\u00e9e\n                        let duration = \"\";\n                        let rawDuration = item.enclosure && item.enclosure.duration ? item.enclosure.duration : null;\n                        if (!rawDuration && item.duration) rawDuration = item.duration; \/\/ Fallback au cas o\u00f9\n                        \n                        if (rawDuration && rawDuration !== \"\") {\n                            if (!isNaN(rawDuration)) {\n                                duration = formatTime(parseInt(rawDuration));\n                            } else {\n                                let parts = rawDuration.toString().split(':').reverse();\n                                let secs = 0;\n                                for (let i = 0; i < parts.length; i++) {\n                                    secs += parseInt(parts[i]) * Math.pow(60, i);\n                                }\n                                duration = formatTime(secs);\n                            }\n                        }\n\n                        return { title, audioUrl, dateStr, epImage, duration, showTitle, showImage };\n                    }).filter(i => i !== null);\n\n                    callback(parsedItems);\n                } else {\n                    callback([]);\n                }\n            } catch (e) { \n                callback([]); \n            }\n        }\n\n        function renderEpisodesList(items, showImage, showTitle, container, shouldAppend = false) {\n            if (!shouldAppend) {\n                container.innerHTML = '';\n            }\n            \n            if(items.length === 0 && !shouldAppend) { container.innerHTML = '<li style=\"padding:20px; text-align:center;\">Aucun \u00e9pisode.<\/li>'; return; }\n\n            items.forEach(item => {\n                const li = document.createElement('li');\n                \n                let iconClass = \"fas fa-play-circle\";\n                if(item.audioUrl === audio.src && !audio.paused) {\n                    iconClass = \"fas fa-pause-circle\";\n                }\n\n                li.onclick = () => {\n                    if(audio.src === item.audioUrl) {\n                        togglePlay();\n                    } else {\n                        playStream(item.audioUrl, true, { title: item.title, artist: item.showTitle || showTitle, cover: item.epImage });\n                        ui.overlay.classList.add('open');\n                        ui.scrollWrapper.scrollTo({ top: 0, behavior: 'smooth' });\n                    }\n                };\n                \n                const displaySubtitle = showTitle === \"Recherche\" \n                    ? `<span style=\"color:#D3D3D3; font-weight:600;\">${item.showTitle}<\/span> \u2022 ${item.dateStr}`\n                    : `${item.duration ? item.duration + ' \u2022 ' : ''}${item.dateStr}`;\n\n                li.innerHTML = `\n                    <img decoding=\"async\" src=\"${item.epImage}\" alt=\"cover\" onerror=\"this.src='${showImage}'\">\n                    <div class=\"h-info\">\n                        <span class=\"h-title\">${item.title}<\/span>\n                        <span class=\"h-artist\">${displaySubtitle}<\/span>\n                    <\/div>\n                    <i class=\"${iconClass} episode-action-icon\" data-url=\"${item.audioUrl}\" style=\"font-size:24px; color:var(--primary-color); margin-left:10px;\"><\/i>\n                `;\n                container.appendChild(li);\n            });\n        }\n\n        \/\/ --- GLOBAL INDEXING SYSTEM ---\n        function startGlobalIndexing() {\n            if(isIndexing || globalEpisodeIndex.length > 0) return; \n            isIndexing = true;\n            ui.indexingHint.textContent = \"(Chargement...)\";\n            \n            let loadedCount = 0;\n            \n            PODCAST_SHOWS.forEach(show => {\n                fetchRSS_Robust(show.rss, show.image, show.title, (items) => {\n                    globalEpisodeIndex.push(...items);\n                    loadedCount++;\n                    \n                    if(loadedCount === PODCAST_SHOWS.length) {\n                        isIndexing = false;\n                        ui.indexingHint.textContent = \"\";\n                        \n                        fuseEpisodes = new Fuse(globalEpisodeIndex, {\n                            ...fuseOptionsBase,\n                            keys: ['title', 'showTitle']\n                        });\n\n                        if(ui.searchInput.value.trim().length > 0) {\n                             ui.searchInput.dispatchEvent(new Event('input'));\n                        }\n                    }\n                });\n            });\n        }\n\n        \/\/ --- UNIFIED SEARCH LOGIC ---\n        ui.searchInput.addEventListener('input', (e) => {\n            const term = e.target.value.trim();\n            \n            if (term.length > 0) {\n                ui.clearSearchBtn.style.display = 'block';\n                ui.browsingContainer.classList.add('hidden');\n                ui.searchResultsView.classList.add('active');\n\n                ui.searchResultShows.innerHTML = '';\n                const showResults = fuseShows ? fuseShows.search(term) : [];\n                \n                if (showResults.length > 0) {\n                    showResults.forEach(result => {\n                        const show = result.item;\n                        const card = document.createElement('div');\n                        card.className = 'podcast-card';\n                        card.onclick = () => { resetSearch(); openShowEpisodes(show); };\n                        card.innerHTML = `<img decoding=\"async\" src=\"${show.image}\" class=\"pc-img\"><div class=\"pc-title\">${show.title}<\/div>`;\n                        ui.searchResultShows.appendChild(card);\n                    });\n                    ui.searchResultShows.style.display = 'grid';\n                    ui.searchResultShows.previousElementSibling.style.display = 'block'; \n                } else {\n                    ui.searchResultShows.style.display = 'none';\n                    ui.searchResultShows.previousElementSibling.style.display = 'none';\n                }\n\n                ui.searchResultEpisodes.innerHTML = '';\n                let episodeResults = [];\n                if (fuseEpisodes) {\n                    episodeResults = fuseEpisodes.search(term).map(res => res.item);\n                } else {\n                    const lowerTerm = term.toLowerCase();\n                    episodeResults = globalEpisodeIndex.filter(ep => \n                        ep.title.toLowerCase().includes(lowerTerm) || ep.showTitle.toLowerCase().includes(lowerTerm)\n                    );\n                }\n                \n                const resultsToShow = episodeResults.slice(0, 50);\n\n                if (resultsToShow.length > 0) {\n                    renderEpisodesList(resultsToShow, CONFIG.defaultCover, \"Recherche\", ui.searchResultEpisodes, false); \n                    ui.searchResultEpisodes.style.display = 'block';\n                    ui.searchResultEpisodes.previousElementSibling.style.display = 'block';\n                } else {\n                    ui.searchResultEpisodes.style.display = 'none';\n                    ui.searchResultEpisodes.previousElementSibling.style.display = 'none';\n                }\n\n                if (showResults.length === 0 && resultsToShow.length === 0) {\n                        ui.searchNoResults.style.display = 'block';\n                } else {\n                        ui.searchNoResults.style.display = 'none';\n                }\n\n            } else {\n                resetSearchUI();\n            }\n        });\n\n        ui.clearSearchBtn.onclick = resetSearch;\n\n        function resetSearch() {\n            ui.searchInput.value = '';\n            resetSearchUI();\n        }\n\n        function resetSearchUI() {\n            ui.clearSearchBtn.style.display = 'none';\n            ui.searchResultsView.classList.remove('active');\n            ui.browsingContainer.classList.remove('hidden');\n        }\n\n        \/\/ --- PROGRESS & VISUALS ---\n        function updateProgress() {\n            if (isPlayingPodcast && audio.duration) {\n                if(!isSeeking) {\n                    const pct = (audio.currentTime \/ audio.duration) * 100;\n                    ui.seekSlider.value = pct;\n                    ui.currTime.textContent = formatTime(audio.currentTime);\n                    ui.totTime.textContent = formatTime(audio.duration);\n                    updateSliderStyle(pct);\n                }\n            } else {\n                ui.currTime.textContent = \"LIVE\";\n                ui.totTime.textContent = \"\";\n            }\n        }\n\n        function updateSliderStyle(value) {\n            ui.seekSlider.style.background = `linear-gradient(to right, var(--primary-color) 0%, var(--primary-color) ${value}%, rgba(255,255,255,0.2) ${value}%, rgba(255,255,255,0.2) 100%)`;\n        }\n\n        \/\/ --- NAV ---\n        const openFs = () => { ui.overlay.classList.add('open'); ui.miniPlayer.style.transform = \"translateX(-50%) translateY(200%)\"; };\n        const closeFs = () => { ui.overlay.classList.remove('open'); ui.miniPlayer.style.transform = \"translateX(-50%) translateY(0)\"; };\n\n        document.getElementById('expandBtn').onclick = (e) => { e.stopPropagation(); openFs(); };\n        ui.miniPlayer.onclick = (e) => { if(!e.target.closest('button')) openFs(); };\n        document.getElementById('closeFsBtn').onclick = closeFs;\n        ui.navLive.onclick = () => {\n            ui.navLive.classList.add('active'); ui.navPodcasts.classList.remove('active');\n            ui.tabLive.classList.add('active'); ui.tabPodcasts.classList.remove('active');\n        };\n        ui.navPodcasts.onclick = () => {\n            ui.navPodcasts.classList.add('active'); ui.navLive.classList.remove('active');\n            ui.tabPodcasts.classList.add('active'); ui.tabLive.classList.remove('active');\n            startGlobalIndexing();\n        };\n        ui.playBtns.forEach(btn => btn.onclick = (e) => { e.stopPropagation(); togglePlay(); });\n        document.getElementById('chatBtn').onclick = () => window.open(CONFIG.chatUrl, '_blank', 'width=360,height=533');\n        document.getElementById('volumeSlider').addEventListener('input', (e) => audio.volume = e.target.value);\n\n        \/\/ INIT\n        ui.miniCover.src = CONFIG.defaultCover;\n        ui.fsCover.src = CONFIG.defaultCover;\n        ui.fsBg.style.backgroundImage = `url('${CONFIG.defaultCover}')`;\n        renderShows();\n        fetchLiveMetadata();\n        \n        audio.volume = 0.5;\n        \n        setInterval(fetchLiveMetadata, 10000);\n    <\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5f21d30 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-id=\"5f21d30\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7d75b09 elementor-widget elementor-widget-html\" data-id=\"7d75b09\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"24\" class=\"elementor elementor-24\">\n\t\t\t\t<div class=\"elementor-element elementor-element-98a4bfd e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-id=\"98a4bfd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d6ea404 elementor-widget elementor-widget-html\" data-id=\"d6ea404\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Happyness Radio - Header Transparent<\/title>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;700;900&display=swap\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\n    <style>\n        \/* Encapsulation totale avec pr\u00e9fixe hr-header- *\/\n        .hr-header-wrapper * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n        .hr-header-wrapper {\n            font-family: 'Inter', sans-serif;\n            width: 100%; \/* EXIGENCE RESPECT\u00c9E : Largeur inchang\u00e9e *\/\n        }\n        .hr-header {\n            padding: 15px 20px;\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            width: 100%; \/* EXIGENCE RESPECT\u00c9E : Largeur inchang\u00e9e *\/\n            position: relative;\n            background-color: transparent; \/* Pr\u00eat pour le transparent *\/\n        }\n        \n        \/* Logo \u00e0 gauche *\/\n        .hr-header-logo {\n            display: flex;\n            align-items: center;\n            gap: 15px; \/* L\u00e9g\u00e8rement augment\u00e9 pour a\u00e9rer *\/\n            margin-left: -30px;\n            margin-top: 0;\n        }\n        .hr-header-logo img {\n            width: 150px;\n            height: auto;\n            transition: transform 0.3s ease;\n        }\n        .hr-header-logo img:hover {\n            transform: scale(1.02); \/* Petit effet de scale au survol du logo *\/\n        }\n        \n        \/* Conteneur de localisation *\/\n        .hr-header-location-container {\n            position: relative;\n            display: flex;\n            align-items: center;\n        }\n        .hr-header-location-text {\n            font-family: 'Inter', sans-serif;\n            font-weight: 700;\n            font-size: 13px;\n            text-transform: uppercase;\n            letter-spacing: 1.5px;\n            color: #c10000;\n            background-color: transparent;\n            border: 2px solid #c10000;\n            border-radius: 50px;\n            padding: 8px 18px;\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);\n        }\n        .hr-header-location-text:hover {\n            background-color: #c10000;\n            color: #ffffff;\n            box-shadow: 0 6px 15px rgba(193, 0, 0, 0.25);\n            transform: translateY(-1px); \/* L\u00e9ger soul\u00e8vement *\/\n        }\n        .hr-header-location-arrow {\n            margin-left: 10px;\n            font-size: 12px;\n            transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);\n        }\n\n        \/* Menu d\u00e9roulant Localisation *\/\n        .hr-header-location-modal {\n            display: none;\n            position: absolute;\n            top: calc(100% + 12px); \/* Un peu plus d'espace *\/\n            left: 0;\n            background-color: #ffffff;\n            border: 1px solid rgba(0,0,0,0.05); \/* Bordure subtile *\/\n            border-radius: 12px;\n            min-width: 140px;\n            z-index: 1000;\n            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); \/* Ombre plus douce et moderne *\/\n            overflow: hidden;\n            opacity: 0;\n            transform: translateY(-10px);\n            transition: opacity 0.3s ease, transform 0.3s ease;\n        }\n        \/* Classe ajout\u00e9e via JS pour l'animation *\/\n        .hr-header-location-modal.show {\n            display: block;\n            opacity: 1;\n            transform: translateY(0);\n        }\n        .hr-header-location-modal-content div {\n            padding: 14px 20px;\n            cursor: pointer;\n            color: #444; \/* Gris tr\u00e8s fonc\u00e9, plus doux que noir pur *\/\n            font-weight: 600;\n            font-size: 13px;\n            text-transform: uppercase;\n            letter-spacing: 1px;\n            transition: background-color 0.2s ease, color 0.2s ease, padding-left 0.2s ease;\n        }\n        .hr-header-location-modal-content div:hover {\n            background-color: #fff5f5;\n            color: #c10000;\n            padding-left: 24px; \/* Petit effet de d\u00e9calage au survol *\/\n        }\n\n        \/* Menu de navigation *\/\n        .hr-header-nav-menu {\n            display: flex;\n            list-style: none;\n            gap: 30px;\n            align-items: center;\n            margin-right: -30px;\n            margin-top: 0;\n        }\n        .hr-header-nav-menu a {\n            text-decoration: none;\n            color: #333;\n            font-weight: 500;\n            font-size: 16px;\n            position: relative; \/* N\u00e9cessaire pour l'animation ::after *\/\n            padding-bottom: 4px;\n            transition: color 0.3s ease;\n        }\n        \n        \/* Animation de soulignement moderne au survol *\/\n        .hr-header-nav-menu a::after {\n            content: '';\n            position: absolute;\n            width: 0;\n            height: 2px;\n            bottom: 0;\n            left: 0;\n            background-color: #c10000;\n            transition: width 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);\n        }\n        .hr-header-nav-menu a:hover {\n            color: #c10000;\n        }\n        .hr-header-nav-menu a:hover::after,\n        .hr-header-nav-menu a.active::after {\n            width: 100%;\n        }\n        .hr-header-nav-menu a.active {\n            color: #c10000;\n            font-weight: 700;\n        }\n\n        \/* Hamburger menu *\/\n        .hr-header-hamburger {\n            display: none;\n            cursor: pointer;\n            font-size: 24px;\n            color: #333;\n            z-index: 1001;\n            transition: color 0.3s ease, transform 0.3s ease;\n        }\n        .hr-header-hamburger:hover {\n            color: #c10000;\n        }\n\n        \/* Tablette *\/\n        @media (min-width: 769px) and (max-width: 1024px) {\n            .hr-header-logo {\n                margin-left: -10px;\n                margin-top: 5px;\n            }\n            .hr-header-nav-menu {\n                margin-right: -10px;\n                margin-top: 5px;\n                gap: 20px; \/* R\u00e9duction de l'espace sur tablette *\/\n            }\n            .hr-header-location-text {\n                padding: 6px 14px;\n                font-size: 12px;\n            }\n        }\n\n        \/* Mobile *\/\n        @media (max-width: 768px) {\n            .hr-header-nav-menu {\n                display: flex; \/* Pr\u00e9paration pour la transition *\/\n                flex-direction: column;\n                position: absolute;\n                top: 75px;\n                right: 20px;\n                background-color: #ffffff;\n                padding: 20px;\n                border-radius: 12px;\n                border: 1px solid rgba(0,0,0,0.05);\n                box-shadow: 0 15px 40px rgba(0, 0, 0, 0.12); \/* Ombre premium *\/\n                z-index: 1000;\n                width: 220px;\n                margin-right: -10px;\n                margin-top: 10px;\n                gap: 15px; \/* Plus a\u00e9r\u00e9 sur mobile *\/\n                \n                \/* Animation d'apparition *\/\n                opacity: 0;\n                visibility: hidden;\n                transform: translateY(-15px);\n                transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;\n            }\n            .hr-header-nav-menu.active {\n                opacity: 1;\n                visibility: visible;\n                transform: translateY(0);\n            }\n            .hr-header-nav-menu li {\n                width: 100%;\n                text-align: left;\n            }\n            .hr-header-nav-menu a::after {\n                display: none; \/* D\u00e9sactive le soulignement anim\u00e9 sur mobile *\/\n            }\n            .hr-header-nav-menu a {\n                display: block;\n                width: 100%;\n            }\n            .hr-header-hamburger {\n                display: block;\n                margin-right: -10px;\n            }\n            .hr-header-logo {\n                margin-left: -10px;\n                margin-top: 10px;\n            }\n            .hr-header-location-text {\n                padding: 6px 12px;\n                font-size: 11px;\n                letter-spacing: 1px;\n            }\n        }\n    <\/style>\n<\/head>\n<body>\n    <div class=\"hr-header-wrapper\">\n        <header class=\"hr-header\">\n            <div class=\"hr-header-logo\">\n                <a href=\"https:\/\/happynessradio.fr\/amiens\">\n                    <img decoding=\"async\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-Happyness-couleurs.webp\" alt=\"Logo Happyness Radio\">\n                <\/a>\n                <div class=\"hr-header-location-container\">\n                    <div class=\"hr-header-location-text\" id=\"hrLocationText\">\n                        <span id=\"hrLocationName\">Amiens<\/span>\n                        <i class=\"fas fa-chevron-right hr-header-location-arrow\"><\/i>\n                    <\/div>\n                    <div id=\"hrLocationModal\" class=\"hr-header-location-modal\">\n                        <div class=\"hr-header-location-modal-content\">\n                            <div id=\"hrAmiensOption\">Amiens<\/div>\n                            <div id=\"hrOiseOption\">Oise<\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div style=\"display: flex; align-items: center;\">\n                <nav>\n                    <ul class=\"hr-header-nav-menu\" id=\"hrNavMenu\">\n                        <li><a href=\"https:\/\/happynessradio.fr\/amiens\/\">Accueil<\/a><\/li>\n                        <li><a href=\"https:\/\/happynessradio.fr\/amiens\/grille-des-programmes\">Programmes<\/a><\/li>\n                        <li><a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\">Podcasts<\/a><\/li>\n                        <li><a href=\"https:\/\/happynessradio.fr\/amiens\/equipe\">\u00c9quipe<\/a><\/li>\n                        <li><a href=\"https:\/\/happynessradio.fr\/amiens\/articles\">\u00c0 la une<\/a><\/li>\n                        <li><a href=\"https:\/\/happynessradio.fr\/amiens\/a-propos\">Votre radio<\/a><\/li>\n                        <li><a href=\"https:\/\/happynessradio.fr\/amiens\/contact\">Contact<\/a><\/li>\n                    <\/ul>\n                <\/nav>\n                <div class=\"hr-header-hamburger\" id=\"hrHamburger\">\n                    <i class=\"fas fa-bars\"><\/i>\n                <\/div>\n            <\/div>\n        <\/header>\n    <\/div>\n\n    <script>\n        \/\/ Gestion du menu d\u00e9roulant de localisation avec animation fluide\n        const hrLocationText = document.getElementById('hrLocationText');\n        const hrLocationModal = document.getElementById('hrLocationModal');\n        const hrLocationArrow = document.querySelector('.hr-header-location-arrow');\n        const hrLocationName = document.getElementById('hrLocationName');\n        \n        hrLocationText.addEventListener('click', (e) => {\n            e.stopPropagation();\n            const isVisible = hrLocationModal.classList.contains('show');\n            \n            if (isVisible) {\n                hrLocationModal.classList.remove('show');\n                setTimeout(() => hrLocationModal.style.display = 'none', 300); \/\/ Attend la fin de la transition\n                hrLocationArrow.style.transform = 'rotate(0deg)';\n            } else {\n                hrLocationModal.style.display = 'block';\n                \/\/ Petit d\u00e9lai pour que le display block s'applique avant la transition d'opacit\u00e9\n                setTimeout(() => hrLocationModal.classList.add('show'), 10);\n                hrLocationArrow.style.transform = 'rotate(90deg)';\n            }\n        });\n\n        \/\/ Redirection et mise \u00e0 jour du texte pour les options de localisation\n        document.getElementById('hrAmiensOption').addEventListener('click', () => {\n            window.location.href = 'https:\/\/happynessradio.fr\/amiens';\n        });\n        document.getElementById('hrOiseOption').addEventListener('click', () => {\n            window.location.href = 'https:\/\/happynessradio.fr\/oise';\n        });\n\n        \/\/ Gestion du menu hamburger avec changement d'ic\u00f4ne\n        const hrHamburger = document.getElementById('hrHamburger');\n        const hrHamburgerIcon = hrHamburger.querySelector('i');\n        const hrNavMenu = document.getElementById('hrNavMenu');\n        \n        hrHamburger.addEventListener('click', () => {\n            hrNavMenu.classList.toggle('active');\n            if (hrNavMenu.classList.contains('active')) {\n                hrHamburgerIcon.classList.remove('fa-bars');\n                hrHamburgerIcon.classList.add('fa-times');\n            } else {\n                hrHamburgerIcon.classList.remove('fa-times');\n                hrHamburgerIcon.classList.add('fa-bars');\n            }\n        });\n\n        \/\/ Fermer les menus si clic en dehors\n        document.addEventListener('click', (e) => {\n            \/\/ Fermeture Modal Localisation\n            if (!hrLocationModal.contains(e.target) && e.target !== hrLocationText && !hrLocationText.contains(e.target)) {\n                hrLocationModal.classList.remove('show');\n                setTimeout(() => hrLocationModal.style.display = 'none', 300);\n                hrLocationArrow.style.transform = 'rotate(0deg)';\n            }\n            \n            \/\/ Fermeture Menu Mobile\n            if (window.innerWidth <= 768 && !hrNavMenu.contains(e.target) && !hrHamburger.contains(e.target)) {\n                hrNavMenu.classList.remove('active');\n                hrHamburgerIcon.classList.remove('fa-times');\n                hrHamburgerIcon.classList.add('fa-bars');\n            }\n        });\n\n        \/\/ D\u00e9tection de la page active (Ton code d'origine optimis\u00e9)\n        document.addEventListener('DOMContentLoaded', function() {\n            const currentPath = window.location.pathname;\n            const navLinks = document.querySelectorAll('.hr-header-nav-menu a');\n\n            navLinks.forEach(link => {\n                const linkPath = link.getAttribute('href').replace('https:\/\/happynessradio.fr\/amiens', '');\n                if ((currentPath.includes(linkPath) && linkPath !== '\/') || \n                    (currentPath === '\/amiens\/' && link.getAttribute('href') === 'https:\/\/happynessradio.fr\/amiens\/')) {\n                    link.classList.add('active');\n                }\n            });\n        });\n    <\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-06f7630 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-id=\"06f7630\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b6aa18a elementor-widget elementor-widget-heading\" data-id=\"b6aa18a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Podcasts<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9c366ff e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-id=\"9c366ff\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-92a3405 elementor-widget elementor-widget-html\" data-id=\"92a3405\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;700;900&display=swap\" rel=\"stylesheet\">\n\n<div class=\"hp-full-widget\">\n    \n    <div class=\"hp-banner-header\">\n        <div class=\"hp-overlay-gradient\"><\/div>\n        <div class=\"hp-header-content\">\n            <img decoding=\"async\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-MAI_1.webp\" alt=\"Logo Le Micro aux Initiatives\" class=\"hp-logo-img\">\n            <div class=\"hp-header-text\">\n                <h2 class=\"hp-show-title\">Le Micro aux Initiatives<\/h2>\n                <p class=\"hp-subtitle\">Cl\u00e9ment, S\u00e9bastien \u2022 En podcast<\/p>\n                \n                <div class=\"hp-description-container\">\n                    <p id=\"hpShowDescription\" class=\"hp-desc-text\">Partons \u00e0 la d\u00e9couverte des initiatives du territoire.<\/p>\n                    <button id=\"hpDescToggle\" class=\"hp-toggle-btn\">\n                        En savoir plus <i class=\"fas fa-chevron-down\"><\/i>\n                    <\/button>\n                <\/div>\n\n                <div class=\"hp-socials-header\">\n                    <a href=\"https:\/\/facebook.com\/happynessamiens\" target=\"_blank\"><i class=\"fab fa-facebook-f\"><\/i><\/a>\n                    <a href=\"https:\/\/instagram.com\/happyness.amiens\/\" target=\"_blank\"><i class=\"fab fa-instagram\"><\/i><\/a>\n                    <a href=\"https:\/\/tiktok.com\/@happyness.amiens\" target=\"_blank\"><i class=\"fab fa-tiktok\"><\/i><\/a>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"hp-body-section\">\n        \n        <div class=\"hp-player-box\">\n            <div class=\"hp-track-visual\">\n                <img decoding=\"async\" id=\"hpMainCover\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Clment-et-Sebastien.webp\" alt=\"Cover Episode\">\n            <\/div>\n            \n            <div class=\"hp-track-data\">\n                <div class=\"hp-meta-top\">\n                    <span class=\"hp-badge\">EN LECTURE<\/span>\n                    <button id=\"hpSpeedBtn\" class=\"hp-btn-opt\">1x<\/button>\n                <\/div>\n                \n                <h3 id=\"hpEpisodeTitle\">Chargement des \u00e9pisodes...<\/h3>\n                \n                <div class=\"hp-progress-wrap\">\n                    <span id=\"hpCurrentTime\">00:00<\/span>\n                    <input type=\"range\" id=\"hpSeekSlider\" value=\"0\" min=\"0\" max=\"100\" disabled>\n                    <span id=\"hpTotalTime\">--:--<\/span>\n                <\/div>\n\n                <div class=\"hp-controls-row\">\n                    <div class=\"hp-main-buttons\">\n                        <button id=\"hpPrevTrackBtn\"><i class=\"fas fa-step-backward\"><\/i><\/button>\n                        \n                        <button id=\"hpRewindBtn\" class=\"hp-skip-btn\">\n                            <i class=\"fas fa-rotate-left\"><\/i>\n                            <span class=\"hp-skip-label\">-10<\/span>\n                        <\/button>\n                        \n                        <button id=\"hpPlayBtn\" class=\"hp-play-circle\"><i class=\"fas fa-play\"><\/i><\/button>\n                        \n                        <button id=\"hpForwardBtn\" class=\"hp-skip-btn\">\n                            <i class=\"fas fa-rotate-right\"><\/i>\n                            <span class=\"hp-skip-label\">+10<\/span>\n                        <\/button>\n\n                        <button id=\"hpNextTrackBtn\"><i class=\"fas fa-step-forward\"><\/i><\/button>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"hp-playlist-box\">\n            <h4>Derniers \u00e9pisodes<\/h4>\n            <ul id=\"hpEpisodeList\"><\/ul>\n            <button id=\"hpLoadMoreBtn\" style=\"display:none;\">Charger plus<\/button>\n        <\/div>\n\n    <\/div>\n\n    <audio id=\"hpAudioElement\" preload=\"none\"><\/audio>\n<\/div>\n\n<style>\n    \/* --- RESET & GLOBAL --- *\/\n    .hp-full-widget {\n        font-family: 'Inter', sans-serif;\n        width: 100%; \n        max-width: 100%; \n        box-sizing: border-box;\n        background-color: #121212;\n        color: #fff;\n        border-radius: 12px;\n        overflow: hidden;\n        margin: 0 auto;\n        border: 1px solid rgba(255,255,255,0.08);\n    }\n    \n    .hp-full-widget *, .hp-full-widget *::before, .hp-full-widget *::after {\n        box-sizing: border-box;\n    }\n\n    \/* --- BANNIERE --- *\/\n    .hp-banner-header {\n        position: relative;\n        \/* IMAGE DE FOND (BANNIERE CLEMENT ET SEBASTIEN) *\/\n        background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Clment-et-Sebastien.webp');\n        background-size: cover;\n        background-position: center 15%; \n        min-height: 280px; \n        display: flex;\n        align-items: flex-end;\n        transition: min-height 0.3s ease;\n        width: 100%;\n    }\n\n    .hp-overlay-gradient {\n        position: absolute; bottom: 0; left: 0; width: 100%; height: 100%;\n        background: linear-gradient(to top, rgba(18,18,18,1) 0%, rgba(18,18,18,0.7) 40%, rgba(0,0,0,0) 100%);\n        z-index: 1;\n    }\n\n    .hp-header-content {\n        position: relative; z-index: 2;\n        padding: 20px 25px; \n        width: 100%;\n        display: flex; align-items: flex-end; gap: 20px;\n    }\n\n    .hp-logo-img { width: 90px; height: auto; border-radius: 8px; flex-shrink: 0; background:rgba(0,0,0,0.2); }\n    \n    .hp-header-text { flex: 1; margin-bottom: 2px; min-width: 0; }\n    \n    .hp-show-title { \n        margin: 0; \n        font-size: 1.8rem; \n        font-weight: 900; \n        line-height: 1.1; \n        text-shadow: none; \n    }\n    .hp-subtitle { margin: 4px 0 8px; color: #ccc; font-size: 0.85rem; font-weight: 500; font-style: italic; }\n\n    \/* ZONE DESCRIPTION *\/\n    .hp-description-container {\n        margin-bottom: 10px; \n        max-width: 650px;\n    }\n    .hp-desc-text {\n        font-size: 0.85rem;\n        color: #bbb;\n        line-height: 1.4;\n        margin: 0 0 8px 0;\n        display: none;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    .hp-desc-text.visible { display: block; opacity: 1; }\n    \n    .hp-toggle-btn {\n        background: transparent !important;\n        border: none; padding: 0;\n        color: #C10000; font-size: 0.8rem; font-weight: 600;\n        cursor: pointer; display: flex; align-items: center; gap: 5px;\n        transition: color 0.2s ease;\n        box-shadow: none !important;\n    }\n    .hp-toggle-btn:hover, .hp-toggle-btn:focus, .hp-toggle-btn:active { \n        background: transparent !important; \n        color: #ffffff; \n        box-shadow: none !important;\n    }\n\n    .hp-socials-header { display: flex; align-items: center; gap: 8px; margin-top: 5px; flex-wrap: wrap; }\n    .hp-socials-header a {\n        display: inline-flex; align-items: center; justify-content: center;\n        width: 30px; height: 30px; background: #C10000; color: white;\n        border-radius: 50%; text-decoration: none; font-size: 14px;\n        transition: 0.3s;\n    }\n    .hp-socials-header a:hover { background: white; color: #C10000; }\n\n    \/* --- LECTEUR --- *\/\n    .hp-body-section { background: #1e1e1e; width: 100%; }\n\n    .hp-player-box { \n        padding: 20px 25px; \n        border-bottom: 1px solid rgba(255,255,255,0.05); \n        display: flex; gap: 20px; align-items: center; \n        width: 100%;\n    }\n    \n    .hp-track-visual img { width: 80px; height: 80px; border-radius: 6px; object-fit: cover; background: #333; flex-shrink: 0; }\n    \n    .hp-track-data { \n        flex: 1; \n        min-width: 0; \n        display: flex; flex-direction: column; justify-content: center; \n    }\n    \n    .hp-meta-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }\n    .hp-badge { font-size: 9px; font-weight: 800; color: #C10000; letter-spacing: 1px; text-transform: uppercase; }\n    \n    .hp-btn-opt { background: transparent; border: 1px solid rgba(255,255,255,0.2); color: #aaa; padding: 2px 6px; font-size: 10px; border-radius: 4px; cursor: pointer; transition: 0.2s; }\n    .hp-btn-opt:hover { border-color: #fff; color: #fff; }\n\n    #hpEpisodeTitle { margin: 0 0 10px; font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 700; max-width: 100%; }\n\n    .hp-progress-wrap { display: flex; align-items: center; gap: 10px; font-size: 10px; color: #888; margin-bottom: 8px; width: 100%; }\n    #hpSeekSlider { flex: 1; height: 3px; border-radius: 2px; -webkit-appearance: none; background: rgba(255,255,255,0.1); cursor: pointer; min-width: 50px; }\n    #hpSeekSlider::-webkit-slider-thumb { -webkit-appearance: none; width: 10px; height: 10px; border-radius: 50%; background: #fff; }\n\n    .hp-controls-row { display: flex; justify-content: center; align-items: center; width: 100%; }\n    \n    .hp-main-buttons { display: flex; align-items: center; gap: 12px; }\n\n    button { background: none; border: none; color: #999; cursor: pointer; font-size: 14px; transition: 0.2s; }\n    button:hover { color: #fff; }\n\n    .hp-skip-btn {\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        gap: 3px;\n        padding: 0 5px;\n    }\n    \n    .hp-skip-btn i { font-size: 14px; }\n\n    .hp-skip-label {\n        font-size: 9px;\n        font-weight: 700;\n        line-height: 1;\n        color: #777;\n        transition: 0.2s;\n    }\n    \n    .hp-skip-btn:hover .hp-skip-label { color: #fff; }\n    \n    .hp-play-circle { \n        width: 40px; height: 40px; background: #fff; border-radius: 50%; color: #C10000; \n        display: flex; align-items: center; justify-content: center; font-size: 16px; \n    }\n    .hp-play-circle:hover { transform: scale(1.05); color: #C10000; }\n\n    \/* --- PLAYLIST --- *\/\n    .hp-playlist-box { padding: 15px 25px; max-height: 250px; overflow-y: auto; background: #181818; width: 100%; }\n    .hp-playlist-box h4 { font-size: 9px; text-transform: uppercase; color: #555; letter-spacing: 1px; margin: 0 0 10px; }\n    \n    #hpEpisodeList { list-style: none; padding: 0; margin: 0; width: 100%; }\n    #hpEpisodeList li { display: flex; align-items: center; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,0.03); cursor: pointer; width: 100%; }\n    #hpEpisodeList li:hover { padding-left: 5px; } \n    #hpEpisodeList li.active-track .hp-li-title { color: #C10000; }\n    \n    .hp-li-img { width: 32px; height: 32px; border-radius: 4px; margin-right: 12px; object-fit: cover; flex-shrink: 0; }\n    .hp-li-info { flex: 1; overflow: hidden; min-width: 0; }\n    .hp-li-title { display: block; font-size: 0.85rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 2px; }\n    .hp-li-date { font-size: 0.7rem; color: #666; }\n    \n    #hpLoadMoreBtn { display: block; margin: 15px auto 0; padding: 8px 20px; background: rgba(255,255,255,0.05); color: #fff; border: none; border-radius: 20px; font-size: 10px; cursor: pointer; transition: 0.3s; }\n    #hpLoadMoreBtn:hover { background: #C10000; }\n\n    \/* --- MOBILE RESPONSIVE --- *\/\n    @media (max-width: 600px) {\n        .hp-banner-header { \n            min-height: 360px; \n            background-position: center 15%; \n        }\n        .hp-header-content { \n            flex-direction: column; \n            align-items: center; \n            text-align: center; \n            padding: 15px; \n            justify-content: flex-end; \n        }\n        \n        .hp-logo-img { width: 80px; margin-bottom: 0; }\n        \n        .hp-show-title { font-size: 1.5rem; }\n        \n        .hp-header-text { \n            width: 100%; \n            display: flex;\n            flex-direction: column;\n            align-items: center;\n        }\n        .hp-description-container { margin: 0 auto 10px; }\n        .hp-socials-header { justify-content: center; margin-top: 10px; }\n\n        .hp-player-box { \n            flex-direction: column; \n            text-align: center; \n            padding: 20px 15px; \n        }\n        \n        .hp-track-display, .hp-track-data, .hp-progress-wrap { width: 100%; }\n        \n        .hp-meta-top { justify-content: center; gap: 10px; margin-bottom: 8px; }\n        \n        .hp-controls-row { flex-wrap: nowrap; justify-content: center; gap: 10px; width: 100%; }\n        .hp-main-buttons { gap: 15px; }\n    }\n<\/style>\n\n<script>\n    document.addEventListener(\"DOMContentLoaded\", function() {\n        \/\/ --- CONFIGURATION SPECIFIQUE MICRO AUX INITIATIVES ---\n        const FEED_URL = \"https:\/\/www.castopod.happynessradio.fr\/@microinitiaves\/feed.xml\";\n        const DEFAULT_IMG = \"https:\/\/happynessradio.fr\/wp-content\/uploads\/2025\/10\/Banniere-Clment-et-Sebastien@3x.webp\";\n        \/\/ ----------------------------------------------------\n        \n        const el = {\n            audio: document.getElementById('hpAudioElement'),\n            cover: document.getElementById('hpMainCover'),\n            epTitle: document.getElementById('hpEpisodeTitle'),\n            playBtn: document.getElementById('hpPlayBtn'),\n            seek: document.getElementById('hpSeekSlider'),\n            curr: document.getElementById('hpCurrentTime'),\n            tot: document.getElementById('hpTotalTime'),\n            list: document.getElementById('hpEpisodeList'),\n            more: document.getElementById('hpLoadMoreBtn'),\n            rw: document.getElementById('hpRewindBtn'),\n            fw: document.getElementById('hpForwardBtn'),\n            prev: document.getElementById('hpPrevTrackBtn'),\n            next: document.getElementById('hpNextTrackBtn'),\n            speed: document.getElementById('hpSpeedBtn'),\n            descText: document.getElementById('hpShowDescription'),\n            descBtn: document.getElementById('hpDescToggle')\n        };\n\n        \/\/ GESTION PRIORIT\u00c9 AUDIO\n        document.body.addEventListener('play', function(e) {\n            if(e.target !== el.audio && !el.audio.paused) {\n                el.audio.pause();\n                uiPlay(false);\n            }\n        }, true);\n\n        function stopAllOtherMedia() {\n            document.querySelectorAll('audio, video').forEach(media => {\n                if (media !== el.audio && !media.paused) {\n                    media.pause();\n                }\n            });\n        }\n\n        let eps = [], displayCount = 0, currentIdx = -1, speedI = 0;\n        const speeds = [1, 1.25, 1.5, 2];\n\n        async function init() {\n            try {\n                let txt = await fetch('https:\/\/corsproxy.io\/?' + encodeURIComponent(FEED_URL)).then(r => r.ok?r.text():null);\n                if(!txt) txt = await fetch('https:\/\/api.allorigins.win\/get?url=' + encodeURIComponent(FEED_URL)).then(r=>r.json()).then(j=>j.contents);\n                \n                if(txt) {\n                    const xml = new DOMParser().parseFromString(txt, \"text\/xml\");\n                    \n                    let chImg = DEFAULT_IMG;\n                    const cNode = xml.querySelector(\"channel > image > url\");\n                    if(cNode) chImg = cNode.textContent;\n\n                    eps = Array.from(xml.querySelectorAll(\"item\")).map(item => {\n                        const enc = item.querySelector(\"enclosure\");\n                        if(!enc) return null;\n                        \n                        let img = chImg;\n                        const itImg = item.getElementsByTagNameNS(\"*\", \"image\")[0];\n                        if(itImg) img = itImg.getAttribute(\"href\");\n\n                        return {\n                            title: item.querySelector(\"title\")?.textContent || \"Sans titre\",\n                            url: enc.getAttribute(\"url\"),\n                            date: new Date(item.querySelector(\"pubDate\").textContent).toLocaleDateString('fr-FR', {day:'numeric',month:'short'}),\n                            img: img\n                        };\n                    }).filter(x=>x);\n\n                    if(eps.length) {\n                        render();\n                        load(0, false);\n                    } else {\n                        el.epTitle.innerText = \"Aucun \u00e9pisode.\";\n                    }\n                }\n            } catch(e){ console.error(e); el.epTitle.innerText = \"Erreur chargement\"; }\n        }\n\n        el.descBtn.onclick = function() {\n            if(el.descText.classList.contains('visible')) {\n                el.descText.classList.remove('visible');\n                el.descBtn.innerHTML = 'En savoir plus <i class=\"fas fa-chevron-down\"><\/i>';\n            } else {\n                el.descText.classList.add('visible');\n                el.descBtn.innerHTML = 'R\u00e9duire <i class=\"fas fa-chevron-up\"><\/i>';\n            }\n        };\n\n        function render() {\n            const batch = eps.slice(displayCount, displayCount + 10);\n            batch.forEach((ep, i) => {\n                const globalIdx = displayCount + i;\n                const li = document.createElement('li');\n                li.id = 'track-' + globalIdx;\n                li.innerHTML = `<img decoding=\"async\" src=\"${ep.img}\" class=\"hp-li-img\"><div class=\"hp-li-info\"><span class=\"hp-li-title\">${ep.title}<\/span><span class=\"hp-li-date\">${ep.date}<\/span><\/div><i class=\"fas fa-play\" style=\"font-size:10px; opacity:0.3;\"><\/i>`;\n                li.onclick = () => load(globalIdx, true);\n                el.list.appendChild(li);\n            });\n            displayCount += batch.length;\n            el.more.style.display = displayCount < eps.length ? 'block' : 'none';\n        }\n\n        function load(idx, play) {\n            if(idx < 0 || idx >= eps.length) return;\n            currentIdx = idx;\n            const ep = eps[idx];\n\n            el.epTitle.innerText = ep.title;\n            el.cover.src = ep.img;\n            \n            document.querySelectorAll('#hpEpisodeList li').forEach(l=>l.classList.remove('active-track'));\n            const active = document.getElementById('track-'+idx);\n            if(active) active.classList.add('active-track');\n\n            if(el.audio.src !== ep.url) {\n                el.audio.src = ep.url;\n                el.seek.disabled = false;\n            }\n            \n            if(play) {\n                stopAllOtherMedia(); \n                el.audio.play().catch(e=>{});\n                uiPlay(true);\n            } else {\n                uiPlay(false);\n            }\n        }\n\n        function uiPlay(isPlaying) {\n            el.playBtn.innerHTML = isPlaying ? '<i class=\"fas fa-pause\"><\/i>' : '<i class=\"fas fa-play\"><\/i>';\n        }\n\n        el.playBtn.onclick = () => { \n            if(el.audio.paused) {\n                stopAllOtherMedia();\n                el.audio.play(); \n                uiPlay(true);\n            } else {\n                el.audio.pause(); \n                uiPlay(false);\n            } \n        };\n        \n        el.audio.ontimeupdate = () => {\n            if(el.audio.duration) {\n                const pct = (el.audio.currentTime\/el.audio.duration)*100;\n                el.seek.value = pct;\n                el.seek.style.background = `linear-gradient(to right, #C10000 0%, #C10000 ${pct}%, rgba(255,255,255,0.1) ${pct}%, rgba(255,255,255,0.1) 100%)`;\n                const f = s => {const m=Math.floor(s\/60), sc=Math.floor(s%60); return `${m}:${sc<10?'0':''}${sc}`;};\n                el.curr.innerText = f(el.audio.currentTime);\n                el.tot.innerText = f(el.audio.duration);\n            }\n        };\n        el.seek.oninput = () => { if(el.audio.duration) el.audio.currentTime = (el.seek.value\/100)*el.audio.duration; };\n        el.audio.onended = () => uiPlay(false);\n        el.more.onclick = render;\n        \n        el.rw.onclick = () => el.audio.currentTime -= 10;\n        el.fw.onclick = () => el.audio.currentTime += 10;\n        el.prev.onclick = () => load(currentIdx - 1, true);\n        el.next.onclick = () => load(currentIdx + 1, true);\n        el.speed.onclick = () => {\n            speedI = (speedI + 1) % speeds.length;\n            el.audio.playbackRate = speeds[speedI];\n            el.speed.innerText = speeds[speedI] + 'x';\n        };\n\n        init();\n    });\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-82a462f e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-id=\"82a462f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5248b42 elementor-widget elementor-widget-heading\" data-id=\"5248b42\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00c9coutez d'autres podcasts Happyness Originals<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c1bfe47 elementor-widget elementor-widget-html\" data-id=\"c1bfe47\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>HR Carousel - \u00c9missions S\u00e9lectionn\u00e9es<\/title>\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0-beta3\/css\/all.min.css\">\n    <style>\n        \/* CONFIGURATION ET PERFORMANCE *\/\n        .hr-carousel-section { margin-bottom: 30px; contain: content; }\n        .hr-carousel-container { position: relative; width: 100%; max-width: 1200px; margin: 0 auto; overflow: hidden; touch-action: pan-y; }\n        \n        .hr-carousel-track { \n            display: flex; \n            transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94); \n            gap: 15px; \n            width: 100%; \n            will-change: transform; \n        }\n\n        .hr-carousel-slide { flex: 0 0 30%; min-width: 0; cursor: grab; user-select: none; border-radius: 15px; overflow: hidden; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }\n        .hr-carousel-slide:active { cursor: grabbing; }\n\n        .hr-carousel-slide-content { \n            position: relative; height: 400px; padding: 20px; \n            display: flex; flex-direction: column; justify-content: flex-end;\n            background-size: cover; background-position: center 15%; color: #fff;\n        }\n        .hr-carousel-slide-content::before { content: \"\"; position: absolute; inset: 0; background: linear-gradient(to bottom, transparent, rgba(0,0,0,0.9)); z-index: 1; }\n\n        .hr-carousel-slide-logo { width: 60px; height: auto; margin-bottom: 8px; z-index: 2; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5)); }\n        .hr-carousel-slide-title { margin: 0 0 5px; font-size: 1.4rem; font-weight: 900; z-index: 2; line-height: 1.1; }\n        .hr-carousel-slide-hosts { margin: 2px 0; font-size: 0.8rem; color: #ccc; font-style: italic; z-index: 2; }\n        .hr-carousel-slide-description { margin: 2px 0 10px; font-size: 0.8rem; font-weight: bold; z-index: 2; }\n\n        \/* BOUTON \u00c9COUTER (Modifi\u00e9) *\/\n        .hr-carousel-slide-listen-button { \n            position: relative; z-index: 2; padding: 10px 20px;\n            background-color: #c10000; color: #fff; border-radius: 25px;\n            font-weight: 800; font-size: 0.75rem; text-decoration: none;\n            text-transform: uppercase; \/* Majuscules *\/\n            letter-spacing: 2px;      \/* Espacement des lettres *\/\n            transition: all 0.2s ease; display: inline-block; width: fit-content;\n        }\n        .hr-carousel-slide-listen-button:hover { background-color: #fff; color: #c10000; transform: translateY(-2px); }\n\n        \/* NAVIGATION *\/\n        .hr-carousel-nav-button { \n            position: absolute; top: 50%; transform: translateY(-50%);\n            background: rgba(255, 255, 255, 0.9); border: none; width: 45px; height: 45px; \n            border-radius: 50%; display: flex; align-items: center; justify-content: center; \n            cursor: pointer; z-index: 10; transition: all 0.2s; box-shadow: 0 2px 10px rgba(0,0,0,0.1);\n        }\n        .hr-carousel-nav-button:hover { background: #C10000; color: #fff; }\n        #hrCarouselPrevButton { left: 10px; }\n        #hrCarouselNextButton { right: 10px; }\n\n        \/* RESPONSIVE *\/\n        @media (max-width: 1024px) { .hr-carousel-slide { flex: 0 0 calc(50% - 10px); } }\n        @media (max-width: 767px) { \n            .hr-carousel-slide { flex: 0 0 85%; } \n            .hr-carousel-nav-button { display: none; }\n            .hr-carousel-track { gap: 10px; }\n        }\n        @media (min-width: 1401px) { .hr-carousel-slide { flex: 0 0 23.5%; } }\n    <\/style>\n<\/head>\n<body>\n\n    <div class=\"hr-carousel-section\">\n        <div class=\"hr-carousel-container\">\n            <div class=\"hr-carousel-track\" id=\"hrCarouselTrack\">\n                <div class=\"hr-carousel-slide\">\n                    <div class=\"hr-carousel-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Julien.webp');\">\n                        <img decoding=\"async\" class=\"hr-carousel-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-TPA.webp\" alt=\"Logo\">\n                        <h2 class=\"hr-carousel-slide-title\">Temps Additionnel<\/h2>\n                        <p class=\"hr-carousel-slide-hosts\">Julien G.<\/p>\n                        <p class=\"hr-carousel-slide-description\">L'actualit\u00e9 du foot samarien.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/temps-additionnel\/\" class=\"hr-carousel-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"hr-carousel-slide\">\n                    <div class=\"hr-carousel-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-JDR.webp');\">\n                        <img decoding=\"async\" class=\"hr-carousel-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-JDR.webp\" alt=\"Logo\">\n                        <h2 class=\"hr-carousel-slide-title\">Les Chroniques du JDR<\/h2>\n                        <p class=\"hr-carousel-slide-hosts\">Laurent, Damien<\/p>\n                        <p class=\"hr-carousel-slide-description\">L'aventure fantastique.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/les-chroniques-du-jdr\/\" class=\"hr-carousel-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"hr-carousel-slide\">\n                    <div class=\"hr-carousel-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Mehdiya-V2.webp');\">\n                        <img decoding=\"async\" class=\"hr-carousel-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-SEC.webp\" alt=\"Logo\">\n                        <h2 class=\"hr-carousel-slide-title\">Saveurs & Confidences<\/h2>\n                        <p class=\"hr-carousel-slide-hosts\">Mehdiya<\/p>\n                        <p class=\"hr-carousel-slide-description\">Rencontre des chefs.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/saveurs-et-confidences\/\" class=\"hr-carousel-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"hr-carousel-slide\">\n                    <div class=\"hr-carousel-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Sophie-Bleu.webp');\">\n                        <img decoding=\"async\" class=\"hr-carousel-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-PES.webp\" alt=\"Logo\">\n                        <h2 class=\"hr-carousel-slide-title\">La Plume et le Sabre<\/h2>\n                        <p class=\"hr-carousel-slide-hosts\">Sophie<\/p>\n                        <p class=\"hr-carousel-slide-description\">Histoire & Litt\u00e9rature.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/la-plume-et-le-sabre\/\" class=\"hr-carousel-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n            <\/div>\n            \n            <button class=\"hr-carousel-nav-button\" id=\"hrCarouselPrevButton\"><i class=\"fas fa-chevron-left\"><\/i><\/button>\n            <button class=\"hr-carousel-nav-button\" id=\"hrCarouselNextButton\"><i class=\"fas fa-chevron-right\"><\/i><\/button>\n        <\/div>\n    <\/div>\n\n    <script>\n        (function() {\n            const track = document.getElementById('hrCarouselTrack');\n            const prevBtn = document.getElementById('hrCarouselPrevButton');\n            const nextBtn = document.getElementById('hrCarouselNextButton');\n            const slides = track.children;\n            \n            let currentIndex = 0;\n            let isDragging = false, startX = 0, currentTranslate = 0;\n\n            function updateUI() {\n                const gap = window.innerWidth <= 767 ? 10 : 15;\n                const slideWidth = slides[0].offsetWidth + gap;\n                const visibleSlides = Math.round(track.parentElement.offsetWidth \/ slideWidth);\n                const maxIndex = slides.length - visibleSlides;\n\n                currentIndex = Math.max(0, Math.min(currentIndex, maxIndex));\n                currentTranslate = -currentIndex * slideWidth;\n                \n                track.style.transform = `translateX(${currentTranslate}px)`;\n                prevBtn.style.display = currentIndex > 0 ? 'flex' : 'none';\n                nextBtn.style.display = currentIndex < maxIndex ? 'flex' : 'none';\n            }\n\n            const move = (dir) => { currentIndex += dir; updateUI(); };\n\n            \/\/ \u00c9v\u00e9nements de navigation\n            prevBtn.onclick = () => move(-1);\n            nextBtn.onclick = () => move(1);\n\n            \/\/ Gestion Drag unifi\u00e9e\n            const onStart = e => {\n                isDragging = true;\n                startX = (e.pageX || e.touches[0].pageX);\n                track.style.transition = 'none';\n            };\n\n            const onMove = e => {\n                if (!isDragging) return;\n                const x = (e.pageX || e.touches[0].pageX);\n                const walk = x - startX;\n                track.style.transform = `translateX(${currentTranslate + walk}px)`;\n            };\n\n            const onEnd = e => {\n                if (!isDragging) return;\n                isDragging = false;\n                track.style.transition = '';\n                const endX = (e.pageX || e.changedTouches[0].pageX);\n                const diff = startX - endX;\n                if (Math.abs(diff) > 50) move(diff > 0 ? 1 : -1);\n                else updateUI();\n            };\n\n            track.addEventListener('mousedown', onStart);\n            track.addEventListener('touchstart', onStart, {passive: true});\n            window.addEventListener('mousemove', onMove);\n            track.addEventListener('touchmove', onMove, {passive: true});\n            window.addEventListener('mouseup', onEnd);\n            track.addEventListener('touchend', onEnd);\n            \n            window.addEventListener('resize', () => requestAnimationFrame(updateUI));\n            \n            \/\/ Initialisation\n            setTimeout(updateUI, 100);\n        })();\n    <\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-077f477 elementor-widget elementor-widget-heading\" data-id=\"077f477\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00c0 d\u00e9couvrir \u00e9galement<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-80a3d55 elementor-widget elementor-widget-html\" data-id=\"80a3d55\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2441\" class=\"elementor elementor-2441\">\n\t\t\t\t<div class=\"elementor-element elementor-element-31dcf9a e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-id=\"31dcf9a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6756b17 elementor-widget elementor-widget-html\" data-id=\"6756b17\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Carousel des \u00c9missions Happyness<\/title>\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0-beta3\/css\/all.min.css\">\n    <style>\n        .carousel-section { margin-bottom: 30px; contain: content; }\n        .swiper-container {\n            position: relative;\n            width: 100%;\n            max-width: 1200px;\n            margin: 0 auto;\n            overflow: hidden;\n            touch-action: pan-y;\n            padding-right: 60px;\n        }\n        .swiper-track {\n            display: flex;\n            transition: transform 0.2s ease-out;\n            gap: 15px;\n            width: 100%;\n            will-change: transform;\n        }\n        .swiper-slide {\n            flex: 0 0 30%;\n            min-width: 0;\n            cursor: grab;\n            user-select: none;\n            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n            border-radius: 15px;\n            overflow: hidden;\n        }\n        .swiper-slide-content {\n            position: relative;\n            display: flex;\n            flex-direction: column;\n            align-items: flex-start;\n            justify-content: flex-end;\n            height: 400px;\n            padding: 15px;\n            background-color: #111;\n            background-size: cover;\n            background-position: center 15%;\n            color: #fff;\n        }\n        .swiper-slide-content::before {\n            content: \"\";\n            position: absolute;\n            inset: 0;\n            background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.9));\n            z-index: 1;\n        }\n        .swiper-slide-logo { width: 60px; height: auto; margin-bottom: 8px; z-index: 2; }\n        .swiper-slide-title { margin: 0 0 5px; font-size: 1.3rem; font-weight: 900; z-index: 2; line-height: 1.1; }\n        .swiper-slide-hosts { margin: 2px 0; font-size: 0.8rem; color: #ccc; font-style: italic; z-index: 2; }\n        .swiper-slide-description { margin: 2px 0 10px; font-size: 0.8rem; font-weight: bold; z-index: 2; display: block; line-height: 1.3; }\n\n        \/* BOUTON \u00c9COUTER HARMONIS\u00c9 *\/\n        .swiper-slide-listen-button {\n            position: relative;\n            z-index: 2;\n            padding: 10px 22px;\n            background-color: #c10000;\n            color: #fff;\n            border: none;\n            border-radius: 25px;\n            font-weight: 800;\n            font-size: 0.75rem;\n            text-decoration: none;\n            text-transform: uppercase;\n            letter-spacing: 2px;\n            display: inline-block;\n            transition: all 0.2s ease;\n        }\n        .swiper-slide-listen-button:hover { background-color: #fff; color: #c10000; transform: translateY(-2px); }\n\n        .swiper-nav-button {\n            position: absolute;\n            top: 50%;\n            transform: translateY(-50%);\n            background-color: rgba(255, 255, 255, 0.8);\n            border: none;\n            width: 45px;\n            height: 45px;\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            cursor: pointer;\n            z-index: 10;\n            transition: all 0.2s ease;\n        }\n        .swiper-nav-button:hover { background-color: #C10000; color: #fff; }\n        #swiperPrevButton { left: 10px; }\n        #swiperNextButton { right: 10px; }\n\n        @media (max-width: 1024px) { .swiper-slide { flex: 0 0 calc(50% - 10px); } }\n        @media (max-width: 767px) { \n            .swiper-slide { flex: 0 0 85%; } \n            .swiper-nav-button { display: none; }\n            .swiper-container { padding-right: 0; }\n        }\n    <\/style>\n<\/head>\n<body>\n\n    <div class=\"carousel-section\">\n        <div class=\"swiper-container\">\n            <div class=\"swiper-track\" id=\"swiperTrack\">\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Kevin.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-LRH.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Le R\u00e9veil Happyness<\/h2>\n                        <p class=\"swiper-slide-hosts\">K\u00e9vin P.<\/p>\n                        <p class=\"swiper-slide-description\">Agenda local, chroniques et musique pour bien commencer votre journ\u00e9e.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/le-reveil-happyness\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-QDN-Amiens-V2.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-QDN-Amiens.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Quoi d'neuf ? Amiens<\/h2>\n                        <p class=\"swiper-slide-hosts\">Am\u00e9lie, Lo\u00efc, J\u00e9r\u00e9my<\/p>\n                        <p class=\"swiper-slide-description\">Toute l'actualit\u00e9 et les \u00e9v\u00e9nements \u00e0 venir dans l'Ami\u00e9nois.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/quoi-d-neuf-amiens\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2026\/01\/Banniere-Sandrine.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-QDN-Compiegne.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Quoi d'neuf ? Compi\u00e8gne<\/h2>\n                        <p class=\"swiper-slide-hosts\"> Sandrine, Aur\u00e9lie, Jean-Luc<\/p>\n                        <p class=\"swiper-slide-description\">Toute l'actualit\u00e9 et les \u00e9v\u00e9nements \u00e0 venir dans le Compi\u00e8gnois.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/quoi-d-neuf-compiegne\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-QDN-Chambly.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-QDN-Chambly_1.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Quoi d'neuf ? Chambly<\/h2>\n                        <p class=\"swiper-slide-hosts\">K\u00e9vin S., M\u00e9lany<\/p>\n                        <p class=\"swiper-slide-description\">Toute l'actualit\u00e9 et les \u00e9v\u00e9nements \u00e0 venir \u00e0 Chambly.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/quoi-d-neuf-chambly\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2026\/02\/Banniere-Celia.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-QDN-Beauvais_1.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Quoi d'neuf ? Beauvais<\/h2>\n                        <p class=\"swiper-slide-hosts\">C\u00e9lia<\/p>\n                        <p class=\"swiper-slide-description\">Toute l'actualit\u00e9 et les \u00e9v\u00e9nements \u00e0 venir dans le Beauvaisis.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/quoi-d-neuf-beauvais\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Julien.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-TPA.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Temps Additionnel<\/h2>\n                        <p class=\"swiper-slide-hosts\">Julien G.<\/p>\n                        <p class=\"swiper-slide-description\">Toute l'actualit\u00e9 du foot samarien.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/temps-additionnel\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Marie-1.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-SAM.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Sam'Culture<\/h2>\n                        <p class=\"swiper-slide-hosts\">Marie<\/p>\n                        <p class=\"swiper-slide-description\">D\u00e9couvrez les acteurs de la culture dans la Somme.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/sam-culture\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Clement.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-NEP.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Nos Entrepreneurs avec BGE Picardie<\/h2>\n                        <p class=\"swiper-slide-hosts\">Cl\u00e9ment<\/p>\n                        <p class=\"swiper-slide-description\">D\u00e9couvrez l'histoire de nos entrepreneurs locaux et la cr\u00e9ation de leur entreprise.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/nos-entrepreneurs\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Isabelle.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-CVC.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">\u00c7a vient du c\u0153ur<\/h2>\n                        <p class=\"swiper-slide-hosts\">Isabelle<\/p>\n                        <p class=\"swiper-slide-description\">Partez \u00e0 la rencontre des associations dans la Somme et dans l'Oise.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/ca-vient-du-coeur\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Mehdiya-V2.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-SEC.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Saveurs & Confidences<\/h2>\n                        <p class=\"swiper-slide-hosts\">Mehdiya<\/p>\n                        <p class=\"swiper-slide-description\">Partez \u00e0 la rencontre des chefs du territoire et d\u00e9couvrez leurs id\u00e9es recettes.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/saveurs-et-confidences\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Clment-et-Sebastien.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-MAI_1.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Le Micro aux initiatives<\/h2>\n                        <p class=\"swiper-slide-hosts\">S\u00e9bastien, Cl\u00e9ment<\/p>\n                        <p class=\"swiper-slide-description\">Initiatives du territoire.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/le-micro-aux-initiatives\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Jief.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-RAJ.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Riff & Jack<\/h2>\n                        <p class=\"swiper-slide-hosts\">Jief<\/p>\n                        <p class=\"swiper-slide-description\">Les musiciens locaux sortent de leur grenier toutes les semaines.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/riff-and-jack\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-ADG_1.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-ADG.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">L'Antre du Geek<\/h2>\n                        <p class=\"swiper-slide-hosts\">Damien<\/p>\n                        <p class=\"swiper-slide-description\">Toute l'actualit\u00e9 geek, pop culture et jeux vid\u00e9os de la semaine.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/lantre-du-geek\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-REV_1.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-REV.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Rencontre & Vous<\/h2>\n                        <p class=\"swiper-slide-hosts\">Sandrine, Florian<\/p>\n                        <p class=\"swiper-slide-description\">Parlons amour et s\u00e9duction avec votre love coach.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/rencontre-et-vous\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-JDR.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-JDR.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Les Chroniques du JDR<\/h2>\n                        <p class=\"swiper-slide-hosts\">Laurent, Damien<\/p>\n                        <p class=\"swiper-slide-description\">Plongez dans l'aventure fantastique de votre jeu de r\u00f4le.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/les-chroniques-du-jdr\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Robin.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-PNT.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">point.<\/h2>\n                        <p class=\"swiper-slide-hosts\">Robin, Gaby<\/p>\n                        <p class=\"swiper-slide-description\">L'\u00e9mission qui vous donne la parole.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/point\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Jean-Pierre.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-CAC.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Classics and cov'<\/h2>\n                        <p class=\"swiper-slide-hosts\">Jean-Pierre<\/p>\n                        <p class=\"swiper-slide-description\">Classics, d\u00e9couvertes et reprises : votre playlist immanquable du mardi.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/classics-and-cov\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-CST.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-CST.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Cin\u00e9matique Sans Toc<\/h2>\n                        <p class=\"swiper-slide-hosts\">Jean-Luc, Jean-Claude<\/p>\n                        <p class=\"swiper-slide-description\">Toute l'actualit\u00e9 des sorties cin\u00e9 et s\u00e9ries.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/cinematique-sans-toc\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Alex.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-LPA.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">La Playlist d'Alex<\/h2>\n                        <p class=\"swiper-slide-hosts\">Alex<\/p>\n                        <p class=\"swiper-slide-description\">Toute l'actualit\u00e9 musicale de la semaine.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/la-playlist-d-alex\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-LIF.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-LIF.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">100% Lifestyle<\/h2>\n                        <p class=\"swiper-slide-hosts\">Anne-Claire, Yann<\/p>\n                        <p class=\"swiper-slide-description\">Votre rendez-vous lifestyle<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/100-lifestyle\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Greg.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-PEL.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Pel\u00ed Clap<\/h2>\n                        <p class=\"swiper-slide-hosts\">Greg<\/p>\n                        <p class=\"swiper-slide-description\">Parlons cin\u00e9ma et replongeons dans son histoire.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/peli-clap\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2026\/03\/Banniere-Kevin-HIP.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2026\/03\/Logo-HIP.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Histoires Parall\u00e8les<\/h2>\n                        <p class=\"swiper-slide-hosts\">Helfsith<\/p>\n                        <p class=\"swiper-slide-description\">Les histoires de la pop cultue vues par les personages secondaires.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/oise\/podcasts\/point\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Pauline.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-RON.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Recueils Oniriques<\/h2>\n                        <p class=\"swiper-slide-hosts\">Pauline<\/p>\n                        <p class=\"swiper-slide-description\">Des histoires qui vont vous faire r\u00eaver.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/recueils-oniriques\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Dan.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-STB.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Stars Box<\/h2>\n                        <p class=\"swiper-slide-hosts\">Dan<\/p>\n                        <p class=\"swiper-slide-description\">Les hits d'aujourd'hui, les tubes d'hier, les sons oubli\u00e9s.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/stars-box\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2026\/02\/Banniere-Dario.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2026\/02\/RNY-Logo.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Radio New York<\/h2>\n                        <p class=\"swiper-slide-hosts\">Dario<\/p>\n                        <p class=\"swiper-slide-description\">L'\u00e9mission culte des sons venus tout droit de New York.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/radio-new-york\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Sophie-Bleu.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-PES.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">La Plume et le Sabre<\/h2>\n                        <p class=\"swiper-slide-hosts\">Sophie<\/p>\n                        <p class=\"swiper-slide-description\">Quand litt\u00e9rature et histoire se rencontrent.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/la-plume-et-le-sabre\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-DJ-Jos.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-JOS.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">DJ Jos Radio Show<\/h2>\n                        <p class=\"swiper-slide-hosts\">DJ Jos<\/p>\n                        <p class=\"swiper-slide-description\">DJ Sets et interviews avec DJ Jos et ses invit\u00e9s au contr\u00f4le du son.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/dj-jos-radio-show\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-DJ-Jos_1.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-NCS.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">Night Club Session<\/h2>\n                        <p class=\"swiper-slide-hosts\">St\u00e9phane<\/p>\n                        <p class=\"swiper-slide-description\">Les meilleurs mix de vos DJ locaux avec la SDMEA.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/night-club-session\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n                <div class=\"swiper-slide\">\n                    <div class=\"swiper-slide-content\" style=\"background-image: url('https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Banniere-Peter-King.webp');\">\n                        <img decoding=\"async\" class=\"swiper-slide-logo\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-FMP.webp\" alt=\"Logo\">\n                        <h2 class=\"swiper-slide-title\">French Mix Party<\/h2>\n                        <p class=\"swiper-slide-hosts\">Peter King<\/p>\n                        <p class=\"swiper-slide-description\">Souvenirs, classiques et d\u00e9couverte, la playlist chansons fran\u00e7aises mix\u00e9e.<\/p>\n                        <a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/french-mix-party\/\" class=\"swiper-slide-listen-button\">\u00c9couter<\/a>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class=\"swiper-nav\">\n                <button class=\"swiper-nav-button\" id=\"swiperPrevButton\"><i class=\"fas fa-chevron-left\"><\/i><\/button>\n                <button class=\"swiper-nav-button\" id=\"swiperNextButton\"><i class=\"fas fa-chevron-right\"><\/i><\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        (function() {\n            const track = document.getElementById('swiperTrack');\n            const prevBtn = document.getElementById('swiperPrevButton');\n            const nextBtn = document.getElementById('swiperNextButton');\n            \n            \/\/ Initialisation des donn\u00e9es des slides\n            const slides = Array.from(track.querySelectorAll('.swiper-slide'));\n            \n            \/\/ Fonction de m\u00e9lange\n            function shuffle(array) {\n                for (let i = array.length - 1; i > 0; i--) {\n                    const j = Math.floor(Math.random() * (i + 1));\n                    [array[i], array[j]] = [array[j], array[i]];\n                }\n                return array;\n            }\n\n            \/\/ R\u00e9-organiser le DOM avec les slides m\u00e9lang\u00e9es\n            const shuffledSlides = shuffle(slides);\n            track.innerHTML = '';\n            shuffledSlides.forEach(slide => track.appendChild(slide));\n\n            let currentIndex = 0;\n\n            function updateUI() {\n                const gap = 15;\n                const slideWidth = track.querySelector('.swiper-slide').offsetWidth + gap;\n                const visibleSlides = window.innerWidth <= 767 ? 1 : (window.innerWidth <= 1024 ? 2 : 3);\n                const maxIndex = shuffledSlides.length - visibleSlides;\n\n                currentIndex = Math.max(0, Math.min(currentIndex, maxIndex));\n                track.style.transform = `translateX(-${currentIndex * slideWidth}px)`;\n                \n                prevBtn.style.display = currentIndex > 0 ? 'flex' : 'none';\n                nextBtn.style.display = currentIndex < maxIndex ? 'flex' : 'none';\n            }\n\n            prevBtn.onclick = () => { currentIndex--; updateUI(); };\n            nextBtn.onclick = () => { currentIndex++; updateUI(); };\n\n            \/\/ Drag simple\n            let isDragging = false, startX = 0;\n            track.onmousedown = e => { \n                isDragging = true; \n                startX = e.pageX; \n                track.style.transition = 'none'; \n            };\n            window.onmouseup = e => { \n                if(!isDragging) return; \n                isDragging = false; \n                track.style.transition = 'transform 0.2s ease-out';\n                const diff = startX - e.pageX;\n                if(Math.abs(diff) > 50) currentIndex += (diff > 0 ? 1 : -1);\n                updateUI();\n            };\n\n            \/\/ Touch events\n            track.ontouchstart = e => { \n                isDragging = true; \n                startX = e.touches[0].pageX; \n                track.style.transition = 'none'; \n            };\n            track.ontouchend = e => {\n                if(!isDragging) return;\n                isDragging = false;\n                track.style.transition = 'transform 0.2s ease-out';\n                const diff = startX - e.changedTouches[0].pageX;\n                if(Math.abs(diff) > 50) currentIndex += (diff > 0 ? 1 : -1);\n                updateUI();\n            };\n\n            window.addEventListener('resize', updateUI);\n            updateUI();\n        })();\n    <\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e76a9da elementor-widget elementor-widget-html\" data-id=\"e76a9da\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Carrousel Personnalis\u00e9<\/title>\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0-beta3\/css\/all.min.css\">\n    <style>\n        \/* Style pour le conteneur du carrousel *\/\n        .carousel-wrapper-17 {\n            position: relative;\n            width: 100%;\n            overflow: hidden;\n        }\n\n        .custom-carousel-container-17 {\n            display: flex;\n            overflow-x: auto;\n            scroll-snap-type: x mandatory;\n            scrollbar-width: none; \/* Firefox *\/\n            -ms-overflow-style: none;  \/* Internet Explorer 10+ *\/\n            padding: 20px 0;\n        }\n\n        .custom-carousel-container-17::-webkit-scrollbar {\n            display: none;  \/* Safari and Chrome *\/\n        }\n\n        \/* Style pour les \u00e9l\u00e9ments du carrousel *\/\n        .custom-carousel-item-17 {\n            position: relative;\n            flex: 0 0 300px; \/* Largeur fixe *\/\n            margin-right: 10px; \/* Espace entre les \u00e9l\u00e9ments *\/\n            text-align: left; \/* Alignement \u00e0 gauche *\/\n            scroll-snap-align: start;\n            background: transparent; \/* Pas de fond de texte *\/\n            border-radius: 10px;\n            overflow: hidden;\n        }\n\n        .custom-carousel-item-17 img {\n            width: 100%;\n            height: 150px; \/* Hauteur fixe *\/\n            object-fit: cover;\n            border-radius: 6px; \/* Arrondir tous les coins *\/\n        }\n\n        .custom-carousel-item-17 .custom-title {\n            font-family: 'Inter', sans-serif;\n            font-weight: bold;\n            font-size: 0.8rem; \/* Texte plus petit *\/\n            color: #000;\n            margin-top: 5px; \/* R\u00e9duction de l'interligne *\/\n            padding: 0 0px;\n            text-align: left; \/* Alignement \u00e0 gauche *\/\n        }\n\n        .custom-carousel-item-17 .custom-category {\n            font-family: 'Inter', sans-serif;\n            font-weight: bold;\n            font-size: 0.7rem; \/* Texte plus petit *\/\n            color: #888;\n            margin-top: 0px; \/* R\u00e9duction de l'interligne *\/\n            padding: 0 0px;\n            text-align: left; \/* Alignement \u00e0 gauche *\/\n        }\n\n        \/* Style pour les boutons de navigation *\/\n        .carousel-nav-17 {\n            position: absolute;\n            top: 50%;\n            transform: translateY(-50%);\n            background-color: rgba(0, 0, 0, 0.5);\n            color: white;\n            border: none;\n            border-radius: 50%;\n            width: 40px;\n            height: 40px;\n            cursor: pointer;\n            z-index: 10;\n        }\n\n        .carousel-nav-17.left {\n            left: 10px;\n        }\n\n        .carousel-nav-17.right {\n            right: 10px;\n        }\n\n        \/* Style pour les titres des carrousels *\/\n        .carousel-title {\n            font-family: 'Inter', sans-serif;\n            font-size: 18px;\n            font-weight: 900;\n            color: #000; \/* Noir *\/\n            text-align: left; \/* Alignement \u00e0 gauche *\/\n            margin-bottom: -10px;\n        }\n\n        \/* Responsive adjustments *\/\n        @media (max-width: 1024px) {\n            .carousel-nav-17 {\n                display: none !important; \/* Masquer les fl\u00e8ches sur tablette et mobile *\/\n            }\n        }\n    <\/style>\n<\/head>\n<body>\n    <!-- Titre pour Carrousel 17 -->\n    <h2 class=\"carousel-title\">Comment \u00e9couter ailleurs Le Micro aux Initiatives ? <\/h2>\n\n    <!-- Carrousel 17 -->\n    <div class=\"carousel-wrapper-17\">\n        <button class=\"carousel-nav-17 left\" onclick=\"scrollCarousel17(-1)\">&#10094;<\/button>\n        <div class=\"custom-carousel-container-17\">\n            <!-- \u00c9mission 1 -->\n            <div class=\"custom-carousel-item-17\">\n                <a href=\"https:\/\/music.amazon.fr\/podcasts\/dec9408e-6ccd-4242-8523-e90d6029a455\/le-micro-aux-initiatives\" target=\"_self\">\n                    <img decoding=\"async\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Bandeau-Amazon-Music.webp\" alt=\"\u00c9mission 1\">\n                <\/a>\n                <div class=\"custom-title\">Sur Amazon Music<\/div>\n                <div class=\"custom-category\">Sur l'application<\/div>\n            <\/div>\n            <!-- \u00c9mission 2 -->\n            <div class=\"custom-carousel-item-17\">\n                <a href=\"https:\/\/podcasts.apple.com\/us\/podcast\/le-micro-aux-initiatives\/id1838412169\" target=\"_self\">\n                    <img decoding=\"async\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Bandeau-Apple-Podcasts.webp\" alt=\"\u00c9mission 2\">\n                <\/a>\n                <div class=\"custom-title\">Sur Apple Podcasts<\/div>\n                <div class=\"custom-category\">Sur l'application<\/div>\n            <\/div>\n            <!-- \u00c9mission 3 -->\n            <div class=\"custom-carousel-item-17\">\n                <a href=\"https:\/\/deezer.com\/show\/1002267521\" target=\"_self\">\n                    <img decoding=\"async\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Bandeau-Deezer.webp\" alt=\"\u00c9mission 3\">\n                <\/a>\n                <div class=\"custom-title\">Sur Deezer<\/div>\n                <div class=\"custom-category\">Sur l'application<\/div>\n            <\/div>\n            <!-- \u00c9mission 4 -->\n            <div class=\"custom-carousel-item-17\">\n                <a href=\"https:\/\/open.spotify.com\/show\/7pPo6m1nxaQVqCX6c81tji\" target=\"_self\">\n                    <img decoding=\"async\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Bandeau-Spotify.webp\" alt=\"\u00c9mission 4\">\n                <\/a>\n                <div class=\"custom-title\">Sur Spotify<\/div>\n                <div class=\"custom-category\">Sur l'application<\/div>\n            <\/div>\n            <!-- \u00c9mission 3 -->\n            <div class=\"custom-carousel-item-17\">\n                <a href=\"https:\/\/www.youtube.com\/watch?v=7dJJAWjiPb4&list=PLOWruiXElNW4768jNr_cPcEtakOScRos0\" target=\"_self\">\n                    <img decoding=\"async\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-Youtube-pour-Happyness.webp\" alt=\"\u00c9mission 3\">\n                <\/a>\n                <div class=\"custom-title\">Sur YouTube<\/div>\n                <div class=\"custom-category\">Sur le site et l'appli Youtube et Youtube Music<\/div>\n            <\/div>\n            <!-- Ajoutez d'autres \u00e9l\u00e9ments ici -->\n        <\/div>\n        <button class=\"carousel-nav-17 right\" onclick=\"scrollCarousel17(1)\">&#10095;<\/button>\n    <\/div>\n\n    <script src=\"https:\/\/code.jquery.com\/jquery-3.6.0.min.js\"><\/script>\n    <script>\n        jQuery(document).ready(function($) {\n            \/\/ Fonction pour v\u00e9rifier si les fl\u00e8ches doivent \u00eatre affich\u00e9es\n            function updateNavigationArrows17() {\n                const leftArrow = document.querySelector('.carousel-nav-17.left');\n                const rightArrow = document.querySelector('.carousel-nav-17.right');\n\n                \/\/ Toujours afficher les fl\u00e8ches\n                leftArrow.style.display = 'block';\n                rightArrow.style.display = 'block';\n            }\n\n            \/\/ Appeler la fonction initialement et lors du redimensionnement de la fen\u00eatre\n            updateNavigationArrows17();\n            window.addEventListener('resize', updateNavigationArrows17);\n            document.querySelector('.custom-carousel-container-17').addEventListener('scroll', updateNavigationArrows17);\n        });\n\n        \/\/ Fonction pour faire d\u00e9filer le carrousel 17\n        function scrollCarousel17(direction) {\n            const carousel = document.querySelector('.custom-carousel-container-17');\n            const scrollAmount = carousel.clientWidth;\n            carousel.scrollBy({\n                left: scrollAmount * direction,\n                behavior: 'smooth'\n            });\n            updateNavigationArrows17(); \/\/ Mettre \u00e0 jour l'affichage des fl\u00e8ches apr\u00e8s le d\u00e9filement\n        }\n    <\/script>\n<\/body>\n<\/html>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-970e01f e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-id=\"970e01f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cb5df1a elementor-widget elementor-widget-html\" data-id=\"cb5df1a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"3145\" class=\"elementor elementor-3145\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c13a6db e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-id=\"c13a6db\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-039612e elementor-widget elementor-widget-html\" data-id=\"039612e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Footer Radio<\/title>\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0-beta3\/css\/all.min.css\">\n    <style>\n        body { font-family: 'Inter', sans-serif; background-color: #C10000; color: white; margin: 0; padding: 0; }\n        .footer { display: flex; flex-wrap: wrap; justify-content: space-between; padding: 30px 20px 10px; }\n        .footer-column { flex: 1 1 48%; margin-bottom: 20px; }\n        .footer-column ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; }\n        .footer-column ul li { margin-bottom: 10px; flex: 1 1 33.33%; }\n        .footer-column ul li a { color: white; text-decoration: none; font-size: 16px; }\n        .footer-column ul li a:hover { text-decoration: underline; }\n        .footer-column p { font-size: 14px; margin: 5px 0; }\n        .footer-column img { width: 150px; margin-bottom: 10px; }\n        .footer-column h3 { font-size: 18px; font-weight: bold; margin-bottom: 10px; }\n        .social-links { display: flex; justify-content: flex-start; margin-top: 10px; }\n        .social-links a { margin-right: 20px; color: white; text-decoration: none; }\n        .social-links i { font-size: 18px; }\n        @media (max-width: 768px) {\n            .footer-column { flex: 1 1 100%; }\n            .footer-column ul { flex-direction: row; flex-wrap: wrap; height: auto; }\n            .footer-column ul li { flex: 1 1 48%; margin-bottom: 10px; }\n            .footer-column ul li a { font-size: 14px; }\n        }\n        .footer-bottom { text-align: center; padding: 10px 0; border-top: 1px solid white; margin-top: 10px; font-size: 14px; }\n    <\/style>\n<\/head>\n<body>\n    <footer class=\"footer\">\n        <div class=\"footer-column\">\n            <img decoding=\"async\" src=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-Happyness-Blanc.webp\" alt=\"Logo Happyness\">\n            <h3>Toujours au plus proche de vous<\/h3>\n            <p>142 rue Baudoin d'Ailly, 80000 Amiens<\/p>\n            <p>contact@happynessamiens.fr<\/p>\n            <div class=\"social-links\">\n                <a href=\"https:\/\/www.instagram.com\/happyness.amiens\/\"><i class=\"fab fa-instagram\"><\/i><\/a>\n                <a href=\"https:\/\/www.facebook.com\/HappynessAmiens\"><i class=\"fab fa-facebook-f\"><\/i><\/a>\n                <a href=\"https:\/\/www.tiktok.com\/@happyness.amiens\"><i class=\"fab fa-tiktok\"><\/i><\/a>\n                <a href=\"https:\/\/www.linkedin.com\/company\/happynessamiens\/\"><i class=\"fab fa-linkedin-in\"><\/i><\/a>\n            <\/div>\n        <\/div>\n        <div class=\"footer-column\">\n            <ul>\n                <li><a href=\"https:\/\/happynessradio.fr\/amiens\/\">Accueil<\/a><\/li>\n                <li><a href=\"https:\/\/happynessradio.fr\/amiens\/grille-des-programmes\/\">Programmes<\/a><\/li>\n                <li><a href=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/\">Podcasts<\/a><\/li>\n                <li><a href=\"https:\/\/happynessradio.fr\/amiens\/equipe\/\">\u00c9quipe<\/a><\/li>\n                <li><a href=\"https:\/\/happynessradio.fr\/amiens\/articles\/\">\u00c0 la une<\/a><\/li>\n                <li><a href=\"https:\/\/happynessradio.fr\/amiens\/a-propos\/\">Votre radio<\/a><\/li>\n                <li><a href=\"https:\/\/happynessradio.fr\/amiens\/contact\/\">Contact<\/a><\/li>\n            <\/ul>\n        <\/div>\n    <\/footer>\n    <div class=\"footer-bottom\">\n        <p>&copy; 2026 Happyness. Tous droits r\u00e9serv\u00e9s | <a href=\"https:\/\/happynessradio.fr\/amiens\/mentions-legales\/\" style=\"color: white; text-decoration: none;\">Mentions l\u00e9gales<\/a><\/p>\n    <\/div>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\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>Podcasts Le Micro aux Initiatives Cl\u00e9ment, S\u00e9bastien \u2022 En podcast Partons \u00e0 la d\u00e9couverte des initiatives du territoire. En savoir plus EN LECTURE 1x Chargement des \u00e9pisodes&#8230; 00:00 &#8211;:&#8211; -10 +10 Derniers \u00e9pisodes Charger plus \u00c9coutez d&rsquo;autres podcasts Happyness Originals HR Carousel &#8211; \u00c9missions S\u00e9lectionn\u00e9es Temps Additionnel Julien G. L&rsquo;actualit\u00e9 du foot samarien. \u00c9couter Les Chroniques du JDR Laurent, Damien L&rsquo;aventure fantastique. \u00c9couter Saveurs &#038; Confidences Mehdiya Rencontre des chefs. \u00c9couter La Plume et le Sabre Sophie Histoire &#038; Litt\u00e9rature. \u00c9couter \u00c0 d\u00e9couvrir \u00e9galement Carrousel Personnalis\u00e9 Comment \u00e9couter ailleurs Le Micro aux Initiatives ? &#10094; Sur Amazon Music Sur l&rsquo;application Sur Apple Podcasts Sur l&rsquo;application Sur Deezer Sur l&rsquo;application Sur Spotify Sur l&rsquo;application Sur YouTube Sur le site et l&rsquo;appli Youtube et Youtube Music &#10095;<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":135,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"class_list":["post-850","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Le Micro aux Initiatives - Happyness Amiens<\/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:\/\/happynessradio.fr\/amiens\/podcasts\/le-micro-aux-initiatives\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Le Micro aux Initiatives - Happyness Amiens\" \/>\n<meta property=\"og:description\" content=\"Podcasts Le Micro aux Initiatives Cl\u00e9ment, S\u00e9bastien \u2022 En podcast Partons \u00e0 la d\u00e9couverte des initiatives du territoire. En savoir plus EN LECTURE 1x Chargement des \u00e9pisodes&#8230; 00:00 &#8211;:&#8211; -10 +10 Derniers \u00e9pisodes Charger plus \u00c9coutez d&rsquo;autres podcasts Happyness Originals HR Carousel &#8211; \u00c9missions S\u00e9lectionn\u00e9es Temps Additionnel Julien G. L&rsquo;actualit\u00e9 du foot samarien. \u00c9couter Les Chroniques du JDR Laurent, Damien L&rsquo;aventure fantastique. \u00c9couter Saveurs &#038; Confidences Mehdiya Rencontre des chefs. \u00c9couter La Plume et le Sabre Sophie Histoire &#038; Litt\u00e9rature. \u00c9couter \u00c0 d\u00e9couvrir \u00e9galement Carrousel Personnalis\u00e9 Comment \u00e9couter ailleurs Le Micro aux Initiatives ? &#10094; Sur Amazon Music Sur l&rsquo;application Sur Apple Podcasts Sur l&rsquo;application Sur Deezer Sur l&rsquo;application Sur Spotify Sur l&rsquo;application Sur YouTube Sur le site et l&rsquo;appli Youtube et Youtube Music &#10095;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/happynessradio.fr\/amiens\/podcasts\/le-micro-aux-initiatives\/\" \/>\n<meta property=\"og:site_name\" content=\"Happyness Amiens\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-12T20:59:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-MAI_1.webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/podcasts\\\/le-micro-aux-initiatives\\\/\",\"url\":\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/podcasts\\\/le-micro-aux-initiatives\\\/\",\"name\":\"Le Micro aux Initiatives - Happyness Amiens\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/podcasts\\\/le-micro-aux-initiatives\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/podcasts\\\/le-micro-aux-initiatives\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/wp-content\\\/uploads\\\/sites\\\/3\\\/2025\\\/12\\\/Logo-MAI_1.webp\",\"datePublished\":\"2025-10-09T14:19:36+00:00\",\"dateModified\":\"2026-01-12T20:59:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/podcasts\\\/le-micro-aux-initiatives\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/podcasts\\\/le-micro-aux-initiatives\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/podcasts\\\/le-micro-aux-initiatives\\\/#primaryimage\",\"url\":\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/wp-content\\\/uploads\\\/sites\\\/3\\\/2025\\\/12\\\/Logo-MAI_1.webp\",\"contentUrl\":\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/wp-content\\\/uploads\\\/sites\\\/3\\\/2025\\\/12\\\/Logo-MAI_1.webp\",\"width\":324,\"height\":166},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/podcasts\\\/le-micro-aux-initiatives\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Podcasts &amp; replays des \u00e9missions\",\"item\":\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/podcasts\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Le Micro aux Initiatives\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/#website\",\"url\":\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/\",\"name\":\"Happyness Amiens\",\"description\":\"Toujours au plus proche de vous\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/happynessradio.fr\\\/amiens\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Le Micro aux Initiatives - Happyness Amiens","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:\/\/happynessradio.fr\/amiens\/podcasts\/le-micro-aux-initiatives\/","og_locale":"fr_FR","og_type":"article","og_title":"Le Micro aux Initiatives - Happyness Amiens","og_description":"Podcasts Le Micro aux Initiatives Cl\u00e9ment, S\u00e9bastien \u2022 En podcast Partons \u00e0 la d\u00e9couverte des initiatives du territoire. En savoir plus EN LECTURE 1x Chargement des \u00e9pisodes&#8230; 00:00 &#8211;:&#8211; -10 +10 Derniers \u00e9pisodes Charger plus \u00c9coutez d&rsquo;autres podcasts Happyness Originals HR Carousel &#8211; \u00c9missions S\u00e9lectionn\u00e9es Temps Additionnel Julien G. L&rsquo;actualit\u00e9 du foot samarien. \u00c9couter Les Chroniques du JDR Laurent, Damien L&rsquo;aventure fantastique. \u00c9couter Saveurs &#038; Confidences Mehdiya Rencontre des chefs. \u00c9couter La Plume et le Sabre Sophie Histoire &#038; Litt\u00e9rature. \u00c9couter \u00c0 d\u00e9couvrir \u00e9galement Carrousel Personnalis\u00e9 Comment \u00e9couter ailleurs Le Micro aux Initiatives ? &#10094; Sur Amazon Music Sur l&rsquo;application Sur Apple Podcasts Sur l&rsquo;application Sur Deezer Sur l&rsquo;application Sur Spotify Sur l&rsquo;application Sur YouTube Sur le site et l&rsquo;appli Youtube et Youtube Music &#10095;","og_url":"https:\/\/happynessradio.fr\/amiens\/podcasts\/le-micro-aux-initiatives\/","og_site_name":"Happyness Amiens","article_modified_time":"2026-01-12T20:59:25+00:00","og_image":[{"url":"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-MAI_1.webp","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/happynessradio.fr\/amiens\/podcasts\/le-micro-aux-initiatives\/","url":"https:\/\/happynessradio.fr\/amiens\/podcasts\/le-micro-aux-initiatives\/","name":"Le Micro aux Initiatives - Happyness Amiens","isPartOf":{"@id":"https:\/\/happynessradio.fr\/amiens\/#website"},"primaryImageOfPage":{"@id":"https:\/\/happynessradio.fr\/amiens\/podcasts\/le-micro-aux-initiatives\/#primaryimage"},"image":{"@id":"https:\/\/happynessradio.fr\/amiens\/podcasts\/le-micro-aux-initiatives\/#primaryimage"},"thumbnailUrl":"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-MAI_1.webp","datePublished":"2025-10-09T14:19:36+00:00","dateModified":"2026-01-12T20:59:25+00:00","breadcrumb":{"@id":"https:\/\/happynessradio.fr\/amiens\/podcasts\/le-micro-aux-initiatives\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/happynessradio.fr\/amiens\/podcasts\/le-micro-aux-initiatives\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/happynessradio.fr\/amiens\/podcasts\/le-micro-aux-initiatives\/#primaryimage","url":"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-MAI_1.webp","contentUrl":"https:\/\/happynessradio.fr\/amiens\/wp-content\/uploads\/sites\/3\/2025\/12\/Logo-MAI_1.webp","width":324,"height":166},{"@type":"BreadcrumbList","@id":"https:\/\/happynessradio.fr\/amiens\/podcasts\/le-micro-aux-initiatives\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/happynessradio.fr\/amiens\/"},{"@type":"ListItem","position":2,"name":"Podcasts &amp; replays des \u00e9missions","item":"https:\/\/happynessradio.fr\/amiens\/podcasts\/"},{"@type":"ListItem","position":3,"name":"Le Micro aux Initiatives"}]},{"@type":"WebSite","@id":"https:\/\/happynessradio.fr\/amiens\/#website","url":"https:\/\/happynessradio.fr\/amiens\/","name":"Happyness Amiens","description":"Toujours au plus proche de vous","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/happynessradio.fr\/amiens\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"}]}},"_links":{"self":[{"href":"https:\/\/happynessradio.fr\/amiens\/wp-json\/wp\/v2\/pages\/850","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/happynessradio.fr\/amiens\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/happynessradio.fr\/amiens\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/happynessradio.fr\/amiens\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/happynessradio.fr\/amiens\/wp-json\/wp\/v2\/comments?post=850"}],"version-history":[{"count":25,"href":"https:\/\/happynessradio.fr\/amiens\/wp-json\/wp\/v2\/pages\/850\/revisions"}],"predecessor-version":[{"id":11470,"href":"https:\/\/happynessradio.fr\/amiens\/wp-json\/wp\/v2\/pages\/850\/revisions\/11470"}],"up":[{"embeddable":true,"href":"https:\/\/happynessradio.fr\/amiens\/wp-json\/wp\/v2\/pages\/135"}],"wp:attachment":[{"href":"https:\/\/happynessradio.fr\/amiens\/wp-json\/wp\/v2\/media?parent=850"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}