/* ═══════════════════════════════════════════════════════════════════
   Simulateur Ordinis « BNC → société d'exercice » — feuille de page
   Composants uniques à /simulateur (les composants partagés restent dans global.css).
   Esthétique « relevé » : filets fins, chiffres tabulaires, une seule couleur d'accent.
   ═══════════════════════════════════════════════════════════════════ */
:root { --rule: rgba(11,37,69,0.10); --rule-strong: rgba(11,37,69,0.22); --ink-soft: #5B7A9D; }

.hero { min-height: auto; padding: calc(var(--nav-h) + 3.5rem) 0 3.25rem; }
.hero-content { max-width: 780px; }
.hero-h1 { font-size: clamp(1.9rem, 3.4vw, 2.8rem); max-width: 680px; }

/* ── Grille ── */
.sim { padding: 2.5rem 0 var(--section-py); background: var(--white); }
.sim-grid { display: grid; grid-template-columns: 420px minmax(0, 1fr); gap: 2rem; align-items: start; }
.sim-panel { background: var(--white); border: 1px solid var(--rule); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); position: sticky; top: calc(var(--nav-h) + 1rem); max-height: calc(100vh - var(--nav-h) - 2rem); overflow: auto; scrollbar-width: thin; }
.sim-panel__head { display: flex; justify-content: space-between; align-items: baseline; padding: 1.1rem 1.4rem 0.9rem; border-bottom: 1px solid var(--rule); }
.sim-panel__head button { background: none; border: 0; font: inherit; font-size: var(--text-sm); color: var(--ink-soft); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.sim-panel__head button:hover { color: var(--cobalt); }

/* ── Étapes repliables ── */
.step { border-bottom: 1px solid var(--rule); }
.step:last-of-type { border-bottom: 0; }
.step > summary { list-style: none; display: grid; grid-template-columns: auto 1fr; gap: 0.2rem 0.9rem; align-items: baseline; padding: 1rem 1.4rem; cursor: pointer; }
.step > summary::-webkit-details-marker { display: none; }
.step__n { font-family: var(--font-serif); font-style: italic; font-size: 1.35rem; color: var(--sage); line-height: 1; grid-row: span 2; }
.step__t { font-weight: 600; font-size: 0.95rem; color: var(--text-1); }
.step__sum { grid-column: 2; font-size: var(--text-xs); color: var(--ink-soft); line-height: 1.4; }
.step[open] .step__sum { display: none; }
.step[open] > summary .step__t { color: var(--cobalt); }
.step__body { padding: 0 1.4rem 1.4rem; }
.step__next { margin-top: 0.4rem; width: 100%; justify-content: center; }

/* ── Champs ── */
.fld { display: flex; flex-direction: column; gap: 0.45rem; margin-bottom: 1.1rem; }
.fld[hidden], .step__body [hidden] { display: none !important; }
.fld > label, .fld > .lbl { display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; font-size: var(--text-sm); font-weight: 600; color: var(--text-2); }
.lbl__h { font-weight: 400; color: var(--ink-soft); font-size: var(--text-xs); text-align: right; }
.money { display: flex; align-items: center; gap: 0.5rem; border: 1.5px solid var(--rule-strong); border-radius: var(--radius); padding: 0 0.8rem; background: var(--white); transition: border-color .15s, box-shadow .15s; }
.money:focus-within { border-color: var(--cobalt); box-shadow: 0 0 0 3px rgba(19,64,116,0.12); }
.money input { flex: 1; min-width: 0; border: 0; background: transparent; font-family: var(--font-serif); font-size: 1.35rem; color: var(--navy); padding: 0.45rem 0; text-align: right; font-variant-numeric: tabular-nums; outline: none; -moz-appearance: textfield; }
.money input::-webkit-outer-spin-button, .money input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.money input::placeholder { color: var(--steel); font-family: var(--font-sans); font-size: 0.85rem; }
.money span { font-size: var(--text-sm); color: var(--ink-soft); white-space: nowrap; }
.money--big input { font-size: 1.7rem; }
.fld select { border: 1.5px solid var(--rule-strong); border-radius: var(--radius); background: var(--white); font: inherit; font-size: 0.95rem; color: var(--text-1); padding: 0.6rem 2.2rem 0.6rem 0.8rem; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%234A6080' stroke-width='1.6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.8rem center; }
.rng { width: 100%; accent-color: var(--cobalt); height: 4px; cursor: pointer; margin: 0.1rem 0; }
.hint { font-size: var(--text-xs); color: var(--ink-soft); line-height: 1.45; }
.seg { display: grid; gap: 6px; }
.seg--2 { grid-template-columns: repeat(2, 1fr); } .seg--3 { grid-template-columns: repeat(3, 1fr); } .seg--4 { grid-template-columns: repeat(4, 1fr); }
.seg button { border: 1.5px solid var(--rule-strong); border-radius: var(--radius); background: var(--white); padding: 0.6rem 0.4rem; font: inherit; font-size: var(--text-sm); font-weight: 500; color: var(--text-2); cursor: pointer; transition: all .15s; }
.seg button:hover { border-color: var(--cobalt); color: var(--cobalt); }
.seg button.is-on { background: var(--navy); border-color: var(--navy); color: var(--white); font-weight: 600; }
.seg button:focus-visible, .chips button:focus-visible { outline: 2px solid var(--cobalt); outline-offset: 2px; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; margin: -0.3rem 0 0.9rem; }
.chips button { border: 1px solid var(--rule-strong); border-radius: 99px; background: var(--white); padding: 0.35rem 0.8rem; font: inherit; font-size: var(--text-xs); color: var(--text-2); cursor: pointer; }
.chips button:hover { border-color: var(--cobalt); color: var(--cobalt); }
.chips button.is-on { background: var(--surface); border-color: var(--cobalt); color: var(--cobalt); font-weight: 600; }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.fld--check label { display: flex; gap: 0.6rem; align-items: flex-start; font-weight: 500; color: var(--text-1); font-size: var(--text-sm); line-height: 1.4; cursor: pointer; }
.fld--check input { margin-top: 0.15rem; accent-color: var(--cobalt); }
.adv { border-top: 1px dashed var(--rule-strong); padding-top: 0.9rem; margin: 0.4rem 0 1rem; }
.adv > summary { cursor: pointer; font-size: var(--text-sm); font-weight: 600; color: var(--cobalt); list-style: none; }
.adv > summary::-webkit-details-marker { display: none; }
.adv > summary::before { content: "+ "; }
.adv[open] > summary::before { content: "− "; }
.adv .fld { margin-top: 0.9rem; }
.parts { font-family: var(--font-serif); font-style: italic; color: var(--cobalt); font-size: 1.05rem; margin: -0.2rem 0 1rem; }
.repere { background: var(--surface); border-radius: var(--radius); padding: 0.8rem 1rem; font-size: var(--text-sm); color: var(--text-1); line-height: 1.5; margin-bottom: 1.1rem; }
.sim-privacy { font-size: var(--text-xs); color: var(--ink-soft); padding: 0.9rem 1.4rem 1.1rem; border-top: 1px solid var(--rule); }

/* ── Relevé ── */
.sim-res { min-width: 0; }
.sim-empty { border: 1.5px dashed var(--rule-strong); border-radius: var(--radius-lg); padding: 2.5rem 2rem; }
.sim-empty p { font-family: var(--font-serif); font-size: 1.35rem; color: var(--navy); line-height: 1.3; margin: 0.6rem 0 1.2rem; max-width: 30ch; }
.sim-empty__prog { font-family: var(--font-sans) !important; font-size: var(--text-sm) !important; color: var(--cobalt) !important; font-weight: 600; margin: -0.6rem 0 1.2rem !important; max-width: none !important; }
.sim-empty ol { padding-left: 1.2rem; color: var(--text-2); line-height: 1.6; font-size: 0.95rem; }
.sim-tools { display: flex; gap: 0.6rem; flex-wrap: wrap; margin-top: 1.25rem; }
.rel-head { display: flex; justify-content: space-between; align-items: flex-end; padding: 0 0.25rem 0.9rem; border-bottom: 1px solid var(--rule-strong); }
.rel-head__p { font-size: var(--text-sm); color: var(--ink-soft); margin-top: 0.25rem; }
.kpis--off { opacity: .35; pointer-events: none; }
.bloque { background: #FFF8EA; border: 1.5px solid #C98E2B; border-radius: var(--radius-lg); padding: 1.4rem 1.6rem; margin: 1.25rem 0; }
.bloque h3 { font-family: var(--font-serif); font-weight: 600; font-size: 1.25rem; color: var(--navy); margin-bottom: .5rem; }
.bloque p { color: var(--text-2); line-height: 1.55; margin-bottom: .9rem; }
.kpis { display: grid; grid-template-columns: 1fr 1fr; background: var(--navy); color: var(--white); border-radius: var(--radius-lg); margin: 1.25rem 0; overflow: hidden; }
.kpi { padding: 1.6rem 1.75rem 1.5rem; border-right: 1px solid rgba(255,255,255,0.10); border-bottom: 1px solid rgba(255,255,255,0.10); }
.kpi:nth-child(2) { border-right: 0; }
.kpi--wide { grid-column: 1 / -1; border-right: 0; border-bottom: 0; display: grid; grid-template-columns: auto 1fr; gap: 0.3rem 2rem; align-items: baseline; }
.kpi--wide .kpi__l { grid-column: 1 / -1; }
.kpi__l { display: block; font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; color: var(--sage); }
.kpi__v { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.9rem, 3.2vw, 2.6rem); line-height: 1.05; letter-spacing: -0.01em; color: var(--white); margin: 0.55rem 0 0.5rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.kpi--wide .kpi__v { margin: 0.4rem 0 0; }
.kpi__s { font-size: var(--text-sm); color: var(--steel); line-height: 1.5; max-width: 42ch; }
.kpi__s b { color: var(--white); font-weight: 600; }
.notices { display: grid; gap: 0.6rem; margin-bottom: 1.25rem; }
.notice { border-left: 3px solid var(--cobalt); padding: 0.7rem 1rem; background: var(--surface); border-radius: 0 var(--radius) var(--radius) 0; }
.notice--warning { border-left-color: #C98E2B; background: #FFF8EA; }
.notice strong { display: block; font-size: 0.92rem; color: var(--text-1); margin-bottom: 0.15rem; }
.notice p { font-size: var(--text-sm); color: var(--text-2); line-height: 1.5; }

.bloc { padding: 1.75rem 0 2rem; border-top: 1px solid var(--rule-strong); }
.bloc__head { display: flex; gap: 1rem; align-items: baseline; margin-bottom: 0.75rem; }
.bloc__n { font-family: var(--font-serif); font-style: italic; font-size: 1.5rem; color: var(--sage); min-width: 1.6rem; }
.bloc h3 { font-family: var(--font-serif); font-weight: 600; font-size: clamp(1.3rem, 2vw, 1.6rem); color: var(--navy); line-height: 1.25; }
.bloc h3 em { font-style: italic; font-weight: 400; color: var(--cobalt); }
.bloc__lead { color: var(--text-2); line-height: 1.6; max-width: 64ch; margin-bottom: 1.25rem; }
.bloc__note { font-size: var(--text-xs); color: var(--ink-soft); line-height: 1.5; max-width: 70ch; margin: 1rem 0 1.1rem; }
.bloc .btn { align-self: flex-start; }
.bloc__actions { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-top: 1.1rem; }
.bloc--next { background: var(--surface); border-radius: var(--radius-lg); border-top: 0; padding: 1.6rem 1.75rem; margin-top: 0.5rem; }
.bloc--next p { color: var(--text-2); line-height: 1.55; margin-top: 0.5rem; max-width: 60ch; }

.cas-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.cas { border: 1px solid var(--rule); border-radius: var(--radius); padding: 1rem 1.1rem; }
.cas__t { font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; color: var(--ink-soft); margin-bottom: 0.6rem; }
.cas__dl div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.45rem 0; border-bottom: 1px solid var(--rule); font-size: 0.9rem; }
.cas__dl dt { color: var(--text-2); }
.cas__dl dd { font-variant-numeric: tabular-nums; color: var(--text-1); white-space: nowrap; }
.cas__dl .cas__net { border-bottom: 0; border-top: 1.5px solid var(--navy); margin-top: 0.2rem; padding-top: 0.6rem; }
.cas__net dt { font-weight: 600; color: var(--navy); }
.cas__net dd { font-family: var(--font-serif); font-style: italic; font-size: 1.25rem; color: var(--navy); }
.fin { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1rem; padding: 1rem 1.1rem; background: var(--surface); border-radius: var(--radius); }
.fin__l { display: block; font-size: var(--text-xs); color: var(--ink-soft); margin-bottom: 0.2rem; }
.fin b { display: block; font-family: var(--font-serif); font-weight: 400; font-size: 1.25rem; color: var(--navy); font-variant-numeric: tabular-nums; }
.fin small { display: block; font-size: var(--text-xs); color: var(--ink-soft); margin-top: 0.15rem; line-height: 1.4; }
.dette { display: flex; align-items: center; gap: 0.75rem; margin-top: 0.9rem; font-size: var(--text-sm); color: var(--text-2); }
.dette i { flex: 0 0 120px; height: 6px; border-radius: 3px; background: var(--rule); position: relative; overflow: hidden; }
.dette i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--w, 0%); background: var(--sage); border-radius: 3px; }
.dette--mid i::after { background: #C98E2B; } .dette--high i::after { background: #B3261E; }

.cmp { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
.cmp th, .cmp td { padding: 0.6rem 0.4rem; border-bottom: 1px solid var(--rule); text-align: right; vertical-align: top; }
.cmp th[scope=row] { text-align: left; font-weight: 500; color: var(--text-2); }
.cmp thead th { font-size: var(--text-xs); letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-soft); font-weight: 600; }
.cmp thead th:first-child { text-align: left; }
.cmp td { font-variant-numeric: tabular-nums; color: var(--text-1); white-space: nowrap; }
.cmp__dispo th, .cmp__dispo td { color: var(--navy); font-weight: 600; }
.cmp__total th, .cmp__total td { border-bottom: 0; border-top: 1.5px solid var(--navy); padding-top: 0.75rem; color: var(--navy); font-weight: 700; }
.cmp__total td { font-family: var(--font-serif); font-style: italic; font-weight: 400; font-size: 1.15rem; }
.eco { margin-top: 1.1rem; padding: 1.1rem 1.25rem; border: 1.5px solid var(--sage); border-radius: var(--radius); display: grid; grid-template-columns: auto 1fr; gap: 0.2rem 1.5rem; align-items: baseline; }
.eco__l { grid-column: 1 / -1; font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; color: var(--ink-soft); }
.eco b { font-family: var(--font-display); font-weight: 300; font-size: 2rem; color: var(--navy); font-variant-numeric: tabular-nums; white-space: nowrap; }
.eco p { font-size: var(--text-sm); color: var(--text-2); line-height: 1.5; }
.soc-wrap { margin-top: 0.9rem; }
.soc-wrap > summary { cursor: pointer; font-size: var(--text-sm); font-weight: 600; color: var(--cobalt); list-style: none; }
.soc-wrap > summary::-webkit-details-marker { display: none; }
.soc-wrap > summary::before { content: "+ "; } .soc-wrap[open] > summary::before { content: "− "; }
.soc { margin-top: 0.6rem; border: 1px solid var(--rule); border-radius: var(--radius); padding: 0.4rem 1rem; }
.soc div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.45rem 0; border-bottom: 1px solid var(--rule); font-size: 0.9rem; }
.soc div:last-child { border-bottom: 0; }
.soc dt { color: var(--text-2); } .soc dd { font-variant-numeric: tabular-nums; color: var(--text-1); white-space: nowrap; }
.soc__net dt, .soc__net dd { font-weight: 600; color: var(--navy); }

