/* Composant socle « simulateur-devis » — token-first [ADR-029].
   Toutes les couleurs/polices dérivent de la palette du site (Réglages →
   theme.json). Aucune couleur de marque en dur : les fallbacks ne servent
   qu'à un socle pas encore réglé. */
.dvx{
  --dvx-accent:      var(--wp--preset--color--accent, #334155);
  --dvx-accent-soft: color-mix(in srgb, var(--wp--preset--color--accent, #334155) 10%, #fff);
  --dvx-accent-ring: color-mix(in srgb, var(--wp--preset--color--accent, #334155) 18%, transparent);
  --dvx-dark:        var(--wp--preset--color--primary-dark, #1F2937);
  --dvx-ink:         var(--wp--preset--color--text, #111827);
  --dvx-muted:       var(--wp--preset--color--muted, #6B7280);
  --dvx-line:        var(--wp--preset--color--bg-alt, #E5E8EB);
  --dvx-soft:        var(--wp--preset--color--bg-alt, #F3F4F6);
  --dvx-white:       var(--wp--preset--color--white, #fff);
  --dvx-on-dark:     color-mix(in srgb, var(--wp--preset--color--white, #fff) 72%, var(--wp--preset--color--primary-dark, #1F2937));
  --dvx-display:     var(--wp--preset--font-family--display, "Plus Jakarta Sans", system-ui, sans-serif);
  --dvx-base:        var(--wp--preset--font-family--base, "Inter", system-ui, sans-serif);
  font-family:var(--dvx-base);
}
.dvx *{box-sizing:border-box}
.dvx-card{max-width:680px;margin:0 auto;background:var(--dvx-white);border:1px solid var(--dvx-line);border-radius:20px;padding:30px;box-shadow:0 40px 80px -50px rgba(0,0,0,.35)}
.dvx-top{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.dvx-count{font-size:13px;font-weight:700;color:var(--dvx-muted);letter-spacing:.3px;white-space:nowrap}
.dvx-bar{flex:1;height:7px;border-radius:7px;background:var(--dvx-soft);overflow:hidden}
.dvx-bar i{display:block;height:100%;width:33%;background:var(--dvx-accent);border-radius:7px;transition:width .4s cubic-bezier(.16,1,.3,1)}
.dvx-step{display:none}
.dvx-step.is-on{display:block;animation:dvxIn .35s cubic-bezier(.16,1,.3,1)}
@keyframes dvxIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.dvx-q{font-family:var(--dvx-display);font-weight:800;font-size:17px;color:var(--dvx-dark);margin:0 0 12px}
.dvx-step .dvx-q+.dvx-opts{margin-bottom:22px}
.dvx-opts{display:grid;gap:10px}
.dvx-opts--row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.dvx-opt{display:flex;align-items:center;gap:11px;text-align:left;width:100%;padding:14px 15px;border:1.5px solid var(--dvx-line);border-radius:12px;background:var(--dvx-white);color:var(--dvx-ink);font-family:var(--dvx-base);font-size:15px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s,transform .12s}
.dvx-opt:hover{border-color:var(--dvx-accent);box-shadow:0 8px 20px -14px var(--dvx-accent)}
.dvx-opt .dvx-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--dvx-line);flex:0 0 auto;transition:all .15s}
.dvx-opt.sel{border-color:var(--dvx-accent);background:var(--dvx-accent-soft)}
.dvx-opt.sel .dvx-dot{border-color:var(--dvx-accent);background:var(--dvx-accent);box-shadow:inset 0 0 0 3px var(--dvx-white)}
.dvx-field{margin-bottom:14px}
.dvx-field label{display:block;font-size:13px;font-weight:600;color:var(--dvx-muted);margin-bottom:6px}
.dvx-field label span{color:var(--dvx-accent)}
.dvx-field input{width:100%;padding:13px 14px;border:1.5px solid var(--dvx-line);border-radius:11px;font-family:var(--dvx-base);font-size:15px;color:var(--dvx-ink);background:var(--dvx-white);transition:border-color .2s,box-shadow .2s}
.dvx-field input:focus{outline:none;border-color:var(--dvx-accent);box-shadow:0 0 0 3px var(--dvx-accent-ring)}
.dvx-rgpd{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:var(--dvx-muted);line-height:1.45;margin-top:4px}
.dvx-rgpd input{margin-top:2px;accent-color:var(--dvx-accent);flex:0 0 auto}
.dvx-estimate{background:var(--dvx-dark);color:var(--dvx-white);border-radius:14px;padding:20px 22px;margin-bottom:22px;text-align:center}
.dvx-estimate__label{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--dvx-on-dark)}
.dvx-estimate__value{font-family:var(--dvx-display);font-weight:800;font-size:30px;margin:6px 0 4px;color:var(--dvx-white)}
.dvx-estimate__note{font-size:12.5px;color:var(--dvx-on-dark)}
.dvx-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.dvx-status{font-size:14px;font-weight:600;margin-top:12px;min-height:18px}
.dvx-status.err{color:#C0392B}
.dvx-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px}
.dvx-back{background:none;border:none;color:var(--dvx-muted);font-family:var(--dvx-base);font-weight:600;font-size:15px;cursor:pointer;padding:8px 4px}
.dvx-back[disabled]{opacity:0;pointer-events:none}
.dvx-next{border:none;border-radius:12px;padding:13px 26px;font-family:var(--dvx-base);font-weight:700;font-size:15px;background:var(--dvx-accent);color:var(--dvx-white);cursor:pointer;display:inline-flex;align-items:center;gap:8px;opacity:.45;pointer-events:none;transition:opacity .15s,transform .15s,box-shadow .15s}
.dvx-next.ready{opacity:1;pointer-events:auto}
.dvx-next.ready:hover{transform:translateY(-2px);box-shadow:0 10px 24px -12px var(--dvx-accent)}
.dvx-done{text-align:center;padding:30px 10px}
.dvx-done__ic{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--dvx-accent-soft);color:var(--dvx-accent);margin-bottom:14px}
.dvx-done__ic svg{width:32px;height:32px}
.dvx-done h3{font-family:var(--dvx-display);font-weight:800;font-size:24px;color:var(--dvx-dark);margin:0 0 8px}
.dvx-done p{color:var(--dvx-muted);font-size:16px;line-height:1.55;max-width:420px;margin:0 auto}
@media(max-width:560px){.dvx-card{padding:22px 18px}}
