:root {
  --primary:#0b6efd;
  --secondary:#20c997;
  --bg:#f4f6f8;
  --card:#ffffff;
  --text:#1f2937;
  --muted:#6b7280;
  --radius:12px;
}

* {
  box-sizing:border-box;
}

body {
  margin:0;
  font-family: "Inter", system-ui, sans-serif;
  background:linear-gradient(135deg,#e8f1ff,#f9fbff);
  color:var(--text);
}

.progress-container {
  width: 100%;
  background-color: #eee;
  height: 8px;
  border-radius: 4px;
  margin-bottom: 20px;
}

.progress-bar {
  height: 100%;
  width: 0;
  background: linear-gradient(90deg,#0b6efd,#20c997);
  border-radius: 4px;
  transition: width 0.3s ease;
}


form {
  max-width:650px;
  margin:50px auto;
  background:var(--card);
  padding:35px;
  border-radius:var(--radius);
  box-shadow:0 20px 40px rgba(0,0,0,.08);
  animation:fadeIn .5s ease;
}

h2 {
  margin-bottom:20px;
  font-size:1.4rem;
}

.step {
  display:none;
  animation:slide .4s ease;
}

.step.active {
  display:block;
}

label {
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  border:1px solid #e5e7eb;
  border-radius:10px;
  margin-bottom:12px;
  cursor:pointer;
  transition:.2s;
}

label:hover {
  border-color:var(--primary);
  background:#f0f6ff;
}

input[type="radio"] {
  accent-color:var(--primary);
}

input, textarea {
  width:100%;
  padding:12px 14px;
  border-radius:10px;
  border:1px solid #d1d5db;
  font-size:1rem;
}

textarea {
  resize:none;
}

input:focus, textarea:focus {
  outline:none;
  border-color:var(--primary);
}

.counter {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:15px;
}

.counter button {
  width:36px;
  height:36px;
  border-radius:50%;
  border:none;
  background:var(--primary);
  color:#fff;
  font-size:18px;
  cursor:pointer;
}

.counter input {
  width:70px;
  text-align:center;
}

button {
  margin-top:25px;
  padding:14px;
  width:100%;
  border:none;
  border-radius:12px;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  color:#fff;
  font-size:1rem;
  cursor:pointer;
  transition:.2s;
}

button:hover {
  transform:translateY(-1px);
  box-shadow:0 10px 25px rgba(0,0,0,.15);
}

.conditional {
  display:none;
  margin-top:15px;
}

.loader {
  display:none;
  justify-content:center;
  align-items:center;
  height:200px;
}

.loader img {
  width:80px;
  animation:spin 1.5s linear infinite;
}

@keyframes spin {
  to { transform:rotate(360deg); }
}

@keyframes slide {
  from { opacity:0; transform:translateX(30px); }
  to { opacity:1; transform:translateX(0); }
}

@keyframes fadeIn {
  from { opacity:0; transform:scale(.98); }
  to { opacity:1; transform:scale(1); }
}

/* MOBILE */
@media(max-width:600px){
  form { margin:20px; padding:25px; }
  h2 { font-size:1.2rem; }
}

/* Ajustement responsive supplémentaire */
@media screen and (max-width: 480px) {
  body, form {
    font-size: 17px; /* un peu plus grand pour mobile */
  }
  form input, form select, form textarea, form button {
    font-size: 1.1rem;
    padding: 1em;
  }
}

