.video-js .vjs-progress-control:hover .vjs-time-tooltip {
    top: unset;
    bottom: 20px;
    transform: translateX(-50%);
    padding: 10px;
    border-radius: 5px;
}

.tooltip-container {
    display: flex;
    flex-direction: row;
    font-family: 'Montserrat';
    gap: 10px;
    align-items: center;
}

.tooltip-preview {
    width: 160px;
    height: 90px;
    background-repeat: no-repeat;
    border-radius: 4px;
    flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.tooltip-text-container {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;
}

.tooltip-time,
.tooltip-marker {
    white-space: nowrap;
    text-shadow: 0 0 4px rgba(0, 0, 0, .75);
    text-align: left;
    font-weight: 500;
}

.vjs-mouse-display .vjs-time-tooltip {
    background-color: #00000070;
}

.vjs-play-progress .vjs-time-tooltip {
    display: none !important;
}

.video-js .vjs-progress-control {
    height: 20px;
}

.video-js .vjs-progress-holder,
.video-js .vjs-load-progress,
.video-js .vjs-play-progress,
.video-js .vjs-load-progress div {
    background-color: transparent;
}

/* Hide standard VideoJS progress elements */
.video-js .vjs-load-progress,
.video-js .vjs-play-progress {
    display: none !important;
}

/* Disable pointer events on standard progress bar */
.video-js .vjs-progress-control .vjs-progress-holder {
    background-color: transparent !important;
}

/* Disable standard seek bar */
.video-js .vjs-progress-control .vjs-slider {
    pointer-events: none !important;
}

/* Custom marker container */
.vjs-marker-container {
    height: 100%;
    position: absolute;
    inset: 0;
    z-index: 35;
    pointer-events: auto !important;
}

/* Marker segments */
.vjs-marker-segment {
    position: absolute;
    height: 100%;
    top: 0;
    display: flex;
    pointer-events: auto !important;
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
}

.vjs-marker-container.dragging {
    cursor: grabbing !important;
}

.vjs-marker-container.dragging .vjs-marker-segment {
    cursor: grabbing !important;
}

.vjs-marker-segment-inner {
    position: relative;
    width: 100%;
    height: 100%;
}

/* Layer base (background) */
.vjs-marker-segment-base {
    position: absolute;
    inset: 0;
    background-color: rgba(255,255,255,.3);
}

/* Layer buffer */
.vjs-marker-segment-buffer {
    position: absolute;
    inset: 0;
    background-color: rgba(255,255,255,.5);
    clip-path: inset(0 100% 0 0);
    z-index: 1;
}

/* Layer play */
.vjs-marker-segment-play {
    position: absolute;
    inset: 0;
    background-color: #E7302A;
    clip-path: inset(0 100% 0 0);
    z-index: 2;
}

/* Mantieni i vecchi container nascosti per compatibilità */
.vjs-marker-player, 
.vjs-marker-loaded, 
.vjs-marker-holder {
    display: none;
}

.video-js .vjs-control-bar {
  height: 15em;
  z-index: 8000;
}

.video-js .vjs-play-progress:before {
    color: var(--primary-color);
}

.video-js .vjs-progress-holder .vjs-play-progress {
    z-index: 40;
}

.video-js .vjs-play-progress:before {
    font-size: 1.5em;
    line-height: 0.2em;
}

.vjs-marker-player {
    clip-path: inset(0 100% 0 0);
}

.vjs-marker-loaded {
    clip-path: inset(0 100% 0 0);
}

.vjs-marker {
  display: none; /* Nascondi i vecchi marker */
}

/* Hover effect sui segmenti */
.vjs-marker-segment:hover .vjs-marker-segment-base,
.vjs-marker-segment:hover .vjs-marker-segment-buffer,
.vjs-marker-segment:hover .vjs-marker-segment-play {
    transform: scaleY(2);
    transform-origin: center;
}

.vjs-marker-segment-base,
.vjs-marker-segment-buffer,
.vjs-marker-segment-play {
    transition: transform 0.2s ease;
}
.vjs-tip {
  visibility: hidden;
  display: block;
  opacity: 0.8;
  padding: 5px;
  font-size: 10px;
  position: absolute;
  bottom: 14px;
  z-index: 100000;
}
.vjs-tip .vjs-tip-arrow {
  background: url(data:image/gif;base64,R0lGODlhCQAJAIABAAAAAAAAACH5BAEAAAEALAAAAAAJAAkAAAIRjAOnwIrcDJxvwkplPtchVQAAOw==) no-repeat top left;
  bottom: 0;
  left: 50%;
  margin-left: -4px;
  background-position: bottom left;
  position: absolute;
  width: 9px;
  height: 5px;
}
.vjs-tip .vjs-tip-inner {
  border-radius: 3px;
  -moz-border-radius: 3px;
  -webkit-border-radius: 3px;
  padding: 5px 8px 4px 8px;
  background-color: black;
  color: white;
  max-width: 200px;
  text-align: center;
}
.vjs-break-overlay {
  visibility: hidden;
  position: absolute;
  z-index: 100000;
  top: 0;
}
.vjs-break-overlay .vjs-break-overlay-text {
  padding: 9px;
  text-align: center;
}

/* Top gradient overlay for info button visibility - now tied to control bar */
.vjs-info-button-gradient {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 100px;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);
  pointer-events: none;
  z-index: 0;
}

