/* Radio Falset - Joomla Cassiopeia cleanup
   Clean baseline while rebuilding the Joomla 5 homepage. */

:root {
  --rf-purple: #5f0057;
  --rf-text: #222;
  --rf-muted: #666;
  --rf-line: #e4e4e4;
  --rf-width: 1160px;
}

html,
body,
.site,
.site-grid,
.grid-child,
.container-component,
.container-main,
.container-main-top,
.container-main-bottom,
.container-sidebar-right,
.main-top,
.main-bottom,
body.wrapper-fluid .site-grid {
  background: #fff !important;
  background-image: none !important;
}

body {
  color: var(--rf-text) !important;
}

/* Header and top image */
.container-header {
  background: #fff !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.container-header .grid-child,
.container-header .container-nav {
  width: min(100%, var(--rf-width)) !important;
  max-width: var(--rf-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.container-header .grid-child:first-child {
  padding: 0 !important;
}

.container-header .brand-logo,
.container-header .navbar-brand,
.container-header .moduletable,
.container-header .mod-custom {
  display: block !important;
  margin: 0 auto !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  text-align: center !important;
}

.container-header .brand-logo img,
.container-header .navbar-brand img,
.container-header .moduletable img,
.container-header .mod-custom img {
  display: block !important;
  width: 100% !important;
  max-width: var(--rf-width) !important;
  max-height: 115px !important;
  height: auto !important;
  object-fit: cover !important;
  object-position: center center !important;
  margin: 0 auto !important;
}

/* Menu */
.container-header .container-nav {
  min-height: 42px !important;
  padding: 5px 8px !important;
  background: linear-gradient(#fff, #f7f7f7) !important;
  border: 0 !important;
  border-bottom: 4px solid var(--rf-purple) !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.container-header .mod-menu,
.container-header .navbar-nav,
.metismenu.mod-menu {
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 2px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.container-header .mod-menu > li,
.container-header .navbar-nav > li,
.metismenu.mod-menu > li,
.metismenu.mod-menu .metismenu-item {
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  white-space: nowrap !important;
}

.container-header .mod-menu > li > a,
.container-header .mod-menu > li > button,
.container-header .navbar a,
.container-header .navbar button,
.metismenu.mod-menu .metismenu-item > a,
.metismenu.mod-menu .metismenu-item > button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 30px !important;
  padding: 6px 8px !important;
  color: #333 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  font-size: 13px !important;
  line-height: 1.1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.container-header .mod-menu > li > a:hover,
.container-header .mod-menu > li > button:hover,
.container-header .mod-menu > li.active > a,
.container-header .mod-menu > li.current > a,
.container-header .navbar a:hover,
.container-header .navbar button:hover,
.metismenu.mod-menu .metismenu-item > a:hover,
.metismenu.mod-menu .metismenu-item > button:hover,
.metismenu.mod-menu .metismenu-item.active > a,
.metismenu.mod-menu .metismenu-item.current > a {
  color: #fff !important;
  background: var(--rf-purple) !important;
  border-radius: 8px !important;
}

.container-header .container-nav img,
.container-header .mod-menu img,
.container-header .navbar-nav img,
.metismenu.mod-menu img {
  display: inline-block !important;
  width: auto !important;
  max-width: none !important;
  max-height: 24px !important;
  margin: 0 !important;
  padding: 2px !important;
  border-radius: 5px !important;
}

.container-header .mod-menu > li:first-child > a,
.container-header .navbar-nav > li:first-child > a,
.metismenu.mod-menu > li:first-child > a {
  min-width: 34px !important;
  padding: 4px 7px !important;
  background: var(--rf-purple) !important;
}

/* Page rhythm: remove oversized vertical whitespace globally. */
.site-grid,
.container-main,
.container-component,
.grid-child,
main,
.main-top,
.main-bottom,
.container-main-top,
.container-main-bottom,
.container-top-a,
.top-a {
  row-gap: 0 !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.site-grid {
  padding-top: 0 !important;
  box-shadow: none !important;
  border: 0 !important;
}

.container-component,
.com-content-article,
.item-page,
.blog,
.blog-items,
.com-content-category-blog,
.com-content-featured {
  min-height: 0 !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.container-component {
  margin-bottom: 14px !important;
  padding-bottom: 0 !important;
}

.com-content-article,
.item-page,
.blog-item,
.card,
.moduletable,
.sidebar-right .moduletable,
.container-sidebar-right .moduletable,
.main-top .moduletable,
.main-bottom .moduletable,
.breadcrumb,
.breadcrumbs,
.mod-breadcrumbs {
  border: 0 !important;
  box-shadow: none !important;
  background: #fff !important;
  border-radius: 0 !important;
}

.com-content-article,
.item-page,
.blog-item,
.moduletable,
.card {
  margin-top: 0 !important;
  margin-bottom: 14px !important;
  padding-top: 0 !important;
  padding-bottom: 10px !important;
}

.com-content-article__body,
.item-page > div,
.item-page .page-header,
.com-content-article .page-header {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.com-content-article p,
.item-page p,
.blog-item p,
.mod-articlesnews__item p {
  margin-top: 0 !important;
  margin-bottom: .75rem !important;
}

/* Hide Joomla article details where the old site did not show them. */
.article-info,
.article-info-term,
dl.article-info,
.published,
.createdby,
.category-name,
.hits {
  display: none !important;
}

/* Breadcrumb compact. */
.breadcrumb,
.mod-breadcrumbs {
  padding: 8px 10px !important;
  margin-bottom: 12px !important;
  color: var(--rf-muted) !important;
}

/* Titles and links */
a,
.item-title a,
.page-header a,
.blog-item h2 a,
.moduletable a {
  color: var(--rf-purple) !important;
}

h1, h2, h3, h4,
.page-header h1,
.blog-item .item-title,
.item-page .page-header h1,
.blog-item h2,
.newsflash-title {
  color: var(--rf-purple) !important;
}

.blog-item .item-title,
.blog-item h2,
.newsflash-title {
  font-size: 1.45rem !important;
  line-height: 1.15 !important;
}

/* Mini Frontpage Pro: compact old-style blocks. */
.rf-mfp-audios,
.rf-mfp-news-main,
.rf-mfp-news-more,
.main-bottom .moduletable,
.container-main-bottom .moduletable {
  margin-top: 0 !important;
  margin-bottom: 18px !important;
  padding-top: 0 !important;
}

/* Sidebar banners */
.sidebar-right .moduletable,
.container-sidebar-right .moduletable,
.sidebar-right .card {
  padding: 0 !important;
  margin-bottom: 14px !important;
}

.sidebar-right img,
.container-sidebar-right img,
.mod-banners img,
.bannergroup img {
  max-width: 100% !important;
  height: auto !important;
}

/* Parked carousel: do not reserve hidden top-a whitespace while we finish the frontpage. */
.rf-program-slider,
.container-top-a .rf-program-slider,
.top-a .rf-program-slider,
.container-top-a .moduletable:has(.rf-program-slider),
.top-a .moduletable:has(.rf-program-slider) {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.container-top-a:empty,
.top-a:empty {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

@media (max-width: 900px) {
  .container-header .mod-menu,
  .container-header .navbar-nav,
  .metismenu.mod-menu {
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
  }

  .container-header .mod-menu > li > a,
  .container-header .mod-menu > li > button,
  .container-header .navbar a,
  .container-header .navbar button {
    font-size: 12px !important;
    padding-inline: 6px !important;
  }
}

/* Visual polish: give the clean layout more Radio Falset character without bringing back big gaps. */
body {
  background: linear-gradient(90deg, #eef3f5 0, #fff 18%, #fff 82%, #eef3f5 100%) !important;
}

.site-grid,
.container-main,
.container-component,
.container-main-bottom,
.container-sidebar-right {
  width: min(100%, var(--rf-width)) !important;
  max-width: var(--rf-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.container-component,
.container-main-bottom,
.main-bottom,
.container-sidebar-right {
  position: relative !important;
}

/* Top intro/audio block: make it feel like an intentional featured strip. */
.com-content-article,
.item-page {
  padding: 18px 0 12px !important;
}

.com-content-article h1,
.item-page h1,
.com-content-article h2,
.item-page h2 {
  font-size: 1.65rem !important;
  letter-spacing: -0.02em !important;
  margin-bottom: 10px !important;
}

.com-content-article audio,
.item-page audio {
  width: min(100%, 330px) !important;
  filter: saturate(.8) contrast(.95) !important;
}

/* Section headings */
.main-bottom .moduletable > h3,
.container-main-bottom .moduletable > h3,
.rf-mfp-audios h3,
.rf-mfp-news-main h3,
.rf-mfp-news-more h3,
.sidebar-right h3,
.container-sidebar-right h3 {
  display: inline-block !important;
  margin: 0 0 12px !important;
  padding: 0 0 5px !important;
  color: var(--rf-purple) !important;
  border-bottom: 3px solid var(--rf-purple) !important;
  font-size: 1.25rem !important;
  line-height: 1.1 !important;
  font-weight: 700 !important;
}

/* Mini Frontpage Pro cards: softer, more editorial, less default-Joomla. */
.main-bottom .mfp_default_item,
.main-bottom .mfp_carousel_item,
.main-bottom .mfp_item,
.main-bottom [class*="mfp_"][class*="item"],
.container-main-bottom .mfp_default_item,
.container-main-bottom .mfp_carousel_item,
.container-main-bottom .mfp_item,
.container-main-bottom [class*="mfp_"][class*="item"] {
  border: 1px solid #ececec !important;
  border-top: 4px solid rgba(95, 0, 87, .22) !important;
  border-radius: 8px !important;
  background: #fff !important;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .06) !important;
  padding: 12px !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}

.main-bottom .mfp_default_item:hover,
.main-bottom .mfp_carousel_item:hover,
.main-bottom .mfp_item:hover,
.main-bottom [class*="mfp_"][class*="item"]:hover,
.container-main-bottom .mfp_default_item:hover,
.container-main-bottom .mfp_carousel_item:hover,
.container-main-bottom .mfp_item:hover,
.container-main-bottom [class*="mfp_"][class*="item"]:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 28px rgba(95, 0, 87, .12) !important;
  border-top-color: var(--rf-purple) !important;
}

.main-bottom [class*="mfp_"] a,
.container-main-bottom [class*="mfp_"] a {
  color: var(--rf-purple) !important;
}

.main-bottom [class*="mfp_"] h3,
.main-bottom [class*="mfp_"] h4,
.main-bottom [class*="mfp_title"],
.container-main-bottom [class*="mfp_"] h3,
.container-main-bottom [class*="mfp_"] h4,
.container-main-bottom [class*="mfp_title"] {
  font-size: 1.08rem !important;
  line-height: 1.12 !important;
  margin: 0 0 8px !important;
  font-weight: 700 !important;
}

.main-bottom [class*="mfp_intro"],
.container-main-bottom [class*="mfp_intro"] {
  color: #333 !important;
  font-size: .94rem !important;
  line-height: 1.38 !important;
}

.main-bottom [class*="mfp_date"],
.container-main-bottom [class*="mfp_date"] {
  color: #777 !important;
  font-size: .82rem !important;
  margin-top: 8px !important;
}

.main-bottom [class*="mfp_"] img,
.container-main-bottom [class*="mfp_"] img {
  border-radius: 7px !important;
  width: 100% !important;
  height: 150px !important;
  object-fit: cover !important;
  margin-bottom: 8px !important;
}

/* News collage should feel tighter and less like floating fragments. */
.rf-mfp-news-main,
.rf-mfp-news-more,
.rf-mfp-audios {
  border-top: 1px solid #f0f0f0 !important;
  padding-top: 16px !important;
}

/* Sidebar: tidy advertising stack. */
.sidebar-right,
.container-sidebar-right {
  padding-left: 24px !important;
}

.sidebar-right .moduletable,
.container-sidebar-right .moduletable {
  padding: 0 0 16px !important;
  border-bottom: 1px solid #f0f0f0 !important;
}

.sidebar-right .moduletable:last-child,
.container-sidebar-right .moduletable:last-child {
  border-bottom: 0 !important;
}

.sidebar-right img,
.container-sidebar-right img,
.mod-banners img,
.bannergroup img {
  display: block !important;
  margin: 0 auto 10px !important;
  border-radius: 4px !important;
}

/* Breadcrumb as a small quiet label, not a large block. */
.breadcrumb,
.mod-breadcrumbs {
  font-size: .9rem !important;
  color: #777 !important;
  padding: 10px 0 4px !important;
}

/* More breathing around the first home audio, less emptiness overall. */
.container-component + .container-main-bottom,
.container-component + .main-bottom {
  margin-top: 8px !important;
}

@media (max-width: 900px) {
  body {
    background: #fff !important;
  }

  .sidebar-right,
  .container-sidebar-right {
    padding-left: 0 !important;
  }

  .main-bottom [class*="mfp_"] img,
  .container-main-bottom [class*="mfp_"] img {
    height: auto !important;
  }
}

/* Second visual pass: stronger homepage editorial rhythm. */
.container-component {
  padding-top: 18px !important;
}

.com-content-article,
.item-page {
  border-bottom: 1px solid #f1edf1 !important;
  margin-bottom: 20px !important;
}

.com-content-article h1,
.item-page h1,
.com-content-article h2,
.item-page h2 {
  color: var(--rf-purple) !important;
  font-size: clamp(1.45rem, 2.2vw, 1.9rem) !important;
}

.com-content-article p,
.item-page p {
  font-size: 1.02rem !important;
  line-height: 1.5 !important;
}

.main-bottom,
.container-main-bottom {
  padding-top: 6px !important;
}

/* Make the audio carousel feel intentionally compact. */
.rf-mfp-audios [class*="mfp_"][class*="item"] {
  min-height: 155px !important;
}

.rf-mfp-audios [class*="mfp_title"],
.rf-mfp-audios h3,
.rf-mfp-audios h4 {
  font-size: 1.02rem !important;
}

/* Give news modules a magazine feel. */
.rf-mfp-news-main [class*="mfp_"][class*="item"],
.rf-mfp-news-more [class*="mfp_"][class*="item"] {
  border-top-width: 0 !important;
  padding: 0 0 12px !important;
  overflow: hidden !important;
}

.rf-mfp-news-main [class*="mfp_"] img,
.rf-mfp-news-more [class*="mfp_"] img {
  border-radius: 8px 8px 0 0 !important;
  margin: 0 0 10px !important;
}

.rf-mfp-news-main [class*="mfp_title"],
.rf-mfp-news-more [class*="mfp_title"],
.rf-mfp-news-main h3,
.rf-mfp-news-more h3,
.rf-mfp-news-main h4,
.rf-mfp-news-more h4 {
  padding-inline: 12px !important;
}

.rf-mfp-news-main [class*="mfp_intro"],
.rf-mfp-news-more [class*="mfp_intro"],
.rf-mfp-news-main [class*="mfp_date"],
.rf-mfp-news-more [class*="mfp_date"] {
  padding-inline: 12px !important;
}

/* Sidebar should be publicity-first and visually quiet. */
.sidebar-right .moduletable:not(:has(.bannergroup)):not(:has(.mod-banners)),
.container-sidebar-right .moduletable:not(:has(.bannergroup)):not(:has(.mod-banners)) {
  font-size: .92rem !important;
}

/* Tighten breadcrumb-to-content spacing. */
.breadcrumb,
.mod-breadcrumbs,
.breadcrumbs,
nav[aria-label="breadcrumb"] {
  margin-bottom: 4px !important;
  padding-bottom: 2px !important;
}

.breadcrumb + *,
.mod-breadcrumbs + *,
.breadcrumbs + *,
nav[aria-label="breadcrumb"] + *,
.container-component:has(.breadcrumb),
.container-component:has(.mod-breadcrumbs) {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.container-component {
  padding-top: 8px !important;
}

/* Dropdown menu: make Programes submenu visible and old-site friendly. */
.container-header .mod-menu > li,
.metismenu.mod-menu > li,
.container-header .navbar-nav > li {
  position: relative !important;
}

.container-header .mod-menu > li ul,
.metismenu.mod-menu > li ul,
.container-header .navbar-nav > li ul,
.container-header .mod-menu .mm-collapse,
.metismenu.mod-menu .mm-collapse {
  position: absolute !important;
  top: calc(100% + 4px) !important;
  left: 0 !important;
  z-index: 1000 !important;
  min-width: 210px !important;
  padding: 8px !important;
  margin: 0 !important;
  background: #fff !important;
  border: 1px solid #e7d9e5 !important;
  border-top: 3px solid var(--rf-purple) !important;
  border-radius: 0 0 9px 9px !important;
  box-shadow: 0 14px 26px rgba(0, 0, 0, .12) !important;
}

.container-header .mod-menu > li:not(:hover) > ul,
.metismenu.mod-menu > li:not(:hover) > ul,
.container-header .navbar-nav > li:not(:hover) > ul,
.container-header .mod-menu > li:not(:hover) > .mm-collapse,
.metismenu.mod-menu > li:not(:hover) > .mm-collapse {
  display: none !important;
}

.container-header .mod-menu > li:hover > ul,
.metismenu.mod-menu > li:hover > ul,
.container-header .navbar-nav > li:hover > ul,
.container-header .mod-menu > li:hover > .mm-collapse,
.metismenu.mod-menu > li:hover > .mm-collapse {
  display: block !important;
  height: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.container-header .mod-menu ul li,
.metismenu.mod-menu ul li,
.container-header .navbar-nav ul li {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
}

.container-header .mod-menu ul a,
.metismenu.mod-menu ul a,
.container-header .navbar-nav ul a {
  display: block !important;
  width: 100% !important;
  padding: 9px 10px !important;
  color: #333 !important;
  border-radius: 7px !important;
  text-align: left !important;
}

.container-header .mod-menu ul a:hover,
.metismenu.mod-menu ul a:hover,
.container-header .navbar-nav ul a:hover {
  color: #fff !important;
  background: var(--rf-purple) !important;
}

/* Headings in the main menu, like Programes, must look like normal top-level items. */
.container-header .mod-menu > li > .mod-menu__heading,
.container-header .mod-menu > li > span,
.container-header .mod-menu > li > button,
.metismenu.mod-menu > li > .mod-menu__heading,
.metismenu.mod-menu > li > span,
.metismenu.mod-menu > li > button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 30px !important;
  padding: 6px 8px !important;
  color: #333 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  font-size: 13px !important;
  line-height: 1.1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  cursor: default !important;
}

.container-header .mod-menu > li:hover > .mod-menu__heading,
.container-header .mod-menu > li:hover > span,
.container-header .mod-menu > li:hover > button,
.metismenu.mod-menu > li:hover > .mod-menu__heading,
.metismenu.mod-menu > li:hover > span,
.metismenu.mod-menu > li:hover > button {
  color: #fff !important;
  background: var(--rf-purple) !important;
}

/* Informatius mega dropdown: municipalities in compact columns. */
.container-header .mod-menu > li:has(> a[href*="informatius"]) > ul,
.metismenu.mod-menu > li:has(> a[href*="informatius"]) > ul,
.container-header .navbar-nav > li:has(> a[href*="informatius"]) > ul,
.container-header .mod-menu > li:has(> a[href*="informatius"]) > .mm-collapse,
.metismenu.mod-menu > li:has(> a[href*="informatius"]) > .mm-collapse {
  min-width: 560px !important;
  max-width: min(92vw, 680px) !important;
  columns: 3 170px !important;
  column-gap: 10px !important;
}

.container-header .mod-menu > li:has(> a[href*="informatius"]) ul li,
.metismenu.mod-menu > li:has(> a[href*="informatius"]) ul li,
.container-header .navbar-nav > li:has(> a[href*="informatius"]) ul li {
  break-inside: avoid !important;
  margin-bottom: 2px !important;
}

.container-header .mod-menu > li:has(> a[href*="informatius"]) ul a,
.metismenu.mod-menu > li:has(> a[href*="informatius"]) ul a,
.container-header .navbar-nav > li:has(> a[href*="informatius"]) ul a {
  font-size: 12.5px !important;
  padding: 7px 8px !important;
}

.container-header .mod-menu > li:has(> a[href*="informatius"]) ul li:first-child a,
.metismenu.mod-menu > li:has(> a[href*="informatius"]) ul li:first-child a,
.container-header .navbar-nav > li:has(> a[href*="informatius"]) ul li:first-child a {
  font-weight: 700 !important;
  color: var(--rf-purple) !important;
  background: #f8eef7 !important;
}

.container-header .mod-menu > li:has(> a[href*="informatius"]) ul li:first-child a:hover,
.metismenu.mod-menu > li:has(> a[href*="informatius"]) ul li:first-child a:hover,
.container-header .navbar-nav > li:has(> a[href*="informatius"]) ul li:first-child a:hover {
  color: #fff !important;
  background: var(--rf-purple) !important;
}

@media (max-width: 800px) {
  .container-header .mod-menu > li:has(> a[href*="informatius"]) > ul,
  .metismenu.mod-menu > li:has(> a[href*="informatius"]) > ul,
  .container-header .navbar-nav > li:has(> a[href*="informatius"]) > ul,
  .container-header .mod-menu > li:has(> a[href*="informatius"]) > .mm-collapse,
  .metismenu.mod-menu > li:has(> a[href*="informatius"]) > .mm-collapse {
    min-width: 260px !important;
    columns: 1 !important;
  }
}

/* Tags: softer grey-purple pills instead of dark blue. */
.tags .badge,
.tags a,
.tag-category .badge,
.com-tags-tag .badge,
.badge.bg-info,
.badge-info,
a.badge,
span.badge,
.label-info,
.label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  background: #f0edf2 !important;
  border: 1px solid #ded3df !important;
  color: var(--rf-purple) !important;
  border-radius: 999px !important;
  padding: 4px 9px !important;
  font-size: .78rem !important;
  font-weight: 600 !important;
  line-height: 1.1 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

.tags .badge:hover,
.tags a:hover,
.tag-category .badge:hover,
.com-tags-tag .badge:hover,
.badge.bg-info:hover,
.badge-info:hover,
a.badge:hover,
.label-info:hover,
.label:hover {
  background: var(--rf-purple) !important;
  border-color: var(--rf-purple) !important;
  color: #fff !important;
  text-decoration: none !important;
}

.tags {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  margin-top: 10px !important;
}

/* Program slider comeback: homepage character block below the menu. */
.container-top-a,
.top-a,
.site-grid .container-top-a,
.site-grid .top-a {
  display: block !important;
  width: min(100%, var(--rf-width)) !important;
  max-width: var(--rf-width) !important;
  margin: 14px auto 22px !important;
  padding: 0 !important;
  background: transparent !important;
}

.rf-program-slider,
.container-top-a .rf-program-slider,
.top-a .rf-program-slider,
.container-top-a .moduletable.rf-program-slider,
.top-a .moduletable.rf-program-slider,
.container-top-a .moduletable:has([id*="carouselck"]),
.top-a .moduletable:has([id*="carouselck"]),
.container-top-a [id*="carouselck"],
.top-a [id*="carouselck"],
.container-top-a .carouselck,
.top-a .carouselck {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: min(100%, 900px) !important;
  max-width: 900px !important;
  height: 250px !important;
  min-height: 250px !important;
  max-height: 250px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #120010 !important;
  border-radius: 12px !important;
  box-shadow: 0 18px 38px rgba(95, 0, 87, .20) !important;
}

.rf-program-slider *,
.container-top-a [id*="carouselck"] *,
.top-a [id*="carouselck"] *,
.container-top-a .carouselck *,
.top-a .carouselck * {
  box-sizing: border-box !important;
}

.rf-program-slider img,
.container-top-a [id*="carouselck"] img,
.top-a [id*="carouselck"] img,
.container-top-a .carouselck img,
.top-a .carouselck img,
.rf-program-slider .camera_wrap img,
.rf-program-slider .cameraSlide img,
.rf-program-slider .cameraContent img {
  display: block !important;
  width: 100% !important;
  height: 250px !important;
  max-height: 250px !important;
  object-fit: cover !important;
  object-position: center center !important;
  margin: 0 auto !important;
  border: 0 !important;
  border-radius: 12px !important;
}

.rf-program-slider .camera_wrap,
.rf-program-slider .camera_fakehover,
.rf-program-slider .camera_src,
.rf-program-slider .cameraSlide,
.rf-program-slider .cameraContent,
.rf-program-slider .cameraCont,
.container-top-a [id*="carouselck"] .camera_wrap,
.container-top-a [id*="carouselck"] .camera_fakehover,
.container-top-a [id*="carouselck"] .camera_src,
.top-a [id*="carouselck"] .camera_wrap,
.top-a [id*="carouselck"] .camera_fakehover,
.top-a [id*="carouselck"] .camera_src {
  width: 100% !important;
  height: 250px !important;
  min-height: 250px !important;
  max-height: 250px !important;
  overflow: hidden !important;
  border-radius: 12px !important;
}

.rf-program-slider .camera_caption,
.container-top-a [id*="carouselck"] .camera_caption,
.top-a [id*="carouselck"] .camera_caption {
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  padding: 16px 20px !important;
  color: #fff !important;
  background: linear-gradient(0deg, rgba(37, 0, 34, .86), rgba(37, 0, 34, .46), transparent) !important;
  text-shadow: 0 2px 10px rgba(0,0,0,.45) !important;
}

.rf-program-slider .camera_caption h3,
.container-top-a [id*="carouselck"] .camera_caption h3,
.top-a [id*="carouselck"] .camera_caption h3 {
  color: #fff !important;
  margin: 0 0 4px !important;
  font-size: 1.45rem !important;
  line-height: 1.05 !important;
}

.rf-program-slider .camera_caption p,
.container-top-a [id*="carouselck"] .camera_caption p,
.top-a [id*="carouselck"] .camera_caption p {
  margin: 0 !important;
  font-size: .95rem !important;
}

.rf-program-slider .camera_prev,
.rf-program-slider .camera_next,
.container-top-a [id*="carouselck"] .camera_prev,
.container-top-a [id*="carouselck"] .camera_next,
.top-a [id*="carouselck"] .camera_prev,
.top-a [id*="carouselck"] .camera_next {
  opacity: .85 !important;
}

@media (max-width: 760px) {
  .rf-program-slider,
  .container-top-a .rf-program-slider,
  .top-a .rf-program-slider,
  .container-top-a [id*="carouselck"],
  .top-a [id*="carouselck"],
  .container-top-a .carouselck,
  .top-a .carouselck,
  .rf-program-slider img,
  .container-top-a [id*="carouselck"] img,
  .top-a [id*="carouselck"] img {
    height: 190px !important;
    min-height: 190px !important;
    max-height: 190px !important;
  }
}

/* Slider refinement: show full program artwork cleanly, no awkward crop/black block. */
.rf-program-slider,
.container-top-a .rf-program-slider,
.top-a .rf-program-slider,
.container-top-a .moduletable.rf-program-slider,
.top-a .moduletable.rf-program-slider,
.container-top-a .moduletable:has([id*="carouselck"]),
.top-a .moduletable:has([id*="carouselck"]),
.container-top-a [id*="carouselck"],
.top-a [id*="carouselck"],
.container-top-a .carouselck,
.top-a .carouselck {
  width: min(100%, 900px) !important;
  max-width: 900px !important;
  height: 245px !important;
  min-height: 245px !important;
  max-height: 245px !important;
  background: linear-gradient(135deg, #ffffff 0%, #fbf6fb 55%, #f0e5ef 100%) !important;
  border: 1px solid #eadfea !important;
  border-radius: 10px !important;
  box-shadow: 0 14px 34px rgba(95, 0, 87, .14) !important;
}

.rf-program-slider img,
.container-top-a [id*="carouselck"] img,
.top-a [id*="carouselck"] img,
.container-top-a .carouselck img,
.top-a .carouselck img,
.rf-program-slider .camera_wrap img,
.rf-program-slider .cameraSlide img,
.rf-program-slider .cameraContent img,
.rf-program-slider .camera_target_content img {
  width: 100% !important;
  height: 245px !important;
  max-height: 245px !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: transparent !important;
  border-radius: 10px !important;
}

.rf-program-slider .camera_wrap,
.rf-program-slider .camera_fakehover,
.rf-program-slider .camera_src,
.rf-program-slider .cameraSlide,
.rf-program-slider .cameraContent,
.rf-program-slider .cameraCont,
.container-top-a [id*="carouselck"] .camera_wrap,
.container-top-a [id*="carouselck"] .camera_fakehover,
.container-top-a [id*="carouselck"] .camera_src,
.top-a [id*="carouselck"] .camera_wrap,
.top-a [id*="carouselck"] .camera_fakehover,
.top-a [id*="carouselck"] .camera_src {
  height: 245px !important;
  min-height: 245px !important;
  max-height: 245px !important;
  background: transparent !important;
}

.rf-program-slider .camera_caption,
.container-top-a [id*="carouselck"] .camera_caption,
.top-a [id*="carouselck"] .camera_caption {
  left: 18px !important;
  right: auto !important;
  bottom: 16px !important;
  width: auto !important;
  max-width: 42% !important;
  padding: 9px 13px !important;
  color: #fff !important;
  background: rgba(95, 0, 87, .82) !important;
  border-radius: 8px !important;
  text-shadow: none !important;
  backdrop-filter: blur(3px) !important;
}

.rf-program-slider .camera_caption h3,
.container-top-a [id*="carouselck"] .camera_caption h3,
.top-a [id*="carouselck"] .camera_caption h3 {
  font-size: 1.05rem !important;
  line-height: 1.05 !important;
  margin: 0 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}

.rf-program-slider .camera_caption p,
.container-top-a [id*="carouselck"] .camera_caption p,
.top-a [id*="carouselck"] .camera_caption p {
  display: none !important;
}

.rf-program-slider .camera_caption div,
.container-top-a [id*="carouselck"] .camera_caption div,
.top-a [id*="carouselck"] .camera_caption div {
  background: transparent !important;
  padding: 0 !important;
}

/* If the module setting still injects left/right spacing, neutralize it. */
.rf-program-slider .camera_target,
.rf-program-slider .cameraSlide > div,
.container-top-a [id*="carouselck"] .camera_target,
.container-top-a [id*="carouselck"] .cameraSlide > div,
.top-a [id*="carouselck"] .camera_target,
.top-a [id*="carouselck"] .cameraSlide > div {
  background-size: contain !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

/* Slider hard fix: image-first hero, no broken captions or link text. */
.rf-program-slider,
.container-top-a .rf-program-slider,
.top-a .rf-program-slider,
.container-top-a .moduletable.rf-program-slider,
.top-a .moduletable.rf-program-slider,
.container-top-a .moduletable:has([id*="carouselck"]),
.top-a .moduletable:has([id*="carouselck"]),
.container-top-a [id*="carouselck"],
.top-a [id*="carouselck"],
.container-top-a .carouselck,
.top-a .carouselck {
  width: min(100%, 920px) !important;
  max-width: 920px !important;
  height: 260px !important;
  min-height: 260px !important;
  max-height: 260px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  background: #fff !important;
  border: 1px solid #eadfea !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: 0 18px 42px rgba(95, 0, 87, .16) !important;
}

.rf-program-slider .camera_wrap,
.rf-program-slider .camera_fakehover,
.rf-program-slider .camera_src,
.rf-program-slider .cameraSlide,
.rf-program-slider .cameraContent,
.rf-program-slider .cameraCont,
.rf-program-slider .camera_target,
.rf-program-slider .camera_overlayer,
.container-top-a [id*="carouselck"] .camera_wrap,
.container-top-a [id*="carouselck"] .camera_fakehover,
.container-top-a [id*="carouselck"] .camera_src,
.container-top-a [id*="carouselck"] .cameraSlide,
.container-top-a [id*="carouselck"] .cameraContent,
.container-top-a [id*="carouselck"] .cameraCont,
.container-top-a [id*="carouselck"] .camera_target,
.top-a [id*="carouselck"] .camera_wrap,
.top-a [id*="carouselck"] .camera_fakehover,
.top-a [id*="carouselck"] .camera_src,
.top-a [id*="carouselck"] .cameraSlide,
.top-a [id*="carouselck"] .cameraContent,
.top-a [id*="carouselck"] .cameraCont,
.top-a [id*="carouselck"] .camera_target {
  width: 100% !important;
  height: 260px !important;
  min-height: 260px !important;
  max-height: 260px !important;
  overflow: hidden !important;
  background-color: #fff !important;
  border-radius: 12px !important;
}

/* Carousel CK often uses background images, so force them to behave like a banner. */
.rf-program-slider .camera_target,
.rf-program-slider .cameraSlide > div,
.rf-program-slider .cameraContent > div,
.container-top-a [id*="carouselck"] .camera_target,
.container-top-a [id*="carouselck"] .cameraSlide > div,
.container-top-a [id*="carouselck"] .cameraContent > div,
.top-a [id*="carouselck"] .camera_target,
.top-a [id*="carouselck"] .cameraSlide > div,
.top-a [id*="carouselck"] .cameraContent > div {
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

.rf-program-slider img,
.container-top-a [id*="carouselck"] img,
.top-a [id*="carouselck"] img,
.container-top-a .carouselck img,
.top-a .carouselck img,
.rf-program-slider .camera_wrap img,
.rf-program-slider .cameraSlide img,
.rf-program-slider .cameraContent img,
.rf-program-slider .camera_target_content img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  min-width: 100% !important;
  height: 260px !important;
  min-height: 260px !important;
  max-height: 260px !important;
  object-fit: cover !important;
  object-position: center center !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 12px !important;
}

/* Captions currently show broken title/link text; hide them for a cleaner hero. */
.rf-program-slider .camera_caption,
.rf-program-slider .camera_caption * ,
.container-top-a [id*="carouselck"] .camera_caption,
.container-top-a [id*="carouselck"] .camera_caption *,
.top-a [id*="carouselck"] .camera_caption,
.top-a [id*="carouselck"] .camera_caption *,
.rf-program-slider [class*="caption"],
.container-top-a [id*="carouselck"] [class*="caption"],
.top-a [id*="carouselck"] [class*="caption"] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
}

/* Keep controls subtle. */
.rf-program-slider .camera_prev,
.rf-program-slider .camera_next,
.rf-program-slider .camera_commands,
.rf-program-slider .camera_pag,
.container-top-a [id*="carouselck"] .camera_prev,
.container-top-a [id*="carouselck"] .camera_next,
.container-top-a [id*="carouselck"] .camera_commands,
.container-top-a [id*="carouselck"] .camera_pag,
.top-a [id*="carouselck"] .camera_prev,
.top-a [id*="carouselck"] .camera_next,
.top-a [id*="carouselck"] .camera_commands,
.top-a [id*="carouselck"] .camera_pag {
  opacity: .45 !important;
}

@media (max-width: 760px) {
  .rf-program-slider,
  .container-top-a .rf-program-slider,
  .top-a .rf-program-slider,
  .container-top-a [id*="carouselck"],
  .top-a [id*="carouselck"],
  .container-top-a .carouselck,
  .top-a .carouselck,
  .rf-program-slider .camera_wrap,
  .rf-program-slider .camera_fakehover,
  .rf-program-slider .camera_src,
  .rf-program-slider .cameraSlide,
  .rf-program-slider .cameraContent,
  .rf-program-slider .cameraCont,
  .rf-program-slider .camera_target,
  .rf-program-slider img,
  .container-top-a [id*="carouselck"] img,
  .top-a [id*="carouselck"] img {
    height: 190px !important;
    min-height: 190px !important;
    max-height: 190px !important;
  }
}

/* Slider text fix: keep program title, hide ugly URL/description text. */
.rf-program-slider .camera_caption,
.container-top-a [id*="carouselck"] .camera_caption,
.top-a [id*="carouselck"] .camera_caption,
.rf-program-slider [class*="caption"],
.container-top-a [id*="carouselck"] [class*="caption"],
.top-a [id*="carouselck"] [class*="caption"] {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.rf-program-slider .camera_caption,
.container-top-a [id*="carouselck"] .camera_caption,
.top-a [id*="carouselck"] .camera_caption {
  left: 22px !important;
  right: auto !important;
  bottom: 20px !important;
  width: auto !important;
  max-width: min(58%, 440px) !important;
  padding: 11px 15px !important;
  color: #fff !important;
  background: rgba(95, 0, 87, .88) !important;
  border-radius: 9px !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .20) !important;
  text-shadow: none !important;
  backdrop-filter: blur(4px) !important;
}

.rf-program-slider .camera_caption > div,
.container-top-a [id*="carouselck"] .camera_caption > div,
.top-a [id*="carouselck"] .camera_caption > div {
  display: block !important;
  padding: 0 !important;
  background: transparent !important;
}

.rf-program-slider .camera_caption h1,
.rf-program-slider .camera_caption h2,
.rf-program-slider .camera_caption h3,
.rf-program-slider .camera_caption h4,
.rf-program-slider .camera_caption strong,
.container-top-a [id*="carouselck"] .camera_caption h1,
.container-top-a [id*="carouselck"] .camera_caption h2,
.container-top-a [id*="carouselck"] .camera_caption h3,
.container-top-a [id*="carouselck"] .camera_caption h4,
.container-top-a [id*="carouselck"] .camera_caption strong,
.top-a [id*="carouselck"] .camera_caption h1,
.top-a [id*="carouselck"] .camera_caption h2,
.top-a [id*="carouselck"] .camera_caption h3,
.top-a [id*="carouselck"] .camera_caption h4,
.top-a [id*="carouselck"] .camera_caption strong {
  display: block !important;
  color: #fff !important;
  margin: 0 !important;
  font-size: clamp(1.1rem, 2vw, 1.55rem) !important;
  line-height: 1.05 !important;
  font-weight: 800 !important;
  letter-spacing: -.02em !important;
  text-decoration: none !important;
}

/* Hide caption paragraphs/links so only the title remains visible. */
.rf-program-slider .camera_caption p,
.rf-program-slider .camera_caption a,
.rf-program-slider .camera_caption small,
.rf-program-slider .camera_caption span:not(:has(*)),
.container-top-a [id*="carouselck"] .camera_caption p,
.container-top-a [id*="carouselck"] .camera_caption a,
.container-top-a [id*="carouselck"] .camera_caption small,
.container-top-a [id*="carouselck"] .camera_caption span:not(:has(*)),
.top-a [id*="carouselck"] .camera_caption p,
.top-a [id*="carouselck"] .camera_caption a,
.top-a [id*="carouselck"] .camera_caption small,
.top-a [id*="carouselck"] .camera_caption span:not(:has(*)) {
  display: none !important;
}

@media (max-width: 760px) {
  .rf-program-slider .camera_caption,
  .container-top-a [id*="carouselck"] .camera_caption,
  .top-a [id*="carouselck"] .camera_caption {
    left: 12px !important;
    bottom: 12px !important;
    max-width: calc(100% - 24px) !important;
    padding: 9px 11px !important;
  }
}

/* Carousel CK duplicate caption fix: only show caption belonging to the active slide. */
.rf-program-slider .camera_caption,
.container-top-a [id*="carouselck"] .camera_caption,
.top-a [id*="carouselck"] .camera_caption {
  display: none !important;
}

.rf-program-slider .cameraSlide.cameracurrent .camera_caption,
.rf-program-slider .cameraSlide.cameraSlide.cameracurrent .camera_caption,
.rf-program-slider .cameraContent.cameracurrent .camera_caption,
.rf-program-slider .cameraSlide.camera_current .camera_caption,
.rf-program-slider .cameraContent.camera_current .camera_caption,
.container-top-a [id*="carouselck"] .cameraSlide.cameracurrent .camera_caption,
.container-top-a [id*="carouselck"] .cameraContent.cameracurrent .camera_caption,
.container-top-a [id*="carouselck"] .cameraSlide.camera_current .camera_caption,
.container-top-a [id*="carouselck"] .cameraContent.camera_current .camera_caption,
.top-a [id*="carouselck"] .cameraSlide.cameracurrent .camera_caption,
.top-a [id*="carouselck"] .cameraContent.cameracurrent .camera_caption,
.top-a [id*="carouselck"] .cameraSlide.camera_current .camera_caption,
.top-a [id*="carouselck"] .cameraContent.camera_current .camera_caption {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Fallback for Camera/Carousel CK: if active class is not exposed, hide the first stale caption that sits below/behind transitions. */
.rf-program-slider .camera_caption:not(:last-child),
.container-top-a [id*="carouselck"] .camera_caption:not(:last-child),
.top-a [id*="carouselck"] .camera_caption:not(:last-child) {
  pointer-events: none !important;
}

/* Menu dropdowns must always appear above the homepage carousel. */
.container-header,
.container-header .container-nav,
.container-header nav,
.container-header .mod-menu,
.container-header .navbar-nav,
.metismenu.mod-menu {
  position: relative !important;
  z-index: 5000 !important;
}

.container-header .mod-menu > li ul,
.metismenu.mod-menu > li ul,
.container-header .navbar-nav > li ul,
.container-header .mod-menu .mm-collapse,
.metismenu.mod-menu .mm-collapse {
  z-index: 6000 !important;
}

.container-top-a,
.top-a,
.rf-program-slider,
.container-top-a [id*="carouselck"],
.top-a [id*="carouselck"],
.container-top-a .carouselck,
.top-a .carouselck {
  position: relative !important;
  z-index: 1 !important;
}

/* 2026 header/footer artwork. */
.container-header .brand-logo img,
.container-header .navbar-brand img,
.container-header .moduletable img,
.container-header .mod-custom img {
  width: min(100%, var(--rf-width)) !important;
  max-width: var(--rf-width) !important;
  max-height: none !important;
  aspect-ratio: 1746 / 332 !important;
  object-fit: cover !important;
  object-position: center center !important;
  border-radius: 0 !important;
}

.container-footer,
.footer {
  background: #fff !important;
  border-top: 4px solid var(--rf-purple) !important;
  margin-top: 28px !important;
  padding: 18px 0 24px !important;
}

.rf-footer-image,
.container-footer img,
.footer img {
  display: block !important;
  width: min(100%, var(--rf-width)) !important;
  max-width: var(--rf-width) !important;
  height: auto !important;
  margin: 0 auto !important;
  border-radius: 12px !important;
  box-shadow: 0 10px 26px rgba(95, 0, 87, .10) !important;
}

@media (max-width: 760px) {
  .container-header .brand-logo img,
  .container-header .navbar-brand img,
  .container-header .moduletable img,
  .container-header .mod-custom img {
    aspect-ratio: 1746 / 332 !important;
    min-height: 120px !important;
  }

  .rf-footer-image,
  .container-footer img,
  .footer img {
    border-radius: 0 !important;
  }
}

/* Header/footer final centering. */
.container-header .navbar-brand,
.container-header .brand-logo,
.container-header .brand-logo a {
  display: block !important;
  width: min(100%, var(--rf-width)) !important;
  max-width: var(--rf-width) !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

.container-footer .grid-child,
.footer .grid-child,
.container-footer .moduletable,
.footer .moduletable,
.rf-footer-wrap {
  display: block !important;
  width: min(100%, var(--rf-width)) !important;
  max-width: var(--rf-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: center !important;
}

.rf-footer-wrap {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.rf-footer-image {
  display: block !important;
  width: 100% !important;
  max-width: var(--rf-width) !important;
  height: auto !important;
  margin: 0 auto !important;
}

/* Same-program article list shown below programme/audio articles. */
.rf-same-category {
  clear: both !important;
  margin: 34px 0 10px !important;
  padding: 24px 26px !important;
  border: 1px solid rgba(95, 0, 87, .14) !important;
  border-radius: 18px !important;
  background: linear-gradient(180deg, rgba(95, 0, 87, .035), #fff 42%) !important;
  box-shadow: 0 14px 34px rgba(95, 0, 87, .07) !important;
}

.rf-same-category__title {
  margin: 0 0 16px !important;
  color: var(--rf-purple) !important;
  font-size: clamp(1.25rem, 2vw, 1.75rem) !important;
  line-height: 1.15 !important;
}

.rf-same-category__list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px 22px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.rf-same-category__item {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: baseline !important;
  gap: 12px !important;
  padding: 10px 0 !important;
  border-bottom: 1px solid rgba(95, 0, 87, .10) !important;
}

.rf-same-category__item a {
  color: var(--rf-purple) !important;
  font-weight: 750 !important;
  text-decoration-thickness: .08em !important;
  text-underline-offset: .16em !important;
}

.rf-same-category__item time {
  color: #6f6670 !important;
  font-size: .88rem !important;
  white-space: nowrap !important;
}

@media (max-width: 760px) {
  .rf-same-category {
    padding: 18px !important;
    border-radius: 14px !important;
  }

  .rf-same-category__list,
  .rf-same-category__item {
    display: block !important;
  }

  .rf-same-category__item time {
    display: block !important;
    margin-top: 4px !important;
  }
}

/* Compact same-program list, closer to Joomla category lists. */
.rf-same-category {
  margin: 22px 0 4px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.rf-same-category__title {
  margin: 0 0 10px !important;
  padding-bottom: 7px !important;
  border-bottom: 2px solid rgba(95, 0, 87, .18) !important;
  font-size: 1.25rem !important;
}

.rf-same-category__list {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

.rf-same-category__item {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  gap: 18px !important;
  padding: 7px 0 !important;
  border-bottom: 1px solid rgba(95, 0, 87, .12) !important;
}

.rf-same-category__item a {
  font-size: 1rem !important;
  line-height: 1.25 !important;
  font-weight: 650 !important;
}

.rf-same-category__item time {
  flex: 0 0 auto !important;
  font-size: .82rem !important;
}

@media (max-width: 760px) {
  .rf-same-category__item {
    display: block !important;
    padding: 9px 0 !important;
  }
}

/* Ràdio Falset now-playing module. */
.rf-nowplaying {
  position: relative !important;
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  gap: 18px !important;
  align-items: center !important;
  margin: 22px 0 24px !important;
  padding: 18px 22px !important;
  border-radius: 20px !important;
  border: 1px solid rgba(95, 0, 87, .13) !important;
  background:
    radial-gradient(circle at 12% 20%, rgba(95, 0, 87, .10), transparent 26%),
    linear-gradient(135deg, #fff, #fbf5fa) !important;
  box-shadow: 0 18px 42px rgba(95, 0, 87, .08) !important;
  overflow: hidden !important;
}

.rf-nowplaying__signal {
  display: grid !important;
  place-items: center !important;
  width: 54px !important;
  height: 54px !important;
  border-radius: 16px !important;
  color: #fff !important;
  background: var(--rf-purple) !important;
  font-weight: 900 !important;
  letter-spacing: -5px !important;
  padding-right: 6px !important;
}

.rf-nowplaying__eyebrow,
.rf-nowplaying__updated,
.rf-nowplaying__album {
  margin: 0 !important;
  color: #746776 !important;
  font-size: .88rem !important;
}

.rf-nowplaying__eyebrow {
  color: var(--rf-purple) !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
}

.rf-nowplaying__title {
  margin: 2px 0 1px !important;
  color: var(--rf-purple) !important;
  font-size: clamp(1.35rem, 2.4vw, 2.1rem) !important;
  line-height: 1.08 !important;
}

.rf-nowplaying__artist {
  margin: 0 !important;
  color: #1f1f23 !important;
  font-size: 1.02rem !important;
  font-weight: 700 !important;
}

.rf-nowplaying--with-history {
  grid-template-columns: auto minmax(0, .85fr) minmax(260px, 1fr) !important;
  align-items: start !important;
}

.rf-nowplaying__history-wrap {
  padding-left: 22px !important;
  border-left: 1px solid rgba(95, 0, 87, .16) !important;
}

.rf-nowplaying__history-wrap h3 {
  margin: 0 0 10px !important;
  color: var(--rf-purple) !important;
  font-size: 1.1rem !important;
}

.rf-nowplaying__history {
  display: grid !important;
  gap: 7px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.rf-nowplaying__history li {
  display: grid !important;
  grid-template-columns: 46px minmax(0, 1fr) !important;
  gap: 10px !important;
  align-items: baseline !important;
  color: #27242a !important;
  font-size: .95rem !important;
  line-height: 1.25 !important;
}

.rf-nowplaying__history time {
  color: var(--rf-purple) !important;
  font-weight: 800 !important;
  font-size: .82rem !important;
}

.rf-nowplaying.has-error {
  opacity: .78 !important;
}

.rf-nowplaying.is-loading .rf-nowplaying__title::after {
  content: '' !important;
  display: inline-block !important;
  width: .55em !important;
  height: .55em !important;
  margin-left: .4em !important;
  border-radius: 999px !important;
  background: var(--rf-purple) !important;
  animation: rfPulse 1s infinite ease-in-out !important;
}

@keyframes rfPulse {
  0%, 100% { opacity: .25; transform: scale(.75); }
  50% { opacity: 1; transform: scale(1); }
}

@media (max-width: 900px) {
  .rf-nowplaying,
  .rf-nowplaying--with-history {
    grid-template-columns: 1fr !important;
  }

  .rf-nowplaying__signal {
    display: none !important;
  }

  .rf-nowplaying__history-wrap {
    padding-left: 0 !important;
    border-left: 0 !important;
    border-top: 1px solid rgba(95, 0, 87, .16) !important;
    padding-top: 16px !important;
  }
}

/* Lighter one-line home now-playing treatment. */
.rf-now-home.rf-nowplaying,
.rf-nowplaying.rf-now-home {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 12px 0 16px !important;
  padding: 9px 14px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(95, 0, 87, .12) !important;
  background: rgba(95, 0, 87, .035) !important;
  box-shadow: none !important;
}

.rf-now-home .rf-nowplaying__signal {
  width: 26px !important;
  height: 26px !important;
  min-width: 26px !important;
  border-radius: 999px !important;
  font-size: .72rem !important;
  letter-spacing: -3px !important;
  padding-right: 4px !important;
}

.rf-now-home .rf-nowplaying__body {
  display: flex !important;
  align-items: baseline !important;
  gap: 8px !important;
  min-width: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
}

.rf-now-home .rf-nowplaying__eyebrow {
  flex: 0 0 auto !important;
  font-size: .76rem !important;
  letter-spacing: .04em !important;
  text-transform: none !important;
}

.rf-now-home .rf-nowplaying__title {
  margin: 0 !important;
  font-size: .98rem !important;
  line-height: 1.1 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.rf-now-home .rf-nowplaying__artist {
  order: 3 !important;
  margin: 0 !important;
  color: #4f4652 !important;
  font-size: .9rem !important;
  font-weight: 600 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.rf-now-home .rf-nowplaying__artist:not(:empty)::before {
  content: '· ' !important;
  color: rgba(95, 0, 87, .45) !important;
}

.rf-now-home .rf-nowplaying__album,
.rf-now-home .rf-nowplaying__updated {
  display: none !important;
}

@media (max-width: 760px) {
  .rf-now-home.rf-nowplaying,
  .rf-nowplaying.rf-now-home {
    border-radius: 14px !important;
  }

  .rf-now-home .rf-nowplaying__body {
    display: block !important;
    white-space: normal !important;
  }

  .rf-now-home .rf-nowplaying__artist:not(:empty)::before {
    content: '' !important;
  }
}

/* Extra-compact now-playing bar for RDS artist-song text. */
.rf-now-home.rf-nowplaying,
.rf-nowplaying.rf-now-home {
  max-width: 100% !important;
  margin: 6px 0 12px !important;
  padding: 6px 10px !important;
  min-height: 0 !important;
  border-radius: 10px !important;
  border-color: rgba(95, 0, 87, .10) !important;
  background: #fff !important;
  box-shadow: none !important;
}

.rf-now-home .rf-nowplaying__signal {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  font-size: .55rem !important;
  line-height: 1 !important;
  letter-spacing: -2px !important;
  opacity: .9 !important;
}

.rf-now-home .rf-nowplaying__body {
  gap: 6px !important;
  width: 100% !important;
}

.rf-now-home .rf-nowplaying__eyebrow {
  font-size: .72rem !important;
  font-weight: 800 !important;
  color: var(--rf-purple) !important;
}

.rf-now-home .rf-nowplaying__eyebrow::after {
  content: ':' !important;
}

.rf-now-home .rf-nowplaying__title {
  font-size: .86rem !important;
  font-weight: 700 !important;
  color: #2a252d !important;
}

.rf-now-home .rf-nowplaying__artist {
  display: none !important;
}

.rf-now-home.is-loading .rf-nowplaying__title::after {
  width: .42em !important;
  height: .42em !important;
}

/* Refined now-playing icon and size. */
.rf-now-home.rf-nowplaying,
.rf-nowplaying.rf-now-home {
  margin: 8px 0 16px !important;
  padding: 8px 13px !important;
  border-radius: 12px !important;
}

.rf-now-home .rf-nowplaying__signal {
  position: relative !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  border-radius: 9px !important;
  font-size: 0 !important;
  letter-spacing: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.rf-now-home .rf-nowplaying__signal::before,
.rf-now-home .rf-nowplaying__signal::after {
  content: '' !important;
  position: absolute !important;
  border: 2px solid rgba(255, 255, 255, .92) !important;
  border-left-color: transparent !important;
  border-bottom-color: transparent !important;
  border-radius: 999px !important;
  transform: rotate(-135deg) !important;
}

.rf-now-home .rf-nowplaying__signal::before {
  width: 13px !important;
  height: 13px !important;
  left: 8px !important;
  top: 8px !important;
}

.rf-now-home .rf-nowplaying__signal::after {
  width: 20px !important;
  height: 20px !important;
  left: 4px !important;
  top: 4px !important;
  opacity: .72 !important;
}

.rf-now-home .rf-nowplaying__eyebrow {
  font-size: .8rem !important;
}

.rf-now-home .rf-nowplaying__title {
  font-size: .96rem !important;
}

.rf-now-home .rf-nowplaying__eyebrow::after {
  content: '' !important;
}

/* Directe: integrate the live player into the now-playing card. */
.rf-now-directe.rf-nowplaying,
.rf-nowplaying.rf-now-directe {
  grid-template-columns: minmax(0, 1fr) minmax(280px, .9fr) !important;
  gap: 18px 26px !important;
  align-items: start !important;
}

.rf-now-directe .rf-nowplaying__player {
  grid-column: 1 / -1 !important;
  padding: 10px 12px !important;
  border-radius: 16px !important;
  background: rgba(95, 0, 87, .075) !important;
  border: 1px solid rgba(95, 0, 87, .12) !important;
}

.rf-now-directe .rf-nowplaying__player iframe {
  display: block !important;
  width: min(100%, 540px) !important;
  height: 78px !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
}

.rf-now-directe .rf-nowplaying__signal {
  display: none !important;
}

/* Hide the old player embedded in the Directe article once the module owns it. */
.itemid-30170 .com-content-article__body iframe[src*="usastreams.com/html5-player"] {
  display: none !important;
}

@media (max-width: 900px) {
  .rf-now-directe.rf-nowplaying,
  .rf-nowplaying.rf-now-directe {
    grid-template-columns: 1fr !important;
  }

  .rf-now-directe .rf-nowplaying__player iframe {
    width: 100% !important;
  }
}

/* Custom live player, replacing the external green iframe look. */
.rf-live-player {
  display: grid !important;
  grid-template-columns: auto minmax(120px, 1fr) minmax(130px, 180px) !important;
  align-items: center !important;
  gap: 14px !important;
  background: linear-gradient(135deg, #fff, rgba(95, 0, 87, .045)) !important;
}

.rf-live-player__button {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 54px !important;
  height: 54px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--rf-purple) !important;
  color: #fff !important;
  box-shadow: 0 12px 28px rgba(95, 0, 87, .20) !important;
  cursor: pointer !important;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease !important;
}

.rf-live-player__button:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 15px 30px rgba(95, 0, 87, .26) !important;
}

.rf-live-player__button::before {
  content: '' !important;
  width: 0 !important;
  height: 0 !important;
  border-top: 12px solid transparent !important;
  border-bottom: 12px solid transparent !important;
  border-left: 17px solid #fff !important;
  margin-left: 4px !important;
}

.rf-nowplaying.is-playing .rf-live-player__button {
  background: #40203d !important;
}

.rf-nowplaying.is-playing .rf-live-player__button::before {
  width: 16px !important;
  height: 20px !important;
  border: 0 !important;
  margin-left: 0 !important;
  background: linear-gradient(90deg, #fff 0 35%, transparent 35% 65%, #fff 65% 100%) !important;
}

.rf-live-player__button span {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}

.rf-live-player__meta {
  min-width: 0 !important;
}

.rf-live-player__meta strong {
  display: block !important;
  color: var(--rf-purple) !important;
  font-size: 1.05rem !important;
  line-height: 1.1 !important;
}

.rf-live-player__meta small {
  display: block !important;
  color: #665d68 !important;
  font-size: .84rem !important;
  margin-top: 2px !important;
}

.rf-live-player__volume {
  display: grid !important;
  grid-template-columns: auto minmax(70px, 1fr) !important;
  align-items: center !important;
  gap: 9px !important;
  margin: 0 !important;
  color: #665d68 !important;
  font-size: .78rem !important;
}

.rf-live-player__volume input {
  width: 100% !important;
  accent-color: var(--rf-purple) !important;
}

@media (max-width: 760px) {
  .rf-live-player {
    grid-template-columns: auto minmax(0, 1fr) !important;
  }

  .rf-live-player__volume {
    grid-column: 1 / -1 !important;
  }
}

/* Webcam timelapse module. */
.rf-webcams {
  margin: 18px 0 28px !important;
  padding: 24px !important;
  border-radius: 24px !important;
  border: 1px solid rgba(95, 0, 87, .12) !important;
  background:
    radial-gradient(circle at 8% 10%, rgba(95, 0, 87, .08), transparent 26%),
    linear-gradient(135deg, #fff, #fbf6fb) !important;
  box-shadow: 0 18px 42px rgba(95, 0, 87, .08) !important;
}

.rf-webcams__head {
  display: flex !important;
  align-items: baseline !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  margin-bottom: 18px !important;
}

.rf-webcams__head p,
.rf-webcams__head h2,
.rf-webcams__head span {
  margin: 0 !important;
}

.rf-webcams__head p {
  color: var(--rf-purple) !important;
  font-size: .78rem !important;
  font-weight: 850 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

.rf-webcams__head h2 {
  color: var(--rf-purple) !important;
  font-size: clamp(1.45rem, 2.3vw, 2.2rem) !important;
  line-height: 1.05 !important;
}

.rf-webcams__head span {
  color: #6f6670 !important;
  font-size: .92rem !important;
}

.rf-webcams__grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
}

.rf-webcam-card:first-child {
  grid-column: 1 / -1 !important;
}

.rf-webcam-card {
  overflow: hidden !important;
  border-radius: 18px !important;
  background: #fff !important;
  border: 1px solid rgba(95, 0, 87, .11) !important;
  box-shadow: 0 12px 28px rgba(95, 0, 87, .07) !important;
}

.rf-webcam-card__media {
  position: relative !important;
  aspect-ratio: 16 / 9 !important;
  background: rgba(95, 0, 87, .08) !important;
}

.rf-webcam-card__media img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.rf-webcam-card__body {
  display: flex !important;
  justify-content: space-between !important;
  gap: 12px !important;
  align-items: baseline !important;
  padding: 11px 14px !important;
}

.rf-webcam-card__body h3 {
  margin: 0 !important;
  color: var(--rf-purple) !important;
  font-size: 1.05rem !important;
}

.rf-webcam-card__body p {
  margin: 0 !important;
  color: #706573 !important;
  font-size: .85rem !important;
  white-space: nowrap !important;
}

.itemid-30169 .com-content-article__body table:has(img[src*="falset.net/webcams"]) {
  display: none !important;
}

@media (max-width: 760px) {
  .rf-webcams {
    padding: 16px !important;
    border-radius: 18px !important;
  }

  .rf-webcams__grid,
  .rf-webcam-card:first-child {
    display: block !important;
  }

  .rf-webcam-card {
    margin-bottom: 14px !important;
  }
}

/* Webcam module final layout: one equal-width camera per row. */
.rf-webcams__head {
  display: block !important;
  margin-bottom: 18px !important;
}

.rf-webcams__head p,
.rf-webcams__head span {
  display: none !important;
}

.rf-webcams__head h2 {
  margin: 0 !important;
  color: var(--rf-purple) !important;
  font-size: clamp(1.7rem, 3vw, 2.45rem) !important;
  line-height: 1.05 !important;
}

.rf-webcams__grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 18px !important;
}

.rf-webcam-card,
.rf-webcam-card:first-child {
  grid-column: auto !important;
  width: 100% !important;
}

.rf-webcam-card__media {
  aspect-ratio: 16 / 9 !important;
}

/* Webcam page: the timelapse module owns the page title. */
.itemid-30169 .com-content-article .page-header,
.itemid-30169 .com-content-article__body:empty,
.itemid-30169 main .com-content-article.item-page {
  display: none !important;
}

/* Force all webcam timelapse cards to the same visual size. */
.rf-webcam-card {
  display: grid !important;
  grid-template-rows: auto auto !important;
  width: 100% !important;
}

.rf-webcam-card__media {
  width: 100% !important;
  height: clamp(260px, 42vw, 520px) !important;
  aspect-ratio: auto !important;
  overflow: hidden !important;
}

.rf-webcam-card__media img,
.rf-webcam-card img[data-rf-webcam-image] {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center center !important;
}

@media (max-width: 760px) {
  .rf-webcam-card__media {
    height: clamp(190px, 56vw, 320px) !important;
  }
}

/* Strong override: webcam page must be a single equal-size column. */
.itemid-30169 .rf-webcams .rf-webcams__grid,
.itemid-30169 .rf-webcams__grid {
  display: flex !important;
  flex-direction: column !important;
  gap: 18px !important;
}

.itemid-30169 .rf-webcams .rf-webcam-card,
.itemid-30169 .rf-webcams .rf-webcam-card:first-child,
.itemid-30169 .rf-webcam-card,
.itemid-30169 .rf-webcam-card:first-child {
  display: block !important;
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}

.itemid-30169 .rf-webcams .rf-webcam-card__media,
.itemid-30169 .rf-webcam-card__media {
  width: 100% !important;
  height: 390px !important;
  aspect-ratio: auto !important;
}

.itemid-30169 .rf-webcams .rf-webcam-card__media img,
.itemid-30169 .rf-webcam-card__media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.itemid-30169 main,
.itemid-30169 main .com-content-article,
.itemid-30169 main .page-header,
.itemid-30169 main h1 {
  display: none !important;
}

@media (max-width: 760px) {
  .itemid-30169 .rf-webcams .rf-webcam-card__media,
  .itemid-30169 .rf-webcam-card__media {
    height: 240px !important;
  }
}

/* Custom player for audio embedded in articles. */
.rf-native-audio-hidden {
  display: none !important;
}

.rf-article-audio {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) minmax(120px, 180px) !important;
  align-items: center !important;
  gap: 16px !important;
  margin: 18px 0 24px !important;
  padding: 16px 18px !important;
  border: 1px solid rgba(95, 0, 87, .14) !important;
  border-radius: 20px !important;
  background:
    radial-gradient(circle at 6% 20%, rgba(95, 0, 87, .09), transparent 28%),
    linear-gradient(135deg, #fff, #fbf6fb) !important;
  box-shadow: 0 14px 32px rgba(95, 0, 87, .08) !important;
}

.rf-article-audio__play {
  position: relative !important;
  display: inline-grid !important;
  place-items: center !important;
  width: 54px !important;
  height: 54px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--rf-purple) !important;
  color: #fff !important;
  box-shadow: 0 12px 28px rgba(95, 0, 87, .20) !important;
  cursor: pointer !important;
}

.rf-article-audio__play::before {
  content: '' !important;
  width: 0 !important;
  height: 0 !important;
  border-top: 11px solid transparent !important;
  border-bottom: 11px solid transparent !important;
  border-left: 16px solid #fff !important;
  margin-left: 4px !important;
}

.rf-article-audio.is-playing .rf-article-audio__play::before {
  width: 16px !important;
  height: 20px !important;
  border: 0 !important;
  margin-left: 0 !important;
  background: linear-gradient(90deg, #fff 0 35%, transparent 35% 65%, #fff 65% 100%) !important;
}

.rf-article-audio__play span {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}

.rf-article-audio__label,
.rf-article-audio__title,
.rf-article-audio__times {
  margin: 0 !important;
}

.rf-article-audio__label {
  color: var(--rf-purple) !important;
  font-size: .78rem !important;
  font-weight: 850 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

.rf-article-audio__title {
  color: var(--rf-purple) !important;
  font-size: clamp(1.05rem, 1.8vw, 1.45rem) !important;
  line-height: 1.12 !important;
}

.rf-article-audio__bar {
  height: 9px !important;
  margin: 10px 0 6px !important;
  border-radius: 999px !important;
  background: rgba(95, 0, 87, .13) !important;
  overflow: hidden !important;
  cursor: pointer !important;
}

.rf-article-audio__bar span {
  display: block !important;
  width: 0;
  height: 100% !important;
  border-radius: inherit !important;
  background: var(--rf-purple) !important;
}

.rf-article-audio__times {
  display: flex !important;
  justify-content: space-between !important;
  color: #6b626d !important;
  font-size: .82rem !important;
}

.rf-article-audio__volume {
  display: grid !important;
  gap: 7px !important;
  margin: 0 !important;
  color: #6b626d !important;
  font-size: .78rem !important;
}

.rf-article-audio__volume input {
  width: 100% !important;
  accent-color: var(--rf-purple) !important;
}

@media (max-width: 760px) {
  .rf-article-audio {
    grid-template-columns: auto minmax(0, 1fr) !important;
    padding: 14px !important;
  }

  .rf-article-audio__volume {
    grid-column: 1 / -1 !important;
  }
}
