@charset "UTF-8";
:root {
  --opacity: 0;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
}

h2 {
  position: relative;
  width: 100%;
  font-size: 4.8rem;
  font-weight: 400;
  font-style: italic;
  font-family: utopia-std-display, serif;
  margin-bottom: 13rem;
}
@media screen and (max-width: 1400px) {
  h2 {
    font-size: 3.2rem;
  }
}
@media screen and (max-width: 900px) {
  h2 {
    margin-bottom: 5rem;
    margin-top: 10rem;
  }
  h2::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 0.1rem;
    background-color: #1E1E1E;
  }
}

body {
  color: #ffffff;
  font-family: neue-haas-grotesk-display, sans-serif;
  padding: 0 8.3333333333%;
}
@media screen and (max-width: 900px) {
  body {
    color: #1E1E1E;
    background-color: #f1e6d6;
    padding: 2rem 2rem;
  }
}
body .background {
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-image: url(../img/bg-image.webp);
  background-attachment: fixed;
  background-position: top;
  background-size: cover;
  background-repeat: no-repeat;
  scale: 1.1;
  translate: 0 5%;
  z-index: -2;
}
@media screen and (max-width: 900px) {
  body .background {
    display: none;
  }
}
body .background::before {
  content: "";
  position: fixed;
  left: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.7) 30%, rgba(0, 0, 0, 0) 100%);
  z-index: -2;
}
body .background::after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-color: #000000;
  z-index: -1;
  opacity: var(--opacity);
}

.expositions {
  padding-top: 25vh;
  padding-bottom: 10vh;
  width: 100%;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
@media screen and (max-width: 900px) {
  .expositions {
    padding-top: 0;
    padding-bottom: 10rem;
    min-height: auto;
  }
}
.expositions .expositions-container {
  width: 60vw;
  min-width: 80rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10rem;
}
@media screen and (max-width: 1400px) {
  .expositions .expositions-container {
    width: 100%;
    min-width: auto;
    gap: 5rem;
    padding: 0 5rem;
  }
}
@media screen and (max-width: 1400px) {
  .expositions .expositions-container {
    padding: 0 0;
  }
}
.expositions .expositions-container > * {
  width: 100%;
}
.expositions .expositions-container > *:nth-child(1) {
  text-align: right;
}
.expositions .expositions-container > *:nth-child(3) {
  text-align: right;
}
.expositions h3 {
  position: relative;
  font-size: 4rem;
  font-weight: 500;
}
@media screen and (max-width: 1400px) {
  .expositions h3 {
    font-size: 3rem;
  }
}
@media screen and (max-width: 900px) {
  .expositions h3 {
    font-size: 2rem;
  }
}
.expositions h3::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 0.1rem;
  width: 100%;
  background-color: #ffffff;
}
@media screen and (max-width: 900px) {
  .expositions h3::after {
    display: none;
  }
}
.expositions p {
  color: rgba(255, 255, 255, 0.5647058824);
  font-size: 3.6rem;
}
@media screen and (max-width: 1400px) {
  .expositions p {
    font-size: 3rem;
  }
}
@media screen and (max-width: 900px) {
  .expositions p {
    position: relative;
    font-size: 2rem;
    color: #1E1E1E;
    opacity: 0.8;
  }
  .expositions p::after {
    content: "";
    position: absolute;
    bottom: -2.5rem;
    left: 0;
    height: 0.1rem;
    width: 100%;
    background-color: #1E1E1E;
    opacity: 0.2;
  }
}

footer ul {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2rem;
  list-style: none;
  padding-bottom: 2rem;
}
footer ul a {
  color: #ffffff;
  font-size: 1.6rem;
}
@media screen and (max-width: 900px) {
  footer ul a {
    color: #1E1E1E;
  }
}
footer ul a:hover {
  opacity: 0.5;
}

