.wizard-wrap { max-width:860px; margin:4rem auto; padding:0 2rem 4rem; position:relative; z-index:1; }
.wizard-steps { display:flex; gap:0; margin-bottom:3rem; }
.wizard-step { flex:1; text-align:center; position:relative; }
.wizard-step::after { content:''; position:absolute; top:20px; left:50%; width:100%; height:2px; background:var(--c-border); z-index:0; }
.wizard-step:last-child::after { display:none; }
.step-circle { width:40px; height:40px; border-radius:50%; border:2px solid var(--c-border); background:var(--c-surface); display:grid; place-items:center; margin:0 auto .5rem; font-weight:700; font-size:.9rem; color:var(--c-ink-muted); position:relative; z-index:1; transition:all .3s; }
.wizard-step.active .step-circle, .wizard-step.done .step-circle { border-color:var(--c-primary); background:var(--c-primary); color:#fff; }
.step-label { font-size:.78rem; color:var(--c-ink-muted); font-weight:500; }
.wizard-step.active .step-label { color:var(--c-primary); font-weight:700; }
.wizard-panel { display:none; } .wizard-panel.active { display:block; }
.card-panel { background:var(--c-surface); border-radius:20px; padding:2.5rem; box-shadow:var(--shadow-md); }
.service-card { border:2px solid var(--c-border); border-radius:14px; padding:1.25rem; cursor:pointer; transition:all .2s; display:flex; align-items:flex-start; gap:1rem; }
.service-card:hover { border-color:var(--c-primary); box-shadow:0 0 0 3px rgba(61,184,114,.1); }
.service-card.selected { border-color:var(--c-primary); background:rgba(61,184,114,.04); }
.service-check { width:22px; height:22px; border-radius:50%; border:2px solid var(--c-border); display:grid; place-items:center; flex-shrink:0; margin-top:2px; transition:all .2s; }
.service-card.selected .service-check { background:var(--c-primary); border-color:var(--c-primary); }
.service-check::after { content:'✓'; color:#fff; font-size:.7rem; font-weight:700; opacity:0; }
.service-card.selected .service-check::after { opacity:1; }
.qty-wrap { display:flex; align-items:center; gap:.5rem; margin-top:.75rem; }
.qty-btn { width:28px; height:28px; border-radius:50%; border:1px solid var(--c-border); background:none; display:grid; place-items:center; font-size:1rem; cursor:pointer; transition:all .15s; }
.qty-btn:hover { border-color:var(--c-primary); color:var(--c-primary); }
.qty-val { font-weight:700; min-width:24px; text-align:center; }
.form-group { margin-bottom:1.25rem; }
.form-label { display:block; font-size:.82rem; font-weight:600; color:var(--c-ink-muted); margin-bottom:.4rem; }
.form-control { width:100%; border:1.5px solid var(--c-border); border-radius:10px; padding:.7rem 1rem; font-family:var(--font-body); font-size:.9rem; outline:none; transition:border-color .15s; background:var(--c-surface); }
.form-control:focus { border-color:var(--c-primary); }
.summary-line { display:flex; justify-content:space-between; padding:.6rem 0; border-bottom:1px solid var(--c-border); font-size:.9rem; }
.summary-total { display:flex; justify-content:space-between; padding:.75rem 0; font-family:var(--font-head); font-weight:800; font-size:1.1rem; color:var(--c-secondary); }
.wizard-nav { display:flex; justify-content:space-between; margin-top:2rem; }
.success-state { text-align:center; padding:3rem 2rem; }
.success-icon { width:72px; height:72px; background:rgba(61,184,114,.12); border-radius:50%; display:grid; place-items:center; margin:0 auto 1.5rem; }
.success-icon svg { width:36px; height:36px; fill:var(--c-primary); }

/* Pest type chips */
.pest-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: .5rem; }
.pest-chip { display: flex; align-items: center; gap: .6rem; padding: .6rem .9rem; border: 1.5px solid var(--c-border); border-radius: 10px; cursor: pointer; font-size: .87rem; font-weight: 500; color: var(--c-ink); transition: border-color .15s, background .15s; user-select: none; }
.pest-chip:hover { border-color: var(--c-primary); background: rgba(61,184,114,.04); }
.pest-chip input[type=checkbox] { width: 16px; height: 16px; accent-color: var(--c-primary); flex-shrink: 0; cursor: pointer; }
.pest-chip:has(input:checked) { border-color: var(--c-primary); background: rgba(61,184,114,.07); color: var(--c-secondary); font-weight: 600; }
select.form-control { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .9rem center; padding-right: 2.5rem; }

/* Hero banner */
.estimate-hero { background: var(--c-secondary); padding-top: 8rem; padding-bottom: 4rem; }

/* RTL — wizard connector line */
[dir="rtl"] .wizard-step::after { left: auto; right: 50%; }

/* Price block */
.estimate-price-block { margin-top: 2rem; padding: 1.5rem; background: var(--c-bg); border-radius: 14px; border: 1.5px solid var(--c-border); }
.estimate-price-block.rdv { border-color: var(--c-accent); background: rgba(243,156,18,.06); }
.estimate-price-label { font-family: var(--font-head); font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--c-ink-muted); margin-bottom: .5rem; }
.estimate-price-value { font-family: var(--font-head); font-size: 2rem; font-weight: 800; color: var(--c-secondary); }
.estimate-price-rdv { font-family: var(--font-head); font-size: 1rem; font-weight: 700; color: var(--c-accent-dark); }
.estimate-disclaimer { margin-top: 1rem; font-size: .75rem; color: var(--c-ink-muted); line-height: 1.7; border-top: 1px solid var(--c-border); padding-top: .75rem; }

