

<?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>Les podcasts des émissions Sud Radio à écouter / Télécharger !</title>
	<atom:link href="https://radiostreamr.com/radio-france/category/podcast/sud-radio/feed/" rel="self" type="application/rss+xml" />
	<link>https://radiostreamr.com/radio-france/category/podcast/sud-radio/</link>
	<description>Écoutez les meilleures stations de radio françaises en direct. Musique, actualités, et émissions locales - disponibles partout, à tout moment.</description>
	<lastBuildDate>Tue, 26 Nov 2024 18:00:44 +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>Les podcasts des émissions Sud Radio à écouter / Télécharger !</title>
	<link>https://radiostreamr.com/radio-france/category/podcast/sud-radio/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>🗣️ Podcast et replay &#8211; Regards de Femmes &#8211; Sud Radio</title>
		<link>https://radiostreamr.com/radio-france/podcast-regards-de-femmes/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-regards-de-femmes/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sun, 17 Nov 2024 12:56:34 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Sud Radio]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1310</guid>

					<description><![CDATA[<p>Ecoutez les podcasts de l&#8217;émission Regards de femmes animé par Jean-Marie Bordry et Michèle Vianès &#8211; Tous les podcasts de la chaine Sud Radio en rediffusion ou à télécharger Plus récentsPlus anciens Publicité Plongez au cœur de l&#8217;actualité sur les droits des femmes et l&#8217;égalité avec Regards de femmes animé par Jean-Marie Bordry et Michèle [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-regards-de-femmes/">🗣️ Podcast et replay &#8211; Regards de Femmes &#8211; Sud Radio</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="1310" class="elementor elementor-1310" 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;">
Ecoutez les podcasts de l'émission Regards de femmes animé par Jean-Marie Bordry et Michèle Vianès - Tous les podcasts de la chaine Sud Radio en rediffusion ou à télécharger
<img decoding="async" src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/03/Logo_Sud_Radio_2014.svg/1200px-Logo_Sud_Radio_2014.svg.png" alt="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;">Plongez au cœur de l'actualité sur les droits des femmes et l'égalité avec Regards de femmes animé par Jean-Marie Bordry et Michèle Vianès sur Sud Radio</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/SudRadioOfficiel/?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">
    <a href="https://www.facebook.com/SudRadioOfficiel/videos/bercoff-dans-tous-ses-etats/438886075502652/?_rdr">
        <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>
    </a>
</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/sudradioofficiel/?hl=fr" 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.sudradio.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>
</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;">
    "Regards de femmes" est une chronique hebdomadaire de Sud Radio animée par Jean-Marie Bordry et Michèle Vianès. Diffusée chaque samedi de 07h47 à 07h51, cette émission concise mais percutante propose une réflexion sur les droits des femmes, l'égalité et les enjeux sociétaux contemporains. Les deux animateurs apportent leur expertise et leur engagement pour aborder des sujets cruciaux liés à la condition féminine et aux avancées en matière d'égalité hommes-femmes. En quelques minutes, ils parviennent à décrypter l'actualité et à donner un éclairage pertinent sur ces questions essentielles.
</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;">Retrouvez l'émission Regards de femmes, la chronique hebdomadaire de Sud Radio sur les droits des femmes et l'égalité</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-sud-radio/'">
    <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
    </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;">Écoutez en direct Regards de femmes avec Jean-Marie Bordry et Michèle Vianès sur Sud Radio</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;">
    Diffusé samedi<br>
    07H47-07H51
</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 Regards de femmes avec Jean-Marie Bordry et Michèle Vianès</h2>
    <p style="color: #ffffff; line-height: 1.6; text-align: center;">
        "Regards de femmes" est une émission hebdomadaire de Sud Radio, animée par Jean-Marie Bordry et Michèle Vianès. Diffusée chaque samedi de 07h47 à 07h51, cette chronique incisive et engagée propose une analyse approfondie des enjeux liés aux droits des femmes et à l'égalité dans notre société.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        Le duo d'animateurs apporte une expertise unique sur les questions d'égalité hommes-femmes, décryptant l'actualité avec perspicacité et engagement. Leur complémentarité permet d'aborder des sujets cruciaux sous différents angles, offrant aux auditeurs une vision complète des défis contemporains.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        L'émission se distingue par la qualité de ses analyses, la pertinence de ses interventions et l'importance des thématiques abordées. Chaque semaine, Jean-Marie Bordry et Michèle Vianès éclairent l'actualité des droits des femmes, contribuant ainsi à faire avancer le débat public sur ces questions essentielles de notre société.
    </p>
    <div style="margin-top: 20px;">
        <img decoding="async" src="https://www.sudradio.fr/wp-content/uploads/2024/11/Capture-decran-2024-11-08-a-12.15.57.jpg" alt="Studio Sud Radio - En toute vérité" 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://www.sudradio.fr/wp-content/uploads/2019/09/Jean-Marie-Bordry-405x405.jpg" alt="Jean-Marie Bordry portrait photo" style="width: 100%; height: 100%; object-fit: cover;">
    </div>
    <div style="text-align: center;">
        <h2 style="color: #00ffff; margin-bottom: 20px;">Jean-Marie Bordry - L'animateur de Regards de femmes sur Sud Radio</h2>
        <p style="color: #ffffff; line-height: 1.8;">
            Jean-Marie Bordry est un journaliste et animateur radio français qui présente l'émission "Regards de femmes" sur Sud Radio, aux côtés de Michèle Vianès. Cette chronique hebdomadaire, diffusée le samedi de 07h47 à 07h51, aborde les questions essentielles liées aux droits des femmes et à l'égalité dans notre société.

            Professionnel engagé, Jean-Marie Bordry apporte son expertise et sa sensibilité pour traiter des sujets cruciaux touchant à la condition féminine. Son style d'animation, à la fois rigoureux et accessible, permet de mettre en lumière les enjeux contemporains de l'égalité hommes-femmes.
        </p>
        <p style="color: #ffffff; line-height: 1.8; margin-top: 15px;">
            À travers "Regards de femmes", Jean-Marie Bordry contribue à faire avancer le débat public sur ces questions fondamentales. Son travail, en collaboration avec Michèle Vianès, offre aux auditeurs une analyse approfondie et des perspectives éclairantes sur les défis actuels en matière de droits des femmes et d'égalité.
        </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;">Source officielle :</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.sudradio.fr/wp-content/uploads/2024/11/Capture-decran-2024-11-08-a-12.15.57.jpg" 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); }">• Profil X de Jean-Marie Bordry</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://www.sudradio.fr/programme/regards-de-femmes-2/poditunes";
        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>";
            });

        const DEFAULT_IMAGE = "https://imageproxy.octopus.saooti.com/image/aHR0cHM6Ly93d3cuc3VkcmFkaW8uZnIvd3AtY29udGVudC91cGxvYWRzLzIwMTkvMDEvSk0tQm9yZHJ5LTQwNXg0MDUuanBn?width=270&useWebp=true";