/* Info Button */
.video-js .vjs-control-bar .vjs-info-button {
  position: fixed;
  top: 15px;
  right: 15px;
  width: 3em;
  height: 3em;
  cursor: pointer;
  z-index: 1;
  padding: 0.4em;
  /* border: 2px solid white; */
  border-radius: 50%;
}

/* Info Overlay */
.video-js .vjs-info-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10000;
  pointer-events: none;
  transition: background-color 0.3s ease;
}

/* Info Sidebar */
.video-js .vjs-info-overlay .vjs-info-sidebar {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  background-color: rgba(20, 20, 20, 0.95);
  backdrop-filter: blur(10px);
  color: #ffffff;
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.video-js .vjs-info-overlay.active .vjs-info-sidebar {
  transform: translateX(0);
}

/* Small screens (< 834px): sidebar in overlay, backdrop visible */
/* 834px = 250px / 0.30 (per garantire almeno 250px alla sidebar al 30%) */
@media (max-width: 833px) {
  .video-js .vjs-info-overlay.active {
    pointer-events: auto;
    background-color: rgba(0, 0, 0, 0.5);
  }
  
  .video-js .vjs-info-overlay .vjs-info-sidebar {
    width: 100%;
  }
}

/* Large screens (>= 834px): video shrinks, no backdrop, sidebar has min 250px */
@media (min-width: 834px) {
  .video-js .vjs-info-overlay.active {
    pointer-events: none;
    background-color: transparent;
  }
  
  .video-js .vjs-info-overlay .vjs-info-sidebar {
    width: 30%;
    min-width: 250px;
    pointer-events: auto;
  }
  
  /* When sidebar is active, shrink video and control bar */
  .video-container .video-js.info-sidebar-open .vjs-tech {
    width: 70% !important;
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .video-container .video-js.info-sidebar-open .vjs-control-bar {
    width: 70% !important;
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .video-container .video-js.info-sidebar-open .vjs-preview-overlay {
    width: 70% !important;
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }
}

/* Info Header */
.video-js .vjs-info-overlay .vjs-info-sidebar .vjs-info-header {
  position: relative;
  flex-shrink: 0;
  height: 60px;
}

/* Close Button */
.video-js .vjs-info-overlay .vjs-info-sidebar .vjs-info-close {
  position: absolute;
  top: 15px;
  right: 15px;
  background: transparent;
  border: none;
  color: #ffffff;
  font-size: 32px;
  cursor: pointer;
  padding: 5px 10px;
  line-height: 1;
  z-index: 1;
}

/* Info Content */
.video-js .vjs-info-overlay .vjs-info-sidebar .vjs-info-content {
  flex: 1;
  overflow-y: auto;
  padding: 20px 30px 30px 30px;
  font-size: 16px;
  line-height: 1.6;
}

/* Custom scrubber (cerchietto) */
.vjs-custom-scrubber {
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 1em;
  height: 1em;
  background-color: var(--primary-color, #E7302A);
  border-radius: 50%;
  z-index: 100;
  pointer-events: none;
  transition: transform 0.1s ease;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.5);
}

/* Hover effect on scrubber */
.vjs-progress-holder:hover .vjs-custom-scrubber {
  transform: translate(-50%, -50%) scale(1.3);
}

/* While dragging, make scrubber larger */
.vjs-marker-container.dragging ~ .vjs-custom-scrubber {
  transform: translate(-50%, -50%) scale(1.5);
}

/* Preview Overlay durante il drag della progressbar */
.vjs-preview-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 5000;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s ease;
  display: none;
}

.vjs-preview-overlay.active {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  opacity: 1;
}

.vjs-preview-overlay-image {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background-color: #000; /* Sfondo nero per le bande */
  display: flex;
  align-items: center;
  justify-content: center;
}

.vjs-preview-overlay-image-inner {
  width: 100%;
  aspect-ratio: 16 / 9; /* Mantiene aspect ratio del video */
  max-height: 100%;
  background-repeat: no-repeat;
  background-size: 500% 500%; /* Sprite sheet 5x5 */
  background-position: 0% 0%;
}

.vjs-preview-overlay-info {
  position: relative;
  bottom: 100px;
  left: 50%;
  transform: translateX(-50%);
  background-color: rgba(0, 0, 0, 0.85);
  color: white;
  padding: 10px 20px;
  border-radius: 6px;
  font-family: 'Montserrat', sans-serif;
  font-size: 16px;
  font-weight: 500;
  white-space: nowrap;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
  z-index: 1;
  backdrop-filter: blur(4px);
  width: fit-content;
  max-width: 80%;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Mobile responsiveness */
@media (max-width: 768px) {
  .vjs-preview-overlay-info {
    font-size: 14px;
    padding: 8px 16px;
  }
}

/* Control Bar Extras - Time Display and Chapter Title */
.vjs-control-bar-extras {
  display: flex;
  align-items: center;
  padding: 0 10px;
  flex-shrink: 0;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease, visibility 0.2s ease;
  height: min-content;
  position: absolute;
  left: 10px;
  bottom: 75px;
  max-width: calc(100% - 20px);
  opacity: 1;
  visibility: visible;
}

/* Hide extras during drag/seek */
.vjs-control-bar-extras.hidden-during-drag {
  opacity: 0;
  visibility: hidden;
}

.vjs-chevron-icon svg {
    transform: translate3d(-2px, 1px, 0px);
}

.vjs-chapter-title-display {
  color: white;
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-left: 12px;
}

.vjs-time-display-extended {
  color: white;
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  font-weight: 400;
  white-space: nowrap;
  opacity: 0.9;
}

/* Hide chapter title when empty */
.vjs-chapter-title-display:empty {
  display: none;
}

/* Hide audio button for videos without audio */
.video-js:has(video[data-has-audio="false"]) .vjs-volume-panel {
  display: none !important;
}

/* Desktop: shift extras when audio track menu is open */
@media (min-width: 769px) {
  .video-js .vjs-audio-button:hover ~ .vjs-control-bar-extras,
  .video-js .vjs-audio-button.vjs-hover ~ .vjs-control-bar-extras,
  .video-js .vjs-audio-button .vjs-menu:not(.vjs-hidden) ~ .vjs-control-bar-extras {
    transform: translateX(80px);
  }
}

/* Mobile: keep extras in place and reduce size */
@media (max-width: 768px) {
  .vjs-control-bar-extras {
    gap: 8px;
    padding: 0 8px;
  }
  
  .vjs-chapter-title-display {
    font-size: 12px;
  }
  
  .vjs-time-display-extended {
    font-size: 11px;
  }
}

/* Make chapter title clickable */
.vjs-chapter-title-display {
  cursor: pointer;
  transition: opacity 0.2s ease;
  user-select: none;
}

.vjs-chapter-title-display:hover {
  opacity: 0.8;
}

.vjs-chapter-title-display:active {
  opacity: 0.6;
}

/* Chapters Sidebar Container */
.vjs-chapters-sidebar-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9000;
  pointer-events: none;
  transition: background-color 0.3s ease;
}

/* Chapters Sidebar */
.vjs-chapters-sidebar {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  background-color: rgba(20, 20, 20, 0.95);
  backdrop-filter: blur(10px);
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.vjs-chapters-sidebar-overlay.active .vjs-chapters-sidebar {
  transform: translateX(0);
}

/* Small screens (< 834px): sidebar in overlay, backdrop visible */
/* 834px = 250px / 0.30 (per garantire almeno 250px alla sidebar al 30%) */
@media (max-width: 833px) {
  .vjs-chapters-sidebar-overlay.active {
    pointer-events: auto;
    background-color: rgba(0, 0, 0, 0.5);
  }
  
  .vjs-chapters-sidebar {
    width: 100%;
  }
}

/* Large screens (>= 834px): video shrinks, no backdrop, sidebar has min 250px */
@media (min-width: 834px) {
  .vjs-chapters-sidebar-overlay.active {
    pointer-events: none;
    background-color: transparent;
  }
  
  .vjs-chapters-sidebar {
    width: 30%;
    min-width: 250px;
    pointer-events: auto;
  }
  
  /* When sidebar is active, shrink video and control bar */
  .video-container .video-js.chapters-sidebar-open .vjs-tech {
    width: 70% !important;
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .video-container .video-js.chapters-sidebar-open .vjs-control-bar {
    width: 70% !important;
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .video-container .video-js.chapters-sidebar-open .vjs-preview-overlay {
    width: 70% !important;
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }

  /* Sposta il pulsante info quando il pannello dei capitoli è aperto */
  .video-container .video-js.chapters-sidebar-open .vjs-info-button {
    right: calc(30% + 15px);
    transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .video-container .video-js.chapters-sidebar-open .vjs-info-button-gradient {
    width: 70%;
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }
}

/* Sidebar Header */
.vjs-chapters-sidebar-header {
  padding: 20px 20px 15px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-shrink: 0;
}

.vjs-chapters-sidebar-title {
  color: white;
  font-family: 'Montserrat', sans-serif;
  font-size: 18px;
  font-weight: 600;
  margin: 0;
}

.video-js button.vjs-chapters-sidebar-close {
  background: transparent;
  border: none;
  color: white;
  font-size: 28px;
  cursor: pointer;
  padding: 5px 10px;
  line-height: 1;
  opacity: 0.8;
  transition: opacity 0.2s ease;
}

.video-js button.vjs-chapters-sidebar-close:hover {
  opacity: 1;
}

/* Chapters List */
.vjs-chapters-list {
  flex: 1;
  overflow-y: auto;
  padding: 10px 0;
}

/* Chapter Item */
.vjs-chapter-item {
  display: flex;
  align-items: center;
  padding: 12px 20px;
  cursor: pointer;
  transition: background-color 0.2s ease;
  border-left: 3px solid transparent;
}

.vjs-chapter-item:hover {
  background-color: rgba(255, 255, 255, 0.08);
}

.vjs-chapter-item.active {
  background-color: rgba(57, 196, 163, 0.15);
  border-left-color: #39C4A3;
}

/* Chapter Thumbnail */
.vjs-chapter-thumbnail {
  width: 120px;
  height: 68px;
  flex-shrink: 0;
  border-radius: 6px;
  overflow: hidden;
  background-color: rgba(0, 0, 0, 0.3);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.vjs-chapter-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Chapter Info */
.vjs-chapter-info {
  flex: 1;
  margin-left: 15px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.vjs-chapter-label {
  color: white;
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
}

.vjs-chapter-time {
  color: rgba(255, 255, 255, 0.7);
  font-family: 'Montserrat', sans-serif;
  font-size: 12px;
  font-weight: 400;
}

.vjs-chapter-item.active .vjs-chapter-time {
  color: #39C4A3;
}

/* Video container shrinking when sidebar is open */
.video-container.chapters-sidebar-open {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Mobile: chapters list smaller items */
@media (max-width: 768px) {
  .vjs-chapters-sidebar-header {
    padding: 15px 15px 12px 15px;
  }

  .vjs-chapters-sidebar-title {
    font-size: 16px;
  }

  .vjs-chapters-sidebar-close {
    font-size: 24px;
  }

  .vjs-chapter-item {
    padding: 10px 15px;
  }

  .vjs-chapter-thumbnail {
    width: 100px;
    height: 56px;
  }

  .vjs-chapter-info {
    margin-left: 12px;
  }

  .vjs-chapter-label {
    font-size: 13px;
  }

  .vjs-chapter-time {
    font-size: 11px;
  }
}

/* Scrollbar styling for chapters list */
.vjs-chapters-list::-webkit-scrollbar {
  width: 8px;
}

.vjs-chapters-list::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.05);
}

.vjs-chapters-list::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.2);
  border-radius: 4px;
}

.vjs-chapters-list::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.3);
}

/* Speed button styles */
.video-js .vjs-control-bar .vjs-speed-button {
  position: absolute;
  bottom: 15px;
  right: 120px;
  width: max-content;
  height: 40px;
  background: transparent;
  border: none;
  color: white;
  cursor: pointer;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
}

.video-js .vjs-control-bar .vjs-speed-button .vjs-icon-placeholder {
  position: relative;
  top: -15px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
}

.video-js .vjs-control-bar .vjs-speed-button .vjs-icon-placeholder svg {
  width: 100%;
  height: 100%;
}

.video-js .vjs-control-bar .vjs-speed-display {
  position: absolute;
  bottom: 2px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 10px;
  font-weight: 500;
  line-height: 1;
  color: white;
}

.video-js .vjs-control-bar .vjs-speed-menu {
  position: absolute;
  bottom: 100%;
  right: 0;
  background: rgba(0, 0, 0, 0.9);
  border-radius: 4px;
  padding: 4px 0;
  margin-bottom: 4px;
  min-width: 80px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  z-index: 1000;
  backdrop-filter: blur(10px);
}

.video-js .vjs-control-bar .vjs-speed-option {
  display: block;
  width: 100%;
  background: transparent;
  border: none;
  color: white;
  padding: 8px 12px;
  text-align: center;
  cursor: pointer;
  font-size: 12px;
  transition: background-color 0.2s ease;
  line-height: 1;
}

.video-js .vjs-control-bar .vjs-speed-option:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

.video-js .vjs-control-bar .vjs-speed-option.active {
  background-color: rgba(255, 255, 255, 0.2);
  font-weight: 600;
}

/* Responsive adjustments for speed button */
@media (max-width: 768px) {
  .video-js .vjs-control-bar .vjs-speed-button {
    right: 117px;
    height: 35px;
    bottom: 17px;
  }
  
  .video-js .vjs-control-bar .vjs-speed-display {
    font-size: 9px;
  }
  
  .video-js .vjs-control-bar .vjs-speed-menu {
    min-width: 70px;
  }
  
  .video-js .vjs-control-bar .vjs-speed-option {
    padding: 6px 8px;
    font-size: 11px;
  }
}

.vjs-control.vjs-button.vjs-speed-button {
    display: flex;
    gap: 17px;

    .vjs-speed-display,
    .vjs-icon-placeholder {
        position: static;
    }
}