:root {

  --fond-principal: #f6fafd;

  --blanc: #FFFFFF;

  --bleu-moyen: #247fc1;

  --accent: #ff7f50;

  --gris-bleute: #d1e6ee;

  --texte-bleu-fonce: #2c3e50;

  --site-max-size: 1100px;

}



* {

  scroll-behavior: smooth;

  margin: 0;

  padding: 0;

  box-sizing: border-box;

}



body {

  font-family: 'Quicksand', sans-serif;

  line-height: 1.6;

  background: var(--fond-principal);

  color: #333;

}



.header-subtitle {

  width: 60%;

  text-align: left;

  color: var(--blanc);

  margin-bottom: 0;

}



.header-text {

  margin-top: 6rem;

  width: 50%;

  margin-bottom: 8rem;

  font-weight: bold;

}



header {

  padding: 2rem;

  text-align: center;

}



header h1 {

  font-size: 2.5rem;

  margin-bottom: 1rem;

}



nav a {

  margin: 0 1rem;

  text-decoration: none;

  color: #fff;

  font-weight: bold;

}



nav a:hover {

  color: var(--bleu-moyen);

}



section {

  padding: 4rem 2rem;

  margin: auto;

}



.keyword-search-not-s {

  position: absolute;

  width: 1px;

  height: 1px;

  margin: -1px;

  overflow: hidden;

  clip: rect(0, 0, 0, 0);

  border: 0;

}



section h2 {

  font-size: 2rem;

  color: var(--bleu-moyen);

  margin-bottom: 1rem;

}



.flex {

  display: flex;

  flex-wrap: wrap;

  gap: 6rem;

  align-items: flex-start;

}



.flex-reverse {

  flex-direction: row-reverse;

}



.text {

  text-align: justify;

  flex: 1 1 300px;

}



.image {

  max-width: 300px;

  flex: 1 1 300px;

  margin: 0 auto;

}



.text-card-main {

  margin-top: 1rem;

  color: revert !important;

  font-weight: 500 !important;

  font-size: 1rem !important;

}



.contact-me-section {

  display: flex;

  flex-wrap: wrap;

  gap: 3rem;

  align-items: center;

}



.contact-me-section .image-contact-me {

  max-width: 300px;

}



.image img {

  width: 100%;

  border-radius: 12px;

  box-shadow: 0 4px 8px rgba(0,0,0,0.1);

}



.gallery {

  display: grid;

  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));

  gap: 1rem;

  margin-top: 2rem;

}



.gallery img {

  width: 100%;

  height: 200px;

  object-fit: cover;

  border-radius: 8px;

}



.contact-card-container {

  display: flex;

  flex-direction: row;

  flex-wrap: wrap;

  width: 100%;

  justify-content: center;

  gap: 0 2rem;

}



.contact-card-container .card {

  width: 250px;

  text-align: center;

  margin: 1rem 0;

}



.contact-card-container .card img {

  width: 2rem;

  align-self: center;

}



.contact-card-container .card h3 {

  margin-bottom: 0;

}



.gallery img {

  width: 100%;

  border-radius: 12px;

  transition: transform 0.3s;

  cursor: pointer;

}



.gallery img:hover {

  transform: scale(1.05);

}



footer {

  background: #444;

  color: #fff;

  text-align: center;

  padding: 2rem 1rem;

}



.fade {

  opacity: 0;

  transform: translateY(20px);

  transition: opacity 0.8s ease, transform 0.8s ease;

}



.fade.visible {

  opacity: 1;

  transform: translateY(0);

}



.main-title {

  margin-top: 3rem;

}



#accueil {

  position: relative;

  background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.3)), url('assets/11.jpg');

  background-size: cover;

  background-position: center 20%;

  color: var(--blanc);

  padding: 0;

  text-shadow: 4px 4px 8px rgba(0, 0, 0, 0.9);

}



#accueil .header-content {

  position: relative;

  z-index: 2;

  padding: 2rem;

  margin: auto;

}



#accueil .text {

  font-size: 1rem;

  line-height: 1.6;

}



#accueil .image {

  display: none;

}



video {

  margin: 1rem;

  width: 100%;

  border-radius: 10px;

  align-self: flex-start;

}



.modal {

  display: none;

  position: fixed;

  z-index: 9999;

  left: 0;

  top: 0;

  width: 100%;

  height: 100%;

  background-color: rgba(0, 0, 0, 0.8);

  align-items: center;

  justify-content: center;

}



.modal img {

  max-width: 90%;

  max-height: 90%;

  border-radius: 10px;

}



.modal.active {

  display: flex;

}



.text-meet {

  color: var(--bleu-moyen);

  font-weight: bold;

}



.a-link {

  text-decoration: none;

  color: var(--bleu-moyen);

  font-weight: bold;

}



.a-link:hover {

  color: var(--texte-bleu-fonce);

}



.center-text {

  text-align: center;

  margin-bottom: 3rem;

}



.card-title-container {

  display: flex;

  gap: 1rem;

  justify-content: space-between;

}



.card-title-container h3 {

  margin-bottom: 0;

}



