/* ===== Simulateur interactif de budget en temps réel — Charte Prime Vision Solutions ===== */

.sim-sec{
  position:relative;
  isolation:isolate;
  padding:clamp(3rem,6vw,5rem) 0 clamp(3.5rem,7vw,5.5rem);
  scroll-margin-top:4.8rem;
}
.sim-ambient{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.sim-glow{position:absolute;border-radius:50%;filter:blur(110px)}
.sim-glow.g1{width:34rem;height:34rem;left:-10rem;top:4rem;background:radial-gradient(circle,#0B5CFF,transparent 66%);opacity:.2}
.sim-glow.g2{width:30rem;height:30rem;right:-8rem;bottom:6rem;background:radial-gradient(circle,#00B8FF,transparent 66%);opacity:.16}

.sim-intro{text-align:center;max-width:780px;margin:0 auto clamp(2.2rem,4vw,3.2rem)}
.sim-title{margin:.2rem 0 1rem;font-size:clamp(1.85rem,3.8vw,2.85rem);line-height:1.12;letter-spacing:-.025em}
.sim-lead{margin:0 auto;max-width:62ch}

.sim-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 416px;
  gap:2rem;
  align-items:start;
}
.sim-steps,.sim-cockpit{min-width:0}
.sim-steps{display:grid;gap:1.5rem}

/* Cartes d'étapes */
.sim-step-card{
  padding:clamp(1.35rem,2.6vw,1.9rem);
  border-radius:1.8rem;
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:0 24px 60px -44px rgba(11,92,255,.38);
  transition:border-color .3s ease,box-shadow .3s ease;
}
.sim-step-card:focus-within{border-color:color-mix(in srgb,var(--accent) 48%,var(--line))}
.sim-step-head{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.35rem}
.sim-step-num{
  display:grid;
  place-items:center;
  flex:none;
  width:2.35rem;
  height:2.35rem;
  border-radius:.8rem;
  background:linear-gradient(135deg,#0B5CFF,#248BFF);
  color:#fff;
  font:800 .86rem/1 "Bricolage Grotesque",sans-serif;
  box-shadow:0 10px 22px -8px rgba(11,92,255,.65);
}
.sim-step-head h3{margin:0 0 .22rem;font-size:1.22rem;letter-spacing:-.015em}
.sim-step-head p{margin:0;font-size:.92rem;color:var(--muted)}

/* Étape 1 : Services */
.sim-svc-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));
  gap:.8rem;
}
.sim-svc-btn{
  position:relative;
  display:flex;
  align-items:flex-start;
  gap:.85rem;
  width:100%;
  padding:1rem 1.05rem;
  border:1.5px solid var(--line);
  border-radius:1.25rem;
  background:var(--bg);
  color:var(--ink);
  font:inherit;
  text-align:left;
  cursor:pointer;
  transition:transform .24s cubic-bezier(.2,.8,.2,1),border-color .24s,background .24s,box-shadow .24s;
}
.sim-svc-btn:hover{
  transform:translateY(-2px);
  border-color:color-mix(in srgb,var(--accent) 55%,var(--line));
}
.sim-svc-btn.is-active{
  border-color:var(--accent);
  background:linear-gradient(155deg,var(--soft),var(--surface));
  box-shadow:0 16px 34px -20px rgba(11,92,255,.58);
}
.sim-svc-ic{
  display:grid;
  place-items:center;
  flex:none;
  width:2.5rem;
  height:2.5rem;
  border-radius:.85rem;
  background:var(--soft);
  color:var(--accent);
  transition:background .25s,color .25s,transform .25s;
}
.sim-svc-ic .ico-s{width:1.25rem;height:1.25rem}
.sim-svc-btn.is-active .sim-svc-ic{background:var(--accent);color:#fff;transform:scale(1.05)}
.sim-svc-body{display:flex;flex-direction:column;gap:.24rem;min-width:0;flex:1;padding-right:1.1rem}
.sim-svc-body strong{font-size:.98rem;font-weight:700;line-height:1.25}
.sim-svc-body small{font-size:.8rem;line-height:1.38;color:var(--muted)}
.sim-svc-from{
  align-self:flex-start;
  margin-top:.28rem;
  padding:.16rem .56rem;
  border-radius:99px;
  background:color-mix(in srgb,var(--accent) 12%,transparent);
  color:var(--accent);
  font-size:.74rem;
  font-weight:700;
}
.sim-svc-check{
  position:absolute;
  top:.85rem;
  right:.85rem;
  display:grid;
  place-items:center;
  width:1.3rem;
  height:1.3rem;
  border-radius:50%;
  border:1.5px solid var(--line);
  color:transparent;
  transition:background .22s,border-color .22s,color .22s,transform .22s;
}
.sim-svc-check svg{width:.8rem;height:.8rem;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.sim-svc-btn.is-active .sim-svc-check{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.06)}

/* Étape 2 : Paliers & Curseur de pages */
.sim-tier-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));
  gap:.72rem;
}
.sim-tier-btn{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:.4rem;
  padding:.92rem 1rem;
  border:1.5px solid var(--line);
  border-radius:1.15rem;
  background:var(--bg);
  color:var(--ink);
  font:inherit;
  text-align:left;
  cursor:pointer;
  transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease;
}
.sim-tier-btn:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}
.sim-tier-btn.is-active{
  border-color:var(--accent);
  background:linear-gradient(160deg,var(--soft),var(--surface));
  box-shadow:0 14px 30px -18px rgba(11,92,255,.55);
}
.sim-tier-top{display:flex;align-items:center;justify-content:space-between;gap:.45rem;flex-wrap:wrap}
.sim-tier-top strong{font-size:.94rem;font-weight:700}
.sim-tier-price{font-size:.76rem;font-weight:700;color:var(--accent)}
.sim-tier-btn small{font-size:.79rem;line-height:1.35;color:var(--muted)}

