/* Kwk Menu - single DOM (desktop + mobile drawer) */

.kwkmenu {
  position: relative;
  --kwkmenu-panel-width: clamp(320px, 390px, 100vw);
}

body.kwkmenu-body-lock {
  overflow: hidden;
}

/* Common link styling (do not target tag names) */
.kwkmenu__link {
  color: inherit;
}

.kwkmenu__link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* BO style: hover colours via CSS variables (set inline when configured) */

.kwkmenu__link:hover {
--kwk-bg-hover: transparent;
--kwk-txt-hover: #329B9F;
background-color: var(--kwk-bg-hover);
color: var(--kwk-txt-hover);
}

/* BO style: bold / underline */
.kwkmenu__link--bold {
  font-weight: bold;
}

.kwkmenu__link--underline {
  text-decoration: underline;
}

.kwkmenu__link--bold-hover:hover {
  font-weight: bold;
}

.kwkmenu__link--underline-hover:hover {
  text-decoration: underline;
}

/* Drawer wrapper: desktop = normal flow. Mobile transform is injected per-menu in tpl (dynamic breakpoint). */
.kwkmenu__drawer {
  position: relative;
  transform: none;
  background: transparent;
}

.kwkmenu__mobile-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 9998;
}

.kwkmenu__mobile-overlay[hidden] {
  display: none !important;
}

/* Bouton d’ouverture du menu mobile (style type « NOS PRODUITS ») */
.kwkmenu__mobile-trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 1rem !important;
  background-color: #000000 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 5px;
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: .2s linear;
}

.kwkmenu__mobile-trigger:hover,
.kwkmenu__mobile-trigger:focus-visible {
  color: #fff !important;
  background-color: #287C7F !important;
}

/* .kwkmenu__mobile-trigger-icon {
  display: block;
  width: 22px;
  height: 2px;
  background: currentColor;
  box-shadow: 0 5px 0 currentColor, 0 10px 0 currentColor;
  flex-shrink: 0;
} */
.kwkmenu__mobile-trigger-label {
  white-space: nowrap;
}

/* Panel headers only relevant in drawer mode (drawer-open). */
.kwkmenu__panel-header {
  display: none;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 1rem;
}

.kwkmenu__panel-body {
  flex: 1;
  overflow: auto;
}

