.rit-player-region{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:100; /* keep player above footers and normal content; below full-screen modals */
  /* Horizontal gradient: black -> very dark gray. Keep solid fallback for older browsers. */
  background-color: #000000;
  background-image: linear-gradient(90deg, #000000 0%, #1e1e1e 100%);
  color:#fff;
  /* Fixed height area for the persistent player (driven by CSS variable) */
  height: var(--rit-player-height);
  padding:6px 0;
  border-top-color: #feff0157;
  border-top-width: 1px;
  border-top-style: solid;
  /* Allow pointer events to pass through the player's background so
     it doesn't block clickable elements on the page underneath. */
  pointer-events: none;
}

/* Default player height variable (global) - overridden in the mobile media query further below */
:root {
  --rit-player-height: 80px;
}

/* Hide the native audio element UI inside the player region so browsers
   don't render a rectangular native control. The audio element remains
   in the DOM for playback but is visually hidden and non-interactive. */
.rit-player-region audio.rit-player__audio,
.rit-player audio.rit-player__audio,
.rit-player__audio {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  left: -9999px !important;
  pointer-events: none !important;
}

/* When the player is present, ensure the page content is padded so it
   isn't obscured by the fixed bottom player. We apply the padding to the
   body via a class added by the player JS. */
body.rit-player-open {
  padding-bottom: var(--rit-player-height) !important;
}
.rit-player{
  display:block; /* allow Bootstrap .row/.col to layout equally */
  height:100%;
  box-sizing:border-box;
  width:100%;
}
/* Re-enable pointer events for interactive elements inside the player
   so player controls and links remain clickable. */
.rit-player-region .rit-player,
.rit-player-region button,
.rit-player-region a,
.rit-player-region .rit-player__play-circle,
.rit-player-region .rit-player__actions,
.rit-player-region .rit-player__left,
.rit-player-region .rit-player__right {
  pointer-events: auto;
}
/* Ensure the inner container spans full width without changing the outer wrapper */
.rit-player .container{ max-width:100% !important; width:100% !important; padding-left:12px; padding-right:12px; }
/* title removed per user request */
.rit-player__title{ display:none; }
.rit-player__left{
  /* Left block should size to the player height and allow internal scrolling if needed */
  display:flex;
  align-items:center;
  /* Make the left block fill the available inner height (player height minus vertical padding) */
  max-height: calc(var(--rit-player-height) - 12px);
  overflow:hidden;
}
.rit-player__left .rit-player__view{
  width:100%;
  display:flex;
  align-items:center;
}
.rit-player__left img, .rit-player__left .blazy img{
  /* Ensure images from the grid/blazy view fit within the player's inner height */
  max-height: calc(var(--rit-player-height) - 12px);
  height:auto;
  width:auto;
  object-fit:cover;
  display:block;
}
.rit-player__left .title, .rit-player__left .views-field-title,
.rit-player__left .blazy .title{
  color:#fff;
  margin-left:8px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Three-column layout specifics */
.rit-player__left-col{
  display:flex;
  align-items:center;
}
.rit-player__center{
  padding: 0 12px;
  text-align: center;
}
.rit-player__center-row{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap; /* allow controls to wrap on narrow screens */
}
.rit-player__play-circle{
  width:48px;
  height:48px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  line-height:1;
  padding:0;
}
/* progress removed per user request */
.rit-player__right-col{
  display:flex;
  align-items:center;
  justify-content:flex-end;
}

/* Default: no flex overrides; handled in media queries below */

/* Keep the right column anchored to the right, but ensure the internal
   block content is left-aligned. This prevents blocks that use text-align:right
   from flipping the content direction while preserving the column position. */
.rit-player__right-col > *,
.rit-player__right-col .block,
.rit-player__right-col .block * {
  text-align: left !important;
}

/* Adjust the three-column proportions so left and right columns are wider
   and the central controls column is narrower. These rules apply on
   viewport widths where the left block is visible (above small screens).
   We use flex-basis / max-width to override Bootstrap's column sizing. */
@media (min-width: 577px) {
  /* Tablet and desktop: 40% | 20% | 40% */
  .rit-player .rit-player__left-col  { flex: 0 0 40% !important; max-width: 40% !important; }
  .rit-player .rit-player__center    { flex: 0 0 20% !important; max-width: 20% !important; }
  .rit-player .rit-player__right-col { flex: 0 0 40% !important; max-width: 40% !important; text-align: right; }
}

@media (max-width: 768px){
  .rit-player__play-circle{width:40px;height:40px;font-size:16px}
  .rit-player__progress{width:65%}
}
/* On small screens: make left column dominant (70%), center smaller (30%);
   hide the right column to avoid overflow of action buttons/controls. */
@media (max-width: 576px){
  /* Mobile: 70% | 30% | hidden */
  .rit-player .rit-player__left-col { flex: 0 0 70% !important; max-width: 70% !important; display:flex !important; }
  .rit-player .rit-player__center   { flex: 0 0 30% !important; max-width: 30% !important; padding:0 6px; }
  .rit-player__center-row{ margin:0 auto; }
  .rit-player__play-circle{ width:36px; height:36px; font-size:14px; }
  .rit-player__right-col{ display:none !important; }
}
.rit-player__controls .btn{
  min-width:34px;
}
@media (max-width: 576px){
  .rit-player__title{display:none}
}
@media (max-width: 576px){
  .rit-player__title{display:none}
}

/* Ensure pages that use Drupal's off-canvas / flex main canvas (e.g. 
   .dialog-off-canvas-main-canvas .d-flex.flex-column.h-100) also receive
   the bottom padding so their internal footer isn't hidden by the fixed
   player. Body gets the class from the player JS; apply padding to the
   main canvas used by the theme's layout. */
body.rit-player-open .dialog-off-canvas-main-canvas,
body.rit-player-open .dialog-off-canvas-main-canvas.d-flex.flex-column.h-100,
body.rit-player-open .dialog-off-canvas-main-canvas > .d-flex.h-100 {
  padding-bottom: var(--rit-player-height) !important;
  box-sizing: border-box;
}

/* Additional, higher-specificity rules to cover footers placed inside
   flex containers or using the #site-footer id and .site-footer class.
   This helps when themes place the footer inside a full-height container
   that ignores body padding. */
body.rit-player-open #site-footer,
body.rit-player-open footer.site-footer,
body.rit-player-open .site-footer {
  padding-bottom: var(--rit-player-height) !important;
  box-sizing: border-box;
  /* Keep footer above page content but let the persistent player sit on top
     so it is always visible when fixed at bottom. Do not force a z-index
     on the footer which can cause it to overlay the player. */
}

/* Target the common Drupal wrapper that sometimes contains the footer
   so the inner footer content is not obscured by the fixed player. */
body.rit-player-open .dialog-off-canvas-main-canvas #site-footer,
body.rit-player-open .dialog-off-canvas-main-canvas footer.site-footer {
  padding-bottom: var(--rit-player-height) !important;
  padding-top: var(--section-block-padding-y);
}

/* Support for dxpr_theme which uses its own footer/container classes and
   a full-height sticky-footer layout. Ensure those containers also get
   bottom padding so the fixed player does not visually cover the footer. */
/* (dxpr_theme-specific rules removed: the rit_bs5 subtheme applies
   generic protections above for common footer/container patterns. If
   you later enable a contrib theme that needs special handling we can
   reintroduce targeted rules.) */

/* ------------------------------------------------------------------
   Player: left column full-height + images full-height
   Ensures the block placed inside .rit-player__left occupies the full
   height of the player and that images inside that block also stretch
   to the available height while keeping their aspect ratio.
   ------------------------------------------------------------------ */
.rit-player{
  /* Player uses the global --rit-player-height variable for sizing */
  height: var(--rit-player-height);
  min-height: var(--rit-player-height);
}

.rit-player .rit-player__left-col,
.rit-player .rit-player__center,
.rit-player .rit-player__right-col {
  height: 100%;
  display: flex;
  align-items: stretch;
  min-width: 0; /* prevent min-content width from constraining children in Firefox */
}

.rit-player__left{
  height: 100%;
  width: 100%;
  display: flex;
  align-items: stretch; /* children will stretch vertically */
  justify-content: flex-start;
  overflow: hidden;
  /* Allow for player padding when computing inner max heights */
  max-height: calc(var(--rit-player-height) - 12px);
}

.rit-player__center-row {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Make images inside the left block fill the player's height while
   preserving aspect ratio. object-fit:cover will crop when necessary
   to avoid distortion. */
.rit-player__left img,
.rit-player__left picture,
.rit-player__left .media img {
  height: 100%;
  width: auto;
  max-width: none;
  /* Allow images to fill available inner height while keeping aspect ratio */
  max-height: calc(var(--rit-player-height) - 12px);
  object-fit: cover;
  display: block;
}

/* ----------------------------------------------
   Support: Unformatted list (.views-row) markup in left player
   Same compact layout using the simpler Views structure (no grid wrapper)
   ---------------------------------------------- */
.rit-player-region .rit-player__left .view .view-content,
.rit-player-region .rit-player__left .view .view-content .views-row {
  height: 100% !important;
}
.rit-player-region .rit-player__left .view .view-content .views-row {
  display: grid;
  grid-template-columns: auto minmax(0,1fr); /* image | texts */
  grid-template-rows: auto auto;   /* title | subtitle */
  align-items: center;
  align-content: center;
  column-gap: 8px;
  row-gap: 0;
  height: calc(var(--rit-player-height) - 12px);
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
}
.rit-player-region .rit-player__left .view .view-content .views-row .views-field-field-image {
  grid-column: 1;
  grid-row: 1 / -1;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.rit-player-region .rit-player__left .view .view-content .views-row .views-field-field-image img {
  height: 100% !important;
  width: auto !important;
  max-width: none !important;
  object-fit: cover !important;
  display: block !important;
}
.rit-player-region .rit-player__left .view .view-content .views-row .views-field-title,
.rit-player-region .rit-player__left .view .view-content .views-row .views-field-field-animateur {
  grid-column: 2;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}
.rit-player-region .rit-player__left .view .view-content .views-row .views-field-title {
  grid-row: 1;
  margin-left: 0 !important;
}
.rit-player-region .rit-player__left .view .view-content .views-row .views-field-field-animateur {
  grid-row: 2;
  margin-top: -2px !important; /* visually tighten space to title */
}
.rit-player-region .rit-player__left .view .view-content .views-row .views-field-title .field-content,
.rit-player-region .rit-player__left .view .view-content .views-row .views-field-title .field-content a,
.rit-player-region .rit-player__left .view .view-content .views-row .views-field-field-animateur .field-content {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
  display: block;
}
@media (max-width: 576px) {
  /* Mobile: reduce the global player height */
  :root {
    --rit-player-height: 64px;
  }
  .rit-player__left img {
    width: auto;
    max-width: 100%;
    object-fit: cover;
  }
}

/* (Removed Firefox-specific overrides for programme_en_cour block_2; generic rules below are sufficient cross-browser.) */

/* Defensive: avoid min-content clipping in Firefox within nested flex grids */
.rit-player-region .rit-player__left,
.rit-player-region .rit-player__left .block,
.rit-player-region .rit-player__left .views-element-container,
.rit-player-region .rit-player__left .view,
.rit-player-region .rit-player__left .view .view-content,
.rit-player-region .rit-player__left .views-row,
.rit-player-region .rit-player__left .rit-player-left-item,
.rit-player-region .rit-player__left .rit-player-left-item__text {
  min-width: 0 !important;
}

/* Left player: force the embedded View and inner wrappers to fill height */
.rit-player-region .rit-player__left .views-element-container,
.rit-player-region .rit-player__left .view,
.rit-player-region .rit-player__left .view .view-content,
.rit-player-region .rit-player__left .view .view-content .item-list,
.rit-player-region .rit-player__left .view .view-content .blazy,
.rit-player-region .rit-player__left .view .view-content .blazy .grid,
.rit-player-region .rit-player__left .view .view-content .blazy .grid__content {
  height: 100% !important;
}
.rit-player-region .rit-player__left .view .view-content ul.blazy {
  margin: 0 !important;
  padding: 0 !important;
}
.rit-player-region .rit-player__left .view .view-content ul.blazy > li.grid {
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
}

/* Left player: image left (fixed to player height), texts stacked on the right */
.rit-player-region .rit-player__left .view .view-content .grid__content {
  display: grid;
  grid-template-columns: auto minmax(0,1fr); /* image | text */
  grid-template-rows: auto auto; /* title | subtitle */
  grid-auto-flow: row;
  grid-auto-rows: auto;
  align-items: center; /* vertical alignment of items within their grid areas */
  align-content: center; /* pack the two rows together; avoid stretched rows */
  column-gap: 8px; /* slightly tighter spacing between image and text */
  row-gap: 0; /* no vertical spacing between the two text lines */
  height: calc(var(--rit-player-height) - 12px);
  width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}
.rit-player-region .rit-player__left .view .view-content .views-field-field-image {
  grid-column: 1;
  grid-row: 1 / -1; /* span all text rows */
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.rit-player-region .rit-player__left .view .view-content .views-field-field-image img {
  height: 100% !important; /* match player inner height */
  width: auto !important;
  max-width: none !important;
  object-fit: cover !important;
  display: block !important;
}
.rit-player-region .rit-player__left .view .view-content .views-field-title,
.rit-player-region .rit-player__left .view .view-content .views-field-field-animateur {
  grid-column: 2; /* text column */
  min-width: 0; /* allow ellipsis */
  margin: 0 !important; /* remove default margins from views fields */
  padding: 0 !important; /* remove default paddings if any */
  line-height: 1 !important; /* compress line boxes */
}
.rit-player-region .rit-player__left .view .view-content .views-field-title { grid-row: 1; }
.rit-player-region .rit-player__left .view .view-content .views-field-field-animateur { grid-row: 2; }

/* Remove legacy left margin on title within the left player view; we already
   create spacing via column-gap in the grid. */
.rit-player-region .rit-player__left .view .view-content .views-field-title {
  margin-left: 0 !important;
}

/* Tighten inner elements to remove residual spacing */
.rit-player-region .rit-player__left .view .view-content .views-field-title .field-content,
.rit-player-region .rit-player__left .view .view-content .views-field-field-animateur .field-content {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}
.rit-player-region .rit-player__left .view .view-content .views-field-title .field-content a {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
  display: block;
}

/* ----------------------------------------------
   Compact layout for custom Twig (programme_en_cour block_2)
   ---------------------------------------------- */
.rit-player-region .rit-player__left .rit-player-left-item {
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  grid-template-rows: auto auto;
  align-items: stretch; /* allow text column to fill height */
  align-content: center;
  column-gap: 8px;
  row-gap: 0;
  height: calc(var(--rit-player-height) - 12px);
  width: 100%;
  overflow: hidden;
}
.rit-player-region .rit-player__left .rit-player-left-item__image {
  grid-column: 1; grid-row: 1 / -1;
  height: 100%;
  display: flex; align-items: center; justify-content: flex-start;
}
.rit-player-region .rit-player__left .rit-player-left-item__image img {
  height: 100% !important; width: auto !important; max-width: none !important; object-fit: cover !important; display: block !important;
}
.rit-player-region .rit-player__left .rit-player-left-item__text {
  grid-column: 2;
  grid-row: 1 / -1; /* span full height alongside image */
  min-width: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center; /* center the two text lines vertically */
  row-gap: 5px; /* add slight vertical space between title and subtitle */
}
.rit-player-region .rit-player__left .rit-player-left-item__title,
.rit-player-region .rit-player__left .rit-player-left-item__subtitle {
  min-width: 0; /* prevent min-content sizing in Firefox */
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
  white-space: normal !important; /* allow wrapping */
  overflow: visible !important;   /* no truncation */
  text-overflow: clip !important; /* remove ellipsis */
  overflow-wrap: normal !important; /* do not break words arbitrarily */
  word-break: keep-all !important;  /* never break inside words */
  hyphens: manual;                   /* only break at explicit hyphens */
}
.rit-player-region .rit-player__left .rit-player-left-item__title a { display:block; margin:0 !important; padding:0 !important; line-height:1 !important; }
.rit-player-region .rit-player__left .rit-player-left-item__title a,
.rit-player-region .rit-player__left .rit-player-left-item__subtitle a {
  min-width: 0; /* ensure anchors don't enforce min-content width */
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: keep-all !important; /* avoid splitting words like "Anim\nateur" */
  hyphens: manual;
}
.rit-player-region .rit-player__left .rit-player-left-item__title { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; }
.rit-player-region .rit-player__left .rit-player-left-item__subtitle { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; }
/* When our compact Twig item sits inside a generic .views-row grid (fallback
   rules above), ensure it spans all columns so it uses the full available
   width of the left player column. */
/* Use a descendant selector (not just direct child) to survive extra wrappers
   Drupal injects for contextual links when logged in. */
.rit-player-region .rit-player__left .view .view-content .views-row .rit-player-left-item {
  grid-column: 1 / -1;
  width: 100% !important;
  min-width: 0;
}
/* (Removed :has() Firefox-specific neutralizer; inner item already spans grid.) */
/* ----------------------------------------------
   Support: Views Bootstrap Grid markup in left player
   Ensures the same image-left/text-right compact layout works when
   the view outputs .views-view-grid with a .row and a single item.
   ---------------------------------------------- */
.rit-player-region .rit-player__left .views-view-grid,
.rit-player-region .rit-player__left #views-bootstrap-programme-en-cour-block-2 {
  height: 100% !important;
}
.rit-player-region .rit-player__left .views-view-grid .row {
  height: 100%;
  align-items: center; /* center content vertically within the row */
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.rit-player-region .rit-player__left .views-view-grid .row > div,
.rit-player-region .rit-player__left .views-view-grid .row > [class*="col"] {
  display: grid;
  grid-template-columns: auto minmax(0,1fr); /* image | texts */
  grid-template-rows: auto auto; /* title | subtitle */
  align-items: center;
  align-content: center;
  column-gap: 8px;
  row-gap: 0;
  height: calc(var(--rit-player-height) - 12px);
  width: 100%;
  overflow: hidden;
  padding: 0 !important; /* remove gutter padding, we manage spacing via gaps */
}
.rit-player-region .rit-player__left .views-view-grid .views-field-field-image {
  grid-column: 1;
  grid-row: 1 / -1;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.rit-player-region .rit-player__left .views-view-grid .views-field-field-image img {
  height: 100% !important;
  width: auto !important;
  max-width: none !important;
  object-fit: cover !important;
  display: block !important;
}
.rit-player-region .rit-player__left .views-view-grid .views-field-title,
.rit-player-region .rit-player__left .views-view-grid .views-field-field-animateur {
  grid-column: 2;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}
.rit-player-region .rit-player__left .views-view-grid .views-field-title {
  grid-row: 1;
  margin-left: 0 !important;
}
.rit-player-region .rit-player__left .views-view-grid .views-field-field-animateur {
  grid-row: 2;
}
.rit-player-region .rit-player__left .views-view-grid .views-field-title .field-content,
.rit-player-region .rit-player__left .views-view-grid .views-field-title .field-content a,
.rit-player-region .rit-player__left .views-view-grid .views-field-field-animateur .field-content {
  /* Allow wrapping but keep words intact; override any nowrap/ellipsis */
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: normal !important;
  word-break: keep-all !important;
  hyphens: manual;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
  display: block;
}
.rit-player-region .rit-player__left .view .view-content .views-field-title .field-content,
.rit-player-region .rit-player__left .view .view-content .views-field-title a {
  display: block;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: normal !important;
  word-break: keep-all !important;
}
.rit-player-region .rit-player__left .view .view-content .views-field-field-animateur .field-content {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: normal !important;
  word-break: keep-all !important;
}

/* Ensure the block placed inside the left column fills its width.
   The inner view and block elements become flex containers and their
   direct children share remaining space. Images remain auto-sized and
   text fields can truncate with ellipsis. */
.rit-player__left .rit-player__view,
.rit-player__left .rit-player__view .block,
.rit-player__left .block {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.rit-player__left .rit-player__view > * {
  flex: 1 1 100%;
  width: 100%;
  box-sizing: border-box;
  min-width: 0; /* allow children to shrink and text to ellipsize */
}
/* Keep images from stretching horizontally; place them before the text */
.rit-player__left .rit-player__view img,
.rit-player__left .rit-player__view picture,
.rit-player__left .rit-player__view .media img {
  flex: 0 0 auto;
  margin-right: 8px;
}
/* Ensure any .block inside the left view fills the available width
   and is not limited by generic .block max-width or margins. */
.rit-player .rit-player__left .rit-player__view .block {
  width: 100% !important;
  max-width: none !important;
  flex: 1 1 100% !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
/* Ensure titles expand and ellipsize when there's not enough room */
.rit-player__left .title,
.rit-player__left .views-field-title,
.rit-player__left .blazy .title {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Strong overrides for common Views / container wrappers that may be
   inserted by modules or the view template. These ensure the view's
   root elements are not capped by max-width or margins and fill the
   left column horizontally. We scope to the player to avoid site-wide
   side-effects. */
.rit-player__left .views,
.rit-player__left .view,
.rit-player__left .views-row,
.rit-player__left .views-view,
.rit-player__left .view-content,
.rit-player__left .view-header,
.rit-player__left .container,
.rit-player__left .card,
.rit-player__left .card-body {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

/* Ensure direct children of the rit-player__view fill the width */
.rit-player__left .rit-player__view > * {
  width: 100% !important;
}

/* Target the actual rendered structure: views-element-container and view
   are present in the page. Force them and common inner wrappers to fill
   the left column horizontally. */
.rit-player__left > .views-element-container,
.rit-player__left .views-element-container,
.rit-player__left .views-element-container .view,
.rit-player__left .views-element-container .view .view-content,
.rit-player__left .views-element-container .view .view-content .item-list,
.rit-player__left .views-element-container .view .view-content .item-list .grid__content {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  height: 100% !important;
}

/* Override Bootstrap's .img-fluid which sets max-width:100% and height:auto.
   Inside the left player we need the image to fill the player's inner height. */
.rit-player__left img.img-fluid,
.rit-player__left .field__item img.img-fluid,
.rit-player__left .grid__content img.img-fluid {
  max-width: none !important;
  width: auto !important;
  height: 100% !important;
  object-fit: cover !important;
  box-sizing: border-box !important;
  display: block !important;
}

/* ----------------------------------------------
   Link styling ONLY for Views/Blazy content inside
   the player left/right regions
   - Color: var(--rit-red)
   - Bold
   - No underline by default; underline on hover/focus
   ---------------------------------------------- */
/* Left region: Links inside actual View content only */
.rit-player-region .rit-player__left .view .view-content a,
.rit-player-region .rit-player__left .view .views-row a,
.rit-player-region .rit-player__left .views .view-content a,
.rit-player-region .rit-player__left .blazy .view-content a,
/* Right region: Links inside actual View content only */
.rit-player-region .rit-player__right .view .view-content a,
.rit-player-region .rit-player__right .view .views-row a,
.rit-player-region .rit-player__right .views .view-content a,
.rit-player-region .rit-player__right .blazy .view-content a {
  color: var(--rit-red) !important;
  font-weight: 700;
  text-decoration: none;
}
.rit-player-region .rit-player__left .view .view-content a:visited,
.rit-player-region .rit-player__left .view .views-row a:visited,
.rit-player-region .rit-player__left .views .view-content a:visited,
.rit-player-region .rit-player__left .blazy .view-content a:visited,
.rit-player-region .rit-player__right .view .view-content a:visited,
.rit-player-region .rit-player__right .view .views-row a:visited,
.rit-player-region .rit-player__right .views .view-content a:visited,
.rit-player-region .rit-player__right .blazy .view-content a:visited {
  color: var(--rit-red) !important;
  text-decoration: none;
}
.rit-player-region .rit-player__left .view .view-content a:hover,
.rit-player-region .rit-player__left .view .views-row a:hover,
.rit-player-region .rit-player__left .views .view-content a:hover,
.rit-player-region .rit-player__left .blazy .view-content a:hover,
.rit-player-region .rit-player__left .view .view-content a:focus,
.rit-player-region .rit-player__left .view .views-row a:focus,
.rit-player-region .rit-player__left .views .view-content a:focus,
.rit-player-region .rit-player__left .blazy .view-content a:focus,
.rit-player-region .rit-player__left .view .view-content a:focus-visible,
.rit-player-region .rit-player__left .view .views-row a:focus-visible,
.rit-player-region .rit-player__left .views .view-content a:focus-visible,
.rit-player-region .rit-player__left .blazy .view-content a:focus-visible,
.rit-player-region .rit-player__right .view .view-content a:hover,
.rit-player-region .rit-player__right .view .views-row a:hover,
.rit-player-region .rit-player__right .views .view-content a:hover,
.rit-player-region .rit-player__right .blazy .view-content a:hover,
.rit-player-region .rit-player__right .view .view-content a:focus,
.rit-player-region .rit-player__right .view .views-row a:focus,
.rit-player-region .rit-player__right .views .view-content a:focus,
.rit-player-region .rit-player__right .blazy .view-content a:focus,
.rit-player-region .rit-player__right .view .view-content a:focus-visible,
.rit-player-region .rit-player__right .view .views-row a:focus-visible,
.rit-player-region .rit-player__right .views .view-content a:focus-visible,
.rit-player-region .rit-player__right .blazy .view-content a:focus-visible {
  color: var(--rit-red) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Ensure contextual menu links keep their default admin styles even when
   they appear inside .view-content (e.g., contextual links on nodes rendered
   by a View inside the player regions). Use revert to hand styling back to
   Drupal core/admin CSS and override our red/bold rules above. */
.rit-player-region .rit-player__left .view .view-content .contextual a,
.rit-player-region .rit-player__left .view .view-content .contextual-links a,
.rit-player-region .rit-player__right .view .view-content .contextual a,
.rit-player-region .rit-player__right .view .view-content .contextual-links a {
  color: revert !important;
  font-weight: revert;
  text-decoration: revert;
}
.rit-player-region .rit-player__left .view .view-content .contextual a:hover,
.rit-player-region .rit-player__left .view .view-content .contextual a:focus,
.rit-player-region .rit-player__left .view .view-content .contextual-links a:hover,
.rit-player-region .rit-player__left .view .view-content .contextual-links a:focus,
.rit-player-region .rit-player__right .view .view-content .contextual a:hover,
.rit-player-region .rit-player__right .view .view-content .contextual a:focus,
.rit-player-region .rit-player__right .view .view-content .contextual-links a:hover,
.rit-player-region .rit-player__right .view .view-content .contextual-links a:focus {
  color: revert !important;
  text-decoration: revert;
}

/* Contextual menu links: no overrides here; let Drupal core/admin CSS apply
   their default styles. Our link rules above are scoped to .view .view-content
   and .views-row, which do not include contextual links. */

/* ---------------------------------------------------------------
   Scoped overrides for programme_en_cour (block_2) in player
   Ensure the entire block and its contents use full width in Firefox.
   --------------------------------------------------------------- */
#block-rit-bs5-views-block-programme-en-cour-block-2 .view-content {
  display: flex !important;
  align-items: center;
  width: 100% !important;
  height: 100% !important;
}
#block-rit-bs5-views-block-programme-en-cour-block-2 .view-content > .views-row {
  display: block !important;
  flex: 1 1 100% !important;
  width: 100% !important;
  min-width: 0 !important;
}
#block-rit-bs5-views-block-programme-en-cour-block-2 {
  display: block !important;
  width: 100% !important;
}
#block-rit-bs5-views-block-programme-en-cour-block-2 [data-block="player_left"] {
  display: block !important;
  width: 100% !important;
}
#block-rit-bs5-views-block-programme-en-cour-block-2 .view {
  display: block !important;
  width: 100% !important;
}
#block-rit-bs5-views-block-programme-en-cour-block-2 .views-element-container,
#block-rit-bs5-views-block-programme-en-cour-block-2 .view,
#block-rit-bs5-views-block-programme-en-cour-block-2 .view .view-content {
  min-width: 0 !important;
}
/* Ensure the block stretches as a flex child of the player left container */
.rit-player__left > #block-rit-bs5-views-block-programme-en-cour-block-2 {
  flex: 1 1 100% !important;
  width: 100% !important;
  min-width: 0 !important;
}
#block-rit-bs5-views-block-programme-en-cour-block-2 .views-row .rit-player-left-item {
  display: grid !important;
  grid-template-columns: auto minmax(0,1fr) !important;
  column-gap: 8px !important;
  height: calc(var(--rit-player-height) - 12px) !important;
  width: 100% !important;
  min-width: 0 !important;
}
#block-rit-bs5-views-block-programme-en-cour-block-2 .rit-player-left-item__text,
#block-rit-bs5-views-block-programme-en-cour-block-2 .rit-player-left-item__title,
#block-rit-bs5-views-block-programme-en-cour-block-2 .rit-player-left-item__subtitle,
#block-rit-bs5-views-block-programme-en-cour-block-2 .rit-player-left-item__title a,
#block-rit-bs5-views-block-programme-en-cour-block-2 .rit-player-left-item__subtitle a {
  width: 100% !important;
  min-width: 0 !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: normal !important;
  word-break: keep-all !important;
  hyphens: manual !important;
}
/* (Removed ID-scoped overrides for programme_en_cour block_2; generic rules cover it.) */
