

.sim-hero{background:#f8faff;padding:4rem 1.25rem 3rem;text-align:center;border-bottom:1px solid var(--line);}
.sim-hero h1{font-size:clamp(1.7rem,4vw,2.4rem);font-weight:800;margin-bottom:.75rem;color:var(--ink);}
.sim-hero h2{font-size:1.05rem;font-weight:400;color:var(--muted);max-width:560px;margin:0 auto;}
.sim-wrap{max-width:720px;margin:-2rem auto 3rem;padding:0 1.25rem 5rem; position: relative; z-index: 10;}
.progress{display:flex;gap:0;margin-bottom:2rem;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 4px 20px rgba(0,0,0,0.05); border: 1px solid var(--line);}
.prog-step{flex:1;padding:.8rem;text-align:center;font-size:.8rem;font-weight:700;color:var(--muted);transition:.3s;border-right:1px solid var(--line);}
.prog-step:last-child{border-right:none;}
.prog-step.active{background:var(--dark);color:#fff;border-color:var(--dark);}
.prog-step.done{background:var(--sage);color:var(--dark);}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:2.5rem;box-shadow:0 10px 40px rgba(0,0,0,.08); transition: all 0.3s ease;}
.card h2{font-size:1.25rem;font-weight:800;margin-bottom:.5rem; color: var(--ink);}
.card .sub{color:var(--muted);font-size:.95rem;margin-bottom:2rem;}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.5rem;}
@media (max-width: 500px) { .choice-grid{grid-template-columns:1fr;} }
.choice{border:2px solid var(--line);border-radius:12px;padding:1.5rem 1rem;text-align:center;cursor:pointer;transition:.2s; background: #fff;}
.choice:hover{border-color: #b2bea9; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(37,55,46,0.08);}
.choice.selected{border-color:var(--dark);background:var(--sage); box-shadow: 0 0 0 4px rgba(37,55,46,0.1);}
.choice .ico{font-size:2.5rem;margin-bottom:.75rem;}
.choice strong{display:block;font-size:1rem;font-weight:700; color: var(--ink);}
.form-field{margin-bottom:1.5rem;}
.form-field label{display:block;font-size:.9rem;font-weight:700;margin-bottom:.5rem; color: var(--ink);}
.form-field input,.form-field select{width:100%;padding:1rem 1.25rem;border:1.5px solid var(--line);border-radius:10px;font-size:1rem;font-family:inherit;outline:none;transition:.2s; background: var(--paper);}
.form-field input:focus,.form-field select:focus{border-color:var(--dark); background: #fff; box-shadow: 0 0 0 4px rgba(37,55,46,0.1);}
.opt-label{font-size:.75rem;color:var(--muted);font-weight:500; margin-left:.35rem;}
.btn-next{width:100%;background:var(--dark);color:#fff;border:none;border-radius:12px;padding:1.25rem;font-size:1.1rem;font-weight:800;cursor:pointer;transition:.2s;margin-top:1rem; display: flex; justify-content: center; align-items: center; gap: 0.5rem;}
.btn-next:hover{background:var(--dark); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(37,55,46,0.2);}
.btn-back{background:none;border:none;color:var(--muted);font-size:.9rem;font-weight:600;cursor:pointer;margin-bottom:1.5rem;display:inline-flex;align-items:center;gap:.35rem; transition: 0.2s;}
.btn-back:hover{color:var(--dark); transform: translateX(-4px);}
.step{display:none;}
.step.active{display:block;animation:slideUpFade 0.4s ease forwards;}
@keyframes slideUpFade{from{opacity:0;transform:translateY(15px);}to{opacity:1;transform:translateY(0);}}

/* Live Calculator UI */
.live-calc-container {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 1.5rem;
  margin-bottom: 2rem;
}
.calc-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}
.calc-header h4 { font-size: 1rem; font-weight: 700; color: var(--ink); }
.calc-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  align-items: center;
}
@media (max-width: 500px) {
  .calc-row { grid-template-columns: 1fr 1fr; }
  .calc-row .del-btn { grid-column: span 2; }
}
.calc-row input {
  padding: 0.75rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: 0.95rem;
  width: 100%;
}
.calc-row input:focus { border-color: var(--dark); outline: none; }
.del-btn {
  background: #fee2e2;
  color: #dc2626;
  border: none;
  border-radius: 8px;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-weight: bold;
  transition: 0.2s;
}
.del-btn:hover { background: #fecaca; }
.add-row-btn {
  background: none;
  border: 2px dashed var(--line);
  color: var(--dark);
  font-weight: 700;
  width: 100%;
  padding: 0.75rem;
  border-radius: 8px;
  cursor: pointer;
  transition: 0.2s;
  margin-bottom: 1.5rem;
}
.add-row-btn:hover { border-color: var(--dark); background: var(--sage); }
.live-total-box {
  background: #fff;
  border: 2px solid var(--dark);
  border-radius: 10px;
  padding: 1.25rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 4px 12px rgba(37,55,46,0.1);
}
.live-total-box .total-label { font-size: 0.95rem; font-weight: 700; color: var(--dark); }
.live-total-box .total-value { font-size: 1.5rem; font-weight: 800; color: var(--dark); }

/* Results */
.result-price{background:linear-gradient(135deg,#25372e,#3c5142);color:#fff;border-radius:16px;padding:2.5rem;text-align:center;margin-bottom:1.5rem; box-shadow: 0 10px 30px rgba(37,55,46,0.2);}
.result-price .label{font-size:.9rem;font-weight:700;opacity:.9;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem;}
.result-price .range{font-size:clamp(2.2rem,8vw,3.5rem);font-weight:800;letter-spacing:-.02em; line-height: 1;}
.result-price .note{font-size:.85rem;opacity:.8;margin-top:1rem;}
.result-block{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:1.5rem;margin-bottom:1rem;font-size:1rem;line-height:1.6;}
.result-block strong{display:flex; align-items: center; gap: 0.5rem; font-size:1.1rem;margin-bottom:.5rem; color: var(--ink);}
.result-cta{display:block;width:100%;text-align:center;background:var(--dark);color:#fff;border-radius:12px;padding:1.25rem;font-size:1.1rem;font-weight:800;margin-top:1.5rem;text-decoration:none; transition: 0.2s;}
.result-cta:hover{background:var(--dark); transform: translateY(-2px);}
.error-msg{color:#dc2626;font-size:.85rem;margin-top:.5rem;font-weight:600;display:none;}
.loader{text-align:center;padding:3rem;display:none;}
.loader svg{animation:spin 1s linear infinite; stroke: var(--dark);}
@keyframes spin{to{transform:rotate(360deg)}}
/* SEO block */
.seo-block{background:#fff;border-top:1px solid var(--line);padding:5rem 1.25rem;}
.seo-block .container{max-width:800px;margin:0 auto;}
.seo-block h3{font-size:1.2rem;font-weight:800;margin:2rem 0 .75rem;}
.seo-block p{color:var(--muted);font-size:1rem;line-height:1.8;}
.vbtn{padding:.65rem 1.25rem;border:2px solid var(--line);background:#fff;color:var(--muted);border-radius:8px;font-weight:700;font-size:.9rem;cursor:pointer;transition:.2s;}
.vbtn:hover,.vbtn.active{border-color:var(--dark);background:var(--sage);color:var(--dark);}

/* Harmonisation avec l’identité Opalis. */
.sim-wrap{max-width:790px;margin:0 auto 70px;padding:0 20px 35px}.progress{box-shadow:none;border-radius:3px;margin-bottom:24px}.prog-step{font-size:11px;font-weight:500;padding:17px 10px}.card{border-radius:4px;box-shadow:none;padding:40px}.card h2{font-size:28px;font-weight:450;letter-spacing:-.035em}.card .sub{font-size:13px;line-height:1.8}.choice{border-width:1px;border-radius:3px;font:inherit;color:var(--ink)}.choice .ico{font-family:'Instrument Serif',serif;font-size:34px;font-style:italic;color:var(--accent)}.choice strong{font-weight:550}.choice.selected{box-shadow:0 0 0 2px var(--dark)}.btn-next{font-size:13px;font-weight:500;border-radius:3px;padding:19px}.form-field label{font-size:12px;font-weight:550}.form-field input,.form-field select{border-radius:3px;font-size:14px;padding:15px}.live-calc-container,.live-total-box,.result-price,.result-block{border-radius:3px;box-shadow:none}.live-total-box .total-value{font-weight:500}.calc-header h4{font-size:13px;font-weight:500}.add-row-btn{font-size:12px;border-width:1px;border-radius:3px}.calc-row input{border-radius:3px;font:inherit;font-size:13px}.result-price .range{font-weight:500}.sim-intro{padding:50px 0 40px;text-align:center}.sim-intro .ed-lead{max-width:650px;margin:25px auto 0}.sim-intro .section-heading{font-size:clamp(39px,5vw,65px)}
@media(max-width:580px){.sim-wrap{padding:0 18px 30px}.card{padding:26px 19px}.card h2{font-size:25px}.prog-step{font-size:10px;padding:15px 5px}.sim-intro{padding-top:30px}.live-calc-container{padding:16px}.live-total-box{gap:8px}.live-total-box .total-value{font-size:20px}.live-total-box .total-label{font-size:12px}.need-btn{font-size:11px!important;min-width:110px!important}.form-field input,.form-field select{padding:13px}.result-price{padding:30px 20px}.result-block{font-size:13px}.result-block strong{font-size:15px}}
@media(prefers-reduced-motion:reduce){.step.active,.loader svg{animation:none}}

.sim-wrap{--blue:var(--dark);--blue-light:var(--sage);--blue-dark:var(--dark);--border:var(--line);--text:var(--ink);--bg-alt:var(--paper)}

/* Budget lisible, avec deux bornes clairement identifiées. */
.sim-benefits{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:0 auto 30px}.sim-benefits span{padding:7px 12px;border:1px solid var(--line);border-radius:30px;color:var(--muted);font-size:10px}.sim-price-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:27px;text-align:left}.sim-price-grid>div+div{border-left:1px solid #ffffff35;padding-left:25px}.sim-price-grid span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#d5dfce}.sim-price-grid strong{display:block;font-size:clamp(30px,5vw,48px);font-weight:450;letter-spacing:-.045em;line-height:1.3;margin-top:9px;white-space:nowrap}.result-price .label{text-align:left;font-size:11px;font-weight:500}.result-price .note{text-align:left;font-size:11px}.need-btn{border-radius:3px!important;font-weight:500!important}.sim-wrap .card{background:#fffefa}.sim-wrap .result-block strong{font-weight:500}.sim-wrap .form-field input:focus-visible{outline:2px solid #b65d3d;outline-offset:3px}@media(max-width:480px){.sim-price-grid{gap:12px}.sim-price-grid>div+div{padding-left:15px}.sim-price-grid strong{font-size:clamp(26px,7vw,36px)}.sim-benefits span{font-size:9px;padding:6px 9px}}