/********************************************************/
/************ Style des menus en mode panel ************/
.kwkmenu[data-kwkmenu-is-mobile="true"] {
  [data-display-mobile="0"]{
    display: none;
  }

  /* In drawer mode, dropdowns become level-2 panels (visibility via transform for animation) */
  .kwkmenu__dropdown,
  .kwkmenu__subpanel,
  .kwkmenu__column-panel {
    display: flex;
    position: absolute;
    top: 0;
    bottom: 0;
    width: var(--kwkmenu-panel-width);
    max-width: 100%;
    height: 100%;
    overflow: visible;
    padding: 0;
    box-shadow: none;
    background: #fff;
    flex-direction: column;
    z-index: 9999;
    transition: transform 500ms cubic-bezier(0.190, 1.000, 0.560, 1.000),
                visibility 0s linear 500ms;
    transform: translateX(-100%);
    visibility: hidden;
    pointer-events: none;
  }

  .kwkmenu__dropdown[aria-hidden="false"],
  .kwkmenu__subpanel[aria-hidden="false"],
  .kwkmenu__column-panel[aria-hidden="false"] {
    transform: translateX(0);
    visibility: visible;
    pointer-events: auto;
    transition: transform 500ms cubic-bezier(0.190, 1.000, 0.560, 1.000),
                visibility 0s linear 0s;
  }

  /* Niveau 3 fermé : passer sous le contenu du niveau 2 (header + body) */
  .kwkmenu__dropdown .kwkmenu__panel-header,
  .kwkmenu__dropdown .kwkmenu__panel-body {
    position: relative;
    z-index: 1;
  }
  .kwkmenu__column-panel[aria-hidden="true"] {
    z-index: -1;
  }
  .kwkmenu__column-panel[aria-hidden="false"] {
    z-index: 1;
  }

  .kwkmenu__panel-header {
    display: flex;
    border-bottom: solid 1px #e9ecef;
    background: #f8f9fa;

    .kwkmenu__panel-close {
      background-color: transparent;
    }
  }


  /* Sous-onglets (niveau 2 et 3) : header plus aéré en mobile */
  .kwkmenu__dropdown .kwkmenu__panel-header,
  .kwkmenu__subpanel .kwkmenu__panel-header,
  .kwkmenu__column-panel .kwkmenu__panel-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1.25rem 1rem;
    background-color: #000000;
    border-left: solid 1px #000000;
    color: #fff;
    svg{
      fill: #fff;
    }
  }

  .kwkmenu__panel-body {
    background-color: #f8f9fa;

    .kwkmenu__tab-link {
      background-color: #ffffff;
      border-bottom: solid 1px #e9ecef;
      font-size: 1rem;
    }

    .kwkmenu__item-link,
    .kwkmenu__link{
      background-color: white;
      padding: 0.75rem 1rem;
      border-bottom: 1px solid #e9ecef;
      text-decoration: none;
      text-transform: none;
      &:has(> img){
        padding: 0;
      }
    }

    .kwkmenu__panel-body-aftermenu{
      margin-top: 20px;
      padding: 20px 30px;
      padding-bottom: 150px;
      .kwkmenu__panel-body-aftermenu-content{
        .kwkmenu__panel-body-aftermenu-content-item{
            a{
              width: 75%;
            }
        }
      }
    }

  }

  .kwkmenu__dropdown .kwkmenu__panel-body,
  .kwkmenu__subpanel .kwkmenu__panel-body,
  .kwkmenu__column-panel .kwkmenu__panel-body {
    border-left: solid 1px #dee2e6;

    /*CONTENU ADDITIONNEL : retirer le display none si on veut les faire apparaître dans ce menu*/
    .kwkmenu__tab-over,
    .kwkmenu__tab-under {
      display: none;
    }

    /* 2eme niveau */
    .kwkmenu__wraps {
      grid-template-columns: 1fr;
      gap: 0;

      .kwkmenu__wrap {
        min-width: 0;
        width: 100%;

        .kwkmenu__columns {
          grid-template-columns: 1fr !important;
          gap: 0;

          .kwkmenu__column {

            .kwkmenu__column-title--has-items {
              cursor: pointer !important;
              align-items: center;
              justify-content: space-between;
              width: 100%;
              font-size: 1.125rem;
            }
          }
        }
      }
    }

    /* 3eme niveau */
    .kwkmenu__items {
      .kwkmenu__item {
        padding-left: 0;
        .kwkmenu__item-link {
          padding: 0.75rem 1rem;
          background-color: white;
        }
      }
    }

    /* Items / colonnes CMS & catégories avec image : 50×50 + texte à droite */
    .kwkmenu__column-title:has(> .kwkmenu__column-icon),
    .kwkmenu__item-link:has(> .kwkmenu__item-icon) {
      display: flex !important;
      flex-direction: row !important;
      align-items: center;
      gap: 0.75rem;
      text-align: left;
    }

    .kwkmenu__column-icon,
    .kwkmenu__item-icon {
      width: 50px;
      height: 50px;
      object-fit: cover;
      flex-shrink: 0;
      margin: 0 !important;
    }

    .kwkmenu__column-title:has(> .kwkmenu__column-icon) {
      .kwkmenu__item-label {
        flex: 1;
        min-width: 0;
      }

      > .material-icons {
        margin-left: auto;
        flex-shrink: 0;
      }
    }
  }

  /* Drawer open: 1 panneau visible, contenu = 3 panneaux qu’on fait glisser */
  .kwkmenu__drawer {
    z-index: 9999;
    background: #fff;
    width: var(--kwkmenu-panel-width);
    overflow-x: hidden;
    transition: 500ms cubic-bezier(0.190, 1.000, 0.560, 1.000);
  }

  .kwkmenu__panels {
    position: relative;
    width: calc(3 * var(--kwkmenu-panel-width));
    height: 100%;
    min-height: 100%;
    transform: translateX(0);
    transition: transform 500ms cubic-bezier(0.190, 1.000, 0.560, 1.000);
  }

  .kwkmenu--drawer-level-2 .kwkmenu__panels {
    transform: translateX(calc(-1 * var(--kwkmenu-panel-width)));
  }

  .kwkmenu--drawer-level-3 .kwkmenu__panels {
    transform: translateX(calc(-2 * var(--kwkmenu-panel-width)));
  }


  /* En drawer : masquer la liste d’items sous le titre de colonne ; seul le titre ouvre le panneau niveau 3 */
  .kwkmenu__panel--level-2 .kwkmenu__column .kwkmenu__items {
    display: none;
  }

  .kwkmenu__column-panel .kwkmenu__panel-header {
    flex-shrink: 0;
  }

  .kwkmenu__tab {
    position: static;
    /* allow panels to position relative to drawer */
  }

  .kwkmenu__tab-link {
    width: 100%;
    padding: 0.75rem 1rem;
  }

  .kwkmenu__chevron {
    display: inline-block;
    transform: rotate(-90deg);
  }

  .kwkmenu__tab:hover .kwkmenu__dropdown,
  .kwkmenu__tab:focus-within .kwkmenu__dropdown {
    display: none;
    /* JS/ARIA controls visibility in drawer mode */
  }

  /* Quand il y a la place : drawer s’élargit à droite, panneaux côte à côte (plus de superposition) */
  @media (min-width: 600px) {
    .kwkmenu--drawer-level-2 .kwkmenu__drawer {
      width: min(100vw, calc(2 * var(--kwkmenu-panel-width)));
    }

    .kwkmenu--drawer-level-2 .kwkmenu__panels {
      transform: translateX(0);
    }

    .kwkmenu--drawer-level-3 .kwkmenu__drawer {
      width: min(100vw, calc(3 * var(--kwkmenu-panel-width)));
    }

    .kwkmenu--drawer-level-3 .kwkmenu__panels {
      transform: translateX(0);
    }
  }

  .kwkmenu__menubar {
    flex-direction: column;
    gap: 0;
  }

  /* Panel positioning: niveau 1 à gauche, 2 au centre, 3 à droite.
  Les panneaux niveau 3 sont des enfants du dropdown (niveau 2), donc left est relatif au dropdown :
  left = 1 largeur de panneau pour apparaître dans le 3e créneau (640px) du conteneur .kwkmenu__panels. */
  .kwkmenu__panel--level-1 {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: var(--kwkmenu-panel-width);
    overflow: visible;
    background: #fff;
    display: flex;
    flex-direction: column;
    z-index: 100;
  }

  .kwkmenu__panel--level-2 {
    left: var(--kwkmenu-panel-width);
    z-index: 99;
  }

  .kwkmenu__panel--level-3 {
    left: var(--kwkmenu-panel-width);
    z-index: 98;
  }


  .kwkmenu__panel-back,
  .kwkmenu__see-all {
    background: none;
    border: 0;
    padding: 0;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    font: inherit;
  }

  .kwkmenu__panel-back {
    font-size: 1.3rem;
    text-transform: uppercase;
    font-weight: 700;
  }


}