// 2. Fonction de nettoyage des caractères spéciaux
function sanitizeString(str) {
    if (!str) return '';
    return str.replace(/['"\\<>]/g, '')
              .replace(/&amp;/g, '&')
              .replace(/&lt;/g, '<')
              .replace(/&gt;/g, '>')
              .replace(/&quot;/g, '"')
              .replace(/&#39;/g, "'");
}

// 3. Fonction truncateDescription modifiée
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 || '';
    plainText = sanitizeString(plainText);

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

// 4. Fonction displayFeaturedEpisode corrigée
function displayFeaturedEpisode(episode) {
    const featuredEpisode = document.getElementById("featured-episode");
    
    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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de la dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[0].description)}</p>
                <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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'avant-dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[1].description)}</p>
                <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>
    `;
}

// 5. Fonction displayEpisodes corrigée
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>${sanitizeString(item.title)}</h5>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'épisode" style="width: 100%; max-width: 150px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(item.description)}</p>
                <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();
}

// 6. Fonction openModal corrigée
window.openModal = function(audioUrl, title) {
    const playerContent = document.getElementById("player-content");
    
    const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${sanitizeString(title)}</h2>
        <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'émission" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
            <source src="${sanitizeString(audioUrl)}" type="audio/mpeg">
            Votre navigateur ne supporte pas la lecture audio.
        </audio>
    `;
    
    updateNavigationButtons();
    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;
    });
};

        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 = DEFAULT_IMAGE; // On utilise maintenant l'image par défaut
    
    // Trouve l'index de l'épisode actuel
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${title}</h2>
        <img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <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 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 : Regards de femmes animé par Jean-Marie Bordry et Michèle Vianès de la chaine Sud Radio 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 : Regards de femmes animé par Jean-Marie Bordry et Michèle Vianès de la chaine Sud Radio 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 : Regards de femmes animé par Jean-Marie Bordry et Michèle Vianès de la chaine Sud Radio 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 : Regards de femmes animé par Jean-Marie Bordry et Michèle Vianès de la chaine Sud Radio 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-regards-de-femmes/">🗣️ Podcast et replay &#8211; Regards de Femmes &#8211; Sud Radio</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-regards-de-femmes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; Média &#8211; Sud Radio</title>
		<link>https://radiostreamr.com/radio-france/podcast-media-sud-radio/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-media-sud-radio/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 16 Nov 2024 15:55:12 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Sud Radio]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1303</guid>

					<description><![CDATA[<p>Ecoutez les podcasts de l&#8217;émission Média animé par Gilles Ganzmann et Valérie Expert &#8211; Tous les podcasts de la chaine Sud Radio en rediffusion ou à télécharger Plus récentsPlus anciens Publicité Plongez au cœur de l&#8217;actualité des médias avec Média animé par Gilles Ganzmann et Valérie Expert sur Sud Radio Voir leur Facebook Voir leur [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-media-sud-radio/">🗣️ Podcast et replay &#8211; Média &#8211; Sud Radio</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="1303" class="elementor elementor-1303" 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;">
Ecoutez les podcasts de l'émission Média animé par Gilles Ganzmann et
Valérie Expert - Tous les podcasts de la chaine Sud Radio en rediffusion ou à télécharger
<img decoding="async" src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/03/Logo_Sud_Radio_2014.svg/1200px-Logo_Sud_Radio_2014.svg.png" alt="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;">Plongez au cœur de l'actualité des médias avec Média animé par Gilles Ganzmann et Valérie Expert sur Sud Radio</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/SudRadioOfficiel/?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">
    <a href="https://www.facebook.com/SudRadioOfficiel/videos/bercoff-dans-tous-ses-etats/438886075502652/?_rdr">
        <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>
    </a>
</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/sudradioofficiel/?hl=fr" 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.sudradio.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>
</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;">
    "Média" est une émission quotidienne de Sud Radio animée par Gilles Ganzmann et Valérie Expert. Diffusée du lundi au vendredi de 10h00 à 10h45, cette émission propose une analyse approfondie de l'actualité des médias. Les deux journalistes chevronnés décryptent les coulisses de l'information, les tendances médiatiques et les évolutions du paysage audiovisuel français. Avec leur expertise et leur complémentarité, Gilles Ganzmann et Valérie Expert offrent aux auditeurs un regard aiguisé sur les enjeux et les transformations du monde des médias.
</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;">Retrouvez les meilleurs débats et discussions de l'actualité avec Valérie Expert dans Mettez-vous d'accord sur Sud Radio</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-sud-radio/'">
    <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
    </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;">Écoutez en direct Média avec Gilles Ganzmann et Valérie Expert sur Sud Radio</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;">
    Diffusé du lundi au vendredi<br>
    10H00-10H45
</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 Média avec Gilles Ganzmann et Valérie Expert</h2>
    <p style="color: #ffffff; line-height: 1.6; text-align: center;">
        "Média" est une émission quotidienne phare de Sud Radio, co-animée par Gilles Ganzmann et Valérie Expert. Du lundi au vendredi de 10h00 à 10h45, les deux journalistes proposent une analyse approfondie et passionnante de l'actualité des médias.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        Le duo d'animateurs chevronnés décrypte avec expertise les coulisses de l'information, les tendances médiatiques et les évolutions du paysage audiovisuel français. Leur complémentarité et leur professionnalisme apportent un éclairage unique sur les enjeux du monde des médias.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        L'émission se distingue par la qualité de ses analyses, la pertinence de ses invités et la diversité des sujets abordés. Chaque jour, Gilles Ganzmann et Valérie Expert reçoivent des professionnels des médias, des journalistes, des experts et des acteurs majeurs du secteur pour décrypter l'actualité médiatique et ses implications dans notre société.
    </p>
    <div style="margin-top: 20px;">
        <img decoding="async" src="https://i.ytimg.com/vi/MgMBSgTeyDk/hq720.jpg?sqp=-oaymwEhCK4FEIIDSFryq4qpAxMIARUAAAAAGAElAADIQj0AgKJD&amp;rs=AOn4CLBZmf_VWDLhFUqtswMuApO0NngyNQ" alt="Studio Sud Radio - En toute vérité" 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://sf2.telestar.fr/wp-content/uploads/telestarv2/2024/02/parole-expert-286x428.jpeg" alt="Alexandre Devecchio portrait photo" style="width: 100%; height: 100%; object-fit: cover;">
    </div>
    <div style="text-align: center;">
        <h2 style="color: #00ffff; margin-bottom: 20px;">Valérie Expert - L'animatrice de Mettez-vous d'accord sur Sud Radio</h2>
        <p style="color: #ffffff; line-height: 1.8;">
            Valérie Expert est une journaliste française chevronnée, figure emblématique de Sud Radio. Elle anime avec brio l'émission "Mettez-vous d'accord" du lundi au vendredi de 10h45 à 12h00, où elle orchestre des débats passionnants entre quatre intervenants sur les sujets brûlants de l'actualité.

            Son style d'animation dynamique et sa capacité à faire émerger des échanges constructifs font d'elle une animatrice respectée dans le paysage radiophonique français. Sous sa direction, "Mettez-vous d'accord" est devenu un rendez-vous quotidien incontournable, où elle accueille des experts, des personnalités politiques et des acteurs de la société civile pour des débats éclairants sur les grands enjeux contemporains.
        </p>
        <p style="color: #ffffff; line-height: 1.8; margin-top: 15px;">
            Son expertise journalistique, sa maîtrise des sujets d'actualité et son talent pour maintenir des débats équilibrés permettent aux auditeurs de mieux comprendre les enjeux complexes de notre société. Dans "Mettez-vous d'accord", Valérie Expert excelle à créer un espace de dialogue où les différents points de vue peuvent s'exprimer dans le respect et la constructivité.
        </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;">Source officielle :</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/Val%C3%A9rie_Expert" 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 Valérie Expert</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://www.sudradio.fr/programme/le-10-heures-midi-media/poditunes";
        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>";
            });

        const DEFAULT_IMAGE = "https://radio-podcast.fr/files/images_podcast/sud-radio-podcasts-10h-12h-media.png";

// 2. Fonction de nettoyage des caractères spéciaux
function sanitizeString(str) {
    if (!str) return '';
    return str.replace(/['"\\<>]/g, '')
              .replace(/&amp;/g, '&')
              .replace(/&lt;/g, '<')
              .replace(/&gt;/g, '>')
              .replace(/&quot;/g, '"')
              .replace(/&#39;/g, "'");
}

// 3. Fonction truncateDescription modifiée
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 || '';
    plainText = sanitizeString(plainText);

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

// 4. Fonction displayFeaturedEpisode corrigée
function displayFeaturedEpisode(episode) {
    const featuredEpisode = document.getElementById("featured-episode");
    
    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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de la dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[0].description)}</p>
                <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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'avant-dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[1].description)}</p>
                <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>
    `;
}

// 5. Fonction displayEpisodes corrigée
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>${sanitizeString(item.title)}</h5>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'épisode" style="width: 100%; max-width: 150px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(item.description)}</p>
                <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();
}

// 6. Fonction openModal corrigée
window.openModal = function(audioUrl, title) {
    const playerContent = document.getElementById("player-content");
    
    const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${sanitizeString(title)}</h2>
        <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'émission" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
            <source src="${sanitizeString(audioUrl)}" type="audio/mpeg">
            Votre navigateur ne supporte pas la lecture audio.
        </audio>
    `;
    
    updateNavigationButtons();
    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;
    });
};

        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 = DEFAULT_IMAGE; // On utilise maintenant l'image par défaut
    
    // Trouve l'index de l'épisode actuel
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${title}</h2>
        <img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <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 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 : Mettez-vous d'accord animé par Valérie Expert de la chaine Sud Radio 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 : Média animé par Gilles Ganzmann et Valérie Expert de la chaine Sud Radio 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 : Média animé par Gilles Ganzmann et Valérie Expert de la chaine Sud Radio 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 : Média animé par Gilles Ganzmann et Valérie Expert de la chaine Sud Radio 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-media-sud-radio/">🗣️ Podcast et replay &#8211; Média &#8211; Sud Radio</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-media-sud-radio/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; Mettez-vous d&#8217;accord &#8211; Sud Radio</title>
		<link>https://radiostreamr.com/radio-france/podcast-mettez-vous-daccord/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-mettez-vous-daccord/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 16 Nov 2024 15:32:12 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Sud Radio]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1296</guid>

					<description><![CDATA[<p>Ecoutez les podcasts de l&#8217;émission Mettez-vous d&#8217;accord animé par Valérie Expert &#8211; Tous les podcasts de la chaine Sud Radio en rediffusion ou à télécharger Plus récentsPlus anciens Publicité Plongez au cœur de l&#8217;actualité avec Mettez-vous d&#8217;accord animé par Valérie Expert sur Sud Radio Voir leur Facebook Voir leur Instagram « Mettez-vous d&#8217;accord » est une émission [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-mettez-vous-daccord/">🗣️ Podcast et replay &#8211; Mettez-vous d&rsquo;accord &#8211; Sud Radio</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="1296" class="elementor elementor-1296" 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;">
Ecoutez les podcasts de l'émission Mettez-vous d'accord animé par Valérie Expert - Tous les podcasts de la chaine Sud Radio en rediffusion ou à télécharger
<img decoding="async" src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/03/Logo_Sud_Radio_2014.svg/1200px-Logo_Sud_Radio_2014.svg.png" alt="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;">Plongez au cœur de l'actualité avec Mettez-vous d'accord animé par Valérie Expert sur Sud Radio</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/SudRadioOfficiel/?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">
    <a href="https://www.facebook.com/SudRadioOfficiel/videos/bercoff-dans-tous-ses-etats/438886075502652/?_rdr">
        <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>
    </a>
</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/sudradioofficiel/?hl=fr" 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.sudradio.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>
</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;">
    "Mettez-vous d'accord" est une émission quotidienne de Sud Radio animée par Valérie Expert. Diffusée du lundi au vendredi de 10h45 à 12h00, cette émission propose des débats dynamiques et constructifs sur l'actualité. Le concept unique de l'émission met en scène quatre intervenants qui confrontent leurs points de vue sur les sujets brûlants du moment. Avec son expertise et son talent d'animatrice, Valérie Expert orchestre ces échanges pour permettre aux auditeurs de se forger leur propre opinion sur les grands enjeux contemporains.
</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;">Retrouvez les meilleurs débats et discussions de l'actualité avec Valérie Expert dans Mettez-vous d'accord sur Sud Radio</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-sud-radio/'">
    <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
    </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;">Écoutez en direct Mettez-vous d'accord avec Valérie Expert sur Sud Radio</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;">
    Diffusé du lundi au vendredi<br>
    10H45-12H00
</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 Mettez-vous d'accord avec Valérie Expert</h2>
    <p style="color: #ffffff; line-height: 1.6; text-align: center;">
        "Mettez-vous d'accord" est une émission quotidienne phare de Sud Radio, animée par Valérie Expert. Du lundi au vendredi de 10h45 à 12h00, la journaliste orchestre des débats passionnants où quatre intervenants confrontent leurs points de vue sur les grands sujets d'actualité.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        Valérie Expert, avec son professionnalisme et son expertise journalistique, guide les discussions avec brio, permettant à chaque intervenant d'exprimer son point de vue tout en maintenant un débat constructif et équilibré. Son style d'animation dynamique et sa capacité à rebondir sur les arguments de chacun font de cette émission un rendez-vous incontournable de la matinée.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        L'émission se distingue par la qualité de ses intervenants et la diversité des sujets abordés. Chaque jour, des experts, des personnalités politiques, des intellectuels et des acteurs de la société civile se retrouvent autour de la table pour débattre et tenter de se mettre d'accord sur les questions qui animent l'actualité française et internationale.
    </p>
    <div style="margin-top: 20px;">
        <img decoding="async" src="https://i.ytimg.com/vi/0P3Kj2nwT-g/hq720.jpg?sqp=-oaymwEXCK4FEIIDSFryq4qpAwkIARUAAIhCGAE=&amp;rs=AOn4CLBk6FMN576bgd00Q2Naokfqbd-TZQ" alt="Studio Sud Radio - En toute vérité" 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://sf2.telestar.fr/wp-content/uploads/telestarv2/2024/02/parole-expert-286x428.jpeg" alt="Alexandre Devecchio portrait photo" style="width: 100%; height: 100%; object-fit: cover;">
    </div>
    <div style="text-align: center;">
        <h2 style="color: #00ffff; margin-bottom: 20px;">Valérie Expert - L'animatrice de Mettez-vous d'accord sur Sud Radio</h2>
        <p style="color: #ffffff; line-height: 1.8;">
            Valérie Expert est une journaliste française chevronnée, figure emblématique de Sud Radio. Elle anime avec brio l'émission "Mettez-vous d'accord" du lundi au vendredi de 10h45 à 12h00, où elle orchestre des débats passionnants entre quatre intervenants sur les sujets brûlants de l'actualité.

            Son style d'animation dynamique et sa capacité à faire émerger des échanges constructifs font d'elle une animatrice respectée dans le paysage radiophonique français. Sous sa direction, "Mettez-vous d'accord" est devenu un rendez-vous quotidien incontournable, où elle accueille des experts, des personnalités politiques et des acteurs de la société civile pour des débats éclairants sur les grands enjeux contemporains.
        </p>
        <p style="color: #ffffff; line-height: 1.8; margin-top: 15px;">
            Son expertise journalistique, sa maîtrise des sujets d'actualité et son talent pour maintenir des débats équilibrés permettent aux auditeurs de mieux comprendre les enjeux complexes de notre société. Dans "Mettez-vous d'accord", Valérie Expert excelle à créer un espace de dialogue où les différents points de vue peuvent s'exprimer dans le respect et la constructivité.
        </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;">Source officielle :</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/Val%C3%A9rie_Expert" 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 Valérie Expert</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://www.sudradio.fr/programme/mettez-vous-d-accord/poditunes";
        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>";
            });

        const DEFAULT_IMAGE = "https://radio-podcast.fr/files/400x400/podcasts-sud-radio-mettez-vous-daccord-241102092747.jpg";

