/* Simulateur de revenus — page Ressources premium */
body main.psim { display:block; background:#fff; color:#0e1325; }
body main.psim .psim-hero {
  position:relative; overflow:hidden; padding:96px 24px 112px; text-align:center; color:#fff;
  background:
    radial-gradient(900px 500px at 12% -5%, rgba(47,98,238,.55) 0%, rgba(47,98,238,0) 60%),
    radial-gradient(900px 600px at 92% 5%, rgba(110,60,210,.45) 0%, rgba(110,60,210,0) 55%),
    linear-gradient(180deg, #0a1030 0%, #0e1440 55%, #121a4f 100%);
}
body main.psim .psim-glow { position:absolute; left:50%; top:440px; width:960px; height:520px; transform:translateX(-50%); background:radial-gradient(closest-side, rgba(70,115,255,.32), transparent); filter:blur(24px); pointer-events:none; }
body main.psim .psim-pill { position:relative; display:inline-flex; padding:9px 18px; border:1px solid rgba(255,255,255,.18); border-radius:999px; background:rgba(255,255,255,.06); font-size:14px; font-weight:600; color:#dfe5ff; }
body main.psim .psim-hero h1 { position:relative; max-width:1000px; margin:24px auto 16px; font-size:clamp(38px,5.6vw,68px); line-height:1.04; letter-spacing:-.04em; font-weight:800; color:#fff; }
body main.psim .psim-hero h1 span { background:linear-gradient(90deg,#7ea2ff,#b6c8ff); -webkit-background-clip:text; background-clip:text; color:transparent; }
body main.psim .psim-lead { position:relative; max-width:640px; margin:0 auto; font-size:18px; line-height:1.55; color:#c8cfeb; }

body main.psim .psim-card {
  position:relative; max-width:1120px; margin:56px auto 0; padding:40px 48px 32px; text-align:left;
  border:1px solid rgba(255,255,255,.12); border-radius:24px;
  background:linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.04));
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  box-shadow:0 40px 100px rgba(4,8,30,.45);
}
body main.psim .psim-inputs { display:grid; grid-template-columns:1fr 1px 1fr; gap:40px; align-items:start; }
body main.psim .psim-divider { align-self:stretch; background:rgba(255,255,255,.14); }
body main.psim .psim-field-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; min-height:44px; margin-bottom:14px; }
body main.psim .psim-field label { font-size:16px; font-weight:600; color:#fff; }
body main.psim .psim-toggle { display:inline-flex; padding:4px; border:1px solid rgba(255,255,255,.16); border-radius:12px; background:rgba(0,0,0,.2); }
body main.psim .psim-toggle button { height:34px; padding:0 14px; border:0; border-radius:8px; background:transparent; color:#c8cfeb; font:inherit; font-size:14px; font-weight:600; cursor:pointer; }
body main.psim .psim-toggle button[aria-pressed="true"] { background:rgba(255,255,255,.16); color:#fff; }
body main.psim .psim-range,
body main.psim .psim-money { display:flex; align-items:center; gap:18px; height:60px; padding:0 24px; border-radius:16px; background:rgba(255,255,255,.1); }
body main.psim .psim-range:focus-within,
body main.psim .psim-money:focus-within { box-shadow:0 0 0 2px rgba(126,162,255,.6); }
body main.psim .psim-range input { flex:1; min-width:0; accent-color:#7ea2ff; cursor:pointer; }
body main.psim .psim-range output { min-width:84px; text-align:right; font-size:20px; font-weight:700; color:#fff; }
body main.psim .psim-money input { flex:1; min-width:0; border:0; background:transparent; color:#fff; font:inherit; font-size:22px; font-weight:700; outline:none; }
body main.psim .psim-money span { font-size:15px; color:#c8cfeb; white-space:nowrap; }

body main.psim .psim-result { margin:44px 0 6px; text-align:center; font-size:clamp(26px,3.4vw,42px); line-height:1.15; letter-spacing:-.03em; font-weight:800; color:#fff; }
body main.psim .psim-result strong { color:#8fb0ff; }
body main.psim .psim-result-sub { margin:0; text-align:center; font-size:clamp(20px,2.4vw,30px); font-weight:700; letter-spacing:-.02em; color:#8b93c0; }
body main.psim .psim-chart { margin-top:32px; }
body main.psim .psim-chart svg { display:block; width:100%; height:auto; overflow:visible; }
body main.psim .psim-years { display:flex; justify-content:space-between; margin-top:10px; padding:0 1.9% 0 8.75%; font-size:13px; color:#aab2d6; }
body main.psim .psim-years span { width:0; display:flex; justify-content:center; white-space:nowrap; }
body main.psim .psim-note { margin:24px auto 0; max-width:760px; font-size:13px; line-height:1.6; color:#98a0c8; text-align:center; }

body main.psim .psim-steps,
body main.psim .psim-next { max-width:1120px; margin:0 auto; padding:104px 24px 0; }
body main.psim .psim-steps h2,
body main.psim .psim-next h2 { margin:0 0 28px; font-size:clamp(28px,3.4vw,40px); line-height:1.1; letter-spacing:-.03em; font-weight:800; color:#0e1325; }
body main.psim .psim-grid,
body main.psim .psim-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
body main.psim .psim-grid article { padding:28px; border:1px solid #e6e9f0; border-radius:16px; background:#fff; box-shadow:0 12px 32px rgba(16,24,40,.05); }
body main.psim .psim-grid span { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:10px; background:#eef3ff; color:#2f62ee; font-size:14px; font-weight:700; }
body main.psim .psim-grid h3 { margin:18px 0 8px; font-size:19px; font-weight:700; color:#0e1325; }
body main.psim .psim-grid p { margin:0; font-size:15px; line-height:1.6; color:#5b6274; }
body main.psim .psim-next { padding-bottom:112px; }
body main.psim .psim-links a { display:flex; flex-direction:column; gap:6px; padding:24px 26px; border:1px solid #e6e9f0; border-radius:16px; background:#f8f9fc; color:inherit; text-decoration:none; transition:border-color .15s, background .15s; }
body main.psim .psim-links a:hover { border-color:#2f62ee; background:#fff; }
body main.psim .psim-links strong { font-size:17px; color:#0e1325; }
body main.psim .psim-links span { font-size:14px; line-height:1.5; color:#5b6274; }

@media (max-width:860px) {
  body main.psim .psim-hero { padding:64px 18px 80px; }
  body main.psim .psim-card { padding:28px 20px; margin-top:40px; }
  body main.psim .psim-inputs { grid-template-columns:1fr; gap:28px; }
  body main.psim .psim-divider { display:none; }
  body main.psim .psim-grid,
  body main.psim .psim-links { grid-template-columns:1fr; }
  body main.psim .psim-steps,
  body main.psim .psim-next { padding-top:72px; }
}
