tabbed-content {
  display: block;
  width: 100%;
  overflow: hidden;

  /* Header Section */

  .tabbed-content__header {
    margin-bottom: 3.6rem;

    @media (min-width: 768px) {
      margin-bottom: 4.8rem;
    }

    .tabbed-content__title {
      margin-bottom: 2.4rem;
    }

    .tabbed-content__description {
      max-width: 70rem;
      font-size: 1.8rem;
      line-height: 1.3;
    }
  }

  /* Tabs */

  .tabbed-content__tabs {
    gap: 1.6rem;
    display: flex;
    overflow-x: scroll;
    -webkit-overflow-scrolling: touch;
    margin-right: calc(var(--xo-container-gap, 20px) * -1);
    margin-bottom: 3.6rem;
    margin-left: calc(var(--xo-container-gap, 20px) * -1);
    padding-right: var(--xo-container-gap, 20px);
    padding-left: var(--xo-container-gap, 20px);
    scrollbar-width: none;
    scroll-snap-type: x mandatory;

    @media (min-width: 768px) {
      gap: 2.2rem;
      margin-bottom: 4.8rem;
    }

    &::-webkit-scrollbar {
      display: none;
    }

    .tabbed-content__tab {
      justify-content: center;
      align-items: center;
      flex: 0 0 auto; /* fix largeur mobile */
      min-width: max-content; /* largeur basée sur contenu */
      gap: 0.6rem;
      display: flex;
      border: none;
      border-radius: 1.5rem;
      padding: 1.2rem 2rem;
      background-color: rgb(var(--color-button));
      cursor: pointer;
      color: rgb(var(--color-button-text));
      scroll-snap-align: center;

      &[aria-selected="true"] {
        background-color: rgb(var(--color-accent));
        font-weight: 600;
      }
    }
  }

  /* Panels */

  .tabbed-content__panel {
    display: none;

    &.active {
      display: block;
    }

    .tabbed-content__content {
      flex-direction: column;
      align-items: center;
      gap: 2.4rem;
      display: flex;

      @media (min-width: 768px) {
        flex-direction: row;
        gap: 6rem;
      }
    }
  }

  /* Colonnes — fix débordement flex */
  .tabbed-content__content-left-column,
  .tabbed-content__content-right-column {
    min-width: 0;
  }

  .tabbed-content__content-left-column {
    width: 100%;

    @media (min-width: 768px) {
      width: 60%;
    }

    /* image au-dessus du texte sur mobile */
    @media (max-width: 767px) {
      order: -1;
    }

    .tabbed-content__content-left-column__image-wrapper {
      position: relative;
      overflow: hidden;
      border-radius: 1.5rem;
      aspect-ratio: 825 / 648;

      /* image fluide mobile */
      @media (max-width: 767px) {
        aspect-ratio: auto;
      }
    }

    .tabbed-content__content-left-column__image {
      position: absolute;
      width: 100%;
      height: 100%;
      object-fit: cover;
      inset: 0;

      /* image responsive mobile */
      @media (max-width: 767px) {
        position: relative;
        height: auto;
      }
    }
  }

  .tabbed-content__content-right-column {
    width: 100%;

    @media (min-width: 768px) {
      width: 40%;
    }

    .tabbed-content__content-right-column__heading {
      margin-bottom: 1.6rem;
    }

    .tabbed-content__content-right-column__text {
      font-size: 1.6rem;
      line-height: 1.3;

      @media (min-width: 768px) {
        font-size: 1.8rem;
      }
    }

    .tabbed-content__content-right-column__text ul {
      margin: 2.4rem 0 0;
      padding: 0;
      list-style: none;

      @media (min-width: 768px) {
        margin: 4.8rem 0 0;
      }
    }

    .tabbed-content__content-right-column__text li {
      border-bottom: 1px solid rgb(var(--color-border));
      padding: 2.4rem 0;

      &:last-child {
        border-bottom: none;
      }

      strong {
        display: block;
        margin-bottom: 1.5rem;
        font-size: 1.4rem;
        font-weight: 600;

        @media (min-width: 768px) {
          font-size: 1.8rem;
        }
      }

      p {
        font-size: 1.6rem;
      }
    }
  }
}

@media (max-width: 767px) {
  /* pas de scroll horizontal, pas de marges négatives */
  tabbed-content .tabbed-content__tabs {
    overflow: visible;
    scroll-snap-type: none;

    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;

    display: flex;
    flex-direction: column; /* stack */
    gap: 10px;
  }

  tabbed-content .tabbed-content__tab {
    width: 100%;
    justify-content: flex-start; /* icône + texte alignés à gauche */
    white-space: normal;         /* autorise retour à la ligne si besoin */
    text-align: left;
  }
}