/* Adaptateurs structurels pour les données dynamiques Symfony.
   Les dimensions, couleurs et ruptures restent celles de la v247 compilée. */
.radio-card {
    position: relative;
}

/* Résultats d'une catégorie : ligne d'annuaire compacte et informative.
   Les métadonnées restent absentes des cartes visuelles non filtrées. */
.radio-card-categories {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.radio-card-category {
    display: block;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.radio-card-category--secondary,
.radio-card-editorial,
.radio-card-current-track,
.radio-card-meta {
    display: none;
}

body.filter-landing-active #radioGrid {
    gap: 10px !important;
}

body.filter-landing-active #radioGrid .radio-card {
    grid-template-columns: 104px minmax(0, 1fr) 46px !important;
    gap: 16px !important;
    min-height: 132px !important;
    padding: 13px 14px !important;
    border-radius: 18px !important;
    background: color-mix(in srgb, var(--surface) 92%, var(--surface-2)) !important;
}

body.filter-landing-active #radioGrid .radio-card:hover {
    border-color: color-mix(in srgb, var(--text) 28%, var(--line)) !important;
    background: var(--surface-2) !important;
}

body.filter-landing-active #radioGrid .radio-card .logo {
    width: 104px !important;
    height: 104px !important;
    min-width: 104px !important;
    padding: 8px !important;
    border-radius: 16px !important;
    background: var(--surface-2) !important;
    transform: none !important;
}

body.filter-landing-active #radioGrid .radio-card .logo::before,
body.filter-landing-active #radioGrid .radio-card .logo::after {
    display: none !important;
}

body.filter-landing-active #radioGrid .radio-card .logo-inner {
    border-radius: 12px !important;
}

body.filter-landing-active #radioGrid .radio-card-info {
    display: grid !important;
    align-content: center !important;
    gap: 8px !important;
}

body.filter-landing-active #radioGrid .radio-card-name {
    font-size: 19px !important;
    line-height: 1.2 !important;
    letter-spacing: -.025em !important;
}

body.filter-landing-active #radioGrid .radio-card-editorial {
    display: -webkit-box !important;
    max-width: 760px !important;
    margin: 0 !important;
    overflow: hidden !important;
    color: var(--muted) !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.35 !important;
    text-overflow: ellipsis !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 1 !important;
}

body.filter-landing-active #radioGrid .radio-card-current-track {
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
    min-width: 0 !important;
    max-width: 760px !important;
    margin: 0 !important;
    overflow: hidden !important;
    color: var(--live) !important;
    font-size: 13px !important;
    font-weight: 520 !important;
    line-height: 1.3 !important;
}

body.filter-landing-active #radioGrid .radio-card-current-track[hidden] {
    display: none !important;
}

body.filter-landing-active #radioGrid .radio-card-current-track-note {
    flex: 0 0 auto !important;
    font-size: 16px !important;
    line-height: 1 !important;
}

body.filter-landing-active #radioGrid .radio-card-current-track-copy {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

body.filter-landing-active #radioGrid .radio-card-categories {
    display: flex !important;
    gap: 6px !important;
    overflow: hidden !important;
}

body.filter-landing-active #radioGrid .radio-card-category {
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
    max-width: 220px !important;
    min-height: 28px !important;
    margin: 0 !important;
    padding: 0 10px !important;
    overflow: hidden !important;
    border: 1px solid var(--line) !important;
    border-radius: 999px !important;
    background: var(--bg) !important;
    color: var(--muted) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

body.filter-landing-active #radioGrid .radio-card-meta {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 7px 15px !important;
    min-width: 0 !important;
    color: var(--muted) !important;
    font-size: 12.5px !important;
    line-height: 1.3 !important;
}

body.filter-landing-active #radioGrid .radio-card-meta-item {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    min-width: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    color: inherit !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

body.filter-landing-active #radioGrid .radio-card-meta-item > svg,
body.filter-landing-active #radioGrid .radio-card-like-icon,
body.filter-landing-active #radioGrid .radio-card-frequency-icon,
body.filter-landing-active #radioGrid .radio-card-technical-icon {
    display: block !important;
    width: 15px !important;
    min-width: 15px !important;
    max-width: 15px !important;
    height: 15px !important;
    min-height: 15px !important;
    max-height: 15px !important;
    flex: 0 0 15px !important;
    overflow: hidden !important;
}

body.filter-landing-active #radioGrid .radio-card-like-icon {
    display: block !important;
    background: currentColor !important;
    color: var(--faint) !important;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7.5 21H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3.5V21Zm2-11.5 2.55-5.1A2.1 2.1 0 0 1 16 5.34V9h2.8a2 2 0 0 1 1.96 2.39l-1.4 7A3 3 0 0 1 16.42 21H9.5V9.5Z'/%3E%3C/svg%3E") center / contain no-repeat !important;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7.5 21H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3.5V21Zm2-11.5 2.55-5.1A2.1 2.1 0 0 1 16 5.34V9h2.8a2 2 0 0 1 1.96 2.39l-1.4 7A3 3 0 0 1 16.42 21H9.5V9.5Z'/%3E%3C/svg%3E") center / contain no-repeat !important;
}

body.filter-landing-active #radioGrid .radio-card-frequency-icon {
    background: currentColor !important;
    color: var(--faint) !important;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 9a10 10 0 0 1 0 6m4-9a14 14 0 0 1 0 12m10-9a10 10 0 0 0 0 6m-4-9a14 14 0 0 0 0 12M12 12h.01' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat !important;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 9a10 10 0 0 1 0 6m4-9a14 14 0 0 1 0 12m10-9a10 10 0 0 0 0 6m-4-9a14 14 0 0 0 0 12M12 12h.01' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat !important;
}

body.filter-landing-active #radioGrid .radio-card-technical-icon {
    background: currentColor !important;
    color: var(--faint) !important;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 13h3v8H3v-8Zm5-5h3v13H8V8Zm5-5h3v18h-3V3Zm5 8h3v10h-3V11Z'/%3E%3C/svg%3E") center / contain no-repeat !important;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 13h3v8H3v-8Zm5-5h3v13H8V8Zm5-5h3v18h-3V3Zm5 8h3v10h-3V11Z'/%3E%3C/svg%3E") center / contain no-repeat !important;
}

body.filter-landing-active #radioGrid .radio-location-pin {
    width: 15px !important;
    min-width: 15px !important;
    max-width: 15px !important;
    height: 15px !important;
    min-height: 15px !important;
    max-height: 15px !important;
    flex: 0 0 15px !important;
    background: currentColor !important;
    color: var(--faint) !important;
}

body.filter-landing-active #radioGrid .radio-card-program {
    gap: 4px !important;
}

body.filter-landing-active #radioGrid .radio-card-meta-item--technical {
    color: var(--faint) !important;
    font-variant-numeric: tabular-nums !important;
}

body.filter-landing-active #radioGrid .radio-card-list-action {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    min-height: 46px !important;
    padding: 0 !important;
    justify-content: center !important;
    border-color: var(--text) !important;
    background: var(--text) !important;
    color: var(--surface) !important;
}

body.filter-landing-active #radioGrid .radio-card-list-action span {
    display: none !important;
}

body.filter-landing-active #radioGrid .radio-card-list-action svg {
    width: 16px !important;
    height: 16px !important;
}

@media (max-width: 760px) {
    body.filter-landing-active #radioGrid .radio-card {
        grid-template-columns: 72px minmax(0, 1fr) 44px !important;
        gap: 11px !important;
        min-height: 94px !important;
        padding: 10px !important;
        border-radius: 15px !important;
    }

    body.filter-landing-active #radioGrid .radio-card .logo {
        width: 72px !important;
        height: 72px !important;
        min-width: 72px !important;
        padding: 6px !important;
        border-radius: 13px !important;
    }

    body.filter-landing-active #radioGrid .radio-card-info {
        gap: 6px !important;
    }

    body.filter-landing-active #radioGrid .radio-card-name {
        font-size: 15px !important;
    }

    body.filter-landing-active #radioGrid .radio-card-editorial {
        font-size: 11px !important;
    }

    body.filter-landing-active #radioGrid .radio-card-current-track {
        gap: 5px !important;
        font-size: 11px !important;
    }

    body.filter-landing-active #radioGrid .radio-card-current-track-note {
        font-size: 14px !important;
    }

    body.filter-landing-active #radioGrid .radio-card-category {
        min-height: 24px !important;
        padding: 0 8px !important;
        font-size: 11px !important;
    }

    body.filter-landing-active #radioGrid .radio-card-category:nth-child(n + 3),
    body.filter-landing-active #radioGrid .radio-card-meta-item--technical {
        display: none !important;
    }

    body.filter-landing-active #radioGrid .radio-card-meta {
        flex-wrap: nowrap !important;
        gap: 10px !important;
        overflow: hidden !important;
        font-size: 11px !important;
    }

    body.filter-landing-active #radioGrid .radio-card-program {
        flex: 1 1 auto !important;
    }

    body.filter-landing-active #radioGrid .radio-card-list-action {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
    }
}

@media (max-width: 390px) {
    body.filter-landing-active #radioGrid .radio-card {
        grid-template-columns: 64px minmax(0, 1fr) 44px !important;
        gap: 9px !important;
        min-height: 86px !important;
        padding: 9px !important;
    }

    body.filter-landing-active #radioGrid .radio-card .logo {
        width: 64px !important;
        height: 64px !important;
        min-width: 64px !important;
    }

    body.filter-landing-active #radioGrid .radio-card-category--secondary,
    body.filter-landing-active #radioGrid .radio-card-meta-item--frequency {
        display: none !important;
    }
}

/* Page canonique d'une émission : elle reprend les panneaux, cartes et pilules
   déjà utilisés par les grilles et les fiches radio. */
.route-program-show .program-detail-page {
    display: grid;
    width: min(100%, 1120px);
    margin: 0;
    gap: 18px;
}

.route-program-show .program-detail-hero {
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
    align-items: start;
    gap: 22px;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--surface);
}

.route-program-show .program-detail-station-logo {
    display: grid;
    width: 116px;
    height: 116px;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: var(--surface-2);
    color: var(--text);
    font-size: 31px;
    font-weight: 850;
}

.route-program-show .program-detail-station-logo img,
.route-program-show .program-segment-image img {
    object-fit: cover;
}

.route-program-show .program-detail-heading {
    min-width: 0;
}

.route-program-show .program-detail-station,
.route-program-show .program-detail-hosts,
.route-program-show .program-detail-description {
    margin: 0;
}

.route-program-show .program-detail-station a {
    color: var(--muted);
    font-size: 14px;
    font-weight: 720;
}

.route-program-show .program-detail-heading h1 {
    margin: 5px 0 0;
    font-size: clamp(34px, 5vw, 62px);
    line-height: 1.02;
    letter-spacing: -.05em;
}

.route-program-show .program-detail-hosts {
    margin-top: 9px;
    color: var(--text);
    font-weight: 650;
}

.route-program-show .program-detail-description {
    max-width: 820px;
    margin-top: 12px;
    color: var(--muted);
    line-height: 1.62;
}

.route-program-show .program-detail-section {
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--surface);
}

.route-program-show .program-detail-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 17px;
}

.route-program-show .program-detail-section-heading span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 760;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.route-program-show .program-detail-section-heading h2 {
    margin: 4px 0 0;
    font-size: clamp(23px, 3vw, 32px);
    letter-spacing: -.035em;
}

.route-program-show .program-detail-section-heading > p {
    max-width: 480px;
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}

.route-program-show .program-detail-schedules {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.route-program-show .program-detail-schedule-pill {
    display: grid;
    min-width: 145px;
    padding: 10px 14px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--surface-2);
    gap: 3px;
}

.route-program-show .program-detail-schedule-pill strong {
    font-size: 13px;
}

.route-program-show .program-detail-schedule-pill span {
    color: var(--muted);
    font-size: 12px;
}

.route-program-show .program-edition + .program-edition {
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px solid var(--line);
}

.route-program-show .program-edition h3 {
    margin: 0 0 11px;
    font-size: 17px;
}

.route-program-show .program-segment-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.route-program-show .program-segment-card {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    align-items: start;
    min-width: 0;
    padding: 11px;
    border: 1px solid var(--line);
    border-radius: 17px;
    background: var(--surface-2);
    gap: 13px;
}

.route-program-show .program-segment-card--without-image {
    grid-template-columns: minmax(0, 1fr);
}

.route-program-show .program-segment-image {
    display: grid;
    width: 82px;
    height: 82px;
    place-items: center;
    border-radius: 14px;
    background: var(--surface-3);
    color: var(--text);
    font-weight: 800;
}

.route-program-show .program-segment-copy {
    min-width: 0;
}

.route-program-show .program-segment-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 5px;
}

.route-program-show .program-segment-meta span {
    padding: 3px 7px;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    font-size: 10px;
    font-variant-numeric: tabular-nums;
}

.route-program-show .program-segment-copy h4,
.route-program-show .program-segment-copy p {
    margin: 0;
}

.route-program-show .program-segment-copy h4 {
    font-size: 14px;
    line-height: 1.3;
}

.route-program-show .program-segment-copy h4 a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.route-program-show .program-segment-copy p {
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.4;
}

.route-program-show .program-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.route-program-show .program-detail-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 46px;
    padding: 0 17px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface, var(--sheet));
    color: var(--text, var(--ink));
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    transition: background-color .15s ease, border-color .15s ease, transform .15s ease;
}

.route-program-show .program-detail-action svg {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
}

.route-program-show .program-detail-action--listen {
    border-color: var(--text, var(--ink));
    background: var(--text, var(--ink));
    color: var(--surface, var(--sheet));
}

