.form-wizard {
  max-width: 650px;
  margin: 80px auto;
  background: #fff;
  padding: 30px;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.form-wizard h1 { text-align: center; margin-bottom: 20px; }

/* Progress bar */
.progress {
  background: #eee;
  border-radius: 25px;
  overflow: hidden;
  margin: 20px 0 30px;
  height: 10px;
}
#progressBar {
  width: 20%;
  height: 100%;
  background: #2db94f;
  transition: width 0.3s;
}

.form-step { display: none; }
.form-step.active { display: block; }

input, select, textarea {
  width: 100%;
  padding: 10px;
  margin: 10px 0 20px;
  border: 1px solid #ccc;
  border-radius: 8px;
}

button { padding: 10px 20px; border-radius: 8px; border: none; cursor: pointer; }
.next-btn { background: #2db94f; color: #fff; }
.prev-btn { background: #888; color: #fff; }
.btn-danger { background: #c62828; color: #fff; }

/* === Service Cards (étape 1) === */
.service-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 20px;
  margin: 20px 0;
}
.service-card {
  padding: 20px;
  border: 2px solid #ddd;
  border-radius: 12px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s ease;
  background: #fafafa;
}
.service-card img { width: 48px; margin-bottom: 10px; }
.service-card:hover { transform: translateY(-5px); border-color: #2db94f; }
.service-card.active { border-color: #2db94f; background: #e8f9ee; }
.service-card.inactive { opacity: 0.5; }

/* === Complement Cards (étape 2) === */
.extra-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 20px;
  margin: 20px 0;
}
.extra-card,
.extra-card-plus {
  padding: 20px;
  border: 2px solid #ddd;
  border-radius: 12px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s ease;
  background: #fafafa;
}
.extra-card img { width: 48px; margin-bottom: 10px; }
.extra-card:hover,
.extra-card-plus:hover { transform: translateY(-5px); border-color: #2db94f; }
.extra-card.active,
.extra-card-plus.active { border-color: #2db94f; background: #e8f9ee; }
.extra-card.inactive,
.extra-card-plus.inactive { opacity: 0.5; }

/* === Récap === */
.tarif-min {
  margin: 20px 0;
  padding: 10px;
  background: #f9f9f9;
  border-left: 4px solid #2db94f;
}

/* === Erreurs / Validation === */
.error {
  border-color: #c62828 !important;
  animation: shake 0.35s;
}
.error-message {
  color: #c62828;
  font-size: 0.85rem;
  margin: 6px 0 12px;
  display: none;
}
.error-message.active { display: block; }

/* for messages inside grids -> span full width */
.service-cards .error-message,
.extra-cards .error-message {
  grid-column: 1 / -1;
}

/* shake animation */
@keyframes shake {
  0% { transform: translateX(0); }
  20% { transform: translateX(-6px); }
  40% { transform: translateX(6px); }
  60% { transform: translateX(-6px); }
  80% { transform: translateX(6px); }
  100% { transform: translateX(0); }
}

/* Erreur sur une card explicitement */
.service-card.error,
.extra-card.error,
.extra-card-plus.error {
  border-color: #c62828 !important;
}