// 2. Fonction de nettoyage des caractères spéciaux
function sanitizeString(str) {
    if (!str) return '';
    return str.replace(/['"\\<>]/g, '')
              .replace(/&amp;/g, '&')
              .replace(/&lt;/g, '<')
              .replace(/&gt;/g, '>')
              .replace(/&quot;/g, '"')
              .replace(/&#39;/g, "'");
}

// 3. Fonction truncateDescription modifiée
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 || '';
    plainText = sanitizeString(plainText);

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

// 4. Fonction displayFeaturedEpisode corrigée
function displayFeaturedEpisode(episode) {
    const featuredEpisode = document.getElementById("featured-episode");
    
    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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de la dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[0].description)}</p>
                <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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'avant-dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[1].description)}</p>
                <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>
    `;
}

// 5. Fonction displayEpisodes corrigée
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>${sanitizeString(item.title)}</h5>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'épisode" style="width: 100%; max-width: 150px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(item.description)}</p>
                <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();
}

// 6. Fonction openModal corrigée
window.openModal = function(audioUrl, title) {
    const playerContent = document.getElementById("player-content");
    
    const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${sanitizeString(title)}</h2>
        <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'émission" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
            <source src="${sanitizeString(audioUrl)}" type="audio/mpeg">
            Votre navigateur ne supporte pas la lecture audio.
        </audio>
    `;
    
    updateNavigationButtons();
    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;
    });
};

        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 = DEFAULT_IMAGE; // On utilise maintenant l'image par défaut
    
    // Trouve l'index de l'épisode actuel
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${title}</h2>
        <img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <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 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 : Mettez-vous d'accord animé par Valérie Expert de la chaine Sud Radio 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 : Mettez-vous d'accord animé par Valérie Expert de la chaine Sud Radio 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 : Mettez-vous d'accord animé par Valérie Expert de la chaine Sud Radio 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 : Mettez-vous d'accord animé par Valérie Expert de la chaine Sud Radio 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-mettez-vous-daccord/">🗣️ Podcast et replay &#8211; Mettez-vous d&rsquo;accord &#8211; Sud Radio</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-mettez-vous-daccord/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; En toute vérité &#8211; Sud Radio</title>
		<link>https://radiostreamr.com/radio-france/podcast-en-toute-verite/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-en-toute-verite/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 16 Nov 2024 14:30:39 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Sud Radio]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1289</guid>

					<description><![CDATA[<p>En toute vérité animé par Alexandre Devecchio &#8211; Écoutez en rediffusion ou télécharger tous les podcasts de la chaine Sud Radio Plus récentsPlus anciens Publicité Plongez au cœur de l&#8217;actualité avec En toute vérité d&#8217;Alexandre Devecchio sur Sud Radio Voir leur Facebook Voir leur Instagram « En toute vérité » est une émission hebdomadaire de Sud Radio [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-en-toute-verite/">🗣️ Podcast et replay &#8211; En toute vérité &#8211; Sud Radio</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="1289" class="elementor elementor-1289" 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;">
En toute vérité animé par Alexandre Devecchio - Écoutez en rediffusion ou télécharger tous les podcasts de la chaine Sud Radio
<img decoding="async" src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/03/Logo_Sud_Radio_2014.svg/1200px-Logo_Sud_Radio_2014.svg.png" alt="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;">Plongez au cœur de l'actualité avec En toute vérité d'Alexandre Devecchio sur Sud Radio</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/SudRadioOfficiel/?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">
    <a href="https://www.facebook.com/SudRadioOfficiel/videos/bercoff-dans-tous-ses-etats/438886075502652/?_rdr">
        <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>
    </a>
</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/sudradioofficiel/?hl=fr" 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.sudradio.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>
</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;">
    "En toute vérité" est une émission hebdomadaire de Sud Radio animée par Alexandre Devecchio. Diffusée chaque dimanche de 11h00 à 12h00, cette émission propose des entretiens approfondis sur l'actualité politique, sociale et culturelle. Avec son style direct et son sens aigu de l'analyse, Alexandre Devecchio aborde les sujets brûlants de l'actualité et propose des échanges sans concession avec ses invités, permettant aux auditeurs de mieux comprendre les enjeux contemporains.
</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;">Retrouvez les meilleurs moments et interviews d'actualité avec Alexandre Devecchio dans En toute vérité sur Sud Radio</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-sud-radio/'">
    <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
    </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 En toute vérité avec Alexandre Devecchio sur Sud Radio</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;">
    Diffusé dimanche<br>
    11H00-12H00
</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 d'En toute vérité avec Alexandre Devecchio</h2>
    <p style="color: #ffffff; line-height: 1.6; text-align: center;">
        "En toute vérité" est une émission hebdomadaire phare de Sud Radio, animée par Alexandre Devecchio. Chaque dimanche, le journaliste propose des entretiens approfondis et sans concession sur l'actualité politique, économique et sociale de la France et du monde.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        Alexandre Devecchio, également rédacteur en chef adjoint au Figaro, apporte son expertise et sa fine analyse des enjeux contemporains. Son approche journalistique rigoureuse et son style d'interview direct permettent d'éclairer les auditeurs sur les grandes questions qui traversent notre société.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        L'émission se distingue par la qualité de ses invités et la profondeur des échanges. Chaque dimanche, Alexandre Devecchio reçoit des personnalités de premier plan pour des discussions qui vont au-delà des éléments de langage habituels, offrant aux auditeurs une véritable réflexion sur les enjeux du monde contemporain.
    </p>
    <div style="margin-top: 20px;">
        <img decoding="async" src="https://i.ytimg.com/vi/2wQqjWPNS4Q/maxresdefault.jpg" alt="Studio Sud Radio - En toute vérité" 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://www.revuepolitique.fr/wp-content/uploads/2022/08/Photo-Alexandre-Devecchio-768x766-1.jpg" alt="Alexandre Devecchio portrait photo" style="width: 100%; height: 100%; object-fit: cover;">
    </div>
    <div style="text-align: center;">
        <h2 style="color: #00ffff; margin-bottom: 20px;">Alexandre Devecchio - L'animateur d'En toute vérité sur Sud Radio</h2>
        <p style="color: #ffffff; line-height: 1.8;">
            Alexandre Devecchio est un journaliste et éditorialiste français reconnu, actuellement rédacteur en chef adjoint au Figaro. Sur Sud Radio, il anime l'émission "En toute vérité", où il propose des entretiens approfondis sur l'actualité politique, économique et sociale.

            Sa capacité à mener des interviews incisives et son expertise journalistique en font une voix respectée dans le paysage médiatique français. Son émission sur Sud Radio est devenue un rendez-vous hebdomadaire incontournable, où il reçoit des personnalités influentes pour des échanges constructifs et éclairants sur les grands enjeux contemporains.
        </p>
        <p style="color: #ffffff; line-height: 1.8; margin-top: 15px;">
            Son approche journalistique rigoureuse, sa connaissance approfondie des sujets traités et son style d'interview direct permettent d'offrir aux auditeurs une analyse pertinente des événements qui façonnent notre société. Dans "En toute vérité", Alexandre Devecchio s'attache à aller au-delà des discours convenus pour proposer un décryptage précis de l'actualité.
        </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;">Source officielle :</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://x.com/AlexDevecchio?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor" 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); }">• Compte X officiel d'Alexandre Devecchio</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://www.sudradio.fr/programme/en-toute-verite/poditunes";
        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>";
            });

        const DEFAULT_IMAGE = "https://radio-podcast.fr/files/images_podcast/sud-radio-podcast-en-toute-verite-Alexandre-Devecchio.png";

