/* ==============================
   Styles généraux
   ============================== */

/* Import police Cinzel */
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@700&display=swap');

/* Carousel */
.carousel-item { position: relative; }
.carousel-item img { height: 500px; object-fit: cover; }
.carousel-caption { bottom: 20%; }
.carousel-caption.bg-opacity-50 { background-color: rgba(0,0,0,0.5) !important; }

/* Sections */
section { padding: 3rem 0; }

/* ==============================
   Main content
   ============================== */
main {
  margin-left: 12rem;
  padding: 2rem;
  flex-grow: 1;
  box-sizing: border-box;
  max-width: 100%;
  transition: margin-left 0.3s ease;
}
.code-moral-container:hover ~ main { margin-left: 16rem; }

/* ==============================
   Navbar
   ============================== */
.navbar-brand img { object-fit: contain; margin-left: 12rem; }
.navbar-nav .nav-link { margin-left: 10px; position: relative; transition: color 0.2s ease;}
.navbar-nav .nav-link::after { content:''; position:absolute; left:0; bottom:-3px; width:0; height:2px; background:#064635; transition:width 0.3s;}
.navbar-nav .nav-link:hover::after { width:100%; }

/* Barre verte sous le header */
.header-underline { height:4px; background:#064635; position:absolute; bottom:0; left:0; width:100%; }

/* ==============================
   Footer
   ============================== */
.footer-links { margin-top:0.5rem; }
.footer-links a { color:#fff; margin:0 0.5rem; text-decoration:none; position: relative; }
.footer-links a::after { content:''; position:absolute; left:0; bottom:-3px; width:0; height:2px; background:#064635; transition:width 0.3s;}
.footer-links a:hover::after { width:100%; }
footer { padding:0.5rem 0; font-size:0.9rem; position:relative; z-index:1100; }



/* ==============================
   Section Notre équipe
   ============================== */

.team-section {
  padding: 3rem 0;
  text-align: center;
}

.team-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem; /* espace entre les cartes */
}

.team-member {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: #fff;
  padding: 0.5rem;
  border-radius: 0.5rem;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  height: 100%; /* force la carte à remplir la colonne */
}

.team-member img.team-photo {
  width: 100%;
  height: 200px; /* même hauteur pour toutes les images */
  object-fit: cover;
  border-radius: 0.5rem;
  margin-bottom: 0.5rem;
}

.team-member h3.member-name {
  margin: 0.5rem 0 0.25rem;
  font-size: 1rem;
  font-weight: bold;
}

.team-member p.member-role {
  margin: 0;
  font-size: 0.85rem;
  color: #555;
}

/* Responsive */
@media (max-width: 768px) {
  .team-member img.team-photo {
    height: 150px;
  }
}
/* ==============================
   Sidebar "Code moral"
   ============================== */
.code-moral-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 12rem;
  height: 100vh;
  background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
  box-shadow: 2px 0 8px rgba(0,0,0,0.1);
  padding: 1rem;
  box-sizing: border-box;
  z-index: 1000;
  transition: transform 0.3s ease;
  overflow-y: auto; /* si trop de texte */
}

.code-moral-container:hover {
  transform: scaleX(1.2);
  transform-origin: left; /* élargit visuellement sans casser la largeur */
}

.code-moral-title {
  font-family: 'Cinzel', serif;
  font-weight: bold;
  font-size: 1.2rem;
  margin-bottom: 1rem;
  text-align: center;
  color: #212529;
  cursor: pointer;
  position: relative;
}

.code-moral-title::after {
  content:'⛩️';
  position:absolute;
  right:-1rem;
  top:0;
  opacity:0.7;
  transform: rotate(-10deg);
}

.code-moral-list {
  list-style:none;
  padding:0.5rem 0;
  margin:0;
  opacity:0;
  transition: opacity 0.2s ease 0.2s;
}

.code-moral-container:hover .code-moral-list {
  opacity:1;
}

.code-moral-list li {
  position: relative;
  margin-left: 1.5rem;
  margin-bottom: 0.8rem;
  font-weight: bold;
  color: #212529;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.code-moral-list li::before {
  content:'🥋';
  position:absolute;
  left:-1.5rem;
  top:0;
  font-size:1rem;
}

.code-moral-list li:hover {
  background-color: rgba(230,57,70,0.1);
  border-radius:0.25rem;
}

.code-moral-list .definition {
  display:none;
  font-weight: normal;
  font-size:0.85rem;
  color:#555;
  margin-left:0.5rem;
}

.code-moral-list li:hover .definition {
  display:block;
}

/* ==============================
   Ajustements du body
   ============================== */
body {
  margin-left: 12rem;   /* laisse la place pour la sidebar */
  overflow-x: hidden;   /* empêche le scroll horizontal */
}

/* ==============================
   Responsive mobile
   ============================== */
@media (max-width: 768px) {
  body {
    margin-left: 0; /* pas de décalage */
    padding: 1rem;
  }
  .code-moral-container {
    position: relative; /* plus fixe */
    width: 100%;
    height: auto;
    transform: none !important; /* pas d’agrandissement au hover */
  }
  .code-moral-container:hover .code-moral-list {
    opacity: 1; /* toujours visible sur mobile */
  }
}
/* ==============================
   Responsive
   ============================== */
@media (max-width: 768px) {
  .code-moral-container { border-left:none; border-top:4px solid #343a40; margin-bottom:1rem;}
  main { margin-left:0; padding:1rem;}
}