/* ********** FIN Style des menus en mode panel ************/
/**********************************************************/


/*PANEL OUVERT*/
.kwkmenu--drawer-open.kwkmenu--drawer-level-2 .kwkmenu__panels {
  transform: translateX(calc(-1 * var(--kwkmenu-panel-width)));
}

.kwkmenu--drawer-open.kwkmenu--drawer-level-3 .kwkmenu__panels {
  transform: translateX(calc(-2 * var(--kwkmenu-panel-width)));
}

/* Quand il y a la place : drawer s’élargit à droite, panneaux côte à côte (plus de superposition) */
@media (min-width: 992px) {
  .kwkmenu--drawer-open.kwkmenu--drawer-level-2 .kwkmenu__drawer {
    width: min(100vw, calc(2 * var(--kwkmenu-panel-width)));
  }

  .kwkmenu--drawer-open.kwkmenu--drawer-level-2 .kwkmenu__panels {
    transform: translateX(0);
  }

  .kwkmenu--drawer-open.kwkmenu--drawer-level-3 .kwkmenu__drawer {
    width: min(100vw, calc(3 * var(--kwkmenu-panel-width)));
  }

  .kwkmenu--drawer-open.kwkmenu--drawer-level-3 .kwkmenu__panels {
    transform: translateX(0);
  }
}

