*{
    margin: 0;
    cursor: url("img/curseur.svg") 8 8, auto;
}

@font-face {
    font-family: "please-poster-vf", sans-serif;
    font-variation-settings: "wght" 900;
}

@font-face {
    font-family: "josefin-sans", sans-serif;
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: "josefin-sans", sans-serif;
    font-weight: 600;
    font-style: italic;
}

@keyframes fadeIn {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
}

@keyframes float {
    0% {
      transform: translateY(0);
    }
    50% {
     transform: translateY(-6%);
    }
    100% {
     transform: translateY(0);
    }
}


html {
    scroll-behavior: smooth;
}

header{
    background-color: #fff8e9;
    padding: 1%;
    font-family: josefin-sans;
    font-weight: 600;
    font-style: italic;
}

header {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* 3 colonnes égales */
    gap: 20px; /* espace entre les blocs */
    padding-right: 8%;
    padding-left:8%;
    align-items: center;
}

header nav {
    justify-self: end;
}

header nav a {
    position:relative;
    margin: 5px;
	padding:5px;
	font-size:1.2rem;
    text-decoration: none;
    color: #f26b99;
    align-items: center;
}

header nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px; /* distance sous le texte */
  width: 0%;
  height: 2px;
  background:#2769ad;
  transition: width 0.3s ease;
}

header nav a:hover::after {
  width: 100%;
}


header img {
    width: 10%;
}

main {
    background-color: #fffcf5;
}

#presentation {
    background-image: url(img/fond.png);
    background-repeat: no-repeat;
    background-position: center;
    background-attachment: scroll;
    background-size: cover;
    height: 100vh;
    color: #f26b99;

    display: flex;
    flex-direction: column;      /* ← empile h1 et p */
    justify-content: center;     /* centre verticalement */
    align-items: center;         /* centre horizontalement */
}

#titre h1{
    display: inline;
}

#presentation h1 {
    font-size: 320%;
    animation: fadeIn 2s ease-in-out;
    font-family: please-poster-vf;
    transition: color 1s ease-out;
}

#presentation p {
    font-size: 100%;
    animation: fadeIn 2s ease-in-out;
    font-family: josefin-sans;
    font-weight: 400;
    font-style: normal;
}

#cv {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3 colonnes égales */
    gap: 20px; /* espace entre les blocs */
    padding-right: 8%;
    padding-left:8%;
    padding-top: 6%;
    font-family: josefin-sans;
    font-weight: 400;
    font-style: normal;
}

#cv h2{
    color: #f26b99;
    font-family: please-poster-vf;
    font-size: 1.7rem;
    padding-bottom: 3%;
}

#explication {
    color:#f26b99;
}

#applications {
    display: grid;
    grid-template-columns: repeat(5, 1fr); /* 5 colonnes */
    grid-template-rows: repeat(2, auto); /* 2 lignes */
    gap: 2px; /* espace entre les images */
}

#applications img {
    width: 85%;
    object-fit: cover;
}

h3 {
    font-family: josefin-sans;
    font-weight: 600;
    font-style: italic;
}

#sections {
    padding: 8%;
    padding-bottom: 0%;
    display: grid;
    grid-template-columns: 65% 35% ;
    gap: 10px;
}

#sommaire {
    display: grid;
    grid-template-rows: repeat(6, 1fr);
}

#sommaire img {
    width: 100%;
}

#sommaire img:hover{
    transform: scale(1.03);
}

#portrait img {
    width: 100%;
}

/* Le slider devient un conteneur positionné */
.slider-container {
    position: relative;
    width: 100vw;
    height: 100vh;
}

/* Ton slider horizontal */
.horizontal-wrapper {
    display: flex;
    overflow-x: scroll;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    width: 100%;
    height: 100%;
    scroll-behavior: smooth;

    scrollbar-width: none; /* Firefox */
}
.horizontal-wrapper::-webkit-scrollbar {
    display: none; /* Chrome/Safari */
}

/* Panels */
.panel {
    min-width: 100vw;
    height: 100vh;
    scroll-snap-align: start;
    display: flex;
    justify-content: center;
    align-items: center;
}

.panel img {
    width: 100%;
    object-fit: contain;
}

/* Flèches */
.arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    border: none;
    background: none;          /* plus de fond */
    padding: 0;                /* plus de padding */
    border-radius: 0;          /* plus de forme ronde */
    cursor: pointer;

    display: flex;
    justify-content: center;
    align-items: center;

    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s, transform 0.25s ease;
}

/* Icône de flèche */
.arrow img {
    width: 45px;
    height: 45px;
    object-fit: contain;
    transition: transform 0.25s ease;
}

