

<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ecoutez et télécharger les podcasts de toutes les émissions d&#039; NRJ - RadioStreamR - Ecoutez la Radio française en ligne en direct</title>
	<atom:link href="https://radiostreamr.com/radio-france/category/podcast/nrj/feed/" rel="self" type="application/rss+xml" />
	<link>https://radiostreamr.com/radio-france/category/podcast/nrj/</link>
	<description>Écoutez les meilleures stations de radio françaises en direct. Musique, actualités, et émissions locales - disponibles partout, à tout moment.</description>
	<lastBuildDate>Wed, 20 Nov 2024 13:29:43 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.3</generator>

<image>
	<url>https://radiostreamr.com/radio-france/wp-content/uploads/2024/10/cropped-logo-19-32x32.webp</url>
	<title>Ecoutez et télécharger les podcasts de toutes les émissions d&#039; NRJ - RadioStreamR - Ecoutez la Radio française en ligne en direct</title>
	<link>https://radiostreamr.com/radio-france/category/podcast/nrj/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>🗣️ Podcast et replay &#8211; Les infos aléatoires du monde de Salomé &#8211; NRJ</title>
		<link>https://radiostreamr.com/radio-france/podcast-infos-aleatoires-monde-salome-nrj/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-infos-aleatoires-monde-salome-nrj/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 20 Nov 2024 13:29:43 +0000</pubDate>
				<category><![CDATA[NRJ]]></category>
		<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1439</guid>

					<description><![CDATA[<p>Les infos aléatoires du monde de Salomé &#8211; Écoutez en rediffusion ou télécharger tous les podcasts NRJ Plus récentsPlus anciens Publicité Les infos aléatoires du monde de Salomé &#8211; L&#8217;émission qui partage des informations insolites ! Voir leur Facebook Voir leur Instagram Voir leur site web Les infos aléatoires du monde de Salomé est votre [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-infos-aleatoires-monde-salome-nrj/">🗣️ Podcast et replay &#8211; Les infos aléatoires du monde de Salomé &#8211; NRJ</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1439" class="elementor elementor-1439" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-dce457e e-con-full e-flex e-con e-parent" data-id="dce457e" data-element_type="container">
				<div class="elementor-element elementor-element-9f9be1c 1995 elementor-widget elementor-widget-html" data-id="9f9be1c" data-element_type="widget" id="1995" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<!DOCTYPE html><html><head><meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&amp;display=swap" rel="stylesheet">
<style>
    .rtl-podcast-player * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: 'Roboto', sans-serif;
    }

  .rtl-podcast-player #pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: 100% !important;
}

@keyframes gradientBG {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.rtl-podcast-player body {
    background: linear-gradient(-45deg, #0a192f, #172a45, #1a365d, #102235);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    min-height: 100vh;
    display: flex;
    align-items: center;
    color: #fff;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
}

    .rtl-podcast-player .container {
        display: grid;
        grid-template-columns: 1.2fr 2.8fr;
        gap: 20px;
        margin: 0 auto;
        padding: 50px 150px !important;
        width: 100%;
        background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
        background-size: 400% 400%;
        animation: gradientBG 15s ease infinite;
        border-radius: 0;
        box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);
    }


    @media (max-width: 1024px) {
        .rtl-podcast-player .container {
            padding: 30px 45px;
            grid-template-columns: 1fr 2fr;
        }
        
        .rtl-podcast-player h1 {
            font-size: 2em;
        }
    }


    @media (max-width: 768px) {
        .rtl-podcast-player .container {
            padding: 20px !important; /* Override padding */
            margin: 0 !important; /* Reset margin */
            width: 100% !important;
            max-width: 100% !important;
            grid-template-columns: 1fr;
            overflow-x: hidden; /* Prevent horizontal scroll */
        }
        
        .rtl-podcast-player #episode-grid,
        .rtl-podcast-player .episode,
        .rtl-podcast-player #featured-episode,
        .rtl-podcast-player .host-biography,
        .rtl-podcast-player .social-share-buttons {
            width: 100% !important;
            margin-left: auto !important;
            margin-right: auto !important;
            padding: 15px !important;
        }
        
        .rtl-podcast-player h1,
        .rtl-podcast-player h2,
        .rtl-podcast-player p {
            padding-left: 10px !important;
            padding-right: 10px !important;
            text-align: center;
        }

        .rtl-podcast-player #episode-grid {
            grid-template-columns: 1fr !important; /* Force single column */
            gap: 20px;
        }
        
        .rtl-podcast-player .episode {
            width: 100% !important;
            margin: 0 auto !important;
        }
    }


@media (max-width: 480px) {
    .rtl-podcast-player .container {
        padding: 10px !important;
    }
    
    .rtl-podcast-player #featured-episode,
    .rtl-podcast-player .episode {
        padding: 15px !important;
        width: 100% !important;
        margin: 0 auto !important;
    }
}

.rtl-podcast-player h1 {
    color: #00ffff;
    text-align: center;
    font-size: 2.3em;
    margin-bottom: 40px;
    font-weight: 700;
    width: 100%;
    grid-column: 1 / -1;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.3);
}

  #fixed-player-bar {
        display: flex;               /* Assure l'affichage en flex */
        flex-direction: column;       /* Organisation en colonne */
        align-items: center;          /* Centre les éléments */
        padding: 10px;
        gap: 10px;                    /* Espace entre chaque ligne */
        background: rgba(26, 26, 26, 0.95); /* Conserve l’arrière-plan */
        display: none;                /* Masqué par défaut */
    }

    /* Ligne 1 : Titre de l'épisode */
    #fixed-player-title {
        display: block;               /* Force l'affichage sur une ligne complète */
        text-align: center;
        font-size: 1.2em;
        color: #00ffff;
        width: 100%;                  /* Prend la largeur complète */
    }

    /* Ligne 2 : Player audio */
    #fixed-player-audio {
        display: block;               /* Force l'affichage sur une ligne complète */
        width: 100%;
    }

    /* Ligne 3 : Conteneur pour les boutons Chromecast et fermeture */
    .audio-controls-container {
        display: flex;
        justify-content: center;
        gap: 20px;
        width: 100%;                  /* Assure une disposition sur toute la largeur */
    }

    /* Styles des boutons */
    #chromecast-button, #close-fixed-player {
        width: 40px;
        height: 40px;
        border: none;
        cursor: pointer;
    }
}

  @media (max-width: 768px) {
    .rtl-podcast-player h1 {
        margin-top: 0px !important; /* Ajustez la valeur selon vos besoins */
    }
}
  
.rtl-podcast-player #featured-episode {
    /* Remplacer ces styles */
    display: flex;
    flex-direction: column;
    height: 100%; /* Ajout de cette ligne */
    padding: 30px;
    border-radius: 15px;
    background-color: transparent;
    color: #ffffff;
    transition: all 0.3s ease;
}

.rtl-podcast-player #featured-episode:hover {
    transform: translateY(-5px);
}

.rtl-podcast-player #featured-episode h3 {
    color: #00ffff;
    margin-bottom: 15px;
    font-weight: 500;
}

.rtl-podcast-player #featured-episode button, .rtl-podcast-player .episode button {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    padding: 0;
    background-image: url('https://static.vecteezy.com/system/resources/thumbnails/017/196/540/small/3d-play-button-icon-transparent-background-free-png.png');
    background-size: 35px;
    background-position: center;
    background-repeat: no-repeat;
    font-size: 0;
    position: relative;
}

    .rtl-podcast-player .date-badge {
        background: rgba(0, 255, 255, 0.1);
        border: 2px solid #00ffff;
        border-radius: 8px;
        padding: 8px 15px;
        color: #00ffff;
        font-weight: bold;
        text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
        box-shadow: 
            0 0 5px rgba(0, 255, 255, 0.2),
            0 0 10px rgba(0, 255, 255, 0.2),
            0 0 15px rgba(0, 255, 255, 0.2),
            0 0 20px rgba(0, 255, 255, 0.2);
        animation: neonPulse 1.5s ease-in-out infinite;
        margin: 15px auto 20px auto; /* Increased bottom margin */
        display: block; /* Changed from inline-block to block */
        width: fit-content;
    }

    @keyframes neonPulse {
        0%, 100% {
            box-shadow: 
                0 0 5px rgba(0, 255, 255, 0.2),
                0 0 10px rgba(0, 255, 255, 0.2),
                0 0 15px rgba(0, 255, 255, 0.2),
                0 0 20px rgba(0, 255, 255, 0.2);
        }
        50% {
            box-shadow: 
                0 0 10px rgba(0, 255, 255, 0.4),
                0 0 20px rgba(0, 255, 255, 0.4),
                0 0 30px rgba(0, 255, 255, 0.4),
                0 0 40px rgba(0, 255, 255, 0.4);
        }
    }


.rtl-podcast-player #featured-episode img,
.rtl-podcast-player .episode img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .modal-content img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .episode button:hover::after,
.rtl-podcast-player #featured-episode button:hover::after {
    content: "Ecouter ce podcast";
    position: absolute;
    bottom: -35px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 14px;
    white-space: nowrap;
    z-index: 1000;
}

.rtl-podcast-player #featured-episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #episode-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

    .rtl-podcast-player .episode {
        padding: 20px;
        border-radius: 15px;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.1);
        text-align: center;
        background-color: #1a1a1a;
        transition: all 0.3s ease;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .rtl-podcast-player .episode p {
        color: #ffffff;
    }


.rtl-podcast-player .episode:hover {
    box-shadow: 0 0 20px rgba(0, 255, 255, 0.2);
    transform: translateY(-3px);
}

.rtl-podcast-player .episode h5 {
    margin-bottom: 10px;
    color: #00ffff;
}

.rtl-podcast-player .episode a {
    color: #00ffff;
    text-decoration: none;
}

    .rtl-podcast-player .episode button:hover {
        background-color: #00cccc;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
    }
    
    .search-filter-container {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 15px;
        margin-bottom: 30px;
        width: 100%;
    }

    .search-filter-container input,
    .search-filter-container select {
        padding: 10px 15px;
        border: 2px solid #00ffff;
        border-radius: 8px;
        background: rgba(0, 0, 0, 0.3);
        color: #fff;
        font-size: 16px;
        width: 200px;
    }

    .search-filter-container input::placeholder {
        color: rgba(255, 255, 255, 0.6);
    }

    .search-filter-container input:focus,
    .search-filter-container select:focus {
        outline: none;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
    }

    .search-filter-container select {
        cursor: pointer;
    }

    .search-filter-container select option {
        background-color: #1a1a1a;
        color: #fff;
    }

    @media (max-width: 768px) {
        .search-filter-container {
            flex-direction: column;
            gap: 10px;
        }

        .search-filter-container input,
        .search-filter-container select {
            width: 100%;
            max-width: 300px;
        }
    }

    color: #000;
    border: none;
    padding: 8px 20px;
    border-radius: 20px;
    cursor: pointer;
    font-weight: 500;
    transition: all 0.3s ease;
    margin-top: 10px; /* Add space above button */
    display: block; /* Ensure block-level display */
    margin-left: auto;
    margin-right: auto;
}

.rtl-podcast-player .episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player .pagination {
    text-align: center !important;
    margin-top: 30px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: auto !important;
}

  .rtl-podcast-player #page-numbers {
    display: flex !important;
    gap: 5px !important;
    margin: 0 5px !important;
}
  
.rtl-podcast-player .pagination button,
.rtl-podcast-player .pagination #prev-btn,
.rtl-podcast-player .pagination #next-btn {
    margin: 0 !important;  /* Changé de 5px à 0 */
    padding: 8px 16px;
    font-size: 1em;
    background-color: #1a1a1a;
    color: #00ffff;
    border: 1px solid #00ffff;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s ease;
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.rtl-podcast-player .pagination button:hover {
    background-color: #00ffff;
    color: #000;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
}

.rtl-podcast-player .modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(8px);
}

.rtl-podcast-player .modal-content {
    background-color: #1a1a1a;
    padding: 40px;
    border: 2px solid #00ffff;
    width: 90%;
    max-width: 500px;
    max-height: 90vh;
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    overflow-y: auto;
    color: white;
}

.rtl-podcast-player .close {
    position: absolute;
    top: 10px;
    right: 20px;
    color: #00ffff;
    font-size: 35px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.3s;
}

.rtl-podcast-player .close:hover {
    color: #00cccc;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #chromecast-button {
    background-color: #00ffff;
    border: none;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
    color: #000;
    margin-top: 20px;
    font-weight: bold;
    display: inline-block;
}

.rtl-podcast-player audio::-webkit-media-controls-panel {
    background-color: #2a2a2a;
}

.rtl-podcast-player audio::-webkit-media-controls-current-time-display,
.rtl-podcast-player audio::-webkit-media-controls-time-remaining-display {
    color: #000000;
}

.rtl-podcast-player #fixed-player-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(26, 26, 26, 0.95);
    backdrop-filter: blur(10px);
    padding: 10px 20px;
    z-index: 999;
    border-top: 2px solid #00ffff;
}

.rtl-podcast-player .fixed-player-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    gap: 20px;
}


.rtl-podcast-player #fixed-player-title {
    color: #00ffff;
    font-size: 1em;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.rtl-podcast-player #fixed-player-audio {
    flex: 2;
    max-width: 500px;
}

.episode-card {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(0, 255, 255, 0.3);
    border-radius: 15px;
    padding: 20px;
    margin-bottom: 20px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.episode-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 255, 255, 0.2);
}

.episode-card img {
    width: 100%;
    max-width: 200px;
    border-radius: 10px;
    margin: 10px 0;
}

.episode-card button {
    margin-top: 10px;
}
  
/* Conserve les styles des boutons play et mute */
audio::-webkit-media-controls-play-button,
audio::-webkit-media-controls-mute-button {
    background-color: #40E0D0 !important; /* Bleu turquoise */
    border-radius: 50% !important;
    transition: all 0.3s ease !important;
}

audio::-webkit-media-controls-play-button:hover,
audio::-webkit-media-controls-mute-button:hover {
    background-color: #5FECEC !important; /* Bleu turquoise plus clair au survol */
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5) !important;
}

/* Tentative pour changer la couleur du trait de progression */
audio::-webkit-media-controls-timeline {
    color: #a6a6a6 !important; /* Essaye de cibler le trait turquoise */
}

/* Modifie la couleur des trois petits points */
audio::-webkit-media-controls-panel {
    background-color: transparent !important; /* Assure que le fond ne prend pas de couleur */
    color: #40E0D0 !important; /* Forcer la couleur turquoise pour les trois points */
}

/* Tentative supplémentaire pour cibler le trait du curseur de progression */
audio::-webkit-slider-runnable-track {
    background-color: #40E0D0 !important; /* Bleu turquoise pour la piste */
}

audio::-webkit-slider-thumb {
    background-color: #a6a6a6 !important; /* Plus clair pour le curseur lui-même */
}


@media (max-width: 768px) {
    .rtl-podcast-player .fixed-player-content {
        flex-direction: column;
        gap: 10px;
        padding: 15px;
    }

    .rtl-podcast-player #fixed-player-audio {
        width: 100%;
        max-width: 100%;
    }

    .rtl-podcast-player #fixed-player-title {
        width: 100%;
        text-align: center;
        font-size: 0.9em;
    }
}

.rtl-podcast-player .social-button {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease-in-out;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.rtl-podcast-player .social-button:hover {
    transform: scale(1.1);
}

@media (max-width: 768px) {
    .rtl-podcast-player .social-share-buttons {
        gap: 10px;
    }
    
    .rtl-podcast-player .social-button {
        width: 40px;
        height: 40px;
    }
    
    .rtl-podcast-player .social-button svg {
        width: 20px;
        height: 20px;
    }
}

.navigation-buttons {
    position: absolute;
    width: 100%;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 10px;
    pointer-events: none;
    z-index: 1000;
}

.nav-button {
    background: rgba(0, 0, 0, 0.7);
    border: 2px solid #00ffff;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    pointer-events: auto;
}  

.nav-button:hover {
    background: rgba(0, 255, 255, 0.2);
    transform: scale(1.1);
}

.nav-button svg {
    width: 24px;
    height: 24px;
}

@media (max-width: 768px) {
    .nav-button {
        width: 35px;
        height: 35px;
    }
    
    .nav-button svg {
        width: 20px;
        height: 20px;
    }
}
</style>
<script type="text/javascript" src="//www.gstatic.com/cv/js/sender/v1/cast_sender.js"></script>

</head><body>
<div class="rtl-podcast-player">
    <div class="container" style="background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    border-radius: 0; /* Changed from 20px to 0 */
    box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);">
    <h1 style="color: #00ffff; text-align: center; font-size: 2.1em; margin-bottom: 40px; font-weight: 700; width: 100%; grid-column: 1 / -1; text-shadow: 0 0 10px rgba(0, 255, 255, 0.3); padding: 0 15px; display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap;">
Les infos aléatoires du monde de Salomé - Écoutez en rediffusion ou télécharger tous les podcasts NRJ
<img decoding="async" src="https://cdn.uc.assets.prezly.com/b1be11c1-7593-48e0-b0d3-dfedd93ef5a2/-/inline/no/Newsroom+Icon-NRJ.png" alt="Logo Europe 1" style="width: 60px; height: 60px; border-radius: 50%; padding: 5px; background: white; box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);">
</h1>
    <div class="social-share-buttons" style="display: flex; justify-content: center; align-items: center; gap: 15px; margin-bottom: 30px; width: 100%; grid-column: 1 / -1;">
    <button onclick="shareOnX()" class="social-button" style="background-color: #000;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnWhatsapp()" class="social-button" style="background-color: #25D366;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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.298-.347.446-.52.149-.174.198-.298.298-.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>
        </svg>
    </button>
    <button onclick="shareOnFacebook()" class="social-button" style="background-color: #1877F2;">  
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnLinkedIn()" class="social-button" style="background-color: #0A66C2;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
</div>
      
    <div id="featured-episode" style="display: flex; flex-direction: column; align-items: center; text-align: center; justify-content: space-between; gap: 20px; height: 100%; position: relative; padding-top: 20px; cursor: pointer;">
  <div class="features-episode" style="width: 100%; height: 100%;">
    <!-- Première carte (dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
            
    <!-- Deuxième carte (avant-dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
  </div>
</div>
    <div>
    <div class="search-filter-container">
        <input type="text" id="podcast-search" placeholder="Rechercher un podcast..." oninput="filterAndDisplayEpisodes()">
        <select id="podcast-filter" onchange="filterAndDisplayEpisodes()">
            <option value="newest">Plus récents</option>
            <option value="oldest">Plus anciens</option>
        </select>
    </div>
    <div id="episode-grid">
        <style>
            .episode {
                cursor: pointer;
            }
            
            .episode > * {
                pointer-events: none;
            }
            
            .episode button {
                pointer-events: auto;
            }
        </style>
    </div>
    <div class="pagination" id="pagination">
    <button id="prev-btn" onclick="changePage('prev')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M15 18l-6-6 6-6"></path>
        </svg>
    </button>
    <span id="page-numbers"></span>
    <button id="next-btn" onclick="changePage('next')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M9 18l6-6-6-6"></path>
        </svg>
    </button>
</div>

      <div class="ad-banner" style="width: 100%; max-width: 508px; margin: 20px auto; text-align: center; grid-column: 1 / -1; background: rgba(0,0,0,0.3); padding: 15px; border-radius: 10px; border: 1px solid rgba(0, 255, 255, 0.2); transition: transform 0.3s ease;">
    <p style="color: #666; font-size: 12px; margin-bottom: 10px;">Publicité</p>
    <a href="https://universal-academy.com/recruter-des-alternants-dans-le-tourisme/" target="_blank" style="display: inline-block;">
        <img decoding="async" src="https://radiostreamr.com/radio-france/wp-content/uploads/2024/11/Design-sans-titre-2024-11-06T134332.299.webp" alt="Bannière publicitaire RTL" style="width: 100%; max-width: 700px; height: auto; border-radius: 8px; transition: transform 0.3s ease;" onmouseover="this.style.transform='scale(1.02)'" onmouseout="this.style.transform='scale(1)'">
    </a>
</div>

    <script>
        // Ajouter un event listener pour les cartes d'épisodes
        document.getElementById('episode-grid').addEventListener('click', (e) => {
            const episodeCard = e.target.closest('.episode');
            if (episodeCard) {
                // Trouver le bouton dans la carte et simuler un clic dessus
                const button = episodeCard.querySelector('button');
                if (button) {
                    button.click();
                }
            }
        });
    </script>
</div>
    
    <div class="host-biography" style="grid-column: 1 / -1; background: rgba(0, 0, 0, 0.3); padding: 30px; border-radius: 15px; margin-top: 30px; border: 1px solid rgba(0, 255, 255, 0.2);">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
        <!-- Media query pour passer en une colonne sur mobile -->
        <style>
            @media (max-width: 768px) {
                .host-biography > div {
                    grid-template-columns: 1fr !important;
                }
            }
        </style>

      <div class="host-biography" style="grid-column: 1 / -1; padding: 30px; border-radius: 15px; margin-top: 30px;">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
      <div style="grid-column: 1 / -1; margin-bottom: 30px; text-align: center;">
    <div style="color: #ffffff; line-height: 1.6; text-align: center;">
    <h2 style="color: #00ffff; margin-bottom: 20px; text-align: center;">Les infos aléatoires du monde de Salomé - L'émission qui partage des informations insolites !</h2>
</div>

    <!-- Nouveaux boutons de réseaux sociaux -->
    <div style="display: flex; justify-content: center; align-items: center; gap: 20px; margin: 20px 0;">
        <a href="https://www.facebook.com/nrjradio/?locale=fr_FR" target="_blank" style="position: relative; width: 50px; height: 50px; background: #1877F2; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M18.77 7.46H14.5v-1.9c0-.9.6-1.1 1-1.1h3V.5h-4.33C10.24.5 9.5 3.44 9.5 5.32v2.15h-3v4h3v12h5v-12h3.85l.42-4z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Facebook</span>
</a>

        <a href="https://www.instagram.com/nrjhitmusiconly/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #E4405F; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Instagram</span>
</a>

        <a href="https://www.nrj.fr/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #00ffff; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#000000">
        <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur site web</span>
</a>
    </div>

    <style>
        /* Hover effects pour les boutons */
        .host-biography a:hover {
            transform: scale(1.1);
            box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
        }
        
        .host-biography a:hover span {
            opacity: 1;
        }

        /* Media queries pour le responsive */
        @media (max-width: 768px) {
            .host-biography div[style*="display: flex"] {
                flex-wrap: wrap;
                justify-content: center;
                gap: 15px;
            }
        }
    </style>

    <p style="color: #ffffff; line-height: 1.6; text-align: center; max-width: 1200px; margin: 0 auto;">
Les infos aléatoires du monde de Salomé est votre rendez-vous incontournable pour découvrir des faits insolites et fascinants ! Chaque semaine, Salomé vous fait voyager à travers le monde avec des anecdotes surprenantes, des histoires étonnantes et des découvertes inattendues. Au programme : des faits historiques méconnus, des traditions culturelles étonnantes, des découvertes scientifiques fascinantes, et bien d'autres curiosités qui piquent la curiosité. Que vous soyez passionné d'histoire, de science, de culture ou simplement curieux de nature, cette émission vous fera voir le monde sous un angle nouveau et captivant. Les infos aléatoires du monde de Salomé est devenue la référence des podcasts qui sortent des sentiers battus, offrant un regard original et divertissant sur les aspects les plus surprenants de notre monde. Ne manquez pas ce rendez-vous hebdomadaire qui vous permet d'enrichir vos connaissances tout en vous amusant et de partager des anecdotes fascinantes avec votre entourage !
</p>
    
    <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-top: 30px; padding: 20px;">
        <!-- Les 6 cartes existantes restent inchangées -->
        <!-- Carte 1 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M3 18v-6a9 9 0 0 1 18 0v6"></path>
                <path d="M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z"></path>
            </svg>
            <p style="color: #ffffff; margin: 0;">Écouter gratuitement tous les podcasts en streaming</p>
        </div>

        <!-- Carte 2 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
                <polyline points="7 10 12 15 17 10"></polyline>
                <line x1="12" y1="15" x2="12" y2="3"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Télécharger les épisodes pour une écoute hors-ligne</p>
        </div>

        <!-- Carte 3 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6"></path>
                <line x1="2" y1="20" x2="2" y2="20"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Diffuser sur votre Chromecast ou appareil compatible</p>
        </div>

        <!-- Carte 4 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="12" cy="12" r="10"></circle>
                <polygon points="10 8 16 12 10 16 10 8"></polygon>
            </svg>
            <p style="color: #ffffff; margin: 0;">Accéder à toutes les rediffusions des émissions précédentes</p>
        </div>

        <!-- Carte 5 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
        <circle cx="9" cy="7" r="4"></circle>
        <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
        <path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Partez à la découverte d'infos insolites et fascinantes avec Salomé dans son émission hebdomadaire !</p>
</div>

        <!-- Carte 6 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px; position: relative;" onmouseover="this.style.transform='translateY(-5px)'; document.getElementById('live-tooltip').style.opacity='1'" onmouseout="this.style.transform='translateY(0)'; document.getElementById('live-tooltip').style.opacity='0'" onclick="window.location.href='https://radiostreamr.com/radio-france/ecoutez-en-direct-nrj/'">
    <div id="live-tooltip" style="position: absolute; top: -40px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.8); color: #fff; padding: 8px 15px; border-radius: 5px; font-size: 14px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none; border: 1px solid #00ffff; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">
        Cliquez pour écouter en direct NRJ
    </div>
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M4 12h1"></path>
        <path d="M9 12h1"></path>
        <path d="M14 12h1"></path>
        <path d="M19 12h1"></path>
        <rect x="2" y="8" width="20" height="12" rx="2"></rect>
        <path d="M6 8V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v4"></path>
        <circle cx="12" cy="14" r="4"></circle>
        <path d="M12 10v8"></path>
        <path d="M8 14h8"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Écoutez en direct Les infos aléatoires du monde de Salomé - L'émission qui révèle des faits insolites !</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;"></p>
</div>
    </div>
</div>
        
        <!-- Histoire de l'émission -->
        <div style="padding: 20px; text-align: center; width: 100%; margin: 0 auto; grid-column: 1 / -1;">
</div>

        <!-- Biographie de Laurent Ruquier -->
        <div style="grid-column: 1 / -1;"></div>

        <!-- Sources (span across both columns) -->
        <div></div>
    </div>
</div>

</div>

    <div id="player-modal" class="modal">
    <div class="modal-content">
        <span class="close" onclick="closeModal()">×</span>
        <div id="player-content">
        </div>
        <button id="chromecast-button" onclick="startChromecast()" style="width: 60px; height: 60px; border-radius: 50%; padding: 0; background-image: url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png'); background-size: 35px; background-position: center; background-repeat: no-repeat; font-size: 0;"></button>
    </div>
</div>
    <div id="player-content">
    <style>
        /* Styles existants */
        .modal-content {
            background-color: #1a1a1a;
            padding: 40px;
            border: 2px solid #00ffff;
            width: 90%;
            max-width: 500px;
            max-height: 90vh;
            border-radius: 20px;
            text-align: center;
            box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
            position: fixed; /* Changé de absolute à fixed */
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) !important; /* Ajout de !important */
            overflow-y: auto;
            color: white;
        }

        /* Change la couleur du timing en noir */
        audio::-webkit-media-controls-time-display {
            color: #000000 !important;
        }

        /* Ajout de media queries pour le mobile */
        @media (max-width: 768px) {
            .modal-content {
                padding: 30px;
                width: 95%;
                margin: 0 auto;
                position: fixed;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%) !important;
            }
        }

        @media (max-height: 600px) {
            .modal-content {
                max-height: 85vh;
            }
        }
    </style>
</div>
    </div>

    <div id="fixed-player-bar" class="rtl-podcast-player" style="display: none;">
    <div class="fixed-player-content">
        <h3 id="fixed-player-title"></h3>
        <div class="audio-controls-container" style="display: flex; align-items: center; justify-content: center; gap: 20px; width: 100%; max-width: 800px; margin: 0 auto;">
            <audio id="fixed-player-audio" controls="">
                <source src="" type="audio/mpeg">
            </audio>
            <button onclick="startChromecast()" style="width: 40px; height: 40px; min-width: 40px; border-radius: 50%; padding: 0; background: #ffffff url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png') center/25px no-repeat; border: 2px solid #00ffff; font-size: 0; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">Cast to Chromecast</button>
            <button id="close-fixed-player" onclick="closeFixedPlayer()" style="background: none; border: none; color: #00ffff; font-size: 24px; cursor: pointer; padding: 5px; min-width: 24px; display: flex; align-items: center; justify-content: center;">×</button>
        </div>
    </div>
</div>

    <script>
    (function RTLPodcastPlayer() {
    window.__onGCastApiAvailable = function(isAvailable) {
        if (!isAvailable) return;

        const initializeCastApi = function() {
            const sessionRequest = new chrome.cast.SessionRequest(chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID);
            const apiConfig = new chrome.cast.ApiConfig(
                sessionRequest,
                sessionListener,
                receiverListener
            );
            chrome.cast.initialize(apiConfig, onInitSuccess, onError);
        };

        const sessionListener = function(session) {
            console.log('Session listener', session);
        };

        const receiverListener = function(availability) {
            console.log('Receiver listener', availability);
        };

        const onInitSuccess = function() {
            console.log('Cast initialization success');
        };

        const onError = function(error) {
            console.error('Cast initialization error', error);
        };

        if (!chrome.cast || !chrome.cast.isAvailable) {
            setTimeout(initializeCastApi, 1000);
        } else {
            initializeCastApi();
        }
    };

    const rssUrl = "https://aod.nrjaudio.fm/xml/2426.xml";
    const proxyUrl = `https://api.rss2json.com/v1/api.json?rss_url=${encodeURIComponent(rssUrl)}&api_key=int3lqiwwrpnsvem6yki0mtwki2f4qcvcxtrlyea&count=250`;
    const episodesPerPage = 4;
    let currentPage = 1;
    let currentAudioUrl = '';
    let totalPages = 0;
    let allEpisodes = [];
    let filteredEpisodes = [];

    fetch(proxyUrl)
        .then(response => response.json())
        .then(data => {
            if (data.status !== "ok") {
                throw new Error("Erreur de chargement du flux RSS.");
            }
            allEpisodes = data.items;
            filteredEpisodes = [...allEpisodes];
            displayFeaturedEpisode(allEpisodes[0]);
            displayEpisodes(currentPage, filteredEpisodes);
            setupPagination(allEpisodes);
        })
        .catch(error => {
            document.getElementById("featured-episode").innerHTML = "<p>Impossible de charger le flux RSS. Veuillez réessayer plus tard.</p>";
        });

    function truncateDescription(description, maxLength = 180) {
        const tempElement = document.createElement("div");
        tempElement.innerHTML = description;
        let plainText = tempElement.innerText || tempElement.textContent || '';
        if (plainText.length <= maxLength) return plainText.trim();
        return plainText.substring(0, maxLength).trim() + '...';
    }

    function displayFeaturedEpisode(episode) {
        const featuredEpisode = document.getElementById("featured-episode");
        featuredEpisode.innerHTML = `
        <div class="features-episode" style="width: 100%; height: 100%;">
            <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[0].enclosure.link)}', '${sanitizeString(allEpisodes[0].title)}')">
                <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[0].title)}</h3>
                ${allEpisodes[0].thumbnail ? `<img decoding="async" src="${allEpisodes[0].thumbnail}" alt="Image de la dernière émission">` : ""}
                <div class="description" style="color: white;">${truncateDescription(allEpisodes[0].description)}</div>
                <div class="date-badge">
                    ${new Date(allEpisodes[0].pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button></button>
            </div>
            
            <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[1].enclosure.link)}', '${sanitizeString(allEpisodes[1].title)}')">
                <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[1].title)}</h3>
                ${allEpisodes[1].thumbnail ? `<img decoding="async" src="${allEpisodes[1].thumbnail}" alt="Image de l'avant-dernière émission">` : ""}
                <div class="description" style="color: white;">${truncateDescription(allEpisodes[1].description)}</div>
                <div class="date-badge">
                    ${new Date(allEpisodes[1].pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button></button>
            </div>
        </div>
        `;
    }

    function displayEpisodes(page, episodes) {
        const episodeGrid = document.getElementById("episode-grid");
        episodeGrid.innerHTML = "";
        const episodesWithoutFeatured = episodes.slice(2);
        const start = (page - 1) * episodesPerPage;  
        const end = start + episodesPerPage;
        
        episodesWithoutFeatured.slice(start, end).forEach(item => {
            episodeGrid.innerHTML += `
            <div class="episode">
                <h5 style="color: #00ffff;">${sanitizeString(item.title)}</h5>
                ${item.thumbnail ? `<img decoding="async" src="${item.thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 150px;">` : ""}
                <div class="description" style="color: white;">${truncateDescription(item.description)}</div>
                <div class="date-badge">
                    ${new Date(item.pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button onclick="openModal('${sanitizeString(item.enclosure.link)}', '${sanitizeString(item.title)}')"></button>
            </div>
            `;
        });
        updatePaginationButtons();
    }

    function setupPagination(episodes) {
        totalPages = Math.ceil((episodes.length - 2) / episodesPerPage);
        const pageNumbers = document.getElementById("page-numbers");
        pageNumbers.innerHTML = "";

        let start = currentPage;
        if (currentPage === totalPages) {
            start = totalPages - 2;
        } else if (currentPage === 1) {
            start = 1;
        } else {
            start = currentPage - 1;
        }

        start = Math.max(1, start);
        
        for (let i = start; i < start + 3 && i <= totalPages; i++) {
            const button = document.createElement("button");
            button.textContent = i;
            button.addEventListener("click", () => {
                currentPage = i;
                displayEpisodes(currentPage, episodes);
                setupPagination(episodes);
            });
            pageNumbers.appendChild(button);
        }

        window.changePage = function(direction) {
            if (direction === 'prev' && currentPage > 1) {
                currentPage--;
            } else if (direction === 'next' && currentPage < totalPages) {
                currentPage++;
            }
            displayEpisodes(currentPage, filteredEpisodes);
            setupPagination(episodes);
            updatePaginationButtons();
        }

        updatePaginationButtons();
    }

    function updatePaginationButtons() {
        const prevBtn = document.getElementById('prev-btn');
        const nextBtn = document.getElementById('next-btn');
        
        prevBtn.disabled = currentPage === 1;
        nextBtn.disabled = currentPage === totalPages;
        
        prevBtn.style.opacity = currentPage === 1 ? '0.5' : '1';
        nextBtn.style.opacity = currentPage === totalPages ? '0.5' : '1';
        
        const pageButtons = document.querySelectorAll('#page-numbers button');
        pageButtons.forEach((button, index) => {
            if (index + 1 === currentPage) {
                button.style.backgroundColor = '#00ffff';
                button.style.color = '#000';
            } else {
                button.style.backgroundColor = '#1a1a1a';
                button.style.color = '#00ffff';
            }
        });
    }

    function sanitizeString(str) {
        return str.replace(/['"\\<>]/g, "");
    }

    window.openModal = function(audioUrl, title) {
        const playerContent = document.getElementById("player-content");
        const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
        const thumbnail = currentEpisode?.thumbnail;
        
        playerContent.innerHTML = `
            <h2>${title}</h2>
            ${thumbnail ? `<img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0;">` : ''}
            <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
                <source src="${audioUrl}" type="audio/mpeg">
                Votre navigateur ne supporte pas la lecture audio.
            </audio>
        `;
        
        currentAudioUrl = audioUrl;
        document.getElementById("player-modal").style.display = "block";
        window.currentEpisodeTitle = title;
        
        const modalAudio = document.getElementById('modal-audio');
        modalAudio.addEventListener('play', () => {
            window.isPlaying = true;
        });
        modalAudio.addEventListener('pause', () => {
            window.isPlaying = false;
        });
    }

    window.closeModal = function() {
        const modalAudio = document.getElementById('modal-audio');
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        const fixedPlayerTitle = document.getElementById('fixed-player-title');
        
        if (window.isPlaying) {
            modalAudio.pause();
            fixedPlayerBar.style.display = 'block';
            fixedPlayerTitle.textContent = window.currentEpisodeTitle;
            fixedPlayerAudio.src = currentAudioUrl;
            fixedPlayerAudio.currentTime = modalAudio.currentTime;
            fixedPlayerAudio.play();
        }
        
        document.getElementById("player-modal").style.display = "none";
    }

    window.closeFixedPlayer = function() {
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        fixedPlayerAudio.pause();
        fixedPlayerBar.style.display = 'none';
    }

    window.startChromecast = function() {
        if (!chrome.cast || !chrome.cast.isAvailable) {
            console.log('Cast API not available');
            return;
        }

        chrome.cast.requestSession(
            function(session) {
                if (currentAudioUrl) {
                    const mediaInfo = new chrome.cast.media.MediaInfo(currentAudioUrl, 'audio/mpeg');
                    mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();
                    mediaInfo.metadata.title = document.querySelector('#player-content h2').textContent;

                    const request = new chrome.cast.media.LoadRequest(mediaInfo);
                    session.loadMedia(request).then(
                        () => console.log('Lecture Chromecast démarrée'),
                        errorCode => console.error('Erreur Chromecast: ' + errorCode)
                    );
                }
            },
            function(error) {
                console.error('Erreur lors de la création de la session:', error);
            }
        );
    }

    window.shareOnX = function() {
        const text = "Écoutez les podcasts : Les infos aléatoires du monde de Salomé de NRJ avec RadiostreamR !";
        const url = window.location.href;
        window.open(`https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}&url=${encodeURIComponent(url)}`, '_blank');
    };

    window.shareOnWhatsapp = function() {
        const text = "Écoutez les podcasts : Les infos aléatoires du monde de Salomé de NRJ avec RadiostreamR !";
        const url = window.location.href;
        window.open(`https://wa.me/?text=${encodeURIComponent(text + ' ' + url)}`, '_blank');
    };

    window.shareOnFacebook = function() {
        const text = "Écoutez les podcasts : Les infos aléatoires du monde de Salomé de NRJ avec RadiostreamR !";
        const url = window.location.href;
        window.open(`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(url)}`, '_blank');
    };

    window.shareOnLinkedIn = function() {
        const text = "Écoutez les podcasts : Les infos aléatoires du monde de Salomé de NRJ avec RadiostreamR !";
        const url = window.location.href;
        window.open(`https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(url)}`, '_blank');
    };

    window.filterAndDisplayEpisodes = function() {
        const searchTerm = document.getElementById('podcast-search').value.toLowerCase();
        const filterValue = document.getElementById('podcast-filter').value;
        
        filteredEpisodes = allEpisodes.filter(episode => 
            episode.title.toLowerCase().includes(searchTerm) || 
            episode.description.toLowerCase().includes(searchTerm)
        );
        
        if (filterValue === 'oldest') {
            filteredEpisodes.sort((a, b) => new Date(a.pubDate) - new Date(b.pubDate));
        } else {
            filteredEpisodes.sort((a, b) => new Date(b.pubDate) - new Date(a.pubDate));
        }
        
        currentPage = 1;
        
        if (filteredEpisodes.length > 0) {
            displayFeaturedEpisode(filteredEpisodes[0]);
            displayEpisodes(currentPage, filteredEpisodes);
            setupPagination(filteredEpisodes);
        } else {
            document.getElementById('episode-grid').innerHTML = '<p style="color: #fff; text-align: center; grid-column: 1/-1;">Aucun résultat trouvé</p>';
            document.getElementById('page-numbers').innerHTML = '';
        }
    }
})();
</script>
</div>
</div></body></html>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-551c4bf e-con-full e-flex e-con e-parent" data-id="551c4bf" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-9371460 elementor-widget elementor-widget-shortcode" data-id="9371460" data-element_type="widget" data-widget_type="shortcode.default">
				<div class="elementor-widget-container">
							<div class="elementor-shortcode"></div>
						</div>
				</div>
				</div>
				</div>
		<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-infos-aleatoires-monde-salome-nrj/">🗣️ Podcast et replay &#8211; Les infos aléatoires du monde de Salomé &#8211; NRJ</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://radiostreamr.com/radio-france/podcast-infos-aleatoires-monde-salome-nrj/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; NRJ Séries News &#8211; Ecoutez les rediffusions !</title>
		<link>https://radiostreamr.com/radio-france/podcast-nrj-series-news/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-nrj-series-news/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 20 Nov 2024 12:29:40 +0000</pubDate>
				<category><![CDATA[NRJ]]></category>
		<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1423</guid>

					<description><![CDATA[<p>NRJ Séries News &#8211; Écoutez en rediffusion ou télécharger tous les podcasts NRJ Plus récentsPlus anciens Publicité NRJ Séries News &#8211; L&#8217;émission qui décrypte les séries du moment ! Voir leur Facebook Voir leur Instagram Voir leur site web NRJ Séries News est votre rendez-vous incontournable pour tout savoir sur les séries du moment ! [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-nrj-series-news/">🗣️ Podcast et replay &#8211; NRJ Séries News &#8211; Ecoutez les rediffusions !</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1423" class="elementor elementor-1423" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-dce457e e-con-full e-flex e-con e-parent" data-id="dce457e" data-element_type="container">
				<div class="elementor-element elementor-element-9f9be1c 1995 elementor-widget elementor-widget-html" data-id="9f9be1c" data-element_type="widget" id="1995" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<!DOCTYPE html><html><head><meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&amp;display=swap" rel="stylesheet">
<style>
    .rtl-podcast-player * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: 'Roboto', sans-serif;
    }

  .rtl-podcast-player #pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: 100% !important;
}

@keyframes gradientBG {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.rtl-podcast-player body {
    background: linear-gradient(-45deg, #0a192f, #172a45, #1a365d, #102235);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    min-height: 100vh;
    display: flex;
    align-items: center;
    color: #fff;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
}

    .rtl-podcast-player .container {
        display: grid;
        grid-template-columns: 1.2fr 2.8fr;
        gap: 20px;
        margin: 0 auto;
        padding: 50px 150px !important;
        width: 100%;
        background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
        background-size: 400% 400%;
        animation: gradientBG 15s ease infinite;
        border-radius: 0;
        box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);
    }


    @media (max-width: 1024px) {
        .rtl-podcast-player .container {
            padding: 30px 45px;
            grid-template-columns: 1fr 2fr;
        }
        
        .rtl-podcast-player h1 {
            font-size: 2em;
        }
    }


    @media (max-width: 768px) {
        .rtl-podcast-player .container {
            padding: 20px !important; /* Override padding */
            margin: 0 !important; /* Reset margin */
            width: 100% !important;
            max-width: 100% !important;
            grid-template-columns: 1fr;
            overflow-x: hidden; /* Prevent horizontal scroll */
        }
        
        .rtl-podcast-player #episode-grid,
        .rtl-podcast-player .episode,
        .rtl-podcast-player #featured-episode,
        .rtl-podcast-player .host-biography,
        .rtl-podcast-player .social-share-buttons {
            width: 100% !important;
            margin-left: auto !important;
            margin-right: auto !important;
            padding: 15px !important;
        }
        
        .rtl-podcast-player h1,
        .rtl-podcast-player h2,
        .rtl-podcast-player p {
            padding-left: 10px !important;
            padding-right: 10px !important;
            text-align: center;
        }

        .rtl-podcast-player #episode-grid {
            grid-template-columns: 1fr !important; /* Force single column */
            gap: 20px;
        }
        
        .rtl-podcast-player .episode {
            width: 100% !important;
            margin: 0 auto !important;
        }
    }


@media (max-width: 480px) {
    .rtl-podcast-player .container {
        padding: 10px !important;
    }
    
    .rtl-podcast-player #featured-episode,
    .rtl-podcast-player .episode {
        padding: 15px !important;
        width: 100% !important;
        margin: 0 auto !important;
    }
}

.rtl-podcast-player h1 {
    color: #00ffff;
    text-align: center;
    font-size: 2.3em;
    margin-bottom: 40px;
    font-weight: 700;
    width: 100%;
    grid-column: 1 / -1;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.3);
}

  #fixed-player-bar {
        display: flex;               /* Assure l'affichage en flex */
        flex-direction: column;       /* Organisation en colonne */
        align-items: center;          /* Centre les éléments */
        padding: 10px;
        gap: 10px;                    /* Espace entre chaque ligne */
        background: rgba(26, 26, 26, 0.95); /* Conserve l’arrière-plan */
        display: none;                /* Masqué par défaut */
    }

    /* Ligne 1 : Titre de l'épisode */
    #fixed-player-title {
        display: block;               /* Force l'affichage sur une ligne complète */
        text-align: center;
        font-size: 1.2em;
        color: #00ffff;
        width: 100%;                  /* Prend la largeur complète */
    }

    /* Ligne 2 : Player audio */
    #fixed-player-audio {
        display: block;               /* Force l'affichage sur une ligne complète */
        width: 100%;
    }

    /* Ligne 3 : Conteneur pour les boutons Chromecast et fermeture */
    .audio-controls-container {
        display: flex;
        justify-content: center;
        gap: 20px;
        width: 100%;                  /* Assure une disposition sur toute la largeur */
    }

    /* Styles des boutons */
    #chromecast-button, #close-fixed-player {
        width: 40px;
        height: 40px;
        border: none;
        cursor: pointer;
    }
}

  @media (max-width: 768px) {
    .rtl-podcast-player h1 {
        margin-top: 0px !important; /* Ajustez la valeur selon vos besoins */
    }
}
  
.rtl-podcast-player #featured-episode {
    /* Remplacer ces styles */
    display: flex;
    flex-direction: column;
    height: 100%; /* Ajout de cette ligne */
    padding: 30px;
    border-radius: 15px;
    background-color: transparent;
    color: #ffffff;
    transition: all 0.3s ease;
}

.rtl-podcast-player #featured-episode:hover {
    transform: translateY(-5px);
}

.rtl-podcast-player #featured-episode h3 {
    color: #00ffff;
    margin-bottom: 15px;
    font-weight: 500;
}

.rtl-podcast-player #featured-episode button, .rtl-podcast-player .episode button {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    padding: 0;
    background-image: url('https://static.vecteezy.com/system/resources/thumbnails/017/196/540/small/3d-play-button-icon-transparent-background-free-png.png');
    background-size: 35px;
    background-position: center;
    background-repeat: no-repeat;
    font-size: 0;
    position: relative;
}

    .rtl-podcast-player .date-badge {
        background: rgba(0, 255, 255, 0.1);
        border: 2px solid #00ffff;
        border-radius: 8px;
        padding: 8px 15px;
        color: #00ffff;
        font-weight: bold;
        text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
        box-shadow: 
            0 0 5px rgba(0, 255, 255, 0.2),
            0 0 10px rgba(0, 255, 255, 0.2),
            0 0 15px rgba(0, 255, 255, 0.2),
            0 0 20px rgba(0, 255, 255, 0.2);
        animation: neonPulse 1.5s ease-in-out infinite;
        margin: 15px auto 20px auto; /* Increased bottom margin */
        display: block; /* Changed from inline-block to block */
        width: fit-content;
    }

    @keyframes neonPulse {
        0%, 100% {
            box-shadow: 
                0 0 5px rgba(0, 255, 255, 0.2),
                0 0 10px rgba(0, 255, 255, 0.2),
                0 0 15px rgba(0, 255, 255, 0.2),
                0 0 20px rgba(0, 255, 255, 0.2);
        }
        50% {
            box-shadow: 
                0 0 10px rgba(0, 255, 255, 0.4),
                0 0 20px rgba(0, 255, 255, 0.4),
                0 0 30px rgba(0, 255, 255, 0.4),
                0 0 40px rgba(0, 255, 255, 0.4);
        }
    }


.rtl-podcast-player #featured-episode img,
.rtl-podcast-player .episode img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .modal-content img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .episode button:hover::after,
.rtl-podcast-player #featured-episode button:hover::after {
    content: "Ecouter ce podcast";
    position: absolute;
    bottom: -35px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 14px;
    white-space: nowrap;
    z-index: 1000;
}

.rtl-podcast-player #featured-episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #episode-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

    .rtl-podcast-player .episode {
        padding: 20px;
        border-radius: 15px;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.1);
        text-align: center;
        background-color: #1a1a1a;
        transition: all 0.3s ease;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .rtl-podcast-player .episode p {
        color: #ffffff;
    }


.rtl-podcast-player .episode:hover {
    box-shadow: 0 0 20px rgba(0, 255, 255, 0.2);
    transform: translateY(-3px);
}

.rtl-podcast-player .episode h5 {
    margin-bottom: 10px;
    color: #00ffff;
}

.rtl-podcast-player .episode a {
    color: #00ffff;
    text-decoration: none;
}

    .rtl-podcast-player .episode button:hover {
        background-color: #00cccc;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
    }
    
    .search-filter-container {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 15px;
        margin-bottom: 30px;
        width: 100%;
    }

    .search-filter-container input,
    .search-filter-container select {
        padding: 10px 15px;
        border: 2px solid #00ffff;
        border-radius: 8px;
        background: rgba(0, 0, 0, 0.3);
        color: #fff;
        font-size: 16px;
        width: 200px;
    }

    .search-filter-container input::placeholder {
        color: rgba(255, 255, 255, 0.6);
    }

    .search-filter-container input:focus,
    .search-filter-container select:focus {
        outline: none;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
    }

    .search-filter-container select {
        cursor: pointer;
    }

    .search-filter-container select option {
        background-color: #1a1a1a;
        color: #fff;
    }

    @media (max-width: 768px) {
        .search-filter-container {
            flex-direction: column;
            gap: 10px;
        }

        .search-filter-container input,
        .search-filter-container select {
            width: 100%;
            max-width: 300px;
        }
    }

    color: #000;
    border: none;
    padding: 8px 20px;
    border-radius: 20px;
    cursor: pointer;
    font-weight: 500;
    transition: all 0.3s ease;
    margin-top: 10px; /* Add space above button */
    display: block; /* Ensure block-level display */
    margin-left: auto;
    margin-right: auto;
}

.rtl-podcast-player .episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player .pagination {
    text-align: center !important;
    margin-top: 30px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: auto !important;
}

  .rtl-podcast-player #page-numbers {
    display: flex !important;
    gap: 5px !important;
    margin: 0 5px !important;
}
  
.rtl-podcast-player .pagination button,
.rtl-podcast-player .pagination #prev-btn,
.rtl-podcast-player .pagination #next-btn {
    margin: 0 !important;  /* Changé de 5px à 0 */
    padding: 8px 16px;
    font-size: 1em;
    background-color: #1a1a1a;
    color: #00ffff;
    border: 1px solid #00ffff;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s ease;
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.rtl-podcast-player .pagination button:hover {
    background-color: #00ffff;
    color: #000;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
}

.rtl-podcast-player .modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(8px);
}

.rtl-podcast-player .modal-content {
    background-color: #1a1a1a;
    padding: 40px;
    border: 2px solid #00ffff;
    width: 90%;
    max-width: 500px;
    max-height: 90vh;
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    overflow-y: auto;
    color: white;
}

.rtl-podcast-player .close {
    position: absolute;
    top: 10px;
    right: 20px;
    color: #00ffff;
    font-size: 35px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.3s;
}

.rtl-podcast-player .close:hover {
    color: #00cccc;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #chromecast-button {
    background-color: #00ffff;
    border: none;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
    color: #000;
    margin-top: 20px;
    font-weight: bold;
    display: inline-block;
}

.rtl-podcast-player audio::-webkit-media-controls-panel {
    background-color: #2a2a2a;
}

.rtl-podcast-player audio::-webkit-media-controls-current-time-display,
.rtl-podcast-player audio::-webkit-media-controls-time-remaining-display {
    color: #000000;
}

.rtl-podcast-player #fixed-player-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(26, 26, 26, 0.95);
    backdrop-filter: blur(10px);
    padding: 10px 20px;
    z-index: 999;
    border-top: 2px solid #00ffff;
}

.rtl-podcast-player .fixed-player-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    gap: 20px;
}


.rtl-podcast-player #fixed-player-title {
    color: #00ffff;
    font-size: 1em;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.rtl-podcast-player #fixed-player-audio {
    flex: 2;
    max-width: 500px;
}

.episode-card {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(0, 255, 255, 0.3);
    border-radius: 15px;
    padding: 20px;
    margin-bottom: 20px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.episode-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 255, 255, 0.2);
}

.episode-card img {
    width: 100%;
    max-width: 200px;
    border-radius: 10px;
    margin: 10px 0;
}

.episode-card button {
    margin-top: 10px;
}
  
/* Conserve les styles des boutons play et mute */
audio::-webkit-media-controls-play-button,
audio::-webkit-media-controls-mute-button {
    background-color: #40E0D0 !important; /* Bleu turquoise */
    border-radius: 50% !important;
    transition: all 0.3s ease !important;
}

audio::-webkit-media-controls-play-button:hover,
audio::-webkit-media-controls-mute-button:hover {
    background-color: #5FECEC !important; /* Bleu turquoise plus clair au survol */
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5) !important;
}

/* Tentative pour changer la couleur du trait de progression */
audio::-webkit-media-controls-timeline {
    color: #a6a6a6 !important; /* Essaye de cibler le trait turquoise */
}

/* Modifie la couleur des trois petits points */
audio::-webkit-media-controls-panel {
    background-color: transparent !important; /* Assure que le fond ne prend pas de couleur */
    color: #40E0D0 !important; /* Forcer la couleur turquoise pour les trois points */
}

/* Tentative supplémentaire pour cibler le trait du curseur de progression */
audio::-webkit-slider-runnable-track {
    background-color: #40E0D0 !important; /* Bleu turquoise pour la piste */
}

audio::-webkit-slider-thumb {
    background-color: #a6a6a6 !important; /* Plus clair pour le curseur lui-même */
}


@media (max-width: 768px) {
    .rtl-podcast-player .fixed-player-content {
        flex-direction: column;
        gap: 10px;
        padding: 15px;
    }

    .rtl-podcast-player #fixed-player-audio {
        width: 100%;
        max-width: 100%;
    }

    .rtl-podcast-player #fixed-player-title {
        width: 100%;
        text-align: center;
        font-size: 0.9em;
    }
}

.rtl-podcast-player .social-button {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease-in-out;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.rtl-podcast-player .social-button:hover {
    transform: scale(1.1);
}

@media (max-width: 768px) {
    .rtl-podcast-player .social-share-buttons {
        gap: 10px;
    }
    
    .rtl-podcast-player .social-button {
        width: 40px;
        height: 40px;
    }
    
    .rtl-podcast-player .social-button svg {
        width: 20px;
        height: 20px;
    }
}

.navigation-buttons {
    position: absolute;
    width: 100%;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 10px;
    pointer-events: none;
    z-index: 1000;
}

.nav-button {
    background: rgba(0, 0, 0, 0.7);
    border: 2px solid #00ffff;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    pointer-events: auto;
}  

.nav-button:hover {
    background: rgba(0, 255, 255, 0.2);
    transform: scale(1.1);
}

.nav-button svg {
    width: 24px;
    height: 24px;
}

@media (max-width: 768px) {
    .nav-button {
        width: 35px;
        height: 35px;
    }
    
    .nav-button svg {
        width: 20px;
        height: 20px;
    }
}
</style>
<script type="text/javascript" src="//www.gstatic.com/cv/js/sender/v1/cast_sender.js"></script>

</head><body>
<div class="rtl-podcast-player">
    <div class="container" style="background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    border-radius: 0; /* Changed from 20px to 0 */
    box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);">
    <h1 style="color: #00ffff; text-align: center; font-size: 2.1em; margin-bottom: 40px; font-weight: 700; width: 100%; grid-column: 1 / -1; text-shadow: 0 0 10px rgba(0, 255, 255, 0.3); padding: 0 15px; display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap;">
NRJ Séries News - Écoutez en rediffusion ou télécharger tous les podcasts NRJ
<img decoding="async" src="https://cdn.uc.assets.prezly.com/b1be11c1-7593-48e0-b0d3-dfedd93ef5a2/-/inline/no/Newsroom+Icon-NRJ.png" alt="Logo Europe 1" style="width: 60px; height: 60px; border-radius: 50%; padding: 5px; background: white; box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);">
</h1>
    <div class="social-share-buttons" style="display: flex; justify-content: center; align-items: center; gap: 15px; margin-bottom: 30px; width: 100%; grid-column: 1 / -1;">
    <button onclick="shareOnX()" class="social-button" style="background-color: #000;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnWhatsapp()" class="social-button" style="background-color: #25D366;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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.298-.347.446-.52.149-.174.198-.298.298-.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>
        </svg>
    </button>
    <button onclick="shareOnFacebook()" class="social-button" style="background-color: #1877F2;">  
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnLinkedIn()" class="social-button" style="background-color: #0A66C2;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
</div>
      
    <div id="featured-episode" style="display: flex; flex-direction: column; align-items: center; text-align: center; justify-content: space-between; gap: 20px; height: 100%; position: relative; padding-top: 20px; cursor: pointer;">
  <div class="features-episode" style="width: 100%; height: 100%;">
    <!-- Première carte (dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
            
    <!-- Deuxième carte (avant-dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
  </div>
</div>
    <div>
    <div class="search-filter-container">
        <input type="text" id="podcast-search" placeholder="Rechercher un podcast..." oninput="filterAndDisplayEpisodes()">
        <select id="podcast-filter" onchange="filterAndDisplayEpisodes()">
            <option value="newest">Plus récents</option>
            <option value="oldest">Plus anciens</option>
        </select>
    </div>
    <div id="episode-grid">
        <style>
            .episode {
                cursor: pointer;
            }
            
            .episode > * {
                pointer-events: none;
            }
            
            .episode button {
                pointer-events: auto;
            }
        </style>
    </div>
    <div class="pagination" id="pagination">
    <button id="prev-btn" onclick="changePage('prev')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M15 18l-6-6 6-6"></path>
        </svg>
    </button>
    <span id="page-numbers"></span>
    <button id="next-btn" onclick="changePage('next')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M9 18l6-6-6-6"></path>
        </svg>
    </button>
</div>

      <div class="ad-banner" style="width: 100%; max-width: 508px; margin: 20px auto; text-align: center; grid-column: 1 / -1; background: rgba(0,0,0,0.3); padding: 15px; border-radius: 10px; border: 1px solid rgba(0, 255, 255, 0.2); transition: transform 0.3s ease;">
    <p style="color: #666; font-size: 12px; margin-bottom: 10px;">Publicité</p>
    <a href="https://universal-academy.com/recruter-des-alternants-dans-le-tourisme/" target="_blank" style="display: inline-block;">
        <img decoding="async" src="https://radiostreamr.com/radio-france/wp-content/uploads/2024/11/Design-sans-titre-2024-11-06T134332.299.webp" alt="Bannière publicitaire RTL" style="width: 100%; max-width: 700px; height: auto; border-radius: 8px; transition: transform 0.3s ease;" onmouseover="this.style.transform='scale(1.02)'" onmouseout="this.style.transform='scale(1)'">
    </a>
</div>

    <script>
        // Ajouter un event listener pour les cartes d'épisodes
        document.getElementById('episode-grid').addEventListener('click', (e) => {
            const episodeCard = e.target.closest('.episode');
            if (episodeCard) {
                // Trouver le bouton dans la carte et simuler un clic dessus
                const button = episodeCard.querySelector('button');
                if (button) {
                    button.click();
                }
            }
        });
    </script>
</div>
    
    <div class="host-biography" style="grid-column: 1 / -1; background: rgba(0, 0, 0, 0.3); padding: 30px; border-radius: 15px; margin-top: 30px; border: 1px solid rgba(0, 255, 255, 0.2);">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
        <!-- Media query pour passer en une colonne sur mobile -->
        <style>
            @media (max-width: 768px) {
                .host-biography > div {
                    grid-template-columns: 1fr !important;
                }
            }
        </style>

      <div class="host-biography" style="grid-column: 1 / -1; padding: 30px; border-radius: 15px; margin-top: 30px;">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
      <div style="grid-column: 1 / -1; margin-bottom: 30px; text-align: center;">
    <div style="color: #ffffff; line-height: 1.6; text-align: center;">
    <h2 style="color: #00ffff; margin-bottom: 20px; text-align: center;">NRJ Séries News - L'émission qui décrypte les séries du moment !</h2>
</div>

    <!-- Nouveaux boutons de réseaux sociaux -->
    <div style="display: flex; justify-content: center; align-items: center; gap: 20px; margin: 20px 0;">
        <a href="https://www.facebook.com/nrjradio/?locale=fr_FR" target="_blank" style="position: relative; width: 50px; height: 50px; background: #1877F2; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M18.77 7.46H14.5v-1.9c0-.9.6-1.1 1-1.1h3V.5h-4.33C10.24.5 9.5 3.44 9.5 5.32v2.15h-3v4h3v12h5v-12h3.85l.42-4z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Facebook</span>
</a>

        <a href="https://www.instagram.com/nrjhitmusiconly/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #E4405F; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Instagram</span>
</a>

        <a href="https://www.nrj.fr/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #00ffff; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#000000">
        <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur site web</span>
</a>
    </div>

    <style>
        /* Hover effects pour les boutons */
        .host-biography a:hover {
            transform: scale(1.1);
            box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
        }
        
        .host-biography a:hover span {
            opacity: 1;
        }

        /* Media queries pour le responsive */
        @media (max-width: 768px) {
            .host-biography div[style*="display: flex"] {
                flex-wrap: wrap;
                justify-content: center;
                gap: 15px;
            }
        }
    </style>

    <p style="color: #ffffff; line-height: 1.6; text-align: center; max-width: 1200px; margin: 0 auto;">
NRJ Séries News est votre rendez-vous incontournable pour tout savoir sur les séries du moment ! Chaque semaine, cette émission passionnante vous fait découvrir une série différente, décortiquant son intrigue, présentant ses personnages et révélant les secrets de sa production. Au programme : des analyses approfondies, des anecdotes exclusives sur les coulisses du tournage, des interviews des acteurs et créateurs, et bien sûr, les dernières actualités des séries les plus attendues. Que vous soyez fan de drames, de comédies, de thrillers ou de science-fiction, NRJ Séries News vous guide dans l'univers fascinant des séries télévisées, vous aidant à découvrir de nouvelles pépites et à approfondir vos connaissances sur vos shows préférés. Ne manquez pas ce rendez-vous hebdomadaire qui vous permet de rester à la pointe de l'actualité des séries et de partager votre passion avec une communauté de sériephiles ! NRJ Séries News est devenue la référence des podcasts dédiés aux séries, offrant un regard expert et passionné sur les productions qui font vibrer les spectateurs du monde entier.
</p>
    
    <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-top: 30px; padding: 20px;">
        <!-- Les 6 cartes existantes restent inchangées -->
        <!-- Carte 1 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M3 18v-6a9 9 0 0 1 18 0v6"></path>
                <path d="M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z"></path>
            </svg>
            <p style="color: #ffffff; margin: 0;">Écouter gratuitement tous les podcasts en streaming</p>
        </div>

        <!-- Carte 2 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
                <polyline points="7 10 12 15 17 10"></polyline>
                <line x1="12" y1="15" x2="12" y2="3"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Télécharger les épisodes pour une écoute hors-ligne</p>
        </div>

        <!-- Carte 3 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6"></path>
                <line x1="2" y1="20" x2="2" y2="20"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Diffuser sur votre Chromecast ou appareil compatible</p>
        </div>

        <!-- Carte 4 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="12" cy="12" r="10"></circle>
                <polygon points="10 8 16 12 10 16 10 8"></polygon>
            </svg>
            <p style="color: #ffffff; margin: 0;">Accéder à toutes les rediffusions des émissions précédentes</p>
        </div>

        <!-- Carte 5 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
        <circle cx="9" cy="7" r="4"></circle>
        <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
        <path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Découvrez chaque semaine une nouvelle série décryptée et analysée en détail dans NRJ Séries News !</p>
</div>

        <!-- Carte 6 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px; position: relative;" onmouseover="this.style.transform='translateY(-5px)'; document.getElementById('live-tooltip').style.opacity='1'" onmouseout="this.style.transform='translateY(0)'; document.getElementById('live-tooltip').style.opacity='0'" onclick="window.location.href='https://radiostreamr.com/radio-france/ecoutez-en-direct-nrj/'">
    <div id="live-tooltip" style="position: absolute; top: -40px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.8); color: #fff; padding: 8px 15px; border-radius: 5px; font-size: 14px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none; border: 1px solid #00ffff; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">
        Cliquez pour écouter en direct NRJ
    </div>
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M4 12h1"></path>
        <path d="M9 12h1"></path>
        <path d="M14 12h1"></path>
        <path d="M19 12h1"></path>
        <rect x="2" y="8" width="20" height="12" rx="2"></rect>
        <path d="M6 8V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v4"></path>
        <circle cx="12" cy="14" r="4"></circle>
        <path d="M12 10v8"></path>
        <path d="M8 14h8"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Écoutez en direct NRJ Séries News - L'émission qui décrypte une nouvelle série chaque semaine !</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;"></p>
</div>
    </div>
</div>
        
        <!-- Histoire de l'émission -->
        <div style="padding: 20px; text-align: center; width: 100%; margin: 0 auto; grid-column: 1 / -1;">
</div>

        <!-- Biographie de Laurent Ruquier -->
        <div style="grid-column: 1 / -1;"></div>

        <!-- Sources (span across both columns) -->
        <div></div>
    </div>
</div>

</div>

    <div id="player-modal" class="modal">
    <div class="modal-content">
        <span class="close" onclick="closeModal()">×</span>
        <div id="player-content">
        </div>
        <button id="chromecast-button" onclick="startChromecast()" style="width: 60px; height: 60px; border-radius: 50%; padding: 0; background-image: url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png'); background-size: 35px; background-position: center; background-repeat: no-repeat; font-size: 0;"></button>
    </div>
</div>
    <div id="player-content">
    <style>
        /* Styles existants */
        .modal-content {
            background-color: #1a1a1a;
            padding: 40px;
            border: 2px solid #00ffff;
            width: 90%;
            max-width: 500px;
            max-height: 90vh;
            border-radius: 20px;
            text-align: center;
            box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
            position: fixed; /* Changé de absolute à fixed */
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) !important; /* Ajout de !important */
            overflow-y: auto;
            color: white;
        }

        /* Change la couleur du timing en noir */
        audio::-webkit-media-controls-time-display {
            color: #000000 !important;
        }

        /* Ajout de media queries pour le mobile */
        @media (max-width: 768px) {
            .modal-content {
                padding: 30px;
                width: 95%;
                margin: 0 auto;
                position: fixed;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%) !important;
            }
        }

        @media (max-height: 600px) {
            .modal-content {
                max-height: 85vh;
            }
        }
    </style>
</div>
    </div>

    <div id="fixed-player-bar" class="rtl-podcast-player" style="display: none;">
    <div class="fixed-player-content">
        <h3 id="fixed-player-title"></h3>
        <div class="audio-controls-container" style="display: flex; align-items: center; justify-content: center; gap: 20px; width: 100%; max-width: 800px; margin: 0 auto;">
            <audio id="fixed-player-audio" controls="">
                <source src="" type="audio/mpeg">
            </audio>
            <button onclick="startChromecast()" style="width: 40px; height: 40px; min-width: 40px; border-radius: 50%; padding: 0; background: #ffffff url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png') center/25px no-repeat; border: 2px solid #00ffff; font-size: 0; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">Cast to Chromecast</button>
            <button id="close-fixed-player" onclick="closeFixedPlayer()" style="background: none; border: none; color: #00ffff; font-size: 24px; cursor: pointer; padding: 5px; min-width: 24px; display: flex; align-items: center; justify-content: center;">×</button>
        </div>
    </div>
</div>

    <script>
    (function RTLPodcastPlayer() {
    window.__onGCastApiAvailable = function(isAvailable) {
        if (!isAvailable) return;

        const initializeCastApi = function() {
            const sessionRequest = new chrome.cast.SessionRequest(chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID);
            const apiConfig = new chrome.cast.ApiConfig(
                sessionRequest,
                sessionListener,
                receiverListener
            );
            chrome.cast.initialize(apiConfig, onInitSuccess, onError);
        };

        const sessionListener = function(session) {
            console.log('Session listener', session);
        };

        const receiverListener = function(availability) {
            console.log('Receiver listener', availability);
        };

        const onInitSuccess = function() {
            console.log('Cast initialization success');
        };

        const onError = function(error) {
            console.error('Cast initialization error', error);
        };

        if (!chrome.cast || !chrome.cast.isAvailable) {
            setTimeout(initializeCastApi, 1000);
        } else {
            initializeCastApi();
        }
    };

    const rssUrl = "https://aod.nrjaudio.fm/xml/2180.xml";
    const proxyUrl = `https://api.rss2json.com/v1/api.json?rss_url=${encodeURIComponent(rssUrl)}&api_key=int3lqiwwrpnsvem6yki0mtwki2f4qcvcxtrlyea&count=250`;
    const episodesPerPage = 4;
    let currentPage = 1;
    let currentAudioUrl = '';
    let totalPages = 0;
    let allEpisodes = [];
    let filteredEpisodes = [];

    fetch(proxyUrl)
        .then(response => response.json())
        .then(data => {
            if (data.status !== "ok") {
                throw new Error("Erreur de chargement du flux RSS.");
            }
            allEpisodes = data.items;
            filteredEpisodes = [...allEpisodes];
            displayFeaturedEpisode(allEpisodes[0]);
            displayEpisodes(currentPage, filteredEpisodes);
            setupPagination(allEpisodes);
        })
        .catch(error => {
            document.getElementById("featured-episode").innerHTML = "<p>Impossible de charger le flux RSS. Veuillez réessayer plus tard.</p>";
        });

    function truncateDescription(description, maxLength = 180) {
        const tempElement = document.createElement("div");
        tempElement.innerHTML = description;
        let plainText = tempElement.innerText || tempElement.textContent || '';
        if (plainText.length <= maxLength) return plainText.trim();
        return plainText.substring(0, maxLength).trim() + '...';
    }

    function displayFeaturedEpisode(episode) {
        const featuredEpisode = document.getElementById("featured-episode");
        featuredEpisode.innerHTML = `
        <div class="features-episode" style="width: 100%; height: 100%;">
            <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[0].enclosure.link)}', '${sanitizeString(allEpisodes[0].title)}')">
                <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[0].title)}</h3>
                ${allEpisodes[0].thumbnail ? `<img decoding="async" src="${allEpisodes[0].thumbnail}" alt="Image de la dernière émission">` : ""}
                <div class="description" style="color: white;">${truncateDescription(allEpisodes[0].description)}</div>
                <div class="date-badge">
                    ${new Date(allEpisodes[0].pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button></button>
            </div>
            
            <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[1].enclosure.link)}', '${sanitizeString(allEpisodes[1].title)}')">
                <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[1].title)}</h3>
                ${allEpisodes[1].thumbnail ? `<img decoding="async" src="${allEpisodes[1].thumbnail}" alt="Image de l'avant-dernière émission">` : ""}
                <div class="description" style="color: white;">${truncateDescription(allEpisodes[1].description)}</div>
                <div class="date-badge">
                    ${new Date(allEpisodes[1].pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button></button>
            </div>
        </div>
        `;
    }

    function displayEpisodes(page, episodes) {
        const episodeGrid = document.getElementById("episode-grid");
        episodeGrid.innerHTML = "";
        const episodesWithoutFeatured = episodes.slice(2);
        const start = (page - 1) * episodesPerPage;  
        const end = start + episodesPerPage;
        
        episodesWithoutFeatured.slice(start, end).forEach(item => {
            episodeGrid.innerHTML += `
            <div class="episode">
                <h5 style="color: #00ffff;">${sanitizeString(item.title)}</h5>
                ${item.thumbnail ? `<img decoding="async" src="${item.thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 150px;">` : ""}
                <div class="description" style="color: white;">${truncateDescription(item.description)}</div>
                <div class="date-badge">
                    ${new Date(item.pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button onclick="openModal('${sanitizeString(item.enclosure.link)}', '${sanitizeString(item.title)}')"></button>
            </div>
            `;
        });
        updatePaginationButtons();
    }

    function setupPagination(episodes) {
        totalPages = Math.ceil((episodes.length - 2) / episodesPerPage);
        const pageNumbers = document.getElementById("page-numbers");
        pageNumbers.innerHTML = "";

        let start = currentPage;
        if (currentPage === totalPages) {
            start = totalPages - 2;
        } else if (currentPage === 1) {
            start = 1;
        } else {
            start = currentPage - 1;
        }

        start = Math.max(1, start);
        
        for (let i = start; i < start + 3 && i <= totalPages; i++) {
            const button = document.createElement("button");
            button.textContent = i;
            button.addEventListener("click", () => {
                currentPage = i;
                displayEpisodes(currentPage, episodes);
                setupPagination(episodes);
            });
            pageNumbers.appendChild(button);
        }

        window.changePage = function(direction) {
            if (direction === 'prev' && currentPage > 1) {
                currentPage--;
            } else if (direction === 'next' && currentPage < totalPages) {
                currentPage++;
            }
            displayEpisodes(currentPage, filteredEpisodes);
            setupPagination(episodes);
            updatePaginationButtons();
        }

        updatePaginationButtons();
    }

    function updatePaginationButtons() {
        const prevBtn = document.getElementById('prev-btn');
        const nextBtn = document.getElementById('next-btn');
        
        prevBtn.disabled = currentPage === 1;
        nextBtn.disabled = currentPage === totalPages;
        
        prevBtn.style.opacity = currentPage === 1 ? '0.5' : '1';
        nextBtn.style.opacity = currentPage === totalPages ? '0.5' : '1';
        
        const pageButtons = document.querySelectorAll('#page-numbers button');
        pageButtons.forEach((button, index) => {
            if (index + 1 === currentPage) {
                button.style.backgroundColor = '#00ffff';
                button.style.color = '#000';
            } else {
                button.style.backgroundColor = '#1a1a1a';
                button.style.color = '#00ffff';
            }
        });
    }

    function sanitizeString(str) {
        return str.replace(/['"\\<>]/g, "");
    }

    window.openModal = function(audioUrl, title) {
        const playerContent = document.getElementById("player-content");
        const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
        const thumbnail = currentEpisode?.thumbnail;
        
        playerContent.innerHTML = `
            <h2>${title}</h2>
            ${thumbnail ? `<img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0;">` : ''}
            <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
                <source src="${audioUrl}" type="audio/mpeg">
                Votre navigateur ne supporte pas la lecture audio.
            </audio>
        `;
        
        currentAudioUrl = audioUrl;
        document.getElementById("player-modal").style.display = "block";
        window.currentEpisodeTitle = title;
        
        const modalAudio = document.getElementById('modal-audio');
        modalAudio.addEventListener('play', () => {
            window.isPlaying = true;
        });
        modalAudio.addEventListener('pause', () => {
            window.isPlaying = false;
        });
    }

    window.closeModal = function() {
        const modalAudio = document.getElementById('modal-audio');
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        const fixedPlayerTitle = document.getElementById('fixed-player-title');
        
        if (window.isPlaying) {
            modalAudio.pause();
            fixedPlayerBar.style.display = 'block';
            fixedPlayerTitle.textContent = window.currentEpisodeTitle;
            fixedPlayerAudio.src = currentAudioUrl;
            fixedPlayerAudio.currentTime = modalAudio.currentTime;
            fixedPlayerAudio.play();
        }
        
        document.getElementById("player-modal").style.display = "none";
    }

    window.closeFixedPlayer = function() {
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        fixedPlayerAudio.pause();
        fixedPlayerBar.style.display = 'none';
    }

    window.startChromecast = function() {
        if (!chrome.cast || !chrome.cast.isAvailable) {
            console.log('Cast API not available');
            return;
        }

        chrome.cast.requestSession(
            function(session) {
                if (currentAudioUrl) {
                    const mediaInfo = new chrome.cast.media.MediaInfo(currentAudioUrl, 'audio/mpeg');
                    mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();
                    mediaInfo.metadata.title = document.querySelector('#player-content h2').textContent;

                    const request = new chrome.cast.media.LoadRequest(mediaInfo);
                    session.loadMedia(request).then(
                        () => console.log('Lecture Chromecast démarrée'),
                        errorCode => console.error('Erreur Chromecast: ' + errorCode)
                    );
                }
            },
            function(error) {
                console.error('Erreur lors de la création de la session:', error);
            }
        );
    }

    window.shareOnX = function() {
        const text = "Écoutez les podcasts : NRJ Séries News avec RadiostreamR !";
        const url = window.location.href;
        window.open(`https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}&url=${encodeURIComponent(url)}`, '_blank');
    };

    window.shareOnWhatsapp = function() {
        const text = "Écoutez les podcasts : NRJ Séries News avec RadiostreamR !";
        const url = window.location.href;
        window.open(`https://wa.me/?text=${encodeURIComponent(text + ' ' + url)}`, '_blank');
    };

    window.shareOnFacebook = function() {
        const text = "Écoutez les podcasts : NRJ Séries News avec RadiostreamR !";
        const url = window.location.href;
        window.open(`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(url)}`, '_blank');
    };

    window.shareOnLinkedIn = function() {
        const text = "Écoutez les podcasts : NRJ Séries News avec RadiostreamR !";
        const url = window.location.href;
        window.open(`https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(url)}`, '_blank');
    };

    window.filterAndDisplayEpisodes = function() {
        const searchTerm = document.getElementById('podcast-search').value.toLowerCase();
        const filterValue = document.getElementById('podcast-filter').value;
        
        filteredEpisodes = allEpisodes.filter(episode => 
            episode.title.toLowerCase().includes(searchTerm) || 
            episode.description.toLowerCase().includes(searchTerm)
        );
        
        if (filterValue === 'oldest') {
            filteredEpisodes.sort((a, b) => new Date(a.pubDate) - new Date(b.pubDate));
        } else {
            filteredEpisodes.sort((a, b) => new Date(b.pubDate) - new Date(a.pubDate));
        }
        
        currentPage = 1;
        
        if (filteredEpisodes.length > 0) {
            displayFeaturedEpisode(filteredEpisodes[0]);
            displayEpisodes(currentPage, filteredEpisodes);
            setupPagination(filteredEpisodes);
        } else {
            document.getElementById('episode-grid').innerHTML = '<p style="color: #fff; text-align: center; grid-column: 1/-1;">Aucun résultat trouvé</p>';
            document.getElementById('page-numbers').innerHTML = '';
        }
    }
})();
</script>
</div>
</body></html>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-551c4bf e-con-full e-flex e-con e-parent" data-id="551c4bf" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-9371460 elementor-widget elementor-widget-shortcode" data-id="9371460" data-element_type="widget" data-widget_type="shortcode.default">
				<div class="elementor-widget-container">
							<div class="elementor-shortcode"></div>
						</div>
				</div>
				</div>
				</div>
		<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-nrj-series-news/">🗣️ Podcast et replay &#8211; NRJ Séries News &#8211; Ecoutez les rediffusions !</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://radiostreamr.com/radio-france/podcast-nrj-series-news/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; What&#8217;s Up DJ ? NRJ &#8211; Ecoutez les rediffusions !</title>
		<link>https://radiostreamr.com/radio-france/podcast-whats-up-dj-nrj/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-whats-up-dj-nrj/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 19 Nov 2024 09:02:35 +0000</pubDate>
				<category><![CDATA[NRJ]]></category>
		<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1384</guid>

					<description><![CDATA[<p>What&#8217;s Up DJ ? Présenté par Morgan Nagoya &#8211; Écoutez en rediffusion ou télécharger tous les podcasts NRJ Plus récentsPlus anciens Publicité What&#8217;s Up DJ ? &#8211; Le 1er podcast qui donne la parole aux DJs avec Morgan Nagoya ! Voir leur Facebook Voir leur Instagram Voir leur site web What&#8217;s Up DJ ? est [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-whats-up-dj-nrj/">🗣️ Podcast et replay &#8211; What&rsquo;s Up DJ ? NRJ &#8211; Ecoutez les rediffusions !</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1384" class="elementor elementor-1384" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-dce457e e-con-full e-flex e-con e-parent" data-id="dce457e" data-element_type="container">
				<div class="elementor-element elementor-element-9f9be1c 1995 elementor-widget elementor-widget-html" data-id="9f9be1c" data-element_type="widget" id="1995" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<!DOCTYPE html><html><head><meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&amp;display=swap" rel="stylesheet">
<style>
    .rtl-podcast-player * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: 'Roboto', sans-serif;
    }

  .rtl-podcast-player #pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: 100% !important;
}

@keyframes gradientBG {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.rtl-podcast-player body {
    background: linear-gradient(-45deg, #0a192f, #172a45, #1a365d, #102235);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    min-height: 100vh;
    display: flex;
    align-items: center;
    color: #fff;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
}

    .rtl-podcast-player .container {
        display: grid;
        grid-template-columns: 1.2fr 2.8fr;
        gap: 20px;
        margin: 0 auto;
        padding: 50px 150px !important;
        width: 100%;
        background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
        background-size: 400% 400%;
        animation: gradientBG 15s ease infinite;
        border-radius: 0;
        box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);
    }


    @media (max-width: 1024px) {
        .rtl-podcast-player .container {
            padding: 30px 45px;
            grid-template-columns: 1fr 2fr;
        }
        
        .rtl-podcast-player h1 {
            font-size: 2em;
        }
    }


    @media (max-width: 768px) {
        .rtl-podcast-player .container {
            padding: 20px !important; /* Override padding */
            margin: 0 !important; /* Reset margin */
            width: 100% !important;
            max-width: 100% !important;
            grid-template-columns: 1fr;
            overflow-x: hidden; /* Prevent horizontal scroll */
        }
        
        .rtl-podcast-player #episode-grid,
        .rtl-podcast-player .episode,
        .rtl-podcast-player #featured-episode,
        .rtl-podcast-player .host-biography,
        .rtl-podcast-player .social-share-buttons {
            width: 100% !important;
            margin-left: auto !important;
            margin-right: auto !important;
            padding: 15px !important;
        }
        
        .rtl-podcast-player h1,
        .rtl-podcast-player h2,
        .rtl-podcast-player p {
            padding-left: 10px !important;
            padding-right: 10px !important;
            text-align: center;
        }

        .rtl-podcast-player #episode-grid {
            grid-template-columns: 1fr !important; /* Force single column */
            gap: 20px;
        }
        
        .rtl-podcast-player .episode {
            width: 100% !important;
            margin: 0 auto !important;
        }
    }


@media (max-width: 480px) {
    .rtl-podcast-player .container {
        padding: 10px !important;
    }
    
    .rtl-podcast-player #featured-episode,
    .rtl-podcast-player .episode {
        padding: 15px !important;
        width: 100% !important;
        margin: 0 auto !important;
    }
}

.rtl-podcast-player h1 {
    color: #00ffff;
    text-align: center;
    font-size: 2.3em;
    margin-bottom: 40px;
    font-weight: 700;
    width: 100%;
    grid-column: 1 / -1;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.3);
}

  #fixed-player-bar {
        display: flex;               /* Assure l'affichage en flex */
        flex-direction: column;       /* Organisation en colonne */
        align-items: center;          /* Centre les éléments */
        padding: 10px;
        gap: 10px;                    /* Espace entre chaque ligne */
        background: rgba(26, 26, 26, 0.95); /* Conserve l’arrière-plan */
        display: none;                /* Masqué par défaut */
    }

    /* Ligne 1 : Titre de l'épisode */
    #fixed-player-title {
        display: block;               /* Force l'affichage sur une ligne complète */
        text-align: center;
        font-size: 1.2em;
        color: #00ffff;
        width: 100%;                  /* Prend la largeur complète */
    }

    /* Ligne 2 : Player audio */
    #fixed-player-audio {
        display: block;               /* Force l'affichage sur une ligne complète */
        width: 100%;
    }

    /* Ligne 3 : Conteneur pour les boutons Chromecast et fermeture */
    .audio-controls-container {
        display: flex;
        justify-content: center;
        gap: 20px;
        width: 100%;                  /* Assure une disposition sur toute la largeur */
    }

    /* Styles des boutons */
    #chromecast-button, #close-fixed-player {
        width: 40px;
        height: 40px;
        border: none;
        cursor: pointer;
    }
}

  @media (max-width: 768px) {
    .rtl-podcast-player h1 {
        margin-top: 0px !important; /* Ajustez la valeur selon vos besoins */
    }
}
  
.rtl-podcast-player #featured-episode {
    /* Remplacer ces styles */
    display: flex;
    flex-direction: column;
    height: 100%; /* Ajout de cette ligne */
    padding: 30px;
    border-radius: 15px;
    background-color: transparent;
    color: #ffffff;
    transition: all 0.3s ease;
}

.rtl-podcast-player #featured-episode:hover {
    transform: translateY(-5px);
}

.rtl-podcast-player #featured-episode h3 {
    color: #00ffff;
    margin-bottom: 15px;
    font-weight: 500;
}

.rtl-podcast-player #featured-episode button, .rtl-podcast-player .episode button {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    padding: 0;
    background-image: url('https://static.vecteezy.com/system/resources/thumbnails/017/196/540/small/3d-play-button-icon-transparent-background-free-png.png');
    background-size: 35px;
    background-position: center;
    background-repeat: no-repeat;
    font-size: 0;
    position: relative;
}

    .rtl-podcast-player .date-badge {
        background: rgba(0, 255, 255, 0.1);
        border: 2px solid #00ffff;
        border-radius: 8px;
        padding: 8px 15px;
        color: #00ffff;
        font-weight: bold;
        text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
        box-shadow: 
            0 0 5px rgba(0, 255, 255, 0.2),
            0 0 10px rgba(0, 255, 255, 0.2),
            0 0 15px rgba(0, 255, 255, 0.2),
            0 0 20px rgba(0, 255, 255, 0.2);
        animation: neonPulse 1.5s ease-in-out infinite;
        margin: 15px auto 20px auto; /* Increased bottom margin */
        display: block; /* Changed from inline-block to block */
        width: fit-content;
    }

    @keyframes neonPulse {
        0%, 100% {
            box-shadow: 
                0 0 5px rgba(0, 255, 255, 0.2),
                0 0 10px rgba(0, 255, 255, 0.2),
                0 0 15px rgba(0, 255, 255, 0.2),
                0 0 20px rgba(0, 255, 255, 0.2);
        }
        50% {
            box-shadow: 
                0 0 10px rgba(0, 255, 255, 0.4),
                0 0 20px rgba(0, 255, 255, 0.4),
                0 0 30px rgba(0, 255, 255, 0.4),
                0 0 40px rgba(0, 255, 255, 0.4);
        }
    }


.rtl-podcast-player #featured-episode img,
.rtl-podcast-player .episode img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .modal-content img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .episode button:hover::after,
.rtl-podcast-player #featured-episode button:hover::after {
    content: "Ecouter ce podcast";
    position: absolute;
    bottom: -35px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 14px;
    white-space: nowrap;
    z-index: 1000;
}

.rtl-podcast-player #featured-episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #episode-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

    .rtl-podcast-player .episode {
        padding: 20px;
        border-radius: 15px;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.1);
        text-align: center;
        background-color: #1a1a1a;
        transition: all 0.3s ease;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .rtl-podcast-player .episode p {
        color: #ffffff;
    }


.rtl-podcast-player .episode:hover {
    box-shadow: 0 0 20px rgba(0, 255, 255, 0.2);
    transform: translateY(-3px);
}

.rtl-podcast-player .episode h5 {
    margin-bottom: 10px;
    color: #00ffff;
}

.rtl-podcast-player .episode a {
    color: #00ffff;
    text-decoration: none;
}

    .rtl-podcast-player .episode button:hover {
        background-color: #00cccc;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
    }
    
    .search-filter-container {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 15px;
        margin-bottom: 30px;
        width: 100%;
    }

    .search-filter-container input,
    .search-filter-container select {
        padding: 10px 15px;
        border: 2px solid #00ffff;
        border-radius: 8px;
        background: rgba(0, 0, 0, 0.3);
        color: #fff;
        font-size: 16px;
        width: 200px;
    }

    .search-filter-container input::placeholder {
        color: rgba(255, 255, 255, 0.6);
    }

    .search-filter-container input:focus,
    .search-filter-container select:focus {
        outline: none;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
    }

    .search-filter-container select {
        cursor: pointer;
    }

    .search-filter-container select option {
        background-color: #1a1a1a;
        color: #fff;
    }

    @media (max-width: 768px) {
        .search-filter-container {
            flex-direction: column;
            gap: 10px;
        }

        .search-filter-container input,
        .search-filter-container select {
            width: 100%;
            max-width: 300px;
        }
    }

    color: #000;
    border: none;
    padding: 8px 20px;
    border-radius: 20px;
    cursor: pointer;
    font-weight: 500;
    transition: all 0.3s ease;
    margin-top: 10px; /* Add space above button */
    display: block; /* Ensure block-level display */
    margin-left: auto;
    margin-right: auto;
}

.rtl-podcast-player .episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player .pagination {
    text-align: center !important;
    margin-top: 30px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: auto !important;
}

  .rtl-podcast-player #page-numbers {
    display: flex !important;
    gap: 5px !important;
    margin: 0 5px !important;
}
  
.rtl-podcast-player .pagination button,
.rtl-podcast-player .pagination #prev-btn,
.rtl-podcast-player .pagination #next-btn {
    margin: 0 !important;  /* Changé de 5px à 0 */
    padding: 8px 16px;
    font-size: 1em;
    background-color: #1a1a1a;
    color: #00ffff;
    border: 1px solid #00ffff;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s ease;
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.rtl-podcast-player .pagination button:hover {
    background-color: #00ffff;
    color: #000;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
}

.rtl-podcast-player .modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(8px);
}

.rtl-podcast-player .modal-content {
    background-color: #1a1a1a;
    padding: 40px;
    border: 2px solid #00ffff;
    width: 90%;
    max-width: 500px;
    max-height: 90vh;
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    overflow-y: auto;
    color: white;
}

.rtl-podcast-player .close {
    position: absolute;
    top: 10px;
    right: 20px;
    color: #00ffff;
    font-size: 35px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.3s;
}

.rtl-podcast-player .close:hover {
    color: #00cccc;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #chromecast-button {
    background-color: #00ffff;
    border: none;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
    color: #000;
    margin-top: 20px;
    font-weight: bold;
    display: inline-block;
}

.rtl-podcast-player audio::-webkit-media-controls-panel {
    background-color: #2a2a2a;
}

.rtl-podcast-player audio::-webkit-media-controls-current-time-display,
.rtl-podcast-player audio::-webkit-media-controls-time-remaining-display {
    color: #000000;
}

.rtl-podcast-player #fixed-player-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(26, 26, 26, 0.95);
    backdrop-filter: blur(10px);
    padding: 10px 20px;
    z-index: 999;
    border-top: 2px solid #00ffff;
}

.rtl-podcast-player .fixed-player-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    gap: 20px;
}


.rtl-podcast-player #fixed-player-title {
    color: #00ffff;
    font-size: 1em;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.rtl-podcast-player #fixed-player-audio {
    flex: 2;
    max-width: 500px;
}

.episode-card {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(0, 255, 255, 0.3);
    border-radius: 15px;
    padding: 20px;
    margin-bottom: 20px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.episode-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 255, 255, 0.2);
}

.episode-card img {
    width: 100%;
    max-width: 200px;
    border-radius: 10px;
    margin: 10px 0;
}

.episode-card button {
    margin-top: 10px;
}
  
/* Conserve les styles des boutons play et mute */
audio::-webkit-media-controls-play-button,
audio::-webkit-media-controls-mute-button {
    background-color: #40E0D0 !important; /* Bleu turquoise */
    border-radius: 50% !important;
    transition: all 0.3s ease !important;
}

audio::-webkit-media-controls-play-button:hover,
audio::-webkit-media-controls-mute-button:hover {
    background-color: #5FECEC !important; /* Bleu turquoise plus clair au survol */
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5) !important;
}

/* Tentative pour changer la couleur du trait de progression */
audio::-webkit-media-controls-timeline {
    color: #a6a6a6 !important; /* Essaye de cibler le trait turquoise */
}

/* Modifie la couleur des trois petits points */
audio::-webkit-media-controls-panel {
    background-color: transparent !important; /* Assure que le fond ne prend pas de couleur */
    color: #40E0D0 !important; /* Forcer la couleur turquoise pour les trois points */
}

/* Tentative supplémentaire pour cibler le trait du curseur de progression */
audio::-webkit-slider-runnable-track {
    background-color: #40E0D0 !important; /* Bleu turquoise pour la piste */
}

audio::-webkit-slider-thumb {
    background-color: #a6a6a6 !important; /* Plus clair pour le curseur lui-même */
}


@media (max-width: 768px) {
    .rtl-podcast-player .fixed-player-content {
        flex-direction: column;
        gap: 10px;
        padding: 15px;
    }

    .rtl-podcast-player #fixed-player-audio {
        width: 100%;
        max-width: 100%;
    }

    .rtl-podcast-player #fixed-player-title {
        width: 100%;
        text-align: center;
        font-size: 0.9em;
    }
}

.rtl-podcast-player .social-button {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease-in-out;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.rtl-podcast-player .social-button:hover {
    transform: scale(1.1);
}

@media (max-width: 768px) {
    .rtl-podcast-player .social-share-buttons {
        gap: 10px;
    }
    
    .rtl-podcast-player .social-button {
        width: 40px;
        height: 40px;
    }
    
    .rtl-podcast-player .social-button svg {
        width: 20px;
        height: 20px;
    }
}

.navigation-buttons {
    position: absolute;
    width: 100%;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 10px;
    pointer-events: none;
    z-index: 1000;
}

.nav-button {
    background: rgba(0, 0, 0, 0.7);
    border: 2px solid #00ffff;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    pointer-events: auto;
}  

.nav-button:hover {
    background: rgba(0, 255, 255, 0.2);
    transform: scale(1.1);
}

.nav-button svg {
    width: 24px;
    height: 24px;
}

@media (max-width: 768px) {
    .nav-button {
        width: 35px;
        height: 35px;
    }
    
    .nav-button svg {
        width: 20px;
        height: 20px;
    }
}
</style>
<script type="text/javascript" src="//www.gstatic.com/cv/js/sender/v1/cast_sender.js"></script>

</head><body>
<div class="rtl-podcast-player">
    <div class="container" style="background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    border-radius: 0; /* Changed from 20px to 0 */
    box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);">
    <h1 style="color: #00ffff; text-align: center; font-size: 2.1em; margin-bottom: 40px; font-weight: 700; width: 100%; grid-column: 1 / -1; text-shadow: 0 0 10px rgba(0, 255, 255, 0.3); padding: 0 15px; display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap;">
What's Up DJ ? Présenté par Morgan Nagoya - Écoutez en rediffusion ou télécharger tous les podcasts NRJ
<img decoding="async" src="https://cdn.uc.assets.prezly.com/b1be11c1-7593-48e0-b0d3-dfedd93ef5a2/-/inline/no/Newsroom+Icon-NRJ.png" alt="Logo Europe 1" style="width: 60px; height: 60px; border-radius: 50%; padding: 5px; background: white; box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);">
</h1>
    <div class="social-share-buttons" style="display: flex; justify-content: center; align-items: center; gap: 15px; margin-bottom: 30px; width: 100%; grid-column: 1 / -1;">
    <button onclick="shareOnX()" class="social-button" style="background-color: #000;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnWhatsapp()" class="social-button" style="background-color: #25D366;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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.298-.347.446-.52.149-.174.198-.298.298-.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>
        </svg>
    </button>
    <button onclick="shareOnFacebook()" class="social-button" style="background-color: #1877F2;">  
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnLinkedIn()" class="social-button" style="background-color: #0A66C2;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
</div>
      
    <div id="featured-episode" style="display: flex; flex-direction: column; align-items: center; text-align: center; justify-content: space-between; gap: 20px; height: 100%; position: relative; padding-top: 20px; cursor: pointer;">
  <div class="features-episode" style="width: 100%; height: 100%;">
    <!-- Première carte (dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
            
    <!-- Deuxième carte (avant-dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
  </div>
</div>
    <div>
    <div class="search-filter-container">
        <input type="text" id="podcast-search" placeholder="Rechercher un podcast..." oninput="filterAndDisplayEpisodes()">
        <select id="podcast-filter" onchange="filterAndDisplayEpisodes()">
            <option value="newest">Plus récents</option>
            <option value="oldest">Plus anciens</option>
        </select>
    </div>
    <div id="episode-grid">
        <style>
            .episode {
                cursor: pointer;
            }
            
            .episode > * {
                pointer-events: none;
            }
            
            .episode button {
                pointer-events: auto;
            }
        </style>
    </div>
    <div class="pagination" id="pagination">
    <button id="prev-btn" onclick="changePage('prev')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M15 18l-6-6 6-6"></path>
        </svg>
    </button>
    <span id="page-numbers"></span>
    <button id="next-btn" onclick="changePage('next')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M9 18l6-6-6-6"></path>
        </svg>
    </button>
</div>

      <div class="ad-banner" style="width: 100%; max-width: 508px; margin: 20px auto; text-align: center; grid-column: 1 / -1; background: rgba(0,0,0,0.3); padding: 15px; border-radius: 10px; border: 1px solid rgba(0, 255, 255, 0.2); transition: transform 0.3s ease;">
    <p style="color: #666; font-size: 12px; margin-bottom: 10px;">Publicité</p>
    <a href="https://universal-academy.com/recruter-des-alternants-dans-le-tourisme/" target="_blank" style="display: inline-block;">
        <img decoding="async" src="https://radiostreamr.com/radio-france/wp-content/uploads/2024/11/Design-sans-titre-2024-11-06T134332.299.webp" alt="Bannière publicitaire RTL" style="width: 100%; max-width: 700px; height: auto; border-radius: 8px; transition: transform 0.3s ease;" onmouseover="this.style.transform='scale(1.02)'" onmouseout="this.style.transform='scale(1)'">
    </a>
</div>

    <script>
        // Ajouter un event listener pour les cartes d'épisodes
        document.getElementById('episode-grid').addEventListener('click', (e) => {
            const episodeCard = e.target.closest('.episode');
            if (episodeCard) {
                // Trouver le bouton dans la carte et simuler un clic dessus
                const button = episodeCard.querySelector('button');
                if (button) {
                    button.click();
                }
            }
        });
    </script>
</div>
    
    <div class="host-biography" style="grid-column: 1 / -1; background: rgba(0, 0, 0, 0.3); padding: 30px; border-radius: 15px; margin-top: 30px; border: 1px solid rgba(0, 255, 255, 0.2);">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
        <!-- Media query pour passer en une colonne sur mobile -->
        <style>
            @media (max-width: 768px) {
                .host-biography > div {
                    grid-template-columns: 1fr !important;
                }
            }
        </style>

      <div class="host-biography" style="grid-column: 1 / -1; padding: 30px; border-radius: 15px; margin-top: 30px;">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
      <div style="grid-column: 1 / -1; margin-bottom: 30px; text-align: center;">
    <div style="color: #ffffff; line-height: 1.6; text-align: center;">
    <h2 style="color: #00ffff; margin-bottom: 20px; text-align: center;">What's Up DJ ? - Le 1er podcast qui donne la parole aux DJs avec Morgan Nagoya !</h2>
</div>

    <!-- Nouveaux boutons de réseaux sociaux -->
    <div style="display: flex; justify-content: center; align-items: center; gap: 20px; margin: 20px 0;">
        <a href="https://www.facebook.com/nrjradio/?locale=fr_FR" target="_blank" style="position: relative; width: 50px; height: 50px; background: #1877F2; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M18.77 7.46H14.5v-1.9c0-.9.6-1.1 1-1.1h3V.5h-4.33C10.24.5 9.5 3.44 9.5 5.32v2.15h-3v4h3v12h5v-12h3.85l.42-4z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Facebook</span>
</a>

        <a href="https://www.instagram.com/nrjhitmusiconly/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #E4405F; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Instagram</span>
</a>

        <a href="https://www.nrj.fr/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #00ffff; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#000000">
        <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur site web</span>
</a>
    </div>

    <style>
        /* Hover effects pour les boutons */
        .host-biography a:hover {
            transform: scale(1.1);
            box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
        }
        
        .host-biography a:hover span {
            opacity: 1;
        }

        /* Media queries pour le responsive */
        @media (max-width: 768px) {
            .host-biography div[style*="display: flex"] {
                flex-wrap: wrap;
                justify-content: center;
                gap: 15px;
            }
        }
    </style>

    <p style="color: #ffffff; line-height: 1.6; text-align: center; max-width: 1200px; margin: 0 auto;">
What's Up DJ ? est le premier podcast qui donne la parole aux DJs ! Chaque semaine, Morgan Nagoya vous fait découvrir l'univers des plus grands DJs de la scène électro. Au programme : des interviews exclusives où les artistes se livrent sur leur parcours, leurs inspirations, leurs techniques de mix et leurs projets. L'émission se démarque par son approche intimiste qui permet aux auditeurs de découvrir la face cachée de leurs DJs préférés, leurs secrets de production et les anecdotes qui ont marqué leur carrière. Morgan Nagoya, lui-même passionné de musique électronique, crée une ambiance décontractée qui permet aux artistes de se confier en toute authenticité. L'émission aborde aussi bien les aspects techniques du métier de DJ que les moments de vie qui ont façonné leur style musical. Ne manquez pas ce rendez-vous hebdomadaire unique qui vous plonge dans les coulisses de la scène électro, fait découvrir les nouveaux talents émergents et vous permet de comprendre comment se construit une carrière de DJ international ! What's Up DJ ? est devenu en peu de temps la référence des podcasts dédiés à la culture DJ, rassemblant une communauté fidèle de passionnés de musique électronique.
</p>
    
    <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-top: 30px; padding: 20px;">
        <!-- Les 6 cartes existantes restent inchangées -->
        <!-- Carte 1 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M3 18v-6a9 9 0 0 1 18 0v6"></path>
                <path d="M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z"></path>
            </svg>
            <p style="color: #ffffff; margin: 0;">Écouter gratuitement tous les podcasts en streaming</p>
        </div>

        <!-- Carte 2 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
                <polyline points="7 10 12 15 17 10"></polyline>
                <line x1="12" y1="15" x2="12" y2="3"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Télécharger les épisodes pour une écoute hors-ligne</p>
        </div>

        <!-- Carte 3 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6"></path>
                <line x1="2" y1="20" x2="2" y2="20"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Diffuser sur votre Chromecast ou appareil compatible</p>
        </div>

        <!-- Carte 4 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="12" cy="12" r="10"></circle>
                <polygon points="10 8 16 12 10 16 10 8"></polygon>
            </svg>
            <p style="color: #ffffff; margin: 0;">Accéder à toutes les rediffusions des émissions précédentes</p>
        </div>

        <!-- Carte 5 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
        <circle cx="9" cy="7" r="4"></circle>
        <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
        <path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Retrouvez tous vos DJs préférés en interview avec Morgan Nagoya dans What's Up DJ ? sur NRJ - Le 1er podcast qui donne la parole aux DJs !</p>
</div>

        <!-- Carte 6 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px; position: relative;" onmouseover="this.style.transform='translateY(-5px)'; document.getElementById('live-tooltip').style.opacity='1'" onmouseout="this.style.transform='translateY(0)'; document.getElementById('live-tooltip').style.opacity='0'" onclick="window.location.href='https://radiostreamr.com/radio-france/ecoutez-en-direct-nrj/'">
    <div id="live-tooltip" style="position: absolute; top: -40px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.8); color: #fff; padding: 8px 15px; border-radius: 5px; font-size: 14px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none; border: 1px solid #00ffff; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">
        Cliquez pour écouter en direct NRJ
    </div>
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M4 12h1"></path>
        <path d="M9 12h1"></path>
        <path d="M14 12h1"></path>
        <path d="M19 12h1"></path>
        <rect x="2" y="8" width="20" height="12" rx="2"></rect>
        <path d="M6 8V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v4"></path>
        <circle cx="12" cy="14" r="4"></circle>
        <path d="M12 10v8"></path>
        <path d="M8 14h8"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Écoutez en direct sur NRJ "What's Up DJ ?" - Le podcast qui donne la parole aux DJs !</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;"></p>
</div>
    </div>
</div>
        
        <!-- Histoire de l'émission -->
        <div style="padding: 20px; text-align: center; width: 100%; margin: 0 auto; grid-column: 1 / -1;">
</div>

        <!-- Biographie de Laurent Ruquier -->
        <div style="grid-column: 1 / -1;"></div>

        <!-- Sources (span across both columns) -->
        <div></div>
    </div>
</div>

</div>

    <div id="player-modal" class="modal">
    <div class="modal-content">
        <span class="close" onclick="closeModal()">×</span>
        <div id="player-content">
        </div>
        <button id="chromecast-button" onclick="startChromecast()" style="width: 60px; height: 60px; border-radius: 50%; padding: 0; background-image: url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png'); background-size: 35px; background-position: center; background-repeat: no-repeat; font-size: 0;"></button>
    </div>
    <div id="player-content">
    <style>
        /* Styles existants */
        .modal-content {
            background-color: #1a1a1a;
            padding: 40px;
            border: 2px solid #00ffff;
            width: 90%;
            max-width: 500px;
            max-height: 90vh;
            border-radius: 20px;
            text-align: center;
            box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
            position: fixed; /* Changé de absolute à fixed */
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) !important; /* Ajout de !important */
            overflow-y: auto;
            color: white;
        }

        /* Change la couleur du timing en noir */
        audio::-webkit-media-controls-time-display {
            color: #000000 !important;
        }

        /* Ajout de media queries pour le mobile */
        @media (max-width: 768px) {
            .modal-content {
                padding: 30px;
                width: 95%;
                margin: 0 auto;
                position: fixed;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%) !important;
            }
        }

        @media (max-height: 600px) {
            .modal-content {
                max-height: 85vh;
            }
        }
    </style>
</div>
    </div>

    <div id="fixed-player-bar" class="rtl-podcast-player" style="display: none;">
    <div class="fixed-player-content">
        <h3 id="fixed-player-title"></h3>
        <div class="audio-controls-container" style="display: flex; align-items: center; justify-content: center; gap: 20px; width: 100%; max-width: 800px; margin: 0 auto;">
            <audio id="fixed-player-audio" controls="">
                <source src="" type="audio/mpeg">
            </audio>
            <button onclick="startChromecast()" style="width: 40px; height: 40px; min-width: 40px; border-radius: 50%; padding: 0; background: #ffffff url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png') center/25px no-repeat; border: 2px solid #00ffff; font-size: 0; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">Cast to Chromecast</button>
            <button id="close-fixed-player" onclick="closeFixedPlayer()" style="background: none; border: none; color: #00ffff; font-size: 24px; cursor: pointer; padding: 5px; min-width: 24px; display: flex; align-items: center; justify-content: center;">×</button>
        </div>
    </div>
</div>

    <script>
    (function RTLPodcastPlayer() {
        // Initialize cast api
        window.__onGCastApiAvailable = function(isAvailable) {
            if (!isAvailable) return;

            const initializeCastApi = function() {
                const sessionRequest = new chrome.cast.SessionRequest(chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID);
                const apiConfig = new chrome.cast.ApiConfig(
                    sessionRequest,
                    sessionListener,
                    receiverListener
                );
                chrome.cast.initialize(apiConfig, onInitSuccess, onError);
            };

            const sessionListener = function(session) {
                console.log('Session listener', session);
            };

            const receiverListener = function(availability) {
                console.log('Receiver listener', availability);
            };

            const onInitSuccess = function() {
                console.log('Cast initialization success');
            };

            const onError = function(error) {
                console.error('Cast initialization error', error);
            };

            if (!chrome.cast || !chrome.cast.isAvailable) {
                setTimeout(initializeCastApi, 1000);
            } else {
                initializeCastApi();
            }
        };

        const rssUrl = "https://aod.nrjaudio.fm/xml/2115.xml";
        const proxyUrl = `https://api.rss2json.com/v1/api.json?rss_url=${encodeURIComponent(rssUrl)}&api_key=int3lqiwwrpnsvem6yki0mtwki2f4qcvcxtrlyea&count=250`;
        const episodesPerPage = 4;
        let currentPage = 1;
        let currentAudioUrl = '';
        let totalPages = 0;

        // Ajouter ces variables au début du script
        let currentEpisodeIndex = 0;
        let allEpisodes = [];
        let filteredEpisodes = [];

        fetch(proxyUrl)
            .then(response => response.json())
            .then(data => {
                if (data.status !== "ok") {
                    throw new Error("Erreur de chargement du flux RSS.");
                }
                allEpisodes = data.items;
                filteredEpisodes = [...allEpisodes];
                displayFeaturedEpisode(allEpisodes[0]);
                displayEpisodes(currentPage, filteredEpisodes);
                setupPagination(allEpisodes);
            })
            .catch(error => {
                document.getElementById("featured-episode").innerHTML = "<p>Impossible de charger le flux RSS. Veuillez réessayer plus tard.</p>";
            });

        function truncateDescription(description, maxLength = 180) {
        const tempElement = document.createElement("div");
        tempElement.innerHTML = description;
        let plainText = tempElement.innerText || tempElement.textContent || '';
        if (plainText.length <= maxLength) return plainText.trim();
        return plainText.substring(0, maxLength).trim() + '...';
    }

    function displayFeaturedEpisode(episode) {
        const featuredEpisode = document.getElementById("featured-episode");
        featuredEpisode.innerHTML = `
        <div class="features-episode" style="width: 100%; height: 100%;">
            <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[0].enclosure.link)}', '${sanitizeString(allEpisodes[0].title)}')">
                <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[0].title)}</h3>
                ${allEpisodes[0].thumbnail ? `<img decoding="async" src="${allEpisodes[0].thumbnail}" alt="Image de la dernière émission">` : ""}
                <div class="description" style="color: white;">${truncateDescription(allEpisodes[0].description)}</div>
                <div class="date-badge">
                    ${new Date(allEpisodes[0].pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button></button>
            </div>
            
            <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[1].enclosure.link)}', '${sanitizeString(allEpisodes[1].title)}')">
                <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[1].title)}</h3>
                ${allEpisodes[1].thumbnail ? `<img decoding="async" src="${allEpisodes[1].thumbnail}" alt="Image de l'avant-dernière émission">` : ""}
                <div class="description" style="color: white;">${truncateDescription(allEpisodes[1].description)}</div>
                <div class="date-badge">
                    ${new Date(allEpisodes[1].pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button></button>
            </div>
        </div>
        `;
    }

    function displayEpisodes(page, episodes) {
        const episodeGrid = document.getElementById("episode-grid");
        episodeGrid.innerHTML = "";
        const episodesWithoutFeatured = episodes.slice(2);
        const start = (page - 1) * episodesPerPage;  
        const end = start + episodesPerPage;
        
        episodesWithoutFeatured.slice(start, end).forEach(item => {
            episodeGrid.innerHTML += `
            <div class="episode">
                <h5 style="color: #00ffff;">${sanitizeString(item.title)}</h5>
                ${item.thumbnail ? `<img decoding="async" src="${item.thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 150px;">` : ""}
                <div class="description" style="color: white;">${truncateDescription(item.description)}</div>
                <div class="date-badge">
                    ${new Date(item.pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button onclick="openModal('${sanitizeString(item.enclosure.link)}', '${sanitizeString(item.title)}')"></button>
            </div>
            `;
        });
        updatePaginationButtons();
    }

    function setupPagination(episodes) {
        totalPages = Math.ceil((episodes.length - 2) / episodesPerPage);
        const pageNumbers = document.getElementById("page-numbers");
        pageNumbers.innerHTML = "";

        let start = currentPage;
        if (currentPage === totalPages) {
            start = totalPages - 2;
        } else if (currentPage === 1) {
            start = 1;
        } else {
            start = currentPage - 1;
        }

        start = Math.max(1, start);
        
        for (let i = start; i < start + 3 && i <= totalPages; i++) {
            const button = document.createElement("button");
            button.textContent = i;
            button.addEventListener("click", () => {
                currentPage = i;
                displayEpisodes(currentPage, episodes);
                setupPagination(episodes);
            });
            pageNumbers.appendChild(button);
        }

        window.changePage = function(direction) {
            if (direction === 'prev' && currentPage > 1) {
                currentPage--;
            } else if (direction === 'next' && currentPage < totalPages) {
                currentPage++;
            }
            displayEpisodes(currentPage, filteredEpisodes);
            setupPagination(episodes);
            updatePaginationButtons();
        }

        updatePaginationButtons();
    }

    function updatePaginationButtons() {
        const prevBtn = document.getElementById('prev-btn');
        const nextBtn = document.getElementById('next-btn');
        
        prevBtn.disabled = currentPage === 1;
        nextBtn.disabled = currentPage === totalPages;
        
        prevBtn.style.opacity = currentPage === 1 ? '0.5' : '1';
        nextBtn.style.opacity = currentPage === totalPages ? '0.5' : '1';
        
        const pageButtons = document.querySelectorAll('#page-numbers button');
        pageButtons.forEach((button, index) => {
            if (index + 1 === currentPage) {
                button.style.backgroundColor = '#00ffff';
                button.style.color = '#000';
            } else {
                button.style.backgroundColor = '#1a1a1a';
                button.style.color = '#00ffff';
            }
        });
    }

    function sanitizeString(str) {
        return str.replace(/['"\\<>]/g, "");
    }

    window.openModal = function(audioUrl, title) {
        const playerContent = document.getElementById("player-content");
        const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
        const thumbnail = currentEpisode?.thumbnail;
        
        playerContent.innerHTML = `
            <h2>${title}</h2>
            ${thumbnail ? `<img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0;">` : ''}
            <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
                <source src="${audioUrl}" type="audio/mpeg">
                Votre navigateur ne supporte pas la lecture audio.
            </audio>
        `;
        
        currentAudioUrl = audioUrl;
        document.getElementById("player-modal").style.display = "block";
        window.currentEpisodeTitle = title;
        
        const modalAudio = document.getElementById('modal-audio');
        modalAudio.addEventListener('play', () => {
            window.isPlaying = true;
        });
        modalAudio.addEventListener('pause', () => {
            window.isPlaying = false;
        });
    }

    window.closeModal = function() {
        const modalAudio = document.getElementById('modal-audio');
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        const fixedPlayerTitle = document.getElementById('fixed-player-title');
        
        if (window.isPlaying) {
            modalAudio.pause();
            fixedPlayerBar.style.display = 'block';
            fixedPlayerTitle.textContent = window.currentEpisodeTitle;
            fixedPlayerAudio.src = currentAudioUrl;
            fixedPlayerAudio.currentTime = modalAudio.currentTime;
            fixedPlayerAudio.play();
        }
        
        document.getElementById("player-modal").style.display = "none";
    }

    window.closeFixedPlayer = function() {
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        fixedPlayerAudio.pause();
        fixedPlayerBar.style.display = 'none';
    }

    window.startChromecast = function() {
        if (!chrome.cast || !chrome.cast.isAvailable) {
            console.log('Cast API not available');
            return;
        }

        chrome.cast.requestSession(
            function(session) {
                if (currentAudioUrl) {
                    const mediaInfo = new chrome.cast.media.MediaInfo(currentAudioUrl, 'audio/mpeg');
                    mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();
                    mediaInfo.metadata.title = document.querySelector('#player-content h2').textContent;

                    const request = new chrome.cast.media.LoadRequest(mediaInfo);
                    session.loadMedia(request).then(
                        () => console.log('Lecture Chromecast démarrée'),
                        errorCode => console.error('Erreur Chromecast: ' + errorCode)
                    );
                }
            },
            function(error) {
                console.error('Erreur lors de la création de la session:', error);
            }
        );
    }
        window.shareOnX = function() {
            const text = "Écoutez les podcasts : What's Up DJ ? sur NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}&url=${encodeURIComponent(url)}`, '_blank');
        };

        window.shareOnWhatsapp = function() {
            const text = "Écoutez les podcasts : What's Up DJ ? sur NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://wa.me/?text=${encodeURIComponent(text + ' ' + url)}`, '_blank');
        };

        window.shareOnFacebook = function() {
          const text = "Écoutez les podcasts : What's Up DJ ? sur NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(url)}`, '_blank');
        };

        window.shareOnLinkedIn = function() {
          const text = "Écoutez les podcasts : What's Up DJ ? sur NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(url)}`, '_blank');
        };

        window.filterAndDisplayEpisodes = function() {
            const searchTerm = document.getElementById('podcast-search').value.toLowerCase();
            const filterValue = document.getElementById('podcast-filter').value;
            
            // Filter episodes based on search term
            filteredEpisodes = allEpisodes.filter(episode => 
                episode.title.toLowerCase().includes(searchTerm) || 
                episode.description.toLowerCase().includes(searchTerm)
            );
            
            // Sort episodes based on filter value
            if (filterValue === 'oldest') {
                filteredEpisodes.sort((a, b) => new Date(a.pubDate) - new Date(b.pubDate));
            } else {
                filteredEpisodes.sort((a, b) => new Date(b.pubDate) - new Date(a.pubDate));
            }
            
            // Reset pagination to first page when filtering
            currentPage = 1;
            
            // Update display
            if (filteredEpisodes.length > 0) {
                displayFeaturedEpisode(filteredEpisodes[0]);
                displayEpisodes(currentPage, filteredEpisodes);
                setupPagination(filteredEpisodes);
            } else {
                // Handle no results
                document.getElementById('episode-grid').innerHTML = '<p style="color: #fff; text-align: center; grid-column: 1/-1;">Aucun résultat trouvé</p>';
                document.getElementById('page-numbers').innerHTML = '';
            }
        }
    })();
</script>
</div>
</div></div></body></html>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-551c4bf e-con-full e-flex e-con e-parent" data-id="551c4bf" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-9371460 elementor-widget elementor-widget-shortcode" data-id="9371460" data-element_type="widget" data-widget_type="shortcode.default">
				<div class="elementor-widget-container">
							<div class="elementor-shortcode"></div>
						</div>
				</div>
				</div>
				</div>
		<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-whats-up-dj-nrj/">🗣️ Podcast et replay &#8211; What&rsquo;s Up DJ ? NRJ &#8211; Ecoutez les rediffusions !</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://radiostreamr.com/radio-france/podcast-whats-up-dj-nrj/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; SuperShow NRJ &#8211; Ecoutez les rediffusions !</title>
		<link>https://radiostreamr.com/radio-france/podcast-supershow-nrj/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-supershow-nrj/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 19 Nov 2024 08:31:51 +0000</pubDate>
				<category><![CDATA[NRJ]]></category>
		<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1377</guid>

					<description><![CDATA[<p>Le SuperShow NRJ avec Louis, Charly &#38; Bichette &#8211; Écoutez en rediffusion ou télécharger tous les podcasts NRJ Plus récentsPlus anciens Publicité Le SuperShow NRJ &#8211; La matinale préférée des français avec Louis, Charly &#38; Bichette Voir leur Facebook Voir leur Instagram Voir leur site web Le SuperShow NRJ avec Louis, Charly &#38; Bichette est [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-supershow-nrj/">🗣️ Podcast et replay &#8211; SuperShow NRJ &#8211; Ecoutez les rediffusions !</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1377" class="elementor elementor-1377" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-dce457e e-con-full e-flex e-con e-parent" data-id="dce457e" data-element_type="container">
				<div class="elementor-element elementor-element-9f9be1c 1995 elementor-widget elementor-widget-html" data-id="9f9be1c" data-element_type="widget" id="1995" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<!DOCTYPE html><html><head><meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&amp;display=swap" rel="stylesheet">
<style>
    .rtl-podcast-player * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: 'Roboto', sans-serif;
    }

  .rtl-podcast-player #pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: 100% !important;
}

@keyframes gradientBG {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.rtl-podcast-player body {
    background: linear-gradient(-45deg, #0a192f, #172a45, #1a365d, #102235);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    min-height: 100vh;
    display: flex;
    align-items: center;
    color: #fff;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
}

    .rtl-podcast-player .container {
        display: grid;
        grid-template-columns: 1.2fr 2.8fr;
        gap: 20px;
        margin: 0 auto;
        padding: 50px 150px !important;
        width: 100%;
        background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
        background-size: 400% 400%;
        animation: gradientBG 15s ease infinite;
        border-radius: 0;
        box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);
    }


    @media (max-width: 1024px) {
        .rtl-podcast-player .container {
            padding: 30px 45px;
            grid-template-columns: 1fr 2fr;
        }
        
        .rtl-podcast-player h1 {
            font-size: 2em;
        }
    }


    @media (max-width: 768px) {
        .rtl-podcast-player .container {
            padding: 20px !important; /* Override padding */
            margin: 0 !important; /* Reset margin */
            width: 100% !important;
            max-width: 100% !important;
            grid-template-columns: 1fr;
            overflow-x: hidden; /* Prevent horizontal scroll */
        }
        
        .rtl-podcast-player #episode-grid,
        .rtl-podcast-player .episode,
        .rtl-podcast-player #featured-episode,
        .rtl-podcast-player .host-biography,
        .rtl-podcast-player .social-share-buttons {
            width: 100% !important;
            margin-left: auto !important;
            margin-right: auto !important;
            padding: 15px !important;
        }
        
        .rtl-podcast-player h1,
        .rtl-podcast-player h2,
        .rtl-podcast-player p {
            padding-left: 10px !important;
            padding-right: 10px !important;
            text-align: center;
        }

        .rtl-podcast-player #episode-grid {
            grid-template-columns: 1fr !important; /* Force single column */
            gap: 20px;
        }
        
        .rtl-podcast-player .episode {
            width: 100% !important;
            margin: 0 auto !important;
        }
    }


@media (max-width: 480px) {
    .rtl-podcast-player .container {
        padding: 10px !important;
    }
    
    .rtl-podcast-player #featured-episode,
    .rtl-podcast-player .episode {
        padding: 15px !important;
        width: 100% !important;
        margin: 0 auto !important;
    }
}

.rtl-podcast-player h1 {
    color: #00ffff;
    text-align: center;
    font-size: 2.3em;
    margin-bottom: 40px;
    font-weight: 700;
    width: 100%;
    grid-column: 1 / -1;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.3);
}

  #fixed-player-bar {
        display: flex;               /* Assure l'affichage en flex */
        flex-direction: column;       /* Organisation en colonne */
        align-items: center;          /* Centre les éléments */
        padding: 10px;
        gap: 10px;                    /* Espace entre chaque ligne */
        background: rgba(26, 26, 26, 0.95); /* Conserve l’arrière-plan */
        display: none;                /* Masqué par défaut */
    }

    /* Ligne 1 : Titre de l'épisode */
    #fixed-player-title {
        display: block;               /* Force l'affichage sur une ligne complète */
        text-align: center;
        font-size: 1.2em;
        color: #00ffff;
        width: 100%;                  /* Prend la largeur complète */
    }

    /* Ligne 2 : Player audio */
    #fixed-player-audio {
        display: block;               /* Force l'affichage sur une ligne complète */
        width: 100%;
    }

    /* Ligne 3 : Conteneur pour les boutons Chromecast et fermeture */
    .audio-controls-container {
        display: flex;
        justify-content: center;
        gap: 20px;
        width: 100%;                  /* Assure une disposition sur toute la largeur */
    }

    /* Styles des boutons */
    #chromecast-button, #close-fixed-player {
        width: 40px;
        height: 40px;
        border: none;
        cursor: pointer;
    }
}

  @media (max-width: 768px) {
    .rtl-podcast-player h1 {
        margin-top: 0px !important; /* Ajustez la valeur selon vos besoins */
    }
}
  
.rtl-podcast-player #featured-episode {
    /* Remplacer ces styles */
    display: flex;
    flex-direction: column;
    height: 100%; /* Ajout de cette ligne */
    padding: 30px;
    border-radius: 15px;
    background-color: transparent;
    color: #ffffff;
    transition: all 0.3s ease;
}

.rtl-podcast-player #featured-episode:hover {
    transform: translateY(-5px);
}

.rtl-podcast-player #featured-episode h3 {
    color: #00ffff;
    margin-bottom: 15px;
    font-weight: 500;
}

.rtl-podcast-player #featured-episode button, .rtl-podcast-player .episode button {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    padding: 0;
    background-image: url('https://static.vecteezy.com/system/resources/thumbnails/017/196/540/small/3d-play-button-icon-transparent-background-free-png.png');
    background-size: 35px;
    background-position: center;
    background-repeat: no-repeat;
    font-size: 0;
    position: relative;
}

    .rtl-podcast-player .date-badge {
        background: rgba(0, 255, 255, 0.1);
        border: 2px solid #00ffff;
        border-radius: 8px;
        padding: 8px 15px;
        color: #00ffff;
        font-weight: bold;
        text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
        box-shadow: 
            0 0 5px rgba(0, 255, 255, 0.2),
            0 0 10px rgba(0, 255, 255, 0.2),
            0 0 15px rgba(0, 255, 255, 0.2),
            0 0 20px rgba(0, 255, 255, 0.2);
        animation: neonPulse 1.5s ease-in-out infinite;
        margin: 15px auto 20px auto; /* Increased bottom margin */
        display: block; /* Changed from inline-block to block */
        width: fit-content;
    }

    @keyframes neonPulse {
        0%, 100% {
            box-shadow: 
                0 0 5px rgba(0, 255, 255, 0.2),
                0 0 10px rgba(0, 255, 255, 0.2),
                0 0 15px rgba(0, 255, 255, 0.2),
                0 0 20px rgba(0, 255, 255, 0.2);
        }
        50% {
            box-shadow: 
                0 0 10px rgba(0, 255, 255, 0.4),
                0 0 20px rgba(0, 255, 255, 0.4),
                0 0 30px rgba(0, 255, 255, 0.4),
                0 0 40px rgba(0, 255, 255, 0.4);
        }
    }


.rtl-podcast-player #featured-episode img,
.rtl-podcast-player .episode img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .modal-content img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .episode button:hover::after,
.rtl-podcast-player #featured-episode button:hover::after {
    content: "Ecouter ce podcast";
    position: absolute;
    bottom: -35px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 14px;
    white-space: nowrap;
    z-index: 1000;
}

.rtl-podcast-player #featured-episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #episode-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

    .rtl-podcast-player .episode {
        padding: 20px;
        border-radius: 15px;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.1);
        text-align: center;
        background-color: #1a1a1a;
        transition: all 0.3s ease;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .rtl-podcast-player .episode p {
        color: #ffffff;
    }


.rtl-podcast-player .episode:hover {
    box-shadow: 0 0 20px rgba(0, 255, 255, 0.2);
    transform: translateY(-3px);
}

.rtl-podcast-player .episode h5 {
    margin-bottom: 10px;
    color: #00ffff;
}

.rtl-podcast-player .episode a {
    color: #00ffff;
    text-decoration: none;
}

    .rtl-podcast-player .episode button:hover {
        background-color: #00cccc;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
    }
    
    .search-filter-container {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 15px;
        margin-bottom: 30px;
        width: 100%;
    }

    .search-filter-container input,
    .search-filter-container select {
        padding: 10px 15px;
        border: 2px solid #00ffff;
        border-radius: 8px;
        background: rgba(0, 0, 0, 0.3);
        color: #fff;
        font-size: 16px;
        width: 200px;
    }

    .search-filter-container input::placeholder {
        color: rgba(255, 255, 255, 0.6);
    }

    .search-filter-container input:focus,
    .search-filter-container select:focus {
        outline: none;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
    }

    .search-filter-container select {
        cursor: pointer;
    }

    .search-filter-container select option {
        background-color: #1a1a1a;
        color: #fff;
    }

    @media (max-width: 768px) {
        .search-filter-container {
            flex-direction: column;
            gap: 10px;
        }

        .search-filter-container input,
        .search-filter-container select {
            width: 100%;
            max-width: 300px;
        }
    }

    color: #000;
    border: none;
    padding: 8px 20px;
    border-radius: 20px;
    cursor: pointer;
    font-weight: 500;
    transition: all 0.3s ease;
    margin-top: 10px; /* Add space above button */
    display: block; /* Ensure block-level display */
    margin-left: auto;
    margin-right: auto;
}

.rtl-podcast-player .episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player .pagination {
    text-align: center !important;
    margin-top: 30px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: auto !important;
}

  .rtl-podcast-player #page-numbers {
    display: flex !important;
    gap: 5px !important;
    margin: 0 5px !important;
}
  
.rtl-podcast-player .pagination button,
.rtl-podcast-player .pagination #prev-btn,
.rtl-podcast-player .pagination #next-btn {
    margin: 0 !important;  /* Changé de 5px à 0 */
    padding: 8px 16px;
    font-size: 1em;
    background-color: #1a1a1a;
    color: #00ffff;
    border: 1px solid #00ffff;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s ease;
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.rtl-podcast-player .pagination button:hover {
    background-color: #00ffff;
    color: #000;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
}

.rtl-podcast-player .modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(8px);
}

.rtl-podcast-player .modal-content {
    background-color: #1a1a1a;
    padding: 40px;
    border: 2px solid #00ffff;
    width: 90%;
    max-width: 500px;
    max-height: 90vh;
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    overflow-y: auto;
    color: white;
}

.rtl-podcast-player .close {
    position: absolute;
    top: 10px;
    right: 20px;
    color: #00ffff;
    font-size: 35px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.3s;
}

.rtl-podcast-player .close:hover {
    color: #00cccc;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #chromecast-button {
    background-color: #00ffff;
    border: none;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
    color: #000;
    margin-top: 20px;
    font-weight: bold;
    display: inline-block;
}

.rtl-podcast-player audio::-webkit-media-controls-panel {
    background-color: #2a2a2a;
}

.rtl-podcast-player audio::-webkit-media-controls-current-time-display,
.rtl-podcast-player audio::-webkit-media-controls-time-remaining-display {
    color: #000000;
}

.rtl-podcast-player #fixed-player-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(26, 26, 26, 0.95);
    backdrop-filter: blur(10px);
    padding: 10px 20px;
    z-index: 999;
    border-top: 2px solid #00ffff;
}

.rtl-podcast-player .fixed-player-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    gap: 20px;
}


.rtl-podcast-player #fixed-player-title {
    color: #00ffff;
    font-size: 1em;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.rtl-podcast-player #fixed-player-audio {
    flex: 2;
    max-width: 500px;
}

.episode-card {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(0, 255, 255, 0.3);
    border-radius: 15px;
    padding: 20px;
    margin-bottom: 20px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.episode-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 255, 255, 0.2);
}

.episode-card img {
    width: 100%;
    max-width: 200px;
    border-radius: 10px;
    margin: 10px 0;
}

.episode-card button {
    margin-top: 10px;
}
  
/* Conserve les styles des boutons play et mute */
audio::-webkit-media-controls-play-button,
audio::-webkit-media-controls-mute-button {
    background-color: #40E0D0 !important; /* Bleu turquoise */
    border-radius: 50% !important;
    transition: all 0.3s ease !important;
}

audio::-webkit-media-controls-play-button:hover,
audio::-webkit-media-controls-mute-button:hover {
    background-color: #5FECEC !important; /* Bleu turquoise plus clair au survol */
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5) !important;
}

/* Tentative pour changer la couleur du trait de progression */
audio::-webkit-media-controls-timeline {
    color: #a6a6a6 !important; /* Essaye de cibler le trait turquoise */
}

/* Modifie la couleur des trois petits points */
audio::-webkit-media-controls-panel {
    background-color: transparent !important; /* Assure que le fond ne prend pas de couleur */
    color: #40E0D0 !important; /* Forcer la couleur turquoise pour les trois points */
}

/* Tentative supplémentaire pour cibler le trait du curseur de progression */
audio::-webkit-slider-runnable-track {
    background-color: #40E0D0 !important; /* Bleu turquoise pour la piste */
}

audio::-webkit-slider-thumb {
    background-color: #a6a6a6 !important; /* Plus clair pour le curseur lui-même */
}


@media (max-width: 768px) {
    .rtl-podcast-player .fixed-player-content {
        flex-direction: column;
        gap: 10px;
        padding: 15px;
    }

    .rtl-podcast-player #fixed-player-audio {
        width: 100%;
        max-width: 100%;
    }

    .rtl-podcast-player #fixed-player-title {
        width: 100%;
        text-align: center;
        font-size: 0.9em;
    }
}

.rtl-podcast-player .social-button {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease-in-out;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.rtl-podcast-player .social-button:hover {
    transform: scale(1.1);
}

@media (max-width: 768px) {
    .rtl-podcast-player .social-share-buttons {
        gap: 10px;
    }
    
    .rtl-podcast-player .social-button {
        width: 40px;
        height: 40px;
    }
    
    .rtl-podcast-player .social-button svg {
        width: 20px;
        height: 20px;
    }
}

.navigation-buttons {
    position: absolute;
    width: 100%;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 10px;
    pointer-events: none;
    z-index: 1000;
}

.nav-button {
    background: rgba(0, 0, 0, 0.7);
    border: 2px solid #00ffff;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    pointer-events: auto;
}  

.nav-button:hover {
    background: rgba(0, 255, 255, 0.2);
    transform: scale(1.1);
}

.nav-button svg {
    width: 24px;
    height: 24px;
}

@media (max-width: 768px) {
    .nav-button {
        width: 35px;
        height: 35px;
    }
    
    .nav-button svg {
        width: 20px;
        height: 20px;
    }
}
</style>
<script type="text/javascript" src="//www.gstatic.com/cv/js/sender/v1/cast_sender.js"></script>

</head><body>
<div class="rtl-podcast-player">
    <div class="container" style="background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    border-radius: 0; /* Changed from 20px to 0 */
    box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);">
    <h1 style="color: #00ffff; text-align: center; font-size: 2.1em; margin-bottom: 40px; font-weight: 700; width: 100%; grid-column: 1 / -1; text-shadow: 0 0 10px rgba(0, 255, 255, 0.3); padding: 0 15px; display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap;">
Le SuperShow NRJ avec Louis, Charly &amp; Bichette - Écoutez en rediffusion ou télécharger tous les podcasts NRJ
<img decoding="async" src="https://cdn.uc.assets.prezly.com/b1be11c1-7593-48e0-b0d3-dfedd93ef5a2/-/inline/no/Newsroom+Icon-NRJ.png" alt="Logo Europe 1" style="width: 60px; height: 60px; border-radius: 50%; padding: 5px; background: white; box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);">
</h1>
    <div class="social-share-buttons" style="display: flex; justify-content: center; align-items: center; gap: 15px; margin-bottom: 30px; width: 100%; grid-column: 1 / -1;">
    <button onclick="shareOnX()" class="social-button" style="background-color: #000;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnWhatsapp()" class="social-button" style="background-color: #25D366;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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.298-.347.446-.52.149-.174.198-.298.298-.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>
        </svg>
    </button>
    <button onclick="shareOnFacebook()" class="social-button" style="background-color: #1877F2;">  
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnLinkedIn()" class="social-button" style="background-color: #0A66C2;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
</div>
      
    <div id="featured-episode" style="display: flex; flex-direction: column; align-items: center; text-align: center; justify-content: space-between; gap: 20px; height: 100%; position: relative; padding-top: 20px; cursor: pointer;">
  <div class="features-episode" style="width: 100%; height: 100%;">
    <!-- Première carte (dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
            
    <!-- Deuxième carte (avant-dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
  </div>
</div>
    <div>
    <div class="search-filter-container">
        <input type="text" id="podcast-search" placeholder="Rechercher un podcast..." oninput="filterAndDisplayEpisodes()">
        <select id="podcast-filter" onchange="filterAndDisplayEpisodes()">
            <option value="newest">Plus récents</option>
            <option value="oldest">Plus anciens</option>
        </select>
    </div>
    <div id="episode-grid">
        <style>
            .episode {
                cursor: pointer;
            }
            
            .episode > * {
                pointer-events: none;
            }
            
            .episode button {
                pointer-events: auto;
            }
        </style>
    </div>
    <div class="pagination" id="pagination">
    <button id="prev-btn" onclick="changePage('prev')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M15 18l-6-6 6-6"></path>
        </svg>
    </button>
    <span id="page-numbers"></span>
    <button id="next-btn" onclick="changePage('next')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M9 18l6-6-6-6"></path>
        </svg>
    </button>
</div>

      <div class="ad-banner" style="width: 100%; max-width: 508px; margin: 20px auto; text-align: center; grid-column: 1 / -1; background: rgba(0,0,0,0.3); padding: 15px; border-radius: 10px; border: 1px solid rgba(0, 255, 255, 0.2); transition: transform 0.3s ease;">
    <p style="color: #666; font-size: 12px; margin-bottom: 10px;">Publicité</p>
    <a href="https://universal-academy.com/recruter-des-alternants-dans-le-tourisme/" target="_blank" style="display: inline-block;">
        <img decoding="async" src="https://radiostreamr.com/radio-france/wp-content/uploads/2024/11/Design-sans-titre-2024-11-06T134332.299.webp" alt="Bannière publicitaire RTL" style="width: 100%; max-width: 700px; height: auto; border-radius: 8px; transition: transform 0.3s ease;" onmouseover="this.style.transform='scale(1.02)'" onmouseout="this.style.transform='scale(1)'">
    </a>
</div>

    <script>
        // Ajouter un event listener pour les cartes d'épisodes
        document.getElementById('episode-grid').addEventListener('click', (e) => {
            const episodeCard = e.target.closest('.episode');
            if (episodeCard) {
                // Trouver le bouton dans la carte et simuler un clic dessus
                const button = episodeCard.querySelector('button');
                if (button) {
                    button.click();
                }
            }
        });
    </script>
</div>
    
    <div class="host-biography" style="grid-column: 1 / -1; background: rgba(0, 0, 0, 0.3); padding: 30px; border-radius: 15px; margin-top: 30px; border: 1px solid rgba(0, 255, 255, 0.2);">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
        <!-- Media query pour passer en une colonne sur mobile -->
        <style>
            @media (max-width: 768px) {
                .host-biography > div {
                    grid-template-columns: 1fr !important;
                }
            }
        </style>

      <div class="host-biography" style="grid-column: 1 / -1; padding: 30px; border-radius: 15px; margin-top: 30px;">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
      <div style="grid-column: 1 / -1; margin-bottom: 30px; text-align: center;">
    <div style="color: #ffffff; line-height: 1.6; text-align: center;">
    <h2 style="color: #00ffff; margin-bottom: 20px; text-align: center;">Le SuperShow NRJ - La matinale préférée des français avec Louis, Charly &amp; Bichette</h2>
</div>

    <!-- Nouveaux boutons de réseaux sociaux -->
    <div style="display: flex; justify-content: center; align-items: center; gap: 20px; margin: 20px 0;">
        <a href="https://www.facebook.com/nrjradio/?locale=fr_FR" target="_blank" style="position: relative; width: 50px; height: 50px; background: #1877F2; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M18.77 7.46H14.5v-1.9c0-.9.6-1.1 1-1.1h3V.5h-4.33C10.24.5 9.5 3.44 9.5 5.32v2.15h-3v4h3v12h5v-12h3.85l.42-4z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Facebook</span>
</a>

        <a href="https://www.instagram.com/nrjhitmusiconly/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #E4405F; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Instagram</span>
</a>

        <a href="https://www.nrj.fr/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #00ffff; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#000000">
        <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur site web</span>
</a>
    </div>

    <style>
        /* Hover effects pour les boutons */
        .host-biography a:hover {
            transform: scale(1.1);
            box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
        }
        
        .host-biography a:hover span {
            opacity: 1;
        }

        /* Media queries pour le responsive */
        @media (max-width: 768px) {
            .host-biography div[style*="display: flex"] {
                flex-wrap: wrap;
                justify-content: center;
                gap: 15px;
            }
        }
    </style>

    <p style="color: #ffffff; line-height: 1.6; text-align: center; max-width: 1200px; margin: 0 auto;">
Le SuperShow NRJ avec Louis, Charly &amp; Bichette est l'émission incontournable qui enflamme vos soirées sur NRJ ! Chaque soir, retrouvez ce trio déjanté qui transforme votre radio en véritable soirée entre amis. Au programme : des discussions animées sur les buzz du moment, un décryptage décalé de l'actualité des réseaux sociaux, des jeux interactifs avec des cadeaux à gagner, et surtout, des anecdotes hilarantes du quotidien qui vous feront pleurer de rire. L'émission se démarque par son ambiance unique, mêlant humour spontané, défis délirants et interaction constante avec les auditeurs via les réseaux sociaux. Louis, Charly et Bichette forment une équipe dynamique qui n'hésite pas à se mettre en scène pour votre plus grand plaisir, créant des moments mémorables qui deviennent rapidement viraux sur le web. Ne manquez pas ce rendez-vous quotidien qui réunit déjà des millions d'auditeurs fidèles, faisant du SuperShow NRJ l'une des émissions radio les plus populaires et les plus partagées sur les réseaux sociaux !
</p>
    
    <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-top: 30px; padding: 20px;">
        <!-- Les 6 cartes existantes restent inchangées -->
        <!-- Carte 1 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M3 18v-6a9 9 0 0 1 18 0v6"></path>
                <path d="M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z"></path>
            </svg>
            <p style="color: #ffffff; margin: 0;">Écouter gratuitement tous les podcasts en streaming</p>
        </div>

        <!-- Carte 2 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
                <polyline points="7 10 12 15 17 10"></polyline>
                <line x1="12" y1="15" x2="12" y2="3"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Télécharger les épisodes pour une écoute hors-ligne</p>
        </div>

        <!-- Carte 3 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6"></path>
                <line x1="2" y1="20" x2="2" y2="20"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Diffuser sur votre Chromecast ou appareil compatible</p>
        </div>

        <!-- Carte 4 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="12" cy="12" r="10"></circle>
                <polygon points="10 8 16 12 10 16 10 8"></polygon>
            </svg>
            <p style="color: #ffffff; margin: 0;">Accéder à toutes les rediffusions des émissions précédentes</p>
        </div>

        <!-- Carte 5 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
        <circle cx="9" cy="7" r="4"></circle>
        <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
        <path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Retrouvez l'intégralité de votre émission préférée "Le SuperShow NRJ" avec Louis, Charly &amp; Bichette en podcast !</p>
</div>

        <!-- Carte 6 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px; position: relative;" onmouseover="this.style.transform='translateY(-5px)'; document.getElementById('live-tooltip').style.opacity='1'" onmouseout="this.style.transform='translateY(0)'; document.getElementById('live-tooltip').style.opacity='0'" onclick="window.location.href='https://radiostreamr.com/radio-france/ecoutez-en-direct-nrj/'">
    <div id="live-tooltip" style="position: absolute; top: -40px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.8); color: #fff; padding: 8px 15px; border-radius: 5px; font-size: 14px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none; border: 1px solid #00ffff; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">
        Cliquez pour écouter en direct NRJ
    </div>
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M4 12h1"></path>
        <path d="M9 12h1"></path>
        <path d="M14 12h1"></path>
        <path d="M19 12h1"></path>
        <rect x="2" y="8" width="20" height="12" rx="2"></rect>
        <path d="M6 8V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v4"></path>
        <circle cx="12" cy="14" r="4"></circle>
        <path d="M12 10v8"></path>
        <path d="M8 14h8"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Écoutez en direct sur NRJ "Le SuperShow NRJ", votre émission déjantée avec Louis, Charly &amp; Bichette - Un concentré d'humour et de bonne humeur pour animer vos soirées !</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;">
    Du lundi au jeudi de 22h à minuit
</p>
</div>
    </div>
</div>
        
        <!-- Histoire de l'émission -->
        <div style="padding: 20px; text-align: center; width: 100%; margin: 0 auto; grid-column: 1 / -1;">
</div>

        <!-- Biographie de Laurent Ruquier -->
        <div style="grid-column: 1 / -1;"></div>

        <!-- Sources (span across both columns) -->
        <div></div>
    </div>
</div>

</div>

    <div id="player-modal" class="modal">
        <div class="modal-content">
    <span class="close" onclick="closeModal()">×</span>
    <div class="navigation-buttons">
        <button id="prev-episode" onclick="navigateEpisode('prev')" class="nav-button">
            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M15 18l-6-6 6-6"></path>
            </svg>
        </button>
        <button id="next-episode" onclick="navigateEpisode('next')" class="nav-button">
            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M9 18l6-6-6-6"></path>
            </svg>
        </button>
    </div>
    <div id="player-content">
    <style>
        /* Styles existants */
        .modal-content {
            background-color: #1a1a1a;
            padding: 40px;
            border: 2px solid #00ffff;
            width: 90%;
            max-width: 500px;
            max-height: 90vh;
            border-radius: 20px;
            text-align: center;
            box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
            position: fixed; /* Changé de absolute à fixed */
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) !important; /* Ajout de !important */
            overflow-y: auto;
            color: white;
        }

        /* Change la couleur du timing en noir */
        audio::-webkit-media-controls-time-display {
            color: #000000 !important;
        }

        /* Ajout de media queries pour le mobile */
        @media (max-width: 768px) {
            .modal-content {
                padding: 30px;
                width: 95%;
                margin: 0 auto;
                position: fixed;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%) !important;
            }
        }

        @media (max-height: 600px) {
            .modal-content {
                max-height: 85vh;
            }
        }
    </style>
</div>
    <button id="chromecast-button" onclick="startChromecast()" style="width: 60px; height: 60px; border-radius: 50%; padding: 0; background-image: url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png'); background-size: 35px; background-position: center; background-repeat: no-repeat; font-size: 0;"></button>
</div>
    </div>

    <div id="fixed-player-bar" class="rtl-podcast-player" style="display: none;">
    <div class="fixed-player-content">
        <h3 id="fixed-player-title"></h3>
        <div class="audio-controls-container" style="display: flex; align-items: center; justify-content: center; gap: 20px; width: 100%; max-width: 800px; margin: 0 auto;">
            <audio id="fixed-player-audio" controls="">
                <source src="" type="audio/mpeg">
            </audio>
            <button onclick="startChromecast()" style="width: 40px; height: 40px; min-width: 40px; border-radius: 50%; padding: 0; background: #ffffff url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png') center/25px no-repeat; border: 2px solid #00ffff; font-size: 0; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">Cast to Chromecast</button>
            <button id="close-fixed-player" onclick="closeFixedPlayer()" style="background: none; border: none; color: #00ffff; font-size: 24px; cursor: pointer; padding: 5px; min-width: 24px; display: flex; align-items: center; justify-content: center;">×</button>
        </div>
    </div>
</div>

    <script>
    (function RTLPodcastPlayer() {
        // Initialize cast api
        window.__onGCastApiAvailable = function(isAvailable) {
            if (!isAvailable) return;

            const initializeCastApi = function() {
                const sessionRequest = new chrome.cast.SessionRequest(chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID);
                const apiConfig = new chrome.cast.ApiConfig(
                    sessionRequest,
                    sessionListener,
                    receiverListener
                );
                chrome.cast.initialize(apiConfig, onInitSuccess, onError);
            };

            const sessionListener = function(session) {
                console.log('Session listener', session);
            };

            const receiverListener = function(availability) {
                console.log('Receiver listener', availability);
            };

            const onInitSuccess = function() {
                console.log('Cast initialization success');
            };

            const onError = function(error) {
                console.error('Cast initialization error', error);
            };

            if (!chrome.cast || !chrome.cast.isAvailable) {
                setTimeout(initializeCastApi, 1000);
            } else {
                initializeCastApi();
            }
        };

        const rssUrl = "https://aod.nrjaudio.fm/xml/2447.xml";
        const proxyUrl = `https://api.rss2json.com/v1/api.json?rss_url=${encodeURIComponent(rssUrl)}&api_key=int3lqiwwrpnsvem6yki0mtwki2f4qcvcxtrlyea&count=250`;
        const episodesPerPage = 4;
        let currentPage = 1;
        let currentAudioUrl = '';
        let totalPages = 0;

        // Ajouter ces variables au début du script
        let currentEpisodeIndex = 0;
        let allEpisodes = [];
        let filteredEpisodes = [];

        fetch(proxyUrl)
            .then(response => response.json())
            .then(data => {
                if (data.status !== "ok") {
                    throw new Error("Erreur de chargement du flux RSS.");
                }
                allEpisodes = data.items;
                filteredEpisodes = [...allEpisodes];
                displayFeaturedEpisode(allEpisodes[0]);
                displayEpisodes(currentPage, filteredEpisodes);
                setupPagination(allEpisodes);
            })
            .catch(error => {
                document.getElementById("featured-episode").innerHTML = "<p>Impossible de charger le flux RSS. Veuillez réessayer plus tard.</p>";
            });

        function truncateDescription(description, maxLength = 180) {
    // Crée un élément temporaire pour décoder les entités HTML
    const tempElement = document.createElement("div");
    tempElement.innerHTML = description;
    
    // Récupère le texte brut de la description
    let plainText = tempElement.innerText || tempElement.textContent || '';

    // Tronque le texte si nécessaire
    if (plainText.length <= maxLength) return plainText.trim();
    return plainText.substring(0, maxLength).trim() + '...';
}

function displayFeaturedEpisode(episode) {
    const featuredEpisode = document.getElementById("featured-episode");
    
    // Créer le HTML pour les deux premières émissions
    featuredEpisode.innerHTML = `
    <div class="features-episode" style="width: 100%; height: 100%;">
        <!-- Première carte (dernière émission) -->
        <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[0].enclosure.link)}', '${sanitizeString(allEpisodes[0].title)}')">
            <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[0].title)}</h3>
            ${allEpisodes[0].thumbnail ? `<img decoding="async" src="${allEpisodes[0].thumbnail}" alt="Image de la dernière émission">` : ""}
            <div class="description" style="color: white;">${truncateDescription(allEpisodes[0].description)}</div>
            <div class="date-badge">
                ${new Date(allEpisodes[0].pubDate).toLocaleDateString('fr-FR', {
                    day: '2-digit',
                    month: '2-digit',
                    year: '2-digit'
                })}
            </div>
            <button></button>
        </div>
        
        <!-- Deuxième carte (avant-dernière émission) -->
        <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[1].enclosure.link)}', '${sanitizeString(allEpisodes[1].title)}')">
            <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[1].title)}</h3>
            ${allEpisodes[1].thumbnail ? `<img decoding="async" src="${allEpisodes[1].thumbnail}" alt="Image de l'avant-dernière émission">` : ""}
            <div class="description" style="color: white;">${truncateDescription(allEpisodes[1].description)}</div>
            <div class="date-badge">
                ${new Date(allEpisodes[1].pubDate).toLocaleDateString('fr-FR', {
                    day: '2-digit',
                    month: '2-digit',
                    year: '2-digit'
                })}
            </div>
            <button></button>
        </div>
    </div>
    `;
}

function displayEpisodes(page, episodes) {
    const episodeGrid = document.getElementById("episode-grid");
    episodeGrid.innerHTML = "";
    const episodesWithoutFeatured = episodes.slice(2);
    const start = (page - 1) * episodesPerPage;  
    const end = start + episodesPerPage;
    
    episodesWithoutFeatured.slice(start, end).forEach(item => {
        // IMPORTANT : Encode les titres pour éviter les problèmes avec les apostrophes
        const encodedTitle = encodeURIComponent(item.title);
        const encodedUrl = encodeURIComponent(item.enclosure.link);
        
        episodeGrid.innerHTML += `
    <div class="episode">
        <h5 style="color: #00ffff;">${sanitizeString(item.title)}</h5>
        ${item.thumbnail ? `<img decoding="async" src="${item.thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 150px;">` : ""}
        <div class="description" style="color: white;">${truncateDescription(item.description)}</div>
        <div class="date-badge">
            ${new Date(item.pubDate).toLocaleDateString('fr-FR', {
                day: '2-digit',
                month: '2-digit',
                year: '2-digit'
            })}
        </div>
        <button onclick="openModal('${sanitizeString(item.enclosure.link)}', '${sanitizeString(item.title)}')"></button>
    </div>
`;
    });
    updatePaginationButtons();
}

        function setupPagination(episodes) {
    // Soustrait les 2 épisodes featured au lieu d'un seul
    totalPages = Math.ceil((episodes.length - 2) / episodesPerPage);
    const pageNumbers = document.getElementById("page-numbers");
    pageNumbers.innerHTML = "";

    // Calcule quels numéros afficher
    let start = currentPage;
    if (currentPage === totalPages) {
        start = totalPages - 2;
    } else if (currentPage === 1) {
        start = 1;
    } else {
        start = currentPage - 1;
    }

    // S'assure que start n'est jamais inférieur à 1
    start = Math.max(1, start);
    
    // Affiche 3 boutons à partir de start
    for (let i = start; i < start + 3 && i <= totalPages; i++) {
        const button = document.createElement("button");
        button.textContent = i;
        button.addEventListener("click", () => {
            currentPage = i;
            displayEpisodes(currentPage, episodes);
            setupPagination(episodes); // Important : rafraîchit la pagination
        });
        pageNumbers.appendChild(button);
    }

    // Réactive la fonctionnalité des boutons précédent/suivant
    window.changePage = function(direction) {
        if (direction === 'prev' && currentPage > 1) {
            currentPage--;
        } else if (direction === 'next' && currentPage < totalPages) {
            currentPage++;
        }
        displayEpisodes(currentPage, filteredEpisodes);
        setupPagination(episodes); // Rafraîchit la pagination
        updatePaginationButtons();
    }

    updatePaginationButtons();
}

        function updatePaginationButtons() {
            const prevBtn = document.getElementById('prev-btn');
            const nextBtn = document.getElementById('next-btn');
            
            prevBtn.disabled = currentPage === 1;
            nextBtn.disabled = currentPage === totalPages;
            
            prevBtn.style.opacity = currentPage === 1 ? '0.5' : '1';
            nextBtn.style.opacity = currentPage === totalPages ? '0.5' : '1';
            
            const pageButtons = document.querySelectorAll('#page-numbers button');
            pageButtons.forEach((button, index) => {
                if (index + 1 === currentPage) {
                    button.style.backgroundColor = '#00ffff';
                    button.style.color = '#000';
                } else {
                    button.style.backgroundColor = '#1a1a1a';
                    button.style.color = '#00ffff';
                }
            });
        }

        window.openModal = function(audioUrl, title) {
            const playerContent = document.getElementById("player-content");
            
            // Find the episode data from allEpisodes based on the audioUrl
            const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
            
            // Get the thumbnail from the episode data directly
            const thumbnail = currentEpisode?.thumbnail;

            // Trouve l'index de l'épisode actuel
            currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
            
            playerContent.innerHTML = `
                <h2>${title}</h2>
                ${thumbnail ? `<img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0;">` : ''}
                <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
                    <source src="${audioUrl}" type="audio/mpeg">
                    Votre navigateur ne supporte pas la lecture audio.
                </audio>
            `;
            
            // Mise à jour de la visibilité des boutons de navigation
            updateNavigationButtons();
            
            currentAudioUrl = audioUrl;
            document.getElementById("player-modal").style.display = "block";
            
            // Store current title for fixed player
            window.currentEpisodeTitle = title;
            
            // Setup audio element for fixed player
            const modalAudio = document.getElementById('modal-audio');
            modalAudio.addEventListener('play', () => {
                window.isPlaying = true;
            });
            modalAudio.addEventListener('pause', () => {
                window.isPlaying = false;
            });
        }

    window.navigateEpisode = function(direction) {
        let newIndex = direction === 'prev' ? currentEpisodeIndex - 1 : currentEpisodeIndex + 1;
        
        if (newIndex >= 0 && newIndex < allEpisodes.length) {
            const episode = allEpisodes[newIndex];
            openModal(episode.enclosure.link, episode.title);
        }
    }

      function sanitizeString(str) {
    return str.replace(/['"\\<>]/g, "");
}


    function updateNavigationButtons() {
        const prevButton = document.getElementById('prev-episode');
        const nextButton = document.getElementById('next-episode');
        
        prevButton.style.display = currentEpisodeIndex === 0 ? 'none' : 'flex';
        nextButton.style.display = currentEpisodeIndex === allEpisodes.length - 1 ? 'none' : 'flex';
    }

        window.closeModal = function() {
            const modalAudio = document.getElementById('modal-audio');
            const fixedPlayerBar = document.getElementById('fixed-player-bar');
            const fixedPlayerAudio = document.getElementById('fixed-player-audio');
            const fixedPlayerTitle = document.getElementById('fixed-player-title');
            
            if (window.isPlaying) {
                // Pause modal audio first
                modalAudio.pause();
                
                // Set up fixed player
                fixedPlayerBar.style.display = 'block';
                fixedPlayerTitle.textContent = window.currentEpisodeTitle;
                fixedPlayerAudio.src = currentAudioUrl;
                fixedPlayerAudio.currentTime = modalAudio.currentTime;
                fixedPlayerAudio.play();
            }
            
            document.getElementById("player-modal").style.display = "none";
        }

    // Add close fixed player function
    window.closeFixedPlayer = function() {
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        fixedPlayerAudio.pause();
        fixedPlayerBar.style.display = 'none';
    }

        window.startChromecast = function() {
            if (!chrome.cast || !chrome.cast.isAvailable) {
                console.log('Cast API not available');
                return;
            }

            chrome.cast.requestSession(
                function(session) {
                    if (currentAudioUrl) {
                        const mediaInfo = new chrome.cast.media.MediaInfo(currentAudioUrl, 'audio/mpeg');
                        mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();
                        mediaInfo.metadata.title = document.querySelector('#player-content h2').textContent;

                        const request = new chrome.cast.media.LoadRequest(mediaInfo);
                        session.loadMedia(request).then(
                            () => console.log('Lecture Chromecast démarrée'),
                            errorCode => console.error('Erreur Chromecast: ' + errorCode)
                        );
                    }
                },
                function(error) {
                    console.error('Erreur lors de la création de la session:', error);
                }
            );
        }

        window.shareOnX = function() {
            const text = "Écoutez les podcasts : Le SuperShow NRJ avec Louis, Charly & Bichette avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}&url=${encodeURIComponent(url)}`, '_blank');
        };

        window.shareOnWhatsapp = function() {
            const text = "Écoutez les podcasts : Le SuperShow NRJ avec Louis, Charly & Bichette avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://wa.me/?text=${encodeURIComponent(text + ' ' + url)}`, '_blank');
        };

        window.shareOnFacebook = function() {
          const text = "Écoutez les podcasts : Le SuperShow NRJ avec Louis, Charly & Bichette avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(url)}`, '_blank');
        };

        window.shareOnLinkedIn = function() {
          const text = "Écoutez les podcasts : Le SuperShow NRJ avec Louis, Charly & Bichette avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(url)}`, '_blank');
        };

        window.filterAndDisplayEpisodes = function() {
            const searchTerm = document.getElementById('podcast-search').value.toLowerCase();
            const filterValue = document.getElementById('podcast-filter').value;
            
            // Filter episodes based on search term
            filteredEpisodes = allEpisodes.filter(episode => 
                episode.title.toLowerCase().includes(searchTerm) || 
                episode.description.toLowerCase().includes(searchTerm)
            );
            
            // Sort episodes based on filter value
            if (filterValue === 'oldest') {
                filteredEpisodes.sort((a, b) => new Date(a.pubDate) - new Date(b.pubDate));
            } else {
                filteredEpisodes.sort((a, b) => new Date(b.pubDate) - new Date(a.pubDate));
            }
            
            // Reset pagination to first page when filtering
            currentPage = 1;
            
            // Update display
            if (filteredEpisodes.length > 0) {
                displayFeaturedEpisode(filteredEpisodes[0]);
                displayEpisodes(currentPage, filteredEpisodes);
                setupPagination(filteredEpisodes);
            } else {
                // Handle no results
                document.getElementById('episode-grid').innerHTML = '<p style="color: #fff; text-align: center; grid-column: 1/-1;">Aucun résultat trouvé</p>';
                document.getElementById('page-numbers').innerHTML = '';
            }
        }
    })();
</script>
</div>
</div></div></body></html>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-551c4bf e-con-full e-flex e-con e-parent" data-id="551c4bf" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-9371460 elementor-widget elementor-widget-shortcode" data-id="9371460" data-element_type="widget" data-widget_type="shortcode.default">
				<div class="elementor-widget-container">
							<div class="elementor-shortcode"></div>
						</div>
				</div>
				</div>
				</div>
		<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-supershow-nrj/">🗣️ Podcast et replay &#8211; SuperShow NRJ &#8211; Ecoutez les rediffusions !</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://radiostreamr.com/radio-france/podcast-supershow-nrj/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; Le Meilleur de la Semaine sur NRJ &#8211;</title>
		<link>https://radiostreamr.com/radio-france/podcast-le-meilleur-de-la-semaine-nrj/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-le-meilleur-de-la-semaine-nrj/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 18 Nov 2024 22:16:29 +0000</pubDate>
				<category><![CDATA[NRJ]]></category>
		<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1369</guid>

					<description><![CDATA[<p>Le Meilleur de la Semaine NRJ &#8211; Écoutez en rediffusion ou télécharger tous les podcasts Plus récentsPlus anciens Publicité Le Meilleur de la Semaine NRJ &#8211; La compilation du meilleur de la radio Voir leur Facebook Voir leur Instagram Voir leur site web Découvrez « Le Meilleur de la Semaine NRJ », une compilation hebdomadaire incontournable des [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-le-meilleur-de-la-semaine-nrj/">🗣️ Podcast et replay &#8211; Le Meilleur de la Semaine sur NRJ &#8211;</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1369" class="elementor elementor-1369" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-dce457e e-con-full e-flex e-con e-parent" data-id="dce457e" data-element_type="container">
				<div class="elementor-element elementor-element-9f9be1c 1995 elementor-widget elementor-widget-html" data-id="9f9be1c" data-element_type="widget" id="1995" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<!DOCTYPE html><html><head><meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&amp;display=swap" rel="stylesheet">
<style>
    .rtl-podcast-player * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: 'Roboto', sans-serif;
    }

  .rtl-podcast-player #pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: 100% !important;
}

@keyframes gradientBG {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.rtl-podcast-player body {
    background: linear-gradient(-45deg, #0a192f, #172a45, #1a365d, #102235);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    min-height: 100vh;
    display: flex;
    align-items: center;
    color: #fff;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
}

    .rtl-podcast-player .container {
        display: grid;
        grid-template-columns: 1.2fr 2.8fr;
        gap: 20px;
        margin: 0 auto;
        padding: 50px 150px !important;
        width: 100%;
        background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
        background-size: 400% 400%;
        animation: gradientBG 15s ease infinite;
        border-radius: 0;
        box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);
    }


    @media (max-width: 1024px) {
        .rtl-podcast-player .container {
            padding: 30px 45px;
            grid-template-columns: 1fr 2fr;
        }
        
        .rtl-podcast-player h1 {
            font-size: 2em;
        }
    }


    @media (max-width: 768px) {
        .rtl-podcast-player .container {
            padding: 20px !important; /* Override padding */
            margin: 0 !important; /* Reset margin */
            width: 100% !important;
            max-width: 100% !important;
            grid-template-columns: 1fr;
            overflow-x: hidden; /* Prevent horizontal scroll */
        }
        
        .rtl-podcast-player #episode-grid,
        .rtl-podcast-player .episode,
        .rtl-podcast-player #featured-episode,
        .rtl-podcast-player .host-biography,
        .rtl-podcast-player .social-share-buttons {
            width: 100% !important;
            margin-left: auto !important;
            margin-right: auto !important;
            padding: 15px !important;
        }
        
        .rtl-podcast-player h1,
        .rtl-podcast-player h2,
        .rtl-podcast-player p {
            padding-left: 10px !important;
            padding-right: 10px !important;
            text-align: center;
        }

        .rtl-podcast-player #episode-grid {
            grid-template-columns: 1fr !important; /* Force single column */
            gap: 20px;
        }
        
        .rtl-podcast-player .episode {
            width: 100% !important;
            margin: 0 auto !important;
        }
    }


@media (max-width: 480px) {
    .rtl-podcast-player .container {
        padding: 10px !important;
    }
    
    .rtl-podcast-player #featured-episode,
    .rtl-podcast-player .episode {
        padding: 15px !important;
        width: 100% !important;
        margin: 0 auto !important;
    }
}

.rtl-podcast-player h1 {
    color: #00ffff;
    text-align: center;
    font-size: 2.3em;
    margin-bottom: 40px;
    font-weight: 700;
    width: 100%;
    grid-column: 1 / -1;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.3);
}

  #fixed-player-bar {
        display: flex;               /* Assure l'affichage en flex */
        flex-direction: column;       /* Organisation en colonne */
        align-items: center;          /* Centre les éléments */
        padding: 10px;
        gap: 10px;                    /* Espace entre chaque ligne */
        background: rgba(26, 26, 26, 0.95); /* Conserve l’arrière-plan */
        display: none;                /* Masqué par défaut */
    }

    /* Ligne 1 : Titre de l'épisode */
    #fixed-player-title {
        display: block;               /* Force l'affichage sur une ligne complète */
        text-align: center;
        font-size: 1.2em;
        color: #00ffff;
        width: 100%;                  /* Prend la largeur complète */
    }

    /* Ligne 2 : Player audio */
    #fixed-player-audio {
        display: block;               /* Force l'affichage sur une ligne complète */
        width: 100%;
    }

    /* Ligne 3 : Conteneur pour les boutons Chromecast et fermeture */
    .audio-controls-container {
        display: flex;
        justify-content: center;
        gap: 20px;
        width: 100%;                  /* Assure une disposition sur toute la largeur */
    }

    /* Styles des boutons */
    #chromecast-button, #close-fixed-player {
        width: 40px;
        height: 40px;
        border: none;
        cursor: pointer;
    }
}

  @media (max-width: 768px) {
    .rtl-podcast-player h1 {
        margin-top: 0px !important; /* Ajustez la valeur selon vos besoins */
    }
}
  
.rtl-podcast-player #featured-episode {
    /* Remplacer ces styles */
    display: flex;
    flex-direction: column;
    height: 100%; /* Ajout de cette ligne */
    padding: 30px;
    border-radius: 15px;
    background-color: transparent;
    color: #ffffff;
    transition: all 0.3s ease;
}

.rtl-podcast-player #featured-episode:hover {
    transform: translateY(-5px);
}

.rtl-podcast-player #featured-episode h3 {
    color: #00ffff;
    margin-bottom: 15px;
    font-weight: 500;
}

.rtl-podcast-player #featured-episode button, .rtl-podcast-player .episode button {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    padding: 0;
    background-image: url('https://static.vecteezy.com/system/resources/thumbnails/017/196/540/small/3d-play-button-icon-transparent-background-free-png.png');
    background-size: 35px;
    background-position: center;
    background-repeat: no-repeat;
    font-size: 0;
    position: relative;
}

    .rtl-podcast-player .date-badge {
        background: rgba(0, 255, 255, 0.1);
        border: 2px solid #00ffff;
        border-radius: 8px;
        padding: 8px 15px;
        color: #00ffff;
        font-weight: bold;
        text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
        box-shadow: 
            0 0 5px rgba(0, 255, 255, 0.2),
            0 0 10px rgba(0, 255, 255, 0.2),
            0 0 15px rgba(0, 255, 255, 0.2),
            0 0 20px rgba(0, 255, 255, 0.2);
        animation: neonPulse 1.5s ease-in-out infinite;
        margin: 15px auto 20px auto; /* Increased bottom margin */
        display: block; /* Changed from inline-block to block */
        width: fit-content;
    }

    @keyframes neonPulse {
        0%, 100% {
            box-shadow: 
                0 0 5px rgba(0, 255, 255, 0.2),
                0 0 10px rgba(0, 255, 255, 0.2),
                0 0 15px rgba(0, 255, 255, 0.2),
                0 0 20px rgba(0, 255, 255, 0.2);
        }
        50% {
            box-shadow: 
                0 0 10px rgba(0, 255, 255, 0.4),
                0 0 20px rgba(0, 255, 255, 0.4),
                0 0 30px rgba(0, 255, 255, 0.4),
                0 0 40px rgba(0, 255, 255, 0.4);
        }
    }


.rtl-podcast-player #featured-episode img,
.rtl-podcast-player .episode img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .modal-content img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .episode button:hover::after,
.rtl-podcast-player #featured-episode button:hover::after {
    content: "Ecouter ce podcast";
    position: absolute;
    bottom: -35px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 14px;
    white-space: nowrap;
    z-index: 1000;
}

.rtl-podcast-player #featured-episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #episode-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

    .rtl-podcast-player .episode {
        padding: 20px;
        border-radius: 15px;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.1);
        text-align: center;
        background-color: #1a1a1a;
        transition: all 0.3s ease;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .rtl-podcast-player .episode p {
        color: #ffffff;
    }


.rtl-podcast-player .episode:hover {
    box-shadow: 0 0 20px rgba(0, 255, 255, 0.2);
    transform: translateY(-3px);
}

.rtl-podcast-player .episode h5 {
    margin-bottom: 10px;
    color: #00ffff;
}

.rtl-podcast-player .episode a {
    color: #00ffff;
    text-decoration: none;
}

    .rtl-podcast-player .episode button:hover {
        background-color: #00cccc;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
    }
    
    .search-filter-container {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 15px;
        margin-bottom: 30px;
        width: 100%;
    }

    .search-filter-container input,
    .search-filter-container select {
        padding: 10px 15px;
        border: 2px solid #00ffff;
        border-radius: 8px;
        background: rgba(0, 0, 0, 0.3);
        color: #fff;
        font-size: 16px;
        width: 200px;
    }

    .search-filter-container input::placeholder {
        color: rgba(255, 255, 255, 0.6);
    }

    .search-filter-container input:focus,
    .search-filter-container select:focus {
        outline: none;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
    }

    .search-filter-container select {
        cursor: pointer;
    }

    .search-filter-container select option {
        background-color: #1a1a1a;
        color: #fff;
    }

    @media (max-width: 768px) {
        .search-filter-container {
            flex-direction: column;
            gap: 10px;
        }

        .search-filter-container input,
        .search-filter-container select {
            width: 100%;
            max-width: 300px;
        }
    }

    color: #000;
    border: none;
    padding: 8px 20px;
    border-radius: 20px;
    cursor: pointer;
    font-weight: 500;
    transition: all 0.3s ease;
    margin-top: 10px; /* Add space above button */
    display: block; /* Ensure block-level display */
    margin-left: auto;
    margin-right: auto;
}

.rtl-podcast-player .episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player .pagination {
    text-align: center !important;
    margin-top: 30px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: auto !important;
}

  .rtl-podcast-player #page-numbers {
    display: flex !important;
    gap: 5px !important;
    margin: 0 5px !important;
}
  
.rtl-podcast-player .pagination button,
.rtl-podcast-player .pagination #prev-btn,
.rtl-podcast-player .pagination #next-btn {
    margin: 0 !important;  /* Changé de 5px à 0 */
    padding: 8px 16px;
    font-size: 1em;
    background-color: #1a1a1a;
    color: #00ffff;
    border: 1px solid #00ffff;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s ease;
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.rtl-podcast-player .pagination button:hover {
    background-color: #00ffff;
    color: #000;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
}

.rtl-podcast-player .modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(8px);
}

.rtl-podcast-player .modal-content {
    background-color: #1a1a1a;
    padding: 40px;
    border: 2px solid #00ffff;
    width: 90%;
    max-width: 500px;
    max-height: 90vh;
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    overflow-y: auto;
    color: white;
}

.rtl-podcast-player .close {
    position: absolute;
    top: 10px;
    right: 20px;
    color: #00ffff;
    font-size: 35px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.3s;
}

.rtl-podcast-player .close:hover {
    color: #00cccc;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #chromecast-button {
    background-color: #00ffff;
    border: none;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
    color: #000;
    margin-top: 20px;
    font-weight: bold;
    display: inline-block;
}

.rtl-podcast-player audio::-webkit-media-controls-panel {
    background-color: #2a2a2a;
}

.rtl-podcast-player audio::-webkit-media-controls-current-time-display,
.rtl-podcast-player audio::-webkit-media-controls-time-remaining-display {
    color: #000000;
}

.rtl-podcast-player #fixed-player-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(26, 26, 26, 0.95);
    backdrop-filter: blur(10px);
    padding: 10px 20px;
    z-index: 999;
    border-top: 2px solid #00ffff;
}

.rtl-podcast-player .fixed-player-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    gap: 20px;
}


.rtl-podcast-player #fixed-player-title {
    color: #00ffff;
    font-size: 1em;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.rtl-podcast-player #fixed-player-audio {
    flex: 2;
    max-width: 500px;
}

.episode-card {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(0, 255, 255, 0.3);
    border-radius: 15px;
    padding: 20px;
    margin-bottom: 20px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.episode-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 255, 255, 0.2);
}

.episode-card img {
    width: 100%;
    max-width: 200px;
    border-radius: 10px;
    margin: 10px 0;
}

.episode-card button {
    margin-top: 10px;
}
  
/* Conserve les styles des boutons play et mute */
audio::-webkit-media-controls-play-button,
audio::-webkit-media-controls-mute-button {
    background-color: #40E0D0 !important; /* Bleu turquoise */
    border-radius: 50% !important;
    transition: all 0.3s ease !important;
}

audio::-webkit-media-controls-play-button:hover,
audio::-webkit-media-controls-mute-button:hover {
    background-color: #5FECEC !important; /* Bleu turquoise plus clair au survol */
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5) !important;
}

/* Tentative pour changer la couleur du trait de progression */
audio::-webkit-media-controls-timeline {
    color: #a6a6a6 !important; /* Essaye de cibler le trait turquoise */
}

/* Modifie la couleur des trois petits points */
audio::-webkit-media-controls-panel {
    background-color: transparent !important; /* Assure que le fond ne prend pas de couleur */
    color: #40E0D0 !important; /* Forcer la couleur turquoise pour les trois points */
}

/* Tentative supplémentaire pour cibler le trait du curseur de progression */
audio::-webkit-slider-runnable-track {
    background-color: #40E0D0 !important; /* Bleu turquoise pour la piste */
}

audio::-webkit-slider-thumb {
    background-color: #a6a6a6 !important; /* Plus clair pour le curseur lui-même */
}


@media (max-width: 768px) {
    .rtl-podcast-player .fixed-player-content {
        flex-direction: column;
        gap: 10px;
        padding: 15px;
    }

    .rtl-podcast-player #fixed-player-audio {
        width: 100%;
        max-width: 100%;
    }

    .rtl-podcast-player #fixed-player-title {
        width: 100%;
        text-align: center;
        font-size: 0.9em;
    }
}

.rtl-podcast-player .social-button {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease-in-out;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.rtl-podcast-player .social-button:hover {
    transform: scale(1.1);
}

@media (max-width: 768px) {
    .rtl-podcast-player .social-share-buttons {
        gap: 10px;
    }
    
    .rtl-podcast-player .social-button {
        width: 40px;
        height: 40px;
    }
    
    .rtl-podcast-player .social-button svg {
        width: 20px;
        height: 20px;
    }
}

.navigation-buttons {
    position: absolute;
    width: 100%;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 10px;
    pointer-events: none;
    z-index: 1000;
}

.nav-button {
    background: rgba(0, 0, 0, 0.7);
    border: 2px solid #00ffff;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    pointer-events: auto;
}  

.nav-button:hover {
    background: rgba(0, 255, 255, 0.2);
    transform: scale(1.1);
}

.nav-button svg {
    width: 24px;
    height: 24px;
}

@media (max-width: 768px) {
    .nav-button {
        width: 35px;
        height: 35px;
    }
    
    .nav-button svg {
        width: 20px;
        height: 20px;
    }
}
</style>
<script type="text/javascript" src="//www.gstatic.com/cv/js/sender/v1/cast_sender.js"></script>

</head><body>
<div class="rtl-podcast-player">
    <div class="container" style="background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    border-radius: 0; /* Changed from 20px to 0 */
    box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);">
    <h1 style="color: #00ffff; text-align: center; font-size: 2.1em; margin-bottom: 40px; font-weight: 700; width: 100%; grid-column: 1 / -1; text-shadow: 0 0 10px rgba(0, 255, 255, 0.3); padding: 0 15px; display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap;">
Le Meilleur de la Semaine NRJ - Écoutez en rediffusion ou télécharger tous les podcasts
<img decoding="async" src="https://cdn.uc.assets.prezly.com/b1be11c1-7593-48e0-b0d3-dfedd93ef5a2/-/inline/no/Newsroom+Icon-NRJ.png" alt="Logo Europe 1" style="width: 60px; height: 60px; border-radius: 50%; padding: 5px; background: white; box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);">
</h1>
    <div class="social-share-buttons" style="display: flex; justify-content: center; align-items: center; gap: 15px; margin-bottom: 30px; width: 100%; grid-column: 1 / -1;">
    <button onclick="shareOnX()" class="social-button" style="background-color: #000;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnWhatsapp()" class="social-button" style="background-color: #25D366;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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.298-.347.446-.52.149-.174.198-.298.298-.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>
        </svg>
    </button>
    <button onclick="shareOnFacebook()" class="social-button" style="background-color: #1877F2;">  
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnLinkedIn()" class="social-button" style="background-color: #0A66C2;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
</div>
      
    <div id="featured-episode" style="display: flex; flex-direction: column; align-items: center; text-align: center; justify-content: space-between; gap: 20px; height: 100%; position: relative; padding-top: 20px; cursor: pointer;">
  <div class="features-episode" style="width: 100%; height: 100%;">
    <!-- Première carte (dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
            
    <!-- Deuxième carte (avant-dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
  </div>
</div>
    <div>
    <div class="search-filter-container">
        <input type="text" id="podcast-search" placeholder="Rechercher un podcast..." oninput="filterAndDisplayEpisodes()">
        <select id="podcast-filter" onchange="filterAndDisplayEpisodes()">
            <option value="newest">Plus récents</option>
            <option value="oldest">Plus anciens</option>
        </select>
    </div>
    <div id="episode-grid">
        <style>
            .episode {
                cursor: pointer;
            }
            
            .episode > * {
                pointer-events: none;
            }
            
            .episode button {
                pointer-events: auto;
            }
        </style>
    </div>
    <div class="pagination" id="pagination">
    <button id="prev-btn" onclick="changePage('prev')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M15 18l-6-6 6-6"></path>
        </svg>
    </button>
    <span id="page-numbers"></span>
    <button id="next-btn" onclick="changePage('next')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M9 18l6-6-6-6"></path>
        </svg>
    </button>
</div>

      <div class="ad-banner" style="width: 100%; max-width: 508px; margin: 20px auto; text-align: center; grid-column: 1 / -1; background: rgba(0,0,0,0.3); padding: 15px; border-radius: 10px; border: 1px solid rgba(0, 255, 255, 0.2); transition: transform 0.3s ease;">
    <p style="color: #666; font-size: 12px; margin-bottom: 10px;">Publicité</p>
    <a href="https://universal-academy.com/recruter-des-alternants-dans-le-tourisme/" target="_blank" style="display: inline-block;">
        <img decoding="async" src="https://radiostreamr.com/radio-france/wp-content/uploads/2024/11/Design-sans-titre-2024-11-06T134332.299.webp" alt="Bannière publicitaire RTL" style="width: 100%; max-width: 700px; height: auto; border-radius: 8px; transition: transform 0.3s ease;" onmouseover="this.style.transform='scale(1.02)'" onmouseout="this.style.transform='scale(1)'">
    </a>
</div>

    <script>
        // Ajouter un event listener pour les cartes d'épisodes
        document.getElementById('episode-grid').addEventListener('click', (e) => {
            const episodeCard = e.target.closest('.episode');
            if (episodeCard) {
                // Trouver le bouton dans la carte et simuler un clic dessus
                const button = episodeCard.querySelector('button');
                if (button) {
                    button.click();
                }
            }
        });
    </script>
</div>
    
    <div class="host-biography" style="grid-column: 1 / -1; background: rgba(0, 0, 0, 0.3); padding: 30px; border-radius: 15px; margin-top: 30px; border: 1px solid rgba(0, 255, 255, 0.2);">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
        <!-- Media query pour passer en une colonne sur mobile -->
        <style>
            @media (max-width: 768px) {
                .host-biography > div {
                    grid-template-columns: 1fr !important;
                }
            }
        </style>

      <div class="host-biography" style="grid-column: 1 / -1; padding: 30px; border-radius: 15px; margin-top: 30px;">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
      <div style="grid-column: 1 / -1; margin-bottom: 30px; text-align: center;">
    <div style="color: #ffffff; line-height: 1.6; text-align: center;">
    <h2 style="color: #00ffff; margin-bottom: 20px; text-align: center;">Le Meilleur de la Semaine NRJ - La compilation du meilleur de la radio</h2>
</div>

    <!-- Nouveaux boutons de réseaux sociaux -->
    <div style="display: flex; justify-content: center; align-items: center; gap: 20px; margin: 20px 0;">
        <a href="https://www.facebook.com/nrjradio/?locale=fr_FR" target="_blank" style="position: relative; width: 50px; height: 50px; background: #1877F2; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M18.77 7.46H14.5v-1.9c0-.9.6-1.1 1-1.1h3V.5h-4.33C10.24.5 9.5 3.44 9.5 5.32v2.15h-3v4h3v12h5v-12h3.85l.42-4z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Facebook</span>
</a>

        <a href="https://www.instagram.com/nrjhitmusiconly/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #E4405F; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Instagram</span>
</a>

        <a href="https://www.nrj.fr/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #00ffff; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#000000">
        <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur site web</span>
</a>
    </div>

    <style>
        /* Hover effects pour les boutons */
        .host-biography a:hover {
            transform: scale(1.1);
            box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
        }
        
        .host-biography a:hover span {
            opacity: 1;
        }

        /* Media queries pour le responsive */
        @media (max-width: 768px) {
            .host-biography div[style*="display: flex"] {
                flex-wrap: wrap;
                justify-content: center;
                gap: 15px;
            }
        }
    </style>

    <p style="color: #ffffff; line-height: 1.6; text-align: center; max-width: 1200px; margin: 0 auto;">
    Découvrez "Le Meilleur de la Semaine NRJ", une compilation hebdomadaire incontournable des moments les plus marquants sur NRJ ! Chaque semaine, nous vous proposons un concentré des meilleurs moments, des interviews exclusives, des séquences les plus drôles et des moments forts qui ont rythmé l'antenne. Dans une ambiance dynamique et énergique caractéristique de NRJ, nous vous faisons revivre les instants les plus mémorables de la semaine, des fous rires aux émotions intenses, en passant par les actualités qui ont fait le buzz. Entre moments cultes, séquences hilarantes et interviews passionnantes, "Le Meilleur de la Semaine NRJ" est votre rendez-vous idéal pour ne rien manquer de ce qui fait vibrer la radio la plus écoutée de France !
</p>
    
    <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-top: 30px; padding: 20px;">
        <!-- Les 6 cartes existantes restent inchangées -->
        <!-- Carte 1 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M3 18v-6a9 9 0 0 1 18 0v6"></path>
                <path d="M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z"></path>
            </svg>
            <p style="color: #ffffff; margin: 0;">Écouter gratuitement tous les podcasts en streaming</p>
        </div>

        <!-- Carte 2 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
                <polyline points="7 10 12 15 17 10"></polyline>
                <line x1="12" y1="15" x2="12" y2="3"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Télécharger les épisodes pour une écoute hors-ligne</p>
        </div>

        <!-- Carte 3 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6"></path>
                <line x1="2" y1="20" x2="2" y2="20"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Diffuser sur votre Chromecast ou appareil compatible</p>
        </div>

        <!-- Carte 4 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="12" cy="12" r="10"></circle>
                <polygon points="10 8 16 12 10 16 10 8"></polygon>
            </svg>
            <p style="color: #ffffff; margin: 0;">Accéder à toutes les rediffusions des émissions précédentes</p>
        </div>

        <!-- Carte 5 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
        <circle cx="9" cy="7" r="4"></circle>
        <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
        <path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Écoutez et redécouvrez les meilleurs moments de la semaine sur NRJ. Retrouvez les séquences les plus drôles et les interviews exclusives qui ont marqué votre radio préférée !</p>
</div>

        <!-- Carte 6 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px; position: relative;" onmouseover="this.style.transform='translateY(-5px)'; document.getElementById('live-tooltip').style.opacity='1'" onmouseout="this.style.transform='translateY(0)'; document.getElementById('live-tooltip').style.opacity='0'" onclick="window.location.href='https://radiostreamr.com/radio-france/ecoutez-en-direct-nrj/'">
    <div id="live-tooltip" style="position: absolute; top: -40px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.8); color: #fff; padding: 8px 15px; border-radius: 5px; font-size: 14px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none; border: 1px solid #00ffff; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">
        Cliquez pour écouter en direct NRJ
    </div>
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M4 12h1"></path>
        <path d="M9 12h1"></path>
        <path d="M14 12h1"></path>
        <path d="M19 12h1"></path>
        <rect x="2" y="8" width="20" height="12" rx="2"></rect>
        <path d="M6 8V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v4"></path>
        <circle cx="12" cy="14" r="4"></circle>
        <path d="M12 10v8"></path>
        <path d="M8 14h8"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Écoutez en direct tous les meilleurs moments de NRJ avec Le Meilleur de la Semaine ! Revivez les séquences les plus drôles, les interviews exclusives et tous les moments qui ont marqué votre radio préférée !</p>
    <p>
</p>
</div>
    </div>
</div>
        
        <!-- Histoire de l'émission -->
        <div style="padding: 20px; text-align: center; width: 100%; margin: 0 auto; grid-column: 1 / -1;">
</div>

        <!-- Biographie de Laurent Ruquier -->
        <div style="grid-column: 1 / -1;"></div>

        <!-- Sources (span across both columns) -->
        <div></div>
    </div>
</div>

</div>

    <div id="player-modal" class="modal">
    <div class="modal-content">
        <span class="close" onclick="closeModal()">×</span>
        <div id="player-content">
        </div>
        <button id="chromecast-button" onclick="startChromecast()" style="width: 60px; height: 60px; border-radius: 50%; padding: 0; background-image: url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png'); background-size: 35px; background-position: center; background-repeat: no-repeat; font-size: 0;"></button>
    </div>
    <div id="player-content">
    <style>
        /* Styles existants */
        .modal-content {
            background-color: #1a1a1a;
            padding: 40px;
            border: 2px solid #00ffff;
            width: 90%;
            max-width: 500px;
            max-height: 90vh;
            border-radius: 20px;
            text-align: center;
            box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
            position: fixed; /* Changé de absolute à fixed */
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) !important; /* Ajout de !important */
            overflow-y: auto;
            color: white;
        }

        /* Change la couleur du timing en noir */
        audio::-webkit-media-controls-time-display {
            color: #000000 !important;
        }

        /* Ajout de media queries pour le mobile */
        @media (max-width: 768px) {
            .modal-content {
                padding: 30px;
                width: 95%;
                margin: 0 auto;
                position: fixed;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%) !important;
            }
        }

        @media (max-height: 600px) {
            .modal-content {
                max-height: 85vh;
            }
        }
    </style>
</div>
    </div>

    <div id="fixed-player-bar" class="rtl-podcast-player" style="display: none;">
    <div class="fixed-player-content">
        <h3 id="fixed-player-title"></h3>
        <div class="audio-controls-container" style="display: flex; align-items: center; justify-content: center; gap: 20px; width: 100%; max-width: 800px; margin: 0 auto;">
            <audio id="fixed-player-audio" controls="">
                <source src="" type="audio/mpeg">
            </audio>
            <button onclick="startChromecast()" style="width: 40px; height: 40px; min-width: 40px; border-radius: 50%; padding: 0; background: #ffffff url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png') center/25px no-repeat; border: 2px solid #00ffff; font-size: 0; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">Cast to Chromecast</button>
            <button id="close-fixed-player" onclick="closeFixedPlayer()" style="background: none; border: none; color: #00ffff; font-size: 24px; cursor: pointer; padding: 5px; min-width: 24px; display: flex; align-items: center; justify-content: center;">×</button>
        </div>
    </div>
</div>

    <script>
    (function RTLPodcastPlayer() {
        // Initialize cast api
        window.__onGCastApiAvailable = function(isAvailable) {
            if (!isAvailable) return;

            const initializeCastApi = function() {
                const sessionRequest = new chrome.cast.SessionRequest(chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID);
                const apiConfig = new chrome.cast.ApiConfig(
                    sessionRequest,
                    sessionListener,
                    receiverListener
                );
                chrome.cast.initialize(apiConfig, onInitSuccess, onError);
            };

            const sessionListener = function(session) {
                console.log('Session listener', session);
            };

            const receiverListener = function(availability) {
                console.log('Receiver listener', availability);
            };

            const onInitSuccess = function() {
                console.log('Cast initialization success');
            };

            const onError = function(error) {
                console.error('Cast initialization error', error);
            };

            if (!chrome.cast || !chrome.cast.isAvailable) {
                setTimeout(initializeCastApi, 1000);
            } else {
                initializeCastApi();
            }
        };

        const rssUrl = "https://aod.nrjaudio.fm/xml/2462.xml";
        const proxyUrl = `https://api.rss2json.com/v1/api.json?rss_url=${encodeURIComponent(rssUrl)}&api_key=int3lqiwwrpnsvem6yki0mtwki2f4qcvcxtrlyea&count=150`;
        const episodesPerPage = 4;
        let currentPage = 1;
        let currentAudioUrl = '';
        let totalPages = 0;

        // Ajouter ces variables au début du script
        let currentEpisodeIndex = 0;
        let allEpisodes = [];
        let filteredEpisodes = [];

        fetch(proxyUrl)
            .then(response => response.json())
            .then(data => {
                if (data.status !== "ok") {
                    throw new Error("Erreur de chargement du flux RSS.");
                }
                allEpisodes = data.items;
                filteredEpisodes = [...allEpisodes];
                displayFeaturedEpisode(allEpisodes[0]);
                displayEpisodes(currentPage, filteredEpisodes);
                setupPagination(allEpisodes);
            })
            .catch(error => {
                document.getElementById("featured-episode").innerHTML = "<p>Impossible de charger le flux RSS. Veuillez réessayer plus tard.</p>";
            });

        function truncateDescription(description, maxLength = 180) {
        const tempElement = document.createElement("div");
        tempElement.innerHTML = description;
        let plainText = tempElement.innerText || tempElement.textContent || '';
        if (plainText.length <= maxLength) return plainText.trim();
        return plainText.substring(0, maxLength).trim() + '...';
    }

    function displayFeaturedEpisode(episode) {
        const featuredEpisode = document.getElementById("featured-episode");
        featuredEpisode.innerHTML = `
        <div class="features-episode" style="width: 100%; height: 100%;">
            <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[0].enclosure.link)}', '${sanitizeString(allEpisodes[0].title)}')">
                <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[0].title)}</h3>
                ${allEpisodes[0].thumbnail ? `<img decoding="async" src="${allEpisodes[0].thumbnail}" alt="Image de la dernière émission">` : ""}
                <div class="description" style="color: white;">${truncateDescription(allEpisodes[0].description)}</div>
                <div class="date-badge">
                    ${new Date(allEpisodes[0].pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button></button>
            </div>
            
            <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[1].enclosure.link)}', '${sanitizeString(allEpisodes[1].title)}')">
                <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[1].title)}</h3>
                ${allEpisodes[1].thumbnail ? `<img decoding="async" src="${allEpisodes[1].thumbnail}" alt="Image de l'avant-dernière émission">` : ""}
                <div class="description" style="color: white;">${truncateDescription(allEpisodes[1].description)}</div>
                <div class="date-badge">
                    ${new Date(allEpisodes[1].pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button></button>
            </div>
        </div>
        `;
    }

    function displayEpisodes(page, episodes) {
        const episodeGrid = document.getElementById("episode-grid");
        episodeGrid.innerHTML = "";
        const episodesWithoutFeatured = episodes.slice(2);
        const start = (page - 1) * episodesPerPage;  
        const end = start + episodesPerPage;
        
        episodesWithoutFeatured.slice(start, end).forEach(item => {
            episodeGrid.innerHTML += `
            <div class="episode">
                <h5 style="color: #00ffff;">${sanitizeString(item.title)}</h5>
                ${item.thumbnail ? `<img decoding="async" src="${item.thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 150px;">` : ""}
                <div class="description" style="color: white;">${truncateDescription(item.description)}</div>
                <div class="date-badge">
                    ${new Date(item.pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button onclick="openModal('${sanitizeString(item.enclosure.link)}', '${sanitizeString(item.title)}')"></button>
            </div>
            `;
        });
        updatePaginationButtons();
    }

    function setupPagination(episodes) {
        totalPages = Math.ceil((episodes.length - 2) / episodesPerPage);
        const pageNumbers = document.getElementById("page-numbers");
        pageNumbers.innerHTML = "";

        let start = currentPage;
        if (currentPage === totalPages) {
            start = totalPages - 2;
        } else if (currentPage === 1) {
            start = 1;
        } else {
            start = currentPage - 1;
        }

        start = Math.max(1, start);
        
        for (let i = start; i < start + 3 && i <= totalPages; i++) {
            const button = document.createElement("button");
            button.textContent = i;
            button.addEventListener("click", () => {
                currentPage = i;
                displayEpisodes(currentPage, episodes);
                setupPagination(episodes);
            });
            pageNumbers.appendChild(button);
        }

        window.changePage = function(direction) {
            if (direction === 'prev' && currentPage > 1) {
                currentPage--;
            } else if (direction === 'next' && currentPage < totalPages) {
                currentPage++;
            }
            displayEpisodes(currentPage, filteredEpisodes);
            setupPagination(episodes);
            updatePaginationButtons();
        }

        updatePaginationButtons();
    }

    function updatePaginationButtons() {
        const prevBtn = document.getElementById('prev-btn');
        const nextBtn = document.getElementById('next-btn');
        
        prevBtn.disabled = currentPage === 1;
        nextBtn.disabled = currentPage === totalPages;
        
        prevBtn.style.opacity = currentPage === 1 ? '0.5' : '1';
        nextBtn.style.opacity = currentPage === totalPages ? '0.5' : '1';
        
        const pageButtons = document.querySelectorAll('#page-numbers button');
        pageButtons.forEach((button, index) => {
            if (index + 1 === currentPage) {
                button.style.backgroundColor = '#00ffff';
                button.style.color = '#000';
            } else {
                button.style.backgroundColor = '#1a1a1a';
                button.style.color = '#00ffff';
            }
        });
    }

    function sanitizeString(str) {
        return str.replace(/['"\\<>]/g, "");
    }

    window.openModal = function(audioUrl, title) {
        const playerContent = document.getElementById("player-content");
        const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
        const thumbnail = currentEpisode?.thumbnail;
        
        playerContent.innerHTML = `
            <h2>${title}</h2>
            ${thumbnail ? `<img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0;">` : ''}
            <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
                <source src="${audioUrl}" type="audio/mpeg">
                Votre navigateur ne supporte pas la lecture audio.
            </audio>
        `;
        
        currentAudioUrl = audioUrl;
        document.getElementById("player-modal").style.display = "block";
        window.currentEpisodeTitle = title;
        
        const modalAudio = document.getElementById('modal-audio');
        modalAudio.addEventListener('play', () => {
            window.isPlaying = true;
        });
        modalAudio.addEventListener('pause', () => {
            window.isPlaying = false;
        });
    }

    window.closeModal = function() {
        const modalAudio = document.getElementById('modal-audio');
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        const fixedPlayerTitle = document.getElementById('fixed-player-title');
        
        if (window.isPlaying) {
            modalAudio.pause();
            fixedPlayerBar.style.display = 'block';
            fixedPlayerTitle.textContent = window.currentEpisodeTitle;
            fixedPlayerAudio.src = currentAudioUrl;
            fixedPlayerAudio.currentTime = modalAudio.currentTime;
            fixedPlayerAudio.play();
        }
        
        document.getElementById("player-modal").style.display = "none";
    }

    window.closeFixedPlayer = function() {
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        fixedPlayerAudio.pause();
        fixedPlayerBar.style.display = 'none';
    }

    window.startChromecast = function() {
        if (!chrome.cast || !chrome.cast.isAvailable) {
            console.log('Cast API not available');
            return;
        }

        chrome.cast.requestSession(
            function(session) {
                if (currentAudioUrl) {
                    const mediaInfo = new chrome.cast.media.MediaInfo(currentAudioUrl, 'audio/mpeg');
                    mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();
                    mediaInfo.metadata.title = document.querySelector('#player-content h2').textContent;

                    const request = new chrome.cast.media.LoadRequest(mediaInfo);
                    session.loadMedia(request).then(
                        () => console.log('Lecture Chromecast démarrée'),
                        errorCode => console.error('Erreur Chromecast: ' + errorCode)
                    );
                }
            },
            function(error) {
                console.error('Erreur lors de la création de la session:', error);
            }
        );
    }

        window.shareOnX = function() {
            const text = "Écoutez les podcasts : Prime Vidéo News animé par Louis Daubé de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}&url=${encodeURIComponent(url)}`, '_blank');
        };

        window.shareOnWhatsapp = function() {
            const text = "Écoutez les podcasts : Prime Vidéo News animé par Louis Daubé de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://wa.me/?text=${encodeURIComponent(text + ' ' + url)}`, '_blank');
        };

        window.shareOnFacebook = function() {
          const text = "Écoutez les podcasts : Prime Vidéo News animé par Louis Daubé de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(url)}`, '_blank');
        };

        window.shareOnLinkedIn = function() {
          const text = "Écoutez les podcasts : Prime Vidéo News animé par Louis Daubé de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(url)}`, '_blank');
        };

        window.filterAndDisplayEpisodes = function() {
            const searchTerm = document.getElementById('podcast-search').value.toLowerCase();
            const filterValue = document.getElementById('podcast-filter').value;
            
            // Filter episodes based on search term
            filteredEpisodes = allEpisodes.filter(episode => 
                episode.title.toLowerCase().includes(searchTerm) || 
                episode.description.toLowerCase().includes(searchTerm)
            );
            
            // Sort episodes based on filter value
            if (filterValue === 'oldest') {
                filteredEpisodes.sort((a, b) => new Date(a.pubDate) - new Date(b.pubDate));
            } else {
                filteredEpisodes.sort((a, b) => new Date(b.pubDate) - new Date(a.pubDate));
            }
            
            // Reset pagination to first page when filtering
            currentPage = 1;
            
            // Update display
            if (filteredEpisodes.length > 0) {
                displayFeaturedEpisode(filteredEpisodes[0]);
                displayEpisodes(currentPage, filteredEpisodes);
                setupPagination(filteredEpisodes);
            } else {
                // Handle no results
                document.getElementById('episode-grid').innerHTML = '<p style="color: #fff; text-align: center; grid-column: 1/-1;">Aucun résultat trouvé</p>';
                document.getElementById('page-numbers').innerHTML = '';
            }
        }
    })();
</script>
</div></div></div></body></html>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-551c4bf e-con-full e-flex e-con e-parent" data-id="551c4bf" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-9371460 elementor-widget elementor-widget-shortcode" data-id="9371460" data-element_type="widget" data-widget_type="shortcode.default">
				<div class="elementor-widget-container">
							<div class="elementor-shortcode"></div>
						</div>
				</div>
				</div>
				</div>
		<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-le-meilleur-de-la-semaine-nrj/">🗣️ Podcast et replay &#8211; Le Meilleur de la Semaine sur NRJ &#8211;</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://radiostreamr.com/radio-france/podcast-le-meilleur-de-la-semaine-nrj/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; Camille Combal sur NRJ</title>
		<link>https://radiostreamr.com/radio-france/podcast-camille-combal-sur-nrj/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-camille-combal-sur-nrj/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 18 Nov 2024 20:45:29 +0000</pubDate>
				<category><![CDATA[NRJ]]></category>
		<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1362</guid>

					<description><![CDATA[<p>Camille Combal sur NRJ &#8211; Écoutez en rediffusion tous les podcasts NRJ Plus récentsPlus anciens Publicité L&#8217;émission de Camille Combal sur NRJ &#8211; Toutes vos rediffusions Voir leur Facebook Voir leur Instagram Voir leur site web Retrouvez Camille Combal chaque jour sur NRJ pour des moments uniques de rire et de bonne humeur ! Animateur [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-camille-combal-sur-nrj/">🗣️ Podcast et replay &#8211; Camille Combal sur NRJ</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1362" class="elementor elementor-1362" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-dce457e e-con-full e-flex e-con e-parent" data-id="dce457e" data-element_type="container">
				<div class="elementor-element elementor-element-9f9be1c 1995 elementor-widget elementor-widget-html" data-id="9f9be1c" data-element_type="widget" id="1995" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<!DOCTYPE html><html><head><meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&amp;display=swap" rel="stylesheet">
<style>
    .rtl-podcast-player * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: 'Roboto', sans-serif;
    }

  .rtl-podcast-player #pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: 100% !important;
}

@keyframes gradientBG {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.rtl-podcast-player body {
    background: linear-gradient(-45deg, #0a192f, #172a45, #1a365d, #102235);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    min-height: 100vh;
    display: flex;
    align-items: center;
    color: #fff;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
}

    .rtl-podcast-player .container {
        display: grid;
        grid-template-columns: 1.2fr 2.8fr;
        gap: 20px;
        margin: 0 auto;
        padding: 50px 150px !important;
        width: 100%;
        background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
        background-size: 400% 400%;
        animation: gradientBG 15s ease infinite;
        border-radius: 0;
        box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);
    }


    @media (max-width: 1024px) {
        .rtl-podcast-player .container {
            padding: 30px 45px;
            grid-template-columns: 1fr 2fr;
        }
        
        .rtl-podcast-player h1 {
            font-size: 2em;
        }
    }


    @media (max-width: 768px) {
        .rtl-podcast-player .container {
            padding: 20px !important; /* Override padding */
            margin: 0 !important; /* Reset margin */
            width: 100% !important;
            max-width: 100% !important;
            grid-template-columns: 1fr;
            overflow-x: hidden; /* Prevent horizontal scroll */
        }
        
        .rtl-podcast-player #episode-grid,
        .rtl-podcast-player .episode,
        .rtl-podcast-player #featured-episode,
        .rtl-podcast-player .host-biography,
        .rtl-podcast-player .social-share-buttons {
            width: 100% !important;
            margin-left: auto !important;
            margin-right: auto !important;
            padding: 15px !important;
        }
        
        .rtl-podcast-player h1,
        .rtl-podcast-player h2,
        .rtl-podcast-player p {
            padding-left: 10px !important;
            padding-right: 10px !important;
            text-align: center;
        }

        .rtl-podcast-player #episode-grid {
            grid-template-columns: 1fr !important; /* Force single column */
            gap: 20px;
        }
        
        .rtl-podcast-player .episode {
            width: 100% !important;
            margin: 0 auto !important;
        }
    }


@media (max-width: 480px) {
    .rtl-podcast-player .container {
        padding: 10px !important;
    }
    
    .rtl-podcast-player #featured-episode,
    .rtl-podcast-player .episode {
        padding: 15px !important;
        width: 100% !important;
        margin: 0 auto !important;
    }
}

.rtl-podcast-player h1 {
    color: #00ffff;
    text-align: center;
    font-size: 2.3em;
    margin-bottom: 40px;
    font-weight: 700;
    width: 100%;
    grid-column: 1 / -1;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.3);
}

  #fixed-player-bar {
        display: flex;               /* Assure l'affichage en flex */
        flex-direction: column;       /* Organisation en colonne */
        align-items: center;          /* Centre les éléments */
        padding: 10px;
        gap: 10px;                    /* Espace entre chaque ligne */
        background: rgba(26, 26, 26, 0.95); /* Conserve l’arrière-plan */
        display: none;                /* Masqué par défaut */
    }

    /* Ligne 1 : Titre de l'épisode */
    #fixed-player-title {
        display: block;               /* Force l'affichage sur une ligne complète */
        text-align: center;
        font-size: 1.2em;
        color: #00ffff;
        width: 100%;                  /* Prend la largeur complète */
    }

    /* Ligne 2 : Player audio */
    #fixed-player-audio {
        display: block;               /* Force l'affichage sur une ligne complète */
        width: 100%;
    }

    /* Ligne 3 : Conteneur pour les boutons Chromecast et fermeture */
    .audio-controls-container {
        display: flex;
        justify-content: center;
        gap: 20px;
        width: 100%;                  /* Assure une disposition sur toute la largeur */
    }

    /* Styles des boutons */
    #chromecast-button, #close-fixed-player {
        width: 40px;
        height: 40px;
        border: none;
        cursor: pointer;
    }
}

  @media (max-width: 768px) {
    .rtl-podcast-player h1 {
        margin-top: 0px !important; /* Ajustez la valeur selon vos besoins */
    }
}
  
.rtl-podcast-player #featured-episode {
    /* Remplacer ces styles */
    display: flex;
    flex-direction: column;
    height: 100%; /* Ajout de cette ligne */
    padding: 30px;
    border-radius: 15px;
    background-color: transparent;
    color: #ffffff;
    transition: all 0.3s ease;
}

.rtl-podcast-player #featured-episode:hover {
    transform: translateY(-5px);
}

.rtl-podcast-player #featured-episode h3 {
    color: #00ffff;
    margin-bottom: 15px;
    font-weight: 500;
}

.rtl-podcast-player #featured-episode button, .rtl-podcast-player .episode button {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    padding: 0;
    background-image: url('https://static.vecteezy.com/system/resources/thumbnails/017/196/540/small/3d-play-button-icon-transparent-background-free-png.png');
    background-size: 35px;
    background-position: center;
    background-repeat: no-repeat;
    font-size: 0;
    position: relative;
}

    .rtl-podcast-player .date-badge {
        background: rgba(0, 255, 255, 0.1);
        border: 2px solid #00ffff;
        border-radius: 8px;
        padding: 8px 15px;
        color: #00ffff;
        font-weight: bold;
        text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
        box-shadow: 
            0 0 5px rgba(0, 255, 255, 0.2),
            0 0 10px rgba(0, 255, 255, 0.2),
            0 0 15px rgba(0, 255, 255, 0.2),
            0 0 20px rgba(0, 255, 255, 0.2);
        animation: neonPulse 1.5s ease-in-out infinite;
        margin: 15px auto 20px auto; /* Increased bottom margin */
        display: block; /* Changed from inline-block to block */
        width: fit-content;
    }

    @keyframes neonPulse {
        0%, 100% {
            box-shadow: 
                0 0 5px rgba(0, 255, 255, 0.2),
                0 0 10px rgba(0, 255, 255, 0.2),
                0 0 15px rgba(0, 255, 255, 0.2),
                0 0 20px rgba(0, 255, 255, 0.2);
        }
        50% {
            box-shadow: 
                0 0 10px rgba(0, 255, 255, 0.4),
                0 0 20px rgba(0, 255, 255, 0.4),
                0 0 30px rgba(0, 255, 255, 0.4),
                0 0 40px rgba(0, 255, 255, 0.4);
        }
    }


.rtl-podcast-player #featured-episode img,
.rtl-podcast-player .episode img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .modal-content img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .episode button:hover::after,
.rtl-podcast-player #featured-episode button:hover::after {
    content: "Ecouter ce podcast";
    position: absolute;
    bottom: -35px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 14px;
    white-space: nowrap;
    z-index: 1000;
}

.rtl-podcast-player #featured-episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #episode-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

    .rtl-podcast-player .episode {
        padding: 20px;
        border-radius: 15px;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.1);
        text-align: center;
        background-color: #1a1a1a;
        transition: all 0.3s ease;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .rtl-podcast-player .episode p {
        color: #ffffff;
    }


.rtl-podcast-player .episode:hover {
    box-shadow: 0 0 20px rgba(0, 255, 255, 0.2);
    transform: translateY(-3px);
}

.rtl-podcast-player .episode h5 {
    margin-bottom: 10px;
    color: #00ffff;
}

.rtl-podcast-player .episode a {
    color: #00ffff;
    text-decoration: none;
}

    .rtl-podcast-player .episode button:hover {
        background-color: #00cccc;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
    }
    
    .search-filter-container {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 15px;
        margin-bottom: 30px;
        width: 100%;
    }

    .search-filter-container input,
    .search-filter-container select {
        padding: 10px 15px;
        border: 2px solid #00ffff;
        border-radius: 8px;
        background: rgba(0, 0, 0, 0.3);
        color: #fff;
        font-size: 16px;
        width: 200px;
    }

    .search-filter-container input::placeholder {
        color: rgba(255, 255, 255, 0.6);
    }

    .search-filter-container input:focus,
    .search-filter-container select:focus {
        outline: none;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
    }

    .search-filter-container select {
        cursor: pointer;
    }

    .search-filter-container select option {
        background-color: #1a1a1a;
        color: #fff;
    }

    @media (max-width: 768px) {
        .search-filter-container {
            flex-direction: column;
            gap: 10px;
        }

        .search-filter-container input,
        .search-filter-container select {
            width: 100%;
            max-width: 300px;
        }
    }

    color: #000;
    border: none;
    padding: 8px 20px;
    border-radius: 20px;
    cursor: pointer;
    font-weight: 500;
    transition: all 0.3s ease;
    margin-top: 10px; /* Add space above button */
    display: block; /* Ensure block-level display */
    margin-left: auto;
    margin-right: auto;
}

.rtl-podcast-player .episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player .pagination {
    text-align: center !important;
    margin-top: 30px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: auto !important;
}

  .rtl-podcast-player #page-numbers {
    display: flex !important;
    gap: 5px !important;
    margin: 0 5px !important;
}
  
.rtl-podcast-player .pagination button,
.rtl-podcast-player .pagination #prev-btn,
.rtl-podcast-player .pagination #next-btn {
    margin: 0 !important;  /* Changé de 5px à 0 */
    padding: 8px 16px;
    font-size: 1em;
    background-color: #1a1a1a;
    color: #00ffff;
    border: 1px solid #00ffff;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s ease;
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.rtl-podcast-player .pagination button:hover {
    background-color: #00ffff;
    color: #000;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
}

.rtl-podcast-player .modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(8px);
}

.rtl-podcast-player .modal-content {
    background-color: #1a1a1a;
    padding: 40px;
    border: 2px solid #00ffff;
    width: 90%;
    max-width: 500px;
    max-height: 90vh;
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    overflow-y: auto;
    color: white;
}

.rtl-podcast-player .close {
    position: absolute;
    top: 10px;
    right: 20px;
    color: #00ffff;
    font-size: 35px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.3s;
}

.rtl-podcast-player .close:hover {
    color: #00cccc;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #chromecast-button {
    background-color: #00ffff;
    border: none;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
    color: #000;
    margin-top: 20px;
    font-weight: bold;
    display: inline-block;
}

.rtl-podcast-player audio::-webkit-media-controls-panel {
    background-color: #2a2a2a;
}

.rtl-podcast-player audio::-webkit-media-controls-current-time-display,
.rtl-podcast-player audio::-webkit-media-controls-time-remaining-display {
    color: #000000;
}

.rtl-podcast-player #fixed-player-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(26, 26, 26, 0.95);
    backdrop-filter: blur(10px);
    padding: 10px 20px;
    z-index: 999;
    border-top: 2px solid #00ffff;
}

.rtl-podcast-player .fixed-player-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    gap: 20px;
}


.rtl-podcast-player #fixed-player-title {
    color: #00ffff;
    font-size: 1em;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.rtl-podcast-player #fixed-player-audio {
    flex: 2;
    max-width: 500px;
}

.episode-card {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(0, 255, 255, 0.3);
    border-radius: 15px;
    padding: 20px;
    margin-bottom: 20px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.episode-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 255, 255, 0.2);
}

.episode-card img {
    width: 100%;
    max-width: 200px;
    border-radius: 10px;
    margin: 10px 0;
}

.episode-card button {
    margin-top: 10px;
}
  
/* Conserve les styles des boutons play et mute */
audio::-webkit-media-controls-play-button,
audio::-webkit-media-controls-mute-button {
    background-color: #40E0D0 !important; /* Bleu turquoise */
    border-radius: 50% !important;
    transition: all 0.3s ease !important;
}

audio::-webkit-media-controls-play-button:hover,
audio::-webkit-media-controls-mute-button:hover {
    background-color: #5FECEC !important; /* Bleu turquoise plus clair au survol */
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5) !important;
}

/* Tentative pour changer la couleur du trait de progression */
audio::-webkit-media-controls-timeline {
    color: #a6a6a6 !important; /* Essaye de cibler le trait turquoise */
}

/* Modifie la couleur des trois petits points */
audio::-webkit-media-controls-panel {
    background-color: transparent !important; /* Assure que le fond ne prend pas de couleur */
    color: #40E0D0 !important; /* Forcer la couleur turquoise pour les trois points */
}

/* Tentative supplémentaire pour cibler le trait du curseur de progression */
audio::-webkit-slider-runnable-track {
    background-color: #40E0D0 !important; /* Bleu turquoise pour la piste */
}

audio::-webkit-slider-thumb {
    background-color: #a6a6a6 !important; /* Plus clair pour le curseur lui-même */
}


@media (max-width: 768px) {
    .rtl-podcast-player .fixed-player-content {
        flex-direction: column;
        gap: 10px;
        padding: 15px;
    }

    .rtl-podcast-player #fixed-player-audio {
        width: 100%;
        max-width: 100%;
    }

    .rtl-podcast-player #fixed-player-title {
        width: 100%;
        text-align: center;
        font-size: 0.9em;
    }
}

.rtl-podcast-player .social-button {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease-in-out;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.rtl-podcast-player .social-button:hover {
    transform: scale(1.1);
}

@media (max-width: 768px) {
    .rtl-podcast-player .social-share-buttons {
        gap: 10px;
    }
    
    .rtl-podcast-player .social-button {
        width: 40px;
        height: 40px;
    }
    
    .rtl-podcast-player .social-button svg {
        width: 20px;
        height: 20px;
    }
}

.navigation-buttons {
    position: absolute;
    width: 100%;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 10px;
    pointer-events: none;
    z-index: 1000;
}

.nav-button {
    background: rgba(0, 0, 0, 0.7);
    border: 2px solid #00ffff;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    pointer-events: auto;
}  

.nav-button:hover {
    background: rgba(0, 255, 255, 0.2);
    transform: scale(1.1);
}

.nav-button svg {
    width: 24px;
    height: 24px;
}

@media (max-width: 768px) {
    .nav-button {
        width: 35px;
        height: 35px;
    }
    
    .nav-button svg {
        width: 20px;
        height: 20px;
    }
}
</style>
<script type="text/javascript" src="//www.gstatic.com/cv/js/sender/v1/cast_sender.js"></script>

</head><body>
<div class="rtl-podcast-player">
    <div class="container" style="background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    border-radius: 0; /* Changed from 20px to 0 */
    box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);">
    <h1 style="color: #00ffff; text-align: center; font-size: 2.1em; margin-bottom: 40px; font-weight: 700; width: 100%; grid-column: 1 / -1; text-shadow: 0 0 10px rgba(0, 255, 255, 0.3); padding: 0 15px; display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap;">
Camille Combal sur NRJ - Écoutez en rediffusion tous les podcasts NRJ
<img decoding="async" src="https://cdn.uc.assets.prezly.com/b1be11c1-7593-48e0-b0d3-dfedd93ef5a2/-/inline/no/Newsroom+Icon-NRJ.png" alt="Logo Europe 1" style="width: 60px; height: 60px; border-radius: 50%; padding: 5px; background: white; box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);">
</h1>
    <div class="social-share-buttons" style="display: flex; justify-content: center; align-items: center; gap: 15px; margin-bottom: 30px; width: 100%; grid-column: 1 / -1;">
    <button onclick="shareOnX()" class="social-button" style="background-color: #000;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnWhatsapp()" class="social-button" style="background-color: #25D366;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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.298-.347.446-.52.149-.174.198-.298.298-.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>
        </svg>
    </button>
    <button onclick="shareOnFacebook()" class="social-button" style="background-color: #1877F2;">  
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnLinkedIn()" class="social-button" style="background-color: #0A66C2;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
</div>
      
    <div id="featured-episode" style="display: flex; flex-direction: column; align-items: center; text-align: center; justify-content: space-between; gap: 20px; height: 100%; position: relative; padding-top: 20px; cursor: pointer;">
  <div class="features-episode" style="width: 100%; height: 100%;">
    <!-- Première carte (dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
            
    <!-- Deuxième carte (avant-dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
  </div>
</div>
    <div>
    <div class="search-filter-container">
        <input type="text" id="podcast-search" placeholder="Rechercher un podcast..." oninput="filterAndDisplayEpisodes()">
        <select id="podcast-filter" onchange="filterAndDisplayEpisodes()">
            <option value="newest">Plus récents</option>
            <option value="oldest">Plus anciens</option>
        </select>
    </div>
    <div id="episode-grid">
        <style>
            .episode {
                cursor: pointer;
            }
            
            .episode > * {
                pointer-events: none;
            }
            
            .episode button {
                pointer-events: auto;
            }
        </style>
    </div>
    <div class="pagination" id="pagination">
    <button id="prev-btn" onclick="changePage('prev')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M15 18l-6-6 6-6"></path>
        </svg>
    </button>
    <span id="page-numbers"></span>
    <button id="next-btn" onclick="changePage('next')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M9 18l6-6-6-6"></path>
        </svg>
    </button>
</div>

      <div class="ad-banner" style="width: 100%; max-width: 508px; margin: 20px auto; text-align: center; grid-column: 1 / -1; background: rgba(0,0,0,0.3); padding: 15px; border-radius: 10px; border: 1px solid rgba(0, 255, 255, 0.2); transition: transform 0.3s ease;">
    <p style="color: #666; font-size: 12px; margin-bottom: 10px;">Publicité</p>
    <a href="https://universal-academy.com/recruter-des-alternants-dans-le-tourisme/" target="_blank" style="display: inline-block;">
        <img decoding="async" src="https://radiostreamr.com/radio-france/wp-content/uploads/2024/11/Design-sans-titre-2024-11-06T134332.299.webp" alt="Bannière publicitaire RTL" style="width: 100%; max-width: 700px; height: auto; border-radius: 8px; transition: transform 0.3s ease;" onmouseover="this.style.transform='scale(1.02)'" onmouseout="this.style.transform='scale(1)'">
    </a>
</div>

    <script>
        // Ajouter un event listener pour les cartes d'épisodes
        document.getElementById('episode-grid').addEventListener('click', (e) => {
            const episodeCard = e.target.closest('.episode');
            if (episodeCard) {
                // Trouver le bouton dans la carte et simuler un clic dessus
                const button = episodeCard.querySelector('button');
                if (button) {
                    button.click();
                }
            }
        });
    </script>
</div>
    
    <div class="host-biography" style="grid-column: 1 / -1; background: rgba(0, 0, 0, 0.3); padding: 30px; border-radius: 15px; margin-top: 30px; border: 1px solid rgba(0, 255, 255, 0.2);">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
        <!-- Media query pour passer en une colonne sur mobile -->
        <style>
            @media (max-width: 768px) {
                .host-biography > div {
                    grid-template-columns: 1fr !important;
                }
            }
        </style>

      <div class="host-biography" style="grid-column: 1 / -1; padding: 30px; border-radius: 15px; margin-top: 30px;">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
      <div style="grid-column: 1 / -1; margin-bottom: 30px; text-align: center;">
    <div style="color: #ffffff; line-height: 1.6; text-align: center;">
    <h2 style="color: #00ffff; margin-bottom: 20px; text-align: center;">L'émission de Camille Combal sur NRJ - Toutes vos rediffusions</h2>
</div>

    <!-- Nouveaux boutons de réseaux sociaux -->
    <div style="display: flex; justify-content: center; align-items: center; gap: 20px; margin: 20px 0;">
        <a href="https://www.facebook.com/nrjradio/?locale=fr_FR" target="_blank" style="position: relative; width: 50px; height: 50px; background: #1877F2; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M18.77 7.46H14.5v-1.9c0-.9.6-1.1 1-1.1h3V.5h-4.33C10.24.5 9.5 3.44 9.5 5.32v2.15h-3v4h3v12h5v-12h3.85l.42-4z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Facebook</span>
</a>

        <a href="https://www.instagram.com/nrjhitmusiconly/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #E4405F; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Instagram</span>
</a>

        <a href="https://www.nrj.fr/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #00ffff; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#000000">
        <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur site web</span>
</a>
    </div>

    <style>
        /* Hover effects pour les boutons */
        .host-biography a:hover {
            transform: scale(1.1);
            box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
        }
        
        .host-biography a:hover span {
            opacity: 1;
        }

        /* Media queries pour le responsive */
        @media (max-width: 768px) {
            .host-biography div[style*="display: flex"] {
                flex-wrap: wrap;
                justify-content: center;
                gap: 15px;
            }
        }
    </style>

    <p style="color: #ffffff; line-height: 1.6; text-align: center; max-width: 1200px; margin: 0 auto;">
    Retrouvez Camille Combal chaque jour sur NRJ pour des moments uniques de rire et de bonne humeur ! Animateur phare de la station, Camille apporte son énergie débordante et son humour décalé dans une émission qui ne ressemble à aucune autre. Entre sketchs délirants, interactions avec les auditeurs, défis improbables et discussions endiablées, Camille Combal crée une ambiance festive et décontractée qui fait le bonheur des auditeurs. Son style unique, mêlant spontanéité et réparties hilarantes, a su conquérir le cœur du public. Que ce soit pour ses imitations loufoques, ses jeux déjantés ou ses chroniques décalées, Camille transforme chaque émission en un véritable show qui donne le sourire aux auditeurs. Une émission incontournable qui fait de chaque journée un moment de pure détente et de divertissement sur NRJ !
</p>
    
    <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-top: 30px; padding: 20px;">
        <!-- Les 6 cartes existantes restent inchangées -->
        <!-- Carte 1 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M3 18v-6a9 9 0 0 1 18 0v6"></path>
                <path d="M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z"></path>
            </svg>
            <p style="color: #ffffff; margin: 0;">Écouter gratuitement tous les podcasts en streaming</p>
        </div>

        <!-- Carte 2 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
                <polyline points="7 10 12 15 17 10"></polyline>
                <line x1="12" y1="15" x2="12" y2="3"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Télécharger les épisodes pour une écoute hors-ligne</p>
        </div>

        <!-- Carte 3 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6"></path>
                <line x1="2" y1="20" x2="2" y2="20"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Diffuser sur votre Chromecast ou appareil compatible</p>
        </div>

        <!-- Carte 4 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="12" cy="12" r="10"></circle>
                <polygon points="10 8 16 12 10 16 10 8"></polygon>
            </svg>
            <p style="color: #ffffff; margin: 0;">Accéder à toutes les rediffusions des émissions précédentes</p>
        </div>

        <!-- Carte 5 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
        <circle cx="9" cy="7" r="4"></circle>
        <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
        <path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
    </svg>
    <p style="color: #ffffff;">Rejoignez Camille Combal chaque jour sur NRJ pour un moment unique de rire et de bonne humeur avec les meilleurs moments de son émission !</p>
</div>

        <!-- Carte 6 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px; position: relative;" onmouseover="this.style.transform='translateY(-5px)'; document.getElementById('live-tooltip').style.opacity='1'" onmouseout="this.style.transform='translateY(0)'; document.getElementById('live-tooltip').style.opacity='0'" onclick="window.location.href='https://radiostreamr.com/radio-france/ecoutez-en-direct-nrj/'">
    <div id="live-tooltip" style="position: absolute; top: -40px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.8); color: #fff; padding: 8px 15px; border-radius: 5px; font-size: 14px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none; border: 1px solid #00ffff; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">
        Cliquez pour écouter en direct NRJ
    </div>
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M4 12h1"></path>
        <path d="M9 12h1"></path>
        <path d="M14 12h1"></path>
        <path d="M19 12h1"></path>
        <rect x="2" y="8" width="20" height="12" rx="2"></rect>
        <path d="M6 8V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v4"></path>
        <circle cx="12" cy="14" r="4"></circle>
        <path d="M12 10v8"></path>
        <path d="M8 14h8"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Écoutez en direct NRJ et retrouvez chaque jour l'émission de Camille Combal pour des moments uniques avec des défis délirants et une bonne humeur assurée!</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;">
    Du lundi au vendredi de 16h à 19h
</p>
</div>
    </div>
</div>
        
        <!-- Histoire de l'émission -->
        <div style="padding: 20px; text-align: center;">
    <h2 style="color: #00ffff; margin-bottom: 20px; text-align: center;">L'Histoire de l'émission de Camille Combal sur NRJ</h2>
    <p style="color: #ffffff; line-height: 1.6; text-align: center;">
        Camille Combal est devenu l'une des figures incontournables de NRJ avec son émission quotidienne. Avec son style unique et son humour décapant, il a su créer un rendez-vous radio qui sort des sentiers battus.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        Chaque jour, Camille propose aux auditeurs un cocktail explosif de divertissement : des défis improbables, des jeux délirants, des imitations loufoques et des discussions endiablées qui créent une ambiance festive et décontractée unique sur les ondes.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        Son émission est devenue un rendez-vous privilégié pour des millions d'auditeurs qui retrouvent quotidiennement sa bonne humeur communicative et son énergie débordante. Entre fous rires garantis et moments de pure folie radiophonique, Camille Combal sur NRJ apporte une touche de fraîcheur et d'originalité dans le paysage radiophonique français !
    </p>
    <div style="margin-top: 20px;">
        <img decoding="async" src="https://media.ouest-france.fr/v1/pictures/f9433cf433cdba8dede2aff4741b12a1-7984139.jpg?width=1260&amp;client_id=eds&amp;sign=bd9cf50f66ed52d4827471436c9e2ecead386d7cec096d78c430286e18744b72" alt="Studio On marche sur la tête" style="width: 100%; max-width: 400px; border-radius: 15px; box-shadow: 0 0 20px rgba(0, 255, 255, 0.3);">
    </div>
</div>

        <!-- Biographie de Laurent Ruquier -->
        <div style="display: flex; flex-direction: column; align-items: center; gap: 20px;">
    <div style="width: 200px; height: 200px; border-radius: 50%; overflow: hidden; border: 3px solid #00ffff;">
        <img decoding="async" src="https://image.20min.ch/2024/10/01/e308f676-5464-452f-96e3-02163afa6406.jpeg?auto=format%2Ccompress%2Cenhance&amp;fit=max&amp;w=1200&amp;h=1200&amp;rect=0%2C0%2C2038%2C3055&amp;s=3381a1d2e8540b5910f14b7c77312de3" alt="Louis Daubé portrait photo" style="width: 100%; height: 100%; object-fit: cover;">
    </div>
    <div style="text-align: center;">
        <h2 style="color: #00ffff; margin-bottom: 20px;"><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f399.png" alt="🎙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Camille Combal sur NRJ : Qui est l'animateur ? Sa biographie, son parcours et toutes les rediffusions de son émission en podcasts</h2>
        <p style="color: #ffffff; line-height: 1.8;">
    Né le 18 octobre 1981 à Gap dans les Hautes-Alpes, Camille Combal fait ses débuts à la radio en 2003 sur NRJ Marseille. Après des passages sur Rire et Chansons et Fun Radio, il rejoint Virgin Radio en 2008 où il anime pendant 4 ans le Virgin Tonic. Sa carrière télévisuelle démarre en 2006 sur Direct 8 avec l'émission "En Direct de mon canapé". Il se fait remarquer sur Canal+ aux côtés de Jean-Michel Aphatie dans "La Matinale" (2012), puis comme chroniqueur dans "Touche pas à mon poste !" sur C8 (2012-2018). En 2018, il quitte le groupe Canal+ pour TF1 où il présente notamment "Danse avec les stars", "Mask Singer" et "Une famille en or". Depuis 2022, il anime quotidiennement sur NRJ "Camille &amp; Images", une émission mêlant humour, musique et divertissement, diffusée de 16h à 19h. Son style décalé et son humour singulier en ont fait l'une des personnalités préférées des Français.
</p>
    </div>
</div>

        <!-- Sources (span across both columns) -->
        <div style="grid-column: 1 / -1; margin-top: 20px; padding: 15px; background: rgba(0, 0, 0, 0.2); border-radius: 10px; text-align: center;">
    <h3 style="color: #00ffff; margin-bottom: 10px; font-size: 1.2em;">Sources :</h3>
    <ul style="list-style: none; padding: 0; text-align: center; display: flex; justify-content: center; gap: 20px; flex-wrap: wrap;">
        <li>
            <a href="https://www.instagram.com/camillecombal/?hl=fr" target="_blank" style="color: #00ffff; text-decoration: none; transition: all 0.3s; padding: 5px 10px; border-radius: 5px; display: inline-block; &amp;:hover { background: rgba(0, 255, 255, 0.1); transform: translateY(-2px); box-shadow: 0 0 15px rgba(0, 255, 255, 0.3); }">• Page Instagram de Camille Combal</a>
        </li>
    </ul>
</div>
    </div>
</div>

</div>

    <div id="player-modal" class="modal">
    <div class="modal-content">
        <span class="close" onclick="closeModal()">×</span>
        <div id="player-content">
        </div>
        <button id="chromecast-button" onclick="startChromecast()" style="width: 60px; height: 60px; border-radius: 50%; padding: 0; background-image: url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png'); background-size: 35px; background-position: center; background-repeat: no-repeat; font-size: 0;"></button>
    </div>
    <div id="player-content">
    <style>
        /* Styles existants */
        .modal-content {
            background-color: #1a1a1a;
            padding: 40px;
            border: 2px solid #00ffff;
            width: 90%;
            max-width: 500px;
            max-height: 90vh;
            border-radius: 20px;
            text-align: center;
            box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
            position: fixed; /* Changé de absolute à fixed */
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) !important; /* Ajout de !important */
            overflow-y: auto;
            color: white;
        }

        /* Change la couleur du timing en noir */
        audio::-webkit-media-controls-time-display {
            color: #000000 !important;
        }

        /* Ajout de media queries pour le mobile */
        @media (max-width: 768px) {
            .modal-content {
                padding: 30px;
                width: 95%;
                margin: 0 auto;
                position: fixed;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%) !important;
            }
        }

        @media (max-height: 600px) {
            .modal-content {
                max-height: 85vh;
            }
        }
    </style>
</div>
    </div>

    <div id="fixed-player-bar" class="rtl-podcast-player" style="display: none;">
    <div class="fixed-player-content">
        <h3 id="fixed-player-title"></h3>
        <div class="audio-controls-container" style="display: flex; align-items: center; justify-content: center; gap: 20px; width: 100%; max-width: 800px; margin: 0 auto;">
            <audio id="fixed-player-audio" controls="">
                <source src="" type="audio/mpeg">
            </audio>
            <button onclick="startChromecast()" style="width: 40px; height: 40px; min-width: 40px; border-radius: 50%; padding: 0; background: #ffffff url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png') center/25px no-repeat; border: 2px solid #00ffff; font-size: 0; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">Cast to Chromecast</button>
            <button id="close-fixed-player" onclick="closeFixedPlayer()" style="background: none; border: none; color: #00ffff; font-size: 24px; cursor: pointer; padding: 5px; min-width: 24px; display: flex; align-items: center; justify-content: center;">×</button>
        </div>
    </div>
</div>

    <script>
    (function RTLPodcastPlayer() {
        // Initialize cast api
        window.__onGCastApiAvailable = function(isAvailable) {
            if (!isAvailable) return;

            const initializeCastApi = function() {
                const sessionRequest = new chrome.cast.SessionRequest(chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID);
                const apiConfig = new chrome.cast.ApiConfig(
                    sessionRequest,
                    sessionListener,
                    receiverListener
                );
                chrome.cast.initialize(apiConfig, onInitSuccess, onError);
            };

            const sessionListener = function(session) {
                console.log('Session listener', session);
            };

            const receiverListener = function(availability) {
                console.log('Receiver listener', availability);
            };

            const onInitSuccess = function() {
                console.log('Cast initialization success');
            };

            const onError = function(error) {
                console.error('Cast initialization error', error);
            };

            if (!chrome.cast || !chrome.cast.isAvailable) {
                setTimeout(initializeCastApi, 1000);
            } else {
                initializeCastApi();
            }
        };

        const rssUrl = "https://aod.nrjaudio.fm/xml/2455.xml";
        const proxyUrl = `https://api.rss2json.com/v1/api.json?rss_url=${encodeURIComponent(rssUrl)}&api_key=int3lqiwwrpnsvem6yki0mtwki2f4qcvcxtrlyea&count=150`;
        const episodesPerPage = 4;
        let currentPage = 1;
        let currentAudioUrl = '';
        let totalPages = 0;

        // Ajouter ces variables au début du script
        let currentEpisodeIndex = 0;
        let allEpisodes = [];
        let filteredEpisodes = [];

        fetch(proxyUrl)
            .then(response => response.json())
            .then(data => {
                if (data.status !== "ok") {
                    throw new Error("Erreur de chargement du flux RSS.");
                }
                allEpisodes = data.items;
                filteredEpisodes = [...allEpisodes];
                displayFeaturedEpisode(allEpisodes[0]);
                displayEpisodes(currentPage, filteredEpisodes);
                setupPagination(allEpisodes);
            })
            .catch(error => {
                document.getElementById("featured-episode").innerHTML = "<p>Impossible de charger le flux RSS. Veuillez réessayer plus tard.</p>";
            });

        function truncateDescription(description, maxLength = 180) {
        const tempElement = document.createElement("div");
        tempElement.innerHTML = description;
        let plainText = tempElement.innerText || tempElement.textContent || '';
        if (plainText.length <= maxLength) return plainText.trim();
        return plainText.substring(0, maxLength).trim() + '...';
    }

    function displayFeaturedEpisode(episode) {
        const featuredEpisode = document.getElementById("featured-episode");
        featuredEpisode.innerHTML = `
        <div class="features-episode" style="width: 100%; height: 100%;">
            <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[0].enclosure.link)}', '${sanitizeString(allEpisodes[0].title)}')">
                <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[0].title)}</h3>
                ${allEpisodes[0].thumbnail ? `<img decoding="async" src="${allEpisodes[0].thumbnail}" alt="Image de la dernière émission">` : ""}
                <div class="description" style="color: white;">${truncateDescription(allEpisodes[0].description)}</div>
                <div class="date-badge">
                    ${new Date(allEpisodes[0].pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button></button>
            </div>
            
            <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[1].enclosure.link)}', '${sanitizeString(allEpisodes[1].title)}')">
                <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[1].title)}</h3>
                ${allEpisodes[1].thumbnail ? `<img decoding="async" src="${allEpisodes[1].thumbnail}" alt="Image de l'avant-dernière émission">` : ""}
                <div class="description" style="color: white;">${truncateDescription(allEpisodes[1].description)}</div>
                <div class="date-badge">
                    ${new Date(allEpisodes[1].pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button></button>
            </div>
        </div>
        `;
    }

    function displayEpisodes(page, episodes) {
        const episodeGrid = document.getElementById("episode-grid");
        episodeGrid.innerHTML = "";
        const episodesWithoutFeatured = episodes.slice(2);
        const start = (page - 1) * episodesPerPage;  
        const end = start + episodesPerPage;
        
        episodesWithoutFeatured.slice(start, end).forEach(item => {
            episodeGrid.innerHTML += `
            <div class="episode">
                <h5 style="color: #00ffff;">${sanitizeString(item.title)}</h5>
                ${item.thumbnail ? `<img decoding="async" src="${item.thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 150px;">` : ""}
                <div class="description" style="color: white;">${truncateDescription(item.description)}</div>
                <div class="date-badge">
                    ${new Date(item.pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button onclick="openModal('${sanitizeString(item.enclosure.link)}', '${sanitizeString(item.title)}')"></button>
            </div>
            `;
        });
        updatePaginationButtons();
    }

    function setupPagination(episodes) {
        totalPages = Math.ceil((episodes.length - 2) / episodesPerPage);
        const pageNumbers = document.getElementById("page-numbers");
        pageNumbers.innerHTML = "";

        let start = currentPage;
        if (currentPage === totalPages) {
            start = totalPages - 2;
        } else if (currentPage === 1) {
            start = 1;
        } else {
            start = currentPage - 1;
        }

        start = Math.max(1, start);
        
        for (let i = start; i < start + 3 && i <= totalPages; i++) {
            const button = document.createElement("button");
            button.textContent = i;
            button.addEventListener("click", () => {
                currentPage = i;
                displayEpisodes(currentPage, episodes);
                setupPagination(episodes);
            });
            pageNumbers.appendChild(button);
        }

        window.changePage = function(direction) {
            if (direction === 'prev' && currentPage > 1) {
                currentPage--;
            } else if (direction === 'next' && currentPage < totalPages) {
                currentPage++;
            }
            displayEpisodes(currentPage, filteredEpisodes);
            setupPagination(episodes);
            updatePaginationButtons();
        }

        updatePaginationButtons();
    }

    function updatePaginationButtons() {
        const prevBtn = document.getElementById('prev-btn');
        const nextBtn = document.getElementById('next-btn');
        
        prevBtn.disabled = currentPage === 1;
        nextBtn.disabled = currentPage === totalPages;
        
        prevBtn.style.opacity = currentPage === 1 ? '0.5' : '1';
        nextBtn.style.opacity = currentPage === totalPages ? '0.5' : '1';
        
        const pageButtons = document.querySelectorAll('#page-numbers button');
        pageButtons.forEach((button, index) => {
            if (index + 1 === currentPage) {
                button.style.backgroundColor = '#00ffff';
                button.style.color = '#000';
            } else {
                button.style.backgroundColor = '#1a1a1a';
                button.style.color = '#00ffff';
            }
        });
    }

    function sanitizeString(str) {
        return str.replace(/['"\\<>]/g, "");
    }

    window.openModal = function(audioUrl, title) {
        const playerContent = document.getElementById("player-content");
        const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
        const thumbnail = currentEpisode?.thumbnail;
        
        playerContent.innerHTML = `
            <h2>${title}</h2>
            ${thumbnail ? `<img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0;">` : ''}
            <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
                <source src="${audioUrl}" type="audio/mpeg">
                Votre navigateur ne supporte pas la lecture audio.
            </audio>
        `;
        
        currentAudioUrl = audioUrl;
        document.getElementById("player-modal").style.display = "block";
        window.currentEpisodeTitle = title;
        
        const modalAudio = document.getElementById('modal-audio');
        modalAudio.addEventListener('play', () => {
            window.isPlaying = true;
        });
        modalAudio.addEventListener('pause', () => {
            window.isPlaying = false;
        });
    }

    window.closeModal = function() {
        const modalAudio = document.getElementById('modal-audio');
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        const fixedPlayerTitle = document.getElementById('fixed-player-title');
        
        if (window.isPlaying) {
            modalAudio.pause();
            fixedPlayerBar.style.display = 'block';
            fixedPlayerTitle.textContent = window.currentEpisodeTitle;
            fixedPlayerAudio.src = currentAudioUrl;
            fixedPlayerAudio.currentTime = modalAudio.currentTime;
            fixedPlayerAudio.play();
        }
        
        document.getElementById("player-modal").style.display = "none";
    }

    window.closeFixedPlayer = function() {
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        fixedPlayerAudio.pause();
        fixedPlayerBar.style.display = 'none';
    }

    window.startChromecast = function() {
        if (!chrome.cast || !chrome.cast.isAvailable) {
            console.log('Cast API not available');
            return;
        }

        chrome.cast.requestSession(
            function(session) {
                if (currentAudioUrl) {
                    const mediaInfo = new chrome.cast.media.MediaInfo(currentAudioUrl, 'audio/mpeg');
                    mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();
                    mediaInfo.metadata.title = document.querySelector('#player-content h2').textContent;

                    const request = new chrome.cast.media.LoadRequest(mediaInfo);
                    session.loadMedia(request).then(
                        () => console.log('Lecture Chromecast démarrée'),
                        errorCode => console.error('Erreur Chromecast: ' + errorCode)
                    );
                }
            },
            function(error) {
                console.error('Erreur lors de la création de la session:', error);
            }
        );
    }
      
        window.shareOnX = function() {
            const text = "Écoutez les podcasts : Camille Combal sur NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}&url=${encodeURIComponent(url)}`, '_blank');
        };

        window.shareOnWhatsapp = function() {
            const text = "Écoutez les podcasts : Camille Combal sur NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://wa.me/?text=${encodeURIComponent(text + ' ' + url)}`, '_blank');
        };

        window.shareOnFacebook = function() {
          const text = "Écoutez les podcasts : Camille Combal sur NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(url)}`, '_blank');
        };

        window.shareOnLinkedIn = function() {
          const text = "Écoutez les podcasts : Camille Combal sur NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(url)}`, '_blank');
        };

        window.filterAndDisplayEpisodes = function() {
            const searchTerm = document.getElementById('podcast-search').value.toLowerCase();
            const filterValue = document.getElementById('podcast-filter').value;
            
            // Filter episodes based on search term
            filteredEpisodes = allEpisodes.filter(episode => 
                episode.title.toLowerCase().includes(searchTerm) || 
                episode.description.toLowerCase().includes(searchTerm)
            );
            
            // Sort episodes based on filter value
            if (filterValue === 'oldest') {
                filteredEpisodes.sort((a, b) => new Date(a.pubDate) - new Date(b.pubDate));
            } else {
                filteredEpisodes.sort((a, b) => new Date(b.pubDate) - new Date(a.pubDate));
            }
            
            // Reset pagination to first page when filtering
            currentPage = 1;
            
            // Update display
            if (filteredEpisodes.length > 0) {
                displayFeaturedEpisode(filteredEpisodes[0]);
                displayEpisodes(currentPage, filteredEpisodes);
                setupPagination(filteredEpisodes);
            } else {
                // Handle no results
                document.getElementById('episode-grid').innerHTML = '<p style="color: #fff; text-align: center; grid-column: 1/-1;">Aucun résultat trouvé</p>';
                document.getElementById('page-numbers').innerHTML = '';
            }
        }
    })();
</script>
</div>
</div></div></body></html>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-551c4bf e-con-full e-flex e-con e-parent" data-id="551c4bf" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-9371460 elementor-widget elementor-widget-shortcode" data-id="9371460" data-element_type="widget" data-widget_type="shortcode.default">
				<div class="elementor-widget-container">
							<div class="elementor-shortcode"></div>
						</div>
				</div>
				</div>
				</div>
		<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-camille-combal-sur-nrj/">🗣️ Podcast et replay &#8211; Camille Combal sur NRJ</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://radiostreamr.com/radio-france/podcast-camille-combal-sur-nrj/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; NRJ Ciné News</title>
		<link>https://radiostreamr.com/radio-france/podcast-cine-news-nrj/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-cine-news-nrj/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 18 Nov 2024 18:36:29 +0000</pubDate>
				<category><![CDATA[NRJ]]></category>
		<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1355</guid>

					<description><![CDATA[<p>NRJ Ciné News &#8211; Écoutez en rediffusion ou télécharger tous les podcasts NRJ Plus récentsPlus anciens Publicité Prime Vidéo News &#8211; Chronique sur NRJ Voir leur Facebook Voir leur Instagram Voir leur site web Découvrez « Prime Vidéo News », une chronique hebdomadaire incontournable sur NRJ ! Chaque semaine, nous vous présentons en format court un film [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-cine-news-nrj/">🗣️ Podcast et replay &#8211; NRJ Ciné News</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1355" class="elementor elementor-1355" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-dce457e e-con-full e-flex e-con e-parent" data-id="dce457e" data-element_type="container">
				<div class="elementor-element elementor-element-9f9be1c 1995 elementor-widget elementor-widget-html" data-id="9f9be1c" data-element_type="widget" id="1995" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<!DOCTYPE html><html><head><meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&amp;display=swap" rel="stylesheet">
<style>
    .rtl-podcast-player * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: 'Roboto', sans-serif;
    }

  .rtl-podcast-player #pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: 100% !important;
}

@keyframes gradientBG {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.rtl-podcast-player body {
    background: linear-gradient(-45deg, #0a192f, #172a45, #1a365d, #102235);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    min-height: 100vh;
    display: flex;
    align-items: center;
    color: #fff;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
}

    .rtl-podcast-player .container {
        display: grid;
        grid-template-columns: 1.2fr 2.8fr;
        gap: 20px;
        margin: 0 auto;
        padding: 50px 150px !important;
        width: 100%;
        background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
        background-size: 400% 400%;
        animation: gradientBG 15s ease infinite;
        border-radius: 0;
        box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);
    }


    @media (max-width: 1024px) {
        .rtl-podcast-player .container {
            padding: 30px 45px;
            grid-template-columns: 1fr 2fr;
        }
        
        .rtl-podcast-player h1 {
            font-size: 2em;
        }
    }


    @media (max-width: 768px) {
        .rtl-podcast-player .container {
            padding: 20px !important; /* Override padding */
            margin: 0 !important; /* Reset margin */
            width: 100% !important;
            max-width: 100% !important;
            grid-template-columns: 1fr;
            overflow-x: hidden; /* Prevent horizontal scroll */
        }
        
        .rtl-podcast-player #episode-grid,
        .rtl-podcast-player .episode,
        .rtl-podcast-player #featured-episode,
        .rtl-podcast-player .host-biography,
        .rtl-podcast-player .social-share-buttons {
            width: 100% !important;
            margin-left: auto !important;
            margin-right: auto !important;
            padding: 15px !important;
        }
        
        .rtl-podcast-player h1,
        .rtl-podcast-player h2,
        .rtl-podcast-player p {
            padding-left: 10px !important;
            padding-right: 10px !important;
            text-align: center;
        }

        .rtl-podcast-player #episode-grid {
            grid-template-columns: 1fr !important; /* Force single column */
            gap: 20px;
        }
        
        .rtl-podcast-player .episode {
            width: 100% !important;
            margin: 0 auto !important;
        }
    }


@media (max-width: 480px) {
    .rtl-podcast-player .container {
        padding: 10px !important;
    }
    
    .rtl-podcast-player #featured-episode,
    .rtl-podcast-player .episode {
        padding: 15px !important;
        width: 100% !important;
        margin: 0 auto !important;
    }
}

.rtl-podcast-player h1 {
    color: #00ffff;
    text-align: center;
    font-size: 2.3em;
    margin-bottom: 40px;
    font-weight: 700;
    width: 100%;
    grid-column: 1 / -1;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.3);
}

  #fixed-player-bar {
        display: flex;               /* Assure l'affichage en flex */
        flex-direction: column;       /* Organisation en colonne */
        align-items: center;          /* Centre les éléments */
        padding: 10px;
        gap: 10px;                    /* Espace entre chaque ligne */
        background: rgba(26, 26, 26, 0.95); /* Conserve l’arrière-plan */
        display: none;                /* Masqué par défaut */
    }

    /* Ligne 1 : Titre de l'épisode */
    #fixed-player-title {
        display: block;               /* Force l'affichage sur une ligne complète */
        text-align: center;
        font-size: 1.2em;
        color: #00ffff;
        width: 100%;                  /* Prend la largeur complète */
    }

    /* Ligne 2 : Player audio */
    #fixed-player-audio {
        display: block;               /* Force l'affichage sur une ligne complète */
        width: 100%;
    }

    /* Ligne 3 : Conteneur pour les boutons Chromecast et fermeture */
    .audio-controls-container {
        display: flex;
        justify-content: center;
        gap: 20px;
        width: 100%;                  /* Assure une disposition sur toute la largeur */
    }

    /* Styles des boutons */
    #chromecast-button, #close-fixed-player {
        width: 40px;
        height: 40px;
        border: none;
        cursor: pointer;
    }
}

  @media (max-width: 768px) {
    .rtl-podcast-player h1 {
        margin-top: 0px !important; /* Ajustez la valeur selon vos besoins */
    }
}
  
.rtl-podcast-player #featured-episode {
    /* Remplacer ces styles */
    display: flex;
    flex-direction: column;
    height: 100%; /* Ajout de cette ligne */
    padding: 30px;
    border-radius: 15px;
    background-color: transparent;
    color: #ffffff;
    transition: all 0.3s ease;
}

.rtl-podcast-player #featured-episode:hover {
    transform: translateY(-5px);
}

.rtl-podcast-player #featured-episode h3 {
    color: #00ffff;
    margin-bottom: 15px;
    font-weight: 500;
}

.rtl-podcast-player #featured-episode button, .rtl-podcast-player .episode button {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    padding: 0;
    background-image: url('https://static.vecteezy.com/system/resources/thumbnails/017/196/540/small/3d-play-button-icon-transparent-background-free-png.png');
    background-size: 35px;
    background-position: center;
    background-repeat: no-repeat;
    font-size: 0;
    position: relative;
}

    .rtl-podcast-player .date-badge {
        background: rgba(0, 255, 255, 0.1);
        border: 2px solid #00ffff;
        border-radius: 8px;
        padding: 8px 15px;
        color: #00ffff;
        font-weight: bold;
        text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
        box-shadow: 
            0 0 5px rgba(0, 255, 255, 0.2),
            0 0 10px rgba(0, 255, 255, 0.2),
            0 0 15px rgba(0, 255, 255, 0.2),
            0 0 20px rgba(0, 255, 255, 0.2);
        animation: neonPulse 1.5s ease-in-out infinite;
        margin: 15px auto 20px auto; /* Increased bottom margin */
        display: block; /* Changed from inline-block to block */
        width: fit-content;
    }

    @keyframes neonPulse {
        0%, 100% {
            box-shadow: 
                0 0 5px rgba(0, 255, 255, 0.2),
                0 0 10px rgba(0, 255, 255, 0.2),
                0 0 15px rgba(0, 255, 255, 0.2),
                0 0 20px rgba(0, 255, 255, 0.2);
        }
        50% {
            box-shadow: 
                0 0 10px rgba(0, 255, 255, 0.4),
                0 0 20px rgba(0, 255, 255, 0.4),
                0 0 30px rgba(0, 255, 255, 0.4),
                0 0 40px rgba(0, 255, 255, 0.4);
        }
    }


.rtl-podcast-player #featured-episode img,
.rtl-podcast-player .episode img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .modal-content img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .episode button:hover::after,
.rtl-podcast-player #featured-episode button:hover::after {
    content: "Ecouter ce podcast";
    position: absolute;
    bottom: -35px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 14px;
    white-space: nowrap;
    z-index: 1000;
}

.rtl-podcast-player #featured-episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #episode-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

    .rtl-podcast-player .episode {
        padding: 20px;
        border-radius: 15px;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.1);
        text-align: center;
        background-color: #1a1a1a;
        transition: all 0.3s ease;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .rtl-podcast-player .episode p {
        color: #ffffff;
    }


.rtl-podcast-player .episode:hover {
    box-shadow: 0 0 20px rgba(0, 255, 255, 0.2);
    transform: translateY(-3px);
}

.rtl-podcast-player .episode h5 {
    margin-bottom: 10px;
    color: #00ffff;
}

.rtl-podcast-player .episode a {
    color: #00ffff;
    text-decoration: none;
}

    .rtl-podcast-player .episode button:hover {
        background-color: #00cccc;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
    }
    
    .search-filter-container {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 15px;
        margin-bottom: 30px;
        width: 100%;
    }

    .search-filter-container input,
    .search-filter-container select {
        padding: 10px 15px;
        border: 2px solid #00ffff;
        border-radius: 8px;
        background: rgba(0, 0, 0, 0.3);
        color: #fff;
        font-size: 16px;
        width: 200px;
    }

    .search-filter-container input::placeholder {
        color: rgba(255, 255, 255, 0.6);
    }

    .search-filter-container input:focus,
    .search-filter-container select:focus {
        outline: none;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
    }

    .search-filter-container select {
        cursor: pointer;
    }

    .search-filter-container select option {
        background-color: #1a1a1a;
        color: #fff;
    }

    @media (max-width: 768px) {
        .search-filter-container {
            flex-direction: column;
            gap: 10px;
        }

        .search-filter-container input,
        .search-filter-container select {
            width: 100%;
            max-width: 300px;
        }
    }

    color: #000;
    border: none;
    padding: 8px 20px;
    border-radius: 20px;
    cursor: pointer;
    font-weight: 500;
    transition: all 0.3s ease;
    margin-top: 10px; /* Add space above button */
    display: block; /* Ensure block-level display */
    margin-left: auto;
    margin-right: auto;
}

.rtl-podcast-player .episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player .pagination {
    text-align: center !important;
    margin-top: 30px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: auto !important;
}

  .rtl-podcast-player #page-numbers {
    display: flex !important;
    gap: 5px !important;
    margin: 0 5px !important;
}
  
.rtl-podcast-player .pagination button,
.rtl-podcast-player .pagination #prev-btn,
.rtl-podcast-player .pagination #next-btn {
    margin: 0 !important;  /* Changé de 5px à 0 */
    padding: 8px 16px;
    font-size: 1em;
    background-color: #1a1a1a;
    color: #00ffff;
    border: 1px solid #00ffff;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s ease;
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.rtl-podcast-player .pagination button:hover {
    background-color: #00ffff;
    color: #000;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
}

.rtl-podcast-player .modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(8px);
}

.rtl-podcast-player .modal-content {
    background-color: #1a1a1a;
    padding: 40px;
    border: 2px solid #00ffff;
    width: 90%;
    max-width: 500px;
    max-height: 90vh;
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    overflow-y: auto;
    color: white;
}

.rtl-podcast-player .close {
    position: absolute;
    top: 10px;
    right: 20px;
    color: #00ffff;
    font-size: 35px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.3s;
}

.rtl-podcast-player .close:hover {
    color: #00cccc;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #chromecast-button {
    background-color: #00ffff;
    border: none;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
    color: #000;
    margin-top: 20px;
    font-weight: bold;
    display: inline-block;
}

.rtl-podcast-player audio::-webkit-media-controls-panel {
    background-color: #2a2a2a;
}

.rtl-podcast-player audio::-webkit-media-controls-current-time-display,
.rtl-podcast-player audio::-webkit-media-controls-time-remaining-display {
    color: #000000;
}

.rtl-podcast-player #fixed-player-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(26, 26, 26, 0.95);
    backdrop-filter: blur(10px);
    padding: 10px 20px;
    z-index: 999;
    border-top: 2px solid #00ffff;
}

.rtl-podcast-player .fixed-player-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    gap: 20px;
}


.rtl-podcast-player #fixed-player-title {
    color: #00ffff;
    font-size: 1em;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.rtl-podcast-player #fixed-player-audio {
    flex: 2;
    max-width: 500px;
}

.episode-card {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(0, 255, 255, 0.3);
    border-radius: 15px;
    padding: 20px;
    margin-bottom: 20px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.episode-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 255, 255, 0.2);
}

.episode-card img {
    width: 100%;
    max-width: 200px;
    border-radius: 10px;
    margin: 10px 0;
}

.episode-card button {
    margin-top: 10px;
}
  
/* Conserve les styles des boutons play et mute */
audio::-webkit-media-controls-play-button,
audio::-webkit-media-controls-mute-button {
    background-color: #40E0D0 !important; /* Bleu turquoise */
    border-radius: 50% !important;
    transition: all 0.3s ease !important;
}

audio::-webkit-media-controls-play-button:hover,
audio::-webkit-media-controls-mute-button:hover {
    background-color: #5FECEC !important; /* Bleu turquoise plus clair au survol */
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5) !important;
}

/* Tentative pour changer la couleur du trait de progression */
audio::-webkit-media-controls-timeline {
    color: #a6a6a6 !important; /* Essaye de cibler le trait turquoise */
}

/* Modifie la couleur des trois petits points */
audio::-webkit-media-controls-panel {
    background-color: transparent !important; /* Assure que le fond ne prend pas de couleur */
    color: #40E0D0 !important; /* Forcer la couleur turquoise pour les trois points */
}

/* Tentative supplémentaire pour cibler le trait du curseur de progression */
audio::-webkit-slider-runnable-track {
    background-color: #40E0D0 !important; /* Bleu turquoise pour la piste */
}

audio::-webkit-slider-thumb {
    background-color: #a6a6a6 !important; /* Plus clair pour le curseur lui-même */
}


@media (max-width: 768px) {
    .rtl-podcast-player .fixed-player-content {
        flex-direction: column;
        gap: 10px;
        padding: 15px;
    }

    .rtl-podcast-player #fixed-player-audio {
        width: 100%;
        max-width: 100%;
    }

    .rtl-podcast-player #fixed-player-title {
        width: 100%;
        text-align: center;
        font-size: 0.9em;
    }
}

.rtl-podcast-player .social-button {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease-in-out;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.rtl-podcast-player .social-button:hover {
    transform: scale(1.1);
}

@media (max-width: 768px) {
    .rtl-podcast-player .social-share-buttons {
        gap: 10px;
    }
    
    .rtl-podcast-player .social-button {
        width: 40px;
        height: 40px;
    }
    
    .rtl-podcast-player .social-button svg {
        width: 20px;
        height: 20px;
    }
}

.navigation-buttons {
    position: absolute;
    width: 100%;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 10px;
    pointer-events: none;
    z-index: 1000;
}

.nav-button {
    background: rgba(0, 0, 0, 0.7);
    border: 2px solid #00ffff;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    pointer-events: auto;
}  

.nav-button:hover {
    background: rgba(0, 255, 255, 0.2);
    transform: scale(1.1);
}

.nav-button svg {
    width: 24px;
    height: 24px;
}

@media (max-width: 768px) {
    .nav-button {
        width: 35px;
        height: 35px;
    }
    
    .nav-button svg {
        width: 20px;
        height: 20px;
    }
}
</style>
<script type="text/javascript" src="//www.gstatic.com/cv/js/sender/v1/cast_sender.js"></script>

</head><body>
<div class="rtl-podcast-player">
    <div class="container" style="background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    border-radius: 0; /* Changed from 20px to 0 */
    box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);">
    <h1 style="color: #00ffff; text-align: center; font-size: 2.1em; margin-bottom: 40px; font-weight: 700; width: 100%; grid-column: 1 / -1; text-shadow: 0 0 10px rgba(0, 255, 255, 0.3); padding: 0 15px; display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap;">
NRJ Ciné News - Écoutez en rediffusion ou télécharger tous les podcasts NRJ
<img decoding="async" src="https://cdn.uc.assets.prezly.com/b1be11c1-7593-48e0-b0d3-dfedd93ef5a2/-/inline/no/Newsroom+Icon-NRJ.png" alt="Logo Europe 1" style="width: 60px; height: 60px; border-radius: 50%; padding: 5px; background: white; box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);">
</h1>
    <div class="social-share-buttons" style="display: flex; justify-content: center; align-items: center; gap: 15px; margin-bottom: 30px; width: 100%; grid-column: 1 / -1;">
    <button onclick="shareOnX()" class="social-button" style="background-color: #000;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnWhatsapp()" class="social-button" style="background-color: #25D366;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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.298-.347.446-.52.149-.174.198-.298.298-.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>
        </svg>
    </button>
    <button onclick="shareOnFacebook()" class="social-button" style="background-color: #1877F2;">  
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnLinkedIn()" class="social-button" style="background-color: #0A66C2;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
</div>
      
    <div id="featured-episode" style="display: flex; flex-direction: column; align-items: center; text-align: center; justify-content: space-between; gap: 20px; height: 100%; position: relative; padding-top: 20px; cursor: pointer;">
  <div class="features-episode" style="width: 100%; height: 100%;">
    <!-- Première carte (dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
            
    <!-- Deuxième carte (avant-dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
  </div>
</div>
    <div>
    <div class="search-filter-container">
        <input type="text" id="podcast-search" placeholder="Rechercher un podcast..." oninput="filterAndDisplayEpisodes()">
        <select id="podcast-filter" onchange="filterAndDisplayEpisodes()">
            <option value="newest">Plus récents</option>
            <option value="oldest">Plus anciens</option>
        </select>
    </div>
    <div id="episode-grid">
        <style>
            .episode {
                cursor: pointer;
            }
            
            .episode > * {
                pointer-events: none;
            }
            
            .episode button {
                pointer-events: auto;
            }
        </style>
    </div>
    <div class="pagination" id="pagination">
    <button id="prev-btn" onclick="changePage('prev')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M15 18l-6-6 6-6"></path>
        </svg>
    </button>
    <span id="page-numbers"></span>
    <button id="next-btn" onclick="changePage('next')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M9 18l6-6-6-6"></path>
        </svg>
    </button>
</div>

      <div class="ad-banner" style="width: 100%; max-width: 508px; margin: 20px auto; text-align: center; grid-column: 1 / -1; background: rgba(0,0,0,0.3); padding: 15px; border-radius: 10px; border: 1px solid rgba(0, 255, 255, 0.2); transition: transform 0.3s ease;">
    <p style="color: #666; font-size: 12px; margin-bottom: 10px;">Publicité</p>
    <a href="https://universal-academy.com/recruter-des-alternants-dans-le-tourisme/" target="_blank" style="display: inline-block;">
        <img decoding="async" src="https://radiostreamr.com/radio-france/wp-content/uploads/2024/11/Design-sans-titre-2024-11-06T134332.299.webp" alt="Bannière publicitaire RTL" style="width: 100%; max-width: 700px; height: auto; border-radius: 8px; transition: transform 0.3s ease;" onmouseover="this.style.transform='scale(1.02)'" onmouseout="this.style.transform='scale(1)'">
    </a>
</div>

    <script>
        // Ajouter un event listener pour les cartes d'épisodes
        document.getElementById('episode-grid').addEventListener('click', (e) => {
            const episodeCard = e.target.closest('.episode');
            if (episodeCard) {
                // Trouver le bouton dans la carte et simuler un clic dessus
                const button = episodeCard.querySelector('button');
                if (button) {
                    button.click();
                }
            }
        });
    </script>
</div>
    
    <div class="host-biography" style="grid-column: 1 / -1; background: rgba(0, 0, 0, 0.3); padding: 30px; border-radius: 15px; margin-top: 30px; border: 1px solid rgba(0, 255, 255, 0.2);">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
        <!-- Media query pour passer en une colonne sur mobile -->
        <style>
            @media (max-width: 768px) {
                .host-biography > div {
                    grid-template-columns: 1fr !important;
                }
            }
        </style>

      <div class="host-biography" style="grid-column: 1 / -1; padding: 30px; border-radius: 15px; margin-top: 30px;">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
      <div style="grid-column: 1 / -1; margin-bottom: 30px; text-align: center;">
    <div style="color: #ffffff; line-height: 1.6; text-align: center;">
    <h2 style="color: #00ffff; margin-bottom: 20px; text-align: center;">Prime Vidéo News - Chronique sur NRJ</h2>
</div>

    <!-- Nouveaux boutons de réseaux sociaux -->
    <div style="display: flex; justify-content: center; align-items: center; gap: 20px; margin: 20px 0;">
        <a href="https://www.facebook.com/nrjradio/?locale=fr_FR" target="_blank" style="position: relative; width: 50px; height: 50px; background: #1877F2; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M18.77 7.46H14.5v-1.9c0-.9.6-1.1 1-1.1h3V.5h-4.33C10.24.5 9.5 3.44 9.5 5.32v2.15h-3v4h3v12h5v-12h3.85l.42-4z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Facebook</span>
</a>

        <a href="https://www.instagram.com/nrjhitmusiconly/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #E4405F; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Instagram</span>
</a>

        <a href="https://www.nrj.fr/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #00ffff; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#000000">
        <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur site web</span>
</a>
    </div>

    <style>
        /* Hover effects pour les boutons */
        .host-biography a:hover {
            transform: scale(1.1);
            box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
        }
        
        .host-biography a:hover span {
            opacity: 1;
        }

        /* Media queries pour le responsive */
        @media (max-width: 768px) {
            .host-biography div[style*="display: flex"] {
                flex-wrap: wrap;
                justify-content: center;
                gap: 15px;
            }
        }
    </style>

    <p style="color: #ffffff; line-height: 1.6; text-align: center; max-width: 1200px; margin: 0 auto;">
    Découvrez "Prime Vidéo News", une chronique hebdomadaire incontournable sur NRJ ! Chaque semaine, nous vous présentons en format court un film ou une série à découvrir sur Amazon Prime Video. Dans une ambiance dynamique et passionnée, nous décortiquons les dernières nouveautés et pépites de la plateforme de streaming, vous donnant toutes les clés pour faire votre choix parmi le vaste catalogue d'Amazon. Entre critiques constructives, analyses pertinentes et recommandations personnalisées, "Prime Vidéo News" est votre guide idéal pour naviguer dans l'univers d'Amazon Prime Video et enrichir votre liste de visionnage !
</p>
    
    <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-top: 30px; padding: 20px;">
        <!-- Les 6 cartes existantes restent inchangées -->
        <!-- Carte 1 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M3 18v-6a9 9 0 0 1 18 0v6"></path>
                <path d="M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z"></path>
            </svg>
            <p style="color: #ffffff; margin: 0;">Écouter gratuitement tous les podcasts en streaming</p>
        </div>

        <!-- Carte 2 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
                <polyline points="7 10 12 15 17 10"></polyline>
                <line x1="12" y1="15" x2="12" y2="3"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Télécharger les épisodes pour une écoute hors-ligne</p>
        </div>

        <!-- Carte 3 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6"></path>
                <line x1="2" y1="20" x2="2" y2="20"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Diffuser sur votre Chromecast ou appareil compatible</p>
        </div>

        <!-- Carte 4 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="12" cy="12" r="10"></circle>
                <polygon points="10 8 16 12 10 16 10 8"></polygon>
            </svg>
            <p style="color: #ffffff; margin: 0;">Accéder à toutes les rediffusions des émissions précédentes</p>
        </div>

        <!-- Carte 5 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
        <circle cx="9" cy="7" r="4"></circle>
        <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
        <path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Retrouvez chaque semaine en podcast votre chronique cinéma NRJ Ciné News ! Une émission courte et rythmée qui vous plonge dans l'actualité du cinéma</p>
</div>

        <!-- Carte 6 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px; position: relative;" onmouseover="this.style.transform='translateY(-5px)'; document.getElementById('live-tooltip').style.opacity='1'" onmouseout="this.style.transform='translateY(0)'; document.getElementById('live-tooltip').style.opacity='0'" onclick="window.location.href='https://radiostreamr.com/radio-france/ecoutez-en-direct-nrj/'">
    <div id="live-tooltip" style="position: absolute; top: -40px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.8); color: #fff; padding: 8px 15px; border-radius: 5px; font-size: 14px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none; border: 1px solid #00ffff; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">
        Cliquez pour écouter en direct NRJ
    </div>
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M4 12h1"></path>
        <path d="M9 12h1"></path>
        <path d="M14 12h1"></path>
        <path d="M19 12h1"></path>
        <rect x="2" y="8" width="20" height="12" rx="2"></rect>
        <path d="M6 8V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v4"></path>
        <circle cx="12" cy="14" r="4"></circle>
        <path d="M12 10v8"></path>
        <path d="M8 14h8"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Écoutez en direct sur NRJ "NRJ Ciné News", votre chronique cinéma hebdomadaire pour découvrir et suivre toute l'actualité des sorties cinéma !</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;">
    Le lundi après-midi
</p>
</div>
    </div>
</div>
        
        <!-- Histoire de l'émission -->
        <div style="padding: 20px; text-align: center; width: 100%; margin: 0 auto; grid-column: 1 / -1;">
</div>

        <!-- Biographie de Laurent Ruquier -->
        <div style="grid-column: 1 / -1;"></div>

        <!-- Sources (span across both columns) -->
        <div></div>
    </div>
</div>

</div>

    <div id="player-modal" class="modal">
        <div class="modal-content">
    <span class="close" onclick="closeModal()">×</span>
    <div class="navigation-buttons">
        <button id="prev-episode" onclick="navigateEpisode('prev')" class="nav-button">
            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M15 18l-6-6 6-6"></path>
            </svg>
        </button>
        <button id="next-episode" onclick="navigateEpisode('next')" class="nav-button">
            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M9 18l6-6-6-6"></path>
            </svg>
        </button>
    </div>
    <div id="player-content">
    <style>
        /* Styles existants */
        .modal-content {
            background-color: #1a1a1a;
            padding: 40px;
            border: 2px solid #00ffff;
            width: 90%;
            max-width: 500px;
            max-height: 90vh;
            border-radius: 20px;
            text-align: center;
            box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
            position: fixed; /* Changé de absolute à fixed */
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) !important; /* Ajout de !important */
            overflow-y: auto;
            color: white;
        }

        /* Change la couleur du timing en noir */
        audio::-webkit-media-controls-time-display {
            color: #000000 !important;
        }

        /* Ajout de media queries pour le mobile */
        @media (max-width: 768px) {
            .modal-content {
                padding: 30px;
                width: 95%;
                margin: 0 auto;
                position: fixed;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%) !important;
            }
        }

        @media (max-height: 600px) {
            .modal-content {
                max-height: 85vh;
            }
        }
    </style>
</div>
    <button id="chromecast-button" onclick="startChromecast()" style="width: 60px; height: 60px; border-radius: 50%; padding: 0; background-image: url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png'); background-size: 35px; background-position: center; background-repeat: no-repeat; font-size: 0;"></button>
</div>
    </div>

    <div id="fixed-player-bar" class="rtl-podcast-player" style="display: none;">
    <div class="fixed-player-content">
        <h3 id="fixed-player-title"></h3>
        <div class="audio-controls-container" style="display: flex; align-items: center; justify-content: center; gap: 20px; width: 100%; max-width: 800px; margin: 0 auto;">
            <audio id="fixed-player-audio" controls="">
                <source src="" type="audio/mpeg">
            </audio>
            <button onclick="startChromecast()" style="width: 40px; height: 40px; min-width: 40px; border-radius: 50%; padding: 0; background: #ffffff url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png') center/25px no-repeat; border: 2px solid #00ffff; font-size: 0; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">Cast to Chromecast</button>
            <button id="close-fixed-player" onclick="closeFixedPlayer()" style="background: none; border: none; color: #00ffff; font-size: 24px; cursor: pointer; padding: 5px; min-width: 24px; display: flex; align-items: center; justify-content: center;">×</button>
        </div>
    </div>
</div>

    <script>
    (function RTLPodcastPlayer() {
        // Initialize cast api
        window.__onGCastApiAvailable = function(isAvailable) {
            if (!isAvailable) return;

            const initializeCastApi = function() {
                const sessionRequest = new chrome.cast.SessionRequest(chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID);
                const apiConfig = new chrome.cast.ApiConfig(
                    sessionRequest,
                    sessionListener,
                    receiverListener
                );
                chrome.cast.initialize(apiConfig, onInitSuccess, onError);
            };

            const sessionListener = function(session) {
                console.log('Session listener', session);
            };

            const receiverListener = function(availability) {
                console.log('Receiver listener', availability);
            };

            const onInitSuccess = function() {
                console.log('Cast initialization success');
            };

            const onError = function(error) {
                console.error('Cast initialization error', error);
            };

            if (!chrome.cast || !chrome.cast.isAvailable) {
                setTimeout(initializeCastApi, 1000);
            } else {
                initializeCastApi();
            }
        };

        const rssUrl = "https://aod.nrjaudio.fm/xml/190.xml";
        const proxyUrl = `https://api.rss2json.com/v1/api.json?rss_url=${encodeURIComponent(rssUrl)}&api_key=int3lqiwwrpnsvem6yki0mtwki2f4qcvcxtrlyea&count=150`;
        const episodesPerPage = 4;
        let currentPage = 1;
        let currentAudioUrl = '';
        let totalPages = 0;

        // Ajouter ces variables au début du script
        let currentEpisodeIndex = 0;
        let allEpisodes = [];
        let filteredEpisodes = [];

        fetch(proxyUrl)
            .then(response => response.json())
            .then(data => {
                if (data.status !== "ok") {
                    throw new Error("Erreur de chargement du flux RSS.");
                }
                allEpisodes = data.items;
                filteredEpisodes = [...allEpisodes];
                displayFeaturedEpisode(allEpisodes[0]);
                displayEpisodes(currentPage, filteredEpisodes);
                setupPagination(allEpisodes);
            })
            .catch(error => {
                document.getElementById("featured-episode").innerHTML = "<p>Impossible de charger le flux RSS. Veuillez réessayer plus tard.</p>";
            });

        function truncateDescription(description, maxLength = 180) {
    // Crée un élément temporaire pour décoder les entités HTML
    const tempElement = document.createElement("div");
    tempElement.innerHTML = description;
    
    // Récupère le texte brut de la description
    let plainText = tempElement.innerText || tempElement.textContent || '';

    // Tronque le texte si nécessaire
    if (plainText.length <= maxLength) return plainText.trim();
    return plainText.substring(0, maxLength).trim() + '...';
}

function displayFeaturedEpisode(episode) {
    const featuredEpisode = document.getElementById("featured-episode");
    
    // Créer le HTML pour les deux premières émissions
    featuredEpisode.innerHTML = `
    <div class="features-episode" style="width: 100%; height: 100%;">
        <!-- Première carte (dernière émission) -->
        <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[0].enclosure.link)}', '${sanitizeString(allEpisodes[0].title)}')">
            <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[0].title)}</h3>
            ${allEpisodes[0].thumbnail ? `<img decoding="async" src="${allEpisodes[0].thumbnail}" alt="Image de la dernière émission">` : ""}
            <div class="description" style="color: white;">${truncateDescription(allEpisodes[0].description)}</div>
            <div class="date-badge">
                ${new Date(allEpisodes[0].pubDate).toLocaleDateString('fr-FR', {
                    day: '2-digit',
                    month: '2-digit',
                    year: '2-digit'
                })}
            </div>
            <button></button>
        </div>
        
        <!-- Deuxième carte (avant-dernière émission) -->
        <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[1].enclosure.link)}', '${sanitizeString(allEpisodes[1].title)}')">
            <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[1].title)}</h3>
            ${allEpisodes[1].thumbnail ? `<img decoding="async" src="${allEpisodes[1].thumbnail}" alt="Image de l'avant-dernière émission">` : ""}
            <div class="description" style="color: white;">${truncateDescription(allEpisodes[1].description)}</div>
            <div class="date-badge">
                ${new Date(allEpisodes[1].pubDate).toLocaleDateString('fr-FR', {
                    day: '2-digit',
                    month: '2-digit',
                    year: '2-digit'
                })}
            </div>
            <button></button>
        </div>
    </div>
    `;
}

function displayEpisodes(page, episodes) {
    const episodeGrid = document.getElementById("episode-grid");
    episodeGrid.innerHTML = "";
    const episodesWithoutFeatured = episodes.slice(2);
    const start = (page - 1) * episodesPerPage;  
    const end = start + episodesPerPage;
    
    episodesWithoutFeatured.slice(start, end).forEach(item => {
        // IMPORTANT : Encode les titres pour éviter les problèmes avec les apostrophes
        const encodedTitle = encodeURIComponent(item.title);
        const encodedUrl = encodeURIComponent(item.enclosure.link);
        
        episodeGrid.innerHTML += `
    <div class="episode">
        <h5 style="color: #00ffff;">${sanitizeString(item.title)}</h5>
        ${item.thumbnail ? `<img decoding="async" src="${item.thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 150px;">` : ""}
        <div class="description" style="color: white;">${truncateDescription(item.description)}</div>
        <div class="date-badge">
            ${new Date(item.pubDate).toLocaleDateString('fr-FR', {
                day: '2-digit',
                month: '2-digit',
                year: '2-digit'
            })}
        </div>
        <button onclick="openModal('${sanitizeString(item.enclosure.link)}', '${sanitizeString(item.title)}')"></button>
    </div>
`;
    });
    updatePaginationButtons();
}

        function setupPagination(episodes) {
    // Soustrait les 2 épisodes featured au lieu d'un seul
    totalPages = Math.ceil((episodes.length - 2) / episodesPerPage);
    const pageNumbers = document.getElementById("page-numbers");
    pageNumbers.innerHTML = "";

    // Calcule quels numéros afficher
    let start = currentPage;
    if (currentPage === totalPages) {
        start = totalPages - 2;
    } else if (currentPage === 1) {
        start = 1;
    } else {
        start = currentPage - 1;
    }

    // S'assure que start n'est jamais inférieur à 1
    start = Math.max(1, start);
    
    // Affiche 3 boutons à partir de start
    for (let i = start; i < start + 3 && i <= totalPages; i++) {
        const button = document.createElement("button");
        button.textContent = i;
        button.addEventListener("click", () => {
            currentPage = i;
            displayEpisodes(currentPage, episodes);
            setupPagination(episodes); // Important : rafraîchit la pagination
        });
        pageNumbers.appendChild(button);
    }

    // Réactive la fonctionnalité des boutons précédent/suivant
    window.changePage = function(direction) {
        if (direction === 'prev' && currentPage > 1) {
            currentPage--;
        } else if (direction === 'next' && currentPage < totalPages) {
            currentPage++;
        }
        displayEpisodes(currentPage, filteredEpisodes);
        setupPagination(episodes); // Rafraîchit la pagination
        updatePaginationButtons();
    }

    updatePaginationButtons();
}

        function updatePaginationButtons() {
            const prevBtn = document.getElementById('prev-btn');
            const nextBtn = document.getElementById('next-btn');
            
            prevBtn.disabled = currentPage === 1;
            nextBtn.disabled = currentPage === totalPages;
            
            prevBtn.style.opacity = currentPage === 1 ? '0.5' : '1';
            nextBtn.style.opacity = currentPage === totalPages ? '0.5' : '1';
            
            const pageButtons = document.querySelectorAll('#page-numbers button');
            pageButtons.forEach((button, index) => {
                if (index + 1 === currentPage) {
                    button.style.backgroundColor = '#00ffff';
                    button.style.color = '#000';
                } else {
                    button.style.backgroundColor = '#1a1a1a';
                    button.style.color = '#00ffff';
                }
            });
        }

        window.openModal = function(audioUrl, title) {
            const playerContent = document.getElementById("player-content");
            
            // Find the episode data from allEpisodes based on the audioUrl
            const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
            
            // Get the thumbnail from the episode data directly
            const thumbnail = currentEpisode?.thumbnail;

            // Trouve l'index de l'épisode actuel
            currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
            
            playerContent.innerHTML = `
                <h2>${title}</h2>
                ${thumbnail ? `<img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0;">` : ''}
                <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
                    <source src="${audioUrl}" type="audio/mpeg">
                    Votre navigateur ne supporte pas la lecture audio.
                </audio>
            `;
            
            // Mise à jour de la visibilité des boutons de navigation
            updateNavigationButtons();
            
            currentAudioUrl = audioUrl;
            document.getElementById("player-modal").style.display = "block";
            
            // Store current title for fixed player
            window.currentEpisodeTitle = title;
            
            // Setup audio element for fixed player
            const modalAudio = document.getElementById('modal-audio');
            modalAudio.addEventListener('play', () => {
                window.isPlaying = true;
            });
            modalAudio.addEventListener('pause', () => {
                window.isPlaying = false;
            });
        }

    window.navigateEpisode = function(direction) {
        let newIndex = direction === 'prev' ? currentEpisodeIndex - 1 : currentEpisodeIndex + 1;
        
        if (newIndex >= 0 && newIndex < allEpisodes.length) {
            const episode = allEpisodes[newIndex];
            openModal(episode.enclosure.link, episode.title);
        }
    }

      function sanitizeString(str) {
    return str.replace(/['"\\<>]/g, "");
}


    function updateNavigationButtons() {
        const prevButton = document.getElementById('prev-episode');
        const nextButton = document.getElementById('next-episode');
        
        prevButton.style.display = currentEpisodeIndex === 0 ? 'none' : 'flex';
        nextButton.style.display = currentEpisodeIndex === allEpisodes.length - 1 ? 'none' : 'flex';
    }

        window.closeModal = function() {
            const modalAudio = document.getElementById('modal-audio');
            const fixedPlayerBar = document.getElementById('fixed-player-bar');
            const fixedPlayerAudio = document.getElementById('fixed-player-audio');
            const fixedPlayerTitle = document.getElementById('fixed-player-title');
            
            if (window.isPlaying) {
                // Pause modal audio first
                modalAudio.pause();
                
                // Set up fixed player
                fixedPlayerBar.style.display = 'block';
                fixedPlayerTitle.textContent = window.currentEpisodeTitle;
                fixedPlayerAudio.src = currentAudioUrl;
                fixedPlayerAudio.currentTime = modalAudio.currentTime;
                fixedPlayerAudio.play();
            }
            
            document.getElementById("player-modal").style.display = "none";
        }

    // Add close fixed player function
    window.closeFixedPlayer = function() {
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        fixedPlayerAudio.pause();
        fixedPlayerBar.style.display = 'none';
    }

        window.startChromecast = function() {
            if (!chrome.cast || !chrome.cast.isAvailable) {
                console.log('Cast API not available');
                return;
            }

            chrome.cast.requestSession(
                function(session) {
                    if (currentAudioUrl) {
                        const mediaInfo = new chrome.cast.media.MediaInfo(currentAudioUrl, 'audio/mpeg');
                        mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();
                        mediaInfo.metadata.title = document.querySelector('#player-content h2').textContent;

                        const request = new chrome.cast.media.LoadRequest(mediaInfo);
                        session.loadMedia(request).then(
                            () => console.log('Lecture Chromecast démarrée'),
                            errorCode => console.error('Erreur Chromecast: ' + errorCode)
                        );
                    }
                },
                function(error) {
                    console.error('Erreur lors de la création de la session:', error);
                }
            );
        }

        window.shareOnX = function() {
            const text = "Écoutez les podcasts : NRJ Ciné News de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}&url=${encodeURIComponent(url)}`, '_blank');
        };

        window.shareOnWhatsapp = function() {
            const text = "Écoutez les podcasts : NRJ Ciné News animé par Louis Daubé de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://wa.me/?text=${encodeURIComponent(text + ' ' + url)}`, '_blank');
        };

        window.shareOnFacebook = function() {
          const text = "Écoutez les podcasts : NRJ Ciné News de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(url)}`, '_blank');
        };

        window.shareOnLinkedIn = function() {
          const text = "Écoutez les podcasts : NRJ Ciné News de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(url)}`, '_blank');
        };

        window.filterAndDisplayEpisodes = function() {
            const searchTerm = document.getElementById('podcast-search').value.toLowerCase();
            const filterValue = document.getElementById('podcast-filter').value;
            
            // Filter episodes based on search term
            filteredEpisodes = allEpisodes.filter(episode => 
                episode.title.toLowerCase().includes(searchTerm) || 
                episode.description.toLowerCase().includes(searchTerm)
            );
            
            // Sort episodes based on filter value
            if (filterValue === 'oldest') {
                filteredEpisodes.sort((a, b) => new Date(a.pubDate) - new Date(b.pubDate));
            } else {
                filteredEpisodes.sort((a, b) => new Date(b.pubDate) - new Date(a.pubDate));
            }
            
            // Reset pagination to first page when filtering
            currentPage = 1;
            
            // Update display
            if (filteredEpisodes.length > 0) {
                displayFeaturedEpisode(filteredEpisodes[0]);
                displayEpisodes(currentPage, filteredEpisodes);
                setupPagination(filteredEpisodes);
            } else {
                // Handle no results
                document.getElementById('episode-grid').innerHTML = '<p style="color: #fff; text-align: center; grid-column: 1/-1;">Aucun résultat trouvé</p>';
                document.getElementById('page-numbers').innerHTML = '';
            }
        }
    })();
</script>
</div>
</div></div></body></html>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-551c4bf e-con-full e-flex e-con e-parent" data-id="551c4bf" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-9371460 elementor-widget elementor-widget-shortcode" data-id="9371460" data-element_type="widget" data-widget_type="shortcode.default">
				<div class="elementor-widget-container">
							<div class="elementor-shortcode"></div>
						</div>
				</div>
				</div>
				</div>
		<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-cine-news-nrj/">🗣️ Podcast et replay &#8211; NRJ Ciné News</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://radiostreamr.com/radio-france/podcast-cine-news-nrj/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; Prime Video News &#8211; NRJ</title>
		<link>https://radiostreamr.com/radio-france/podcast-prime-video-nrj/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-prime-video-nrj/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 18 Nov 2024 16:48:52 +0000</pubDate>
				<category><![CDATA[NRJ]]></category>
		<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1348</guid>

					<description><![CDATA[<p>Prime Vidéo News animé par Louis Daubé &#8211; Écoutez en rediffusion tous les podcasts NRJ Plus récentsPlus anciens Publicité Prime Vidéo News &#8211; Chronique de Louis Daubé sur NRJ Voir leur Facebook Voir leur Instagram Voir leur site web Découvrez « Prime Vidéo News », une chronique hebdomadaire incontournable animée par Louis Daubé sur NRJ ! Chaque [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-prime-video-nrj/">🗣️ Podcast et replay &#8211; Prime Video News &#8211; NRJ</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1348" class="elementor elementor-1348" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-dce457e e-con-full e-flex e-con e-parent" data-id="dce457e" data-element_type="container">
				<div class="elementor-element elementor-element-9f9be1c 1995 elementor-widget elementor-widget-html" data-id="9f9be1c" data-element_type="widget" id="1995" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<!DOCTYPE html><html><head><meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&amp;display=swap" rel="stylesheet">
<style>
    .rtl-podcast-player * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: 'Roboto', sans-serif;
    }

  .rtl-podcast-player #pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: 100% !important;
}

@keyframes gradientBG {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.rtl-podcast-player body {
    background: linear-gradient(-45deg, #0a192f, #172a45, #1a365d, #102235);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    min-height: 100vh;
    display: flex;
    align-items: center;
    color: #fff;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
}

    .rtl-podcast-player .container {
        display: grid;
        grid-template-columns: 1.2fr 2.8fr;
        gap: 20px;
        margin: 0 auto;
        padding: 50px 150px !important;
        width: 100%;
        background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
        background-size: 400% 400%;
        animation: gradientBG 15s ease infinite;
        border-radius: 0;
        box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);
    }


    @media (max-width: 1024px) {
        .rtl-podcast-player .container {
            padding: 30px 45px;
            grid-template-columns: 1fr 2fr;
        }
        
        .rtl-podcast-player h1 {
            font-size: 2em;
        }
    }


    @media (max-width: 768px) {
        .rtl-podcast-player .container {
            padding: 20px !important; /* Override padding */
            margin: 0 !important; /* Reset margin */
            width: 100% !important;
            max-width: 100% !important;
            grid-template-columns: 1fr;
            overflow-x: hidden; /* Prevent horizontal scroll */
        }
        
        .rtl-podcast-player #episode-grid,
        .rtl-podcast-player .episode,
        .rtl-podcast-player #featured-episode,
        .rtl-podcast-player .host-biography,
        .rtl-podcast-player .social-share-buttons {
            width: 100% !important;
            margin-left: auto !important;
            margin-right: auto !important;
            padding: 15px !important;
        }
        
        .rtl-podcast-player h1,
        .rtl-podcast-player h2,
        .rtl-podcast-player p {
            padding-left: 10px !important;
            padding-right: 10px !important;
            text-align: center;
        }

        .rtl-podcast-player #episode-grid {
            grid-template-columns: 1fr !important; /* Force single column */
            gap: 20px;
        }
        
        .rtl-podcast-player .episode {
            width: 100% !important;
            margin: 0 auto !important;
        }
    }


@media (max-width: 480px) {
    .rtl-podcast-player .container {
        padding: 10px !important;
    }
    
    .rtl-podcast-player #featured-episode,
    .rtl-podcast-player .episode {
        padding: 15px !important;
        width: 100% !important;
        margin: 0 auto !important;
    }
}

.rtl-podcast-player h1 {
    color: #00ffff;
    text-align: center;
    font-size: 2.3em;
    margin-bottom: 40px;
    font-weight: 700;
    width: 100%;
    grid-column: 1 / -1;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.3);
}

  #fixed-player-bar {
        display: flex;               /* Assure l'affichage en flex */
        flex-direction: column;       /* Organisation en colonne */
        align-items: center;          /* Centre les éléments */
        padding: 10px;
        gap: 10px;                    /* Espace entre chaque ligne */
        background: rgba(26, 26, 26, 0.95); /* Conserve l’arrière-plan */
        display: none;                /* Masqué par défaut */
    }

    /* Ligne 1 : Titre de l'épisode */
    #fixed-player-title {
        display: block;               /* Force l'affichage sur une ligne complète */
        text-align: center;
        font-size: 1.2em;
        color: #00ffff;
        width: 100%;                  /* Prend la largeur complète */
    }

    /* Ligne 2 : Player audio */
    #fixed-player-audio {
        display: block;               /* Force l'affichage sur une ligne complète */
        width: 100%;
    }

    /* Ligne 3 : Conteneur pour les boutons Chromecast et fermeture */
    .audio-controls-container {
        display: flex;
        justify-content: center;
        gap: 20px;
        width: 100%;                  /* Assure une disposition sur toute la largeur */
    }

    /* Styles des boutons */
    #chromecast-button, #close-fixed-player {
        width: 40px;
        height: 40px;
        border: none;
        cursor: pointer;
    }
}

  @media (max-width: 768px) {
    .rtl-podcast-player h1 {
        margin-top: 0px !important; /* Ajustez la valeur selon vos besoins */
    }
}
  
.rtl-podcast-player #featured-episode {
    /* Remplacer ces styles */
    display: flex;
    flex-direction: column;
    height: 100%; /* Ajout de cette ligne */
    padding: 30px;
    border-radius: 15px;
    background-color: transparent;
    color: #ffffff;
    transition: all 0.3s ease;
}

.rtl-podcast-player #featured-episode:hover {
    transform: translateY(-5px);
}

.rtl-podcast-player #featured-episode h3 {
    color: #00ffff;
    margin-bottom: 15px;
    font-weight: 500;
}

.rtl-podcast-player #featured-episode button, .rtl-podcast-player .episode button {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    padding: 0;
    background-image: url('https://static.vecteezy.com/system/resources/thumbnails/017/196/540/small/3d-play-button-icon-transparent-background-free-png.png');
    background-size: 35px;
    background-position: center;
    background-repeat: no-repeat;
    font-size: 0;
    position: relative;
}

    .rtl-podcast-player .date-badge {
        background: rgba(0, 255, 255, 0.1);
        border: 2px solid #00ffff;
        border-radius: 8px;
        padding: 8px 15px;
        color: #00ffff;
        font-weight: bold;
        text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
        box-shadow: 
            0 0 5px rgba(0, 255, 255, 0.2),
            0 0 10px rgba(0, 255, 255, 0.2),
            0 0 15px rgba(0, 255, 255, 0.2),
            0 0 20px rgba(0, 255, 255, 0.2);
        animation: neonPulse 1.5s ease-in-out infinite;
        margin: 15px auto 20px auto; /* Increased bottom margin */
        display: block; /* Changed from inline-block to block */
        width: fit-content;
    }

    @keyframes neonPulse {
        0%, 100% {
            box-shadow: 
                0 0 5px rgba(0, 255, 255, 0.2),
                0 0 10px rgba(0, 255, 255, 0.2),
                0 0 15px rgba(0, 255, 255, 0.2),
                0 0 20px rgba(0, 255, 255, 0.2);
        }
        50% {
            box-shadow: 
                0 0 10px rgba(0, 255, 255, 0.4),
                0 0 20px rgba(0, 255, 255, 0.4),
                0 0 30px rgba(0, 255, 255, 0.4),
                0 0 40px rgba(0, 255, 255, 0.4);
        }
    }


.rtl-podcast-player #featured-episode img,
.rtl-podcast-player .episode img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .modal-content img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .episode button:hover::after,
.rtl-podcast-player #featured-episode button:hover::after {
    content: "Ecouter ce podcast";
    position: absolute;
    bottom: -35px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 14px;
    white-space: nowrap;
    z-index: 1000;
}

.rtl-podcast-player #featured-episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #episode-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

    .rtl-podcast-player .episode {
        padding: 20px;
        border-radius: 15px;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.1);
        text-align: center;
        background-color: #1a1a1a;
        transition: all 0.3s ease;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .rtl-podcast-player .episode p {
        color: #ffffff;
    }


.rtl-podcast-player .episode:hover {
    box-shadow: 0 0 20px rgba(0, 255, 255, 0.2);
    transform: translateY(-3px);
}

.rtl-podcast-player .episode h5 {
    margin-bottom: 10px;
    color: #00ffff;
}

.rtl-podcast-player .episode a {
    color: #00ffff;
    text-decoration: none;
}

    .rtl-podcast-player .episode button:hover {
        background-color: #00cccc;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
    }
    
    .search-filter-container {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 15px;
        margin-bottom: 30px;
        width: 100%;
    }

    .search-filter-container input,
    .search-filter-container select {
        padding: 10px 15px;
        border: 2px solid #00ffff;
        border-radius: 8px;
        background: rgba(0, 0, 0, 0.3);
        color: #fff;
        font-size: 16px;
        width: 200px;
    }

    .search-filter-container input::placeholder {
        color: rgba(255, 255, 255, 0.6);
    }

    .search-filter-container input:focus,
    .search-filter-container select:focus {
        outline: none;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
    }

    .search-filter-container select {
        cursor: pointer;
    }

    .search-filter-container select option {
        background-color: #1a1a1a;
        color: #fff;
    }

    @media (max-width: 768px) {
        .search-filter-container {
            flex-direction: column;
            gap: 10px;
        }

        .search-filter-container input,
        .search-filter-container select {
            width: 100%;
            max-width: 300px;
        }
    }

    color: #000;
    border: none;
    padding: 8px 20px;
    border-radius: 20px;
    cursor: pointer;
    font-weight: 500;
    transition: all 0.3s ease;
    margin-top: 10px; /* Add space above button */
    display: block; /* Ensure block-level display */
    margin-left: auto;
    margin-right: auto;
}

.rtl-podcast-player .episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player .pagination {
    text-align: center !important;
    margin-top: 30px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: auto !important;
}

  .rtl-podcast-player #page-numbers {
    display: flex !important;
    gap: 5px !important;
    margin: 0 5px !important;
}
  
.rtl-podcast-player .pagination button,
.rtl-podcast-player .pagination #prev-btn,
.rtl-podcast-player .pagination #next-btn {
    margin: 0 !important;  /* Changé de 5px à 0 */
    padding: 8px 16px;
    font-size: 1em;
    background-color: #1a1a1a;
    color: #00ffff;
    border: 1px solid #00ffff;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s ease;
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.rtl-podcast-player .pagination button:hover {
    background-color: #00ffff;
    color: #000;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
}

.rtl-podcast-player .modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(8px);
}

.rtl-podcast-player .modal-content {
    background-color: #1a1a1a;
    padding: 40px;
    border: 2px solid #00ffff;
    width: 90%;
    max-width: 500px;
    max-height: 90vh;
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    overflow-y: auto;
    color: white;
}

.rtl-podcast-player .close {
    position: absolute;
    top: 10px;
    right: 20px;
    color: #00ffff;
    font-size: 35px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.3s;
}

.rtl-podcast-player .close:hover {
    color: #00cccc;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #chromecast-button {
    background-color: #00ffff;
    border: none;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
    color: #000;
    margin-top: 20px;
    font-weight: bold;
    display: inline-block;
}

.rtl-podcast-player audio::-webkit-media-controls-panel {
    background-color: #2a2a2a;
}

.rtl-podcast-player audio::-webkit-media-controls-current-time-display,
.rtl-podcast-player audio::-webkit-media-controls-time-remaining-display {
    color: #000000;
}

.rtl-podcast-player #fixed-player-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(26, 26, 26, 0.95);
    backdrop-filter: blur(10px);
    padding: 10px 20px;
    z-index: 999;
    border-top: 2px solid #00ffff;
}

.rtl-podcast-player .fixed-player-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    gap: 20px;
}


.rtl-podcast-player #fixed-player-title {
    color: #00ffff;
    font-size: 1em;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.rtl-podcast-player #fixed-player-audio {
    flex: 2;
    max-width: 500px;
}

.episode-card {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(0, 255, 255, 0.3);
    border-radius: 15px;
    padding: 20px;
    margin-bottom: 20px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.episode-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 255, 255, 0.2);
}

.episode-card img {
    width: 100%;
    max-width: 200px;
    border-radius: 10px;
    margin: 10px 0;
}

.episode-card button {
    margin-top: 10px;
}
  
/* Conserve les styles des boutons play et mute */
audio::-webkit-media-controls-play-button,
audio::-webkit-media-controls-mute-button {
    background-color: #40E0D0 !important; /* Bleu turquoise */
    border-radius: 50% !important;
    transition: all 0.3s ease !important;
}

audio::-webkit-media-controls-play-button:hover,
audio::-webkit-media-controls-mute-button:hover {
    background-color: #5FECEC !important; /* Bleu turquoise plus clair au survol */
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5) !important;
}

/* Tentative pour changer la couleur du trait de progression */
audio::-webkit-media-controls-timeline {
    color: #a6a6a6 !important; /* Essaye de cibler le trait turquoise */
}

/* Modifie la couleur des trois petits points */
audio::-webkit-media-controls-panel {
    background-color: transparent !important; /* Assure que le fond ne prend pas de couleur */
    color: #40E0D0 !important; /* Forcer la couleur turquoise pour les trois points */
}

/* Tentative supplémentaire pour cibler le trait du curseur de progression */
audio::-webkit-slider-runnable-track {
    background-color: #40E0D0 !important; /* Bleu turquoise pour la piste */
}

audio::-webkit-slider-thumb {
    background-color: #a6a6a6 !important; /* Plus clair pour le curseur lui-même */
}


@media (max-width: 768px) {
    .rtl-podcast-player .fixed-player-content {
        flex-direction: column;
        gap: 10px;
        padding: 15px;
    }

    .rtl-podcast-player #fixed-player-audio {
        width: 100%;
        max-width: 100%;
    }

    .rtl-podcast-player #fixed-player-title {
        width: 100%;
        text-align: center;
        font-size: 0.9em;
    }
}

.rtl-podcast-player .social-button {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease-in-out;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.rtl-podcast-player .social-button:hover {
    transform: scale(1.1);
}

@media (max-width: 768px) {
    .rtl-podcast-player .social-share-buttons {
        gap: 10px;
    }
    
    .rtl-podcast-player .social-button {
        width: 40px;
        height: 40px;
    }
    
    .rtl-podcast-player .social-button svg {
        width: 20px;
        height: 20px;
    }
}

.navigation-buttons {
    position: absolute;
    width: 100%;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 10px;
    pointer-events: none;
    z-index: 1000;
}

.nav-button {
    background: rgba(0, 0, 0, 0.7);
    border: 2px solid #00ffff;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    pointer-events: auto;
}  

.nav-button:hover {
    background: rgba(0, 255, 255, 0.2);
    transform: scale(1.1);
}

.nav-button svg {
    width: 24px;
    height: 24px;
}

@media (max-width: 768px) {
    .nav-button {
        width: 35px;
        height: 35px;
    }
    
    .nav-button svg {
        width: 20px;
        height: 20px;
    }
}
</style>
<script type="text/javascript" src="//www.gstatic.com/cv/js/sender/v1/cast_sender.js"></script>

</head><body>
<div class="rtl-podcast-player">
    <div class="container" style="background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    border-radius: 0; /* Changed from 20px to 0 */
    box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);">
    <h1 style="color: #00ffff; text-align: center; font-size: 2.1em; margin-bottom: 40px; font-weight: 700; width: 100%; grid-column: 1 / -1; text-shadow: 0 0 10px rgba(0, 255, 255, 0.3); padding: 0 15px; display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap;">
Prime Vidéo News animé par Louis Daubé - Écoutez en rediffusion tous les podcasts NRJ
<img decoding="async" src="https://cdn.uc.assets.prezly.com/b1be11c1-7593-48e0-b0d3-dfedd93ef5a2/-/inline/no/Newsroom+Icon-NRJ.png" alt="Logo Europe 1" style="width: 60px; height: 60px; border-radius: 50%; padding: 5px; background: white; box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);">
</h1>
    <div class="social-share-buttons" style="display: flex; justify-content: center; align-items: center; gap: 15px; margin-bottom: 30px; width: 100%; grid-column: 1 / -1;">
    <button onclick="shareOnX()" class="social-button" style="background-color: #000;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnWhatsapp()" class="social-button" style="background-color: #25D366;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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.298-.347.446-.52.149-.174.198-.298.298-.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>
        </svg>
    </button>
    <button onclick="shareOnFacebook()" class="social-button" style="background-color: #1877F2;">  
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnLinkedIn()" class="social-button" style="background-color: #0A66C2;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
</div>
      
    <div id="featured-episode" style="display: flex; flex-direction: column; align-items: center; text-align: center; justify-content: space-between; gap: 20px; height: 100%; position: relative; padding-top: 20px; cursor: pointer;">
  <div class="features-episode" style="width: 100%; height: 100%;">
    <!-- Première carte (dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
            
    <!-- Deuxième carte (avant-dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
  </div>
</div>
    <div>
    <div class="search-filter-container">
        <input type="text" id="podcast-search" placeholder="Rechercher un podcast..." oninput="filterAndDisplayEpisodes()">
        <select id="podcast-filter" onchange="filterAndDisplayEpisodes()">
            <option value="newest">Plus récents</option>
            <option value="oldest">Plus anciens</option>
        </select>
    </div>
    <div id="episode-grid">
        <style>
            .episode {
                cursor: pointer;
            }
            
            .episode > * {
                pointer-events: none;
            }
            
            .episode button {
                pointer-events: auto;
            }
        </style>
    </div>
    <div class="pagination" id="pagination">
    <button id="prev-btn" onclick="changePage('prev')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M15 18l-6-6 6-6"></path>
        </svg>
    </button>
    <span id="page-numbers"></span>
    <button id="next-btn" onclick="changePage('next')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M9 18l6-6-6-6"></path>
        </svg>
    </button>
</div>

      <div class="ad-banner" style="width: 100%; max-width: 508px; margin: 20px auto; text-align: center; grid-column: 1 / -1; background: rgba(0,0,0,0.3); padding: 15px; border-radius: 10px; border: 1px solid rgba(0, 255, 255, 0.2); transition: transform 0.3s ease;">
    <p style="color: #666; font-size: 12px; margin-bottom: 10px;">Publicité</p>
    <a href="https://universal-academy.com/recruter-des-alternants-dans-le-tourisme/" target="_blank" style="display: inline-block;">
        <img decoding="async" src="https://radiostreamr.com/radio-france/wp-content/uploads/2024/11/Design-sans-titre-2024-11-06T134332.299.webp" alt="Bannière publicitaire RTL" style="width: 100%; max-width: 700px; height: auto; border-radius: 8px; transition: transform 0.3s ease;" onmouseover="this.style.transform='scale(1.02)'" onmouseout="this.style.transform='scale(1)'">
    </a>
</div>

    <script>
        // Ajouter un event listener pour les cartes d'épisodes
        document.getElementById('episode-grid').addEventListener('click', (e) => {
            const episodeCard = e.target.closest('.episode');
            if (episodeCard) {
                // Trouver le bouton dans la carte et simuler un clic dessus
                const button = episodeCard.querySelector('button');
                if (button) {
                    button.click();
                }
            }
        });
    </script>
</div>
    
    <div class="host-biography" style="grid-column: 1 / -1; background: rgba(0, 0, 0, 0.3); padding: 30px; border-radius: 15px; margin-top: 30px; border: 1px solid rgba(0, 255, 255, 0.2);">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
        <!-- Media query pour passer en une colonne sur mobile -->
        <style>
            @media (max-width: 768px) {
                .host-biography > div {
                    grid-template-columns: 1fr !important;
                }
            }
        </style>

      <div class="host-biography" style="grid-column: 1 / -1; padding: 30px; border-radius: 15px; margin-top: 30px;">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
      <div style="grid-column: 1 / -1; margin-bottom: 30px; text-align: center;">
    <div style="color: #ffffff; line-height: 1.6; text-align: center;">
    <h2 style="color: #00ffff; margin-bottom: 20px; text-align: center;">Prime Vidéo News - Chronique de Louis Daubé sur NRJ</h2>
</div>

    <!-- Nouveaux boutons de réseaux sociaux -->
    <div style="display: flex; justify-content: center; align-items: center; gap: 20px; margin: 20px 0;">
        <a href="https://www.facebook.com/nrjradio/?locale=fr_FR" target="_blank" style="position: relative; width: 50px; height: 50px; background: #1877F2; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M18.77 7.46H14.5v-1.9c0-.9.6-1.1 1-1.1h3V.5h-4.33C10.24.5 9.5 3.44 9.5 5.32v2.15h-3v4h3v12h5v-12h3.85l.42-4z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Facebook</span>
</a>

        <a href="https://www.instagram.com/nrjhitmusiconly/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #E4405F; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Instagram</span>
</a>

        <a href="https://www.nrj.fr/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #00ffff; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#000000">
        <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur site web</span>
</a>
    </div>

    <style>
        /* Hover effects pour les boutons */
        .host-biography a:hover {
            transform: scale(1.1);
            box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
        }
        
        .host-biography a:hover span {
            opacity: 1;
        }

        /* Media queries pour le responsive */
        @media (max-width: 768px) {
            .host-biography div[style*="display: flex"] {
                flex-wrap: wrap;
                justify-content: center;
                gap: 15px;
            }
        }
    </style>

    <p style="color: #ffffff; line-height: 1.6; text-align: center; max-width: 1200px; margin: 0 auto;">
    Découvrez "Prime Vidéo News", une chronique hebdomadaire incontournable animée par Louis Daubé sur NRJ ! Chaque semaine, Louis vous présente en format court un film ou une série à découvrir sur Amazon Prime Video. Dans une ambiance dynamique et passionnée, il décortique les dernières nouveautés et pépites de la plateforme de streaming, vous donnant toutes les clés pour faire votre choix parmi le vaste catalogue d'Amazon. Entre critiques constructives, analyses pertinentes et recommandations personnalisées, Louis Daubé partage son expertise cinématographique pour vous aider à dénicher les meilleures productions à ne pas manquer. Que vous soyez fan de films d'action, de comédies, de séries dramatiques ou de documentaires, "Prime Vidéo News" est votre guide idéal pour naviguer dans l'univers d'Amazon Prime Video et enrichir votre liste de visionnage !
</p>
    
    <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-top: 30px; padding: 20px;">
        <!-- Les 6 cartes existantes restent inchangées -->
        <!-- Carte 1 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M3 18v-6a9 9 0 0 1 18 0v6"></path>
                <path d="M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z"></path>
            </svg>
            <p style="color: #ffffff; margin: 0;">Écouter gratuitement tous les podcasts en streaming</p>
        </div>

        <!-- Carte 2 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
                <polyline points="7 10 12 15 17 10"></polyline>
                <line x1="12" y1="15" x2="12" y2="3"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Télécharger les épisodes pour une écoute hors-ligne</p>
        </div>

        <!-- Carte 3 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6"></path>
                <line x1="2" y1="20" x2="2" y2="20"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Diffuser sur votre Chromecast ou appareil compatible</p>
        </div>

        <!-- Carte 4 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="12" cy="12" r="10"></circle>
                <polygon points="10 8 16 12 10 16 10 8"></polygon>
            </svg>
            <p style="color: #ffffff; margin: 0;">Accéder à toutes les rediffusions des émissions précédentes</p>
        </div>

        <!-- Carte 5 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
        <circle cx="9" cy="7" r="4"></circle>
        <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
        <path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Découvrez chaque semaine les nouveautés Prime Video avec Louis Daubé ! Une chronique courte et rythmée pour ne rien rater des films et séries à voir sur la plateforme.</p>
</div>

        <!-- Carte 6 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px; position: relative;" onmouseover="this.style.transform='translateY(-5px)'; document.getElementById('live-tooltip').style.opacity='1'" onmouseout="this.style.transform='translateY(0)'; document.getElementById('live-tooltip').style.opacity='0'" onclick="window.location.href='https://radiostreamr.com/radio-france/ecoutez-en-direct-nrj/'">
    <div id="live-tooltip" style="position: absolute; top: -40px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.8); color: #fff; padding: 8px 15px; border-radius: 5px; font-size: 14px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none; border: 1px solid #00ffff; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">
        Cliquez pour écouter en direct NRJ
    </div>
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M4 12h1"></path>
        <path d="M9 12h1"></path>
        <path d="M14 12h1"></path>
        <path d="M19 12h1"></path>
        <rect x="2" y="8" width="20" height="12" rx="2"></rect>
        <path d="M6 8V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v4"></path>
        <circle cx="12" cy="14" r="4"></circle>
        <path d="M12 10v8"></path>
        <path d="M8 14h8"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Écoutez en direct NRJ et retrouvez chaque semaine la chronique Prime Vidéo News de Louis Daubé pour découvrir les meilleures nouveautés sur Amazon Prime Video !</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;">
    Le lundi après-midi
</p>
</div>
    </div>
</div>
        
        <!-- Histoire de l'émission -->
        <div style="padding: 20px; text-align: center;">
    <h2 style="color: #00ffff; margin-bottom: 20px; text-align: center;">L'Histoire de Prime Vidéo News</h2>
    <p style="color: #ffffff; line-height: 1.6; text-align: center;">
        "Prime Vidéo News" est une chronique hebdomadaire incontournable sur NRJ, animée par Louis Daubé. Chaque semaine, Louis présente aux auditeurs les dernières nouveautés et pépites à découvrir sur la plateforme de streaming Amazon Prime Video.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        Des blockbusters aux séries événements, en passant par les documentaires et les productions originales, Louis Daubé partage sa passion du cinéma et des séries en proposant des critiques constructives et des recommandations personnalisées qui aident les auditeurs à faire leur choix dans le vaste catalogue d'Amazon Prime Video.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        Avec son style unique et son expertise cinématographique, cette chronique est devenue un rendez-vous privilégié pour des millions d'auditeurs qui découvrent chaque semaine les meilleures productions à ne pas manquer. Entre analyses pertinentes et suggestions passionnées de Louis Daubé, "Prime Vidéo News" nous guide à travers les contenus les plus prometteurs de la plateforme !
    </p>
    <div style="margin-top: 20px;">
        <img decoding="async" src="https://www.leparisien.fr/resizer/1hRtTwhoiQWyyGW7l88I2lKvWRU=/932x582/cloudfront-eu-central-1.images.arcpublishing.com/leparisien/D77PSXPXNNEQPJ2JYQPRDBW3LA.jpg" alt="Studio On marche sur la tête" style="width: 100%; max-width: 400px; border-radius: 15px; box-shadow: 0 0 20px rgba(0, 255, 255, 0.3);">
    </div>
</div>

        <!-- Biographie de Laurent Ruquier -->
        <div style="display: flex; flex-direction: column; align-items: center; gap: 20px;">
    <div style="width: 200px; height: 200px; border-radius: 50%; overflow: hidden; border: 3px solid #00ffff;">
        <img decoding="async" src="https://media.licdn.com/dms/image/v2/C4E22AQEVM_brsuA1rw/feedshare-shrink_800/feedshare-shrink_800/0/1663867246916?e=2147483647&amp;v=beta&amp;t=YXxJe2s-X_07eHfjsrNbAkAz6FD9iTIKH2IzNIaxLeY" alt="Louis Daubé portrait photo" style="width: 100%; height: 100%; object-fit: cover;">
    </div>
    <div style="text-align: center;">
        <h2 style="color: #00ffff; margin-bottom: 20px;">Louis Daubé - Chroniqueur Prime Vidéo News sur NRJ</h2>
        <p style="color: #ffffff; line-height: 1.8;">
            Louis Daubé est le chroniqueur dynamique et passionné de cinéma qui anime chaque semaine la chronique "Prime Vidéo News" sur NRJ. Sa mission ? Faire découvrir aux auditeurs les meilleures nouveautés disponibles sur la plateforme de streaming Amazon Prime Video.

Avec son style unique et son expertise cinématographique, Louis Daubé a su créer un rendez-vous hebdomadaire attendu par les amateurs de films et séries. Dans un format court et percutant, il présente les dernières sorties, analyse les contenus et partage ses coups de cœur avec enthousiasme et professionnalisme.

Sa capacité à synthétiser l'essentiel et à transmettre sa passion fait de sa chronique un guide précieux pour les auditeurs à la recherche de leur prochain visionnage. Que ce soit pour un blockbuster, une série événement ou un documentaire captivant, Louis Daubé apporte un éclairage pertinent qui aide son audience à faire les meilleurs choix dans le catalogue d'Amazon Prime Video.

À travers "Prime Vidéo News", Louis Daubé démontre chaque semaine son talent pour vulgariser et partager sa passion du cinéma, faisant de sa chronique un moment incontournable pour tous ceux qui souhaitent rester informés des dernières pépites disponibles sur la plateforme.
        </p>
    </div>
</div>

        <!-- Sources (span across both columns) -->
        <div style="grid-column: 1 / -1; margin-top: 20px; padding: 15px; background: rgba(0, 0, 0, 0.2); border-radius: 10px; text-align: center;">
    <h3 style="color: #00ffff; margin-bottom: 10px; font-size: 1.2em;">Sources :</h3>
    <ul style="list-style: none; padding: 0; text-align: center; display: flex; justify-content: center; gap: 20px; flex-wrap: wrap;">
        <li>
            <a href="https://www.instagram.com/louisnrj/?hl=fr" target="_blank" style="color: #00ffff; text-decoration: none; transition: all 0.3s; padding: 5px 10px; border-radius: 5px; display: inline-block; &amp;:hover { background: rgba(0, 255, 255, 0.1); transform: translateY(-2px); box-shadow: 0 0 15px rgba(0, 255, 255, 0.3); }">• Page Instagram de Louis</a>
        </li>
    </ul>
</div>
    </div>
</div>

</div>

    <div id="player-modal" class="modal">
    <div class="modal-content">
        <span class="close" onclick="closeModal()">×</span>
        <div id="player-content">
        </div>
        <button id="chromecast-button" onclick="startChromecast()" style="width: 60px; height: 60px; border-radius: 50%; padding: 0; background-image: url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png'); background-size: 35px; background-position: center; background-repeat: no-repeat; font-size: 0;"></button>
    </div>
</div>
    <div id="player-content">
    <style>
        /* Styles existants */
        .modal-content {
            background-color: #1a1a1a;
            padding: 40px;
            border: 2px solid #00ffff;
            width: 90%;
            max-width: 500px;
            max-height: 90vh;
            border-radius: 20px;
            text-align: center;
            box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
            position: fixed; /* Changé de absolute à fixed */
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) !important; /* Ajout de !important */
            overflow-y: auto;
            color: white;
        }

        /* Change la couleur du timing en noir */
        audio::-webkit-media-controls-time-display {
            color: #000000 !important;
        }

        /* Ajout de media queries pour le mobile */
        @media (max-width: 768px) {
            .modal-content {
                padding: 30px;
                width: 95%;
                margin: 0 auto;
                position: fixed;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%) !important;
            }
        }

        @media (max-height: 600px) {
            .modal-content {
                max-height: 85vh;
            }
        }
    </style>
</div>

    <div id="fixed-player-bar" class="rtl-podcast-player" style="display: none;">
    <div class="fixed-player-content">
        <h3 id="fixed-player-title"></h3>
        <div class="audio-controls-container" style="display: flex; align-items: center; justify-content: center; gap: 20px; width: 100%; max-width: 800px; margin: 0 auto;">
            <audio id="fixed-player-audio" controls="">
                <source src="" type="audio/mpeg">
            </audio>
            <button onclick="startChromecast()" style="width: 40px; height: 40px; min-width: 40px; border-radius: 50%; padding: 0; background: #ffffff url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png') center/25px no-repeat; border: 2px solid #00ffff; font-size: 0; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">Cast to Chromecast</button>
            <button id="close-fixed-player" onclick="closeFixedPlayer()" style="background: none; border: none; color: #00ffff; font-size: 24px; cursor: pointer; padding: 5px; min-width: 24px; display: flex; align-items: center; justify-content: center;">×</button>
        </div>
    </div>
</div>

    <script>
    (function RTLPodcastPlayer() {
        // Initialize cast api
        window.__onGCastApiAvailable = function(isAvailable) {
            if (!isAvailable) return;

            const initializeCastApi = function() {
                const sessionRequest = new chrome.cast.SessionRequest(chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID);
                const apiConfig = new chrome.cast.ApiConfig(
                    sessionRequest,
                    sessionListener,
                    receiverListener
                );
                chrome.cast.initialize(apiConfig, onInitSuccess, onError);
            };

            const sessionListener = function(session) {
                console.log('Session listener', session);
            };

            const receiverListener = function(availability) {
                console.log('Receiver listener', availability);
            };

            const onInitSuccess = function() {
                console.log('Cast initialization success');
            };

            const onError = function(error) {
                console.error('Cast initialization error', error);
            };

            if (!chrome.cast || !chrome.cast.isAvailable) {
                setTimeout(initializeCastApi, 1000);
            } else {
                initializeCastApi();
            }
        };

        const rssUrl = "https://aod.nrjaudio.fm/xml/2440.xml";
        const proxyUrl = `https://api.rss2json.com/v1/api.json?rss_url=${encodeURIComponent(rssUrl)}&api_key=int3lqiwwrpnsvem6yki0mtwki2f4qcvcxtrlyea&count=150`;
        const episodesPerPage = 4;
        let currentPage = 1;
        let currentAudioUrl = '';
        let totalPages = 0;

        // Ajouter ces variables au début du script
        let currentEpisodeIndex = 0;
        let allEpisodes = [];
        let filteredEpisodes = [];

        fetch(proxyUrl)
            .then(response => response.json())
            .then(data => {
                if (data.status !== "ok") {
                    throw new Error("Erreur de chargement du flux RSS.");
                }
                allEpisodes = data.items;
                filteredEpisodes = [...allEpisodes];
                displayFeaturedEpisode(allEpisodes[0]);
                displayEpisodes(currentPage, filteredEpisodes);
                setupPagination(allEpisodes);
            })
            .catch(error => {
                document.getElementById("featured-episode").innerHTML = "<p>Impossible de charger le flux RSS. Veuillez réessayer plus tard.</p>";
            });

        function truncateDescription(description, maxLength = 180) {
        const tempElement = document.createElement("div");
        tempElement.innerHTML = description;
        let plainText = tempElement.innerText || tempElement.textContent || '';
        if (plainText.length <= maxLength) return plainText.trim();
        return plainText.substring(0, maxLength).trim() + '...';
    }

    function displayFeaturedEpisode(episode) {
        const featuredEpisode = document.getElementById("featured-episode");
        featuredEpisode.innerHTML = `
        <div class="features-episode" style="width: 100%; height: 100%;">
            <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[0].enclosure.link)}', '${sanitizeString(allEpisodes[0].title)}')">
                <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[0].title)}</h3>
                ${allEpisodes[0].thumbnail ? `<img decoding="async" src="${allEpisodes[0].thumbnail}" alt="Image de la dernière émission">` : ""}
                <div class="description" style="color: white;">${truncateDescription(allEpisodes[0].description)}</div>
                <div class="date-badge">
                    ${new Date(allEpisodes[0].pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button></button>
            </div>
            
            <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[1].enclosure.link)}', '${sanitizeString(allEpisodes[1].title)}')">
                <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[1].title)}</h3>
                ${allEpisodes[1].thumbnail ? `<img decoding="async" src="${allEpisodes[1].thumbnail}" alt="Image de l'avant-dernière émission">` : ""}
                <div class="description" style="color: white;">${truncateDescription(allEpisodes[1].description)}</div>
                <div class="date-badge">
                    ${new Date(allEpisodes[1].pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button></button>
            </div>
        </div>
        `;
    }

    function displayEpisodes(page, episodes) {
        const episodeGrid = document.getElementById("episode-grid");
        episodeGrid.innerHTML = "";
        const episodesWithoutFeatured = episodes.slice(2);
        const start = (page - 1) * episodesPerPage;  
        const end = start + episodesPerPage;
        
        episodesWithoutFeatured.slice(start, end).forEach(item => {
            episodeGrid.innerHTML += `
            <div class="episode">
                <h5 style="color: #00ffff;">${sanitizeString(item.title)}</h5>
                ${item.thumbnail ? `<img decoding="async" src="${item.thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 150px;">` : ""}
                <div class="description" style="color: white;">${truncateDescription(item.description)}</div>
                <div class="date-badge">
                    ${new Date(item.pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button onclick="openModal('${sanitizeString(item.enclosure.link)}', '${sanitizeString(item.title)}')"></button>
            </div>
            `;
        });
        updatePaginationButtons();
    }

    function setupPagination(episodes) {
        totalPages = Math.ceil((episodes.length - 2) / episodesPerPage);
        const pageNumbers = document.getElementById("page-numbers");
        pageNumbers.innerHTML = "";

        let start = currentPage;
        if (currentPage === totalPages) {
            start = totalPages - 2;
        } else if (currentPage === 1) {
            start = 1;
        } else {
            start = currentPage - 1;
        }

        start = Math.max(1, start);
        
        for (let i = start; i < start + 3 && i <= totalPages; i++) {
            const button = document.createElement("button");
            button.textContent = i;
            button.addEventListener("click", () => {
                currentPage = i;
                displayEpisodes(currentPage, episodes);
                setupPagination(episodes);
            });
            pageNumbers.appendChild(button);
        }

        window.changePage = function(direction) {
            if (direction === 'prev' && currentPage > 1) {
                currentPage--;
            } else if (direction === 'next' && currentPage < totalPages) {
                currentPage++;
            }
            displayEpisodes(currentPage, filteredEpisodes);
            setupPagination(episodes);
            updatePaginationButtons();
        }

        updatePaginationButtons();
    }

    function updatePaginationButtons() {
        const prevBtn = document.getElementById('prev-btn');
        const nextBtn = document.getElementById('next-btn');
        
        prevBtn.disabled = currentPage === 1;
        nextBtn.disabled = currentPage === totalPages;
        
        prevBtn.style.opacity = currentPage === 1 ? '0.5' : '1';
        nextBtn.style.opacity = currentPage === totalPages ? '0.5' : '1';
        
        const pageButtons = document.querySelectorAll('#page-numbers button');
        pageButtons.forEach((button, index) => {
            if (index + 1 === currentPage) {
                button.style.backgroundColor = '#00ffff';
                button.style.color = '#000';
            } else {
                button.style.backgroundColor = '#1a1a1a';
                button.style.color = '#00ffff';
            }
        });
    }

    function sanitizeString(str) {
        return str.replace(/['"\\<>]/g, "");
    }

    window.openModal = function(audioUrl, title) {
        const playerContent = document.getElementById("player-content");
        const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
        const thumbnail = currentEpisode?.thumbnail;
        
        playerContent.innerHTML = `
            <h2>${title}</h2>
            ${thumbnail ? `<img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0;">` : ''}
            <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
                <source src="${audioUrl}" type="audio/mpeg">
                Votre navigateur ne supporte pas la lecture audio.
            </audio>
        `;
        
        currentAudioUrl = audioUrl;
        document.getElementById("player-modal").style.display = "block";
        window.currentEpisodeTitle = title;
        
        const modalAudio = document.getElementById('modal-audio');
        modalAudio.addEventListener('play', () => {
            window.isPlaying = true;
        });
        modalAudio.addEventListener('pause', () => {
            window.isPlaying = false;
        });
    }

    window.closeModal = function() {
        const modalAudio = document.getElementById('modal-audio');
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        const fixedPlayerTitle = document.getElementById('fixed-player-title');
        
        if (window.isPlaying) {
            modalAudio.pause();
            fixedPlayerBar.style.display = 'block';
            fixedPlayerTitle.textContent = window.currentEpisodeTitle;
            fixedPlayerAudio.src = currentAudioUrl;
            fixedPlayerAudio.currentTime = modalAudio.currentTime;
            fixedPlayerAudio.play();
        }
        
        document.getElementById("player-modal").style.display = "none";
    }

    window.closeFixedPlayer = function() {
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        fixedPlayerAudio.pause();
        fixedPlayerBar.style.display = 'none';
    }

    window.startChromecast = function() {
        if (!chrome.cast || !chrome.cast.isAvailable) {
            console.log('Cast API not available');
            return;
        }

        chrome.cast.requestSession(
            function(session) {
                if (currentAudioUrl) {
                    const mediaInfo = new chrome.cast.media.MediaInfo(currentAudioUrl, 'audio/mpeg');
                    mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();
                    mediaInfo.metadata.title = document.querySelector('#player-content h2').textContent;

                    const request = new chrome.cast.media.LoadRequest(mediaInfo);
                    session.loadMedia(request).then(
                        () => console.log('Lecture Chromecast démarrée'),
                        errorCode => console.error('Erreur Chromecast: ' + errorCode)
                    );
                }
            },
            function(error) {
                console.error('Erreur lors de la création de la session:', error);
            }
        );
    }

        window.shareOnX = function() {
            const text = "Écoutez les podcasts : Prime Vidéo News animé par Louis Daubé de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}&url=${encodeURIComponent(url)}`, '_blank');
        };

        window.shareOnWhatsapp = function() {
            const text = "Écoutez les podcasts : Prime Vidéo News animé par Louis Daubé de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://wa.me/?text=${encodeURIComponent(text + ' ' + url)}`, '_blank');
        };

        window.shareOnFacebook = function() {
          const text = "Écoutez les podcasts : Prime Vidéo News animé par Louis Daubé de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(url)}`, '_blank');
        };

        window.shareOnLinkedIn = function() {
          const text = "Écoutez les podcasts : Prime Vidéo News animé par Louis Daubé de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(url)}`, '_blank');
        };

        window.filterAndDisplayEpisodes = function() {
            const searchTerm = document.getElementById('podcast-search').value.toLowerCase();
            const filterValue = document.getElementById('podcast-filter').value;
            
            // Filter episodes based on search term
            filteredEpisodes = allEpisodes.filter(episode => 
                episode.title.toLowerCase().includes(searchTerm) || 
                episode.description.toLowerCase().includes(searchTerm)
            );
            
            // Sort episodes based on filter value
            if (filterValue === 'oldest') {
                filteredEpisodes.sort((a, b) => new Date(a.pubDate) - new Date(b.pubDate));
            } else {
                filteredEpisodes.sort((a, b) => new Date(b.pubDate) - new Date(a.pubDate));
            }
            
            // Reset pagination to first page when filtering
            currentPage = 1;
            
            // Update display
            if (filteredEpisodes.length > 0) {
                displayFeaturedEpisode(filteredEpisodes[0]);
                displayEpisodes(currentPage, filteredEpisodes);
                setupPagination(filteredEpisodes);
            } else {
                // Handle no results
                document.getElementById('episode-grid').innerHTML = '<p style="color: #fff; text-align: center; grid-column: 1/-1;">Aucun résultat trouvé</p>';
                document.getElementById('page-numbers').innerHTML = '';
            }
        }
    })();
</script>
</div>
</div></div></body></html>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-551c4bf e-con-full e-flex e-con e-parent" data-id="551c4bf" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-9371460 elementor-widget elementor-widget-shortcode" data-id="9371460" data-element_type="widget" data-widget_type="shortcode.default">
				<div class="elementor-widget-container">
							<div class="elementor-shortcode"></div>
						</div>
				</div>
				</div>
				</div>
		<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-prime-video-nrj/">🗣️ Podcast et replay &#8211; Prime Video News &#8211; NRJ</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://radiostreamr.com/radio-france/podcast-prime-video-nrj/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; Les Sondages du Matin &#8211; Chronique de Manu dans le 6/10 &#8211; NRJ</title>
		<link>https://radiostreamr.com/radio-france/podcast-sondages-du-matin-nr/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-sondages-du-matin-nr/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 18 Nov 2024 10:54:59 +0000</pubDate>
				<category><![CDATA[NRJ]]></category>
		<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1341</guid>

					<description><![CDATA[<p>Les Sondages du Matin &#8211; Chronique de Manu dans le 6/10 &#8211; Écoutez en rediffusion tous les podcasts NRJ Plus récentsPlus anciens Publicité Les Sondages du Matin &#8211; Chronique de Manu dans le 6/10 Voir leur Facebook Voir leur Instagram Voir leur site web Découvrez « Les Sondages du Matin », une chronique quotidienne de l&#8217;émission « Manu [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-sondages-du-matin-nr/">🗣️ Podcast et replay &#8211; Les Sondages du Matin &#8211; Chronique de Manu dans le 6/10 &#8211; NRJ</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1341" class="elementor elementor-1341" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-dce457e e-con-full e-flex e-con e-parent" data-id="dce457e" data-element_type="container">
				<div class="elementor-element elementor-element-9f9be1c 1995 elementor-widget elementor-widget-html" data-id="9f9be1c" data-element_type="widget" id="1995" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<!DOCTYPE html><html><head><meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&amp;display=swap" rel="stylesheet">
<style>
    .rtl-podcast-player * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: 'Roboto', sans-serif;
    }

  .rtl-podcast-player #pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: 100% !important;
}

@keyframes gradientBG {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.rtl-podcast-player body {
    background: linear-gradient(-45deg, #0a192f, #172a45, #1a365d, #102235);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    min-height: 100vh;
    display: flex;
    align-items: center;
    color: #fff;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
}

    .rtl-podcast-player .container {
        display: grid;
        grid-template-columns: 1.2fr 2.8fr;
        gap: 20px;
        margin: 0 auto;
        padding: 50px 150px !important;
        width: 100%;
        background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
        background-size: 400% 400%;
        animation: gradientBG 15s ease infinite;
        border-radius: 0;
        box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);
    }


    @media (max-width: 1024px) {
        .rtl-podcast-player .container {
            padding: 30px 45px;
            grid-template-columns: 1fr 2fr;
        }
        
        .rtl-podcast-player h1 {
            font-size: 2em;
        }
    }


    @media (max-width: 768px) {
        .rtl-podcast-player .container {
            padding: 20px !important; /* Override padding */
            margin: 0 !important; /* Reset margin */
            width: 100% !important;
            max-width: 100% !important;
            grid-template-columns: 1fr;
            overflow-x: hidden; /* Prevent horizontal scroll */
        }
        
        .rtl-podcast-player #episode-grid,
        .rtl-podcast-player .episode,
        .rtl-podcast-player #featured-episode,
        .rtl-podcast-player .host-biography,
        .rtl-podcast-player .social-share-buttons {
            width: 100% !important;
            margin-left: auto !important;
            margin-right: auto !important;
            padding: 15px !important;
        }
        
        .rtl-podcast-player h1,
        .rtl-podcast-player h2,
        .rtl-podcast-player p {
            padding-left: 10px !important;
            padding-right: 10px !important;
            text-align: center;
        }

        .rtl-podcast-player #episode-grid {
            grid-template-columns: 1fr !important; /* Force single column */
            gap: 20px;
        }
        
        .rtl-podcast-player .episode {
            width: 100% !important;
            margin: 0 auto !important;
        }
    }


@media (max-width: 480px) {
    .rtl-podcast-player .container {
        padding: 10px !important;
    }
    
    .rtl-podcast-player #featured-episode,
    .rtl-podcast-player .episode {
        padding: 15px !important;
        width: 100% !important;
        margin: 0 auto !important;
    }
}

.rtl-podcast-player h1 {
    color: #00ffff;
    text-align: center;
    font-size: 2.3em;
    margin-bottom: 40px;
    font-weight: 700;
    width: 100%;
    grid-column: 1 / -1;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.3);
}

  #fixed-player-bar {
        display: flex;               /* Assure l'affichage en flex */
        flex-direction: column;       /* Organisation en colonne */
        align-items: center;          /* Centre les éléments */
        padding: 10px;
        gap: 10px;                    /* Espace entre chaque ligne */
        background: rgba(26, 26, 26, 0.95); /* Conserve l’arrière-plan */
        display: none;                /* Masqué par défaut */
    }

    /* Ligne 1 : Titre de l'épisode */
    #fixed-player-title {
        display: block;               /* Force l'affichage sur une ligne complète */
        text-align: center;
        font-size: 1.2em;
        color: #00ffff;
        width: 100%;                  /* Prend la largeur complète */
    }

    /* Ligne 2 : Player audio */
    #fixed-player-audio {
        display: block;               /* Force l'affichage sur une ligne complète */
        width: 100%;
    }

    /* Ligne 3 : Conteneur pour les boutons Chromecast et fermeture */
    .audio-controls-container {
        display: flex;
        justify-content: center;
        gap: 20px;
        width: 100%;                  /* Assure une disposition sur toute la largeur */
    }

    /* Styles des boutons */
    #chromecast-button, #close-fixed-player {
        width: 40px;
        height: 40px;
        border: none;
        cursor: pointer;
    }
}

  @media (max-width: 768px) {
    .rtl-podcast-player h1 {
        margin-top: 0px !important; /* Ajustez la valeur selon vos besoins */
    }
}
  
.rtl-podcast-player #featured-episode {
    /* Remplacer ces styles */
    display: flex;
    flex-direction: column;
    height: 100%; /* Ajout de cette ligne */
    padding: 30px;
    border-radius: 15px;
    background-color: transparent;
    color: #ffffff;
    transition: all 0.3s ease;
}

.rtl-podcast-player #featured-episode:hover {
    transform: translateY(-5px);
}

.rtl-podcast-player #featured-episode h3 {
    color: #00ffff;
    margin-bottom: 15px;
    font-weight: 500;
}

.rtl-podcast-player #featured-episode button, .rtl-podcast-player .episode button {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    padding: 0;
    background-image: url('https://static.vecteezy.com/system/resources/thumbnails/017/196/540/small/3d-play-button-icon-transparent-background-free-png.png');
    background-size: 35px;
    background-position: center;
    background-repeat: no-repeat;
    font-size: 0;
    position: relative;
}

    .rtl-podcast-player .date-badge {
        background: rgba(0, 255, 255, 0.1);
        border: 2px solid #00ffff;
        border-radius: 8px;
        padding: 8px 15px;
        color: #00ffff;
        font-weight: bold;
        text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
        box-shadow: 
            0 0 5px rgba(0, 255, 255, 0.2),
            0 0 10px rgba(0, 255, 255, 0.2),
            0 0 15px rgba(0, 255, 255, 0.2),
            0 0 20px rgba(0, 255, 255, 0.2);
        animation: neonPulse 1.5s ease-in-out infinite;
        margin: 15px auto 20px auto; /* Increased bottom margin */
        display: block; /* Changed from inline-block to block */
        width: fit-content;
    }

    @keyframes neonPulse {
        0%, 100% {
            box-shadow: 
                0 0 5px rgba(0, 255, 255, 0.2),
                0 0 10px rgba(0, 255, 255, 0.2),
                0 0 15px rgba(0, 255, 255, 0.2),
                0 0 20px rgba(0, 255, 255, 0.2);
        }
        50% {
            box-shadow: 
                0 0 10px rgba(0, 255, 255, 0.4),
                0 0 20px rgba(0, 255, 255, 0.4),
                0 0 30px rgba(0, 255, 255, 0.4),
                0 0 40px rgba(0, 255, 255, 0.4);
        }
    }


.rtl-podcast-player #featured-episode img,
.rtl-podcast-player .episode img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .modal-content img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .episode button:hover::after,
.rtl-podcast-player #featured-episode button:hover::after {
    content: "Ecouter ce podcast";
    position: absolute;
    bottom: -35px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 14px;
    white-space: nowrap;
    z-index: 1000;
}

.rtl-podcast-player #featured-episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #episode-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

    .rtl-podcast-player .episode {
        padding: 20px;
        border-radius: 15px;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.1);
        text-align: center;
        background-color: #1a1a1a;
        transition: all 0.3s ease;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .rtl-podcast-player .episode p {
        color: #ffffff;
    }


.rtl-podcast-player .episode:hover {
    box-shadow: 0 0 20px rgba(0, 255, 255, 0.2);
    transform: translateY(-3px);
}

.rtl-podcast-player .episode h5 {
    margin-bottom: 10px;
    color: #00ffff;
}

.rtl-podcast-player .episode a {
    color: #00ffff;
    text-decoration: none;
}

    .rtl-podcast-player .episode button:hover {
        background-color: #00cccc;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
    }
    
    .search-filter-container {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 15px;
        margin-bottom: 30px;
        width: 100%;
    }

    .search-filter-container input,
    .search-filter-container select {
        padding: 10px 15px;
        border: 2px solid #00ffff;
        border-radius: 8px;
        background: rgba(0, 0, 0, 0.3);
        color: #fff;
        font-size: 16px;
        width: 200px;
    }

    .search-filter-container input::placeholder {
        color: rgba(255, 255, 255, 0.6);
    }

    .search-filter-container input:focus,
    .search-filter-container select:focus {
        outline: none;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
    }

    .search-filter-container select {
        cursor: pointer;
    }

    .search-filter-container select option {
        background-color: #1a1a1a;
        color: #fff;
    }

    @media (max-width: 768px) {
        .search-filter-container {
            flex-direction: column;
            gap: 10px;
        }

        .search-filter-container input,
        .search-filter-container select {
            width: 100%;
            max-width: 300px;
        }
    }

    color: #000;
    border: none;
    padding: 8px 20px;
    border-radius: 20px;
    cursor: pointer;
    font-weight: 500;
    transition: all 0.3s ease;
    margin-top: 10px; /* Add space above button */
    display: block; /* Ensure block-level display */
    margin-left: auto;
    margin-right: auto;
}

.rtl-podcast-player .episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player .pagination {
    text-align: center !important;
    margin-top: 30px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: auto !important;
}

  .rtl-podcast-player #page-numbers {
    display: flex !important;
    gap: 5px !important;
    margin: 0 5px !important;
}
  
.rtl-podcast-player .pagination button,
.rtl-podcast-player .pagination #prev-btn,
.rtl-podcast-player .pagination #next-btn {
    margin: 0 !important;  /* Changé de 5px à 0 */
    padding: 8px 16px;
    font-size: 1em;
    background-color: #1a1a1a;
    color: #00ffff;
    border: 1px solid #00ffff;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s ease;
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.rtl-podcast-player .pagination button:hover {
    background-color: #00ffff;
    color: #000;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
}

.rtl-podcast-player .modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(8px);
}

.rtl-podcast-player .modal-content {
    background-color: #1a1a1a;
    padding: 40px;
    border: 2px solid #00ffff;
    width: 90%;
    max-width: 500px;
    max-height: 90vh;
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    overflow-y: auto;
    color: white;
}

.rtl-podcast-player .close {
    position: absolute;
    top: 10px;
    right: 20px;
    color: #00ffff;
    font-size: 35px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.3s;
}

.rtl-podcast-player .close:hover {
    color: #00cccc;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #chromecast-button {
    background-color: #00ffff;
    border: none;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
    color: #000;
    margin-top: 20px;
    font-weight: bold;
    display: inline-block;
}

.rtl-podcast-player audio::-webkit-media-controls-panel {
    background-color: #2a2a2a;
}

.rtl-podcast-player audio::-webkit-media-controls-current-time-display,
.rtl-podcast-player audio::-webkit-media-controls-time-remaining-display {
    color: #000000;
}

.rtl-podcast-player #fixed-player-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(26, 26, 26, 0.95);
    backdrop-filter: blur(10px);
    padding: 10px 20px;
    z-index: 999;
    border-top: 2px solid #00ffff;
}

.rtl-podcast-player .fixed-player-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    gap: 20px;
}


.rtl-podcast-player #fixed-player-title {
    color: #00ffff;
    font-size: 1em;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.rtl-podcast-player #fixed-player-audio {
    flex: 2;
    max-width: 500px;
}

.episode-card {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(0, 255, 255, 0.3);
    border-radius: 15px;
    padding: 20px;
    margin-bottom: 20px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.episode-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 255, 255, 0.2);
}

.episode-card img {
    width: 100%;
    max-width: 200px;
    border-radius: 10px;
    margin: 10px 0;
}

.episode-card button {
    margin-top: 10px;
}
  
/* Conserve les styles des boutons play et mute */
audio::-webkit-media-controls-play-button,
audio::-webkit-media-controls-mute-button {
    background-color: #40E0D0 !important; /* Bleu turquoise */
    border-radius: 50% !important;
    transition: all 0.3s ease !important;
}

audio::-webkit-media-controls-play-button:hover,
audio::-webkit-media-controls-mute-button:hover {
    background-color: #5FECEC !important; /* Bleu turquoise plus clair au survol */
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5) !important;
}

/* Tentative pour changer la couleur du trait de progression */
audio::-webkit-media-controls-timeline {
    color: #a6a6a6 !important; /* Essaye de cibler le trait turquoise */
}

/* Modifie la couleur des trois petits points */
audio::-webkit-media-controls-panel {
    background-color: transparent !important; /* Assure que le fond ne prend pas de couleur */
    color: #40E0D0 !important; /* Forcer la couleur turquoise pour les trois points */
}

/* Tentative supplémentaire pour cibler le trait du curseur de progression */
audio::-webkit-slider-runnable-track {
    background-color: #40E0D0 !important; /* Bleu turquoise pour la piste */
}

audio::-webkit-slider-thumb {
    background-color: #a6a6a6 !important; /* Plus clair pour le curseur lui-même */
}


@media (max-width: 768px) {
    .rtl-podcast-player .fixed-player-content {
        flex-direction: column;
        gap: 10px;
        padding: 15px;
    }

    .rtl-podcast-player #fixed-player-audio {
        width: 100%;
        max-width: 100%;
    }

    .rtl-podcast-player #fixed-player-title {
        width: 100%;
        text-align: center;
        font-size: 0.9em;
    }
}

.rtl-podcast-player .social-button {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease-in-out;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.rtl-podcast-player .social-button:hover {
    transform: scale(1.1);
}

@media (max-width: 768px) {
    .rtl-podcast-player .social-share-buttons {
        gap: 10px;
    }
    
    .rtl-podcast-player .social-button {
        width: 40px;
        height: 40px;
    }
    
    .rtl-podcast-player .social-button svg {
        width: 20px;
        height: 20px;
    }
}

.navigation-buttons {
    position: absolute;
    width: 100%;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 10px;
    pointer-events: none;
    z-index: 1000;
}

.nav-button {
    background: rgba(0, 0, 0, 0.7);
    border: 2px solid #00ffff;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    pointer-events: auto;
}  

.nav-button:hover {
    background: rgba(0, 255, 255, 0.2);
    transform: scale(1.1);
}

.nav-button svg {
    width: 24px;
    height: 24px;
}

@media (max-width: 768px) {
    .nav-button {
        width: 35px;
        height: 35px;
    }
    
    .nav-button svg {
        width: 20px;
        height: 20px;
    }
}
</style>
<script type="text/javascript" src="//www.gstatic.com/cv/js/sender/v1/cast_sender.js"></script>

</head><body>
<div class="rtl-podcast-player">
    <div class="container" style="background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    border-radius: 0; /* Changed from 20px to 0 */
    box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);">
    <h1 style="color: #00ffff; text-align: center; font-size: 2.1em; margin-bottom: 40px; font-weight: 700; width: 100%; grid-column: 1 / -1; text-shadow: 0 0 10px rgba(0, 255, 255, 0.3); padding: 0 15px; display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap;">
Les Sondages du Matin - Chronique de Manu dans le 6/10 - Écoutez en rediffusion tous les podcasts NRJ
<img decoding="async" src="https://cdn.uc.assets.prezly.com/b1be11c1-7593-48e0-b0d3-dfedd93ef5a2/-/inline/no/Newsroom+Icon-NRJ.png" alt="Logo Europe 1" style="width: 60px; height: 60px; border-radius: 50%; padding: 5px; background: white; box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);">
</h1>
    <div class="social-share-buttons" style="display: flex; justify-content: center; align-items: center; gap: 15px; margin-bottom: 30px; width: 100%; grid-column: 1 / -1;">
    <button onclick="shareOnX()" class="social-button" style="background-color: #000;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnWhatsapp()" class="social-button" style="background-color: #25D366;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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.298-.347.446-.52.149-.174.198-.298.298-.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>
        </svg>
    </button>
    <button onclick="shareOnFacebook()" class="social-button" style="background-color: #1877F2;">  
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnLinkedIn()" class="social-button" style="background-color: #0A66C2;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
</div>
      
    <div id="featured-episode" style="display: flex; flex-direction: column; align-items: center; text-align: center; justify-content: space-between; gap: 20px; height: 100%; position: relative; padding-top: 20px; cursor: pointer;">
  <div class="features-episode" style="width: 100%; height: 100%;">
    <!-- Première carte (dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
            
    <!-- Deuxième carte (avant-dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
  </div>
</div>
    <div>
    <div class="search-filter-container">
        <input type="text" id="podcast-search" placeholder="Rechercher un podcast..." oninput="filterAndDisplayEpisodes()">
        <select id="podcast-filter" onchange="filterAndDisplayEpisodes()">
            <option value="newest">Plus récents</option>
            <option value="oldest">Plus anciens</option>
        </select>
    </div>
    <div id="episode-grid">
        <style>
            .episode {
                cursor: pointer;
            }
            
            .episode > * {
                pointer-events: none;
            }
            
            .episode button {
                pointer-events: auto;
            }
        </style>
    </div>
    <div class="pagination" id="pagination">
    <button id="prev-btn" onclick="changePage('prev')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M15 18l-6-6 6-6"></path>
        </svg>
    </button>
    <span id="page-numbers"></span>
    <button id="next-btn" onclick="changePage('next')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M9 18l6-6-6-6"></path>
        </svg>
    </button>
</div>

      <div class="ad-banner" style="width: 100%; max-width: 508px; margin: 20px auto; text-align: center; grid-column: 1 / -1; background: rgba(0,0,0,0.3); padding: 15px; border-radius: 10px; border: 1px solid rgba(0, 255, 255, 0.2); transition: transform 0.3s ease;">
    <p style="color: #666; font-size: 12px; margin-bottom: 10px;">Publicité</p>
    <a href="https://universal-academy.com/recruter-des-alternants-dans-le-tourisme/" target="_blank" style="display: inline-block;">
        <img decoding="async" src="https://radiostreamr.com/radio-france/wp-content/uploads/2024/11/Design-sans-titre-2024-11-06T134332.299.webp" alt="Bannière publicitaire RTL" style="width: 100%; max-width: 700px; height: auto; border-radius: 8px; transition: transform 0.3s ease;" onmouseover="this.style.transform='scale(1.02)'" onmouseout="this.style.transform='scale(1)'">
    </a>
</div>

    <script>
        // Ajouter un event listener pour les cartes d'épisodes
        document.getElementById('episode-grid').addEventListener('click', (e) => {
            const episodeCard = e.target.closest('.episode');
            if (episodeCard) {
                // Trouver le bouton dans la carte et simuler un clic dessus
                const button = episodeCard.querySelector('button');
                if (button) {
                    button.click();
                }
            }
        });
    </script>
</div>
    
    <div class="host-biography" style="grid-column: 1 / -1; background: rgba(0, 0, 0, 0.3); padding: 30px; border-radius: 15px; margin-top: 30px; border: 1px solid rgba(0, 255, 255, 0.2);">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
        <!-- Media query pour passer en une colonne sur mobile -->
        <style>
            @media (max-width: 768px) {
                .host-biography > div {
                    grid-template-columns: 1fr !important;
                }
            }
        </style>

      <div class="host-biography" style="grid-column: 1 / -1; padding: 30px; border-radius: 15px; margin-top: 30px;">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
      <div style="grid-column: 1 / -1; margin-bottom: 30px; text-align: center;">
    <div style="color: #ffffff; line-height: 1.6; text-align: center;">
    <h2 style="color: #00ffff; margin-bottom: 20px; text-align: center;">Les Sondages du Matin - Chronique de Manu dans le 6/10</h2>
</div>

    <!-- Nouveaux boutons de réseaux sociaux -->
    <div style="display: flex; justify-content: center; align-items: center; gap: 20px; margin: 20px 0;">
        <a href="https://www.facebook.com/nrjradio/?locale=fr_FR" target="_blank" style="position: relative; width: 50px; height: 50px; background: #1877F2; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M18.77 7.46H14.5v-1.9c0-.9.6-1.1 1-1.1h3V.5h-4.33C10.24.5 9.5 3.44 9.5 5.32v2.15h-3v4h3v12h5v-12h3.85l.42-4z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Facebook</span>
</a>

        <a href="https://www.instagram.com/nrjhitmusiconly/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #E4405F; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Instagram</span>
</a>

        <a href="https://www.nrj.fr/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #00ffff; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#000000">
        <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur site web</span>
</a>
    </div>

    <style>
        /* Hover effects pour les boutons */
        .host-biography a:hover {
            transform: scale(1.1);
            box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
        }
        
        .host-biography a:hover span {
            opacity: 1;
        }

        /* Media queries pour le responsive */
        @media (max-width: 768px) {
            .host-biography div[style*="display: flex"] {
                flex-wrap: wrap;
                justify-content: center;
                gap: 15px;
            }
        }
    </style>

    <p style="color: #ffffff; line-height: 1.6; text-align: center; max-width: 1200px; margin: 0 auto;">
    Découvrez "Les Sondages du Matin", une chronique quotidienne de l'émission "Manu dans le 6/10" sur NRJ ! Chaque matin, Manu propose des sondages décalés et amusants qui révèlent les habitudes et opinions des Français sur des sujets du quotidien. Dans une ambiance décontractée et pleine d'humour, cette chronique permet aux auditeurs de découvrir des statistiques surprenantes et souvent hilarantes sur leurs compatriotes. Entre résultats inattendus et commentaires pleins d'esprit de Manu et son équipe, "Les Sondages du Matin" est devenu un rendez-vous incontournable pour commencer la journée avec le sourire !
</p>
    
    <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-top: 30px; padding: 20px;">
        <!-- Les 6 cartes existantes restent inchangées -->
        <!-- Carte 1 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M3 18v-6a9 9 0 0 1 18 0v6"></path>
                <path d="M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z"></path>
            </svg>
            <p style="color: #ffffff; margin: 0;">Écouter gratuitement tous les podcasts en streaming</p>
        </div>

        <!-- Carte 2 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
                <polyline points="7 10 12 15 17 10"></polyline>
                <line x1="12" y1="15" x2="12" y2="3"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Télécharger les épisodes pour une écoute hors-ligne</p>
        </div>

        <!-- Carte 3 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6"></path>
                <line x1="2" y1="20" x2="2" y2="20"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Diffuser sur votre Chromecast ou appareil compatible</p>
        </div>

        <!-- Carte 4 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="12" cy="12" r="10"></circle>
                <polygon points="10 8 16 12 10 16 10 8"></polygon>
            </svg>
            <p style="color: #ffffff; margin: 0;">Accéder à toutes les rediffusions des émissions précédentes</p>
        </div>

        <!-- Carte 5 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
        <circle cx="9" cy="7" r="4"></circle>
        <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
        <path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Découvrez chaque matin des sondages insolites et décalés sur les Français ! Une chronique pleine d'humour et de surprises.</p>
</div>

        <!-- Carte 6 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px; position: relative;" onmouseover="this.style.transform='translateY(-5px)'; document.getElementById('live-tooltip').style.opacity='1'" onmouseout="this.style.transform='translateY(0)'; document.getElementById('live-tooltip').style.opacity='0'" onclick="window.location.href='https://radiostreamr.com/radio-france/ecoutez-en-direct-nrj/'">
    <div id="live-tooltip" style="position: absolute; top: -40px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.8); color: #fff; padding: 8px 15px; border-radius: 5px; font-size: 14px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none; border: 1px solid #00ffff; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">
        Cliquez pour écouter en direct NRJ
    </div>
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M4 12h1"></path>
        <path d="M9 12h1"></path>
        <path d="M14 12h1"></path>
        <path d="M19 12h1"></path>
        <rect x="2" y="8" width="20" height="12" rx="2"></rect>
        <path d="M6 8V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v4"></path>
        <circle cx="12" cy="14" r="4"></circle>
        <path d="M12 10v8"></path>
        <path d="M8 14h8"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Écoutez en direct NRJ et réveillez-vous avec "Les Sondages du Matin" de Manu dans le 6/10 !</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;">
    Du lundi au vendredi<br>
    De 6h à 10h sur NRJ
</p>
</div>
    </div>
</div>
        
        <!-- Histoire de l'émission -->
        <div style="padding: 20px; text-align: center;">
    <h2 style="color: #00ffff; margin-bottom: 20px; text-align: center;">L'Histoire des Sondages du Matin</h2>
    <p style="color: #ffffff; line-height: 1.6; text-align: center;">
        "Les Sondages du Matin" est l'une des chroniques phares de l'émission "Manu dans le 6/10" sur NRJ. Chaque matin, Manu propose aux auditeurs des sondages insolites et décalés qui révèlent les habitudes parfois surprenantes des Français.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        De "Quel pourcentage de Français dort nu ?" à "Combien gardent leur sapin de Noël jusqu'en mars ?", en passant par "Qui a déjà fait semblant d'être au bureau alors qu'il était encore au lit ?", ces sondages créent chaque matin des moments de complicité hilarants entre l'équipe et les auditeurs.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        Avec son style unique et son ton décalé, cette chronique est devenue un rendez-vous incontournable pour des millions d'auditeurs qui découvrent avec amusement les petits secrets et habitudes inavouables de leurs compatriotes. Entre statistiques surprenantes et commentaires pleins d'humour de Manu, "Les Sondages du Matin" nous rappelle chaque jour que les Français ont décidément beaucoup d'imagination !
    </p>
    <div style="margin-top: 20px;">
        <img decoding="async" src="https://images.ladepeche.fr/api/v1/images/view/673886f7af1e1a7d0646b469/large/image.jpg?v=1" alt="Studio On marche sur la tête" style="width: 100%; max-width: 400px; border-radius: 15px; box-shadow: 0 0 20px rgba(0, 255, 255, 0.3);">
    </div>
</div>

        <!-- Biographie de Laurent Ruquier -->
        <div style="display: flex; flex-direction: column; align-items: center; gap: 20px;">
    <div style="width: 200px; height: 200px; border-radius: 50%; overflow: hidden; border: 3px solid #00ffff;">
        <img decoding="async" src="https://static.mytuner.mobi/media/tvos_radios/uhn8wjajymr6.jpg" alt="Manu Levy portrait photo" style="width: 100%; height: 100%; object-fit: cover;">
    </div>
    <div style="text-align: center;">
        <h2 style="color: #00ffff; margin-bottom: 20px;">Manu Levy - L'animateur de "Manu dans le 6/10" sur NRJ</h2>
        <p style="color: #ffffff; line-height: 1.8;">
            Manu Levy est l'un des animateurs les plus emblématiques de la radio NRJ. Il anime depuis plusieurs années l'émission matinale "Manu dans le 6/10", devenue un véritable rendez-vous incontournable pour des millions d'auditeurs.

Connu pour son humour décalé et son énergie débordante, Manu a su créer une véritable communauté autour de son émission. Son style unique mêle parfaitement humour, musique et interactions avec les auditeurs, ce qui en fait l'une des matinales les plus écoutées de France.

Dans "Manu dans le 6/10", il démontre chaque matin sa capacité à divertir et réveiller les Français avec bonne humeur, accompagné de son équipe de chroniqueurs. Ses sketchs, ses imitations et ses canulars téléphoniques sont devenus de véritables marques de fabrique qui ont contribué à son succès. Sa spontanéité et sa répartie donnent naissance à des moments d'antenne mémorables, où les fous rires sont garantis.

Véritable showman de la radio, Manu Levy a su moderniser le format de la matinale radio en y apportant sa touche personnelle, mélangeant divertissement, actualités et hits du moment, le tout servi avec une bonne dose d'humour et d'autodérision qui fait son succès depuis tant d'années sur NRJ.
        </p>
    </div>
</div>

        <!-- Sources (span across both columns) -->
        <div style="grid-column: 1 / -1; margin-top: 20px; padding: 15px; background: rgba(0, 0, 0, 0.2); border-radius: 10px; text-align: center;">
    <h3 style="color: #00ffff; margin-bottom: 10px; font-size: 1.2em;">Sources :</h3>
    <ul style="list-style: none; padding: 0; text-align: center; display: flex; justify-content: center; gap: 20px; flex-wrap: wrap;">
        <li>
            <a href="https://fr.wikipedia.org/wiki/Emmanuel_Levy" target="_blank" style="color: #00ffff; text-decoration: none; transition: all 0.3s; padding: 5px 10px; border-radius: 5px; display: inline-block; &amp;:hover { background: rgba(0, 255, 255, 0.1); transform: translateY(-2px); box-shadow: 0 0 15px rgba(0, 255, 255, 0.3); }">• Page wikipédia de Manu Levy</a>
        </li>
    </ul>
</div>
    </div>
</div>

</div>

    <div id="player-modal" class="modal">
        <div class="modal-content">
    <span class="close" onclick="closeModal()">×</span>
    <div class="navigation-buttons">
        <button id="prev-episode" onclick="navigateEpisode('prev')" class="nav-button">
            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M15 18l-6-6 6-6"></path>
            </svg>
        </button>
        <button id="next-episode" onclick="navigateEpisode('next')" class="nav-button">
            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M9 18l6-6-6-6"></path>
            </svg>
        </button>
    </div>
    <div id="player-content">
    <style>
        /* Styles existants */
        .modal-content {
            background-color: #1a1a1a;
            padding: 40px;
            border: 2px solid #00ffff;
            width: 90%;
            max-width: 500px;
            max-height: 90vh;
            border-radius: 20px;
            text-align: center;
            box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
            position: fixed; /* Changé de absolute à fixed */
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) !important; /* Ajout de !important */
            overflow-y: auto;
            color: white;
        }

        /* Change la couleur du timing en noir */
        audio::-webkit-media-controls-time-display {
            color: #000000 !important;
        }

        /* Ajout de media queries pour le mobile */
        @media (max-width: 768px) {
            .modal-content {
                padding: 30px;
                width: 95%;
                margin: 0 auto;
                position: fixed;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%) !important;
            }
        }

        @media (max-height: 600px) {
            .modal-content {
                max-height: 85vh;
            }
        }
    </style>
</div>
    <button id="chromecast-button" onclick="startChromecast()" style="width: 60px; height: 60px; border-radius: 50%; padding: 0; background-image: url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png'); background-size: 35px; background-position: center; background-repeat: no-repeat; font-size: 0;"></button>
</div>
    </div>

    <div id="fixed-player-bar" class="rtl-podcast-player" style="display: none;">
    <div class="fixed-player-content">
        <h3 id="fixed-player-title"></h3>
        <div class="audio-controls-container" style="display: flex; align-items: center; justify-content: center; gap: 20px; width: 100%; max-width: 800px; margin: 0 auto;">
            <audio id="fixed-player-audio" controls="">
                <source src="" type="audio/mpeg">
            </audio>
            <button onclick="startChromecast()" style="width: 40px; height: 40px; min-width: 40px; border-radius: 50%; padding: 0; background: #ffffff url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png') center/25px no-repeat; border: 2px solid #00ffff; font-size: 0; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">Cast to Chromecast</button>
            <button id="close-fixed-player" onclick="closeFixedPlayer()" style="background: none; border: none; color: #00ffff; font-size: 24px; cursor: pointer; padding: 5px; min-width: 24px; display: flex; align-items: center; justify-content: center;">×</button>
        </div>
    </div>
</div>

    <script>
    (function RTLPodcastPlayer() {
        // Initialize cast api
        window.__onGCastApiAvailable = function(isAvailable) {
            if (!isAvailable) return;

            const initializeCastApi = function() {
                const sessionRequest = new chrome.cast.SessionRequest(chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID);
                const apiConfig = new chrome.cast.ApiConfig(
                    sessionRequest,
                    sessionListener,
                    receiverListener
                );
                chrome.cast.initialize(apiConfig, onInitSuccess, onError);
            };

            const sessionListener = function(session) {
                console.log('Session listener', session);
            };

            const receiverListener = function(availability) {
                console.log('Receiver listener', availability);
            };

            const onInitSuccess = function() {
                console.log('Cast initialization success');
            };

            const onError = function(error) {
                console.error('Cast initialization error', error);
            };

            if (!chrome.cast || !chrome.cast.isAvailable) {
                setTimeout(initializeCastApi, 1000);
            } else {
                initializeCastApi();
            }
        };

        const rssUrl = "https://aod.nrjaudio.fm/xml/1993.xml";
        const proxyUrl = `https://api.rss2json.com/v1/api.json?rss_url=${encodeURIComponent(rssUrl)}&api_key=int3lqiwwrpnsvem6yki0mtwki2f4qcvcxtrlyea&count=150`;
        const episodesPerPage = 4;
        let currentPage = 1;
        let currentAudioUrl = '';
        let totalPages = 0;

        // Ajouter ces variables au début du script
        let currentEpisodeIndex = 0;
        let allEpisodes = [];
        let filteredEpisodes = [];

        fetch(proxyUrl)
            .then(response => response.json())
            .then(data => {
                if (data.status !== "ok") {
                    throw new Error("Erreur de chargement du flux RSS.");
                }
                allEpisodes = data.items;
                filteredEpisodes = [...allEpisodes];
                displayFeaturedEpisode(allEpisodes[0]);
                displayEpisodes(currentPage, filteredEpisodes);
                setupPagination(allEpisodes);
            })
            .catch(error => {
                document.getElementById("featured-episode").innerHTML = "<p>Impossible de charger le flux RSS. Veuillez réessayer plus tard.</p>";
            });

        function truncateDescription(description, maxLength = 180) {
    // Crée un élément temporaire pour décoder les entités HTML
    const tempElement = document.createElement("div");
    tempElement.innerHTML = description;
    
    // Récupère le texte brut de la description
    let plainText = tempElement.innerText || tempElement.textContent || '';

    // Tronque le texte si nécessaire
    if (plainText.length <= maxLength) return plainText.trim();
    return plainText.substring(0, maxLength).trim() + '...';
}

function displayFeaturedEpisode(episode) {
    const featuredEpisode = document.getElementById("featured-episode");
    
    // Créer le HTML pour les deux premières émissions
    featuredEpisode.innerHTML = `
    <div class="features-episode" style="width: 100%; height: 100%;">
        <!-- Première carte (dernière émission) -->
        <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[0].enclosure.link)}', '${sanitizeString(allEpisodes[0].title)}')">
            <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[0].title)}</h3>
            ${allEpisodes[0].thumbnail ? `<img decoding="async" src="${allEpisodes[0].thumbnail}" alt="Image de la dernière émission">` : ""}
            <div class="description" style="color: white;">${truncateDescription(allEpisodes[0].description)}</div>
            <div class="date-badge">
                ${new Date(allEpisodes[0].pubDate).toLocaleDateString('fr-FR', {
                    day: '2-digit',
                    month: '2-digit',
                    year: '2-digit'
                })}
            </div>
            <button></button>
        </div>
        
        <!-- Deuxième carte (avant-dernière émission) -->
        <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[1].enclosure.link)}', '${sanitizeString(allEpisodes[1].title)}')">
            <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[1].title)}</h3>
            ${allEpisodes[1].thumbnail ? `<img decoding="async" src="${allEpisodes[1].thumbnail}" alt="Image de l'avant-dernière émission">` : ""}
            <div class="description" style="color: white;">${truncateDescription(allEpisodes[1].description)}</div>
            <div class="date-badge">
                ${new Date(allEpisodes[1].pubDate).toLocaleDateString('fr-FR', {
                    day: '2-digit',
                    month: '2-digit',
                    year: '2-digit'
                })}
            </div>
            <button></button>
        </div>
    </div>
    `;
}

function displayEpisodes(page, episodes) {
    const episodeGrid = document.getElementById("episode-grid");
    episodeGrid.innerHTML = "";
    const episodesWithoutFeatured = episodes.slice(2);
    const start = (page - 1) * episodesPerPage;  
    const end = start + episodesPerPage;
    
    episodesWithoutFeatured.slice(start, end).forEach(item => {
        // IMPORTANT : Encode les titres pour éviter les problèmes avec les apostrophes
        const encodedTitle = encodeURIComponent(item.title);
        const encodedUrl = encodeURIComponent(item.enclosure.link);
        
        episodeGrid.innerHTML += `
    <div class="episode">
        <h5 style="color: #00ffff;">${sanitizeString(item.title)}</h5>
        ${item.thumbnail ? `<img decoding="async" src="${item.thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 150px;">` : ""}
        <div class="description" style="color: white;">${truncateDescription(item.description)}</div>
        <div class="date-badge">
            ${new Date(item.pubDate).toLocaleDateString('fr-FR', {
                day: '2-digit',
                month: '2-digit',
                year: '2-digit'
            })}
        </div>
        <button onclick="openModal('${sanitizeString(item.enclosure.link)}', '${sanitizeString(item.title)}')"></button>
    </div>
`;
    });
    updatePaginationButtons();
}

        function setupPagination(episodes) {
    // Soustrait les 2 épisodes featured au lieu d'un seul
    totalPages = Math.ceil((episodes.length - 2) / episodesPerPage);
    const pageNumbers = document.getElementById("page-numbers");
    pageNumbers.innerHTML = "";

    // Calcule quels numéros afficher
    let start = currentPage;
    if (currentPage === totalPages) {
        start = totalPages - 2;
    } else if (currentPage === 1) {
        start = 1;
    } else {
        start = currentPage - 1;
    }

    // S'assure que start n'est jamais inférieur à 1
    start = Math.max(1, start);
    
    // Affiche 3 boutons à partir de start
    for (let i = start; i < start + 3 && i <= totalPages; i++) {
        const button = document.createElement("button");
        button.textContent = i;
        button.addEventListener("click", () => {
            currentPage = i;
            displayEpisodes(currentPage, episodes);
            setupPagination(episodes); // Important : rafraîchit la pagination
        });
        pageNumbers.appendChild(button);
    }

    // Réactive la fonctionnalité des boutons précédent/suivant
    window.changePage = function(direction) {
        if (direction === 'prev' && currentPage > 1) {
            currentPage--;
        } else if (direction === 'next' && currentPage < totalPages) {
            currentPage++;
        }
        displayEpisodes(currentPage, filteredEpisodes);
        setupPagination(episodes); // Rafraîchit la pagination
        updatePaginationButtons();
    }

    updatePaginationButtons();
}

        function updatePaginationButtons() {
            const prevBtn = document.getElementById('prev-btn');
            const nextBtn = document.getElementById('next-btn');
            
            prevBtn.disabled = currentPage === 1;
            nextBtn.disabled = currentPage === totalPages;
            
            prevBtn.style.opacity = currentPage === 1 ? '0.5' : '1';
            nextBtn.style.opacity = currentPage === totalPages ? '0.5' : '1';
            
            const pageButtons = document.querySelectorAll('#page-numbers button');
            pageButtons.forEach((button, index) => {
                if (index + 1 === currentPage) {
                    button.style.backgroundColor = '#00ffff';
                    button.style.color = '#000';
                } else {
                    button.style.backgroundColor = '#1a1a1a';
                    button.style.color = '#00ffff';
                }
            });
        }

        window.openModal = function(audioUrl, title) {
            const playerContent = document.getElementById("player-content");
            
            // Find the episode data from allEpisodes based on the audioUrl
            const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
            
            // Get the thumbnail from the episode data directly
            const thumbnail = currentEpisode?.thumbnail;

            // Trouve l'index de l'épisode actuel
            currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
            
            playerContent.innerHTML = `
                <h2>${title}</h2>
                ${thumbnail ? `<img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0;">` : ''}
                <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
                    <source src="${audioUrl}" type="audio/mpeg">
                    Votre navigateur ne supporte pas la lecture audio.
                </audio>
            `;
            
            // Mise à jour de la visibilité des boutons de navigation
            updateNavigationButtons();
            
            currentAudioUrl = audioUrl;
            document.getElementById("player-modal").style.display = "block";
            
            // Store current title for fixed player
            window.currentEpisodeTitle = title;
            
            // Setup audio element for fixed player
            const modalAudio = document.getElementById('modal-audio');
            modalAudio.addEventListener('play', () => {
                window.isPlaying = true;
            });
            modalAudio.addEventListener('pause', () => {
                window.isPlaying = false;
            });
        }

    window.navigateEpisode = function(direction) {
        let newIndex = direction === 'prev' ? currentEpisodeIndex - 1 : currentEpisodeIndex + 1;
        
        if (newIndex >= 0 && newIndex < allEpisodes.length) {
            const episode = allEpisodes[newIndex];
            openModal(episode.enclosure.link, episode.title);
        }
    }

      function sanitizeString(str) {
    return str.replace(/['"\\<>]/g, "");
}


    function updateNavigationButtons() {
        const prevButton = document.getElementById('prev-episode');
        const nextButton = document.getElementById('next-episode');
        
        prevButton.style.display = currentEpisodeIndex === 0 ? 'none' : 'flex';
        nextButton.style.display = currentEpisodeIndex === allEpisodes.length - 1 ? 'none' : 'flex';
    }

        window.closeModal = function() {
            const modalAudio = document.getElementById('modal-audio');
            const fixedPlayerBar = document.getElementById('fixed-player-bar');
            const fixedPlayerAudio = document.getElementById('fixed-player-audio');
            const fixedPlayerTitle = document.getElementById('fixed-player-title');
            
            if (window.isPlaying) {
                // Pause modal audio first
                modalAudio.pause();
                
                // Set up fixed player
                fixedPlayerBar.style.display = 'block';
                fixedPlayerTitle.textContent = window.currentEpisodeTitle;
                fixedPlayerAudio.src = currentAudioUrl;
                fixedPlayerAudio.currentTime = modalAudio.currentTime;
                fixedPlayerAudio.play();
            }
            
            document.getElementById("player-modal").style.display = "none";
        }

    // Add close fixed player function
    window.closeFixedPlayer = function() {
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        fixedPlayerAudio.pause();
        fixedPlayerBar.style.display = 'none';
    }

        window.startChromecast = function() {
            if (!chrome.cast || !chrome.cast.isAvailable) {
                console.log('Cast API not available');
                return;
            }

            chrome.cast.requestSession(
                function(session) {
                    if (currentAudioUrl) {
                        const mediaInfo = new chrome.cast.media.MediaInfo(currentAudioUrl, 'audio/mpeg');
                        mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();
                        mediaInfo.metadata.title = document.querySelector('#player-content h2').textContent;

                        const request = new chrome.cast.media.LoadRequest(mediaInfo);
                        session.loadMedia(request).then(
                            () => console.log('Lecture Chromecast démarrée'),
                            errorCode => console.error('Erreur Chromecast: ' + errorCode)
                        );
                    }
                },
                function(error) {
                    console.error('Erreur lors de la création de la session:', error);
                }
            );
        }

        window.shareOnX = function() {
            const text = "Écoutez les podcasts : Les Sondages du Matin - Chronique de Manu dans le 6/10 de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}&url=${encodeURIComponent(url)}`, '_blank');
        };

        window.shareOnWhatsapp = function() {
            const text = "Écoutez les podcasts : Les Sondages du Matin - Chronique de Manu dans le 6/10 de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://wa.me/?text=${encodeURIComponent(text + ' ' + url)}`, '_blank');
        };

        window.shareOnFacebook = function() {
          const text = "Écoutez les podcasts : Les Sondages du Matin - Chronique de Manu dans le 6/10 de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(url)}`, '_blank');
        };

        window.shareOnLinkedIn = function() {
          const text = "Écoutez les podcasts : Les Sondages du Matin - Chronique de Manu dans le 6/10 de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(url)}`, '_blank');
        };

        window.filterAndDisplayEpisodes = function() {
            const searchTerm = document.getElementById('podcast-search').value.toLowerCase();
            const filterValue = document.getElementById('podcast-filter').value;
            
            // Filter episodes based on search term
            filteredEpisodes = allEpisodes.filter(episode => 
                episode.title.toLowerCase().includes(searchTerm) || 
                episode.description.toLowerCase().includes(searchTerm)
            );
            
            // Sort episodes based on filter value
            if (filterValue === 'oldest') {
                filteredEpisodes.sort((a, b) => new Date(a.pubDate) - new Date(b.pubDate));
            } else {
                filteredEpisodes.sort((a, b) => new Date(b.pubDate) - new Date(a.pubDate));
            }
            
            // Reset pagination to first page when filtering
            currentPage = 1;
            
            // Update display
            if (filteredEpisodes.length > 0) {
                displayFeaturedEpisode(filteredEpisodes[0]);
                displayEpisodes(currentPage, filteredEpisodes);
                setupPagination(filteredEpisodes);
            } else {
                // Handle no results
                document.getElementById('episode-grid').innerHTML = '<p style="color: #fff; text-align: center; grid-column: 1/-1;">Aucun résultat trouvé</p>';
                document.getElementById('page-numbers').innerHTML = '';
            }
        }
    })();
</script>
</div>
</div></div></body></html>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-551c4bf e-con-full e-flex e-con e-parent" data-id="551c4bf" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-9371460 elementor-widget elementor-widget-shortcode" data-id="9371460" data-element_type="widget" data-widget_type="shortcode.default">
				<div class="elementor-widget-container">
							<div class="elementor-shortcode"></div>
						</div>
				</div>
				</div>
				</div>
		<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-sondages-du-matin-nr/">🗣️ Podcast et replay &#8211; Les Sondages du Matin &#8211; Chronique de Manu dans le 6/10 &#8211; NRJ</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://radiostreamr.com/radio-france/podcast-sondages-du-matin-nr/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; Manu dans le 6/10 &#8211; Les Bonnes Nouvelles &#8211; NRJ</title>
		<link>https://radiostreamr.com/radio-france/podcast-les-bonnes-nouvelles-nrj/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-les-bonnes-nouvelles-nrj/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 18 Nov 2024 08:23:47 +0000</pubDate>
				<category><![CDATA[NRJ]]></category>
		<category><![CDATA[Podcast]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1334</guid>

					<description><![CDATA[<p>Les Bonnes Nouvelles &#8211; Chronique de Manu dans le 6/10 &#8211; Écoutez en rediffusion tous les podcasts NRJ Plus récentsPlus anciens Publicité Les Bonnes Nouvelles &#8211; Chronique de Manu dans le 6/10 &#8211; Une dose quotidienne de positivité sur NRJ ! Voir leur Facebook Voir leur Instagram Voir leur site web Profitez de « Les Bonnes [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-les-bonnes-nouvelles-nrj/">🗣️ Podcast et replay &#8211; Manu dans le 6/10 &#8211; Les Bonnes Nouvelles &#8211; NRJ</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1334" class="elementor elementor-1334" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-dce457e e-con-full e-flex e-con e-parent" data-id="dce457e" data-element_type="container">
				<div class="elementor-element elementor-element-9f9be1c 1995 elementor-widget elementor-widget-html" data-id="9f9be1c" data-element_type="widget" id="1995" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<!DOCTYPE html><html><head><meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&amp;display=swap" rel="stylesheet">
<style>
    .rtl-podcast-player * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: 'Roboto', sans-serif;
    }

  .rtl-podcast-player #pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: 100% !important;
}

@keyframes gradientBG {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.rtl-podcast-player body {
    background: linear-gradient(-45deg, #0a192f, #172a45, #1a365d, #102235);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    min-height: 100vh;
    display: flex;
    align-items: center;
    color: #fff;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
}

    .rtl-podcast-player .container {
        display: grid;
        grid-template-columns: 1.2fr 2.8fr;
        gap: 20px;
        margin: 0 auto;
        padding: 50px 150px !important;
        width: 100%;
        background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
        background-size: 400% 400%;
        animation: gradientBG 15s ease infinite;
        border-radius: 0;
        box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);
    }


    @media (max-width: 1024px) {
        .rtl-podcast-player .container {
            padding: 30px 45px;
            grid-template-columns: 1fr 2fr;
        }
        
        .rtl-podcast-player h1 {
            font-size: 2em;
        }
    }


    @media (max-width: 768px) {
        .rtl-podcast-player .container {
            padding: 20px !important; /* Override padding */
            margin: 0 !important; /* Reset margin */
            width: 100% !important;
            max-width: 100% !important;
            grid-template-columns: 1fr;
            overflow-x: hidden; /* Prevent horizontal scroll */
        }
        
        .rtl-podcast-player #episode-grid,
        .rtl-podcast-player .episode,
        .rtl-podcast-player #featured-episode,
        .rtl-podcast-player .host-biography,
        .rtl-podcast-player .social-share-buttons {
            width: 100% !important;
            margin-left: auto !important;
            margin-right: auto !important;
            padding: 15px !important;
        }
        
        .rtl-podcast-player h1,
        .rtl-podcast-player h2,
        .rtl-podcast-player p {
            padding-left: 10px !important;
            padding-right: 10px !important;
            text-align: center;
        }

        .rtl-podcast-player #episode-grid {
            grid-template-columns: 1fr !important; /* Force single column */
            gap: 20px;
        }
        
        .rtl-podcast-player .episode {
            width: 100% !important;
            margin: 0 auto !important;
        }
    }


@media (max-width: 480px) {
    .rtl-podcast-player .container {
        padding: 10px !important;
    }
    
    .rtl-podcast-player #featured-episode,
    .rtl-podcast-player .episode {
        padding: 15px !important;
        width: 100% !important;
        margin: 0 auto !important;
    }
}

.rtl-podcast-player h1 {
    color: #00ffff;
    text-align: center;
    font-size: 2.3em;
    margin-bottom: 40px;
    font-weight: 700;
    width: 100%;
    grid-column: 1 / -1;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.3);
}

  #fixed-player-bar {
        display: flex;               /* Assure l'affichage en flex */
        flex-direction: column;       /* Organisation en colonne */
        align-items: center;          /* Centre les éléments */
        padding: 10px;
        gap: 10px;                    /* Espace entre chaque ligne */
        background: rgba(26, 26, 26, 0.95); /* Conserve l’arrière-plan */
        display: none;                /* Masqué par défaut */
    }

    /* Ligne 1 : Titre de l'épisode */
    #fixed-player-title {
        display: block;               /* Force l'affichage sur une ligne complète */
        text-align: center;
        font-size: 1.2em;
        color: #00ffff;
        width: 100%;                  /* Prend la largeur complète */
    }

    /* Ligne 2 : Player audio */
    #fixed-player-audio {
        display: block;               /* Force l'affichage sur une ligne complète */
        width: 100%;
    }

    /* Ligne 3 : Conteneur pour les boutons Chromecast et fermeture */
    .audio-controls-container {
        display: flex;
        justify-content: center;
        gap: 20px;
        width: 100%;                  /* Assure une disposition sur toute la largeur */
    }

    /* Styles des boutons */
    #chromecast-button, #close-fixed-player {
        width: 40px;
        height: 40px;
        border: none;
        cursor: pointer;
    }
}

  @media (max-width: 768px) {
    .rtl-podcast-player h1 {
        margin-top: 0px !important; /* Ajustez la valeur selon vos besoins */
    }
}
  
.rtl-podcast-player #featured-episode {
    /* Remplacer ces styles */
    display: flex;
    flex-direction: column;
    height: 100%; /* Ajout de cette ligne */
    padding: 30px;
    border-radius: 15px;
    background-color: transparent;
    color: #ffffff;
    transition: all 0.3s ease;
}

.rtl-podcast-player #featured-episode:hover {
    transform: translateY(-5px);
}

.rtl-podcast-player #featured-episode h3 {
    color: #00ffff;
    margin-bottom: 15px;
    font-weight: 500;
}

.rtl-podcast-player #featured-episode button, .rtl-podcast-player .episode button {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    padding: 0;
    background-image: url('https://static.vecteezy.com/system/resources/thumbnails/017/196/540/small/3d-play-button-icon-transparent-background-free-png.png');
    background-size: 35px;
    background-position: center;
    background-repeat: no-repeat;
    font-size: 0;
    position: relative;
}

    .rtl-podcast-player .date-badge {
        background: rgba(0, 255, 255, 0.1);
        border: 2px solid #00ffff;
        border-radius: 8px;
        padding: 8px 15px;
        color: #00ffff;
        font-weight: bold;
        text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
        box-shadow: 
            0 0 5px rgba(0, 255, 255, 0.2),
            0 0 10px rgba(0, 255, 255, 0.2),
            0 0 15px rgba(0, 255, 255, 0.2),
            0 0 20px rgba(0, 255, 255, 0.2);
        animation: neonPulse 1.5s ease-in-out infinite;
        margin: 15px auto 20px auto; /* Increased bottom margin */
        display: block; /* Changed from inline-block to block */
        width: fit-content;
    }

    @keyframes neonPulse {
        0%, 100% {
            box-shadow: 
                0 0 5px rgba(0, 255, 255, 0.2),
                0 0 10px rgba(0, 255, 255, 0.2),
                0 0 15px rgba(0, 255, 255, 0.2),
                0 0 20px rgba(0, 255, 255, 0.2);
        }
        50% {
            box-shadow: 
                0 0 10px rgba(0, 255, 255, 0.4),
                0 0 20px rgba(0, 255, 255, 0.4),
                0 0 30px rgba(0, 255, 255, 0.4),
                0 0 40px rgba(0, 255, 255, 0.4);
        }
    }


.rtl-podcast-player #featured-episode img,
.rtl-podcast-player .episode img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .modal-content img {
    border-radius: 15px;
    object-fit: cover;
}

.rtl-podcast-player .episode button:hover::after,
.rtl-podcast-player #featured-episode button:hover::after {
    content: "Ecouter ce podcast";
    position: absolute;
    bottom: -35px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 14px;
    white-space: nowrap;
    z-index: 1000;
}

.rtl-podcast-player #featured-episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #episode-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

    .rtl-podcast-player .episode {
        padding: 20px;
        border-radius: 15px;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.1);
        text-align: center;
        background-color: #1a1a1a;
        transition: all 0.3s ease;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .rtl-podcast-player .episode p {
        color: #ffffff;
    }


.rtl-podcast-player .episode:hover {
    box-shadow: 0 0 20px rgba(0, 255, 255, 0.2);
    transform: translateY(-3px);
}

.rtl-podcast-player .episode h5 {
    margin-bottom: 10px;
    color: #00ffff;
}

.rtl-podcast-player .episode a {
    color: #00ffff;
    text-decoration: none;
}

    .rtl-podcast-player .episode button:hover {
        background-color: #00cccc;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
    }
    
    .search-filter-container {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 15px;
        margin-bottom: 30px;
        width: 100%;
    }

    .search-filter-container input,
    .search-filter-container select {
        padding: 10px 15px;
        border: 2px solid #00ffff;
        border-radius: 8px;
        background: rgba(0, 0, 0, 0.3);
        color: #fff;
        font-size: 16px;
        width: 200px;
    }

    .search-filter-container input::placeholder {
        color: rgba(255, 255, 255, 0.6);
    }

    .search-filter-container input:focus,
    .search-filter-container select:focus {
        outline: none;
        box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
    }

    .search-filter-container select {
        cursor: pointer;
    }

    .search-filter-container select option {
        background-color: #1a1a1a;
        color: #fff;
    }

    @media (max-width: 768px) {
        .search-filter-container {
            flex-direction: column;
            gap: 10px;
        }

        .search-filter-container input,
        .search-filter-container select {
            width: 100%;
            max-width: 300px;
        }
    }

    color: #000;
    border: none;
    padding: 8px 20px;
    border-radius: 20px;
    cursor: pointer;
    font-weight: 500;
    transition: all 0.3s ease;
    margin-top: 10px; /* Add space above button */
    display: block; /* Ensure block-level display */
    margin-left: auto;
    margin-right: auto;
}

.rtl-podcast-player .episode button:hover {
    background-color: #00cccc;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player .pagination {
    text-align: center !important;
    margin-top: 30px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: auto !important;
}

  .rtl-podcast-player #page-numbers {
    display: flex !important;
    gap: 5px !important;
    margin: 0 5px !important;
}
  
.rtl-podcast-player .pagination button,
.rtl-podcast-player .pagination #prev-btn,
.rtl-podcast-player .pagination #next-btn {
    margin: 0 !important;  /* Changé de 5px à 0 */
    padding: 8px 16px;
    font-size: 1em;
    background-color: #1a1a1a;
    color: #00ffff;
    border: 1px solid #00ffff;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s ease;
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.rtl-podcast-player .pagination button:hover {
    background-color: #00ffff;
    color: #000;
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
}

.rtl-podcast-player .modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(8px);
}

.rtl-podcast-player .modal-content {
    background-color: #1a1a1a;
    padding: 40px;
    border: 2px solid #00ffff;
    width: 90%;
    max-width: 500px;
    max-height: 90vh;
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    overflow-y: auto;
    color: white;
}

.rtl-podcast-player .close {
    position: absolute;
    top: 10px;
    right: 20px;
    color: #00ffff;
    font-size: 35px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.3s;
}

.rtl-podcast-player .close:hover {
    color: #00cccc;
    text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
}

.rtl-podcast-player #chromecast-button {
    background-color: #00ffff;
    border: none;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
    color: #000;
    margin-top: 20px;
    font-weight: bold;
    display: inline-block;
}

.rtl-podcast-player audio::-webkit-media-controls-panel {
    background-color: #2a2a2a;
}

.rtl-podcast-player audio::-webkit-media-controls-current-time-display,
.rtl-podcast-player audio::-webkit-media-controls-time-remaining-display {
    color: #000000;
}

.rtl-podcast-player #fixed-player-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(26, 26, 26, 0.95);
    backdrop-filter: blur(10px);
    padding: 10px 20px;
    z-index: 999;
    border-top: 2px solid #00ffff;
}

.rtl-podcast-player .fixed-player-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    gap: 20px;
}


.rtl-podcast-player #fixed-player-title {
    color: #00ffff;
    font-size: 1em;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.rtl-podcast-player #fixed-player-audio {
    flex: 2;
    max-width: 500px;
}

.episode-card {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(0, 255, 255, 0.3);
    border-radius: 15px;
    padding: 20px;
    margin-bottom: 20px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.episode-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 255, 255, 0.2);
}

.episode-card img {
    width: 100%;
    max-width: 200px;
    border-radius: 10px;
    margin: 10px 0;
}

.episode-card button {
    margin-top: 10px;
}
  
/* Conserve les styles des boutons play et mute */
audio::-webkit-media-controls-play-button,
audio::-webkit-media-controls-mute-button {
    background-color: #40E0D0 !important; /* Bleu turquoise */
    border-radius: 50% !important;
    transition: all 0.3s ease !important;
}

audio::-webkit-media-controls-play-button:hover,
audio::-webkit-media-controls-mute-button:hover {
    background-color: #5FECEC !important; /* Bleu turquoise plus clair au survol */
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.5) !important;
}

/* Tentative pour changer la couleur du trait de progression */
audio::-webkit-media-controls-timeline {
    color: #a6a6a6 !important; /* Essaye de cibler le trait turquoise */
}

/* Modifie la couleur des trois petits points */
audio::-webkit-media-controls-panel {
    background-color: transparent !important; /* Assure que le fond ne prend pas de couleur */
    color: #40E0D0 !important; /* Forcer la couleur turquoise pour les trois points */
}

/* Tentative supplémentaire pour cibler le trait du curseur de progression */
audio::-webkit-slider-runnable-track {
    background-color: #40E0D0 !important; /* Bleu turquoise pour la piste */
}

audio::-webkit-slider-thumb {
    background-color: #a6a6a6 !important; /* Plus clair pour le curseur lui-même */
}


@media (max-width: 768px) {
    .rtl-podcast-player .fixed-player-content {
        flex-direction: column;
        gap: 10px;
        padding: 15px;
    }

    .rtl-podcast-player #fixed-player-audio {
        width: 100%;
        max-width: 100%;
    }

    .rtl-podcast-player #fixed-player-title {
        width: 100%;
        text-align: center;
        font-size: 0.9em;
    }
}

.rtl-podcast-player .social-button {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease-in-out;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.rtl-podcast-player .social-button:hover {
    transform: scale(1.1);
}

@media (max-width: 768px) {
    .rtl-podcast-player .social-share-buttons {
        gap: 10px;
    }
    
    .rtl-podcast-player .social-button {
        width: 40px;
        height: 40px;
    }
    
    .rtl-podcast-player .social-button svg {
        width: 20px;
        height: 20px;
    }
}

.navigation-buttons {
    position: absolute;
    width: 100%;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 10px;
    pointer-events: none;
    z-index: 1000;
}

.nav-button {
    background: rgba(0, 0, 0, 0.7);
    border: 2px solid #00ffff;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    pointer-events: auto;
}  

.nav-button:hover {
    background: rgba(0, 255, 255, 0.2);
    transform: scale(1.1);
}

.nav-button svg {
    width: 24px;
    height: 24px;
}

@media (max-width: 768px) {
    .nav-button {
        width: 35px;
        height: 35px;
    }
    
    .nav-button svg {
        width: 20px;
        height: 20px;
    }
}
</style>
<script type="text/javascript" src="//www.gstatic.com/cv/js/sender/v1/cast_sender.js"></script>

</head><body>
<div class="rtl-podcast-player">
    <div class="container" style="background: linear-gradient(-45deg, #000000, #001a1a, #003333, #004d4d);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    border-radius: 0; /* Changed from 20px to 0 */
    box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);">
    <h1 style="color: #00ffff; text-align: center; font-size: 2.1em; margin-bottom: 40px; font-weight: 700; width: 100%; grid-column: 1 / -1; text-shadow: 0 0 10px rgba(0, 255, 255, 0.3); padding: 0 15px; display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap;">
Les Bonnes Nouvelles - Chronique de Manu dans le 6/10 - Écoutez en rediffusion tous les podcasts NRJ
<img decoding="async" src="https://cdn.uc.assets.prezly.com/b1be11c1-7593-48e0-b0d3-dfedd93ef5a2/-/inline/no/Newsroom+Icon-NRJ.png" alt="Logo Europe 1" style="width: 60px; height: 60px; border-radius: 50%; padding: 5px; background: white; box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);">
</h1>
    <div class="social-share-buttons" style="display: flex; justify-content: center; align-items: center; gap: 15px; margin-bottom: 30px; width: 100%; grid-column: 1 / -1;">
    <button onclick="shareOnX()" class="social-button" style="background-color: #000;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnWhatsapp()" class="social-button" style="background-color: #25D366;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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.298-.347.446-.52.149-.174.198-.298.298-.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>
        </svg>
    </button>
    <button onclick="shareOnFacebook()" class="social-button" style="background-color: #1877F2;">  
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
    <button onclick="shareOnLinkedIn()" class="social-button" style="background-color: #0A66C2;">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#fff">
            <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>
        </svg>
    </button>
</div>
      
    <div id="featured-episode" style="display: flex; flex-direction: column; align-items: center; text-align: center; justify-content: space-between; gap: 20px; height: 100%; position: relative; padding-top: 20px; cursor: pointer;">
  <div class="features-episode" style="width: 100%; height: 100%;">
    <!-- Première carte (dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
            
    <!-- Deuxième carte (avant-dernière émission) -->
    <div class="episode-card">
      <h3 style="color: #00ffff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"></h3>
      <p style="display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 3em; /* Strictement limité à 180 caractères */" class="truncate-text"></p>
      <div class="date-badge"></div>
      <button onclick="openModal('', '')"></button>
    </div>
  </div>
</div>
    <div>
    <div class="search-filter-container">
        <input type="text" id="podcast-search" placeholder="Rechercher un podcast..." oninput="filterAndDisplayEpisodes()">
        <select id="podcast-filter" onchange="filterAndDisplayEpisodes()">
            <option value="newest">Plus récents</option>
            <option value="oldest">Plus anciens</option>
        </select>
    </div>
    <div id="episode-grid">
        <style>
            .episode {
                cursor: pointer;
            }
            
            .episode > * {
                pointer-events: none;
            }
            
            .episode button {
                pointer-events: auto;
            }
        </style>
    </div>
    <div class="pagination" id="pagination">
    <button id="prev-btn" onclick="changePage('prev')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M15 18l-6-6 6-6"></path>
        </svg>
    </button>
    <span id="page-numbers"></span>
    <button id="next-btn" onclick="changePage('next')">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M9 18l6-6-6-6"></path>
        </svg>
    </button>
</div>

      <div class="ad-banner" style="width: 100%; max-width: 508px; margin: 20px auto; text-align: center; grid-column: 1 / -1; background: rgba(0,0,0,0.3); padding: 15px; border-radius: 10px; border: 1px solid rgba(0, 255, 255, 0.2); transition: transform 0.3s ease;">
    <p style="color: #666; font-size: 12px; margin-bottom: 10px;">Publicité</p>
    <a href="https://universal-academy.com/recruter-des-alternants-dans-le-tourisme/" target="_blank" style="display: inline-block;">
        <img decoding="async" src="https://radiostreamr.com/radio-france/wp-content/uploads/2024/11/Design-sans-titre-2024-11-06T134332.299.webp" alt="Bannière publicitaire RTL" style="width: 100%; max-width: 700px; height: auto; border-radius: 8px; transition: transform 0.3s ease;" onmouseover="this.style.transform='scale(1.02)'" onmouseout="this.style.transform='scale(1)'">
    </a>
</div>

    <script>
        // Ajouter un event listener pour les cartes d'épisodes
        document.getElementById('episode-grid').addEventListener('click', (e) => {
            const episodeCard = e.target.closest('.episode');
            if (episodeCard) {
                // Trouver le bouton dans la carte et simuler un clic dessus
                const button = episodeCard.querySelector('button');
                if (button) {
                    button.click();
                }
            }
        });
    </script>
</div>
    
    <div class="host-biography" style="grid-column: 1 / -1; background: rgba(0, 0, 0, 0.3); padding: 30px; border-radius: 15px; margin-top: 30px; border: 1px solid rgba(0, 255, 255, 0.2);">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
        <!-- Media query pour passer en une colonne sur mobile -->
        <style>
            @media (max-width: 768px) {
                .host-biography > div {
                    grid-template-columns: 1fr !important;
                }
            }
        </style>

      <div class="host-biography" style="grid-column: 1 / -1; padding: 30px; border-radius: 15px; margin-top: 30px;">
    <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 30px;">
      <div style="grid-column: 1 / -1; margin-bottom: 30px; text-align: center;">
    <h2 style="color: #00ffff; margin-bottom: 20px; text-align: center;">Les Bonnes Nouvelles - Chronique de Manu dans le 6/10 - Une dose quotidienne de positivité sur NRJ !</h2>

    <!-- Nouveaux boutons de réseaux sociaux -->
    <div style="display: flex; justify-content: center; align-items: center; gap: 20px; margin: 20px 0;">
        <a href="https://www.facebook.com/nrjradio/?locale=fr_FR" target="_blank" style="position: relative; width: 50px; height: 50px; background: #1877F2; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M18.77 7.46H14.5v-1.9c0-.9.6-1.1 1-1.1h3V.5h-4.33C10.24.5 9.5 3.44 9.5 5.32v2.15h-3v4h3v12h5v-12h3.85l.42-4z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Facebook</span>
</a>

        <a href="https://www.instagram.com/nrjhitmusiconly/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #E4405F; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#ffffff">
        <path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur Instagram</span>
</a>

        <a href="https://www.nrj.fr/" target="_blank" style="position: relative; width: 50px; height: 50px; background: #00ffff; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: all 0.3s ease; cursor: pointer;">
    <svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="#000000">
        <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"></path>
    </svg>
    <span style="position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 12px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none;">Voir leur site web</span>
</a>
    </div>

    <style>
        /* Hover effects pour les boutons */
        .host-biography a:hover {
            transform: scale(1.1);
            box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
        }
        
        .host-biography a:hover span {
            opacity: 1;
        }

        /* Media queries pour le responsive */
        @media (max-width: 768px) {
            .host-biography div[style*="display: flex"] {
                flex-wrap: wrap;
                justify-content: center;
                gap: 15px;
            }
        }
    </style>

    <p style="color: #ffffff; line-height: 1.6; text-align: center; max-width: 1200px; margin: 0 auto;">
    Profitez de "Les Bonnes Nouvelles", la chronique quotidienne de Manu dans le 6/10 sur NRJ ! Chaque matin, Manu partage avec les auditeurs les nouvelles les plus positives et réjouissantes du moment. Cette chronique rafraîchissante apporte une dose de bonne humeur garantie pour bien commencer la journée. Entre actualités inspirantes, initiatives locales et histoires touchantes, Manu met en lumière le meilleur de l'actualité avec son style unique et son humour caractéristique. Une pause feel-good quotidienne qui prouve que les bonnes nouvelles existent aussi dans notre monde !
</p>
    
    <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-top: 30px; padding: 20px;">
        <!-- Les 6 cartes existantes restent inchangées -->
        <!-- Carte 1 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M3 18v-6a9 9 0 0 1 18 0v6"></path>
                <path d="M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z"></path>
            </svg>
            <p style="color: #ffffff; margin: 0;">Écouter gratuitement tous les podcasts en streaming</p>
        </div>

        <!-- Carte 2 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
                <polyline points="7 10 12 15 17 10"></polyline>
                <line x1="12" y1="15" x2="12" y2="3"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Télécharger les épisodes pour une écoute hors-ligne</p>
        </div>

        <!-- Carte 3 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6"></path>
                <line x1="2" y1="20" x2="2" y2="20"></line>
            </svg>
            <p style="color: #ffffff; margin: 0;">Diffuser sur votre Chromecast ou appareil compatible</p>
        </div>

        <!-- Carte 4 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
            <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <circle cx="12" cy="12" r="10"></circle>
                <polygon points="10 8 16 12 10 16 10 8"></polygon>
            </svg>
            <p style="color: #ffffff; margin: 0;">Accéder à toutes les rediffusions des émissions précédentes</p>
        </div>

        <!-- Carte 5 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px;" onmouseover="this.style.transform='translateY(-5px)'" onmouseout="this.style.transform='translateY(0)'">
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
        <circle cx="9" cy="7" r="4"></circle>
        <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
        <path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Retrouvez tous les matins l'humour et la bonne humeur de Manu et toute son équipe dans Manu dans le 6/10 sur NRJ</p>
</div>

        <!-- Carte 6 -->
        <div style="background: rgba(0, 0, 0, 0.4); padding: 20px; border-radius: 15px; border: 1px solid rgba(0, 255, 255, 0.3); transition: transform 0.3s ease; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 15px; position: relative;" onmouseover="this.style.transform='translateY(-5px)'; document.getElementById('live-tooltip').style.opacity='1'" onmouseout="this.style.transform='translateY(0)'; document.getElementById('live-tooltip').style.opacity='0'" onclick="window.location.href='https://radiostreamr.com/radio-france/ecoutez-en-direct-nrj/'">
    <div id="live-tooltip" style="position: absolute; top: -40px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.8); color: #fff; padding: 8px 15px; border-radius: 5px; font-size: 14px; white-space: nowrap; opacity: 0; transition: opacity 0.3s ease; pointer-events: none; border: 1px solid #00ffff; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">
        Cliquez pour écouter en direct NRJ
    </div>
    <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="#00ffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M4 12h1"></path>
        <path d="M9 12h1"></path>
        <path d="M14 12h1"></path>
        <path d="M19 12h1"></path>
        <rect x="2" y="8" width="20" height="12" rx="2"></rect>
        <path d="M6 8V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v4"></path>
        <circle cx="12" cy="14" r="4"></circle>
        <path d="M12 10v8"></path>
        <path d="M8 14h8"></path>
    </svg>
    <p style="color: #ffffff; margin: 0;">Écoutez en direct "Manu dans le 6/10" pour bien commencer votre matinée</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;">
    Du lundi au vendredi<br>
    De 7h10 à 7h12 sur NRJ
</p>
</div>
    </div>
</div>
        
        <!-- Histoire de l'émission -->
        <div style="padding: 20px; text-align: center;">
    <h2 style="color: #00ffff; margin-bottom: 20px; text-align: center;">L'Histoire de Manu dans le 6/10</h2>
    <p style="color: #ffffff; line-height: 1.6; text-align: center;">
        "Manu dans le 6/10" est une émission matinale phare de NRJ, diffusée chaque jour de 6h à 10h. Ce rendez-vous dynamique et déjanté est devenu un incontournable des réveils en France, grâce à son animateur charismatique Emmanuel Levy, plus connu sous le nom de Manu.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        Chaque matin, Manu et son équipe débordante d'énergie réveillent les auditeurs avec un cocktail explosif d'humour, de défis délirants, de jeux interactifs et des meilleurs hits du moment. L'émission se distingue par son ton décalé, ses échanges spontanés avec les auditeurs et ses séquences devenues cultes.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        Avec son style unique et son humour communicatif, "Manu dans le 6/10" s'est imposée comme l'une des émissions matinales les plus écoutées de France. Le show combine parfaitement divertissement, musique et interactions avec les auditeurs, créant chaque matin une ambiance festive et énergique qui donne le sourire aux millions d'auditeurs qui se réveillent avec NRJ.
    </p>
    <div style="margin-top: 20px;">
        <img decoding="async" src="https://images.ladepeche.fr/api/v1/images/view/673886f7af1e1a7d0646b469/large/image.jpg?v=1" alt="Studio On marche sur la tête" style="width: 100%; max-width: 400px; border-radius: 15px; box-shadow: 0 0 20px rgba(0, 255, 255, 0.3);">
    </div>
</div>

        <!-- Biographie de Laurent Ruquier -->
        <div style="display: flex; flex-direction: column; align-items: center; gap: 20px;">
    <div style="width: 200px; height: 200px; border-radius: 50%; overflow: hidden; border: 3px solid #00ffff;">
        <img decoding="async" src="https://static.mytuner.mobi/media/tvos_radios/uhn8wjajymr6.jpg" alt="Manu Levy portrait photo" style="width: 100%; height: 100%; object-fit: cover;">
    </div>
    <div style="text-align: center;">
        <h2 style="color: #00ffff; margin-bottom: 20px;">Manu Levy - L'animateur de "Manu dans le 6/10" sur NRJ</h2>
        <p style="color: #ffffff; line-height: 1.8;">
            Manu Levy est l'un des animateurs les plus emblématiques de la radio NRJ. Il anime depuis plusieurs années l'émission matinale "Manu dans le 6/10", devenue un véritable rendez-vous incontournable pour des millions d'auditeurs.

Connu pour son humour décalé et son énergie débordante, Manu a su créer une véritable communauté autour de son émission. Son style unique mêle parfaitement humour, musique et interactions avec les auditeurs, ce qui en fait l'une des matinales les plus écoutées de France.

Dans "Manu dans le 6/10", il démontre chaque matin sa capacité à divertir et réveiller les Français avec bonne humeur, accompagné de son équipe de chroniqueurs. Ses sketchs, ses imitations et ses canulars téléphoniques sont devenus de véritables marques de fabrique qui ont contribué à son succès. Sa spontanéité et sa répartie donnent naissance à des moments d'antenne mémorables, où les fous rires sont garantis.

Véritable showman de la radio, Manu Levy a su moderniser le format de la matinale radio en y apportant sa touche personnelle, mélangeant divertissement, actualités et hits du moment, le tout servi avec une bonne dose d'humour et d'autodérision qui fait son succès depuis tant d'années sur NRJ.
        </p>
    </div>
</div>

        <!-- Sources (span across both columns) -->
        <div style="grid-column: 1 / -1; margin-top: 20px; padding: 15px; background: rgba(0, 0, 0, 0.2); border-radius: 10px; text-align: center;">
    <h3 style="color: #00ffff; margin-bottom: 10px; font-size: 1.2em;">Sources :</h3>
    <ul style="list-style: none; padding: 0; text-align: center; display: flex; justify-content: center; gap: 20px; flex-wrap: wrap;">
        <li>
            <a href="https://fr.wikipedia.org/wiki/Emmanuel_Levy" target="_blank" style="color: #00ffff; text-decoration: none; transition: all 0.3s; padding: 5px 10px; border-radius: 5px; display: inline-block; &amp;:hover { background: rgba(0, 255, 255, 0.1); transform: translateY(-2px); box-shadow: 0 0 15px rgba(0, 255, 255, 0.3); }">• Page wikipédia de Manu Levy</a>
        </li>
    </ul>
</div>
    </div>
</div>

</div>

    <div id="player-modal" class="modal">
    <div class="modal-content">
        <span class="close" onclick="closeModal()">×</span>
        <div id="player-content">
        </div>
        <button id="chromecast-button" onclick="startChromecast()" style="width: 60px; height: 60px; border-radius: 50%; padding: 0; background-image: url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png'); background-size: 35px; background-position: center; background-repeat: no-repeat; font-size: 0;"></button>
    </div>
    <div id="player-content">
    <style>
        /* Styles existants */
        .modal-content {
            background-color: #1a1a1a;
            padding: 40px;
            border: 2px solid #00ffff;
            width: 90%;
            max-width: 500px;
            max-height: 90vh;
            border-radius: 20px;
            text-align: center;
            box-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
            position: fixed; /* Changé de absolute à fixed */
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) !important; /* Ajout de !important */
            overflow-y: auto;
            color: white;
        }

        /* Change la couleur du timing en noir */
        audio::-webkit-media-controls-time-display {
            color: #000000 !important;
        }

        /* Ajout de media queries pour le mobile */
        @media (max-width: 768px) {
            .modal-content {
                padding: 30px;
                width: 95%;
                margin: 0 auto;
                position: fixed;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%) !important;
            }
        }

        @media (max-height: 600px) {
            .modal-content {
                max-height: 85vh;
            }
        }
    </style>
    </div>

    <div id="fixed-player-bar" class="rtl-podcast-player" style="display: none;">
    <div class="fixed-player-content">
        <h3 id="fixed-player-title"></h3>
        <div class="audio-controls-container" style="display: flex; align-items: center; justify-content: center; gap: 20px; width: 100%; max-width: 800px; margin: 0 auto;">
            <audio id="fixed-player-audio" controls="">
                <source src="" type="audio/mpeg">
            </audio>
            <button onclick="startChromecast()" style="width: 40px; height: 40px; min-width: 40px; border-radius: 50%; padding: 0; background: #ffffff url('https://cdn-icons-png.flaticon.com/512/8819/8819177.png') center/25px no-repeat; border: 2px solid #00ffff; font-size: 0; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);">Cast to Chromecast</button>
            <button id="close-fixed-player" onclick="closeFixedPlayer()" style="background: none; border: none; color: #00ffff; font-size: 24px; cursor: pointer; padding: 5px; min-width: 24px; display: flex; align-items: center; justify-content: center;">×</button>
        </div>
    </div>
</div>

    <script>
    (function RTLPodcastPlayer() {
        // Initialize cast api
        window.__onGCastApiAvailable = function(isAvailable) {
            if (!isAvailable) return;

            const initializeCastApi = function() {
                const sessionRequest = new chrome.cast.SessionRequest(chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID);
                const apiConfig = new chrome.cast.ApiConfig(
                    sessionRequest,
                    sessionListener,
                    receiverListener
                );
                chrome.cast.initialize(apiConfig, onInitSuccess, onError);
            };

            const sessionListener = function(session) {
                console.log('Session listener', session);
            };

            const receiverListener = function(availability) {
                console.log('Receiver listener', availability);
            };

            const onInitSuccess = function() {
                console.log('Cast initialization success');
            };

            const onError = function(error) {
                console.error('Cast initialization error', error);
            };

            if (!chrome.cast || !chrome.cast.isAvailable) {
                setTimeout(initializeCastApi, 1000);
            } else {
                initializeCastApi();
            }
        };

        const rssUrl = "https://aod.nrjaudio.fm/xml/2315.xml";
        const proxyUrl = `https://api.rss2json.com/v1/api.json?rss_url=${encodeURIComponent(rssUrl)}&api_key=int3lqiwwrpnsvem6yki0mtwki2f4qcvcxtrlyea&count=150`;
        const episodesPerPage = 4;
        let currentPage = 1;
        let currentAudioUrl = '';
        let totalPages = 0;

        // Ajouter ces variables au début du script
        let currentEpisodeIndex = 0;
        let allEpisodes = [];
        let filteredEpisodes = [];

        fetch(proxyUrl)
            .then(response => response.json())
            .then(data => {
                if (data.status !== "ok") {
                    throw new Error("Erreur de chargement du flux RSS.");
                }
                allEpisodes = data.items;
                filteredEpisodes = [...allEpisodes];
                displayFeaturedEpisode(allEpisodes[0]);
                displayEpisodes(currentPage, filteredEpisodes);
                setupPagination(allEpisodes);
            })
            .catch(error => {
                document.getElementById("featured-episode").innerHTML = "<p>Impossible de charger le flux RSS. Veuillez réessayer plus tard.</p>";
            });

        function truncateDescription(description, maxLength = 180) {
        const tempElement = document.createElement("div");
        tempElement.innerHTML = description;
        let plainText = tempElement.innerText || tempElement.textContent || '';
        if (plainText.length <= maxLength) return plainText.trim();
        return plainText.substring(0, maxLength).trim() + '...';
    }

    function displayFeaturedEpisode(episode) {
        const featuredEpisode = document.getElementById("featured-episode");
        featuredEpisode.innerHTML = `
        <div class="features-episode" style="width: 100%; height: 100%;">
            <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[0].enclosure.link)}', '${sanitizeString(allEpisodes[0].title)}')">
                <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[0].title)}</h3>
                ${allEpisodes[0].thumbnail ? `<img decoding="async" src="${allEpisodes[0].thumbnail}" alt="Image de la dernière émission">` : ""}
                <div class="description" style="color: white;">${truncateDescription(allEpisodes[0].description)}</div>
                <div class="date-badge">
                    ${new Date(allEpisodes[0].pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button></button>
            </div>
            
            <div class="episode-card" onclick="openModal('${sanitizeString(allEpisodes[1].enclosure.link)}', '${sanitizeString(allEpisodes[1].title)}')">
                <h3 style="color: #00ffff;">${sanitizeString(allEpisodes[1].title)}</h3>
                ${allEpisodes[1].thumbnail ? `<img decoding="async" src="${allEpisodes[1].thumbnail}" alt="Image de l'avant-dernière émission">` : ""}
                <div class="description" style="color: white;">${truncateDescription(allEpisodes[1].description)}</div>
                <div class="date-badge">
                    ${new Date(allEpisodes[1].pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button></button>
            </div>
        </div>
        `;
    }

    function displayEpisodes(page, episodes) {
        const episodeGrid = document.getElementById("episode-grid");
        episodeGrid.innerHTML = "";
        const episodesWithoutFeatured = episodes.slice(2);
        const start = (page - 1) * episodesPerPage;  
        const end = start + episodesPerPage;
        
        episodesWithoutFeatured.slice(start, end).forEach(item => {
            episodeGrid.innerHTML += `
            <div class="episode">
                <h5 style="color: #00ffff;">${sanitizeString(item.title)}</h5>
                ${item.thumbnail ? `<img decoding="async" src="${item.thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 150px;">` : ""}
                <div class="description" style="color: white;">${truncateDescription(item.description)}</div>
                <div class="date-badge">
                    ${new Date(item.pubDate).toLocaleDateString('fr-FR', {
                        day: '2-digit',
                        month: '2-digit',
                        year: '2-digit'
                    })}
                </div>
                <button onclick="openModal('${sanitizeString(item.enclosure.link)}', '${sanitizeString(item.title)}')"></button>
            </div>
            `;
        });
        updatePaginationButtons();
    }

    function setupPagination(episodes) {
        totalPages = Math.ceil((episodes.length - 2) / episodesPerPage);
        const pageNumbers = document.getElementById("page-numbers");
        pageNumbers.innerHTML = "";

        let start = currentPage;
        if (currentPage === totalPages) {
            start = totalPages - 2;
        } else if (currentPage === 1) {
            start = 1;
        } else {
            start = currentPage - 1;
        }

        start = Math.max(1, start);
        
        for (let i = start; i < start + 3 && i <= totalPages; i++) {
            const button = document.createElement("button");
            button.textContent = i;
            button.addEventListener("click", () => {
                currentPage = i;
                displayEpisodes(currentPage, episodes);
                setupPagination(episodes);
            });
            pageNumbers.appendChild(button);
        }

        window.changePage = function(direction) {
            if (direction === 'prev' && currentPage > 1) {
                currentPage--;
            } else if (direction === 'next' && currentPage < totalPages) {
                currentPage++;
            }
            displayEpisodes(currentPage, filteredEpisodes);
            setupPagination(episodes);
            updatePaginationButtons();
        }

        updatePaginationButtons();
    }

    function updatePaginationButtons() {
        const prevBtn = document.getElementById('prev-btn');
        const nextBtn = document.getElementById('next-btn');
        
        prevBtn.disabled = currentPage === 1;
        nextBtn.disabled = currentPage === totalPages;
        
        prevBtn.style.opacity = currentPage === 1 ? '0.5' : '1';
        nextBtn.style.opacity = currentPage === totalPages ? '0.5' : '1';
        
        const pageButtons = document.querySelectorAll('#page-numbers button');
        pageButtons.forEach((button, index) => {
            if (index + 1 === currentPage) {
                button.style.backgroundColor = '#00ffff';
                button.style.color = '#000';
            } else {
                button.style.backgroundColor = '#1a1a1a';
                button.style.color = '#00ffff';
            }
        });
    }

    function sanitizeString(str) {
        return str.replace(/['"\\<>]/g, "");
    }

    window.openModal = function(audioUrl, title) {
        const playerContent = document.getElementById("player-content");
        const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
        const thumbnail = currentEpisode?.thumbnail;
        
        playerContent.innerHTML = `
            <h2>${title}</h2>
            ${thumbnail ? `<img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0;">` : ''}
            <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
                <source src="${audioUrl}" type="audio/mpeg">
                Votre navigateur ne supporte pas la lecture audio.
            </audio>
        `;
        
        currentAudioUrl = audioUrl;
        document.getElementById("player-modal").style.display = "block";
        window.currentEpisodeTitle = title;
        
        const modalAudio = document.getElementById('modal-audio');
        modalAudio.addEventListener('play', () => {
            window.isPlaying = true;
        });
        modalAudio.addEventListener('pause', () => {
            window.isPlaying = false;
        });
    }

    window.closeModal = function() {
        const modalAudio = document.getElementById('modal-audio');
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        const fixedPlayerTitle = document.getElementById('fixed-player-title');
        
        if (window.isPlaying) {
            modalAudio.pause();
            fixedPlayerBar.style.display = 'block';
            fixedPlayerTitle.textContent = window.currentEpisodeTitle;
            fixedPlayerAudio.src = currentAudioUrl;
            fixedPlayerAudio.currentTime = modalAudio.currentTime;
            fixedPlayerAudio.play();
        }
        
        document.getElementById("player-modal").style.display = "none";
    }

    window.closeFixedPlayer = function() {
        const fixedPlayerBar = document.getElementById('fixed-player-bar');
        const fixedPlayerAudio = document.getElementById('fixed-player-audio');
        fixedPlayerAudio.pause();
        fixedPlayerBar.style.display = 'none';
    }

    window.startChromecast = function() {
        if (!chrome.cast || !chrome.cast.isAvailable) {
            console.log('Cast API not available');
            return;
        }

        chrome.cast.requestSession(
            function(session) {
                if (currentAudioUrl) {
                    const mediaInfo = new chrome.cast.media.MediaInfo(currentAudioUrl, 'audio/mpeg');
                    mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();
                    mediaInfo.metadata.title = document.querySelector('#player-content h2').textContent;

                    const request = new chrome.cast.media.LoadRequest(mediaInfo);
                    session.loadMedia(request).then(
                        () => console.log('Lecture Chromecast démarrée'),
                        errorCode => console.error('Erreur Chromecast: ' + errorCode)
                    );
                }
            },
            function(error) {
                console.error('Erreur lors de la création de la session:', error);
            }
        );
    }
      
        window.shareOnX = function() {
            const text = "Écoutez les podcasts : Manu dans le 6/10 de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}&url=${encodeURIComponent(url)}`, '_blank');
        };

        window.shareOnWhatsapp = function() {
            const text = "Écoutez les podcasts : Manu dans le 6/10 de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://wa.me/?text=${encodeURIComponent(text + ' ' + url)}`, '_blank');
        };

        window.shareOnFacebook = function() {
          const text = "Écoutez les podcasts : Manu dans le 6/10 de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(url)}`, '_blank');
        };

        window.shareOnLinkedIn = function() {
          const text = "Écoutez les podcasts : Manu dans le 6/10 de NRJ avec RadiostreamR !";
            const url = window.location.href;
            window.open(`https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(url)}`, '_blank');
        };

        window.filterAndDisplayEpisodes = function() {
            const searchTerm = document.getElementById('podcast-search').value.toLowerCase();
            const filterValue = document.getElementById('podcast-filter').value;
            
            // Filter episodes based on search term
            filteredEpisodes = allEpisodes.filter(episode => 
                episode.title.toLowerCase().includes(searchTerm) || 
                episode.description.toLowerCase().includes(searchTerm)
            );
            
            // Sort episodes based on filter value
            if (filterValue === 'oldest') {
                filteredEpisodes.sort((a, b) => new Date(a.pubDate) - new Date(b.pubDate));
            } else {
                filteredEpisodes.sort((a, b) => new Date(b.pubDate) - new Date(a.pubDate));
            }
            
            // Reset pagination to first page when filtering
            currentPage = 1;
            
            // Update display
            if (filteredEpisodes.length > 0) {
                displayFeaturedEpisode(filteredEpisodes[0]);
                displayEpisodes(currentPage, filteredEpisodes);
                setupPagination(filteredEpisodes);
            } else {
                // Handle no results
                document.getElementById('episode-grid').innerHTML = '<p style="color: #fff; text-align: center; grid-column: 1/-1;">Aucun résultat trouvé</p>';
                document.getElementById('page-numbers').innerHTML = '';
            }
        }
    })();
</script>
</div>
</div></div></body></html>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-551c4bf e-con-full e-flex e-con e-parent" data-id="551c4bf" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-9371460 elementor-widget elementor-widget-shortcode" data-id="9371460" data-element_type="widget" data-widget_type="shortcode.default">
				<div class="elementor-widget-container">
							<div class="elementor-shortcode"></div>
						</div>
				</div>
				</div>
				</div>
		<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-les-bonnes-nouvelles-nrj/">🗣️ Podcast et replay &#8211; Manu dans le 6/10 &#8211; Les Bonnes Nouvelles &#8211; NRJ</a> est apparu en premier sur <a href="https://radiostreamr.com/radio-france">RadioStreamR - Ecoutez la Radio française en ligne en direct</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://radiostreamr.com/radio-france/podcast-les-bonnes-nouvelles-nrj/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