/* Desktop: horizontal bar + dropdown */
.kwkmenu__menubar {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 0.5rem;
}

/* Tabs alignment (flex justify-content + stretch) */
.kwkmenu--tabs-flex-start .kwkmenu__menubar {
  justify-content: flex-start;
}

.kwkmenu--tabs-center .kwkmenu__menubar {
  justify-content: center;
}

.kwkmenu--tabs-flex-end .kwkmenu__menubar {
  justify-content: flex-end;
}

.kwkmenu--tabs-space-between .kwkmenu__menubar {
  justify-content: space-between;
}

.kwkmenu--tabs-space-around .kwkmenu__menubar {
  justify-content: space-around;
}

.kwkmenu--tabs-space-evenly .kwkmenu__menubar {
  justify-content: space-evenly;
}

.kwkmenu--tabs-stretch .kwkmenu__menubar {
  justify-content: flex-start;
}

.kwkmenu--tabs-stretch .kwkmenu__tab {
  flex: 1;
  min-width: 0;
}

.kwkmenu--tabs-stretch .kwkmenu__tab-link {
  text-align: center;
}

.kwkmenu__tab {
  position: relative;
}

.kwkmenu__tab-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.5rem 0.75rem;
  text-decoration: none;
}

/* Lien désactivé rendu en <button> : même rendu visuel que les onglets liens (pas de style "bouton") */
button.kwkmenu__tab-link,
.kwkmenu__tab-button {
  border: none;
  background: transparent;
  font: inherit;
  color: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: none;
}

/* Boutons colonne / item (dropdown) : reset pour garder le rendu lien */
button.kwkmenu__column-title,
button.kwkmenu__item-link {
  border: none;
  background: transparent;
  font: inherit;
  color: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: none;
}

.kwkmenu__tab-label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 18px;
  font-weight: 600;
}

.kwkmenu__tab-icon {
  width: 2.5rem;
  height: 2.5rem;
  object-fit: contain;
  flex-shrink: 0;
  border-radius: 50%;
}

.kwkmenu__chevron {
  margin-left: auto;
  .material-icons{
    font-size: 20px;
    font-weight: 700;

  }
}

.kwkmenu__dropdown {
  position: absolute;
  left: 0;
  top: 100%;
  min-width: 85vw;
  width: max-content;
  max-width: 95vw;
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  border-radius: 15px;
  z-index: 1000;
  padding: 30px;
  display: none;

  .kwkmenu__panel-header {
    width: var(--kwkmenu-panel-width);
  }

  .kwkmenu__panel-body {
    width: var(--kwkmenu-panel-width);

    .kwkmenu__tab-over,
    .kwkmenu__tab-under {
      border-radius: 5px;
      padding: .3rem .6rem;

      p:nth-of-type(1) {
        margin-bottom: 0;
      }
    }

    .kwkmenu__tab-over {
      margin-bottom: 1rem;
    }

    .kwkmenu__tab-under {
      margin-top: 1rem;
    }
  }
}


/* Desktop : contenu dropdown 100 % pour que la grille (Column layout) s’applique aux colonnes */
.kwkmenu:not(.kwkmenu--drawer-open) .kwkmenu__dropdown {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}

.kwkmenu:not(.kwkmenu--drawer-open) .kwkmenu__dropdown .kwkmenu__panel-body {
  width: 100%;
  box-sizing: border-box;
}

.kwkmenu:not(.kwkmenu--drawer-open) .kwkmenu__wraps {
  width: 100%;
}

.kwkmenu:not(.kwkmenu--drawer-open) .kwkmenu__wrap {
  min-width: 0;
}

.kwkmenu:not(.kwkmenu--drawer-open) .kwkmenu__columns {
  width: 100%;
  min-width: 0;
  .kwkmenu__column{
      .kwkmenu__column-title{
          padding: 10px 0 !important;
          border-bottom: 1px solid #E9ECEF !important;
          width: 100%;
          .kwkmenu__item-label{
              font-size: 18px;
              font-style: normal;
              font-weight: 600;
              line-height: normal;
          }
      }
  }
}

.kwkmenu__subpanel,
.kwkmenu__column-panel {
  display: none;
}