/* ─── Récap step 3 ────────────────────────────────────────────────────────── */
.recap-section { margin-bottom:1.5rem; }
.recap-label { font-family:var(--font-head); font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--c-ink-muted); margin-bottom:.6rem; }
.recap-list { display:flex; flex-direction:column; gap:.4rem; }
.recap-item { display:flex; justify-content:space-between; padding:.5rem 0; border-bottom:1px solid var(--c-border); font-size:.9rem; }
.recap-qty { color:var(--c-ink-muted); font-weight:600; }
.recap-chip { padding:.25rem .7rem; background:rgba(231,76,60,.08); color:var(--c-primary); border-radius:100px; font-size:.8rem; font-weight:600; }
.recap-price-preview { margin-top:1.5rem; padding:1.25rem; background:var(--c-bg); border-radius:14px; border:1.5px solid var(--c-border); }
.recap-price-preview.rdv { border-color:var(--c-accent); background:rgba(243,156,18,.06); }
.recap-price-label { font-family:var(--font-head); font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--c-ink-muted); margin-bottom:.4rem; }

/* ─── Résultat estimation step 4 ─────────────────────────────────────────── */
.estimate-result-ref { font-size:.875rem; color:var(--c-ink-muted); margin-bottom:.5rem; }
.price-table { width:100%; border-collapse:collapse; font-size:.9rem; }
.price-table td { padding:.5rem 0; border-bottom:1px solid var(--c-border); }
.price-table td:last-child { text-align:right; font-weight:600; }
.price-table tr.price-total td { font-family:var(--font-head); font-size:1.1rem; font-weight:800; color:var(--c-secondary); border-bottom:none; padding-top:.75rem; }

/* ─── Slots step 5 ───────────────────────────────────────────────────────── */
.slots-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(170px, 1fr)); gap:.75rem; margin-top:.75rem; }
.slot-btn { padding:.7rem 1rem; border:2px solid var(--c-border); border-radius:10px; background:var(--c-surface); font-family:var(--font-body); font-size:.875rem; font-weight:600; cursor:pointer; transition:all .15s; color:var(--c-ink); }
.slot-btn:hover:not(:disabled) { border-color:var(--c-primary); color:var(--c-primary); }
.slot-btn--active { border-color:var(--c-primary); background:rgba(231,76,60,.06); color:var(--c-primary); }
.slot-btn--disabled, .slot-btn:disabled { opacity:.45; cursor:not-allowed; background:var(--c-bg); }
