/*!
 * VILLAGE v0.0.3 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
 */
@charset "UTF-8";

/* ¯¯¯¯¯¯¯¯¯ *\
  FOOTER
\* ˍˍˍˍˍˍˍˍˍ */
.village-footer {
  --ul-type: none;
  --ol-type: none;
  --ul-start: 0;
  --ol-start: 0;
  --xl-block: 0;
  --li-bottom: 0;
  --ol-content: none;
  width: 100%;
  padding-top: 2rem;

  /**
   * Conteneur du bloc marque, avec le logo principal et éventuellement
   * un logo opérateur
   */

  /**
   * Hauteur auto pour le logo opérateur
   */
  /**
  * Contenu texte simple
  */

  /**
  * Liste des liens situés en dessous de la partie texte
  */
  /**
  * Catégorie (optionnel)
  */

  /**
  * Style de la liste
  */

  /**
  * Style du lien
  */
  /**
  * Liste de liens avec séparateur
  */

  /**
  * Style du lien de la liste
  */

  /**
  * Copyright
  */
  /**
  * Container des logos partenaires (principaux et secondaires)
  */

  /**
  * Container des logos partenaires principaux
  */

  /**
  * Container des logos partenaires secondaires
  */
  box-shadow: inset 0 2px 0 0 var(--border-plain-village-primary), inset 0 -1px 0 0 var(--border-default-grey);
}