// 2. Fonction de nettoyage des caractères spéciaux
function sanitizeString(str) {
    if (!str) return '';
    return str.replace(/['"\\<>]/g, '')
              .replace(/&amp;/g, '&')
              .replace(/&lt;/g, '<')
              .replace(/&gt;/g, '>')
              .replace(/&quot;/g, '"')
              .replace(/&#39;/g, "'");
}

// 3. Fonction truncateDescription modifiée
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 || '';
    plainText = sanitizeString(plainText);

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

// 4. Fonction displayFeaturedEpisode corrigée
function displayFeaturedEpisode(episode) {
    const featuredEpisode = document.getElementById("featured-episode");
    
    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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de la dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[0].description)}</p>
                <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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'avant-dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[1].description)}</p>
                <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>
    `;
}

// 5. Fonction displayEpisodes corrigée
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>${sanitizeString(item.title)}</h5>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'épisode" style="width: 100%; max-width: 150px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(item.description)}</p>
                <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();
}

// 6. Fonction openModal corrigée
window.openModal = function(audioUrl, title) {
    const playerContent = document.getElementById("player-content");
    
    const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${sanitizeString(title)}</h2>
        <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'émission" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
            <source src="${sanitizeString(audioUrl)}" type="audio/mpeg">
            Votre navigateur ne supporte pas la lecture audio.
        </audio>
    `;
    
    updateNavigationButtons();
    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;
    });
};

        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 = DEFAULT_IMAGE; // On utilise maintenant l'image par défaut
    
    // Trouve l'index de l'épisode actuel
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${title}</h2>
        <img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <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 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 : En toute vérité animé par Alexandre Devecchio de la chaine Sud Radio 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 : En toute vérité animé par Alexandre Devecchio de la chaine Sud Radio 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 : En toute vérité animé par Alexandre Devecchio de la chaine Sud Radio 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 : En toute vérité animé par Alexandre Devecchio de la chaine Sud Radio 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-en-toute-verite/">🗣️ Podcast et replay &#8211; En toute vérité &#8211; Sud Radio</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-en-toute-verite/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; La Culture dans tous ses états d&#8217;André Bercoff &#8211; Sud Radio</title>
		<link>https://radiostreamr.com/radio-france/podcast-la-culture-dans-tous-ses-etats/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-la-culture-dans-tous-ses-etats/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 16 Nov 2024 14:01:43 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Sud Radio]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1282</guid>

					<description><![CDATA[<p>Podcast RSS Feed La Culture dans tous ses états &#8211; Écoutez en rediffusion ou télécharger tous les podcasts de la chaine Sud Radio Plus récentsPlus anciens Publicité Découvrez La Culture dans tous ses états avec André Bercoff sur Sud Radio Voir leur Facebook Voir leur Instagram « La Culture dans tous ses états » est une émission [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-la-culture-dans-tous-ses-etats/">🗣️ Podcast et replay &#8211; La Culture dans tous ses états d&rsquo;André Bercoff &#8211; Sud Radio</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="1282" class="elementor elementor-1282" 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">
<title>Podcast RSS Feed</title>
<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;">
La Culture dans tous ses états - Écoutez en rediffusion ou télécharger tous les podcasts de la chaine Sud Radio
<img decoding="async" src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/03/Logo_Sud_Radio_2014.svg/1200px-Logo_Sud_Radio_2014.svg.png" alt="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;">Découvrez La Culture dans tous ses états avec André Bercoff sur Sud Radio</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/Europe1/?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">
    <a href="https://www.facebook.com/SudRadioOfficiel/videos/bercoff-dans-tous-ses-etats/438886075502652/?_rdr">
        <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>
    </a>
</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/andrebercoff_officiel/" 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.sudradio.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>
</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;">
    "La Culture dans tous ses états" est une émission culturelle emblématique de Sud Radio animée par André Bercoff. Chaque jour, il explore l'actualité culturelle sous toutes ses formes avec son style unique et passionné, apportant un regard éclairé sur la littérature, le cinéma, le théâtre, la musique et les arts. André Bercoff reçoit des artistes, écrivains, réalisateurs et acteurs de la scène culturelle pour des entretiens approfondis et des échanges passionnants sur leurs œuvres et leurs parcours.
</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;">Retrouvez les meilleurs moments culturels et les interviews passionnantes de La Culture dans tous ses états avec André Bercoff sur Sud Radio</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-sud-radio/'">
    <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
    </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 La Culture dans tous ses états avec André Bercoff sur Sud Radio</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;">
    Diffusé jeudi<br>
    13H00-14H00
</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 La Culture dans tous ses états</h2>
    <p style="color: #ffffff; line-height: 1.6; text-align: center;">
        "La Culture dans tous ses états" est une émission culturelle phare de Sud Radio, qui propose chaque jour des entretiens passionnants sur l'actualité culturelle sous toutes ses formes. Cette émission quotidienne rassemble des artistes, écrivains, musiciens, réalisateurs et acteurs de la scène culturelle pour des échanges approfondis sur leurs œuvres et leurs créations.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        André Bercoff, journaliste chevronné et écrivain reconnu, anime l'émission avec son style unique, mêlant analyse pointue et sensibilité culturelle. Son approche élégante des sujets culturels et sa capacité à mener des entretiens enrichissants ont fait de cette émission un rendez-vous incontournable pour les auditeurs passionnés de culture.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        L'émission se distingue par sa richesse culturelle, sa diversité d'invités et sa volonté d'explorer tous les aspects de la création artistique contemporaine. Chaque jour, André Bercoff apporte un éclairage unique sur l'actualité culturelle, partageant avec ses auditeurs sa passion pour les arts et la culture sous toutes ses formes.
    </p>
    <div style="margin-top: 20px;">
        <img decoding="async" src="https://www.sudradio.fr/wp-content/uploads/2023/06/Bercoff-dans-tous-ses-etats.jpg" alt="Studio Sud Radio - Bercoff dans tous ses états" 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://pbs.twimg.com/profile_images/466465424289177600/0gtcQ734_400x400.jpeg" alt="André Bercoff portrait photo" style="width: 100%; height: 100%; object-fit: cover;">
    </div>
    <div style="text-align: center;">
        <h2 style="color: #00ffff; margin-bottom: 20px;">André Bercoff - L'animateur de Bercoff dans tous ses états sur Sud Radio</h2>
        <p style="color: #ffffff; line-height: 1.8;">
            André Bercoff est un journaliste, écrivain et animateur radio français reconnu pour son style direct et sans concession. Sur Sud Radio, il anime quotidiennement l'émission "Bercoff dans tous ses états", où il traite l'actualité politique, économique et sociale avec un regard critique aiguisé.

            Connu pour ses analyses approfondies et son franc-parler, André Bercoff a su s'imposer comme une voix importante du paysage médiatique français. Son émission sur Sud Radio est devenue un rendez-vous incontournable pour les auditeurs en quête d'un décryptage différent de l'actualité, où il reçoit régulièrement des personnalités du monde politique, intellectuel et culturel.
        </p>
        <p style="color: #ffffff; line-height: 1.8; margin-top: 15px;">
            Son expérience journalistique, sa culture et sa capacité à mener des entretiens percutants font de "Bercoff dans tous ses états" une émission unique dans le paysage radiophonique français, où les débats sont toujours animés et les échanges constructifs.
        </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.sudradio.fr/emission/bercoff-dans-tous-ses-etats" 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); }">• Sud Radio - Bercoff dans tous ses états</a>
        </li>
        <li>
            <a href="https://fr.wikipedia.org/wiki/Andr%C3%A9_Bercoff" 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); }">• Wikipédia - André Bercoff</a>
        </li>
        <li>
            <a href="https://www.sudradio.fr/animateur/andre-bercoff" 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); }">• Sud Radio - Biographie André Bercoff</a>
        </li>
        <li>
            <a href="https://www.babelio.com/auteur/Andre-Bercoff/30265" 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); }"></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://www.sudradio.fr/programme/la-culture-dans-tous-ses-etats/poditunes";
        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>";
            });

        const DEFAULT_IMAGE = "https://radio-podcast.fr/files/images_podcast/sud-radio-podcast-la-culture-dans-tous-ses-etats.png";