.sim-pages-box{
  margin-top:1.15rem;
  padding:1rem 1.15rem;
  border-radius:1.2rem;
  background:var(--bg);
  border:1px solid var(--line);
}
.sim-pages-box[hidden]{display:none!important}
.sim-pages-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem;flex-wrap:wrap}
.sim-pages-top label{font-size:.9rem;font-weight:650;color:var(--ink)}
.sim-pages-val{
  padding:.22rem .72rem;
  border-radius:99px;
  background:var(--accent);
  color:#fff;
  font-size:.82rem;
  font-weight:700;
}
.sim-range{
  -webkit-appearance:none;
  appearance:none;
  width:100%;
  height:7px;
  border-radius:99px;
  background:color-mix(in srgb,var(--accent) 22%,var(--line));
  outline:none;
  cursor:pointer;
}
.sim-range::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:22px;
  height:22px;
  border-radius:50%;
  background:var(--accent);
  border:3px solid #fff;
  box-shadow:0 4px 12px rgba(11,92,255,.48);
  transition:transform .18s ease;
}
.sim-range::-webkit-slider-thumb:hover{transform:scale(1.14)}
.sim-range::-moz-range-thumb{
  width:22px;
  height:22px;
  border-radius:50%;
  background:var(--accent);
  border:3px solid #fff;
  box-shadow:0 4px 12px rgba(11,92,255,.48);
}
.sim-pages-hint{margin:.55rem 0 0;font-size:.8rem;color:var(--muted)}