/* Apparition uniquement au hover */
.slider-container:hover .arrow {
    opacity: 1;
    pointer-events: auto;
}

/* Scale au hover */
.arrow:hover img {
    transform: scale(1.25);
}

/* Positionnement */
.arrow-left {
    left: 4%;
}

.arrow-right {
    right: 4%;
}

/* Scrollbar invisible */
.horizontal-wrapper {
    scrollbar-width: none;
}
.horizontal-wrapper::-webkit-scrollbar {
    display: none;
}

footer {
    background-color: #fff8e9;
}

#footer {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr; /* 3 colonnes égales */
    grid-template-rows: 1fr;
    align-items: center; /* centrer verticalement */
    padding-right: 8%;
    padding-left: 8%;
}

/* Colonne gauche */
#reseaux {
    justify-self: start; /* colle à gauche */
    text-align: left;
}

/* Colonne centre */
#logoarriere {
    justify-self: center; /* centre la colonne */
    text-align: center;
}

/* Colonne droite */
#contacts {
    justify-self: end; /* colle à droite */
    text-align: right;
}

footer a,
footer p {
    text-decoration: none;
    color: #f26b99;
    font-family: josefin-sans;
    font-weight: 600;
    font-style: italic;
}

#reseaux .button {
    background-color: #f26b99;
    border: none;
    border-radius: 10px;
    width: 35px;
    height: 40px;
    display: flex;
    align-items: center;
    gap: 8px; /* espace entre icône et texte */
    padding: 0 10px;
    margin-bottom: 4px;
    overflow: hidden;
    transition: transform 0.3s ease, width 0.3s ease;
}

#reseaux .button img {
    width: 27px;
    height: 27px;
    flex-shrink: 0;
}

#reseaux .button span {
    font-family: josefin-sans;
    font-weight: 600;
    font-size: 1.0rem;
    color:#fff8e9;
    white-space: nowrap;
    opacity: 0;
    width: 0;
    transition: opacity 0.3s ease, width 0.3s ease;
}

#reseaux .button:hover {
    width: 120px; /* le bouton s'étend */
}

#reseaux .button:hover span {
    opacity: 1;
    width: auto;
}




#logoarriere img {
    width: 40%;
}

#signature {
    text-align: center;
    font-family: josefin-sans;
    font-weight: 600;
    font-size: 0.8rem;
    font-style: normal;
    padding-bottom: 2%;
}

.hero {
  position: relative; /* indispensable */
}

.decor {
  position: absolute;
  pointer-events: none; /* pour éviter tout clic dessus */
  z-index: 1; /* ou +1 selon si tu veux devant ou derrière */
}

.decor-rose {
    top: 17%;   /* distance depuis le haut du conteneur */
    left: 58%;  /* distance depuis la gauche */
}

.decor-rose img {
    width: 9%;
    animation: float 3s ease-in-out infinite;
    width: 150px;
}

.decor-vert {
    top: 27%;   /* distance depuis le haut du conteneur */
    left: 82%;  /* distance depuis la gauche */
}

.decor-vert img {
    width: 10%;
    animation: float 3s ease-in-out infinite;
    width: 150px;
}

.decor-bleu {
    top: 26%;   /* distance depuis le haut du conteneur */
    left: 2%;  /* distance depuis la gauche */
}

.decor-bleu img {
    width: 10%;
    animation: float 3s ease-in-out infinite;
    width: 150px;
}

.decor-rouge {
    top: 11%;   /* distance depuis le haut du conteneur */
    left: 87%;  /* distance depuis la gauche */
}

.decor-rouge img {
    width: 10%;
    animation: float 5s ease-in-out infinite;
    width: 150px;
}

.decor-jaune {
    top: 69%;   /* distance depuis le haut du conteneur */
    left: 10%;  /* distance depuis la gauche */
}

.decor-jaune img {
    width: 10%;
    animation: float 5s ease-in-out infinite;
    width: 150px;
}


.back-to-top{
    position:fixed;
    bottom: 30px;
    right: 30px;
    width: 60px;
    height: 12%;
    display: flex;
    justify-content: center;
    border-radius: 50%;
    font-size: 40px;
    transition: transform .2s ease;
}

.back-to-top:hover{
    transform: scale(1.15);
}


.bandeau {
    width: 100%;
    overflow: hidden;
    color: #f26b99;
    position: relative;
    padding-top: 6%;
}

.contenu {
    display: inline-block;
    white-space: nowrap;
    padding-left: 100%;
    animation: defilement 25s linear infinite;
    font-family: please-poster-vf;
    font-size: 1.7rem;
}

.contenu img {
    height: 5vh;
}

@keyframes defilement {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}