// 2. Fonction de nettoyage des caractères spéciaux
function sanitizeString(str) {
    if (!str) return '';
    return str.replace(/['"\\<>]/g, '')
              .replace(/&amp;/g, '&')
              .replace(/&lt;/g, '<')
              .replace(/&gt;/g, '>')
              .replace(/&quot;/g, '"')
              .replace(/&#39;/g, "'");
}

// 3. Fonction truncateDescription modifiée
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 || '';
    plainText = sanitizeString(plainText);

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

async function getAudioDuration(audioUrl) {
    return new Promise((resolve) => {
        const audio = new Audio(audioUrl);
        audio.addEventListener('loadedmetadata', () => {
            resolve(audio.duration);
        });
        audio.addEventListener('error', () => {
            resolve(3600); // Fallback à 1h en cas d'erreur
        });
    });
}

function formatDuration(durationInSeconds) {
    const hours = Math.floor(durationInSeconds / 3600);
    const minutes = Math.floor((durationInSeconds % 3600) / 60);
    
    if (hours > 0) {
        return `${hours}h ${minutes}min`;
    } else {
        return `${minutes} min`;
    }
}

// 2. Remplacez la fonction displayFeaturedEpisode par celle-ci
async function displayFeaturedEpisode(episode) {
    const featuredEpisode = document.getElementById("featured-episode");
    
    // Obtenir les durées réelles
    const duration1 = await getAudioDuration(allEpisodes[0].enclosure.link);
    const duration2 = await getAudioDuration(allEpisodes[1].enclosure.link);
    
    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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de la dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[0].description)}</p>
                <div class="duration-badge" style="background: rgba(0, 0, 0, 0.6); color: #00ffff; padding: 5px 10px; border-radius: 15px; font-size: 0.9em; margin: 10px 0; display: inline-block; border: 1px solid rgba(0, 255, 255, 0.3);">
                    <span style="display: inline-block; margin-right: 5px; vertical-align: middle;">&#x23f1;</span>
                    ${formatDuration(duration1)}
                </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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'avant-dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[1].description)}</p>
                <div class="duration-badge" style="background: rgba(0, 0, 0, 0.6); color: #00ffff; padding: 5px 10px; border-radius: 15px; font-size: 0.9em; margin: 10px 0; display: inline-block; border: 1px solid rgba(0, 255, 255, 0.3);">
                    <span style="display: inline-block; margin-right: 5px; vertical-align: middle;">&#x23f1;</span>
                    ${formatDuration(duration2)}
                </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>
    `;
}

// 3. Remplacez la fonction displayEpisodes par celle-ci
async 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;
    
    // Charger les durées en parallèle
    const episodesToDisplay = episodesWithoutFeatured.slice(start, end);
    const durations = await Promise.all(
        episodesToDisplay.map(item => getAudioDuration(item.enclosure.link))
    );
    
    episodesToDisplay.forEach((item, index) => {
        episodeGrid.innerHTML += `
            <div class="episode">
                <h5>${sanitizeString(item.title)}</h5>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'épisode" style="width: 100%; max-width: 150px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(item.description)}</p>
                <div class="duration-badge" style="background: rgba(0, 0, 0, 0.6); color: #00ffff; padding: 5px 10px; border-radius: 15px; font-size: 0.9em; margin: 10px 0; display: inline-block; border: 1px solid rgba(0, 255, 255, 0.3);">
                    <span style="display: inline-block; margin-right: 5px; vertical-align: middle;">&#x23f1;</span>
                    ${formatDuration(durations[index])}
                </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();
}

// 6. Fonction openModal corrigée
window.openModal = function(audioUrl, title) {
    const playerContent = document.getElementById("player-content");
    
    const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${sanitizeString(title)}</h2>
        <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'émission" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
            <source src="${sanitizeString(audioUrl)}" type="audio/mpeg">
            Votre navigateur ne supporte pas la lecture audio.
        </audio>
    `;
    
    updateNavigationButtons();
    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;
    });
};

        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 = DEFAULT_IMAGE; // On utilise maintenant l'image par défaut
    
    // Trouve l'index de l'épisode actuel
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${title}</h2>
        <img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <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 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 : La Culture dans tous ses états de la chaine Sud Radio 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 : La Culture dans tous ses états de la chaine Sud Radio 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 : La Culture dans tous ses états de la chaine Sud Radio 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 : La Culture dans tous ses états de la chaine Sud Radio 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-la-culture-dans-tous-ses-etats/">🗣️ Podcast et replay &#8211; La Culture dans tous ses états d&rsquo;André Bercoff &#8211; Sud Radio</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-la-culture-dans-tous-ses-etats/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; Les Vraies Voix &#8211; Sud Radio</title>
		<link>https://radiostreamr.com/radio-france/podcast-les-vraies-voix/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-les-vraies-voix/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 16 Nov 2024 13:37:13 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Sud Radio]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1274</guid>

					<description><![CDATA[<p>Les vraies voix animé par Cécile De Ménibus et Philippe David &#8211; Écoutez en rediffusion tous les podcasts Sud Radio Plus récentsPlus anciens Publicité Écoutez et téléchargez « Les vraies voix » animé par Cécile De Ménibus et Philippe David sur Sud Radio Voir leur Instagram « Les vraies voix » est une émission phare de Sud Radio animée [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-les-vraies-voix/">🗣️ Podcast et replay &#8211; Les Vraies Voix &#8211; Sud Radio</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="1274" class="elementor elementor-1274" 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 vraies voix animé par Cécile De Ménibus et Philippe David - Écoutez en rediffusion tous les podcasts Sud Radio</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;">Écoutez et téléchargez "Les vraies voix" animé par Cécile De Ménibus et Philippe David sur Sud Radio</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/SudRadioOfficiel/?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">
    <a href="https://www.facebook.com/SudRadioOfficiel/?locale=fr_FR">
        <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>
    </a>
</svg>
</a>

        <a href="https://www.instagram.com/sudradioofficiel/?hl=fr" 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.sudradio.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>
</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;">
"Les vraies voix" est une émission phare de Sud Radio animée par Cécile De Ménibus et Philippe David. Cette émission dynamique et interactive donne la parole aux auditeurs pour débattre de l'actualité qui fait la France d'aujourd'hui. Chaque jour, Cécile De Ménibus et Philippe David orchestrent des échanges passionnants sur les sujets qui préoccupent les Français, mêlant expertises d'invités et témoignages d'auditeurs. L'émission se distingue par sa capacité à aborder des thèmes variés - politique, société, économie, culture - avec intelligence et bienveillance. Le duo d'animateurs crée une atmosphère propice au dialogue constructif, permettant à chacun d'exprimer son point de vue dans le respect et l'écoute mutuelle. C'est un rendez-vous incontournable pour tous ceux qui souhaitent comprendre et débattre des enjeux de notre société.
</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;">Une émission passionnante qui fait la part belle aux auditeurs ! Cécile De Ménibus et Philippe David animent chaque jour "Les vraies voix" sur Sud Radio, un rendez-vous unique où l'actualité est débattue en direct avec les auditeurs.</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-sud-radio/'">
    <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
    </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 l'émission dynamique - Les vraies voix, qui donne la parole aux auditeurs pour débattre de l'actualité avec Cécile De Ménibus et Philippe David sur Sud Radio.</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;">
    Diffusé du lundi au vendredi<br>
    17H00-18H50
</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;">Les vraies voix avec Cécile De Ménibus et Philippe David sur Sud Radio</h2>
    <p style="color: #ffffff; line-height: 1.6; text-align: center;">
        "Les vraies voix" est une émission phare de Sud Radio animée par Cécile De Ménibus et Philippe David. Cette émission dynamique et interactive donne la parole aux auditeurs pour débattre de l'actualité qui fait la France d'aujourd'hui. Le duo d'animateurs excelle dans l'art d'orchestrer des échanges passionnants sur tous les sujets qui préoccupent les Français.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        Chaque jour, Cécile De Ménibus et Philippe David créent un espace de dialogue où les témoignages des auditeurs se mêlent aux analyses d'experts invités, offrant un regard complet et nuancé sur les enjeux contemporains. Leur approche bienveillante et professionnelle permet d'aborder tous les sujets, des plus légers aux plus sensibles, avec justesse et respect.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        L'émission se distingue par sa capacité à traiter l'actualité sous tous ses angles : politique, société, économie, culture... Grâce à l'expertise et au dynamisme du duo d'animateurs, chaque édition devient un moment privilégié d'échanges et de réflexions, où la parole de chacun trouve sa place dans un débat constructif et enrichissant.
    </p>
    <div style="margin-top: 30px;">
        <img decoding="async" src="https://i.ytimg.com/vi/7OtEJk9JDRM/maxresdefault.jpg" alt="Alexandre Delovane sur Sud Radio" style="width: 96%; max-width: 360px; height: auto; border-radius: 15px; object-fit: cover;">
    </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://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTegwtMYXsOkkLCBtyjt8aVka7lzamqpmLD_w&amp;s" alt="Alexandre Delovane portrait photo" style="width: 100%; height: 100%; object-fit: cover;">
    </div>
    <div style="text-align: center;">
        <h2 style="color: #00ffff; margin-bottom: 20px;">Cécile De Ménibus - L'animatrice des "Vraies Voix" sur Sud Radio</h2>
        <p style="color: #ffffff; line-height: 1.8;">
            Cécile De Ménibus anime avec passion et professionnalisme l'émission "Les vraies voix" sur Sud Radio. Figure emblématique du paysage audiovisuel français, elle apporte son expertise et sa personnalité dynamique à cette émission interactive qui donne la parole aux auditeurs. Sa capacité à créer un dialogue constructif et à aborder tous les sujets d'actualité avec justesse fait d'elle une animatrice appréciée et respectée.

            Dans "Les vraies voix", Cécile De Ménibus excelle dans l'art d'orchestrer les débats et de donner la parole aux auditeurs, créant un espace d'échange unique où chacun peut s'exprimer librement sur les sujets qui font l'actualité. Son approche bienveillante et son professionnalisme permettent des discussions enrichissantes et constructives.
        </p>
        <p style="color: #ffffff; line-height: 1.8; margin-top: 15px;">
            Son style d'animation chaleureux et son écoute attentive créent une atmosphère conviviale qui encourage la participation active des auditeurs. Cécile De Ménibus a su développer une émission qui allie parfaitement information et interaction, offrant à son audience un programme vivant et pertinent qui aborde l'actualité sous tous ses angles.
        </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/C%C3%A9cile_de_M%C3%A9nibus" 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 Wikipedia de Cécile de Ménibus</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://www.sudradio.fr/programme/les-vraies-voix-sud-radio/poditunes";
        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>";
            });

        const DEFAULT_IMAGE = "https://radio-podcast.fr/files/400x400/podcasts-sud-radio-les-vraies-voix-241102092823.jpg";

// 2. Fonction de nettoyage des caractères spéciaux
function sanitizeString(str) {
    if (!str) return '';
    return str.replace(/['"\\<>]/g, '')
              .replace(/&amp;/g, '&')
              .replace(/&lt;/g, '<')
              .replace(/&gt;/g, '>')
              .replace(/&quot;/g, '"')
              .replace(/&#39;/g, "'");
}

// 3. Fonction truncateDescription modifiée
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 || '';
    plainText = sanitizeString(plainText);

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

// 4. Fonction displayFeaturedEpisode corrigée
function displayFeaturedEpisode(episode) {
    const featuredEpisode = document.getElementById("featured-episode");
    
    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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de la dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[0].description)}</p>
                <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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'avant-dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[1].description)}</p>
                <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>
    `;
}

// 5. Fonction displayEpisodes corrigée
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>${sanitizeString(item.title)}</h5>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'épisode" style="width: 100%; max-width: 150px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(item.description)}</p>
                <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();
}

