/* Reset global */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  margin: 0;
  padding: 0;
  transition: background-color 0.3s ease;
}

/* Thème clair par défaut */
:root {
  --bg-color: #f8f9fa;        /* fond clair institution */
  --text-color: #212529;
  
  --primary-color: #0b1d33;   /* bleu sombre institutionnel */
  --secondary-color: #457b9d; /* bleu secondaire complément */
  --accent-color: #d4af37;    /* doré institutionnel */

  --gradient-nav: linear-gradient(90deg, var(--primary-color), var(--secondary-color));
  --gradient-footer: linear-gradient(135deg, var(--primary-color), var(--accent-color));
  
  --nav-text-light: #ffffff;
  --nav-hover-light: rgba(255, 255, 255, 0.15);
  --nav-hover-dark: #2a2f33;
}

body {
  margin: 0;
  padding: 0;
  background-color: var(--bg-color);
  color: var(--text-color);
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* Mode sombre */
body.dark-mode {
  --bg-color: #1b1f22;
  --text-color: #f1f1f1;
  background-color: var(--bg-color);
  color: var(--text-color);
}

/* Navbar */
.navbar-blur {
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  background-color: rgba(11, 29, 51, 0.95); /* bleu sombre semi-transparent */
  z-index: 1030;
  transition: background-color 0.3s ease;
}

body.dark-mode .navbar-blur {
  background-color: rgba(18, 18, 18, 0.8);
}

.bg-theme {
  background-color: var(--bg-color);
}

/* Liens navbar */
.navbar-nav .nav-link {
  font-size: 0.95rem;
  font-weight: 500;
  padding: 0.35rem 0.75rem;
  color: var(--nav-text-light);
  border-radius: 0.5rem;
  transition: all 0.3s ease;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus {
  background-color: var(--nav-hover-light);
  color: var(--accent-color);
  text-decoration: none;
}

/* Dropdown menu */
.dropdown-menu .dropdown-item {
  font-size: 1.05rem;
  padding: 0.6rem 1.2rem;
  border-radius: 0.35rem;
  transition: background-color 0.2s ease;
}

.dropdown-menu .dropdown-item:hover,
.dropdown-menu .dropdown-item:focus {
  background-color: var(--primary-color);
  color: white;
}

/* Boutons */
.btn-primary {
  background: var(--primary-color) !important;
  border: none !important;
  color: #fff !important;
  font-weight: 500;
  transition: all 0.3s ease;
}
.btn-primary:hover,
.btn-primary:focus {
  background: #091528 !important; /* encore plus sombre au hover */
  color: #fff !important;
  transform: translateY(-2px);
  box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.25);
}

.btn-accent {
  background: var(--accent-color);
  border: none;
  color: #fff;
  font-weight: 600;
  transition: all 0.3s ease;
}
.btn-accent:hover {
  background: #bfa14a; /* doré foncé */
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.25);
}

/* Couleurs utilitaires */
.text-primary {
  color: var(--primary-color) !important;
}
.bg-primary {
  background-color: var(--primary-color) !important;
}
.badge.bg-primary {
  background-color: var(--primary-color) !important;
}
.text-accent {
  color: var(--accent-color) !important;
}

/* Mode sombre boutons/cards */
body.dark-mode .card {
  background-color: #1e1e1e;
  color: #eee;
  border-color: #333;
}

body.dark-mode .btn {
  background-color: #333;
  color: #fff;
}

/* Cards produits */
.card-body-product {
  min-height: 130px;
  max-height: 130px;
}

.product-card {
  transition: all 0.3s ease-in-out;
}
.product-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(11, 29, 51, 0.3); /* shadow bleu sombre */
}
