html,body, * {
    overscroll-behavior: none;
}

/* Autoriser à nouveau le scroll vertical globalement,
   tout en gardant le contrôle local sur certains conteneurs */
body {
    overscroll-behavior-y: auto;
}

/* Carrousels horizontaux: laisser passer le scroll vertical
   et éviter le blocage quand le curseur est dessus */
.work-videos {
    overscroll-behavior-y: contain; /* ne pas capturer/outrepasser le scroll horizontal au détriment du vertical */
    touch-action: pan-y; /* mobile: autorise le défilement vertical naturel */
    scroll-behavior: smooth;
}

/* Amélioration pour permettre le scroll vertical même sur les carrousels horizontaux */
.work-videos:hover {
    overscroll-behavior-y: auto;
}

/* S'assurer que le scroll vertical fonctionne même quand on survole les éléments de scroll horizontal */
.work-videos * {
    pointer-events: auto;
}

.no-scrollbar {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

/* Homepage Video Scaling Effect
.video-section {
    transition: all 0.1s ease-out;
}

.video-scale-wrapper {
    transition: all 0.1s ease-out;
    will-change: width, height;
}

.video-inner-container {
    transition: border-radius 0.3s ease-out;
} */

/* Iframe Vimeo responsive dans les conteneurs vidéo */
.video-container .video-player-container iframe {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
}

/* Animation du loader */
@keyframes spin {
    to { transform: rotate(360deg); }
}

.video-loader-spinner {
    animation: spin 0.8s linear infinite;
}

.video-loader.active {
    display: flex !important;
}

/* État : Vidéo en lecture */
.video-container.video-active .video-thumbnail,
.video-container.video-active .video-click-overlay {
    display: none !important;
}

.video-container.video-active .video-player-container {
    display: block !important;
    z-index: 15;
}

/* Modal vidéo - États et comportements spécifiques */
.video-modal.active {
    display: flex !important;
    opacity: 1 !important;
}

.video-modal-side.disabled {
    opacity: 0.2 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

/* Iframe vidéo dans le modal */
.modal-video-player iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}


/* Horizontal scroll */

.work-sections {
    position: sticky;
    overflow: hidden;
  }
  
  .work-videos {
    display: flex;
    will-change: transform;
  }
  
  /* Fix black frames on videos inside transformed/pinned containers (Safari/Chrome) */
  .work-videos .video-container,
  .work-videos .video-preview {
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    -webkit-transform: translateZ(0);
  }
  
  .work-videos .video-preview {
    contain: paint;
  }
  
  .work-title {
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 5;
    color: white;
  }


/* Menu */

/* Styles pour le menu principal */
.primary-nav .menu > li {
    display: inline-block;
    position: relative;
    margin-right: 1.25rem;
}

.primary-nav .menu > li:last-child {
    margin-right: 0;
}

.primary-nav .menu a {
    text-decoration: none;
    color: inherit;
    display: inline-block;
    padding: 0.25rem 0;
}

/* Sous-menus */
.primary-nav .sub-menu {
    position: absolute;
    left: 0;
    top: 100%;
    min-width: 200px;
    color: #fff;
    display: none;
}

.primary-nav .sub-menu li {
    display: block;
    margin: 0;
}

.primary-nav .sub-menu a {
    display: block;
    color: #fff;
}

.primary-nav .menu li.is-open > .sub-menu,
.primary-nav .menu li:focus-within > .sub-menu {
    display: block;
}

/* Logo */
.site-branding img,
.custom-logo-link img {
    width: auto;
    height: auto;
}

/* Talents Page */
#talentsPageList ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

#talentsPageList a {
    text-decoration: none;
}

#talentsPageList a .link-text {
    display: inline-flex;
    align-items: center;
}

#talentsPageList a .link-text::before,
#talentsPageList a .link-text::after {
    display: inline-block;
    opacity: 0;
    max-width: 0;
    transition: opacity 0.2s ease-in-out, max-width 0.2s ease-in-out, margin 0.2s ease-in-out;
    overflow: hidden;
    white-space: nowrap;
}

#talentsPageList a .link-text::before {
    content: '[';
    margin-right: 0;
}

#talentsPageList a .link-text::after {
    content: ']';
    margin-left: 0;
}

#talentsPageList a:hover .link-text::before,
#talentsPageList a:hover .link-text::after {
    opacity: 1;
    max-width: 1em;
}

#talentsPageList a:hover .link-text::before {
    margin-right: 0.25em;
}

#talentsPageList a:hover .link-text::after {
    margin-left: 0.25em;
}

/* Ombre pour les sections */
.section-top-shadow {
    box-shadow: 0 -2px 3px -1px rgba(255, 255, 255, 0.25);
}

/* Animation for talents list */
.talent-item {
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.talent-item.is-visible {
    opacity: 1;
}

/* Homepage Editor Carousel Stack */
.editor-videos-container {
    position: relative;
    width: 100%;
    height: 100%;
}

.editor-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 1;
    transition: transform 1s cubic-bezier(0.87, 0, 0.13, 1), opacity 1s cubic-bezier(0.87, 0, 0.13, 1);
    transform: translateX(0);
    will-change: transform, opacity;
}

.editor-video.is-previous {
    transform: translateX(-100%);
    pointer-events: none;
}

.editor-video.hidden {
    display: none;
}

.editor-nav-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Editor video titles visibility */
.editor-video .scaling-wrapper .mix-blend-exclusion {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
}

.editor-video.active .scaling-wrapper .mix-blend-exclusion {
    opacity: 1;
    visibility: visible;
}
