

{"id":1181,"date":"2024-11-13T14:18:07","date_gmt":"2024-11-13T13:18:07","guid":{"rendered":"https:\/\/radiostreamr.com\/radio-france\/?p=1181"},"modified":"2024-11-13T17:09:32","modified_gmt":"2024-11-13T16:09:32","slug":"ecoutez-en-direct-m-radio","status":"publish","type":"post","link":"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/","title":{"rendered":"M Radio \ud83c\udfb6 &#8211; Ecoutez en direct les Webradios"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"1181\" class=\"elementor elementor-1181\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dce457e e-con-full e-flex e-con e-parent\" data-id=\"dce457e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9f9be1c 1995 elementor-widget elementor-widget-html\" data-id=\"9f9be1c\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"1995\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html><html><head>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<meta http-equiv=\"Content-Security-Policy\" content=\"default-src 'self' https:; script-src 'self' https: 'unsafe-inline' 'unsafe-eval'; style-src 'self' https: 'unsafe-inline'; img-src 'self' https: data:;\">\n<meta http-equiv=\"X-Frame-Options\" content=\"DENY\">\n<meta http-equiv=\"X-XSS-Protection\" content=\"1; mode=block\">\n<meta http-equiv=\"X-Content-Type-Options\" content=\"nosniff\">\n<meta http-equiv=\"Referrer-Policy\" content=\"strict-origin-when-cross-origin\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Roboto:wght@300;400;700&amp;display=swap\" rel=\"stylesheet\">\n<link href=\"https:\/\/cdn.jsdelivr.net\/npm\/select2@4.1.0-rc.0\/dist\/css\/select2.min.css\" rel=\"stylesheet\">\n<style>\n  .pacific-web-radios {\n    font-family: 'Roboto', sans-serif;\n    margin: 0;\n    padding: 0;\n    background: linear-gradient(45deg, #1a1a1a, #2c2c2c, #0e4d4d);\n    background-size: 400% 400%;\n    animation: gradientBG 15s ease infinite;\n    color: #ffffff;\n    width: 100vw;\n    margin-left: -50vw;\n    left: 50%;\n    position: relative;\n    overflow-x: hidden;\n  }\n  .pacific-web-radios @keyframes gradientBG {\n    0% {\n      background-position: 0% 50%;\n    }\n    50% {\n      background-position: 100% 50%;\n    }\n    100% {\n      background-position: 0% 50%;\n    }\n  }\n  .pacific-web-radios .first-block {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    position: relative;\n    overflow: hidden;\n    min-height: 100vh;\n    padding-bottom: 60px;\n  }\n  .pacific-web-radios .first-block::before {\n    content: '';\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    background-color: rgba(0, 0, 0, 0.5);\n    z-index: 1;\n  }\n  .pacific-web-radios .background-slideshow {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    z-index: 0;\n  }\n  .pacific-web-radios .slide {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    opacity: 0;\n    transition: opacity 1s ease-in-out;\n    background-size: cover;\n    background-position: center;\n  }\n  .pacific-web-radios .slide.active {\n    opacity: 1;\n  }\n  .pacific-web-radios .first-block-content {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    width: 90%;\n    max-width: 800px;\n    padding: 20px;\n    position: relative;\n    z-index: 2;\n    border-radius: 10px;\n    margin: 0 auto;\n    padding-bottom: 60px;\n  }\n  .pacific-web-radios .content-wrapper {\n    padding-top: 50px;\n    padding-left: 250px;\n    padding-right: 250px;\n    width: 100%;\n    max-width: 100%;\n    margin: 0 auto;\n    box-sizing: border-box;\n  }\n  @media (max-width: 1024px) {\n    .pacific-web-radios .content-wrapper {\n      padding-left: 40px;\n      padding-right: 40px;\n    }\n  }\n  @media (max-width: 600px) {\n    .pacific-web-radios .content-wrapper {\n      padding-left: 15px;\n      padding-right: 15px;\n    }\n  }\n  .pacific-web-radios .first-block-content,\n  .pacific-web-radios #results-container {\n    width: 100%;\n    max-width: 100%;\n    margin: 0 auto\n    padding-left: 15px;\n    padding-right: 15px;\n  }\n  .pacific-web-radios .search-and-filter-container {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    width: 100%;\n    flex-wrap: wrap;\n  }\n  .pacific-web-radios #search-container,\n  .pacific-web-radios #category-filter-container {\n    flex: 1;\n    display: flex;\n    justify-content: center;\n    margin: 5px;\n    min-width: 200px;\n  }\n  .pacific-web-radios .select2-container {\n    min-width: 200px !important;\n  }\n  .pacific-web-radios .select2-container--default .select2-selection--single,\n  .pacific-web-radios .select2-container--default .select2-selection--multiple {\n    background-color: rgba(255, 255, 255, 0.1);\n    border: 2px solid #00ffff;\n    border-radius: 5px;\n    color: #ffffff;\n    padding: 10px;\n    font-size: 1em;\n    height: auto;\n    box-shadow: 0 0 10px #00ffff;\n  }\n  .pacific-web-radios .select2-container--default .select2-selection--single .select2-selection__rendered,\n  .pacific-web-radios .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n    color: #ffffff;\n    line-height: normal;\n  }\n  .pacific-web-radios .select2-container--default .select2-selection--single .select2-selection__arrow {\n    height: 100%;\n  }\n  .pacific-web-radios .select2-container--default .select2-selection--multiple .select2-selection__choice {\n    background-color: #00ffff;\n    color: #000;\n    border: none;\n    padding: 5px 10px;\n    border-radius: 15px;\n  }\n  .pacific-web-radios .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n    color: #000;\n    margin-right: 5px;\n  }\n  .pacific-web-radios .select2-container--default .select2-search--inline .select2-search__field {\n    color: #ffffff;\n  }\n  .pacific-web-radios .select2-dropdown {\n    background-color: #2c2c2c;\n    border: 2px solid #00ffff;\n  }\n  .pacific-web-radios .select2-container--default .select2-results__option--highlighted[aria-selected] {\n    background-color: #00ffff;\n    color: #000;\n  }\n  .pacific-web-radios .select2-container--default .select2-results__option[aria-selected=true] {\n    background-color: #008080;\n  }\n  .pacific-web-radios .select2-container--default .select2-selection--single::placeholder,\n  .pacific-web-radios .select2-container--default .select2-selection--multiple::placeholder,\n  .pacific-web-radios .select2-container--default .select2-selection--multiple .select2-search__field::placeholder {\n    color: #ffffff;\n  }\n  .pacific-web-radios .container {\n    max-width: none;\n    width: 100%;\n    padding: 20px;\n    text-align: center;\n    box-sizing: border-box;\n  }\n  .pacific-web-radios h1 {\n    text-align: center;\n    font-size: 2em;\n    margin-bottom: 20px;\n    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8), 0 0 10px #00ffff, 0 0 20px #00ffff, 0 0 30px #00ffff;\n  }\n  .pacific-web-radios .subtitle {\n    text-align: center;\n    max-width: 800px;\n    margin: 0 auto 20px;\n    font-size: 1em;\n    line-height: 1.5;\n    color: #ffffff;\n  }\n  .pacific-web-radios .results-count {\n    text-align: center;\n    margin: 60px 0 10px;\n    font-size: 1.1em;\n    color: #00ffff;\n  }\n  .pacific-web-radios .category-vignettes-container {\n    display: flex;\n    justify-content: center;\n    flex-wrap: wrap;\n    margin: 20px 0;\n  }\n  .pacific-web-radios .category-vignettes {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n  }\n  .pacific-web-radios .tag-vignette {\n    display: inline-block;\n    background-color: rgba(0, 255, 255, 0.2);\n    color: #00ffff;\n    padding: 5px 10px;\n    margin: 5px;\n    border-radius: 15px;\n    font-size: 14px;\n    cursor: pointer;\n    transition: background-color 0.3s ease;\n  }\n  .pacific-web-radios .tag-vignette:hover {\n    background-color: rgba(0, 255, 255, 0.4);\n  }\n  .pacific-web-radios .tabs {\n    display: flex;\n    justify-content: center;\n    position: absolute;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    z-index: 10;\n  }\n  .pacific-web-radios .tab {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 5px;\n    padding: 10px 20px;\n    background-color: transparent;\n    border: 2px solid #00ffff;\n    color: #00ffff;\n    cursor: pointer;\n    transition: background-color 0.3s, color 0.3s;\n  }\n  .pacific-web-radios .tab img {\n    width: 20px;\n    height: 20px;\n    filter: invert(1);\n  }\n  .pacific-web-radios .tab:hover, .pacific-web-radios .tab.active {\n    background-color: #00ffff;\n    color: #000;\n  }\n  .pacific-web-radios .tab:hover img, .pacific-web-radios .tab.active img {\n    filter: none;\n  }\n  .pacific-web-radios .tab:first-child {\n    border-top-left-radius: 5px;\n    border-bottom-left-radius: 5px;\n  }\n  .pacific-web-radios .tab:last-child {\n    border-top-right-radius: 5px;\n    border-bottom-right-radius: 5px;\n  }\n  .pacific-web-radios #results-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    margin-top: 20px;\n  }\n  .pacific-web-radios .station-card {\n    background-color: rgba(255, 255, 255, 0.1);\n    border-radius: 5px;\n    padding: 15px;\n    margin-bottom: 15px;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    align-items: center;\n    width: calc(20% - 10px);\n    box-sizing: border-box;\n    border: 1px solid #00ffff;\n    box-shadow: 0 0 10px rgba(0, 255, 255, 0.3);\n    position: relative;\n    overflow: hidden;\n  }\n  .pacific-web-radios .favorite-button {\n    position: absolute;\n    top: 10px;\n    right: 10px;\n    width: 30px;\n    height: 30px;\n    background-color: transparent;\n    border: none;\n    cursor: pointer;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    background-image: url('https:\/\/pacific-webtools.com\/radio-online\/wp-content\/uploads\/2024\/10\/logo-10.webp');\n    background-size: cover;\n    background-repeat: no-repeat;\n    background-position: center;\n    transition: transform 0.2s;\n  }\n  .pacific-web-radios .favorite-button.active {\n    background-image: url('https:\/\/pacific-webtools.com\/radio-online\/wp-content\/uploads\/2024\/10\/logo-11.webp');\n  }\n  .pacific-web-radios .favorite-button img {\n    display: none;\n  }\n  .pacific-web-radios .station-info {\n    width: 100%;\n    display: flex;\n    justify-content: center;\n    margin-bottom: 10px;\n  }\n  .pacific-web-radios .station-logo {\n    width: 80px;\n    height: 80px;\n    border-radius: 50%;\n    object-fit: cover;\n  }\n  .pacific-web-radios .station-details {\n    width: 100%;\n    text-align: center;\n  }\n  .pacific-web-radios .station-details h2 {\n    margin: 10px 0;\n    color: #ffffff;\n    font-size: 1.2em;\n  }\n  .pacific-web-radios .station-details p {\n    margin: 5px 0;\n    font-size: 0.9em;\n  }\n  .pacific-web-radios .play-button {\n    width: 40px;\n    height: 40px;\n    margin-top: 10px;\n    background-color: #00ffff;\n    border: none;\n    border-radius: 50%;\n    cursor: pointer;\n    padding: 0;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    transition: background-color 0.3s ease;\n  }\n  .pacific-web-radios .play-button:hover {\n    background-color: #00cccc;\n  }\n  .pacific-web-radios .play-button img {\n    width: 20px;\n    height: 20px;\n    filter: invert(1);\n  }\n  .pacific-web-radios .search-and-filter-container {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    width: 100%;\n    flex-wrap: wrap;\n  }\n  .pacific-web-radios #search-container {\n    flex: 1;\n    display: flex;\n    justify-content: center;\n    margin-right: 10px;\n    min-width: 200px;\n  }\n  .pacific-web-radios #category-filter-container {\n    flex: 0 0 auto;\n    display: flex;\n    justify-content: center;\n    margin: 5px;\n    min-width: 150px;\n  }\n  .pacific-web-radios #search-input {\n    width: 100%;\n    padding: 10px;\n    font-size: 1em;\n    border: 2px solid #00ffff;\n    border-radius: 5px;\n    background-color: rgba(255, 255, 255, 0.1);\n    color: #ffffff;\n    box-shadow: 0 0 10px #00ffff;\n  }\n  .pacific-web-radios #search-input::placeholder {\n    color: #ffffff;\n  }\n  .pacific-web-radios #search-button {\n    padding: 10px;\n    font-size: 1em;\n    border: none;\n    border-radius: 5px;\n    background-color: #00ffff;\n    color: #000;\n    cursor: pointer;\n    transition: background-color 0.3s ease;\n    box-shadow: 0 0 10px #00ffff;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n  .pacific-web-radios #search-button img {\n    width: 20px;\n    height: 20px;\n    filter: invert(1);\n  }\n  .pacific-web-radios #search-button:hover {\n    background-color: #00cccc;\n  }\n  .pacific-web-radios .popular-radios-section {\n    margin-top: 40px;\n    background-color: rgba(255, 255, 255, 0.1);\n    border-radius: 10px;\n  }\n  @media (min-width: 1024px) {\n  .popular-radios-section {\n    padding: 50px 250px; \/* 50px pour le haut et le bas, 250px pour la gauche et la droite *\/\n  }\n}\n  @media (min-width: 768px) and (max-width: 1023px) {\n  .popular-radios-section {\n    padding: 35px; \/* 35px pour tous les c\u00f4t\u00e9s (haut, bas, gauche, droite) *\/\n  }\n}\n  @media (max-width: 767px) {\n  .popular-radios-section {\n    padding: 15px; \/* 15px pour tous les c\u00f4t\u00e9s (haut, bas, gauche, droite) *\/\n  }\n}\n  .pacific-web-radios .popular-radios-section h2 {\n    color: #00ffff;\n    font-size: 24px;\n    margin-bottom: 10px;\n  }\n  .pacific-web-radios .popular-radios-section h3 {\n    color: #ffffff;\n    font-size: 18px;\n    margin-bottom: 20px;\n  }\n  .pacific-web-radios #popular-radios-list-france {\n    list-style-type: none;\n    padding: 0;\n  }\n  @media (max-width: 767px) {\n  .pacific-web-radios #popular-radios-list-france {\n    text-align: center; \/* Centre le contenu des cartes *\/\n    justify-content: center; \/* Centre tout contenu flex interne si n\u00e9cessaire *\/\n  }\n}\n  .pacific-web-radios #popular-radios-list-france li {\n    margin-bottom: 10px;\n    padding: 10px;\n    background-color: rgba(0, 255, 255, 0.1);\n    border-radius: 5px;\n    cursor: pointer;\n    transition: background-color 0.3s ease;\n  }\n  .pacific-web-radios #popular-radios-list-france li:hover {\n    background-color: rgba(0, 255, 255, 0.2);\n  }\n  \/* Loading Animation styles *\/\n  .loading-animation {\n    position: fixed;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    background-color: rgba(0, 0, 0, 0.7);\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    z-index: 9999;\n  }\n  .spinner {\n    width: 50px;\n    height: 50px;\n    border: 5px solid #00ffff;\n    border-top: 5px solid transparent;\n    border-radius: 50%;\n    animation: spin 1s linear infinite;\n  }\n  @keyframes spin {\n    0% { transform: rotate(0deg); }\n    100% { transform: rotate(360deg); }\n  }\n  .loading-animation p {\n    margin-top: 20px;\n    color: #00ffff;\n    font-size: 18px;\n  }\n  \/* Modal styles *\/\n  .pacific-web-radios .modal {\n    display: none;\n    position: fixed;\n    z-index: 1000;\n    left: 0;\n    top: 0;\n    width: 100%;\n    height: 100%;\n    overflow: auto;\n    background-color: rgba(0,0,0,0.4);\n    backdrop-filter: blur(5px);\n  }\n  .pacific-web-radios .modal-content {\n    background-color: #2c2c2c;\n    padding: 30px;\n    border: 2px solid #00ffff;\n    width: 90%;\n    max-width: 500px;\n    max-height: 90vh;\n    border-radius: 20px;\n    text-align: center;\n    box-shadow: 0 0 30px rgba(0, 255, 255, 0.5);\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    overflow-y: auto;\n  }\n  .pacific-web-radios .modal-header {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    margin-bottom: 20px;\n  }\n  .pacific-web-radios #station-logo {\n    width: 150px;\n    height: 150px;\n    border-radius: 50%;\n    margin-bottom: 15px;\n    box-shadow: 0 0 20px rgba(0, 255, 255, 0.3);\n  }\n  .pacific-web-radios #station-name {\n    margin-bottom: 5px;\n    color: #00ffff;\n    font-size: 24px;\n  }\n  .pacific-web-radios #station-country {\n    margin-bottom: 10px;\n    color: #ffffff;\n    font-size: 16px;\n  }\n  .pacific-web-radios #station-description {\n    margin-bottom: 15px;\n    color: #cccccc;\n    font-size: 14px;\n  }\n  .pacific-web-radios #station-tags {\n    margin-bottom: 10px;\n  }\n  .pacific-web-radios .tag-vignette {\n    display: inline-block;\n    background-color: rgba(0, 255, 255, 0.2);\n    color: #00ffff;\n    padding: 5px 10px;\n    margin: 2px;\n    border-radius: 15px;\n    font-size: 12px;\n    cursor: pointer;\n  }\n  .pacific-web-radios #station-info {\n    display: flex;\n    justify-content: center;\n    gap: 15px;\n    margin-bottom: 20px;\n    color: #00ffff;\n    font-size: 14px;\n  }\n  .pacific-web-radios #audio-controls {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    gap: 20px;\n  }\n  .pacific-web-radios .control-button {\n    width: 50px;\n    height: 50px;\n    background-color: #00ffff;\n    border: none;\n    border-radius: 50%;\n    cursor: pointer;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    transition: background-color 0.3s ease, transform 0.1s ease;\n  }\n  .pacific-web-radios .control-button:hover {\n    background-color: #00cccc;\n    transform: scale(1.1);\n  }\n  .pacific-web-radios .control-button img {\n    width: 25px;\n    height: 25px;\n    filter: invert(1);\n  }\n  .pacific-web-radios #volume-slider {\n    width: 120px;\n    accent-color: #00ffff;\n  }\n  .pacific-web-radios .close {\n    position: absolute;\n    top: 10px;\n    right: 20px;\n    color: #00ffff;\n    font-size: 35px;\n    font-weight: bold;\n    cursor: pointer;\n    transition: color 0.3s;\n  }\n  .pacific-web-radios .close:hover {\n    color: #00cccc;\n  }\n  \/* Select2 Styles *\/\n  .pacific-web-radios .select2-container {\n    min-width: 200px !important;\n  }\n  .pacific-web-radios .select2-container--default .select2-selection--single,\n  .pacific-web-radios .select2-container--default .select2-selection--multiple {\n    background-color: rgba(255, 255, 255, 0.1);\n    border: 2px solid #00ffff;\n    border-radius: 5px;\n    color: #ffffff;\n    padding: 10px;\n    font-size: 1em;\n    height: auto;\n    box-shadow: 0 0 10px #00ffff;\n  }\n  .pacific-web-radios .select2-container--default .select2-selection--single .select2-selection__rendered,\n  .pacific-web-radios .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n    color: #ffffff;\n    line-height: normal;\n  }\n  .pacific-web-radios .select2-container--default .select2-selection--single .select2-selection__arrow {\n    height: 100%;\n  }\n  .pacific-web-radios .select2-container--default .select2-selection--multiple .select2-selection__choice {\n    background-color: #00ffff;\n    color: #000;\n    border: none;\n    padding: 5px 10px;\n    border-radius: 15px;\n  }\n  .pacific-web-radios .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n    color: #000;\n    margin-right: 5px;\n  }\n  .pacific-web-radios .select2-container--default .select2-search--inline .select2-search__field {\n    color: #ffffff;\n  }\n  .pacific-web-radios .select2-dropdown {\n    background-color: #2c2c2c;\n    border: 2px solid #00ffff;\n  }\n  .pacific-web-radios .select2-container--default .select2-results__option--highlighted[aria-selected] {\n    background-color: #00ffff;\n    color: #000;\n  }\n  .pacific-web-radios .select2-container--default .select2-results__option[aria-selected=true] {\n    background-color: #008080;\n  }\n  .pacific-web-radios .select2-container--default .select2-selection--single::placeholder,\n  .pacific-web-radios .select2-container--default .select2-selection--multiple::placeholder,\n  .pacific-web-radios .select2-container--default .select2-selection--multiple .select2-search__field::placeholder {\n    color: #ffffff;\n  }\n  \/* Pagination styles *\/\n  .pacific-web-radios .pagination {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    margin-top: 20px;\n    margin-bottom: 50px;\n  }\n  .pacific-web-radios .round-button {\n    width: 40px;\n    height: 40px;\n    border-radius: 50%;\n    background-color: transparent;\n    border: 2px solid #00ffff;\n    color: #00ffff;\n    font-size: 16px;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    margin: 0 5px;\n    transition: all 0.3s ease;\n    box-shadow: 0 0 10px rgba(0, 255, 255, 0.3);\n  }\n  .pacific-web-radios .round-button:hover {\n    background-color: #00ffff;\n  }\n  .pacific-web-radios .round-button:disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n  }\n  .pacific-web-radios #page-numbers {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n  }\n  .pacific-web-radios .page-number {\n    width: 30px;\n    height: 30px;\n    border-radius: 50%;\n    background-color: transparent;\n    border: 2px solid #00ffff;\n    color: #00ffff;\n    font-size: 14px;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    cursor: pointer;\n    margin: 0 3px;\n    transition: all 0.4s ease;\n  }\n  .pacific-web-radios .page-number.active {\n    background-color: #00ffff;\n    color: #000;\n  }\n  \/* Update the existing media queries for mobile *\/\n  @media (max-width: 600px) {\n    .pacific-web-radios .content-wrapper {\n      padding-left: 15px;\n      padding-right: 15px;\n      width: 100%;\n      box-sizing: border-box;\n    }\n    .pacific-web-radios .first-block-content,\n    .pacific-web-radios #results-container {\n      width: 100%;\n      padding-left: 15px;\n      padding-right: 15px;\n    }\n    .pacific-web-radios .station-card {\n      width: calc(100% - 30px);\n      margin-left: auto;\n      margin-right: auto;\n    }\n    .pacific-web-radios .search-and-filter-container {\n      flex-direction: column;\n      align-items: stretch;\n    }\n    .pacific-web-radios #search-container,\n    .pacific-web-radios #category-filter-container {\n      width: 100%;\n      margin: 5px 0;\n    }\n    .pacific-web-radios .select2-container {\n      width: 100% !important;\n    }\n  }\n  \/* Add a new media query for very small screens *\/\n  @media (max-width: 480px) {\n    .pacific-web-radios .content-wrapper {\n      padding-left: 10px;\n      padding-right: 10px;\n    }\n    .pacific-web-radios .first-block-content {\n      padding: 10px;\n    }\n    .pacific-web-radios .station-card {\n      width: calc(100% - 20px);\n      padding: 10px;\n    }\n  }\n  \/* Add this new CSS rule for the country flag *\/\n  .pacific-web-radios .country-flag {\n    width: 20px;\n    height: 15px;\n    object-fit: contain;\n    margin-right: 5px;\n    vertical-align: middle;\n  }\n  .pacific-web-radios .favorite-button img,\n  .pacific-web-radios .round-button img {\n    width: 20px;\n    height: 20px;\n    filter: invert(48%) sepia(94%) saturate(456%) hue-rotate(140deg) brightness(101%) contrast(101%);\n  }\n  .pacific-web-radios .favorite-button.active img {\n    filter: none;\n  }\n  .pacific-web-radios .round-button:disabled img {\n    opacity: 0.5;\n  }\n  .pacific-web-radios #chromecast-button {\n    background-color: #00ffff;\n    border: none;\n    border-radius: 50%;\n    cursor: pointer;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    transition: background-color 0.3s ease, transform 0.1s ease;\n    width: 50px;\n    height: 50px;\n  }\n  .pacific-web-radios #chromecast-button:hover {\n    background-color: #00cccc;\n    transform: scale(1.1);\n  }\n  .pacific-web-radios #chromecast-button img {\n    width: 25px;\n    height: 25px;\n    filter: invert(1);\n  }\n  @keyframes zoomInOut {\n    0%, 100% { transform: scale(1); }\n    50% { transform: scale(1.1); }\n  }\n  .background-slideshow .slide {\n    animation: zoomInOut 20s ease-in-out infinite;\n  }\n  .background-slideshow .slide:nth-child(2) {\n    animation-delay: -6.66s;\n  }\n  .background-slideshow .slide:nth-child(3) {\n    animation-delay: -13.33s;\n  }\n  .radio-presentation {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 2rem;\n    margin: 2rem 0;\n  }\n\n  .main-radio-logo {\n    width: 200px;\n    height: 200px;\n    border-radius: 50%;\n    box-shadow: 0 0 30px rgba(0, 255, 255, 0.5);\n  }\n\n  .play-button-large {\n    display: flex;\n    align-items: center;\n    gap: 1rem;\n    padding: 1rem 2rem;\n    font-size: 1.2rem;\n    background-color: #00ffff;\n    border: none;\n    border-radius: 50px;\n    color: #000;\n    cursor: pointer;\n    transition: all 0.3s ease;\n  }\n\n  .play-button-large:hover {\n    background-color: #00cccc;\n    transform: scale(1.05);\n  }\n\n  .play-button-large img {\n    width: 24px;\n    height: 24px;\n    filter: invert(1);\n  }\n\n  .radio-history, .popular-shows {\n    margin: 4rem 0;\n    padding: 2rem;\n    background-color: rgba(0, 255, 255, 0.1);\n    border-radius: 10px;\n    box-shadow: 0 0 20px rgba(0, 255, 255, 0.2);\n  }\n\n  .shows-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n    gap: 2rem;\n    margin-top: 2rem;\n  }\n\n  .show-card {\n    padding: 1.5rem;\n    background-color: rgba(0, 0, 0, 0.3);\n    border: 1px solid #00ffff;\n    border-radius: 10px;\n    transition: all 0.3s ease;\n  }\n\n  .show-card:hover {\n    transform: translateY(-5px);\n    box-shadow: 0 5px 15px rgba(0, 255, 255, 0.3);\n  }\n\n  .show-card h3 {\n    color: #00ffff;\n    margin-bottom: 0.5rem;\n  }\n\n  .show-card p {\n    color: #ffffff;\n    margin: 0.5rem 0;\n  }\n<\/style>\n<script src=\"https:\/\/www.gstatic.com\/cv\/js\/sender\/v1\/cast_sender.js?loadCastFramework=1\"><\/script>\n<\/head>\n<body>\n  <div class=\"pacific-web-radios\">\n    <div id=\"player-modal\" class=\"modal\">\n      <div class=\"modal-content\">\n  <span class=\"close\">\u00d7<\/span>\n  <div class=\"modal-header\">\n    <img decoding=\"async\" id=\"station-logo\" src=\"\" alt=\"Logo de la station\" class=\"station-logo\">\n    <h2 id=\"station-name\"><\/h2>\n    <p id=\"station-country\"><\/p>\n  <\/div>\n  <div id=\"station-info\">\n    <span id=\"station-tags\"><\/span>\n  <\/div>\n\n  <div id=\"audio-controls\">\n    <button id=\"play-pause\" class=\"control-button\">\n      <img decoding=\"async\" src=\"https:\/\/pacific-webtools.com\/radio-online\/wp-content\/uploads\/2024\/10\/logo-16.webp\" alt=\"Ic\u00f4ne de lecture\">\n    <\/button>\n    <input type=\"range\" id=\"volume-slider\" min=\"0\" max=\"1\" step=\"0.1\" value=\"1\">\n    <button id=\"chromecast-button\" class=\"control-button\">\n      <img decoding=\"async\" src=\"https:\/\/pacific-webtools.com\/radio-online\/wp-content\/uploads\/2024\/10\/logo-20.webp\" alt=\"Ic\u00f4ne Chromecast\" style=\"width: 16px; height: 16px;\">\n    <\/button>\n<\/div>\n<\/div>\n    <\/div>\n    <div class=\"first-block\">\n  <div class=\"background-slideshow\">\n    <div class=\"slide active\" style=\"background-image: url('https:\/\/mradio.fr\/media\/slider\/6731def17f4a0-louis-chedid-slider-site.webp');\"><\/div>\n    <div class=\"slide\" style=\"background-image: url('https:\/\/pbs.twimg.com\/media\/EEuCepcXsAErAnd.jpg:large');\"><\/div>\n    <div class=\"slide\" style=\"background-image: url('https:\/\/mradio.fr\/media\/slider\/66faa3d6d9dde-podcast-slider-site-2024.webp');\"><\/div>\n  <\/div>\n  <div class=\"content-wrapper\" style=\"@media (max-width: 767px) { padding-left: 15px; padding-right: 15px; }\">\n    <div class=\"first-block-content\">\n      <h1>Ecoutez toutes les Webradio M Radio en direct gratuitement avec RadiostreamR<\/h1>\n      <div class=\"radio-presentation\">\n  <img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/800px-Logo_Mradio.png\" alt=\"Logo RTL\" class=\"main-radio-logo\">\n\n  <button id=\"listen-live\" class=\"play-button-large\" style=\"animation: vibrate 1s infinite;\">\n    <img decoding=\"async\" src=\"https:\/\/pacific-webtools.com\/radio-online\/wp-content\/uploads\/2024\/10\/logo-16.webp\" alt=\"\u00c9couter en direct\">\n    \u00c9couter en direct\n  <\/button>\n\n<button onclick=\"document.querySelector('.popular-radios-section h2').scrollIntoView({behavior: 'smooth'});\" class=\"play-button-large\" style=\"background-color: #00cccc;\">\n  <img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/800px-Logo_Mradio.png\" alt=\"Voir les webradios\" style=\"width: 24px; height: 24px; border-radius: 50%; background-color: white; padding: 2px;\">\n  Toutes les Webradios\n<\/button>\n  \n  <div class=\"social-share-buttons\" style=\"display: flex; gap: 15px; margin: 20px 0;\">\n    <!-- X (Twitter) -->\n    <a href=\"javascript:void(0)\" onclick=\"window.open('https:\/\/twitter.com\/intent\/tweet?text=' + encodeURIComponent('\u00c9coutez M Radio en direct - La radio rock qui fait vibrer toute la France ! \ud83c\udfb8 #MRadio #Rock') + '&amp;url=' + encodeURIComponent(window.location.href), '_blank', 'width=550,height=420')\" class=\"social-button\" style=\"background: #000; border-radius: 50%; width: 40px; height: 40px; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; position: relative;\" title=\"Partager sur X (Twitter)\">\n      <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"#ffffff\">\n        <path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"><\/path>\n      <\/svg>\n    <\/a>\n\n    <!-- WhatsApp -->\n    <a href=\"javascript:void(0)\" onclick=\"window.open('https:\/\/api.whatsapp.com\/send?text=' + encodeURIComponent('D\u00e9couvrez M Radio, la r\u00e9f\u00e9rence rock en France ! \ud83c\udfb8 Une programmation explosive et 100% rock : ' + window.location.href), '_blank', 'width=550,height=420')\" class=\"social-button\" style=\"background: #25D366; border-radius: 50%; width: 40px; height: 40px; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; position: relative;\" title=\"Partager sur WhatsApp\">\n      <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"#ffffff\">\n        <path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.151-.174.2-.298.3-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"><\/path>\n      <\/svg>\n    <\/a>\n\n    <!-- Facebook -->\n    <a href=\"javascript:void(0)\" onclick=\"window.open('https:\/\/www.facebook.com\/sharer\/sharer.php?u=' + encodeURIComponent(window.location.href) + '&amp;quote=' + encodeURIComponent('Rejoignez M Radio, la radio qui fait vibrer le rock en France ! \ud83c\udfb8 D\u00e9couvrez une programmation explosive avec les plus grands tubes rock, de 1980 \u00e0 aujourd\\'hui.'), '_blank', 'width=550,height=420')\" class=\"social-button\" style=\"background: #1877F2; border-radius: 50%; width: 40px; height: 40px; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; position: relative;\" title=\"Partager sur Facebook\">\n      <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"#ffffff\">\n        <path d=\"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z\"><\/path>\n      <\/svg>\n    <\/a>\n\n    <!-- LinkedIn -->\n    <a href=\"javascript:void(0)\" onclick=\"window.open('https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=' + encodeURIComponent(window.location.href) + '&amp;title=' + encodeURIComponent('M Radio - La r\u00e9f\u00e9rence rock en France') + '&amp;summary=' + encodeURIComponent('D\u00e9couvrez M Radio, la radio qui fait vibrer le rock depuis 2009 ! Une programmation explosive avec les plus grands tubes rock et les nouveaut\u00e9s qui enflamment la sc\u00e8ne.'), '_blank', 'width=550,height=420')\" class=\"social-button\" style=\"background: #0A66C2; border-radius: 50%; width: 40px; height: 40px; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; position: relative;\" title=\"Partager sur LinkedIn\">\n      <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"#ffffff\">\n        <path d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z\"><\/path>\n      <\/svg>\n    <\/a>\n  <\/div>\n\n  <img decoding=\"async\" src=\"https:\/\/radiostreamr.com\/radio-france\/wp-content\/uploads\/2024\/10\/radio-online-chromecast.webp\" alt=\"Radio Online Chromecast\" style=\"height: 90px; margin: 10px 0;\">\n<\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n    <div class=\"content-wrapper\">\n      <section class=\"radio-history\" style=\"text-align: center; padding: 40px; margin: 40px auto;\">\n  <h2 style=\"color: #00ffff; font-size: 2.5em; margin-bottom: 30px; text-shadow: 0 0 10px rgba(0, 255, 255, 0.5); @media (max-width: 767px) { font-size: 25px; }\">M Radio : Une exp\u00e9rience rock unique depuis 2009<\/h2>\n\n  <div style=\"display: flex; justify-content: center; gap: 20px; margin-bottom: 30px; flex-wrap: wrap;\">\n    <a href=\"https:\/\/www.facebook.com\/mradiofr\/?locale=fr_FR\" target=\"_blank\" style=\"display: flex; align-items: center; padding: 10px 20px; background: #1877f2; color: white; text-decoration: none; border-radius: 5px; transition: all 0.3s ease; transform: scale(1); box-shadow: 0 4px 15px rgba(24, 119, 242, 0.2); margin: 5px;\" onmouseover=\"this.style.transform='scale(1.05)'; this.style.boxShadow='0 6px 20px rgba(24, 119, 242, 0.4)'\" onmouseout=\"this.style.transform='scale(1)'; this.style.boxShadow='0 4px 15px rgba(24, 119, 242, 0.2)'\">\n      <svg style=\"width: 24px; height: 24px; margin-right: 10px;\" fill=\"white\" viewBox=\"0 0 24 24\">\n        <path d=\"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z\"><\/path>\n      <\/svg>\n      Facebook\n    <\/a>\n\n    <a href=\"https:\/\/www.instagram.com\/mradiofr\/?hl=fr\" target=\"_blank\" style=\"display: flex; align-items: center; padding: 10px 20px; background: linear-gradient(45deg, #405de6, #5851db, #833ab4, #c13584, #e1306c, #fd1d1d); color: white; text-decoration: none; border-radius: 5px; transition: all 0.3s ease; transform: scale(1); box-shadow: 0 4px 15px rgba(193, 53, 132, 0.2); margin: 5px;\" onmouseover=\"this.style.transform='scale(1.05)'; this.style.boxShadow='0 6px 20px rgba(193, 53, 132, 0.4)'\" onmouseout=\"this.style.transform='scale(1)'; this.style.boxShadow='0 4px 15px rgba(193, 53, 132, 0.2)'\">\n      <svg style=\"width: 24px; height: 24px; margin-right: 10px;\" fill=\"white\" viewBox=\"0 0 24 24\">\n        <path d=\"M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319 1.347 20.651.935 19.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227-.224.562-.479.96-.897 1.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.897-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678c-3.405 0-6.162 2.76-6.162 6.162 0 3.405 2.76 6.162 6.162 6.162 3.405 0 6.162-2.76 6.162-6.162 0-3.405-2.76-6.162-6.162-6.162zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405c0 .795-.646 1.44-1.44 1.44-.795 0-1.44-.646-1.44-1.44 0-.794.646-1.439 1.44-1.439.793-.001 1.44.645 1.44 1.439z\"><\/path>\n      <\/svg>\n      Instagram\n    <\/a>\n\n    <a href=\"https:\/\/www.mradio.fr\/\" target=\"_blank\" style=\"display: flex; align-items: center; padding: 10px 20px; background: #00ffff; color: black; text-decoration: none; border-radius: 5px; transition: all 0.3s ease; transform: scale(1); box-shadow: 0 4px 15px rgba(0, 255, 255, 0.2); margin: 5px;\" onmouseover=\"this.style.transform='scale(1.05)'; this.style.boxShadow='0 6px 20px rgba(0, 255, 255, 0.4)'\" onmouseout=\"this.style.transform='scale(1)'; this.style.boxShadow='0 4px 15px rgba(0, 255, 255, 0.2)'\">\n      <svg style=\"width: 24px; height: 24px; margin-right: 10px;\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n        <path d=\"M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm1 16.057v-3.057h2.994c-.059 1.143-.212 2.24-.456 3.279-.823-.12-1.674-.188-2.538-.222zm1.957 2.162c-.499 1.33-1.159 2.497-1.957 3.456v-3.62c.666.028 1.319.081 1.957.164zm-1.957-7.219v-3.015c.868-.034 1.721-.103 2.548-.224.238 1.027.389 2.111.446 3.239h-2.994zm0-5.014v-3.661c.806.969 1.471 2.15 1.971 3.496-.642.084-1.3.137-1.971.165zm2.703-3.267c1.237.496 2.354 1.228 3.29 2.146-.642.234-1.311.442-2.019.607-.344-.992-.775-1.91-1.271-2.753zm-7.241 13.56c-.244-1.039-.398-2.136-.456-3.279h2.994v3.057c-.865.034-1.714.102-2.538.222zm2.538 1.776v3.62c-.798-.959-1.458-2.126-1.957-3.456.638-.083 1.291-.136 1.957-.164zm-2.994-7.055c.057-1.128.207-2.212.446-3.239.827.121 1.68.19 2.548.224v3.015h-2.994zm1.024-5.179c.5-1.346 1.165-2.527 1.97-3.496v3.661c-.671-.028-1.329-.081-1.97-.165zm-2.005-.35c-.708-.165-1.377-.373-2.018-.607.937-.918 2.053-1.65 3.29-2.146-.496.844-.927 1.762-1.272 2.753zm-.549 1.918c-.264 1.151-.434 2.36-.492 3.611h-3.933c.165-1.658.739-3.197 1.617-4.518.88.361 1.816.67 2.808.907zm.009 9.262c-.988.236-1.92.542-2.797.9-.89-1.328-1.471-2.879-1.637-4.551h3.934c.058 1.265.231 2.488.5 3.651zm.553 1.917c.342.976.768 1.881 1.257 2.712-1.223-.49-2.326-1.211-3.256-2.115.636-.229 1.299-.435 1.999-.597zm9.924 0c.7.163 1.362.367 1.999.597-.931.903-2.034 1.625-3.257 2.116.489-.832.915-1.737 1.258-2.713zm.553-1.917c.27-1.163.442-2.386.501-3.651h3.934c-.167 1.672-.748 3.223-1.638 4.551-.877-.358-1.81-.664-2.797-.9zm.501-5.651c-.058-1.251-.229-2.46-.492-3.611.992-.237 1.929-.546 2.809-.907.877 1.321 1.451 2.86 1.616 4.518h-3.933z\"><\/path>\n      <\/svg>\n      Site Web\n    <\/a>\n  <\/div>\n\n  <div style=\"display: flex; justify-content: center; margin-bottom: 30px;\">\n    <div style=\"display: inline-block; padding: 15px 30px; border: 2px solid #00ffff; border-radius: 10px; background-color: rgba(0, 255, 255, 0.1); box-shadow: 0 0 20px rgba(0, 255, 255, 0.5); margin-bottom: 30px;\">\n      <span style=\"font-size: 24px; color: #00ffff;\">Audience quotidienne moyenne<\/span>\n      <div style=\"font-size: 36px; font-weight: bold; color: #ffffff; margin-top: 10px;\">1 882 000<\/div>\n    <\/div>\n  <\/div>\n\n  <div style=\"display: flex; justify-content: center; gap: 20px; margin: 20px 0;\">\n    <div style=\"display: inline-block; padding: 25px; border: 2px solid #00ffff; border-radius: 50%; background-color: rgba(0, 255, 255, 0.1); box-shadow: 0 0 20px rgba(0, 255, 255, 0.5); width: 150px; height: 150px; display: flex; flex-direction: column; justify-content: center; align-items: center;\">\n      <span style=\"font-size: 18px; color: #00ffff; margin-bottom: 5px;\">Cr\u00e9ation<\/span>\n      <strong style=\"font-size: 20px; color: #ffffff;\">2009<\/strong>\n    <\/div>\n    \n    <div style=\"display: inline-block; padding: 25px; border: 2px solid #00ffff; border-radius: 50%; background-color: rgba(0, 255, 255, 0.1); box-shadow: 0 0 20px rgba(0, 255, 255, 0.5); width: 150px; height: 150px; display: flex; flex-direction: column; justify-content: center; align-items: center;\">\n      <span style=\"font-size: 18px; color: #00ffff; margin-bottom: 5px;\">Fr\u00e9quence FM<\/span>\n      <strong style=\"font-size: 20px; color: #ffffff;\">89.0 MHz<\/strong>\n    <\/div>\n  <\/div>\n\n  <div style=\"display: flex; flex-wrap: wrap; gap: 30px; margin: 20px auto; max-width: 100%; padding: 20px 0;\">\n    <div style=\"background: rgba(0, 255, 255, 0.1); padding: 25px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); text-align: center; flex: 1 1 300px;\">\n      <svg style=\"width: 48px; height: 48px; margin-bottom: 15px; fill: #00ffff;\" viewBox=\"0 0 24 24\">\n        <path d=\"M3.24 6.15C2.51 6.43 2 7.17 2 8v12c0 1.1.89 2 2 2h16c1.11 0 2-.9 2-2V8c0-1.11-.89-2-2-2H8.3l8.26-3.34L15.88 1 3.24 6.15zM7 20c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm13-8h-2v-2h-2v2H4V8h16v4z\"><\/path>\n        <circle cx=\"7\" cy=\"17\" r=\"2\"><\/circle>\n      <\/svg>\n      <h3 style=\"color: #00ffff; margin-bottom: 15px;\">2009-2015 : Les d\u00e9buts de M Radio<\/h3>\n      <p>La station d\u00e9marre sous le nom de MFM Radio avec une programmation ax\u00e9e sur les tubes des ann\u00e9es 60 \u00e0 80. D\u00e8s ses d\u00e9buts, la radio se d\u00e9marque par son identit\u00e9 musicale forte et sa volont\u00e9 de faire vivre les grands classiques du rock et de la pop. Cette p\u00e9riode pose les bases de ce qui deviendra une radio de r\u00e9f\u00e9rence pour les amateurs de rock en France.<\/p>\n    <\/div>\n\n    <div style=\"background: rgba(0, 255, 255, 0.1); padding: 25px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); text-align: center; flex: 1 1 300px;\">\n      <svg style=\"width: 48px; height: 48px; margin-bottom: 15px; fill: #00ffff;\" viewBox=\"0 0 24 24\">\n        <path d=\"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z\"><\/path>\n      <\/svg>\n      <h3 style=\"color: #00ffff; margin-bottom: 15px;\">2015-2018 : La transformation<\/h3>\n      <p>MFM Radio devient M Radio, marquant un tournant majeur dans son histoire. La station modernise son format tout en conservant son ADN musical. Cette p\u00e9riode voit l'arriv\u00e9e de nouvelles \u00e9missions et le renforcement de la place du rock dans sa programmation, avec une attention particuli\u00e8re port\u00e9e aux grands classiques du genre.<\/p>\n    <\/div>\n\n    <div style=\"background: rgba(0, 255, 255, 0.1); padding: 25px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); text-align: center; flex: 1 1 300px;\">\n      <svg style=\"width: 48px; height: 48px; margin-bottom: 15px; fill: #00ffff;\" viewBox=\"0 0 24 24\">\n        <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-1-13h2v6h-2zm0 8h2v2h-2z\"><\/path>\n      <\/svg>\n      <h3 style=\"color: #00ffff; margin-bottom: 15px;\">2018-2020 : L'\u00e8re digitale<\/h3>\n      <p>M Radio entre dans l'\u00e8re num\u00e9rique avec le lancement de sa plateforme digitale et ses webradios th\u00e9matiques. La station d\u00e9veloppe sa pr\u00e9sence en ligne, propose des podcasts et des contenus exclusifs, tout en restant fid\u00e8le \u00e0 son esprit rock. Cette p\u00e9riode marque aussi l'introduction de nouvelles technologies pour am\u00e9liorer l'exp\u00e9rience d'\u00e9coute.<\/p>\n    <\/div>\n\n    <div style=\"background: rgba(0, 255, 255, 0.1); padding: 25px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); text-align: center; flex: 1 1 300px;\">\n      <svg style=\"width: 48px; height: 48px; margin-bottom: 15px; fill: #00ffff;\" viewBox=\"0 0 24 24\">\n        <path d=\"M15.9,18.5l1.7-2.6c0.2-0.3,0-0.7-0.3-0.7H14c-0.2,0-0.3,0.1-0.4,0.2l-1.7,2.6c-0.2,0.3,0,0.7,0.3,0.7h3.3 C15.7,18.7,15.8,18.6,15.9,18.5z M16.9,9.9l-4.2-6.5C12.5,3.1,12.3,3,12,3s-0.5,0.1-0.7,0.4L7.1,9.9c-0.2,0.3-0.2,0.7,0,1 C7.3,11,7.6,11.2,8,11.2h8c0.4,0,0.7-0.2,0.9-0.3C17.1,10.6,17.1,10.2,16.9,9.9z M3,21h18c0.6,0,1-0.4,1-1s-0.4-1-1-1H3 c-0.6,0-1,0.4-1,1S2.4,21,3,21z\"><\/path>\n      <\/svg>\n      <h3 style=\"color: #00ffff; margin-bottom: 15px;\">2020-aujourd'hui : Innovation continue<\/h3>\n      <p>Aujourd'hui, M Radio poursuit sa mission de faire vivre le rock sous toutes ses formes en touchant quotidiennement plus de 400 000 auditeurs. La station continue d'innover avec des formats originaux, des playlists expertes et une programmation musicale qui c\u00e9l\u00e8bre aussi bien les l\u00e9gendes du rock que les nouveaux talents. M Radio reste fid\u00e8le \u00e0 ses valeurs : proposer une programmation rock de qualit\u00e9, authentique et passionn\u00e9e.<\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n      <section class=\"popular-shows\">\n  <h2 style=\"text-align: center;\">Les \u00e9missions phares de M Radio<\/h2>\n  <div class=\"shows-grid\">\n    <div class=\"show-card\" style=\"text-align: center;\">\n  <div style=\"text-align: center;\">\n    <img decoding=\"async\" src=\"https:\/\/mradio.fr\/media\/show\/thumb\/560x560_podcast-carre-5089.webp\" alt=\"Programme Musical M Radio\" style=\"width: 120px; height: 120px; border-radius: 50%; margin-bottom: 15px; object-fit: cover; border: 3px solid #00ffff; box-shadow: 0 0 15px rgba(0, 255, 255, 0.3); display: inline-block;\">\n  <\/div>\n  <h3 style=\"text-align: center;\">M Radio R\u00e9veil<\/h3>\n  <p style=\"text-align: center;\"><strong>Du lundi au vendredi, 6h-10h<\/strong><\/p>\n  <p style=\"text-align: center;\">R\u00e9veillez-vous en musique avec Vincent Cerutti &amp; Isabelle Giami ! Une matinale dynamique et rock qui vous accompagne avec les plus grands tubes rock des ann\u00e9es 80 \u00e0 aujourd'hui. Au programme : de la bonne humeur, des infos, des jeux et surtout du rock pour bien commencer la journ\u00e9e. Une \u00e9mission qui allie parfaitement l'\u00e9nergie du rock et la convivialit\u00e9 d'une \u00e9quipe passionn\u00e9e.<\/p>\n<\/div>\n\n    <div class=\"show-card\" style=\"text-align: center;\">\n      <div style=\"text-align: center;\">\n        <img decoding=\"async\" src=\"https:\/\/mradio.fr\/media\/show\/thumb\/560x560_ombeline-carre-1-2298.webp\" alt=\"Le Grand Quiz M Radio\" style=\"width: 120px; height: 120px; border-radius: 50%; margin-bottom: 15px; object-fit: cover; border: 3px solid #00ffff; box-shadow: 0 0 15px rgba(0, 255, 255, 0.3); display: inline-block;\">\n      <\/div>\n      <h3 style=\"text-align: center;\">Le Grand Quiz M Radio<\/h3>\n      <p style=\"text-align: center;\"><strong>Du lundi au vendredi, 10h-13h<\/strong><\/p>\n      <p class=\"radio-description\" style=\"text-align: center;\">Profitez toute la journ\u00e9e d'une programmation dynamique avec Ombeline Brumain. Au menu : les meilleurs tubes rock, des jeux interactifs et un grand quiz de culture g\u00e9n\u00e9rale trois fois par jour. Une \u00e9mission qui allie divertissement, musique et partage avec les auditeurs, cr\u00e9ant une ambiance unique et entra\u00eenante.<\/p>\n<\/div>\n\n    <div class=\"show-card\" style=\"text-align: center;\">\n      <div style=\"text-align: center;\">\n        <img decoding=\"async\" src=\"https:\/\/mradio.fr\/media\/show\/thumb\/560x560_16-20-carre-1-47539.webp\" alt=\"16\/20 M Radio\" style=\"width: 120px; height: 120px; border-radius: 50%; margin-bottom: 15px; object-fit: cover; border: 3px solid #00ffff; box-shadow: 0 0 15px rgba(0, 255, 255, 0.3); display: inline-block;\">\n      <\/div>\n      <h3 style=\"text-align: center;\">Le 16\/20 M Radio<\/h3>\n      <p style=\"text-align: center;\"><strong>Du lundi au vendredi, 16h-20h<\/strong><\/p>\n      <p style=\"text-align: center;\">Retrouvez J\u00e9r\u00f4me &amp; Constance pour 4 heures de pure \u00e9nergie rock ! Une \u00e9mission interactive avec des jeux, des cadeaux et des invit\u00e9s prestigieux. Le rendez-vous incontournable des amateurs de rock, avec des sessions live exclusives et les meilleurs morceaux s\u00e9lectionn\u00e9s sp\u00e9cialement pour vous. Participez au jeu de l'ascenseur \u00e0 17h30 et 18h30 et tentez de remporter de nombreux cadeaux.<\/p>\n<\/div>\n  <\/div>\n<\/section>\n\n<section class=\"presenter-profile\" style=\"padding: 40px 0; background-color: rgba(0, 255, 255, 0.1); margin-top: 40px; border-radius: 10px;\">\n  <h2 style=\"text-align: center; color: #00ffff; margin-bottom: 30px;\">Vincent Cerutti : La voix embl\u00e9matique de M Radio<\/h2>\n  <div style=\"display: flex; gap: 30px; padding: 0 20px; flex-wrap: wrap; justify-content: center; align-items: center;\">\n    <img decoding=\"async\" src=\"https:\/\/www.premium-communication.fr\/cache\/7\/5\/0\/0\/3\/75003b28fecf8148657bdfb8092bbe66539f813c.jpeg\" alt=\"Vincent Cerutti Portrait\" style=\"width: 200px; height: 200px; border-radius: 50%; object-fit: cover; border: 3px solid #00ffff; box-shadow: 0 0 20px rgba(0, 255, 255, 0.3);\">\n    <div style=\"flex: 1; min-width: 300px; max-width: 600px;\">\n      <p style=\"color: #ffffff; line-height: 1.8; text-align: justify; margin-bottom: 15px;\">\n        Vincent Cerutti incarne le renouveau de M Radio, une station qu'il anime avec passion et dynamisme. Fort d'une exp\u00e9rience remarquable dans l'audiovisuel et la radio, il apporte son \u00e9nergie contagieuse et son expertise musicale \u00e0 cette radio rock embl\u00e9matique.\n      <\/p>\n      \n      <p style=\"color: #ffffff; line-height: 1.8; text-align: justify; margin-bottom: 15px;\">\n        \u00c0 la t\u00eate du \"16-20\" sur M Radio, Vincent Cerutti accompagne quotidiennement les auditeurs avec une s\u00e9lection musicale rock soigneusement choisie. Son \u00e9mission est devenue un rendez-vous incontournable pour les amateurs de rock, m\u00ealant grands classiques et d\u00e9couvertes contemporaines.\n      <\/p>\n\n      <p style=\"color: #ffffff; line-height: 1.8; text-align: justify; margin-bottom: 15px;\">\n        \"M Radio est une radio unique qui c\u00e9l\u00e8bre l'esprit du rock sous toutes ses formes. Notre mission est de faire vivre cette musique intemporelle tout en restant connect\u00e9s aux nouvelles tendances\", explique Vincent Cerutti. Sous son impulsion, la station maintient sa position de r\u00e9f\u00e9rence pour les amateurs de rock en France.\n      <\/p>\n\n      <p style=\"color: #ffffff; line-height: 1.8; text-align: justify;\">\n        Son approche dynamique et sa connaissance approfondie du rock ont permis \u00e0 M Radio de consolider son audience, touchant quotidiennement plus de 400 000 auditeurs. La station continue d'attirer un public passionn\u00e9, s\u00e9duit par une programmation rock authentique qui respecte l'h\u00e9ritage musical tout en embrassant la modernit\u00e9.\n      <\/p>\n      \n      <p style=\"color: #00ffff; margin-top: 20px; font-size: 0.9em;\">\n        Sources : \n        <a href=\"https:\/\/www.mradio.fr\/\" target=\"_blank\" style=\"color: #00ffff; text-decoration: underline;\">M Radio<\/a>,\n        <a href=\"https:\/\/www.lalettre.pro\/\" target=\"_blank\" style=\"color: #00ffff; text-decoration: underline;\">La Lettre Pro de la Radio<\/a>,\n        <a href=\"https:\/\/www.strategies.fr\/\" target=\"_blank\" style=\"color: #00ffff; text-decoration: underline;\">Strat\u00e9gies<\/a>\n      <\/p>\n    <\/div>\n  <\/div>\n<\/section>\n    <\/div>\n\n    <div id=\"loading-animation\" class=\"loading-animation\" style=\"display: none;\">\n      <div class=\"spinner\"><\/div>\n      <p>Chargement des stations de radio...<\/p>\n    <\/div>\n    \n    <div class=\"popular-radios-section\" style=\" box-sizing: border-box;\">\n      <h2 style=\"text-align: center;\">Stations de radio similaires en France<\/h2>\n      <h3 style=\"text-align: center; display: flex; justify-content: center; align-items: center;\">\nToutes les Webradios M radio \u00e0 \u00e9couter en direct et en illimit\u00e9 :\n<\/h3>\n      <ul id=\"popular-radios-list-france\" style=\"list-style-type: none; padding: 0;\">\n        <li style=\"margin-bottom: 10px; padding: 10px; background-color: rgba(0, 255, 255, 0.1); border-radius: 5px; cursor: pointer; transition: background-color 0.3s ease;\">\n          <img decoding=\"async\" src=\"path-to-logo.png\" alt=\"Radio Logo\" style=\"width: 65px; height: 65px; margin-right: 10px; border-radius: 50%; vertical-align: middle; box-shadow: 0 0 15px #00ffff;\">\n          <span style=\"text-shadow: 0 0 5px #fff, 0 0 10px #fff, 0 0 15px #fff; font-size: 1.5em;\">Nom de la radio<\/span>\n          <p class=\"radio-description\" style=\"margin-top: 5px; color: #cccccc;\">Description de la radio<\/p>\n        <\/li>\n      <\/ul>\n      <style>\n        #popular-radios-list-france li img {\n          width: 65px !important;\n          height: 65px !important;\n        }\n        #popular-radios-list-france li span {\n          text-shadow: 0 0 5px #fff, 0 0 10px #fff, 0 0 15px #fff;\n          font-weight: 500;\n          font-size: 1.5em;\n        }\n      <\/style>\n      <script>\n        function fetchPopularRadios() {\n          const popularRadiosFrance = [\n            { \n              name: \"M Radio Marseille\",\n          url: \"https:\/\/mfm-marseille.ice.infomaniak.ch\/mfm-marseille.mp3\",\n          description: \"M Radio - Marseille est la radio incontournable pour les amateurs de rock marseillais. Diffus\u00e9e en direct et en ligne, la station propose une programmation musicale authentique, alliant les plus grands classiques du rock aux d\u00e9couvertes locales. Retrouvez une s\u00e9lection unique de morceaux soigneusement choisis, qui mettent en valeur l'identit\u00e9 culturelle de Marseille. Avec des sons puissants et des artistes embl\u00e9matiques, M Radio - Marseille vous accompagne toute la journ\u00e9e. \u00c9coutez gratuitement M Radio - Marseille et vibrez au rythme du meilleur rock, dans une ambiance \u00e9nergique et passionn\u00e9e.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio Lyon\",\n          url: \"https:\/\/mradio-lyon.ice.infomaniak.ch\/mradio-lyon.mp3\",\n          description: \"M Radio - Lyon vous plonge au c\u0153ur de l\u2019univers rock lyonnais. Diffus\u00e9e en direct et en ligne, cette station offre un \u00e9ventail sonore \u00e9nergique et diversifi\u00e9, allant des grands classiques aux nouveaut\u00e9s surprenantes. D\u00e9couvrez une programmation qui capte l\u2019essence de Lyon, avec des morceaux soigneusement choisis pour vous accompagner tout au long de la journ\u00e9e. M Radio - Lyon met en avant le talent local, les l\u00e9gendes du rock, et des p\u00e9pites m\u00e9connues qui surprennent et inspirent. \u00c9coutez gratuitement et laissez-vous entra\u00eener par le meilleur du rock, dans une atmosph\u00e8re pleine de caract\u00e8re et d\u2019authenticit\u00e9.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - 100% Barbara\",\n          url: \"https:\/\/mwr_thema.ice.infomaniak.ch\/mwr-thema.mp3\",\n          description: \"M Radio - 100% Barbara c\u00e9l\u00e8bre l'ic\u00f4ne de la chanson fran\u00e7aise avec une programmation enti\u00e8rement d\u00e9di\u00e9e \u00e0 cette grande artiste. \u00c9coutez en direct et en ligne les plus belles chansons de Barbara, des classiques intemporels aux morceaux moins connus qui m\u00e9ritent d\u2019\u00eatre red\u00e9couverts. Chaque titre est choisi avec soin pour vous offrir une immersion totale dans l'univers unique de Barbara, rempli de po\u00e9sie, d'\u00e9motion, et d'authenticit\u00e9. Profitez gratuitement de ce voyage musical exceptionnel et laissez-vous transporter par la voix incomparable de Barbara, dans une ambiance intime et touchante.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - 100% Mix\",\n          url: \"https:\/\/mwr-mix.ice.infomaniak.ch\/mwr-mix.mp3\",\n          description: \"M Radio - 100% Mix vous offre une vari\u00e9t\u00e9 musicale sans limite, parfaite pour ceux qui aiment \u00eatre surpris \u00e0 chaque morceau. Diffus\u00e9e en direct et en ligne, la station vous fait voyager entre diff\u00e9rentes \u00e9poques et styles, toujours avec le m\u00eame enthousiasme. Des classiques incontournables aux derni\u00e8res nouveaut\u00e9s, chaque titre a \u00e9t\u00e9 choisi pour enrichir votre exp\u00e9rience d'\u00e9coute. Plongez dans un univers sonore dynamique et diversifi\u00e9, o\u00f9 le rock, la pop, et bien plus encore se m\u00e9langent pour le plaisir de vos oreilles. \u00c9coutez gratuitement et laissez-vous porter par une ambiance \u00e9nergique et impr\u00e9visible.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Acoustique\",\n          url: \"https:\/\/mradio-acoustique.ice.infomaniak.ch\/mradio-acoustique.mp3\",\n          description: \"M Radio - Acoustique vous invite \u00e0 savourer une s\u00e9lection de titres en version acoustique, o\u00f9 la musique se fait pure et intime. Diffus\u00e9e en direct et en ligne, cette station met en avant des performances d\u00e9pouill\u00e9es, offrant une \u00e9coute authentique et pleine d\u2019\u00e9motion. Chaque morceau acoustique d\u00e9voile une nouvelle facette des chansons que vous aimez, soulignant la richesse des voix et la subtilit\u00e9 des instruments. \u00c9coutez gratuitement M Radio - Acoustique et laissez-vous emporter par l'essence m\u00eame de la musique, dans une atmosph\u00e8re apaisante et sinc\u00e8re.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Ann\u00e9es 2000\",\n          url: \"https:\/\/mfmwr-020.ice.infomaniak.ch\/mfmwr-020.mp3\",\n          description: \"M Radio - Ann\u00e9es 2000 vous replonge dans la d\u00e9cennie des tubes inoubliables qui ont marqu\u00e9 les ann\u00e9es 2000. Diffus\u00e9e en direct et en ligne, cette station ravive l\u2019ambiance festive et unique de cette \u00e9poque, avec des morceaux qui ont fait vibrer toute une g\u00e9n\u00e9ration. Red\u00e9couvrez les artistes iconiques, les m\u00e9lodies entra\u00eenantes et les rythmes pop-rock qui ont d\u00e9fini ces ann\u00e9es. M Radio - Ann\u00e9es 2000 vous propose de revivre ces moments forts, gratuitement, et de savourer un retour musical qui ne manque pas de nostalgie.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio Ann\u00e9es 80\",\n          url: \"https:\/\/mfmwr-010.ice.infomaniak.ch\/mfmwr-010.mp3\",\n          description: \"M Radio - Ann\u00e9es 80 vous transporte au c\u0153ur de la d\u00e9cennie des hits l\u00e9gendaires et des sonorit\u00e9s synth\u00e9tiques inoubliables. Diffus\u00e9e en direct et en ligne, cette station revisite les morceaux embl\u00e9matiques qui ont fait vibrer les ann\u00e9es 80. Plongez dans l\u2019univers des ic\u00f4nes pop, des riffs \u00e9lectro, et des ballades qui ont marqu\u00e9 cette \u00e9poque flamboyante. \u00c9coutez gratuitement M Radio - Ann\u00e9es 80 et retrouvez l\u2019\u00e9nergie des chansons qui ont fait danser une g\u00e9n\u00e9ration enti\u00e8re, pour un voyage musical plein de souvenirs et de bonne humeur.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Ann\u00e9es 90\",\n          url: \"https:\/\/mfm-thema.ice.infomaniak.ch\/mfm-thema.mp3\",\n          description: \"M Radio - Ann\u00e9es 90 vous replonge dans la d\u00e9cennie des tubes iconiques et des rythmes inoubliables des ann\u00e9es 90. Diffus\u00e9e en direct et en ligne, la station met en avant le meilleur de la pop, du grunge, du hip-hop, et des ballades qui ont fait danser et r\u00eaver une g\u00e9n\u00e9ration. Red\u00e9couvrez les artistes et les hits qui ont marqu\u00e9 cette p\u00e9riode, des incontournables aux morceaux plus rares. M Radio - Ann\u00e9es 90 vous offre une exp\u00e9rience d'\u00e9coute pleine de nostalgie, \u00e0 savourer gratuitement, pour revivre les meilleurs moments musicaux des ann\u00e9es 90.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - C\u00e9line Dion\",\n          url: \"https:\/\/mfmwr-023.ice.infomaniak.ch\/mfmwr-023.mp3\",\n          description: \"M Radio - C\u00e9line Dion vous invite \u00e0 un voyage musical \u00e0 travers les plus grands succ\u00e8s de l'artiste l\u00e9gendaire. Diffus\u00e9e en direct et en ligne, la station c\u00e9l\u00e8bre la carri\u00e8re impressionnante de C\u00e9line Dion, avec ses ballades inoubliables et ses performances puissantes qui ont touch\u00e9 des millions de c\u0153urs. D\u00e9couvrez ou red\u00e9couvrez ses plus belles chansons, des classiques intemporels aux morceaux plus r\u00e9cents. M Radio - C\u00e9line Dion vous offre une immersion totale dans l'univers de la diva, pour une \u00e9coute gratuite, pleine d'\u00e9motion et de passion.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Chouchou\",\n          url: \"https:\/\/mwr-chouchou.ice.infomaniak.ch\/mwr-chouchou.mp3\",\n          description: \"M Radio - Chouchou est la station qui vous fait red\u00e9couvrir vos artistes pr\u00e9f\u00e9r\u00e9s, ceux qui vous accompagnent au quotidien et qui occupent une place sp\u00e9ciale dans votre c\u0153ur. Diffus\u00e9e en direct et en ligne, cette station propose un m\u00e9lange doux et familier des morceaux les plus aim\u00e9s, ceux qui sont devenus vos v\u00e9ritables chouchous. Retrouvez des chansons inoubliables et des titres actuels qui vous touchent, avec une ambiance chaleureuse et r\u00e9confortante. \u00c9coutez gratuitement M Radio - Chouchou et laissez-vous porter par les m\u00e9lodies qui vous apportent du bonheur et vous rappellent de beaux moments.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Com\u00e9dies Musicales\",\n          url: \"https:\/\/mfmwr-014.ice.infomaniak.ch\/mfmwr-014.mp3\",\n          description: \"M Radio - Com\u00e9dies Musicales vous plonge dans l'univers magique des sc\u00e8nes et spectacles l\u00e9gendaires. Diffus\u00e9e en direct et en ligne, cette station met \u00e0 l'honneur les plus grandes com\u00e9dies musicales, fran\u00e7aises et internationales. Revivez les moments inoubliables des spectacles qui ont marqu\u00e9 l'histoire, des airs entra\u00eenants aux ballades \u00e9mouvantes. Avec M Radio - Com\u00e9dies Musicales, red\u00e9couvrez les artistes, les chansons, et les histoires qui font r\u00eaver, pour une exp\u00e9rience musicale enrichissante et pleine de magie. \u00c9coutez gratuitement et laissez-vous porter par l'\u00e9motion de la sc\u00e8ne, directement chez vous.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Comptines\",\n          url: \"https:\/\/mfmwr-019.ice.infomaniak.ch\/mfmwr-019.mp3\",\n          description: \"M Radio - Comptines est la station id\u00e9ale pour divertir et \u00e9merveiller les plus petits. Diffus\u00e9e en direct et en ligne, elle propose un r\u00e9pertoire de comptines classiques et de chansons pour enfants qui accompagnent chaque moment de la journ\u00e9e. Faites d\u00e9couvrir aux enfants des m\u00e9lodies amusantes et \u00e9ducatives, interpr\u00e9t\u00e9es avec douceur et chaleur. Avec M Radio - Comptines, chantez et dansez sur des airs familiers qui stimulent l'imaginaire, tout en cr\u00e9ant des moments de complicit\u00e9 en famille. \u00c9coutez gratuitement et laissez la magie des comptines transformer chaque instant en un souvenir joyeux.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Cultes Ann\u00e9es 60 et 70\",\n          url: \"https:\/\/mfmwr-022.ice.infomaniak.ch\/mfmwr-022.mp3\",\n          description: \"M Radio - Cultes Ann\u00e9es 60 et 70 vous transporte dans les d\u00e9cennies qui ont r\u00e9volutionn\u00e9 la musique. Diffus\u00e9e en direct et en ligne, la station c\u00e9l\u00e8bre les hits embl\u00e9matiques et les artistes l\u00e9gendaires qui ont marqu\u00e9 ces deux d\u00e9cennies inoubliables. Plongez dans l'univers des Beatles, des Rolling Stones, des grands chanteurs soul, et des ballades rock mythiques. M Radio - Cultes Ann\u00e9es 60 et 70 offre une s\u00e9lection soigneusement choisie pour retrouver l'\u00e9nergie, la cr\u00e9ativit\u00e9, et l'esprit libre de ces ann\u00e9es. \u00c9coutez gratuitement et revivez les moments forts d'une \u00e9poque qui a chang\u00e9 la musique pour toujours.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - D\u00e9tente\",\n          url: \"https:\/\/mfmwr-009.ice.infomaniak.ch\/mfmwr-009.mp3\",\n          description: \"M Radio - D\u00e9tente est la station parfaite pour s'\u00e9vader et se relaxer. Diffus\u00e9e en direct et en ligne, elle propose une programmation douce et apaisante, con\u00e7ue pour vous offrir des moments de calme et de s\u00e9r\u00e9nit\u00e9. Retrouvez des morceaux soigneusement choisis, des m\u00e9lodies apaisantes et des voix r\u00e9confortantes, parfaits pour se relaxer apr\u00e8s une longue journ\u00e9e ou simplement s'offrir une pause bien m\u00e9rit\u00e9e. Avec M Radio - D\u00e9tente, profitez gratuitement d'une atmosph\u00e8re musicale qui invite \u00e0 la d\u00e9tente, o\u00f9 que vous soyez.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Duos\",\n          url: \"https:\/\/mfmwr-015.ice.infomaniak.ch\/mfmwr-015.mp3\",\n          description: \"M Radio - Duos c\u00e9l\u00e8bre les plus beaux duos de la musique, ceux qui ont marqu\u00e9 l\u2019histoire et touch\u00e9 des millions de c\u0153urs. Diffus\u00e9e en direct et en ligne, la station propose une s\u00e9lection des meilleurs titres interpr\u00e9t\u00e9s \u00e0 deux, des ballades \u00e9mouvantes aux chansons rythm\u00e9es et entra\u00eenantes. Red\u00e9couvrez la magie des voix qui se compl\u00e8tent, cr\u00e9ant une harmonie parfaite et des moments inoubliables. Avec M Radio - Duos, plongez gratuitement dans des collaborations mythiques et des rencontres musicales qui continuent de captiver les auditeurs.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Enfoir\u00e9s\",\n          url: \"https:\/\/mfmwr-011.ice.infomaniak.ch\/mfmwr-011.mp3\",\n          description: \"M Radio - Enfoir\u00e9s vous plonge au c\u0153ur de la solidarit\u00e9 et de l\u2019\u00e9motion avec les chansons embl\u00e9matiques des Enfoir\u00e9s. Diffus\u00e9e en direct et en ligne, cette station rassemble les plus grands titres interpr\u00e9t\u00e9s par cette troupe d'artistes engag\u00e9s, qui chantent au profit des Restos du C\u0153ur. Red\u00e9couvrez les reprises, les moments de sc\u00e8ne m\u00e9morables, et l\u2019\u00e9nergie incroyable qui anime chaque spectacle. M Radio - Enfoir\u00e9s est l\u00e0 pour vous offrir gratuitement une s\u00e9lection de performances vibrantes et porteuses d'espoir, c\u00e9l\u00e9brant la g\u00e9n\u00e9rosit\u00e9 et la musique en toute simplicit\u00e9.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Fitness\",\n          url: \"https:\/\/mfmwr-004.ice.infomaniak.ch\/mfmwr-004.mp3\",\n          description: \"M Radio - Fitness est la station id\u00e9ale pour vous motiver pendant vos s\u00e9ances de sport. Diffus\u00e9e en direct et en ligne, elle vous propose une playlist dynamique et entra\u00eenante, parfaite pour accompagner vos entra\u00eenements, que ce soit \u00e0 la salle de sport ou \u00e0 la maison. Retrouvez des morceaux au rythme \u00e9nergique, des classiques aux hits actuels, pour booster votre \u00e9nergie et vous donner envie de bouger. Avec M Radio - Fitness, acc\u00e9dez gratuitement \u00e0 une ambiance musicale survolt\u00e9e, pens\u00e9e pour soutenir chaque effort et vous aider \u00e0 atteindre vos objectifs.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Francophonie\",\n          url: \"https:\/\/mfmwr-018.ice.infomaniak.ch\/mfmwr-018.mp3\",\n          description: \"M Radio - Francophonie c\u00e9l\u00e8bre la richesse de la musique francophone \u00e0 travers le monde. Diffus\u00e9e en direct et en ligne, la station vous propose une programmation vari\u00e9e qui met \u00e0 l\u2019honneur les artistes de la sc\u00e8ne francophone, des classiques intemporels aux nouveaux talents. Plongez dans un univers musical qui traverse les fronti\u00e8res, r\u00e9unissant des sons venus de France, de Belgique, du Canada, d'Afrique et d\u2019ailleurs. M Radio - Francophonie vous offre gratuitement une s\u00e9lection de morceaux vibrants qui t\u00e9moignent de la diversit\u00e9 culturelle et de la beaut\u00e9 de la langue fran\u00e7aise.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - French Touch\",\n          url: \"https:\/\/mfmwr-003.ice.infomaniak.ch\/mfmwr-003.mp3\",\n          description: \"M Radio - French Touch vous plonge dans l'univers \u00e9lectro chic et groovy qui a marqu\u00e9 les ann\u00e9es 90 et 2000. Diffus\u00e9e en direct et en ligne, cette station c\u00e9l\u00e8bre la sc\u00e8ne musicale fran\u00e7aise qui a su conqu\u00e9rir le monde avec ses sons innovants et sa signature inimitable. De Daft Punk \u00e0 Air, en passant par Justice, revivez les morceaux embl\u00e9matiques de la French Touch et laissez-vous porter par des rythmes \u00e9lectro sophistiqu\u00e9s. Avec M Radio - French Touch, \u00e9coutez gratuitement des sons qui allient modernit\u00e9 et nostalgie, pour vibrer au rythme de l'excellence musicale fran\u00e7aise.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - G\u00e9n\u00e9riques TV\",\n          url: \"https:\/\/mfmwr-021.ice.infomaniak.ch\/mfmwr-021.mp3\",\n          description: \"M Radio - G\u00e9n\u00e9riques TV vous replonge dans l'univers des s\u00e9ries et \u00e9missions cultes \u00e0 travers leurs g\u00e9n\u00e9riques embl\u00e9matiques. Diffus\u00e9e en direct et en ligne, cette station propose une s\u00e9lection des g\u00e9n\u00e9riques qui ont rythm\u00e9 vos moments devant la t\u00e9l\u00e9vision, des classiques intemporels aux titres plus r\u00e9cents. Retrouvez les m\u00e9lodies qui ont marqu\u00e9 votre enfance ou vos soir\u00e9es t\u00e9l\u00e9, des dessins anim\u00e9s aux s\u00e9ries populaires. M Radio - G\u00e9n\u00e9riques TV vous offre gratuitement l'occasion de revivre l'\u00e9motion des premi\u00e8res notes qui annoncent vos programmes pr\u00e9f\u00e9r\u00e9s, cr\u00e9ant une v\u00e9ritable vague de nostalgie.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - 100% Goldman\",\n          url: \"https:\/\/mfmwr-016.ice.infomaniak.ch\/mfmwr-016.mp3\",\n          description: \"M Radio - 100% Goldman est une station d\u00e9di\u00e9e exclusivement \u00e0 l'\u0153uvre de Jean-Jacques Goldman, l'un des artistes les plus embl\u00e9matiques de la chanson fran\u00e7aise. Diffus\u00e9e en direct et en ligne, cette radio propose une programmation riche des plus grands succ\u00e8s de Goldman, offrant aux auditeurs une immersion totale dans son univers musical. Des titres phares comme Quand la musique est bonne ou Je te donne aux collaborations marquantes avec d'autres artistes, M Radio - 100% Goldman c\u00e9l\u00e8bre l'h\u00e9ritage musical de cet auteur-compositeur-interpr\u00e8te de renom. \u00c9coutez gratuitement et red\u00e9couvrez les chansons qui ont marqu\u00e9 plusieurs g\u00e9n\u00e9rations\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio 100% Johnny\",\n          url: \"https:\/\/mfmwr-006.ice.infomaniak.ch\/mfmwr-006.mp3\",\n          description: \"M Radio - 100% Johnny est une station d\u00e9di\u00e9e exclusivement \u00e0 l'\u0153uvre de Johnny Hallyday, l'ic\u00f4ne du rock fran\u00e7ais. Diffus\u00e9e en direct et en ligne, cette radio propose une programmation riche en concerts live, duos et tous les tubes incontournables de l'artiste, tels que Allumer le feu, Le p\u00e9nitencier, Ma gueule et des titres plus r\u00e9cents comme De l'amour. Disponible 24h\/24 et 7j\/7, M Radio - 100% Johnny offre aux auditeurs une immersion totale dans l'univers musical de Johnny Hallyday.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Le M\u00e9nage en Musique\",\n          url: \"https:\/\/mradio-le-menage-en-musique.ice.infomaniak.ch\/mradio-le-menage-en-musique.aac\",\n          description: \"M Radio - Le M\u00e9nage en Musique est une station d\u00e9di\u00e9e \u00e0 accompagner vos t\u00e2ches m\u00e9nag\u00e8res avec une s\u00e9lection de chansons fran\u00e7aises entra\u00eenantes. Diffus\u00e9e en direct et en ligne, elle propose une programmation vari\u00e9e pour rendre vos sessions de nettoyage plus agr\u00e9ables. Des classiques aux nouveaut\u00e9s, chaque titre est choisi pour vous motiver et \u00e9gayer votre quotidien. \u00c9coutez gratuitement M Radio - Le M\u00e9nage en Musique et transformez vos corv\u00e9es en moments plaisants gr\u00e2ce \u00e0 la musique.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Live\",\n          url: \"https:\/\/mfmwr-008.ice.infomaniak.ch\/mfmwr-008.mp3\",\n          description: \"M Radio - Live est une station d\u00e9di\u00e9e aux performances en direct des plus grands artistes de la chanson fran\u00e7aise. Diffus\u00e9e en continu et en ligne, elle propose une programmation vari\u00e9e de concerts live, offrant une exp\u00e9rience immersive aux auditeurs. Des artistes tels que BB Brunes, Lara Fabian, Joyce Jonathan, et Pascal Obispo y interpr\u00e8tent leurs titres en version live, capturant l'\u00e9nergie et l'\u00e9motion de la sc\u00e8ne. \u00c9coutez gratuitement M Radio - Live et plongez au c\u0153ur des performances authentiques qui ont marqu\u00e9 la sc\u00e8ne musicale fran\u00e7aise.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - No\u00ebl\",\n          url: \"https:\/\/mwr-thema.ice.infomaniak.ch\/mwr-thema.mp3\",\n          description: \"M Radio - No\u00ebl propose une programmation sp\u00e9ciale d\u00e9di\u00e9e aux f\u00eates de fin d'ann\u00e9e, avec une s\u00e9lection des plus belles chansons de No\u00ebl, m\u00ealant classiques intemporels et nouveaut\u00e9s festives. Accessible gratuitement en ligne, M Radio - No\u00ebl cr\u00e9e une ambiance chaleureuse et festive, id\u00e9ale pour accompagner vos pr\u00e9paratifs et c\u00e9l\u00e9brations de No\u00ebl. Plongez dans la magie des f\u00eates en \u00e9coutant des titres interpr\u00e9t\u00e9s par vos artistes fran\u00e7ais pr\u00e9f\u00e9r\u00e9s, et laissez-vous emporter par l'esprit de No\u00ebl gr\u00e2ce \u00e0 cette programmation musicale d\u00e9di\u00e9e.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Nouveaut\u00e9s\",\n          url: \"https:\/\/mfmwr-005.ice.infomaniak.ch\/mfmwr-005.mp3\",\n          description: \"M Radio - Nouveaut\u00e9s est une station d\u00e9di\u00e9e aux derni\u00e8res tendances de la chanson fran\u00e7aise. Diffus\u00e9e en direct et en ligne, elle propose une programmation mettant en avant les nouveaux talents et les sorties r\u00e9centes, offrant ainsi une exp\u00e9rience musicale toujours \u00e0 jour. Les auditeurs peuvent d\u00e9couvrir les morceaux les plus populaires d'artistes contemporains de divers genres, garantissant ainsi la vari\u00e9t\u00e9 et la pertinence du contenu musical. \u00c9coutez gratuitement M Radio - Nouveaut\u00e9s et restez connect\u00e9 aux \u00e9volutions de la sc\u00e8ne musicale fran\u00e7aise.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Nouvelle Sc\u00e8ne\",\n          url: \"https:\/\/mfmwr-012.ice.infomaniak.ch\/mfmwr-012.mp3\",\n          description: \"M Radio - Nouvelle Sc\u00e8ne est une station d\u00e9di\u00e9e aux artistes \u00e9mergents de la sc\u00e8ne musicale fran\u00e7aise. Diffus\u00e9e en direct et en ligne, elle met en lumi\u00e8re les talents de demain, offrant une plateforme aux voix et aux styles innovants qui enrichissent le paysage musical francophone. Les auditeurs peuvent d\u00e9couvrir une programmation vari\u00e9e, allant de la pop \u00e0 la chanson fran\u00e7aise, en passant par des genres plus alternatifs, refl\u00e9tant la diversit\u00e9 et la cr\u00e9ativit\u00e9 des nouveaux artistes. \u00c9coutez gratuitement M Radio - Nouvelle Sc\u00e8ne et plongez dans l'univers des talents \u00e9mergents qui fa\u00e7onnent la musique fran\u00e7aise contemporaine.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - S\u00e9ducteurs\",\n          url: \"https:\/\/mfmwr-017.ice.infomaniak.ch\/mfmwr-017.mp3\",\n          description: \"M Radio - S\u00e9ducteurs est une station d\u00e9di\u00e9e aux voix masculines les plus charismatiques de la chanson fran\u00e7aise. Diffus\u00e9e en direct et en ligne, elle propose une programmation mettant en avant des artistes tels que M. Pokora, William Sheller, Julien Dor\u00e9, et bien d'autres, offrant une exp\u00e9rience musicale empreinte de romance et de passion. Les auditeurs peuvent d\u00e9couvrir des morceaux envo\u00fbtants et s\u00e9duisants, s\u00e9lectionn\u00e9s pour leur charme et leur intensit\u00e9 \u00e9motionnelle. \u00c9coutez gratuitement M Radio - S\u00e9ducteurs et laissez-vous transporter par les voix qui font battre le c\u0153ur de la chanson fran\u00e7aise.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Sur la Route\",\n          url: \"https:\/\/voix-du-sud.ice.infomaniak.ch\/voix-du-sud.mp3\",\n          description: \"M Radio - Sur la Route est une station d\u00e9di\u00e9e \u00e0 accompagner vos trajets avec le meilleur de la chanson fran\u00e7aise. Diffus\u00e9e en direct et en ligne, elle propose une s\u00e9lection musicale vari\u00e9e, id\u00e9ale pour rendre vos voyages plus agr\u00e9ables. Des classiques intemporels aux nouveaut\u00e9s, chaque titre est choisi pour vous offrir une exp\u00e9rience d'\u00e9coute plaisante et adapt\u00e9e \u00e0 la route. \u00c9coutez gratuitement M Radio - Sur la Route et laissez-vous guider par des m\u00e9lodies qui transforment chaque d\u00e9placement en un moment de plaisir musical.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Talents de la T\u00e9l\u00e9\",\n          url: \"https:\/\/mfmwr-025.ice.infomaniak.ch\/mfmwr-025.mp3\",\n          description: \"M Radio - Talents de la T\u00e9l\u00e9 est une station d\u00e9di\u00e9e aux artistes r\u00e9v\u00e9l\u00e9s par des \u00e9missions t\u00e9l\u00e9vis\u00e9es telles que The Voice et Nouvelle Star. Diffus\u00e9e en direct et en ligne, elle propose une programmation mettant en avant des chanteurs et chanteuses issus de la t\u00e9l\u00e9vision fran\u00e7aise, comme Amir, Kendji, Louane, et Fr\u00e9ro Delavega. Les auditeurs peuvent d\u00e9couvrir ou red\u00e9couvrir les morceaux qui ont marqu\u00e9 ces parcours artistiques, offrant une exp\u00e9rience musicale riche et vari\u00e9e. \u00c9coutez gratuitement M Radio - Talents de la T\u00e9l\u00e9 et plongez dans l'univers des talents r\u00e9v\u00e9l\u00e9s par le petit \u00e9cran.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Top 50\",\n          url: \"https:\/\/mfmwr-007.ice.infomaniak.ch\/mfmwr-007.mp3\",\n          description: \"M Radio - Top 50 est une station d\u00e9di\u00e9e aux plus grands tubes qui ont marqu\u00e9 le c\u00e9l\u00e8bre classement musical fran\u00e7ais. Diffus\u00e9e en direct et en ligne, elle propose une programmation vari\u00e9e, revisitant les titres embl\u00e9matiques qui ont domin\u00e9 les charts au fil des d\u00e9cennies. Les auditeurs peuvent red\u00e9couvrir des morceaux qui ont fait danser et chanter des g\u00e9n\u00e9rations enti\u00e8res, des ann\u00e9es 80 \u00e0 aujourd'hui. \u00c9coutez gratuitement M Radio - N\u00b01 du Top 50 et plongez dans l'univers des hits qui ont fa\u00e7onn\u00e9 la sc\u00e8ne musicale fran\u00e7aise.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            },\n            { \n              name: \"M Radio - Tubes du Grenier\",\n          url: \"https:\/\/mfmwr-001.ice.infomaniak.ch\/mfmwr-001.mp3\",\n          description: \"M Radio - Tubes du Grenier est une station d\u00e9di\u00e9e aux classiques intemporels de la chanson fran\u00e7aise. Diffus\u00e9e en direct et en ligne, elle propose une programmation riche en titres qui ont marqu\u00e9 les d\u00e9cennies pass\u00e9es, offrant aux auditeurs une exp\u00e9rience musicale nostalgique et authentique. Des artistes embl\u00e9matiques tels que Niagara, Jeanne Mas, Julie Pietri, \u00c9tienne Daho, Patrick Coutin, Gold, et M\u00e9lodie y sont r\u00e9guli\u00e8rement diffus\u00e9s, permettant de red\u00e9couvrir les morceaux qui ont domin\u00e9 les classements du Top 50. \u00c9coutez gratuitement M Radio - Tubes du Grenier et replongez dans l'univers des chansons qui ont berc\u00e9 des g\u00e9n\u00e9rations enti\u00e8res.\",\n          favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/1200px-Logo_Mradio.png\",\n              isWebRadio: true\n            }\n          ];\n\n          const popularRadiosListFrance = document.getElementById('popular-radios-list-france');\n          popularRadiosListFrance.innerHTML = '';\n\n          popularRadiosFrance.forEach((station, index) => {\n            const li = document.createElement('li');\n            li.innerHTML = `\n              <img decoding=\"async\" src=\"${station.favicon}\" alt=\"${station.name} logo\" style=\"width: 65px; height: 65px; margin-right: 10px; border-radius: 50%; vertical-align: middle;\">\n              <span style=\"font-size: 1.5em;\">${station.name}<\/span>\n              <p class=\"radio-description\">${station.description}<\/p>\n            `;\n\n            li.addEventListener('click', () => {\n              let stationToPlay = {\n                url_resolved: station.url,\n                name: station.name,\n                favicon: station.favicon || null,\n                description: station.description,\n                isWebRadio: station.isWebRadio \/\/ Ajout de la propri\u00e9t\u00e9 isWebRadio\n              };\n\n              const detailedStation = allStations.find(s => s.name.toLowerCase() === station.name.toLowerCase());\n              \n              if (detailedStation) {\n                stationToPlay.favicon = stationToPlay.favicon || detailedStation.favicon;\n                stationToPlay.tags = detailedStation.tags || '';\n              }\n\n              playStation(stationToPlay);\n\n              \/\/ Masquer la grille des programmes si c'est une webradio\n              const programGrid = document.querySelector('.program-grid');\n              if (programGrid) {\n                programGrid.style.display = stationToPlay.isWebRadio ? 'none' : 'block';\n              }\n            });\n\n            popularRadiosListFrance.appendChild(li);\n          });\n        }\n      <\/script>\n    <\/div>\n  <\/div>\n\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/axios\/0.21.1\/axios.min.js\"><\/script>\n<script src=\"https:\/\/code.jquery.com\/jquery-3.6.0.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/select2@4.1.0-rc.0\/dist\/js\/select2.min.js\"><\/script>\n<script>\nlet favorites = JSON.parse(localStorage.getItem('favorites')) || [];\nlet history = JSON.parse(localStorage.getItem('history')) || [];\nlet currentTab = 'all';\n\nconst searchInput = document.getElementById('search-input');\nconst searchButton = document.getElementById('search-button');\nconst resultsContainer = document.getElementById('results-container');\nconst playerModal = document.getElementById('player-modal');\nconst paginationContainer = document.getElementById('pagination-container');\nconst prevButton = document.getElementById('prev-button');\nconst nextButton = document.getElementById('next-button');\nconst audioElement = new Audio();\nlet currentStation = null;\nlet currentPage = 1;\nlet stationsPerPage = 20;\nlet totalPages = 0;\nconst pageNumbersContainer = document.getElementById('page-numbers');\nconst playPauseButton = document.getElementById('play-pause');\nconst volumeSlider = document.getElementById('volume-slider');\nconst muteUnmuteButton = document.getElementById('mute-unmute');\nconst closeModalButton = document.querySelector('.close');\nconst chromecastButton = document.getElementById('chromecast-button');\n\ndocument.getElementById('listen-live').addEventListener('click', function() {\n  const sudRadioStation = {\n    name: \"M Radio\",\n    url_resolved: \"https:\/\/mfm.ice.infomaniak.ch\/mfm-128.mp3\",\n    favicon: \"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/1\/15\/Logo_Mradio.png\/800px-Logo_Mradio.png\",\n    description: \"M Radio fait vibrer chaque jour des milliers de fans de rock, en restant fid\u00e8le \u00e0 son ADN musical. Avec des playlists explosives, une programmation orient\u00e9e rock et une \u00e9nergie brute, M Radio c\u00e9l\u00e8bre les l\u00e9gendes du rock et les nouveaux talents qui font battre le c\u0153ur des passionn\u00e9s. La station continue d'innover, tout en gardant son esprit rebelle et authentique, pour offrir \u00e0 ses auditeurs la meilleure exp\u00e9rience rock, sans compromis.\",\n    tags: \"Mradio, Rock, Metal, hits\",\n    bitrate: \"128\"\n  };\n  playStation(sudRadioStation);\n});\n\nfunction showLoadingAnimation() {\n  document.getElementById('loading-animation').style.display = 'flex';\n}\n\nfunction hideLoadingAnimation() {\n  document.getElementById('loading-animation').style.display = 'none';\n}\n\nfunction playStation(station) {\n  if (!station) return;\n\n  if (!station.url_resolved) {\n    station.url_resolved = `https:\/\/example.com\/stream\/${station.name.replace(\/\\s+\/g, '-').toLowerCase()}`;\n  }\n\n  audioElement.src = station.url_resolved;\n  audioElement.play().catch(error => console.error('Error playing audio:', error));\n  currentStation = station;\n  updateModalUI();\n  openModal();\n  addToHistory(station);\n}\n\nfunction handleTagClick(event) {\n  if (event.target.classList.contains('tag-vignette')) {\n    const tag = event.target.textContent.trim();\n    closeModal();\n    addCategoryToSelect(tag);\n    performSearch(tag);\n  }\n}\n\nfunction addCategoryToSelect(category) {\n  if (!$('#category-select').find(\"option[value='\" + category + \"']\").length) {\n    var newOption = new Option(category, category, true, true);\n    $('#category-select').append(newOption).trigger('change');\n  }\n}\n\nfunction extractCategories(stations) {\n  const categories = {};\n  stations.forEach(station => {\n    if (station.tags) {\n      station.tags.split(',').forEach(tag => {\n        const trimmedTag = tag.trim();\n        if (trimmedTag.length <= 20) {\n          categories[trimmedTag] = (categories[trimmedTag] || 0) + 1;\n        }\n      });\n    }\n  });\n  return Object.entries(categories)\n    .sort((a, b) => b[1] - a[1])\n    .slice(0, 10)\n    .map(([category]) => category);\n}\n\nfunction renderCategoryVignettes(categories) {\n  return `\n    <div class=\"category-vignettes\">\n      ${categories.map(category => `\n        <span class=\"tag-vignette\" onclick=\"performSearch('${category}')\">${category}<\/span>\n      `).join('')}\n    <\/div>\n  `;\n}\n\nfunction updateModalUI() {\n  if (!currentStation) return;\n\n  const stationLogo = document.getElementById('station-logo');\n  const stationName = document.getElementById('station-name');\n  const stationCountry = document.getElementById('station-country');\n  const stationDescription = document.getElementById('station-description');\n  const stationTags = document.getElementById('station-tags');\n  const stationBitrate = document.getElementById('station-bitrate');\n\n  if (stationLogo) stationLogo.src = currentStation.favicon || 'https:\/\/pacific-webtools.com\/radio-online\/wp-content\/uploads\/2024\/10\/logo-15.webp';\n  if (stationName) stationName.textContent = currentStation.name || 'Station inconnue';\n  if (stationCountry) stationCountry.textContent = 'France';\n  if (stationDescription) stationDescription.textContent = currentStation.homepage || 'Aucune description disponible';\n  \n  if (stationTags) {\n    const tags = currentStation.tags ? currentStation.tags.split(',') : [];\n    stationTags.innerHTML = tags.map(tag => `<span class=\"tag-vignette\">${tag.trim()}<\/span>`).join('');\n    stationTags.addEventListener('click', handleTagClick);\n  }\n  \n  if (stationBitrate) stationBitrate.textContent = `D\u00e9bit binaire : ${currentStation.bitrate || 'Inconnu'} kbps`;\n}\n\nfunction performSearch(tag) {\n  showLoadingAnimation();\n  const query = tag || (searchInput ? searchInput.value.trim() : '');\n  const category = $('#category-select').val();\n  let url = 'https:\/\/de1.api.radio-browser.info\/json\/stations\/search?limit=1000&country=France';\n  \n  if (query || category) {\n    if (query) {\n      if (tag) {\n        url += `&tag=${encodeURIComponent(query)}`;\n      } else {\n        url += `&name=${encodeURIComponent(query)}`;\n      }\n    }\n    if (category && !tag) {\n      url += `&tag=${encodeURIComponent(category)}`;\n    }\n  }\n\n  axios.get(url)\n    .then(response => {\n      if (response && response.data) {\n        allStations = response.data\n          .filter(station => station.url_resolved && station.url_resolved.startsWith('https:\/\/'))\n          .sort((a, b) => a.name.localeCompare(b.name));\n        totalPages = Math.ceil(allStations.length \/ stationsPerPage);\n        currentPage = 1;\n        currentTab = 'all';\n        document.querySelectorAll('.tab').forEach(t => t.classList.remove('active'));\n        document.querySelector('.tab[data-tab=\"all\"]').classList.add('active');\n        displayResults();\n        updatePagination();\n        fetchPopularRadios(); \n      } else {\n        throw new Error('Invalid response data');\n      }\n    })\n    .catch(error => {\n      console.error('Error fetching radio stations:', error);\n      if (resultsContainer) {\n        resultsContainer.innerHTML = '<p>Erreur lors de la r\u00e9cup\u00e9ration des stations de radio. Veuillez r\u00e9essayer.<\/p>';\n      }\n      if (paginationContainer) {\n        paginationContainer.style.display = 'none';\n      }\n    })\n    .finally(() => {\n      hideLoadingAnimation();\n    });\n}\n\nfunction displayResults() {\n  if (!resultsContainer) return;\n\n  resultsContainer.innerHTML = '';\n  const categoryVignettesContainer = document.querySelector('.category-vignettes-container');\n  categoryVignettesContainer.innerHTML = '';\n  let stationsToShow = [];\n\n  if (currentTab === 'all') {\n    const startIndex = (currentPage - 1) * stationsPerPage;\n    const endIndex = startIndex + stationsPerPage;\n    stationsToShow = allStations.slice(startIndex, endIndex);\n  } else if (currentTab === 'favorites') {\n    const startIndex = (currentPage - 1) * stationsPerPage;\n    const endIndex = startIndex + stationsPerPage;\n    stationsToShow = favorites.slice(startIndex, endIndex);\n  } else if (currentTab === 'history') {\n    const startIndex = (currentPage - 1) * stationsPerPage;\n    const endIndex = startIndex + stationsPerPage;\n    stationsToShow = history.slice(startIndex, endIndex);\n  }\n\n  const totalStations = currentTab === 'all' ? allStations.length : \n                        currentTab === 'favorites' ? favorites.length : \n                        currentTab === 'history' ? history.length : 0;\n  const resultsCountElement = document.getElementById('results-count');\n  if (resultsCountElement) {\n    resultsCountElement.textContent = `${totalStations} station${totalStations !== 1 ? 's' : ''} de radio trouv\u00e9e${totalStations !== 1 ? 's' : ''}`;\n  }\n\n  const categories = extractCategories(stationsToShow);\n  const categoryVignettes = renderCategoryVignettes(categories);\n  categoryVignettesContainer.innerHTML = categoryVignettes;\n\n  if (stationsToShow.length === 0) {\n    resultsContainer.innerHTML += '<p>Aucune station trouv\u00e9e. Essayez une autre recherche ou un autre onglet.<\/p>';\n    if (paginationContainer) {\n      paginationContainer.style.display = 'none';\n    }\n    return;\n  }\n  \n  stationsToShow.forEach(station => {\n    if (!station) return;\n\n    const stationCard = document.createElement('div');\n    stationCard.className = 'station-card';\n    stationCard.innerHTML = `\n      <div class=\"station-info\">\n        <img decoding=\"async\" class=\"station-logo\" src=\"${station.favicon || 'https:\/\/pacific-webtools.com\/radio-online\/wp-content\/uploads\/2024\/10\/logo-15.webp'}\" alt=\"${station.name} logo\">\n      <\/div>\n      <div class=\"station-details\">\n        <h2>${station.name || 'Station inconnue'}<\/h2>\n        <p>\n          <img decoding=\"async\" class=\"country-flag\" src=\"https:\/\/flagcdn.com\/w20\/${(station.countrycode || '').toLowerCase()}.png\" alt=\"${station.country || 'Inconnu'} flag\">\n          ${station.country || 'France'}\n        <\/p>\n      <\/div>\n      <button class=\"play-button\" data-url=\"${station.url_resolved || ''}\">\n        <img decoding=\"async\" src=\"https:\/\/pacific-web-tools.com\/radio-online\/wp-content\/uploads\/2024\/10\/logo-16.webp\" alt=\"Ic\u00f4ne de lecture\">\n      <\/button>\n      <button class=\"favorite-button ${favorites.some(fav => fav.stationuuid === station.stationuuid) ? 'active' : ''}\">\n      <\/button>\n    `;\n    resultsContainer.appendChild(stationCard);\n\n    const playButton = stationCard.querySelector('.play-button');\n    if (playButton) {\n      playButton.addEventListener('click', () => playStation(station));\n    }\n\n    const favoriteButton = stationCard.querySelector('.favorite-button');\n    if (favoriteButton) {\n      favoriteButton.addEventListener('click', () => toggleFavorite(station));\n    }\n  });\n\n  updatePagination();\n}\n\nfunction toggleFavorite(station) {\n  const index = favorites.findIndex(fav => fav.stationuuid === station.stationuuid);\n  if (index === -1) {\n    favorites.push(station);\n  } else {\n    favorites.splice(index, 1);\n  }\n  localStorage.setItem('favorites', JSON.stringify(favorites));\n  displayResults();\n}\n\nfunction addToHistory(station) {\n  const index = history.findIndex(item => item.stationuuid === station.stationuuid);\n  if (index !== -1) {\n    history.splice(index, 1);\n  }\n  history.unshift(station);\n  if (history.length > 20) {\n    history.pop();\n  }\n  localStorage.setItem('history', JSON.stringify(history));\n}\n\nfunction updatePagination() {\n  if (!pageNumbersContainer) return;\n\n  const totalStations = currentTab === 'all' ? allStations.length : \n                        currentTab === 'favorites' ? favorites.length : \n                        currentTab === 'history' ? history.length : 0;\n\n  totalPages = Math.ceil(totalStations \/ stationsPerPage);\n\n  if (totalStations <= stationsPerPage) {\n    if (paginationContainer) paginationContainer.style.display = 'none';\n    return;\n  }\n\n  const maxVisiblePages = 5;\n  let startPage = Math.max(currentPage - Math.floor(maxVisiblePages \/ 2), 1);\n  let endPage = Math.min(startPage + maxVisiblePages - 1, totalPages);\n\n  if (endPage - startPage + 1 < maxVisiblePages) {\n    startPage = Math.max(endPage - maxVisiblePages + 1, 1);\n  }\n\n  pageNumbersContainer.innerHTML = '';\n\n  for (let i = startPage; i <= endPage; i++) {\n    const pageButton = document.createElement('button');\n    pageButton.classList.add('page-number');\n    pageButton.textContent = i;\n    if (i === currentPage) {\n      pageButton.classList.add('active');\n    }\n    pageButton.addEventListener('click', () => {\n      currentPage = i;\n      displayResults();\n      updatePagination();\n    });\n    pageNumbersContainer.appendChild(pageButton);\n  }\n\n  if (prevButton) prevButton.disabled = currentPage === 1;\n  if (nextButton) nextButton.disabled = currentPage === totalPages;\n\n  if (paginationContainer) paginationContainer.style.display = 'flex';\n}\n\nfunction fetchAllStations() {\n  showLoadingAnimation();\n  let url = 'https:\/\/de1.api.radio-browser.info\/json\/stations\/search?limit=1000&country=France';\n\n  axios.get(url)\n    .then(response => {\n      if (response && response.data) {\n        allStations = response.data\n          .filter(station => station.url_resolved && station.url_resolved.startsWith('https:\/\/'))\n          .sort((a, b) => a.name.localeCompare(b.name));\n        totalPages = Math.ceil(allStations.length \/ stationsPerPage);\n        currentPage = 1;\n        displayResults();\n        updatePagination();\n        fetchPopularRadios(); \n      } else {\n        throw new Error('Invalid response data');\n      }\n    })\n    .catch(error => {\n      console.error('Error fetching radio stations:', error);\n      if (resultsContainer) resultsContainer.innerHTML = '<p>Erreur lors de la r\u00e9cup\u00e9ration des stations de radio. Veuillez r\u00e9essayer.<\/p>';\n    })\n    .finally(() => {\n      hideLoadingAnimation();\n    });\n}\n\n$(document).ready(function() {\n  $('#category-select').select2({\n    placeholder: 'S\u00e9lectionner une cat\u00e9gorie',\n    allowClear: true,\n    tags: true,\n    ajax: {\n      url: 'https:\/\/de1.api.radio-browser.info\/json\/tags?country=France',\n      dataType: 'json',\n      delay: 250,\n      data: function (params) {\n        return {\n          search: params.term\n        };\n      },\n      processResults: function (data, params) {\n        const searchTerm = params.term ? params.term.toLowerCase() : '';\n        return {\n          results: data\n            .filter(tag => tag.name.toLowerCase().includes(searchTerm))\n            .map(tag => ({\n              id: tag.name,\n              text: tag.name\n            }))\n        };\n      },\n      cache: true\n    }\n  });\n\n  $('#category-select').on('select2:select select2:unselect', function(e) {\n    performSearch();\n  });\n  \n  document.querySelectorAll('.tab').forEach(tab => {\n    tab.addEventListener('click', () => {\n      document.querySelectorAll('.tab').forEach(t => t.classList.remove('active'));\n      tab.classList.add('active');\n      currentTab = tab.dataset.tab;\n      currentPage = 1;\n      displayResults();\n    });\n  });\n\n  if (searchButton) {\n    searchButton.addEventListener('click', () => performSearch());\n  }\n\n  if (searchInput) {\n    searchInput.addEventListener('keypress', function(event) {\n      if (event.key === 'Enter') {\n        event.preventDefault();\n        performSearch();\n      }\n    });\n  }\n\n  if (prevButton) {\n    prevButton.addEventListener('click', () => {\n      if (currentPage > 1) {\n        currentPage--;\n        displayResults();\n        updatePagination();\n      }\n    });\n  }\n\n  if (nextButton) {\n    nextButton.addEventListener('click', () => {\n      if (currentPage < totalPages) {\n        currentPage++;\n        displayResults();\n        updatePagination();\n      }\n    });\n  }\n\n  fetchAllStations();  \n});\n\nlet allStations = [];\n\nfunction openModal() {\n  if (playerModal) playerModal.style.display = 'block';\n  if (window.chrome && window.chrome.cast && window.chrome.cast.isAvailable) {\n    initializeCastApi();\n  }\n}\n\nfunction closeModal() {\n  if (playerModal) playerModal.style.display = 'none';\n  audioElement.pause();\n}\n\nfunction startChromecast() {\n  if (!currentStation) return;\n\n  const castSession = cast.framework.CastContext.getInstance().getCurrentSession();\n  if (castSession) {\n    const mediaInfo = new chrome.cast.media.MediaInfo(currentStation.url_resolved, 'audio\/mp3');\n    mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();\n    mediaInfo.metadata.title = currentStation.name;\n    mediaInfo.metadata.images = [{ url: currentStation.favicon || 'https:\/\/pacific-webtools.com\/radio-online\/wp-content\/uploads\/2024\/10\/logo-15.webp' }];\n\n    const request = new chrome.cast.media.LoadRequest(mediaInfo);\n    castSession.loadMedia(request).then(\n      function() { console.log('Load succeed'); },\n      function(errorCode) { console.log('Error code: ' + errorCode); }\n    );\n  } else {\n    cast.framework.CastContext.getInstance().requestSession();\n  }\n}\n\nif (chromecastButton) {\n  chromecastButton.addEventListener('click', startChromecast);\n}\n\n\/\/ Load the Cast framework\nwindow.__onGCastApiAvailable = function(isAvailable) {\n  if (isAvailable) {\n    initializeCastApi();\n  }\n};\n\n\/\/ Initialize the Cast API\nfunction initializeCastApi() {\n  cast.framework.CastContext.getInstance().setOptions({\n    receiverApplicationId: chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,\n    autoJoinPolicy: chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED\n  });\n}\n\n\/\/ Player controls\nif (playPauseButton) playPauseButton.addEventListener('click', togglePlayPause);\nif (volumeSlider) volumeSlider.addEventListener('input', adjustVolume);\nif (muteUnmuteButton) muteUnmuteButton.addEventListener('click', toggleMute);\nif (closeModalButton) closeModalButton.addEventListener('click', closeModal);\nwindow.addEventListener('click', (event) => {\n  if (event.target == playerModal) {\n    closeModal();\n  }\n});\n\nfunction togglePlayPause() {\n  if (!playPauseButton) return;\n\n  if (audioElement.paused) {\n    audioElement.play().catch(error => console.error('Error playing audio:', error));\n    playPauseButton.querySelector('img').src = \"https:\/\/cdn-icons-png.freepik.com\/512\/4181\/4181135.png\";\n    playPauseButton.querySelector('img').alt = \"Ic\u00f4ne de pause\";\n  } else {\n    audioElement.pause();\n    playPauseButton.querySelector('img').src = \"https:\/\/cdn-icons-png.flaticon.com\/512\/2468\/2468825.png\";\n    playPauseButton.querySelector('img').alt = \"Ic\u00f4ne de lecture\";\n  }\n}\n\nfunction adjustVolume() {\n  if (volumeSlider) audioElement.volume = volumeSlider.value;\n}\n\n\/\/ Initialize volume\nadjustVolume();\n\n\/\/ Add background cycling function\nfunction cycleBackgroundImages() {\n  const slides = document.querySelectorAll('.background-slideshow .slide');\n  let currentSlide = 0;\n\n  setInterval(() => {\n    slides[currentSlide].classList.remove('active');\n    currentSlide = (currentSlide + 1) % slides.length;\n    slides[currentSlide].classList.add('active');\n  }, 5000);\n}\n\n\/\/ Call the cycling function when the document is ready\ndocument.addEventListener('DOMContentLoaded', cycleBackgroundImages);\n<\/script>\n\n\n\n\n<\/body><\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f29e2d4 e-con-full e-flex e-con e-parent\" data-id=\"f29e2d4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-430daa3 elementor-widget elementor-widget-html\" data-id=\"430daa3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<html><head>\n  <meta name=\" viewport\"=\"\" content=\"width=device-width, initial-scale=1.0\">\n  <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\n  <style>\n    .rs-carousel-section {\n      padding: 50px 0; \n      background: linear-gradient(45deg, #1a1a1a, #2c2c2c, #0e4d4d);\n      background-size: 400% 400%;\n      animation: rs-gradientBG 15s ease infinite;\n      color: #ffffff;\n      font-family: 'Roboto', sans-serif;\n      min-height: flex; \n      display: flex;\n      flex-direction: column;\n      align-items: center;\n    }\n\n    .rs-title {\n      color: #00ffff;\n      text-align: center;\n      margin: 2rem 0;\n      font-size: 2rem;\n      text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);\n    }\n\n    .rs-carousel-container {\n      max-width: auto;\n      width: 100%;\n      position: relative;\n      padding: 20px 250px; \n      box-sizing: border-box;\n      overflow: hidden;\n      margin: 0 auto; \n    }\n\n    .rs-carousel {\n      display: flex;\n      overflow: hidden;\n      scroll-behavior: smooth;\n      gap: 20px;\n      padding: 20px 0 0 0;\n      transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);\n    }\n\n    .rs-radio-card {\n      min-width: 250px;\n      flex: 0 0 250px;\n      background: rgba(255, 255, 255, 0.1);\n      border-radius: 15px;\n      text-align: center;\n      transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);\n      border: 2px solid #00ffff;\n      box-shadow: 0 0 15px rgba(0, 255, 255, 0.2);\n      position: relative;\n      overflow: hidden;\n      transform-origin: center center;\n      padding: 20px 15px; \/* Add consistent padding *\/\n    }\n\n    .rs-radio-card.rs-scrolling {\n      transform: scale(0.95) rotate(-2deg);\n    }\n\n    .rs-radio-card::before {\n      content: '';\n      position: absolute;\n      top: 0;\n      left: -100%;\n      width: 100%;\n      height: 100%;\n      background: linear-gradient(90deg, transparent, rgba(0, 255, 255, 0.1), transparent);\n      transition: 0.5s;\n    }\n\n    .rs-radio-card:hover::before {\n      left: 100%;\n    }\n\n    .rs-radio-card:hover {\n      transform: translateY(-5px) scale(1.02);\n      box-shadow: 0 10px 30px rgba(0, 255, 255, 0.3);\n      z-index: 1;\n    }\n\n    .rs-radio-logo {\n      width: 120px;\n      height: 120px;\n      border-radius: 50%;\n      margin-bottom: 1rem;\n      border: 3px solid #00ffff;\n      box-shadow: 0 0 20px rgba(0, 255, 255, 0.3);\n      transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n      cursor: pointer; \/* Add cursor pointer to indicate interactivity *\/\n    }\n\n    .rs-radio-logo:hover {\n      transform: rotateY(180deg) scale(1.15);\n      border-color: #ff00ff;\n      box-shadow: \n        0 0 25px rgba(0, 255, 255, 0.5),\n        0 0 50px rgba(255, 0, 255, 0.3);\n      animation: logoGlow 1.5s infinite alternate;\n    }\n\n    @keyframes logoGlow {\n      0% {\n        box-shadow: 0 0 25px rgba(0, 255, 255, 0.5),\n                    0 0 50px rgba(255, 0, 255, 0.3);\n      }\n      100% {\n        box-shadow: 0 0 35px rgba(0, 255, 255, 0.8),\n                    0 0 70px rgba(255, 0, 255, 0.6);\n      }\n    }\n\n    .rs-radio-name {\n      font-size: 1.2rem; \/* Reduced from 1.5rem *\/\n      margin: 15px 0;\n      color: #00ffff;\n      transition: all 0.3s ease;\n      position: relative; \/* Added *\/\n    }\n\n    \/* Add hover state for radio name span elements *\/\n    .rs-radio-name span:first-child {\n      display: inline-block;\n      transition: opacity 0.3s ease;\n    }\n\n    .rs-radio-name span:last-child {\n      position: absolute;\n      left: 50%;\n      transform: translateX(-50%);\n      opacity: 0;\n      transition: opacity 0.3s ease;\n      width: 100%;\n    }\n\n    .rs-radio-card:hover .rs-radio-name span:first-child {\n      opacity: 0;\n    }\n\n    .rs-radio-card:hover .rs-radio-name span:last-child {\n      opacity: 1;\n    }\n\n    .rs-listen-button {\n      position: relative; \/* Add this *\/\n      background: #00ffff;\n      color: #000;\n      width: 60px;\n      height: 60px;\n      border: none;\n      border-radius: 50%;\n      font-size: 1.5rem;\n      cursor: pointer;\n      transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n      text-decoration: none;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      margin: 1rem auto;\n      overflow: hidden;\n    }\n\n    .rs-listen-button:hover {\n      background: #00cccc;\n      transform: scale(1.1) rotate(360deg);\n      box-shadow: 0 0 20px rgba(0, 255, 255, 0.6);\n    }\n\n    .rs-listen-button::before {\n      content: \"Voir la webradio\";\n      position: absolute;\n      bottom: -30px;\n      left: 50%;\n      transform: translateX(-50%);\n      background: rgba(0, 255, 255, 0.9);\n      color: #000;\n      padding: 5px 10px;\n      border-radius: 4px;\n      font-size: 12px;\n      white-space: nowrap;\n      opacity: 0;\n      visibility: hidden;\n      transition: all 0.3s ease;\n    }\n\n    .rs-listen-button:hover::before {\n      opacity: 1;\n      visibility: visible;\n      bottom: -35px;\n    }\n\n    .rs-listen-button:hover i {\n      animation: rs-colorChange 2s infinite;\n    }\n\n    @keyframes rs-colorChange {\n      0% { color: #ff0000; }\n      20% { color: #ff7700; }\n      40% { color: #ffff00; }\n      60% { color: #00ff00; }\n      80% { color: #0000ff; }\n      100% { color: #ff0000; }\n    }\n\n    .rs-listen-button::after {\n      content: '';\n      position: absolute;\n      width: 100%;\n      height: 100%;\n      background: radial-gradient(circle, transparent 30%, rgba(255, 255, 255, 0.3) 70%);\n      animation: rs-pulseGlow 2s infinite;\n      opacity: 0;\n      transition: opacity 0.3s;\n    }\n\n    .rs-listen-button:hover::after {\n      opacity: 1;\n    }\n\n    @keyframes rs-pulseGlow {\n      0% {\n        transform: scale(0.95);\n        opacity: 0.5;\n      }\n      50% {\n        transform: scale(1.1);\n        opacity: 0.2;\n      }\n      100% {\n        transform: scale(0.95);\n        opacity: 0.5;\n      }\n    }\n\n    .rs-carousel-button {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      background: rgba(0, 255, 255, 0.2);\n      border: none;\n      width: 40px;\n      height: 40px;\n      border-radius: 50%;\n      cursor: pointer;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      color: #00ffff;\n      font-size: 1.5rem;\n      transition: all 0.3s ease;\n      z-index: 2;\n      overflow: hidden; \/* Add this for ripple effect *\/\n    }\n\n    .rs-carousel-button:hover {\n      background: rgba(0, 255, 255, 0.2);\n      transform: translateY(-50%) scale(1.1);\n      box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);\n    }\n\n    .rs-carousel-button::before {\n      content: '';\n      position: absolute;\n      width: 100%;\n      height: 100%;\n      background: radial-gradient(circle at center, rgba(0, 255, 255, 0.8) 0%, transparent 70%);\n      transform: scale(0);\n      opacity: 0;\n      transition: transform 0.5s ease-out, opacity 0.3s ease;\n    }\n\n    .rs-carousel-button:hover::before {\n      transform: scale(2);\n      opacity: 0.3;\n    }\n\n    .rs-carousel-button:hover i {\n      animation: arrowBounce 0.5s ease infinite alternate;\n    }\n\n    @keyframes arrowBounce {\n      from {\n        transform: translateX(0);\n      }\n      to {\n        transform: translateX(3px);\n      }\n    }\n\n    .rs-carousel-button.rs-prev:hover i {\n      animation: arrowBounceLeft 0.5s ease infinite alternate;\n    }\n\n    @keyframes arrowBounceLeft {\n      from {\n        transform: translateX(0);\n      }\n      to {\n        transform: translateX(-3px);\n      }\n    }\n\n    .rs-carousel-button.rs-prev {\n      left: 0;\n    }\n\n    .rs-carousel-button.rs-next {\n      right: 0;\n    }\n\n    @keyframes rs-floatingNotesCard {\n      0% {\n        opacity: 0;\n        transform: translate(0, 0) rotate(0deg);\n      }\n      50% {\n        opacity: 1;\n      }\n      100% {\n        opacity: 0;\n        transform: translate(-50px, -50px) rotate(360deg);\n      }\n    }\n\n    .rs-card-notes {\n      position: absolute;\n      width: 100%;\n      height: 100%;\n      top: 0;\n      left: 0;\n      pointer-events: none;\n      opacity: 0;\n      transition: opacity 0.3s;\n    }\n\n    .rs-radio-card:hover .rs-card-notes {\n      opacity: 1;\n    }\n\n    .rs-card-note {\n      position: absolute;\n      font-size: 20px;\n      color: #00ffff;\n      animation: rs-floatingNotesCard 2s ease-out infinite;\n    }\n\n    .rs-card-note-1 { top: 10%; left: 10%; animation-delay: 0s; }\n    .rs-card-note-2 { top: 5%; left: 30%; animation-delay: 0.3s; }\n    .rs-card-note-3 { top: 15%; left: 50%; animation-delay: 0.6s; }\n    .rs-card-note-4 { top: 8%; left: 70%; animation-delay: 0.9s; }\n    .rs-card-note-5 { top: 12%; left: 90%; animation-delay: 1.2s; }\n\n    .rs-radio-tag {\n      position: absolute;\n      top: 10px;\n      right: 10px;\n      padding: 5px 12px;\n      font-size: 0.8rem;\n      border-radius: 15px;\n      background: rgba(0, 0, 0, 0.7);\n      color: #fff;\n      border: 1px solid #00ffff;\n      box-shadow: 0 0 5px #00ffff,\n                  inset 0 0 5px #00ffff;\n      text-transform: uppercase;\n      letter-spacing: 1px;\n      transition: all 0.3s ease;\n      transform-style: preserve-3d;\n      perspective: 1000px;\n      cursor: pointer;\n    }\n    \n    .rs-radio-tag i {\n      margin-right: 5px;\n      color: #00ffff;\n      text-shadow: 0 0 5px #00ffff,\n                   0 0 10px #00ffff,\n                   0 0 15px #00ffff;\n    }\n\n    \/* Add hover effects *\/\n    .rs-radio-tag:hover {\n      transform: translateZ(20px) rotateX(10deg) rotateY(-10deg);\n      box-shadow: 0 0 15px #00ffff,\n                  inset 0 0 10px #00ffff,\n                  0 10px 20px rgba(0, 255, 255, 0.4);\n      background: rgba(0, 255, 255, 0.1);\n      letter-spacing: 2px;\n      animation: tagFloat 1s ease-in-out infinite alternate;\n    }\n\n    \/* Add new keyframe animation *\/\n    @keyframes tagFloat {\n      0% {\n        transform: translateZ(20px) rotateX(10deg) rotateY(-10deg);\n      }\n      100% {\n        transform: translateZ(30px) rotateX(15deg) rotateY(-15deg);\n        text-shadow: 2px 2px 4px rgba(0, 255, 255, 0.6);\n      }\n    }\n\n    \/* Add before\/after elements for 3D effect *\/\n    .rs-radio-tag::before {\n      content: '';\n      position: absolute;\n      inset: -2px;\n      background: linear-gradient(45deg, transparent, rgba(0, 255, 255, 0.3), transparent);\n      transform: translateZ(-1px);\n      opacity: 0;\n      transition: opacity 0.3s ease;\n    }\n\n    .rs-radio-tag::after {\n      content: '';\n      position: absolute;\n      inset: -1px;\n      background: linear-gradient(-45deg, transparent, rgba(0, 255, 255, 0.2), transparent);\n      transform: translateZ(-2px);\n      opacity: 0;\n      transition: opacity 0.3s ease;\n    }\n\n    .rs-radio-tag:hover::before,\n    .rs-radio-tag:hover::after {\n      opacity: 1;\n    }\n\n    @keyframes rs-floatingNotes {\n      0% {\n        transform: translateY(0) rotate(0deg) scale(1);\n        opacity: 0;\n      }\n      50% {\n        transform: translateY(-20px) rotate(180deg) scale(1.2);\n        opacity: 1;\n      }\n      100% {\n        transform: translateY(-40px) rotate(360deg) scale(1);\n        opacity: 0;\n      }\n    }\n\n    @media (max-width: 768px) {\n      .rs-carousel-section {\n        padding: 30px 0;\n      }\n      .rs-carousel-container {\n        padding: 15px 20px; \n      }\n      .rs-radio-card {\n        min-width: 250px !important; \/* Reduced by 20% from original 312.5px *\/\n        flex: 0 0 250px !important; \/* Reduced by 20% from original 312.5px *\/\n      }\n      \/* Content size reductions *\/\n      .rs-radio-logo {\n        width: 84px !important;\n        height: 84px !important;\n      }\n      .rs-radio-name {\n        font-size: 1rem !important;\n      }\n      .rs-listen-button {\n        width: 48px;\n        height: 48px;\n      }\n    }\n\n    @media (max-width: 480px) {\n      .rs-carousel-section {\n        padding: 20px 0;\n      }\n      .rs-carousel-container {\n        padding: 0 30px; \n      }\n      .rs-radio-card {\n        min-width: 200px !important; \/* Further reduced by 20% from tablet size *\/\n        flex: 0 0 200px !important; \/* Further reduced by 20% from tablet size *\/\n      }\n      \/* Further reduce content for smallest screens *\/\n      .rs-radio-logo {\n        width: 76px !important;\n        height: 76px !important;\n        margin: 8px auto 12px !important;\n      }\n      .rs-radio-name {\n        font-size: 0.9rem !important;\n      }\n      .rs-listen-button {\n        width: 40px;\n        height: 40px;\n      }\n    }\n  <\/style>\n<\/head>\n<body>\n  <div class=\"rs-carousel-section\" id=\"radioendirect-carousel-section\">\n    <h2 class=\"rs-title\" id=\"radioendirect-title\" style=\"font-size: 24px; animation: textGlow 2s infinite; text-shadow: 0 0 10px rgba(0, 255, 255, 0.5), 0 0 20px rgba(0, 255, 255, 0.3), 0 0 30px rgba(0, 255, 255, 0.2); position: relative;\">\n  Nos suggestions de radios fran\u00e7aises en direct :\n<\/h2>\n    \n    <div class=\"rs-carousel-container\" id=\"radioendirect-container\">\n      <button class=\"rs-carousel-button rs-prev\" id=\"radioendirect-prev-button\">\n        <i class=\"fas fa-chevron-left\"><\/i>\n      <\/button>\n      \n      <div class=\"rs-carousel\" id=\"radioendirect-carousel\" style=\"gap: 25px;\">\n        <!-- Nostalgie -->\n        <div class=\"rs-radio-card\" id=\"radioendirect-card-nostalgie\" style=\"min-width: 312.5px; flex: 0 0 312.5px;\">\n          <div class=\"rs-card-notes\">\n            <span class=\"rs-card-note rs-card-note-1\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-2\">\u266b<\/span>\n            <span class=\"rs-card-note rs-card-note-3\">\u266c<\/span>\n            <span class=\"rs-card-note rs-card-note-4\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-5\">\u266b<\/span>\n          <\/div>\n          <img decoding=\"async\" src=\"https:\/\/play-lh.googleusercontent.com\/9h9jwQQONGEHGuKQ9nBAcXeorzgJZnStMvLZ4DNBVxb4XK3TMww-7sw3_mgjXEw3Gtk\" alt=\"Radio Nostalgie\" class=\"rs-radio-logo\" style=\"width: 105px; height: 105px;\">\n          <span class=\"rs-radio-tag\"><i class=\"fas fa-music\"><\/i>Oldies<\/span>\n          <h2 class=\"rs-radio-name\">\n            <span>Nostalgie<\/span>\n            <span>Ecoutez en direct Nostalgie<\/span>\n          <\/h2>\n          <a href=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-nostalgie\/\" class=\"rs-listen-button\">\n            <i class=\"fas fa-play\" style=\"font-size: 0.75rem\"><\/i>\n          <\/a>\n        <\/div>\n\n        <!-- Skyrock -->\n        <div class=\"rs-radio-card\" id=\"radioendirect-card-skyrock\" style=\"min-width: 312.5px; flex: 0 0 312.5px;\">\n          <div class=\"rs-card-notes\">\n            <span class=\"rs-card-note rs-card-note-1\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-2\">\u266b<\/span>\n            <span class=\"rs-card-note rs-card-note-3\">\u266c<\/span>\n            <span class=\"rs-card-note rs-card-note-4\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-5\">\u266b<\/span>\n          <\/div>\n          <img decoding=\"async\" src=\"https:\/\/encrypted-tbn0.gstatic.com\/images?q=tbn:ANd9GcSQPI_29sdyigH1bVf4vwKNiM_alqz_mPWkpg&amp;s\" alt=\"Skyrock Radio\" class=\"rs-radio-logo\" style=\"width: 105px; height: 105px; margin: 10px auto 15px;\">\n          <span class=\"rs-radio-tag\"><i class=\"fas fa-music\"><\/i>Hip-Hop\/Rap<\/span>\n          <h2 class=\"rs-radio-name\">\n            <span>Skyrock<\/span>\n            <span>Ecoutez en direct Skyrock<\/span>\n          <\/h2>\n          <a href=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-skyrock\/\" class=\"rs-listen-button\" style=\"margin: 15px auto 10px;\">\n            <i class=\"fas fa-play\" style=\"font-size: 0.75rem\"><\/i>\n          <\/a>\n        <\/div>\n\n        <!-- Oui FM -->\n        <div class=\"rs-radio-card\" id=\"radioendirect-card-ouifm\" style=\"min-width: 312.5px; flex: 0 0 312.5px;\">\n          <div class=\"rs-card-notes\">\n            <span class=\"rs-card-note rs-card-note-1\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-2\">\u266b<\/span>\n            <span class=\"rs-card-note rs-card-note-3\">\u266c<\/span>\n            <span class=\"rs-card-note rs-card-note-4\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-5\">\u266b<\/span>\n          <\/div>\n          <img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/fr\/3\/33\/Oui_FM_2014_logo.png\" alt=\"OUI FM logo\" class=\"rs-radio-logo\" style=\"width: 105px; height: 105px;\">\n          <span class=\"rs-radio-tag\"><i class=\"fas fa-guitar\"><\/i>Rock<\/span>\n          <h2 class=\"rs-radio-name\">\n            <span>OUI FM<\/span>\n            <span>Ecoutez en direct OUI FM<\/span>\n          <\/h2>\n          <a href=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-oui-fm\/\" class=\"rs-listen-button\">\n            <i class=\"fas fa-play\" style=\"font-size: 0.75rem\"><\/i>\n          <\/a>\n        <\/div>\n\n        <!-- FIP -->\n        <div class=\"rs-radio-card\" id=\"radioendirect-card-fip\" style=\"min-width: 312.5px; flex: 0 0 312.5px;\">\n          <div class=\"rs-card-notes\">\n            <span class=\"rs-card-note rs-card-note-1\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-2\">\u266b<\/span>\n            <span class=\"rs-card-note rs-card-note-3\">\u266c<\/span>\n            <span class=\"rs-card-note rs-card-note-4\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-5\">\u266b<\/span>\n          <\/div>\n          <img decoding=\"async\" src=\"https:\/\/api.theatredelaville-paris.com\/assets\/w300-h300-q70\/4c672c18\/fip_logo.png\" alt=\"FIP Radio\" class=\"rs-radio-logo\" style=\"width: 105px; height: 105px;\">\n          <span class=\"rs-radio-tag\"><i class=\"fas fa-music\"><\/i>Eclectique<\/span>\n          <h2 class=\"rs-radio-name\">\n            <span>FIP<\/span>\n            <span>Ecoutez en direct FIP<\/span>\n          <\/h2>\n          <a href=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-fip\/\" class=\"rs-listen-button\">\n            <i class=\"fas fa-play\" style=\"font-size: 0.75rem\"><\/i>\n          <\/a>\n        <\/div>\n        \n        <!-- Add after the FIP card and before RMC -->\n        <div class=\"rs-radio-card\" id=\"radioendirect-card-cheriefm\" style=\"min-width: 312.5px; flex: 0 0 312.5px;\">\n          <div class=\"rs-card-notes\">\n            <span class=\"rs-card-note rs-card-note-1\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-2\">\u266b<\/span>\n            <span class=\"rs-card-note rs-card-note-3\">\u266c<\/span>\n            <span class=\"rs-card-note rs-card-note-4\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-5\">\u266b<\/span>\n          <\/div>\n          <img decoding=\"async\" src=\"https:\/\/encrypted-tbn0.gstatic.com\/images?q=tbn:ANd9GcRqDXL7XUgfkYyaczESXMRcGb0tP07fBd2h5A&s\" alt=\"Ch\u00e9rie FM Radio\" class=\"rs-radio-logo\" style=\"width: 105px; height: 105px;\">\n          <span class=\"rs-radio-tag\"><i class=\"fas fa-music\"><\/i>Pop\/Love<\/span>\n          <h2 class=\"rs-radio-name\">\n            <span>Ch\u00e9rie FM<\/span>\n            <span>Ecoutez en direct Ch\u00e9rie FM<\/span>\n          <\/h2>\n          <a href=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-cheriefm\/\" class=\"rs-listen-button\">\n            <i class=\"fas fa-play\" style=\"font-size: 0.75rem\"><\/i>\n          <\/a>\n        <\/div>\n\n        <!-- Ch\u00e9rie FM -->\n        <div class=\"rs-radio-card\" id=\"radioendirect-card-cheriefm\" style=\"min-width: 312.5px; flex: 0 0 312.5px;\">\n          <div class=\"rs-card-notes\">\n            <span class=\"rs-card-note rs-card-note-1\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-2\">\u266b<\/span>\n            <span class=\"rs-card-note rs-card-note-3\">\u266c<\/span>\n            <span class=\"rs-card-note rs-card-note-4\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-5\">\u266b<\/span>\n          <\/div>\n          \n          <img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/fr\/1\/19\/RFM_logo_2011.png\" alt=\"RFM\" class=\"rs-radio-logo\" style=\"width: 105px; height: 105px;\">\n          <span class=\"rs-radio-tag\"><i class=\"fas fa-music\"><\/i>80s<\/span>\n          <h2 class=\"rs-radio-name\">\n            <span>RFM<\/span>\n            <span>Ecoutez en direct RFM<\/span>\n          <\/h2>\n          <a href=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-rfm\/\" class=\"rs-listen-button\">\n            <i class=\"fas fa-play\" style=\"font-size: 0.75rem\"><\/i>\n          <\/a>\n        <\/div>\n\n        <!-- Ch\u00e9rie FM -->\n        <div class=\"rs-radio-card\" id=\"radioendirect-card-cheriefm\" style=\"min-width: 312.5px; flex: 0 0 312.5px;\">\n          <div class=\"rs-card-notes\">\n            <span class=\"rs-card-note rs-card-note-1\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-2\">\u266b<\/span>\n            <span class=\"rs-card-note rs-card-note-3\">\u266c<\/span>\n            <span class=\"rs-card-note rs-card-note-4\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-5\">\u266b<\/span>\n          <\/div>\n          <img decoding=\"async\" src=\"https:\/\/cdn.uc.assets.prezly.com\/b1be11c1-7593-48e0-b0d3-dfedd93ef5a2\/\" alt=\"NRJ Radio\" class=\"rs-radio-logo\" style=\"width: 105px; height: 105px;\">\n          <span class=\"rs-radio-tag\"><i class=\"fas fa-music\"><\/i>Pop\/Dance<\/span>\n          <h2 class=\"rs-radio-name\">\n            <span>NRJ<\/span>\n            <span>Ecoutez en direct NRJ<\/span>\n          <\/h2>\n          <a href=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-nrj\/\" class=\"rs-listen-button\">\n            <i class=\"fas fa-play\" style=\"font-size: 0.75rem\"><\/i>\n          <\/a>\n        <\/div>\n\n        <!-- RTL2 -->\n        <div class=\"rs-radio-card\" id=\"radioendirect-card-rtl2\" style=\"min-width: 312.5px; flex: 0 0 312.5px;\">\n          <div class=\"rs-card-notes\">\n            <span class=\"rs-card-note rs-card-note-1\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-2\">\u266b<\/span>\n            <span class=\"rs-card-note rs-card-note-3\">\u266c<\/span>\n            <span class=\"rs-card-note rs-card-note-4\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-5\">\u266b<\/span>\n          <\/div>\n          <img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/fr\/thumb\/f\/fa\/RTL2_logo_2015.svg\/1200px-RTL2_logo_2015.svg.png\" alt=\"RTL2 Radio\" class=\"rs-radio-logo\" style=\"width: 105px; height: 105px;\">\n          <span class=\"rs-radio-tag\"><i class=\"fas fa-music\"><\/i>Pop\/Rock<\/span>\n          <h2 class=\"rs-radio-name\">\n            <span>RTL2<\/span>\n            <span>Ecoutez en direct RTL2<\/span>\n          <\/h2>\n          <a href=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-rtl2\/\" class=\"rs-listen-button\">\n            <i class=\"fas fa-play\" style=\"font-size: 0.75rem\"><\/i>\n          <\/a>\n        <\/div>\n        \n        <div class=\"rs-radio-card\" id=\"radioendirect-card-sudradio\" style=\"min-width: 312.5px; flex: 0 0 312.5px;\">\n          <!-- RTL -->\n          <div class=\"rs-radio-card\" id=\"radioendirect-card-rtl\" style=\"min-width: 312.5px; flex: 0 0 312.5px;\">\n            <div class=\"rs-card-notes\">\n              <span class=\"rs-card-note rs-card-note-1\">\u266a<\/span>\n              <span class=\"rs-card-note rs-card-note-2\">\u266b<\/span>\n              <span class=\"rs-card-note rs-card-note-3\">\u266c<\/span>\n              <span class=\"rs-card-note rs-card-note-4\">\u266a<\/span>\n              <span class=\"rs-card-note rs-card-note-5\">\u266b<\/span>\n            <\/div>\n            <img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/5\/51\/RTL_logo.svg\/1200px-RTL_logo.svg.png\" alt=\"RTL Radio\" class=\"rs-radio-logo\" style=\"width: 105px; height: 105px;\">\n            <span class=\"rs-radio-tag\"><i class=\"fas fa-microphone\"><\/i>Info\/Talk<\/span>\n            <h2 class=\"rs-radio-name\">\n              <span>RTL<\/span>\n              <span>Ecoutez en direct RTL<\/span>\n            <\/h2>\n            <a href=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-rtl\/\" class=\"rs-listen-button\">\n              <i class=\"fas fa-play\" style=\"font-size: 0.75rem\"><\/i>\n            <\/a>\n          <\/div>\n          <div class=\"rs-card-notes\">\n            <span class=\"rs-card-note rs-card-note-1\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-2\">\u266b<\/span>\n            <span class=\"rs-card-note rs-card-note-3\">\u266c<\/span>\n            <span class=\"rs-card-note rs-card-note-4\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-5\">\u266b<\/span>\n          <\/div>\n          <img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/0\/03\/Logo_Sud_Radio_2014.svg\/1200px-Logo_Sud_Radio_2014.svg.png\" alt=\"Sud Radio\" class=\"rs-radio-logo\" style=\"width: 105px; height: 105px;\">\n          <span class=\"rs-radio-tag\"><i class=\"fas fa-microphone\"><\/i>Info\/Talk<\/span>\n          <h2 class=\"rs-radio-name\">\n            <span>Sud Radio<\/span>\n            <span>Ecoutez en direct Sud Radio<\/span>\n          <\/h2>\n          <a href=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-sud-radio\/\" class=\"rs-listen-button\">\n            <i class=\"fas fa-play\" style=\"font-size: 0.75rem\"><\/i>\n          <\/a>\n        <\/div>\n        \n        <!-- RMC -->\n        <div class=\"rs-radio-card\" id=\"radioendirect-card-rmc\" style=\"min-width: 312.5px; flex: 0 0 312.5px;\">\n          <div class=\"rs-card-notes\">\n            <span class=\"rs-card-note rs-card-note-1\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-2\">\u266b<\/span>\n            <span class=\"rs-card-note rs-card-note-3\">\u266c<\/span>\n            <span class=\"rs-card-note rs-card-note-4\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-5\">\u266b<\/span>\n          <\/div>\n          <img decoding=\"async\" src=\"https:\/\/yt3.googleusercontent.com\/ytc\/AIdro_k7rcILtB71q3kwlCwX14_jfamwiA4_U74MX8PZ6-sC7Rk=s900-c-k-c0x00ffffff-no-rj\" alt=\"RMC Radio\" class=\"rs-radio-logo\" style=\"width: 105px; height: 105px;\">\n          <span class=\"rs-radio-tag\"><i class=\"fas fa-microphone\"><\/i>Info\/Sport<\/span>\n          <h2 class=\"rs-radio-name\">\n            <span>RMC<\/span>\n            <span>Ecoutez en direct RMC<\/span>\n          <\/h2>\n          <a href=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-rmc\/\" class=\"rs-listen-button\">\n            <i class=\"fas fa-play\" style=\"font-size: 0.75rem\"><\/i>\n          <\/a>\n        <\/div>\n\n        <!-- Europe 1 -->\n        <div class=\"rs-radio-card\" id=\"radioendirect-card-europe1\" style=\"min-width: 312.5px; flex: 0 0 312.5px;\">\n          <div class=\"rs-card-notes\">\n            <span class=\"rs-card-note rs-card-note-1\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-2\">\u266b<\/span>\n            <span class=\"rs-card-note rs-card-note-3\">\u266c<\/span>\n            <span class=\"rs-card-note rs-card-note-4\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-5\">\u266b<\/span>\n          <\/div>\n          <img decoding=\"async\" src=\"https:\/\/cdn-europe1.lanmedia.fr\/var\/europe1\/storage\/images\/europe1\/animateurs\/europe-12\/53472641-3-fre-FR\/Europe-1.png\" alt=\"Europe 1\" class=\"rs-radio-logo\" style=\"width: 105px; height: 105px;\">\n          <span class=\"rs-radio-tag\"><i class=\"fas fa-microphone\"><\/i>Info\/Talk<\/span>\n          <h2 class=\"rs-radio-name\">\n            <span>Europe 1<\/span>\n            <span>Ecoutez en direct Europe 1<\/span>\n          <\/h2>\n          <a href=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-europe1\/\" class=\"rs-listen-button\">\n            <i class=\"fas fa-play\" style=\"font-size: 0.75rem\"><\/i>\n          <\/a>\n        <\/div>\n        \n        <!-- Rire et Chansons -->\n        <div class=\"rs-radio-card\" id=\"radioendirect-card-rireetchansons\" style=\"min-width: 312.5px; flex: 0 0 312.5px;\">\n          <div class=\"rs-card-notes\">\n            <span class=\"rs-card-note rs-card-note-1\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-2\">\u266b<\/span>\n            <span class=\"rs-card-note rs-card-note-3\">\u266c<\/span>\n            <span class=\"rs-card-note rs-card-note-4\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-5\">\u266b<\/span>\n          <\/div>\n          <img decoding=\"async\" src=\"https:\/\/encrypted-tbn0.gstatic.com\/images?q=tbn:ANd9GcRGs-8gbq-CxVHtpgHNRgIYFLwJ8yaNPmC-1A&amp;s\" alt=\"Rire et Chansons\" class=\"rs-radio-logo\" style=\"width: 105px; height: 105px;\">\n          <span class=\"rs-radio-tag\"><i class=\"fas fa-laugh\"><\/i>Humour<\/span>\n          <h2 class=\"rs-radio-name\">\n            <span>Rire et Chansons<\/span>\n            <span>Ecoutez en direct Rire et Chansons<\/span>\n          <\/h2>\n          <a href=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-rire-et-chansons\/\" class=\"rs-listen-button\">\n            <i class=\"fas fa-play\" style=\"font-size: 0.75rem\"><\/i>\n          <\/a>\n        <\/div>\n\n        <!-- Fun Radio -->\n        <div class=\"rs-radio-card\" id=\"radioendirect-card-funradio\" style=\"min-width: 312.5px; flex: 0 0 312.5px;\">\n          <div class=\"rs-card-notes\">\n            <span class=\"rs-card-note rs-card-note-1\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-2\">\u266b<\/span>\n            <span class=\"rs-card-note rs-card-note-3\">\u266c<\/span>\n            <span class=\"rs-card-note rs-card-note-4\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-5\">\u266b<\/span>\n          <\/div>\n          <img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/e\/ef\/Fun_Radio_2021_logo.png\" alt=\"Fun Radio\" class=\"rs-radio-logo\" style=\"width: 105px; height: 105px;\">\n          <span class=\"rs-radio-tag\"><i class=\"fas fa-music\"><\/i>Dance\/Electro<\/span>\n          <h2 class=\"rs-radio-name\">\n            <span>Fun Radio<\/span>\n            <span>Ecoutez en direct Fun Radio<\/span>\n          <\/h2>\n          <a href=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-fun-radio\/\" class=\"rs-listen-button\">\n            <i class=\"fas fa-play\" style=\"font-size: 0.75rem\"><\/i>\n          <\/a>\n        <\/div>\n\n        <!-- France Inter -->\n        <div class=\"rs-radio-card\" id=\"radioendirect-card-franceinter\" style=\"min-width: 312.5px; flex: 0 0 312.5px;\">\n          <div class=\"rs-card-notes\">\n            <span class=\"rs-card-note rs-card-note-1\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-2\">\u266b<\/span>\n            <span class=\"rs-card-note rs-card-note-3\">\u266c<\/span>\n            <span class=\"rs-card-note rs-card-note-4\">\u266a<\/span>\n            <span class=\"rs-card-note rs-card-note-5\">\u266b<\/span>\n          <\/div>\n          <img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/fr\/thumb\/3\/39\/France_Inter_logo.svg\/2048px-France_Inter_logo.svg.png\" alt=\"France Inter\" class=\"rs-radio-logo\" style=\"width: 105px; height: 105px;\">\n          <span class=\"rs-radio-tag\"><i class=\"fas fa-microphone\"><\/i>Info\/Culture<\/span>\n          <h2 class=\"rs-radio-name\">\n            <span>France Inter<\/span>\n            <span>Ecoutez en direct France Inter<\/span>\n          <\/h2>\n          <a href=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-france-inter\/\" class=\"rs-listen-button\">\n            <i class=\"fas fa-play\" style=\"font-size: 0.75rem\"><\/i>\n          <\/a>\n        <\/div>\n\n      <\/div>\n\n      <button class=\"rs-carousel-button rs-next\" id=\"radioendirect-next-button\">\n        <i class=\"fas fa-chevron-right\"><\/i>\n      <\/button>\n    <\/div>\n  <\/div>\n\n  <script>\n    (function() {\n      class RadioStreamrCarousel {\n        constructor(selector) {\n          this.container = document.querySelector(selector);\n          this.carousel = this.container.querySelector('.rs-carousel');\n          this.allCards = Array.from(this.container.querySelectorAll('.rs-radio-card')); \/\/ Store all cards\n          this.prevButton = this.container.querySelector('.rs-carousel-button.rs-prev');\n\n          \/\/ Select random 9 cards\n          this.selectRandomCards();\n          \n          \/\/ Initialize properties after cards are selected\n          this.cards = Array.from(this.container.querySelectorAll('.rs-radio-card'));\n          this.currentIndex = 0;\n          this.cardWidth = this.cards[0].offsetWidth + 20;\n          this.cardsPerView = Math.floor(this.carousel.offsetWidth \/ this.cardWidth);\n          this.maxIndex = this.cards.length - this.cardsPerView;\n          this.nextButton = this.container.querySelector('.rs-carousel-button.rs-next');\n\n          this.init();\n        }\n\n        selectRandomCards() {\n          \/\/ Remove all cards from carousel\n          this.allCards.forEach(card => card.remove());\n\n          \/\/ Randomly select 9 cards\n          const shuffled = [...this.allCards].sort(() => 0.5 - Math.random());\n          const selected = shuffled.slice(0, 9);\n          \n          \/\/ Add selected cards back to carousel\n          selected.forEach(card => {\n            this.carousel.appendChild(card);\n          });\n        }\n\n        init() {\n          this.bindEvents();\n        }\n\n        scrollToIndex(index) {\n          \/\/ Handle infinite loop\n          if (index < 0) {\n            this.currentIndex = this.cards.length - this.cardsPerView;\n          } else if (index > this.maxIndex) {\n            this.currentIndex = 0;\n          } else {\n            this.currentIndex = index;\n          }\n          \n          \/\/ Add scrolling class to cards\n          this.cards.forEach(card => {\n            card.classList.add('rs-scrolling');\n            setTimeout(() => card.classList.remove('rs-scrolling'), 500);\n          });\n\n          \/\/ Scroll with animation\n          this.carousel.scrollTo({\n            left: this.currentIndex * this.cardWidth,\n            behavior: 'smooth'\n          });\n\n          \/\/ Create floating notes effect\n          const notes = ['\u266a', '\u266b', '\u266c'];\n          for(let i = 0; i < 3; i++) {\n            const note = document.createElement('span');\n            note.textContent = notes[Math.floor(Math.random() * notes.length)];\n            note.style.cssText = `\n              position: absolute;\n              color: #00ffff;\n              font-size: 24px;\n              top: ${50 + Math.random() * 100}px;\n              left: ${50 + Math.random() * (this.carousel.offsetWidth - 100)}px;\n              animation: rs-floatingNotes 1s ease-out ${i * 0.2}s forwards;\n              pointer-events: none;\n            `;\n            this.carousel.appendChild(note);\n            setTimeout(() => note.remove(), 1000 + i * 200);\n          }\n        }\n\n        bindEvents() {\n          this.prevButton.addEventListener('click', () => this.scrollToIndex(this.currentIndex - 1));\n          this.nextButton.addEventListener('click', () => this.scrollToIndex(this.currentIndex + 1));\n\n          window.addEventListener('resize', () => {\n            const newCardsPerView = Math.floor(this.carousel.offsetWidth \/ this.cardWidth);\n            const newMaxIndex = this.cards.length - newCardsPerView;\n            this.currentIndex = Math.min(this.currentIndex, newMaxIndex);\n            this.scrollToIndex(this.currentIndex);\n          });\n        }\n      }\n\n      document.addEventListener('DOMContentLoaded', function() {\n        new RadioStreamrCarousel('.rs-carousel-section');\n      });\n    })();\n  <\/script>\n<\/body><\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-60eae7a e-con-full e-flex e-con e-parent\" data-id=\"60eae7a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b73d849 elementor-widget elementor-widget-shortcode\" data-id=\"b73d849\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u00d7 Ecoutez toutes les Webradio M Radio en direct gratuitement avec RadiostreamR \u00c9couter en direct Toutes les Webradios M Radio : Une exp\u00e9rience rock unique depuis 2009 Facebook Instagram Site Web Audience quotidienne moyenne 1 882 000 Cr\u00e9ation 2009 Fr\u00e9quence FM 89.0 MHz 2009-2015 : Les d\u00e9buts de M Radio La station d\u00e9marre sous le [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1189,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"footnotes":""},"categories":[4,5],"tags":[],"class_list":["post-1181","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-radio-hits","category-radio-pop-rock"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>M Radio \ud83c\udfb6 - Ecoutez en direct les Webradios<\/title>\n<meta name=\"description\" content=\"\u00c9coutez gratuitement toutes les webradios de M Radio. D\u00e9couvrez les playlists th\u00e9matiques : hits, vari\u00e9t\u00e9 fran\u00e7aise, ann\u00e9es 80 et bien plus.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"M Radio \ud83c\udfb6 - Ecoutez en direct les Webradios\" \/>\n<meta property=\"og:description\" content=\"\u00c9coutez gratuitement toutes les webradios de M Radio. D\u00e9couvrez les playlists th\u00e9matiques : hits, vari\u00e9t\u00e9 fran\u00e7aise, ann\u00e9es 80 et bien plus.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/\" \/>\n<meta property=\"og:site_name\" content=\"RadioStreamR - Ecoutez la Radio fran\u00e7aise en ligne en direct\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-13T13:18:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-13T16:09:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/radiostreamr.com\/radio-france\/wp-content\/uploads\/2024\/11\/800px-Logo_Mradio.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/\",\"url\":\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/\",\"name\":\"M Radio \ud83c\udfb6 - Ecoutez en direct les Webradios\",\"isPartOf\":{\"@id\":\"https:\/\/radiostreamr.com\/radio-france\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/radiostreamr.com\/radio-france\/wp-content\/uploads\/2024\/11\/800px-Logo_Mradio.webp\",\"datePublished\":\"2024-11-13T13:18:07+00:00\",\"dateModified\":\"2024-11-13T16:09:32+00:00\",\"author\":{\"@id\":\"https:\/\/radiostreamr.com\/radio-france\/#\/schema\/person\/8109b41ba8df99078005b58e0274a646\"},\"description\":\"\u00c9coutez gratuitement toutes les webradios de M Radio. D\u00e9couvrez les playlists th\u00e9matiques : hits, vari\u00e9t\u00e9 fran\u00e7aise, ann\u00e9es 80 et bien plus.\",\"breadcrumb\":{\"@id\":\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/#primaryimage\",\"url\":\"https:\/\/radiostreamr.com\/radio-france\/wp-content\/uploads\/2024\/11\/800px-Logo_Mradio.webp\",\"contentUrl\":\"https:\/\/radiostreamr.com\/radio-france\/wp-content\/uploads\/2024\/11\/800px-Logo_Mradio.webp\",\"width\":800,\"height\":800,\"caption\":\"\u00c9coutez gratuitement toutes les webradios de M Radio. D\u00e9couvrez les playlists th\u00e9matiques : hits, vari\u00e9t\u00e9 fran\u00e7aise, ann\u00e9es 80 et bien plus.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/radiostreamr.com\/radio-france\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"M Radio \ud83c\udfb6 &#8211; Ecoutez en direct les Webradios\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/radiostreamr.com\/radio-france\/#website\",\"url\":\"https:\/\/radiostreamr.com\/radio-france\/\",\"name\":\"RadioStreamR - Ecoutez la Radio fran\u00e7aise en ligne en direct\",\"description\":\"\u00c9coutez les meilleures stations de radio fran\u00e7aises en direct. Musique, actualit\u00e9s, et \u00e9missions locales - disponibles partout, \u00e0 tout moment.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/radiostreamr.com\/radio-france\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/radiostreamr.com\/radio-france\/#\/schema\/person\/8109b41ba8df99078005b58e0274a646\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/radiostreamr.com\/radio-france\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/94a5a2d7ac834dce40e1e25743dcb576?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/94a5a2d7ac834dce40e1e25743dcb576?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/radiostreamr.com\/radio-france\"],\"url\":\"https:\/\/radiostreamr.com\/radio-france\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"M Radio \ud83c\udfb6 - Ecoutez en direct les Webradios","description":"\u00c9coutez gratuitement toutes les webradios de M Radio. D\u00e9couvrez les playlists th\u00e9matiques : hits, vari\u00e9t\u00e9 fran\u00e7aise, ann\u00e9es 80 et bien plus.","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:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/","og_locale":"fr_FR","og_type":"article","og_title":"M Radio \ud83c\udfb6 - Ecoutez en direct les Webradios","og_description":"\u00c9coutez gratuitement toutes les webradios de M Radio. D\u00e9couvrez les playlists th\u00e9matiques : hits, vari\u00e9t\u00e9 fran\u00e7aise, ann\u00e9es 80 et bien plus.","og_url":"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/","og_site_name":"RadioStreamR - Ecoutez la Radio fran\u00e7aise en ligne en direct","article_published_time":"2024-11-13T13:18:07+00:00","article_modified_time":"2024-11-13T16:09:32+00:00","og_image":[{"width":800,"height":800,"url":"https:\/\/radiostreamr.com\/radio-france\/wp-content\/uploads\/2024\/11\/800px-Logo_Mradio.webp","type":"image\/webp"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"admin","Dur\u00e9e de lecture estim\u00e9e":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/","url":"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/","name":"M Radio \ud83c\udfb6 - Ecoutez en direct les Webradios","isPartOf":{"@id":"https:\/\/radiostreamr.com\/radio-france\/#website"},"primaryImageOfPage":{"@id":"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/#primaryimage"},"image":{"@id":"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/#primaryimage"},"thumbnailUrl":"https:\/\/radiostreamr.com\/radio-france\/wp-content\/uploads\/2024\/11\/800px-Logo_Mradio.webp","datePublished":"2024-11-13T13:18:07+00:00","dateModified":"2024-11-13T16:09:32+00:00","author":{"@id":"https:\/\/radiostreamr.com\/radio-france\/#\/schema\/person\/8109b41ba8df99078005b58e0274a646"},"description":"\u00c9coutez gratuitement toutes les webradios de M Radio. D\u00e9couvrez les playlists th\u00e9matiques : hits, vari\u00e9t\u00e9 fran\u00e7aise, ann\u00e9es 80 et bien plus.","breadcrumb":{"@id":"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/#primaryimage","url":"https:\/\/radiostreamr.com\/radio-france\/wp-content\/uploads\/2024\/11\/800px-Logo_Mradio.webp","contentUrl":"https:\/\/radiostreamr.com\/radio-france\/wp-content\/uploads\/2024\/11\/800px-Logo_Mradio.webp","width":800,"height":800,"caption":"\u00c9coutez gratuitement toutes les webradios de M Radio. D\u00e9couvrez les playlists th\u00e9matiques : hits, vari\u00e9t\u00e9 fran\u00e7aise, ann\u00e9es 80 et bien plus."},{"@type":"BreadcrumbList","@id":"https:\/\/radiostreamr.com\/radio-france\/ecoutez-en-direct-m-radio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/radiostreamr.com\/radio-france\/"},{"@type":"ListItem","position":2,"name":"M Radio \ud83c\udfb6 &#8211; Ecoutez en direct les Webradios"}]},{"@type":"WebSite","@id":"https:\/\/radiostreamr.com\/radio-france\/#website","url":"https:\/\/radiostreamr.com\/radio-france\/","name":"RadioStreamR - Ecoutez la Radio fran\u00e7aise en ligne en direct","description":"\u00c9coutez les meilleures stations de radio fran\u00e7aises en direct. Musique, actualit\u00e9s, et \u00e9missions locales - disponibles partout, \u00e0 tout moment.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/radiostreamr.com\/radio-france\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/radiostreamr.com\/radio-france\/#\/schema\/person\/8109b41ba8df99078005b58e0274a646","name":"admin","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/radiostreamr.com\/radio-france\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/94a5a2d7ac834dce40e1e25743dcb576?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/94a5a2d7ac834dce40e1e25743dcb576?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/radiostreamr.com\/radio-france"],"url":"https:\/\/radiostreamr.com\/radio-france\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/radiostreamr.com\/radio-france\/wp-json\/wp\/v2\/posts\/1181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/radiostreamr.com\/radio-france\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/radiostreamr.com\/radio-france\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/radiostreamr.com\/radio-france\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/radiostreamr.com\/radio-france\/wp-json\/wp\/v2\/comments?post=1181"}],"version-history":[{"count":11,"href":"https:\/\/radiostreamr.com\/radio-france\/wp-json\/wp\/v2\/posts\/1181\/revisions"}],"predecessor-version":[{"id":1203,"href":"https:\/\/radiostreamr.com\/radio-france\/wp-json\/wp\/v2\/posts\/1181\/revisions\/1203"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/radiostreamr.com\/radio-france\/wp-json\/wp\/v2\/media\/1189"}],"wp:attachment":[{"href":"https:\/\/radiostreamr.com\/radio-france\/wp-json\/wp\/v2\/media?parent=1181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/radiostreamr.com\/radio-france\/wp-json\/wp\/v2\/categories?post=1181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/radiostreamr.com\/radio-france\/wp-json\/wp\/v2\/tags?post=1181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}