/* ── Sections basses ── */
.etapes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-top: var(--space-md); }
.etape { display: flex; gap: 1rem; align-items: flex-start; background: var(--white); border: 1px solid var(--rule); border-radius: var(--radius-lg); padding: 1.4rem 1.4rem 1.5rem; }
.etape__n { font-family: var(--font-serif); font-style: italic; font-size: 1.8rem; color: var(--sage); line-height: 1; }
.etape h3 { font-family: var(--font-serif); font-weight: 600; font-size: 1.15rem; color: var(--navy); margin-bottom: 0.4rem; }
.etape p { font-size: 0.93rem; color: var(--text-2); line-height: 1.55; }
.offer-note { max-width: 70ch; margin: var(--space-md) 0 1rem; color: var(--text-2); line-height: 1.6; }
.offer-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.hyp { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 2.5rem; margin-top: var(--space-md); }
.hyp__item h3 { font-family: var(--font-sans); font-size: 0.95rem; font-weight: 700; color: var(--navy); margin-bottom: 0.4rem; }
.hyp__item p { font-size: 0.93rem; color: var(--text-2); line-height: 1.6; }
.hyp__item b { color: var(--text-1); font-weight: 600; }
.hyp__item a { color: var(--cobalt); text-decoration: underline; text-underline-offset: 3px; }
.fine { font-size: var(--text-xs); color: var(--ink-soft); line-height: 1.5; max-width: 80ch; margin-top: var(--space-md); }