.route-program-show .program-detail-action--source:hover {
    border-color: var(--faint);
    background: var(--surface-2, var(--paper));
    transform: translateY(-1px);
}

.route-program-show .program-detail-action--listen:hover {
    background: color-mix(in srgb, var(--text, var(--ink)) 88%, var(--surface, var(--sheet)));
    transform: translateY(-1px);
}

.route-program-show .program-detail-action:active {
    transform: translateY(0);
}

@media (max-width: 520px) {
    .route-program-show .program-detail-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .route-program-show .program-detail-action {
        width: 100%;
    }
}

@media (forced-colors: active) {
    .route-program-show .program-detail-action {
        border-color: ButtonText;
    }
}

@media (max-width: 760px) {
    .route-program-show .program-detail-hero {
        grid-template-columns: 82px minmax(0, 1fr);
        align-items: start;
        padding: 17px;
        gap: 14px;
    }

    .route-program-show .program-detail-station-logo {
        width: 82px;
        height: 82px;
        border-radius: 16px;
        font-size: 24px;
    }

    .route-program-show .program-detail-heading h1 {
        font-size: clamp(29px, 9vw, 42px);
    }

    .route-program-show .program-detail-hosts,
    .route-program-show .program-detail-description {
        grid-column: 1 / -1;
    }

    .route-program-show .program-detail-section {
        padding: 16px;
        border-radius: 18px;
    }

    .route-program-show .program-detail-section-heading {
        display: grid;
        align-items: start;
        gap: 7px;
    }

    .route-program-show .program-segment-list {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 390px) {
    .route-program-show .program-detail-hero {
        grid-template-columns: 68px minmax(0, 1fr);
        padding: 14px;
        gap: 12px;
    }

    .route-program-show .program-detail-station-logo {
        width: 68px;
        height: 68px;
        border-radius: 14px;
    }

    .route-program-show .program-detail-schedule-pill {
        width: 100%;
    }

    .route-program-show .program-segment-card {
        grid-template-columns: 68px minmax(0, 1fr);
    }

    .route-program-show .program-segment-image {
        width: 68px;
        height: 68px;
    }
}

.radio-card-link {
    position: absolute;
    z-index: 2;
    inset: 0;
    border-radius: inherit;
    color: inherit;
}

.radio-card > .logo,
.radio-card > .radio-card-info,
.radio-card > .radio-card-list-action {
    pointer-events: none;
}

.radio-card .logo-inner {
    position: relative;
}

.radio-card .logo-inner > img {
    position: absolute;
    z-index: 1;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.radio-monogram {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    background: var(--surface-2);
    color: var(--text);
    font-size: clamp(18px, 3vw, 34px);
    font-weight: 820;
    letter-spacing: -.04em;
}

/* Comme dans d91c0b3e, une vraie image recouvre entièrement le monogramme.
   Le contenu de secours reste derrière et réapparaît si l'image échoue. */
.media-fallback-stack {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.media-fallback-stack > img[data-image-fallback] {
    position: absolute;
    z-index: 1;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
}

/* Les feuilles de route conservent les logos radio à 74 %.
   Le centrage reste stable même quand Turbo recharge leur CSS après celle-ci. */
.radio-card .logo-inner > img[data-image-fallback] {
    inset: auto;
    top: 50%;
    left: 50%;
    width: 74%;
    height: 74%;
    object-fit: contain;
    transform: translate(-50%, -50%);
}

.media-fallback-stack > img[data-image-fallback][hidden] {
    display: none;
}

.media-fallback-stack.media-fallback-stack--toned {
    border: 0;
    background: var(--media-dominant-color, var(--surface-2));
    box-shadow: none;
}

.media-fallback-stack > .media-dominant-backdrop {
    position: absolute;
    z-index: 0;
    inset: -18%;
    display: block;
    width: 136%;
    height: 136%;
    object-fit: cover;
    filter: blur(24px) saturate(.82) brightness(.88);
    transform: scale(1.08);
    opacity: .92;
}

.media-fallback-stack > .media-dominant-backdrop[hidden],
.media-fallback-stack.has-image-error > .media-dominant-backdrop {
    display: none;
}

.error-state,
.empty-state {
    width: 100%;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text);
}

.error-state strong,
.empty-state strong {
    display: block;
    font-size: 17px;
}

.error-state p,
.empty-state p {
    margin: 8px 0 0;
    color: var(--muted);
    line-height: 1.55;
}

.library-columns--single{grid-template-columns:minmax(0,1fr)!important}
.app-download--without-preview{grid-template-columns:minmax(0,1fr)!important}
.appdl-bottom--without-qr{grid-template-columns:minmax(0,1fr)!important}
.broadcaster-hero--unavailable{grid-template-columns:minmax(0,1fr)!important}
.legal-layout--without-toc{grid-template-columns:minmax(0,1fr)!important}
.error-page--single{grid-template-columns:minmax(0,1fr)!important}

.error-page h1 {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

.country-site-card[data-live-directory-card][hidden],
[data-live-directory-grid][hidden],
[data-live-directory-empty][hidden] {
    display: none !important;
}

.radio-detail-info-section .info-value-link {
    color: inherit;
    text-decoration-line: underline;
    text-decoration-thickness: 1px;
    text-decoration-color: var(--faint);
    text-underline-offset: 3px;
}

.radio-detail-info-section .info-value-link:hover,
.radio-detail-info-section .info-value-link:focus-visible {
    text-decoration-color: currentColor;
}

/* Les SVG dynamiques gardent les dimensions intrinsèques du shell v247. */
.search-icon {
    width: 17px;
    height: 17px;
}

#menuButton .menu-icon {
    width: 20px;
    height: 20px;
}

#bookmarkButton svg,
#themeButton svg {
    width: 19px;
    height: 19px;
}

#appPromoPreviewButton svg {
    width: 18px;
    height: 18px;
}

.chevron {
    width: 14px;
    height: 14px;
}

#themeButton .theme-icon--sun {
    display: none !important;
}

html[data-theme="dark"] #themeButton .theme-icon--moon {
    display: none !important;
}

html[data-theme="dark"] #themeButton .theme-icon--sun {
    display: block !important;
}

/* Les widgets utilisent la même icône Play que le lecteur principal. */
.wd-play .radio-play-icon {
    display: block;
    width: 20px;
    height: 20px;
    margin-left: 2px;
}

.route-widgets .widget-button-link.square {
    position: relative;
    isolation: isolate;
}

.route-widgets .widget-button-radio-fallback {
    position: relative;
    z-index: 0;
}

.route-widgets .widget-button-radio-logo {
    object-fit: contain;
}

.route-widgets .widget-button-logo-play {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    display: grid;
    width: var(--button-play-size);
    height: var(--button-play-size);
    place-items: center;
    border-radius: 50%;
    background: rgb(0 0 0 / 68%);
    color: #fff;
    box-shadow: 0 5px 14px rgb(0 0 0 / 28%);
    transform: translate(-50%, -50%);
}

.route-widgets .widget-button-logo-play .radio-play-icon,
.route-widgets .widget-button-play .radio-play-icon {
    width: 48%;
    height: 48%;
    margin-left: 2px;
}

/* Favoris et contenus associés ajoutés au shell v247. */
.radio-card > .radio-card__favorite {
    position: absolute;
    z-index: 3;
    top: 10px;
    right: 10px;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: color-mix(in srgb, var(--surface) 88%, transparent);
    color: var(--text);
    cursor: pointer;
}

.radio-card > .radio-card__favorite[aria-pressed="true"],
.podcast-row-favorite[aria-pressed="true"] {
    color: var(--live, var(--brand));
    border-color: var(--live, var(--brand));
}

.podcast-row-favorite {
    min-width: 44px;
    min-height: 44px;
}

.podcast-row-meta > .podcast-row-favorite {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    border: 0;
    border-radius: 0;
    appearance: none;
    background: transparent;
    color: var(--muted);
    box-shadow: none;
    cursor: pointer;
}

.podcast-row-meta > .podcast-row-favorite:hover {
    color: var(--text);
    transform: scale(1.06);
}

.podcast-row-meta > .podcast-row-favorite:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--text) 22%, transparent);
}

.podcast-row-meta > .podcast-row-favorite [data-favorite-icon] {
    display: block;
    width: 30px;
    height: 30px;
}

.related-content {
    margin-top: 32px;
}

.related-content .section-head {
    margin-bottom: 10px;
}

:where([data-player-toggle], .episode-main-play) .player-connection-dots {
    gap: 4px;
    min-width: 28px;
    height: 18px;
    padding: 0;
}

:where([data-player-toggle], .episode-main-play) .player-connection-dots i {
    width: 5px;
    height: 5px;
}

.favorites-action-tooltip {
    position: fixed;
    z-index: 180;
    left: 50%;
    bottom: 24px;
    display: flex;
    align-items: center;
    gap: 16px;
    min-height: 48px;
    max-width: calc(100vw - 24px);
    padding: 9px 10px 9px 16px;
    border-radius: 15px;
    background: rgba(15, 16, 19, .94);
    color: #fff;
    box-shadow: 0 18px 34px rgba(0, 0, 0, .28);
    font-size: 14px;
    font-weight: 650;
    line-height: 1.2;
    transform: translateX(-50%) translateY(8px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .16s, transform .16s;
}

.favorites-action-tooltip.is-visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
}

.favorites-action-undo {
    height: 32px;
    padding: 0 12px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 10px;
    background: rgba(255, 255, 255, .1);
    color: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 760;
    cursor: pointer;
    white-space: nowrap;
}

.favorites-action-undo:hover {
    border-color: rgba(255, 255, 255, .34);
    background: rgba(255, 255, 255, .18);
}

@media (min-width: 1440px) {
    .route-episode-show .related-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }
}

@media (max-width: 760px) {
    .favorites-action-tooltip {
        right: 16px;
        bottom: calc(16px + env(safe-area-inset-bottom));
        left: 16px;
        justify-content: space-between;
        text-align: left;
        transform: translateY(8px);
    }

    .favorites-action-tooltip.is-visible {
        transform: translateY(0);
    }
}

/* Les programmes réels de la HP réutilisent exactement les masques v247. */
#programmesByRadioSection .schedule-logo {
    position: relative;
}

#programmesByRadioSection .schedule-logo-monogram {
    position: relative;
    z-index: 0;
}

#programmesByRadioSection .schedule-logo img {
    position: absolute;
    z-index: 1;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

#programmesByRadioSection .station-schedule > .schedule-more {
    display: grid;
    place-items: center;
}

/* Adaptateurs API uniquement : la géométrie reste entièrement propriété du CSS v247. */
.route-music .music-station-panel {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    gap: 13px;
    align-items: center;
    margin-bottom: 14px;
    padding: 13px 15px;
}

.route-music .music-api-station-logo {
    position: relative;
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface-2);
    color: var(--text);
    font-size: 14px;
    font-weight: 820;
}

