
@font-face {
  font-family: 'GlamourLocale'; 
  src: url('fonts/Glamour.ttf') format('truetype'); 
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'Anton';
  src: url('Anton/Anton-Regular.ttf') format('opentype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'Times';
  src: url('fonts/Times New Roman Italic.ttf') format('opentype');
  font-weight: normal;
  font-style: italic;
}


html {
  scroll-behavior: smooth; 
}

body {
  margin: 0;
  font-family: 'Raleway', sans-serif;
  background-color: #1a1a1a;
  overflow-x: hidden;
}

.anton-regular {
  font-family: "Anton", sans-serif;
  font-weight: 400;
}


header {
  position: absolute;
  top: 40px; 
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  justify-content: center;
  z-index: 100;
  font-family: 'Anton';
  opacity: 0;
  animation: fadeInHeader 1s ease-out forwards 0.5s;
}

@keyframes fadeInHeader {
  from { opacity: 0; transform: translateX(-50%) translateY(-20px); }
  to { opacity: 1; transform: translateX(-50%) translateY(0); }
}

nav ul { list-style: none; display: flex; gap: 80px; padding: 0; }
nav a {
  color: #e9e7db;
  text-decoration: none;
  font-weight: bold;
  text-transform: uppercase;
  transition: color 0.3s;
  font-family: 'Anton';
}
nav a:hover { color: #bdbbb1; }


#accueil {
  height: 100vh;
  color: #e9e7db;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  position: relative;
  padding: 0 20px;
}

.accueil-content {
  transform: translate(-12vw, -20vh); 
  display: flex;
  flex-direction: column;
  align-items: flex-start; 
  position: relative; 
  width: 100vw; 
  height: 60vh; 
}

#portfolio-header {
    font-size: 15rem; 
    font-family: 'Anton', sans-serif;
    color: #e9e7db;
    line-height: 1; 
    position: absolute;
    top: 300px; 
    left: 250px; 
    margin: 0;
}

#animated-title {
  font-size: 5.5rem; 
  color: #e9e7db; 
  transition: font-family 0.15s ease-in-out; 
  -webkit-text-stroke: 0.5px #1a1a1a; 
  text-stroke: 0.5px #1a1a1a;         
  position: absolute;
  top: 470px; 
  left: 350px;
  margin: 0;
  z-index: 5;
}

.font-final {
  font-family: 'GlamourLocale', serif !important; 
  font-weight: 400;
  letter-spacing: 5px; 
  text-transform: none !important; 
}

.font-temp-1 { font-family: 'Impact', sans-serif !important; }
.font-temp-2 { font-family: 'Courier New', monospace !important; font-style: italic; font-size: 3.2rem; }
.font-temp-3 { font-family: 'Georgia', serif !important; }


.image-overlay {
    z-index: 10; 
    position: absolute;
    top: -100px; 
    left: 90px;
    width: 100%; 
}

.image-overlay img {
    position: absolute; 
    object-fit: cover; 
    border-radius: 8px; 
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1), filter 0.3s ease;
    cursor: pointer;
}

.image-overlay .img-1 { top: 700px; left: 100px; z-index: 2; width: 400px; }
.image-overlay .img-1:hover { transform: scale(1.05) rotate(-3deg); filter: drop-shadow(0 10px 20px rgba(0,0,0,0.5)); }

.image-overlay .img-2 { top: 700px; left: 1220px; z-index: 1; width: 570px; }
.image-overlay .img-2:hover { transform: scale(1.03) rotate(5deg) translateY(-10px); }


#aproposdemoi { padding: 80px 0; background-color: #e9e7db; color: #1a1a1a; }
h2 { text-align: center; font-size: 2rem; font-family: 'Times'; font-style: italic; margin-bottom: 20px; }

.moi {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 50px;
  max-width: 800px;
  margin: auto;
  flex-direction: row-reverse;
  gap: 20px;
  opacity: 0;
  transition: opacity 1s ease-out;
}

.moi.fadeIn { opacity: 1; }
.moi .paragraphe { flex: 1; text-align: left; font-family: 'Montserrat'; font-size: 1.2rem; line-height: 1.6; }
.moi img { width: 35%; border-radius: 10px; transition: transform 0.4s ease; margin-top: -14%;}
.moi img:hover { transform: scale(1.05); }

