/* NoStop Devis — Charte alignée sur Astra (orange #f7b255 / noir #191a1a / gris #6f798f) */
.nsd-wrap {
  --nsd-primary: #f7b255;
  --nsd-primary-dark: #e09a3d;
  --nsd-primary-soft: #fff4e0;
  --nsd-heading: #191a1a;
  --nsd-text: #6f798f;
  --nsd-text-strong: #2a2f3b;
  --nsd-bg: #f8f8f9;
  --nsd-bg-alt: #fff;
  --nsd-border: #e3e6ec;
  --nsd-border-hover: #f7b255;
  --nsd-error: #dc2626;
  --nsd-error-bg: #fef2f2;
  --nsd-success: #16a34a;
  --nsd-success-bg: #ecfdf5;
  --nsd-radius: 12px;
  --nsd-font-body: 'Raleway', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --nsd-font-heading: 'Oswald', 'Raleway', sans-serif;
  max-width: 920px;
  margin: 32px auto;
  padding: 0 16px;
  color: var(--nsd-text);
  font-family: var(--nsd-font-body);
  font-size: 15px;
  line-height: 1.55;
}

.nsd-form {
  background: var(--nsd-bg-alt);
  border-radius: var(--nsd-radius);
  box-shadow: 0 12px 32px rgba(25,26,26,.07);
  padding: 32px;
}
@media (max-width: 680px) { .nsd-form { padding: 20px; } }