// 6. Fonction openModal corrigée
window.openModal = function(audioUrl, title) {
    const playerContent = document.getElementById("player-content");
    
    const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${sanitizeString(title)}</h2>
        <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'émission" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
            <source src="${sanitizeString(audioUrl)}" type="audio/mpeg">
            Votre navigateur ne supporte pas la lecture audio.
        </audio>
    `;
    
    updateNavigationButtons();
    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;
    });
};

        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 = DEFAULT_IMAGE; // On utilise maintenant l'image par défaut
    
    // Trouve l'index de l'épisode actuel
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${title}</h2>
        <img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <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 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 vraies voix animé par Cécile De Ménibus et Philippe David de la chaine Sud Radio 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 vraies voix animé par Cécile De Ménibus et Philippe David de la chaine Sud Radio 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 vraies voix animé par Cécile De Ménibus et Philippe David de la chaine Sud Radio 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 vraies voix animé par Cécile De Ménibus et Philippe David de la chaine Sud Radio 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-vraies-voix/">🗣️ Podcast et replay &#8211; Les Vraies Voix &#8211; Sud Radio</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-vraies-voix/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; On parle auto &#8211; Sud Radio</title>
		<link>https://radiostreamr.com/radio-france/podcast-on-parle-auto/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-on-parle-auto/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 16 Nov 2024 13:13:38 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Sud Radio]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1267</guid>

					<description><![CDATA[<p>On parle auto animé par Jean-Luc MOREAU et Laurence Peraud &#8211; Écoutez en rediffusion tous les podcasts Sud Radio Plus récentsPlus anciens Publicité Écoutez et téléchargez « On parle auto » animé par Jean-Luc MOREAU et Laurence Peraud sur Sud Radio Voir leur Instagram « On parle auto » est une émission incontournable de Sud Radio animée par Jean-Luc [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-on-parle-auto/">🗣️ Podcast et replay &#8211; On parle auto &#8211; Sud Radio</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="1267" class="elementor elementor-1267" 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;">On parle auto animé par Jean-Luc MOREAU et Laurence Peraud - Écoutez en rediffusion tous les podcasts Sud Radio</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;">Écoutez et téléchargez "On parle auto" animé par Jean-Luc MOREAU et Laurence Peraud sur Sud Radio</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/SudRadioOfficiel/?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">
    <a href="https://www.facebook.com/SudRadioOfficiel/?locale=fr_FR">
        <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>
    </a>
</svg>
</a>

        <a href="https://www.instagram.com/sudradioofficiel/?hl=fr" 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.sudradio.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>
</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;">
"On parle auto" est une émission incontournable de Sud Radio animée par Jean-Luc MOREAU et Laurence Peraud. Cette émission passionnante est dédiée à l'univers automobile sous toutes ses formes. Chaque semaine, Jean-Luc MOREAU et Laurence Peraud partagent avec leurs auditeurs leur expertise et leur passion pour l'automobile, abordant l'actualité du secteur, les nouveautés, les essais de véhicules, les conseils pratiques et les tendances du marché. Ils répondent également aux questions des auditeurs sur l'entretien, l'achat, la vente et tous les aspects techniques et pratiques liés à l'automobile. L'émission se distingue par son approche accessible et conviviale, permettant à tous les passionnés et utilisateurs de voitures de mieux comprendre et appréhender cet univers en constante évolution.
</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;">Retrouvez chaque semaine On parle auto sur Sud Radio avec Jean-Luc MOREAU et Laurence Peraud, un rendez-vous passionnant qui explore l'actualité automobile, les nouveautés du marché, et répond à toutes vos questions sur l'univers de l'automobile.</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-sud-radio/'">
    <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
    </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 l'émission sur l'actualité automobile - Les nouveautés, essais et conseils pratiques sur Sud Radio.</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;">
    Diffusé samedi <br>
    10H00-12H00
</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;">On parle auto avec Jean-Luc MOREAU et Laurence Peraud sur Sud Radio</h2>
    <p style="color: #ffffff; line-height: 1.6; text-align: center;">
        "On parle auto" est une émission passionnante de Sud Radio animée par Jean-Luc MOREAU et Laurence Peraud, deux experts chevronnés de l'automobile. Cette émission incontournable offre aux auditeurs une exploration complète de l'univers automobile, couvrant l'actualité du secteur, les nouveautés du marché, les essais de véhicules et des conseils pratiques précieux pour les automobilistes.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        Le duo d'animateurs, avec leur expertise approfondie et leur approche accessible, crée une émission à la fois instructive et divertissante. Leur capacité à vulgariser les aspects techniques et à partager leur passion pour l'automobile fait de chaque édition un rendez-vous indispensable pour les amateurs de voitures comme pour les conducteurs du quotidien.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        L'émission se distingue par sa couverture exhaustive des différents aspects de l'automobile : actualités des constructeurs, nouvelles technologies, conseils d'entretien, sécurité routière, et tendances du marché. À travers des analyses pointues et des échanges dynamiques, Jean-Luc MOREAU et Laurence Peraud guident les auditeurs dans leurs choix automobiles et les aident à mieux comprendre les enjeux du secteur.
    </p>
    <div style="margin-top: 30px;">
        <img decoding="async" src="https://pbs.twimg.com/media/GPdks1PXEAAOa3E.jpg" alt="Alexandre Delovane sur Sud Radio" style="width: 96%; max-width: 360px; height: auto; border-radius: 15px; object-fit: cover;">
    </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://cdns-images.dzcdn.net/images/talk/18bcbcd444ebe9d24f72ec559dfbd715/0x1900-000000-80-0-0.jpg" alt="Alexandre Delovane portrait photo" style="width: 100%; height: 100%; object-fit: cover;">
    </div>
    <div style="text-align: center;">
        <h2 style="color: #00ffff; margin-bottom: 20px;">Jean-Luc MOREAU et Laurence Peraud - Les animateurs de "On parle auto" sur Sud Radio</h2>
        <p style="color: #ffffff; line-height: 1.8;">
            Jean-Luc MOREAU et Laurence Peraud animent avec passion et expertise l'émission "On parle auto" sur Sud Radio. Véritables passionnés d'automobile, ils partagent quotidiennement leur connaissance approfondie du secteur automobile avec leurs auditeurs. Leur émission est devenue un rendez-vous incontournable pour tous les amateurs de voitures et les conducteurs en quête d'informations fiables.

            Dans "On parle auto", le duo d'animateurs excelle dans l'art de décrypter l'actualité automobile, proposant des analyses pertinentes des dernières nouveautés du marché, des essais détaillés et des conseils pratiques pour l'entretien et l'achat de véhicules. Leur approche dynamique et accessible permet à chaque auditeur de mieux comprendre les enjeux du monde automobile.
        </p>
        <p style="color: #ffffff; line-height: 1.8; margin-top: 15px;">
            Leur expertise et leur style de présentation chaleureux créent une atmosphère conviviale qui encourage les auditeurs à participer activement à l'émission. Jean-Luc MOREAU et Laurence Peraud ont su développer une émission qui allie parfaitement contenu informatif et divertissement, offrant à leur audience un programme complet qui répond à toutes les questions relatives à l'automobile, des plus basiques aux plus techniques.
        </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.facebook.com/SudRadioOfficiel/videos/direct-on-parle-auto-10h-12h-laurence-peraud-jean-luc-moreau/989686249844135/" 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 de l'émission "On parle auto" sur Facebook</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://www.sudradio.fr/programme/sud-radio-on-parle-auto/poditunes";
        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>";
            });

        const DEFAULT_IMAGE = "https://radio-podcast.fr/files/400x400/podcasts-sud-radio-on-parle-auto-241102092807.jpg";

// 2. Fonction de nettoyage des caractères spéciaux
function sanitizeString(str) {
    if (!str) return '';
    return str.replace(/['"\\<>]/g, '')
              .replace(/&amp;/g, '&')
              .replace(/&lt;/g, '<')
              .replace(/&gt;/g, '>')
              .replace(/&quot;/g, '"')
              .replace(/&#39;/g, "'");
}

// 3. Fonction truncateDescription modifiée
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 || '';
    plainText = sanitizeString(plainText);

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

// 4. Fonction displayFeaturedEpisode corrigée
function displayFeaturedEpisode(episode) {
    const featuredEpisode = document.getElementById("featured-episode");
    
    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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de la dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[0].description)}</p>
                <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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'avant-dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[1].description)}</p>
                <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>
    `;
}

// 5. Fonction displayEpisodes corrigée
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>${sanitizeString(item.title)}</h5>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'épisode" style="width: 100%; max-width: 150px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(item.description)}</p>
                <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();
}

// 6. Fonction openModal corrigée
window.openModal = function(audioUrl, title) {
    const playerContent = document.getElementById("player-content");
    
    const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${sanitizeString(title)}</h2>
        <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'émission" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
            <source src="${sanitizeString(audioUrl)}" type="audio/mpeg">
            Votre navigateur ne supporte pas la lecture audio.
        </audio>
    `;
    
    updateNavigationButtons();
    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;
    });
};

        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 = DEFAULT_IMAGE; // On utilise maintenant l'image par défaut
    
    // Trouve l'index de l'épisode actuel
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${title}</h2>
        <img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <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 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 : On parle auto animé par Jean-Luc MOREAU et Laurence Peraud de la chaine Sud Radio 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 : On parle auto animé par Jean-Luc MOREAU et Laurence Peraud de la chaine Sud Radio 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 : On parle auto animé par Jean-Luc MOREAU et Laurence Peraud de la chaine Sud Radio 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 : On parle auto animé par Jean-Luc MOREAU et Laurence Peraud de la chaine Sud Radio 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-on-parle-auto/">🗣️ Podcast et replay &#8211; On parle auto &#8211; Sud Radio</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-on-parle-auto/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; C&#8217;est votre avenir &#8211; Sud Radio</title>
		<link>https://radiostreamr.com/radio-france/podcast-cest-votre-avenir/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-cest-votre-avenir/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 16 Nov 2024 12:39:49 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Sud Radio]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1255</guid>

					<description><![CDATA[<p>C&#8217;est votre avenir animé par Alexandre Delovane et Marie &#8211; Écoutez en rediffusion tous les podcasts Sud Radio Plus récentsPlus anciens Publicité Écoutez et téléchargez « C&#8217;est votre avenir » animé par Alexandre Delovane et Marie sur Sud Radio Voir leur Instagram « C&#8217;est votre avenir » est une émission quotidienne de Sud Radio animée par Alexandre Delovane et [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-cest-votre-avenir/">🗣️ Podcast et replay &#8211; C&rsquo;est votre avenir &#8211; Sud Radio</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="1255" class="elementor elementor-1255" 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;">C'est votre avenir animé par Alexandre Delovane et Marie - Écoutez en rediffusion tous les podcasts Sud Radio</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;">Écoutez et téléchargez "C'est votre avenir" animé par Alexandre Delovane et Marie sur Sud Radio</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/SudRadioOfficiel/?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">
    <a href="https://www.facebook.com/SudRadioOfficiel/?locale=fr_FR">
        <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>
    </a>
</svg>
</a>

        <a href="https://www.instagram.com/sudradioofficiel/?hl=fr" 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.sudradio.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>
</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;">
"C'est votre avenir" est une émission quotidienne de Sud Radio animée par Alexandre Delovane et Marie. Cette émission passionnante explore les mystères de l'avenir à travers l'astrologie, la voyance et la numérologie. Chaque jour, Alexandre Delovane et Marie accueillent des experts et proposent aux auditeurs des consultations en direct pour les aider à mieux comprendre leur futur et à faire les bons choix dans leur vie. L'émission aborde des sujets variés comme l'amour, la carrière, la santé et le développement personnel, offrant aux auditeurs des conseils précieux et des prédictions éclairantes pour les guider dans leur chemin de vie.
</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;">Retrouvez chaque jour C'est votre avenir sur Sud Radio avec Alexandre Delovane et Marie, un rendez-vous quotidien qui mêle astrologie, voyance et numérologie pour vous guider vers un avenir meilleur.</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-sud-radio/'">
    <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
    </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 C'est votre avenir animé par Alexandre Delovane et Marie sur Sud Radio. Votre émission quotidienne consacrée à l'astrologie, la voyance et la numérologie.</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;">
    Diffusé du lundi au vendredi <br>
    16H00-17H00
</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;">C'est votre avenir avec Alexandre Delovane et Marie</h2>
    <p style="color: #ffffff; line-height: 1.6; text-align: center;">
        "C'est votre avenir" est une émission phare de Sud Radio animée par Alexandre Delovane et Marie, deux experts passionnés par l'astrologie et les arts divinatoires. Cette émission captivante propose une exploration approfondie de l'astrologie, la voyance et la numérologie, offrant aux auditeurs des consultations en direct et des prédictions personnalisées. Chaque jour, Alexandre Delovane et Marie partagent leur expertise pour éclairer le chemin de vie des auditeurs.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        Le duo d'animateurs, avec leur approche bienveillante et leur connaissance approfondie des arts divinatoires, crée une émission à la fois instructive et réconfortante. Leur capacité à interpréter les signes et à communiquer avec précision les messages des astres fait de chaque édition un rendez-vous incontournable pour ceux qui cherchent des réponses à leurs questions existentielles.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        L'émission se distingue par sa couverture complète des différents aspects de la vie : amour, carrière, santé, famille, et développement personnel. À travers des consultations personnalisées, des analyses astrologiques et des prédictions détaillées, Alexandre Delovane et Marie guident les auditeurs vers une meilleure compréhension de leur destinée et les aident à prendre les meilleures décisions pour leur avenir.
    </p>
    <div style="margin-top: 30px;">
        <img decoding="async" src="https://www.sudradio.fr/wp-content/uploads/2024/08/Alexandre-Delovane-1-855x360.jpg" alt="Alexandre Delovane sur Sud Radio" style="width: 96%; max-width: 360px; height: auto; border-radius: 15px; object-fit: cover;">
    </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.wixstatic.com/media/00d332_d40ed981512343289b973142ce8e12c9~mv2.jpg/v1/fill/w_211,h_199,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/external-file_edited.jpg" alt="Alexandre Delovane portrait photo" style="width: 100%; height: 100%; object-fit: cover;">
    </div>
    <div style="text-align: center;">
        <h2 style="color: #00ffff; margin-bottom: 20px;">Alexandre Delovane - L'animateur de "C'est votre avenir" sur Sud Radio</h2>
        <p style="color: #ffffff; line-height: 1.8;">
            Alexandre Delovane est un animateur talentueux qui présente quotidiennement l'émission "C'est votre avenir" sur Sud Radio. Passionné par l'astrologie, la voyance et la numérologie, il apporte chaque jour son expertise et sa bienveillance pour guider les auditeurs dans leur quête de réponses et d'éclaircissements sur leur avenir.

            Dans son émission "C'est votre avenir", Alexandre Delovane excelle dans l'art d'accompagner les auditeurs à travers les arts divinatoires, proposant des consultations personnalisées et des prédictions détaillées. Sa capacité à interpréter les signes et à communiquer avec clarté fait de chaque émission un moment privilégié pour ceux qui cherchent à mieux comprendre leur destinée.
        </p>
        <p style="color: #ffffff; line-height: 1.8; margin-top: 15px;">
            Son approche chaleureuse et sa profonde connaissance des arts divinatoires permettent aux auditeurs de se sentir en confiance pour partager leurs questionnements les plus intimes. Alexandre Delovane a su créer une émission qui allie expertise et accessibilité, offrant à son audience un contenu riche et personnalisé qui répond aux interrogations de chacun sur son avenir.
        </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.delovanealexandre.com/" 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); }">• Site internet de Alexandre Delovane</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://www.sudradio.fr/programme/cest-votre-avenir-3/poditunes";
        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>";
            });

        const DEFAULT_IMAGE = "https://radio-podcast.fr/files/400x400/podcasts-sud-radio-cest-votre-avenir-241102092800.jpg";

// 2. Fonction de nettoyage des caractères spéciaux
function sanitizeString(str) {
    if (!str) return '';
    return str.replace(/['"\\<>]/g, '')
              .replace(/&amp;/g, '&')
              .replace(/&lt;/g, '<')
              .replace(/&gt;/g, '>')
              .replace(/&quot;/g, '"')
              .replace(/&#39;/g, "'");
}

// 3. Fonction truncateDescription modifiée
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 || '';
    plainText = sanitizeString(plainText);

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

// 4. Fonction displayFeaturedEpisode corrigée
function displayFeaturedEpisode(episode) {
    const featuredEpisode = document.getElementById("featured-episode");
    
    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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de la dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[0].description)}</p>
                <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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'avant-dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[1].description)}</p>
                <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>
    `;
}