.route-music .music-api-station-logo img,
.route-music .music-api-track-cover img {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.route-music .music-api-station-logo img {
    object-fit: contain;
}

.route-music .music-api-station-copy {
    min-width: 0;
}

.route-music .music-api-station-copy small,
.route-music .music-api-station-copy strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.route-music .music-api-station-copy small {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.route-music .music-api-station-copy strong {
    margin-top: 3px;
    font-size: 17px;
}

.route-music .music-api-station-link,
.route-music .music-pagination a,
.route-music .music-pagination span {
    min-height: 42px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 720;
}

.route-music .music-api-station-link:hover,
.route-music .music-pagination a:hover {
    border-color: var(--faint);
    background: var(--surface-2);
}

.route-music .music-main-column .music-api-track-row {
    display: grid !important;
    grid-template-columns: 52px minmax(0, 1fr) auto !important;
    gap: 12px !important;
    align-items: center !important;
    padding: 12px 0 !important;
}

.route-music .music-main-column .music-api-track-cover {
    grid-column: 1 !important;
    position: relative;
    width: 52px;
    height: 52px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--surface-2);
    color: var(--text);
    box-shadow: none;
}

.route-music .music-api-track-row.is-current {
    margin-inline: -18px;
    padding-inline: 18px !important;
    border-left: 3px solid var(--live);
    background: color-mix(in srgb, var(--live-soft) 48%, var(--surface));
}

.route-music .music-api-track-row .chart-copy {
    min-width: 0;
}

.route-music .music-api-track-row .chart-copy b,
.route-music .music-api-track-row .chart-copy span,
.route-music .music-api-track-row .chart-copy small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.route-music .music-api-track-row .chart-copy b {
    font-size: 16px;
    line-height: 1.25;
}

.route-music .music-api-track-row .chart-copy span {
    margin-top: 4px;
    color: var(--muted);
    font-size: 13px;
}

.route-music .music-api-track-row .chart-copy small {
    margin-top: 3px;
    color: var(--faint);
    font-size: 11px;
}

.route-music .music-api-track-row .chart-trend {
    max-width: 116px;
    color: var(--live);
    text-align: right;
}

.route-music .music-api-track-meta {
    display: grid;
    gap: 3px;
    color: var(--muted) !important;
    font-variant-numeric: tabular-nums;
}

.route-music .music-api-track-meta small {
    color: var(--faint);
    font-size: 10px;
}

.route-music .music-api-state {
    padding: 24px;
    text-align: center;
}

.route-music .music-api-state strong,
.route-music .music-api-state p {
    display: block;
}

.route-music .music-api-state p {
    margin: 7px 0 0;
    color: var(--muted);
    line-height: 1.55;
}

.route-music .music-api-state--error {
    border-color: color-mix(in srgb, var(--live) 55%, var(--line));
}

.route-music .music-api-state--compact {
    padding: 22px 4px;
}

.route-music .music-pagination {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 10px;
    align-items: center;
    margin-top: 18px;
}

.route-music .music-pagination > :last-child {
    justify-self: end;
}

.route-music .music-pagination > span {
    opacity: .45;
}

.route-music .music-pagination strong {
    color: var(--muted);
    font-size: 13px;
    text-align: center;
}

@media (max-width: 760px) {
    .route-music .music-station-panel {
        grid-template-columns: 50px minmax(0, 1fr);
        padding: 12px;
    }

    .route-music .music-api-station-logo {
        width: 50px;
        height: 50px;
        border-radius: 12px;
    }

    .route-music .music-api-station-link {
        grid-column: 1 / -1;
    }

    .route-music .music-main-column .music-api-track-row {
        grid-template-columns: 46px minmax(0, 1fr) auto !important;
        gap: 10px !important;
    }

    .route-music .music-main-column .music-api-track-cover {
        width: 46px;
        height: 46px;
        border-radius: 12px;
    }

    .route-music .music-api-track-row.is-current {
        margin-inline: -18px;
        padding-inline: 18px !important;
    }

    .route-music .music-api-track-row .chart-copy b {
        font-size: 14px;
    }

    .route-music .music-api-track-row .chart-copy span {
        font-size: 12px;
    }

    .route-music .music-api-track-row .chart-trend {
        max-width: 74px;
        font-size: 11px;
    }

    .route-music .music-api-track-meta small {
        display: none;
    }

    .route-music .music-pagination {
        grid-template-columns: 1fr 1fr;
    }

    .route-music .music-pagination strong {
        grid-column: 1 / -1;
        grid-row: 1;
    }
}

@media (max-width: 390px) {
    .route-music .music-main-column .music-api-track-row {
        grid-template-columns: 42px minmax(0, 1fr) !important;
    }

    .route-music .music-main-column .music-api-track-cover {
        width: 42px;
        height: 42px;
    }

    .route-music .music-api-track-row .chart-trend {
        grid-column: 2;
        justify-self: start;
        max-width: none;
        text-align: left;
    }
}

.route-home .quick-filters [data-quick-category-mobile-current] {
    display: none !important;
}

@media (max-width: 760px) {
    .route-home .quick-filters [data-quick-category-mobile-current] {
        display: inline-flex !important;
    }

    .route-home .quick-filters [data-quick-category].active:not([data-quick-category-mobile-current]) {
        display: none !important;
    }

    .route-home .quick-filters [data-quick-category-index="7"] {
        display: none;
    }
}

.route-radio-show .player-nowplaying-cover img,
.route-radio-show .history-item .cover img {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.route-radio-show .station-logo img:not(.media-dominant-backdrop),
.route-radio-show .widget-logo img,
.route-radio-show .related-logo-inner img:not(.media-dominant-backdrop),
.radio-widget-embed .embedded-radio-widget__logo img {
    object-fit: contain;
}

.route-radio-show .engagement-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

.route-radio-show .station-content {
    min-width: 0;
}

.route-radio-show .station-engagement {
    width: 100%;
    container-name: radio-actions;
    container-type: inline-size;
}

@media (max-width: 760px) {
    .route-radio-show .station-content {
        display: contents;
    }

    .route-radio-show .station-content > .station-copy {
        grid-column: 2;
        min-width: 0;
    }

    .route-radio-show .station-content > .station-engagement {
        grid-column: 1 / -1;
        width: 100%;
        min-width: 0;
        margin-top: 0 !important;
    }
}

.route-radio-show .engagement-actions .engagement-btn {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: auto;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    padding: 0 13px !important;
    border-radius: 14px !important;
    gap: 10px !important;
    line-height: 1 !important;
}

.route-radio-show .engagement-actions .engagement-btn > svg {
    display: block;
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    transform: none !important;
}

.route-radio-show .engagement-actions .engagement-btn > strong {
    padding-left: 0;
}

.route-radio-show .favorite-button--detail {
    flex: 0 1 auto;
    width: auto !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    padding: 0 13px !important;
    border: 1px solid var(--line) !important;
    border-radius: 14px !important;
    background: var(--surface) !important;
    box-shadow: none !important;
    overflow: hidden !important;
    gap: 10px !important;
}

.route-radio-show .favorite-button--detail:hover {
    border-color: var(--faint) !important;
    background: var(--surface-2) !important;
    color: var(--text);
    transform: translateY(-1px);
}

.route-radio-show .favorite-button--detail[aria-pressed="true"] {
    border-color: var(--faint) !important;
    background: var(--surface-2) !important;
    color: var(--text);
}

.route-radio-show .favorite-button--detail:focus-visible {
    outline: 2px solid var(--focus, currentColor);
    outline-offset: 2px;
}

.route-radio-show .favorite-button--detail [data-favorite-icon] {
    display: block !important;
    flex: 0 0 22px !important;
    width: 22px !important;
    height: 22px !important;
}

.route-radio-show .volume-toggle .volume-icon--off {
    display: none;
}

.route-radio-show .volume-toggle[aria-pressed="true"] .volume-icon--on {
    display: none;
}

.route-radio-show .volume-toggle[aria-pressed="true"] .volume-icon--off {
    display: block;
}

.route-radio-show .favorite-button--detail .radio-favorite-label,
.route-radio-show .share-button .radio-share-label {
    display: inline !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    clip: auto !important;
    clip-path: none !important;
    white-space: nowrap !important;
    border: 0 !important;
    line-height: 1 !important;
}

@media (max-width: 760px) {
    .route-radio-show .engagement-actions {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) auto !important;
        align-items: stretch !important;
        gap: 7px !important;
        width: 100% !important;
    }

    .route-radio-show .engagement-actions .engagement-btn {
        box-sizing: border-box !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        min-width: 0 !important;
        height: 44px !important;
        min-height: 44px !important;
        max-height: 44px !important;
        padding: 0 8px !important;
        gap: 7px !important;
        font-size: 13px !important;
        line-height: 1 !important;
    }

    .route-radio-show .engagement-btn--static .radio-like-label {
        display: none !important;
    }

    .route-radio-show .favorite-button--detail .radio-favorite-label,
    .route-radio-show .share-button .radio-share-label {
        display: inline-flex !important;
        align-items: center !important;
        position: static !important;
        width: auto !important;
        height: auto !important;
        padding: 0 !important;
        margin: 0 !important;
        overflow: visible !important;
        clip: auto !important;
        clip-path: none !important;
        white-space: nowrap !important;
        border: 0 !important;
        font-size: 0 !important;
        line-height: 1 !important;
    }

    .route-radio-show .favorite-button--detail .radio-favorite-label::after,
    .route-radio-show .share-button .radio-share-label::after {
        content: attr(data-mobile-label);
        font-size: 13px !important;
        line-height: 1 !important;
    }
}

@media (max-width: 390px) {
    .route-radio-show .engagement-actions {
        gap: 5px !important;
    }

    .route-radio-show .engagement-actions .engagement-btn {
        padding: 0 4px !important;
        gap: 4px !important;
        font-size: 11px !important;
    }

    .route-radio-show .engagement-actions .engagement-btn > svg {
        flex-basis: 18px !important;
        width: 18px !important;
        height: 18px !important;
    }

    .route-radio-show .favorite-button--detail [data-favorite-icon] {
        flex-basis: 18px !important;
        width: 18px !important;
        height: 18px !important;
    }

    .route-radio-show .favorite-button--detail .radio-favorite-label::after,
    .route-radio-show .share-button .radio-share-label::after,
    .route-radio-show .engagement-actions .engagement-btn > strong {
        font-size: 11px !important;
    }
}


/* ChatGPT-inspired radio actions: minimal pills, unchanged interactions. */
.route-radio-show .radio-engagement-actions {
    display: inline-flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    width: max-content !important;
    max-width: 100%;
    padding: 0 !important;
    gap: 8px !important;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.route-radio-show .radio-engagement-actions .engagement-btn {
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    width: auto !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    padding: 0 15px !important;
    border: 1px solid var(--line) !important;
    border-radius: 999px !important;
    gap: 8px !important;
    background: var(--surface) !important;
    color: var(--text) !important;
    box-shadow: none !important;
    overflow: visible !important;
    font-size: 14px !important;
    font-weight: 650 !important;
    line-height: 1 !important;
    transition: background-color .14s ease, border-color .14s ease, color .14s ease;
}

.route-radio-show .radio-engagement-actions .engagement-btn:hover {
    border-color: color-mix(in srgb, var(--text) 24%, var(--line)) !important;
    background: var(--surface-2) !important;
    color: var(--text) !important;
    transform: none !important;
    box-shadow: none !important;
}

.route-radio-show .radio-engagement-actions .engagement-btn:focus-visible {
    outline: 2px solid var(--focus, currentColor);
    outline-offset: 2px;
}

.route-radio-show .radio-engagement-actions .engagement-btn > svg {
    box-sizing: border-box !important;
    display: block !important;
    flex: 0 0 19px !important;
    width: 19px !important;
    height: 19px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: currentColor;
    transform: none !important;
}

.route-radio-show .radio-engagement-actions .engagement-btn > strong {
    padding-left: 0 !important;
    color: currentColor;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

.route-radio-show .radio-engagement-actions .engagement-btn--static {
    order: 3;
    border-color: transparent !important;
    background: color-mix(in srgb, var(--surface-2) 80%, var(--surface)) !important;
    cursor: default;
}

.route-radio-show .radio-engagement-actions .radio-like-label {
    display: none !important;
}

.route-radio-show .radio-engagement-actions .share-button,
.route-radio-show .radio-engagement-actions .share-button:hover {
    border-color: var(--text) !important;
    background: var(--text) !important;
    color: var(--surface) !important;
}

.route-radio-show .radio-engagement-actions .share-button:hover {
    border-color: color-mix(in srgb, var(--text) 86%, var(--surface)) !important;
    background: color-mix(in srgb, var(--text) 86%, var(--surface)) !important;
}

.route-radio-show .radio-engagement-actions .favorite-button--detail[aria-pressed="true"] {
    border-color: color-mix(in srgb, var(--text) 24%, var(--line)) !important;
    background: var(--surface-2) !important;
    color: var(--text) !important;
}

@media (max-width: 760px) {
    .route-radio-show .radio-engagement-actions {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) auto !important;
        align-items: stretch !important;
        width: 100% !important;
        gap: 6px !important;
    }

    .route-radio-show .radio-engagement-actions--without-likes {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .route-radio-show .radio-engagement-actions .engagement-btn {
        width: 100% !important;
        min-width: 0 !important;
        height: 44px !important;
        min-height: 44px !important;
        max-height: 44px !important;
        padding: 0 10px !important;
        gap: 7px !important;
        font-size: 13px !important;
    }

    .route-radio-show .radio-engagement-actions .engagement-btn > svg,
    .route-radio-show .radio-engagement-actions .favorite-button--detail [data-favorite-icon] {
        flex-basis: 19px !important;
        width: 19px !important;
        height: 19px !important;
        padding: 0 !important;
    }
}

@media (max-width: 390px) {
    .route-radio-show .radio-engagement-actions {
        gap: 5px !important;
    }

    .route-radio-show .radio-engagement-actions .engagement-btn {
        padding: 0 8px !important;
        gap: 5px !important;
        font-size: 12px !important;
    }

    .route-radio-show .radio-engagement-actions .engagement-btn > strong,
    .route-radio-show .radio-engagement-actions .favorite-button--detail .radio-favorite-label::after,
    .route-radio-show .radio-engagement-actions .share-button .radio-share-label::after {
        font-size: 12px !important;
    }
}

@container radio-actions (max-width: 640px) {
    .route-radio-show .radio-engagement-actions {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) auto !important;
        width: 100% !important;
        gap: 6px !important;
    }

    .route-radio-show .radio-engagement-actions--without-likes {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .route-radio-show .radio-engagement-actions .engagement-btn {
        width: 100% !important;
        min-width: 0 !important;
        padding: 0 10px !important;
    }

    .route-radio-show .radio-engagement-actions .engagement-btn--static .radio-like-label {
        display: none !important;
    }

    .route-radio-show .radio-engagement-actions .favorite-button--detail .radio-favorite-label,
    .route-radio-show .radio-engagement-actions .share-button .radio-share-label {
        display: inline-flex !important;
        align-items: center !important;
        font-size: 0 !important;
    }

    .route-radio-show .radio-engagement-actions .favorite-button--detail .radio-favorite-label::after,
    .route-radio-show .radio-engagement-actions .share-button .radio-share-label::after {
        content: attr(data-mobile-label);
        font-size: 13px !important;
        line-height: 1 !important;
    }
}

@media (forced-colors: active) {
    .route-radio-show .radio-engagement-actions .engagement-btn {
        border: 1px solid ButtonText !important;
    }

    .route-radio-show .radio-engagement-actions .engagement-btn:focus-visible {
        outline-color: Highlight;
    }
}

@media (prefers-reduced-motion: reduce) {
    .route-radio-show .radio-engagement-actions .engagement-btn {
        transition: none;
    }
}

.route-radio-show .related-logo-inner {
    position: relative;
    overflow: hidden;
}
.route-radio-show .lower-grid--single {grid-template-columns:minmax(0,1fr);}

/* La route Symfony conserve le workflow de recherche, dans la géométrie v247. */
.route-search .page-title-block {
    width: min(100%, 980px);
    margin-inline: auto;
}

.route-search .page-title-block {
    padding: 12px 0 20px;
    text-align: center;
}

.route-search .page-title-block h1 {
    margin: 0;
    font-size: clamp(28px, 3.2vw, 40px);
    line-height: 1.05;
    letter-spacing: -.04em;
}

.route-search .page-title-block p {
    max-width: 640px;
    margin: 9px auto 0;
    color: var(--muted);
}

.route-search .search-workspace {
    display: grid;
    width: 100%;
    margin-inline: 0;
    gap: 22px;
}

.route-search .search-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 12px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--surface);
}

.route-search .field-wrap {
    display: grid;
    min-width: 0;
    gap: 7px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 650;
}

.route-search .search-input-wrap {
    position: relative;
    display: block;
    min-width: 0;
}

.route-search .field-wrap input,
.route-search .field-wrap select {
    width: 100%;
    height: 44px;
    min-width: 0;
    padding: 0 44px 0 13px;
    border: 1px solid var(--line);
    border-radius: 12px;
    outline: 0;
    background: var(--bg);
    color: var(--text);
}

.route-search .field-wrap input:focus,
.route-search .field-wrap select:focus {
    border-color: var(--text);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--text) 8%, transparent);
}

