/* ————— Simulateur partagé (repris de /v2/) — pages dispositif —————
   Tout est préfixé .vsim / .vcb / .vbar pour ne pas entrer en conflit avec dispositif.css */
.vsim,.vcb,.vbar{--v-ink:#0f172a;--v-ink-light:#334155;--v-grey:#64748b;--v-line:#e2e8f0;--v-grey-bg:#f8fafc;--v-accent:#7030A0;--v-accent-ink:#531f7c;--v-accent-light:#f5f0fb;--v-green:#16a34a;--v-ease:cubic-bezier(.22,1,.36,1);font-family:Inter,'Inter Fallback',system-ui,-apple-system,sans-serif;line-height:1.5}
.vsim *,.vcb *{box-sizing:border-box}

/* carte */
.vsim{position:sticky;top:96px;background:#fff;border:1px solid #d8b4fe;border-radius:20px;padding:26px 22px;box-shadow:0 20px 45px -10px rgba(112,48,160,.12),0 8px 20px -6px rgba(0,0,0,.05);overflow:hidden;scroll-margin-top:84px}
.vsim::before{content:'';position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--v-accent) 0%,#a855f7 100%)}
.vsim-kicker{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--v-accent);margin-bottom:12px}
.vsim-head{margin-bottom:20px}
.vsim-progress{display:flex;justify-content:space-between;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--v-accent);margin-bottom:8px}
.vsim-bar{height:6px;background:#f1f5f9;border-radius:99px;overflow:hidden}
.vsim-bar i{display:block;height:100%;width:25%;background:var(--v-accent);border-radius:99px;transition:width .35s var(--v-ease)}

.vsim h2.vsim-q{font-size:19px;font-weight:800;letter-spacing:-.02em;color:var(--v-ink);margin:0 0 6px;line-height:1.25}
.vsim .vsim-sub{font-size:13px;color:var(--v-grey);margin-bottom:16px;line-height:1.4}
.vsim-opts{display:flex;flex-direction:column;gap:10px}
.vsim-opt{text-align:left;background:#fff;border:2px solid var(--v-line);border-radius:12px;padding:13px 15px;cursor:pointer;font-family:inherit;transition:all .2s var(--v-ease);display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}
.vsim-opt:hover{border-color:var(--v-accent);background:var(--v-accent-light);transform:translateY(-1px);box-shadow:0 4px 12px rgba(112,48,160,.08)}
.vsim-opt b{display:block;font-size:15px;font-weight:700;color:var(--v-ink)}
.vsim-opt small{display:block;font-size:12px;color:var(--v-grey);margin-top:2px}
.vsim-opt .arr{color:var(--v-accent);font-size:18px;font-weight:800;transition:transform .2s}
.vsim-opt:hover .arr{transform:translateX(4px)}
.vsim-back{background:none;border:0;color:var(--v-grey);font-size:14px;font-weight:600;cursor:pointer;margin-top:8px;min-height:44px;padding:10px 12px 10px 0;font-family:inherit}
.vsim-back:hover{color:var(--v-accent)}

.vsim-badge{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:10px;padding:12px 14px;display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:13px;color:#065f46;font-weight:600;line-height:1.35}
.vsim-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.vsim-tags span{font-size:11px;font-weight:600;background:var(--v-grey-bg);border:1px solid var(--v-line);color:var(--v-ink-light);padding:4px 10px;border-radius:6px}

/* formulaire */
.vsim form,.vcb form{display:flex;flex-direction:column;gap:13px}
.vsim-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vsim-fld{display:flex;flex-direction:column;gap:4px}
.vsim-fld label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--v-ink-light)}
.vsim-fld input{width:100%;padding:12px 14px;font-size:16px;font-family:inherit;border:1.5px solid var(--v-line);border-radius:8px;background:#fff;color:var(--v-ink);transition:border-color .2s,box-shadow .2s}
.vsim-fld input:focus{outline:none;border-color:var(--v-accent);box-shadow:0 0 0 3px rgba(112,48,160,.12)}
.vsim-fld input::placeholder{color:#94a3b8}
.vsim .iti,.vcb .iti{display:block;width:100%;--iti-path-flags-1x:url('https://cdn.jsdelivr.net/npm/intl-tel-input@29.2.3/dist/img/flags.webp');--iti-path-flags-2x:url('https://cdn.jsdelivr.net/npm/intl-tel-input@29.2.3/dist/img/flags@2x.webp')}
.vsim .iti input.iti__tel-input,.vcb .iti input.iti__tel-input{height:46px;border:1.5px solid var(--v-line);border-radius:8px;font-size:16px}
.vsim .iti input.iti__tel-input:focus,.vcb .iti input.iti__tel-input:focus{border-color:var(--v-accent);box-shadow:0 0 0 3px rgba(112,48,160,.12)}
.vsim-hint{font-size:13px;color:var(--v-grey);margin:2px 0 -4px}
.vsim-consent{display:block;font-size:11px;line-height:1.45;color:var(--v-grey)}
.vsim-consent input{margin-top:3px;accent-color:var(--v-accent);flex-shrink:0;width:15px;height:15px}
.vsim-consent a{color:var(--v-accent);text-decoration:underline}
.vsim-submit{background:var(--v-accent);color:#fff;border:0;padding:16px 20px;border-radius:10px;font-size:14px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;font-family:inherit;box-shadow:0 8px 20px -4px rgba(112,48,160,.4);transition:background .2s,transform .15s;width:100%;margin-top:6px}
.vsim-submit:hover{background:var(--v-accent-ink);transform:translateY(-1px)}
.vsim-submit:disabled{opacity:.7;cursor:wait}
.vsim-secure{text-align:center;font-size:11px;color:var(--v-grey);margin-top:4px}
.vsim [data-form-status],.vcb [data-form-status]{color:var(--v-green);font-size:13px;font-weight:600;text-align:center;margin-top:8px}
.vsim [data-form-status].error,.vcb [data-form-status].error{color:#dc2626}

.vsim-ok{text-align:center;padding:20px 6px}
.vsim-ok .ic{width:60px;height:60px;background:#dcfce7;color:var(--v-green);border-radius:50%;font-size:30px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;margin-bottom:14px}
.vsim-ok h3{font-size:21px;font-weight:800;color:var(--v-ink);margin-bottom:10px}
.vsim-ok p{font-size:14px;color:var(--v-grey);line-height:1.5;margin-bottom:14px}
.vsim-ok .box{background:var(--v-grey-bg);border:1px solid var(--v-line);border-radius:10px;padding:14px;text-align:left;font-size:13px;color:var(--v-ink);line-height:1.45}
.vsim-ok .box b{color:var(--v-accent)}

/* fenêtre « Être rappelé » */
.vcb{position:fixed;inset:0;z-index:400;display:flex;align-items:flex-end;justify-content:center}
.vcb[hidden]{display:none}
.vcb-bg{position:absolute;inset:0;background:rgba(15,23,42,.55)}
.vcb-card{position:relative;background:#fff;width:min(440px,100%);max-height:92vh;overflow:hidden;display:flex;flex-direction:column;padding:26px 20px 22px;border-radius:18px 18px 0 0}
.vcb-card h2{font-size:21px;font-weight:800;color:var(--v-ink);margin:0 30px 6px 0;letter-spacing:-.01em;line-height:1.2}
.vcb-sub{font-size:14px;color:var(--v-grey);margin-bottom:16px;line-height:1.45}
.vcb-x{position:absolute;top:10px;right:12px;width:44px;height:44px;background:none;border:0;font-size:28px;line-height:1;color:var(--v-grey);cursor:pointer}

/* barre mobile */
.vbar{display:none}

@media(max-width:900px){
  /* le simulateur passe juste sous l'en-tête, avant le texte réglementaire */
  .disp-form-aside{order:-1}
  .vsim{position:static}
}
@media(max-width:767px){
  body.has-vbar{padding-bottom:60px}
  .vbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:105;height:60px;background:#fff;box-shadow:0 -4px 16px rgba(0,0,0,.08);border-top:1px solid var(--v-line)}
  .vbar button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;border:0;font-family:inherit;padding-inline:10px}
  .vbar .call{background:var(--v-green)}
  .vbar .sim{background:var(--v-accent)}
  .vsim-row{grid-template-columns:1fr}
}
@media(min-width:768px){.vcb{align-items:center}.vcb-card{border-radius:18px;padding:30px}}

.vsim-note{font-size:12px;line-height:1.45;color:var(--v-grey);background:var(--v-grey-bg);border-radius:8px;padding:10px 12px;margin-bottom:14px}

/* ————— Page dispositif au format landing : accroche + simulateur en haut ————— */
.lp-hero{padding-bottom:56px}
.lp-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:start}
.lp-copy{display:flex;flex-direction:column;gap:18px}
.lp-hero h1{max-width:none;font-size:clamp(30px,4vw,48px);line-height:1.1}
.lp-hero h1 em{font-style:normal;color:var(--accent)}
.lp-hero .num{margin-bottom:0}
.lp-lede{font-size:18px;line-height:28px;color:var(--grey)}
.lp-lede-m{display:none}
.lp-checks{list-style:none;display:grid;gap:12px;margin-top:4px}
.lp-checks li{display:flex;gap:10px;font-size:14px;line-height:1.45;color:#334155;font-weight:500}
.lp-checks li::before{content:'✓';flex-shrink:0;width:20px;height:20px;border-radius:50%;background:#dcfce7;color:#16a34a;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-top:1px}
.lp-sim .vsim{position:static}
.lp-cta-card{position:sticky;top:96px;background:#fff;border:1px solid #e8e1ef;border-top:4px solid #7041a0;border-radius:24px;padding:24px;box-shadow:0 16px 50px #30204408;display:flex;flex-direction:column;gap:12px}
.lp-cta-card h3{font-size:19px;letter-spacing:-.01em;line-height:1.2}
.lp-cta-card p{font-size:14px;line-height:1.45;color:var(--grey)}
.lp-cta-card button{font-family:inherit;font-size:14px;font-weight:700;padding:13px 16px;border-radius:10px;cursor:pointer;border:0}
.lp-cta-card .go{background:#7030A0;color:#fff}
.lp-cta-card .go:hover{background:#531f7c}
.lp-cta-card .call{background:#f8fafc;color:#0f172a;border:1px solid #e2e8f0}
.lp-cta-card .call:hover{border-color:#7030A0;color:#7030A0}
@media(max-width:900px){
  .lp-grid{grid-template-columns:1fr;gap:16px}
  .lp-copy{display:contents}
  .lp-hero .num{order:1}
  .lp-hero h1{order:2;font-size:28px}
  .lp-lede{display:none}
  .lp-lede-m{display:block;order:3;font-size:15px;line-height:1.5;color:var(--grey)}
  .lp-sim{order:4}
  .lp-checks{order:5;margin-top:8px}
  .lp-hero{padding-top:96px;padding-bottom:32px}
  .lp-cta-card{display:none}
}

/* overflow-x:hidden sur body crée un conteneur de défilement qui empêche position:sticky ; clip coupe le débordement sans ce défaut */
@supports (overflow:clip){html,body{overflow-x:clip}}

/* Écran de résultat des simulateurs (sim-results.js) — partagé avec /v2/ */
.vres{background:linear-gradient(180deg,#faf5ff,#fff);border:1px solid #e9d5ff;border-radius:14px;padding:18px 16px;margin-bottom:14px}
.vres-title{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#7030A0;margin-bottom:6px}
.vres-big{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.15;color:#0f172a}
.vres-sub{font-size:13px;color:#475569;margin-top:4px;line-height:1.4}
.vres-lines{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:7px}
.vres-lines li{font-size:13.5px;line-height:1.45;color:#334155;padding-left:20px;position:relative}
.vres-lines li::before{content:'✓';position:absolute;left:0;top:0;color:#16a34a;font-weight:800}
.vres-lines b{color:#0f172a}
.vres-note{font-size:11px;line-height:1.4;color:#64748b;margin:12px 0 0}
.vres-call{width:100%;margin-top:10px;padding:14px 18px;border-radius:10px;border:1.5px solid #16a34a;background:#f0fdf4;color:#15803d;font-family:inherit;font-size:14px;font-weight:800;cursor:pointer}
.vres-call:hover{background:#dcfce7}
@media(max-width:400px){.vres-big{font-size:22px}}


/* ————— Parcours général : résultat mis en forme, question fiscale, fenêtre collante (13/10/2026) ————— */
.vres-effort{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:10px 0 2px;padding:10px 12px;background:#f3e8ff;border-radius:10px}
.vres-effort span{font-size:13px;color:#475569}
.vres-effort b{font-size:24px;font-weight:800;color:#5a2585;letter-spacing:-.01em}
.vres-effort small{font-size:12px;color:#64748b;flex-basis:100%}
.vres-intro{margin:8px 0 12px;font-size:14.5px;line-height:1.5;color:#334155}
.vres-hyp{margin:10px 0 0}
.vres-hyp summary{display:block;font-size:13px;color:#475569;cursor:pointer;list-style:none;padding:10px 0;font-weight:600}
.vres-hyp summary::-webkit-details-marker{display:none}
.vres-hyp summary::before{content:'▸';display:inline-block;width:16px;color:#7030A0}
.vres-hyp[open] summary::before{content:'▾'}
.vres-hyp .vres-note{margin-top:6px}
.vfiscal{margin:18px 0 8px;padding-top:14px;border-top:1px dashed var(--v-line)}
.vfiscal-q{font-size:13px;color:var(--v-grey);margin:0 0 8px}
.vfiscal-btns{display:flex;gap:8px}
.vfiscal-chip{border:1.5px solid var(--v-line);background:#fff;border-radius:999px;padding:8px 18px;font-size:13px;font-weight:600;cursor:pointer;color:var(--v-ink);font-family:inherit}
.vfiscal-chip.on{border-color:#7030A0;background:#f5eefb;color:#7030A0}
.vcb-card form{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.vcb-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:4px}
.vcb-foot{flex:none;background:#fff;padding-top:8px;border-top:1px solid var(--v-line)}
.vcb-foot .vsim-consent{margin:0 0 8px;font-size:12px;line-height:1.4}
.vsim-fld select{width:100%;padding:12px;border:1.5px solid var(--v-line);border-radius:10px;font:inherit;background:#fff}
@media(max-width:640px){.vcb-card{padding:18px 16px 10px}.vcb-card h2{font-size:19px}}

/* Écran de résultat : le bouton « étude » reste visible sans faire défiler (mobile), au-dessus de la barre fixe */
@media(max-width:767px){
  .vsim-step[data-result-step] .vsim-submit,.vsim-step .vres + .vsim-submit{position:sticky;bottom:var(--cta-bottom,68px);z-index:5;font-size:15px;padding:18px 20px;box-shadow:0 10px 24px -4px rgba(112,48,160,.55)}
}
/* overflow:hidden de .vsim empêchait position:sticky ; clip garde les coins arrondis sans créer de conteneur de défilement */
@supports (overflow:clip){.vsim{overflow:clip}}
/* écran court (clavier ouvert) : on garde titre, champs et bouton visibles */
@media(max-height:640px){.vcb-sub{display:none}.vcb-card h2{font-size:17px;margin-bottom:10px}.vcb-card{padding-top:14px}.vcb-foot .vsim-consent{font-size:11px;line-height:1.3;margin:0 0 6px}.vcb-foot .vsim-submit{padding:13px 16px;margin-top:0}.vcb-body .vsim-fld{margin-bottom:8px}.vcb-body .vsim-fld input,.vcb-body .vsim-fld select{padding-top:10px;padding-bottom:10px}}
/* mobile : bouton d'envoi de la fenêtre plus compact */
@media(max-width:640px){.vcb-foot .vsim-submit{padding:11px 14px;font-size:13px;margin-top:0;border-radius:9px}}
@media(max-width:640px){.vcb-sub{font-size:clamp(11px,3.3vw,14px);margin-bottom:12px}}
/* mobile : fenêtre ancrée en haut (le clavier ne peut plus masquer le bouton) */
@media(max-width:640px){.vcb{align-items:flex-start}.vcb-card{border-radius:0 0 18px 18px}}