/* Étape 3 : Options cochables */
.sim-opt-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));
  gap:.75rem;
}
.sim-opt-btn{
  display:flex;
  align-items:flex-start;
  gap:.78rem;
  padding:.92rem 1rem;
  border:1.5px solid var(--line);
  border-radius:1.15rem;
  background:var(--bg);
  color:var(--ink);
  font:inherit;
  text-align:left;
  cursor:pointer;
  transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease;
}
.sim-opt-btn:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 52%,var(--line))}
.sim-opt-btn.is-active{
  border-color:var(--accent);
  background:linear-gradient(155deg,var(--soft),var(--surface));
  box-shadow:0 12px 28px -18px rgba(11,92,255,.5);
}
.sim-opt-btn.is-included{
  border-color:rgba(16,185,129,.45);
  background:color-mix(in srgb,#10b981 7%,var(--bg));
}
.sim-opt-box{
  display:grid;
  place-items:center;
  flex:none;
  width:1.35rem;
  height:1.35rem;
  margin-top:.1rem;
  border-radius:.45rem;
  border:1.6px solid var(--line);
  background:var(--surface);
  color:transparent;
  transition:background .2s,border-color .2s,color .2s;
}
.sim-opt-box svg{width:.85rem;height:.85rem;fill:none;stroke:currentColor;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round}
.sim-opt-btn.is-active .sim-opt-box{background:var(--accent);border-color:var(--accent);color:#fff}
.sim-opt-btn.is-included .sim-opt-box{background:#10b981;border-color:#10b981;color:#fff}
.sim-opt-body{display:flex;flex-direction:column;gap:.24rem;min-width:0;flex:1}
.sim-opt-row{display:flex;align-items:center;justify-content:space-between;gap:.45rem;flex-wrap:wrap}
.sim-opt-row strong{font-size:.9rem;font-weight:700}
.sim-opt-badge{
  padding:.13rem .5rem;
  border-radius:99px;
  background:color-mix(in srgb,var(--accent) 12%,transparent);
  color:var(--accent);
  font-size:.73rem;
  font-weight:700;
  white-space:nowrap;
}
.sim-opt-btn.is-included .sim-opt-badge{background:rgba(16,185,129,.16);color:#0d9668}
.sim-opt-body small{font-size:.78rem;line-height:1.38;color:var(--muted)}

/* Étape 4 : Cadence & Maintenance */
.sim-sub-label{
  margin:0 0 .55rem;
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted);
}
.sim-urg-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.72rem;
  margin-bottom:1.25rem;
}
.sim-urg-btn,.sim-maint-btn{
  display:flex;
  flex-direction:column;
  gap:.25rem;
  padding:.85rem .95rem;
  border:1.5px solid var(--line);
  border-radius:1.1rem;
  background:var(--bg);
  color:var(--ink);
  font:inherit;
  text-align:left;
  cursor:pointer;
  transition:border-color .22s,background .22s,transform .22s;
}
.sim-urg-btn:hover,.sim-maint-btn:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}
.sim-urg-btn.is-active,.sim-maint-btn.is-active{
  border-color:var(--accent);
  background:linear-gradient(155deg,var(--soft),var(--surface));
}
.sim-urg-btn strong,.sim-maint-top strong{font-size:.9rem;font-weight:700}
.sim-urg-btn small,.sim-maint-btn small{font-size:.77rem;line-height:1.36;color:var(--muted)}

.sim-maint-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,185px),1fr));
  gap:.72rem;
}
.sim-maint-top{display:flex;align-items:center;justify-content:space-between;gap:.4rem;flex-wrap:wrap}
.sim-maint-price{font-size:.75rem;font-weight:700;color:var(--accent)}