.history {
  padding-top: 25vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.history--content {
  width: 100%;
  /* utilisation d'un grid car plusieurs éléments sont alignés sur deux dimensions */
  /* le grid permet aussi de supperposés des éléments, ici les ronds et la flèche sur la ligne */
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: auto auto auto;
  row-gap: 1rem;
  column-gap: 10rem;
}
@media screen and (max-width: 1400px) {
  .history--content {
    column-gap: 4rem;
  }
}
@media screen and (max-width: 900px) {
  .history--content > div, .history--content > img {
    /* enlève les élements graphiques de la timeline (mobile) */
    display: none;
  }
}
.history--content--circle__1 {
  grid-column: 1;
  grid-row: 1;
  height: 1rem;
  width: 1rem;
  border-radius: 50%;
  background-color: #ffffff;
  transition: all 0.2s ease;
}
.history--content--circle__2 {
  grid-column: 2;
  grid-row: 1;
  height: 1rem;
  width: 1rem;
  border-radius: 50%;
  background-color: #ffffff;
  transition: all 0.2s ease;
}
.history--content--circle__3 {
  grid-column: 3;
  grid-row: 1;
  height: 1rem;
  width: 1rem;
  border-radius: 50%;
  background-color: #ffffff;
  transition: all 0.2s ease;
}
.history--content--line {
  height: 0.1rem;
  background-color: #ffffff;
  align-self: center;
  grid-column: 1/4;
  grid-row: 1;
  transition: all 1.2s ease;
}
.history--content--arrow-end {
  grid-column: 3;
  grid-row: 1;
  height: 1rem;
  filter: invert(1);
  justify-self: right;
  rotate: -90deg;
  translate: 50%;
  transition: all 0.2s ease;
}
.history--content--subtitle {
  font-size: 3.2rem;
  font-weight: 600;
  margin-top: 2rem;
}
@media screen and (max-width: 1400px) {
  .history--content--subtitle {
    font-size: 2.4rem;
  }
}
.history--content--text {
  font-size: 2.4rem;
  line-height: 1.1em;
  margin-top: 2rem;
  max-width: 30ch;
  word-spacing: 0.2rem;
}
@media screen and (max-width: 1400px) {
  .history--content--text {
    font-size: 2rem;
    max-width: 100%;
  }
}
@media screen and (max-width: 900px) {
  .history--content {
    /* les textes ont été placés de sorte à ce qu'ils se placent naturellement dans le grid */
    /* sur mobile, l'affichage passe en flex, c'est pourquoi on change l'ordre des textes afin qu'ils apparaissent en dessous de leur titre respectif */
    display: flex;
    flex-direction: column;
  }
  .history--content .subtitle2 {
    order: 3;
  }
  .history--content .subtitle3 {
    order: 5;
  }
  .history--content .text2 {
    order: 4;
  }
  .history--content .text3 {
    order: 6;
  }
}
@media screen and (max-width: 900px) {
  .history {
    padding-top: 0;
  }
}

.home-screen {
  height: 100vh;
  /* sans le display grid, la ligne décorative n'irait pas jusqu'au bout car le h2 prends la largeur du plus gros contenu */
  display: grid;
  grid-template-columns: min-content auto auto min-content;
  grid-template-rows: auto min-content min-content;
  /* organisation du grid en areas pour se repérer plus facilement */
  grid-template-areas: "h1  .    .    .  " "h1  .   h2_1 h2_1" "h1 line line h2_2";
  align-items: end;
  column-gap: 1rem;
  padding-bottom: 7rem;
}
@media screen and (max-width: 900px) {
  .home-screen {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    height: fit-content;
    width: 100%;
    padding-bottom: 0;
  }
}
.home-screen h1 {
  font-size: 4.8rem;
  line-height: 4.8rem;
  font-weight: 400;
  white-space: nowrap;
  grid-area: h1;
}
@media screen and (max-width: 900px) {
  .home-screen h1 {
    margin-bottom: 1rem;
  }
}
.home-screen h2 {
  width: fit-content;
  font-size: 3.2rem;
  line-height: 3.2rem;
  font-weight: 400;
  font-style: italic;
  text-align: right;
  white-space: nowrap;
  width: 100%;
  margin-bottom: 0;
}
.home-screen h2.h2-pt1 {
  /* séparation du h2 en deux lignes pour que leurs largeurs soient indépendantes */
  grid-area: h2_1;
}
.home-screen h2.h2-pt2 {
  /* séparation du h2 en deux lignes pour que leurs largeurs soient indépendantes */
  grid-area: h2_2;
}
@media screen and (max-width: 900px) {
  .home-screen h2 {
    font-size: 2.5rem;
    line-height: 2.5rem;
    opacity: 0.8;
    margin-top: 0;
  }
  .home-screen h2::after {
    display: none;
  }
}
.home-screen .decorative-div {
  /* utilisation d'un div au lieu d'un ::before ou ::after pour plus de facilité de placement */
  height: 0.1rem;
  width: 100%;
  background-color: #ffffff;
  opacity: 0.4;
  transform: translateY(-0.6rem);
  grid-area: line;
}
@media screen and (max-width: 900px) {
  .home-screen .decorative-div {
    display: none;
  }
}
.home-screen .mobile-image {
  /* image qui s'affiche que sur mobile, à la place de l'image de fond */
  display: none;
}
@media screen and (max-width: 900px) {
  .home-screen .mobile-image {
    display: inline;
    width: 100%;
    margin-bottom: 1rem;
  }
}

.pageSources {
  color: #1E1E1E;
  background-color: #f1e6d6;
  padding: 10rem 8.3333333333%;
}
.pageSources a {
  position: relative;
  text-decoration: none;
}
.pageSources a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 0.1rem;
  width: 100%;
  background-color: #1E1E1E;
}
.pageSources a:hover {
  opacity: 0.5;
}
.pageSources main > a {
  color: #1E1E1E;
  opacity: 0.7;
  font-size: 2rem;
}
@media screen and (max-width: 900px) {
  .pageSources main > a {
    font-size: 1.6rem;
  }
}
.pageSources main > a:hover {
  opacity: 0.5;
}
.pageSources h1 {
  margin-top: 5rem;
  margin-bottom: 2rem;
  font-size: 5rem;
  font-weight: 500;
}
@media screen and (max-width: 900px) {
  .pageSources h1 {
    font-size: 3.2rem;
  }
}
.pageSources main ul {
  list-style: none;
}
.pageSources main ul li a {
  color: #1E1E1E;
  font-size: 2rem;
}
@media screen and (max-width: 900px) {
  .pageSources main ul li a {
    font-size: 1.6rem;
  }
}
.pageSources footer {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100vw;
}
.pageSources footer a {
  color: #1E1E1E;
}

/*# sourceMappingURL=main.css.map */
