
body {
  margin: 0;
}


html, body {
  height: 100%;
  margin: 0;
}

.site-wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh; /* prend toute la hauteur visible */
}

.site-content {
  flex: 1; /* pousse le footer vers le bas */
}

.footer {
  height: 60px;
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  align-items: center;
  font-size: 0.8rem;
}

html {
    scroll-behavior: smooth;
}







.highlight {
  background-color: aliceblue;
  transition: background-color 0.3s ease; /* la transition vers la couleur normale */
}

/* couleur normale à la fin */
.row {
  background-color: transparent;
}

.arrows-container .upArrow {
  font-size: 5rem !important;
}

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


/* ------- CONTAINER BLOCKS ------- */

.container {
    display: flex;
    align-items: stretch;
    gap: 2.3rem;
    position: relative;
}

.container--vertical {
    flex-direction: column;
    justify-content: center;
    width: 100%;
}


.container--horizontal {
    flex-direction: row;
}

.container--wrap {
    flex-wrap: wrap;
}

.container--center {
    justify-content: center;
    align-items: center;
}

.container--space-between {
    justify-content: space-between;
}

.container--gap-vsm { gap: 0.5rem; }
.container--gap-sm { gap: 1rem; }
.container--gap-md { gap: 2rem; }
.container--gap-lg { gap: 3rem; }
.container--gap-vlg { gap: 4rem; }

.container--horizontal > .block {
    flex: 1 1 0; /* prend la même part, rétrécit si nécessaire */
    min-width: 0; /* IMPORTANT : pour que le texte long n'explose pas le container */
    margin: auto;
}

@media (max-width: 1050px) {
    .container--horizontal {
        flex-direction: column;
    }
}


/* ------- READY TO USE CLASSES ------- */

.center {
    margin: 0 auto;
}

.background {
    background-color: var(--light);
}

.contained {
    max-width: 1200px;  /* largeur max du contenu */
    margin: 0 auto;     /* centre horizontalement */
    padding: 70px 1.5rem;  /* espace de respiration sur les côtés */
}

.full-width {
  width: 100vw;
}

.prevent-select {
  -webkit-user-select: none; /* Safari */
  -moz-user-select: none;    /* Firefox */
  -ms-user-select: none;     /* IE10+/Edge */
  user-select: none;         /* Standard */
  cursor: default;           /* Curseur par défaut au lieu du curseur texte */
}

.hide-scroll-bar {
	scrollbar-width: none; /* Firefox */
}
.hide-scroll-bar::-webkit-scrollbar {
    display: none; /* Chrome, Safari */
}

@media (max-width: 1250px) {
    .contained {
        max-width: 92vw;
        padding-left: 0;
        padding-right: 0;
    }
}


.parallax-wrapper {
    overflow: hidden;
}

.parallax-wrapper .parallax {
    width: 120%;
    height: 130%; /* plus grande que le wrapper pour avoir de la marge */
    object-fit: cover;
    display: block;
    transform-origin: center;
    margin-top: -16.5%;
}


/* ------------------------------------- ANIMATIONS ------------------------------------- */

.fade-up-1 {
    opacity: 0;
    transform: translateY(60px);
    transition: opacity 1s ease-out, transform 1s ease-out;
}
.fade-up-1.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.fade-up-2 {
    opacity: 0;
    transform: translateY(60px);
    transition: opacity 2s ease, transform 2s ease;
}
.fade-up-2.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Entrée depuis la gauche */
.fade-left {
    opacity: 0;
    transform: translateX(-30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-left.is-visible {
    opacity: 1;
    transform: translateX(0);
}

/* Entrée depuis la droite */
.fade-right {
    opacity: 0;
    transform: translateX(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-right.is-visible {
    opacity: 1;
    transform: translateX(0);
}

/* Apparition simple (fade in) */
.fade-in {
    opacity: 0;
    transition: opacity 0.8s ease;
}
.fade-in.is-visible {
    opacity: 1;
}

/* Zoom doux à l'entrée */
.scale-in {
    opacity: 0;
    transform: scale(0.92);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.scale-in.is-visible {
    opacity: 1;
    transform: scale(1);
}

/* Délais d'enchaînement (pour des listes, cards...) */
.delay-01 { transition-delay: 0.1s; }
.delay-02 { transition-delay: 0.2s; }
.delay-03 { transition-delay: 0.3s; }
.delay-04 { transition-delay: 0.4s; }
.delay-05 { transition-delay: 0.5s; }
.delay-06 { transition-delay: 0.6s; }
.delay-07 { transition-delay: 0.7s; }
.delay-08 { transition-delay: 0.8s; }
.delay-09 { transition-delay: 0.9s; }
.delay-1  { transition-delay: 1s; }

/* Hover flottant (boutons, cards) */
.float-hover {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.float-hover:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12);
}

/* Pulse discret — pas de viewport, se joue en boucle donc on garde l'animation */
.pulse {
    animation: pulse 2s ease infinite;
}
@keyframes pulse {
    0%, 100% { transform: scale(1); }
    50%       { transform: scale(1.04); }
}