/* ===== Cockpit exécutif sticky à droite ===== */
.sim-cockpit{position:sticky;top:5.4rem}
.sim-summary-card{
  border-radius:1.9rem;
  overflow:hidden;
  background:var(--surface);
  border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));
  box-shadow:0 34px 80px -30px rgba(6,20,46,.45),0 8px 24px -10px rgba(11,92,255,.25);
}
.sim-sum-head{
  position:relative;
  overflow:hidden;
  padding:1.45rem 1.45rem 1.35rem;
  background:linear-gradient(135deg,#051026 0%,#0b2350 56%,#0f397e 100%);
  color:#fff;
}
.sim-sum-head::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:2px;
  background:linear-gradient(90deg,#0b5cff,#38bdf8,#0b5cff);
}
.sim-sum-toprow{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.85rem}
.sim-live-pill{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.24rem .68rem;
  border-radius:99px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.18);
  font-size:.73rem;
  font-weight:650;
  color:#e2eeff;
}
.sim-live-pill i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#10b981;
  box-shadow:0 0 0 0 rgba(16,185,129,.7);
  animation:sim-pulse 2s infinite;
}
@keyframes sim-pulse{70%{box-shadow:0 0 0 7px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}

.sim-tax-switch{
  display:inline-flex;
  padding:2px;
  border-radius:99px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.16);
}
.sim-tax-switch button{
  border:0;
  border-radius:99px;
  padding:.2rem .62rem;
  background:transparent;
  color:#bfd4f7;
  font:700 .72rem/1.2 inherit;
  cursor:pointer;
  transition:background .2s,color .2s;
}
.sim-tax-switch button.is-active{background:#0b5cff;color:#fff}

.sim-sum-kicker{margin:0 0 .25rem;font-size:.78rem;font-weight:650;color:#9fc2ff}
.sim-price-range{
  margin:0;
  font:800 clamp(1.55rem,2.6vw,1.95rem)/1.12 "Bricolage Grotesque",sans-serif;
  letter-spacing:-.025em;
  color:#fff;
}
.sim-price-sep{margin:0 .22rem;color:#68a8ff;font-weight:600}
.sim-price-range small{margin-left:.25rem;font-size:.88rem;font-weight:700;color:#9fc2ff}
.sim-tax-sub{margin:.32rem 0 1rem;font-size:.78rem;color:#bfd3f6}

.sim-kpis{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.6rem;
}
.sim-kpi{
  padding:.58rem .75rem;
  border-radius:.9rem;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.13);
}
.sim-kpi-lbl{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:#a8c3ec}
.sim-kpi strong{display:block;margin-top:.14rem;font-size:.84rem;color:#fff}

/* Corps du cockpit */
.sim-sum-body{padding:1.25rem 1.35rem 1.4rem}
.sim-breakdown-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
  margin-bottom:.55rem;
  font-size:.76rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--muted);
}
.sim-reset-link{
  border:0;
  padding:0;
  background:none;
  color:var(--accent);
  font:650 .76rem/1 inherit;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:2px;
}
.sim-lines{
  list-style:none;
  margin:0 0 1.15rem;
  padding:0 0 .95rem;
  border-bottom:1px solid var(--line);
  display:grid;
  gap:.42rem;
  max-height:175px;
  overflow-y:auto;
}
.sim-lines li{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.65rem;
  font-size:.82rem;
  line-height:1.35;
}
.sim-lines li span{color:var(--ink);min-width:0}
.sim-lines li b{flex:none;font-weight:700;color:var(--accent);white-space:nowrap;font-size:.8rem}
.sim-lines li b.is-inc{color:#10b981}

/* Formulaire express 1 clic */
.sim-form-head{margin-bottom:.75rem}
.sim-form-head strong{display:block;font-size:.94rem;color:var(--ink)}
.sim-form-head small{display:block;margin-top:.18rem;font-size:.77rem;line-height:1.38;color:var(--muted)}

.sim-fields-2{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;align-items:end}
.sim-field{display:block;margin-bottom:.55rem}
.sim-field > span{display:block;margin-bottom:.24rem;font-size:.76rem;font-weight:650;color:var(--ink)}
.sim-field em{color:#e53955;font-style:normal}
.sim-opt{font-style:normal;font-weight:450;color:var(--muted);font-size:.7rem}
.sim-field input,.sim-field textarea{
  display:block;
  box-sizing:border-box;
  width:100%;
  padding:.54rem .72rem;
  border:1.4px solid var(--line);
  border-radius:.78rem;
  background:var(--bg);
  color:var(--ink);
  font:450 .84rem/1.35 inherit;
  transition:border-color .2s,box-shadow .2s;
}
.sim-field textarea{resize:vertical;min-height:54px}
.sim-field input:focus,.sim-field textarea:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent);
  outline:0;
}

.sim-consent{
  display:flex;
  align-items:flex-start;
  gap:.55rem;
  margin:.65rem 0 .85rem;
  font-size:.76rem;
  line-height:1.45;
  font-weight:500;
  color:var(--muted);
  cursor:pointer;
}
.sim-consent input{flex:none;width:1.0625rem;height:1.0625rem;min-width:1.0625rem;min-height:0;margin:.14rem 0 0;padding:0;accent-color:var(--accent);cursor:pointer}

.sim-cta-stack{display:grid;gap:.58rem}
.sim-submit-btn,.sim-pdf-btn{
  width:100%;
  justify-content:center;
  gap:.55rem;
  padding:.78rem 1rem;
  border-radius:.95rem;
  font-size:.88rem;
}
.sim-submit-btn svg,.sim-pdf-btn svg{
  width:1.05rem;
  height:1.05rem;
  fill:none;
  stroke:currentColor;
  stroke-width:2.1;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex:none;
}
.sim-submit-btn:disabled{opacity:.65;cursor:wait}

.sim-status{
  margin:.75rem 0 0;
  padding:.68rem .85rem;
  border-radius:.85rem;
  font-size:.8rem;
  line-height:1.42;
  background:rgba(229,57,85,.1);
  border:1px solid rgba(229,57,85,.3);
  color:#c92a42;
}
.sim-status.is-ok{
  background:rgba(16,185,129,.12);
  border-color:rgba(16,185,129,.35);
  color:#0c8558;
}
@media (prefers-color-scheme:dark){
  .sim-status{color:#ff8598}
  .sim-status.is-ok{color:#5eead4}
}

.sim-full-contact{
  margin:.85rem 0 0;
  text-align:center;
  font-size:.76rem;
  color:var(--muted);
}
.sim-full-contact a{font-weight:650;text-decoration:none}
.sim-full-contact a:hover{text-decoration:underline}

.sim-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Barre mobile flottante */
.sim-mobile-bar{display:none}

@media (max-width:1040px){
  .sim-grid{grid-template-columns:minmax(0,1fr)}
  .sim-cockpit{position:static}
  .sim-mobile-bar{
    position:fixed;
    left:12px;
    right:84px; /* laisse l'espace libre au bouton du chatbot en bas à droite */
    bottom:12px;
    z-index:8500;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.65rem;
    padding:.6rem .75rem .6rem .95rem;
    border-radius:1.15rem;
    background:rgba(6,18,43,.94);
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
    border:1px solid rgba(92,158,255,.35);
    color:#fff;
    box-shadow:0 18px 40px -10px rgba(4,12,30,.55);
    transition:opacity .25s,transform .25s;
  }
  .sim-mobile-bar.is-hidden{opacity:0;pointer-events:none;transform:translateY(14px)}
  .sim-mob-info{min-width:0}
  .sim-mob-info small{display:block;font-size:.68rem;color:#9fc2ff}
  .sim-mob-info strong{display:block;font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sim-mob-btns{display:flex;align-items:center;gap:.4rem;flex:none}
  .sim-mob-pdf{
    height:36px;
    padding:0 .65rem;
    border:1px solid rgba(140,188,255,.45);
    border-radius:.7rem;
    background:rgba(255,255,255,.1);
    color:#fff;
    font:700 .74rem/1 inherit;
    cursor:pointer;
  }
  .sim-mob-cta{padding:.48rem .85rem;font-size:.78rem;border-radius:.75rem}
}

@media (max-width:580px){
  .sim-urg-row,.sim-fields-2{grid-template-columns:1fr}
  .sim-step-card{padding:1.2rem 1.05rem;border-radius:1.4rem}
}