/* Dropdown width: full screen — position absolute under tab (desktop), top/left set by JS so it scrolls with the page. */
.kwkmenu--dropdown-full .kwkmenu__dropdown {
  position: absolute;
  left: 0;
  width: 100%;
  max-width: 100%;
  top: var(--kwkmenu-dropdown-top, 0);
  box-sizing: border-box;
}

/* Dropdown width: 100% of the menu (nav) container */
.kwkmenu--dropdown-menu .kwkmenu__dropdown {
  width: 100%;
  max-width: 100%;
  left: 0;
  right: 0;
  box-sizing: border-box;
}

.kwkmenu:not(.kwkmenu--drawer-open) .kwkmenu__dropdown[aria-hidden="false"] {
  display: block;
}

/* Wraps (desktop dropdown content) : grid pour pouvoir gérer les wraps en grid */
.kwkmenu__wraps {
  display: grid;
  grid-template-columns: var(--kwkmenu-wraps-cols, 1fr);
  gap: 1.875rem;
  align-items: start;
}

.kwkmenu__wrap {
  min-width: 0;
}

.kwkmenu__columns {
  display: grid;
  grid-template-columns: var(--kwkmenu-grid-cols, 1fr);
  gap: 1rem;
}

.kwkmenu__column-title {
  font-size: 1.125rem;
  border-bottom: 1px solid #e9ecef;
}
.kwkmenu__column-image-only{
  position: relative;
  display: block;
  .kwkmenu__column-image {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
  }
  .kwkmenu__column-image-only-extra{
      position: absolute;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 20px;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
  }
}

.kwkmenu__items,
.kwkmenu__subitems {
  list-style: none;
  margin: 0;
  padding: 0;
}


.kwkmenu__item-icon {
  width: 1.5rem;
  height: 1.5rem;
  object-fit: contain;
  flex-shrink: 0;
  margin-right: 0.5rem;
  border-radius: 50%;
}

.kwkmenu__item{
  padding-left: 15px;
  .kwkmenu__item-link {
      display: flex;
      align-items: center;
      width: 100%;
      padding: 0.25rem 0;
      text-decoration: none;
      .kwkmenu__item-label{
          font-size: 16px;
          font-style: normal;
          font-weight: 400;
          line-height: normal;
      }
  }
}

.kwkmenu__items .kwkmenu__item .kwkmenu__item-link .kwkmenu__chevron {
  display: none;
}

.kwkmenu__subitem-link {
  display: block;
  padding: 0.25rem 0;
  text-decoration: none;
}

/*Drawer open: 1 panneau visible, contenu = 3 panneaux qu’on fait glisser*/
.kwkmenu--drawer-open .kwkmenu__drawer {
  z-index: 9999;
  background: #fff;
  width: var(--kwkmenu-panel-width);
  overflow-x: hidden;
  transition: width 300ms cubic-bezier(0.190, 1.000, 0.560, 1.000);
}

.kwkmenu--drawer-open .kwkmenu__panels {
  position: relative;
  width: calc(3 * var(--kwkmenu-panel-width));
  height: 100%;
  min-height: 100%;
  transform: translateX(0);
  transition: transform 300ms cubic-bezier(0.190, 1.000, 0.560, 1.000);
}

/* In drawer mode, dropdowns become level-2 panels (visibility via transform for slide animation) */
.kwkmenu--drawer-open .kwkmenu__dropdown,
.kwkmenu--drawer-open .kwkmenu__subpanel,
.kwkmenu--drawer-open .kwkmenu__column-panel {
  display: flex;
  position: absolute;
  top: 0;
  bottom: 0;
  width: var(--kwkmenu-panel-width);
  max-width: 100%;
  height: 100%;
  overflow: visible;
  padding: 0;
  box-shadow: none;
  background: #fff;
  flex-direction: column;
  z-index: 9999;
  transition: transform 500ms cubic-bezier(0.190, 1.000, 0.560, 1.000),
              visibility 0s linear 300ms;
  transform: translateX(-100%);
  visibility: hidden;
  pointer-events: none;
}

