/* ==========================================================================================================
   ORDINATEURS PORTABLES ET ÉCRANS MOYENS
========================================================================================================== */
@media screen and (max-width: 1500px) {
    body {
        padding-top: 100px;
        padding-bottom: 70px;
    }

    main {
        width: 100%;
        max-width: 1200px;
        margin: 0 auto;
        padding: 30px 25px 35px;
    }

    .block {
        grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
        gap: 25px;
        margin-bottom: 30px;
    }

    .block .left,
    .block .right {
        min-width: 0;
    }

    .section-title {
        gap: 10px;
        min-width: 0;
    }

    .section-title h2 {
        min-width: 0;
        font-size: 20px;
        line-height: 1.3;
        overflow-wrap: anywhere;
    }

    .section-title::after {
        min-width: 12px;
    }

    .section-more {
        gap: 5px;
        font-size: 14px;
        white-space: nowrap;
    }

    .descriptions-cadre {
        min-width: 0;
        margin-bottom: 15px;
    }

    .descriptions-cadre h2 {
        gap: 10px;
        font-size: 20px;
        line-height: 1.3;
    }

    .descriptions-cadre h2 span {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .descriptions-cadre h2::after {
        min-width: 12px;
    }

    .descriptions-cadre p {
        overflow-wrap: anywhere;
    }

    .site-header {
        min-height: 90px;
        gap: 15px;
        padding: 10px 25px;
    }

    .header-left {
        flex: 1;
        min-width: 0;
    }

    .logo {
        margin-right: 15px;
    }

    .logo img {
        height: 50px;
        max-width: 150px;
    }

     .menu {
        min-width: 0;
    }

    .menu > ul {
        flex-wrap: wrap;
        gap: 3px;
    }

    .menu > ul > li > a,
    .menu > ul > li > .submenu-toggle {
        min-height: 44px;
        padding: 0 9px;
        font-size: 13px;
    }

    .submenu-toggle {
        gap: 6px;
    }

    .submenu {
        min-width: 190px;
        max-width: calc(100vw - 50px);
    }

    .menu > ul > li:last-child > .submenu {
        left: auto;
        right: 0;
    }

    .submenu li a {
        padding: 9px 14px;
        font-size: 13px;
        overflow-wrap: anywhere;
    }

   .header-right {
        margin-left: 0;
    }

    .btn-radio {
        width: 240px;
        min-height: 58px;
        padding: 6px 8px;
    }

    #header-cover {
        width: 44px;
        height: 44px;
    }

    .radio-text {
        min-width: 0;
        margin-left: 8px;
    }

    .header-title {
        font-size: 12px;
        line-height: 19px;
    }

    .header-artist {
        font-size: 11px;
        line-height: 17px;
    }

    .play-icon {
        width: 34px;
        height: 34px;
        margin-left: 6px;
        font-size: 13px;
    }

    #radio-popup {
        padding: 8px 0;
    }

    .popup-content {
        max-width: 1200px;
        gap: 18px;
        padding: 0 25px;
    }

    .popup-cover-container {
        flex: 0 0 54px;
    }

    #popup-cover {
        width: 54px;
        height: 54px;
    }

    .popup-infos {
        flex: 1;
        min-width: 0;
    }

    #popup-title {
        font-size: 13px;
        line-height: 20px;
    }

    #popup-artist {
        font-size: 12px;
        line-height: 18px;
    }

    .popup-controls {
        gap: 12px;
    }

    #radio-popup .popup-player-link {
        width: 44px;
        height: 44px;
        font-size: 16px;
    }

    .breadcrumb {
        flex-wrap: wrap;
        gap: 6px;
        min-width: 0;
        margin-bottom: 20px;
        font-size: 13px;
    }

    .breadcrumb a,
    .breadcrumb span {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .slider {
        height: clamp(360px, 38vw, 440px);
        min-width: 0;
    }

    .slide img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .slide-content {
        left: 55px;
        right: 55px;
        bottom: 45px;
        max-width: none;
    }

    .slide-category {
        margin-bottom: 8px;
        padding: 5px 10px;
        font-size: 11px;
    }

    .slide-content h2 {
        margin-bottom: 8px;
        font-size: 26px;
        line-height: 1.3;
        overflow-wrap: anywhere;
    }

    .slide-content p {
        padding: 8px;
        font-size: 14px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .slider-btn {
        width: 38px;
        height: 38px;
        font-size: 20px;
    }

    .slider-prev {
        left: 10px;
    }

    .slider-next {
        right: 10px;
    }

    .slider-dots {
        left: 50%;
        bottom: 15px;
        gap: 7px;
    }

    .page-slide {
        min-width: 0;
        max-width: 100%;
    }

    .page-slide img {
        display: block;
        width: 100%;
        height: auto;
    }

    .content-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 15px;
        padding: 10px;
        margin-bottom: 25px;
    }

    .content-item {
        min-width: 0;
    }

    .content-item img {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .content-item h3 {
        font-size: 14px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .content-item p {
        margin-top: 0;
        font-size: 14px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .rna-last4 {
        min-width: 0;
    }

    .rna-last4-header {
        gap: 10px;
        flex-wrap: wrap;
    }

    .rna-last4-title-text {
        font-size: 18px;
    }

    .rna-last4-link {
        font-size: 12px;
    }

    .rna-last4-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
        padding: 12px;
    }

    .rna-last4-cover-wrapper {
        max-width: 100%;
    }

    .rna-last4-cover {
        height: auto;
        object-fit: cover;
    }

    .rna-last4-time {
        bottom: 5px;
        left: 5px;
        padding: 3px 5px;
        font-size: 10px;
    }

    .rna-last4-artist {
        margin-top: 7px;
        font-size: 12px;
    }

    .rna-last4-song {
        font-size: 11px;
    }

   .right .musical-news-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        padding: 10px;
    }

    .right .musical-news-item {
        min-width: 0;
    }

    .right .musical-news-item > a img {
        height: auto;
        object-fit: cover;
    }

    .right .musical-news-text {
        min-width: 0;
        padding-top: 7px;
    }

    .right .musical-news-text h3 {
        font-size: 13px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .right .musical-news-text p {
        font-size: 14px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

   .track-history-menu {
        min-width: 0;
        margin-top: 45px;
    }

    .thm-header h2 {
        font-size: 20px;
    }

    .thm-controls {
        gap: 15px;
    }

    .thm-controls > * {
        min-width: 0;
        max-width: 100%;
    }

    .thm-controls input {
        max-width: 100%;
        min-width: 0;
        font-size: 14px;
    }

    .thm-btn {
        min-height: 44px;
        padding: 10px 15px;
        font-size: 14px;
    }

    .track-history {
        min-width: 0;
        margin-top: 0;
    }

    .track-history__heading {
        font-size: 20px;
    }

    .track-history__grid,
    .thm-grid {
        grid-template-columns: repeat(auto-fill, minmax(min(160px, 100%), 1fr));
        gap: 15px;
    }

    .thm-grid {
        margin-top: 35px;
    }

    .track-card,
    .thm-item {
        min-width: 0;
    }

    .track-card__cover,
    .thm-cover {
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        object-fit: cover;
    }

    .track-card__info {
        padding: 10px 8px;
    }

    .track-card__artist,
    .track-card__title,
    .thm-info h3,
    .thm-info p {
        overflow-wrap: anywhere;
    }

    .track-card__time,
    .thm-time-badge {
        padding: 4px 6px;
        font-size: 12px;
    }

    .contact-form-cadre {
        min-width: 0;
        margin-top: 45px;
    }

    .contact-form-cadre h2 {
        margin-bottom: 25px;
        font-size: 20px;
    }

    .contact-form {
        min-width: 0;
        gap: 14px;
    }

    .contact-form input,
    .contact-form textarea {
        min-width: 0;
        max-width: 100%;
        padding: 12px;
    }

    .contact-form .btn {
        width: auto;
        align-self: flex-start;
        min-height: 44px;
        max-width: 100%;
        padding: 12px 24px;
        white-space: normal;
    }

    .form-error,
    .form-success,
    .info-contact {
        overflow-wrap: anywhere;
    }

    .info-contact i,
    .adresse-block i {
        margin-right: 12px;
        flex-shrink: 0;
    }

    .adresse-lines {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .schedule-menu {
        gap: 8px;
        margin-top: 45px;
    }

    .schedule-menu button {
        min-height: 44px;
        max-width: 100%;
        padding: 10px 14px;
        font-size: 14px;
        white-space: normal;
    }

    .schedule-wrapper {
        min-width: 0;
        padding: 15px 0;
    }

    .schedule-day-title {
        margin-bottom: 20px;
        font-size: 20px;
        overflow-wrap: anywhere;
    }

    .schedule-list {
        gap: 15px;
    }

    .schedule-card {
        grid-template-columns: 145px minmax(0, 1fr);
        min-width: 0;
    }

    .schedule-timebox {
        min-width: 0;
        padding: 22px 8px;
    }

    .schedule-time-icon {
        font-size: 1.7rem;
    }

    .schedule-time-range {
        font-size: 1.1rem;
        text-align: center;
        overflow-wrap: anywhere;
    }

    .schedule-info {
        min-width: 0;
        padding: 16px;
    }

    .schedule-title,
    .schedule-subtitle,
    .schedule-description {
        overflow-wrap: anywhere;
    }

    .schedule-description {
        font-size: 15px;
    }

    #programme-container {
        gap: 15px;
        padding: 10px;
        overflow-x: auto;
        overflow-y: hidden;
    }

    .programme-card {
        flex: 0 0 260px;
        max-width: 100%;
        height: auto;
        min-height: 240px;
        aspect-ratio: auto;
    }

    .programme-timebox {
        padding: 9px 6px;
    }

    .programme-time-icon {
        font-size: 1.4rem;
    }

    .programme-time-range {
        font-size: 14px;
    }

    .programme-info {
        min-width: 0;
        padding: 10px;
    }

    .programme-title {
        font-size: 15px;
        overflow-wrap: anywhere;
    }

    .programme-subtitle {
        font-size: 14px;
        overflow-wrap: anywhere;
    }

    .programme-description {
        font-size: 13px;
        overflow-wrap: anywhere;
    }

    .form-signalement {
        min-width: 0;
        max-width: 100%;
    }

    .form-signalement input[type="email"],
    .form-signalement textarea {
        min-width: 0;
        max-width: 100%;
        padding: 12px;
    }

    .form-signalement textarea {
        resize: vertical;
    }

    .form-signalement button {
        min-height: 44px;
        max-width: 100%;
        padding: 12px 20px;
        white-space: normal;
    }

   .equipe {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 15px;
        margin-top: 45px;
    }

    .membre-equipe {
        min-width: 0;
    }

    .visuel-membre {
        height: 220px;
    }

    .logo-equipe {
        width: 75px;
        height: 75px;
    }

    .nom-membre,
    .fonction-membre {
        font-size: 14px;
        overflow-wrap: anywhere;
    }

    .page-membre {
        min-width: 0;
        margin-top: 25px;
        padding: 20px;
    }

    .photo-membre-large {
        max-width: 360px;
        height: auto;
    }

    .bloc-info-membre {
        margin-bottom: 20px;
        overflow-wrap: anywhere;
    }

    .bio-membre p {
        margin-bottom: 20px;
        overflow-wrap: anywhere;
    }

    .retour-equipe {
        margin-top: 25px;
    }

    .retour-equipe a {
        max-width: 100%;
        white-space: normal;
    }

    .page-article-title h1 {
        margin-bottom: 30px;
        font-size: 26px;
        line-height: 1.35;
        overflow-wrap: anywhere;
    }

    .page-banner {
        min-width: 0;
    }

    .page-banner img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .page-credit {
        overflow-wrap: anywhere;
    }

    .page-social {
        flex-wrap: wrap;
        gap: 7px;
        margin-bottom: 25px;
    }

    .page-article-content {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .page-article-content h2 {
        font-size: 21px;
        line-height: 1.4;
    }

    .page-article-content img,
    .page-article-content video {
        max-width: 100%;
        height: auto;
    }

    .page-article-content iframe {
        max-width: 100%;
    }

    .articles-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 15px;
        margin-top: 45px;
    }

    .articles-grid > *,
    .card-link,
    .card-content {
        min-width: 0;
    }

    .card-image img {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .card-date {
        margin-bottom: 10px;
        font-size: 12px;
    }

    .card-title {
        font-size: 15px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .card-excerpt {
        font-size: 14px;
        overflow-wrap: anywhere;
    }

    .rna-meteo-titre {
        gap: 10px;
        flex-wrap: wrap;
    }

    .rna-meteo-voir {
        font-size: 14px;
    }

    .rna-meteo-voir strong {
        font-size: 20px;
    }

    .rna-meteo-cadre {
        padding: 10px;
    }

    .rna-meteo-introduction p {
        font-size: 15px;
        overflow-wrap: anywhere;
    }

    .rna-meteo-entete {
        margin-bottom: 15px;
        padding-bottom: 12px;
    }

    .rna-meteo-entete p {
        font-size: 13px;
        overflow-wrap: anywhere;
    }

    .rna-meteo-ville h3 {
        margin-bottom: 12px;
        font-size: 18px;
    }

    .rna-meteo-principale {
        gap: 12px;
        margin-bottom: 15px;
    }

    .rna-meteo-temperature {
        font-size: 40px;
    }

    .rna-meteo-description {
        font-size: 14px;
    }

    .rna-meteo-icone {
        width: 70px;
        min-height: 70px;
        font-size: 52px;
    }

    .rna-meteo-details {
        gap: 8px;
        padding-top: 12px;
    }

    .rna-meteo-details span {
        flex: 1 1 120px;
        padding: 9px 10px;
        font-size: 13px;
    }

    .rna-meteo-chargement {
        font-size: 14px;
    }

    .cadre-meteo {
        min-width: 0;
        margin-top: 45px;
    }

    .cadre-meteo .meteo-header h3,
    .cadre-meteo .meteo-bergerac h3 {
        font-size: 21px;
        overflow-wrap: anywhere;
    }

    .cadre-meteo .meteo-header p {
        font-size: 17px;
    }

    .cadre-meteo .meteo-bergerac {
        padding: 10px;
    }

    .cadre-meteo .meteo-principale {
        gap: 12px;
    }

    .cadre-meteo .meteo-principale > * {
        min-width: 0;
        max-width: 100%;
    }

    .cadre-meteo .meteo-details {
        justify-content: flex-start;
        gap: 10px 15px;
        margin-top: 18px;
    }

    .cadre-meteo .meteo-details > * {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .cadre-meteo .meteo-villes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .cadre-meteo .meteo-ville {
        padding: 12px;
    }

    .cadre-meteo .meteo-ville-temp {
        color: #363636;
    }

    .cadre-meteo .meteo-ville-desc,
    .cadre-meteo .meteo-footer {
        overflow-wrap: anywhere;
    }

    .cadre-meteo .meteo-chargement {
        padding: 25px 15px;
    }

    .rna-horoscope .horoscope-date {
        margin-top: 45px;
        font-size: 18px;
    }

    .rna-horoscope .horoscope-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 15px;
        margin-top: 20px;
        margin-bottom: 25px;
    }

    .rna-horoscope .horoscope-card {
        min-width: 0;
        gap: 12px;
        padding: 15px;
    }

    .rna-horoscope .astro-icon {
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        font-size: 27px;
    }

    .rna-horoscope .horoscope-content h2 {
        font-size: 19px;
        overflow-wrap: anywhere;
    }

    .rna-horoscope .horoscope-content .astro-dates {
        margin-bottom: 10px;
        font-size: 12px;
    }

    .rna-horoscope .horoscope-content .astro-text {
        font-size: 14px;
        line-height: 1.65;
    }

    .rna-partenaires-grille {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        column-gap: 15px;
        row-gap: 30px;
        margin-top: 45px;
    }

    .rna-partenaire-image {
        height: 130px;
    }

    .rna-partenaire-titre {
        font-size: 13px;
        line-height: 1.6;
    }

    .rna-partenaire-texte {
        font-size: 14px;
        line-height: 1.55;
    }

    .rna-partenaire-liens {
        gap: 10px 15px;
    }

    .rna-partenaire-lien {
        min-width: 0;
        max-width: 100%;
        font-size: 13px;
        overflow-wrap: anywhere;
    }

    .rna-partenaire-lien i {
        flex-shrink: 0;
        font-size: 13px;
    }

    .rna-pagination {
        gap: 12px;
        margin: 30px 0 15px;
    }

    .rna-pagination__numbers {
        gap: 6px;
    }

    .rna-pagination .rna-pagination__number {
        min-width: 32px;
        min-height: 44px;
        font-size: 14px;
    }

    .rna-pagination .rna-pagination__arrow {
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        font-size: 18px;
    }

   .rna-partenaires-pagination {
        gap: 8px;
        margin: 30px 0;
    }

    .rna-partenaires-pagination-numeros {
        min-width: 0;
        gap: 6px;
    }

    .rna-partenaires-pagination-numero,
    .rna-partenaires-pagination-fleche {
        min-width: 40px;
        height: 44px;
        padding: 0 10px;
        font-size: 14px;
    }

    .footer {
        padding: 35px 0;
    }

    .footer-container {
        width: 100%;
        max-width: 100%;
        padding: 0 25px 30px;
        gap: 25px;
        flex-wrap: wrap;
    }

    .footer-col {
        flex: 1 1 170px;
        min-width: 0;
    }

    .footer-contact {
        flex: 1.2 1 220px;
    }

    .footer-col h3 {
        margin-bottom: 20px;
        font-size: 15px;
        overflow-wrap: anywhere;
    }

    .footer-col ul li {
        font-size: 14px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }

    .footer-contact ul li,
    .footer-contact ul li a {
        gap: 9px;
        min-width: 0;
    }

    .footer-contact ul li a {
        align-items: flex-start;
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    .footer-contact ul li i {
        flex-shrink: 0;
    }

    .footer-social {
        padding: 25px 20px;
    }

    .google-btn {
        max-width: 100%;
        padding: 10px 16px;
        font-size: 14px;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .footer-bottom {
        padding: 10px 25px 0;
    }

    .footer-bottom p {
        font-size: 14px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }
}

/* ====================================================================================================
   TABLETTES ET PETITS ORDINATEURS
==================================================================================================== */
@media screen and (max-width: 1024px) {
    body {
        padding-top: 100px;
        padding-bottom: 70px;
    }

    main {
        width: 100%;
        max-width: 1024px;
        margin: 0 auto;
        padding: 5px 70px 30px;
    }

    .block {
        grid-template-columns: minmax(0, 1fr);
        gap: 30px;
        margin-bottom: 30px;
    }

    .block .left,
    .block .right {
        width: 100%;
        min-width: 0;
    }

    .block:last-child {
        margin-bottom: 0;
    }

    .section-title {
        gap: 10px;
        min-width: 0;
        margin-bottom: 15px;
    }

    .section-title h2 {
        min-width: 0;
        margin-bottom: 5px;
        font-size: 21px;
        line-height: 1.3;
        overflow-wrap: anywhere;
    }

    .section-title::after {
        min-width: 12px;
        height: 12px;
    }

    .section-more {
        gap: 5px;
        font-size: 14px;
        white-space: nowrap;
    }

    .descriptions-cadre {
        min-width: 0;
        margin-bottom: 20px;
    }

    .descriptions-cadre h2 {
        gap: 10px;
        margin-bottom: 12px;
        font-size: 21px;
        line-height: 1.3;
    }

    .descriptions-cadre h2 span {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .descriptions-cadre h2::after {
        min-width: 12px;
    }

    .descriptions-cadre p {
        font-size: 16px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }

    .site-header {
        min-height: 0;
        gap: 15px;
        padding: 10px 75px;
        align-items: flex-start;
    }

    .header-left {
        position: relative;
        flex: 1;
        min-width: 0;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px;
    }

    .logo {
        margin-right: 0;
    }

    .logo img {
        width: auto;
        height: 48px;
        max-width: 150px;
    }

    .menu {
        display: none;
        position: absolute;
        top: calc(100% + 10px);
        left: 0;
        right: 0;
        flex: 0 0 100%;
        width: 100%;
        min-width: 0;
        max-height: calc(100vh - 120px);
        max-height: calc(100dvh - 120px);
        padding: 10px 15px 15px;
        background: #a0090f;
        box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2);
        overflow-y: auto;
        overscroll-behavior: contain;
        z-index: 1100;
    }

    .menu.open {
        display: block;
    }

    .menu > ul {
        display: flex;
        width: 100%;
        flex-direction: column;
        flex-wrap: wrap;
        align-items: stretch;
        justify-content: flex-start;
        gap: 3px;
    }

    .menu > ul > li {
        width: 100%;
        min-width: 0;
    }

    .menu > ul > li > a,
    .menu > ul > li > .submenu-toggle {
        display: flex;
        width: 100%;
        min-height: 44px;
        max-width: 100%;
        align-items: center;
        justify-content: space-between;
        padding: 10px;
        font-size: 13px;
        text-align: left;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .menu > ul > li > a::after,
    .menu > ul > li > .submenu-toggle::after {
        content: none;
    }

    .submenu-toggle {
        gap: 6px;
    }

    .submenu-arrow {
        flex-shrink: 0;
        font-size: 9px;
    }

    .submenu,
    .menu > ul > li:last-child > .submenu {
        position: static;
        top: auto;
        left: auto;
        right: auto;
        display: none;
        width: 100%;
        min-width: 0;
        max-width: 100%;
        margin: 0;
        padding: 6px 0;
        background: #87060c;
        border-radius: 6px;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        transition: none;
    }

    .has-submenu:hover > .submenu {
        display: none;
    }

    .has-submenu.open > .submenu {
        display: block;
    }

    .submenu li a {
        min-height: 44px;
        padding: 10px 14px;
        font-size: 13px;
        overflow-wrap: anywhere;
    }

    .burger {
        display: block;
        position: relative;
        width: 44px;
        height: 44px;
        flex-shrink: 0;
        padding: 0;
        border: none;
        border-radius: 7px;
        background: transparent;
        cursor: pointer;
    }

    .burger span {
        position: absolute;
        left: 10px;
        width: 24px;
        height: 3px;
        border-radius: 10px;
        background: #fff;
        transition: top 0.25s ease, transform 0.25s ease, opacity 0.2s ease;
    }

    .burger span:nth-child(1) {
        top: 12px;
    }

    .burger span:nth-child(2) {
        top: 20px;
    }

    .burger span:nth-child(3) {
        top: 28px;
    }

    .burger.open span:nth-child(1) {
        top: 20px;
        transform: rotate(45deg);
    }

    .burger.open span:nth-child(2) {
        opacity: 0;
    }

    .burger.open span:nth-child(3) {
        top: 20px;
        transform: rotate(-45deg);
    }

    .burger:focus-visible {
        outline: 2px solid #fff;
        outline-offset: 2px;
    }

    .header-right {
        flex-shrink: 0;
        margin-left: 0;
    }

    .btn-radio {
        width: 230px;
        min-height: 58px;
        padding: 6px 8px;
    }

    #header-cover {
        width: 44px;
        height: 44px;
    }

    .radio-text {
        flex: 1;
        min-width: 0;
        margin-left: 8px;
    }

    .header-title {
        font-size: 12px;
        line-height: 19px;
    }

    .header-artist {
        font-size: 11px;
        line-height: 17px;
    }

    .play-icon {
        width: 34px;
        height: 34px;
        margin-left: 6px;
        font-size: 13px;
    }

    #radio-popup {
        padding: 8px 0;
    }

    .popup-content {
        width: 100%;
        max-width: 935px;
        gap: 15px;
        padding: 0 20px;
    }

    .popup-cover-container {
        flex: 0 0 54px;
    }

    #popup-cover {
        width: 54px;
        height: 54px;
    }

    .popup-infos {
        flex: 1;
        min-width: 0;
    }

    #popup-title {
        font-size: 13px;
        line-height: 20px;
    }

    #popup-artist {
        font-size: 12px;
        line-height: 18px;
    }

    .popup-controls {
        flex: 0 0 auto;
        gap: 12px;
    }

    #radio-popup .popup-player-link {
        width: 44px;
        height: 44px;
        font-size: 16px;
    }

    .breadcrumb {
        flex-wrap: wrap;
        gap: 6px;
        min-width: 0;
        margin-bottom: 20px;
        padding: 9px 10px;
        font-size: 13px;
        line-height: 1.5;
    }

    .breadcrumb a,
    .breadcrumb span {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .slider {
        width: 100%;
        min-width: 0;
        height: clamp(380px, 48vw, 480px);
    }

    .slide img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .slide-content {
        left: 60px;
        right: 60px;
        bottom: 45px;
        max-width: none;
    }

    .slide-category {
        margin-bottom: 10px;
        padding: 6px 10px;
        font-size: 11px;
    }

    .slide-content h2 {
        margin-bottom: 10px;
        font-size: 28px;
        line-height: 1.3;
        overflow-wrap: anywhere;
    }

    .slide-content p {
        padding: 10px;
        font-size: 15px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .slider-btn {
        width: 44px;
        height: 44px;
        font-size: 22px;
    }

    .slider-prev {
        left: 10px;
    }

    .slider-next {
        right: 10px;
    }

    .slider-dots {
        left: 50%;
        bottom: 15px;
        gap: 8px;
    }

    .page-slide {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .page-slide img {
        display: block;
        width: 100%;
        height: auto;
    }

    .content-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 15px;
        padding: 12px;
        margin-bottom: 25px;
    }

    .content-item {
        min-width: 0;
    }

    .content-item img {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .content-item h3 {
        margin: 5px 0;
        font-size: 14px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .content-item p {
        margin: 0;
        font-size: 15px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .rna-last4 {
        width: 100%;
        min-width: 0;
    }

    .rna-last4-header {
        flex-wrap: wrap;
        gap: 10px;
        margin-bottom: 15px;
    }

    .rna-last4-title-text {
        font-size: 20px;
    }

    .rna-last4-link {
        font-size: 13px;
    }

    .rna-last4-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: 7px;
        padding: 15px;
        margin-bottom: 25px;
    }

    .rna-last4-item {
        min-width: 0;
    }

    .rna-last4-cover-wrapper {
        width: 100%;
        max-width: 170px;
    }

    .rna-last4-cover {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        object-fit: cover;
    }

    .rna-last4-time {
        bottom: 7px;
        left: 7px;
        padding: 4px 7px;
        font-size: 11px;
    }

    .rna-last4-artist {
        margin-top: 9px;
        font-size: 13px;
    }

    .rna-last4-song {
        margin-top: 3px;
        font-size: 12px;
    }

    .right .musical-news-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
        padding: 12px;
        margin-bottom: 25px;
    }

    .right .musical-news-item {
        min-width: 0;
    }

    .right .musical-news-item > a img {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .right .musical-news-text {
        min-width: 0;
        padding-top: 8px;
    }

    .right .musical-news-text h3 {
        font-size: 15px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .right .musical-news-text p {
        font-size: 15px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .track-history-menu {
        min-width: 0;
        margin-top: 35px;
    }

    .thm-header h2 {
        font-size: 21px;
    }

    .thm-header p {
        margin: 5px 0 15px;
        overflow-wrap: anywhere;
    }

    .thm-controls {
        flex-wrap: wrap;
        align-items: flex-end;
        gap: 15px;
        margin-bottom: 15px;
    }

    .thm-controls > * {
        min-width: 0;
        max-width: 100%;
    }

    .thm-controls label {
        font-size: 14px;
    }

    .thm-controls input {
        min-width: 0;
        max-width: 100%;
        min-height: 44px;
        padding: 10px;
        font-size: 15px;
    }

    .thm-btn {
        min-height: 44px;
        max-width: 100%;
        padding: 10px 18px;
        font-size: 15px;
        white-space: normal;
    }

    .track-history {
        min-width: 0;
        margin-top: 0;
    }

    .track-history__heading {
        margin-bottom: 20px;
        font-size: 21px;
        overflow-wrap: anywhere;
    }

    .track-history__grid,
    .thm-grid {
        grid-template-columns: repeat(auto-fill, minmax(min(170px, 100%), 1fr));
        gap: 18px;
    }

    .thm-grid {
        margin-top: 30px;
    }

    .track-card,
    .thm-item {
        min-width: 0;
    }

    .track-card__cover,
    .thm-cover {
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        object-fit: cover;
    }

    .track-card__time,
    .thm-time-badge {
        padding: 4px 7px;
        font-size: 12px;
    }

    .track-card__info {
        padding: 10px 8px;
    }

    .track-card__artist {
        font-size: 14px;
        overflow-wrap: anywhere;
    }

    .track-card__title {
        font-size: 14px;
        overflow-wrap: anywhere;
    }

    .thm-info {
        padding: 10px 0;
    }

    .thm-info h3,
    .thm-info p {
        overflow-wrap: anywhere;
    }

    .contact-form-cadre {
        min-width: 0;
        margin-top: 35px;
    }

    .contact-form-cadre h2 {
        margin-bottom: 25px;
        font-size: 21px;
    }

    .contact-form-cadre p {
        overflow-wrap: anywhere;
    }

    .contact-form {
        min-width: 0;
        gap: 15px;
    }

    .contact-form label {
        font-size: 15px;
    }

    .contact-form input,
    .contact-form textarea {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        padding: 12px 14px;
        font-size: 16px;
    }

    .contact-form textarea {
        resize: vertical;
    }

    .contact-form .btn {
        width: auto;
        min-height: 44px;
        max-width: 100%;
        align-self: flex-start;
        margin-top: 10px;
        margin-bottom: 25px;
        padding: 12px 24px;
        font-size: 16px;
        white-space: normal;
    }

    .form-error,
    .form-success {
        padding: 12px 15px;
        overflow-wrap: anywhere;
    }

    .info-contact {
        font-size: 15px;
        overflow-wrap: anywhere;
    }

    .info-contact i,
    .adresse-block i {
        flex-shrink: 0;
        margin-right: 12px;
    }

    .adresse-block {
        min-width: 0;
    }

    .adresse-lines {
        min-width: 0;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .schedule-menu {
        flex-wrap: wrap;
        gap: 10px;
        margin-top: 35px;
        margin-bottom: 20px;
    }

    .schedule-menu button {
        min-height: 44px;
        max-width: 100%;
        padding: 10px 16px;
        font-size: 14px;
        white-space: normal;
    }

    .schedule-wrapper {
        min-width: 0;
        padding: 15px 0;
    }

    .schedule-day-title {
        margin-bottom: 20px;
        font-size: 21px;
        overflow-wrap: anywhere;
    }

    .schedule-list {
        gap: 18px;
    }

    .schedule-card {
        grid-template-columns: 150px minmax(0, 1fr);
        min-width: 0;
    }

    .schedule-timebox {
        min-width: 0;
        padding: 25px 10px;
    }

    .schedule-time-icon {
        margin-bottom: 8px;
        font-size: 1.8rem;
    }

    .schedule-time-range {
        font-size: 1.2rem;
        text-align: center;
        overflow-wrap: anywhere;
    }

    .schedule-info {
        min-width: 0;
        padding: 18px;
    }

    .schedule-title,
    .schedule-subtitle {
        font-size: 16px;
        overflow-wrap: anywhere;
    }

    .schedule-description {
        font-size: 15px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }

    #programme-container {
        width: 100%;
        min-width: 0;
        gap: 15px;
        padding: 12px;
        margin-bottom: 25px;
        overflow-x: auto;
        overflow-y: hidden;
    }

    .programme-card {
        flex: 0 0 270px;
        max-width: 100%;
        min-height: 240px;
        height: auto;
        aspect-ratio: auto;
    }

    .programme-timebox {
        padding: 10px 8px;
    }

    .programme-time-icon {
        font-size: 1.5rem;
    }

    .programme-time-range {
        font-size: 15px;
    }

    .programme-info {
        min-width: 0;
        padding: 12px;
    }

    .programme-title {
        font-size: 16px;
        overflow-wrap: anywhere;
    }

    .programme-subtitle {
        font-size: 14px;
        overflow-wrap: anywhere;
    }

    .programme-description {
        font-size: 13px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .form-signalement {
        min-width: 0;
        max-width: 100%;
    }

    .form-signalement input[type="email"],
    .form-signalement textarea {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        padding: 12px;
        font-size: 16px;
    }

    .form-signalement textarea {
        resize: vertical;
    }

    .form-signalement button {
        min-height: 44px;
        max-width: 100%;
        padding: 12px 22px;
        font-size: 15px;
        white-space: normal;
    }

    .equipe {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 18px;
        margin-top: 35px;
    }

    .membre-equipe {
        min-width: 0;
    }

    .visuel-membre {
        height: 230px;
    }

    .logo-equipe {
        width: 75px;
        height: 75px;
    }

    .logo-equipe img {
        max-width: 100%;
        max-height: 100%;
    }

    .photo-membre {
        object-fit: contain;
        object-position: right bottom;
    }

    .nom-membre {
        margin-top: 6px;
        font-size: 15px;
        overflow-wrap: anywhere;
    }

    .fonction-membre {
        margin-top: 5px;
        font-size: 14px;
        overflow-wrap: anywhere;
    }

    .page-membre {
        width: 100%;
        min-width: 0;
        margin-top: 25px;
        padding: 20px;
    }

    .photo-membre-large {
        width: 100%;
        max-width: 380px;
        height: auto;
        margin-bottom: 20px;
    }

    .bloc-info-membre {
        margin-bottom: 20px;
        overflow-wrap: anywhere;
    }

    .bio-membre p {
        margin-bottom: 20px;
        font-size: 16px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }

    .retour-equipe {
        margin-top: 25px;
    }

    .retour-equipe a {
        min-height: 44px;
        max-width: 100%;
        padding: 12px 20px;
        white-space: normal;
    }

    .page-article-title h1 {
        margin-bottom: 30px;
        font-size: 28px;
        line-height: 1.35;
        overflow-wrap: anywhere;
    }

    .page-banner {
        width: 100%;
        min-width: 0;
        aspect-ratio: 16 / 9;
    }

    .page-banner img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .page-credit {
        margin-top: 10px;
        margin-bottom: 12px;
        font-size: 12px;
        overflow-wrap: anywhere;
    }

    .page-social {
        flex-wrap: wrap;
        gap: 8px;
        margin-bottom: 25px;
    }

    .page-social a {
        width: 44px;
        height: 44px;
        font-size: 16px;
    }

    .page-article-content {
        width: 100%;
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .page-article-content p {
        margin-bottom: 16px;
        font-size: 16px;
        line-height: 1.65;
    }

    .page-article-content h2 {
        margin-top: 20px;
        font-size: 22px;
        line-height: 1.4;
    }

    .page-article-content img,
    .page-article-content video {
        max-width: 100%;
        height: auto;
    }

    .page-article-content iframe {
        max-width: 100%;
    }

    .articles-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 25px 20px;
        margin-top: 35px;
    }

    .articles-grid > *,
    .card-link,
    .card-content {
        min-width: 0;
    }

    .card-image img {
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .card-content {
        padding-top: 10px;
    }

    .card-date {
        margin-bottom: 10px;
        font-size: 13px;
    }

    .card-title {
        margin-bottom: 10px;
        font-size: 16px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .card-excerpt {
        font-size: 15px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }

    .rna-meteo-titre {
        flex-wrap: wrap;
        gap: 10px;
        margin-bottom: 15px;
    }

    .rna-meteo-voir {
        gap: 6px;
        font-size: 14px;
    }

    .rna-meteo-voir strong {
        font-size: 20px;
    }

    .rna-meteo-cadre {
        min-width: 0;
        padding: 15px;
        margin-bottom: 25px;
    }

    .rna-meteo-introduction p {
        font-size: 16px;
        overflow-wrap: anywhere;
    }

    .rna-meteo-entete {
        margin-bottom: 15px;
        padding-bottom: 12px;
    }

    .rna-meteo-entete p {
        font-size: 14px;
        overflow-wrap: anywhere;
    }

    .rna-meteo-ville h3 {
        margin-bottom: 15px;
        font-size: 20px;
    }

    .rna-meteo-principale {
        gap: 20px;
        margin-bottom: 20px;
    }

    .rna-meteo-informations {
        flex: 1;
        min-width: 0;
    }

    .rna-meteo-temperature {
        font-size: 46px;
    }

    .rna-meteo-description {
        font-size: 15px;
        line-height: 1.5;
    }

    .rna-meteo-icone {
        width: 85px;
        min-height: 85px;
        font-size: 60px;
    }

    .rna-meteo-details {
        flex-wrap: wrap;
        gap: 10px;
        padding-top: 15px;
    }

    .rna-meteo-details span {
        flex: 1 1 150px;
        min-width: 0;
        padding: 10px 12px;
        font-size: 14px;
    }

    .rna-meteo-chargement {
        padding: 20px 10px;
        font-size: 14px;
    }

    .cadre-meteo {
        width: 100%;
        min-width: 0;
        margin-top: 35px;
    }

    .cadre-meteo .meteo-header {
        padding: 10px 0;
    }

    .cadre-meteo .meteo-header h3,
    .cadre-meteo .meteo-bergerac h3 {
        font-size: 22px;
        overflow-wrap: anywhere;
    }

    .cadre-meteo .meteo-header p {
        font-size: 18px;
    }

    .cadre-meteo .meteo-bergerac {
        padding: 12px;
        margin-bottom: 20px;
    }

    .cadre-meteo .meteo-principale {
        flex-wrap: wrap;
        gap: 15px;
    }

    .cadre-meteo .meteo-principale > * {
        min-width: 0;
        max-width: 100%;
    }

    .cadre-meteo .meteo-temperature {
        font-size: 32px;
    }

    .cadre-meteo .meteo-icone {
        font-size: 48px;
    }

    .cadre-meteo .meteo-description {
        font-size: 14px;
        overflow-wrap: anywhere;
    }

    .cadre-meteo .meteo-details {
        justify-content: flex-start;
        flex-wrap: wrap;
        gap: 12px 20px;
        margin-top: 20px;
        padding-top: 15px;
        font-size: 14px;
    }

    .cadre-meteo .meteo-details > * {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .cadre-meteo .meteo-mini-titre {
        font-size: 18px;
    }

    .cadre-meteo .meteo-villes {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 15px;
    }

    .cadre-meteo .meteo-ville {
        min-width: 0;
        padding: 15px 12px;
    }

    .cadre-meteo .meteo-ville-nom {
        font-size: 14px;
    }

    .cadre-meteo .meteo-ville-icone {
        font-size: 34px;
    }

    .cadre-meteo .meteo-ville-temp {
        font-size: 18px;
        color: #363636;
    }

    .cadre-meteo .meteo-ville-desc {
        font-size: 13px;
        overflow-wrap: anywhere;
    }

    .cadre-meteo .meteo-footer {
        font-size: 12px;
        overflow-wrap: anywhere;
    }

    .cadre-meteo .meteo-chargement {
        padding: 25px 15px;
        font-size: 14px;
    }

    .rna-horoscope .horoscope-date {
        margin-top: 35px;
        font-size: 19px;
    }

    .rna-horoscope .horoscope-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
        margin-top: 20px;
        margin-bottom: 25px;
    }

    .rna-horoscope .horoscope-card {
        min-width: 0;
        gap: 12px;
        padding: 18px;
    }

    .rna-horoscope .astro-icon {
        flex: 0 0 48px;
        width: 48px;
        height: 48px;
        font-size: 29px;
    }

    .rna-horoscope .horoscope-content {
        flex: 1;
        min-width: 0;
    }

    .rna-horoscope .horoscope-content h2 {
        font-size: 20px;
        line-height: 1.3;
        overflow-wrap: anywhere;
    }

    .rna-horoscope .horoscope-content .astro-dates {
        margin-bottom: 12px;
        font-size: 12px;
    }

    .rna-horoscope .horoscope-content .astro-text {
        font-size: 15px;
        line-height: 1.65;
    }

    .rna-partenaires-grille {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 25px;
        row-gap: 35px;
        margin-top: 35px;
        margin-bottom: 20px;
    }

    .rna-partenaire-article {
        min-width: 0;
    }

    .rna-partenaire-image {
        width: 100%;
        height: 150px;
    }

    .rna-partenaire-image img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    .rna-partenaire-titre {
        margin-bottom: 10px;
        font-size: 14px;
        line-height: 1.6;
    }

    .rna-partenaire-texte {
        margin-bottom: 15px;
        font-size: 15px;
        line-height: 1.6;
    }

    .rna-partenaire-liens {
        flex-wrap: wrap;
        gap: 10px 18px;
        padding-top: 8px;
    }

    .rna-partenaire-lien {
        min-width: 0;
        max-width: 100%;
        font-size: 14px;
        overflow-wrap: anywhere;
    }

    .rna-partenaire-lien i {
        flex-shrink: 0;
        font-size: 14px;
    }

    .rna-pagination {
        gap: 12px;
        margin: 30px 0 15px;
        padding: 15px 0;
    }

    .rna-pagination__numbers {
        min-width: 0;
        flex-wrap: wrap;
        gap: 6px;
    }

    .rna-pagination .rna-pagination__number {
        min-width: 36px;
        min-height: 44px;
        padding: 6px;
        font-size: 14px;
    }

    .rna-pagination .rna-pagination__arrow {
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        font-size: 18px;
    }

    .rna-partenaires-pagination {
        flex-wrap: wrap;
        gap: 10px;
        margin: 30px 0;
    }

    .rna-partenaires-pagination-numeros {
        min-width: 0;
        flex-wrap: wrap;
        gap: 8px;
    }

    .rna-partenaires-pagination-numero,
    .rna-partenaires-pagination-fleche {
        min-width: 44px;
        height: 44px;
        padding: 0 10px;
        font-size: 14px;
    }

    .footer {
        width: 100%;
        padding: 30px 0;
    }

    .footer-container {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        width: auto;
        max-width: 100%;
        gap: 34px;
        padding: 0 7px 37px;
    }

    .footer-col,
    .footer-contact {
        min-width: 0;
    }

    .footer-col h3 {
        margin-bottom: 18px;
        font-size: 16px;
        overflow-wrap: anywhere;
    }

    .footer-col ul li {
        margin-bottom: 7px;
        font-size: 15px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }

    .footer-contact ul li {
        min-width: 0;
        gap: 10px;
    }

    .footer-contact ul li a {
        min-width: 0;
        max-width: 100%;
        align-items: flex-start;
        gap: 10px;
        overflow-wrap: anywhere;
    }

    .footer-contact ul li i {
        flex-shrink: 0;
        width: 18px;
        min-width: 18px;
    }

    .footer-social {
        padding: 25px 20px;
    }

    .google-btn {
        max-width: 100%;
        min-height: 44px;
        margin: 5px;
        padding: 12px 18px;
        font-size: 14px;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .footer-bottom {
        padding: 10px 20px 0;
    }

    .footer-bottom p {
        font-size: 14px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }
}

/* ====================================================================================================
   TÉLÉPHONES
==================================================================================================== */
@media screen and (max-width: 768px) {
	
    body {
        padding-top: 0;
        padding-bottom: 60px;
    }

    main {
        width: 100%;
        max-width: 100%;
        margin: 0 auto;
        padding: 15px 15px 25px;
    }

    h1,
    h2 {
        font-size: 21px;
        line-height: 1.4;
    }

    h3 {
        font-size: 14px;
        line-height: 1.5;
    }

    p {
        font-size: 16px;
        line-height: 1.6;
    }

    .block {
        grid-template-columns: minmax(0, 1fr);
        gap: 25px;
        margin-bottom: 25px;
    }

    .block .left,
    .block .right {
        width: 100%;
        min-width: 0;
    }

    .block:last-child {
        margin-bottom: 0;
    }
	
    .section-title {
        gap: 8px;
        min-width: 0;
        margin-bottom: 15px;
    }

    .section-title h2 {
        min-width: 0;
        margin-bottom: 0;
        font-size: 19px;
        line-height: 1.35;
        overflow-wrap: anywhere;
    }

    .section-title::after {
        min-width: 8px;
        height: 12px;
    }

    .section-more {
        gap: 4px;
        min-height: 44px;
        font-size: 13px;
        white-space: nowrap;
    }

    .descriptions-cadre {
        min-width: 0;
        margin-bottom: 20px;
    }

    .descriptions-cadre h2 {
        gap: 8px;
        margin-bottom: 12px;
        font-size: 19px;
        line-height: 1.4;
    }

    .descriptions-cadre h2 span {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .descriptions-cadre h2::after {
        min-width: 8px;
    }

    .descriptions-cadre p {
        font-size: 16px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }
	
    .site-header {
        position: sticky;
        top: 0;
        left: auto;
        width: 100%;
        min-height: 0;
        flex-wrap: wrap;
        align-items: center;
        gap: 10px;
        padding: 10px 15px;
    }
	
	.header-left {
        position: relative;
        flex: 1 1 0;
        width: 100%;
        min-width: 0;
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: center;
        gap: 0;
    }

    .logo {
        margin-right: 0;
    }

    .logo img {
        width: auto;
        height: 44px;
        max-width: 150px;
    }
	
    .menu {
        display: none;
        position: absolute;
        top: calc(100% + 10px);
        left: -15px;
        right: -15px;
        width: auto;
        min-width: 0;
        max-height: calc(100vh - 170px);
        max-height: calc(100dvh - 170px);
        padding: 10px 15px 15px;
        background: #a0090f;
        box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2);
        overflow-y: auto;
        overscroll-behavior: contain;
        z-index: 1100;
    }
	
    .menu.open {
        display: block;
    }

    .menu > ul {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 4px;
    }

    .menu > ul > li {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .menu > ul > li > a,
    .menu > ul > li > .submenu-toggle {
        width: 100%;
        min-height: 46px;
        max-width: 100%;
        justify-content: space-between;
        padding: 12px;
        font-size: 14px;
        line-height: 1.5;
        text-align: left;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .menu > ul > li > a::after,
    .menu > ul > li > .submenu-toggle::after {
        content: none;
    }

    .submenu-toggle {
        gap: 10px;
    }

    .submenu-arrow {
        flex-shrink: 0;
        font-size: 10px;
    }
	
    .submenu,
    .menu > ul > li:last-child > .submenu {
        position: static;
        top: auto;
        left: auto;
        right: auto;
        display: none;
        width: 100%;
        min-width: 0;
        max-width: 100%;
        margin: 0;
        padding: 4px 0;
        background: #87060c;
        border-radius: 6px;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        transition: none;
    }

    .has-submenu:hover > .submenu {
        display: none;
    }

    .has-submenu.open > .submenu {
        display: block;
    }

    .submenu li a {
        justify-content: flex-start;
        min-height: 44px;
        padding: 10px 18px;
        font-size: 13px;
        line-height: 1.5;
        text-align: left;
        white-space: normal;
        overflow-wrap: anywhere;
    }
	
    .burger {
        display: block;
        position: relative;
        width: 44px;
        height: 44px;
        flex-shrink: 0;
        margin-right: auto;
        padding: 0;
        border: none;
        border-radius: 7px;
        background: transparent;
        cursor: pointer;
    }

    .burger span {
        position: absolute;
        left: 10px;
        width: 24px;
        height: 3px;
        border-radius: 10px;
        background: #fff;
        transition: top 0.25s ease, transform 0.25s ease, opacity 0.2s ease;
    }

    .burger span:nth-child(1) {
        top: 12px;
    }

    .burger span:nth-child(2) {
        top: 20px;
    }

    .burger span:nth-child(3) {
        top: 28px;
    }

    .burger.open span:nth-child(1) {
        top: 20px;
        transform: rotate(45deg);
    }

    .burger.open span:nth-child(2) {
        opacity: 0;
    }

    .burger.open span:nth-child(3) {
        top: 20px;
        transform: rotate(-45deg);
    }

    .burger:focus-visible {
        outline: 2px solid #fff;
        outline-offset: 2px;
    }

    #radio-popup {
        padding: 8px 0;
        padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
    }

    .popup-content {
        width: 100%;
        max-width: 100%;
        gap: 10px;
        padding: 0 12px;
    }

    .popup-cover-container {
        flex: 0 0 46px;
    }

    #popup-cover {
        width: 46px;
        height: 46px;
    }

    .popup-infos {
        flex: 1;
        min-width: 0;
    }

    #popup-title {
        font-size: 12px;
        line-height: 18px;
    }

    #popup-artist {
        margin-top: 2px;
        font-size: 11px;
        line-height: 17px;
    }

    .popup-controls {
        flex: 0 0 auto;
        gap: 8px;
    }

    #radio-popup .popup-player-link {
        width: 44px;
        height: 44px;
        font-size: 16px;
    }
	
    .breadcrumb {
        flex-wrap: wrap;
        gap: 5px;
        min-width: 0;
        margin-bottom: 20px;
        padding: 9px;
        font-size: 12px;
        line-height: 1.5;
    }

    .breadcrumb a,
    .breadcrumb span {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .slider {
        width: 100%;
        min-width: 0;
        height: clamp(340px, 65vw, 420px);
    }

    .slide img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .slide-content {
        left: 15px;
        right: 15px;
        bottom: 40px;
        max-width: none;
    }

    .slide-category {
        margin-bottom: 8px;
        padding: 5px 8px;
        font-size: 10px;
        letter-spacing: 0.5px;
    }

    .slide-content h2 {
        margin-bottom: 8px;
        font-size: 22px;
        line-height: 1.3;
        overflow-wrap: anywhere;
    }

    .slide-content p {
        padding: 8px;
        font-size: 14px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .slider-btn {
        top: 10px;
        width: 44px;
        height: 44px;
        font-size: 20px;
        transform: none;
    }

    .slider-btn:active {
        transform: scale(0.92);
    }

    .slider-prev {
        left: 10px;
    }

    .slider-next {
        right: 10px;
    }

    .slider-dots {
        left: 50%;
        bottom: 15px;
        max-width: calc(100% - 30px);
        flex-wrap: wrap;
        justify-content: center;
        gap: 8px;
    }
	
    .page-slide {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .page-slide img {
        display: block;
        width: 100%;
        height: auto;
    }
	
    .content-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
        padding: 12px;
        margin-bottom: 25px;
    }

    .content-item {
        min-width: 0;
    }

    .content-item img {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .content-item h3 {
        margin: 8px 0 6px;
        font-size: 16px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .content-item p {
        margin: 0;
        font-size: 15px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }
	
    .rna-last4 {
        width: 100%;
        min-width: 0;
    }

    .rna-last4-header {
        flex-wrap: wrap;
        gap: 8px;
        margin-bottom: 12px;
    }

    .rna-last4-title-text {
        font-size: 18px;
        overflow-wrap: anywhere;
    }

    .rna-last4-link {
        font-size: 12px;
    }

    .rna-last4-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 15px 12px;
        padding: 12px;
        margin-bottom: 25px;
    }

    .rna-last4-item {
        min-width: 0;
    }

    .rna-last4-cover-wrapper {
        width: 100%;
        max-width: 100%;
    }

    .rna-last4-cover {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        object-fit: cover;
    }

    .rna-last4-time {
        bottom: 6px;
        left: 6px;
        padding: 4px 6px;
        font-size: 10px;
    }

    .rna-last4-artist {
        margin-top: 8px;
        font-size: 13px;
    }

    .rna-last4-song {
        margin-top: 3px;
        font-size: 12px;
    }
	
    .right .musical-news-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
        padding: 12px;
        margin-bottom: 25px;
    }

    .right .musical-news-item {
        min-width: 0;
    }

    .right .musical-news-item > a img {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .right .musical-news-text {
        min-width: 0;
        padding-top: 8px;
    }

    .right .musical-news-text h3 {
        font-size: 16px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .right .musical-news-text p {
        font-size: 15px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }
	
    .track-history-menu {
        min-width: 0;
        margin-top: 25px;
    }

    .thm-header h2 {
        font-size: 20px;
    }

    .thm-header p {
        margin: 8px 0 15px;
        font-size: 15px;
        overflow-wrap: anywhere;
    }

    .thm-controls {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
        margin-bottom: 20px;
    }

    .thm-controls > * {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .thm-controls label {
        font-size: 14px;
    }

    .thm-controls input {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        min-height: 44px;
        padding: 10px 12px;
        font-size: 16px;
    }

    .thm-btn {
        width: 100%;
        min-height: 44px;
        padding: 12px 16px;
        font-size: 16px;
        white-space: normal;
    }

    .track-history {
        min-width: 0;
        margin-top: 0;
    }

    .track-history__heading {
        margin-bottom: 18px;
        font-size: 20px;
        overflow-wrap: anywhere;
    }

    .track-history__grid,
    .thm-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px 12px;
    }

    .thm-grid {
        margin-top: 25px;
    }

    .track-card,
    .thm-item {
        min-width: 0;
    }

    .track-card__cover,
    .thm-cover {
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        object-fit: cover;
    }

    .track-card__time,
    .thm-time-badge {
        top: 6px;
        left: 6px;
        padding: 4px 6px;
        font-size: 11px;
    }

    .track-card__info {
        padding: 8px 0;
    }

    .track-card__artist {
        font-size: 13px;
        overflow-wrap: anywhere;
    }

    .track-card__title {
        font-size: 13px;
        overflow-wrap: anywhere;
    }

    .thm-info {
        padding: 8px 0;
    }

    .thm-info h3 {
        font-size: 13px;
        overflow-wrap: anywhere;
    }

    .thm-info p {
        font-size: 13px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }
	
    .contact-form-cadre {
        min-width: 0;
        margin-top: 25px;
    }

    .contact-form-cadre h2 {
        margin-bottom: 20px;
        font-size: 20px;
    }

    .contact-form-cadre p {
        font-size: 16px;
        overflow-wrap: anywhere;
    }

    .contact-form {
        min-width: 0;
        gap: 14px;
    }

    .contact-form label {
        font-size: 14px;
        overflow-wrap: anywhere;
    }

    .contact-form input,
    .contact-form textarea {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        padding: 12px;
        font-size: 16px;
    }

    .contact-form textarea {
        resize: vertical;
    }

    .contact-form .btn {
        width: 100%;
        min-height: 48px;
        max-width: 100%;
        align-self: stretch;
        margin-top: 5px;
        margin-bottom: 20px;
        padding: 12px 18px;
        font-size: 16px;
        white-space: normal;
    }

    .form-error,
    .form-success {
        padding: 12px;
        font-size: 14px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .info-contact {
        margin-top: 20px;
        font-size: 15px;
        overflow-wrap: anywhere;
    }

    .info-contact i,
    .adresse-block i {
        flex-shrink: 0;
        margin-right: 10px;
    }

    .adresse-block {
        min-width: 0;
    }

    .adresse-lines {
        min-width: 0;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }
	
    .schedule-menu {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        margin-top: 25px;
        margin-bottom: 20px;
    }

    .schedule-menu button {
        width: 100%;
        min-width: 0;
        min-height: 44px;
        padding: 10px 8px;
        font-size: 14px;
        white-space: normal;
    }

    .schedule-wrapper {
        min-width: 0;
        padding: 10px 0;
    }

    .schedule-day-title {
        margin-bottom: 20px;
        font-size: 20px;
        overflow-wrap: anywhere;
    }

    .schedule-list {
        gap: 18px;
    }

    .schedule-card {
        grid-template-columns: minmax(0, 1fr);
        min-width: 0;
    }

    .schedule-timebox {
        min-width: 0;
        flex-direction: row;
        gap: 12px;
        padding: 15px 12px;
    }

    .schedule-time-icon {
        margin-bottom: 0;
        font-size: 1.5rem;
    }

    .schedule-time-range {
        font-size: 1.1rem;
        text-align: center;
        overflow-wrap: anywhere;
    }

    .schedule-info {
        min-width: 0;
        padding: 15px;
    }

    .schedule-title,
    .schedule-subtitle {
        font-size: 16px;
        overflow-wrap: anywhere;
    }

    .schedule-description {
        font-size: 15px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }
	
    #programme-container {
        width: 100%;
        min-width: 0;
        gap: 12px;
        padding: 12px;
        margin-bottom: 25px;
        overflow-x: auto;
        overflow-y: hidden;
    }

    .programme-card {
        flex: 0 0 min(260px, 100%);
        min-width: 0;
        max-width: 100%;
        min-height: 230px;
        height: auto;
        aspect-ratio: auto;
    }

    .programme-card:hover {
        transform: none;
    }

    .programme-timebox {
        padding: 10px 8px;
    }

    .programme-time-icon {
        font-size: 1.4rem;
    }

    .programme-time-range {
        font-size: 14px;
    }

    .programme-info {
        min-width: 0;
        padding: 12px;
    }

    .programme-title {
        font-size: 15px;
        overflow-wrap: anywhere;
    }

    .programme-subtitle {
        font-size: 14px;
        overflow-wrap: anywhere;
    }

    .programme-description {
        font-size: 13px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }
	
    .form-signalement {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .form-signalement input[type="email"],
    .form-signalement textarea {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        padding: 12px;
        font-size: 16px;
    }

    .form-signalement textarea {
        resize: vertical;
    }

    .form-signalement button {
        width: 100%;
        min-height: 48px;
        max-width: 100%;
        padding: 12px 18px;
        font-size: 16px;
        white-space: normal;
    }
	
    .equipe {
        grid-template-columns: minmax(0, 1fr);
        gap: 25px;
        margin-top: 25px;
    }

    .membre-equipe {
        width: 100%;
        max-width: 400px;
        min-width: 0;
        margin: 0 auto;
    }

    .visuel-membre {
        height: 260px;
    }

    .logo-equipe {
        width: 80px;
        height: 80px;
    }

    .logo-equipe img {
        max-width: 100%;
        max-height: 100%;
    }

    .photo-membre {
        object-fit: contain;
        object-position: right bottom;
    }

    .nom-membre {
        margin-top: 8px;
        font-size: 16px;
        overflow-wrap: anywhere;
    }

    .fonction-membre {
        margin-top: 5px;
        font-size: 15px;
        overflow-wrap: anywhere;
    }
	
    .page-membre {
        width: 100%;
        min-width: 0;
        margin-top: 20px;
        padding: 0;
    }

    .photo-membre-large {
        width: 100%;
        max-width: 340px;
        height: auto;
        margin: 0 auto 20px;
    }

    .bloc-info-membre {
        margin-bottom: 20px;
        overflow-wrap: anywhere;
    }

    .bio-membre p {
        margin-bottom: 18px;
        font-size: 16px;
        line-height: 1.65;
        overflow-wrap: anywhere;
    }

    .retour-equipe {
        margin-top: 25px;
    }

    .retour-equipe a {
        width: 100%;
        min-height: 44px;
        max-width: 100%;
        padding: 12px 18px;
        text-align: center;
        white-space: normal;
    }
	
    .page-article-title h1 {
        margin-bottom: 25px;
        font-size: 24px;
        line-height: 1.35;
        overflow-wrap: anywhere;
    }

    .page-banner {
        width: 100%;
        min-width: 0;
        aspect-ratio: 16 / 9;
    }

    .page-banner img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .page-credit {
        margin-top: 8px;
        margin-bottom: 12px;
        font-size: 12px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .page-social {
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 8px;
        margin-bottom: 25px;
    }

    .page-social a {
        width: 44px;
        height: 44px;
        font-size: 16px;
    }

    .page-article-content {
        width: 100%;
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .page-article-content p {
        margin-bottom: 16px;
        font-size: 16px;
        line-height: 1.65;
    }

    .page-article-content h2 {
        margin-top: 20px;
        font-size: 20px;
        line-height: 1.4;
    }

    .page-article-content img,
    .page-article-content video {
        max-width: 100%;
        height: auto;
    }

    .page-article-content iframe {
        max-width: 100%;
    }
	
    .articles-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
        margin-top: 25px;
    }

    .articles-grid > *,
    .card-link,
    .card-content {
        min-width: 0;
    }

    .card-image img {
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .card-content {
        padding-top: 10px;
    }

    .card-date {
        margin-bottom: 8px;
        font-size: 13px;
    }

    .card-title {
        margin-bottom: 8px;
        font-size: 17px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .card-excerpt {
        font-size: 15px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }
	
    .rna-meteo-titre {
        flex-wrap: wrap;
        gap: 8px;
        margin-bottom: 12px;
    }

    .rna-meteo-voir {
        min-height: 44px;
        gap: 5px;
        font-size: 13px;
    }

    .rna-meteo-voir strong {
        font-size: 19px;
    }

    .rna-meteo-cadre {
        min-width: 0;
        padding: 12px;
        margin-bottom: 25px;
    }

    .rna-meteo-introduction p {
        font-size: 15px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .rna-meteo-entete {
        margin-bottom: 15px;
        padding-bottom: 12px;
    }

    .rna-meteo-entete p {
        font-size: 13px;
        overflow-wrap: anywhere;
    }

    .rna-meteo-ville h3 {
        margin-bottom: 12px;
        font-size: 19px;
    }

    .rna-meteo-principale {
        gap: 12px;
        margin-bottom: 18px;
    }

    .rna-meteo-informations {
        flex: 1;
        min-width: 0;
    }

    .rna-meteo-temperature {
        font-size: 40px;
    }

    .rna-meteo-description {
        font-size: 14px;
        line-height: 1.5;
    }

    .rna-meteo-icone {
        width: 65px;
        min-height: 65px;
        font-size: 48px;
    }

    .rna-meteo-details {
        flex-wrap: wrap;
        gap: 8px;
        padding-top: 12px;
    }

    .rna-meteo-details span {
        flex: 1 1 120px;
        min-width: 0;
        padding: 9px 10px;
        font-size: 13px;
    }

    .rna-meteo-chargement {
        padding: 18px 8px;
        font-size: 14px;
    }
	
    .cadre-meteo {
        width: 100%;
        min-width: 0;
        margin-top: 25px;
    }

    .cadre-meteo .meteo-header {
        padding: 10px 0;
    }

    .cadre-meteo .meteo-header h3,
    .cadre-meteo .meteo-bergerac h3 {
        font-size: 20px;
        overflow-wrap: anywhere;
    }

    .cadre-meteo .meteo-header p {
        font-size: 16px;
    }

    .cadre-meteo .meteo-bergerac {
        padding: 10px;
        margin-bottom: 20px;
    }

    .cadre-meteo .meteo-principale {
        flex-wrap: wrap;
        gap: 12px;
    }

    .cadre-meteo .meteo-principale > * {
        min-width: 0;
        max-width: 100%;
    }

    .cadre-meteo .meteo-temperature {
        font-size: 30px;
    }

    .cadre-meteo .meteo-icone {
        font-size: 44px;
    }

    .cadre-meteo .meteo-description {
        font-size: 14px;
        overflow-wrap: anywhere;
    }

    .cadre-meteo .meteo-details {
        justify-content: flex-start;
        flex-wrap: wrap;
        gap: 10px 15px;
        margin-top: 18px;
        padding-top: 12px;
        font-size: 13px;
    }

    .cadre-meteo .meteo-details > * {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .cadre-meteo .meteo-mini-titre {
        font-size: 17px;
    }

    .cadre-meteo .meteo-villes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .cadre-meteo .meteo-ville {
        min-width: 0;
        padding: 12px 8px;
    }

    .cadre-meteo .meteo-ville-nom {
        margin-bottom: 8px;
        font-size: 13px;
    }

    .cadre-meteo .meteo-ville-icone {
        font-size: 30px;
    }

    .cadre-meteo .meteo-ville-temp {
        font-size: 17px;
        color: #363636;
    }

    .cadre-meteo .meteo-ville-desc {
        font-size: 12px;
        overflow-wrap: anywhere;
    }

    .cadre-meteo .meteo-footer {
        font-size: 12px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }

    .cadre-meteo .meteo-chargement {
        padding: 20px 10px;
        font-size: 14px;
    }

    .rna-horoscope .horoscope-date {
        margin-top: 25px;
        font-size: 18px;
        overflow-wrap: anywhere;
    }

    .rna-horoscope .horoscope-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 15px;
        margin-top: 20px;
        margin-bottom: 25px;
    }

    .rna-horoscope .horoscope-card {
        min-width: 0;
        gap: 12px;
        padding: 15px;
    }

    .rna-horoscope .astro-icon {
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        font-size: 27px;
    }

    .rna-horoscope .horoscope-content {
        flex: 1;
        min-width: 0;
    }

    .rna-horoscope .horoscope-content h2 {
        font-size: 20px;
        line-height: 1.3;
        overflow-wrap: anywhere;
    }

    .rna-horoscope .horoscope-content .astro-dates {
        margin-bottom: 10px;
        font-size: 12px;
    }

    .rna-horoscope .horoscope-content .astro-text {
        font-size: 15px;
        line-height: 1.65;
    }
	
    .rna-partenaires-grille {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 30px;
        margin-top: 25px;
        margin-bottom: 20px;
    }

    .rna-partenaire-article {
        min-width: 0;
    }

    .rna-partenaire-image {
        width: 100%;
        height: 150px;
        margin-bottom: 10px;
    }

    .rna-partenaire-image img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    .rna-partenaire-titre {
        margin-bottom: 10px;
        font-size: 15px;
        line-height: 1.6;
    }

    .rna-partenaire-texte {
        margin-bottom: 12px;
        font-size: 15px;
        line-height: 1.6;
    }

    .rna-partenaire-liens {
        flex-wrap: wrap;
        gap: 8px 18px;
        padding-top: 5px;
    }

    .rna-partenaire-lien {
        min-width: 0;
        min-height: 44px;
        max-width: 100%;
        font-size: 14px;
        overflow-wrap: anywhere;
    }

    .rna-partenaire-lien i {
        flex-shrink: 0;
        font-size: 14px;
    }
	
    .rna-pagination {
        gap: 8px;
        margin: 25px 0 10px;
        padding: 12px 0;
    }

    .rna-pagination__numbers {
        min-width: 0;
        flex-wrap: wrap;
        gap: 4px;
    }

    .rna-pagination .rna-pagination__number {
        min-width: 32px;
        min-height: 44px;
        padding: 6px;
        font-size: 13px;
    }

    .rna-pagination .rna-pagination__arrow {
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        font-size: 18px;
    }
	
    .rna-partenaires-pagination {
        flex-wrap: wrap;
        gap: 8px;
        margin: 25px 0;
    }

    .rna-partenaires-pagination-numeros {
        min-width: 0;
        flex-wrap: wrap;
        gap: 6px;
    }

    .rna-partenaires-pagination-numero,
    .rna-partenaires-pagination-fleche {
        min-width: 44px;
        height: 44px;
        padding: 0 10px;
        font-size: 13px;
    }
	
    .footer {
        width: 100%;
        padding: 25px 0;
    }

    .footer-container {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
        max-width: 100%;
        gap: 25px;
        padding: 0 15px 25px;
    }

    .footer-col,
    .footer-contact {
        width: 100%;
        min-width: 0;
    }

    .footer-col h3 {
        margin-bottom: 12px;
        font-size: 16px;
        overflow-wrap: anywhere;
    }

    .footer-col ul li {
        margin-bottom: 8px;
        font-size: 15px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }

    .footer-col ul li a {
        display: inline-block;
        max-width: 100%;
        padding: 5px 0;
        overflow-wrap: anywhere;
    }

    .footer-contact ul li {
        min-width: 0;
        gap: 10px;
    }

    .footer-contact ul li a {
        display: flex;
        min-width: 0;
        max-width: 100%;
        align-items: flex-start;
        gap: 10px;
        overflow-wrap: anywhere;
    }

    .footer-contact ul li i {
        flex-shrink: 0;
        width: 18px;
        min-width: 18px;
    }

    .footer-social {
        padding: 20px 15px;
    }

    .google-btn {
        display: block;
        width: 100%;
        max-width: 360px;
        min-height: 44px;
        margin: 8px auto;
        padding: 12px 15px;
        font-size: 14px;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .footer-bottom {
        padding: 10px 15px 0;
    }

    .footer-bottom p {
        margin: 8px 0;
        font-size: 13px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }
}

/* ====================================================================================================
   PETITS TÉLÉPHONES
==================================================================================================== */
@media screen and (max-width: 480px) {

    body {
        padding-top: 0;
        padding-bottom: calc(85px + env(safe-area-inset-bottom, 0px));
    }
	
    main {
        width: 100%;
        max-width: 100%;
        padding: 15px 12px 25px;
    }

    h1,
    h2 {
        font-size: 19px;
        line-height: 1.4;
    }

    h3 {
        font-size: 14px;
        line-height: 1.5;
    }

    p {
        font-size: 15px;
        line-height: 1.6;
    }

    .block {
        grid-template-columns: minmax(0, 1fr);
        gap: 25px;
        margin-bottom: 25px;
    }

    .block .left,
    .block .right {
        width: 100%;
        min-width: 0;
    }

    .block:last-child {
        margin-bottom: 0;
    }
	
    .section-title {
        gap: 6px;
        margin-bottom: 12px;
    }

    .section-title h2 {
        font-size: 18px;
        line-height: 1.35;
        margin-bottom: 0;
        overflow-wrap: anywhere;
    }

    .section-title::after {
        min-width: 6px;
        height: 10px;
    }

    .section-more {
        min-height: 44px;
        gap: 4px;
        font-size: 12px;
    }

    .descriptions-cadre {
        margin-bottom: 18px;
    }

    .descriptions-cadre h2 {
        gap: 6px;
        font-size: 18px;
        line-height: 1.4;
    }

    .descriptions-cadre h2 span {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .descriptions-cadre h2::after {
        min-width: 6px;
        height: 10px;
    }

    .descriptions-cadre p {
        font-size: 15px;
        line-height: 1.6;
    }
	
    .site-header {
        position: sticky;
        top: 0;
        left: auto;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px;
        padding: 8px 12px;
    }

    .header-left {
		position: relative;
        flex: 1 1 0;
        width: 100%;
        min-width: 0;
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: center;
        gap: 0;
    }

    .logo {
        margin-right: 0;
    }

    .logo img {
        width: auto;
        height: 42px;
        max-width: 145px;
    }
	
    .burger {
        display: block;
        width: 44px;
        height: 44px;
        flex-shrink: 0;
        margin-left: auto;
        padding: 0;
    }

    .burger span {
        left: 10px;
        width: 24px;
        height: 3px;
    }

    .burger span:nth-child(1) {
        top: 12px;
    }

    .burger span:nth-child(2) {
        top: 20px;
    }

    .burger span:nth-child(3) {
        top: 28px;
    }

    .burger.open span:nth-child(1) {
        top: 20px;
        transform: rotate(45deg);
    }

    .burger.open span:nth-child(2) {
        opacity: 0;
    }

    .burger.open span:nth-child(3) {
        top: 20px;
        transform: rotate(-45deg);
    }

    .burger:focus-visible {
        outline: 2px solid #fff;
        outline-offset: 2px;
    }
	
    .menu {
        display: none;
        position: absolute;
        top: calc(100% + 8px);
        left: -12px;
        right: -12px;
        width: auto;
        min-width: 0;
        max-height: calc(100vh - 160px);
        max-height: calc(100dvh - 160px);
        padding: 10px 12px 15px;
        background: #a0090f;
        box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2);
        overflow-y: auto;
        overscroll-behavior: contain;
        z-index: 1100;
    }

    .menu.open {
        display: block;
    }

    .menu > ul {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 4px;
    }

    .menu > ul > li {
        width: 100%;
        min-width: 0;
    }

    .menu > ul > li > a,
    .menu > ul > li > .submenu-toggle {
        width: 100%;
        min-height: 46px;
        justify-content: space-between;
        padding: 12px;
        font-size: 14px;
        line-height: 1.5;
        text-align: left;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .menu > ul > li > a::after,
    .menu > ul > li > .submenu-toggle::after {
        content: none;
    }

    .submenu-toggle {
        gap: 10px;
    }

    .submenu-arrow {
        flex-shrink: 0;
        font-size: 10px;
    }
	
    .submenu,
    .menu > ul > li:last-child > .submenu {
        position: static;
        top: auto;
        left: auto;
        right: auto;
        display: none;
        width: 100%;
        min-width: 0;
        max-width: 100%;
        margin: 0;
        padding: 4px 0;
        background: #87060c;
        border-radius: 6px;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        transition: none;
    }

    .has-submenu:hover > .submenu {
        display: none;
    }

    .has-submenu.open > .submenu {
        display: block;
    }

    .submenu li a {
        justify-content: flex-start;
        min-height: 44px;
        padding: 10px 18px;
        font-size: 13px;
        line-height: 1.5;
        text-align: left;
        overflow-wrap: anywhere;
    }
	
    .header-right {
        flex: 0 0 0;
        width: 100%;
        justify-content: center;
        margin-left: 0;
    }

    .btn-radio {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        min-height: 50px;
        padding: 5px 7px;
        background-color: #a0090f;
    }

    #header-cover {
        width: 40px;
        height: 40px;
		display: none;
    }

    .radio-text {
        min-width: 0;
        margin-left: 7px;
		display: none;
    }

    .header-title {
        font-size: 12px;
        line-height: 18px;
    }

    .header-artist {
        font-size: 11px;
        line-height: 16px;
    }

    .play-icon {
        width: 34px;
        height: 34px;
        margin-left: 7px;
        font-size: 12px;
    }
	
    #radio-popup {
        padding: 7px 0;
        padding-bottom: calc(7px + env(safe-area-inset-bottom, 0px));
    }

    .popup-content {
        gap: 8px;
        padding: 0 10px;
    }

    .popup-cover-container {
        flex: 0 0 42px;
    }

    #popup-cover {
        width: 42px;
        height: 42px;
    }

    .popup-infos {
        flex: 1;
        min-width: 0;
    }

    #popup-title {
        font-size: 11px;
        line-height: 17px;
    }

    #popup-artist {
        font-size: 10px;
        line-height: 16px;
    }

    .popup-controls {
        gap: 6px;
    }

    #radio-popup .popup-player-link {
        width: 44px;
        height: 44px;
        font-size: 15px;
    }
	
    .breadcrumb {
        flex-wrap: wrap;
        gap: 5px;
        margin-bottom: 18px;
        padding: 8px;
        font-size: 12px;
        line-height: 1.5;
    }

    .breadcrumb a,
    .breadcrumb span {
        min-width: 0;
        overflow-wrap: anywhere;
    }
	
    .slider {
        height: 380px;
        min-width: 0;
    }

    .slide img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .slide-content {
        left: 12px;
        right: 12px;
        bottom: 40px;
        max-width: none;
    }

    .slide-category {
        margin-bottom: 8px;
        padding: 5px 8px;
        font-size: 10px;
    }

    .slide-content h2 {
        margin-bottom: 8px;
        font-size: 20px;
        line-height: 1.3;
        overflow-wrap: anywhere;
    }

    .slide-content p {
        padding: 8px;
        font-size: 13px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .slider-btn {
        top: 8px;
        width: 44px;
        height: 44px;
        font-size: 20px;
        transform: none;
    }

    .slider-btn:active {
        transform: scale(0.92);
    }

    .slider-prev {
        left: 8px;
    }

    .slider-next {
        right: 8px;
    }

    .slider-dots {
        left: 50%;
        bottom: 14px;
        max-width: calc(100% - 24px);
        gap: 7px;
    }
	
    .page-slide {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .page-slide img {
        display: block;
        width: 100%;
        height: auto;
    }
	
    .content-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
        padding: 10px;
        margin-bottom: 25px;
    }

    .content-item {
        min-width: 0;
    }

    .content-item img {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .content-item h3 {
        margin: 8px 0 6px;
        font-size: 15px;
        line-height: 1.5;
    }

    .content-item p {
        margin: 0;
        font-size: 14px;
        line-height: 1.6;
    }
	
    .rna-last4-header {
        flex-wrap: wrap;
        gap: 8px;
    }

    .rna-last4-title-text {
        font-size: 17px;
    }

    .rna-last4-link {
        font-size: 12px;
    }

    .rna-last4-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 25px 15px;
        padding: 10px;
    }

    .rna-last4-item {
        min-width: 0;
    }

    .rna-last4-cover-wrapper {
        width: 100%;
        max-width: 100%;
    }

    .rna-last4-cover {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        object-fit: cover;
    }

    .rna-last4-time {
        bottom: 5px;
        left: 5px;
        padding: 3px 5px;
        font-size: 10px;
    }

    .rna-last4-artist {
        margin-top: 7px;
        font-size: 12px;
    }

    .rna-last4-song {
        font-size: 11px;
    }

    .right .musical-news-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
        padding: 10px;
    }

    .right .musical-news-item {
        min-width: 0;
    }

    .right .musical-news-item > a img {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .right .musical-news-text {
        padding-top: 8px;
    }

    .right .musical-news-text h3 {
        font-size: 15px;
        line-height: 1.5;
    }

    .right .musical-news-text p {
        font-size: 14px;
        line-height: 1.6;
    }
	
    .track-history-menu {
        margin-top: 20px;
    }

    .thm-header h2 {
        font-size: 19px;
    }

    .thm-header p {
        font-size: 14px;
    }

    .thm-controls {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .thm-controls > * {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .thm-controls input {
        width: 100%;
        min-height: 44px;
        padding: 10px;
        font-size: 16px;
    }

    .thm-btn {
        width: 100%;
        min-height: 46px;
        padding: 12px;
        font-size: 15px;
    }

    .track-history {
        margin-top: 0;
    }

    .track-history__heading {
        font-size: 19px;
    }

    .track-history__grid,
    .thm-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 15px 10px;
    }

    .thm-grid {
        margin-top: 20px;
    }

    .track-card,
    .thm-item {
        min-width: 0;
    }

    .track-card__cover,
    .thm-cover {
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        object-fit: cover;
    }

    .track-card__time,
    .thm-time-badge {
        top: 5px;
        left: 5px;
        padding: 3px 5px;
        font-size: 10px;
    }

    .track-card__info,
    .thm-info {
        padding: 8px 0;
    }

    .track-card__artist,
    .track-card__title,
    .thm-info h3,
    .thm-info p {
        font-size: 12px;
        overflow-wrap: anywhere;
    }
	
    .contact-form-cadre {
        margin-top: 20px;
    }

    .contact-form-cadre h2 {
        margin-bottom: 18px;
        font-size: 19px;
    }

    .contact-form-cadre p {
        font-size: 15px;
    }

    .contact-form {
        gap: 12px;
    }

    .contact-form label {
        font-size: 13px;
    }

    .contact-form input,
    .contact-form textarea {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        padding: 12px;
        font-size: 16px;
    }

    .contact-form textarea {
        resize: vertical;
    }

    .contact-form .btn {
        width: 100%;
        min-height: 48px;
        align-self: stretch;
        padding: 12px 15px;
        font-size: 15px;
        white-space: normal;
    }

    .form-error,
    .form-success {
        padding: 10px;
        font-size: 13px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .info-contact {
        font-size: 14px;
        overflow-wrap: anywhere;
    }

    .info-contact i,
    .adresse-block i {
        flex-shrink: 0;
        margin-right: 8px;
    }

    .adresse-lines {
        min-width: 0;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }
	
    .schedule-menu {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        margin-top: 20px;
    }

    .schedule-menu button {
        min-height: 44px;
        padding: 10px 6px;
        font-size: 13px;
    }

    .schedule-wrapper {
        padding: 10px 0;
    }

    .schedule-day-title {
        font-size: 19px;
    }

    .schedule-list {
        gap: 15px;
    }

    .schedule-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .schedule-timebox {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 10px;
        padding: 12px;
    }

    .schedule-time-icon {
        margin-bottom: 0;
        font-size: 1.4rem;
    }

    .schedule-time-range {
        font-size: 1rem;
    }

    .schedule-info {
        padding: 12px;
    }

    .schedule-title,
    .schedule-subtitle {
        font-size: 15px;
    }

    .schedule-description {
        font-size: 14px;
        line-height: 1.6;
    }
	
    #programme-container {
        gap: 10px;
        padding: 10px;
        overflow-x: auto;
        overflow-y: hidden;
    }

    .programme-card {
        flex: 0 0 min(240px, 100%);
        min-width: 0;
        max-width: 100%;
        min-height: 220px;
        height: auto;
        aspect-ratio: auto;
    }

    .programme-card:hover {
        transform: none;
    }

    .programme-timebox {
        padding: 9px 6px;
    }

    .programme-time-icon {
        font-size: 1.3rem;
    }

    .programme-time-range {
        font-size: 13px;
    }

    .programme-info {
        padding: 10px;
    }

    .programme-title {
        font-size: 14px;
    }

    .programme-subtitle {
        font-size: 13px;
    }

    .programme-description {
        font-size: 12px;
        line-height: 1.5;
    }
	
    .form-signalement {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .form-signalement input[type="email"],
    .form-signalement textarea {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        padding: 12px;
        font-size: 16px;
    }

    .form-signalement textarea {
        resize: vertical;
    }

    .form-signalement button {
        width: 100%;
        min-height: 48px;
        padding: 12px 15px;
        font-size: 15px;
        white-space: normal;
    }

    .equipe {
        grid-template-columns: minmax(0, 1fr);
        gap: 25px;
        margin-top: 20px;
    }

    .membre-equipe {
        width: 100%;
        max-width: 360px;
        min-width: 0;
        margin: 0 auto;
    }

    .visuel-membre {
        height: 240px;
    }

    .logo-equipe {
        width: 70px;
        height: 70px;
    }

    .photo-membre {
        object-fit: contain;
        object-position: right bottom;
    }

    .nom-membre {
        font-size: 15px;
    }

    .fonction-membre {
        font-size: 14px;
    }
	
    .page-membre {
        margin-top: 20px;
        padding: 0;
    }

    .photo-membre-large {
        max-width: 300px;
        height: auto;
    }

    .bloc-info-membre {
        margin-bottom: 18px;
    }

    .bio-membre p {
        margin-bottom: 16px;
        font-size: 15px;
        line-height: 1.65;
    }

    .retour-equipe {
        margin-top: 20px;
    }

    .retour-equipe a {
        width: 100%;
        min-height: 44px;
        padding: 12px;
        font-size: 14px;
        text-align: center;
    }
	
    .page-article-title h1 {
        margin-bottom: 20px;
        font-size: 22px;
        line-height: 1.35;
        overflow-wrap: anywhere;
    }

    .page-banner {
        width: 100%;
        aspect-ratio: 16 / 9;
    }

    .page-banner img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .page-credit {
        font-size: 11px;
        line-height: 1.5;
    }

    .page-social {
        justify-content: flex-start;
        flex-wrap: wrap;
        gap: 7px;
        margin-bottom: 20px;
    }

    .page-social a {
        width: 44px;
        height: 44px;
        font-size: 15px;
    }

    .page-article-content {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .page-article-content p {
        margin-bottom: 15px;
        font-size: 15px;
        line-height: 1.65;
    }

    .page-article-content h2 {
        margin-top: 18px;
        font-size: 19px;
        line-height: 1.4;
    }

    .page-article-content img,
    .page-article-content video {
        max-width: 100%;
        height: auto;
    }

    .page-article-content iframe {
        max-width: 100%;
    }
	
    .articles-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 25px;
        margin-top: 20px;
    }

    .card-image img {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .card-content {
        padding-top: 8px;
    }

    .card-date {
        margin-bottom: 8px;
        font-size: 12px;
    }

    .card-title {
        font-size: 16px;
        line-height: 1.5;
    }

    .card-excerpt {
        font-size: 14px;
        line-height: 1.6;
    }
	
    .rna-meteo-titre {
        gap: 6px;
    }

    .rna-meteo-voir {
        min-height: 44px;
        font-size: 12px;
    }

    .rna-meteo-voir strong {
        font-size: 18px;
    }

    .rna-meteo-cadre {
        padding: 10px;
    }

    .rna-meteo-introduction p {
        font-size: 14px;
    }

    .rna-meteo-entete {
        margin-bottom: 12px;
        padding-bottom: 10px;
    }

    .rna-meteo-entete p {
        font-size: 12px;
    }

    .rna-meteo-ville h3 {
        font-size: 18px;
    }

    .rna-meteo-principale {
        gap: 10px;
    }

    .rna-meteo-temperature {
        font-size: 36px;
    }

    .rna-meteo-description {
        font-size: 13px;
    }

    .rna-meteo-icone {
        width: 55px;
        min-height: 55px;
        font-size: 42px;
    }

    .rna-meteo-details {
        gap: 8px;
    }

    .rna-meteo-details span {
        flex: 1 1 100%;
        padding: 9px 10px;
        font-size: 13px;
    }

    .rna-meteo-chargement {
        padding: 15px 8px;
        font-size: 13px;
    }
	
    .cadre-meteo {
        margin-top: 20px;
    }

    .cadre-meteo .meteo-header h3,
    .cadre-meteo .meteo-bergerac h3 {
        font-size: 19px;
    }

    .cadre-meteo .meteo-header p {
        font-size: 15px;
    }

    .cadre-meteo .meteo-bergerac {
        padding: 8px;
    }

    .cadre-meteo .meteo-principale {
        gap: 10px;
    }

    .cadre-meteo .meteo-temperature {
        font-size: 28px;
    }

    .cadre-meteo .meteo-icone {
        font-size: 40px;
    }

    .cadre-meteo .meteo-description {
        font-size: 13px;
    }

    .cadre-meteo .meteo-details {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        font-size: 13px;
    }

    .cadre-meteo .meteo-mini-titre {
        font-size: 16px;
    }

    .cadre-meteo .meteo-villes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .cadre-meteo .meteo-ville {
        padding: 10px 6px;
    }

    .cadre-meteo .meteo-ville-nom {
        font-size: 12px;
    }

    .cadre-meteo .meteo-ville-icone {
        font-size: 28px;
    }

    .cadre-meteo .meteo-ville-temp {
        font-size: 16px;
        color: #363636;
    }

    .cadre-meteo .meteo-ville-desc {
        font-size: 11px;
    }

    .cadre-meteo .meteo-footer {
        font-size: 11px;
        line-height: 1.6;
    }

    .cadre-meteo .meteo-chargement {
        padding: 18px 8px;
        font-size: 13px;
    }
	
    .rna-horoscope .horoscope-date {
        margin-top: 20px;
        font-size: 17px;
    }

    .rna-horoscope .horoscope-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        margin-top: 18px;
    }

    .rna-horoscope .horoscope-card {
        gap: 10px;
        padding: 12px;
    }

    .rna-horoscope .astro-icon {
        flex: 0 0 40px;
        width: 40px;
        height: 40px;
        font-size: 25px;
    }

    .rna-horoscope .horoscope-content h2 {
        font-size: 18px;
    }

    .rna-horoscope .horoscope-content .astro-dates {
        font-size: 11px;
    }

    .rna-horoscope .horoscope-content .astro-text {
        font-size: 14px;
        line-height: 1.65;
    }
	
    .rna-partenaires-grille {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 25px;
        margin-top: 20px;
    }

    .rna-partenaire-image {
        height: 130px;
        margin-bottom: 10px;
    }

    .rna-partenaire-image img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    .rna-partenaire-titre {
        font-size: 14px;
        line-height: 1.6;
    }

    .rna-partenaire-texte {
        font-size: 14px;
        line-height: 1.6;
    }

    .rna-partenaire-liens {
        gap: 6px 15px;
    }

    .rna-partenaire-lien {
        min-height: 44px;
        font-size: 13px;
    }

    .rna-partenaire-lien i {
        font-size: 13px;
    }
	
    .rna-pagination {
        gap: 6px;
        margin: 20px 0 10px;
    }

    .rna-pagination__numbers {
        flex-wrap: wrap;
        gap: 3px;
    }

    .rna-pagination .rna-pagination__number {
        min-width: 28px;
        min-height: 44px;
        padding: 5px;
        font-size: 12px;
    }

    .rna-pagination .rna-pagination__arrow {
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        font-size: 17px;
    }
	
    .rna-partenaires-pagination {
        gap: 6px;
        margin: 20px 0;
    }

    .rna-partenaires-pagination-numeros {
        gap: 5px;
    }

    .rna-partenaires-pagination-numero,
    .rna-partenaires-pagination-fleche {
        min-width: 44px;
        height: 44px;
        padding: 0 8px;
        font-size: 12px;
    }
	.footer {
        padding: 22px 0;
    }

    .footer-container {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
        padding: 0 12px 22px;
    }

    .footer-col h3 {
        margin-bottom: 10px;
        font-size: 15px;
    }

    .footer-col ul li {
        margin-bottom: 7px;
        font-size: 14px;
        line-height: 1.6;
    }

    .footer-col ul li a {
        max-width: 100%;
        padding: 5px 0;
        overflow-wrap: anywhere;
    }

    .footer-contact ul li,
    .footer-contact ul li a {
        gap: 8px;
        min-width: 0;
    }

    .footer-contact ul li i {
        flex-shrink: 0;
        width: 18px;
        min-width: 18px;
    }

    .footer-social {
        padding: 18px 12px;
    }

    .google-btn {
        width: 100%;
        max-width: 100%;
        min-height: 44px;
        margin: 8px 0;
        padding: 12px;
        font-size: 13px;
        white-space: normal;
    }

    .footer-bottom {
        padding: 10px 12px 0;
    }

    .footer-bottom p {
        font-size: 12px;
        line-height: 1.6;
    }
}

/* ==================================================
   TRÈS PETITS ÉCRANS
================================================== */
@media screen and (max-width: 360px) {
    main {
        width: 100%;
        max-width: 100%;
        padding: 15px 10px 20px;
    }

    .block {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
        margin-bottom: 20px;
    }

    .block .left,
    .block .right {
        width: 100%;
        min-width: 0;
    }

    .section-title {
        flex-wrap: wrap;
        gap: 6px;
    }

    .section-title h2 {
        font-size: 17px;
        line-height: 1.4;
    }

    .section-title::after {
        min-width: 8px;
    }

    .section-more {
        min-height: 44px;
        font-size: 12px;
    }

    .descriptions-cadre {
        margin-bottom: 15px;
    }

    .descriptions-cadre h2 {
        gap: 6px;
        font-size: 17px;
        line-height: 1.4;
    }

    .descriptions-cadre h2::after {
        min-width: 8px;
    }

    .descriptions-cadre p {
        font-size: 14px;
        line-height: 1.6;
    }

    .site-header {
        width: 100%;
        gap: 8px;
        padding: 8px 10px;
    }

    .header-left {
        width: 100%;
        min-width: 0;
        gap: 8px;
    }

    .logo {
        margin-right: 0;
    }

    .logo img {
        width: auto;
        height: 38px;
        max-width: 130px;
    }

    .burger {
        display: block;
        flex-shrink: 0;
        margin-left: auto;
    }

    .menu {
        left: -10px;
        right: -10px;
        width: auto;
        min-width: 0;
        padding: 8px 10px 12px;
        max-height: calc(100vh - 160px);
        max-height: calc(100dvh - 160px);
    }

    .menu.open {
        display: block;
    }

    .menu > ul {
        width: 100%;
        gap: 3px;
    }

    .menu > ul > li {
        width: 100%;
        min-width: 0;
    }

    .menu > ul > li > a,
    .menu > ul > li > .submenu-toggle {
        width: 100%;
        min-height: 44px;
        padding: 10px;
        font-size: 13px;
        line-height: 1.5;
        text-align: left;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .submenu-toggle {
        gap: 8px;
    }

    .submenu-arrow {
        flex-shrink: 0;
        font-size: 9px;
    }

    .submenu,
    .menu > ul > li:last-child > .submenu {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        padding: 4px 0;
    }

    .has-submenu:hover > .submenu {
        display: none;
    }

    .has-submenu.open > .submenu {
        display: block;
    }

    .submenu li a {
        min-height: 44px;
        padding: 10px 14px;
        font-size: 12px;
        line-height: 1.5;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .header-right {
        width: 100%;
        min-width: 0;
        margin-left: 0;
    }

    .btn-radio {
        width: 100%;
        max-width: 100%;
        min-height: 54px;
        padding: 6px;
    }

    #header-cover {
        width: 40px;
        height: 40px;
        flex-shrink: 0;
    }

    .radio-text {
        flex: 1;
        min-width: 0;
        margin-left: 7px;
    }

    .header-title {
        font-size: 11px;
        line-height: 17px;
    }

    .header-artist {
        font-size: 10px;
        line-height: 16px;
    }

    .play-icon {
        width: 34px;
        height: 34px;
        flex-shrink: 0;
        margin-left: 5px;
        font-size: 13px;
    }

    #radio-popup {
        padding: 6px 0;
    }

    .popup-content {
        width: 100%;
        max-width: 100%;
        gap: 8px;
        padding: 0 10px;
    }

    .popup-cover-container {
        flex: 0 0 40px;
    }

    #popup-cover {
        width: 40px;
        height: 40px;
    }

    .popup-infos {
        flex: 1;
        min-width: 0;
    }

    #popup-title {
        font-size: 11px;
        line-height: 17px;
    }

    #popup-artist {
        font-size: 10px;
        line-height: 16px;
    }

    .popup-controls {
        flex: 0 0 auto;
        gap: 6px;
    }

    #radio-popup .popup-player-link {
        width: 44px;
        height: 44px;
        font-size: 15px;
    }

    .breadcrumb {
        gap: 4px;
        margin-bottom: 15px;
        padding: 7px;
        font-size: 11px;
        line-height: 1.5;
    }

    .breadcrumb a,
    .breadcrumb span {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .slider {
        width: 100%;
        min-width: 0;
        height: 360px;
    }

    .slide-content {
        left: 10px;
        right: 10px;
        bottom: 38px;
        max-width: none;
    }

    .slide-category {
        margin-bottom: 7px;
        padding: 4px 7px;
        font-size: 10px;
    }

    .slide-content h2 {
        margin-bottom: 7px;
        font-size: 18px;
        line-height: 1.3;
        overflow-wrap: anywhere;
    }

    .slide-content p {
        padding: 7px;
        font-size: 12px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .slider-btn {
        width: 44px;
        height: 44px;
        font-size: 18px;
    }

    .slider-prev {
        left: 6px;
    }

    .slider-next {
        right: 6px;
    }

    .slider-dots {
        bottom: 12px;
        max-width: calc(100% - 20px);
        flex-wrap: wrap;
        justify-content: center;
        gap: 6px;
    }

    .page-slide {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .page-slide img {
        display: block;
        width: 100%;
        height: auto;
    }

    .content-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
        padding: 8px;
        margin-bottom: 20px;
    }

    .content-item h3 {
        font-size: 14px;
        line-height: 1.5;
    }

    .content-item p {
        font-size: 13px;
        line-height: 1.6;
    }

    .rna-last4-header {
        flex-wrap: wrap;
        gap: 6px;
    }

    .rna-last4-title-text {
        font-size: 16px;
    }

    .rna-last4-link {
        font-size: 11px;
    }

    .rna-last4-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px 10px;
        padding: 8px;
    }

    .rna-last4-cover-wrapper {
        width: 100%;
        max-width: 100%;
    }

    .rna-last4-cover {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        object-fit: cover;
    }

    .rna-last4-time {
        bottom: 4px;
        left: 4px;
        padding: 3px 4px;
        font-size: 10px;
    }

    .rna-last4-artist {
        font-size: 12px;
        overflow-wrap: anywhere;
    }

    .rna-last4-song {
        font-size: 11px;
        overflow-wrap: anywhere;
    }

    .right .musical-news-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
        padding: 8px;
    }

    .right .musical-news-text h3 {
        font-size: 14px;
        line-height: 1.5;
    }

    .right .musical-news-text p {
        font-size: 13px;
        line-height: 1.6;
    }

    .track-history-menu {
        margin-top: 18px;
    }

    .thm-header h2,
    .track-history__heading {
        font-size: 17px;
    }

    .thm-header p {
        font-size: 13px;
        line-height: 1.6;
    }

    .thm-controls {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .thm-controls > * {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .thm-controls input {
        width: 100%;
        min-width: 0;
        min-height: 44px;
        padding: 9px;
        font-size: 16px;
    }

    .thm-btn {
        width: 100%;
        min-height: 44px;
        padding: 10px;
        font-size: 14px;
    }

    .track-history__grid,
    .thm-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px 8px;
    }

    .thm-grid {
        margin-top: 18px;
    }

    .track-card__info,
    .thm-info {
        padding: 7px 0;
    }

    .track-card__artist,
    .track-card__title,
    .thm-info h3,
    .thm-info p {
        font-size: 11px;
        overflow-wrap: anywhere;
    }

    .track-card__time,
    .thm-time-badge {
        padding: 3px 4px;
        font-size: 10px;
    }

    .contact-form-cadre {
        margin-top: 18px;
    }

    .contact-form-cadre h2 {
        margin-bottom: 15px;
        font-size: 17px;
    }

    .contact-form-cadre p {
        font-size: 14px;
        line-height: 1.6;
    }

    .contact-form {
        gap: 10px;
    }

    .contact-form label {
        font-size: 12px;
    }

    .contact-form input,
    .contact-form textarea {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        padding: 10px;
        font-size: 16px;
    }

    .contact-form .btn {
        width: 100%;
        min-height: 44px;
        padding: 11px;
        font-size: 14px;
    }

    .form-error,
    .form-success {
        padding: 9px;
        font-size: 12px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .info-contact {
        font-size: 13px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }

    .info-contact i,
    .adresse-block i {
        flex-shrink: 0;
        margin-right: 7px;
    }

    .adresse-lines {
        min-width: 0;
        font-size: 13px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }

    .schedule-menu {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
        margin-top: 18px;
    }

    .schedule-menu button {
        min-height: 44px;
        padding: 9px 5px;
        font-size: 12px;
    }

    .schedule-day-title {
        font-size: 17px;
    }

    .schedule-list {
        gap: 12px;
    }

    .schedule-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .schedule-timebox {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 8px;
        padding: 10px;
    }

    .schedule-time-icon {
        margin-bottom: 0;
        font-size: 1.3rem;
    }

    .schedule-time-range {
        font-size: 0.95rem;
    }

    .schedule-info {
        padding: 10px;
    }

    .schedule-title,
    .schedule-subtitle {
        font-size: 14px;
    }

    .schedule-description {
        font-size: 13px;
        line-height: 1.6;
    }

    #programme-container {
        gap: 8px;
        padding: 8px;
    }

    .programme-card {
        flex: 0 0 min(220px, 100%);
        min-width: 0;
        max-width: 100%;
        min-height: 210px;
    }

    .programme-timebox {
        padding: 8px 5px;
    }

    .programme-time-icon {
        font-size: 1.2rem;
    }

    .programme-time-range {
        font-size: 12px;
    }

    .programme-info {
        padding: 9px;
    }

    .programme-title {
        font-size: 13px;
    }

    .programme-subtitle,
    .programme-description {
        font-size: 12px;
        line-height: 1.5;
    }

    .form-signalement {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .form-signalement input[type="email"],
    .form-signalement textarea {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        padding: 10px;
        font-size: 16px;
    }

    .form-signalement button {
        width: 100%;
        min-height: 44px;
        padding: 11px;
        font-size: 14px;
    }

    .equipe {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
        margin-top: 18px;
    }

    .membre-equipe {
        width: 100%;
        min-width: 0;
        max-width: 320px;
        margin: 0 auto;
    }

    .visuel-membre {
        height: 220px;
    }

    .logo-equipe {
        width: 60px;
        height: 60px;
    }

    .nom-membre {
        font-size: 14px;
    }

    .fonction-membre {
        font-size: 13px;
    }

    .page-membre {
        margin-top: 18px;
        padding: 0;
    }

    .photo-membre-large {
        width: 100%;
        max-width: 270px;
        height: auto;
    }

    .bloc-info-membre {
        margin-bottom: 15px;
        overflow-wrap: anywhere;
    }

    .bio-membre p {
        margin-bottom: 14px;
        font-size: 14px;
        line-height: 1.65;
    }

    .retour-equipe a {
        width: 100%;
        min-height: 44px;
        padding: 10px;
        font-size: 13px;
    }

    .page-article-title h1 {
        margin-bottom: 18px;
        font-size: 20px;
        line-height: 1.4;
        overflow-wrap: anywhere;
    }

    .page-credit {
        font-size: 10px;
        line-height: 1.5;
    }

    .page-social {
        flex-wrap: wrap;
        gap: 6px;
        margin-bottom: 18px;
    }

    .page-social a {
        width: 44px;
        height: 44px;
        font-size: 14px;
    }

    .page-article-content p {
        margin-bottom: 14px;
        font-size: 14px;
        line-height: 1.65;
    }

    .page-article-content h2 {
        margin-top: 16px;
        font-size: 18px;
        line-height: 1.4;
    }

    .articles-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
        margin-top: 18px;
    }

    .card-content {
        padding-top: 7px;
    }

    .card-date {
        margin-bottom: 7px;
        font-size: 11px;
    }

    .card-title {
        font-size: 15px;
        line-height: 1.5;
    }

    .card-excerpt {
        font-size: 13px;
        line-height: 1.6;
    }

    .rna-meteo-titre {
        flex-wrap: wrap;
        gap: 5px;
    }

    .rna-meteo-voir {
        min-height: 44px;
        font-size: 11px;
    }

    .rna-meteo-voir strong {
        font-size: 17px;
    }

    .rna-meteo-cadre {
        padding: 8px;
    }

    .rna-meteo-introduction p {
        font-size: 13px;
        line-height: 1.6;
    }

    .rna-meteo-entete p {
        font-size: 11px;
    }

    .rna-meteo-ville h3 {
        font-size: 17px;
    }

    .rna-meteo-principale {
        flex-wrap: wrap;
        gap: 8px;
    }

    .rna-meteo-informations {
        min-width: 0;
    }

    .rna-meteo-temperature {
        font-size: 32px;
    }

    .rna-meteo-description {
        font-size: 12px;
    }

    .rna-meteo-icone {
        width: 48px;
        min-height: 48px;
        font-size: 36px;
    }

    .rna-meteo-details {
        gap: 6px;
    }

    .rna-meteo-details span {
        flex: 1 1 100%;
        min-width: 0;
        padding: 8px;
        font-size: 12px;
    }

    .rna-meteo-chargement {
        padding: 12px 6px;
        font-size: 12px;
    }

    .cadre-meteo {
        margin-top: 18px;
    }

    .cadre-meteo .meteo-header h3,
    .cadre-meteo .meteo-bergerac h3 {
        font-size: 18px;
    }

    .cadre-meteo .meteo-header p {
        font-size: 14px;
    }

    .cadre-meteo .meteo-bergerac {
        padding: 8px;
    }

    .cadre-meteo .meteo-principale {
        gap: 8px;
    }

    .cadre-meteo .meteo-temperature {
        font-size: 26px;
    }

    .cadre-meteo .meteo-icone {
        font-size: 36px;
    }

    .cadre-meteo .meteo-description {
        font-size: 12px;
    }

    .cadre-meteo .meteo-details {
        gap: 7px;
        font-size: 12px;
    }

    .cadre-meteo .meteo-mini-titre {
        font-size: 15px;
    }

    .cadre-meteo .meteo-villes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }

    .cadre-meteo .meteo-ville {
        min-width: 0;
        padding: 8px 5px;
    }

    .cadre-meteo .meteo-ville-nom {
        font-size: 11px;
    }

    .cadre-meteo .meteo-ville-icone {
        font-size: 26px;
    }

    .cadre-meteo .meteo-ville-temp {
        font-size: 15px;
    }

    .cadre-meteo .meteo-ville-desc {
        font-size: 10px;
    }

    .cadre-meteo .meteo-footer {
        font-size: 10px;
        line-height: 1.6;
    }

    .cadre-meteo .meteo-chargement {
        padding: 15px 7px;
        font-size: 12px;
    }

    .rna-horoscope .horoscope-date {
        margin-top: 18px;
        font-size: 16px;
    }

    .rna-horoscope .horoscope-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
        margin-top: 15px;
    }

    .rna-horoscope .horoscope-card {
        gap: 8px;
        padding: 10px;
    }

    .rna-horoscope .astro-icon {
        flex: 0 0 34px;
        width: 34px;
        height: 34px;
        font-size: 22px;
    }

    .rna-horoscope .horoscope-content h2 {
        font-size: 17px;
    }

    .rna-horoscope .horoscope-content .astro-dates {
        font-size: 10px;
    }

    .rna-horoscope .horoscope-content .astro-text {
        font-size: 13px;
        line-height: 1.65;
    }

    .rna-partenaires-grille {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 20px;
        margin-top: 18px;
    }

    .rna-partenaire-image {
        height: 120px;
        margin-bottom: 8px;
    }

    .rna-partenaire-titre {
        font-size: 13px;
        line-height: 1.6;
    }

    .rna-partenaire-texte {
        font-size: 13px;
        line-height: 1.6;
    }

    .rna-partenaire-liens {
        flex-wrap: wrap;
        gap: 5px 10px;
    }

    .rna-partenaire-lien {
        min-height: 44px;
        font-size: 12px;
    }

    .rna-partenaire-lien i {
        font-size: 12px;
    }

    .rna-pagination {
        flex-wrap: wrap;
        gap: 5px;
        margin: 18px 0 10px;
    }

    .rna-pagination__numbers {
        min-width: 0;
        max-width: 100%;
        flex-wrap: wrap;
        justify-content: center;
        gap: 3px;
    }

    .rna-pagination .rna-pagination__number {
        min-width: 26px;
        min-height: 44px;
        padding: 4px;
        font-size: 11px;
    }

    .rna-pagination .rna-pagination__arrow {
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        font-size: 16px;
    }

    .rna-partenaires-pagination {
        flex-wrap: wrap;
        gap: 5px;
        margin: 18px 0;
    }

    .rna-partenaires-pagination-numeros {
        min-width: 0;
        max-width: 100%;
        flex-wrap: wrap;
        justify-content: center;
        gap: 4px;
    }

    .rna-partenaires-pagination-numero,
    .rna-partenaires-pagination-fleche {
        min-width: 44px;
        height: 44px;
        padding: 0 7px;
        font-size: 11px;
    }

    .footer {
        padding: 20px 0;
    }

    .footer-container {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
        padding: 0 10px 20px;
    }

    .footer-col h3 {
        margin-bottom: 9px;
        font-size: 14px;
    }

    .footer-col ul li {
        margin-bottom: 6px;
        font-size: 13px;
        line-height: 1.6;
    }

    .footer-col ul li a {
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    .footer-contact ul li,
    .footer-contact ul li a {
        min-width: 0;
        gap: 7px;
    }

    .footer-contact ul li i {
        width: 16px;
        min-width: 16px;
        flex-shrink: 0;
    }

    .footer-social {
        padding: 15px 10px;
    }

    .google-btn {
        width: 100%;
        max-width: 100%;
        min-height: 44px;
        margin: 7px 0;
        padding: 10px;
        font-size: 12px;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .footer-bottom {
        padding: 9px 10px 0;
    }

    .footer-bottom p {
        font-size: 11px;
        line-height: 1.6;
        overflow-wrap: anywhere;
    }
}