.route-search .search-input-wrap .search-clear {
    position: absolute;
    top: 0;
    right: 0;
    display: grid;
    width: 44px;
    height: 44px;
    padding: 0;
    place-items: center;
    border: 0;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
}

.route-search .search-input-wrap .search-clear[hidden] {
    display: none;
}

.route-search .primary-button {
    min-height: 44px;
    padding: 0 20px;
    border: 1px solid var(--text);
    border-radius: 12px;
    background: var(--text);
    color: var(--bg);
    font-weight: 700;
    cursor: pointer;
}

.route-search .search-panel > .loading-state {
    grid-column: 1 / -1;
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

.route-search .search-results-section {
    min-width: 0;
    padding: 0 0 24px;
}

.route-search #search-results {
    display: grid;
    gap: 26px;
    min-width: 0;
}

.route-search .search-result-group {
    min-width: 0;
    padding: 0;
}

.route-search .search-result-group + .search-result-group {
    padding-top: 24px;
    border-top: 1px solid var(--line);
}

.route-search .search-result-group > .section-head {
    justify-content: flex-start;
    margin-bottom: 13px;
    text-align: left;
}

.route-search .search-result-group > .section-head h2 {
    margin: 0;
    font-size: 18px;
}

.route-search .search-results-section .radio-card .logo {
    padding: 0;
}

.route-search .search-results-section .radio-card .logo-inner {
    width: 100%;
    height: 100%;
    border-radius: inherit;
}

.route-search .search-results-section .radio-card .logo-inner > img[data-image-fallback] {
    width: 100%;
    height: 100%;
}

.route-search .search-results-section .podcast-list {
    display: grid;
    width: 100%;
    min-width: 0;
    gap: 10px;
}

.route-search .search-results-section .podcast-row {
    position: relative;
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: var(--surface);
}

.route-search .search-results-section .podcast-row-cover {
    display: grid;
    width: 104px;
    height: 104px;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--surface-2);
    color: var(--muted);
}

.route-search .search-results-section .podcast-cover-placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
}

.route-search .search-results-section .podcast-cover-placeholder > svg {
    width: 42px;
    height: 42px;
}

.route-search .search-results-section .podcast-row-cover > img[data-image-fallback] {
    object-fit: cover;
}

.route-search .search-results-section .podcast-row-copy {
    min-width: 0;
}

.route-search .search-results-section .podcast-row-copy h2 {
    margin: 0;
    font-size: 19px;
    line-height: 1.2;
    letter-spacing: -.025em;
}

.route-search .search-results-section .podcast-row-copy > p {
    margin: 5px 0 0;
    overflow: hidden;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.route-search .search-results-section .podcast-row-meta {
    display: grid;
    align-self: start;
    justify-items: end;
    gap: 8px;
    color: var(--muted);
    font-size: 11px;
}

.route-search .search-results-section .podcast-row-meta > span {
    display: inline-flex;
    align-items: center;
    min-height: 29px;
    padding: 0 10px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface-2);
    white-space: nowrap;
}

/* Le conteneur technique ne doit jamais créer une boîte avant le composant v247. */
.global-search-results[hidden] {
    display: none !important;
}

.global-search-results:not([hidden]) {
    display: contents;
}

/* Le mini-player national ne réserve plus de colonne pour l’ancienne onde. */
.sidebar-now-card {
    grid-template-columns: 42px minmax(0, 1fr);
}

/* Le générateur ne propose que le lecteur réellement pris en charge. */
.route-widgets .widget-type-tabs--single {
    grid-template-columns: minmax(0, 260px);
}

.route-widgets .widget-preview-shell > iframe {
    display: block;
    width: 100%;
    height: var(--widget-preview-height, 240px);
    border: 0;
    border-radius: 18px;
    background: transparent;
}

@media (max-width: 760px) {
    .route-search .page-title-block {
        padding: 8px 0 16px;
    }

    .route-search .page-title-block h1 {
        font-size: 28px;
    }

    .route-search .search-panel {
        grid-template-columns: minmax(0, 1fr);
        padding: 14px;
        border-radius: 16px;
    }

    .route-search .primary-button {
        width: 100%;
    }

    .route-search .search-results-section > .section-head {
        justify-content: flex-start;
        text-align: left;
    }

    .route-search .search-results-section .podcast-row {
        grid-template-columns: 76px minmax(0, 1fr) 44px;
        gap: 12px;
        min-height: 0;
        padding: 12px;
        border-radius: 17px;
    }

    .route-search .search-results-section .podcast-row-cover {
        width: 76px;
        height: 76px;
        border-radius: 14px;
    }

    .route-search .search-results-section .podcast-cover-placeholder > svg {
        width: 34px;
        height: 34px;
    }

    .route-search .search-results-section .podcast-row-copy h2 {
        font-size: 16px;
    }

    .route-search .search-results-section .podcast-row-meta {
        align-self: center;
        justify-self: end;
    }

    .route-search .search-results-section .podcast-row-meta > span {
        display: none;
    }
}

@media (max-width: 520px) {
    .route-search .search-results-section .podcast-row {
        grid-template-columns: 68px minmax(0, 1fr) 44px;
        gap: 10px;
        padding: 10px;
    }

    .route-search .search-results-section .podcast-row-cover {
        width: 68px;
        height: 68px;
    }

    .route-search .search-results-section .podcast-cover-placeholder > svg {
        width: 30px;
        height: 30px;
    }
}

@media (max-width: 680px) {
    .route-widgets .widget-type-tabs--single {
        display: grid;
        grid-template-columns: minmax(0, 230px);
        overflow: visible;
    }
}
/* Le dialogue réel des programmes n’affiche ni rappel ni donnée factice. */
.route-programs .guide-panel {
    --hour-width: 96px;
    --timeline-width: 2304px;
    --guide-row-height: 86px;
    --guide-program-top: 13px;
    --guide-program-height: 60px;
    --guide-lane-step: 68px;
}

.route-programs .schedule-viewport {
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    overscroll-behavior-y: auto;
}

.route-programs .schedule-row,
.route-programs .timeline {
    min-height: calc(var(--guide-row-height) + var(--guide-extra-lanes, 0) * var(--guide-lane-step));
}

.route-programs .timeline {
    height: auto;
}

.route-programs .program-block {
    top: calc(var(--guide-program-top) + var(--guide-lane, 0) * var(--guide-lane-step));
    left: calc(var(--guide-left) + 3px);
    width: max(30px, calc(var(--guide-width) - 5px));
    height: var(--guide-program-height);
}

@media (max-width: 760px) {
    .route-programs .guide-panel {
        --guide-row-height: 76px;
        --guide-program-top: 10px;
        --guide-program-height: 56px;
        --guide-lane-step: 64px;
    }
}

.route-programs .program-dialog .dialog-actions--single {
    grid-template-columns: minmax(0, 1fr);
}

.route-programs .program-dialog .dialog-meta-item--wide {
    grid-column: 1 / -1;
}

/* Signale sobrement les émissions dont l'API fournit un contenu détaillé. */
.route-radio-show .schedule-program-link {
    display: block;
    width: fit-content;
    max-width: 100%;
}

.route-radio-show .schedule-more-label {
    display: flex;
    align-items: center;
    gap: 5px;
    width: fit-content;
    margin-top: 4px;
    color: var(--live);
    font-size: 11px;
    font-weight: 400;
    line-height: 1.2;
}

.route-radio-show .schedule-program-link .schedule-more-indicator {
    position: relative;
    display: block;
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
    margin: 0;
    border: 1px solid color-mix(in srgb, var(--live) 70%, var(--line));
    border-radius: 999px;
    background: color-mix(in srgb, var(--live) 12%, var(--surface));
    color: var(--live);
}

.route-radio-show .schedule-more-indicator::before,
.route-radio-show .schedule-more-indicator::after {
    position: absolute;
    top: 50%;
    left: 50%;
    border-radius: 999px;
    background: currentColor;
    content: "";
    transform: translate(-50%, -50%);
}

.route-radio-show .schedule-more-indicator::before {
    width: 6px;
    height: 2px;
}

.route-radio-show .schedule-more-indicator::after {
    width: 2px;
    height: 6px;
}

.route-radio-show .schedule-program-link:hover .schedule-more-label {
    text-decoration: underline;
    text-underline-offset: 2px;
}

@media (forced-colors: active) {
    .route-radio-show .schedule-program-link .schedule-more-indicator {
        border-color: ButtonText;
        background: Canvas;
        color: ButtonText;
    }
}
/* Le compteur API de mentions J’aime est informatif, pas une action locale. */
.route-radio-show .engagement-btn--static {
    cursor: default;
}

.route-radio-show .engagement-btn--static:hover {
    border-color: var(--line);
    background: var(--surface);
    color: var(--text);
    transform: none;
}

/* Le bouton remplace uniquement le texte reconnu, sans modifier sa géométrie. */
.song-title-link {
    max-width: 100%;
    margin: 0;
    padding: 0 !important;
    overflow: hidden;
    border: 0 !important;
    background: transparent !important;
    color: inherit;
    font: inherit;
    font-weight: inherit;
    line-height: inherit;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Garde le titre courant reconnu visiblement interactif dans le lecteur compact. */
.route-radio-show .player-nowplaying-copy .song-title-link {
    padding-bottom: 2px !important;
    text-decoration-line: underline !important;
    text-decoration-color: currentColor !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 2px !important;
}

/* La page musique possède déjà ce composant dans sa feuille compilée. */
.route-radio-show .track-dialog {
    width: min(94vw, 590px);
    max-width: 590px;
    max-height: calc(100dvh - 24px);
    padding: 0;
    overflow: visible;
    border: 0;
    border-radius: 30px;
    background: transparent;
    color: var(--text);
}

.route-radio-show .track-dialog::backdrop {
    background: rgba(4, 7, 12, .68);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}

.route-radio-show .track-dialog-card {
    position: relative;
    margin: 0;
    padding: 26px;
    border: 1px solid var(--line);
    border-radius: 29px;
    background: linear-gradient(155deg, var(--surface), color-mix(in srgb, var(--surface-2) 88%, var(--surface)));
    box-shadow: 0 30px 100px rgba(0, 0, 0, .38);
}

.route-radio-show .track-dialog-close {
    position: absolute;
    z-index: 2;
    top: 16px;
    right: 16px;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface-2);
    color: var(--text);
    display: grid;
    place-items: center;
    cursor: pointer;
}

.route-radio-show .track-dialog-close svg {
    width: 22px;
    height: 22px;
}

.route-radio-show .track-dialog-heading {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 17px;
    align-items: center;
    padding-right: 48px;
}

.route-radio-show .track-dialog-cover {
    position: relative;
    isolation: isolate;
    width: 82px;
    height: 82px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 22px;
    background: var(--surface-2);
    color: var(--text);
    display: grid;
    place-items: center;
    font-size: 29px;
    font-weight: 850;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .2);
}

