/* Global */
:root {
  --body-bg: #f8f9fa;
  --text-color: #212529;
  --muted-text-color: #6c757d;
  --primary-color: #4285f4;
  --card-bg: #ffffff;
  --card-border: rgba(0, 0, 0, 0.05);
  --navbar-bg: #f8f9fa;
  --link-color: #212529;
  --link-hover-color: #007bff;
}

body.dark-mode {
  --body-bg: #121212;
  --text-color: #f8f9fa;
  --muted-text-color: #adb5bd;
  --primary-color: #72a3ff;
  --card-bg: #212121;
  --card-border: rgba(255, 255, 255, 0.1);
  --navbar-bg: #1e1e1e;
  --link-color: #f8f9fa;
  --link-hover-color: #72a3ff;
}

body {
  background-color: var(--body-bg);
  color: var(--text-color);
  transition: background-color 0.5s ease, color 0.5s ease;
}

.bg-body-tertiary {
  background-color: var(--navbar-bg) !important;
}
.text-dark {
  color: var(--text-color) !important;
}
.text-muted {
  color: var(--muted-text-color) !important;
}
.text-primary {
  color: var(--primary-color) !important;
}
.bg-light {
  background-color: var(--body-bg) !important;
}
.bg-white {
  background-color: var(--card-bg) !important;
}

.card {
  background-color: var(--card-bg);
  border: 1px solid var(--card-border) !important;
  transition: background-color 0.5s ease, border-color 0.5s ease;
}

.hover-lift:hover {
  transform: translateY(-5px);
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}
body.dark-mode .hover-lift:hover {
  box-shadow: 0 0.5rem 1rem rgba(255, 255, 255, 0.1) !important;
}

.icon-circle {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.3s ease-in-out;
}

.icon-circle i {
  transition: transform 0.3s ease-in-out;
}

.team-card,
.portfolio-card,
.contact-card {
  transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}
.nav-link,
.text-body {
  color: var(--link-color) !important;
}

.nav-link:hover,
.text-body:hover {
  color: var(--link-hover-color) !important;
}

.nav-link {
  position: relative;
  text-decoration: none;
}

.nav-link::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 2px;
  bottom: 0;
  left: 0;
  background-color: #007bff;
  transform: scaleX(0);
  transform-origin: bottom right;
  transition: transform 0.3s ease-out;
}

.nav-link:hover::after {
  transform: scaleX(1);
  transform-origin: bottom left;
}

/* Le bouton de bascule a son propre style pour rester cohérent */
#theme-toggle {
  color: var(--link-color) !important;
}
#theme-toggle:hover {
  background-color: transparent !important;
}

/* Section About */
.about-image-wrapper {
  transition: transform 0.3s ease-in-out;
}

.about-image-wrapper:hover {
  transform: translateY(-5px);
}

.display-5 {
  font-size: 2.5rem;
}

@media (min-width: 992px) {
  .display-5 {
    font-size: 3rem;
  }
  .about-main-image {
    margin-left: 20px;
  }
}

/* Teams Section */
.team-card {
  transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}
.team-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}

/* Portfolio Section */
.portfolio-card {
  transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}
.portfolio-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}

/* Contact Section */
.contact-card {
  transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}
.contact-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}
.form-control-lg {
  padding: 1rem;
}

/* Section Cards */
.service-card {
  transition: all 0.3s ease-in-out;
  border: 1px solid rgba(0, 0, 0, 0.05); /* Subtle border */
  overflow: hidden; /* Ensures shadow is contained */
}

.service-card:hover {
  transform: translateY(-8px) scale(1.02); /* Lifts and slightly scales */
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; /* Deeper shadow on hover */
}

.icon-circle {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.5rem;
  background-color: var(--mdb-primary-rgb, 13, 110, 253) / 10%; /* Fallback for transparency */
  transition: background-color 0.3s ease-in-out;
}

.service-card:hover .icon-circle {
  background-color: var(--mdb-primary-rgb, 13, 110, 253) / 20%; /* Darker background on hover */
}

.icon-circle i {
  transition: transform 0.3s ease-in-out;
}

.service-card:hover .icon-circle i {
  transform: scale(1.1); /* Slightly enlarge icon on hover */
}

/* Adjust section padding for better visual balance */
.py-6 {
  padding-top: 6rem !important;
  padding-bottom: 6rem !important;
}