.btn-cv, .btn-linkedin {
  display: inline-block;
  margin-top: 20px;
  padding: 10px 20px;
  font-family: 'Times';
  font-style: italic;
  font-weight: bold;
  text-decoration: none;
  color: #1a1a1a; 
  border: 1px solid #1a1a1a; 
  border-radius: 30px; 
  transition: all 0.3s ease;
}
.btn-cv { margin-right: 15px; }
.btn-cv:hover, .btn-linkedin:hover { background-color: #1a1a1a; color: #F5F5DC; }

#projets { padding: 40px 0; background-color: #1a1a1a; }
h4 { text-align: center; font-size: 2rem; color: #e9e7db; font-family: 'Times'; font-style: italic; margin-bottom: 20px; }

.galerie-pinterest {
  width: 90%;
  max-width: 1400px;
  margin: 20px auto; 
  column-count: 4; 
  column-gap: 15px; 
}

.projet-item {
  break-inside: avoid; 
  margin-bottom: 15px; 
  position: relative;
}

.projet-item a {
  display: block;
  border-radius: 8px;
  overflow: hidden;
  position: relative; 
}

.projet-item img {
  width: 100%;
  height: auto;
  display: block; 
  filter: brightness(100%); 
  transition: transform 0.5s ease, filter 0.5s ease; 
}

.voir-plus {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -20%);
  background-color: transparent; 
  color: #e9e7db;
  border: 1px solid #e9e7db;
  padding: 10px 25px;
  border-radius: 25px;
  font-family: 'Times', serif;
  font-style: italic;
  font-weight: bold;
  text-transform: uppercase;
  font-size: 0.85rem;
  opacity: 0;
  z-index: 2;
  transition: all 0.4s ease;
}

.projet-item:hover img { transform: scale(1.05); filter: brightness(30%); }
.projet-item:hover .voir-plus { opacity: 1; transform: translate(-50%, -50%); }
.voir-plus:hover { background-color: #e9e7db; color: #1a1a1a; cursor: pointer; }

.projet-item p { font-size: 1rem; margin-top: 10px; color: #e9e7db; font-family: 'Montserrat'; text-align: center; }



.main-image-container {
   width: 100%; 
    max-width: 600px; 
    aspect-ratio: 1 / 1; 
    margin: 0 auto 30px auto; 
    overflow: hidden;
    border: 1px solid rgba(0,0,0,0.1); 
}


.main-image-container img, .side-column img {
    width: 100%;
    height: 100%;
    object-fit: cover; 
    object-position: center; 
    display: block;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1), filter 0.4s ease; 
}


.main-image-container:hover img {
    transform: scale(1.05); 
    filter: brightness(0.9); 
}


.side-column:hover img {
    transform: scale(1.1);
    cursor: pointer;
}


.main-image-container {
    transition: border-color 0.4s ease;
}
.main-image-container:hover {
    border-color: rgba(0,0,0,0.4);
}


.page-photographies {
    background-color: #e9e7db;
    color: #1a1a1a;
}

.photo-layout {
    display: grid;
    grid-template-columns: 22% 56% 22%;
    min-height: 100vh;
    padding-top: 120px;
    gap: 0;
}

.side-column { 
    overflow: hidden; 
    height: 90vh; 
}

.main-column { padding: 0 50px; display: flex; flex-direction: column; }
.photo-title { 
    font-family: 'Anton', sans-serif; 
    font-size: 8rem; 
    margin: 0 0 20px 0; 
    text-transform: uppercase;
    color: #000;
}

.text-and-button { max-width: 550px; }
.photo-description { 
    font-family: 'Montserrat', sans-serif; 
    font-size: 0.95rem; 
    line-height: 1.5; 
    text-align: justify;
    margin-bottom: 30px;
}

.btn-voir-plus-photo {
    display: inline-block;
    padding: 12px 35px;
    border: 1px solid #e9e7db;
    border-radius: 40px;
    text-decoration: none;
    color: #e9e7db;
    font-family: 'Times', serif;
    font-style: italic;
    transition: all 0.3s ease;
}
.btn-voir-plus-photo:hover { 
    background-color: #e9e7db; 
    color: #e9e7db; 
    transform: translateY(-3px); 
}

#contact {
  padding: 100px 20px;
  background-color: #e9e7db;
  color: #1a1a1a;
  text-align: center;
}

.contact-intro { font-family: 'Montserrat'; font-size: 1rem; margin-bottom: 30px; }
.contact-info { margin-bottom: 40px; }

.contact-link {
  font-family: 'Times', serif;
  font-style: italic;
  font-size: 1.5rem; 
  color: #1a1a1a;
  text-decoration: none;
  transition: opacity 0.3s ease;
  display: inline-block;
  margin-bottom: 10px;
}

.phone { font-size: 1.5rem; }
.contact-link:hover { opacity: 0.6; }


.social-links { margin-top: 30px; }
.linkedin-logo { fill: #1a1a1a; transition: all 0.3s ease; }
.linkedin-logo:hover { fill: #0077b5; transform: scale(1.1); }

.footer-simple {
  margin-top: 60px;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.8rem;
  opacity: 0.5;
  text-transform: uppercase;
}





@media (max-width: 1200px) { 
    .galerie-pinterest { column-count: 3; }
    .photo-title { font-size: 5rem; }
}

@media (max-width: 768px) { 
  .photo-layout { grid-template-columns: 1fr; padding: 100px 20px; }
  .side-column { display: none; }
  .galerie-pinterest { column-count: 2; } 
  .contact-link { font-size: 1.2rem; }
  .photo-title { font-size: 3.5rem; }
}

@media (max-width: 500px) { .galerie-pinterest { column-count: 1; } }


.page-photographies {
    background-image:  url('background_page_photos.jpg');
    background-size: cover;
    background-position: center;
    background-attachment: fixed; 
    background-repeat: no-repeat;
    color: white; 
}
.main-image-container {
    margin-top: 200px; 
}


.container-bas-page {
    display: flex;
    align-items: flex-start; 
    justify-content: space-between; 
    gap: 400px; 
    margin-top: 80px; 
    width: 100%;
    padding: 0 20px;
}

.img-cote-texte {
  
    width: 100%; 
    height: auto;
    object-fit: cover;
    border-radius: 5px;
    filter: grayscale(50%);
    transition: 0.3s;
    margin-top: 20px; 
    margin-left: -80%;
}

.img-cote-texte:hover {
    filter: grayscale(0%);
    transform: scale(1.02);
}

.bloc-texte-central {
    flex: 1;
    max-width: 600px; 
    text-align: center;
    padding: 0 -30px; 
}


.photo-description {
    line-height: 1.6;
    margin-bottom: 20px;
}


.modal {
  display: none;
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(5px);
  overflow-y: auto;
  animation: fadeIn 0.4s ease-out;
}

.modal-content {
  background-color: rgba(0, 0, 0, 0.275);
  margin: 5% auto;
  padding: 40px;
  width: 85%;
  max-width: 1100px;
  border-radius: 8px;
  position: relative;
}

.close-modal {
  position: absolute;
  right: 20px;
  top: 10px;
  font-size: 40px;
  cursor: pointer;
  color: #e9e7db
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 20px;
  margin-top: 20px;
}

.gallery-grid img {
  width: 100%;
  height: 500px;
  object-fit: cover;
  border-radius: 4px;
  transition: filter 0.3s ease; 
}


.gallery-grid img:hover {
  cursor: pointer;
  filter: brightness(0.7);
}

#openGallery {
  cursor: pointer;
  background: none;
}


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


@keyframes slideIn {
  from { 
    opacity: 0; 
    transform: translateY(-50px); 
  }
  to { 
    opacity: 1; 
    transform: translateY(0); 
  }
}



@media (max-width: 1024px) {
    #portfolio-header {
        font-size: 10rem;
        left: 50px;
    }
    #animated-title {
        left: 100px;
        font-size: 4rem;
    }
}