.nsd-banner { padding:14px 18px; border-radius:10px; margin-bottom:18px; font-size:15px; }
.nsd-banner-ok { background:var(--nsd-success-bg); color:#065f46; border-left:4px solid var(--nsd-success); }
.nsd-banner-err { background:var(--nsd-error-bg); color:#991b1b; border-left:4px solid var(--nsd-error); }

/* Stepper */
.nsd-stepper { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; margin-bottom:32px; position:relative; }
.nsd-stepper::before { content:''; position:absolute; top:20px; left:24px; right:24px; height:2px; background:var(--nsd-border); z-index:0; }
.nsd-step-bullet { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:8px; flex:1; }
.nsd-step-n {
  display:flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:50%;
  background:#fff; border:2px solid var(--nsd-border);
  font-family: var(--nsd-font-heading); font-weight:600;
  color:#9ca3af; transition:all .25s;
}
.nsd-step-label { font-size:11px; color:var(--nsd-text); text-align:center; text-transform:uppercase; letter-spacing:.5px; font-weight:500; }
@media (max-width:680px) { .nsd-step-label { display:none; } }
.nsd-step-bullet.is-active .nsd-step-n { background:var(--nsd-primary); border-color:var(--nsd-primary); color:#fff; box-shadow:0 6px 16px rgba(247,178,85,.4); transform:scale(1.08); }
.nsd-step-bullet.is-active .nsd-step-label { color:var(--nsd-heading); font-weight:700; }
.nsd-step-bullet.is-done .nsd-step-n { background:var(--nsd-primary-dark); border-color:var(--nsd-primary-dark); color:#fff; }
.nsd-step-bullet.is-done .nsd-step-n::before { content:'✓'; }
.nsd-step-bullet.is-done .nsd-step-n > span { display:none; }
.nsd-step-bullet.is-skipped { opacity:.45; }
.nsd-step-bullet.is-skipped .nsd-step-n { border-style:dashed; background:#fff; border-color:#cbd5e1; color:#94a3b8; }
.nsd-step-bullet.is-skipped .nsd-step-label { text-decoration:line-through; }

.nsd-step h2 {
  margin:0 0 22px; font-size:26px; line-height:1.2;
  color:var(--nsd-heading); font-family:var(--nsd-font-heading); font-weight:600;
  letter-spacing:.5px; text-transform:uppercase;
}
.nsd-step h2 small { display:block; font-size:13px; color:var(--nsd-text); font-family:var(--nsd-font-body); font-weight:400; text-transform:none; letter-spacing:0; margin-top:4px; }

.nsd-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:680px) { .nsd-grid-2 { grid-template-columns:1fr; } }

.nsd-card { background:var(--nsd-bg); border:1px solid var(--nsd-border); border-radius:var(--nsd-radius); padding:18px; margin-bottom:16px; }
.nsd-card legend { padding:0 8px; font-weight:700; color:var(--nsd-heading); font-size:13px; font-family:var(--nsd-font-heading); text-transform:uppercase; letter-spacing:.7px; }
.nsd-card label { display:block; font-size:13px; color:var(--nsd-text-strong); margin-bottom:12px; font-weight:500; }
.nsd-card label:last-child { margin-bottom:0; }
.nsd-card label .nsd-opt { color:var(--nsd-text); font-weight:400; font-size:11px; font-style:italic; margin-left:4px; }
.nsd-card label .nsd-req { color:var(--nsd-error); font-weight:700; margin-left:2px; }

.nsd-card input[type=text],
.nsd-card input[type=email],
.nsd-card input[type=tel],
.nsd-card input[type=date],
.nsd-card input[type=number],
.nsd-card select,
.nsd-card textarea {
  display:block; width:100%; box-sizing:border-box; margin-top:6px;
  padding:11px 13px; border:1.5px solid var(--nsd-border); border-radius:8px;
  font-family:var(--nsd-font-body); font-size:14px;
  color:var(--nsd-text-strong); background:#fff; transition:all .15s;
}
.nsd-card input:focus, .nsd-card select:focus, .nsd-card textarea:focus {
  outline:none; border-color:var(--nsd-primary);
  box-shadow:0 0 0 4px rgba(247,178,85,.18);
}
.nsd-card input.nsd-input-error,
.nsd-card select.nsd-input-error,
.nsd-card textarea.nsd-input-error {
  border-color:var(--nsd-error) !important; background:#fff5f5;
}
.nsd-card input.nsd-input-error:focus,
.nsd-card select.nsd-input-error:focus { box-shadow:0 0 0 4px rgba(220,38,38,.15); }

.nsd-field-error { display:none; color:var(--nsd-error); font-size:12px; font-weight:600; margin-top:4px; padding-left:2px; }
.nsd-field-error:not([hidden]):not(:empty) { display:block; }
.nsd-field-error:not([hidden]):not(:empty)::before { content:'⚠︎ '; }

.nsd-radio-row { display:flex; flex-wrap:wrap; gap:10px; }
.nsd-radio-tile { flex:1 1 140px; min-width:130px; }
.nsd-radio-tile input { position:absolute; opacity:0; pointer-events:none; }
.nsd-radio-tile span {
  display:block; padding:14px 16px;
  border:2px solid var(--nsd-border); border-radius:10px;
  background:#fff; text-align:center; cursor:pointer;
  transition:all .15s; font-weight:600; font-size:14px;
  color:var(--nsd-text-strong);
}
.nsd-radio-tile input:checked + span { border-color:var(--nsd-primary); background:var(--nsd-primary-soft); color:var(--nsd-heading); box-shadow:0 4px 12px rgba(247,178,85,.15); }
.nsd-radio-tile span:hover { border-color:var(--nsd-primary); }
.nsd-radio-tile.nsd-radio-error span { border-color:var(--nsd-error); }

/* Volume live */
.nsd-volume-live {
  background:linear-gradient(135deg, var(--nsd-primary), var(--nsd-primary-dark));
  color:#fff; padding:20px 24px; border-radius:var(--nsd-radius);
  margin-bottom:20px; font-size:15px; font-weight:500;
  display:flex; align-items:center; justify-content:space-between; gap:10px;
}
.nsd-volume-live strong { font-family:var(--nsd-font-heading); font-size:32px; font-weight:700; }

/* Catégories accordéon */
.nsd-categories { display:flex; flex-direction:column; gap:10px; }
.nsd-cat { background:var(--nsd-bg); border:1.5px solid var(--nsd-border); border-radius:var(--nsd-radius); overflow:hidden; transition:all .15s; }
.nsd-cat.is-open { border-color:var(--nsd-primary); background:#fff; box-shadow:0 6px 18px rgba(247,178,85,.08); }
.nsd-cat-toggle {
  width:100%; background:transparent; border:0;
  padding:14px 18px; display:flex; align-items:center; gap:8px;
  cursor:pointer; font-size:15px; font-weight:700;
  color:var(--nsd-heading); font-family:var(--nsd-font-heading);
  text-transform:uppercase; letter-spacing:.6px;
}
.nsd-cat-toggle:hover { background:rgba(247,178,85,.05); }
.nsd-cat-name { flex:1; text-align:left; }
.nsd-cat-summary { font-size:12px; color:var(--nsd-primary-dark); font-weight:700; font-family:var(--nsd-font-body); text-transform:none; letter-spacing:0; }
.nsd-cat-caret { transition:transform .2s; color:#9ca3af; font-size:14px; }
.nsd-cat.is-open .nsd-cat-caret { transform:rotate(180deg); color:var(--nsd-primary); }
.nsd-cat-items { padding:0 18px 18px; display:grid; grid-template-columns:1fr 1fr; gap:8px 18px; }
@media (max-width:680px) { .nsd-cat-items { grid-template-columns:1fr; } }

.nsd-item { display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid #f3f4f6; font-size:14px; }
.nsd-item:last-child { border-bottom:0; }
.nsd-item-visual { flex-shrink:0; width:36px; height:36px; display:flex; align-items:center; justify-content:center; background:#fff; border:1.5px solid var(--nsd-border); border-radius:8px; color:var(--nsd-text-strong); transition:all .15s; }
.nsd-item:hover .nsd-item-visual { border-color:var(--nsd-primary); background:var(--nsd-primary-soft); color:var(--nsd-primary-dark); }
.nsd-item-visual .nsd-icon { width:22px; height:22px; }
.nsd-item-name { flex:1; color:var(--nsd-text-strong); min-width:0; font-weight:500; }
.nsd-item-name em { color:var(--nsd-text); font-size:11px; font-style:normal; margin-left:4px; display:block; font-weight:400; }
@media (min-width:680px) { .nsd-item-name em { display:inline; } }
.nsd-qty { width:64px; padding:6px 8px; border:1.5px solid var(--nsd-border); border-radius:6px; font-size:14px; text-align:center; font-family:var(--nsd-font-body); font-weight:600; color:var(--nsd-heading); }
.nsd-qty:focus { outline:none; border-color:var(--nsd-primary); box-shadow:0 0 0 3px rgba(247,178,85,.18); }

.nsd-cat-icon { flex-shrink:0; width:36px; height:36px; display:flex; align-items:center; justify-content:center; background:#fff; border:1.5px solid var(--nsd-border); border-radius:8px; color:var(--nsd-primary-dark); margin-right:8px; transition:all .15s; }
.nsd-cat.is-open .nsd-cat-icon { background:var(--nsd-primary-soft); border-color:var(--nsd-primary); color:var(--nsd-primary-dark); }
.nsd-cat-icon .nsd-icon { width:22px; height:22px; }

.nsd-recap { background:var(--nsd-bg); border:1px solid var(--nsd-border); border-radius:var(--nsd-radius); padding:18px; margin-top:16px; font-size:14px; line-height:1.65; color:var(--nsd-text-strong); }
.nsd-recap strong { color:var(--nsd-heading); }
.nsd-recap > div { padding:4px 0; }

/* Nav */
.nsd-nav { display:flex; justify-content:space-between; gap:12px; margin-top:26px; }
.nsd-nav > span { flex:1; }
.nsd-btn {
  padding:13px 26px; border-radius:8px; border:0;
  font-family:var(--nsd-font-heading); font-size:15px; font-weight:600;
  text-transform:uppercase; letter-spacing:.8px;
  cursor:pointer; transition:all .15s;
}
.nsd-prev { background:#fff; color:var(--nsd-text); border:1.5px solid var(--nsd-border); }
.nsd-prev:hover { background:var(--nsd-bg); border-color:var(--nsd-text); }
.nsd-next, .nsd-submit { background:var(--nsd-primary); color:var(--nsd-heading); box-shadow:0 4px 12px rgba(247,178,85,.3); }
.nsd-next:hover, .nsd-submit:hover { background:var(--nsd-primary-dark); color:#fff; transform:translateY(-1px); box-shadow:0 8px 20px rgba(247,178,85,.4); }

/* Écran de confirmation post-soumission */
.nsd-thankyou {
  background:#fff; border-radius:var(--nsd-radius); padding:64px 32px;
  text-align:center; box-shadow:0 12px 32px rgba(25,26,26,.07);
}
.nsd-thankyou-icon {
  width:96px; height:96px; margin:0 auto 24px;
  background:linear-gradient(135deg, var(--nsd-primary), var(--nsd-primary-dark));
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:#fff; box-shadow:0 12px 32px rgba(247,178,85,.35);
  animation: nsd-pop .5s cubic-bezier(.34,1.56,.64,1);
}
.nsd-thankyou-icon svg { width:48px; height:48px; }
@keyframes nsd-pop { from { transform:scale(0); opacity:0; } to { transform:scale(1); opacity:1; } }
.nsd-thankyou h2 { font-family:var(--nsd-font-heading); font-size:32px; color:var(--nsd-heading); text-transform:uppercase; letter-spacing:1px; margin:0 0 12px; }
.nsd-thankyou p { font-size:16px; color:var(--nsd-text); max-width:520px; margin:0 auto 12px; line-height:1.65; }
.nsd-thankyou .nsd-ref { display:inline-block; margin-top:18px; padding:8px 18px; background:var(--nsd-primary-soft); color:var(--nsd-primary-dark); border-radius:6px; font-family:var(--nsd-font-heading); font-weight:600; letter-spacing:.5px; }
.nsd-thankyou-actions { margin-top:32px; display:flex; justify-content:center; gap:12px; flex-wrap:wrap; }
.nsd-thankyou-actions a.nsd-btn { display:inline-block; text-decoration:none; }
