/* =========================================================
   BLOCK — Sommaire
========================================================= */

.sommaire{
  width: 100%;
  position: relative;
  padding: 0;
  box-sizing: border-box;
}

.sommaire *,
.sommaire *::before,
.sommaire *::after{
  box-sizing: border-box;
}

/* élément déplacé */
.sommaire__inner{
  width: 100%;
  box-sizing: border-box;

  padding: 22px;
  border: 1px solid #EEEEEE;
  border-radius: var(--border-radius);
  background: var(--color-white);
}

/* =========================================================
   HEAD
========================================================= */

.sommaire__head{
  margin-bottom: 14px;
}

.sommaire__title{
  margin: 0;
  color: var(--color-heading);
  font-family: var(--font-family-heading);
  font-size: var(--font-size-intermediate);
  font-weight: var(--font-weight-heading);
  line-height: var(--line-height-heading);
}

/* =========================================================
   BODY
========================================================= */

.sommaire__body{
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* =========================================================
   LIST
========================================================= */

.sommaire__list{
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sommaire__list.is-numbered{
  padding-left: 20px;
}

.sommaire__list.is-plain{
  list-style: none;
  padding-left: 0;
}

.sommaire__item{
  margin: 0;
  padding: 0;
}

.sommaire__link{
  display: inline-block;
  text-decoration: none;
  color: var(--color-text);
  font-family: var(--font-family-body);
  font-size: var(--font-size-body);
  font-weight: var(--font-weight-body);
  line-height: var(--line-height-body);

  border-left: 2px solid transparent;
  padding-left: 0;

  transition:
    color .22s ease,
    border-color .22s ease,
    padding-left .22s ease;
}

.sommaire__link-label{
  display: inline;
}

.sommaire__link:hover,
.sommaire__link:focus-visible{
  color: var(--color-link-hover);
}

/* =========================================================
   ACTIVE MODE
========================================================= */

.sommaire.has-active-mode .sommaire__link.is-active{
  border-left: 2px solid var(--color-secondary);
  padding-left: 10px;
  color: var(--color-link-hover);
}

/* =========================================================
   EMPTY
========================================================= */

.sommaire__empty{
  color: var(--color-text);
  font-family: var(--font-family-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
}

/* =========================================================
   STICKY / STOP
========================================================= */

.sommaire__inner.is-fixed{
  position: fixed;
  top: var(--sommaire-fixed-top, 40px);

  left: var(--sommaire-fixed-left, 0px);
  width: var(--sommaire-fixed-width, auto);

  z-index: 20;
}

.sommaire__inner.is-stopped{
  position: absolute;
  top: var(--sommaire-stop-top, 0px);
  left: 0;
  right: 0;
}

@media (min-width: 782px){
  .sommaire__inner.is-fixed{
    max-height: calc(100vh - var(--sommaire-fixed-top, 40px) - 16px);
    overflow: auto;
  }
}

@media (max-width: 781px){
  .sommaire.has-active-mode .sommaire__link.is-active{
    border-left: 2px solid transparent;
    padding-left: 0;
    color: var(--color-text);
  }
}