/* ── Barre mobile ── */
.sim-sticky { display: none; }

@media (max-width: 1024px) {
  .sim-grid { grid-template-columns: 1fr; }
  .sim-panel { position: static; max-height: none; }
  .etapes, .hyp { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .hint, .bloc__note, .res-fine, .kpi__s, .notice p, .fin small, .cas__dl div, .soc div { font-size: 0.875rem; }
  .cas__dl dt, .soc dt { max-width: 62%; }
  .sim-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.7rem 1rem calc(0.7rem + env(safe-area-inset-bottom)); background: var(--navy); color: var(--white); box-shadow: 0 -6px 24px rgba(11,37,69,0.25); }
  .sim-sticky[hidden] { display: none; }
  .sim-sticky b { display: block; font-family: var(--font-display); font-weight: 300; font-size: 1.3rem; line-height: 1; }
  .sim-sticky span { font-size: var(--text-xs); color: var(--steel); }
  .sim-sticky button { background: var(--sage); color: var(--navy); border: 0; border-radius: var(--radius); font: inherit; font-weight: 600; font-size: var(--text-sm); padding: 0.65rem 1rem; white-space: nowrap; }
  body { padding-bottom: 4.5rem; }
  .kpis { grid-template-columns: 1fr; }
  .kpi { border-right: 0; }
  .kpi--wide { grid-template-columns: 1fr; }
  .cas-grid, .fin, .two { grid-template-columns: 1fr; }
  .eco { grid-template-columns: 1fr; }
  .cmp { font-size: 0.85rem; }
  .cmp th, .cmp td { padding: 0.5rem 0.25rem; }
  .cmp td { white-space: normal; }
}