.card-title-container img {

  width: 3rem;

  align-self: flex-start;

}



.btn-contact {

  display: inline-block;

  padding: 0.75rem 1.5rem;

  background-color: var(--bleu-moyen);

  color: var(--blanc);

  font-size: 1.1rem;

  font-weight: 600;

  border: none;

  border-radius: 8px;

  text-decoration: none;

  transition: background-color 0.3s ease, transform 0.2s ease;

  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);

}



.btn-contact:hover {

  background-color: var(--texte-bleu-fonce);

  transform: translateY(-2px);

}



section:nth-of-type(odd) {

  background-color: var(--fond-principal);

}



section:nth-of-type(even) {

  background-color: var(--blanc);

}



.modal .prev,

.modal .next {

  cursor: pointer;

  position: absolute;

  top: 50%;

  font-size: 2rem;

  color: var(--blanc);

  padding: 1rem;

  user-select: none;

  transform: translateY(-50%);

  z-index: 10000;

}



.modal .prev {

  left: 20px;

}



.modal .next {

  right: 20px;

}



.section-container {

  max-width: var(--site-max-size);

  margin: auto;

}



.about-container {

  display: flex;

  flex-direction: row;

  gap: 1rem;

}



.color-icon {

  color: var(--bleu-moyen);

}



.icon-padding-right {

  padding-right: 12px;

}



.card {

  background: var(--blanc);

  border: 1px solid rgba(255, 255, 255, 0.3);

  backdrop-filter: blur(10px);

  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);

  border-radius: 16px;

  padding: 2rem;

  margin: 1rem auto;

  font-family: 'Segoe UI', sans-serif;

  text-align: left;

  transition: transform 0.3s ease, box-shadow 0.3s ease;

}



.card:hover {

  transform: translateY(-5px);

  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);

}



.cards-container {

  display: flex;

  flex-direction: column;

  justify-content: space-between;

}



.card h3 {

  color: var(--bleu-moyen);

  margin-bottom: 1rem;

  font-size: 1.5rem;

}



.card p {

  font-size: 1rem;

  line-height: 1.5;

}



/* Media Queries */

@media (max-width: 768px) {

  section {

    padding: 2rem 1.5rem;

    margin: auto;

  }



  .center-text {

    font-size: 1.5rem;

    line-height: normal;

    margin-bottom: 1.5rem;

  }
	



  .flex {

    gap: 2rem;

  }



  .main-title {

    margin-top: 0;

  }



  #accueil {

    background: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.5)), url('assets/11.jpg');

    background-size: cover;

    background-position: right;

  }



  .gallery {

    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));

  }



  .gallery img {

    height: 100px;

  }



  #accueil .flex {

    display: flex;

    justify-content: space-between;

    align-items: center;

  }



  #accueil .image {

    display: block;

    flex: 1;

  }



  #accueil .text {

    flex: 1;

    padding: 20px;

  }



  .header-subtitle {

    font-size: 1.5rem;

    width: 100%;

  }



  .header-text {

    font-size: 1rem;

    width: 100%;

  }



  .about-container {

    flex-wrap: wrap;

  }



  .about-container video {

    margin: 0;

  }



  .contact-card-container {

    gap: 1rem;

    justify-content: center !important;

  }



  .btn-contact {

    text-align: center;

    width: 100%;

  }



  .card h3 {

    font-size: 1.2rem;

    line-height: normal;

  }

}



@media (max-width: 380px) {

  #accueil {

    background-position: center right 20%;

  }

}



/* Responsive Header Navigation */

.header-navigation-container {

  position: relative;

}



.header-navigation-container > div:nth-child(1) {

  max-width: var(--site-max-size);

  margin: 0 auto;

  display: flex;

  flex-direction: row;

  justify-content: space-between;

  align-items: center;

  min-height: 4rem;

}



.header-navigation-container > div:nth-child(1) h1 {

  padding-left: 1rem;

}



.nav-content {

  display: flex;

  align-items: center;

  justify-content: space-between;

  position: relative;

}



.menu-toggle {

  display: none;

  font-size: 28px;

  background: none;

  border: none;

  cursor: pointer;

}



.ham-btn {

  color: var(--blanc);

  margin-right: 2rem;

}



.ham-btn:hover {

  color: var(--bleu-moyen);

}



@media (max-width: 900px) {

  .header-navigation-container > div:nth-child(1) h1 {

    font-size: 0.9rem;

  }



  nav {

    overflow: hidden;

    max-height: 0;

    flex-direction: column;

    background-color: var(--texte-bleu-fonce);

    position: absolute;

    top: 70px;

    right: 10px;

    width: 200px;

    box-shadow: 0 8px 16px rgba(0,0,0,0.2);

    transition: max-height 0.4s ease-out;

    z-index: 10;

    display: flex;

  }



  nav a {

    padding: 10px;

    border-bottom: 1px solid #ddd;

  }



  nav.show {

    display: flex;

    max-height: 500px;

    transition: max-height 0.4s ease-in;

  }



  .menu-toggle {

    display: block;

  }

}