.village-footer__body {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.village-footer__body + .village-footer__bottom {
  margin-top: 1rem;
}

.village-footer__brand {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-basis: 100%;

  /**
   * Si on ajoute un logo opérateur à côté du logo principal, on lui applique une marge à gauche
   * On prévoit que le logo soit encapsulé dans un <a>, ou bien directement en img ou en svg
   * (Eventuellement prévoir une classe pour pouvoir le mettre en background image)
   */
}

.village-footer__brand .village-logo {
  font-size: 1.05rem;
  padding: 1rem;
  margin: -1rem;
}

.village-footer__brand .village-logo::before {
  width: 2.75rem;
  height: 1rem;
  margin-bottom: 0.3333333333rem;
  background-size: 2.75rem 1.125rem, 2.75rem 1rem, 0;
  background-position: 0 -0.0625rem, 0 0, 0 0;
}

:root[data-village-mourning] .village-footer__brand .village-logo::before {
  background-size: 2.75rem 1.125rem, 0, 2.75rem 1rem;
}

.village-footer__brand .village-logo::after {
  min-width: 2.625rem;
  background-size: 5.25rem 3.75rem;
  background-position: 0 calc(100% + 1.875rem);
  padding-top: 2.2083333333rem;
}

[data-village-theme=dark] .village-footer__brand .village-logo::after {
  background-position: -2.625rem 100%;
}

.village-footer__brand-link {
  display: flex;
  flex-direction: row;

  --external-link-content: none;
}

.village-footer__brand .village-logo + .village-footer__brand-link {
  margin-left: 1.5rem;
}

.village-footer__logo {
  height: auto;
  max-height: 100%;
}

/**
 * La partie "content" représente les informations sous forme de texte rajoutées dans le footer
 * ainsi que les éventuels liens simples
 */

.village-footer__content {
  display: flex;
  flex-wrap: wrap;
  flex-basis: 100%;
  margin-top: 1.5rem;
}

.village-footer__content-desc {
  --underline-img: linear-gradient(0deg, currentColor, currentColor);
  --text-spacing: 0 0 0 0;
  width: 100%;
  font-size: 0.875rem;
  line-height: 1.5rem;
}

.village-footer__content-list {
  display: flex;
  flex-direction: row;
  align-self: center;
  margin-bottom: -0.5rem;
  margin-top: 1rem;
  flex-wrap: wrap;
}

.village-footer__content-list > li {
  margin-right: 1.25rem;
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

.village-footer__content-list > li::before {
  content: none;
}

.village-footer__content-list > li:last-child {
  margin-right: 0;
}

.village-footer__content-link {
  font-weight: bold;
  font-size: 0.875rem;
  line-height: 1.5rem;
  color: var(--text-default-grey);
}

.village-footer__content-link:not(:hover):not(:active) {
  --underline-idle-width: 0;
}

/**
 * La partie "top" du footer est constituée de colonnes basées sur le système de grille du Design System
 * Ces colonnes sont constituées d’une catégorie (optionnel) et d'une liste verticale de liens
 */

.village-footer__top {
  display: flex;
  margin: -1.875rem 0 1.5rem;
  padding: 2rem 0 1.25rem;
  background-color: var(--background-alt-grey);

  --idle: transparent;
  --hover: var(--background-alt-grey-hover);
  --active: var(--background-alt-grey-active);
}

.village-footer__top-cat {
  margin: 0 0 0.75rem;
  font-size: 0.75rem;
  line-height: 1.25rem;
  display: block;
  font-weight: 700;
  text-align: left;
  color: var(--text-title-grey);
}

.village-footer__top-list {
  font-size: 0.75rem;
  line-height: 1.25rem;
  margin: 0;
}

.village-footer__top-list li {
  margin-bottom: 0.75rem;
}

.village-footer__top-link {
  font-size: 0.75rem;
  line-height: 1.25rem;
}

.village-footer__top-link:not(:hover):not(:active) {
  --underline-idle-width: 0;
}

/**
 * La partie "bottom" du footer est constituée d'une liste de liens simples (ferrée à gauche)
 * ainsi que du copyright (ferré à droite)
 */

.village-footer__bottom {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 2.5rem;
  box-shadow: inset 0 1px 0 0 var(--border-default-grey);
}

.village-footer__bottom .village-btn {
  font-size: 0.75rem;
  line-height: 1.25rem;
  min-height: 1.25rem;
  padding: 0 0.5rem;
  overflow: initial;
  max-width: 100%;
  max-height: none;
  display: inline;
  color: var(--text-mention-grey);
}

.village-footer__bottom .village-btn::before {
  --icon-size: 1rem;
  margin-left: -0.125rem;
  margin-right: 0.5rem;
}

.village-footer__bottom-list {
  padding: 0.5rem 0;
  width: 100%;
  margin: 0;
}

.village-footer__bottom-item {
  position: relative;
  margin: 0.5rem 0 0 0.25rem;
  display: inline;
}

.village-footer__bottom-item::before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  position: relative;
  width: 1px;
  height: 1rem;
  margin-right: 0.25rem;
  margin-bottom: 0.625rem;
  margin-top: 0.625rem;
  box-shadow: inset 0 0 0 1px var(--border-default-grey);
}

.village-footer__bottom-item:first-child {
  margin: 0.5rem 0 0;
}

.village-footer__bottom-item:first-child::before {
  content: none;
}

.village-footer__bottom-link {
  font-size: 0.75rem;
  line-height: 1.25rem;
  color: var(--text-mention-grey);
}

.village-footer__bottom-link:not(:hover):not(:active) {
  --underline-idle-width: 0;
}

.village-footer__bottom-copy {
  --text-spacing: 0 0 1rem 0;
  margin-top: 0.5rem;
  color: var(--text-mention-grey);
}

.village-footer__bottom-copy * {
  font-size: 0.75rem;
  line-height: 1.25rem;
}

/**
 * La partie "partners" du footer est constituée de logos organisés
 * en partenaires principaux (ferré à gauche) et secondaires (ferrés à droite)
 */

.village-footer__partners {
  margin-top: 1rem;
  padding-top: 1rem;

  /**
  * On surcharge le style du logo de base
  */
  box-shadow: inset 0 1px 0 0 var(--border-default-grey);
}

.village-footer__partners a {
  display: flex;
  align-items: center;
  justify-content: center;
}

.village-footer__partners .village-footer__logo {
  width: auto;
  height: auto;
  background-color: var(--background-default-grey);

  --idle: transparent;
  --hover: var(--background-default-grey-hover);
  --active: var(--background-default-grey-active);
  box-shadow: inset 0 0 0 1px var(--border-default-grey);
}

.village-footer__partners + .village-footer__bottom {
  margin-top: 0.5rem;
}

.village-footer__partners-title {
  --title-spacing: 0 0 0.75rem 0;
  font-size: 0.875rem;
  line-height: 1.5rem;
  font-weight: 400;
  flex-basis: 100%;
  text-align: center;
  color: var(--text-default-grey);
}

.village-footer__partners-link {
  --external-link-content: none;
}

.village-footer__partners-logos {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  margin: 0 0 -0.5rem 0;
}

.village-footer__partners-main {
  display: flex;
  flex-direction: row;
  justify-content: center;
  margin-bottom: 2rem;
}

.village-footer__partners-sub {
  margin-bottom: 0.5rem;

  /**
  * On surcharge le style du lien pour les logos secondaires
  */
}

.village-footer__partners-sub,
.village-footer__partners-sub > ul {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-wrap: wrap;
}

.village-footer__partners-sub > li:first-child,
.village-footer__partners-sub > ul > li:first-child {
  margin-left: 0;
}

.village-footer__partners-sub .village-footer__partners-link {
  margin-bottom: 1rem;
}

.village-footer__partners .village-footer__partners-link,
.village-footer__partners .village-footer__partners-link:hover,
.village-footer__partners .village-footer__partners-link:active {
  background: #fff;
}
@media (min-width: 36em) {
  /*! media sm */
  .village-footer__content-list > li {
    margin-right: 1.5rem;
  }

  .village-footer__partners-title {
    text-align: left;
  }

  .village-footer__partners-logos {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    margin-right: -0.5rem;
  }

  .village-footer__partners-main {
    margin-bottom: 1rem;
  }

  .village-footer__partners-sub,
  .village-footer__partners-sub > ul {
    flex-direction: row;
    align-items: flex-start;
  }

  .village-footer__partners-sub > li,
  .village-footer__partners-sub > ul > li {
    margin: 0 0.5rem 0 0.5rem;
  }

  .village-footer__partners-sub {
    order: 3;
  }

  /*! media sm */
}
@media (min-width: 48em) {
  /*! media md */
  .village-footer__body {
    margin-bottom: 1.5rem;
  }

  .village-footer__brand .village-logo {
    font-size: 1.3125rem;
    padding: 1.25rem;
    margin: -1.25rem;
  }

  .village-footer__brand .village-logo::before {
    width: 3.4375rem;
    height: 1.25rem;
    margin-bottom: 0.4166666667rem;
    background-size: 3.4375rem 1.40625rem, 3.4375rem 1.25rem, 0;
    background-position: 0 -0.078125rem, 0 0, 0 0;
  }

  :root[data-village-mourning] .village-footer__brand .village-logo::before {
    background-size: 3.4375rem 1.40625rem, 0, 3.4375rem 1.25rem;
  }

  .village-footer__brand .village-logo::after {
    min-width: 3.28125rem;
    background-size: 6.5625rem 4.6875rem;
    background-position: 0 calc(100% + 2.34375rem);
    padding-top: 2.7604166667rem;
  }

  [data-village-theme=dark] .village-footer__brand .village-logo::after {
    background-position: -3.28125rem 100%;
  }

  .village-footer__brand .village-logo + .village-footer__brand-link {
    margin-left: 2rem;
  }

  .village-footer__brand {
    flex-basis: auto;
    margin-right: 1rem;
  }

  .village-footer__brand.village-enlarge-link {
    margin: -1rem 0 -1rem -1rem;
    padding: 1rem;
    align-self: flex-start;
  }

  .village-footer__content {
    margin-left: auto;
  }

  .village-footer__content-list {
    margin-top: 0.5rem;
  }

  .village-footer__top {
    margin: -1.875rem 0 2rem;
  }

  .village-footer__bottom-item {
    margin: 0.5rem 0 0 0.75rem;
  }

  .village-footer__bottom-item::before {
    margin-right: 0.75rem;
  }

  .village-footer__partners-logos {
    margin-right: -1rem;
    flex-wrap: nowrap;
  }

  .village-footer__partners-main + .village-footer__partners-sub {
    padding-left: 1rem;
  }

  .village-footer__partners-sub,
  .village-footer__partners-sub > ul {
    padding-top: 0;
  }

  .village-footer__partners-sub > ul,
  .village-footer__partners-sub > ul > ul {
    justify-content: flex-end;
  }

  .village-footer__partners-sub > li,
  .village-footer__partners-sub > ul > li {
    margin: 0 1rem 0 1rem;
  }

  .village-footer__partners-sub .village-footer__partners-link {
    margin-bottom: 0.5rem;
  }

  /*! media md */
}
@media (min-width: 62em) {
  /*! media lg */
  .village-footer__content {
    margin-top: 0;
    flex-basis: 50%;
    max-width: 36.75rem;
  }

  /*! media lg */
}
@media (min-width: 78em) {
  /*! media xl */

  /*! media xl */
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  /**
  * Reset liste à puce
  */
  .village-footer ul {
    list-style-type: none;
  }

  .village-footer ol {
    list-style-type: none;
  }

  .village-footer ul,
  .village-footer ol {
    padding-left: 0;
    margin-top: 0;
    margin-bottom: 0;
  }

  .village-footer__content-desc [href] {
    text-decoration: underline;
  }

  .village-footer {
    box-shadow: inset 0 2px 0 0 hsl(180, 75%, 25%), inset 0 -1px 0 0 #ddd;
  }

  .village-footer__content-link {
    color: #3a3a3a;
  }

  .village-footer__top-cat {
    color: #161616;
  }

  .village-footer__top {
    background-color: #f6f6f6;
  }

  .village-footer__bottom {
    box-shadow: inset 0 1px 0 0 #ddd;
  }

  .village-footer__bottom .village-btn {
    color: #666;
  }

  .village-footer__bottom-item::before {
    box-shadow: inset 0 0 0 1px #ddd;
  }

  .village-footer__bottom-link {
    color: #666;
  }

  .village-footer__bottom-copy {
    color: #666;
  }

  .village-footer__partners {
    box-shadow: inset 0 1px 0 0 #ddd;
  }

  .village-footer__partners-title {
    color: #3a3a3a;
  }

  .village-footer__partners .village-footer__logo {
    background-color: #fff;
    box-shadow: inset 0 0 0 1px #ddd;
  }
}
@media print {
  .village-footer {
    box-shadow: inset 0 2px 0 0 hsl(180, 75%, 25%), inset 0 -1px 0 0 #ddd;
    display: none;
  }

  .village-footer__content-link {
    color: #3a3a3a;
  }

  .village-footer__top-cat {
    color: #161616;
  }

  .village-footer__top {
    background-color: #f6f6f6;
  }

  .village-footer__bottom {
    box-shadow: inset 0 1px 0 0 #ddd;
  }

  .village-footer__bottom .village-btn {
    color: #666;
  }

  .village-footer__bottom-item::before {
    box-shadow: inset 0 0 0 1px #ddd;
  }

  .village-footer__bottom-link {
    color: #666;
  }

  .village-footer__bottom-copy {
    color: #666;
  }

  .village-footer__partners {
    box-shadow: inset 0 1px 0 0 #ddd;
  }

  .village-footer__partners-title {
    color: #3a3a3a;
  }

  .village-footer__partners .village-footer__logo {
    background-color: #fff;
    box-shadow: inset 0 0 0 1px #ddd;
  }
}