/* ── Impression : le relevé seul, propre, une à deux pages ── */
@media print {
  @page { size: A4; margin: 14mm; }
  body { padding: 0; background: #fff; }
  .nav, .nav-mobile, .hero, .sim-panel, .sim-tools, .sim-sticky, #etude, #contact, #faq, .cta-final, .footer, .bloc .btn, .bloc__actions, .bloc--next, .soc-wrap > summary { display: none !important; }
  .sim { padding: 0; }
  .sim-grid { display: block; }
  .sim-res::before { content: "Ordinis. — Simulation BNC / société d'exercice · ordinis-courtage.com/simulateur · +33 6 67 72 10 81"; display: block; font-family: var(--font-sans); font-size: 10pt; color: #4A6080; padding-bottom: 6pt; border-bottom: 1px solid #0B2545; margin-bottom: 10pt; }
  .kpis { -webkit-print-color-adjust: exact; print-color-adjust: exact; break-inside: avoid; }
  .bloc { break-inside: avoid; padding: 10pt 0; }
  .soc-wrap[open] .soc, .soc-wrap .soc { display: block; }
  #hypotheses { display: block; padding: 0; margin-top: 12pt; border-top: 1px solid #0B2545; }
  #hypotheses .h2-editorial, #hypotheses .section-label { display: none; }
  .hyp { grid-template-columns: 1fr 1fr; gap: 6pt 14pt; margin-top: 8pt; }
  .hyp__item p, .fine { font-size: 8pt; line-height: 1.35; }
  .hyp__item h3 { font-size: 8.5pt; margin-bottom: 2pt; }
  .hyp__item a { text-decoration: none; color: inherit; }
  main { display: block; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ── Relevé v4 : lecture en trois temps ── */
.rel-tete { padding: 0 0.25rem 1.5rem; border-bottom: 1px solid var(--rule-strong); }
.rel-tete__h { font-family: var(--font-serif); font-weight: 600; font-size: clamp(1.6rem, 2.4vw, 2rem); color: var(--navy); line-height: 1.2; margin: 0.4rem 0 0.9rem; }
.rel-tete__h em { font-style: italic; font-weight: 400; color: var(--cobalt); }
.rel-tete__obj { font-size: 1.05rem; color: var(--text-1); }
.rel-tete__obj b { font-family: var(--font-serif); font-weight: 600; font-size: 1.3rem; color: var(--navy); }
.rel-tete__meta { font-size: var(--text-sm); color: var(--ink-soft); margin-top: 0.4rem; }
.lev { border-radius: var(--radius-lg); padding: 1.75rem 2rem 1.9rem; margin-top: 2rem; display: flex; flex-direction: column; }
.lev--dom { background: var(--navy); color: var(--white); }
.lev--sec { background: var(--white); border: 1px solid var(--rule-strong); }
.lev__l { display: block; font-size: var(--text-xs); letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; color: var(--sage); }
.lev--sec .lev__l, .pli .lev__l, .proj .lev__l, .clot .lev__l { color: var(--ink-soft); }
.lev__t { font-family: var(--font-serif); font-weight: 600; font-size: clamp(1.35rem, 2vw, 1.7rem); line-height: 1.25; margin: 0.5rem 0 1rem; color: var(--white); }
.lev--sec .lev__t { color: var(--navy); }
.lev__t em { font-style: italic; font-weight: 400; color: var(--sage); }
.lev--sec .lev__t em { color: var(--cobalt); }
.lev__n { font-family: var(--font-display); font-weight: 300; font-size: clamp(2.4rem, 4vw, 3.2rem); line-height: 1.05; letter-spacing: -0.015em; color: var(--white); font-variant-numeric: tabular-nums; }
.lev--sec .lev__n { font-size: clamp(2rem, 3vw, 2.4rem); color: var(--navy); }
.lev__s { font-size: var(--text-sm); color: var(--steel); margin: 0.35rem 0 1.1rem; }
.lev--sec .lev__s { color: var(--ink-soft); }
.lev__p { font-size: 1rem; line-height: 1.55; color: rgba(255,255,255,0.88); max-width: 60ch; }
.lev--sec .lev__p { color: var(--text-1); }
.lev__r { font-size: var(--text-sm); font-weight: 600; line-height: 1.5; margin: 0.9rem 0 1.1rem; padding-left: 0.9rem; border-left: 2px solid var(--sage); color: var(--white); max-width: 60ch; }
.lev--sec .lev__r { color: var(--navy); border-left-color: var(--cobalt); }
.lev__dl { border-top: 1px solid rgba(255,255,255,0.14); }
.lev--sec .lev__dl { border-top-color: var(--rule); }
.lev__dl div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.55rem 0; border-bottom: 1px solid rgba(255,255,255,0.14); font-size: 0.95rem; }
.lev--sec .lev__dl div { border-bottom-color: var(--rule); }
.lev__dl dt { color: var(--steel); } .lev--sec .lev__dl dt { color: var(--text-2); }
.lev__dl dd { font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--white); } .lev--sec .lev__dl dd { color: var(--navy); }
.lev__note { font-size: var(--text-xs); line-height: 1.5; color: var(--steel); margin: 0.9rem 0 1.1rem; max-width: 64ch; }
.lev--sec .lev__note, .pli .lev__note, .proj .lev__note, .clot .lev__note, .detail .lev__note { color: var(--ink-soft); }
.lev .btn { align-self: flex-start; }
.lev--dom .btn-primary { background: var(--sage); color: var(--navy); }
.pli { background: var(--surface); border-radius: var(--radius-lg); padding: 1.6rem 2rem 1.5rem; margin-top: 2rem; }
.pli__t { font-family: var(--font-serif); font-weight: 600; font-size: clamp(1.25rem, 1.8vw, 1.5rem); color: var(--navy); margin: 0.4rem 0 1.1rem; }
.pli__row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; font-size: 0.95rem; color: var(--text-2); }
.pli__row b { font-family: var(--font-serif); font-weight: 400; font-size: 1.2rem; color: var(--navy); font-variant-numeric: tabular-nums; }
.pli__row--b { margin-top: -0.4rem; }
.pli__row--is { font-size: var(--text-sm); margin-top: 0.3rem; }
.pli__row--is i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; background: var(--steel); margin-right: 0.5rem; vertical-align: middle; }
.pli__row--is b { font-size: 1rem; color: var(--text-2); }
.pli__svg { display: block; width: 100%; max-width: 560px; height: auto; margin: 0.3rem 0 0.2rem; }
.pli__p { font-size: 0.95rem; color: var(--text-1); line-height: 1.55; margin-top: 0.9rem; max-width: 62ch; }
.proj { margin-top: 2rem; padding-top: 1.5rem; border-top: 2px solid var(--navy); }
.proj__t { font-family: var(--font-serif); font-weight: 600; font-size: clamp(1.25rem, 1.8vw, 1.5rem); color: var(--navy); margin: 0.4rem 0 0.6rem; }
.proj__n { font-family: var(--font-display); font-weight: 300; font-size: clamp(2rem, 3.2vw, 2.6rem); color: var(--navy); line-height: 1.05; font-variant-numeric: tabular-nums; }
.proj__s { font-size: 1rem; color: var(--text-2); margin-top: 0.4rem; max-width: 58ch; line-height: 1.5; }
.proj__s b { color: var(--navy); }
.detail { margin-top: 1.75rem; border: 1px solid var(--steel); border-radius: var(--radius-lg); padding: 0 1.5rem; background: var(--white); }
.detail > summary { cursor: pointer; list-style: none; padding: 1rem 0; font-size: 0.95rem; font-weight: 600; color: var(--cobalt); }
.detail > summary::-webkit-details-marker { display: none; }
.detail > summary::before { content: "+ "; } .detail[open] > summary::before { content: "− "; }
.detail__intro { color: var(--text-2); font-size: 0.95rem; line-height: 1.55; margin-bottom: 1rem; }
.detail h4 { font-family: var(--font-sans); font-size: var(--text-xs); letter-spacing: 0.1em; text-transform: uppercase; font-weight: 700; color: var(--navy); margin: 1.4rem 0 0.7rem; }
.detail > p { font-size: 0.93rem; color: var(--text-2); line-height: 1.55; }
.detail .soc { margin-top: 0.9rem; }
.detail[open] { padding-bottom: 1.4rem; }
.clot { background: var(--surface); border-radius: var(--radius-lg); padding: 1.75rem 2rem 1.6rem; margin-top: 2rem; }
.clot__t { font-family: var(--font-serif); font-weight: 600; font-size: clamp(1.4rem, 2vw, 1.75rem); color: var(--navy); line-height: 1.25; margin: 0.4rem 0 0.7rem; }
.clot__t em { font-style: italic; font-weight: 400; color: var(--cobalt); }
.clot__p { color: var(--text-1); line-height: 1.55; max-width: 60ch; }
@media (max-width: 768px) {
  .lev, .pli, .clot { padding: 1.3rem 1.2rem 1.4rem; }
  .lev__n { font-size: 2.3rem; } .lev--sec .lev__n { font-size: 1.9rem; }
  .lev__dl div { flex-direction: column; gap: 0.1rem; }
  .pli__row { flex-direction: column; gap: 0.1rem; }
  .sim-sticky b { font-size: 1rem; font-weight: 600; font-family: var(--font-sans); }
}
@media print {
  .lev--dom, .pli, .clot { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .lev, .pli, .proj { break-inside: avoid; margin-top: 12pt; }
  .clot, .lev .btn, .sim-tools { display: none !important; }
  .detail { border: 0; padding: 0; } .detail > summary { display: none; }
}

/* ── Formulaire v5 : une question à la fois, montants saisis, raccourcis chiffrés ── */
.sim-panel { position: sticky; top: calc(var(--nav-h) + 1rem); max-height: none; overflow: visible; }
.sim-progress { font-size: var(--text-sm); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--cobalt); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.step > summary { grid-template-columns: auto 1fr auto; align-items: center; min-height: 56px; }
.step__n { font-family: var(--font-serif); font-style: italic; font-size: 1.25rem; color: var(--sage); line-height: 1; width: 1.6rem; height: 1.6rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--rule-strong); border-radius: 50%; grid-row: span 2; }
.step--done .step__n { background: var(--navy); border-color: var(--navy); color: var(--white); font-style: normal; font-family: var(--font-sans); font-size: 0.8rem; font-weight: 700; }
.step__t { font-family: var(--font-serif); font-weight: 600; font-size: 1.25rem; color: var(--navy); }
.step[open] > summary .step__t { color: var(--navy); }
.step__edit { grid-column: 3; grid-row: 1; font-size: var(--text-xs); color: var(--cobalt); text-decoration: underline; text-underline-offset: 3px; }
.step[open] .step__edit, .step--locked .step__edit { display: none; }
.step--locked > summary { cursor: default; } .step--locked .step__t { color: var(--ink-soft); }
.step__sum { grid-column: 2 / 4; grid-row: 2; }
.step__intro { font-family: var(--font-serif); font-style: italic; color: var(--cobalt); font-size: 1.05rem; margin: -0.2rem 0 1rem; }
.fld > label, .fld > legend, .dependent > legend { font-size: 0.95rem; font-weight: 600; color: var(--text-1); display: block; margin-bottom: 0.45rem; }
.fld--radios { border: 0; padding: 0; margin: 0 0 1.1rem; min-width: 0; }
.fld select { width: 100%; min-height: 52px; font-size: 1rem; color: var(--navy); }
.fld select:invalid, .fld select[value=""] { color: var(--text-2); }
.money input { min-height: 52px; font-size: 1.55rem; }
.money--big input { font-size: 1.8rem; }
.money:has([aria-invalid="true"]) { border-color: #B3261E; box-shadow: 0 0 0 3px rgba(179,38,30,0.12); }
.error { font-size: var(--text-sm); font-weight: 600; color: #B3261E; margin-top: 0.35rem; }
.error[hidden] { display: none; }
.dependent { border: 0; margin: -0.3rem 0 1.1rem; padding: 0.9rem 1rem 0.8rem; background: var(--surface); border-radius: var(--radius); min-width: 0; }
.dependent > legend { float: left; width: 100%; padding: 0; margin-bottom: 0.5rem; }
.dependent::after { content: ""; display: table; clear: both; }
.dependent .choices, .dependent .money, .dependent .hint, .dependent .chips, .dependent .error { clear: both; }
.dependent .hint { color: var(--cobalt); }
.choices { display: flex; flex-wrap: wrap; gap: 6px; }
.choices label { flex: 1 1 88px; display: flex; align-items: center; justify-content: center; gap: 0.5rem; min-height: 48px; padding: 0.5rem 0.6rem; border: 1.5px solid var(--rule-strong); border-radius: var(--radius); background: var(--white); font-size: var(--text-sm); font-weight: 500; color: var(--text-2); cursor: pointer; text-align: center; }
.choices--col label { flex-basis: 100%; justify-content: flex-start; text-align: left; }
.choices label { position: relative; }
.choices input { position: absolute; opacity: 0; width: 1px; height: 1px; left: 8px; top: 50%; }
.choices label:has(input:checked) { background: var(--navy); border-color: var(--navy); color: var(--white); font-weight: 600; }
.choices label:has(input:focus-visible) { outline: 2px solid var(--cobalt); outline-offset: 2px; }
.chips { margin: 0.5rem 0 0.4rem; }
.chips button { display: inline-flex; flex-direction: column; align-items: center; gap: 0.05rem; padding: 0.4rem 0.75rem; line-height: 1.2; }
.chips button span { font-size: var(--text-xs); color: var(--ink-soft); font-weight: 400; }
.chips button.is-on span { color: var(--cobalt); }
.chips button:disabled { opacity: 0.45; cursor: default; }
.check { display: flex; align-items: flex-start; gap: 0.6rem; padding: 0.6rem 0 0.2rem; font-size: var(--text-sm); font-weight: 500; color: var(--text-1); line-height: 1.4; cursor: pointer; }
.check input { width: 18px; height: 18px; flex-shrink: 0; margin-top: 0.1rem; accent-color: var(--cobalt); }
.adv .fld { margin-top: 0.9rem; }
.hint { color: var(--ink-soft); }
.repere { font-size: 0.95rem; }
@media (max-width: 1024px) { .sim-panel { position: static; } }

/* Garde-fous de largeur (mobile) */
.sim-grid > * { min-width: 0; }
.sim-panel { min-width: 0; max-width: 100%; }
.step > summary { grid-template-columns: auto minmax(0, 1fr) auto; }
.step__sum, .step__t { overflow-wrap: anywhere; }
.money { min-width: 0; }
.chips, .choices { min-width: 0; }

.step__t[tabindex]:focus { outline: none; }
.fld--radios .choices label { flex: 1 1 56px; }
.dependent .choices { display: flex; width: 100%; }

/* ── Relevé v6 : introduction en deux bénéfices, graphique « sur 100 € », mini comparatif annuel ── */
.intro { padding: 0 0.25rem 1.5rem; border-bottom: 1px solid var(--rule-strong); }
.intro__h { font-family: var(--font-serif); font-weight: 600; font-size: clamp(1.6rem, 2.4vw, 2rem); color: var(--navy); line-height: 1.2; margin: 0.4rem 0 0.9rem; }
.intro__h em { font-style: italic; font-weight: 400; color: var(--cobalt); }
.intro__obj { font-size: 1.05rem; color: var(--text-1); line-height: 1.55; max-width: 62ch; }
.intro__obj b { font-family: var(--font-serif); font-weight: 600; font-size: 1.25rem; color: var(--navy); }
.ben { list-style: none; padding: 0; margin: 1.4rem 0 1rem; display: grid; gap: 1.1rem; }
.ben li { display: grid; grid-template-columns: 2.2rem 1fr; gap: 0.9rem; align-items: start; }
.ben__n { width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--navy); color: var(--white); display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-serif); font-style: italic; font-size: 1.2rem; }
.ben h4 { font-family: var(--font-serif); font-weight: 600; font-size: 1.2rem; color: var(--navy); margin-bottom: 0.3rem; line-height: 1.25; }
.ben p { color: var(--text-1); line-height: 1.55; max-width: 62ch; }
.ben p b { color: var(--navy); font-weight: 700; }
.ben__r { font-size: var(--text-sm) !important; color: var(--ink-soft) !important; margin-top: 0.3rem; }
.intro__meta { font-size: var(--text-sm); color: var(--ink-soft); margin-top: 0.2rem; }
.intro__suite { font-family: var(--font-serif); font-style: italic; color: var(--cobalt); font-size: 1.05rem; margin-top: 1rem; }
.cent { background: var(--surface); border-radius: var(--radius-lg); padding: 1.75rem 2rem 1.5rem; margin: 2rem 0 0; }
.cent__t { font-family: var(--font-serif); font-weight: 600; font-size: clamp(1.35rem, 2vw, 1.75rem); color: var(--navy); margin: 0.4rem 0 0.3rem; line-height: 1.25; }
.cent__s { font-size: var(--text-sm); color: var(--cobalt); margin-bottom: 1.3rem; }
.cent__row { margin-bottom: 1.3rem; }
.cent__lbl { display: flex; align-items: baseline; gap: 0.8rem; margin-bottom: 0.5rem; }
.cent__lbl b { font-family: var(--font-display); font-weight: 300; font-size: 2.5rem; line-height: 1; color: var(--navy); font-variant-numeric: tabular-nums; min-width: 5.6rem; white-space: nowrap; }
.cent__lbl b.cent__sage { color: #4E8A5B; }
.cent__lbl span { font-size: 0.95rem; color: var(--text-2); line-height: 1.4; }
.cent__lbl strong { color: var(--navy); font-weight: 700; }
.cent__svg { display: block; width: 100%; height: 32px; }
.cent__k { font-size: 1.05rem; color: var(--text-1); line-height: 1.5; margin: 0.3rem 0 0.9rem; }
.cent__k b { font-family: var(--font-display); font-weight: 300; font-size: 1.9rem; color: var(--navy); margin-right: 0.3rem; vertical-align: -0.1em; }
.cent__leg { list-style: none; padding: 0; margin: 0 0 0.6rem; display: flex; flex-wrap: wrap; gap: 0.5rem 1.2rem; font-size: var(--text-xs); color: var(--text-2); }
.cent__leg li::before { content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 0.45rem; vertical-align: middle; }
.cent__leg .l-navy::before { background: var(--navy); } .cent__leg .l-sage::before { background: var(--sage); } .cent__leg .l-steel::before { background: var(--steel); }
.cent figcaption { margin: 0.4rem 0 0; }
.mini { border-top: 1px solid var(--rule); margin-top: 0.4rem; padding-top: 0.9rem; }
.mini__row { margin-bottom: 0.8rem; }
.mini__lbl { display: flex; justify-content: space-between; gap: 1rem; font-size: var(--text-sm); color: var(--text-2); margin-bottom: 0.3rem; }
.mini__lbl b { color: var(--navy); font-variant-numeric: tabular-nums; white-space: nowrap; }
.mini__svg { display: block; width: 100%; height: 20px; }
.mini__note { font-size: var(--text-xs); color: var(--ink-soft); line-height: 1.5; }
@media (max-width: 768px) {
  .cent { padding: 1.3rem 1.2rem 1.2rem; }
  .cent__lbl { flex-direction: column; gap: 0.2rem; }
  .cent__lbl b { font-size: 2.2rem; }
  .cent__leg { flex-direction: column; gap: 0.3rem; }
  .ben li { grid-template-columns: 1.8rem 1fr; gap: 0.7rem; }
  .ben__n { width: 1.8rem; height: 1.8rem; font-size: 1rem; }
}
@media print { .cent { -webkit-print-color-adjust: exact; print-color-adjust: exact; break-inside: avoid; } }

/* Numéros 1 et 2 bien visibles */
.ben li { grid-template-columns: 3.4rem 1fr; gap: 0.6rem; }
.ben__n { width: auto; height: auto; border-radius: 0; background: none; color: var(--navy); font-family: var(--font-display); font-style: normal; font-weight: 300; font-size: 3.4rem; line-height: 0.9; display: block; margin-top: -0.2rem; }
.lev { position: relative; }
.lev__num { position: absolute; top: 1.1rem; right: 1.5rem; font-family: var(--font-display); font-weight: 300; font-size: 4rem; line-height: 1; color: rgba(255,255,255,0.22); pointer-events: none; }
.lev--sec .lev__num { color: rgba(11,37,69,0.12); }
@media (max-width: 768px) { .ben li { grid-template-columns: 2.6rem 1fr; } .ben__n { font-size: 2.6rem; } .lev__num { font-size: 3rem; right: 1.1rem; top: 0.9rem; } }

/* ── Relevé v7 : numéros en tête des cartes, carte annuelle fusionnée, visuel annuel hachuré ── */
.lev__num { position: static; font-family: var(--font-display); font-weight: 300; font-size: 4.5rem; line-height: 0.85; color: var(--sage); pointer-events: none; }
.lev--sec .lev__num { color: var(--cobalt); }
.lev__head { display: flex; align-items: flex-end; gap: 0.9rem; margin-bottom: 0.6rem; }
.lev__head .lev__l { margin-bottom: 0.5rem; }
.ben li { grid-template-columns: 3rem 1fr; gap: 0.9rem; }
.ben__n { width: 3rem; height: 3rem; border-radius: 50%; background: var(--navy); color: var(--white); display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-display); font-style: normal; font-weight: 300; font-size: 2rem; line-height: 1; margin-top: 0; }
.lev--an { background: var(--surface); border-color: transparent; }
.lev--an .lev__n { color: var(--navy); font-size: clamp(2.4rem, 4vw, 3.2rem); }
.lev--an .lev__s { color: var(--cobalt); }
.lev__preuve { font-size: 1rem; color: var(--text-1); margin: 0.9rem 0 1.1rem; padding: 0.7rem 0.9rem; background: var(--white); border-radius: var(--radius); border: 1px solid var(--rule); }
.lev__preuve b { color: var(--navy); font-variant-numeric: tabular-nums; }
.an { margin: 0.4rem 0 0.9rem; }
.an__row { margin-bottom: 0.9rem; }
.an__lbl { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; font-size: 0.95rem; color: var(--text-2); margin-bottom: 0.35rem; }
.an__lbl strong { color: var(--navy); font-weight: 700; }
.an__lbl b { font-family: var(--font-serif); font-weight: 400; font-size: 1.25rem; color: var(--navy); font-variant-numeric: tabular-nums; white-space: nowrap; }
.an__svg { display: block; width: 100%; height: 28px; }
.an__apres { font-size: 0.95rem; color: var(--text-1); line-height: 1.5; margin-top: 0.4rem; }
.an__apres b { color: var(--navy); }
.an__note { font-size: var(--text-sm); color: var(--cobalt); line-height: 1.5; margin-top: 0.4rem; }
.lev__pct { font-size: 1.05rem; color: var(--text-1); margin: 0.6rem 0 0.4rem; }
.lev__pct b { color: var(--navy); }
.lev__cent { font-size: 0.95rem; color: var(--text-2); line-height: 1.55; margin-bottom: 0.4rem; }
@media (max-width: 768px) {
  .lev__num { font-size: 3.4rem; }
  .ben li { grid-template-columns: 2.75rem 1fr; gap: 0.7rem; } .ben__n { width: 2.75rem; height: 2.75rem; font-size: 1.7rem; }
  .an__lbl { flex-direction: column; gap: 0.15rem; }
}
@media print { .lev--an { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

.lev__cond { font-style: italic; font-size: var(--text-xs); color: var(--steel); margin: 0.7rem 0 0.1rem; }
.lev--sec .lev__cond { color: var(--ink-soft); }

.lev__lead { font-size: 1.05rem; line-height: 1.55; color: var(--text-1); margin: 0.2rem 0 1.1rem; max-width: 62ch; }
.lev__lead b { color: var(--navy); }
.pli--in { background: var(--white); border: 1px solid var(--rule); margin: 1.1rem 0 0.9rem; padding: 1.3rem 1.4rem 1.2rem; }
.pli--in .lev__l { color: var(--ink-soft); }

.seuil { background: var(--surface); border-radius: var(--radius-lg); padding: 1.75rem 2rem 1.6rem; margin-top: 1.5rem; }
.seuil__t { font-family: var(--font-serif); font-weight: 600; font-size: clamp(1.35rem, 2vw, 1.7rem); color: var(--navy); margin-bottom: 0.6rem; }
.seuil__p { color: var(--text-1); line-height: 1.6; max-width: 62ch; margin-bottom: 1.2rem; }

.pli__row--tot { border-top: 1px solid var(--rule); margin-top: 0.5rem; padding-top: 0.5rem; }
.pli__row--tot b { font-weight: 600; }

.sim-tools[hidden], .sim-sticky[hidden] { display: none !important; }

/* Le défilement automatique (étapes, synthèse) s'arrête sous la barre de navigation fixe */
#sim-res, .step, #simulateur { scroll-margin-top: calc(var(--nav-h) + 1.5rem); }

/* ── Introduction : deux tuiles de bénéfices ── */
.tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1.4rem 0 1.1rem; }
.tile { background: var(--white); border: 1px solid var(--rule-strong); border-radius: var(--radius-lg); padding: 1.25rem 1.35rem 1.3rem; display: flex; flex-direction: column; box-shadow: var(--shadow-sm); }
.tile__head { display: flex; align-items: baseline; gap: 0.6rem; margin-bottom: 0.4rem; }
.tile__num { font-family: var(--font-display); font-weight: 300; font-size: 2.6rem; line-height: 0.9; color: var(--sage); }
.tile__k { font-size: var(--text-xs); letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; color: var(--ink-soft); }
.tile__t { font-family: var(--font-serif); font-weight: 600; font-size: 1.2rem; color: var(--navy); line-height: 1.25; margin-bottom: 0.5rem; }
.tile__n { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.6rem, 2.3vw, 2rem); line-height: 1.05; color: var(--navy); font-variant-numeric: tabular-nums; margin-bottom: 0.6rem; }
.tile__d { font-size: 0.92rem; line-height: 1.5; color: var(--text-1); flex: 1; }
.tile__r { font-size: var(--text-xs); color: var(--ink-soft); line-height: 1.45; margin-top: 0.7rem; padding-top: 0.6rem; border-top: 1px solid var(--rule); }
@media (max-width: 768px) { .tiles { grid-template-columns: 1fr; } }
@media print { .tiles { break-inside: avoid; } }