@media (max-width: 768px) {
    nav ul {
        gap: 20px;
        flex-wrap: wrap;
        justify-content: center;
    }

  
    .accueil-content {
        transform: none; 
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        height: auto;
        margin-top: 100px;
    }

    #portfolio-header {
        position: relative; 
        font-size: 15vw;    
        left: 0;
        top: 0;
        text-align: center;
    }

    #animated-title {
        position: relative;
        font-size: 8vw;
        left: 0;
        top: 10px;
        text-align: center;
    }

    .image-overlay {
        position: relative;
        top: 20px;
        left: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }

    .image-overlay .img-1, 
    .image-overlay .img-2 {
        position: relative;
        top: 0;
        left: 0;
        width: 80%; 
        max-width: 300px;
    }

    
    .moi {
        flex-direction: column; 
        padding: 20px;
        text-align: center;
    }

    .moi .paragraphe {
        text-align: center;
    }

    .moi img {
        width: 60%;
        margin-top: 20px;
    }

   
    .galerie-pinterest {
        column-count: 2; 
    }

    
    .photo-layout {
        grid-template-columns: 1fr;
        padding-top: 60px;
    }
    .side-column {
        display: none; 
    }
    .photo-title {
        font-size: 3rem;
        text-align: center;
    }
}

@media (max-width: 480px) {
    .galerie-pinterest {
        column-count: 1; 
    }

    .contact-link {
        font-size: 1.1rem;
    }

    .btn-cv, .btn-linkedin {
        display: block;
        width: 100%;
        margin-right: 0;
        margin-bottom: 10px;
    }
}