.kwkmenu--drawer-open .kwkmenu__dropdown[aria-hidden="false"],
.kwkmenu--drawer-open .kwkmenu__subpanel[aria-hidden="false"],
.kwkmenu--drawer-open .kwkmenu__column-panel[aria-hidden="false"] {
  transform: translateX(0);
  visibility: visible;
  pointer-events: auto;
  transition: transform 500ms cubic-bezier(0.190, 1.000, 0.560, 1.000),
              visibility 0s linear 0s;
}

/* Niveau 3 fermé : passer sous le contenu du niveau 2 (header + body) */
.kwkmenu--drawer-open .kwkmenu__dropdown .kwkmenu__panel-header,
.kwkmenu--drawer-open .kwkmenu__dropdown .kwkmenu__panel-body {
  position: relative;
  z-index: 1;
}
.kwkmenu--drawer-open .kwkmenu__column-panel[aria-hidden="true"] {
  z-index: -1;
}
.kwkmenu--drawer-open .kwkmenu__column-panel[aria-hidden="false"] {
  z-index: 1;
}

/* Obfuscator compatibility: restore link on click */
.obfuscator {
  cursor: pointer;
  text-decoration: underline;
}

.obfuscator:hover {
  text-decoration: underline;
}


/*****************************************************************
 ******************  STYLE DES MENU SANS PANEL  ******************
 *****************************************************************/

 .kwkmenu__notpanel{
  .kwkmenu__notpanel__list{
    display: grid;
    grid-template-columns: 1fr;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
    .kwkmenu__notpanel--tab{
      .kwkmenu__notpanel--tab-link{
        font-size: 1.3rem;
        margin-bottom: .5rem;
      }
    }
  }
 }

/*Colapsage des onglets sur mobile*/
@media (max-width: 992px) {
  .kwkmenu__notpanel__list {
    display: block !important;
  }

  .kwkmenu__notpanel--tab {
    display: block;
  }

  .kwkmenu__notpanel-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    text-align: left;
    border: 0;
    background: transparent;
    padding: 0.75rem 0;
  }

  .kwkmenu__notpanel-toggle .kwkmenu__chevron {
    display: none;
  }

  .kwkmenu__notpanel-toggle-icons {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 0.5rem;
    line-height: 1;
  }

  .kwkmenu__notpanel-icon-remove {
    display: none !important;
  }

  .kwkmenu__notpanel-icon-add {
    display: inline-flex !important;
  }

  .kwkmenu__notpanel-toggle[aria-expanded="true"] .kwkmenu__notpanel-icon-add {
    display: none !important;
  }

  .kwkmenu__notpanel-toggle[aria-expanded="true"] .kwkmenu__notpanel-icon-remove {
    display: inline-flex !important;
  }

  .kwkmenu__notpanel-collapse {
    padding: 0 1rem 0.75rem;
  }
}
/*FIN Colapsage des onglets sur mobile*/


/* FIN STYLE DES MENU SANS PANEL */