// 5. Fonction displayEpisodes corrigée
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>${sanitizeString(item.title)}</h5>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'épisode" style="width: 100%; max-width: 150px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(item.description)}</p>
                <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();
}

// 6. Fonction openModal corrigée
window.openModal = function(audioUrl, title) {
    const playerContent = document.getElementById("player-content");
    
    const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${sanitizeString(title)}</h2>
        <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'émission" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
            <source src="${sanitizeString(audioUrl)}" type="audio/mpeg">
            Votre navigateur ne supporte pas la lecture audio.
        </audio>
    `;
    
    updateNavigationButtons();
    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;
    });
};

        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 = DEFAULT_IMAGE; // On utilise maintenant l'image par défaut
    
    // Trouve l'index de l'épisode actuel
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${title}</h2>
        <img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <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 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 journal des sports animé par Jules Boscherini de la chaine Sud Radio 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 : C'est votre avenir animé par Alexandre Delovane et Marie de la chaine Sud Radio 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 : C'est votre avenir animé par Alexandre Delovane et Marie de la chaine Sud Radio 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 : C'est votre avenir animé par Alexandre Delovane et Marie de la chaine Sud Radio 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-cest-votre-avenir/">🗣️ Podcast et replay &#8211; C&rsquo;est votre avenir &#8211; Sud Radio</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-cest-votre-avenir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; Brigitte Lahaie &#8211; Sud Radio</title>
		<link>https://radiostreamr.com/radio-france/podcast-brigitte-lahaie/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-brigitte-lahaie/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 16 Nov 2024 12:07:26 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Sud Radio]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1248</guid>

					<description><![CDATA[<p>Brigitte Lahaie &#8211; Écoutez en rediffusion tous les podcasts Sud Radio Plus récentsPlus anciens Publicité Écoutez et téléchargez « Brigitte Lahaie » sur Sud Radio Voir leur Instagram Brigitte Lahaie, figure emblématique des médias depuis plus de 30 ans, anime quotidiennement son émission sur Sud Radio. Dans un format intimiste et bienveillant, elle aborde avec ses auditeurs [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-brigitte-lahaie/">🗣️ Podcast et replay &#8211; Brigitte Lahaie &#8211; Sud Radio</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="1248" class="elementor elementor-1248" 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;">
Brigitte Lahaie - Écoutez en rediffusion tous les podcasts Sud Radio
<img decoding="async" src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/03/Logo_Sud_Radio_2014.svg/1200px-Logo_Sud_Radio_2014.svg.png" alt="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;">Écoutez et téléchargez "Brigitte Lahaie" sur Sud Radio</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/SudRadioOfficiel/?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">
    <a href="https://www.facebook.com/SudRadioOfficiel/?locale=fr_FR">
        <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>
    </a>
</svg>
</a>

        <a href="https://www.instagram.com/sudradioofficiel/?hl=fr" 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.sudradio.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>
</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;">
Brigitte Lahaie, figure emblématique des médias depuis plus de 30 ans, anime quotidiennement son émission sur Sud Radio. Dans un format intimiste et bienveillant, elle aborde avec ses auditeurs des sujets liés à l'amour, la sexualité, les relations de couple et le développement personnel. Forte de son expérience et de son expertise, elle propose des conseils avisés et accompagne ses auditeurs dans leurs questionnements les plus intimes. L'émission se caractérise par une écoute attentive et un dialogue constructif, offrant un espace de parole libre et sans jugement où chacun peut s'exprimer sur des sujets parfois difficiles à aborder ailleurs.
</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;">Retrouvez chaque jour Brigitte Lahaie sur Sud Radio pour des échanges intimes et bienveillants autour de l'amour, la sexualité et le développement personnel. Une émission qui allie expertise, écoute et conseils personnalisés.</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-sud-radio/'">
    <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
    </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 Brigitte Lahaie sur Sud Radio.</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;">
    Diffusé du lundi au vendredi <br>
    14H00-16H00
</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;">Brigitte Lahaie sur Sud Radio - Une émission unique sur l'amour et la sexualité</h2>
    <p style="color: #ffffff; line-height: 1.6; text-align: center;">
        "Brigitte Lahaie" est une émission phare de Sud Radio qui propose chaque jour un espace de parole libre et bienveillant autour des thèmes de l'amour, la sexualité et les relations humaines. Brigitte Lahaie, avec son expérience et son expertise uniques, accueille les témoignages des auditeurs et apporte des conseils précieux sur ces sujets intimes qui nous concernent tous.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        Par son approche à la fois professionnelle et chaleureuse, Brigitte Lahaie crée un environnement propice aux confidences et aux échanges authentiques. Sa capacité à aborder les sujets les plus délicats avec tact et pertinence fait de chaque émission un moment unique de partage et de réflexion.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        L'émission se distingue par sa volonté d'aider les auditeurs à mieux comprendre leur sexualité, à améliorer leur vie de couple et à s'épanouir dans leurs relations. À travers des discussions ouvertes, des conseils experts et des témoignages variés, Brigitte Lahaie offre un espace unique où la parole se libère et où chacun peut trouver des réponses à ses questionnements les plus intimes.
    </p>
    <div style="margin-top: 30px;">
        <img decoding="async" src="https://i.ytimg.com/vi/-hly6LZpHqA/hq720.jpg?sqp=-oaymwEhCK4FEIIDSFryq4qpAxMIARUAAAAAGAElAADIQj0AgKJD&amp;rs=AOn4CLD7BX0xrfnRv-BxZsv2S2wxR7xPQA" alt="C'est ça la France sur Europe 1" style="width: 96%; max-width: 360px; height: auto; border-radius: 15px; object-fit: cover;">
    </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://www.sudradio.fr/wp-content/uploads/2019/01/Brigitte-Lahaie.jpg" alt="Brigitte Lahaie portrait photo" style="width: 100%; height: 100%; object-fit: cover;">
    </div>
    <div style="text-align: center;">
        <h2 style="color: #00ffff; margin-bottom: 20px;">Brigitte Lahaie - Une voix experte sur l'amour et la sexualité sur Sud Radio</h2>
        <p style="color: #ffffff; line-height: 1.8;">
            Brigitte Lahaie est une figure emblématique des médias français, particulièrement reconnue pour son expertise dans les domaines de l'amour, de la sexualité et des relations humaines. Sur Sud Radio, elle anime quotidiennement une émission où elle accueille les confidences et les questionnements des auditeurs avec bienveillance et professionnalisme.

            Dans son émission, Brigitte Lahaie crée un espace de dialogue ouvert et sans tabou, où chacun peut s'exprimer librement sur des sujets intimes. Son approche combine expertise professionnelle et sensibilité humaine, permettant d'aborder les questions les plus délicates avec tact et pertinence.
        </p>
        <p style="color: #ffffff; line-height: 1.8; margin-top: 15px;">
            Sa longue expérience dans le domaine et sa capacité à créer un climat de confiance font de son émission un rendez-vous unique dans le paysage radiophonique français. Brigitte Lahaie propose non seulement des conseils avisés mais aussi une véritable écoute thérapeutique, aidant ses auditeurs à mieux comprendre et vivre leur sexualité, tout en améliorant leurs relations affectives.
        </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/Brigitte_Lahaie" 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 Brigitte Lahaie</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://www.sudradio.fr/programme/brigitte-lahaie-sudradio/poditunes";
        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>";
            });

        const DEFAULT_IMAGE = "https://radio-podcast.fr/files/400x400/podcasts-sud-radio-brigitte-lahaie-241102092755.jpg";

// 2. Fonction de nettoyage des caractères spéciaux
function sanitizeString(str) {
    if (!str) return '';
    return str.replace(/['"\\<>]/g, '')
              .replace(/&amp;/g, '&')
              .replace(/&lt;/g, '<')
              .replace(/&gt;/g, '>')
              .replace(/&quot;/g, '"')
              .replace(/&#39;/g, "'");
}

// 3. Fonction truncateDescription modifiée
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 || '';
    plainText = sanitizeString(plainText);

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

// 4. Fonction displayFeaturedEpisode corrigée
function displayFeaturedEpisode(episode) {
    const featuredEpisode = document.getElementById("featured-episode");
    
    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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de la dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[0].description)}</p>
                <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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'avant-dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[1].description)}</p>
                <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>
    `;
}

// 5. Fonction displayEpisodes corrigée
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>${sanitizeString(item.title)}</h5>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'épisode" style="width: 100%; max-width: 150px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(item.description)}</p>
                <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();
}