.route-radio-show .track-dialog-cover img {
    position: absolute;
    z-index: 1;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.route-radio-show .track-dialog-copy {
    min-width: 0;
}

.route-radio-show .track-dialog-copy > span {
    display: block;
    color: var(--brand);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.route-radio-show .track-dialog-copy h2 {
    margin: 7px 0 0;
    overflow: hidden;
    font-size: 28px;
    line-height: 1.08;
    letter-spacing: -.035em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.route-radio-show .track-dialog-copy p {
    margin: 6px 0 0;
    overflow: hidden;
    color: var(--muted);
    font-size: 16px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.route-radio-show .track-dialog-label {
    margin: 23px 0 11px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 760;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.route-radio-show .track-dialog-platforms {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.route-radio-show .track-dialog-platforms a {
    position: relative;
    min-height: 68px;
    padding: 11px 38px 11px 13px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: color-mix(in srgb, var(--surface-2) 82%, transparent);
    color: inherit;
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    transition: transform .16s ease, background .16s ease, border-color .16s ease;
}

.route-radio-show .track-dialog-platforms a::after {
    content: "↗";
    position: absolute;
    top: 10px;
    right: 12px;
    color: var(--faint);
    font-size: 12px;
}

.route-radio-show .track-dialog-platforms a:hover {
    border-color: color-mix(in srgb, var(--text) 22%, var(--line));
    background: var(--surface-2);
    transform: translateY(-2px);
}

.route-radio-show .track-dialog-platforms .platform-mark {
    width: 40px;
    height: 40px;
    border-radius: 13px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    font-size: 21px;
    font-weight: 800;
}

.route-radio-show .track-dialog-platforms .platform-mark svg {
    width: 24px;
    height: 24px;
}

.route-radio-show .track-dialog-platforms .platform-copy,
.route-radio-show .track-dialog-platforms strong,
.route-radio-show .track-dialog-platforms small {
    display: block;
}

.route-radio-show .track-dialog-platforms .platform-copy {
    min-width: 0;
}

.route-radio-show .track-dialog-platforms strong {
    overflow: hidden;
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.route-radio-show .track-dialog-platforms small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 11px;
}

.route-radio-show .platform-mark.youtube,
.route-radio-show .platform-mark.youtube-music {
    background: #ff0033;
    color: #fff;
}

.route-radio-show .platform-mark.spotify {
    background: #1ed760;
    color: #07120b;
}

.route-radio-show .platform-mark.amazon {
    background: #111827;
    color: #fff;
    font-family: Georgia, serif;
    font-size: 24px;
}

.route-radio-show .platform-mark.apple {
    background: linear-gradient(145deg, #ff4f86, #8f5cff);
    color: #fff;
}

body.track-dialog-open {
    overflow: hidden;
}

@media (max-width: 560px) {
    .route-radio-show .track-dialog {
        width: calc(100vw - 18px);
        margin: auto auto 9px;
    }

    .route-radio-show .track-dialog-card {
        padding: 21px 16px calc(17px + env(safe-area-inset-bottom));
        border-radius: 26px;
    }

    .route-radio-show .track-dialog-heading {
        grid-template-columns: 68px minmax(0, 1fr);
        gap: 13px;
        padding-right: 42px;
    }

    .route-radio-show .track-dialog-cover {
        width: 68px;
        height: 68px;
        border-radius: 19px;
    }

    .route-radio-show .track-dialog-copy h2 {
        font-size: 23px;
    }

    .route-radio-show .track-dialog-copy p {
        font-size: 14px;
    }

    .route-radio-show .track-dialog-platforms {
        grid-template-columns: minmax(0, 1fr);
    }

    .route-radio-show .track-dialog-platforms a {
        min-height: 62px;
    }
}

.route-episode-show .episode-article.episode-article--single-column {
    grid-template-columns: minmax(0, 1fr) !important;
}

.route-episode-show .episode-article.episode-article--single-column > section {
    grid-column: 1 !important;
    grid-row: auto !important;
    width: 100% !important;
    padding-left: 0 !important;
    border-left: 0 !important;
}

.route-episode-show .episode-article.episode-article--single-column > section:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
    border-top: 0 !important;
}

.route-episode-show .episode-article.episode-article--single-column > section + section {
    margin-top: 25px !important;
    padding-top: 23px !important;
    border-top: 1px solid var(--line) !important;
}

/* Tous les titres du morceau courant restent soulignés, même sans lien de plateforme. */
.route-radio-show .player-nowplaying-copy > strong {
    text-decoration-line: underline;
    text-decoration-color: currentColor;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}


.podcast-related-frame,
.radio-related-frame {
    display: block;
    min-width: 0;
    min-height: 1px;
}

/* L’auteur suit le titre ; les catégories restent un repère éditorial discret. */
.route-podcast-show .podcast-hero-copy > .podcast-host {
    margin: 11px 0 0 !important;
    color: var(--text) !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
}

.route-podcast-show .podcast-hero-copy > a.podcast-host {
    width: fit-content !important;
    text-decoration-line: underline !important;
    text-decoration-color: currentColor !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 4px !important;
}

.route-podcast-show .podcast-hero-copy > .podcast-category-links {
    width: 100% !important;
    margin: 10px 0 0 !important;
    padding: 0 !important;
    justify-content: flex-start !important;
    gap: 14px !important;
}

.route-podcast-show .podcast-hero-copy > .podcast-category-links > .category-link {
    display: inline-flex !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--muted) !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    text-align: left !important;
    text-decoration: none !important;
}

.route-podcast-show .podcast-hero-copy > .podcast-category-links > .category-link::before {
    content: '' !important;
    width: 6px !important;
    height: 6px !important;
    border-radius: 999px !important;
    background: var(--live) !important;
    flex: 0 0 auto !important;
}

.route-podcast-show .podcast-hero-copy > .podcast-category-links > .category-link:hover,
.route-podcast-show .podcast-hero-copy > .podcast-category-links > .category-link:focus-visible {
    border-color: transparent !important;
    background: transparent !important;
    color: var(--text) !important;
    text-decoration: underline !important;
    text-underline-offset: 4px !important;
}

.route-podcast-show .podcast-hero-copy > .podcast-category-links > .category-separator {
    display: none !important;
}

@media (max-width: 760px) {
    .route-podcast-show .podcast-hero-copy > .podcast-host {
        display: block !important;
    }

    .route-podcast-show .podcast-hero-copy > .podcast-category-links {
        margin-top: 4px !important;
    }

    .route-podcast-show .podcast-hero-copy > .podcast-category-links > .category-link {
        min-height: 32px !important;
    }

    .podcast-page .podcast-station-engagement {
        margin-top: 8px !important;
    }
}

.episode-detail-actions:not(.podcast-engagement-actions) {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    width: auto !important;
}

.episode-detail-actions:not(.podcast-engagement-actions) .engagement-btn {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 44px !important;
}

/* Podcast and episode actions share the compact controls. */
.route-podcast-show .podcast-hero-content {
    min-width: 0;
}

.podcast-page .podcast-station-engagement {
    width: 100%;
    container-name: podcast-actions !important;
    container-type: inline-size !important;
}

.podcast-page .podcast-station-engagement .podcast-engagement-actions {
    display: inline-flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    width: max-content !important;
    max-width: 100%;
    margin-top: 0 !important;
    padding: 0 !important;
    gap: 8px !important;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.podcast-page .podcast-station-engagement .podcast-engagement-actions .engagement-btn {
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    padding: 0 15px !important;
    border: 1px solid var(--line) !important;
    border-radius: 999px !important;
    gap: 8px !important;
    background: var(--surface) !important;
    color: var(--text) !important;
    box-shadow: none !important;
    overflow: visible !important;
    font-size: 14px !important;
    font-weight: 650 !important;
    line-height: 1 !important;
    transition: background-color .14s ease, border-color .14s ease, color .14s ease;
}

.podcast-page .podcast-station-engagement .podcast-engagement-actions .engagement-btn:hover {
    border-color: color-mix(in srgb, var(--text) 24%, var(--line)) !important;
    background: var(--surface-2) !important;
    color: var(--text) !important;
    transform: none !important;
    box-shadow: none !important;
}

.podcast-page .podcast-station-engagement .podcast-engagement-actions .engagement-btn:focus-visible {
    outline: 2px solid var(--focus, currentColor);
    outline-offset: 2px;
}

.podcast-page .podcast-station-engagement .podcast-engagement-actions .engagement-btn > svg,
.podcast-page .podcast-station-engagement .podcast-engagement-actions [data-favorite-icon] {
    box-sizing: border-box !important;
    display: block !important;
    flex: 0 0 19px !important;
    width: 19px !important;
    height: 19px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: currentColor;
    transform: none !important;
}

.podcast-page .podcast-station-engagement .podcast-engagement-actions .engagement-btn > .podcast-action-label {
    position: static !important;
    width: auto !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    clip: auto !important;
    clip-path: none !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.podcast-page .podcast-station-engagement .podcast-engagement-actions .engagement-btn > .podcast-action-label--desktop {
    display: inline-block !important;
}

.podcast-page .podcast-station-engagement .podcast-engagement-actions .engagement-btn > .podcast-action-label--mobile {
    display: none !important;
}

.podcast-page .podcast-station-engagement .podcast-engagement-actions .podcast-follow-button[aria-pressed="true"] {
    border-color: color-mix(in srgb, var(--text) 24%, var(--line)) !important;
    background: var(--surface-2) !important;
    color: var(--text) !important;
}

.podcast-page .podcast-station-engagement .podcast-engagement-actions .share-button,
.podcast-page .podcast-station-engagement .podcast-engagement-actions .share-button:hover {
    border-color: var(--text) !important;
    background: var(--text) !important;
    color: var(--surface) !important;
}

.podcast-page .podcast-station-engagement .podcast-engagement-actions .share-button:hover {
    border-color: color-mix(in srgb, var(--text) 86%, var(--surface)) !important;
    background: color-mix(in srgb, var(--text) 86%, var(--surface)) !important;
}

@media (max-width: 760px) {
    .route-podcast-show .podcast-hero-content {
        display: contents;
    }

    .route-podcast-show .podcast-hero-content > .podcast-hero-copy {
        grid-column: 2;
        min-width: 0;
    }

    .route-podcast-show .podcast-hero-content > .podcast-station-engagement {
        grid-column: 1 / -1;
        width: 100%;
        min-width: 0;
        margin-top: 0 !important;
    }

    .podcast-page .podcast-station-engagement .podcast-engagement-actions {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        width: 100% !important;
        gap: 6px !important;
    }

    .podcast-page .podcast-station-engagement .podcast-engagement-actions .engagement-btn {
        width: 100% !important;
        min-width: 0 !important;
        height: 48px !important;
        min-height: 48px !important;
        max-height: 48px !important;
        padding: 0 12px !important;
        gap: 8px !important;
        font-size: 14px !important;
    }

    .podcast-page .podcast-station-engagement .podcast-engagement-actions .engagement-btn > .podcast-action-label--desktop {
        display: none !important;
    }

    .podcast-page .podcast-station-engagement .podcast-engagement-actions .engagement-btn > .podcast-action-label--mobile {
        display: inline-block !important;
        font-size: 14px !important;
        font-weight: 650 !important;
        line-height: 1 !important;
    }

    .podcast-page .podcast-station-engagement .podcast-engagement-actions .engagement-btn > svg,
    .podcast-page .podcast-station-engagement .podcast-engagement-actions [data-favorite-icon] {
        flex-basis: 20px !important;
        width: 20px !important;
        height: 20px !important;
    }
}

@media (max-width: 390px) {
    .podcast-page .podcast-station-engagement .podcast-engagement-actions {
        gap: 5px !important;
    }

    .podcast-page .podcast-station-engagement .podcast-engagement-actions .engagement-btn {
        padding: 0 8px !important;
        gap: 7px !important;
        font-size: 14px !important;
    }
}

@container podcast-actions (max-width: 640px) {
    .podcast-page .podcast-station-engagement .podcast-engagement-actions {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        width: 100% !important;
        gap: 6px !important;
    }

    .podcast-page .podcast-station-engagement .podcast-engagement-actions .engagement-btn {
        width: 100% !important;
        min-width: 0 !important;
        padding: 0 12px !important;
    }

    .podcast-page .podcast-station-engagement .podcast-engagement-actions .engagement-btn > .podcast-action-label--desktop {
        display: none !important;
    }

    .podcast-page .podcast-station-engagement .podcast-engagement-actions .engagement-btn > .podcast-action-label--mobile {
        display: inline-block !important;
        font-size: 14px !important;
        font-weight: 650 !important;
        line-height: 1 !important;
    }
}

.route-episode-show .podcast-page .episode-station-engagement .podcast-engagement-actions,
.podcast-page .podcast-station-engagement .podcast-engagement-actions--full {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: none !important;
    gap: 6px !important;
}

.route-episode-show .podcast-page .episode-station-engagement .podcast-engagement-actions .engagement-btn,
.podcast-page .podcast-station-engagement .podcast-engagement-actions--full .engagement-btn {
    width: 100% !important;
    min-width: 0 !important;
}

.route-episode-show .podcast-page .episode-station-engagement .podcast-engagement-actions--single,
.podcast-page .podcast-station-engagement .podcast-engagement-actions--full.podcast-engagement-actions--single {
    grid-template-columns: minmax(0, 1fr) !important;
}

.route-podcast-show .podcast-hero-main {
    align-items: start !important;
}

.route-episode-show .episode-detail-head {
    grid-template-rows: auto auto;
    align-items: start !important;
    row-gap: 14px;
}

.route-episode-show .episode-mobile-back {
    display: none;
}

.route-episode-show .episode-detail-cover {
    grid-column: 1;
    grid-row: 1 / span 2;
}

.route-episode-show .episode-detail-copy {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
}

.route-episode-show .episode-station-engagement {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    min-width: 0;
    width: 100%;
    margin-top: 0;
}

.route-episode-show .episode-detail-head--without-cover .episode-detail-copy,
.route-episode-show .episode-detail-head--without-cover .episode-station-engagement {
    grid-column: 1;
}

/* Keep the episode summary compact across the tablet shell breakpoint. */
@media (min-width: 761px) and (max-width: 980px) {
    .route-episode-show .episode-detail-head {
        grid-template-rows: auto auto;
        align-items: start !important;
        column-gap: 22px !important;
        row-gap: 14px !important;
    }

    .route-episode-show .episode-detail-cover {
        grid-column: 1;
        grid-row: 1 / span 2;
    }

    .route-episode-show .episode-detail-copy {
        grid-column: 2;
        grid-row: 1;
        align-self: start;
    }

    .route-episode-show .episode-station-engagement {
        grid-column: 2;
        grid-row: 2;
        align-self: start;
        width: 100%;
        margin-top: 0;
    }
}

@media (max-width: 760px) {
    .route-episode-show .episode-mobile-back {
        display: inline-flex !important;
        grid-column: 1 !important;
        grid-row: 2 !important;
        align-items: center;
        gap: 8px;
        justify-self: start;
        min-width: 0;
        width: auto;
        max-width: 100%;
        height: 44px;
        padding: 0 4px;
        border-radius: 999px;
        color: var(--text);
        line-height: 1;
    }

    .route-episode-show .episode-mobile-back-icon {
        flex: 0 0 auto;
        font-size: 20px;
        line-height: 1;
    }

    .route-episode-show .episode-mobile-back-label {
        min-width: 0;
        overflow: hidden;
        color: var(--muted);
        font-size: 13px;
        font-weight: 650;
        line-height: 1.2;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .route-episode-show .content-crumbs-bar {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 8px 10px !important;
        margin-bottom: 6px !important;
    }

    .route-episode-show .content-crumbs-bar .content-crumbs {
        grid-column: 1 / -1 !important;
    }

    .route-episode-show .content-crumbs-bar .crumb-app-link {
        grid-column: 2 !important;
        grid-row: 2 !important;
        justify-self: end !important;
    }

    .route-episode-show .episode-mobile-back:hover {
        background: var(--surface-2);
    }

    .route-episode-show .episode-detail-cover {
        grid-column: 1;
        grid-row: 1;
    }

    .route-episode-show .episode-station-engagement {
        grid-column: 1 / -1;
        grid-row: 2;
        align-self: stretch;
        width: 100%;
        margin-top: 0;
    }

    .route-episode-show .podcast-engagement-actions--single {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

@container podcast-actions (max-width: 640px) {
    .route-episode-show .podcast-engagement-actions--single {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

.podcast-list .podcast-row-copy > .podcast-host {
    color: var(--text) !important;
}

@media (max-width: 760px) {
    .episode-detail-actions:not(.podcast-engagement-actions) {
        display: flex !important;
        width: auto !important;
    }

    .episode-detail-actions:not(.podcast-engagement-actions) .engagement-btn {
        width: auto !important;
        min-height: 44px !important;
        height: auto !important;
        padding: 10px 12px !important;
    }

    .episode-detail-actions:not(.podcast-engagement-actions) .engagement-btn > span {
        position: static !important;
        display: inline-block !important;
        width: auto !important;
        height: auto !important;
        padding: 0 !important;
        margin: 0 !important;
        overflow: visible !important;
        clip: auto !important;
        clip-path: none !important;
        white-space: nowrap !important;
        border: 0 !important;
    }

    .podcast-list .podcast-row {
        align-items: start !important;
        min-height: 0 !important;
        height: auto !important;
    }

    .podcast-list .podcast-row-copy {
        display: grid !important;
        align-content: start !important;
        gap: 4px !important;
        padding: 0 !important;
    }

    .podcast-list .podcast-row-copy h2,
    .podcast-list .podcast-row-copy h3,
    .podcast-list .podcast-row-copy > p {
        margin: 0 !important;
    }

    .podcast-list .podcast-row-copy > p {
        display: block !important;
        overflow: hidden !important;
        font-size: 13px !important;
        line-height: 1.35 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        -webkit-line-clamp: unset !important;
    }
}

/* Les cartes tactiles utilisent leurs liens natifs sur toute leur surface. */
@media (hover: none), (pointer: coarse) {
    :is(a[href], button, [role="button"], [role="link"], summary, label[for]) {
        touch-action: manipulation;
    }

    input[type="range"] {
        touch-action: pan-x;
    }

    :is(.podcast-row, .episode-row, .library-row) {
        position: relative;
    }

    .podcast-row-copy h2 > a::after,
    .episode-copy h3 > a::after,
    .library-copy::after {
        content: "";
        position: absolute;
        z-index: 1;
        inset: 0;
    }

    :is(.podcast-row-cover, .podcast-row-favorite, .episode-play, .library-thumb, .library-favorite-action) {
        position: relative !important;
        z-index: 2 !important;
    }

    .podcast-row:hover {
        border-color: var(--line) !important;
        background: var(--surface) !important;
        transform: none !important;
    }

    .podcast-row-copy h2 > a:hover {
        color: inherit !important;
    }

    .library-row:hover {
        border-color: transparent !important;
        background: transparent !important;
    }

    :is(.podcast-row, .episode-row, .library-row):active {
        background: var(--surface-2) !important;
    }
}

@media (max-width: 760px) {
    .route-radio-show .content-crumbs-bar {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
    }

    .route-radio-show .content-crumbs-bar .content-crumbs {
        grid-column: 1 / -1 !important;
    }

    .route-radio-show .content-crumbs-bar .crumb-app-link {
        grid-column: 2 !important;
        justify-self: end !important;
    }
}

.route-radio-show .station-podcasts-section {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

@media (min-width: 761px) {
    .route-radio-show .station-podcast-description--clamped {
        position: relative;
        max-height: 5.2em;
        overflow: hidden;
        line-height: 1.3;
    }

    .route-radio-show .station-podcast-description--clamped::after {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        height: 2.4em;
        background: linear-gradient(to bottom, transparent, var(--surface));
        content: "";
        pointer-events: none;
    }
}

.route-radio-show .frequencies-items,
.route-radio-show .frequency-item {
    display: inline;
}

.route-radio-show .frequency-item + .frequency-item::before {
    content: " · ";
}

.route-radio-show .frequencies-list.is-collapsible:not(.is-expanded) .frequency-item--extra {
    display: none;
}

.route-radio-show .frequencies-list.is-collapsible:not(.is-expanded) .frequencies-items {
    position: relative;
    display: block;
}

.route-radio-show .frequencies-list.is-collapsible:not(.is-expanded) .frequencies-items::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 2.6em;
    background: linear-gradient(to bottom, transparent, var(--surface));
    content: "";
    pointer-events: none;
}

.route-radio-show .frequencies-toggle {
    display: flex;
    width: fit-content;
    align-items: center;
    min-height: 44px;
    margin-top: 6px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--text);
    cursor: pointer;
    font-size: 13px;
    font-weight: 720;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.route-radio-show .frequencies-toggle-less,
.route-radio-show .frequencies-toggle[aria-expanded="true"] .frequencies-toggle-more {
    display: none;
}

.route-radio-show .frequencies-toggle[aria-expanded="true"] .frequencies-toggle-less {
    display: inline;
}

/* V247 widget formats backed by real station data. */
.route-widgets .widget-type-tabs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.route-widgets .widget-preview-shell > iframe {
    height: var(--widget-preview-height, 240px);
}

.route-widgets .widget-radio-result-logo,
.wd-logo,
.wd-art,
.wd-list-art,
.wd-powered-flag {
    overflow: hidden;
}

.route-widgets .widget-radio-result-logo img,
.wd-logo img,
.wd-art img,
.wd-list-art img,
.wd-powered-flag img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wd-powered-flag {
    background: transparent;
}

.widget-embed-state {
    padding: 18px 16px;
    color: var(--w-secondary);
    font-size: 12px;
    line-height: 1.5;
    text-align: center;
}

@media (max-width: 1180px) {
    .route-widgets .widget-type-tabs {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .route-widgets .widget-type-tabs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .route-widgets .widget-type-tabs {
        display: flex;
    }
}

/* Presenter profiles use only normalized Radio API data. */
.route-radio-show .radio-host-list,
.route-radio-show .radio-host-more-list {
    display: grid;
    gap: 7px;
}

.route-radio-show .radio-host-link {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    min-height: 44px;
    padding: 5px 9px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface-2, var(--paper));
    color: var(--text, var(--ink));
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
}

.route-radio-show .radio-host-link:hover {
    border-color: var(--faint, var(--muted));
}

.route-radio-show .radio-host-link--static:hover {
    border-color: var(--line);
}

.route-radio-show .radio-host-avatar {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    overflow: hidden;
    border-radius: 10px;
    background: var(--surface-3, var(--line));
    color: var(--text, var(--ink));
    font-size: 11px;
    font-weight: 800;
}

.route-radio-show .radio-host-avatar img,
.route-host-show .host-profile-avatar img {
    object-fit: cover;
}

.route-radio-show .radio-host-more {
    display: grid;
    margin-top: 1px;
}

.route-radio-show .radio-host-more summary {
    display: flex;
    align-items: center;
    min-height: 44px;
    color: var(--muted);
    cursor: pointer;
    font-size: 12px;
    font-weight: 650;
    list-style-position: inside;
}

.route-radio-show .radio-host-more-label--less {
    display: none;
}

.route-radio-show .radio-host-more[open] .radio-host-more-label--more {
    display: none;
}

.route-radio-show .radio-host-more[open] .radio-host-more-label--less {
    display: inline;
}

.route-radio-show .radio-host-more[open] summary {
    order: 2;
}

.route-radio-show .radio-host-more[open] .radio-host-more-list {
    order: 1;
}

.route-radio-show .radio-host-more-list {
    padding-top: 6px;
}

.route-program-show .program-detail-hosts a {
    color: inherit;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.route-host-show .host-profile-page {
    display: grid;
    width: min(100%, 1120px);
    margin: 0 auto;
    gap: 18px;
}

.route-host-show .host-profile-hero,
.route-host-show .host-profile-section {
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--surface, var(--sheet));
}

.route-host-show .host-profile-hero {
    display: grid;
    grid-template-columns: 148px minmax(0, 1fr);
    align-items: center;
    gap: 26px;
    padding: 26px;
}

.route-host-show .host-profile-avatar {
    display: grid;
    width: 148px;
    height: 148px;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 24px;
    background: var(--surface-2, var(--paper));
    color: var(--text, var(--ink));
    font-size: 40px;
    font-weight: 850;
}

.route-host-show .host-profile-heading {
    min-width: 0;
}

.route-host-show .host-profile-station,
.route-host-show .host-profile-description {
    margin: 0;
}

.route-host-show .host-profile-station a {
    color: var(--muted);
    font-size: 14px;
    font-weight: 720;
}

.route-host-show .host-profile-heading h1 {
    margin: 5px 0 0;
    font-size: clamp(36px, 6vw, 66px);
    line-height: 1.02;
    letter-spacing: -.05em;
}

.route-host-show .host-profile-description {
    max-width: 800px;
    margin-top: 14px;
    color: var(--muted);
    line-height: 1.62;
}

.route-host-show .host-profile-section {
    padding: 22px;
}

.route-host-show .host-profile-section-heading > span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 760;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.route-host-show .host-profile-section-heading h2 {
    margin: 4px 0 17px;
    font-size: clamp(23px, 3vw, 32px);
    letter-spacing: -.035em;
}

.route-host-show .host-profile-programs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.route-host-show .host-profile-program {
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--surface-2, var(--paper));
}

.route-host-show .host-profile-program h3,
.route-host-show .host-profile-program p {
    margin: 0;
}

.route-host-show .host-profile-program h3 {
    font-size: 17px;
    line-height: 1.3;
}

.route-host-show .host-profile-program h3 a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.route-host-show .host-profile-program p {
    margin-top: 8px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}

.route-host-show .host-profile-schedules {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 12px;
}

.route-host-show .host-profile-schedules span {
    padding: 6px 9px;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    font-size: 11px;
    font-variant-numeric: tabular-nums;
}

.route-host-show .host-profile-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.route-host-show .site-footer {
    margin-top: 30px;
}

.route-host-show .host-profile-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 46px;
    padding: 0 17px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface, var(--sheet));
    color: var(--text, var(--ink));
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
}

.route-host-show .host-profile-action svg {
    width: 18px;
    height: 18px;
}

.route-host-show .host-profile-action--listen {
    border-color: var(--text, var(--ink));
    background: var(--text, var(--ink));
    color: var(--surface, var(--sheet));
}

.route-host-show .host-profile-action:hover {
    transform: translateY(-1px);
}

.route-host-show .host-profile-action:active {
    transform: translateY(0);
}

.route-radio-show .radio-host-link:focus-visible,
.route-radio-show .radio-host-more summary:focus-visible,
.route-host-show .host-profile-action:focus-visible,
.route-host-show a:focus-visible {
    outline: 3px solid var(--focus, var(--text, var(--ink)));
    outline-offset: 3px;
}

@media (max-width: 760px) {
    .route-host-show .site-footer {
        margin-top: 24px;
    }

    .route-host-show .host-profile-hero {
        grid-template-columns: 92px minmax(0, 1fr);
        align-items: start;
        gap: 15px;
        padding: 17px;
    }

    .route-host-show .host-profile-avatar {
        width: 92px;
        height: 92px;
        border-radius: 18px;
        font-size: 27px;
    }

    .route-host-show .host-profile-heading h1 {
        font-size: clamp(30px, 9vw, 44px);
    }

    .route-host-show .host-profile-description {
        grid-column: 1 / -1;
    }

    .route-host-show .host-profile-section {
        padding: 16px;
        border-radius: 18px;
    }

    .route-host-show .host-profile-programs {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 520px) {
    .route-host-show .host-profile-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .route-host-show .host-profile-action {
        width: 100%;
    }
}

@media (max-width: 760px) {
    .podcast-page .podcast-station-engagement .podcast-engagement-actions .podcast-follow-button [data-favorite-icon] {
        transform: translateY(-1px) !important;
    }
}

@media (max-width: 390px) {
    .route-host-show .host-profile-hero {
        grid-template-columns: 72px minmax(0, 1fr);
        gap: 12px;
        padding: 14px;
    }

    .route-host-show .host-profile-avatar {
        width: 72px;
        height: 72px;
        border-radius: 15px;
        font-size: 21px;
    }

    .route-host-show .host-profile-description {
        grid-column: 1 / -1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .route-host-show .host-profile-action {
        transition: none;
    }
}

@media (forced-colors: active) {
    .route-radio-show .radio-host-link,
    .route-host-show .host-profile-hero,
    .route-host-show .host-profile-section,
    .route-host-show .host-profile-program,
    .route-host-show .host-profile-action {
        border-color: ButtonText;
    }
}

/* Keep the keyboard selection ring inside the scrollable autocomplete row. */
.header-autocomplete-item:focus-visible {
    outline: none;
    background: color-mix(in srgb, var(--blue, #5278c7) 12%, var(--surface-2));
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--blue, #5278c7) 82%, white 18%);
}

.header-autocomplete-item:focus-visible .header-autocomplete-copy strong {
    color: var(--blue, #5278c7);
}

@supports not (color: color-mix(in srgb, black, white)) {
    .header-autocomplete-item:focus-visible {
        background: var(--surface-2);
        box-shadow: inset 0 0 0 2px #5278c7;
    }
}

@media (forced-colors: active) {
    .header-autocomplete-item:focus-visible {
        outline: 2px solid Highlight;
        outline-offset: -2px;
        box-shadow: none;
    }
}


/* Compact initials used only by city and region directory cards. */
.country-site-flag--monogram {
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 15px;
    font-weight: 760;
    line-height: 1;
    letter-spacing: .055em;
    color: var(--text);
    background: color-mix(in srgb, var(--surface-2) 84%, var(--surface));
    border-color: color-mix(in srgb, var(--text) 18%, var(--line));
    box-shadow: inset 0 1px 0 color-mix(in srgb, white 10%, transparent);
}

@supports not (color: color-mix(in srgb, black, white)) {
    .country-site-flag--monogram {
        background: var(--surface-2);
        border-color: var(--line);
    }
}

@media (max-width: 440px) {
    .country-site-flag--monogram {
        font-size: 14px;
        letter-spacing: .045em;
    }
}

/* Localized episode date and duration metadata. */
.episode-topline.episode-topline--metadata {
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 12px;
}

.episode-meta-separator {
    color: var(--faint);
}

/* Episode metadata is informational text, not a set of controls. */
.route-episode-show .episode-detail-meta {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    color: var(--muted) !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
}

.route-episode-show .episode-detail-meta > span,
.route-episode-show .episode-detail-meta > span:nth-child(n+3) {
    display: inline !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: inherit !important;
    font: inherit !important;
    font-weight: 500 !important;
}

/* API-only France airplay chart. The protected v247 music geometry stays unchanged. */
.route-music .music-genres {
    align-items: center;
    margin: 2px 0 14px;
    padding-bottom: 2px;
}

.route-music .music-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.route-music .music-chart-context {
    margin: 0 0 14px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}

.route-music .music-chart-context p {
    margin: 0;
}

.route-music .music-chart-context .music-chart-coverage {
    margin-top: 5px;
    color: var(--faint);
}

/* Keep every API ranking item on the single row expected by the v247 chart. */
.route-music .music-ranking-row {
    grid-template-columns: 28px 52px minmax(0, 1fr) auto !important;
    grid-template-rows: minmax(52px, auto) !important;
    column-gap: 12px !important;
    row-gap: 0 !important;
}

.route-music .music-track-platform-trigger {
    appearance: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    cursor: pointer;
}

.route-music .music-track-platform-trigger:focus-visible {
    outline: 2px solid var(--text);
    outline-offset: 3px;
}

.route-music .music-track-platform-title {
    display: block;
    max-width: 100%;
    text-align: left;
}

.route-music .music-ranking-row > .chart-rank,
.route-music .music-ranking-row > .chart-cover,
.route-music .music-ranking-row > .chart-copy,
.route-music .music-ranking-row > .chart-trend {
    grid-row: 1 !important;
    align-self: center;
}

.route-music .music-ranking-row > .chart-rank {
    grid-column: 1 !important;
}

.route-music .music-ranking-row > .chart-cover {
    grid-column: 2 !important;
    border: 1px solid var(--line);
    background: var(--surface-2);
    color: var(--text);
    box-shadow: none;
}

.route-music .music-ranking-row > .chart-copy {
    grid-column: 3 !important;
    min-width: 0;
}

.route-music .music-ranking-row > .chart-trend {
    grid-column: 4 !important;
}

.route-music .music-ranking-row > .chart-copy b,
.route-music .music-ranking-row > .chart-copy span,
.route-music .music-ranking-row > .chart-copy small {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.route-music .chart-trend--up {
    color: var(--green) !important;
}

.route-music .chart-trend--down {
    color: var(--brand) !important;
}

.route-music .chart-trend--stable,
.route-music .chart-trend--unavailable {
    color: var(--muted) !important;
}

.route-music .chart-trend--new {
    color: var(--blue) !important;
}

@media (max-width: 760px) {
    .route-music .music-chart-context {
        font-size: 12px;
    }

    .route-music .music-ranking-row {
        grid-template-columns: 24px 46px minmax(0, 1fr) auto !important;
        grid-template-rows: minmax(46px, auto) !important;
        column-gap: 10px !important;
    }
}

/* API-only current-track feed, loaded after the page so the ranking stays fast. */
.route-music .music-live-feed-section {
    min-width: 0;
}

.route-music .music-live-feed-head {
    display: grid;
    align-items: flex-start;
    gap: 9px;
}

.route-music .music-live-feed-status {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 7px;
    min-height: 28px;
    margin: 1px 0 0;
    padding: 0 10px;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    background: var(--surface);
    font-size: 11px;
    font-weight: 680;
    white-space: nowrap;
    justify-self: start;
}

.route-music .music-live-feed-status.is-error {
    color: var(--muted);
}

.route-music .music-live-feed-status.is-partial {
    color: var(--live);
}

.route-music .music-live-feed-pulse {
    width: 8px;
    height: 8px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--live);
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--live) 36%, transparent);
    animation: music-live-feed-pulse 1.8s ease-out infinite;
}

.route-music .music-live-feed-status.is-error .music-live-feed-pulse {
    background: var(--faint);
    animation: none;
}

.route-music .music-live-feed-panel {
    min-width: 0;
    overflow: visible;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.route-music .music-live-feed-list {
    max-height: none;
    margin: 0;
    padding: 0;
    overflow: visible;
    overscroll-behavior: auto;
    list-style: none;
}

.route-music .music-live-feed-item {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    gap: 11px;
    align-items: center;
    min-width: 0;
    min-height: 76px;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
}

.route-music .music-live-feed-item:last-child {
    border-bottom: 0;
}

.route-music .music-live-feed-artwork,
.route-music .music-live-feed-radio-logo {
    position: relative;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    overflow: hidden;
    border: 1px solid var(--line);
    background: var(--surface-2);
    color: var(--text);
    font-weight: 760;
}

.route-music .music-live-feed-artwork {
    width: 48px;
    height: 48px;
    border-radius: 13px;
    font-size: 12px;
}

.route-music .music-live-feed-artwork-trigger {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 13px;
    line-height: 0;
}

.route-music .music-live-feed-radio-logo {
    width: 24px;
    height: 24px;
    border-radius: 7px;
    font-size: 8px;
}

.route-music .music-live-feed-artwork img,
.route-music .music-live-feed-radio-logo img {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
}

.route-music .music-live-feed-artwork img {
    object-fit: cover;
}

.route-music .music-live-feed-radio-logo img {
    object-fit: contain;
}

.route-music .music-live-feed-copy,
.route-music .music-live-feed-copy > .music-live-feed-title,
.route-music .music-live-feed-artist,
.route-music .music-live-feed-station-line,
.route-music .music-live-feed-station,
.route-music .music-live-feed-station > span:last-child {
    min-width: 0;
}

.route-music .music-live-feed-copy {
    display: block;
    overflow: hidden;
}

.route-music .music-live-feed-copy > .music-live-feed-title,
.route-music .music-live-feed-artist {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.route-music .music-live-feed-copy > .music-live-feed-title {
    color: var(--text);
    font-size: 15px;
    line-height: 1.25;
}

.route-music .music-live-feed-artist {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
}

.route-music .music-live-feed-station-line {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 7px;
    color: var(--faint);
    font-size: 11px;
    line-height: 1.25;
}

.route-music .music-live-feed-station {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--muted);
    font-weight: 680;
}

.route-music .music-live-feed-station > span:last-child {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.route-music .music-live-feed-station:hover {
    color: var(--text);
}

.route-music .music-live-feed-station:focus-visible {
    border-radius: 7px;
    outline: 2px solid var(--live);
    outline-offset: 3px;
}

.route-music .music-live-feed-separator {
    color: var(--muted);
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
}

.route-music .music-live-feed-station-line time {
    flex: 0 0 auto;
    white-space: nowrap;
}

.route-music .music-live-feed-live {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 26px;
    padding: 0 8px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--live-soft) 72%, var(--surface));
    color: var(--live);
    font-size: 10px;
    font-weight: 780;
    white-space: nowrap;
}

.route-music .music-live-feed-live > span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
}

.route-music .music-live-feed-state {
    display: grid;
    justify-items: center;
    gap: 8px;
    min-height: 132px;
    padding: 30px 18px;
    color: var(--muted);
    text-align: center;
}

.route-music .music-live-feed-state[hidden] {
    display: none !important;
}

.route-music .music-live-feed-state strong {
    color: var(--text);
}

.route-music .music-live-feed-state p {
    max-width: 520px;
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
}

.route-music .music-live-feed-loader {
    width: 22px;
    height: 22px;
    border: 2px solid var(--line);
    border-top-color: var(--live);
    border-radius: 50%;
    animation: music-live-feed-spin .8s linear infinite;
}

@keyframes music-live-feed-pulse {
    70% {
        box-shadow: 0 0 0 7px transparent;
    }

    100% {
        box-shadow: 0 0 0 0 transparent;
    }
}

@keyframes music-live-feed-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 760px) {
    .route-music .music-live-feed-status {
        max-width: 100%;
        margin-top: 0;
        padding-block: 6px;
        line-height: 1.25;
        white-space: normal;
    }

    .route-music .music-live-feed-panel {
        padding: 0;
    }

    .route-music .music-live-feed-list {
        max-height: none;
        padding: 0;
    }

    .route-music .music-live-feed-item {
        grid-template-columns: 44px minmax(0, 1fr);
        gap: 9px;
        min-height: 70px;
        padding: 11px 0;
    }

    .route-music .music-live-feed-artwork {
        width: 44px;
        height: 44px;
        border-radius: 12px;
    }

    .route-music .music-live-feed-copy > .music-live-feed-title {
        font-size: 14px;
    }

    .route-music .music-live-feed-artwork-trigger {
        width: 44px;
        height: 44px;
        border-radius: 12px;
    }

    .route-music .music-live-feed-station-line {
        display: flex;
        flex-wrap: nowrap;
        gap: 6px;
    }

    .route-music .music-live-feed-separator {
        display: inline;
    }

    .route-music .music-live-feed-station-line time {
        width: auto;
        text-align: left;
        justify-self: auto;
    }

    .route-music .music-live-feed-live {
        display: none;
    }

    .route-music .music-live-feed-live > span {
        width: 7px;
        height: 7px;
    }
}

@media (max-width: 390px) {
    .route-music .music-live-feed-item {
        grid-template-columns: 40px minmax(0, 1fr);
        gap: 8px;
    }

    .route-music .music-live-feed-artwork {
        width: 40px;
        height: 40px;
    }

    .route-music .music-live-feed-artwork-trigger {
        width: 40px;
        height: 40px;
    }

    .route-music .music-live-feed-radio-logo {
        width: 22px;
        height: 22px;
    }

    .route-music .music-live-feed-station-line {
        gap: 5px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .route-music .music-live-feed-pulse,
    .route-music .music-live-feed-loader {
        animation: none;
    }
}

@media (forced-colors: active) {
    .route-music .music-live-feed-pulse,
    .route-music .music-live-feed-live > span {
        forced-color-adjust: none;
        background: Highlight;
    }

    .route-music .music-live-feed-status,
    .route-music .music-live-feed-artwork,
    .route-music .music-live-feed-radio-logo {
        border-color: CanvasText;
    }
}

/* Compact transcript reader with an internal timeline and no page-level jumps. */
.route-episode-show .episode-transcript-search[hidden] {
    display: none !important;
}

.route-episode-show .episode-transcript-section > .site-section-title {
    margin-bottom: 10px;
}

.route-episode-show .episode-transcript-search {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    width: 100%;
    margin: 0 0 12px;
}

.route-episode-show .episode-transcript-search-field {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) 44px;
    align-items: center;
    min-height: 48px;
    padding-left: 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface);
    transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

.route-episode-show .episode-transcript-search-field:focus-within {
    border-color: color-mix(in srgb, var(--live) 72%, var(--line));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--live) 16%, transparent);
}

.route-episode-show .episode-transcript-search-field > svg {
    width: 19px;
    height: 19px;
    color: var(--muted);
}

.route-episode-show [data-transcript-search-input] {
    width: 100%;
    min-width: 0;
    height: 46px;
    padding: 0 11px;
    appearance: none;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--text);
    font-size: 14px;
    font-weight: 400;
}

.route-episode-show [data-transcript-search-input]::-webkit-search-cancel-button {
    display: none;
}

.route-episode-show [data-transcript-search-input]::placeholder {
    color: var(--muted);
    opacity: 1;
}

.route-episode-show .episode-transcript-search-results[hidden] {
    display: none !important;
}

.route-episode-show .episode-transcript-search-clear,
.route-episode-show .episode-transcript-search-navigation button {
    display: inline-grid;
    width: 44px;
    height: 44px;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--text);
    cursor: pointer;
}

.route-episode-show .episode-transcript-search-clear[hidden],
.route-episode-show .episode-transcript-search-navigation button[hidden] {
    display: none;
}

.route-episode-show .episode-transcript-search-clear:hover,
.route-episode-show .episode-transcript-search-navigation button:hover:not(:disabled) {
    background: var(--surface-2);
}

.route-episode-show .episode-transcript-search-clear:focus-visible,
.route-episode-show .episode-transcript-search-navigation button:focus-visible {
    outline: 2px solid var(--live);
    outline-offset: 2px;
}

.route-episode-show .episode-transcript-search-clear svg {
    width: 17px;
    height: 17px;
}

.route-episode-show .episode-transcript-search-results,
.route-episode-show .episode-transcript-search-navigation {
    display: flex;
    align-items: center;
}

.route-episode-show .episode-transcript-search-results {
    gap: 10px;
    min-height: 44px;
}

.route-episode-show [data-transcript-search-count] {
    min-width: max-content;
    color: var(--muted);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
    font-weight: 400;
}

.route-episode-show .episode-transcript-search-navigation {
    gap: 4px;
}

.route-episode-show .episode-transcript-search-navigation button {
    border: 1px solid var(--line);
    font-size: 18px;
    line-height: 1;
}

.route-episode-show .episode-transcript-search-navigation button:disabled {
    cursor: default;
    opacity: .4;
}

.route-episode-show .transcript-search-mark {
    margin: 0 -.02em;
    padding: .05em .14em;
    border-radius: 4px;
    background: color-mix(in srgb, #F6CB56 68%, var(--surface));
    color: #20180A;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}

.route-episode-show .transcript-search-mark.is-active {
    background: var(--live);
    color: #1D0E08;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--live) 22%, transparent);
}

html[data-theme='dark'] .route-episode-show .transcript-search-mark {
    background: color-mix(in srgb, #F6CB56 76%, var(--surface));
    color: #171108;
}

html[data-theme='dark'] .route-episode-show .transcript-search-mark.is-active {
    background: var(--live);
    color: #160B07;
}

.route-episode-show .episode-transcript[data-transcript-scroll] {
    display: block !important;
    align-items: initial !important;
    min-height: 0 !important;
    max-height: min(60vh, 640px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    scrollbar-color: color-mix(in srgb, var(--muted) 58%, transparent) transparent;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scroll-padding-block: 24px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: color-mix(in srgb, var(--surface) 92%, var(--surface-2));
    padding: 12px 8px !important;
}

.route-episode-show .episode-transcript[data-transcript-scroll]:focus-visible {
    outline: 2px solid var(--live);
    outline-offset: 3px;
}

.route-episode-show .episode-transcript--timeline .episode-transcript-fade {
    --transcript-fade-padding-inline: 2px;
    --transcript-row-padding-inline: 4px;
    --transcript-time-column: 40px;
    --transcript-marker-column: 20px;
    --transcript-marker-center-offset: 10px;
    position: relative !important;
    gap: 6px !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 4px var(--transcript-fade-padding-inline) !important;
}

.route-episode-show .episode-transcript--timeline .episode-transcript-fade::before {
    content: '';
    position: absolute;
    z-index: 0;
    top: 28px;
    bottom: 28px;
    left: calc(
        var(--transcript-fade-padding-inline)
        + var(--transcript-row-padding-inline)
        + var(--transcript-time-column)
        + var(--transcript-marker-center-offset)
    );
    width: 2px;
    transform: translateX(-50%);
    border-radius: 999px;
    background: color-mix(in srgb, var(--muted) 32%, var(--line));
}

.route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment {
    position: relative !important;
    z-index: 1;
    display: grid !important;
    grid-template-columns:
        var(--transcript-time-column)
        var(--transcript-marker-column)
        minmax(0, 1fr) !important;
    align-items: start;
    gap: 0;
    width: 100%;
    height: auto !important;
    min-height: 44px;
    overflow: visible;
    appearance: none;
    -webkit-appearance: none;
    background: transparent !important;
    font: inherit;
    font-weight: 400 !important;
    line-height: inherit;
    text-align: left !important;
    cursor: pointer;
    margin: 0 !important;
    padding: 12px var(--transcript-row-padding-inline) !important;
    border: 1px solid transparent !important;
    border-radius: 14px !important;
    color: var(--muted) !important;
    scroll-margin-block: 32vh;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease !important;
}

.route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment-time {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    grid-column: 1;
    align-self: baseline;
    min-height: 0;
    padding: 0 10px 0 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--muted);
    font-size: 12px;
    font-weight: 400;
    font-variant-numeric: tabular-nums;
    line-height: 1.5;
    white-space: nowrap;
}

.route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment-text {
    grid-column: 3;
    align-self: baseline;
    min-width: 0;
    color: inherit;
    font-weight: 400 !important;
    line-height: 1.5;
    text-align: left !important;
}

.route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment:focus-visible {
    outline: 2px solid var(--live);
    outline-offset: 2px;
}

@media (hover: hover) {
    .route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment:hover {
        background: color-mix(in srgb, var(--surface-3) 62%, transparent) !important;
        color: var(--text) !important;
    }
}

.route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment.is-current .transcript-segment-time,
.route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment[aria-current='true'] .transcript-segment-time {
    color: var(--live);
}

.route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment::before {
    content: '';
    position: static;
    inset: auto !important;
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    justify-self: center;
    margin-top: calc((1.5em - 10px) / 2);
    width: 10px !important;
    height: 10px !important;
    box-sizing: border-box;
    border: 2px solid var(--surface);
    border-radius: 50%;
    background: var(--surface-3);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--muted) 42%, var(--line));
    transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment.is-current,
.route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment[aria-current='true'] {
    border-color: color-mix(in srgb, var(--live) 44%, var(--line)) !important;
    background: color-mix(in srgb, var(--live) 11%, var(--surface-2)) !important;
    color: var(--text) !important;
    box-shadow: 0 8px 22px color-mix(in srgb, var(--live) 10%, transparent) !important;
}

.route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment.is-current::before,
.route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment[aria-current='true']::before {
    background: var(--live);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--live) 24%, transparent);
    transform: scale(1.12);
}

html[data-theme='dark'] .route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment.is-current,
html[data-theme='dark'] .route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment[aria-current='true'] {
    border-color: color-mix(in srgb, var(--live) 52%, var(--line)) !important;
    background: color-mix(in srgb, var(--live) 15%, var(--surface-2)) !important;
    box-shadow: 0 10px 26px rgba(0, 0, 0, .22) !important;
}

@media (max-width: 760px) {
    .route-episode-show .episode-transcript-search {
        grid-template-columns: minmax(0, 1fr);
        gap: 4px;
        margin-bottom: 8px;
    }

    .route-episode-show .episode-transcript-search-results {
        justify-content: space-between;
    }

    .route-episode-show .episode-transcript[data-transcript-scroll] {
        margin-top: 0 !important;
        max-height: 520px !important;
        max-height: min(58svh, 520px) !important;
        border-radius: 16px;
        padding: 8px 5px 8px 8px !important;
    }

    .route-episode-show .episode-transcript--timeline .episode-transcript-fade {
        --transcript-fade-padding-inline: 0;
        --transcript-row-padding-inline: 2px;
        --transcript-time-column: 32px;
        --transcript-marker-column: 18px;
        --transcript-marker-center-offset: 9px;
    }

    .route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment {
        min-height: 42px;
        grid-template-rows: auto !important;
        padding-block: 10px !important;
        gap: 0;
        border-radius: 12px !important;
        scroll-margin-block: 26vh;
    }

    .route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment-time {
        grid-row: 1;
        padding-right: 4px;
        font-size: 11px;
    }

    .route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment-text {
        grid-row: 1;
        font-size: 14px;
        overflow-wrap: break-word;
        word-break: normal;
        text-wrap: pretty;
    }
}

@media (prefers-reduced-motion: reduce) {
    .route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment,
    .route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment::before {
        transition: none !important;
    }
}

@media (forced-colors: active) {
    .route-episode-show .episode-transcript-search-field,
    .route-episode-show .episode-transcript-search-navigation button {
        border: 1px solid CanvasText;
    }

    .route-episode-show .transcript-search-mark,
    .route-episode-show .transcript-search-mark.is-active {
        background: Highlight;
        color: HighlightText;
        box-shadow: none;
    }

    .route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment.is-current,
    .route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment[aria-current='true'] {
        border: 2px solid Highlight !important;
        background: Canvas !important;
        color: CanvasText !important;
        box-shadow: none !important;
    }

    .route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment.is-current::before,
    .route-episode-show .episode-transcript-fade[data-transcript-sync] .transcript-segment[aria-current='true']::before {
        background: Highlight;
        box-shadow: none;
    }

    .route-episode-show .episode-transcript--timeline .episode-transcript-fade::before {
        background: GrayText;
    }
}

/* Keep the music chart and live feed inside the mobile viewport. */
@media (max-width: 760px) {
    .route-music .music-page {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        overflow-x: hidden;
    }

    @supports (overflow: clip) {
        .route-music .music-page {
            overflow-x: clip;
        }
    }

    .route-music .music-page-columns,
    .route-music .music-main-column,
    .route-music .music-side-column,
    .route-music .music-section,
    .route-music .music-panel {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .route-music .music-genres {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
    }

    .route-music .music-live-feed-panel,
    .route-music .music-live-feed-list,
    .route-music .music-live-feed-item {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .route-music .music-live-feed-item {
        overflow: hidden;
    }

    .route-music .music-live-feed-copy,
    .route-music .music-live-feed-copy > .music-live-feed-title,
    .route-music .music-live-feed-artist,
    .route-music .music-live-feed-station-line {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .route-music .music-live-feed-station {
        width: auto;
        min-width: 0;
        max-width: 100%;
        flex: 0 1 auto;
    }
}
/* Mobile personal-library shortcut -------------------------------------- */
.mobile-header-favorites {
    display: none !important;
}

@media (max-width: 760px) {
    #bookmarkButton.bookmark-button {
        display: grid !important;
    }

    .mobile-header-favorites {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        gap: 4px;
        min-width: 40px;
        height: 40px;
        padding: 0 5px;
        border: 1px solid transparent;
        border-radius: 11px;
        color: var(--text);
        font-size: 13px;
        font-weight: 700;
        font-variant-numeric: tabular-nums;
        line-height: 1;
        text-decoration: none;
        white-space: nowrap;
    }

    .mobile-header-favorites:hover,
    .mobile-header-favorites:focus-visible {
        border-color: var(--line);
        background: var(--surface);
        color: var(--text);
        outline: none;
    }

    .mobile-header-favorites:focus-visible {
        box-shadow: 0 0 0 2px color-mix(in srgb, var(--text) 18%, transparent);
    }

    .mobile-header-favorites-icon {
        width: 19px;
        height: 19px;
        flex: 0 0 auto;
    }
}

@media (max-width: 390px) {
    .mobile-header-favorites {
        min-width: 36px;
        height: 36px;
        padding-inline: 3px;
    }
}

@media (pointer: coarse) and (max-width: 760px) {
    .mobile-header-favorites {
        min-width: 44px;
        min-height: 44px;
    }
}

@media (forced-colors: active) {
    .mobile-header-favorites:focus-visible {
        outline: 2px solid Highlight;
        outline-offset: 2px;
        box-shadow: none;
    }
}
/* Mobile personal-library tabs ------------------------------------------ */
.personal-library-tabs {
    display: none !important;
}

@media (max-width: 760px) {
    :is(.route-recent, .route-favorites) .personal-library-summary {
        display: none !important;
    }

    :is(.route-recent, .route-favorites) .personal-library-tabs {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        margin: 0 0 16px;
        padding: 3px;
        border: 1px solid var(--line);
        border-radius: 999px;
        background: var(--surface);
        overflow: hidden;
    }

    :is(.route-recent, .route-favorites) .personal-library-head .personal-library-tabs {
        flex: 1 0 100%;
        margin: 0;
    }

    :is(.route-recent, .route-favorites) .personal-library-tab {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 0;
        min-height: 44px;
        padding: 0 12px;
        border: 0;
        border-radius: 999px;
        background: transparent;
        color: var(--muted);
        font: inherit;
        font-size: 14px;
        font-weight: 680;
        line-height: 1;
        cursor: pointer;
        white-space: nowrap;
        -webkit-tap-highlight-color: transparent;
    }

    :is(.route-recent, .route-favorites) .personal-library-tab:hover {
        color: var(--text);
    }

    :is(.route-recent, .route-favorites) .personal-library-tab.is-active,
    :is(.route-recent, .route-favorites) .personal-library-tab[aria-selected='true'] {
        background: var(--text);
        color: var(--surface);
        box-shadow: 0 2px 8px color-mix(in srgb, var(--text) 16%, transparent);
    }

    :is(.route-recent, .route-favorites) .personal-library-tab:focus-visible {
        outline: 2px solid var(--text);
        outline-offset: -3px;
    }

    :is(.route-recent, .route-favorites) [data-personal-library-panel][hidden] {
        display: none !important;
    }

    :is(.route-recent, .route-favorites) .library-row .library-copy > :first-child {
        display: -webkit-box !important;
        max-width: 100%;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: normal !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
        line-clamp: 3;
    }
}

@media (forced-colors: active) {
    :is(.route-recent, .route-favorites) .personal-library-tabs {
        border-color: CanvasText;
    }

    :is(.route-recent, .route-favorites) .personal-library-tab[aria-selected='true'] {
        background: Highlight;
        color: HighlightText;
    }

    :is(.route-recent, .route-favorites) .personal-library-tab:focus-visible {
        outline-color: Highlight;
    }
}

/* Precise control alignment fixes --------------------------------------- */
.route-programs .program-dialog .dialog-action {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}

.podcast-player-unified .episode-main-play [data-episode-player-icon] {
    display: grid !important;
    place-items: center !important;
    padding-left: 0 !important;
}

.podcast-player-unified .episode-main-play .episode-pause-icon {
    margin-left: 0 !important;
}