/* ================================================================
   MISES EN PAGE DES WRAPS (layout: tabular / grid)
   Desktop uniquement — mobile inchangé dans tous les cas.
   ================================================================ */

  :root{
  --kwkmenu-column-tabulre-bg-tab-hover: var(--bs-primary, #000);
  --kwkmenu-column-tabulre-color-tab-hover: var(--bs-white, #fff);

  --kwkmenu-column-tabulre-bg-tab-active: var(--kwkmenu-column-tabulre-bg-tab-hover);
  --kwkmenu-column-tabulre-color-tab-active: var(--kwkmenu-column-tabulre-color-tab-hover);
}

/* Masquer la nav par défaut (mobile d'abord) */
.kwkmenu__tab-nav {
  display: none;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Tous les wraps tabulaires d'un même panel ont la même hauteur */
.kwkmenu:not([data-kwkmenu-is-mobile="true"]) .kwkmenu__wraps:has(.kwkmenu__wrap--tabs) {
  align-items: stretch;
}

/* Desktop : layout en flex côte à côte */
.kwkmenu:not([data-kwkmenu-is-mobile="true"]) .kwkmenu__wrap--tabs {
  display: flex !important;
  gap: 0;
  align-items: stretch;

  > .kwkmenu__tab-nav {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    min-width: 180px;
    border-right: 2px solid #dee2e6;
    margin-right: 1.5rem;

    .kwkmenu__tab-nav-btn {
      display: block;
      width: 100%;
      text-align: left;
      padding: 0.5rem 1rem;
      border: none;
      border-bottom: 1px solid #dee2e6;
      background: transparent;
      cursor: pointer;
      font: inherit;
      color: inherit;
      font-size: 16px;
      font-weight: 400;
      transition: background 0.15s;

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

      &.kwkmenu__tab-nav-btn--active {
        font-weight: 600;
        color: var(--kwkmenu-column-tabulre-color-tab-active, #329B9F);
        background-color: var(--kwkmenu-column-tabulre-bg-tab-active, #f8f9fa);
      }

      &:hover {
        background-color: var(--kwkmenu-column-tabulre-bg-tab-hover, #f8f9fa);
        color: var(--kwkmenu-column-tabulre-color-tab-hover, #329B9F);
      }

      &:focus-visible {
        outline: 2px solid var(--kwkmenu-column-tabulre-bg-tab-hover, #329B9F);
        outline-offset: -2px;
      }
    }
  }

  > .kwkmenu__columns {
    flex: 1;
    min-width: 0;
    display: block !important;
    grid-template-columns: none !important;

    > .kwkmenu__tab-panel {
      display: none;

      &.kwkmenu__tab-panel--active {
        display: block;
      }

      /* Le titre de colonne est déjà dans la nav : masqué sur desktop */
      > .kwkmenu__column > .kwkmenu__column-title {
        display: none !important;
      }
    }
  }
}

/* Mobile : nav masquée, tous les panneaux visibles en colonnes normales */
.kwkmenu[data-kwkmenu-is-mobile="true"] .kwkmenu__wrap--tabs {

  > .kwkmenu__tab-nav {
    display: none !important;
  }

  > .kwkmenu__columns {
    > .kwkmenu__tab-panel {
      display: block !important;
    }
  }
}

/* Dans le drawer ouvert : même comportement que mobile */
.kwkmenu--drawer-open .kwkmenu__wrap--tabs {

  > .kwkmenu__tab-nav {
    display: none !important;
  }

  > .kwkmenu__columns {
    > .kwkmenu__tab-panel {
      display: block !important;
    }
  }
}
/* FIN MODE TABULAIRE */


/* ================================================================
   MISE EN PAGE GRILLE (layout: grid)
   Desktop : mosaïque CSS grid adaptative selon le nombre de colonnes.
   1 colonne  → pleine largeur
   2 colonnes → 2 colonnes égales
   3 colonnes → 2 colonnes en haut, 3e pleine largeur en bas
   4+ colonnes → 2 colonnes, lignes automatiques
   Mobile : aucun changement.
   ================================================================ */

.kwkmenu:not([data-kwkmenu-is-mobile="true"]) .kwkmenu__wrap--grid {

  > .kwkmenu__columns {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 0;
    align-items: stretch;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;

    /* 1 élément : pleine largeur */
    &:has(> .kwkmenu__column:only-child) {
      grid-template-columns: 1fr;
      grid-template-rows: 1fr;
    }

    /* 2 éléments : 2 colonnes égales */
    &:has(> .kwkmenu__column:nth-child(2)):not(:has(> .kwkmenu__column:nth-child(3))) {
      grid-template-columns: 1fr 1fr;
      grid-template-rows: 1fr;
    }

    /* 3 éléments : 2 colonnes + 3e pleine largeur */
    &:has(> .kwkmenu__column:nth-child(3)):not(:has(> .kwkmenu__column:nth-child(4))) {
      grid-template-columns: 1fr 1fr;

      > .kwkmenu__column:nth-child(3) {
        grid-column: 1 / -1;
        grid-row: 2 / 3;
      }
    }

    /* 4+ éléments : 2 colonnes, lignes automatiques */
    &:has(> .kwkmenu__column:nth-child(4)) {
      grid-template-columns: 1fr 1fr;
    }
  }
}

/* Mobile / drawer : grille annulée, colonnes empilées normalement */
.kwkmenu[data-kwkmenu-is-mobile="true"] .kwkmenu__wrap--grid > .kwkmenu__columns,
.kwkmenu--drawer-open .kwkmenu__wrap--grid > .kwkmenu__columns {
  display: grid !important;
  grid-template-columns: 1fr !important;
}

/* FIN MODE GRILLE */