// 6. Fonction openModal corrigée
window.openModal = function(audioUrl, title) {
    const playerContent = document.getElementById("player-content");
    
    const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${sanitizeString(title)}</h2>
        <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'émission" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
            <source src="${sanitizeString(audioUrl)}" type="audio/mpeg">
            Votre navigateur ne supporte pas la lecture audio.
        </audio>
    `;
    
    updateNavigationButtons();
    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;
    });
};

        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 = DEFAULT_IMAGE; // On utilise maintenant l'image par défaut
    
    // Trouve l'index de l'épisode actuel
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${title}</h2>
        <img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <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 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 : Brigitte Lahaie de la chaine Sud Radio 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 : Brigitte Lahaie de la chaine Sud Radio 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 : Brigitte Lahaie de la chaine Sud Radio 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 : Brigitte Lahaie de la chaine Sud Radio 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-brigitte-lahaie/">🗣️ Podcast et replay &#8211; Brigitte Lahaie &#8211; Sud Radio</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-brigitte-lahaie/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>🗣️ Podcast et replay &#8211; Les vraies voix du foot &#8211; Sud Radio</title>
		<link>https://radiostreamr.com/radio-france/podcast-les-vraies-voix-du-foot/</link>
					<comments>https://radiostreamr.com/radio-france/podcast-les-vraies-voix-du-foot/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Thu, 14 Nov 2024 10:57:41 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Sud Radio]]></category>
		<guid isPermaLink="false">https://radiostreamr.com/radio-france/?p=1229</guid>

					<description><![CDATA[<p>Les vraies voix du foot &#8211; Écoutez en rediffusion tous les podcasts Sud Radio Plus récentsPlus anciens Publicité Écoutez et téléchargez « Les vraies voix du foot » animée par Philippe David, Guy Carlier, Tonton Maurizio et Yassine Khamadj sur Sud Radio Voir leur Instagram « Les vraies voix du foot » est une émission dynamique de Sud Radio [&#8230;]</p>
<p>L’article <a href="https://radiostreamr.com/radio-france/podcast-les-vraies-voix-du-foot/">🗣️ Podcast et replay &#8211; Les vraies voix du foot &#8211; Sud Radio</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="1229" class="elementor elementor-1229" 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 vraies voix du foot - Écoutez en rediffusion tous les podcasts Sud Radio
<img decoding="async" src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/03/Logo_Sud_Radio_2014.svg/1200px-Logo_Sud_Radio_2014.svg.png" alt="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;">Écoutez et téléchargez "Les vraies voix du foot" animée par Philippe David, Guy Carlier, Tonton Maurizio et Yassine Khamadj sur Sud Radio</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/SudRadioOfficiel/?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">
    <a href="https://www.facebook.com/SudRadioOfficiel/?locale=fr_FR">
        <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>
    </a>
</svg>
</a>

        <a href="https://www.instagram.com/sudradioofficiel/?hl=fr" 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.sudradio.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>
</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 vraies voix du foot" est une émission dynamique de Sud Radio animée par un quatuor passionné : Philippe David et Guy Carlier le mardi, Tonton Maurizio et Yassine Khamadj. Cette émission offre un regard unique et sans concession sur l'actualité du football. Chaque semaine, les animateurs partagent leurs analyses pointues, leurs opinions franches et leurs observations pertinentes sur les matchs, les équipes, les joueurs et les coulisses du football. L'émission se distingue par sa capacité à mêler expertise footballistique et commentaires authentiques, créant un dialogue passionnant qui captive les auditeurs. Les échanges entre les animateurs, leurs débats animés et leurs perspectives variées offrent une vision complète et enrichissante du monde du football, faisant de chaque émission un rendez-vous incontournable pour les passionnés du ballon rond.
</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;">Retrouvez "Les vraies voix du foot", l'émission animée par Philippe David et Guy Carlier le mardi, Tonton Maurizio et Yassine Khamadj. Un quatuor de passionnés qui apporte un regard unique et sans concession sur l'actualité du football, les matchs, les équipes et les joueurs.</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-sud-radio/'">
    <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
    </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 vraies voix du foot, une émission animée par Philippe David et Guy Carlier le mardi, Tonton Maurizio et Yassine Khamadj sur Sud Radio. Des passionnés qui apportent un regard unique et sans concession sur l'actualité du football, les matchs, les équipes et les joueurs.</p>
    <p style="color: #00ffff; margin-top: 10px; font-weight: bold; font-size: 0.8em;">
    Diffusé mardi, mercredi<br>
    20H00-21H00
</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;">Les vraies voix du foot sur Sud Radio</h2>
    <p style="color: #ffffff; line-height: 1.6; text-align: center;">
        "Les vraies voix du foot" est une émission phare de Sud Radio qui réunit un quatuor passionné composé de Philippe David et Guy Carlier le mardi, Tonton Maurizio et Yassine Khamadj. Cette émission dynamique propose une analyse approfondie et sans concession de l'actualité du football. Chaque semaine, les animateurs partagent leurs points de vue experts et leurs observations pertinentes sur les matchs, les équipes et les joueurs qui font l'actualité du ballon rond.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        Avec leur style unique et leur franc-parler légendaire, Philippe David, Guy Carlier, Tonton Maurizio et Yassine Khamadj créent une émission vivante et passionnante. Leur capacité à décrypter les enjeux du football moderne et à proposer des analyses pertinentes fait de chaque édition un rendez-vous incontournable pour les passionnés de football.
    </p>
    <p style="color: #ffffff; line-height: 1.6; margin-top: 15px; text-align: center;">
        L'émission se distingue par sa couverture complète de l'actualité du football, des championnats nationaux aux compétitions internationales. À travers des débats animés, des analyses tactiques et des discussions passionnées, ce quatuor d'experts offre aux auditeurs une vision riche et approfondie du football contemporain, mêlant expertise technique et passion authentique pour le sport roi.
    </p>
    <div style="margin-top: 30px;">
        <img decoding="async" src="https://www.sudradio.fr/wp-content/uploads/2024/11/Integrale-VV-du-foot-6.jpg" alt="Les vraies voix du foot sur Sud Radio" style="width: 96%; max-width: 360px; height: auto; border-radius: 15px; object-fit: cover;">
    </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://www.sudradio.fr/wp-content/uploads/2024/09/VV-du-foot-v1-3.jpg" alt="Les vraies voix du foot portrait photo" style="width: 100%; height: 100%; object-fit: cover;">
    </div>
    <div style="text-align: center;">
        <h2 style="color: #00ffff; margin-bottom: 20px;">Les vraies voix du foot sur Sud Radio - Une émission passionnante et sans concession</h2>
        <p style="color: #ffffff; line-height: 1.8;">
            "Les vraies voix du foot" est une émission phare de Sud Radio qui réunit un quatuor passionné composé de Philippe David et Guy Carlier (le mardi), Tonton Maurizio et Yassine Khamadj. Cette émission dynamique propose une analyse approfondie et sans concession de l'actualité du football. Chaque semaine, les animateurs partagent leurs points de vue experts et leurs observations pertinentes sur les matchs, les équipes et les joueurs qui font l'actualité du ballon rond.

            L'émission se distingue par sa capacité à décrypter les enjeux du football moderne avec franchise et expertise. Le style unique et le franc-parler légendaire des animateurs créent une atmosphère authentique où les analyses tactiques côtoient les débats passionnés sur l'actualité du football.
        </p>
        <p style="color: #ffffff; line-height: 1.8; margin-top: 15px;">
            Des championnats nationaux aux compétitions internationales, l'équipe des "Vraies voix du foot" offre un regard complet sur l'actualité footballistique. Philippe David, Guy Carlier, Tonton Maurizio et Yassine Khamadj apportent chacun leur expertise et leur personnalité pour créer une émission vivante et captivante qui est devenue un rendez-vous incontournable pour les passionnés de football. Leur capacité à allier analyse technique pointue et discussions passionnées fait de chaque émission un moment unique d'échange et de partage autour du football.
        </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://sudradio.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); }">• Site web de Sud Radio</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://api.octopus.saooti.com/rss/emission/9513.rss";
        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>";
            });

        const DEFAULT_IMAGE = "https://radio-podcast.fr/files/images_podcast/podcast-sud-radio-les-vraies-voix-du-foot.png";

// 2. Fonction de nettoyage des caractères spéciaux
function sanitizeString(str) {
    if (!str) return '';
    return str.replace(/['"\\<>]/g, '')
              .replace(/&amp;/g, '&')
              .replace(/&lt;/g, '<')
              .replace(/&gt;/g, '>')
              .replace(/&quot;/g, '"')
              .replace(/&#39;/g, "'");
}

// 3. Fonction truncateDescription modifiée
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 || '';
    plainText = sanitizeString(plainText);

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

// 4. Fonction displayFeaturedEpisode corrigée
function displayFeaturedEpisode(episode) {
    const featuredEpisode = document.getElementById("featured-episode");
    
    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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de la dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[0].description)}</p>
                <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>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'avant-dernière émission" style="width: 100%; max-width: 200px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(allEpisodes[1].description)}</p>
                <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>
    `;
}

// 5. Fonction displayEpisodes corrigée
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>${sanitizeString(item.title)}</h5>
                <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'épisode" style="width: 100%; max-width: 150px; border-radius: 10px; margin: 10px 0;">
                <p>${truncateDescription(item.description)}</p>
                <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();
}

// 6. Fonction openModal corrigée
window.openModal = function(audioUrl, title) {
    const playerContent = document.getElementById("player-content");
    
    const currentEpisode = allEpisodes.find(ep => ep.enclosure.link === audioUrl);
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${sanitizeString(title)}</h2>
        <img decoding="async" src="${DEFAULT_IMAGE}" alt="Image de l'émission" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <audio controls style="width: 100%; margin-top: 10px;" id="modal-audio">
            <source src="${sanitizeString(audioUrl)}" type="audio/mpeg">
            Votre navigateur ne supporte pas la lecture audio.
        </audio>
    `;
    
    updateNavigationButtons();
    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;
    });
};

        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 = DEFAULT_IMAGE; // On utilise maintenant l'image par défaut
    
    // Trouve l'index de l'épisode actuel
    currentEpisodeIndex = allEpisodes.findIndex(ep => ep.enclosure.link === audioUrl);
    
    playerContent.innerHTML = `
        <h2>${title}</h2>
        <img decoding="async" src="${thumbnail}" alt="Image de l'épisode" style="width: 100%; max-width: 300px; margin: 15px 0; border-radius: 10px;">
        <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 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 vraies voix du foot de la chaine Sud Radio 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 vraies voix du foot de la chaine Sud Radio 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 vraies voix du foot de la chaine Sud Radio 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 vraies voix du foot de la chaine Sud Radio 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-vraies-voix-du-foot/">🗣️ Podcast et replay &#8211; Les vraies voix du foot &#8211; Sud Radio</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-vraies-voix-du-foot/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
